Интерактивная информация о пикселях изображения в Python?
Укороченная версия: Есть ли метод Python для отображения изображения, которое показывает в реальном времени индексы и интенсивность пикселей? Так что, когда я перемещаю курсор на изображение, у меня постоянно обновляется отображение, такое какpixel[103,214] = 198
(для оттенков серого) илиpixel[103,214] = (138,24,211)
для RGB?
Длинная версия:
Предположим, я открываю изображение в градациях серого, сохраненное как ndarrayim
и отобразить его с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
) быть принужденным к отображению правильных (целочисленных) индексов пикселей?Может ли какой-либо из этих методов быть расширен для отображения значений пикселей?