Python PIL计数Alpha值的出现并获取位置

时间:2018-10-21 12:48:11

标签: python list python-imaging-library

 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列出的一般问题-可能是键和值?

0 个答案:

没有答案