Pergunta

Estou olhando para o documento que descreve as cores padrão usadas em odontologia para descrever a cor de um dente. Eles citam matiz, valor, Chroma valores e indicam que são da descrição de MunSell de 1905:

O sistema de notação de cores desenvolvido por AH Munsell em 1905 identifica a cor em termos de três atributos: matiz, valor (brilho) e croma (saturação) [15]

Hue (H): Munsell definiu o Hue como a qualidade pela qual distinguimos uma cor de outra. Ele selecionou cinco cores princípios: vermelho, amarelo, verde, azul e roxo; e cinco cores intermediárias: amarelo-vermelho, verde-amarelo, azul esverdeado, azul roxo e vermelho-púrpura. Estes foram colocados em torno de um círculo de cores em pontos iguais e as cores entre esses pontos são uma mistura dos dois, a favor do ponto/cor mais próximo (veja a Fig 1.).

alt text

Valor (v): Essa notação indica a leveza ou a escuridão de uma cor em relação a uma escala de cinza neutra, que se estende do preto absoluto (símbolo de valor 0) até o branco absoluto (símbolo de valor 10). É essencialmente assim que a cor é 'brilhante'.

Chroma (c): Isso indica o grau de divergência de um determinado tom de um cinza neutro do mesmo valor. A escala de croma se estende de 0 para um cinza neutro a 10, 12, 14 ou mais longe, dependendo da força (saturação) da amostra a ser avaliada.

Existem vários sistemas para categorizar a cor, o sistema VITA é mais comumente usado na odontologia. Isso usa as letras A, B, C e D para anotar o tom (cor) do dente. O Chroma e o valor são indicados por um valor de 1 a 4. A1 sendo mais leve que A4, mas A4 está mais saturado que A1. Se colocado em ordem de valor, ou seja, o brilho, a ordem de mais brilhante para mais escura seria:

A1, B1, B2, A2, A3, D2, C1, B3, D3, D4, A3.5, B4, C2, A4, C3, C4

Os valores exatos de matiz, valor e croma para cada um dos tons são mostrados abaixo (16)

alt text

Então, minha pergunta é: alguém pode converter Munsell HVC em RGB, HSB ou 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

Eles dizem que o valor (brilho) varia de 0..10, o que é bom. Então, eu tomo 7,05 para significar 70,5%.

Mas o que é Hue medido em? estou acostumado a matiz sendo medido em degrees (0..360). Mas os valores que vejo seriam todos vermelhos - quando deveriam ser mais amarelos ou marrons.

Finalmente, diz que o choma/saturação pode variar de 0..10 ...ou ainda maior - o que faz parecer uma escala arbitrária.

Então, alguém pode converter Munsell HVC em HSB ou HSL, ou melhor ainda, RGB?

Foi útil?

Solução

A especificação de matiz aqui está incompleta (4.5 deve ser 4.5y etc). Como o link está morto, se alguém estiver interessado, as especificações ainda estão vivas aqui:http://web.archive.org/web/20071103065312/http://lib.umich.edu/dentlib/dental_tables/colorshadguid.html

A única utilidade gratuita para a conversão de Munsell que pude encontrar foi a seguinte:

http://web.archive.org/web/20020809130910/standards.gretagmacbeth.com/cmc/munsell.exe

Muito antigo como você pode ver, mas parece funcionar bem. Os programas atuais que podem fazer isso não são gratuitos:

Os atuais detentores dos produtos Munsell são X-rite, eles provavelmente também têm algumas soluções de conversão.

Além disso, observe que o link que você forneceu inclui definições para as mesmas cores em outras coordenadas de cores - a saber, YXY e CIE L LumaB*. Ambos podem ser convertidos gratuitamente online em http://www.colorpro.com/info/tools/convert.htm ou offline com isso conversor de cores grátis

Outras dicas

Está bastante envolvido. A resposta curta é, A conversão de códigos Munsell em RGB envolve a interpolação de dados empíricos em 3D, altamente não lineares. O único conjunto de dados disponível ao público foi coletado na década de 1930. Programas gratuitos ou baratos que encontrei na rede provaram ser falhos. Eu escrevi o meu. Mas estou pulando em frente. Vamos começar com o básico.

Os códigos de Munsell são diferentes em espécie dos outros códigos, XYY, LAB e RGB. Notação Munsell descreve a cor de um objeto - O que as pessoas experimentam quando vêem o objeto. (Isaac Newton foi o primeiro a perceber que a cor está nos olhos de quem vê.) Munsell conduziu extensos experimentos com seres humanos e dispositivos engenhosos.

Os outros códigos, ou seja, xyy, lumaB*e RGB, descreva leve Isso ricocheteou em um objeto e passou por uma convolução com um modelo matemático bastante simples de um olho humano. Algumas termos do Google são "iluminantes", "Tri-estímulo" e "CIE Standard Observer".

