[英]What class to use for showing images in PyQt5
我已经尝试了一段时间了,但似乎无法解决。 我正在开发一个使用Qt Designer
创建的UI的程序,其中将使用cv2
分析图像。 此分析的一部分涉及让用户单击图像以存储与图像不同的坐标,以供以后使用。 当我在Qt Designer
制作UI时,图像对象属于QtWidgets.QGraphicsView
类,但是我无法弄清楚如何从cv2
显示图像, cv2
是QtWidgets.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像素矩阵进行操作。 我还为scene
和raw_image
提供了一个类来抽象所有内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.