Usaría la biblioteca de imágenes de Python. Esta es una pieza de código que calcula el número de píxeles blancos/píxeles no blancos en una imagen.
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
En su caso, me gustaría hacer un diccionario para mantener a cada triple RGB contra un mostrador, así que reelaborar el programa como este (no probado)
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
Ahora puede comprobar la con el recuento más alto y obtener el triple de rgb más utilizado. Por supuesto, si desea verificar también los colores vecinales, deberá convertir a HSV y verificar las distancias entre los diferentes puntos HSV, y luego decidir qué distancia es demasiado. Los puntos suficientemente cercanos en el espacio HSV (y en particular el componente hue) son muy probablemente del mismo color y, en consecuencia, pueden sumarse.
Consulte http://stackoverflow.com/questions/2270874/image-color-detection-using-python/2271013#2271013 – luc