Munsell descreve as cores dos objetos, pois são percebidos sob uma ampla variedade de iluminantes. Outro termo do Google é "Adaptação cromática". A adaptação cromática no cérebro é automática se a iluminação não for muito estranha. É realmente bastante notável. Pegue um pedaço de papel de digitação do lado de fora sob um céu azul. O papel parece branco. Leve -o dentro de casa e olhe para as luzes incandescentes (amareladas). Ainda parece branco! Munsell aproveitou esse surpreendente poder de processamento empiricamente. Os códigos de Munsell também preservam a tonalidade percebida em diferentes cromas. Um azul-céu e um azul em pó que Munsell atribui a mesma notação de matiz, por exemplo, 5RP, aparecerão ao humano típico com visão normal para ser a mesma tonalidade. Mais sobre isso na nota de rodapé.

Cie xyy, euumaB*e RGB não significam nada, a menos que um iluminante seja especificado. A adaptação cromática para iluminantes no modelo matemática é computacionalmente difícil. (Aproximações ásperas, mas simples, podem ser feitas usando as "matrizes de Bradford".) O RGB que usamos é por padrão "SRGB", que especifica um iluminante chamado D65. D65 é algo como um dia sem nuvens ao meio -dia. Os números de laboratório listados pelo OP são provavelmente em relação ao D50, que é mais como a tarde ou a luz da manhã. Os números XYY podem ser relativos ao D50, ou podem ser relativos a um padrão antigo chamado C. Não vou verificar. C era a luz de um acessório de iluminação padrão que era relativamente barato para construir na década de 1930. É obsoleto. Mas C desempenha um papel fundamental na resposta à pergunta.

Na década de 1930, os cientistas de cores estavam desenvolvendo os modelos matemáticos. Uma das coisas que eles fizeram foi pegar um livro de cores de Munsell padrão, Shine Illuminante-C Light sobre as fichas coloridas do livro e gravar os dados em formato XYY. Esse conjunto de dados, chamado "Dados de Renotação de Munsell", é o único que está disponível gratuitamente. Outros certamente existem, mas são segredos de perto.

Boas notícias embora. O conjunto de dados funciona bem. A Autoridade Munsell hoje é uma empresa chamada Gretag Macbeth. Eu imagino que eles tenham dados volumosos relacionados às chips de cores que vendem. Os únicos números que conheço que eles publicam são os números D50 Lab e D65 SRGB para um pequeno conjunto de cores em seus "Verificador de cores" cartões. Eu escrevi um interpolador com base nos dados antigos da renotação. Ele concorda com os números para o cartão de verificador de cores quase exatamente. Lamento informar que até agora escrevi apenas código para a conversão que segue a direção oposta do que o OP solicitou (um ano atrás, conforme eu digito isso). Vai de SRGB para Munsell. Clico em uma imagem e o programa exibe as anotações SRGB e Munsell para a área clicada. Eu o uso para pintura a óleo.

My

Nota de rodapé: A CIE tem um padrão análogo a Munsell. É chamado LCH subscrito com a, b. É lumaB* em coordenadas polares. Os tons estão em graus. Os números de Chroma são aproximadamente 5 vezes o C em Munsell HVC. LCH tem seus problemas. Se você já usou um editor de fotos para bombear a vivacidade do céu, apenas para ver a volta do azul para o roxo, o programa provavelmente estava usando o LCH. Quando comecei a escrever meu programa, não sabia que Bruce Lindloom havia feito um trabalho que paralelos o que eu estava fazendo. Seu site foi inestimável para mim quando terminei o projeto. Ele projetou um espaço que ele chama de UPLAB, que é LCH endireitado para se alinhar com Munsell. Eu já havia reinventado o LCH e (essencialmente) o UPLAB antes de descobrir o site do Sr. Linbloom, mas seu conhecimento do assunto excede em muito o meu.

MUNSELL RENOTATION SISTEM

Cor, nosso pacote de ciência de cores Python de código aberto permite executar essa conversão.

De Munsell Renotation System a Cie Xyy Colourspace

As duas definições a seguir baseadas no método do Centore (2012) convertem entre Sistema de Renotação de Munsell e CIE XYY Colourspace:

De Cie Xyy Colourspace ao SRGB Colourspace

Convertendo de CIE XYY colourspace para srgb Colourspace é feito primeiro convertendo para CIE XYZ tristimulus valores e depois para srgb Colourspace usando as seguintes definições:

Implementação

Aqui está um exemplo completo anotado usando as definições acima:

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]

Você também pode realizar a conversão reversa de srgb colourspace para Sistema de Renotação 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

Referências

  • Centore, P. (2012). Um algoritmo de inversão de código aberto para a Renotação de Munsell. Pesquisa e aplicação de cores, 37 (6), 455-464. doi: 10.1002/col.20715

Para completude, aqui está a versão Archive.org da minha página, que contém as cores em 3 Cores Spaces, Munsell, YXY e 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

Referências

  • 151 O'Brien, WJ, Groh, Cl e Boenke, KM Uma nova equação de diferença de cor pequena para tons dentários. J.Dent. Res. 69: 1762-1764, 1990.
  • 152 O'Brien, WJ, Groh, CL e Boenke, KM Dados não publicados. Escola de Odontologia da Universidade de Michigan, Ann Arbor.

