OpenCV:鼠标画直线并显示坐标

【天问】存于咸阳宫内,为秦始皇的配剑。当一个人成为天下至尊,权利已是他手中最锋利的宝剑,所谓“天问”不正是一种举剑问天、舍我其谁的王者气势的体现吗?

【鼠标操作】

1、回调函数

CV_EXPORTS void setMouseCallback(const string& winname, MouseCallback onMouse, void* userdata = 0);

回调函数的作用:每次在窗口上进行鼠标操作,都会调用此函数,放在waitKey()函数前面,保证能够回调。

函数参数介绍:

​const string& winname:windows视窗名称,对名为winname的视窗进行鼠标监控。
MouseCallback onMouse:鼠标响应处理函数,监听鼠标的点击,移动,松开,判断鼠标的操作类型,并进行响应的函数处理。
void* userdata = 0 :鼠标响应处理函数的ID,与鼠标相应处理函数相匹配就行,暂时只用到默认为0的情况。

 操作实例

namedWindow("src", WINDOW_AUTOSIZE);//WINDOW_AUTOSIZE:系统默认,显示自适应
src = imread("0.jpg", 1);//1:为原图颜色,0:为灰度图,黑白颜色    
src.copyTo(dst);   
setMouseCallback("src", on_mouse, 0);

实例解析

(1)src:创建的窗口的名字,跟namedWindow("src", WINDOW_AUTOSIZE);是对应的,如果不先创建一个窗口,那么后面的鼠标就没法操作了。
(2)on_mouse:自己创建的一个鼠标响应处理函数名(调用函数),跟一般的调用函数一样。

【渊虹】人有信仰,剑亦有剑魂,当天下第一剑客盖聂,遇到天问之下最著名的宝剑渊虹,绝世搭档由此诞生。从此,盖聂无论是帮助秦始皇消灭刺杀者,还是反叛秦国流亡天下,渊虹都一直与他为伴,如今虽断,不过相信总有一天渊虹能够完

2、鼠标响应处理函数

void on_mouse(int event,int x,int y,int flags,void *ustc)

函数参数介绍:

​​int event:鼠标操作时间的整数代号,在opencv2.4.5中,event鼠标事件总共有10种,从0-9依次代表如下:

#define CV_EVENT_MOUSEMOVE 0            滑动
#define CV_EVENT_LBUTTONDOWN 1          左键点击
#define CV_EVENT_RBUTTONDOWN 2          右键点击
#define CV_EVENT_MBUTTONDOWN 3          中间点击
#define CV_EVENT_LBUTTONUP 4            左键释放
#define CV_EVENT_RBUTTONUP 5            右键释放
#define CV_EVENT_MBUTTONUP 6            中间释放
#define CV_EVENT_LBUTTONDBLCLK 7        左键双击
#define CV_EVENT_RBUTTONDBLCLK 8        右键双击
#define CV_EVENT_MBUTTONDBLCLK 9        中间释放

 int x,int y:代表鼠标位于窗口的(x,y)坐标位置,窗口左上角默认为原点,向右为x轴,向下为y轴;

 int flags:代表鼠标的拖拽事件,以及键盘鼠标联合事件,总共有32种事件,依次如下: 

#define CV_EVENT_FLAG_LBUTTON 1           左键拖拽
#define CV_EVENT_FLAG_RBUTTON 2           右键拖拽
#define CV_EVENT_FLAG_MBUTTON 4           中间拖拽
#define CV_EVENT_FLAG_CTRLKEY 8     (8~15)按Ctrl不放事件
#define CV_EVENT_FLAG_SHIFTKEY 16   (16~31)按Shift不放事件
#define CV_EVENT_FLAG_ALTKEY 32       (32~39)按Alt不放事件

void *ustc:函数参数的编号(暂时用不到)。

操作实例

​​if (event == EVENT_LBUTTONDOWN)
{ //左键按下;
}
else if (event == EVENT_MOUSEMOVE && (flags & EVENT_FLAG_LBUTTON))
{  // 鼠标移动;
}
else if (event == EVENT_LBUTTONUP)
{   //左键弹起;
}​

