Краткая версия: существует ли метод Python для отображения изображения, которое показывает в реальном времени индексы и интенсивности пикселей? Поэтому, когда я перемещаю курсор над изображением, у меня постоянно отображается дисплей, например pixel[103,214] = 198
(для оттенков серого) или pixel[103,214] = (138,24,211)
для rgb?
Длинная версия:
Предположим, что я открываю изображение в градациях серого, сохраненное как ndarray im
, и выводит его с помощью imshow
из matplotlib:
im = plt.imread('image.png')
plt.imshow(im,cm.gray)
Я получаю изображение, а в правом нижнем углу окна - интерактивное отображение индексов пикселей. Кроме того, что они не совсем, поскольку значения не являются целыми числами: x=134.64 y=129.169
например.
Если я настроил дисплей с правильным разрешением:
plt.axis('equal')
значения x и y по-прежнему не являются целыми числами.
Метод imshow
из пакета spectral
выполняет лучшую работу:
import spectral as spc
spc.imshow(im)
Затем в правом нижнем углу теперь есть pixel=[103,152]
.
Однако ни один из этих методов не показывает значения пикселей. Поэтому у меня есть два вопроса:
- Можно ли принудить
imshow
отmatplotlib
(иimshow
отscikit-image
) показывать правильные (целочисленные) пиксельные индексы? - Можно ли расширить любой из этих методов, чтобы показать значения пикселей?