Você está na página 1de 13

2018

Histograma

Histograma
CHARLES WAY HUN FUNG
Sumário
Ferramenta matemática SciLab ...................................................................................................... 2
Instalação da Toolbox de Processamento de Imagens ................................................................... 2
Primeiros passos de PDI usando o SciLab ..................................................................................... 3
Histograma ..................................................................................................................................... 6
Equalização de Histograma ............................................................................................................ 8
Limiarização.................................................................................................................................. 11
Referências................................................................................................................................... 12

Histograma 1 Eng. Charles Way Hun Fung MSc.


Ferramenta matemática SciLab
SciLab é um ambiente de programação voltado a resolver problemas matemáticos, há
diversos softwares que foram desenvolvidos com este fim, exemplo: Matlab e Octave. Este software
foi desenvolvido em 1990 por pesquisadores do INRIA – Institut de Recherche em Informatique et
en Automatique. SciLab é gratuito e pode ser baixado no site:
https://www.scilab.org/en/download/6.0.1.

Os objetivos da ferramenta são:

- Geração de gráficos de uma, duas ou três dimensões;

- Manipulação de vetores e matrizes;

- Permite trabalhar com sistemas de equações, polinômios, sistemas e funções de


transferência;

- Definição de funções;

- Processamento de sinais contínuos e discretos;

Instalação da Toolbox de Processamento de Imagens


Deve-se acessar o gerenciador automático de módulos (ATOMS) que é usado para baixar os
módulos externos ao SciLab de seu repositório. Para isto use o comando:

Aparecerá uma interface na qual é possível acessar todas as categorias de módulos externos
que existem no repositório do SciLab.

Figura 1: Categorias principais - ATOMS

Histograma 2 Eng. Charles Way Hun Fung MSc.


Clique em “Image processing” e em seguida “Image processing and Computer Vision
Toolbox”.

Clique em “instalar”, o módulo será instalado no SciLab.

Não esqueça de marcar a caixa de texto “Autoload”, para que este módulo seja iniciado assim
que o SciLab for iniciado.

Reinicie o SciLab.

Deve aparecer esta mensagem na inicialização:

Figura 2 – Mensagem de inicialização do SciLabs.

Se esta mensagem aparecer desta forma mostrada na figura 2, o módulo de processamento


de imagens já está pronto para o uso.

Primeiros passos de PDI usando o SciLab


Para começarmos, devemos fazer a leitura de uma imagem. Para isto o comando:

Variável = imread(<nome_do_arquivo ou url>)

Este comando retorna para uma variável a matriz da imagem que foi especificada no
parâmetro, como nome do arquivo com extensão ou o endereço url da imagem. Exemplo:

Neste caso, a imagem está no diretório direcionado na interface do SciLab. Foi realizada a
leitura da imagem house.tif. Perceba que a matriz resultante desta leitura é bidimensional e cada
pixel é representado por cada posição da matriz, com sua intensidade igual ao valor da respectiva
posição.

Figura 3 – Matriz bidimensional que representa a imagem.


Histograma 3 Eng. Charles Way Hun Fung MSc.
Fazendo a leitura de uma imagem colorida temos:

Perceba que a interface do SciLab não apresenta diferenças entre as duas imagens, porém
deve-se a imagem colorida é composta por três componentes: Vermelho (R), verde (G) e azul (B).
Para verificar esta diferença deve usar o comando:

Este comando retorna as dimensões reais da imagem colorida:

Da mesma forma que fazemos a leitura da imagem, há um comando para mostrar a matriz da
imagem que foi armazenada em uma variável. O comando é:

imshow(<variável>)

Exemplo:

Figura 3 – Imagem armazenada em uma variável.

Histograma 4 Eng. Charles Way Hun Fung MSc.


É possível também mostrar imagens coloridas usando o comando imshow:

Figura 4 – Mostrando uma imagem colorida com imshow.

Para converter uma imagem colorida em níveis de cinza (Gray Scale) deve-se usar o
comando:

Variável = rgb2gray(<Imagem>)

