为什么imshow显示像素位置的非整数x和y值?

时间:2018-12-27 14:29:15

标签: python matplotlib imshow

我正在尝试读取图像中像素的x和y位置。这是我运行时显示的示例:

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

为什么它们是非整数值?我最好的猜测是正在发生一些缩放?我在spyder上将python作为IDE运行。

编辑:这是图像: enter image description here

编辑2:经过仔细检查,逐像素检查时,它们似乎位于.5标记处,而不是0到1。这是我的轴设置的屏幕截图...这里肯定有些时髦。有人知道为什么吗? enter image description here enter image description here

1 个答案:

答案 0 :(得分:0)

我的猜测是,用鼠标悬停在显示的图像上时,您担心的浮点值只是鼠标指针的位置,而不必是整数。但是仍然位于像素(平方整数区域)内,因此可以为您提供有关该像素位置处的通道的信息。

此处提供了另一种以更受控的方式获取有关像素信息的方法:

这是我的工作代码段,用于打印图像中的像素颜色:

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的像素也正是我们所期望的。