Ich würde die Python Image Library verwenden. Dies ist ein Stück Code, der die Anzahl der weißen Pixel/nicht-weißen Pixel in einem Bild berechnet.
import sys
from PIL import Image
im = Image.open(sys.argv[1])
white = 0
black = 0
for i in im.getdata():
if i == (255,255,255):
white += 1
else:
# we assume black everything that is not white:
black += 1
print im.size[0],im.size[1],white,black
In Ihrem Fall würde ich ein Wörterbuch tun jeden rgb triple gegen einen Zähler zu halten, so würde ich das Programm wie folgt (nicht getestet)
import sys
from PIL import Image
im = Image.open(sys.argv[1])
count= {}
for i in im.getdata():
if not count.has_key(i):
count[i] = 0
count[i] += 1
Sie können sich nun die eine Nacharbeit mit der höchsten Zählung und erhalten Sie die am häufigsten verwendeten RGB Triple. Natürlich, wenn Sie auch vicinal Farben überprüfen möchten, müssen Sie in HSV konvertieren und überprüfen Sie die Abstände zwischen verschiedenen HSV-Punkten, dann entscheiden, welche Entfernung zu viel ist. Punkte, die dem HSV-Raum (und insbesondere der Farbtonkomponente) ausreichend nahe sind, haben höchstwahrscheinlich die gleiche Farbe und können folglich summiert werden.
Siehe http://stackoverflow.com/questions/2270874/image-color-detection-using-python/2271013#2271013 – luc