OpenCV (Open Source Computer Vision) là 1 thư viện mã nguồn mở. OpenCV được phát hành theo giấy phép BSD, do đó nó hoàn toàn miễn phí cho cả học thuật và thương mại.
- OpenCV có các interface C++, C, Python, Java và hỗ trợ Windows, Linux, macOS, iOS và Android.
- OpenCV được thiết kế để tính toán hiệu quả và với sự tập trung nhiều vào các ứng dụng thời gian thực. Được viết bằng tối ưu hóa C/C++, thư viện có thể tận dụng lợi thế của xử lý đa lõi.
- Được sử dụng trên khắp thế giới, OpenCV có cộng đồng hơn 47 nghìn người dùng và số lượng download vượt quá 6 triệu lần.
- Phạm vi sử dụng từ nghệ thuật tương tác, cho đến lĩnh vực khai thác mỏ, bản đồ trên web hoặc công nghệ robot.
Trang chủ chính thức của OpenCV: https://opencv.org/
- Trang download các phiên bản của OpenCV: https://opencv.org/releases/
- Tất cả tài liệu của thư viện này bạn có thể tìm thấy ở đây: https://docs.opencv.org/2.4/module/refman.html
Các module của OpenCV
Sau khi tải và giải nén OpenCV, trong source code của OpenCV có các folder module chứa tất các module của thư viện OpenCV và mỗi module này sẽ được build dưới dạng thư viện liên kết tĩnh và thư viện liên kết động để sử dụng trong project, mỗi module sẽ có 1 chức năng riêng biệt.

Các module OpenCV trong project Android
Có khá nhiều module trong thư viện này, trong đó có những module được sử dụng thường xuyên.

core
core là module chứa các cấu trúc, class cơ bản mà OpenCV sẽ sử dụng trong việc lưu trữ và xử lý hình ảnh như Mat
, Scale
, Point
, Vec
, ... và các phương thức cơ bản sử dụng cho các module khác.
imgproc
imgproc là module xử lý hình ảnh của OpenCV bao gồm các bộ lọc (filter) linear, non-linear và các phép biến đổi hình học (transformation) như resize
hoặc các phép biến đổi cơ bản (affine transformation), chuyển đổi hệ máy và các thuật toán liên quan đến biểu đồ (histogram) của hình ảnh.
highgui
highgui là module cho phép tương tác với người dùng trên UI (User Interface) như hiển thị hình ảnh, video capture.
features2d
features2d là module tìm các đặc trưng (feature) của hình ảnh, trong module có hiện thực các thuật toán rút trích đặc trưng như PCA, ...
calib3d
calib3d là module hiệu chuẩn máy ảnh và xây dựng lại 3D.
objdetect
objdetect là module cho việc phát hiện các đối tượng như khuôn mặt, đôi mắt, cốc, người, ô tô, ... trong hình ảnh. Các thuật toán được sử dụng trong module này là Haar-Like Features.
ml
ml là module chứa các thuật toán về Machine Learning phục vụ cho các bài toàn phân lớp (Classification) và bài toán gom cụm (Clustering), ví dụ như thuật toán SVM (Support Vector Machine), ANN, …
video
video là module phân tích video gồm ước lượng chuyển động, trừ nền, và các thuật toán theo dõi đối tượng (object tracking).