鼠标操作除了用if().......else if()............之外,还可以用switch() case x:break;来写。

【太阿】儒家圣使伏念的佩剑。据剑谱介绍,太阿乃诸侯威道之剑,其剑气存于天地之间,只有内心之威才能催动剑气之威。太阿的现任主人儒家掌门伏念,器宇轩昂,乃是非常有威仪之人,而他独创圣王剑法,与太阿的剑气可谓相得益彰,能够找到这样一位主人,乃太阿之幸。

【显示坐标】

函数实例

​sprintf(temp_1,"x:%d,y:%d",x,y);           putText(src,temp_1,Point(x,y),FONT_HERSHEY_SIMPLEX,0.5,Scalar(0,255,255));

实例解析

(1)把要输出的内容给字符串(数组)

sprintf(temp_1,"x:%d,y:%d",x,y);

temp_1:字符串(char temp_1[20];)

x,y:要输出到图像上的坐标值

(2)把文本输出到图像上

putText(src,temp_1,Point(x,y),FONT_HERSHEY_SIMPLEX,0.5,Scalar(0,255,255));

src:要显示的图像

temp_1:字符串(char temp_1[20];)

Point(x,y):要输出到图像上的位置

FONT_HERSHEY_SIMPLEX:字体

0.5:大小,可以随意改,找最合适的

Scalar(0,255,255):黄色

【干将莫邪】   干将、莫邪是两把剑,但是没有人能分开它们。干将、莫邪是两个人,同样,也没有人能将他们分开。干将、莫邪是干将、莫邪铸的两把剑。干将是雄剑,莫邪是雌剑。干将、莫邪是一把挚情之剑。 

 

【画线操作】

画线使用line函数就简单多了,只需要知道起点和终点就行了。

函数实例

line(src, pre_pt, cur_pt, Scalar(0, 255,0), 1, CV_AA, 0);

函数解析

src:源图像

pre_pt:起点坐标(第一次按下鼠标产生的点)

cur_pt:终点坐标(鼠标移动后,最后停下的点)

Scalar(0, 255,0):线的颜色

0为黑色,255为白色,由RGB在一起组合成各种颜色

颜色组合列表:

Scalar(0, 0,0)---------------------------------------黑色
Scalar(0, 0,255)------------------------------------红色
Scalar(0, 255,0)------------------------------------绿色
Scalar(255,0,0)-------------------------------------蓝色
Scalar(255, 255,0)---------------------------------青色
Scalar(255, 0,255)---------------------------------紫色
Scalar(0, 255,255)---------------------------------黄色
Scalar(255, 255,255)------------------------------白色

 thickness:线条宽度

lineType:线型

线型列表:      

8(or omitted) - 8-connected line.
4 - 4-connected line.
CV_AA- antialiased line.

【雪霁】雪霁乃道家历代供奉的名剑,因道家门派分立,被各派轮流供奉,如今为人宗掌门逍遥子佩剑。雪霁是目前已公布十大名剑中最“纤细”的一柄,这正符合道家思想中以柔克刚的理念,同时,其因纤细,更不容易给对手造成致命的伤口,也是道家仁爱之心的一种体现。因此,雪霁与其说是一柄剑,倒不如说是一种道家精神的象征。

【画圆操作】

由于鼠标操作时,左键按下要有一个标记,也就一点,而我们通常的做法就是画一个半径小点的圆做点。

函数实例

circle(src, cur_pt, 3, Scalar(255,0, 0), CV_FILLED, CV_AA, 0);

实例解析

src:源图像

cur_pt:实时坐标点,作为圆的圆心

radius:圆的半径

Scalar(255,0, 0):颜色,跟上面一样

thickness:线粗,如果值是正,圆外轮廓的厚度,如果值是负,表示要绘制一个填充圆

lineType线类型

【水寒】大师徐夫子专门根据高渐离绝技“易水寒”特点所铸,可以在他的内力催动下凝水为冰,威力更甚,因此水寒剑虽名列第七,但是对于高渐离来说却是最合适的。

