在pyqtgraph的ImageView中显示QPixmap或QImage

时间:2019-01-29 01:24:23

标签: pyqt5 pyqtgraph

我想在ImageView中显示RGBA数组。我目前能够做到的唯一方法是先制作一个QImage,然后再制作一个QPixmap,并在标签中显示它。但是,我希望将其显示在ImageView中,以提供我已经实现的所有其他功能。这可能吗?

qimage = pg.fn.makeQImage(x)

pixmap = QtGui.QPixmap.fromImage(qimage)

imvOCTTopLeft.close()

elasticity = QtGui.QLabel()

layout.addWidget(elasticity,4,1)

elasticity.setPixmap(pixmap)

2 个答案:

答案 0 :(得分:0)

使用ImageView.setImage(img),参数必须是3d numpy数组,其形状为(宽度,高度,4)。最后一个尺寸是rgba,范围是0到1。

import pyqtgraph as pg
import numpy as np

if __name__ == '__main__':
    app = pg.mkQApp()
    w = pg.ImageView()
    image = np.array([np.array([np.array([1, i*0.01, i*j*0.0001, 1]) for i in range(100)]) for j in range(100)])
    w.setImage(image)
    w.show()
    app.exec()

结果:

result

答案 1 :(得分:0)

该库将帮助您在QImage和ndarray之间转换 https://github.com/hmeine/qimage2ndarray/