Opencv鼠标事件

opencv的鼠标事件主要涉及两个函数

回调函数cvSetMouseCallback

void cvSetMouseCallback( const char* window_name, CvMouseCallback on_mouse, void* param CV_DEFAULT(NULL));

window_name:鼠标执行的窗口名

on_mouse:每次指定窗口鼠标事件发生时被调用的函数指针

param :传递到回调函数的参数


on_mouse的原型

void Foo(int event, int x, int y, int flags, void* param);

param:传递到cvSetMouseCallback函数调用的参数

x、y:鼠标指针在图像坐标系的坐标

event: CV_EVENT_*变量之一

enum
{
    CV_EVENT_MOUSEMOVE      =0,//滑动
    CV_EVENT_LBUTTONDOWN    =1,//左键点击
    CV_EVENT_RBUTTONDOWN    =2,//右键点击
    CV_EVENT_MBUTTONDOWN    =3,//中键点击
    CV_EVENT_LBUTTONUP      =4,//左键放开
    CV_EVENT_RBUTTONUP      =5,//右键放开
    CV_EVENT_MBUTTONUP      =6,//中键放开
    CV_EVENT_LBUTTONDBLCLK  =7,//左键双击
    CV_EVENT_RBUTTONDBLCLK  =8,//右键双击
    CV_EVENT_MBUTTONDBLCLK  =9//中键双击
};

flags:是CV_EVENT_FLAG的组合

enum
{
    CV_EVENT_FLAG_LBUTTON   =1,//左键拖曳
    CV_EVENT_FLAG_RBUTTON   =2,//右键拖曳
    CV_EVENT_FLAG_MBUTTON   =4,//中键拖曳
    CV_EVENT_FLAG_CTRLKEY   =8,//按CTRL
    CV_EVENT_FLAG_SHIFTKEY  =16,//按SHIFT
    CV_EVENT_FLAG_ALTKEY    =32//按ALT
};
文章来自:http://blog.csdn.net/u013298384/article/details/45418069
© 2021 jiaocheng.bubufx.com  联系我们
ICP备案:鲁ICP备09046678号-3