画像を読み取るデバイスがあります。すべての画像は、行ごとに 8b グレースケール ピクセルの配列です。画像シーケンスをビデオとして表示するにはどうすればよいですか?
このようなもの:
while !terminated:
image = readImage(...)
widget.updateImage(image, width, height)
仕様:
- PyQt を使用して実装する必要があります
画像を読み取るデバイスがあります。すべての画像は、行ごとに 8b グレースケール ピクセルの配列です。画像シーケンスをビデオとして表示するにはどうすればよいですか?
このようなもの:
while !terminated:
image = readImage(...)
widget.updateImage(image, width, height)
仕様:
PyQt を使用した私の最善の解決策:
#! /usr/bin/python2
import sys
from PyQt4 import QtGui
from PyQt4 import QtCore
class Preview(QtGui.QWidget):
def __init__(self):
super(Preview, self).__init__()
self.setWindowTitle('Preview')
self.previewImage = QtGui.QLabel(self)
vbox = QtGui.QVBoxLayout()
vbox.addWidget(self.previewImage)
self.setLayout(vbox)
self.updater = QtCore.QTimer()
self.updater.setSingleShot(True)
self.updater.setInterval(10)
self.updater.timeout.connect(self.update)
self.show()
self.updater.start()
def update(self):
data = get_pgm(...) # this function reads device and adds PGM header
pixmap = QtGui.QPixmap()
pixmap.loadFromData(data)
self.previewImage.setPixmap(pixmap)
self.previewImage.show()
self.updater.start()
def main():
app = QtGui.QApplication(sys.argv)
preview = Preview()
sys.exit(app.exec_())
if __name__ == '__main__':
main()