python+opencv+pyqt5控制摄像头在Qlabel上显示
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上显示的更多相关文章
- python+opencv 打开网络摄像头
python+opencv 打开网络摄像头(手机)(转) #以下是最常用的读取视频流的方法import cv2url = 'rtsp://admin:admin@192.169.5.2:554/'#根 ...
- 在python3下使用OpenCV 抓取摄像头图像并实时显示3色直方图
以下代码为在Python3环境下利用OpenCV 抓取摄像头的实时图像, 通过OpenCV的 calHist函数计算直方图, 并显示在3个不同窗口中. import cv2 import numpy ...
- python opencv 读取USB摄像头的像素问题
问题描述 每次调用capture读取video的时候,还回的像素都是640x480,不管是笔记本的摄像头还是USB摄像头,明明我的摄像头是支持130万读取的功能的呀. 问题分析 一番查找,关于用ope ...
- python opencv PyQt5
import cv2 import numpy as np import sys from PyQt5.QtGui import * from PyQt5.QtCore import * from P ...
- MFC上显示摄像头JPEG图片数据的两种方法
其一是借助opencv,其二是利用流对象. 方法一: CvMat *mat; ,,CV_8UC1); ,,CV_8UC1,JPEGBuf); /*初始化矩阵信息头,这里的JPEGBuf就是JPEG图像 ...
- 用Python控制摄像头拍照并发邮件
概述前言 工具 思路 安装及导入包 设置参数 实现拍照 构造邮件内容 发送邮件 判断网络连接 开机自启 后记 o1 前言为什么会有写这个程序的想法呢? 最初的想法是写一个可以用电脑前置摄像头拍照的程序 ...
- 在Jetson TX2上显示摄像头视频并使用python进行caffe推理
参考文章:How to Capture Camera Video and Do Caffe Inferencing with Python on Jetson TX2 与参考文章大部分都是相似的,如果 ...
- Python手势识别与控制
代码地址如下:http://www.demodashi.com/demo/12968.html Python手势识别与控制 概述 本文中的手势识别与控制功能主要采用 OpenCV 库实现, OpenC ...
- 【Python | opencv+PIL】常见操作(创建、添加帧、绘图、读取等)的效率对比及其优化
一.背景 本人准备用python做图像和视频编辑的操作,却发现opencv和PIL的效率并不是很理想,并且同样的需求有多种不同的写法并有着不同的效率.见全网并无较完整的效率对比文档,遂决定自己丰衣足食 ...
随机推荐
- retry 使用
retry是用来实现重试的 from retry import retry @retry(tries=5, delay=2) def do_something(): xxx do_something( ...
- SQL学习笔记。
数据库视图: 视图是虚表,是从一个或几个基本表(或视图)中导出的表,在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据. 视图是原始数据库数据的一种变换,是查看表中数据的另外一种方式.可以将视 ...
- python学习笔记(五)os、sys模块
一.os模块 print(os.name) #输出字符串指示正在使用的平台.如果是window 则用'nt'表示,对于Linux/Unix用户,它是'posix'. print(os.getcwd( ...
- django生产环境部署
测试环境:linux centos7下 1.安装uwsgi python3下安装: pip3 install uwsgi python2下安装: pip install uwsgi 如果是系统自带的p ...
- SpringMVC的其他功能使用
一.SpringMVC支持在控制器的业务方法中写入参数作为传递过来的变量 @Controller @RequestMapping(value="/kaiye") public cl ...
- TOSCA自动化测试工具ppt(正在整理)
1. 认识TOSCA 安装使用 2. TOSCA自动化测试工具的优点 1). 可扩展 Tosca Commander™ functionalities can be extended by us ...
- TOSCA自动化测试工具--openURL
在folder下面create test case 输入自己的url,actionMode 是input, String类型
- Java最佳实战
1. 针对日志记录的优化:logback , 预编译形式记录日志,开发debug,生产info,访问日志和错误日志分开,异常日志输出到单独文件 2. 针对数据库连接的优化 :单例模式或数据库连接池 3 ...
- 一只代码小白git托管路上的二三事
[经验]一只代码小白git托管路上的二三事 写在前面的话 寒假的时候,娄老师给我们布置了代码托管的作业,并要求把托管地址发给学委.因假期的时候没有带电脑回家,所以只是在手机上草草注册了,也稀里糊涂就将 ...
- Python面试题之Python中应该使用%还是format来格式化字符串?
Python中格式化字符串目前有两种阵营:%和format,我们应该选择哪种呢? 自从Python2.6引入了format这个格式化字符串的方法之后,我认为%还是format这根本就不算个问题.不信你 ...