在pyqt中显示相机

时间:2016-12-30 18:51:06

标签: python opencv pyqt

我们可以在Pyqt中显示相机输入吗?我只能通过python中的opencv窗口显示一个简单的视图。我想在显示pyqt窗口时添加更多选项。

2 个答案:

答案 0 :(得分:3)

是的,您可以使用QLabel并设置标签QPixmap来执行此操作。有点含糊不清的东西:

label = QtGui.QLabel()
image = QtGui.QImage(
    frame,
    frame.shape[1],
    frame.shape[0],
    frame.shape[1] * 3,
    QtGui.QImage.Format_RGB888
)
label.setPixmap(QtGui.QPixmap.fromImage(image))

其中frame是你的相机帧数据。

答案 1 :(得分:1)

在这种情况下,请考虑使用QGraphicsView。它不仅是显示相机图像的方法,而且还可以绘制其他线条,或者根据需要在其上放置文本。首先,您启动它:

# Create scene
self.image_item = QGraphicsPixmapItem()
scene = QGraphicsScene(self)
scene.addItem(self.image_item)

# Create GraphicView display
self.view = QGraphicsView(scene, self)
# Adding right click menus
self.view.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
self.zoomout_action = QAction("Fit canvas", self)
self.view.addAction(self.zoomout_action)

然后将摄像机图像放入其中以显示:

image = QImage(camera_image, w, h, w, QImage.Format_Grayscale8)
self.image_item.setPixmap(QPixmap.fromImage(image))
self.view.fitInView(self.image_item)