Python 在PyQt5中显示图像要使用哪个类
我想弄清楚这件事已经有一段时间了,但似乎弄不明白。我正在用我在Python 在PyQt5中显示图像要使用哪个类,python,opencv,pyqt,pyqt5,Python,Opencv,Pyqt,Pyqt5,我想弄清楚这件事已经有一段时间了,但似乎弄不明白。我正在用我在Qt Designer中制作的UI开发一个程序,我将使用cv2分析图像。此分析的一部分包括让用户单击图像,以存储与图像不同的坐标,以便稍后使用。当我在Qt Designer中创建UI时,图像对象属于qtwidts.QGraphicsView类,但我不知道如何显示cv2中的图像,它是qtwidts.QGraphicsView类型对象上的numpy数组。我想我应该使用QtGui.QPixmap,但我还是不确定。似乎没有很好的文档,所以我很
Qt Designer
中制作的UI开发一个程序,我将使用cv2
分析图像。此分析的一部分包括让用户单击图像,以存储与图像不同的坐标,以便稍后使用。当我在Qt Designer
中创建UI时,图像对象属于qtwidts.QGraphicsView
类,但我不知道如何显示cv2
中的图像,它是qtwidts.QGraphicsView
类型对象上的numpy数组。我想我应该使用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)
这对我很有效。也许我还可以做一些优化,但它让我可以自由地将所有内容分开,这样我就可以轻松地对原始图像像素矩阵进行操作。我还为场景
和原始图像
创建了一个类,从而抽象了所有内容。