colors - online - Teoría del color: cómo convertir Munsell HVC a RGB/HSB/HSL
rgb color (7)
Estoy viendo un documento que describe los colores estándar utilizados en odontología para describir el color de un diente. Citan los valores de tono , valor , croma e indican que son de la descripción de color de Munsell de 1905:
El sistema de notación de color desarrollado por AH Munsell en 1905 identifica el color en términos de tres atributos: HUE, VALUE (Brillo) y CHROMA (saturación) [ 15 ]
HUE (H): Munsell definió el tono como la calidad por la cual distinguimos un color de otro. Seleccionó cinco colores principales: rojo, amarillo, verde, azul y púrpura; y cinco colores intermedios: amarillo-rojo, verde-amarillo, azul-verde, púrpura-azul y rojo-púrpura. Estos se colocaron alrededor de un círculo de color en puntos iguales y los colores entre estos puntos son una mezcla de los dos, en favor del punto / color más cercano (ver Fig. 1).
VALOR (V): esta notación indica la claridad u oscuridad de un color en relación con una escala de gris neutra, que se extiende desde el negro absoluto (símbolo de valor 0) al blanco absoluto (símbolo de valor 10). Esto es esencialmente lo "brillante" que es el color.
CROMA (C): Esto indica el grado de divergencia de un tono dado de un gris neutro del mismo valor. La escala de croma se extiende desde 0 para un gris neutro hasta 10, 12, 14 o más, dependiendo de la fuerza (saturación) de la muestra que se va a evaluar.
Existen varios sistemas para categorizar el color, el sistema Vita se usa más comúnmente en odontología. Esto utiliza las letras A, B, C y D para anotar el tono (color) del diente. El valor y el valor cromático se indican mediante un valor de 1 a 4. A1 es más claro que A4, pero A4 es más saturado que A1. Si se coloca en orden de valor, es decir, brillo, el orden de más brillante a más oscuro sería:
A1, B1, B2, A2, A3, D2, C1, B3, D3, D4, A3.5, B4, C2, A4, C3, C4
Los valores exactos de Tono, Valor y Croma para cada uno de los tonos se muestran a continuación ( 16 )
Así que mi pregunta es, ¿alguien puede convertir Munsell HVC en RGB, HSB o HSL?
Hue Value (Brightness) Chroma(Saturation)
=== ================== ==================
4.5 7.80 1.7
2.4 7.45 2.6
1.3 7.40 2.9
1.6 7.05 3.2
1.6 6.70 3.1
5.1 7.75 1.6
4.3 7.50 2.2
2.3 7.25 3.2
2.4 7.00 3.2
4.3 7.30 1.6
2.8 6.90 2.3
2.6 6.70 2.3
1.6 6.30 2.9
3.0 7.35 1.8
1.8 7.10 2.3
3.7 7.05 2.4
Dicen que el Valor (Brillo) varía de 0..10
, lo cual está bien. Entonces tomo 7.05 para significar 70.5%.
Pero, ¿en qué se mide Hue
? Estoy acostumbrado a la tonalidad que se mide en degrees
(0..360). Pero los valores que veo serían todos rojos, cuando deberían ser más amarillos o marrones.
Finalmente, dice que Choma / Saturación puede variar desde 0..10
... o incluso más , lo que hace que suene como una escala arbitraria.
Entonces, ¿alguien puede convertir Munsell HVC a HSB o HSL, o mejor aún, RGB?
Sistema de renotación de Munsell para conversión de espacio de color sRGB
Colour , nuestro paquete de código abierto de Python Colour Science permite realizar esa conversión.
Del sistema de renotación de Munsell al espacio de color CIE xyY
Las siguientes dos definiciones basadas en el método Centore (2012) se convierten entre el Sistema de Renotación de Munsell y el espacio de color CIE xyY:
De CIE xyY Colourspace a sRGB Colourspace
La conversión del espacio de color CIE xyY al espacio de color sRGB se realiza primero convirtiendo a los valores de triestímulo de CIE XYZ y luego al espacio de color sRGB utilizando las siguientes definiciones:
Implementación
Aquí hay un ejemplo completo anotado usando las definiciones anteriores:
import colour
# The *Munsell Renotation System* colour we would like to convert
# to *sRGB* colourspace.
MRS_c = ''4.2YR 8.1/5.3''
# The first step is to convert the *MRS* colour to *CIE xyY*
# colourspace.
xyY = colour.munsell_colour_to_xyY(MRS_c)
# We then perform conversion to *CIE xyY* tristimulus values.
XYZ = colour.xyY_to_XYZ(xyY)
# The last step will involve using the *Munsell Renotation System*
# illuminant which is *CIE Illuminant C*:
# http://nbviewer.ipython.org/github/colour-science/colour-ipython/blob/master/notebooks/colorimetry/illuminants.ipynb#CIE-Illuminant-C
# It is necessary in order to ensure white stays white when
# converting to *sRGB* colourspace and its different whitepoint
# (*CIE Standard Illuminant D65*) by performing chromatic
# adaptation between the two different illuminant.
C = colour.ILLUMINANTS[''CIE 1931 2 Degree Standard Observer''][''C'']
RGB = colour.XYZ_to_sRGB(XYZ, C)
print(RGB)
[0.96820063 0.74966853 0.60617991]
También puede realizar la conversión inversa del espacio de colores sRGB al sistema de renotación de Munsell :
import colour
C = colour.ILLUMINANTS[''CIE 1931 2 Degree Standard Observer''][''C'']
RGB = (0.96820063, 0.74966853, 0.60617991)
print(colour.xyY_to_munsell_colour(colour.XYZ_to_xyY(colour.sRGB_to_XYZ(RGB, C))))
4.2YR 8.1 / 5.3
Referencias
- Centore, P. (2012). Un algoritmo de inversión de código abierto para la renotación de Munsell. Investigación y aplicación del color, 37 (6), 455–464. doi: 10.1002 / col.20715
Es algo involucrado. La respuesta corta es que convertir los códigos de Munsell en RGB implica la interpolación de datos empíricos en 3D que es altamente no lineal. El único conjunto de datos que está disponible públicamente se recopiló en la década de 1930. Los programas gratuitos o de bajo costo que he encontrado en la red han demostrado ser defectuosos. Yo escribí mi propia. Pero estoy saltando por delante. Empecemos con lo básico.
Los códigos de Munsell son diferentes en especie a los otros códigos, xyY, Lab y RGB. La notación de Munsell describe el color de un objeto , lo que las personas experimentan cuando ven el objeto. (Isaac Newton fue el primero en darse cuenta de que el color está en el ojo del espectador.) Munsell realizó extensos experimentos con sujetos humanos y dispositivos ingeniosos.
Los otros códigos, es decir, xyY, L a b * y RGB, describen la luz que ha rebotado en un objeto y ha pasado por convulsiones con un modelo matemático bastante simple de un ojo humano. Algunos términos de Google son "iluminante", "tri-estímulo" y "observador estándar CIE".
Munsell describe los colores de los objetos a medida que se perciben bajo una amplia variedad de iluminantes. Otro término de Google es "adaptación cromática". La adaptación cromática en el cerebro es automática si la iluminación no es demasiado extraña. Es realmente bastante notable. Tome un pedazo de papel de escribir afuera bajo un cielo azul. El papel se ve blanco. Llévelo adentro y mírelo bajo luces incandescentes (amarillentas). ¡Todavía se ve blanco! Munsell aprovechó ese asombroso poder de procesamiento empíricamente. Los códigos de Munsell también conservan el tono percibido en diferentes cromas. Un azul cielo y un azul polvo que Munsell asigna la misma notación de tono, por ejemplo, 5RP, le parecerá al humano típico con vista normal que el mismo tono. Más sobre eso en la nota al pie.
CIE xyY, L a b * y RGB no significan nada a menos que se especifique un iluminante. La adaptación cromática para iluminantes en el modelo matemático es computacionalmente difícil. (Se pueden hacer aproximaciones aproximadas pero simples usando las "matrices de Bradford".) El RGB que usamos es por defecto "sRGB", que especifica un iluminante llamado D65. D65 es algo así como un día sin nubes al mediodía. Los números de laboratorio enumerados por el OP son probablemente relativos a D50, que es más como la luz de la tarde o la mañana. Los números xyY pueden ser relativos a D50, o pueden ser relativos a un estándar antiguo llamado C. No voy a verificar. C era la luz de un accesorio de iluminación estándar que era relativamente económico de construir en la década de 1930. Es obsoleto. Pero C juega un papel clave en la respuesta a la pregunta.
En la década de 1930, los científicos del color estaban desarrollando los modelos matemáticos. Una de las cosas que hicieron fue tomar un Libro de color de Munsell estándar, encender la luz del iluminante C en las fichas de colores del libro y registrar los datos en formato xyY. Ese conjunto de datos, llamado "Datos de Renotación de Munsell", es el único disponible de forma gratuita. Seguramente existen otros, pero son secretos muy guardados.
Buenas noticias sin embargo. El conjunto de datos funciona bien. La autoridad de Munsell hoy es una empresa llamada Gretag Macbeth. Me imagino que tienen datos voluminosos relacionados con las fichas de colores que venden. Los únicos números que conozco que publican son los números D50 Lab y D65 sRGB para un pequeño conjunto de colores en sus tarjetas "Color Checker" . Escribí un interpolador basado en los datos de renotación anteriores. Está de acuerdo con los números de la tarjeta de Color Checker casi exactamente. Lamento informar que hasta ahora solo he escrito un código para la conversión que va en la dirección opuesta a la que solicitó el OP (hace un año, mientras escribo esto). Va desde sRGB hasta Munsell. Hago clic en una imagen y el programa muestra las anotaciones sRGB y Munsell para el área en la que se hizo clic. Lo uso para pintar al óleo.
Nota al pie: CIE tiene un estándar que es análogo a Munsell. Se llama LCh subíndice con a, b. Es L a b * en coordenadas polares. Los tonos son en grados. Los números de croma son aproximadamente 5 veces el C en Munsell HVC. LCh tiene sus problemas sin embargo. Si alguna vez usaste un editor de fotos para aumentar la intensidad del cielo, solo para ver el azul que se volvió púrpura, el programa probablemente estaba usando LCh. Cuando comencé a escribir mi programa, no sabía que Bruce Lindloom había hecho un trabajo paralelo a lo que estaba haciendo. Su sitio web fue invaluable para mí cuando terminé el proyecto. Diseñó un espacio al que llama UPLab, que es LCh enderezado para alinearse con Munsell. Ya había reinventado LCh y (esencialmente) UPLab antes de descubrir el sitio del Sr. Linbloom, pero su conocimiento del tema es muy superior al mío.
Existe un paquete R de munsell
gratuito que, entre otras cosas, convertirá los códigos de Munsell a RGB:
R> library(munsell)
R> mnsl2hex("5PB 5/10")
[1] "#3B75BB"
Hay una página que he encontrado aquí: munsell-to-rgb.blogspot.com que parece estar haciendo exactamente lo que está buscando. Parece inacabado en este momento, pero el propietario del blog planea actualizarlo regularmente con la mayor cantidad de conversiones de Munsell a RGB que pueda (¡y acepta las solicitudes!).
Es sorprendente lo difícil que es encontrar tablas de conversión accesibles para estos sistemas de color; Esperemos que esta sea nuestra respuesta! :RE
La especificación de tono que has dado aquí es incompleta (4.5 debería ser 4.5Y, etc.). Dado que el enlace está muerto, si alguien está interesado, las especificaciones aún están activas aquí: http://web.archive.org/web/20071103065312/http://lib.umich.edu/dentlib/Dental_tables/Colorshadguid.html
La única utilidad gratuita para la conversión de Munsell que pude encontrar fue esta:
http://web.archive.org/web/20020809130910/standards.gretagmacbeth.com/cmc/munsell.exe
Muy viejo como se puede ver, pero parece funcionar bien. Los programas actuales que pueden hacer esto no son gratuitos:
- http://livingstonmanor.net/Munsell2/index.htm
- http://www.babelcolor.com/main_level/download.htm (este tiene una prueba gratuita de 14 días)
Los actuales titulares de los productos Munsell son X-Rite , probablemente también tengan algunas soluciones de conversión.
Además, tenga en cuenta que el enlace que proporcionó incluye definiciones para los mismos colores en otras coordenadas de color, a saber, Yxy y CIE l a b *. Ambos se pueden convertir libremente en línea en http://www.colorpro.com/info/tools/convert.htm o sin conexión con este convertidor de color gratuito
Llego tarde a la fiesta, pero encontré otro recurso que puede ser útil en este tema.
Alguien en el "Laboratorio de Ciencias del Color de Munsell" extrajo algunos datos de Munsell de 1943, todos basados en la investigación de Munsell de la década de 1930: http://www.cis.rit.edu/research/mcsl2/online/munsell.php
La página hace referencia a una hoja de cálculo de Excel con el subconjunto "solo colores reales" de los datos que se encuentran dentro del "límite de macadán", que parece significar la gama de colores que pueden aparecer en las superficies reflectantes. Sin embargo, el enlace de la hoja de cálculo no funciona, pero supuse que había omitido un nivel del árbol de directorios. Probé la URL http://www.cis.rit.edu/research/mcsl2/online/real_sRGB.xls , y funcionó. (No me sorprendería si el propietario del sitio finalmente lo nota y arregla el enlace, lo que probablemente rompa mi enlace).
Me metí un poco con esa hoja de cálculo para que generara HTML y me mostrara los colores RGB, y agregué estas celdas a la hoja de cálculo:
<table>
.<colgroup> <col /> <col span="3" style="background-color:#eeeeee;" /> <col span="3" /> <col span="3" style="background-color:#eeeeee;" /> <col span="3" /> <col span="3" style="background-color:#eeeeee;" /> <col span="3" /> <col style="background-color:#eeeeee;" /> <col /> </colgroup>
="<tr> <th> "&A1&" </th> <th> "&B1&" </th> <th> "&C1&" </th> <th> "&D1&" </th> <th> "&E1&" </th> <th> "&F1&" </th> <th> "&G1&" </th> <th> "&H1&" </th> <th> "&I1&" </th> <th> "&J1&" </th> <th> "&K1&" </th> <th> "&L1&" </th> <th> "&M1&" </th> <th> "&N1&" </th> <th> "&O1&" </th> <th> "&P1&" </th> <th> "&Q1&" </th> <th> "&R1&" </th> <th> "&S1&" </th> <th> #RGB </th> <th> sample </th> </tr> "
="<tr> <td> "&A2&" </td> <td> "&B2&" </td> <td> "&C2&" </td> <td> "&D2&" </td> <td> "&E2&" </td> <td> "&F2&" </td> <td> "&G2&" </td> <td> "&H2&" </td> <td> "&I2&" </td> <td> "&J2&" </td> <td> "&K2&" </td> <td> "&L2&" </td> <td> "&M2&" </td> <td> "&N2&" </td> <td> "&O2&" </td> <td> "&P2&" </td> <td> "&Q2&" </td> <td> "&R2&" </td> <td> "&S2&" </td> <td> #"&T2&" <td style="&CHAR(34)&"background-color:#"&T2&"; width:2em;"&CHAR(34)&"> </td> </tr> "
="<tr> <td> "&A3&" </td> <td> "&B3&" </td> <td> "&C3&" </td> <td> "&D3&" </td> <td> "&E3&" </td> <td> "&F3&" </td> <td> "&G3&" </td> <td> "&H3&" </td> <td> "&I3&" </td> <td> "&J3&" </td> <td> "&K3&" </td> <td> "&L3&" </td> <td> "&M3&" </td> <td> "&N3&" </td> <td> "&O3&" </td> <td> "&P3&" </td> <td> "&Q3&" </td> <td> "&R3&" </td> <td> "&S3&" </td> <td> #"&T3&" <td style="&CHAR(34)&"background-color:#"&T3&"; width:2em;"&CHAR(34)&"> </td> </tr> "
="<tr> <td> "&A4&" </td> <td> "&B4&" </td> <td> "&C4&" </td> <td> "&D4&" </td> <td> "&E4&" </td> <td> "&F4&" </td> <td> "&G4&" </td> <td> "&H4&" </td> <td> "&I4&" </td> <td> "&J4&" </td> <td> "&K4&" </td> <td> "&L4&" </td> <td> "&M4&" </td> <td> "&N4&" </td> <td> "&O4&" </td> <td> "&P4&" </td> <td> "&Q4&" </td> <td> "&R4&" </td> <td> "&S4&" </td> <td> #"&T4&" <td style="&CHAR(34)&"background-color:#"&T4&"; width:2em;"&CHAR(34)&"> </td> </tr> "
.
.
.
="<tr> <td> "&A1626&" </td> <td> "&B1626&" </td> <td> "&C1626&" </td> <td> "&D1626&" </td> <td> "&E1626&" </td> <td> "&F1626&" </td> <td> "&G1626&" </td> <td> "&H1626&" </td> <td> "&I1626&" </td> <td> "&J1626&" </td> <td> "&K1626&" </td> <td> "&L1626&" </td> <td> "&M1626&" </td> <td> "&N1626&" </td> <td> "&O1626&" </td> <td> "&P1626&" </td> <td> "&Q1626&" </td> <td> "&R1626&" </td> <td> "&S1626&" </td> <td> #"&T1626&" <td style="&CHAR(34)&"background-color:#"&T1626&"; width:2em;"&CHAR(34)&"> </td> </tr> "
</table>
La tabla necesita una línea para cada una de las que comienzan con A2 a través de A1626, y una para cada una de las otras.
Espero que esto ayude.
Para completar, aquí está la versión archive.org de mi página, que contiene los colores en 3 espacios de color, Munsell, Yxy y Lab:
Vita shade-guide colors
_________________________________________________________________
Munsell Chromaticity
notation coordinates CIE L* a* b*
(ref 151) (ref 152) (ref 151)
_____________ _____________________ ___________________
Shade H V C Y x y L* a* b*
_________________________________________________________________
A1 4.5Y 7.80/1.7 55.92 0.3352 0.3459 79.57 -1.61 13.05
A2 2.4Y 7.45/2.3 49.95 0.3468 0.3539 76.04 -0.08 16.73
A3 1.3Y 7.40/2.9 48.85 0.3559 0.3593 75.36 1.36 19.61
A3.5 1.6Y 7.05/3.2 44.12 0.3627 0.3657 72.31 1.48 21.81
A4 1.6Y 6.70/3.1 38.74 0.3633 0.3658 68.56 1.58 21.00
B1 5.1Y 7.75/1.6 54.76 0.3336 0.3447 78.90 -1.76 12.33
B2 4.3Y 7.50/2.2 50.97 0.3437 0.3549 76.66 -1.62 16.62
B3 2.3Y 7.25/3.2 46.91 0.3611 0.3669 74.13 0.47 22.34
B4 2.4Y 7.00/3.2 43.38 0.3620 0.3678 71.81 0.50 22.15
C1 4.3Y 7.30/1.6 47.16 0.3361 0.3462 74.21 -1.26 12.56
C2 2.8Y 6.95/2.3 42.12 0.3487 0.3563 70.95 -0.22 16.72
C3 2.6Y 6.70/2.3 39.11 0.3499 0.3569 68.83 -0.01 16.68
C4 1.6Y 6.30/2.7 33.77 0.3600 0.3622 64.78 1.59 18.66
D2 3.0Y 7.35/1.8 48.71 0.3391 0.3473 75.27 -0.54 13.47
D3 1.8Y 7.10/2.3 44.48 0.3482 0.3534 72.55 0.62 16.14
D4 3.7Y 7.05/2.4 43.45 0.3492 0.3591 71.86 -1.03 17.77
_________________________________________________________________
H hue
V value
C chroma
Y lightness
x and y hue and chroma
L* lightness
a* hue and chroma on a red/green scale
b* hue and chroma on a yellow/blue scale
Referencias
- 151 O''Brien, WJ, Groh, CL y Boenke, KM Una nueva ecuación de pequeñas diferencias de color para los tonos dentales. J.Dent. Res. 69: 1762-1764, 1990.
- 152 O''Brien, WJ, Groh, CL y Boenke, KM Datos no publicados. Universidad de Michigan, Facultad de Odontología, Ann Arbor.