【具体操作流程】

【湛卢】湛泸是一把剑,更是一只眼睛。湛泸:湛湛然而黑色也。这把通体黑色浑然无迹的长剑让人感到的不是它的锋利,而是它的宽厚和慈祥。它就像上苍一只目光深邃、明察秋毫的黑色的眼睛,注视着君王、诸侯的一举一动。君有湛泸剑是一把仁道之剑。

【程序源码】

/**
@ 1、读取读片
@ 2、显示图片,延迟卡死
@ 3、一直进行鼠标操作,进行绘图,显示图片
*/
#include<opencv2/core/core.hpp>
#include<opencv2/imgproc/imgproc.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<stdio.h>
#include <string>
using namespace cv;Mat src;
Mat dst;void on_mouse(int event, int x, int y, int flags, void* ustc)
{static Point pre_pt ;static Point cur_pt ;char temp_1[20];// 如果要在图片的任意位置作为起始点,这两步就不需要了//pre_pt=Point(-1,-1);//cur_pt=Point(-1,-1);if (event == CV_EVENT_LBUTTONDOWN){dst.copyTo(src);pre_pt = Point(x, y);//sprintf(temp_1,"x:%d,y:%d",x,y);//xiaolei=Rect(x1,y1,0,0);//putText(src,temp_1,Point(x,y),FONT_HERSHEY_SIMPLEX,0.5,Scalar(255,255,255));circle(src, pre_pt, 0.5, cvScalar(255, 0, 0), CV_FILLED, CV_AA, 0);imshow("src", src);}else if (event == EVENT_MOUSEMOVE && (flags & EVENT_FLAG_LBUTTON)){dst.copyTo(src);cur_pt = Point(x, y);sprintf(temp_1,"x:%d,y:%d",x,y);//xiaolei=Rect(x1,y1,0,0);putText(src,temp_1,Point(x,y),FONT_HERSHEY_SIMPLEX,0.5,Scalar(0,255,255));line(src, pre_pt, cur_pt, cvScalar(0, 255,0), 1, CV_AA, 0);imshow("src", src);}else if (event == CV_EVENT_LBUTTONUP){dst.copyTo(src);cur_pt = Point(x, y);sprintf(temp_1,"x:%d,y:%d",x,y);//xiaolei=Rect(x1,y1,0,0);putText(src,temp_1,Point(x,y),FONT_HERSHEY_SIMPLEX,0.4,Scalar(0,255,255));circle(src, cur_pt, 3, cvScalar(255,0, 0), CV_FILLED, CV_AA, 0);line(src, pre_pt, cur_pt, cvScalar(0, 255,0), 1, CV_AA, 0);imshow("src", src);}
}int main()
{//注意:这一步必须要有,不然进行不了鼠标操作namedWindow("src", WINDOW_AUTOSIZE);//WINDOW_AUTOSIZE:系统默认,显示自适应src = imread("0.jpg", 1);//1:为原图颜色,0:为灰度图,黑白颜色src.copyTo(dst);setMouseCallback("src", on_mouse, 0);imshow("src", src);waitKey(0);return 0;
}

【赤霄】汉高祖刘邦斩蛇所用之剑。这是一把饰有七彩珠、九华玉的寒光逼人、刃如霜雪的宝剑,剑身镌刻两个篆字:赤霄。汉高祖刘邦凭此剑于大泽怒斩白蛇,开始其帝王一生。赤霄剑是一把帝道之剑。

【效果图】

参考博客

http://blog.csdn.net/thefutureisour/article/details/7523925
http://www.cnblogs.com/techdreaming/p/5193835.html
​http://blog.csdn.net/NCHFGFB/article/details/51516030

【凌虚】剑谱排名第十位宝剑凌虚,为齐鲁三杰中张良的佩剑。此剑的名字也侧面反映了张良的能力,身怀经天纬地之才,胸藏救世济民之志。凌虚虽为神兵利器,但是却未曾沾染血腥,以剑载志,以剑明心,才是张良的真正目的。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/42764.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

