thƯ viỆn opencvptbao/imageprocessing/opencv...6 o bioinspired. các mô hình thị giác sinh...

18
1 THƯ VIỆN OPENCV Open Source Computer Vision Library [1] Đặng Vinh Khoa Toán Tin Học – Đại học Khoa Học Tự Nhiên TPHCM

Upload: trinhbao

Post on 15-Jul-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: THƯ VIỆN OPENCVptbao/imageprocessing/OpenCV...6 o bioinspired. Các mô hình thị giác sinh học và các công cụ phái sinh o ccalib. Tùy chọn hiệu chuẩn mẫu cho

1

THƯ VIỆN OPENCV Open Source Computer Vision Library [1]

Đặng Vinh

Khoa Toán Tin Học – Đại học Khoa Học Tự Nhiên TPHCM

Page 2: THƯ VIỆN OPENCVptbao/imageprocessing/OpenCV...6 o bioinspired. Các mô hình thị giác sinh học và các công cụ phái sinh o ccalib. Tùy chọn hiệu chuẩn mẫu cho

2

MỤC LỤC

MỤC LỤC ........................................................................................................................................ 2

Danh sách bảng biểu .......................................................................................................................... 3

Danh sách hình ảnh ........................................................................................................................... 3

Phần I. Giới thiệu ........................................................................................................................... 4

I.1. Tổng quan .............................................................................................................................. 4

I.2. Sơ lược về cấu trúc của thư viện OpenCV .............................................................................. 4

Phần II. Cài đặt trên Windows với Visual Studio C++ ................................................................. 7

II.1. Cài đặt phần mặc định ............................................................................................................ 7

II.2. Cài đặt phần mở rộng ........................................................................................................... 12

Phần III. Cài đặt trên Linux với ngôn ngữ C/C++ ........................................................................ 15

PHỤ LỤC ....................................................................................................................................... 17

THAM KHẢO ................................................................................................................................ 18

Page 3: THƯ VIỆN OPENCVptbao/imageprocessing/OpenCV...6 o bioinspired. Các mô hình thị giác sinh học và các công cụ phái sinh o ccalib. Tùy chọn hiệu chuẩn mẫu cho

3

Danh sách bảng biểu Bảng 1 Mã nguồn chương trình sử dụng thư viện OpenCV .............................................................. 17

Danh sách hình ảnh Hình 1 Cửa sổ thông tin về hệ thống của Windows ............................................................................ 7

Hình 2 Cửa sổ các thuộc tính của hệ thống......................................................................................... 8

Hình 3 Cửa sổ hiệu chỉnh biến môi trường ......................................................................................... 8

Hình 4 Hộp thoại chỉnh sửa biến môi trường ...................................................................................... 9

Hình 5 Cửa sổ tạo một "Project" mới ................................................................................................. 9

Hình 6 Cửa sổ "Properties Page" ..................................................................................................... 10

Hình 7 Hộp thoại "Additional Include Directories" .......................................................................... 10

Hình 8 Hộp thoại"Additional Library Directories" ........................................................................... 11

Hình 9 Cửa sổ CMake ..................................................................................................................... 13

Hình 10 Hộp thoại chọn phiên bản Visual Studio ............................................................................. 13

Hình 11 Hộp thoại chọn trình biên dịch ........................................................................................... 13

Hình 12 Kết quả tạo "project" trên CMake ....................................................................................... 14

Hình 13 Hộp thoại cài đặt đường dẫn phần mở rộng ........................................................................ 14

Page 4: THƯ VIỆN OPENCVptbao/imageprocessing/OpenCV...6 o bioinspired. Các mô hình thị giác sinh học và các công cụ phái sinh o ccalib. Tùy chọn hiệu chuẩn mẫu cho

4

Phần I. Giới thiệu

I.1. Tổng quan OpenCV (Open Source Computer Vision Library) là một thư viện mã nguồn mở về thị giác

máy tính và học máy. Thư viện được xây dựng để cung cấp nền tảng cho các ứng dụng thị

giác máy tính nhằm đẩy mạnh sự phát triển về hàm lượng tri thức máy tính trong các sản

phẩm thương mại. Nhờ giấy phép bản quyền BSD và được nhiều công ty lớn hàng đầu thế

