在 pyqtgraph 的 ImageView 中显示 QPixmap 或 QImage

Display a QPixmap or QImage in ImageView in 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)

使用ImageView.setImage(img) 参数必须是形状为(宽度、高度、4)的 3d numpy 数组。最后一个维度是 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()

结果:

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