Com este post pretendo criar a explicação de Histogramas de Imagens mais simples de entender da internet. Se você é uma daquelas pessoas que só aprendeu divisão usando os palitinhos de picolé, vá já no quarto do irmão mais novo e pegue a caixa de Lego, que vamos usar…
A imagem
Vamos simular uma imagem usando peças de lego como pixels. A imagem ao lado tem a minha simulação – usei a imagem em tons de cinza para não fazer confusão. Esta imagem tem 4 tons de cinza (numerados de 0 a 3 na segunda imagem), e é composta por 16 blocos de lego (pixels).
O bloco mais escuro tem valor zero (porque representa a ausência de luz), e o mais claro tem o valor mais alto. Esta escala de intensidade é padrão na maioria dos programas que tratam de processamento de imagens.

O histograma
Na estatística, um histograma é uma representação gráfica da distribuição de frequências de uma massa de medições.
A “massa de medições” é o que estamos medindo: a intensidade de cada pixel (ou de cada ploco de lego): o primeiro (de cima para baixo, da esquerda para a direita, mede 3; o segundo mede 3 também, e assim até chegar ao último, que mede 2. Temos 16 medições – uma para cada bloco (pixel).
Distribuição de frequência é a quantidade de vezes (frequência) em que cada valor medido aparece: o zero aparece duas vezes, o um aparece 3 vezes.
Assim, o histograma será uma representação gráfica de quantas vezes cada valor de pixel aparece: e fazer isso com o lego nem exige contas: é só fazer uma pilha de blocos para cada cor (intensidade), em ordem, começando pelo zero.
Agora com 110880 pixels
Para qualquer imagem em tons de cinza o princípio é o mesmo. Em geral, as imagens captadas por câmeras comuns, e aquelas que circulam na internet são coloridas, e vamos falar delas depois. As imagens mais comuns em tons de cinza têm 8 bits por pixel, isto significa que mostram 256 níveis de cinza, ao invés dos 4 com que trabalhamos acima.
Isto produz um histograma com 256 barras, onde são “empilhados” todos os pixels de mesmo valor, em ordem, começando pelo zero, que é o pixel mais escuro.

Repare que o meu cursor está sobre uma das sementes, e a barra de status mostra que este pixel tem valor 35 (procure pelo círculo azul). No histograma, este valor compõem o primeiro pico do histograma. Como temos uma imagem com mais tons de cinza que a primeira, os objetos não têm uma cor única: cada semente possui nuances provocados pela iluminação e por rugosidades na sua superfície. É por isso que o histograma cresce e decresce suavemente para formar cada pico.
O segundo pico (ou moda) do histograma representa a parte mais clara da imagem – neste caso, o fundo.
As imagens coloridas…
As imagens coloridas possuem 3 bandas (vamos considerar apenas imagens RGB para não complicar), cada uma com 256 tons de cinza. A primeira representa o vermelho, a segunda o verde e a terceira o azul.

No Anima, apresentamos os histogramas das 3 bandas sobrepostas – outros programas usam um gráfico para cada e uns poucos somam os histogramas. Coloquei o cursor sobre uma semente, para que a barra de status mostre os valores de cada banda em um pixel.
Agora, no que a intensidade de cada banda contribui para a cor final da imagem? Para responder isso precisamos falar do espectro eletromagnético e do modelo RGB – isso fica para a próxima!
Créditos
As imagens são minhas, mas tive ajuda da Mônica (3 anos) para montar a simulação de blocos de lego
.



Muito ditatica sua explicação. Também trabalho com processamento digital de imagens já algum tempo e acabei encontrando um tópico, aqui em seu site, sobre Ferret muito bom. Meus parabéns pelo site!!!
Obrigada, Paulo!
Ótima sua explicação, muito didática!
Parabéns.
Gabriela, é uma benção encontrar suas explicações aqui na net. Trabalho produzindo conteúdo digital para eventos… Videos, flash, projeções etc etc…
Minha esposa está finzaliizando o TCC (engenharia de pesca) e me oferecí pra ajudar, que luta!
O TCC dela baseia-se na comparação da linhagem oriunda de cruzamento de tres espécies do peixe ornamental Guppy. Cobra, german e moscow.
Fiquei responsável pela fotografia dos filhotes (600) e separei as partes para analise, área de 5 x 4 do rabo, corpo e cabeça.
O material pra analise já está pronto, agora vem O ANALISAR!!! Preciso obter o seguinte resultado, as proporções de cor de cada parte. Estou estudando o imagej, pois o photoshop que seu uso diariamente não sabe somar…rs Vi que o imagej faz esse tipo de análise, mas não consegui me encontrar nele…
Falando com o orientador dela, ele me falou que o que os alunos fazem é abrir a imagem no Paint, dar um zoom, e contar no olho pixel a pixel.
É incrível como, dependendo da área, não se tem acesso ou conhecimento técnico para obter resultados por meios automatizados. Mas isso está mudando… tanto é que estou eu aqui a procura de facilitar a vida dos formandos de engenharia de pesca. Desde já agradeço a sua colaboração com seus tutoriais.
Subi um mateiral para que possa identificar a necessidade do meu pedido com mais clareza.
http://www.4shared.com/file/GvzaZv4t/Exemplo.html
Deus te abençôe, e muito obrigado.
Péricles, Ticiane e Antônio Algusto (nosso filho de 2 anos e meio)
Olá Péricles,
Você tem um problema complexo nas mãos, então vamos por partes:
1. Em algumas partes (como aquela foto da cauda), dá para demarcar a área, separar as cores por threshold, e depois medir, como aqui: Problema do mundo real: pinos dentários em microscopia eletrônica.
2. Em outras partes do peixe, você pode precisar substituir o threshols por algo mais sofisticado, como aqui: Crescimento de Regiões usando Fiji
3. Vi que algumas fotos tẽm irregularidade de iluminação, e aí vai ser difícil automatizar qualquer coisa…
4. Você vai ver que pode automatizar alguns casos, mas não todos. Os que não der para automatizar simplesmente faça manual – no ImageJ você pode pintar a parte mais escura de preto, depois aplicar threshold e medir – e não vai precisar contar cada pixel.
Mas não seja exigente demais, porque você está trabalhando com um caso de segmentação que não é típico, porque acontece numa única superfície. Recomendo que leia esta para saber até onde pode ir: Objeto ou superfície?
Espero que essas dicas te ajudem!
* criança nessa idade é muito bom, né? mas dá um trabalho! – se seu filho ainda não aprendeu a “desenhar no computador do papai”, ensine – nessa idade distrai por quase uma hora…