Ric*_*nop 4 python python-imaging-library
我有一个简单的黑白唯一的GIF图像(400x400px让我们说).
我需要从该图像中获取所有像素,并查找它们是黑色还是白色.我需要创建一个字典,其中包含有关像素及其颜色的信息.
我对python很新,所以我有点挣扎.但到目前为止,这里是我的脚本:
#!/usr/bin/env python
import os
import Image
os.chdir("D:/python-projects")
aImage = Image.open("input.gif")
aPixelsBlackOrWhiteDictionary = {}
# now I need to fill the dictionary with values such as
# "X,Y": 0
# "X,Y": 1
# where X,Y are coordinates and 0/1 i the pixel color (b/w)
Run Code Online (Sandbox Code Playgroud)
基本上我希望最终字典是这样的:
"0,0" : 0 # pixel with X=0,Y=0 coordinates is black
"1,0" : 1 # pixel with X=1,Y=0 coordinates is White
Run Code Online (Sandbox Code Playgroud)
编辑:
当我尝试:
print aImage[0, 0]
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
Traceback (most recent call last):
File "D:\python-projects\backprop.py", line 15, in <module>
print aImage[0, 0]
File "C:\Python26\lib\site-packages\pil-1.1.7-py2.6-win32.egg\Image.py", line
512, in __getattr__
raise AttributeError(name)
AttributeError: __getitem__
Run Code Online (Sandbox Code Playgroud)
您应该使用getpixel而不是使用索引运算符.请注意,这可能会非常慢.最好使用getdata,它将所有像素作为序列返回.
尝试:
pix = aImage.load()
print pix[x, y]
Run Code Online (Sandbox Code Playgroud)
另请注意,您可以使用元组作为字典键,您可以使用 mydict[(x, y)] 而不是 mydict["x,y"]。
这个像素信息已经存储在图像中了,为什么还要存储在字典中呢?