giới như Google, Yahoo, Microsoft, Intel, IBM,… cùng đóng góp xây dựng thư viện,

OpenCV là một trong những công cụ mạnh và được sử dụng rộng rãi trong trường học cũng

như các công ty khởi nghiệp.

Thư viện OpenCV bao gồm nhiều giao diện dành cho C++, C, Python, Java, MATLAB và hỗ

trợ cho các hệ điều hành khác nhau như Windows, Linux, Android, MacOS. Trong phiên bản

OpenCV 3.1, giao diện sử dụng cho CUDA và OpenCL cũng đã được phát triển hoàn thiện.

OpenCV được viết nguyên bản bằng ngôn ngữ C++.

Trang chính thức: http://opencv.org

Nhóm phát triển OpenCV: http://itseez.com

I.2. Sơ lược về cấu trúc của thư viện OpenCV Thư viện OpenCV có thể được chia thành 2 phần (module) chính. Phần căn bản (basic) là mã

nguồn được nhóm phát triển xây dựng và kiểm định toàn diện, gồm các thuật toán đã được

thế giới công nhận và đánh giá dựa trên cơ sở lý thuyết chắc chắn. Phần mở rộng

(contribution) được nhiều tổ chức khoa học khác nhau trên thế giới đóng góp, gồm nhiều

thuật toán cập nhật được xây dựng dựa trên các công trình nghiên cứu, bài báo mới đăng

trong thời gian gần đây. Do vậy các thuật toán trong phần mở rộng có độ ổn định và tối ưu

không cao. Từ phiên bản 3.0, phần mở rộng được tách riêng không còn được gộp chung với

thư viện mặc định.

OpenCV là thư viện mã nguồn mở được đóng gói thành tập tin nén. Tùy vào phiên bản dành

cho các hệ điều hành khác nhau mà tập tin nén này có định dạng tương ứng. Thư viện

OpenCV cung cấp cho người dùng các cấu trúc dữ liệu, đối tượng và hàm bằng cách khai báo

nguyên mẫu (prototype) của chúng trong các tập tin thư viện C/C++ (*.h, *.hpp,…) và định

nghĩa chi tiết trong các tập tin mã nguồn (*.c, *.cpp). Với mức độ sử dụng OpenCV, ta chỉ

cần giải nén các tập tin đã được biên dịch sẵn rồi thực hiện các thao tác cài đặt đường dẫn cho

thích hợp để hệ điều hành tìm đến đúng vị trí của các tập tin thư viện. Ở mức độ cao hơn, nếu

muốn hiệu chỉnh sửa đổi thuật toán hay sử dụng phần mở rộng của OpenCV ta cần phải biên

dịch mã nguồn trực tiếp trên máy trước khi cài đặt.

Page 5: THƯ VIỆN OPENCVptbao/imageprocessing/OpenCV...6 o bioinspired. Các mô hình thị giác sinh học và các công cụ phái sinh o ccalib. Tùy chọn hiệu chuẩn mẫu cho

5

Để cài đặt OpenCV cơ bản ta có thể sử dụng tập tin nhị phân mà nhóm phát triển đã biên dịch

sẵn. Ta truy cập vào địa chỉ http://opencv.org/downloads.html và chọn phiên bản dành cho hệ

điều hành thích hợp. Để cài đặt phần mở rộng (dành cho OpenCV 3.0 trở lên) ta cần có cả mã

nguồn của cả phần cơ bản và phần mở rộng. Chúng được công khai trên tài khoản Github của

nhóm phát triển theo đường dẫn http://github.com/opencv. Ngoài ra ta cũng có thể đóng góp

cho thư viện này bằng cách sử dụng tài khoản cá nhân trên Github và làm theo hướng dẫn của

nhóm phát triển.

Thư viện mã nguồn mở OpenCV gồm các thành phần nhỏ sau đây (tính đến phiên bản 3.1.0):

- Các thành phần chính:

o core. Các hàm cơ bản

o imgproc. Xử lý ảnh

o imgcodecs. Đọc và ghi tập tin ảnh

o videoio. Đọc và ghi đa phương tiện

o highgui. Giao diện người dùng bậc cao

o video. Phân tích video

o calib3d. Hiệu chuẩn thiết bị ghi hình và tái cấu trúc 3D

