当前位置: 首页 > news >正文

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);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;std::cout << "end point:" << ep << std::endl;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);imshow("ROI", image(box));rectangle(image, box, Scalar(0, 0, 255), 2, 8, 0);imshow("鼠标绘制", image);//为下次绘制做准备sp.x = -1;sp.y = -1;}}else if (event == EVENT_MOUSEMOVE) {if (sp.x > 0 && sp.y > 0) {ep.x = x;ep.y = y;std::cout << "end point:" << ep << std::endl;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);rectangle(image, box, Scalar(0, 0, 255), 2, 8, 0);imshow("鼠标绘制", image);}}}
}void QuickDemo::mouse_drawing_demo(Mat &image) {namedWindow("鼠标绘制", WINDOW_AUTOSIZE);setMouseCallback("鼠标绘制", on_draw, (void*)(&image));imshow("鼠标绘制", image);temp = image.clone();
}

在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/305357.html

相关文章:

  • vue里echarts的使用:画饼图和面积折线图
  • 个人建站前端篇(六)插件unplugin-auto-import的使用
  • 【Python】 剪辑法欠采样 CNN压缩近邻法欠采样
  • springmvc+ssm+springboot房屋中介服务平台的设计与实现 i174z
  • 挑战30天学完Python:Day19 文件处理
  • Spring Boot application.properties和application.yml文件的配置
  • Unity单元测试
  • Spring Bean 的生命周期了解么?
  • .ryabina勒索病毒数据怎么处理|数据解密恢复
  • 上网行为监控软件能够看到聊天内容吗
  • Java知识点一
  • Django学习笔记-forms使用
  • BM100 设计LRU缓存结构(java实现)
  • 论文阅读——ONE-PEACE
  • 围剿尚未终止 库迪深陷瑞幸9.9阳谋
  • 5G网络(接入网+承载网+核心网)
  • 学习Markdown
  • MySQL知识点总结(五)——锁
  • IDEA 2023.2 配置 JavaWeb 工程
  • 软考40-上午题-【数据库】-关系代数运算2-专门的集合运算
  • RHEL9安装Python2.7
  • 更新至2022年世界各国数字经济发展相关指标(23个指标)
  • vue从flask获取数据并显示
  • Kafka生产常见问题分析与总结
  • 重温MySQL
  • 构造函数,原型,实例,类的关系整理
  • [极客挑战2019]HTTP
  • 发布 rust 源码包 (crates.io)
  • jQuery 基础、选择器和筛选器
  • 网络原理-UDP/TCP协议