Trang tài liệu
Khóa học C++ nền tảng
Chương 20. Thư viện
OpenCV

OpenCV

OpenCV (Open Source Computer Vision Library) là một thư viện phần mềm thị giác máy tính và học máy mã nguồn mở. Nó được xây dựng để cung cấp cơ sở hạ tầng chung cho các ứng dụng thị giác máy tính và đẩy nhanh việc sử dụng nhận thức máy móc trong các sản phẩm thương mại. OpenCV chứa hơn 2.500 thuật toán được tối ưu hóa cho thị giác máy tính thời gian thực và được sử dụng tích cực bởi một cộng đồng lớn gồm các lập trình viên, nhà nghiên cứu và các ngành công nghiệp trên toàn thế giới.

Thư viện có các giao diện cho C++, Python, Java và MATLAB/Octave và được sử dụng rộng rãi trong các lĩnh vực thị giác máy tính khác nhau, chẳng hạn như:

  • Xử lý hình ảnh 2D và 3D
  • Nhận dạng khuôn mặt và phát hiện khuôn mặt
  • Phát hiện và nhận dạng đối tượng
  • Học máy

Đây là một ví dụ đơn giản sử dụng OpenCV trong C++ để đọc và hiển thị một hình ảnh:

Điều kiện tiên quyết: Cài đặt OpenCV cho C++ trên hệ thống của bạn (ví dụ: bằng cách làm theo hướng dẫn cài đặt chính thức).

#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
 
int main(int argc, char** argv) {
    if(argc != 2) {
        std::cout << "Usage: display_image ImageToLoadAndDisplay" << std::endl;
        return -1;
    }
 
    cv::Mat image;
    image = cv::imread(argv[1], cv::IMREAD_COLOR);
 
    if(!image.data) {
        std::cout << "Could not open or find the image" << std::endl;
        return -1;
    }
 
    cv::namedWindow("Display window", cv::WINDOW_AUTOSIZE);
    cv::imshow("Display window", image);
    cv::waitKey(0);
 
    return 0;
}

Ví dụ này đọc một hình ảnh từ đường dẫn đầu vào đã cho (argv[1]) và hiển thị nó trong một cửa sổ. Hàm cv::imread() được sử dụng để đọc hình ảnh và hàm cv::imshow() hiển thị hình ảnh đó trong cửa sổ đã tạo.

Nhớ biên dịch mã code, liên kết các thư viện cần thiết:

g++ -o display_image display_image.cpp `pkg-config --cflags --libs opencv4`

Và chạy tệp thực thi với đường dẫn hình ảnh làm đối số:

./display_image path/to/image.jpg

Để biết thêm các ví dụ nâng cao và tài liệu chi tiết về cách sử dụng OpenCV, vui lòng truy cập tài liệu OpenCV chính thức.