56
OPENCV and C/C++ Nguyễn Trọng Việt [email protected] 1 Tp. Hồ Chí Minh, tháng 09/2011 Trường Đại học Khoa học Tự nhiên Khoa Công nghệ Thông tin

2012 Ntviet Th Xla 1

Embed Size (px)

Citation preview

Page 1: 2012 Ntviet Th Xla 1

OPENCV and C/C++

Nguyễn Trọng Việ[email protected]

1Tp. Hồ Chí Minh, tháng 09/2011

Trường Đại học Khoa học Tự nhiênKhoa Công nghệ Thông tin

Page 2: 2012 Ntviet Th Xla 1

Mục tiêu buổi học

Sau buổi học, sinh viên có thể:• Trình bày cách tổ chức thư viện.

• Thiết lập để lập trình với VC++.

• Liệt kê các cấu trúc dữ liệu quan trọng.

• Liệt kê các hàm quan trọng.

• Thao tác trên các trường dữ liệu quan trọng.

• Viết chương trình cơ bản dùng OpenCV và VC++.

• Liệt kê các bài tập dự kiến.

Tp. Hồ Chí Minh, tháng 09/2011 2

The seminar objecttives

Page 3: 2012 Ntviet Th Xla 1

Nội dung trình bày

• Giới thiệu thư viện lập trình OpenCV.

• Tổ chức thư viện OpenCV.

• Thiết lập sử dụng với VC++.

• Các cấu trúc dữ liệu quan trọng.

• Các hàm API quan trọng.

• Thực hành.

• Danh sách bài tập dự kiến.

Tp. Hồ Chí Minh, tháng 09/2011 3

The presentation outline

Page 4: 2012 Ntviet Th Xla 1

Nội dung trình bày

• Giới thiệu thư viện lập trình OpenCV.

• Tổ chức thư viện OpenCV.

• Thiết lập sử dụng với VC++.

• Các cấu trúc dữ liệu quan trọng.

• Các hàm API quan trọng.

• Thực hành.

• Danh sách bài tập dự kiến.

Tp. Hồ Chí Minh, tháng 09/2011 4

The presentation outline

Page 5: 2012 Ntviet Th Xla 1

Giới thiệu thư viện lập trình OpenCV

Tp. Hồ Chí Minh, tháng 09/2011 5

OpenCV: a programming library

• Là thư viện mã nguồn mở (open source)

Do Intel đề xuất.

Hiện do Willow Garage điều hành.

Được sự đóng góp của nhiều lab trên thế giới.

• Có thể làm việc trên: Linux, Mac OS, Windows, Android.

• Hổ trợ nhiều ngôn ngữ: C/C++, Python, Matlab (hạn chế).

• Cài đặt dưới dạng hàm hoặc lớp đối tượng C++.

Page 6: 2012 Ntviet Th Xla 1

Giới thiệu thư viện lập trình OpenCV

Tp. Hồ Chí Minh, tháng 09/2011 6

OpenCV: a programming library

• Phiên bản được dùng: 2.2.0 Cài đặt hơn 500 hàm xử lý ảnh và thị giác máy tính.

Hổ trợ chạy song song:

− Trên CPU với OpenMP 2.0

− Trên GPU với Nvidia CUDA.

Hổ trợ nhiều định dạng video khác nhau.

Hổ trợ nhận dữ liệu từ cameras.

Hổ trợ Android.

• Download tại: http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.2/OpenCV-2.2.0-win32-vs2010.exe/download

Page 7: 2012 Ntviet Th Xla 1

Giới thiệu thư viện lập trình OpenCV

Tp. Hồ Chí Minh, tháng 09/2011 7

OpenCV: a programming library

• Phiên bản 2.2.0 hổ trợ các hàm (phương thức lớp) thực hiện:

Các phép toán đại số cơ bản.

Các thao tác cơ bản trên ma trận: cộng, nhân, chuyển vị, nghịch đảo, …

Các thao tác xử lý ảnh: lọc, tìm biên cạnh, phân tích hình thái, histogram, …

Các phép phân tích cấu trúc: thành phần liên thông, contour, Hough, ...

Phân tích chuyển động và theo vết: optical flow, phân đoạn chuyển động, ...

Máy học: SVM, cây quyết định, boosting, mạng neural, ...

Rút trích đặc trưng: SURF, HOG, …

