68280169-opencv.pdf

9
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

Upload: tuanf4

Post on 26-Oct-2015

144 views

Category:

Documents


1 download

DESCRIPTION

cv

TRANSCRIPT

Page 1: 68280169-OPENCV.pdf

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

Page 2: 68280169-OPENCV.pdf

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

Page 3: 68280169-OPENCV.pdf

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)

Page 4: 68280169-OPENCV.pdf

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

Page 5: 68280169-OPENCV.pdf

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:

Page 6: 68280169-OPENCV.pdf

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

Chọn Configuration Propertise Linker Input

TTạ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

Page 7: 68280169-OPENCV.pdf

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 iscolor = CV_LOAD_IMAGE_COLOR

);

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,

const CvArr* image

);

Page 8: 68280169-OPENCV.pdf

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

Page 9: 68280169-OPENCV.pdf

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