PIL TypeError:' instancemethod'对象不支持项目分配

时间:2017-01-05 16:46:21

标签: python image-processing python-imaging-library pillow

我是Python和图像处理的初学者,并且一直在尝试使用以下功能更改图像的像素值。但是我得到一个错误 - TypeError:' instancemethod'对象不支持项目分配 在代码的第12行(最后一行) 无论如何要解决这个问题吗? 这是我的代码:

from PIL import Image
import math 
size=width,height=32,32
img=Image.new("L", size, "white")
pix=img.load
for i in range (0,31):
    for j in range (0,31):
        sqsum=i*i+j*j
        sqrt=math.sqrt(sqsum)
        sine=math.sin(sqrt)
        absval=abs(sine)
        pix[i,j]=absval
img.show()

1 个答案:

答案 0 :(得分:1)

在Python中,对象方法本身也是对象 - instancemethod对象。这意味着在分配上不使用()不会导致错误,它只是没有按照您的预期执行操作。这是一个相当普遍的错字。

pix=img.load()
#           ^^

要调试此类问题,请问自己“为什么pixinstancemethod?”并从那里向后工作。它会直接引导您发出问题的赋值语句。