如何读取图像数据?
我想做一个应用程序,它可以接收一张只有黑白方块的图片。白色方块表示可以移动的地方,而黑色方块表示不能移动的地方(可能是墙壁)。
在这张图片中,我想定义一个起始点和一个目标点(可以用不同的颜色,比如红色和黄色),这样我就可以研究路径寻找的问题。
我该如何读取这张图片,并处理里面的信息呢?
大概是这样的:
在这里,我可以在图片中定义墙壁、起始点和目标点,我想知道如何在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
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