Computer >> Máy Tính >  >> Lập trình >> C ++

Làm thế nào để làm việc với Sự kiện chuột bằng OpenCV trong C ++?

Sự kiện chuột là một trong những tính năng hữu ích nhất của OpenCV. Trong OpenCV, chúng ta có thể theo dõi vị trí của con trỏ chuột và theo dõi các lần nhấp chuột (nhấp chuột phải, trái và giữa). OpenCV có một ứng dụng rộng rãi trong lĩnh vực robot và thị giác máy tính. Trong rô bốt và máy tính, con trỏ chuột và các cú nhấp chuột thường được sử dụng.

Ở đây chúng ta sẽ hiểu cách theo dõi vị trí của con trỏ chuột trên hình ảnh và theo dõi các lần nhấp.

Chương trình sau đây trình bày cách theo dõi vị trí của con trỏ chuột và các lần nhấp.

Ví dụ

#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){ //function to track mouse movement and click//
   if (event == EVENT_LBUTTONDOWN){ //when left button clicked//
      cout << "Left click has been made, Position:(" << x << "," << y << ")" << endl;
   } else if (event == EVENT_RBUTTONDOWN){ //when right button clicked//
      cout << "Rightclick has been made, Position:(" << x << "," << y << ")" << endl;
   } else if (event == EVENT_MBUTTONDOWN){ //when middle button clicked//
      cout << "Middleclick has been made, Position:(" << x << "," << y << ")" << endl;
   } else if (event == EVENT_MOUSEMOVE){ //when mouse pointer moves//
      cout << "Current mouse position:(" << x << "," << y << ")" << endl;
   }
}
int main() {
   Mat image = imread("bright.jpg");//loading image in the matrix//
   namedWindow("Track");//declaring window to show image//
   setMouseCallback("Track", locator, NULL);//Mouse callback function on define window//
   imshow("Track", image);//showing image on the window//
   waitKey(0);//wait for keystroke//
   return 0;
}

Đầu ra

Làm thế nào để làm việc với Sự kiện chuột bằng OpenCV trong C ++?

Làm thế nào để làm việc với Sự kiện chuột bằng OpenCV trong C ++?