【问题标题】:Obtaining the corresponding x,y,z values from pyqtgraph.image plot从 pyqtgraph.image 图中获取对应的 x,y,z 值
【发布时间】:2026-01-23 20:30:02
【问题描述】:

我有一系列使用以下 Python (2.7) 代码生成的图像:

import numpy as np
import pyqtgraph as pg
data = np.ones((230,10,10)) #for example; not quite the data that resulted in this image, but the numbers themselves are not the focus
img = pg.image(data)
pg.QtGui.QApplication.exec_()

如何从底部图中获取相应的“x”值?另外,如何从上图中的每个正方形中获取对应的(x,y)坐标?

* 上的各种答案都集中在“ImageView”上,但如果可以的话,我会尽量避免它——由于某种原因,我无法用 ImageView 生成类似的图——没有任何结果,Python 只是冻结。我也是 PyQtGraph 的新手。

【问题讨论】:

  • 请澄清您的问题,您到底想要什么?
  • 能够将鼠标悬停在图(网格图或图形图)上并获得相应的坐标。

标签: python python-2.7 numpy pyqtgraph


【解决方案1】:

pg.ImageView is actually the same as pg.image 它在图像窗口内创建一个图像视图

因此请尝试以下操作以使您的代码与 ImageView 一起运行

import numpy as np
import pyqtgraph as pg
data = np.ones((230,10,10))
imv = pg.ImageView()
imv.setImage(data)
imv.show()
pg.QtGui.QApplication.exec_()

关于坐标,底部的图是从Region of Interest (ROI) 生成的,以获取您需要向图像添加 ROI 的 x 和 y 坐标。

roi = pg.ROI([0,0],[1,1],pen=pg.mkPen('r',width=2))
imv.addItem(roi)
def getcoordinates(roi):
    data2,xdata = roi.getArrayRegion(data,imv.imageItem,returnMappedCoords=True)
    print(xdata)
roi.sigRegionChanged.connect(getcoordinates)

现在将打印出 ROI 悬停的坐标

注意:上面的代码是 python 3.7,因为这就是我正在使用的。所以你必须让一些东西适应 python 2.7

【讨论】:

  • 注意:上面的代码非常基础,一个更好的例子是使用一个类来处理所有事情。
最近更新 更多