Skip to main content
 首页 » 编程设计

python之PyQt之如何在图像上叠加矩形

2025年05月04日14birdshome

在 PyQt 标签上显示图像后,我想在显示的图像之上绘制一个矩形。请注意,我的意思不是用户在图像上“绘制”矩形的“绘制”,而是我只想在图像顶部创建一个矩形。我有 matplotlib 轴的等效代码,但我不确定如何在 PyQt 中做同样的事情。

# Create Figure/Axes Instance 
figure,axes = matplotlib.pyplot.subplots() 
axes.imshow(imageRGB) 
 
# Draw Rectangle 
axes.add_patch(matplotlib.patches.Rectangle((50,50),100,100,fill=False,edgecolor='red')) 

请您参考如下方法:

# convert image file into pixmap 
self.pixmap_image = QtGui.QPixmap(self.filename) 
 
# create painter instance with pixmap 
self.painterInstance = QtGui.QPainter(self.pixmap_image) 
 
# set rectangle color and thickness 
self.penRectangle = QtGui.QPen(QtCore.Qt.red) 
self.penRectangle.setWidth(3) 
 
# draw rectangle on painter 
self.painterInstance.setPen(self.penRectangle) 
self.painterInstance.drawRect(xPos,yPos,xLen,yLen) 
 
# set pixmap onto the label widget 
self.ui.label_imageDisplay.setPixmap(self.pixmap_image) 
self.ui.label_imageDisplay.show()