如何读取图像数据?

0 投票
2 回答
2569 浏览
提问于 2025-04-19 23:08

我想做一个应用程序,它可以接收一张只有黑白方块的图片。白色方块表示可以移动的地方,而黑色方块表示不能移动的地方(可能是墙壁)。

在这张图片中,我想定义一个起始点和一个目标点(可以用不同的颜色,比如红色和黄色),这样我就可以研究路径寻找的问题。

我该如何读取这张图片,并处理里面的信息呢?

大概是这样的:enter image description here

在这里,我可以在图片中定义墙壁、起始点和目标点,我想知道如何在Python中读取这些数据。

2 个回答

0

你可以使用PIL库中的Image模块(你需要先安装这个库),然后可以这样做:

from PIL import Image
img = Image.open("PATH TO IMAGE", "MODE (probably 'r')")
pixel = image.getpixel((x,y))

x和y是像素的坐标,你可以通过它们获取那个像素的颜色。

3

你可以使用 SciPy库,这个库里有很多 图像处理工具

from scipy import misc
img = misc.imread("lena.bmp")

你可以很方便地访问某个像素,比如说第10行第15列的像素:

print img[10, 15]

输出结果:

[188 101  71]

(在这个例子中,我使用的是来自 这里 的“Lena”测试图像。)


根据图像的格式,你可能想把它从RGB彩色图像转换成灰度图像:

img = img.mean(axis = 2)
print img[10, 15]

输出结果:

120.0

如果你需要把 uint8 像素值缩放到 [0..1] 的范围内:

img = (img / 255).round()
print img[10, 15], img[10, 6]

输出结果:

0.0 1.0

撰写回答