El segundo color predominante: PIL

Hace unas semanas necesité hacer un script en Python que genere algunas decenas de imágenes. Básicamente, se tiene como entrada imágenes como estas:


(un borde con alguna forma y un color en un fondo blanco)

Las imágenes generadas tienen que tener ciertos números en el centro, pintados en cada caso del mismo color que el borde:

La primer parte del script tiene que determinar el segundo color predominante de la imagen (el primero es el blanco), esta es la forma en que lo hice usando PIL:

def get_color(image):
    colors = image.getcolors()  # colors is a list of (count, color)
    colors.sort(lambda y,x: cmp(x[0], y[0])) # bigger count first
    c = colors.pop(0)
    while white(c): # find the non-white color most used in the image
        c = colors.pop(0)
    return c[1]
 
def white(color):
    color = color[1]
    return color[0] == 255 and color[1] == 255 and color[2] == 255

About Juanjo

Mi nombre es Juanjo Conti, vivo en Santa Fe y soy Ingeniero en Sistemas de Información. Mi lenguaje de programación de cabecera es Python; lo uso para trabajar, estudiar y jugar. Como hobby escribí un libro de cuentos que se puede descargar gratuitamente.
This entry was posted in Aprendiendo Python and tagged . Bookmark the permalink.