如何使用鼠标绘制一个矩形

 时间:2024-09-25 22:26:29

今天的这篇经验和大家聊一聊关于如何使用鼠标绘制一个矩形的问题,希望能够帮助到有需要的朋友。

方法/步骤

1、鼠标相应事件采用了回调函数的方式来处理。为了可以响应鼠标事件,首先创建一个回调函数,使得鼠标事件(如移动、点击等)发生时OpenCV可以调用这个函数。创建这个函数之后,还要在OpenCV中注册这个函数。鼠标事件的回调函数格式为:

如何使用鼠标绘制一个矩形

2、当回调函数被调用时,OpenCV就给上述脑栲葱蛸函数传入合适的值,其中参数event为具体鼠标事件(是一系列以CV_EVENT_开头鹚兢尖睁的宏定义,例如鼠标移动事件为CV_EVENT_MOUSEMOVE)。参数x、y为鼠标位置像素坐标值。参数flags指定了事件发生时的不同状态(如是否按下SHIFT键等,是一系列以CV_EVENT_FLAG_开头的宏定义)。参数param指向任何结构来传递额外的参数信息。

如何使用鼠标绘制一个矩形

3、第一个参数window_name指定了要注册到的窗口。第二个参数是回调函数。第三个参数用来传递额外的信息给上面的void*param参数。以下是一个简单的例程,为了说明清楚做了尽可能详尽的注释。

如何使用鼠标绘制一个矩形

4、值得注意的是,在创建画矩形的背景(IplImage类的image)后,又将其赋给另一个同类艏婊锬曛矩阵temp,目的是避免移动鼠标的过程中一系列矩形留在画板呼鳏魇杰上。具体实现的流程如下:1.鼠标移动,触发调用回调函数和绘制矩形函数,在temp上画矩形;2.在窗口中显示temp;3.用image更新temp,回到流程1。这样,在鼠标移动的过程中,只存在一个随鼠标移动的矩形,而不是一系列矩形,松开鼠标左键即完成绘制,示意图如下:

如何使用鼠标绘制一个矩形

5、在循环中每次更新背景

如何使用鼠标绘制一个矩形

iPhone/iPad版《村庄日记》收获食物和矿石 用了5步就把宝宝宴酒店预订好了 红雀浏览器如何开启重启浏览器重置窗口 美女的秀发:PS纯色背景抠图
热门搜索
奥特曼搞笑图片 少女漫画邪恶漫画 苹果9图片 男同志gay漫画网站 沼泽地图片