Search…

EmguCV - OpenCV cho .NET - Giới Thiệu và Cách Tích Hợp vào .NET

18/09/20203 min read
Giới thiệu về wrapper EmguCV của OpenCV và hướng dẫn cách tích hợp EmguCV vào dot NET.

Giới thiệu

Xử lý ảnh và thị giác máy là lĩnh vực mà ngày nay được phát triển và ứng dụng rất rộng rãi trong nhiều lĩnh vực khác nhau nhờ vào sự phát triển ngày càng mạnh mẽ của các hệ thống máy tính, các thuật toán và công trình nghiên cứu khác nhau của nhiều nhà khoa học trên thế giới.

Bài viết này giới thiệu về EmguCV và hướng dẫn cách tích hợp EmguCV vào .NET.

EmguCV là gì?

  • Là một cross platform .NET, một thư viện xử lý hình ảnh mạnh mẽ dành riêng cho các ngôn ngữ .NET, cho phép gọi được chức năng của OpenCV là từ .NET.
  • Tương thích ngôn ngữ như: C#, VB, VC ++, Iron Python... 
  • Wrapper có thể được biên dịch bởi Visual Studio, Xamarin Studio và Unity.
  • Có thể chạy trên Windows, Linux, Mac OS X, iOS, Android và Windows Phone.

Lợi thế của EmguCV

  • EmguCV được viết hoàn toàn bằng C#, có thể chạy trên bất kỳ nền tảng hỗ trợ bao gồm iOS, Android, Windows Phone, hệ điều hành Mac OS và Linux.
  • EmguCV có thể được sử dụng với nhiều ngôn ngữ khác nhau như C#, VB.NET, C ++ và Iron Python.
  • Nhận dạng ảnh: nhận dạng khuôn mặt, các vật thể, ...
  • Xử lý ảnh: khử nhiễu, điều chỉnh độ sáng, ...
  • Nhận dạng cử chỉ.
  • Hỗ trợ tài liệu XML và intellisense.
  • Có thể sử dụng class Image hoặc gọi thẳng xuống các hàm của OpenCV.
  • ...

Tích hợp vào .NET

Bước 1: Cài đặt các Tools

  1. Visual Studio C#
  2. EmguCV: Download EmguCV phiên bản mới nhất tại địa chỉ https://sourceforge.net/projects/emgucv/files/emgucv/.
ss_1

Bước 2: Thiết lập trong project

Thêm control của EmguCV vào Toolbox.

ss_2

 Hộp thoại .NET Framwork Components > Browse...

ss_3

Chọn tới thư mục chứa EmguCV\emgucv-windows-universal_version\bin\Emgu.CV.UI.dll > Open.

ss_4

Trong Filter: Gõ emgucv > Chọn tất cả các control hiện ra > OK.

ss_5

Kết quả trong Toolbox sẽ có các control.

ss_6

Khởi tạo project

ss_7

Right mouse click > Solution Explorer > Add Reference Manager.

ss_8

Trong hộp thoại Reference Manger > Framework > Browse...

ss_9

Tìm đến thư mục chứa EmguCV > emgucv-windows-universal_version\bin > Chọn các file .dll 

ss_10

Tìm tới thư mục chứa EmguCV\emgucv-windows-universal_version\bin\x64 > Copy file .dll.

ss_11

Tìm tới thư mục chứa project\Tên_project \Tên_project\bin\Debug: Copy tất cả các file .dll ở trên vào đây.

ss_12

Công việc thiết lập EmguCV trong project đã xong, trong project có đoạn code sau:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using Emgu.CV;
using Emgu.CV.Structure;
using Emgu.CV.UI;

namespace EmguCVExample
{
    public partial class Form1 : Form
    {
        private Image<Bgr, Byte> image;                 //1
       
        public Form1()
        {
            InitializeComponent();
            image = new Image<Bgr, Byte>("stdio.png");  //2
            CvInvoke.Imshow("Hello Stdio.vn", image);   //3
            CvInvoke.WaitKey(0);                          
            
        }
    }
}

Phân tích

  1. Khai báo biến chứa ảnh.
  2. Truy cập và lấy hình ảnh, mặc định hình ảnh chứa trong thư mục bin\Debug của project. Nếu muốn thay đổi đường dẫn, thay đổi tên đường dẫn. Ví dụ: E:\\emgucv\\image. 
  3. Hiển thị màn hình và vẽ hình ảnh.

Build và run project EmguCV

Nếu gặp lỗi trong quá trình build, có thể phiên bản đang sử dụng phù hợp với x64.

ss-13

Nhấn chuột phải > Solution Explorer > Properties > Trong hộp thoại hiện ra chọn Build* > Platform target > x64.

ss_14

Kết quả

ss_15

Bài chung series

IO Stream

IO Stream Co., Ltd

30 Trinh Dinh Thao, Hoa Thanh ward, Tan Phu district, Ho Chi Minh city, Vietnam
+84 28 22 00 11 12
developer@iostream.co

383/1 Quang Trung, ward 10, Go Vap district, Ho Chi Minh city
Business license number: 0311563559 issued by the Department of Planning and Investment of Ho Chi Minh City on February 23, 2012

©IO Stream, 2013 - 2024