Giao diện đồ họa người dùng: cửa sổ, chuột, bàn phím, ...

Đồ họa cơ bản: đường thẳng, conic, văn bản, …

Page 8: 2012 Ntviet Th Xla 1

Giới thiệu thư viện lập trình OpenCV

Tp. Hồ Chí Minh, tháng 09/2011 8

OpenCV: a programming library

• Thư viện được viết bằng C/C++.

• Biên dịch ra thư viện liên kết động (Dynamic Linked Library – dll) gồm các file:

File .h hay .hpp.

File .lib.

File .dll.

Thiết lậpthế nào ?

Thiết lập tĩnh

Thiết lập động

Khi đem sang máy khác, đòi hỏimáy đó phải có cài OpenCV mớibiên dịch chương trình lại được

Vô tư.

Page 9: 2012 Ntviet Th Xla 1

Nội dung trình bày

• Giới thiệu thư viện lập trình OpenCV.

• Tổ chức thư viện OpenCV.

• Thiết lập sử dụng với VC++.

• Các cấu trúc dữ liệu quan trọng.

• Các hàm API quan trọng.

• Thực hành.

• Danh sách bài tập dự kiến.

Tp. Hồ Chí Minh, tháng 09/2011 9

The presentation outline

Page 10: 2012 Ntviet Th Xla 1

Tổ chức thư viện OpenCV

Tp. Hồ Chí Minh, tháng 09/2011 10

Library organization

OpenCV 2.2

Include/opencv2

lib

highgui

opencv_highgui220.lib

bin

highgui_c.h

opencv_highgui220.dll

- Cửa sổ, trackbar, font, text, button, mouse.

- Mở/lưu ảnh, hiển thị ảnh, giải phóngdữ liệu ảnh.

- Mở/ghi video files.

- Cameras.

- Lấy video frames.

core

core_c.h

opencv_core220.lib

opencv_core220.dll

- Cấu trúc dữ liệu ảnh, ma trận.

- Hàm tạo, clone, copy, … ma trận/ ảnh.

- Các hàm số học, logic.

- Hàm toán học, ma trận.

- Cấu trúc dữ liệu động.

- Đồ thị, cây.

- Quản lý lỗi.

Giao diện người dùng Hàm cơ sở

Page 11: 2012 Ntviet Th Xla 1

Tổ chức thư viện OpenCV

Tp. Hồ Chí Minh, tháng 09/2011 11

Library organization

ml

ml.hpp

opencv_ml220.lib

opencv_ml220.dll

- Bộ phân lớp Bayes.

- K người láng giếng gần nhất.

- Support Vector Machine

- Expectation Maximum.

- Cây quyết định.

- Cây ngẫu nhiên.

- Mạng neural.

Máy học

imgproc

imgproc_c.h

opencv_imgproc220.lib

opencv_imgproc220.dll

- Lọc, làm trơn ảnh.

- Chuyển hệ màu.

- Biến đổi Affine trên ảnh.

- Hình thái học.

- Histogram.

- Rút đặc trưng cạnh, góc.

- Phép biến đổi Hough.

Xử lý ảnh

OpenCV 2.2

Include/opencv2

lib

bin

Page 12: 2012 Ntviet Th Xla 1

Tp. Hồ Chí Minh, tháng 09/2011 12

Library organization

highgui

opencv_highgui220.lib

highgui_c.h

opencv_highgui220.dll

- Cửa sổ, trackbar, font, text, button, mouse.

- Mở/lưu ảnh, hiển thị ảnh, giải phóngdữ liệu ảnh.

- Mở/ghi video files.

- Cameras.

- Lấy video frames.

core

core_c.h

opencv_core220.lib

opencv_core220.dll

- Cấu trúc dữ liệu ảnh, ma trận.

- Hàm tạo, clone, copy, … ma trận, ảnh.

- Các hàm số học, logic.

- Hàm toán học, ma trận.

- Cấu trúc dữ liệu động.

- Đồ thị, cây.

- Quản lý lỗi.

Giao diện người dùng Hàm cơ sở

Tổ chức thư viện OpenCV

OpenCV 2.2

Include/opencv2

lib

bin

Page 13: 2012 Ntviet Th Xla 1

Nội dung trình bày

• Giới thiệu thư viện lập trình OpenCV.

• Tổ chức thư viện OpenCV.

• Thiết lập sử dụng với VC++.