o features2d. Bộ khung các đặc trưng 2D

o objdetect. Nhận dạng đối tượng

o ml. Học máy

o flann. Gom nhóm và tìm kiếm trong nhiều chiều

o photo. Các thuật toán chụp ảnh

o stitching. Vá ảnh

o cudaarithm. Các toán tử trên ma trận

o cudabgsegm. Phân đoạn nền ảnh

o cudacodec. Mã hóa/giải mã video

o cudafeatures2d. Phát hiện và mô tả đặc trưng

o cudafilters. Lọc ảnh

o cudaimgproc. Xử lý ảnh với CUDA

o cudalegacy. Hỗ trợ Legacy

o cudaobjdetect. Phát hiện đối tượng

o cudaoptflow. Dòng quang học

o cudastereo. Thư viện âm thanh

o cudawarping. Bẻ cong ảnh

o cudev. Tầng thiết bị

o shape. Khác biệt hình học và so sánh

o superres.Siêu phân giải

o videostab. Ổn định video

o viz. Hiển thị 3D

- Các thành phần mở rộng:

o aruco. Phát hiện ArUco Marker

o bgsegm. Các phương pháp phân đoạn đối tượng mới

Page 6: THƯ VIỆN OPENCVptbao/imageprocessing/OpenCV...6 o bioinspired. Các mô hình thị giác sinh học và các công cụ phái sinh o ccalib. Tùy chọn hiệu chuẩn mẫu cho

6

o bioinspired. Các mô hình thị giác sinh học và các công cụ phái sinh

o ccalib. Tùy chọn hiệu chuẩn mẫu cho tái cấu trúc 3D

o cvv. GUI cho thao tác bắt lỗi trực quan của các chương trình thị giác máy tính

o datasets. Thư viện hỗ trợ làm việc với các bộ dữ liệu khác nhau

o dnn. Bộ thư viện mạng neural học sâu

o dpm. Các mô hình biến dạng từng phần

o face. Nhận dạng mặt người

o fuzzy. Xử lý ảnh dựa vào lý thuyết mờ

o hdf. Nhập xuất dữ liệu cho định dạng HDF (Hierarchical Data Format)

o line_descriptor. Mô tả nhị phân cho các đường thẳng trích chọn từ một ảnh

o matlab. Liên kết với MATLAB

o optflow. Các thuật toán dòng quan học

o plot. Hàm vẽ cho dữ liệu ma trận

o reg. Đăng kí ảnh

o rgbd. Xử lý chiều sâu trong hệ màu RGB

o saliency. API xử lý vùng lồi trên ảnh

o sfm. Cấu trúc từ chuyển động

o stereo. Các thuật toán tín hiệu nổi tương tự

o structured_light. API cho tính cấu trúc của ánh sáng

o surface_matching. Khớp bề mặt

o text. Phát hiện và nhận dạng chữ trong cảnh tự nhiên

o tracking. Các phương pháp theo vết

o xfeatures2d. Tính năng đặc trưng 2D mở rộng

o ximgproc. Xử lý ảnh mở rộng

o xobjdetect. Phát hiện đối tượng mở rộng

o xphoto. Các phương pháp xử lý hình ảnh nâng cao

Page 7: THƯ VIỆN OPENCVptbao/imageprocessing/OpenCV...6 o bioinspired. Các mô hình thị giác sinh học và các công cụ phái sinh o ccalib. Tùy chọn hiệu chuẩn mẫu cho

7

Phần II. Cài đặt trên Windows với Visual Studio C++

II.1. Cài đặt phần mặc định Tất cả các phiên bản của OpenCV được công khai trên trang chủ đều là phần mặc định của

thư viện này. Ta sẽ sử dụng phiên bản OpenCV 2.4.13 để minh họa quá trình cài đặt phần

mặc định của thư viện với Visual Studio.

Ta có thể tải phiên bản OpenCV 2.4.13 cho Windows bằng cách truy cập vào đường dẫn đã

http://opencv.org/downloads.html rồi nhấp vào liên kết “OpenCV for Windows” trong mục

“VERSION 2.4.13”. Sau khi tải thành công ta sẽ có tập tin “OpenCV-2.4.13.exe”. Đây chính

