¿Qué es una buena métrica de similitud de color?

8

Tengo algunos colores en RGB en [0,1] y quiero encontrar una manera de calificar su similitud, tal como la percibe un humano.

Tengo dos ideas en mente, pero estoy seguro de que también hay otras opciones, pero no estoy seguro de cuál es la mejor, o si tal vez no es la mejor, sino solo compensaciones.

Mi primera idea es tratar los colores RGB como puntos XYZ y calcular su distancia.

Otra idea que tengo es tratar los valores RGB como un histograma y usar el producto de puntos para obtener un valor de similitud entre ellos, donde un valor mayor es mejor.

Sin embargo, sé que no todos los canales de color tienen el mismo brillo percibido, por lo que tal vez debería ponderar los canales de color de manera diferente en ambos casos.

También estoy pensando que tal vez tendría que hacer una corrección sRGB en los valores de color (como sqrt en cada canal de color).

También sé que existen otros espacios de color, por lo que tal vez uno de esos sería mejor para dar un valor de similitud.

Otro desafío para esto puede ser que diferentes pantallas mostrarán los mismos valores de color de manera diferente. No estoy seguro si eso es relevante en este caso.

¿Alguien puede proporcionar alguna ayuda / dirección?

Alan Wolfe
fuente
44
¿Has echado un vistazo a esto ? RGB no es un gran espacio de color para hacer comparaciones relacionadas con la percepción humana.
ases
Buena información gracias! Estaba mirando a cielab pero ese artículo dice que no es el mejor. Desafortunadamente, estoy trabajando con datos de origen RGB, así que tengo que descubrir cómo convertir de RGB a algo mejor, pero el desafío parece ser que RGB depende del dispositivo, mientras que, por ejemplo, cielab no lo es. Afortunadamente, una aproximación menor es lo suficientemente buena para mis necesidades, si la independencia del dispositivo no es realmente factible con los datos de origen RGB.
Alan Wolfe el
Visite el sitio de Bruce Lindbloom, especialmente las diversas métricas de DeltaE: brucelindbloom.com
David Kuri
Hay un paquete completo de Python para la ciencia del color que incluye algunas transformaciones: colour-science.org .
KAE

Respuestas:

3

Tengo algunos colores en RGB en [0,1] y quiero encontrar una manera de calificar su similitud, como lo percibe un humano.

Este es un tema enorme, y se encuentra libremente bajo la bandera de los modelos de apariencia de color . ¿Por qué no es estrictamente una formación más simple? Se debe a la naturaleza psicofísica del color, ya que el color no existe más allá del organismo humano.

Mi primera idea es tratar los colores RGB como puntos XYZ y calcular su distancia.

Otra idea que tengo es tratar los valores RGB como un histograma y usar el producto de puntos para obtener un valor de similitud entre ellos, donde un valor mayor es mejor.

Sin embargo, sé que no todos los canales de color tienen el mismo brillo percibido, así que tal vez debería ponderar los canales de color de manera diferente para ambos casos.

El mejor consejo es que, al igual que la criptografía, no haga lo suyo; es probable que llegue a un sistema subóptimo que, en el mejor de los casos, golpeará paredes que ya han sido golpeadas por otros investigadores en el campo. Si basa su trabajo en modelos e investigaciones existentes, es posible que sea más preciso para sus necesidades [1].

Uno podría señalar los desarrollos históricos en torno a las CAM, pero aquí es más fácil sugerir que investigue el modelo de codificación de color IPT y su equivalente cilíndrico que modela la coloración y el tono como un ángulo. Las evoluciones en el modelo IPT superan la mayoría de los problemas del modelo Lab anterior, y simplifican parte del trabajo involucrado en CIECAM02.

Otro desafío para esto puede ser que diferentes pantallas mostrarán los mismos valores de color de manera diferente. No estoy seguro si eso es relevante en este caso.

IPT, y cada espacio de color RGB para el caso, están anclados en la investigación CIE de 1931. Como tal, este tipo de problemas se resuelven en un nivel inferior.

[1] Esta respuesta ampliada se debe al comentario del Sr. Wolfe a continuación en un intento de explicar por qué lanzar su propia solución podría ser un enfoque subóptimo.

troy_s
fuente
3
Disuadir a las personas de experimentar en gráficos y ponerlo a la par con el envío de algoritmos criptográficos hechos a mano es ridículo.
Alan Wolfe
@AlanWolfe Dado que hay bastantes tipos de doctorado extremadamente brillantes que ya han pasado incontables horas y esfuerzos resolviendo los problemas en la pregunta original, encuentro su contexto de ridículo ridículo. Para no desanimar a uno de llenar sus botas e intentar reinventar la rueda.
troy_s
Deberías escuchar los simples trucos recomendados por los investigadores gráficos activos. Tal como "producto de punto RGB, realmente funciona increíblemente bien" de Peter Shirley.
Alan Wolfe
2
He seguido adelante, pero hay una aplicación del colapso de la función de onda para la creación de imágenes y contenido de procedimientos. Funciona en parte por píxeles coincidentes exactos, por lo que funciona mejor con pixel art. Estaba buscando ver que sea capaz de hacer coincidencias más suaves para usar con imágenes más realistas, o para reglas de contenido de procedimiento menos estrictas. Mira este enlace para lo básico: github.com/mxgmn/WaveFunctionCollapse
Alan Wolfe
2
No es mi trabajo pero estaba tratando de extenderlo. Estoy totalmente de acuerdo, ¡son cosas geniales! Fuera de tema pero aquí está mi trabajo no relacionado jeje. blog.demofox.org/2016/02/22/…
Alan Wolfe
4

Si la métrica compleja es aceptable, sugeriría mirar el enfoque basado en la percepción descrito aquí . La métrica está diseñada para elegir la diferencia perceptiva de dos imágenes. Hay dos pruebas principales para eso: basada en luminancia y basada en color. El primero permite responder a la pregunta qué tan importante es el cambio de luminancia al estimar un factor umbral no uniforme basado en la sensibilidad a los cambios de contraste dependiendo de las frecuencias espaciales de la imagen. El segundo se basa en la distancia euclidiana en el espacio de color CIE LAB, pero ligeramente modificado para que la diferencia de color sea menos importante cuando la luminancia está en los rangos mesópico y escotópico. Puede encontrar una lista de documentos relacionados con esa métrica aquí .

reinsteam
fuente
3
¡Bienvenido a Computer Graphics SE! En general, las respuestas de solo enlace se desaconsejan fuertemente en SE, porque podrían volverse inútiles si esos enlaces alguna vez se caen. Incluya un breve resumen de su contenido, para que las personas puedan descubrir qué es lo que realmente sugiere sin tener que depender de los enlaces.
Martin Ender