Com câmeras digitais é sempre bom poder conferir o resultado logo após o click. Quem não viveu a época dos filmes não sabe como isso é bom. Mas algumas vezes, avaliando na hora, na correria, parece que a exposição ficou boa e depois no computador percebe-se que não era a ideal. Se isto já lhe aconteceu, então este post é para você. O histograma é uma boa ajuda para a avaliação da foto. Mas para que ele lhe seja realmente útil é preciso entender o que ele é, como é feito e o que ele diz.
As fotos acima mostram as modalidade de visualização da Canon Rebel T3i (ou 660D). Todas as máquinas apresentam algumas opções que vão da foto sozinha ocupando toda a tela até um relatório mais completo. A visualização apenas da foto é suficiente para detectar apenas os erros mais óbvios. Considero erro quando o arquivo que você gerou não permitirá ou dará muito trabalho para que a foto impressa fique como você imaginou que ficaria enquanto clicava. Os histogramas ajudam a previnir problemas futuros dessa natureza – desde que o que você deseja esteja ao alcance do seu equipamento. Sabendo ler esses gráficos e tendo a cena real à sua frente, poderá avaliar se o que registrou lhe será útil para render o resultado final conforme o idealizou. Acredito que refazer “manualmente” o histograma dessa imagem exemplo pode ser um bom caminho para entender como que o histograma funciona.
Essa foto foi realizada am Peniche, Portugal. A janela com um histograma do canal RGB (as três cores combinadas) foi implantado na foto a partir de seu próprio histograma do Photoshop Elements. Ele é diferente do que mostra a tela da câmera (mais acima) mas vamos deixar esse ponto para mais tarde. Vejamos então o passo a passo.
Construindo um histograma de luminosidade
1
Essa foto serve bem para o nosso objetivo pois vai de brancos quase lavados na espuma das ondas até negros profundos nas fendas das rochas. Foi feita a 1/250 s, fotometria de média poderada no centro com prioridade de abertura em f8. ISO ASA 100. Tamanho original: 5184 x 3456 px. Ela foi reduzida para entrar no post e essa ao lado tem apenas 300 x 200 px se o seu navegador estiver com zoom a 100%.
2
O histograma é feito a partir da leitura numérica dos valores RGB de cada pixel. E o fato é que para fazer nosso histograma manualmente mesmo 300 x 200 = 60.000 pixels é muita coisa. Vamos quadricular a foto criando “pixels gigantes” de 20 x 20 px originais da imagem reduzida. Se você acha isso estranho então você precisa ler primeiro o post Anatomia do Pixel e depois voltar aqui. O valor RGB dos pixels gigantes é uma média dos pixels que se encontram na imagem original. Com esse truque caimos assim para 15 x 10 = 150 pixels que é um número mais humano. Sim, é fato que perderemos definição, mas nosso objetivo é fazer um histograma e é melhor usar uma imagem bem simples ainda que sem graça.
3
Ao lado, cada quadradinho tem 20×20=400 pixels, todos iguais, com suas cores RGB que apresentam os valores médios da mesma região correspondente na foto do passo 2. Iremos considerar cada um como um único pixel. Fiz isso com filter>pixalate>mosaic no Photoshop Elements (vamos chamar de PE). Vemos que ficou uma aproximação bem tosca que preserva apenas uma noção de céu e mar, com seus azuis, e os tons da rocha no centro e canto direito inferior. No próximo passo até esses resquícios da imagem original irão sumir.
4
Mais uma simplificação: vamos descartar a informação de cor. Nas câmeras fotográficas você pode ver histogramas para cada cor RGB separadamento ou um histograma de “luminosidade” (veja as capturas de tela no início do post). Iremos a princípio nos concentrar no de luminosidade apenas. Por isso converti a imagem para tons de cinza. Fiz no PE: image>mode>grayscale. O PE iguala os valores RGB de cada pixel (isso os torna cinza) por um algoritmo que tenta se adaptar à nossa percepção da relação entre cor e luminosidade. Mas atenção, esses algoritmos variam de um software a outro e não são a média aritmética dos valores de cada cor RGB individualmente.
Um verde RGB(0,150,0) nos parece mais luminoso que um azul RGB(0,0,150), por exemplo. Pois nossos olhos são mais sensíveis a essa cor. Então, na hora de converter para cinza, um 150 de verde vale mais que um 150 de azul e puxa um cinza mais claro. Faça um teste: Pinte um quadrado de verde RGB(0,150,0) e converta para grayscale. Depois pinte um quadrado de azul RGB(0,0,150) e converta para grayscale. No primeiro caso você obterá, pelo menos no PE, um cinza RGB(129,129,129) e no segundo RGB(37,37,37). Olhando a figura ao lado, me parece que corresponde bem à nossa forma de perceber as cores em termos de luminosidade.
5
Que tal se lermos os valores de cinza de cada quadradinho? Você pode fazer isso com o conta-gotas do PE ou algo equivalente. Eu usei a aplicação Digital Color Meter do MAC. Com ela, mesmo fora do PE, podemos passar o cursor na imagem e ler os valores RGB de cada pixel. O R, o G e o B são sempre iguais entre si pois os pixels são cinza. Encontrei que o mais escuro tem valor 43, isto é RGB(43,43,43) e o mais claro RGB(208,208,208).
6
Agora suponha que queremos classificar e contar quantos “tipos” de pixel nos temos na imagem fazendo pilhas daqueles que têm os valores próximos. Para isso fazemos uma linha marcando de zero a 255 (valores possíveis para RGB), assinalando intervalos de 20 em 20, e vamos colocar um “tijolo” em cada intervalo para cada pixel que encontramos com o valor correspondente. Fazendo isso para os 150 quadradinhos disponíveis obteremos a configuração acima.
Acabamos de fazer assim o histograma dessa imagem simplificada. O conceito chave é que o histograma nada mais faz que “classificar e contar” os pixels da imagem. A foto original, a que saiu da câmera, tem, como vimos, 5184 x 3456 = 17.915.904 de pixels. O histograma segue o mesmo princípio deste reduzido que fizemos: vai “empilhado” os pixels que têm valores próximos, em uma linha crescente de zero a 255. No final você tem a distribuição de valores RGB x quantidade em que pixels aparecem na imagem com esses valores.
Diferença entre histogramas de luminosidade, RGB combinado e RGB individuais
É instrutivo ver essas diferenças em tipos de histogramas quando a imagem analisada é praticamente monocromática. Digo “praticamente” pois nunca uma máquina fotográfica, mesmo fotografando uma parede de uma única cor, irá exibir todos os pixels com os mesmos valores RGB. Haverá sempre uma flutuação em torno de uma média pois existem variações que são inerentes ao sistema de captura e registro da imagem e, provavelmente, a própria cena apresenta variações de iluminação, textura e outros fatores que fazem com que aquilo que interpretamos como sendo “uma cor”, seja na verdade uma “região cromática”
A foto ao lado foi realizada com um flash eletrônico Olympus T32 (pode-se dizer um flash vintage) rebatido no teto com uma Canon Rebel T3i (660D) e lente 50 mm f1.8 ajustada em f8. Ela serve apenas para explicar a origem das próximas fotos. A experiência consistiu em apontar a câmera para essa parede cor de tijolo e fazer várias fotos mudando apenas a abertura da lente de 8 até 2.8 de ponto em ponto.
A sequência mostrando essas fotos com seus respectivos histogramas, foi fotografada direto na tela da Canon com uma Lumix DMC-FH3. Temos então, para essa parede “monocromática”, os histogramas de cada canal RGB individual e logo abaixo o histograma de luminosidade.
A combinação de flash rebatido e f8 foi a que produziu uma imagem que corresponde de modo satisfatório à percepção que alguém teria estando na sala e a primeira foto, da sala, serve para mostrar isso. Essa ressalva é importante pois em imagens com uma cor chapada, sem outra sobre o que que é, a que horas do dia ou que luz a iluminava, tanto em mídias digitais como em filme/papel, é impossível, para quem não esteve no local da foto, dizer se um cinza é na verdade um branco mal iluminado/exposto ou um preto super iluminado/exposto. Isto é, o sensor, ou o filme, registram apenas quantidade de luz e se não soubermos o que foi fotografado, jamais poderemos dizer se era um objeto claro mal iluminado ou um objeto escuro excessivamente iluminado. A maioria dos erros e problemas gerados exposição incorreta em fotografias vem do fato do fotógrafo não entender esse fato.
Cada cor, reproduzida em RGB, segue uma receita que é uma trinca de valores para Red, Green e Blue. Quantidades nessa receita, vão de zero a 255 e para facilitar nossa análise coloquei uma escala no topo do primeiro histograma. Zero, significa que aquele canal, naquele pixel está apagado. 255 significa que aquele canal naquele pixel está na sua luminosidade máxima. Se isso é estranho para você leia o post anatomia do pixel. Vemos então que essa cor de tijolo, quando exposta para dar uma percepção realista, tem no canal azul algo como 45/55, no verde 65/75 e no vermelho 160/170 (é importante você encontrar esses valores no gráfico ao lado). Ressalva: Não adianta conferir e medir na sua tela com algum color picker pois esse histograma informa dados do arquivo da imagem da parede como é visto pela câmera. Isso que você vê na sua tela já é o que o seu computador rendeu a partir de uma imagem da Lumix, que foi interpretada pelo InDesign para fazer o composite ao lado e ainda a partir da interpretação da telinha da Canon. Cada vez que um sistema interpreta uma cor/pixel ele a rende segundo seu entendimento do que é aquela cor.
Deve ficar claro então que o histograma dos canais RGB individuais é o histograma, como o fizemos com a imagem de Peniche, porém realizando-o apenas para um dos canais em todos os pixels da imagem. Como praticamente todos os pixels da imagem da parede feita com f8 têm o azul entre 45 e 55, essa pilha bate no teto, e nas demais áreas não há nenhum pixel marcado (a abertura f8 está informada logo acima da imagem, 1/50 foi a velocidade (irrelevante para o flash) e 8.0 foi a abertura).
O histograma de luminosidade está logo abaixo do RGB. Na foto em f8 ele empilhou todos os pixels por volta de 100. Esse histograma leva em conta os três canais e os interpreta em termos de nossa percepção de luminosidade. Como vimos no passo 4 da construção do histograma da foto de Peniche, o mesmo valor RGB no canal verde vale mais do que no azul. Cada software tem seu algoritmo para fazer essa conversão. Isso para dizer que esse 100 que aparece tão forte no histograma de luminosidade não é propriamente a média aritmética dos valores dos 3 canais.
É interessante analisarmos o que acontece quando vamos, descendo pelas fotos sucessivas, mantendo todos os outros parâmetros constante e, ponto a ponto, vamos abrindo mais a lente, deixando entrar mais luz. É evidente que a foto ficará mais clara. Mas vejamos como isso se comporta no histograma. Na foto em 5.6 todos os montinhos se deslocaram para a direita. Isso acontece pois a lente abriu mais, mais luz entrou, mais luz caiu no sensor digital da câmera, cada pixel na grade do sensor se “encheu mais” e quando todos esses “recipientes” de luz foram lidos e convertidos em valores numéricos para gerar o arquivo da imagem, os pixels receberam valores mais altos, comparativamente à exposição em f8. O histograma de luminosidade sofreu um deslocamento de 100 para algo como 150.
Agora, o efeito da super-exposição pode ser entendido facilmente à medida que acompanhamos o que acontece até f2.8. Os montinhos vão se deslocando para a direita, a imagem vai ficando mais clara, porém, já em f4, vemos que o vermelho parece estar saindo do histograma. Isso é o que em inglês se chama clipping e em português dizemos que a cor estourou ou lavou. Não quer dizer que não há mais vermelho na imagem, pelo contrário, quer dizer que todos os pixels estão com seus canais vermelhos acesos no máximo. Todos em 255. Isso é ruim? Depende, quando isso acontece a proporção das três cores já não segue o que nossos olhos veriam na parede, quando o azul e o verde começam a encostar no vermelho, a área vai ficando branca. Mesmo que você escureça uma imagem registrada assim, você nunca irá recuperar a cor verdadeira da parede pois a “receita” RGB está como que adulterada por super-exposição. Supondo que houvesse uma variação sutil de tons da mesma cor ou uma leve textura, quando as cores começam a estourar, nesse caso a vermelha foi a primeira, para outras cores e paredes poderiam ser o azul ou o verde, os detalhes, que eram proporcionados por variações de cor e luminosidade nos pixels, começam a desaparecer. Em uma foto comum, diferente dessa de laboratório em que não estamos interessados na parede em si, a pergunta, para responder se é bom ou ruim, seria se existem e se queremos ver detalhes nessa região que está estourando. Talvez o interesse da foto esteja em sua parte escura e graças a estourar algumas cores em 255, mostraremos mais detalhes na área esquerda do histograma que de outra forma estariam perdidas. Veja, sobre isso, o exemplo a seguir.
Na foto de Peniche, olhando para a espuma das ondas com um histograma parcial, o fato de que esses brancos estão se amontoando contra a parede direita é importante. Significa que os tons mais luminosos da foto estão em uma área da sensibilidade do sensor onde ele começa a perder a diferenciação – para essa exposição pelo menos. Quando isso acontece, temos áreas inteiras na foto com RGB(255,255,255) e dizemos que ela fica “lavada”, sem volume ou textura. Mas isso é subjetivo pois depende do que o fotógrafo quer mostrar. O entorno das áreas estouradas pode completar a informação como parece ser o caso nessa foto onde esses tons azuis muito claros “desenham” e tornam o lavado até mais condizente com a natureza da coisa representada. Com mais exposição, até esses azuis claros iriam embora e nesse caso provavelmente uma área muito grande branco puro começaria a incomodar. Se a lente fosse mais fechada ou o tempo de exposição reduzido para entrar menos luz, seria talvez possível se ver mais detalhes na espuma, porém, o azul do mar ficaria também mais escuro, talvez perdesse a naturalidade para uma foto feita à 12:54h.
O histograma de RGB combinado é o que alguns softwares de edição de imagens, como o Photoshop Elements 11 que estou usando, exibe por default quando você quer editar os níveis, levels. Acredito que não seja essa a melhor maneira de ver um histograma. Voltando a usar a foto de Peniche, acima, o histograma nela inserido é o geral da imagem e representa uma combinação, que não é uma conversão para luminosidade, das três cores RGB: é a sobreposição de 3 histogramas separados, um para cada cor, representados no mesmo gráfico.
Vamos examinar uma área específica para entendermos melhor o que isso significa. Para fazer o histograma ao lado, apenas uma área do céu, próxima do horizonte, foi selecionada (linha pontilhada), com isso temos novamente algo mais próximo de um monocromático. Aquele azul claro deve ter uma receita de RGB que seria uma variação sobre uma proporção mais ou menos parecida de Red, Green, Blue para todos os seus pixels.
Isso é o que se evidencia quando vemos os três picos no último terço do histograma. É uma situação parecida com a da foto da parede vista acima com os três montinhos que representam uma cor. Repare que olhando esse histograma pode parecer que temos 3 tipos de pixels nessa área, o que não é verdade, são os mesmos pixels, quase com a mesma cor e luminosidade, seguindo uma proporção determinada de RGB. Isso fica mais evidente quando nos três histogramas seguintes olhamos cada canal separadamente.
Convertendo a imagem para tons de cinza temos um único pico que corresponde mais à expectativa de uma área homogênea como a que foi selecionada. Esse seria algo equivalente ao histograma de luminosidade apresentado pela câmera pois o PE converteu as cores em cinza seguindo um padrão de luminosidade.
Antes de concluir que histograma de luminosidade é melhor que RGB combinado, volte a olhar o histograma de luminosidade para a foto da parede em f4. Você verá que ele estava indicando uma exposição dentro do razoável, encostando no 200, mas na verdade sabemos que o vermelho já havia estourado com a lente em f4. Isso pode ser uma boa pista de uma correção a se fazer.
A conclusão é que o histograma de RGB combinado é bom para dar o alarme logo de início caso alguma cor esteja estourando (caso isso seja um problema) mas é muito difícil fazer corresponder tal parte do histograma a tal parte da imagem. Isso já é mais fácil no histograma de luminosidade.
Como as necessidade e as ações são bem diferentes no momento da tomada da fotografia e no momento da edição, acredito que luminosidade e RGB individuais seja a opção para se ter na câmera fotográfica. Para quem vai ficar depois movendo os ponteiros de nível de brancos e de pretos e vendo o resultado em tempo real na tela do computador, o rgb combinado é útil pois você tem a leitura imediata caso esteja jogando fora alguma cor que estava no arquivo. Nesse caso, o histograma combinado é um bom tipo de histograma para edição.
Histogramas idênticos para imagens distintas
A partir do que vimos acima, é importante, para finalizar, ressaltar que histogramas idênticos, ou com a mesma cara, podem vir de imagens muito diferentes entre si. As imagens acima não são fotográficas, foram feitas em um programa de editoração. Mas servirão para nossas considerações. O ponto é observar que as duas geram exatamente o mesmo histograma. Veja que há um acúmulo de pixels no zero e no 255. Isso é lógico, mas suponha que os quadradinhos fossem diminuídos até que nos parecesse uma superfície cinza. O histograma continuaria sem mostrar cinzas apenas pretos e brancos. Isto quer dizer que em áreas mais uniformes como céu, superfícies lisas pintadas, pele (em geral) e outras situações com pouca textura, pouco “efeito xadrez”, é fácil imaginar onde elas se encontram no histograma. Já no caso de superfícies com muita textura, ou ruído, que possa ser detectada em suas variações pela definição de sua câmera, elas irão espalhar pixels por áreas consideráveis do histograma e será mais difícil fazer a associação. É o caso dos rochedos no sol em Peniche, eles aparecerão “espalhados” por todo o histograma, por conta de suas variações bruscas de tons claros e escuros.
Um exercício interessante, que conta muita coisa sobre a imagem, é seleciona-la por partes e fazer histogramas parciais. Isso pode ser feito em qualquer programa de edição de imagens que conte com comando “níveis” ou levels no inglês.
Talvez esteja incomodando aquele montinho no meio de um histograma que deveria ter apenas preto e branco. Está? Se você observou isso, muito bem observado. Aqui vai a explicação: Na hora de converter em imagem, mapa de pixels, as transições de uma cor a outra podem ser suavizadas por tons intermediários. Imagine que você tenha feito um quadrado com 101 x 101 pixels e você quer dividi-lo ao meio pintando metade de preto e metade de branco puros. Ou seja, 101 ÷ 2 = 50,5 pixels de cada cor. Mas não existe “meio pixel”. O programa não trava por você ter dado uma instrução impossível. Ele irá pintar o pixel do centro de cinza. Teremos a impressão final de que está dividido certinho, desde que estejamos olhando de uma distância suficiente para não perceber o truque. Por exemplo, sem o histograma, você diria que existem pixels cinza nas imagens do xadrez? Pois isso aconteceu na borda dos quadradinhos e essa é a origem do montinho de pixels com RGB (140,140,140). Veja na imagem ampliada a 500%. Da mesma forma, se você irá perceber que o texto, a princípio escrito com fonte preta, também usa cinza para dar a ilusão de arredondado.
Variações de luz na cena traduzidas para a câmera e mostradas no histograma
Vou aproveitar o xadrez e fazer agora o mesmo exercício com uma imagem fotográfica. Iremos nos deparar com um fato interessante. Fiz o arquivo do xadrez preto e branco no InDesign. Isto significa que, ajustadas as dimensões, instrui o programa a colocar apenas pixels ou RGB(0,0,0) ou RGB(255,255,255). O resultado depois de impresso ficou bem convincente olhando a folha na mão. Exatamente o que eu chamaria de um xadrez branco e preto. O próximo passo foi fazer uma foto da folha impressa e essa é a que está mostrada logo acima à direita. Com uma pequena inclinação para dar mais veracidade à coisa.
Acima, está a foto junto com seu histograma e a pergunta é: para onde foram os RGB(0,0,0) e os RGB(255,255,255) que o InDesign fez? Bem, o fato é que nós entendemos e vemos um xadrez branco e preto. A câmera apenas vê, mas não entende. Ela não dá nomes, ela associa valores. O que aconteceu aqui é que a superfície mais negra que se pode construir ainda emite luz, se for iluminada, e o papel mais branco que se pode fabricar ainda irá refletir um tanto de luz limitado à luz que ele recebe e decrescida de um tanto que fatalmente absorverá. Com essas condições, entre a área mais emissora e a menos emissora desse papel xadrez o fator entre a luminância de uma em relação à outra é da ordem de 1/100. Essa é uma característica dos papeis impressos. A câmera registrou essa diferença e, na sua escala, deu algo em torno de RGB(20,20,20) para os quadradinhos pretos e os RGB(230,230,230). Ela conseguiu esse bom resultado pois uma diferença de 1/100 cabe facilmente na sua sensibilidade entre o mais claro e o mais escuro. Se fosse de 1/1000 já ficaria mais difícil e 1/10.000, impossível. Se fosse 1/10.000 aí certamente teríamos apenas RGB(0,0,0) e RGB(255,255,255) se tivéssemos ajustado a exposição para um valor médio, a média não serviria nem para um nem par ao outro, os dois picos cairiam fora do histograma. Ou seja, se as diferenças forem superiores ao que a câmera suporta, não teríamos os dois picos entre 0 e 255, coisa que nesse caso seria até mais fiel ao assunto da foto. Como o papel produz uma diferença não tão acentuada, as suas luminâncias caíram dentro do histograma.
O que você deve saber sobre histogramas
Bem, com o tema foi exposto através de exemplos e exercícios acredito que é bom agora, a título de resumo, reunir os pontos principais que você precisa ter em mente para poder tirar suas próprias conclusões em situações nas quais a leitura de histogramas pode ajudar a melhorar sua fotografia. Espero que tenha ajudado.
1 O histograma indica em uma escala horizontal de zero a 255 a quantidade relativa de pixels presentes na imagem dando uma altura maior, sobre cada valor nessa escala, para os que aparecem com maior frequencia. Isso pode ser mostrado para cada cor RGB, para luminosidade, ou com os três histogramas RGB combinados em um só gráfico.
2 Se a latitude de luminâncias por cor RGB na cena fotografada for além da latitude de sensibilidade da câmera, para as áreas onde isso acontece, o sensor irá saturar em 255 ou não sairá do zero conforme seja incapaz de registrar tanta ou tão pouca luz, respectivamente. Estar dentro ou fora da sensibilidade depende, além da cena em si, também da condição de exposição, isto é, para cada combinação de velocidade, abertura e ASA.
3 Aumentando a exposição, a câmera recebe mais luz e o histograma como um todo se desloca para a direita. Diminuindo a exposição a câmera recebe menos luz e o histograma como um todo se desloca para a esquerda. Desse modo, dentro de certos limites, podemos fazer com que a latitude de luminosidade da cena entre, ou saia, de dentro da latitude de sensibilidade da câmera para um lado ou para o outro.
4 Um histograma que se distribua bem, de perto de zero até perto de 255 para as cores RGB, sem que áreas da imagem sejam comprimidas em seus limites em zero e 255, significa que a exposição dada à câmera permitiu registrar todas as variações da cena dentro e no limite de latitude da câmera. Geralmente isso significa uma imagem com mais contraste.
5 Um histograma que use uma pequena parte da escala de zero a 255 significa que a câmera conseguiu, com folga, registrar toda a latitude de luminância apresentada pela cena fotografada. Certamente isso indica uma imagem de baixo contraste, pouca variação entre tons que podem estar situados no centro, em áreas escuras, ou claras, dependendo do caso.
6 É possível em pós produção, ao retocar a imagem, fazer com que o histograma ande para um lado ou outro, expanda ou contraia. Isso quer dizer tornar a imagem mais clara ou escura, mais ou menos contrastada. É possível afastar ou aproximar pixels diferentes entre si. Mas aqueles que tem o mesmo valor, não irão “abrir mais” e mostrar diferenças onde a máquina chapou todos iguais. Esse é bem o caso de pixels vizinhos que estão em zero ou 255, áreas negras ou lavadas, mas serve também para tons médios.
7 Como regra geral, quando se comprime a latitude de uma imagem, a única perda é a própria latitude pois você está apenas jogando fora informação. Quando se expande a latitude, o software precisa fazer médias, interpolações, criar informação onde não havia. O efeito pode ser bem artificial e as passagens serão criadas às custas de geração de ruídos. Portanto o ideal é que a captura explore bem o que a imagem oferece e deixe o mínimo de ajuste de níveis para a pós-produção.
Última observação: O que é deslocar, expandir e contrair, deve ficar claro a partir do entendimento do que é um histograma. Como fazer essas alterações, será o assunto de um outro post.