là tập tin nhị phân mà nhóm phát triển đã biên dịch và cung cấp sẵn cho người dùng trong đó

chứa đầy đủ phần mặc định của OpenCV.

Để cài đặt OpenCV sử dụng cho Visual Studio ta thực hiện các bước sau:

- Bước 1: Mở tập tin “OpenCV-2.4.13.exe”, chọn đường dẫn đến thư mục muốn cài

đặt. Ở đây để dễ trình bày ta kí hiệu đường dẫn giải nén OpenCV là $DIRECTORY.

Sau khi giải nén, toàn bộ các tập tin của OpenCV sẽ nằm trong thư mục có đường dẫn

$DIRECTORY\opencv\.

- Bước 2: Cài đặt biến môi trường của Windows:

Nhấp trỏ phải vào “Computer” (hoặc “My Computer”) chọn “Properties”. Với

Windows 7 cửa sổ “System” hiện ra như sau (Hình 1):

Hình 1 Cửa sổ thông tin về hệ thống của Windows

Nhấp chọn “Advanced system settings”. Cửa sổ cài đặt hiện ra, ta chọn thẻ

“Advanced” (Hình 2):

Page 8: THƯ VIỆN OPENCVptbao/imageprocessing/OpenCV...6 o bioinspired. Các mô hình thị giác sinh học và các công cụ phái sinh o ccalib. Tùy chọn hiệu chuẩn mẫu cho

8

Hình 2 Cửa sổ các thuộc tính của hệ thống

Nhấp chọn nút “Environment Variables…”. Cửa sổ “Environment Variables” hiện

lên (Hình 3). Tại vùng “System variables” chọn đến biến “Path”.

Hình 3 Cửa sổ hiệu chỉnh biến môi trường

Page 9: THƯ VIỆN OPENCVptbao/imageprocessing/OpenCV...6 o bioinspired. Các mô hình thị giác sinh học và các công cụ phái sinh o ccalib. Tùy chọn hiệu chuẩn mẫu cho

9

Tại hộp thoại chỉnh sửa biến môi trường “Path” (Hình 4), ta thêm “;” vào cuối dòng

và viết thêm vào mục “Variable value” đường dẫn thư mục chứa các tập tin *.dll

của OpenCV.

Hình 4 Hộp thoại chỉnh sửa biến môi trường

Nội dung viết thêm có dạng

$DIRECTORY\opencv\build\$PLATFORM\$VCXX\bin\

Trong đó $PLATFORM là x86 hoặc x64 tương ứng với hệ điều hành 32bit hay

64bit; $VCXX là vc10 nếu ta dùng Visual Studio 2010, vc11 với Visual Studio

2012, vc12 với phiên bản 2013 và vc14 với phiên bản Visual Studio 2015.

Lưu ý rằng phiên bản OpenCV 3.0 trở lên dành cho Windows chỉ hỗ trợ nền tảng

64bit và vc12 hoặc cao hơn.

- Bước 3: Hiệu chỉnh Visual Studio:

Mở Visual Studio, tạo một “Project” bằng ngôn ngữ C++ mới (Hình 5). Đây chính

là “Project” mà ta cần OpenCV để phát triển.

Hình 5 Cửa sổ tạo một "Project" mới

Sử dụng tổ hợp phím Ctr+Alt+L hoặc nhấp chọn “View” > “Solution Explorer” để

gọi hộp thoại “Solution Explorer”.

Tại hộp thoại “Solution Explorer” nhấp trỏ phải vào tên “Project” chọn “Properties”

hoặc sử dụng tổ hợp phím Alt+Enter. Cửa sổ “Properties Page” hiện lên (Hình 6).

Page 10: THƯ VIỆN OPENCVptbao/imageprocessing/OpenCV...6 o bioinspired. Các mô hình thị giác sinh học và các công cụ phái sinh o ccalib. Tùy chọn hiệu chuẩn mẫu cho

10

Hình 6 Cửa sổ "Properties Page"

Tại mục “Configuration” chọn “All configurations”. Ở cây danh sách bên trái ta

chọn “Configuration Properties” > “C/C++” > “General”. Tiếp theo ta thêm vào

mục “Additional Include Directories” các đường dẫn sau (Hình 7) và chọn vào ô

“Inherit from parents and project defaults”:

