我试图运行一个python脚本(python 2.6),其中包含如下代码
import Image
def is_grey_scale(img_path="lena.jpg"):
im = Image.open(img_path)
w,h = im.size
for i in range(w):
for j in range(h):
r,g,b,_ = im.getpixel((i,j))
if r != g != b:
return False
return True
它正在报告如下定义的错误。
r,g,b, _ = im.getpixel((i, j))
TypeError: 'int' object is not iterable
你能告诉我这里有什么错误吗。
最佳答案
情况如下
您正在尝试将从im.getpixel((i, j))
返回的结果解压为4个变量r, g, b, _
。
要实现这一点,im.getpixel
必须返回一个列表、一个元组或另一个iterable,它只为变量提供4个值或多或少地提供是个问题。
但是在您的例子中,函数im.getpixel((i, j))
返回一个int
,这无论如何都不是iterable,所以它抱怨道。