我正在尝试检索图像中的平均RGB值
def DetectColour((x ,y) ,n, image):
r, g, b = 0, 0, 0
count = 0
for s in range(x, x+n+1):
for t in range(y, y+n+1):
pixlr, pixlg, pixlb = image[s, t]
r += pixlr
g += pixlg
b += pixlb
count += 1
return((r/count), (g/count), (b/count))
我认为此代码中存在问题,但我不知道如何修复它
有问题的错误:
Traceback (most recent call last):
File "C:\Python27\Sound-o-Colour.py", line 74, in <module>
r, g, b = DetectColour((25, 25) ,5 ,image) #finds the average colour in the frame
File "C:\Python27\Sound-o-Colour.py", line 19, in DetectColour
pixlr, pixlg, pixlb = image[s, t] #Counts the pixels of each colour, red, green and blue
TypeError: tuple indices must be integers, not tuple
答案 0 :(得分:1)
当你尝试访问列表或元组的成员时,我认为图像是你用sqare括号内的整数来做的,如下所示:
image[s][t]
我想你可能正试图这样做:
image
这将访问{{1}} list / tuple的int(s)成员。 如果这个成员恰好也是一个列表,你可以通过添加另一个方括号来访问它的成员,并在其中指定该成员的索引。 如果你的循环带你通过图像中的像素矩阵,这也是有意义的,因为第一个循环你可能会经过像素行,第二个通过列并尝试检索RGB值。