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

【鼠标操作】

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

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

OpenCV:鼠标画直线并显示坐标相关推荐

  1. c++ builder 用鼠标画直线、椭圆、矩形

    //在窗体上绘制直线椭圆.矩形. //1.思路:用鼠标按下和松开确定要花图像的开始和结束位置,并设定好Pen和Brush的各种属性. //2.界面 //3.代码: //---------------- ...

  2. qgraphicsscene 鼠标画直线_游戏鼠标的进阶玩法,驱动深入打磨

    大家都知道,游戏鼠标都有不少的快捷键和功能键,但是不少玩家也就是当普通鼠标用,甚至连DPI键都没按过的玩家一样有. 不吹不黑,玩游戏更多是看天赋和技术的,游戏鼠标只是辅助. 不过,好的游戏鼠标能大大改 ...

  3. opencv鼠标画路径点

    Opencv 学习笔记 Opencv定义输出vector容器的point类型的点

  4. python画直线的方法

    python画直线的方法,下面介绍三种: 1.使用列表解析法,只需要添加一个数据类型的变量,然后在上面添加一系列的直线,即可得到一条直线. 5.使用循环解析法和 for循环解析法两种方法相结合来画直线 ...

  5. python截取图片的ROI+OpenCV 在坐标中显示图片+鼠标点击图片显示点坐标

    又来做下笔记了.现在我的毕业设计进行到数据处理的阶段,要在乳腺图像上截取4张相同大小的1024*1024图片,并且每张图片都必须覆盖微钙化点,以下是我现在用到的一些简单程序. 1.首先是截图程序如下: ...

  6. OpenCV在图像中添加文字,画点,画直线

    OpenCV在图像中添加文字,画点,画直线 [尊重原创,转载请注明出处] http://blog.csdn.net/guyuealian/article/details/77870983 #inclu ...

  7. HTML怎么在矩形上画直线,【绘制】HTML5 Canvas 绘画画板,实现鼠标画线条,画矩形或选区(图文、示例)...

    个人处女做<Canvas系列教程>在个人Github上正在连载更新,但愿能获得您的关注和支持,让我有更多的动力进行创做.html 教程介绍.教程目录等能在README里查阅.git 目录函 ...

  8. 利用鼠标在图像上画框并实时显示鼠标所点击处坐标

    我们在做小型项目的时候,有时为了实现良好的交互,或者更方便实时观察输入数据,通常需要使用到下列几项功能: 1.利用鼠标在所显示的图像/视频中选取ROI区域 2.实时显示鼠标所点击位置处的坐标信息 本文 ...

  9. opencv实现鼠标画矩形框、显示十字线、缩放图片

    opencv实现鼠标画矩形框.显示十字线.缩放图片 简介 材料收集 开始设计 1,将鼠标响应函数封装到类 2.合理的显示图像 全部代码 项目资源 简介 实现一个在图片上框选区域的类,可以缩放图像方便操 ...

  10. opencv画直线,矩形

    opencv 画直线要画一条线,你只需要告诉函数这条线的起点和终点.我们下面会画一条从左上方到右下角的蓝色线段. import numpy as np import cv2# Create a bla ...

最新文章

  1. 到底有哪些副业适合程序员或产品经理?
  2. 1833: [ZJOI2010]count 数字计数
  3. IP phone配製學習
  4. C#中使用键值对存取值并使用Linq通过key获取value
  5. 【华为云技术分享】解密如何使用昇腾AI计算解决方案构建业务引擎
  6. “画大饼”行走江湖的必备技能
  7. html播放m3u8格式转换,使用HTML视频标签播放m3u8文件
  8. ECPC16-E. Jumping(bfs)
  9. 一种RGD-全氟化碳纳米乳MRI显影剂的制备方法
  10. ESP8266 AP服务器设置
  11. 大型圆弧怎么处理_这种大圆弧一次成型,回弹怎么计算?低公差
  12. 2022年西藏最新八大员之(安全员)模拟试题题库及答案
  13. 09-slash_backslash
  14. DO DTO BO AO VO POJO
  15. PLC实验-四传送带的模拟
  16. “瞎买量”时代终结,游戏运营推广该如何选择?
  17. 音悦台www.yinyuetai.com下载方法
  18. 大气气溶胶期末复习笔记
  19. 互联网电商大数据环境 ——大数飓数据分析实践培训精华笔记(八)——电商核心业务知识之订单商品模块三
  20. 合工大离散数学实验 数据输出

热门文章

  1. qtcpsocket断开_Qt QTcpSocket 对连接服务器中断的不同情况进行判定
  2. C语言ctype.h
  3. QAC静态测试配置及使用教程
  4. 人脸识别最全知识图谱,中国学者数量全球第三—清华大学出品
  5. c语言点阵字库12*16,用C语言编程16点阵字库
  6. __declspec,__cdecl,__stdcall区别和作用
  7. 微信小程序的标签及常见样式
  8. 小技巧(11):使用PS更换证件照背景颜色(蓝色背景色换成白色背景色)
  9. 企业微信双开及三开的方法
  10. iOS通俗易懂的微信支付接入和爬坑指南,十分钟轻松搞完