Pyqt QImage 与 np array 转换方法

项目使用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 转换方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python将txt文件读入为np.array的方法

    原文件: 7.8094,1.0804,5.7632,0.012269,0.008994,-0.003469,-0.79279,-0.064686,0.11635,0.68827,5.7169,7.9329,0.010264,0.003557,-0.011691,-0.57559,-0.56121, 原文件数据比较多,是一个125行,45类float数字. 代码: # -*- coding: utf-8 -*- import numpy as np def readFile(path): # 打开

  • 浅谈python中np.array的shape( ,)与( ,1)的区别

    如下所示: >>> import numpy as np >>> x = np.array([1, 2]) >>> y = np.array([[1],[2]]) >>> z = np.array([[1,2]]) >>> print(x.shape) (2,) >>> print(y.shape) (2, 1) >>> print(z.shape) (1, 2) x[1,2]的s

  • Pyqt QImage 与 np array 转换方法

    项目使用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],img

  • Pandas实现dataframe和np.array的相互转换

    网上找了半天 不是dataframe转化成array的就是array转化dataframe,所以这里给汇总一下,相互转换的python代如下: dataframe转化成array df=df.values array转化成dataframe import pandas as pd df = pd.DataFrame(df) 这样就OK了! 以上这篇Pandas实现dataframe和np.array的相互转换就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 浅谈numpy中np.array()与np.asarray的区别以及.tolist

    array和asarray都可以将结构数据转化为ndarray,但是主要区别就是当数据源是ndarray时,array仍然会copy出一个副本,占用新的内存,但asarray不会. 1.输入为列表时 a=[[1,2,3],[4,5,6],[7,8,9]] b=np.array(a) c=np.asarray(a) a[2]=1 print(a) print(b) print(c) 从中我们可以看出np.array与np.asarray功能是一样的,都是将输入转为矩阵格式.当输入是列表的时候,更改

  • Numpy np.array()函数使用方法指南

    目录 1.Numpy ndarray对象 2.创建numpy数组 总结 1.Numpy ndarray对象 numpy ndarray对象是一个n维数组对象,ndarray只能存储一系列相同元素. #一维数组 [1,2,3,4] #shape(4,) #二维数组 [[1,2,3,4]] #shape(1,4) [[1,2,3,4], [5,6,7,8]] #shape(2,4) #三维数组 [ [[1,2,3],[4,5,6]], [[7,8,9],[10,11,12]] ] #shape(2,

  • np.array()函数的使用方法

    目录 函数调用方法: 普通用法: 进阶用法: 更高级的用法: 函数调用方法: numpy.array(object, dtype=None) 各个参数意义: object:创建的数组的对象,可以为单个值,列表,元胞等. dtype:创建数组中的数据类型. 返回值:给定对象的数组. 普通用法: import numpy as np array = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) print("数组array的值为: ") print(ar

  • 详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法

    前提: list以及array是python中经常会用到的数据类型,当需要对list以及array进行文件的读写操作的时候,由于write函数参数需要的是一个str,所以这时就需要对list或者array进行str的转换了. list和array的不同: 在进行转换之间先研究下python中list和array(np.array)的不同: 1.list是python中内置的数据类型,其中的数据的类型可以不相同,如java中List也可以不用相同的数据,但是为了格式的统一,就要用到泛型或者Arra

  • 详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法

    在用pandas包和numpy包对数据进行分析和计算时,经常用到DataFrame和array类型的数据.在对DataFrame类型的数据进行处理时,需要将其转换成array类型,是以下列出了三种转换方法. 首先导入numpy模块.pandas模块.创建一个DataFrame类型数据df import numpy as np import pandas as pd df=pd.DataFrame({'A':[1,2,3],'B':[4,5,6],'C':[7,8,9]}) 1.使用DataFra

  • Pyqt+matplotlib 实现实时画图案例

    需求分析: 项目中根据测得的数据在界面上实时绘制 运行环境: Python 3.7 + Matplotlib 3.0.2 + PyQt 5 matplot官网给的相应的例子: import sys import time import numpy as np from matplotlib.backends.qt_compat import QtCore, QtWidgets, is_pyqt5 if is_pyqt5(): from matplotlib.backends.backend_qt

随机推荐