pyqt5 使用cv2 显示图片,摄像头的实例
更新时间:2019年06月27日 20:13:14 作者:ShellCollector
今天小编就为大家分享一篇pyqt5 使用cv2 显示图片,摄像头的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
如下所示:
#! /usr/bin/python3
# coding = utf-8
# from PyQt5 import QtGui,QtCore,Qt
import sys
from PyQt5.QtCore import Qt,pyqtSignal,QSize,QRect,QMetaObject, QCoreApplication, pyqtSlot,QPropertyAnimation,QThread
from PyQt5.QtGui import QIcon, QFont, QPixmap, QPainter, QImage
from PyQt5.QtWidgets import QMainWindow, QApplication
import cv2
from gevent.libev.corecext import SIGNAL, time
from qtpy importQtCore
class mycsms(QMainWindow):
def __init__(self):
super(mycsms, self).__init__()
self.setupUi(self)
self.image= QImage()
self.device= cv2.VideoCapture(0)
self.playTimer= Timer("updatePlay()")
self.connect(self.playTimer, SIGNAL("updatePlay()"), self.showCamer)
# 读摄像头
def showCamer(self):
if self.device.isOpened():
ret, frame= self.device.read()
else:
ret = False
# 读写磁盘方式
# cv2.imwrite("2.png",frame)
#self.image.load("2.png")
height, width, bytesPerComponent= frame.shape
bytesPerLine = bytesPerComponent* width
# 变换彩色空间顺序
cv2.cvtColor(frame, cv2.COLOR_BGR2RGB,frame)
# 转为QImage对象
self.image= QImage(frame.data, width, height, bytesPerLine, QImage.Format_RGB888)
self.view.setPixmap(QPixmap.fromImage(self.image))
if __name__ == "__main__":
app = QApplication(sys.argv)
myshow = mycsms()
myshow.playTimer.start()
myshow.show()
sys.exit(app.exec_())
# 线程类:
class Timer(QtCore.QThread):
def __init__(self, signal="updateTime()", parent=None):
super(Timer, self).__init__(parent)
self.stoped= False
self.signal= signal
self.mutex= QtCore.QMutex()
def run(self):
with QtCore.QMutexLocker(self.mutex):
self.stoped= False
while True:
if self.stoped:
return
self.emit(QtCore.SIGNAL(self.signal))
#40毫秒发送一次信号
time.sleep(0.04)
def stop(self):
with QtCore.QMutexLocker(self.mutex):
self.stoped= True
def isStoped(self):
with QtCore.QMutexLocker(self.mutex):
return self.stoped
以上这篇pyqt5 使用cv2 显示图片,摄像头的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
这篇文章主要介绍了Python3中内置类型bytes和str用法及byte和string之间各种编码转换问题,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下2018-09-09
解决django.db.utils.IntegrityError:(1048, Column las
这篇文章主要介绍了解决django.db.utils.IntegrityError:(1048, Column last_login cannot be null)问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-01-01
Keras框架中的epoch、bacth、batch size、iteration使用介绍
这篇文章主要介绍了Keras框架中的epoch、bacth、batch size、iteration使用介绍,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-06-06


最新评论