Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在PyQt5中显示图像要使用哪个类_Python_Opencv_Pyqt_Pyqt5 - Fatal编程技术网

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)
这对我很有效。也许我还可以做一些优化,但它让我可以自由地将所有内容分开,这样我就可以轻松地对原始图像像素矩阵进行操作。我还为
场景
原始图像
创建了一个类,从而抽象了所有内容。