我收到此错误:
TypeError: unsupported operand type(s) for +=: 'int' and 'tuple'
Line 37
http://pastebin.com/LhMS9Xhx
filter = [[1,1,1],[1,1,1],[1,1,1]]
activefield = [[1,2,3],[4,5,6],[7,8,9]]
newvalue = 0
newvalue+= filter[iii][jjj]*aktuellesFeld[iii][jjj]
答案 0 :(得分:2)
这非常直截了当:你不能将一个元组添加到int中。 aktuellesFeld[iii][jjj]
是一个元组,它与int(filter[iii][jjj]
)相乘,从而产生元组。然后将该元组添加到另一个int(neuerGrauwert
),这是一个TypeError
您的代码非常难以辨认。为什么要使用iii
或jjj
等变量名称?此外,使用filter
作为变量名称是一个坏主意,因为它是一个内置函数。
答案 1 :(得分:2)
第37行
neuerGrauwert += filter[iii][jjj]*aktuellesFeld[iii][jjj]
aktuellesFeld[iii][jjj] = im.getpixel((...))
是一个元组,例如:
In [8]: im.getpixel((125,125))
Out[8]: (11, 11, 11, 255)
乘以float(如filter[iii][jjj]
)连接元组的副本:
In [9]: 2*im.getpixel((125,125))
Out[9]: (11, 11, 11, 255, 11, 11, 11, 255)
但neuerGrauwert
是int
。而且您无法将tuple
添加到int
。
答案 2 :(得分:0)
您尝试将一个元组添加到int。查看元组内部,提取所需的值,然后 将其添加到int。