Como interpreto cores individuais no histograma RGB?

15

Sei ler o histograma de luminosidade e pensei que também sabia ler o histograma RGB, até ver o seguinte exemplo:

insira a descrição da imagem aqui

O histograma RGB mostra exatamente os mesmos 3 'picos'. Quem são esses? Posso dizer que todos eles vêm da mesma fonte do 'céu', mas por que eles não estão no mesmo local horizontal?

MikeW
fonte

Respostas:

17

Simples: a cor do céu é composta pela mistura dos três canais. Se fosse cinza, haveria quantidades iguais de vermelho, verde e azul. Porém, não é - há muito mais azul, um pouco menos verde e muito pouco vermelho. Praticamente assim:

rgb

Veja como as setas no controle deslizante estão exatamente nas mesmas porcentagens dos picos no histograma.

Se você colocar os controles deslizantes no mesmo lugar ...

cinzento

... as linhas do histograma coincidiriam, mas sua cor mudaria ...

comparar

... para cinza escuro, em vez do tipo de cerceta na imagem de amostra.


Aqui está uma representação da forma digital deste arquivo. Cada pixel é uma tríade de (red,green,blue), portanto, um pixel verde-azulado é representado como ( 28,123,142). Como há muito espaço para digitar, estou criando uma resolução muito baixa, mas você deve entender. Aqui, os valores vão de 0 a 255.

( 28,123,142)  ( 28,123,142)  ( 28,123,142)  ( 28,123,142)  ( 28,123,142)
( 28,123,142)  ( 28,123,142)  ( 28,123,142)  ( 28,123,142)  ( 28,123,142)
( 28,123,142)  ( 28,123,142)  (201,201,201)  ( 28,123,142)  ( 28,123,142)
( 28,123,142)  ( 28,123,142)  ( 28,123,142)  ( 28,123,142)  ( 28,123,142)
( 28,123,142)  ( 28,123,142)  ( 28,123,142)  ( 28,123,142)  ( 28,123,142)

Isso acaba parecendo uma coisinha: amostra

Não tenho o mesmo software que você, mas carregue-o no seu programa e observe o histograma. O histograma mostra apenas uma representação gráfica das contagens de cada canal em cada nível. Você verá uma pequena saliência no meio à direita, representando o ponto cinza, e depois picos em 28 para vermelho, 123 para verde e 142 para azul. Aqui está o que parece no software que tenho:

histograma da amostra

A imagem não parece muito vermelha e não é. Mas o vermelho que existe está agrupado nessa mesma cor, e essa é uma porcentagem enorme da imagem, para que você tenha um pico.

Esta é uma ferramenta bastante técnica e, embora possa ser muito útil, não mostra um bom mapa perceptivo das cores na imagem. Isso seria uma visualização diferente.

Algo que pode ser mais parecido com o que você deseja é chamado de "Histograma de cores 3D". O Color Inspector Plugin para ImageJ faz isso, assim como o programa Colorspace , somente para Windows , ou você pode usar este site: http://3dhistogram.com - que acabei de descobrir e que parece bem bacana (e sem problemas), mas é talvez mais legal do que útil.


Na discussão nos comentários abaixo desta resposta, o ClarityForce aponta a boa implementação de código aberto de Tyler Neylon dos Hue Histograms . Há um histograma "tradicional", um gráfico de pizza e uma versão combinada. A versão combinada fica ótima com muitas imagens reais, mas não é tão impressionante com a amostra da imagem da lua cortada daquela postada na pergunta. Aqui está o histograma de tonalidade e o gráfico de setores circulares disso:

amostra da lua matiz histogramagráfico de pizza de matiz de amostra de lua

E, apenas por diversão, eis os três tipos de gráficos de matiz que ela pode criar para a Mona Lisa:

histograma de mona matiz

mattdm
fonte
Entendo que a cor do céu é uma mistura de canais RGB e que há muito pouco vermelho nessa cor. No entanto, de acordo com o histograma, deve haver uma grande quantidade de vermelho (o pico é alto) e deve ser quase preto (o pico está no lado esquerdo). Ao olhar na imagem Eu ainda não consigo ver nada assim e eu ainda não entendo como interpretar o histograma :(
2
@ ClarityForce: dê uma olhada nos controles deslizantes que eu postei. Não é uma quantidade muito grande de que o vermelho quase preto. É um componente da cor verde-azulado.
amigos estão dizendo sobre mattdm
Obrigado pela atualização! Você tem certeza de que o alinhamento das setas não é apenas uma pura coincidência? Eu pensei que a posição horizontal no histograma deveria representar a faixa tonal ou o brilho e não a cor em si. Se for realmente o caso, eu diria que o histograma RGB é praticamente inútil :(
11
Eu acho que vejo o mal-entendido ... não pense no pico como vermelho "contribuindo com a escuridão", mas com o vermelho não contribuindo muito para o brilho. A altura do pico representa o número de pixels em que o valor do vermelho é um componente muito pequeno da cor. Ao contrário do histograma composto (luminância), os canais individuais não falam muito sobre o brilho geral, apenas as proporções dos canais de cores distribuídos na cena. Ele pode falar sobre o recorte de canal individual e as mudanças brutas de cores, mas não reflete diretamente a tonalidade.
11
@mattdm Obrigado pelo link! Eu também tenho acidentalmente encontrei isto: blog.zillabyte.com/color-as-data e isso: blog.zillabyte.com/hue-histograms
4

Decompii sua imagem em suas cores componentes no GIMP with Color | Componentes | Decompor para o modelo de cores: RGB e com 'Decompor para camadas' marcado. Quando olho para as camadas individuais, é o que vejo:

camada vermelha camada verde camada azul

Eu acho que a maior parte de cada "cor" vai para a pintura de fundo; a camada vermelha está tornando o fundo totalmente preto, e é por isso que o pico está tão à esquerda, e as camadas verde e azul ficam mais cinzas. Mas ... isso é apenas um palpite.

Um histograma mais interessante para você pode exigir a remoção do plano de fundo. Selecionei apenas a lua (desenhando um círculo com a ferramenta Ellipse), inverti a seleção (Selecionar | Inverter), ativei a transparência da imagem com Camada | Transparência | Adicione Alpha Channel e pressione a tecla Delete para excluir todo o plano de fundo. Agora eu recebo este histograma apenas da lua:

rgb de apenas lua


fonte