zoukankan      html  css  js  c++  java
  • 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("窗口名称",自行定义子程序名称,自行定义子程序的传入传出参数);

     

  • 相关阅读:
    c语言求最大公约数和最小公倍数(转)
    git 提交去除每次输账号密码
    phpstorm使用zen coding 快速编辑补全html/css代码
    YII2.0使用ActiveForm表单(转)
    php面向对象之trait
    php操作redis(转)
    模块
    列表生成式 与生成器表达式
    三元表达式,递归,内置函数
    面向过程的编程思想
  • 原文地址:https://www.cnblogs.com/miracled/p/3251639.html
Copyright © 2011-2022 走看看