我使用此库http://videocapture.sourceforge.net/来捕获网络摄像头。但我不明白视频流如何发送到qpixmap
。
答案 0 :(得分:2)
如果你看看这个库的文档,你会看到它非常简短和甜蜜。 http://videocapture.sourceforge.net/html/VideoCapture.html
我可以通过两种方式告诉您,您可以将图像转换为Qt ...
最好的方法 - 直接进入QImage
getImage()
声明它将返回PIL图像。 PIL,如果您使用的是最新版本,则有一个名为ImageQt的模块,它可以获取PIL Image对象并返回QImage。从这里你可以将其转换为QPixmap:
from PyQt4 import QtCore, QtGui
from VideoCapture import Device
from PIL import Image, ImageQt
app = QtGui.QApplication([])
cam = Device()
# this is a PIL image
pilImage = cam.getImage()
# this is a QImage
qImage = ImageQt.ImageQt(pilImage)
# this is a QPixmap
qPixmap = QtGui.QPixmap.fromImage(q)
另一种方式 - 先写入磁盘
如果您按照他们在此模块网站上提供的示例,他们会向您展示如何使用saveSnapshot()
将图像保存到磁盘。这比第一种方法更不可取,因为你必须做磁盘i / o,但我仍然会提到它。然后,您可以将其作为QPixmap读入Qt应用程序:
cam = Device()
cam.saveSnapshot('image.jpg')
qPixmap = QtGui.QPixmap('image.jpg')
做第一种方法。它更快,更有效。