Algoritmo de detección de color: ¿cómo debo hacer esto?

Estoy un poco atascado en el diseño de un sistema de detección de color, no puedo encontrar la manera de hacerlo fácilmente.

-

Básicamente, tengo una biblioteca de imágenes que quiero ordenar por color. Entonces, si el usuario especifica 'ordenar por azul', las imágenes más azules aparecerán en la parte superior de los resultados, con la menor cantidad de azul en la parte inferior.

El problema es que las imágenes no son todas de un solo color, por lo que está haciendo dos cosas al mismo tiempo:

1 - encontrar la parte más azul de la imagen
2: clasificación de este color azul (según el tono del color y la cantidad de este color).

He intentado con 3 o 4 enfoques diferentes, con resultados variables; sin embargo, ninguno funciona bien y 2 de estos eran algoritmos bastante matemáticos (que funcionan mucho mejor en papel que en la práctica jaja).

-

¿De qué maneras diferentes podría seguir todo el proceso? Probablemente me faltan algunas formas realmente obvias de cómo podría funcionar; cualquier ayuda o idea sería muy apreciada

-

EDITAR Gracias por todas las respuestas. Esto es lo que he probado hasta ahora:

obtener el valor promedio de rgb para toda la imagen y compararlo con azul. La comparación se realizó utilizando vectores espaciales rgb 3 normalizados y encontrando distancias entre ellos. Esto funciona menos bien, una imagen sin azul podría aparecer fácilmente sobre una imagen con azul parcial muy fuerte.

encontrar el color dominante y compararlo con el azul (nuevamente utilizando 3 distancias de vectores espaciales). Esto no funcionó, ya que podría haber una gran sección azul de la imagen que no era la mayoría (o en el par superior) de las secciones de color dominantes.

encontrando píxeles que están cerca del azul, promediando todo esto y comparando la respuesta con el azul real.

encontrando todos los píxeles que están cerca del azul, incrementando un conteo y encontrando un porcentaje basado en el conteo / píxeles totales.

Respuestas a la pregunta(6)

Su respuesta a la pregunta