Получение соответствующих значений x, y, z из графика pyqtgraph.image - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть последовательность изображений, которые создаются с использованием следующего кода 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) координату из каждого квадрата в верхнем графике?

Различные ответы на StackOverflow сосредоточены на «ImageView», но я пытаюсь избежать этого, если смогу- Я не могу создать похожий сюжет по какой-то причине с ImageView - ничего не выходит и Python просто зависает.Я также новичок в PyQtGraph.

Output from pyqtgraph.image

1 Ответ

0 голосов
/ 03 декабря 2018

pg.ImageView фактически такой же, как 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_()

Что касается координат, график внизу создается из Область интереса (ROI) , чтобы получить координаты x и y, которые вам понадобятся для добавления ROI к изображению.

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)

Теперь будут распечатаны координаты, над которыми находится область интереса

Примечание. Выше приведен код Python 3.7, поскольку я это и использую.Так что вам придется адаптировать некоторые вещи для Python 2.7

...