import cv2
import numpy as numpy
from PIL import *
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from threading import *
#一大堆引用,乱七八糟,都要用到
#需要继承QWidget,初始化窗体
class initform(QWidget):
def __init__(self):
super().__init__()
return self.initUI() def initUI(self):
#设置窗口左上边距,宽度高度
self.setGeometry(300,300,800,600)
#设置窗体标题
self.setWindowTitle("myui")
# self.layout=QGridLayout(self)
#设置lable文本内容
self.lable=QLabel("iamlable",self)
# self.lable.move(0,0)
#label的对其方式,为左上对其
self.lable.setAlignment(Qt.AlignTop)
self.lable.setAlignment(Qt.AlignLeft)
#设置lable的大小
self.lable.setGeometry(0,0,800,600)
# self.lable.size(800,600)
self.lable.setScaledContents(True)
# self.lable.setWordWrap(True)
# self.lable.setFixedSize(800,600)
# self.lable.setFixedWidth(800)
# self.lable.setFixedHeight(600)
#lable加入窗体
# self.layout.addWidget(self.lable) # self.lable.setAutoFillBackground(True)
# self.lable.alignment(Qt.AlignCenter)
# pe=QPalette()
# pe.setColor(QPalette.windowText,Qt.blue)
# pe.setColor(QPalette.window,Qt.red)
# self.lable.setPalette(pe)
# self.lable.move(0,0)
#读取图片
self.show() def SetPic(self,img):
# self.lable.setPixmap(QPixmap(imgPath))
#图片显示
self.lable.setPixmap(QPixmap.fromImage(img))
# print(QPixmap(imgPath))
thstop=False
#上面的这个来控制进程结束
def showcamre():
#参数0代表系统第一个摄像头,第二就用1 以此类推
cap=cv2.VideoCapture(0)
#设置显示分辨率和FPS ,不设置的话会非常卡
cap.set(cv2.CAP_PROP_FRAME_WIDTH,800)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT,600)
cap.set (cv2.CAP_PROP_FPS,20)
while cap.isOpened():
if thstop:
return
ret,frame=cap.read()
if ret==False:
continue
#水平翻转,很有必要
frame=cv2.flip(frame,1)
#opencv 默认图像格式是rgb qimage要使用BRG,这里进行格式转换,不用这个的话,图像就变色了,困扰了半天,翻了一堆资料
frame=cv2.cvtColor(frame,cv2.COLOR_RGB2BGR)
#mat-->qimage
a=QImage(frame.data,frame.shape[1],frame.shape[0],QImage.Format_RGB888)
ex.SetPic(a)
app=QApplication(sys.argv) ex=initform()
#全屏显示
# ex.showFullScreen()
#使用线程,否则程序卡死
th=Thread(target=showcamre)
th.start()
app.exec_()
#退出的时候,结束进程,否则,关不掉进程
thstop=True

python+opencv+pyqt5控制摄像头在Qlabel上显示的更多相关文章

  1. python+opencv 打开网络摄像头

    python+opencv 打开网络摄像头(手机)(转) #以下是最常用的读取视频流的方法import cv2url = 'rtsp://admin:admin@192.169.5.2:554/'#根 ...

  2. 在python3下使用OpenCV 抓取摄像头图像并实时显示3色直方图

    以下代码为在Python3环境下利用OpenCV 抓取摄像头的实时图像, 通过OpenCV的 calHist函数计算直方图, 并显示在3个不同窗口中. import cv2 import numpy ...

  3. python opencv 读取USB摄像头的像素问题

    问题描述 每次调用capture读取video的时候,还回的像素都是640x480,不管是笔记本的摄像头还是USB摄像头,明明我的摄像头是支持130万读取的功能的呀. 问题分析 一番查找,关于用ope ...

  4. python opencv PyQt5

    import cv2 import numpy as np import sys from PyQt5.QtGui import * from PyQt5.QtCore import * from P ...

  5. MFC上显示摄像头JPEG图片数据的两种方法

    其一是借助opencv,其二是利用流对象. 方法一: CvMat *mat; ,,CV_8UC1); ,,CV_8UC1,JPEGBuf); /*初始化矩阵信息头,这里的JPEGBuf就是JPEG图像 ...

  6. 用Python控制摄像头拍照并发邮件

    概述前言 工具 思路 安装及导入包 设置参数 实现拍照 构造邮件内容 发送邮件 判断网络连接 开机自启 后记 o1 前言为什么会有写这个程序的想法呢? 最初的想法是写一个可以用电脑前置摄像头拍照的程序 ...

  7. 在Jetson TX2上显示摄像头视频并使用python进行caffe推理

    参考文章:How to Capture Camera Video and Do Caffe Inferencing with Python on Jetson TX2 与参考文章大部分都是相似的,如果 ...

  8. Python手势识别与控制

    代码地址如下:http://www.demodashi.com/demo/12968.html Python手势识别与控制 概述 本文中的手势识别与控制功能主要采用 OpenCV 库实现, OpenC ...

  9. 【Python | opencv+PIL】常见操作(创建、添加帧、绘图、读取等)的效率对比及其优化

    一.背景 本人准备用python做图像和视频编辑的操作,却发现opencv和PIL的效率并不是很理想,并且同样的需求有多种不同的写法并有着不同的效率.见全网并无较完整的效率对比文档,遂决定自己丰衣足食 ...

随机推荐

  1. TensorFlow学习笔记(四)图像识别与卷积神经网络

    一.卷积神经网络简介 卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现. ...

  2. HALCON里面的一维测量。

    第一步:将图片导入, 拿到图片的名字 和窗口的句柄 第二步:创建一个测量区域.这个测量区域是一个矩形,假设他的名字叫A gen_measure_rectangle2 (TmpCtrl_Row,//输入 ...

  3. JsonObject没有fromObject、idea引入maven有红线没依赖、JsonObject maven 依赖包

    目录: 1.JsonObject maven 依赖包 2.idea引入maven有红线,没依赖 3.JsonObject没有fromObject \\\\\\\\\\\\\\\\\\\\\\\ 1.J ...

  4. hadoop开发setjar方法

    屏蔽 //job.setJar("/Users/sumeng/IdeaProjects/cloudHadoop/out/artifacts/cloudHadoop_jar/cloudHado ...

  5. linux_rpm命令

    rpm 常用命令 1.安装一个包 # rpm -ivh 文件名 2.升级一个包 # rpm -Uvh文件名 3.移走一个包 # rpm -e文件名 4.安装参数 --force 即使覆盖属于其它包的文 ...

  6. ISAP模板

    #include<bits/stdc++.h> using namespace std; using namespace std; typedef long long ll; const ...

  7. Pyspark访问Hbase

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl/p/7347167.html 转载请注明出处 记录自己最近抽空折腾虚拟机环境时用spark2.0的pyspark ...

  8. spring + groovy 转

    http://www.ibm.com/developerworks/cn/java/j-groovierspring2.html http://blog.csdn.net/qq362228416/ar ...

  9. PHP中的错误信息

    PHP中的错误信息   php.ini中配置错误消息 在PHP4中,没有异常 Exception这个概念,只有 错误Error.我们可以通过修改php.ini 文件来配置用户端输出的错误信息. 在ph ...

  10. saltstack实现自动化扩容

    案例:当nginx的并发达到3000,并持续了一段时间时,通过自动化创建一台虚拟机,部署应用最后添加到集群提供服务: zabbix监控(nginx并发量)------->action------ ...