当前位置:网站首页>6.【opencv鼠标回调事件】
6.【opencv鼠标回调事件】
2022-08-08 13:06:00 【李在奋斗……】
(一)、什么是鼠标回调事件以及作用?
简单的理解:鼠标回调时间就是我们在编译窗口中,我们的鼠标是可以运转的
并且会返回我们鼠标移动的二维坐标.
(二)、我们需要认识那些API?
1.回调函数:
声明在类外的函数、其基本格式为:
void mouse_callback(int event, int x, int y, int flag, void* userdata) //回调函数
{
cout << event << " " << x << " " << y << " " << flag << " "<< endl; //打印函数.
}
构造函数参数格式为:
event:(本文按照基础走。也即数字)鼠标事件
0=滑动;
1=左键点击;2=右键点击;3=中建点击;
4=左键放开;5=右键放开;6=右键放开;
7=左键双击;8=右键双击;9=中建双击;
x和y:鼠标指针在图像坐标系的坐标
flags鼠标的组合键显示:
usderata: 用户自定义参数:
2.设置鼠标回调函数:
其名称为固定的名称:SetMouseCallback(窗口名字,回调函数名字,usdedata)
主要目的:是响应窗口.
setMouseCallback("鼠标事件", mouse_callback); //设置鼠标回调函数
(三)操作思想与基本思路:
首先我们要设置回到函数mousecallback;然后进行窗口打印输出鼠标的各项操作.然后在主函数中读入图像,设置窗口,进行设置鼠标回调函数,显示帧数、最后销毁窗口.
(四)、实战项目:
1.代码展示:
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
void mouse_callback(int event, int x, int y, int flag, void* userdata) //回调函数
{
cout << event << " " << x << " " << y << " " << flag << " "<< endl; //打印函数.
}
int main()
{
Mat imag;
imag = imread("xx.jpg"); //读入图像
namedWindow("鼠标事件",WINDOW_NORMAL);
setMouseCallback("鼠标事件", mouse_callback); //设置鼠标回调函数
while (1)
{
imshow("鼠标事件", imag); //展示窗口
if (waitKey(25) == 27)break; //展示帧率
}
cout << "程序退出:" << endl;
destroyAllWindows();
return 0;
}
2.效果展示:
鼠标回调事件效果
边栏推荐
猜你喜欢
华谊“在劫难逃”,4年亏掉64亿
哈佛大学砸场子:DALL-E 2只是「粘合怪」,生成正确率只有22%
In-depth analysis of the soul of C language -- pointer
Program Environment and Preprocessing
The most complete JVM performance tuning in history: thread + subsystem + class loading + memory allocation + garbage collection
论文理解:“Self-adaptive loss balanced Physics-informed neural networks“
萤石、小米对垒智能摄像头
MySQl表的增删查改(CRUD)
[界面开发]DevExpress WinForms流程图控件——XtraDiagrams组件入门指南
逐步手撕轮播图3(分步教程)
随机推荐
看到这个应用上下线方式,不禁感叹:优雅,太优雅了!
三个点语法和DOM观察者
优刻得“失速”:营收转降,定向增发股东浮亏超三成
curl获取harbor镜像仓库项目下的镜像列表
R语言ggplot2可视化:使用ggpubr包的ggdonutchart函数可视化甜甜圈图(donut chart)、为甜甜圈图添加自定义标签(包含文本内容以及数值百分比)、lab.font参数设置标
Doris学习笔记之优化
逐步手撕轮播图3(分步教程)
化工行业数字化供应链系统:赋能化工企业高质量发展,促进上下游协同
node中package解析、npm 命令行npm详解,node中的common模块化,npm、nrm两种方式查看源和切换镜像
哈佛大学砸场子:DALL-E 2只是「粘合怪」,生成正确率只有22%
【软考 系统架构设计师】软件架构设计⑥ 软件产品线
C语言的三个经典题目:三步翻转法、杨氏矩阵、辗转相除法
深度剖析-class的几个对象(utlis,component)-瀑布流-懒加载(概念,作用,原理,实现步骤)
Jenkins - Introduction to Continuous Integration (1)
【C语言】深度剖析数据在内存中的存储
R语言ggplot2可视化:使用ggpubr包的ggline函数可视化折线图(点线图、line plot)、设置add参数为mean可视化不同水平均值的折线图
分享面试阿里、京东、网易等大厂后的面经及面试心得,让你秋招不再害怕
什么是IP SSL证书,如何申请?
The most complete JVM performance tuning in history: thread + subsystem + class loading + memory allocation + garbage collection
如果Controller里有私有的方法,能成功访问吗?