Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Cách xử lý sự kiện chuột (Mouse Events) trong OpenCV C++


Giới thiệu

Mouse Events là tính năng hữu ích của OpenCV: theo dõi vị trí con trỏ chuột và các sự kiện click (trái, phải, giữa). Ứng dụng rộng trong robotics, computer vision.

Chương trình demo Mouse Events

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

void locator(int event, int x, int y, int flags, void* userdata) {
    if (event == EVENT_LBUTTONDOWN)
        cout << "Click trái tại: (" << x << "," << y << ")" << endl;
    else if (event == EVENT_RBUTTONDOWN)
        cout << "Click phải tại: (" << x << "," << y << ")" << endl;
    else if (event == EVENT_MBUTTONDOWN)
        cout << "Click giữa tại: (" << x << "," << y << ")" << endl;
    else if (event == EVENT_MOUSEMOVE)
        cout << "Vị trí chuột: (" << x << "," << y << ")" << endl;
}

int main() {
    Mat image = imread("bright.jpg");
    namedWindow("Track");
    setMouseCallback("Track", locator, NULL);
    imshow("Track", image);
    waitKey(0);
    return 0;
}

Kết quả

Cửa sổ hiển thị ảnh. Khi di chuyển chuột hoặc click, console in ra tọa độ (x,y) và loại sự kiện.