27 de dezembro de 2025
Uma foto de uma árvore de Natal, vista pelo sensor da minha câmera, revela a complexidade do processo de captura de imagens. Os dados do sensor, com valores de ADC de 14 bits, são mapeados para uma faixa de 0 a 255 em RGB, resultando em uma imagem que parece mais cinza do que preto e branco.
A razão para isso é que, embora a saída do conversor analógico-digital (ADC) da câmera possa teoricamente apresentar valores de 0 a 16382, a faixa real desses valores varia entre aproximadamente 2110 e 136000. Ajustando esses valores para branco e preto na imagem, conseguimos um resultado inicial melhor, mas ainda assim a árvore parece mais monocromática do que eu recordo.
Os sensores de câmera não conseguem ver cores, apenas medem a quantidade de luz que atinge cada pixel. Em uma câmera colorida, o sensor é coberto por uma grade de filtros de cores alternados, o que limita cada pixel a apenas um terço de seu valor RGB. Para resolver isso, é necessário aplicar um processo de demosaicing, que faz a média dos valores de cada pixel com seus vizinhos, resultando em uma árvore mais colorida.
No entanto, a imagem ainda aparece muito escura. Isso ocorre porque os monitores não possuem a mesma faixa dinâmica que o olho humano ou um sensor de câmera. Mesmo com um OLED, a luz ambiente reflete na tela, limitando a profundidade dos pretos exibidos. Além disso, nossa percepção de brilho é não linear, o que leva a uma utilização ineficiente da memória, onde a maioria dos bins do ADC é desperdiçada em tons muito semelhantes de branco.
Uma solução para esses problemas é aplicar uma curva não linear a cada canal de cor para iluminar as áreas escuras, mas isso traz um novo desafio. Parte do tom verde é resultado da maior sensibilidade do sensor a essa cor, combinada com o fato de haver o dobro de pixels verdes na matriz de filtros, levando a um aumento excessivo no canal verde.
Para corrigir isso, precisamos realizar um balanço de branco adequado, igualando os canais multiplicando cada um por uma constante. Porém, como a imagem está agora em um formato não linear, é necessário voltar um passo e ajustar a imagem escura para visualizar o problema. Após reduzir o tom verde e reaplicar a curva, finalmente conseguimos um resultado decente.
Vale ressaltar que este é apenas o mínimo necessário; ainda não fizemos calibração de cores, o balanço de branco não está perfeito, e há ruído que precisa ser eliminado. Além disso, a aplicação da curva em cada canal de cor acabou desaturando os destaques, um efeito que, embora pareça agradável, afetou a cor original das luzes LED da árvore.
Para comparação, aqui está a imagem que minha câmera produziu a partir dos mesmos dados: uma imagem JPEG "in camera". Longe de ser uma foto "não editada", há uma quantidade significativa de matemática envolvida na criação de uma imagem que represente adequadamente o que está diante de nós.
Ajustar o contraste ou o balanço de branco em softwares de edição não é algo que a câmera não tenha feito, e a imagem editada não é "falsa" em relação à original; são diferentes interpretações dos mesmos dados. No final, replicar a percepção humana é um desafio, especialmente com as limitações da tecnologia de exibição ou impressões. Não há problema em ajustar a imagem quando os algoritmos automatizados falham.
Confira os últimos vídeos publicados no canal