|
Segmentação
|
||||||||||||||||||||||||||||||||||||||||||||
|
Introdução
O primeiro passo na análise de imagens é a segmentação que consiste em usar o computador para definir na imagem, recortes automáticos ao redor de objetos de interesse. A segmentação subdivide uma imagem em suas partes ou objetos constituintes. O nível até o qual essa subdivisão deve se realizada, assim como a técnica utilizada, depende do problema que está sendo resolvido.[1] Algoritmos de segmentação permitem achar diferenças entre dois ou mais objetos, e distinguir as partículas umas das outras e do fundo. Esta distinção permitirá ao programa interpretar pixels contíguos e agrupá-los em regiões. Os algoritmos de segmentação para imagens monocromáticas são geralmente baseados em uma das seguintes propriedades básicas de valores de níveis de cinza: descontinuidade e similaridade. Na descontinuidade a abordagem é particionar a imagem baseado em mudanças bruscas nos níveis de cinza. As principais áreas de interesse são a detecção de pontos isolados, detecção de linhas e bordas na imagem. Na similaridade as principais abordagens baseiam-se em limiarização e crescimento de regiões.
Limiarização é uma das mais importantes abordagens para a segmentação de imagens[1] Na Limiarização analisamos a similaridade dos níveis de cinza da imagem extraindo os objetos de interesse através da seleção de um limiar T que separa os agrupamentos de níveis de cinza. Uma imagem limiarizada g(x,y) é definida como:
Onde f(x,y) corresponde ao nível, de cinza do ponto, os pixels rotulados com 1 correspondem aos objetos e os pixels rotulados com 0 correspondem ao fundo e T é um valor de tom de cinza predefinido denominado limiar.
Uma das dificuldades da “limiarização” de uma imagem é a melhor determinação do valor de “thresholding”, ou seja, do ponto de separação dos pixels. Método do vale: Através da análise do histograma estabelecer T (valor de “Threshold”) na região de “vale” mais próxima ao meio de escala dos níveis de cinza.
A mais simples de todas as técnicas de limiarização é a do particionamento do histograma da imagem por um limiar único T (Fig.11a). A segmentação é então efetuada, varrendo-se a imagem, pixel por pixel, e rotulando-se cada pixel como sendo do objeto ou do fundo, dependendo se o nível de cinza daquele pixel for maior ou menor que T. O sucesso desse método depende inteiramente de quão bem o histograma pode ser particionado.
Abaixo um exemplo de limiarização Global Simples gerada no MATLAB
Outro teste de limiarização feito no MATLAB, aplicando diferentes valores de limiares
A
limiarização global obtem sucesso apenas em ambientes altamente controlados.
Uma das áreas que isso é obtido é a área de Inspeção Industrial,
em que é possível um controle de iluminação. Segmentação Orientada a Regiões O objetivo da segmentação é particionar a imagem em regiões. Crescimento de Regiões por Agregação de Pixels Assim como na Limiarização, na segmentação orientada a Regiões analisamos a similaridade dos níveis de cinza da imagem. Como seu nome implica, o crescimento de regiões é um procedimento que agrupa pixels ou sub-regiões em regiões maiores. A mais simples dessas abordagens é a agregação de pixels, que começa com um conjunto de pontos "semente" e, a partir deles, cresce as regiões anexando a cada ponto semente aqueles pixels que possuam propriedades similares (como nível de cinza, textura ou cor). Por exemplo, a figura abaixo, na qual os números dentro das células representam valores de nível de cinza. Usando os pontos com coordenadas (3,2) e (3,4) como sementes. A utilização de dois pontos iniciais resulta em uma segmentação consistindo de, no máximo, duas regiões: R1 associada à semente (3,2) e B2 associada a semente (3,4). A propriedade P a ser usada para incluir um pixel em uma das regiões é se a diferença absoluta entre os níveis de cinza daquele pixels e o da semente é menor que um dado limiar T. Qualquer pixel que satisfaça essa propriedade simultaneamente para ambas as sementes é (arbitrariamente) atribuído à região R1. A Figura 14b mostra o resultado obtido usando T= 3. Nesse caso, a segmentação consiste de duas regiões em que os pontos pertencentes a R1 são denotados por "a" enquanto que os pertencentes a R2 são denotados por "b". Qualquer ponto inicial em qualquer uma das regiões resultantes levaria ao mesmo resultado, mas a escolha de T= 8 resultaria em uma única região, como mostrado na Figura 14c.
O exemplo precedente, apesar de simples, mostra algumas dificuldades fundamentais com o crescimento regiões. Dois problemas imediatos são a seleção de sementes que representem adequadamente as regiões de interesse, bem como a seleção de propriedades apropriadas para a inclusão de pontos nas várias regiões durante o processo de crescimento. A seleção de um ou mais pontos iniciais pode freqüentemente se basear na natureza problema. Por exemplo, em aplicações militares de imageamento infravermelho, os alvo de interesse são realmente mais quentes (e, portanto, aparecem mais claros) que o fundo.[1] A escolha de pixels mais claros é, portanto, uma maneira natural de iniciar um algoritmo de crescimento de regiões. Quando a informação apropriada estiver disponível, o procedimento é calcular; em cada pixel, o mesmo conjunto de propriedades que será usado para atribuir os pixels às regiões durante o processo de crescimento. Se o resultado de tal cálculo mostrar agrupamentos de valores das propriedades, então os pixels cujas propriedades localizarem-se mais perto do centróide desses agrupamentos poderão ser usados como sementes. A seleção de critérios de similaridade depende não apenas do problema em consideração, mas também do de dados (imagem) disponíveis. Por exemplo, a análise de imageamento por satélite para levantamento de terrenos depende fortemente do uso de cor. Esse problema poderia ser muito mais difícil de ser tratado com a utilização apenas de imagens monocromáticas. Infelizmente, a disponibilidade de imagens multiespectrais e de outros tipos complementares é exceção, em processamento de imagens. Tipicamente, o crescimento de regiões deve ser realizado com um conjunto de descritores baseados em intensidade e em propriedades espaciais (como momentos ou textura) de uma única fonte de imagens. Os descritores sozinhos podem levar a resultados enganosos, se a informação de conectividade ou de adjacência não for levada em consideração no processo de crescimento de regiões.
Exemplo
de aplicação de Segmentação Usando Crescimento de Regiões na Área de
Sensoriamento Remoto
Na deteção de bordas, analisamos as descontinuidades nos níveis de cinza. Uma borda é o limite entre duas regiões com propriedades relativamente destintas de nível de cinza. As bordas na imagem caracterizam os contornos dos objetos e são bastante úteis para segmentação e identificação de objetos na cena. Pontos de borda podem ser entendidos como as posições dos pixels com variações abruptas de níveis de cinza. Os pontos de borda caracterizam as transições entre objetos diferentes. Existem várias técnicas de segmentação baseadas em bordas. As mais simples são aquelas em que as bordas são detectados pelos operadores gradiente (Sobel, Roberts, Laplaciano)seguidos de uma limiarização.
Utiliza duas máscaras para encontrar os gradientes vertical e horizontal das bordas.
A fórmula para encontrar o gradiente e o ângulo são
as mesmas do operador de Roberts. A computação de |G| se torna mais complexa. Na prática |G| é aproximada da seguinte forma: |G|= |Gx| + |Gy|. O módulo do gradiente é proporcional a derivada local da intensidade.
Primeiro varre-se os pixels do eixo x, detectando o gradiente horizontal das bordas, como é mostrado na figura 17b. Lembre que a convenção usada para os eixos x e y em Processamento de Imagem, é diferente da convenção usada na computação gráfica, como já foi citado anteriormente.
Depois varre-se o eixo y detectando o gradiente vertical das bordas, conforme é mostrado na figura 17c. Por último temos a soma dos módulos gradiente horizontal e vertical de sobel , detectando as bordas da imagem como é mostrado na figura 17d. |
||||||||||||||||||||||||||||||||||||||||||||