【发布时间】:2014-05-29 10:26:47
【问题描述】:
当我尝试从 numpy 数组设置像素图时,我得到了错误违规访问。
0xC0000005: Access violation reading location 0x0ca00020
需要使用 numpy 数组。无论如何我不会给出问题
这是代码,错误在setPixmap操作中。
from scipy import misc
numpy_image_uint8 = misc.imread('test.jpeg')
#info_image=images[0]
#numpy_image_uint8=info_image.frames[0]
numpy_image_uint32 = numpy_image_uint8.astype(np.uint32).copy()
img = (255 << 24 | numpy_image_uint32[:,:,0] << 16 | numpy_image_uint32[:,:,1] << 8 | numpy_image_uint32[:,:,2]).flatten() # pack RGB values
imgQ = QImage(img,640,480,QImage.Format_RGB32)
#imgQ = QImage(QtCore.QString('test.jpeg'))
self.item.setPixmap(QPixmap.fromImage(imgQ))
此外,还有两个有趣的点:
-
如果我使用从文件中加载的
QImage,它可以工作,如下所示:imgQ = QImage(QtCore.QString('test.jpeg')) -
如果我保存
imgQ变量,保存的图像似乎正确:imgQ = QImage(img,640,480,QImage.Format_RGB32) imgQ.save("test_image.bmp")
【问题讨论】: