Pyqt QImage 与 np array 转换方法


Posted in Python onJune 27, 2019

项目使用Pyqt作为UI框架,使用相机线程捕捉image,并在QGraphicsView中显示,遇到以下问题:

1、采集的数据为nparray数据,需转换为QImage 转换代码如下:

img=cv2.resize(src=img,dsize=None,fx=0.2,fy=0.2)
img2=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
self._image = QtGui.QImage(img2[:],img2.shape[1], img2.shape[0],img2.shape[1] * 3, QtGui.QImage.Format_RGB888)

注意:QImage(uchar * data, int width, int height, int bytesPerLine, Format format) 中的bytesPerLine 参数不能省略,负责造成Qimage数据错误,显示图片不正常,此参数设置为image的width*image.channels

2、采集数据的线程为非UI线程,则在QGraphicsView中显示时不仅需要添加Item对象,并且更新显示线程需在UI线程中,否则QGraphicsView不会主动更新显示,使用信号将image放到UI线程中更新即可

3、保证在UI更新时,所需更新的image还未被销毁,由于处于不同的线程,所以image可存储于更新前不会被销毁的对象中

以上这篇Pyqt QImage 与 np array 转换方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
深入理解Python 关于supper 的 用法和原理
Feb 28 Python
Python并行分布式框架Celery详解
Oct 15 Python
windows下搭建python scrapy爬虫框架步骤
Dec 23 Python
Python 运行 shell 获取输出结果的实例
Jan 07 Python
Python控制键盘鼠标pynput的详细用法
Jan 28 Python
Python Django基础二之URL路由系统
Jul 18 Python
python @propert装饰器使用方法原理解析
Dec 25 Python
Python使用configparser库读取配置文件
Feb 22 Python
Python3 Tensorlfow:增加或者减小矩阵维度的实现
May 22 Python
python3.7添加dlib模块的方法
Jul 01 Python
python用Configobj模块读取配置文件
Sep 26 Python
python实现三次密码验证的示例
Apr 29 Python
pyqt5 使用cv2 显示图片,摄像头的实例
Jun 27 #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
You might like
用PHP和ACCESS写聊天室(十)
2006/10/09 PHP
mysql 的 like 问题,超强毕杀记!!!
2007/01/18 PHP
PHP获取远程图片并保存到本地的方法
2015/05/12 PHP
分享PHP守护进程类
2015/12/30 PHP
zend framework重定向方法小结
2016/05/28 PHP
简述php环境搭建与配置
2016/12/05 PHP
PHP读取文件,解决中文乱码UTF-8的方法分析
2020/01/22 PHP
javascript 学习之旅 (3)
2009/02/05 Javascript
javascript 文档的编码问题解决
2009/03/01 Javascript
js获取GridView中行数据的两种方法 分享
2013/07/13 Javascript
倒记时60刷新网页的js代码
2014/02/18 Javascript
js弹出确认是否删除对话框
2014/03/27 Javascript
JavaScript模块规范之AMD规范和CMD规范
2015/10/27 Javascript
NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
2016/07/26 NodeJs
js实现可旋转的立方体模型
2016/10/16 Javascript
简单理解vue中实例属性vm.$els
2016/12/01 Javascript
vue-cli配置文件——config篇
2018/01/04 Javascript
在vue组件中使用axios的方法
2018/03/16 Javascript
React props和state属性的具体使用方法
2018/04/12 Javascript
vue动态绑定组件子父组件多表单验证功能的实现代码
2018/05/14 Javascript
基于vue.js实现分页查询功能
2018/12/29 Javascript
基于Python List的赋值方法
2018/06/23 Python
Python运维自动化之nginx配置文件对比操作示例
2018/08/29 Python
Python 实现数据结构-循环队列的操作方法
2019/07/17 Python
Python如何输出警告信息
2020/07/30 Python
Python sqlalchemy时间戳及密码管理实现代码详解
2020/08/01 Python
python操作ini类型配置文件的实例教程
2020/10/30 Python
python爬虫破解字体加密案例详解
2021/03/02 Python
香蕉共和国工厂店:Banana Republic Factory
2018/06/09 全球购物
法国在线药房:DoctiPharma
2020/10/21 全球购物
.NET笔试题(20个问题)
2016/02/02 面试题
机关工会开展学习雷锋活动总结
2014/03/01 职场文书
公安交警个人对照检查材料思想汇报
2014/10/01 职场文书
2015年党风建设工作总结
2015/04/29 职场文书
发言稿之优秀教师篇
2019/09/26 职场文书
为什么RedisCluster设计成16384个槽
2021/09/25 Redis