tecnica tabla serigrafia saturacion que para mezclar mezcla maquina igualar hacer como combinar colores color circulo celeste automotriz algorithm language-agnostic graphics

algorithm - tabla - El mejor algoritmo para igualar colores.



tabla para combinar colores (5)

¡No, no necesitas redes neuronales aquí! Simplemente considere un valor de color HSL como un vector y defina una función de módulo ponderado para el vector como este:

modulus = sqrt(a*H1*H1 + b*S1*S1 + c*L1*L1); where a,b,c are weights you should decide based on your visual definition of what creates a bigger difference in perceived color - a 1% change in Hue or a 1% change in Saturation

Te sugiero que uses a = b = 0.5 y c = 1

Finalmente, descubra el rango que tomaría su módulo y defina colores similares para que sean aquellos que tienen sus módulos muy cerca uno del otro (por ejemplo, 5%)

Tengo una matriz de alrededor de 200 colores en formato RGB. Quiero escribir un programa que tome cualquier color RGB e intente hacer coincidir un color de la matriz que sea más "similar".

Necesito una buena definición para "similar", que está lo más cerca posible de la percepción humana.

También quiero mostrar alguna información sobre la precisión de coincidencia. Por ejemplo, blanco y negro: 100% y para un color similar con un tono ligeramente diferente: -4%.

¿Necesito usar redes neuronales? ¿Hay una alternativa más fácil?


Convierta todos los colores al espacio de color CIE Lab y calcule la distancia en ese espacio

deltaE = sqrt(deltaL^2 + deltaA^2 + deltaB^2)

Los colores con el deltaE más bajo son los más perceptualmente similares entre sí.



La forma más rápida en que lo he logrado es agregar los colores a un octree y luego, al igual que con la cuantización, utiliza cada bit para guiarlo hacia el nodo secundario más profundo. Una vez que no puede profundizar, ya sea que se encuentre en el nivel más profundo (el bit más bajo), en cuyo caso ha alcanzado el color exacto, o el siguiente nodo secundario que necesita no existe, en cuyo momento simplemente necesita al niño con la broca más cercana a la que está buscando y ese es su color más cercano. Es muchísimo más rápido que convertir todo a HSL y viceversa, o calcular cada distancia euclidiana.

Aquí está mi código en CodeProject: https://www.codeproject.com/tips/1046574/octtree-based-nearest-color-search


También señalaría el método de los mínimos cuadrados , como algo un poco más simple. Es decir, tomas la diferencia de un número, la cuadras y luego sumas todas estas diferencias al cuadrado.