1

Tìm hiểu về OpenCV – Nhóm 17 – Tuấn Lực – Thành Phú

OPENCV

1. Giới thiệu về OpenCV 2. Cách cài đặt a. Cài đặt trên VS 2008 b. Cài đặt trên VS 2010 3. Các hàm xử lí ảnh a. Hiển thị ảnh b. Lưu hình ảnh c. Biến đổi ảnh d. Lọc ảnh e. Tìm biên 4. Các hàm xử lí Video a. Đọc Video từ file b. Lấy ảnh từ Camera c. Lưu Video

2

Tìm hiểu về OpenCV – Nhóm 17 – Tuấn Lực – Thành Phú

Giới thiệu về OpenCV
OpenCV là gì?  OpenCV là một thư viện mã nguồn mở phục vụ cho việc nghiên cứu hay phát triển về thị giác máy tính.  Tối ưu hóa và xử lí các ứng dụng trong thời gian thực.  Giúp cho việc xây dựng các ứng dụng xử lí ảnh, thị giác máy tính, ... một cách nhanh hơn.  OpenCV có hơn 500 hàm khác nhau, được chia làm nhiều phần phục vụ các công việc như: xử lí hình ảnh y tế, an ninh, camera quan sát, nhận diện, robots, ... Ai sẽ sử dụng OpenCV?  Đầu tiên chúng ta phải hiểu: OpenCV là mã nguồn mở và chúng ta không phải trả bất cứ một đồng nào cho nó.  Tất cả chúng ta đều có thể sử dụng OpenCV tùy theo việc chúng ta sử dụng nó như thế nào vào việc gì. Sử dụng OpenCV để làm gì?  Xử lí ảnh, quan sát, an ninh, robots, ... Tất cả những gì mà bạn nghĩ rằng liên quan đến thị giác máy tính thì bạn có thể sử dụng OpenCV để làm.  Thay vì lập trình cho các thuật toán xử lí ảnh thì bạn đã có sẵn trong tay một thư viện về các hàm đó. Công việc của bạn chỉ là sử dụng nó. Và bạn có thể lập trình cho các thiết bị máy móc để cho nó có thể “nhìn”,...

Download và cài đặt OpenCV
Download tại: http://sourceforge.net/projects/opencvlibrary/ Tài liệu hướng dẫn: Các bạn nên sử dụng cuốn Learning OpenCV (Dr. Gary Rost Bradski & Dr. Adrian Kaehler)
Ghi chú: Các bạn có lấy file đính kèm của tài liệu này

Cài đặt:
Ghi chú: Các bạn phải download thêm phần mềm CMAKE tại địa chỉ: http://cmake.org Cài đặt chung: B1: Cài đặt phần mềm OpenCV (Các bạn có thể sử dụng phiên bản 2.1 hoặc 2.2). B2: Cài đặt cmake và làm theo hướng dẫn B2.1: Tạo một thư mục có tên: Build trong thư mục cài đặt OpenCV. (VD: Tạo thư mục Build trong thư mục C:/OpenCV2.2) B2.2: Khởi động Cmake và điền các thông số như hình bên

3

Tìm hiểu về OpenCV – Nhóm 17 – Tuấn Lực – Thành Phú

Tiếp tục nháy vào nút Configure

Chọn phiên bản Visual Studio đang dùng rồi click vào Finish

Tiếp tục nháy vào nút Configure

Click vào Generate rồi thoát Cmake. B2.3: Mở thư mục OpenCV2.2\Build (hoặc OpenCV2.1 nếu bạn cài OpenCV2.1) Mở file OpenCV.sln (C:\OpenCV2.2\Build\OpenCV.sln) B2.3: Tại giao diện của Visual Studio chọn Release rồi Build Solution (Nhấn F6 hoặc F7)

4

Tìm hiểu về OpenCV – Nhóm 17 – Tuấn Lực – Thành Phú

Chờ đến khi build xong thì bạn thoát ra rồi tạo một Project mới.

Cài đặt OpenCV trên Visual Studio 2008
Bạn thao tác như sau: Tools  Options

Chọn VC++ Directories  Include files  Thêm các thư mục sau vào. Với bản OpenCV2.2 các bạn thêm các thư mục sau: (Tùy theo bạn sử dụng mà bạn thêm) C:\OpenCV2.2\include C:\OpenCV2.2\include\opencv C:\OpenCV2.2\include\opencv2\imgproc C:\OpenCV2.2\include\opencv2\features2d c:\OpenCV2.2\include\opencv2\objdetect

5

Tìm hiểu về OpenCV – Nhóm 17 – Tuấn Lực – Thành Phú

Với bản OpenCV2.1 bạn thêm các thư mục sau: C:\OpenCV2.1\Build\bin\Release C:\OpenCV2.1\Build\bin C:\OpenCV2.1\include C:\OpenCV2.1\include\opencv Tiếp tục các bạn chọn VC++ Directories  Library files  Thêm các thư mục chứa các thư viện vào.

Với bản OpenCV2.2 bạn chỉ cần thêm: C:\OpenCV2.2\lib Với bản OpenCV2.1 bạn thêm các thư mục sau: C:\OpenCV2.1\Build\lib\Release C:\OpenCV2.1\Build\lib C:\OpenCV2.1\lib Tiếp đến các bạn chọn:

