opencv鼠标响应与操作

这节讲得好,建议仔细揣摩

Point sp(-1, -1);//初始位置
Point ep(-1, -1);//结束位置
Mat temp;
static void on_draw(int event, int x, int y, int flags, void * userdata) {Mat image = *((Mat*)userdata);//先将void类型转为Mat类型//((Mat*)userdata)是Mat类型指针 前面加*变成Mat数据//event指事件if (event == EVENT_LBUTTONDOWN)//左键按下{sp.x = x;sp.y = y;std::cout <<"start point"<< sp << std::endl;}else if (event == EVENT_LBUTTONUP) //左键抬起{ep.x = x;ep.y = y;int dx = ep.x - sp.x;//绘制的int dy = ep.y - sp.y;if (dx > 0 && dy > 0) {Rect box(sp.x, sp.y,dx,dy);//绘制矩形rectangle(image, box, Scalar(0, 255, 255), 2, 8, 0);imshow("鼠标绘制", image);imshow("ROI区域",image(box));//为下一次绘制做准备sp.x = -1;sp.y = -1;}}else if (event == EVENT_MOUSEMOVE) //当鼠标移动时  其也在获取坐标位置{if (sp.x > 0 && sp.y > 0)//左键按下后{ep.x = x;ep.y = y;int dx = ep.x - sp.x;//绘制的int dy = ep.y - sp.y;if (dx > 0 && dy > 0) {Rect box(sp.x, sp.y, dx, dy);//绘制矩形temp.copyTo(image);//实现了对前面绘制的框擦除  把temp 拷贝到imagerectangle(image, box, Scalar(0, 255, 255), 2, 8, 0);imshow("鼠标绘制", image);}}}
}
void QuickDemo::mouse_drawing_demo(Mat &image)
{namedWindow("鼠标绘制", WINDOW_AUTOSIZE);setMouseCallback("鼠标绘制", on_draw,(void*)(&image));//上面有个代码类似/*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:传给回调函数的参数*/imshow("鼠标绘制", image);temp = image.clone();
}

和有一节课调整亮度对比度的有共同点.

代码注释都已标注,欢迎评论

实现效果

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

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

相关文章

B端系统升级方案模板:针对美观性和体验性升级(总体方案)

大家好&#xff0c;我是大美B端工场&#xff0c;专注于前端开发和UI设计&#xff0c;有需求可以私信。本篇从全局分享如何升级B端系统&#xff0c;搞B端系统升级的有个整体思维&#xff0c;不是说美化几个图标&#xff0c;修改几个页面就能解决的&#xff0c;这个方案模板&…

JavaScript_00001_00000

contents 简介变量与数据类型自动类型转换强制类型转换 简介 变量与数据类型 根据变量定义的范围不同&#xff0c;变量有全局变量和局部变量之分。直接定义的变量是全局变量&#xff0c;全局变量可以被所有的脚本访问&#xff1b;在函数里定义的变量称为局部变量&#xff0c;…

自动化测试定位不到元素怎么办?

1.动态id定位不到元素 分析原因&#xff1a;每次打开页面&#xff0c;ID都会变化。用ID去找元素&#xff0c;每次刷新页面ID都会发生变化。 解决方案&#xff1a;推荐使用xpath的相对路径方法或者cssSelector查找到该元素。 2.iframe原因定位不到元素 分析原因&#xff1a;…

Android---DslTabLayout实现底部导航栏

1. 在 Android 项目中引用 JitPack 库 AGP 8. 根目录的 settings.gradle dependencyResolutionManagement {...repositories {...maven { url https://jitpack.io }} } AGP 8. 根目录如果是 settings.gradle.kts 文件 dependencyResolutionManagement {...repositories {...…

【Windows】MacOS制作纯净版Windows10安装U盘

方法一、在window系统中更新win10&#xff08;不更新引导程序&#xff09; cp -rp /Volumes/Windows10专业版\ 64位/* /Volumes/WIN10/https://baijiahao.baidu.com/s?id1760695844372493842&wfrspider&forpc 方法二、在window系统中更新win10&#xff08;更新引导程…

threejs之使用shader实现雷达扫描

varying vec2 vUv; uniform vec3 uColor; uniform float uTime;mat2 rotate2d(float _angle){return mat2(cos(_angle),-sin(_angle),sin(_angle),cos(_angle)); }void main(){vec2 newUv rotate2d(uTime*6.18)*(vUv-0.5);float angle atan(newUv.x,newUv.y);// 根据uv坐标获…

STM32——OLED菜单(二级菜单)

文章目录 一.补充二. 二级菜单代码 简介&#xff1a;首先在我的51 I2C里面有OLED详细讲解&#xff0c;本期代码从51OLED基础上移植过来的&#xff0c;可以先看完那篇文章&#xff0c;在看这个&#xff0c;然后按键我是用的定时器扫描不会堵塞程序,可以翻开我的文章有单独的定时…

代码随想录算法训练营DAY18 | 二叉树 (5)

一、LeetCode 513 找树左下角的值 题目链接&#xff1a;513.找树左下角的值https://leetcode.cn/problems/find-bottom-left-tree-value/ 思路一&#xff1a;递归回溯全局变量比深度。 class Solution {int Max_depth 0;int result 0;public int findBottomLeftValue(TreeNo…

前端工程化面试题 | 10.精选前端工程化高频面试题

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

ES入门知识点总结

目录 倒排索引 倒排索引 Elasticsearch的倒排索引是一种数据结构&#xff0c;用于加快基于文本的搜索操作。它的主要优势在于能够快速找到包含特定单词的文档。 倒排索引的构建过程如下&#xff1a; 文档分词&#xff1a;将文档内容分割成单独的词&#xff08;或者更小的词元…

Javaweb基础-会话

会话&#xff1a; 会话管理&#xff1a;Cookie和Session配合解决 cookie是在客户端保留少量数据的技术,主要通过响应头向客户端响应一些客户端要保留的信息 session是在服务端保留更多数据的技术,主要通过HttpSession对象保存一些和客户端相关的信息 cookie和session配合记录…

一文分清OMS、CMS、PMS、TMS、IM、BI、BPMS、SCRM、DSS等B端系统

继5月22日发布一文分清OA、CRM、ERP、MES、HRM、SCM、WMS、KMS等后&#xff0c;很多老铁又给我推荐了其他系统&#xff0c;贝格前端工场这次再撰一文&#xff0c;介绍这些系统。 之前文章&#xff1a; 一文分清OA、CRM、ERP、MES、HRM、SCM、WMS、KMS等 1、OMS系统 OMS系统是…