Baixe o app para aproveitar ainda mais
Prévia do material em texto
Histograma 2018 Histograma CHARLES WAY HUN FUNG Histograma 1 Eng. Charles Way Hun Fung MSc. 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 2 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 3 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 4 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 5 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 6 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 7 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 8 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 9 Eng. Charles Way Hun Fung MSc. Figura 8 – Equalização de histograma Histograma 10 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 11 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 12 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.
Compartilhar