Há um pacote R gratuito munsell que (entre outras coisas) converterão os códigos Munsell para RGB:

R> library(munsell)
R> mnsl2hex("5PB 5/10")
[1] "#3B75BB"

Há uma página que encontrei aqui: Munsell para rgb.blogspot.com Isso parece estar fazendo exatamente o que você procura. Parece inacabado no momento, mas o proprietário do blog planeja atualizá-lo regularmente com o maior número possível de conversões de Munsell para RGB (e ele recebe pedidos!).

É incrível o quão difícil é encontrar tabelas de conversão acessíveis para esses sistemas de cores; Espero que esta seja a nossa resposta! : D

Estou atrasado para a festa, mas encontrei outro recurso que pode ser útil neste tópico.

Alguém no "Laboratório de Ciências da Cor Munsell" desenterrou alguns dados de 1943 de Munsell, todos com base na pesquisa de Munsells da década de 1930: http://www.cis.rit.edu/research/mcsl2/online/munsell.php

A página refere -se a uma planilha do Excel com o subconjunto "apenas cores reais" dos dados que se enquadram no "limite do macadame", o que parece significar a gama de cores que podem realmente aparecer em superfícies reflexivas. O link da planilha não funciona, no entanto, mas, em um palpite, imaginei que deixou de fora um nível da árvore do diretório. Eu tentei o URL http://www.cis.rit.edu/research/mcsl2/online/real_srgb.xls - e funcionou. (Eu não ficaria surpreso se o proprietário do site eventualmente perceber e corrigir o link, o que provavelmente quebrará meu link.)

Eu mexi com essa planilha um pouco para que ela gerasse HTML para me mostrar as cores RGB e adicionei essas células à planilha:

<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)&"> &nbsp; </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)&"> &nbsp; </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)&"> &nbsp; </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)&"> &nbsp; </td> </tr> "
</table>

A tabela precisa de uma linha cada uma das que começam com A2 a A1626 e uma de cada uma.

Eu espero que isso ajude.

Apesar deste antigo post, para atualizar a resposta de Steve, aqui estão os links "corrigidos" para os repositórios de Rit dos dados de Munsell:

https://www.rit.edu/cos/colorscience/rc_munsell_renotation.php

E um link direto para a planilha dos valores convertidos SRGB das cores "reais" de Munsell:

http://www.rit-mcsl.org/munsellrenotation/real_srgb.xls

É uma planilha que inclui uma conversão da notação HVC de Munsell para XYY, depois para XYZ_C, depois convertida em iluminante D65, depois para o ponto flutuante SRGB e depois quantizado para valores de 8 bits SRGB (que eles chamam de DRGB).

Quanto à pergunta do OP: o SRGB é (obviamente) um modelo de cores aditivo RGB. Mas as diferenças para outros modelos de cores, como o CMYK subtrativo, são complexos o suficiente para que um algoritmo "simples" não lide com a conversão - enquanto as transformações do modelo de cores podem ser aproximadas com uma matriz, mais frequentemente uma tabela de lojas (tabela de visita) é preferida, é preferida, é preferida, é preferida, é preferida, é preferida, é preferida, com uma matriz, é preferida uma matriz, é preferida uma tabela de LUT (TABLE LUT), é preferida, como um LUT em um perfil da ICC ou um LUT 3D usado na produção de filmes. (Nem todos os perfis da ICC são baseados em LUT, mas uma conversão baseada em LUT IMO é o que é necessário aqui).

Os dados de Munsell certamente se enquadram nessa categoria, pois não apenas é um modelo de cores diferente, mas também não é um modelo subtrativo que se baseia na percepção, enquanto o SRGB é baseado em uma relação simples entre verde vermelho e luz azul.

A planilha é a tabela de pesquisa utilizável; portanto, um programa para converter coisas como o seu gráfico odontológico no SRGB aceitaria esses dados e fazia referência à LUT contida na planilha e retornará os valores SRGB.

Nota: Eu quero mencionar para clareza que embora algum As transformações de espaço de cores ou modelo de cor podem ser feitas razoavelmente com um algoritmo/matriz, as LUTs 3D são preferidas, principalmente quando as LUTs são criadas a partir de dados medidos de um determinado modelo de cor/espaço, que mapeia as muitas não linearidades inerentes a alguns modelos.

Um exemplo extremo é uma imagem SRGB no monitor do seu computador vs como essa imagem é impressa no papel e aparece na capa de uma revista sentada em uma banca de jornais iluminada com luz fluorescente. Isso requer um LUT 3D para uma transformação precisa!

Na indústria de filmes (onde eu trabalho principalmente), usamos LUTs 3D em todo o pipeline de imagens, não apenas para converter/transformar, mas para "visualizar" e para aplicar/emular "looks". Por exemplo, tirar uma imagem com uma câmera digital e aplicar um pouco de um determinado estoque de filmes a essa imagem para que ela apareça como filme.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top