在 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/
我想在 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/