我是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()
答案 0 :(得分:1)
在Python中,对象方法本身也是对象 - instancemethod
对象。这意味着在分配上不使用()
不会导致错误,它只是没有按照您的预期执行操作。这是一个相当普遍的错字。
pix=img.load()
# ^^
要调试此类问题,请问自己“为什么pix
为instancemethod
?”并从那里向后工作。它会直接引导您发出问题的赋值语句。