• Các cấu trúc dữ liệu quan trọng.

• Các hàm API quan trọng.

• Thực hành.

• Danh sách bài tập dự kiến.

Tp. Hồ Chí Minh, tháng 09/2011 13

The presentation outline

Page 14: 2012 Ntviet Th Xla 1

Quy tắc chung

• Tạo project.

• Biên dịch để được file .exe.

• Tạo thư mục OpenCv2 trong cùng folder chứa main entry củachương trình.

– Tạo thư mục con highgui và core.

– Tạo thư mục con lib.

• Chép tập tin:

– Các tập tin .h cần thiết vào highgui và core.

– Các tập tin .lib cần thiết vào thư mục lib.

• Chép các tập tin .dll cần thiết vào cùng folder với file .exe.

• Thiết lập VC++ để sử dụng hàm và cấu trúc của OpenCV.

Tp. Hồ Chí Minh, tháng 09/2011 14

VC++ settings

Page 15: 2012 Ntviet Th Xla 1

Thiết lập sử dụng trong ứng dụng console

• Tạo project Win32 console application.

• Biên dịch để được file .exe.

• Tạo thư mục OpenCv2 trong cùng folder chứa hàm main.

– Tạo thư mục con highgui và core.

– Tạo thư mục con lib.

• Chép tập tin:

– Các tập tin .h cần thiết vào highgui và core.

– Các tập tin .lib cần thiết vào thư mục lib.

• Chép các tập tin .dll cần thiết vào cùng folder với file .exe.

• Thiết lập VC++ để sử dụng hàm và cấu trúc của OpenCV.

Tp. Hồ Chí Minh, tháng 09/2011 15

VC++ settings

Page 16: 2012 Ntviet Th Xla 1

Tạo project• Tạo project: Lab1_Console.

• Dạng ứng dụng: Win32 console application.

Tp. Hồ Chí Minh, tháng 09/2011 16

VC++ settings

Page 17: 2012 Ntviet Th Xla 1

Tạo thư mục cần thiết• Biên dịch để được file .exe.

• Tạo thư mục opencv2 trong cùng thư mục chứa hàm main.

– Tạo thư mục con highgui và core.

– Tạo thư mục con lib.

Tp. Hồ Chí Minh, tháng 09/2011 17

VC++ settings

Page 18: 2012 Ntviet Th Xla 1

Chép tập tin thư viện• Chép tập tin:

– Các tập tin .h cần thiết vào thư mục highgui và core.

– Các tập tin .lib cần thiết vào thư mục lib.

• Chép các tập tin .dll cần thiết vào cùng folder với file .exe.

Tp. Hồ Chí Minh, tháng 09/2011 18

VC++ settings

Page 19: 2012 Ntviet Th Xla 1

Chép file thư viện

Tp. Hồ Chí Minh, tháng 09/2011 19

VC++ settings

OpenCV 2.2

Include/opencv2

Lab1_Console

opencv2

Lab1_Console

debug

highgui

core

lib

highgui

core

bin

lib

opencv_highgui220.dll

opencv_core220.dll

highgui_c.h

core_c.h

opencv_highgui220.lib

opencv_core220.lib

Page 20: 2012 Ntviet Th Xla 1

Thiết lập trong VC++• Project -> Lab1_Console properties …

Tp. Hồ Chí Minh, tháng 09/2011 20

VC++ settings

Page 21: 2012 Ntviet Th Xla 1

Thiết lập trong VC++• Configuration: All configurations

Tp. Hồ Chí Minh, tháng 09/2011 21

VC++ settings

Page 22: 2012 Ntviet Th Xla 1

Thiết lập trong VC++• Configuration Properties -> C/C++ -> General

Tp. Hồ Chí Minh, tháng 09/2011 22

VC++ settings

Page 23: 2012 Ntviet Th Xla 1

Thiết lập trong VC++• Configuration Properties -> C/C++ -> General

Tp. Hồ Chí Minh, tháng 09/2011 23

VC++ settings

Lab1_Console

opencv2

Lab1_Console

debug

highgui

core

Page 24: 2012 Ntviet Th Xla 1

Thiết lập trong VC++• Configuration Properties -> Linker -> General

Tp. Hồ Chí Minh, tháng 09/2011 24

VC++ settings

Lab1_Console

opencv2

Lab1_Console

debug

highgui

core

lib

