用PyQt5显示OpenCV视频

2024-10-01 15:32:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个非常简单的GUI来显示从网络摄像头捕获的视频。我知道如何用openCV窗口显示帧:

cap = cv2.VideoCapture(0)
while True:
    _, frame = cap.read()
    cv2.imshow('Frame', frame)

这将创建一个显示帧的额外窗口。我的问题是:如何在qt窗口中显示这些帧?

我先从图像开始。我创建了一个QLabel并将其用作显示图像的容器。而且成功了。我可以用类似的方式显示视频帧吗?在

^{pr2}$

编辑:我尝试过类似的框架方法,但是失败了。(陷入while循环?我不得不强制退出python)

def openCamera(self):
    self.capturing = True
    self.cap = cv2.VideoCapture(0)

    while self.capturing:
        _, frame = self.cap.read()
        videoFrame = QtGui.QImage(frame, 200, 200,
                                  QtGui.QImage.Format_RGB888)
        convertFrame = QtGui.QPixmap(videoFrame)
        self.imageBox.setPixmap(convertFrame)
        self.imageBox.show()

我使用:

  • python 3.5.2版
  • OpenCV 3.1.0版
  • PyQt5型
  • Windows 10

提前谢谢!在


Tags: 图像selftrueread视频cv2framecap

热门问题