pyqt5在图像上绘制矩形框

from PyQt5.QtWidgets import QWidget, QApplication, QLabel
from PyQt5.QtCore import QRect, Qt
from PyQt5.QtGui import QImage, QPixmap, QPainter, QPen, QGuiApplication
import cv2
import sysclass MyLabel(QLabel):def __init__(self,parent=None):super(MyLabel, self).__init__(parent)self.x0=0self.y0=0self.x1=0self.y1=0self.flag=Falseself.move=False     # 存在移动# 鼠标移动事件def mouseMoveEvent(self, event):# barHeight = self.bar.height()self.move = Trueif self.flag:self.x1 = event.pos().x() self.y1 = event.pos().y() self.update()# 鼠标释放事件def mouseReleaseEvent(self, event):self.flag = Falseself.move=Falseprint(self.x0,self.y0,self.x1,self.y1)self.x0, self.y0, self.x1, self.y1=(0,0,0,0)print(self.x0, self.y0, self.x1, self.y1)# 绘制事件def paintEvent(self, event):super().paintEvent(event)if self.flag and self.move:     # 只有当鼠标按下并且移动状态rect = QRect(self.x0, self.y0, abs(self.x1 - self.x0), abs(self.y1 - self.y0))painter = QPainter(self)painter.setPen(QPen(Qt.red, 2, Qt.SolidLine))painter.drawRect(rect)# print(self.x0, self.y0, self.x1, self.y1)# 单击鼠标触发事件def mousePressEvent(self, event):# barHeight = self.bar.height()self.x0 = event.pos().x()self.y0 = event.pos().y() self.flag = True# 测试类
class Test(QWidget):def __init__(self):super(Test,self).__init__()self.initUI()def initUI(self):self.resize(960,540)self.setWindowTitle("在label中绘制矩形")self.label = MyLabel(self)          #重定义的label# self.label.setGeometry(QRect(30, 30, 511, 541))img = cv2.imread('dataSet/scene1380.jpg')height, width, bytesPerComponent = img.shapebytesPerLine = 3 * widthcv2.cvtColor(img, cv2.COLOR_BGR2RGB, img)QImg = QImage(img.data, width, height, bytesPerLine, QImage.Format_RGB888)pixmap = QPixmap.fromImage(QImg)self.label.setPixmap(pixmap)self.label.setCursor(Qt.CrossCursor)if __name__ == '__main__':app = QApplication(sys.argv)test = Test()test.show()sys.exit(app.exec())

pyqt5在图像上绘制矩形框相关推荐

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

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

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

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

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

    OpenCV中鼠标交互-绘制矩形框 ·具体流程: 1.绑定回调函数 2.在回调函数中检测触发的事件 3.根据不同事件做出不同动作 一.绑定回调函数 cv2.setMouseCallback('orig ...

  4. [FFmpeg] 绘制矩形框

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

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

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

  6. PHP 使用GD库生成验证码 在图像上绘制汉字

    PHP 并不仅限于创建 HTML 输出, 它也可以创建和处理包括 GIF, PNG, JPEG, WBMP 以及 XPM 在内的多种格式的图像. 更加方便的是,PHP 可以直接将图像数据流输出到浏览器 ...

  7. python在图片上绘制标注框

    前言 最近帮人跑代码的时候遇到了不少问题,后来发现他提供给我的数据集中标注文件不太准确,部分box框没有很好地框到物体.所以写了一个代码,通过在图片上绘制标注框来直观地判断标注文件是否存在问题,也可以 ...

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

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

  9. 小白菜的opencv学习(3)在图像上绘制和写字

    小白菜的opencv学习(3)在图像上绘制和写字 我们知道,机器视觉在识别后最直接观察的办法就是画出来,把人物.图形描述出来.今天就学习如何在图像上绘制和写字.文章最后会尝试在摄像头采集的视频中绘制写 ...

最新文章

  1. vue小项目总结与笔记【六】——使用axios发送ajax请求
  2. 关于nginx信号控制的“故障”案例
  3. 【Flutter】HTTP 网络操作 ( 引入 http 插件 | 测试网站 | Get 请求 | Post 请求 | 将响应结果转为 Dart 对象 | Future 异步调用 )
  4. GNU make manual 翻译(六十一)
  5. 导出PDF和Zip文件的工具类
  6. Spring Security源码解析(四)—— 过滤器
  7. 前端学习(2990):vue+element今日头条管理--模块介绍
  8. keepalived与lvs结合使用配置实例
  9. 插入1000万条数据到mysql数据库表
  10. 数组c语言什么时候学的,C语言学习之数组
  11. 给dubbo接口添加白名单——dubbo Filter的使用
  12. vba commondialog控件添加不上_MyVBA加载宏——添加自定义菜单03——功能分析
  13. Mybatis 拦截器报错
  14. 记录一次Stack上关于数学之美的brainstorm
  15. 关于工作后定居城市的思考以及房价预测【zz】
  16. android killer反编译闪退,Android Killer反编译失败
  17. 数据库SQL经典面试题详解
  18. 六、文件管理(1.文件和文件系统)
  19. virtio简介(二) —— virtio-balloon guest侧驱动
  20. 计算机科学与技术访谈提纲,计算机科学技术专业论文大纲范本大全 计算机科学技术专业论文框架怎样写...

热门文章

  1. 赵强老师:Oracle数据库系列课程(12)管理数据库的存储结构与数据的并发-赵强老师-专题视频课程...
  2. pycharm创建新项目,项目文件夹中没有venv文件夹
  3. jupyter环境配置
  4. Linux TCP TransTimer
  5. runtime error: reference binding to null pointer of type ‘int‘ 问题
  6. Python 实现股票数据的实时抓取
  7. 保存文件弹出框-选择路径
  8. 查内存泄漏神器,LeakCanray原来是这样工作的
  9. CISCO 相关技术大集合(收藏)_01
  10. P1506 拯救oibh总部(dfs,洛谷,java)