Python PIL подсчитывает вхождения значений Alpha и определяет местоположение - PullRequest
0 голосов
/ 21 октября 2018
 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 мест для каждого случая.Я понимаю, что мои фильтрованные пиксели содержат только значение RGBA (но не местоположение), поэтому отсюда невозможно извлечь местоположения.Должен ли я создавать списки w, h местоположений для каждого возникающего альфа-значения и просто использовать длину этих списков в качестве числа и как это будет выглядеть?Или есть «быстрый» способ поиска workingPixelAccess для всех экземпляров определенного значения в моем countList.

Я понимаю, что ответ, вероятно, не относится к PIL и, вероятно, является общей проблемой списков Python - возможно,ключ и значения?

...