$DIRECTORY\opencv\build\include

$DIRECTORY\opencv\build\include\opencv

$DIRECTORY\opencv\build\include\opencv2

Hình 7 Hộp thoại "Additional Include Directories"

Page 11: THƯ VIỆN OPENCVptbao/imageprocessing/OpenCV...6 o bioinspired. Các mô hình thị giác sinh học và các công cụ phái sinh o ccalib. Tùy chọn hiệu chuẩn mẫu cho

11

Vẫn tại nội dung của “All configurations”, ta chọn ở cây danh sách bên trái

“Configuration Properties” > “Linker” > “General”. Tiếp theo ta thêm vào mục

“Additional Library Directories” các đường dẫn sau (Hình 8) và chọn vào ô

“Inherit from parents and project defaults”:

$DIRECTORY\opencv\build\$PLATFORM\$VCXX\lib

$DIRECTORY\opencv\build\$PLATFORM\$VCXX\staticlib

Hình 8 Hộp thoại"Additional Library Directories"

Chuyển mục “Configuration” thành “Debug”, ở cây danh sách bên trái chọn

“Configuration Properties” > “Linker” > “Input”. Ta thêm vào mục “Additional

dependencies” các dòng sau và chọn vào ô “Inherit from parents and project

defaults”:

opencv_calib3d2413d.lib

opencv_contrib2413d.lib

opencv_core2413d.lib

opencv_features2d2413d.lib

opencv_flann2413d.lib

opencv_gpu2413d.lib

opencv_highgui2413d.lib

opencv_imgproc2413d.lib

opencv_legacy2413d.lib

opencv_ml2413d.lib

opencv_nonfree2413d.lib

opencv_objdetect2413d.lib

opencv_ocl2413d.lib

opencv_photo2413d.lib

opencv_stitching2413d.lib

opencv_superres2413d.lib

Page 12: THƯ VIỆN OPENCVptbao/imageprocessing/OpenCV...6 o bioinspired. Các mô hình thị giác sinh học và các công cụ phái sinh o ccalib. Tùy chọn hiệu chuẩn mẫu cho

12

opencv_ts2413d.lib

opencv_video2413d.lib

opencv_videostab2413d.lib

Ta để ý rằng đây chính là tên của các tập tin thư viện có trong thư mục với đường

dẫn $DIRECTORY\opencv\build\$PLATFORM\$VCXX\lib. Đồng thời hậu

tố trong tên các tập tin này cũng bao gồm thông tin phiên bản của OpenCV (ví dụ:

2413 tương ứng phiên bản 2.4.13) và chữ “d” cuối cùng để chỉ đây là các thư viện

dành cho đế độ biên dịch “Debug”. Như vậy tùy phiên bản mà tên tập tin sẽ thay đổi

đồng thời sẽ có nhiều hơn hoặc ít hơn danh sách tên ở trên.

Chuyển mục “Configuration” thành “Release”, hiệu chỉnh tương tự như ở chế độ

biên dịch “Debug” tuy nhiên tên các tập tin sẽ không có chữ “d” cuối cùng.

II.2. Cài đặt phần mở rộng Nếu ta muốn can thiệp vào mã nguồn của OpenCV hoặc sử dụng phần mở rộng của thư viện

này, ta cần tự biên dịch trên máy tính để có được các tập tin nhị phân. Phần mở rộng không

được tích hợp sẵn mà là một phần rời khỏi thư viện mặc định. Chúng có thể được tải tại địa

chỉ https://github.com/opencv/opencv_contrib/releases dưới dạng tập tin nén. Phần mở rộng

chỉ có các phiên bản 3.0.0 và 3.1.0 vì thế để sử dụng phần mở rộng thì phần mặc định phải có

phiên bản tương ứng. Bên cạnh đó ta cũng cần phải có mã nguồn của phần mặc định dưới

dạng tập tin nén. Tải mã nguồn chưa biên dịch của phần mặc định tại đường dẫn

https://github.com/opencv/opencv/releases.

Để biên dịch mã nguồn của OpenCV trên máy tính có mã nguồn chưa biên dịch của phần

mặc định cài đặt trình biên dịch C/C++ (chẳng hạn Visual Studio) cộng thêm ứng dụng

