每天要以两倍的速度学习

不想平凡所以必须Pow(努力,n)(n>1)

导航

OpenCV中的鼠标操作

OpenCV中的鼠标操作

OpenCV中鼠标有4种类型的操作,分别是:按下(Down),放开(Up),移动(Move),双击(DoubleClick),鼠标在窗口中操作的时候会发生其中一个或几个操作。

而这些操作都是由OpenCV内部定义的回调函数:

void (*CvMouseCallback )(int event, int x, int y, int flags, void* param)完成的。

1、event:其中event表示事件,回调过程中发生的是鼠标按下或放开、移动等操作。

2、x,y:表示鼠标此刻的在窗口中的位置信息。

3、flags:表示拖拽、组合键等标志,与event搭配使用

4、param:表示传入或传出的数据

只要将操作方法定义成CvMouseCallback即可实现任何形式的鼠标操作

Event的可选项及含义

功能

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_LBUTTON

1

 左键拖曳

CV_EVENT_FLAG_RBUTTON

2

右键拖曳

CV_EVENT_FLAG_MBUTTON 

4

中键拖曳

CV_EVENT_FLAG_CTRLKEY 

8~15

Ctrl不放事件

CV_EVENT_FLAG_SHIFTKEY

16~31

Shift不放事件

CV_EVENT_FLAG_ALTKEY

32~39

Alt不放事件

 

然后使用cvSetMouseCallback()进入鼠标操作的入口方法进行回调,但需要传入一个handler,也就是事件驱动的子程序名称,Handler必须是CvMouseCallback函数指针类型.

cvSetMouseCallback("窗口名称",自行定义子程序名称,自行定义子程序的传入传出参数);

 

posted on 2013-08-11 16:59  Duke D  阅读(1687)  评论(0编辑  收藏  举报