Esta função retorna a matriz da imagem colorida convertida para níveis de cinza. O parâmetro
<imagem> é uma variável com o conteúdo de uma imagem colorida. Exemplo:

O resultado desta conversão pode ser mostrado usando a função imshow:

Histograma 5 Eng. Charles Way Hun Fung MSc.


Figura 5 – Imagem colorida convertida para níveis de cinza.

Histograma
O histograma de uma imagem consiste em um gráfico que apresenta a quantidade de pixels
por nível de cinza. Através deste é possível determinar algumas características da imagem, como
por exemplo o contraste ou se a imagem é predominantemente escura ou clara.

Para determinar o histograma usando o SciLab é necessário primeiramente usar apenas


imagens em níveis de cinza, então inicialmente deve-se converter a imagem colorida para níveis de
cinza. Em seguida para determinar o histograma deve-se usar o seguinte comando:

[<quantidade>,<niveis>] = imhist(<imagem>)

Onde <níveis> são os níveis de cinza, <quantidade> é a quantidade de pixels por nível de
cinza e <imagem> é uma variável que contém uma imagem em níveis de cinza.

Exemplo:

A seguir o histograma da imagem plotado, lembrando que plot2d3 é uma plotagem discreta
dos valores, o que pode equivaler neste caso a uma barra para cada nível de cinza.

Histograma 6 Eng. Charles Way Hun Fung MSc.


Figura 6 – Imagem e seu histograma da imagem

Neste caso pode-se perceber que há uma grande quantidade de pontos com valor igual e
próximo ao valor 200, isto indica que há muitos pixels claros. Mas pode-se perceber que não há um
grande contraste na imagem, porque há outra concentração de pixels pela região do 100.

Vamos agora utilizar a imagem colorida, convertê-la para níveis de cinza e depois plotar o
histograma.

Histograma 7 Eng. Charles Way Hun Fung MSc.


Figura 7 – Histograma de uma imagem colorida convertida para níveis de cinza.

Equalização de Histograma
A equalização de histograma é um processamento usado para redistribuir os pixels nos níveis
de cinza, de forma a diminuir o contraste da imagem e uniformizar a distribuição de intensidade da
imagem.

No SciLab, o comando para fazer a equalização de histograma de uma imagem é:

Variável = imhistequal(<imagem>)

Onde <imagem> é uma variável que contém uma imagem e retorna uma matriz da imagem
equalizada. Exemplo:

Histograma 8 Eng. Charles Way Hun Fung MSc.


Figura 8 – Equalização de histograma

Histograma 9 Eng. Charles Way Hun Fung MSc.


Para outro exemplo de equalização, vamos usar a imagem em níveis de cinza ‘house.tif’ e
seguiremos o mesmo processo descrito anteriormente:

Resultando nas seguintes imagens com seus histogramas:

Figura 9 – Segundo exemplo de equalização de histograma.


Histograma 10 Eng. Charles Way Hun Fung MSc.
Limiarização
Também conhecido como “threasholding” é uma metodologia de segmentação que separa a
imagem em duas regiões bem definidas com base em um limiar ou “threashold”. No SciLab para
implementar a limiarização deve-se utilizar a função:

Variável = im2bw(<imagem>,<limiar>);

Onde <imagem> é uma variável que contém uma imagem em níveis de cinza, <limiar> é um
valor que varia no intervalo fechado de zero a um, onde este valor implicará na imagem binária
resultante, na qual os valores binários maiores que a porcentagem explicita pelo limiar serão
brancos e o resto preto, por exemplo 0.5 corresponde a 50% do valor máximo da matriz.

Exemplo:

Histograma 11 Eng. Charles Way Hun Fung MSc.


Figura 10 – Limiarização da esquerda para direita: (a) Original, (b)20%, (c)50% e (d)70%.

Referências

[1] R. C. Gonzalez e R. E. Woods, Processamento Digital de Imagens, São Paulo:


Pearson, 2010.

Histograma 12 Eng. Charles Way Hun Fung MSc.

Você também pode gostar