Page 25: 2012 Ntviet Th Xla 1

Thiết lập trong VC++• Configuration Properties -> Linker -> Input

Tp. Hồ Chí Minh, tháng 09/2011 25

VC++ settings

Lab1_Console

Lab1_Console

debug

lib

opencv2

opencv_highgui220.lib

opencv_core220.lib

Page 26: 2012 Ntviet Th Xla 1

Chương trình đầu tiên

• Môi trường Visual Studio 2010, VC ++.

• Viết chương trình console load và hiển thịmột file ảnh cho trước ra màn hình.

Tp. Hồ Chí Minh, tháng 09/2011 26

VC++ settings

Page 27: 2012 Ntviet Th Xla 1

Những dòng code đầu tiên#include “highgui_c.h”

void main(){

IplImage* pImage = cvLoadImage(“Jellyfish.jpg" );

if ( pImage != NULL ){

cvNamedWindow( “My window" );cvShowImage( “My window", pImage );

cvWaitKey();

cvReleaseImage( &pImage );cvDestroyWindow( “My window" );

}}

Tp. Hồ Chí Minh, tháng 09/2011 27

VC++ settings

Page 28: 2012 Ntviet Th Xla 1

Nội dung trình bày

• Giới thiệu thư viện lập trình OpenCV.

• Tổ chức thư viện OpenCV.

• Thiết lập sử dụng với VC++.

• Các cấu trúc dữ liệu quan trọng.

• Các hàm API quan trọng.

• Thực hành.

• Danh sách bài tập dự kiến.

Tp. Hồ Chí Minh, tháng 09/2011 28

The presentation outline

Page 29: 2012 Ntviet Th Xla 1

Một số cấu trúc dữ liệu quan trọngtypedef struct _IplImage{

int nSize;int nChannels;int depth;char colorModel[4];char channelSeq[4];int origin;int width;int height;int imageSize;char *imageData;int widthStep;char *imageDataOrigin;struct _IplROI *roi;struct _IplImage *maskROI;…

}IplImage;

Tp. Hồ Chí Minh, tháng 09/2011 29

Data structures

Số kênh màu của ảnh:- 1: grayscale- 3: RGB- 4: RGBA

Thứ tự kênh màu của 1 pixel:- RGB.- BGR.

Kích thước ảnh theo pixel

Kích thước 1 dòng dữ liệu ảnh theo byte: width * nChannels

Dữ liệu ảnh đã giải nén

Số bit trên mỗi kênh màu:- IPL DEPTH 8U Unsigned 8-bit integer- IPL DEPTH 8S Signed 8-bit integer- …

Page 30: 2012 Ntviet Th Xla 1

Một số cấu trúc dữ liệu quan trọngtypedef struct CvPoint{

int x;int y;

}CvPoint;

/* Constructor */inline CvPoint cvPoint( int x, int y );

typedef struct CvPoint2D32f{

float x;float y;

}CvPoint2D32f;

/* Constructor */inline CvPoint2D32f cvPoint2D32f( double x, double y );

Tp. Hồ Chí Minh, tháng 09/2011 30

Data structures

typedef struct CvScalar{

double val[4];}CvScalar;

/* Constructor */inline CvScalar cvScalar( double val0,

double val1=0,double val2=0, double val3=0 );

inline CvScalar cvScalarAll( double val );

Page 31: 2012 Ntviet Th Xla 1

Một số cấu trúc dữ liệu quan trọngtypedef struct CvSize{

int width;int height;

}CvSize;

/* Constructor */inline CvSize cvSize( int width, int height );

Tp. Hồ Chí Minh, tháng 09/2011 31

Data structures

typedef struct CvRect{

int x;int y;int width;int height;

}CvRect;

/* Constructor */inline CvRect cvRect( int x, int y,

int width, int height );

Một số cấu trúc dữ liệu quan trọng, thường gặp khác: CvMat CvMatND CvArr

Tra cứu thêm trong OpenCV Reference Manual

Page 32: 2012 Ntviet Th Xla 1

Một số hàm liên quan ảnhLoad ảnh:

IplImage* cvLoadImage( const char* filename, int iscolor=CV LOAD IMAGE COLOR );

Lưu ảnh:

int cvSaveImage( const char* filename, const CvArr* image );

Giải phóng dữ liệu ảnh:

void cvReleaseImage(IplImage** image);

Tạo ảnh mới:

IplImage* cvCreateImage(CvSize size, int depth, int channels);

Lấy kích thước ảnh:

CvSize cvGetSize(const CvArr* arr);

Tp. Hồ Chí Minh, tháng 09/2011 32

Functions

Page 33: 2012 Ntviet Th Xla 1

Một số hàm liên quan cửa sổ

int cvNamedWindow( const char* name, int flags );

void cvMoveWindow( const char* name, int x, int y );

void cvDestroyWindow( const char* name );

void cvDestroyAllWindows(void);

void cvShowImage( const char* name, const CvArr* image );

Tp. Hồ Chí Minh, tháng 09/2011 33

Functions

Page 34: 2012 Ntviet Th Xla 1

Một số hàm liên quan track bar

int cvCreateTrackbar( const char* trackbarName, const char* windowName,

int* value, int count, CvTrackbarCallback onChange );

Với onChange có dạng hàm int abc(int)

int cvGetTrackbarPos( const char* trackbarName, const char* windowName );

void cvSetTrackbarPos( const char* trackbarName, const char* windowName, int pos );

Tp. Hồ Chí Minh, tháng 09/2011 34

Functions

Page 35: 2012 Ntviet Th Xla 1

Nội dung trình bày

• Giới thiệu thư viện lập trình OpenCV.

• Tổ chức thư viện OpenCV.

• Thiết lập sử dụng với VC++.

• Các cấu trúc dữ liệu quan trọng.

• Các hàm API quan trọng.

• Thực hành.

• Danh sách bài tập dự kiến.

Tp. Hồ Chí Minh, tháng 09/2011 35

The presentation outline

Page 36: 2012 Ntviet Th Xla 1

Chuyển ảnh xám

Viết chương trình:

Nhận tên file ảnh từ tham số dòng lệnh.

Hiển thị ảnh gốc.

Chuyển ảnh gốc sang ảnh độ xám.

Hiển thị kết quả ảnh độ xám.

Tp. Hồ Chí Minh, tháng 09/2011 36

Exercise with OpenCV & VC++

Công thức chuyển màu:Gray = 0.299 * R + 0.587 * G + 0.114 * B

Page 37: 2012 Ntviet Th Xla 1

Chương trình có giao diện

• Môi trường Visual Studio 2010, VC ++.

• Viết chương trình giao diện đồ họa sử dụngMFC để browse đến 1 file ảnh, load và hiểnthị trên giao diện.

Tp. Hồ Chí Minh, tháng 09/2011 37

Exercise with OpenCV & VC++

Page 38: 2012 Ntviet Th Xla 1

Tạo project MFC Application• Tạo project mới (MFC – MFC Application).

Tp. Hồ Chí Minh, tháng 09/2011 38

Exercise with OpenCV & VC++

Page 39: 2012 Ntviet Th Xla 1

Thiết lập đặc tính ứng dụng

• Chọn dạng ứng dụng: Dialog based.

Tp. Hồ Chí Minh, tháng 09/2011 39

Exercise with OpenCV & VC++

Page 40: 2012 Ntviet Th Xla 1

Thiết lập đặc tính ứng dụng

• Chọn đặc tính người dùng: bỏ check ở About box -> Finish

Tp. Hồ Chí Minh, tháng 09/2011 40

Exercise with OpenCV & VC++

Page 41: 2012 Ntviet Th Xla 1

Thiết lập sử dụng trong ứng dụng MFC

• Biên dịch để được file .exe.

• Tạo thư mục OpenCv2 trong cùng folder chứa file …Dlg.cpp.

– Tạo thư mục con highgui và core.

– Tạo thư mục con lib.

• Chép tập tin:

– Các tập tin .h cần thiết vào highgui và core.

– Các tập tin .lib cần thiết vào thư mục lib.

• Chép các tập tin .dll cần thiết vào cùng folder với file .exe.

• Thiết lập VC++ để sử dụng hàm và cấu trúc của OpenCV.

Tp. Hồ Chí Minh, tháng 09/2011 41

Exercise with OpenCV & VC++

Page 42: 2012 Ntviet Th Xla 1

Thiết kế giao diện• Resource View -> … -> Dialog

Tp. Hồ Chí Minh, tháng 09/2011 42

Exercise with OpenCV & VC++

Page 43: 2012 Ntviet Th Xla 1

Thiết kế giao diện• Add các control cần thiết:

Static Text

Button

Tp. Hồ Chí Minh, tháng 09/2011 43

Exercise with OpenCV & VC++

Picture Control

Edit Control

Page 44: 2012 Ntviet Th Xla 1

Thiết kế giao diện

Tp. Hồ Chí Minh, tháng 09/2011 44

Exercise with OpenCV & VC++

ID: IDC_BUTTON_BROWSEID: IDC_EDIT_LOCATION

ID: IDC_STATIC_PIC

Type: Frame

Page 45: 2012 Ntviet Th Xla 1

Thêm biến

Tp. Hồ Chí Minh, tháng 09/2011 45

Exercise with OpenCV & VC++

Click phải Edit control -> Add Variable…

Page 46: 2012 Ntviet Th Xla 1

Thêm biến

Tp. Hồ Chí Minh, tháng 09/2011 46

Exercise with OpenCV & VC++

Thêm biến dạng Value

12

Page 47: 2012 Ntviet Th Xla 1

Thêm biến

Tp. Hồ Chí Minh, tháng 09/2011 47

Exercise with OpenCV & VC++

Click phải Picture control -> Add Variable…

Page 48: 2012 Ntviet Th Xla 1

Thêm biến

Tp. Hồ Chí Minh, tháng 09/2011 48

Exercise with OpenCV & VC++

Thêm biến dạng control

12

Page 49: 2012 Ntviet Th Xla 1

Phát sinh hàm xử lý sự kiện

Tp. Hồ Chí Minh, tháng 09/2011 49

Exercise with OpenCV & VC++

Click chọn control -> Properties ->-> Chọn sự kiện muốn xử lýAdd hàm xử lý sự kiện (dùng tên phương thức mặc định)

Page 50: 2012 Ntviet Th Xla 1

Phát sinh hàm xử lý sự kiện

Tp. Hồ Chí Minh, tháng 09/2011 50

Exercise with OpenCV & VC++

Hàm xử lý sự kiện

Lab1_MFCDlg.cpp

Lab1_MFCDlg.h

Page 51: 2012 Ntviet Th Xla 1

Những dòng code đầu tiên

Tp. Hồ Chí Minh, tháng 09/2011 51

Exercise with OpenCV & VC++

Bổ sung thuộc tính con trỏ kiểu IplImage vào lớp CLab1_MFCDlg

File Lab1_MFCDlg.h

Page 52: 2012 Ntviet Th Xla 1

Những dòng code xử lý

Tp. Hồ Chí Minh, tháng 09/2011 52

Exercise with OpenCV & VC++

File Lab1_MFCDlg.cpp

Tra cứu trên MSDN

Page 53: 2012 Ntviet Th Xla 1

Nhìn lại chương trình

Tp. Hồ Chí Minh, tháng 09/2011 53

Exercise with OpenCV & VC++

• Chương trình chạy được, nhưng:– Chuyện gì xảy ra khi browse file ảnh nhiều lần ?– Chuyện gì xảy ra khi tắt ứng dụng ?– Liệu đã đáp ứng đúng yêu cầu của đề chưa ?

Page 54: 2012 Ntviet Th Xla 1

Nội dung trình bày

• Giới thiệu thư viện lập trình OpenCV.

• Tổ chức thư viện OpenCV.

• Thiết lập sử dụng với VC++.

• Các cấu trúc dữ liệu quan trọng.

• Các hàm API quan trọng.

• Thực hành.

• Danh sách bài tập dự kiến.

Tp. Hồ Chí Minh, tháng 09/2011 54

The presentation outline

Page 55: 2012 Ntviet Th Xla 1

Danh sách bài tập dự kiến

Tp. Hồ Chí Minh, tháng 09/2011 55

List of exercises

• Các phép biến đổi màu sắc (2 tuần).

• Các phép biến đổi hình học (1 tuần).

• Các phép làm trơn ảnh (1 tuần).

• Phát hiện cạnh (1 tuần).

• Phân đoạn ảnh (2 tuần).

• Phân đoạn video (2 tuần).

Page 56: 2012 Ntviet Th Xla 1

Tài liệu tham khảo

• Bài giảng trên lớp.

• OpenCV Reference Manual, v2.2, December, 2010.

• Diễn đàn OpenCV.

• Google.

Tp. Hồ Chí Minh, tháng 09/2011 56

The references