python – `QImage`构造函数有未知的关键字`data`

python – `QImage`构造函数有未知的关键字`data`,第1张

概述假设我使用opencv从网络摄像头拍摄图像. _, img = self.cap.read() # numpy.ndarray (480, 640, 3) 然后我使用img创建一个QImage qimg: qimg = QImage( data=img, width=img.shape[1], height=img.shape[0], bytesPerLine=i 假设我使用opencv从网络摄像头拍摄图像.

_,img = self.cap.read()  # numpy.ndarray (480,640,3)

然后我使用img创建一个QImage qimg:

qimg = QImage(    data=img,wIDth=img.shape[1],height=img.shape[0],bytesPerline=img.strIDes[0],format=QImage.Format_Indexed8)

但它给出了一个错误说:

TypeError: ‘data’ is an unkNown keyword argument

但是在this文档中说,构造函数应该有一个名为data的参数.

我正在使用anaconda环境来运行这个项目.

opencv version = 3.1.4

pyqt version = 5.9.2

numpy version = 1.15.0

解决方法 他们所指示的是数据是作为参数所必需的,而不是关键字被称为数据,以下方法将numpy / opencv图像转换为QImage:

from PyQt5.QtGui import QImage,qRgbimport numpy as npimport cv2gray_color_table = [qRgb(i,i,i) for i in range(256)]def NumpyToQImage(im):    qim = QImage()    if im is None:        return qim    if im.dtype == np.uint8:        if len(im.shape) == 2:            qim = QImage(im.data,im.shape[1],im.shape[0],im.strIDes[0],QImage.Format_Indexed8)            qim.setcolortable(gray_color_table)        elif len(im.shape) == 3:            if im.shape[2] == 3:                qim = QImage(im.data,QImage.Format_RGB888)            elif im.shape[2] == 4:                qim = QImage(im.data,QImage.Format_ARGB32)    return qimimg = cv2.imread('/path/of/image')qimg = NumpyToQImage(img)assert(not qimg.isNull())

或者您可以使用qimage2ndarray库

使用索引裁剪图像时只修改形状而不修改数据,解决方法是复制

img = cv2.imread('/path/of/image')img = np.copy(img[200:500,300:500,:]) # copy imageqimg = NumpyToQImage(img)assert(not qimg.isNull())
总结

以上是内存溢出为你收集整理的python – `QImage`构造函数未知的关键字`data`全部内容,希望文章能够帮你解决python – `QImage`构造函数有未知的关键字`data`所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1191035.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存