Obtener los matices dominantes de una image

Estoy trabajando en una galería para compartir backgrounds de pantalla. He usado el ladrón de colors de la biblioteca de JavaScript para recuperar los colors dominantes de una image, pero tengo un problema. La mayoría de los backgrounds de pantalla son oscuros Si al search un background de pantalla, el usuario elige, por ejemplo, un color azul como # 07F, no obtendrá los muchos backgrounds oscuros que tienen este color, porque el color dominante será el negro.

Podría permitir el uso de colors dominantes múltiples para la búsqueda (es decir, negro y azul, por ejemplo), pero eso haría la búsqueda más complicada.

¿Hay alguna biblioteca de JavaScript (debe hacerse en el lado del cliente) capaz de get los matices dominantes de una image? Y si no, ¿tienes alguna idea sobre cómo podría implementar un algorithm para hacerlo?

Gracias por leer 🙂

Esta es más una pregunta de layout que Javascript. El color dominante no es siempre el que cubre la mayor cantidad de píxeles. Es el color que atrapa tu ojo. Por ejemplo, si le muestra a alguien una image de una galaxia rosa sobre background negro, el color dominante no es el negro, sino el rosa, porque el sujeto principal es el rosa. Entonces necesitas un algorithm mucho más complejo que eso.

Además, el blanco y negro técnicamente no son colors. Son simplemente la ausencia completa de luz o reflections extremos (o fonts de luz), respectivamente. Por lo tanto, descartaría cualquier cosa que sea más oscura o más clara que un umbral pnetworkingefinido (por ejemplo, excluya el 5% superior e inferior en su cálculo).

EDITAR:

Yo mismo podría tratar de get el color de los píxeles más saturados por encima de un cierto umbral (por ejemplo, más de X píxeles para evitar falsos positivos debido al ruido) con un margen de error.

EDIT2:

Es posible que pueda cambiar L155 para probar la saturación y la oscuridad del píxel. Es posible que desee get una biblioteca que tenga conversión RGB-> HSB para este propósito, pero no sé si hay una buena.