繁体   English   中英

在PyQt5中用于显示图像的类

[英]What class to use for showing images in PyQt5

我已经尝试了一段时间了,但似乎无法解决。 我正在开发一个使用Qt Designer创建的UI的程序,其中将使用cv2分析图像。 此分析的一部分涉及让用户单击图像以存储与图像不同的坐标,以供以后使用。 当我在Qt Designer制作UI时,图像对象属于QtWidgets.QGraphicsView类,但是我无法弄清楚如何从cv2显示图像, cv2QtWidgets.QGraphicsView类型的对象上的一个numpy array 我想我应该使用QtGui.QPixmap ,但我仍然不确定。 似乎没有足够的文档,所以我很难弄清楚如何选择如何表示要与之交互和分析的图像。

我确实按照ekhumoro在评论中的建议使用了QGraphicsPixmapItem 我也使用QImage来做到这一点。 我这样做的一个例子是

image_window = QtWidgets.QGraphicsView(centralwidget)
raw_image = cv2.imread('image.jpg')
height, width, channel = image.shape
bytes_per_line = width * 3
image = QtGui.QImage(raw_image.data, width, height, bytes_per_line, QtGui.QImage.Format_RGB888)
scene = QtWidgets.QGraphicsScene()
scene.addPixmap(QtGui.QPixmap.fromImage(image)
image_window.setScene(scene)

这对我来说很棒。 我可能仍然可以进行一些优化,但这使我可以自由地将所有内容分开,这样我就可以轻松地对raw_image像素矩阵进行操作。 我还为sceneraw_image提供了一个类来抽象所有内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM