前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++ OpenCV之鼠标响应事件

C++ OpenCV之鼠标响应事件

作者头像
Vaccae
发布2019-07-24 13:18:45
2.5K0
发布2019-07-24 13:18:45
举报
文章被收录于专栏:微卡智享微卡智享

前言

在OpenCV中也存在鼠标的操作,今天我们先介绍一下鼠标中的操作事件,用于为之后的GrabCut分割来做个前提。


API

void setMousecallback(const string& winname, MouseCallback onMouse, void* userdata=0)

参数说明: winname:窗口的名字 onMouse:鼠标响应函数,回调函数。指定窗口里每次鼠标时间发生的时候,被调用的函数指针。 这个函数的原型应该为void on_Mouse(int event, int x, int y, int flags, void* param); userdate:传给回调函数的参数


代码实现

我们再新建一个项目名为opencv--Grabcut,按照配置属性(VS2017配置OpenCV通用属性),然后在源文件写入#include和main方法.

在上图中我们直接把鼠标的回调事件已经写出来了,这个不是重点,重点是我们的鼠标事件。

接下来我们就开始鼠标事件的重点:

定义基本的参数及方法

上图中我们定义的显示的标题为src,这个就不多讲了,然后定义了两个Mat,一个矩形rect。最下面还有个的showimage()的方法,这个方法就是怎么显示图像的。

最重要的方法是onMouse(int event, int x,int y ,int flags, void* param),这个方法用于处理鼠标的操作。

鼠标的操作逻辑

鼠标分别写好了左键按下时,左键按住不动并移动鼠标时和左键松开时的三个事件。

图像显示方法

我们把源图像src复制到result后,然后用红线在result上绘制我们选项的矩形,然后显示出result。


视频演示

<br />

最终鼠标画完的显示效果


-END-

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微卡智享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档