【发布时间】:2017-05-29 01:42:51
【问题描述】:
我正在使用 opencv3、python 3 和 pyqt5。我想制作一个简单的 GUI,当在主窗口上单击按钮时,我想在其中打开一个新窗口来播放视频以及其他一些小部件。我过去使用QPixmap 来显示图像,所以我创建了一个标签并尝试在循环中设置像素图中的帧。循环工作正常,但我无法显示视频/新窗口。
我想在新窗口中执行的循环如下所示:
def setupUi():
vid=cv2.VideoCapture('file')
ret, frame=vid.read()
while ret:
Qimg=convert(frame)
self.label.setpixmap(Qimg)
self.label.update()
ret,frame=vid.read()
convert() 是我自己编写的一个函数,它将 cv 帧转换为 QImage 类型以设置到像素图中。
我只是 pyQt 的初学者,所以不知道我做错了什么。我已经阅读了有关在新窗口和QtApplication.processEvents() 中使用信号、线程的信息,但不知道它们是如何工作的以及它们如何适应我的问题。
如果有人可以为我设定正确的方向,并指出一些资源来为我的应用程序使用 OpenCV 和 python 创建良好的界面,那将会很有帮助。
【问题讨论】:
标签: python user-interface opencv pyqt pyqt5