使用OpenCV python绑定在PySide小部件中显示网络摄像头流

时间:2013-01-22 15:46:52

标签: python opencv pyside

嘿,如果有人能帮助我,那就太好了。我正在尝试使用OpenCV来获取网络摄像头流,然后通过更新图像在PySide应用程序中显示它。

cv.NamedWindow('Raw', cv.CV_WINDOW_AUTOSIZE)
self.cap = cv.CaptureFromCAM(0)

这是有效的,我使用show image函数在while循环中更新命名窗口。

while True:
    frame = cv.QueryFrame(self.cap)
    img = cv.CreateImage(cv.GetSize(frame),cv.IPL_DEPTH_8U,1)
    if frame is None:
        print "Frame is none"
        sys.exit(1)
    # display webcam image
    cv.ShowImage('Raw', frame)

但是当我尝试在PySide应用程序中显示图像时,我只看到一个空白的黑色图像 (以下代码与上面的while循环相同)

image = QImage(frame.tostring(), frame.width, frame.height, QImage.Format_RGB888).rgbSwapped()
self.pixmap = QPixmap.fromImage(image)
grid = QGridLayout()
grid.setSpacing(10)
imageBox = QLabel(self)
imageBox.setGeometry(0,0,300,200)
imageBox.setPixmap(self.pixmap.scaled(300,200))
grid.addWidget(imageBox)
self.widget.setLayout(grid)
self.repaint()            

有谁知道为什么图片不会更新?

0 个答案:

没有答案