Видеозахват и PyQT - PullRequest
       40

Видеозахват и PyQT

0 голосов
/ 27 февраля 2012

Я использую эту библиотеку http://videocapture.sourceforge.net/ для захвата веб-камеры.Но я не понимаю, как это видео-поток отправить на qpixmap.

1 Ответ

2 голосов
/ 28 февраля 2012

Если вы посмотрите документацию для этой библиотеки, вы увидите, что она очень короткая и приятная.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() для сохранения образа на диск.Это менее желательно, чем первый метод, так как вы должны выполнить дисковый ввод-вывод, но я все же упомяну об этом.Затем вы должны прочитать его в своем приложении Qt как QPixmap:

cam = Device()
cam.saveSnapshot('image.jpg')

qPixmap = QtGui.QPixmap('image.jpg')

Выполните первый метод.Это быстрее и эффективнее.

...