OpenCV中鼠标交互-绘制矩形框

·具体流程:
1、绑定回调函数
2、在回调函数中检测触发的事件
3、根据不同事件做出不同动作

一、绑定回调函数

cv2.setMouseCallback('origianl',click_event)

'origianl’为窗体的名字,client_event为回调函数的函数名

二、在回调函数中检测触发的事件

回调函数的的参数为固定格式:
第一个参数event:事件类型
x:为坐标x
y:为坐标y
flags:为鼠标滚轮的方向
param:为传入参数

def click_event(event,x,y,flags,param):global startPglobal endPglobal flagglobal currentPglobal stopglobal imgimg2 = img.copy()if event == cv2.EVENT_RBUTTONDOWN:flag = 1startP = (x,y)stop = 1if event == cv2.EVENT_LBUTTONDOWN:flag = 0endP = (x,y)cv2.rectangle(img,startP,endP,[0,0,255])stop = 0if event == cv2.EVENT_MOUSEMOVE:currentP = (x,y)if flag == 1:cv2.rectangle(img2,startP,currentP,[0,0,255])cv2.imshow('origianl',img2)if event == cv2.EVENT_MOUSEWHEEL:print(x,y)print(flags)print(param)

三、根据不同事件做出不同动作

常用的鼠标事件有以下几种:cv2.EVENT_RBUTTONDOWN、cv2.EVENT_RBUTTONUP、cv2.EVENT_MOUSEMOVE、cv2.MOUSEWHEEL.以上四种事件为,右键按下事件、右键松开事件、鼠标移动事件、鼠标滚轮事件
右键按下为矩形框开始点,左键按下为矩形框右下角结束点,将图像绘制在img图像中可以保存。按下右键然后移动鼠标会实时显示矩形框,此时将矩形框显示在img的copy版上并不保存。
具体的实现效果如下:

OpenCV中鼠标交互-绘制矩形框相关推荐

  1. opencv进阶学习笔记6:使用鼠标在图像上绘制矩形框或者多边形框

    基础版笔记传送门: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录: python+opencv进阶版学习笔记目录(适合有一定基础) 感兴趣区域传统绘制: openc ...

  2. Opencv(六)模板匹配、轮廓检测、轮廓周围绘制矩形框和圆形框

    模板匹配介绍 模板匹配就是在整个图像区域发现与给定子图像匹配的小块区域. 所以模板匹配首先需要一个模板图像T(给定的子图像) 另外需要一个待检测的图像-源图像S 工作方法,在带检测图像上,从左到右,从 ...

  3. python PyQt5如何绘制矩形框?(画框/绘框)

    参考代码: from PyQt5.QtWidgets import QWidget, QApplication, QLabel from PyQt5.QtCore import QRect, Qt f ...

  4. 计算机图形学实验四 OpenGL的鼠标交互绘制

    一.实验目的 1.掌握OpenGL的鼠标按钮响应函数. 2.掌握OpenGL的鼠标移动响应函数. 3.进一步巩固OpenGL的基本图元绘制基础. 二.实验内容 1.鼠标画草图--实现鼠标点到哪,线就画 ...

  5. svg 读取SVG文件并绘制矩形框选择图元

    首先是SVG文件,里面包含了几个不同的图元: <?xml version='1.0' standalone='no'?> <!DOCTYPE svg PUBLIC "-// ...

  6. Opencv中鼠标作为画笔

    目标 学习处理OpenCV中的鼠标事件 您将学习以下功能:cv2.setMouseCallback() 简单演示 在这里,我们创建了一个简单的应用程序,它在图像上画一个圆圈,只要我们双击它. 首先,我 ...

  7. pyqt5在图像上绘制矩形框

    pyqt5在图像上绘制矩形框 from PyQt5.QtWidgets import QWidget, QApplication, QLabel from PyQt5.QtCore import QR ...

  8. [FFmpeg] 绘制矩形框

    最简单的是使用滤镜 # 查看滤镜帮助 ffplay -h filter=drawbox # 单个矩形 ffplay -i fpx.gif -vf drawbox:x=10:y=10:w=50:h=50 ...

  9. 利用cv2.rectangle()绘制矩形框(python)

    文章目录 cv2.rectangle绘制矩形框 使用解析 范例 总结 cv2.addWeighted绘制半透明框 使用解析 范例 总结 使用cv2.rectangle可以绘制矩形框,但要绘制半透明框使 ...

最新文章

  1. Windows Phone实用开发技巧(32):照片角度处理
  2. mysql 配置执行计划_MySQL深入学习(二)--配置、索引、执行计划
  3. Linux平台 Oracle 18c RAC安装Part2:GI配置
  4. linux -- chcp
  5. Apache Storm 实时流处理系统通信机制源码分析
  6. linux 下opencv安装教程,linux 下 opencv安装
  7. postman测试工具,如何对参数使用md5加密
  8. ArrayAdapter requires the resource ID to be a TextView错误
  9. 八、面向对象三大特征(二)—— 继承
  10. 终端安全防护技术研究(四)
  11. 三维激光雷达点云处理发展趋势
  12. TOP公链主网技术:多层扩容和多层分片
  13. HCIA网络基础17-HDLC和PPP
  14. Charles抓包与改写
  15. 微信公众平台开发及优势
  16. MicroC实现Expr部分和for循环,无续算版本Comp.fs展示
  17. 数字政府智慧城市数字化运营管理中台建设思路分析
  18. Vue3组件化开发(二)
  19. 实在智能:RPA领域如何使用CRM实现业务精益化管理
  20. l36h android l rom,索尼L36h的rom刷机包分享

热门文章

  1. 基于材料数值计算大数据的材料辐照机理发现
  2. Java成神之路[转]
  3. 直播PK短视频?直播+短视频才是王道
  4. eclipse导入myeclipse项目
  5. Widget开发中遇到的坑
  6. 研究生如何选定课题方向 如何变学神
  7. Nagios监控平台完全攻略 (二)
  8. JAVA WEB框架的错误体系
  9. 使用etop查看系统中进程信息
  10. 来看看程序员们是怎么自黑的