Почему imshow отображает нецелые значения x и y для положения пикселя? - PullRequest
0 голосов
/ 27 декабря 2018

Я пытаюсь прочитать координаты x и y пикселей на изображениях.Это пример того, что отображается при запуске:

plt.figure(1)
plt.imshow(img)
plt.title('image')
plt.show()

Почему они не являются целочисленными значениями?Мое лучшее предположение, что происходит некоторое масштабирование?Я запускаю Python на Spyder в качестве IDE.

Редактировать: вот изображение: enter image description here

Редактировать 2: При ближайшем рассмотрении, посматривая пиксель за пикселем, они выглядят скорее на отметках .5чем от 0 до 1, а также.А вот скриншот с моими настройками оси ... что-то здесь определенно прикольное.У кого-нибудь есть идея, почему?enter image description here enter image description here

1 Ответ

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

Я предполагаю, что значения с плавающей точкой, о которых вы беспокоитесь при наведении курсора на показанное изображение с помощью мыши, это просто позиция указателя мыши, которая не обязательно должна быть целочисленной.Тем не менее, он все еще лежит в пределах пикселя (квадрат целочисленной области) и, таким образом, дает вам информацию о каналах в позиции этого пикселя.

Другой способ получения информации о ваших пикселях более контролируемым образом представлен здесь:

Вот мой фрагмент рабочего кода, печатающий цвета пикселей из изображения:

import os, sys
import Image

im = Image.open("image.jpg")
x = 3
y = 4

pix = im.load()
print pix[x,y]

Отредактируйте ответ 2: Это просто имеет смысл.Центры пикселей попадают в целочисленные значения .0 Вы ожидаете, что пиксели будут иметь.Если бы края попадали на .0, прямое отображение между координатами пикселя и значениями пикселя было бы невозможно в рамках визуализации.Также пиксель, имеющий высоту и ширину 1, является именно тем, что мы ожидаем.

...