Esto está relacionado con una pregunta que hice en tex.stackexchange , que tiene un aspecto de color. El resultado de esa pregunta es la siguiente imagen:
He dibujado una serie de cuadrados grises a la izquierda, con una rama roja que parte a la derecha. El objetivo es tener diferentes cuadrados rojos con una saturación diferente, pero todos con el mismo valor de gris. En el modelo de color hsv, todos tienen lo mismo v
, pero cuando convierto la imagen a escala de grises usando Gimp, no se convierten al mismo gris. También la impresión visual es que los cuadrados rojos de la derecha son más oscuros que los de la izquierda.
¿Cómo puedo, dado un cierto gris, calcular colores con un cierto tono y el mismo valor de gris (o, mejor aún, con la misma impresión de gris )? Todos los colores utilizados en la imagen están calculados, por lo que prefiero soluciones que también incorporen cálculos.
Podría haber utilizado términos incorrectos aquí: soy ingeniero mecánico, así que corríjame cuando corresponda o solicite una aclaración.
La sugerencia de usar el espacio de color Lab me ha llevado a algunas conclusiones:
Puedo usar el
L
valor del modelo Lab para establecer algún tipo de valor de gris para diferentes colores. En el modelo hsv esto esv
. No estoy seguro de si se me permite compararlos, pero lo haré hasta que alguien se queje.En el modelo hsv también puedo establecer un "color base" (un tono), que no puedo encontrar en el modelo Lab.
En el modelo hsv, tengo 2 constantes (en la imagen de arriba:
h
= 0,v
= 0.375) y una variable (s
).Hasta este punto, solo tengo una constante en el modelo Lab. Eso no es suficiente para generar algo similar a lo que ya hice con el modelo hsv.
Supongo que es hora de experimentos.
¡Hecho! Después de ejecutar el código de conversión, fue muy fácil. El primer paso fue definir el "objetivo rojo" a la derecha. Calculé RGB2Lab (255,0,0) y cambié el valor L del resultado al L deseado en la figura (L = 62.5). Los colores se calculan utilizando una interpolación lineal en el espacio Lab de (L, 0,0) a (L, aTarget, bTarget). El resultado:
¡Gracias!