神七问天 书中国航天史诗

2008年9月25日晚上9时10分&#xff0c;“神七”腾空而起&#xff0c;不到半个小时&#xff0c;北京航天飞控中心宣布“神七”发射成功。执行神舟七号载人航天飞行任务的航天员翟志刚、刘伯明、景海鹏出征前&#xff0c;向祖国和人民致以庄严的军礼。 “神舟七号”终于揭开了神秘…

C++ 组合模式

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 组合模式(Composite Pattern)组合多个对象形成树形结构以表示具有“整体-部分”关系的层次结构。组合模式对单个对象(即:叶子构件)和组合对象(即:容器构件)的使用具有一致性,组合模式又被称为“整体…

分享打造爆款书的方法,同时聊聊出版图书中的哪些事和哪些坑

想想若干年前&#xff0c;我通过一位非常热情的图书公司的编辑&#xff0c;出版了我的第一本计算机图书&#xff0c;从此后一发不可收拾&#xff0c;最近2年出版了2本&#xff0c;有1本已经完稿&#xff0c;还有两本尚在写作途中。确实&#xff0c;出版出一件名利双收的事&…

腾讯面经来了

前言 今天给大家分享自己投递腾讯上海IEG后台开发职位的面试经历分享。 腾讯感觉整个流程比较慢&#xff0c;这周才刚刚走完HR面&#xff0c;一二两轮技术面在同一周&#xff0c;三面隔一周&#xff0c;HR面又隔一周&#xff0c;但是每轮面试官的态度还是非常棒的&#xff0c;面…

AliCoCo:阿里电商知识图谱核心技术揭秘 Alibaba E-commerce Cognitive Concept Net

电商技术进入认知智能时代&#xff0c;在搜索推荐等电商核心业务场景上使用电商认知图谱&#xff0c;将给亿万用户带来更加智能的购物体验。 本文介绍 AliCoCo 的背景、定义、底层设计、构建过程中的一些算法问题&#xff0c;以及在电商搜索和推荐上的广泛应用&#xff0c;并分…

天池NLP大赛来了!

Datawhale赛事 主办方&#xff1a;阿里云天池、问天引擎 “阿里灵杰”问天引擎电商搜索算法赛已在阿里云天池平台拉开帷幕。本次比赛由阿里巴巴集团智能引擎事业部主办&#xff0c;阿里云天池平台承办&#xff0c;诚邀社会各界开发者共同探索智能零售场景AI新动力&#xff01;…

“问天号”已就位!喻京川2013年畅想的《中国空间站》,即将启航星辰大海!...

你是否曾震撼于《星际迷航》中恢弘的太空场景&#xff1f;是否曾在曲折而唯美的光线中想象过黑洞的模样&#xff1f;或许你还未曾深入了解过太空美术&#xff0c;但它离我们从不遥远。 太空美术&#xff0c;描绘了人类对太空最真实的畅想。 2013年&#xff0c;现为北京天文馆画…

太强了!阿里开源自研高性能核心搜索引擎Havenask

编辑 &#xff5c; Tina 近期&#xff0c;阿里开源了自研的大规模分布式搜索引擎 Havenask&#xff08;内部代号 HA3&#xff09;。 Havenask 是阿里巴巴内部广泛使用的大规模分布式检索系统&#xff0c;支持了淘宝、天猫、菜鸟、优酷、高德、饿了么等在内整个阿里的搜索业务&a…

ThinkServer SR590 V2(联想问天系列)CPU在BMC显示使用率高,通过关闭Power下的C-States解决

ThinkServer SR590 V2&#xff08;联想问天系列&#xff09;CPU在BMC显示使用率高&#xff0c;通过关闭Power下的C-States解决 关键词&#xff1a;CPU CPU使用率比较高 CPU使用率 BMC使用率高 CPU阈值 摘要&#xff1a;ThinkServer SR590 V2&#xff08;联想问天系列&#xff…

聚观早报 | “问天” 实验舱成功升天;微博将显示MCN机构名称

