Por si a alguno le interesan los temas de procesado de imagen, he hecho un ejercicio para obtener a partir de un pixelart que nos podamos encontrar por ahí (reescalado a un tamaño superior y con ruido o distorsiones,...), el pixelart original en su tamaño nativo (serán unos pocos píxeles de ancho y de alto) y en su paleta mínima de colores original:
Restaurando pixelart con R y k-means
Por ejemplo tenemos el sigueinte pixelart afectado por artefactos JPEG, ruido, distorsionado,...:
Tenemos que contar a mano los píxeles nativos que tenía, en este caso 45x41 píxeles. Con ello se analiza la imagen original calculando la mediana de los valores RGB en cada celda (descartamos un margen en los bordes para que no introduzca error en el cálculo:
El cálculo de mediana arroja este resultado. La paleta de colores se ha reducido mucho, pero aún ni mucho menos todo lo que queremos debido al ruido (desviaciones de color) que aún contiene:
Ahora podríamos determinar por inspección visual el número mínimo de colores que requiere el pixelart, pero se hace más intuitivo dibujar el histograma de la imagen en el espacio RGB (hacer clic para verlas más grande):
Se detectan 9 clústers o colores únicos diferentes (cada una de las agrupaciones), así que ejecutamos el algoritmo de segmentación llamado k-means con k=9, y tenemos nuestro pixelart restaurado con 9 colores únicos y en tamaño icono (45x41 píxeles):
Salu2!