Processamento de imagens na prática

Um pouco de morfologia matemática

Morfologia é o estudo da forma. Em processamento de imagens, morfologia matemática é o nome que se dá a um conjunto de métodos, inicialmente desenvolvidos por Georges Matheron e Jean Serra em 1964, que têm em comum o objetivo de estudar a estrutura geométrica de uma imagem.

Inicialmente a teoria foi desenvolvida apenas para imagens binárias. Só algum tempo depois, estudos foram estendendo suas capacidades para imagens em tons de cinza.

A idéia central é testar a imagem com um elemento estruturante, e analisar de que forma este elemento cabe (hit) ou não cabe (miss) na imagem. Um exemplo vai deixar isso mil vezes mais simples! Só precisamos de mais algumas informações básicas…

As operações fundamentais da morfologia matemática são a erosão e a dilatação, mas antes de tudo é preciso conhecer os elementos estruturantes, ou, em inglês, structuring elements. É o formato destes elementos, tão simples quanto matrizes, que determina quais pixels da imagem são retirados (no caso de uma erosão) ou quais são adicionados (no caso de uma dilatação) aos objetos.

Também é preciso ter claro o que é objeto e o que é fundo, em uma imagem binária. Isto depende do software que você estiver usando. Imagens binárias são imagens em que cada pixel pode assumir dois valores: em geral o zero é representado como preto, e é o fundo; o branco é o objeto, e pode ter valor de 1 ou de 255. O ImageJ tem a opção de considerar o branco como fundo e o preto como objeto, se você souber onde está esta opção…, mas não permite que você determine o formato do elemento estruturante.

Erosão

Como eu queria ter o controle de tudo, fiz meu exemplo no Matlab. Escolhi um elemento estruturante bem simples: um quadrado de lado igual a 3 pixels, com a origem no centro. A imagem é de uma letra escrita por mim, devidamente segmentada.

Na operação de erosão, o elemento estruturante é sobreposto à imagem em todas as posições possíveis por um loop. O pixel que fica na posição da origem do elemento estruturante é modificado de acordo com uma regra simples:

Se o elemento estiver em parte sobre o objeto e em parte sobre o fundo, o pixel que está na posição da origem passa a ser fundo. Ou seja, um pixel só pode permanecer no objeto (com valor 1) se, quando a origem do elemento estruturante estiver sobre ele, todos o elemento estiver sobre o objeto.

O resultado é o que se pode ver no detalhe. Aí a imagem original está em cinza, e o resultado foi sobreposto à ela em branco. A operação de erosão eliminou uma borda de um pixel ao longo de todo o perímetro da imagem original.

Dilatação

Na dilatação o que muda é que quando o elemento está em parte sobre o fundo e em parte sobre o objeto, o seu centro passa a ser objeto. Isto aumenta o tamanho do objeto, como o nome dilatação sujere.

Onde isso tudo leva?

Esta é a base para uma infinidade de ferramentas de processamento e análise de imagens. Algumas simples como as que demonstrei aqui, outras mais elaboradas como a segmentação por Watershed, e outras técnicas de reconhecimento de padrões.

Este exemplo foi feito com um elemento estruturante muito simples, como uma forma de introduzir o assunto. Quem quiser aprofundar-se procure as referências que coloquei no final, ou ponha a mão na massa e veja o que estas ferramentas podem fazer – para isso sugiro o Matlab, pela possibilidade que ele dá de você construir seus próprios elementos estruturantes. É claro que espero também escrever mais sobre morfologia…

Até mais!

Referências

  • Dougherty, E.R.; Lotufo, Roberto A. Hands-on Morphological Image Processing. SPIE Press, Washington, 2003.
  • Wikipedia: (em ingles, porque em portugues só tem a introduçao):Mathematical_morphology, Erosion, Dilation

Trackbacks/Pingbacks

           
  1. [...] dia fiz uma introdução à morfologia matemática e, é claro que quando se faz uma introdução o propósito é continuar o assunto. A morfologia [...]

  2. [...] era um método baseado em erosão e dilatação de imagens binárias, que se aproveitava do fato de que os objetos que se tocam, quando erodidos, [...]

  3.        

Comente

Você pode usar estas tags e atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>