我试图运行一个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,所以它抱怨道。

10-05 22:39