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 - возможно,ключ и значения?