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("窗口名称",自行定义子程序名称,自行定义子程序的传入传出参数);

     

  • 相关阅读:
    Redis之数据类型大全
    基于服务的SOA架构
    mybatis_个人总结
    mybatis_开发篇
    mybatis_基础篇
    mybatis_常用标签
    mybatis_映射查询
    solr_架构案例【京东站内搜索】(附程序源代码)
    Solr_全文检索引擎系统
    zabbix监控搭建步骤
  • 原文地址:https://www.cnblogs.com/miracled/p/3251639.html
Copyright © 2011-2022 走看看