如何在 C++ 中使用 OpenCV 处理鼠标事件?
opencvc++server side programmingprogramming
鼠标事件是 OpenCV 最有用的功能之一。在 OpenCV 中,我们可以跟踪鼠标指针的位置以及点击操作(右键、左键和中键)。OpenCV 在机器人技术和计算机视觉领域有着广泛的应用。在机器人技术和计算机视觉领域,跟踪鼠标指针和点击操作非常常用。
本文我们将了解如何在图像上跟踪鼠标指针的位置以及点击操作。
以下程序演示了如何跟踪鼠标指针的位置和点击操作。
示例
#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 << < "左键点击已完成,位置:(<<< x << < ",<<< y << < ")<< endl; } else if (event == EVENT_RBUTTONDOWN){ //当鼠标右键被点击时// cout << "已执行右键单击,位置:(" << x << ",<< y << ")" << endl; } else if (event == EVENT_MBUTTONDOWN){ //鼠标中键被点击时// cout << "已执行鼠标中键单击,位置:(" << x << ",<< y << ")" << endl; } else if (event == EVENT_MOUSEMOVE){ //鼠标指针移动时// cout << "当前鼠标位置:(<<< x << < ",<<< y << < ")<<< endl; } } int main() { Mat image = imread("bright.jpg");//将图像加载到矩阵中// namedWindow("Track");//声明显示图像的窗口// setMouseCallback("Track", locator, NULL);//定义窗口上的鼠标回调函数// imshow("Track", image);//在窗口上显示图像// waitKey(0);//等待按键// return 0; }