前提是正确配置好了OpenCV2.3.1,创建一个Win32控制台应用程序空工程,新建一个main.cpp将下面代码写入,即可实现鼠标点击获取:
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <iostream>
using namespace std;
struct MouseEvent
{
MouseEvent() { event = -1; buttonState = 0; }
cv::Point pt;
int event;
int buttonState;
};
static void onMouse(int event, int x, int y, int flags, void* userdata)
{
MouseEvent* data = (MouseEvent*)userdata;
data->event = event;
data->pt = cv::Point(x,y);
data->buttonState = flags;
if(event==CV_EVENT_LBUTTONDOWN)
cout<<"LDOWN ("<<x<<","<<y<<")"<<endl;
else if(event==CV_EVENT_LBUTTONUP)
cout<<"LUP ("<<x<<","<<y<<")"<<endl;
}
int main()
{
MouseEvent mouse;
cv::namedWindow("button");
cv::setMouseCallback("button",onMouse,&mouse);
cv::Mat image=cv::Mat::zeros(1024,768,CV_8UC3);
cv::imshow("button",image);
cout<<"click"<<endl;
cv::waitKey();
}
本文介绍了一个使用OpenCV 2.3.1版本的示例程序,通过该程序可以实现在窗口中监听并响应鼠标点击事件,获取鼠标点击位置坐标,并在控制台输出左键按下和释放的坐标。
1278

被折叠的 条评论
为什么被折叠?



