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?