今日要闻&#xff1a;“问天” 实验舱成功升天&#xff1b;微博账号将显示MCN机构名称&#xff1b;苹果将推出Apple Watch Pro&#xff1b;英孚教育辟谣无法运营&#xff1b;易趣网宣布8月12日关闭 “问天” 实验舱成功升天 2022年7月24日14点22分&#xff0c;搭载中国问天实验…

阿里灵杰问天引擎电商搜索 -- 数据说明

比赛数据 corpus.tsv 介绍&#xff1a;语料库&#xff0c;从淘宝商品搜索的标题数据随机抽取doc&#xff0c;量级约100万。 格式&#xff1a;doc_id从1开始编号的&#xff0c;title是是商品标题。 1 铂盛弹盖文艺保温杯学生男女情侣车载时尚英文锁扣不锈钢真空水杯 2 可爱虎…

“阿里灵杰”问天引擎电商搜索算法赛 - 数据说明2022

任务和主题 本次题目围绕电商领域搜索算法&#xff0c;开发者们可以通过基于阿里巴巴集团自研的高性能分布式搜索引擎问天引擎&#xff08;提供高工程性能的电商智能搜索平台&#xff09;&#xff0c;可以快速迭代搜索算法&#xff0c;无需自主建设检索全链路环境。 本次评测…

使用postman进行post请求传递中文导致后台接收乱码的问题

使用postman进行post请求传递中文导致后台接收乱码的问题 1.个人猜测估计是如果header里不指明编码的话&#xff0c;经过tomcat服务器时会导致转换乱码信息&#xff0c;这样就算你在filter里配置了EncodingFilter相关的过滤器也无济于事。。 解决方法就是在header指定下charse…

TortoiseGit安装中文语言包无法切换语言

TortoiseGit安装中文语言包切换不了中文&#xff0c;网上有很多解决方案思路 1、检查TortoiseGit版本要和语言包版本一致或语言包版本要高于TortoiseGit版本 2、查看语言包版本就莫名其妙的好了 3、主要原因是TortoiseGit默认的是US语言&#xff0c;安装语言包之后语言包不会…

TortoiseSVN 设置中文语言包

简介 简明快速讲解中文安装的全过程。 版权所有&#xff1a;_ OE _, 转载请注明出处&#xff1a;http://blog.csdn.net/csnd_ayo 简介相关下载安装设置总结解惑 相关 TortoiseSVN 下载与安装 [立即前往] 下载 简体中文包 64 位 [一键下载] [百度云下载] [官网下载] 简…

快速生成数据库ER图的方式

dbdiagram 简述 快速简单的数据库模型设计工具&#xff0c;可以帮助您使用其自己的特定于域的语言&#xff08;DSL&#xff09;来绘制数据库图。最主要的是免费。 dbdiagram 地址 https://dbdiagram.io/ dbdiagram 效果 Draw.io 简介 对于基于Web的使用免费&#xff0c;对…

如何创建ER图

如何看懂ER图 一、建实体 建一个实体的几个要素 1、类名 2、主键 3、属性&#xff08;字段&#xff09; 4、如果与其他实体有关系&#xff0c;则需要有外键&#xff08;Foreign Key&#xff09; 二、关系 以老师与学生关系为例&#xff1a;1:1型 1个教师对应0或1项排课 一个教…

用mysql workbench生成ER图

下载安装mysql workbench画图啦白白 下载安装mysql workbench 首先是下载mysql workbench,windows系统的自己百度,我用的是ubuntu 14.04LTS,百度到的结果有点坑,叫我去官网,但是选择平台后就没下文了T_T,最后忽然想起系统自带有软件中心,直接去本机自带的ubuntu softwore cen…

ER图详解及实例

文章目录 ER图基本概念ER图实例 ER图基本概念 ER图分为实体、属性、关系三个核心部分。在ER图中&#xff0c;实体是长方形&#xff0c;属性是椭圆形&#xff0c;关系为菱形。 实体&#xff08;entity&#xff09;&#xff1a; 即数据模型中的数据对象&#xff08;即数据表&…