pyqt5能否用于鸿蒙系统,PyQt显示来自opencv的视频流
感謝Taimur Islam的提問。感謝eyllanesc的精彩回答,我對你的代碼進行了一些修改。我使用PtQt = 4 Python = 2.7并且我沒有使用opencvimport?sys
import?numpy?as?npimport?flycapture2?as?fc2from?PyQt4.QtCore?import?(QThread,?Qt,?pyqtSignal)from?PyQt4.QtGui?import?(QPixmap,?QImage,?QApplication,?QWidget,?QLabel)class?Thread(QThread):
changePixmap?=?pyqtSignal(QImage)
def?__init__(self,?parent=None):
QThread.__init__(self,?parent=parent)
self.cameraSettings()
def?run(self):
while?True:
im?=?fc2.Image()
self.c.retrieve_buffer(im)
a?=?np.array(im)
rawImage?=?QImage(a.data,?a.shape[1],?a.shape[0],?QImage.Format_Indexed8)
self.changePixmap.emit(rawImage)
def?cameraSettings(self):
print(fc2.get_library_version())
self.c?=?fc2.Context()
numberCam?=?self.c.get_num_of_cameras()
print(numberCam)
self.c.connect(*self.c.get_camera_from_index(0))
print(self.c.get_camera_info())
m,?f?=?self.c.get_video_mode_and_frame_rate()
print(m,?f)
print(self.c.get_property_info(fc2.FRAME_RATE))
p?=?self.c.get_property(fc2.FRAME_RATE)
print(p)
self.c.set_property(**p)
self.c.start_capture()class?App(QWidget):
def?__init__(self):
super(App,self).__init__()
self.title?=?'PyQt4?Video'
self.left?=?100
self.top?=?100
self.width?=?640
self.height?=?480
self.initUI()
def?initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left,?self.top,?self.width,?self.height)
self.resize(800,?600)
#?create?a?label
self.label?=?QLabel(self)
self.label.move(0,?0)
self.label.resize(640,?480)
th?=?Thread(self)
th.changePixmap.connect(lambda?p:?self.setPixMap(p))
th.start()
def?setPixMap(self,?p):
p?=?QPixmap.fromImage(p)
p?=?p.scaled(640,?480,?Qt.KeepAspectRatio)
self.label.setPixmap(p)if?__name__?==?'__main__':
app?=?QApplication(sys.argv)
ex?=?App()
ex.show()
sys.exit(app.exec_())
總結
以上是生活随笔為你收集整理的pyqt5能否用于鸿蒙系统,PyQt显示来自opencv的视频流的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 冰箱放在客厅对宝宝有影响吗?
- 下一篇: 门芯材有哪些材质?哪个品牌板材可靠,求推