opencv 鼠标响应处理

有时候在opencv中响应鼠标点击,以来处理一些事情,以下是一些心得:

1.打开鼠标响应

     cvNamedWindow("相机1",CV_WINDOW_AUTOSIZE); //窗体的命名
     cvSetMouseCallback( "相机1", mouseHandler, NULL ); //*需要鼠标响应的窗体名字同上 * mouseHandler 为鼠标处理函数。

2.鼠标响应函数

void mouseHandler(int event, int x, int y, int flags, void *param){ //x,y为鼠标位置坐标
  switch( event ){
  case CV_EVENT_MOUSEMOVE:
     鼠标移动处理
    break;

 case CV_EVENT_LBUTTONDOWN:
    鼠标左键按下处理
    break;
 case CV_EVENT_LBUTTONUP:
  鼠标左键释放处理
    break;
 case CV_EVENT_RBUTTONDOWN:
右键按下处理
 break;
//case CV_EVENT_MBUTTONDOWN:


  }
}

可以通过以下内容选取不同的事件

   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


3. 主函数

  main函数中 加个while循环便可等待鼠标响应处理。

4.实际应用:

 最近在模板选取时,需要用鼠标画框选取模板图,通过左键画框,右键取消画框。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值