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

news/2024/11/9 5:00:10/

参考代码:

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 sys
class MyLabel(QLabel):x0 = 0y0 = 0x1 = 0y1 = 0flag = False#鼠标点击事件def mousePressEvent(self,event):self.flag = Trueself.x0 = event.x()self.y0 = event.y()#鼠标释放事件def mouseReleaseEvent(self,event):self.flag = False#鼠标移动事件def mouseMoveEvent(self,event):if self.flag:self.x1 = event.x()self.y1 = event.y()self.update()#绘制事件def paintEvent(self, event):super().paintEvent(event)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)
class Example(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.resize(675, 300)self.setWindowTitle('在label中绘制矩形')self.lb = MyLabel(self) #重定义的labelself.lb.setGeometry(QRect(30, 30, 511, 541))img = cv2.imread('2.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.lb.setPixmap(pixmap)self.lb.setCursor(Qt.CrossCursor)self.show()
if __name__ == '__main__':app = QApplication(sys.argv)x = Example()sys.exit(app.exec_())

记得将名字为2.jpg的图片跟程序放在同一目录下

运行结果:
在这里插入图片描述

参考文章1:PyQt5中如何在lable中加载的图片上绘制矩形框呢?
参考文章2:PyQt5 在label显示的图片中绘制矩形的方法


http://www.ppmy.cn/news/544413.html

相关文章

使用opencv画框

在平常使用图像处理中的时候,例如检测追踪的时候,我们经常需要用到画图函数,例如手动标定一个目标,调用鼠标时间,然后进行追踪,或者检测完一个目标,画上矩形或者其他形状,然后进行追…

一系列点画框(不规则框)

做个记录&#xff1a;先求点的凸包&#xff0c;再画 void draw_hull() {int w 600;int h 500;cv::Mat polyImg cv::Mat::zeros(w,h,CV_8UC3);std::vector<Point> planevKeys {{159 , 64}, {136 , 74 }, {178 , 34 }, {132 , 89 },{124 , 112}, {178 , 50 },{101 , …

尝试修改LabelImg,将以对顶角画框改成以对角线相交点向四周画框

文章目录 缩小代码位置范围对缩小的范围查找代码shape.py 2020040320200409修改了以下handleDrawing()里的代码&#xff0c;现在能够把框画成这样子了&#xff0c;但是初始点和实时绘制还不知道怎么处理后开在这加上这句之后就能将结果准确绘制了&#xff0c;但是实时显示还是没…

[HNOI2014]画框

画框 题解 多简单的一道题呀&#xff01; 看到这道题&#xff0c;我们应该很容易想到要把 ∑ A i , p i \sum A_{i,p_{i}} ∑Ai,pi​​与 ∑ B i , p i \sum B_{i,p_{i}} ∑Bi,pi​​转化一下。毕竟直接处理这两个的积应该是十分麻烦的。 看到积我们想起了什么呢&#xff1f…

opengl 在显示的图像视频上画框

在前面的博客中opengl 显示BMP图像&#xff0c;总结了如何使用opengl显示BMP图像&#xff0c;如何显示BMP图像序列。 在做Object detection的一些工作中&#xff0c;经常会将检测到object用一个框标记出来&#xff0c;这次探索一下如何实现这个功能。 这要使用Opengl的blend功…

OpenCV画框函数rectangle的使用

OPenCV版本&#xff1a;4.4 IDE&#xff1a;VS2019 功能描述 绘制一个简单的、粗的或填充边界的矩形。 函数cv:&#xff1a;rectangle绘制一个矩形轮廓或一个填充矩形&#xff0c;其两个相对的角是pt1和pt2。 函数原型1 void cv::rectangle ( InputOutputArray img, Point …

JS 画框操作

Js中&#xff0c;我们有时候需要对图片进行操作&#xff0c;包括画框&#xff0c;其实对于UI前端来说挺简单的&#xff0c;没有网上说的那样复杂&#xff0c;这里说明一下 <div style"width:80%;height:300px;position:relative"><img src"img/10.jpg&…

OpenCV: 画框和矩形

本文主要内容&#xff1a; 一、介绍OpenCV中三个绘图函数&#xff1a;circle() 、ellipse() 、rectangle()。 1.Circle 绘制圆形。 void cvCircle( CvArr* img, CvPoint center, int radius, CvScalar color,int thickness1, int line_type8, int shift0 );img :图像。 c…