C++ OpenCV之鼠标响应事件

前言

在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-

本文分享自微信公众号 - 微卡智享(VaccaeShare)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-01-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏量子位

MIT&谷歌大脑用AI破解失传的古代文字,被称“现代版罗塞塔石碑”丨ACL 2019

漫漫尘埃下,掩藏了许多曾经辉煌灿烂古代文明,但我们现在却无法清晰地知道,这些地方究竟发生了什么。

10220
来自专栏HR大数据

小白入门:学习Python还是R

各位HR宝宝们在研究Anaconda的时候或许已经发现了,Anaconda Navigator的页面中有一个尚未安装的应用——R studio

12620
来自专栏百味科研芝士

手把手教你比较两个模型的预测能力

各位科研芝士的朋友,大家好。最近学习到用NRI进行模型比较,起初当听到NRI这个词的时候,我的表情可能是这样的。

17120
来自专栏数据分析1480

描述数据分布特征的五种可视化图形

中医上讲看病四诊法为:望闻问切。而数据分析师分析数据的过程也有点相似,我们需要望:看看数据长什么样;闻:仔细分析数据是否合理;问:针对前两步工作搜集到的问题与业...

47030
来自专栏数据分析1480

我的5年Python7年R,述说她们的差异在哪里?

首次接触R语言是在2012年读研的时候,有一门课程是统计分析与R语言,清晰地记得期末考试时,由于把答案给同学抄,最终落了个重考的后果(重考92分)。那个时候真的...

13730
来自专栏百味科研芝士

手把手教你做倾向评分匹配

各位科研芝士的朋友大家好,今天和大家分享一下新的知识点—PSM,或许大家早已听过这个名词了,或许你对它还是半知半解,不过没关系,希望可以通过今天的帖子帮助你对该...

29360
来自专栏HR大数据

Anaconda:剪切板数据读取(Python&R)

Python和R都是免费的开源软件,这类软件有一个对小白新手非常友好的特点,那就是……哪里不会查哪里,随用随学……所以,别的理论不说现在要开始进行数据分析啦~

17140
来自专栏FreeRonin

一些特别实用的在线工具分享给你!

这是一个在线的PS工具,很多人学习专业的Photoshop有难度,那么可以试试这个简单版的在线PS。

13030
来自专栏数据猿

深入机器学习系列之Factorization Machines & Online Optimization

今日头条丨一点资讯丨腾讯丨搜狐丨网易丨凤凰丨阿里UC大鱼丨新浪微博丨新浪看点丨百度百家丨博客中国丨趣头条丨腾讯云·云+社区

12320
来自专栏数据分析1480

R语言 常见函数知识点梳理与解析 | 精选分析

R语言 控制流:for、while、ifelse和自定义函数function|第5讲

10520

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励