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

(0)

相关推荐

  • pyqt5 从本地选择图片 并显示在label上的实例

    1.主要用到 QFileDialog 方法打开本地文件 2.界面 打开前: 打开后: 3. 代码 import sys from PyQt5 import QtWidgets, QtCore, QtGui from PyQt5.QtGui import * from PyQt5.QtWidgets import * from PyQt5.QtCore import * class picture(QWidget): def __init__(self): super(picture, self)

  • PyQt5 在label显示的图片中绘制矩形的方法

    在利用QT编写GUI程序时经常需要一些交互操作,常见的有鼠标事件.键盘事件等.今天我们要实现的是在label中已经显示的图像中绘制矩形框,以便进行下一步操作(如放大细节,选中感兴趣区域等)程序主要参考了知乎的小杨老师的专栏. 核心点是重写Label,使其实现相应的功能,看下面的一个小例子 from PyQt5.QtWidgets import QWidget, QApplication, QLabel from PyQt5.QtCore import QRect, Qt from PyQt5.Q

  • 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, QPix

  • 鼠标移动到图片名上,显示图片的简单实例

    做法:新建 a.html 和 一个待显示图片 wait.gif  放在同一目录下,a.html 代码如下: 复制代码 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"        "http://www.w3.org/TR/html4/loose.dtd"><html><head>    <title></title>

  • js 鼠标移动显示图片的简单实例

    一.js代码 复制代码 代码如下: //***********默认设置定义.*********************   tPopWait=50;//停留tWait豪秒后显示提示.   tPopShow=5000;//显示tShow豪秒后关闭提示   showPopStep=20;  popOpacity=99; //***************内部变量定义*****************   sPop=null;  curShow=null;  tFadeOut=null;  tFade

  • pyqt5圆形label显示打开的摄像头功能

    本博客主要谈及内容是: 如何使用pyqt5是上打开摄像头并在label上显示,以及优化成圆形label框. 本文章可能是全网首篇关于圆形label显示摄像头图像. .在label显示打开的摄像头原理其实在label显示图片差不多,最多就是多一个定时器来不停的刷label更新图片(下图是我们设计的ui) 默认的label都是方方正正的,如果只是单纯改变样式,是无法实现下图的下图的效果的,原因很简单,你ui初始化的时候是圆的.但是图片是方方正正的,所以最后显示的还是方方正正的label(我一个博主测

  • 关于PyQt5中QtGui.QImage图片显示问题解析

    前言 PyQt是Python语言环境的GUI编程解决方案之一,另外还有PyGTK.wxPython等也较为常用.PyQt作为Qt语言的Python扩展,可以用来方便快速的开发界面应用. PyQt5中的QtGui.QImage图片显示 import os.path as osp import cv2 from qtpy import QtCore from qtpy import QtWidgets from qtpy import QtGui # TracelessLe注:代码示例,不可直接执行

  • PyTorch读取Cifar数据集并显示图片的实例讲解

    首先了解一下需要的几个类所在的package from torchvision import transforms, datasets as ds from torch.utils.data import DataLoader import matplotlib.pyplot as plt import numpy as np #transform = transforms.Compose是把一系列图片操作组合起来,比如减去像素均值等. #DataLoader读入的数据类型是PIL.Image

  • pyqt5 实现工具栏文字图片同时显示

    如下所示: import sys from PyQt5.QtWidgets import QMainWindow, QTextEdit, QAction, QApplication from PyQt5.QtGui import QIcon from PyQt5.QtCore import Qt class Example(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): te

  • pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法

    1:listWidget 以滚动窗口显示文件下的所有文件: self.listWidget = QtWidgets.QListWidget(self.gridLayoutWidget) self.listWidget.setMaximumSize(QtCore.QSize(16777215, 400)) self.listWidget.setObjectName("listWidget") 以上代码都是以qtDesigner画出来自动生成的 self.listWidget.setVer

  • PyQT5 QTableView显示绑定数据的实例详解

    如下所示: import sys from PyQt5 import QtCore,QtGui from PyQt5.QtWidgets import QApplication, QMainWindow from PyQt5.uic import loadUi class MainWindow(QMainWindow): def __init__(self, parent=None): super(MainWindow, self).__init__(parent) loadUi('qtdesi

随机推荐