CMake (dành cho Windows). Tải CMake tại đường dẫn http://www.cmake.org/download.

Lưu ý rằng một số chương trình diệt virus sẽ hạn chế việc biên dịch chương trình trên máy

tính do đó ta cần tắt chúng đi.

Ta sẽ sử dụng phiên bản OpenCV 3.0 và Visual Studio 2013 64bit để minh họa cho quá trình

cài đặt. Sau khi tải về và giải nén toàn bộ mã nguồn của phần mở rộng sẽ được chứa trong thư

mục “opencv_contrib-3.0”. Lúc này, ta cũng cần tải phần mặc định và giải nén thành thư mục

“opencv-3.0”. Các bước thực hiện tự biên dịch mã nguồn như sau:

- Bước 1: Tạo “project” trên Visual Studio với CMake

Mở ứng dụng CMake. Trong mục “Where is the source code” ta nhập vào đường

dẫn thư mục $DIRECTORY\opencv-3.0. Trong mục “Where to build the

binaries” ta nhập vào đường dẫn thư mục $DIRECTORY\opencv-3.0\build.

(Hình 9)

Page 13: THƯ VIỆN OPENCVptbao/imageprocessing/OpenCV...6 o bioinspired. Các mô hình thị giác sinh học và các công cụ phái sinh o ccalib. Tùy chọn hiệu chuẩn mẫu cho

13

Hình 9 Cửa sổ CMake

Nhấp vào nút “Configure” và chọn phiên bản Visual Studio thích hợp (Hình 10) rồi

chọn “Next”.

Hình 10 Hộp thoại chọn phiên bản Visual Studio

Tiếp tục chọn trình biên dịch C/C++ thích hợp bằng cách tìm đến đường dẫn của

Visual Studio trên máy (Kí hiệu là $VISUALSTUDIO) và chọn tập tin “cl.exe”

(Hình 11).

$VISUALSTUDIO\VC\bin\cl.exe

Hình 11 Hộp thoại chọn trình biên dịch

Page 14: THƯ VIỆN OPENCVptbao/imageprocessing/OpenCV...6 o bioinspired. Các mô hình thị giác sinh học và các công cụ phái sinh o ccalib. Tùy chọn hiệu chuẩn mẫu cho

14

Chọn “Finish” và chờ CMake thực hiện liên kết các tập tin mã nguồn để xây dựng

“project”.

- Bước 2: Biên dịch mã nguồn của “project” OpenCV

Sau khi thực hiện tạo “project” ta sẽ nhận được thông báo hoàn thành (Hình 12).

Hình 12 Kết quả tạo "project" trên CMake

Chỉ định đường dẫn đến thư mục chứa phần mở rộng của OpenCV (Hình 13) như

sau

$DIRECTORY\opencv_contrib-3.0\modules

Hình 13 Hộp thoại cài đặt đường dẫn phần mở rộng

Ta có thể bỏ chọn một số phần không cần thiết để biên dịch chương trình nhanh hơn

chẳng hạn mục “BUILD_DOC”. Ấn “Configure” lần nữa sau khi chọn xong.

Ấn “Generate”

- Bước 3: Cài đặt biến môi trường của Windows và cài đặt Visual Studio như cài đặt

phần mặc định.

Page 15: THƯ VIỆN OPENCVptbao/imageprocessing/OpenCV...6 o bioinspired. Các mô hình thị giác sinh học và các công cụ phái sinh o ccalib. Tùy chọn hiệu chuẩn mẫu cho

15

Phần III. Cài đặt trên Linux với ngôn ngữ C/C++ Thư viện OpenCV phần cơ ản và cả phần mở rộng phiên bản trên Linux đều là thư mục nén

chứa mã nguồn mà không phải tập tin nhị phân đã được biên dịch sẵn do đó ta cần phải tự

biên dịch trên máy tính. Ta cũng cần CMake và một số công cụ khác trên Linux, cụ thể là

- GCC 4.4.x hoặc mới hơn

- CMake 2.8.7 hoặc mới hơn

- Git (trong trường hợp muốn lấy mã nguồn trực tiếp từ GitHub)

- GTK+2.x hay mới hơn, bao gồm các header (libgtk2.0-dev)

- pkg-config

Python 2.6 hay mới hơn và Numpy 1.5 hay mới hơn với các gói (python-dev, python-

numpy)

