def myFunction(shape):
filterByRGBValue=(0,0,255)
filteredPixels=[]
workingPixelAccess = (shape.copy()).load()
for w in range (0,shape.width,1):
for h in range (0,shape.height,1):
if (workingPixelAccess[w,h][0:3]==filterByRGBValue):
filteredPixels.append(workingPixelAccess[w,h])
countList = Counter(filteredPixels)
for k,v in countList.items():
print k,' occurs ',v,' times '
给我:
(0, 0, 255, 201) occurs 6 times
(0, 0, 255, 203) occurs 10 times
(0, 0, 255, 255) occurs 2 times
我还想要每个事件的w,h位置列表。 我意识到我的filterPixels仅保存RGBA值(而不包含位置),因此无法从此处提取位置。我应该为出现的每个alpha值创建w,h位置的列表,而只是将这些列表的len用作计数,它的外观如何?还是有一种“快速”的方式来搜索workPixelAccess以获取我的countList中特定值的所有实例。
我意识到答案可能不仅仅针对PIL,而且很可能是Python列出的一般问题-可能是键和值?