Gia Bao TSC

Cấu hình OpenCV với Visual Studio 2017

Trong bài viết trước, các bạn đã biết được OpenCV là gì và nó có thể làm những gì. Bài viết hôm nay, tôi sẽ giới thiệu chi tiết về các sử dụng OpenCV với Visual Studio 2017 (có mã là Visual Studio 15 - vc15).

 OpenCV  posted at January 19, 2019

Download và cài đặt Visual Studio 2017

Các bạn có thể tải về bản mới nhất tại địa chỉ (bản miễn phí là Community Edition)

https://visualstudio.microsoft.com/downloads/

Để thực hiện cài đặt, các bạn làm theo hướng dẫn của Microsoft tại địa chỉ bên dưới:

https://docs.microsoft.com/en-us/visualstudio/install/install-visual-studio?view=vs-2017

Sau khi cài đặt xong, giao diện chương trình như bên dưới:

Các bạn có thể chọn Theme Visual Studio phù hợp với view của mình.

Tạo project với Visual Studio 2017

Chúng ta tạo project C++ (Windows Console Application)

Thông tin cài đặt OpenCV

Trước khi thực hiện cấu hình project để sử dụng OpenCV, chúng ta sẽ nhắc lại một vài thông tin quan trọng liên quan đến OpenCV

  • Thư mục cài đặt: C:\opencv
  • Thư mục include: C:\opencv\build\include
  • Thư mục library: C:\opencv\build\x64\vc15\lib
  • Đối với chế độ Debug, sử dụng thư viện: opencv_world401d.lib
  • Đối với chế độ Release, sử dụng thư viện: opencv_world401.lib

Cấu hình project sử dụng OpenCV

Thực hiện mở Property Pages của project, sau đó thực hiện cấu hình cho các thông tin bên dưới:

C/C++ -> General -> Additional Include Directories

C:\opencv\build\include

Linker -> General -> Additional Library Directories

C:\opencv\build\x64\vc15\lib

Linker -> Input -> Additional Dependencies

opencv_world401d.lib

Note: Nếu chúng ta tự build OpenCV (kèm theo với Extra Modules), thì số lượng Dependencies cập nhập vào sẽ là một danh sách file (*.lib). Cũng liên quan đến phần này, tôi sẽ nhắc đến cách Build OpenCV with Extra Modules ở một bài viết khác.

Sử dụng OpenCV

Tạo một file *.cpp trong project và thực hiện coding tùy ý, khi này chúng ta sẽ gọi đến OpenCV thông qua đoạn code bên dưới:

#include <opencv2/opencv.hpp>

Một ví dụ về chuyển đổi ảnh màu sang ảnh đen trắng (gray)


#include <opencv2/opencv.hpp> 
#include <iostream>
using namespace std;
using namespace cv;

int main() {
	// Load image
	Mat colorImg = imread("colorImg.jpg");

	// Convert to gray image
	Mat grayImg;
	cvtColor(colorImg, grayImg, COLOR_RGB2GRAY);
	imwrite("grayImg.jpg", grayImg);

	// Create windows
	namedWindow("colorImg", WINDOW_AUTOSIZE);
	namedWindow("grayImg", WINDOW_AUTOSIZE);

	// Show images
	imshow("colorImg", colorImg);
	imshow("grayImg", grayImg);

	waitKey(0);
	return 0;
}

Trong đoạn code trên, chúng ta đã sử dụng các lớp / hàm hỗ trợ sẵn từ OpenCV:

  • Mat: là lớp dùng để chứa đối tượng ảnh (ngoài ra còn thế thể chứa nhiều loại đối tượng khác)
  • imread: sử dụng để đọc một ảnh từ đường dẫn xác định
  • cvtColor: chuyển đổi màu
  • imwrite: ghi ảnh vào tệp tin
  • namedWindow: tạo cửa sổ để hiển thị
  • imshow: tải và hiển thị ảnh trên các cửa sổ window đã được tạo

Build project, kết quả sẽ xuất hiện trong cửa sổ Output của Visual Studio 2017

1>------ Rebuild All started: Project: OpenCV_FirstDemoApp, Configuration: Debug x64 ------
1>imageprocessing.cpp
1>OpenCV_FirstDemoApp.vcxproj -> C:\Users\username\source\repos\OpenCV_FirstDemoApp\x64\Debug\OpenCV_FirstDemoApp.exe
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========

Chạy project (sử dụng phím F5 hoặc Menu Debug -> Start Debugging), kết quả được hiển thị

Trước khi chạy, chúng ta cần copy các file bên dưới vào thư mục C:\Users\username\source\repos\OpenCV_FirstDemoApp\x64\Debug

  • colorImg.jpg
  • opencv_world401d.dll

Kết quả

Bạn có thể tham khảo source code tại địa chỉ:

https://github.com/giabaovn/opencv/tree/master/OpenCV_FirstDemoApp

Trong một bài viết khác, tôi sẽ đề cập đến cách Build OpenCV with Extra Modules (để có thêm các chức năng hỗ trợ liên quan đến Face Recognition, ...)

Gia Bao TSC