- Các gói ffmpeg hoặc libav : libavcodec-dev, libavformat-dev, libswscale-dev

- [tùy chọn] libtbb2 libtbb-dev

- [tùy chọn] libdc1394 2.x

- [tùy chọn] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-de

Ta có thể sử dụng các câu lệnh sau trên Terminal để cài đặt các công cụ cần thiết

sudo apt-get install build-essential

sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-de

Các bước biên dịch thư viện OpenCV như sau

- Bước 0: Tải mã nguồn của OpenCV trên trang chủ và giải nén (có thể tải thêm phần mở rộng). Hoặc ta có thể sử dụng Git để “clone” mã nguồn bằng các câu lệnh

cd ~/$DIRECTORY

git clone https://github.com/Itseez/opencv.git

git clone https://github.com/Itseez/opencv_contrib.git

Trong đó $DIRECTORY là đường dẫn lưu trữ thư mục opencv (phần mặc định) và opencv_contrib (phần mở rộng).

- Bước 1: Dùng CMake liên kết các tập tin mã nguồn. Ta có thể sử dụng CMake GUI như ở Windows hoặc thao tác dòng lệnh Tạo thư mục “build” trong thư mục của OpenCV sau khi giải nén hoặc lấy từ Git

cd ~/$DIRECTORY/opencv

mkdir build

cd build

Hiệu chỉnh CMake

Page 16: THƯ VIỆN OPENCVptbao/imageprocessing/OpenCV...6 o bioinspired. Các mô hình thị giác sinh học và các công cụ phái sinh o ccalib. Tùy chọn hiệu chuẩn mẫu cho

16

cmake -D CMAKE_BUILD_TYPE=Release –D CMAKE_INSTALL_PREFIX=/usr/local ..

Nếu muốn biên dịch thêm phần mở rộng ta sử dụng câu lệnh

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local –D OPENCV_EXTRA_MODULES_PATH=/$DIRECTORY/opencv_contrib/modules/ ..

- Bước 2: Thực hiện biên dịch nguồn bằng câu lệnh

make -j7

- Bước 3: Cài đặt OpenCV bằng câu lệnh

sudo make install

Page 17: THƯ VIỆN OPENCVptbao/imageprocessing/OpenCV...6 o bioinspired. Các mô hình thị giác sinh học và các công cụ phái sinh o ccalib. Tùy chọn hiệu chuẩn mẫu cho

17

PHỤ LỤC Để kiểm tra mọi thao tác cài đặt đã đúng ta có thể viết và biên dịch chương trình đầu tiên sử

dụng OpenCV và Visual Studio bằng cách tạo một tập tin *.cpp trong “project” và dán đoạn

mã nguồn sau đây (Bảng 1) rồi biên dịch chương trình lần lượt dưới dạng “Debug” và

“Release”. Với chương trình C/C++ trên Linux cần phải viết thêm các câu lệnh trong tập tin

“CMakeList.txt” hoặc cài đặt biến môi trường $LD_LIBRARY_PATH để trình biên dịch tìm

đến đúng các tập tin thư viện. Bảng 1 Mã nguồn chương trình sử dụng thư viện OpenCV

#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <iostream> using namespace cv; using namespace std; int main( int argc, char** argv ) { cout << "Enter image directory: "; char* imageDirectory = new char[1000]; cin >> imageDirectory; Mat image; image = imread(imageDirectory, IMREAD_COLOR); // Read the file if(! image.data ) // Check for invalid input { cout << "Could not open or find the image" << std::endl ; return -1; } // Create a window for display. namedWindow( "Display window", WINDOW_AUTOSIZE ); imshow( "Display window", image ); // Show our image inside it. waitKey(0); // Wait for a keystroke in the window return 0; }

Page 18: THƯ VIỆN OPENCVptbao/imageprocessing/OpenCV...6 o bioinspired. Các mô hình thị giác sinh học và các công cụ phái sinh o ccalib. Tùy chọn hiệu chuẩn mẫu cho

18

THAM KHẢO

[1] doxygen. (2015, December) OpenCV 3.1 Introduction to OpenCV. [Online].

http://docs.opencv.org/3.1.0/df/d65/tutorial_table_of_content_introduction.html