pyqt5 使用cv2 显示图片,摄像头的实例


Posted in Python onJune 27, 2019

如下所示:

#! /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 显示图片,摄像头的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
简单理解Python中基于生成器的状态机
Apr 13 Python
Python实现的Excel文件读写类
Jul 30 Python
python如何在终端里面显示一张图片
Aug 17 Python
django框架用户权限中的session缓存到redis中的方法
Aug 06 Python
对django layer弹窗组件的使用详解
Aug 31 Python
Python+OpenCV实现将图像转换为二进制格式
Jan 09 Python
python orm 框架中sqlalchemy用法实例详解
Feb 02 Python
python matplotlib 绘图 和 dpi对应关系详解
Mar 14 Python
Jupyter Notebook的连接密码 token查询方式
Apr 21 Python
jupyter notebook运行命令显示[*](解决办法)
May 18 Python
Python接口测试环境搭建过程详解
Jun 29 Python
pycharm 使用tab跳出正在编辑的括号(){}{}等问题
Feb 26 Python
对python中GUI,Label和Button的实例详解
Jun 27 #Python
python 整数越界问题详解
Jun 27 #Python
在Python中合并字典模块ChainMap的隐藏坑【推荐】
Jun 27 #Python
python 反编译exe文件为py文件的实例代码
Jun 27 #Python
Python 使用PyQt5 完成选择文件或目录的对话框方法
Jun 27 #Python
Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
Jun 27 #Python
对python3 sort sorted 函数的应用详解
Jun 27 #Python
You might like
php获取网页内容方法总结
2008/12/04 PHP
php7 list()、session及其他模块的修改实例分析
2020/05/25 PHP
javascript向flash swf文件传递参数值注意细节
2012/12/11 Javascript
jquery弹出关闭遮罩层实例
2013/08/06 Javascript
javascript十六进制及二进制转化的方法
2015/05/06 Javascript
使用AngularJS编写较为优美的JavaScript代码指南
2015/06/19 Javascript
JS将滑动门改为选项卡(需鼠标点击)的实现方法
2015/09/27 Javascript
新手学习前端之js模仿淘宝主页网站
2016/10/31 Javascript
探讨AngularJs中ui.route的简单应用
2016/11/16 Javascript
微信小程序 swiper组件构建轮播图的实例
2017/09/20 Javascript
vue实现验证码输入框组件
2017/12/14 Javascript
vue项目中跳转到外部链接的实例讲解
2018/09/20 Javascript
详解vuex commit保存数据技巧
2018/12/25 Javascript
JavaScript switch语句使用方法简介
2019/12/30 Javascript
[57:53]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#3OG VS VP
2016/03/03 DOTA
[36:45]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python中进程和线程的区别详解
2017/10/29 Python
python实现Zabbix-API监控
2018/09/17 Python
使用Python的toolz库开始函数式编程的方法
2018/11/15 Python
利用python提取wav文件的mfcc方法
2019/01/09 Python
Python常见数据结构之栈与队列用法示例
2019/01/14 Python
Python利用pandas处理Excel数据的应用详解
2019/06/18 Python
利用python Selenium实现自动登陆京东签到领金币功能
2019/10/31 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
2020/05/13 Python
Python Pandas 对列/行进行选择,增加,删除操作
2020/05/17 Python
python 可视化库PyG2Plot的使用
2021/01/21 Python
HTML5和CSS3让网页设计提升到下一个高度
2009/08/14 HTML / CSS
英国高街奥特莱斯:Highstreet Outlet
2019/11/21 全球购物
应用电子技术专业个人求职信
2013/09/21 职场文书
公司员工检讨书
2014/02/08 职场文书
绩效管理实施方案
2014/03/19 职场文书
工伤赔偿协议书
2014/04/15 职场文书
献爱心标语
2014/06/21 职场文书
个人批评与自我批评总结
2014/10/17 职场文书
SpringBoot快速入门详解
2021/07/21 Java/Android
MYSQL 运算符总结
2021/11/11 MySQL