如何在 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;
}

输出


相关文章