Code mẫu xử lý ảnh

OpenCV [Open Source Computer Vision] là một thư viện mã nguồn mở về thị giác máy với hơn 500 hàm và hơn 2500 các thuật toán đã được tối ưu về xử lý ảnh, và các vấn đề liên quan tới thị giác máy. Bài viết này sẽ giúp các bạn hiểu openCV là gì và các thao tác xử lý ảnh cơ bản với nó

OpenCV là gì?

OpenCV được thiết kế một cách tối ưu, sử dụng tối đa sức mạnh của các dòng chip đa lõi… để thực hiện các phép tính toán trong thời gian thực, nghĩa là tốc độ đáp ứng của nó có thể đủ nhanh cho các ứng dụng thông thường. OpenCV là thư viện được thiết kế để chạy trên nhiều nền tảng khác nhau [cross-patform], nghĩa là nó có thể chạy trên hệ điều hành Window, Linux, Mac, iOS … Việc sử dụng thư viện OpenCV tuân theo các quy định về sử dụng phần mềm mã nguồn mở BSD do đó bạn có thể sử dụng thư viện này một cách miễn phí cho cả mục đích phi thương mại lẫn thương mại.

Dự án về OpenCV được khởi động từ những năm 1999, đến năm 2000 nó được giới thiệu trong một hội nghị của IEEE về các vấn đề trong thị giác máy và nhận dạng, tuy nhiên bản OpenCV 1.0 mãi tới tận năm 2006 mới chính thức được công bố và năm 2008 bản 1.1 [pre-release] mới được ra đời. Tháng 10 năm 2009, bản OpenCV thế hệ thứ hai ra đời [thường gọi là phiên bản 2.x], phiên bản này có giao diện của C++ [khác với phiên bản trước có giao diện của C] và có khá nhiều điểm khác biệt so với phiện bản thứ nhất.

Thư viện OpenCV ban đầu được sự hỗ trợ từ Intel, sau đó được hỗ trợ bở Willow Garage, một phòng thí nghiệm chuyên nghiên cứu về công nghệ robot. Cho đến nay, OpenCV vẫn là thư viện mở, được phát triển bởi nguồn quỹ không lợi nhuận [none -profit foundation] và được sự hưởng ứng rất lớn của cộng đồng.

Cài đặt OpenCV với C++

  • Tải và cài đặt CMake tại địa chỉ: //cmake.org/download/
  • Tải và cài đặt MinGW tại địa chỉ: //sourceforge.net/projects/mingw-w64/

Build thư viện OpenCV từ Source Code bằng CMake

Tại trường "Where is the code", chọn địa chỉ source code trong thư mục OpenCV vừa cài đặt là E:/opencv/sources, và trường "Where to build the binaries" tại một thư mục sẽ sử dụng để build. Ở đây mình chọn là E:/opencv/build/x86. Sau khi chọn xong ấn vào nút Configure.

Các bạn chọn genertor bằng MinGW Makefiles

Chú ý: Khi hiển thị config lên, các bạn nhớ bỏ chọn dòng ENABLE_PRECOMPILED_HEADERS

Ấn nút Generate

Sau khi CMake tạo xong, các bạn hãy chạy lệnh mingw32-make từ thư viện MinGW vừa cài. Nếu các bạn muốn chạy nhiều core [tăng tốc độ thực hiện], có thể thực hiện lệnh mingw32-make-j4 [-j4 ở đây mang ý nghĩa builf trên 4 core CPU]

Chú ý: Khi gặp phải lỗi khi build module videoio, hãy mở đến file cap_dshow.cpp và thêm dòng code sau trên đầu file

#define STRSAFE_NO_DEPRECATE

Các phép xử lý ảnh đơn giản

  • Để xử lý một ảnh, có rất nhiều vấn đề mà chúng ta quan tâm đến. Tuy nhiên để có thể thao tác xử lý ảnh một cách chuyên nghiệp với OpenCV, bạn cần phải nắm rõ các cách xử lý cơ bản với OpenCV trong C++.
  • Trong bài viết lần này, mình sẽ hướng dẫn các bạn một số phép xử lý ảnh đơn giản với OpenCV trong C++ như: điều chỉnh độ sáng, độ tương phản, phóng to, thu nhỏ, xoay ảnh,…

1. Cách load ảnh và hiển thị một ảnh với OpenCV trong C++

Chương trình minh họa:

#include "stdfx.h"
#include 
#include 
#include 

using namespace std;
using namespace cv;

int main[]{
	cout 

Chủ Đề