pyQT界面显示OpenCV采集的摄像头视频

jose11 2018-07-13 04:04:12
while(1):
print("c")
ret_2, self.image_2 = self.cap.read()
show_2 = cv2.resize(self.image_2, (400, 400))
# 把图片缩小为了快速追踪人眼
# show_4 = cv2.resize(self.image_2, (200, 200))
show_3 = cv2.cvtColor(show_2, cv2.COLOR_BGR2RGB)


detect_image = QImage(show_3.data, show_3.shape[1], show_3.shape[0], QImage.Format_RGB888)
self.label_show.setPixmap(QPixmap.fromImage(detect_image))
为啥在循环体中,调用pyqt中的显示函数QImage无法显示视频
...全文
552 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
无情时尚 2018-07-14
  • 打赏
  • 举报
回复
末尾加个waitKey(1)试试
【资源说明】 基于树莓派的人脸识别系统python源码+项目部署说明+超详细代码注释.zip 一、功能概述   该软件实现的是人脸识别门禁功能,通过树莓派作为终端处理,使用OpenCV来识别人脸,从而达到特定的人脸开门的目的。主要分为管理员登录、录入人脸、识别人脸三大功能,管理员输入用户名和密码可以登录进入管理界面,在管理界面中录入人脸,录入人脸主要是人脸检测、捕获人脸、训练人脸,最后通过人脸识别实现开门的功能。 二、开发工具   开发工具使用的是Python2.7作为开发语言,OpenCV3.4.0作为图像处理库,PyQt5作为界面显示工具,使用树莓派自带的Geany编辑器。 注:本来搭建OpenCV环境和PyQt5的时候是按照python3.5来的,开发到一半发现用的是python2.7的版本....不过最终效果还是出来了 三、运行环境 硬件:树莓派3B+ 镜像系统:2019-04-08-raspbian-stretch-full.img 软件:python2.7+OpenCV3.4.0+PyQt5 HDMI显示屏:10.1寸、分辨率1280*800 四、用户手册 # 1、系统主界面 启动树莓派,就能看到主界面,如下: 主界面是“欢迎使用人脸识别门禁系统”字样和普通用户、管理员两个功能按键,点击能进入相应的功能界面。 # 2、登录界面 点击主界面的管理员按键,进入管理员登录界面,输入响应的账号和密码点击登录即可进入管理员管理界面,默认初始账号为1,密码为1,点击返回能返回主界面。 # 3、人脸录入界面 3.1 人脸检测 在人脸录入界面中,左边是摄像头视屏采集界面,能够将视频图像显示到界面中,并对人脸进行检测,将图像中所有的人脸检测出来,并用矩形框框出。 3.2 人脸捕获和训练 在人脸录入界面中,右边是管理员需要操作的部分,待录入人员对准摄像头,管理员输入相应的ID,点击开始录入,等待进度条加载完毕即完成人脸录入,在进度条加载的过程中,完成了人脸录入和训练人脸的两个过程,人脸捕获时会自动在程序目录下创建文件夹保存60张人脸图片,训练人脸会读取捕获的人脸图像进行识别训练,并将训练数据保存在程序目录下的文件中。 # 4、人脸识别开门功能 点击返回回到主界面,点击普通用户,进入普通用户界面,待识别人员对准摄像头,能将录入的人员识别出,并显示ID,在右边会有相关提示信息,身份认证成功能控制舵机开门。 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
人脸表情识别 2020.8.22,重构了整个仓库代码,改用Tensorflow2中的keras api实现整个系统。考虑到很多反映jupyter notebook写的train使用起来不太方便,这里改成了py脚本实现。 2020.12.18,根据反馈,修改了Jaffe的优化器设置。 简介 使用卷积神经网络构建整个系统,在尝试了Gabor、LBP等传统人脸特征提取方式基础上,深度模型效果显著。在FER2013、JAFFE和CK+三个表情识别数据集上进行模型评估。 环境部署 基于Python3和Keras2(TensorFlow后端),具体依赖安装如下(推荐使用conda虚拟环境)。 git clone https://github.com/luanshiyinyang/FacialExpressionRecognition.git cd FacialExpressionRecognition conda create -n FER python=3.6 source activate FER conda install cudatoolkit=10.1 conda install cudnn=7.6.5 pip install -r requirements.txt 如果你是Linux用户,直接执行根目录下的env.sh即可一键配置环境,执行命令为bash env.sh。 数据准备 数据集和预训练模型均已经上传到百度网盘,链接给出,提取密码为2pmd。下载后将model.zip移动到根目录下的models文件夹下并解压得到一个*.h5的模型参数文件,将data.zip移动到根目录下的dataset文件夹下并解压得到包含多个数据集压缩文件,均解压即可得到包含图像的数据集(其中rar后缀的为原始jaffe数据集,这里建议使用我处理好的)。 项目说明 传统方法 数据预处理 图片降噪 人脸检测(HAAR分类器检测(opencv)) 特征工程 人脸特征提取 LBP Gabor 分类器 SVM 深度方法 人脸检测 HAAR分类器 MTCNN(效果更好) 卷积神经网络 用于特征提取+分类 网络设计 使用经典的卷积神经网络,模型的构建主要参考2018年CVPR几篇论文以及谷歌的Going Deeper设计如下网络结构,输入层后加入(1,1)卷积层增加非线性表示且模型层次较浅,参数较少(大量参数集中在全连接层)。 模型训练 主要在FER2013、JAFFE、CK+上进行训练,JAFFE给出的是半身图因此做了人脸检测。最后在FER2013上Pub Test和Pri Test均达到67%左右准确率(该数据集爬虫采集存在标签错误、水印、动画图片等问题),JAFFE和CK+5折交叉验证均达到99%左右准确率(这两个数据集为实验室采集,较为准确标准)。 执行下面的命令将在指定的数据集(fer2013或jaffe或ck+)上按照指定的batch_size训练指定的轮次。训练会生成对应的可视化训练过程,下图为在三个数据集上训练过程的共同绘图。 python src/train.py --dataset fer2013 --epochs 300 --batch_size 32 模型应用 与传统方法相比,卷积神经网络表现更好,使用该模型构建识别系统,提供GUI界面和摄像头实时检测(摄像必须保证补光足够)。预测时对一张图片进行水平翻转、偏转15度、平移等增广得到多个概率分布,将这些概率分布加权求和得到最后的概率分布,此时概率最大的作为标签(也就是使用了推理数据增强)。 GUI界面 注意,GUI界面预测只显示最可能是人脸的那个脸表情,但是对所有检测到的人脸都会框定预测结果并在图片上标记,标记后的图片在output目录下。 执行下面的命令即可打开GUI程序,该程序依赖PyQT设计,在一个测试图片(来源于网络)上进行测试效果如下图。 python src/gui.py 上图的GUI反馈的同时,会对图片上每个人脸进行检测并表情识别,处理后如下图。 实时检测 实时检测基于Opencv进行设计,旨在用摄像头对实时视频流进行预测,同时考虑到有些人的反馈,当没有摄像头想通过视频进行测试则修改命令行参数即可。 使用下面的命令会打开摄像头进行实时检测(ESC键退出),若要指定视频进行进行检测,则使用下面的第二个命令。 python src/recognition_camera.py python src/recognition_camera.py --source 1 --video_path 视频绝对路径或者相对于该项目的根目录的相对路径 下图是动态演示的在Youtube上某个视频上的识别结果。

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