6

Tìm hiểu về OpenCV – Nhóm 17 – Tuấn Lực – Thành Phú

Chọn Configuration Propertise  Linker  Input

T

Tại Addtional Dependencies Các bạn thêm các file sau:

C:\OpenCV2.2\lib\opencv_core220.lib C:\OpenCV2.2\lib\opencv_highgui220.lib C:\OpenCV2.2\lib\opencv_ml220.lib C:\OpenCV2.2\lib\opencv_imgproc220.lib C:\OpenCV2.2\lib\opencv_legacy220.lib Sau khi thêm xong là các bạn đã hoàn thành việc cấu hình OpenCV trên Visual Studio 2008 .

Cài đặt OpenCV trên Visual Sutdio 2010
Bạn thao tác như sau: Click chuột phải vào tên Project  Propertise

Thao tác thêm các thư viện như 2008. Sau khi thêm các thư viện tại: Include files và Library files xong chọn Configuration Propertise  Linker  Input

7

Tìm hiểu về OpenCV – Nhóm 17 – Tuấn Lực – Thành Phú

Tại Addtional Dependencies Các bạn thêm các file sau: C:\OpenCV2.2\lib\opencv_core220.lib C:\OpenCV2.2\lib\opencv_highgui220.lib C:\OpenCV2.2\lib\opencv_legacy220.lib C:\OpenCV2.2\lib\opencv_ml220.lib C:\OpenCV2.2\lib\opencv_imgproc220.lib Sau khi thêm xong là các bạn đã hoàn thành việc cấu hình OpenCV trên Visual Studio 2010. Ghi chú: Đối với bản OpenCV2.2 hay OpenCV2.1 các bạn làm như nhau. Tuy nhiên khi thêm các file thư viện thì các bạn hãy vào thư mục C:\OpenCV2.x\lib\tenfile.lib Trong đó x là tên phiên bản, tenfile là tên của file. Ví dụ: thay tenfile = opencv_core220.lib

Một số hàm xử lí ảnh
Đọc và hiển thị ảnh (Sử dụng thư viện: highgui.h) Trước khi hiển thị ảnh lên màn hình thì chúng ta phải biết làm như thế nào để tải một đọc từ ổ đĩa. Chúng ta sẽ sử dụng hàm cvLoadImage(); IplImage* cvLoadImage( const char* filename, int ); filename: Tên đường dẫn ảnh iscolor: Chế độ hiển thị ảnh Một số giá trị của iscolor: CV_LOAD_IMAGE_GRAYSCALE CV_LOAD_IMAGE_ANYDEPTH CV_LOAD_IMAGE_UNCHANGED Sau khi đã đọc được ảnh từ ổ cứng chúng ta sẽ hiển thị lên màn hình bằng hàm cvShowImage(); Đồng thời chúng ta phải tạo một cửa sổ hiển thị ảnh (Dùng hàm cvNamedWindow();) cvNamedWindow(“Tên cửa sổ hiển thị”); void cvShowImage( const char* name, iscolor = CV_LOAD_IMAGE_COLOR

const CvArr* image );

8

Tìm hiểu về OpenCV – Nhóm 17 – Tuấn Lực – Thành Phú

Name: Tên cửa số hiển thị ảnh Image: Tên ảnh Chúng ta cùng làm một ví dụ cụ thể sau:
#include "highgui.h" int main() { IplImage* img = cvLoadImage(imag); // Tạo biến chứa ảnh cvNamedWindow("ShowIMG",CV_WINDOW_AUTOSIZE); // Tạo một cửa số hiển thị ảnh cvShowImage("ShowIMG",img); // hiển thị ảnh cvWaitKey(0); // Đợi người dùng nhập vào một phím bất kì cvReleaseImage(&img); // Giải phóng bộ nhớ chứa ảnh cvDestroyWindow("ShowIMG"); // Đóng cửa sổ chứa ảnh }

Lưu ảnh void cvSaveImage( const char* name,

const CvArr* image, const int* params CV_DEFAULT(0) );
#include "highgui.h" int main() { IplImage* img = cvLoadImage(imag); // Tạo biến chứa ảnh cvNamedWindow("ShowIMG",CV_WINDOW_AUTOSIZE); // Tạo một cửa số hiển thị ảnh cvShowImage("ShowIMG",img); // hiển thị ảnh IplImage* out = cvCreateImage(cvGetSize(img),img->depth,img->nChannels); cvConvertImage(img,out, CV_CVTIMG_FLIP); // Chuyển đổi ảnh cvSaveImage("D:/test.bmp",img); // Lưu ảnh với một tên khác cvWaitKey(0); // Đợi người dùng nhập vào một phím bất kì cvReleaseImage(&img); // Giải phóng bộ nhớ chứa ảnh cvDestroyWindow("ShowIMG"); // Đóng cửa sổ chứa ảnh }

Biến đổi ảnh

Lọc ảnh Tìm biên của ảnh

9

Tìm hiểu về OpenCV – Nhóm 17 – Tuấn Lực – Thành Phú

Một số hàm xử lí video
Đọc và hiển thị Video từ một file Đọc từ Camera Lưu file Video

Sign up to vote on this title
UsefulNot useful