• Nenhum resultado encontrado

Tipos de classifica¸c˜oes da TD

A TD pode ser classificada de v´arias formas [Cui99]: pela m´etrica mais po- bre (city-block ) `a mais exata (euclidiana), pela complexidade, pela eficiˆencia, pela ordem de varredura, etc. Na tese do Cuisenaire [Cui99], existe uma clas- sifica¸c˜ao da TD da m´etrica mais pobre `a mais exata, sendo divididas como TD euclidiana aproximada e TD euclidiana exata, respectivamente.

Na introdu¸c˜ao desta tese, Se¸c˜ao 1.1, foi feito uma classifica¸c˜ao da TD quanto `a m´etrica usada, podendo ser transformada de distˆancia chanfrada (TDC), incluindo as m´etricas onde a decomposi¸c˜ao da fun¸c˜ao estruturante ´e constante. Exemplos de m´etricas que produzem a TDC: city-block , chess- board , octagonal , chanfrada 3:4 , chanfrada 5:7:11 , etc. A m´etrica mais na- tural para computar a distˆancia na maioria das aplica¸c˜oes ´e a euclidiana, principalmente em fun¸c˜ao de sua propriedade de rota¸c˜ao invariante. Por´em, devido a dificuldades de construir algoritmos eficientes para a transformada de distˆancia euclidiana (TDE), muitos pesquisadores desenvolveram algorit- mos aproximados (TDEA).

Uma classifica¸c˜ao da TD quanto `a ordem de varredura dos pixels na imagem foi feita na Se¸c˜ao 1.2. Trˆes padr˜oes de algoritmos foram definidos: paralelo, seq¨uencial e por propaga¸c˜ao. Estes padr˜oes est˜ao descritos nas Subse¸c˜oes 4.3.1, 4.3.2 e 4.3.3, respectivamente.

tros quatro tipos: propaga¸c˜ao vetorial, propaga¸c˜ao ordenada, propaga¸c˜ao (ou propaga¸c˜ao paralela) e geom´etrico. Vale observar que alguns algoritmos pertencem a mais de um tipo apresentado, como o do Ragnemalm [Rag92] e o do Eggers [Egg98] que s˜ao por propaga¸c˜ao vetorial e tamb´em por propaga¸c˜ao paralela. Mais informa¸c˜oes para esta classifica¸c˜ao s˜ao apresentadas a seguir.

TD por propaga¸c˜ao vetorial

Os algoritmos da TD por propaga¸c˜ao vetorial s˜ao dif´ıceis de relacionar com a morfologia matem´atica, pois s˜ao decompostos em informa¸c˜oes vetoriais do plano cartesiano discreto.

Cuisenaire [Cui99] chamou de TD por propaga¸c˜ao vetorial os algoritmos que em vez de manipularem as distˆancias (por exemplo, d4(x, y), d8(x, y),

. . .), manipulam os vetores distˆancia (por exemplo, (|x1− y1|, |x2− y2|), onde

x = (x1, x2) ∈ Z × Z e y = (y1, y2) ∈ Z × Z). O primeiro a implementar

algoritmos seq¨uenciais para esta classe de TD foi Danielsson [Dan80]. Estes algoritmos n˜ao resultam na TDE, por´em s˜ao eficientes (foram inspirados nos algoritmos seq¨uenciais definidos por Rosenfeld e Pfaltz [RP66]).

Ragnemalm [Rag92] modificou os algoritmos seq¨uenciais da TD definidos por Danielsson. Ele definiu um novo algoritmo por propaga¸c˜ao vetorial que encontra a TDE, onde utiliza duas estruturas de filas para armazenar os pixels de propaga¸c˜ao e v´arias condi¸c˜oes de propaga¸c˜ao. Para cada dire¸c˜ao de propaga¸c˜ao existe um teste, gerando um algoritmo complexo.

Eggers [Egg98] melhorou o algoritmo de Ragnemalm diminuindo os v´arios testes de dire¸c˜ao, melhorando a velocidade do algoritmo de propaga¸c˜ao, mas aumentando a complexidade da codifica¸c˜ao.

Os trabalhos de TD por propaga¸c˜ao vetorial, como os de Daniels- son [Dan80], Ragnemalm [Rag92] e Eggers [Egg98], n˜ao ser˜ao reescritos por eros˜ao morfol´ogica pois necessitam manipular informa¸c˜oes vetoriais e as eros˜oes definidas neste texto s˜ao as cl´assicas, ou seja, manipulam distˆancias e n˜ao vetores. Por´em, inspirado no trabalho do Eggers, ser´a proposto um

4.2. TIPOS DE CLASSIFICAC¸ ˜OES DA TD 57 algoritmo que usa eros˜oes e as informa¸c˜oes de dire¸c˜ao de propaga¸c˜ao, como ser´a apresentado na Se¸c˜ao 4.4.

O algoritmo do Danielsson [Dan80] e a primeira parte do algoritmo do Cuisenaire [Cui99] n˜ao calculam a TDE devido a n˜ao conexidade do diagrama de Voronoi no caso discreto. O diagrama de Voronoi divide um plano forma- dos por pol´ıgonos desconexos e as uni˜oes destes pol´ıgonos formam novamente o plano. A n˜ao conexidade do diagrama de Voronoi sempre ocorre pr´oximo aos cantos dos pol´ıgonos de Voronoi, descrito inicialmente por Danielsson e corrigido por Cuisenaire na segunda parte do seu algoritmo da TDE. Ya- mada [Yam84] foi o primeiro a propor um algoritmo exato (que tamb´em ´e por propaga¸c˜ao) que resolve este problema. A Figura 4.1 ilustra duas ima- gens onde ocorrem o erro nos algoritmos definidos por Danielsson. Ambas imagens cont´em trˆes pixels (p1, p2 e p3) de valores zeros e os restantes com valores uns. A imagem `a esquerda ilustra a m´etrica city-block e a imagem `a direita a m´etrica chessboard. A regi˜ao ao redor do pixel p2 ´e desconec- tado do pixel q pelas regi˜oes geradas pelos pixels p1 e p3, onde r1 pertence `a regi˜ao (pol´ıgono) propagada a partir de p1 e r2 pela regi˜ao propagada a partir de p3. Assim, na figura `a esquerda q deveria receber √8 e n˜ao √9 (q− p1 = (3, 0), q − p2 = (2, 2), q − p3 = (0, 3)). Na figura `a direita q de- veria receber √144 + 25 e n˜ao min{√169 + 1,√121 + 49} (q − p1 = (13, 1), q− p2 = (12, 5) e q − p3 = (11, 7)). A TDE (como o diagrama de Voronoi) n˜ao ´e uma propriedade local, a informa¸c˜ao de vizinhan¸ca de um pixel n˜ao ´e propagada para pixels distantes. Portanto esse problema da n˜ao conexidade ocorre pois s˜ao propagadas informa¸c˜oes locais, vizinho-por-vizinho.

TD por propaga¸c˜ao ordenada

Os algoritmos por propaga¸c˜ao ordenada s˜ao melhores modelados como o problema de caminho mais curto usado em teoria dos grafos, implementados usando fila hier´arquica. N˜ao ´e poss´ıvel modelar este problema por eros˜oes morfol´ogicas.

Figura 4.1: Erros ocorridos nos algoritmos de Danielsson: para m´etrica city- block (esquerda) e chessboard (direita) (fonte [Cui99]).

Sharaiha e Christofides [SC94] propuseram uma aproxima¸c˜ao baseada em grafos para a TD. A TD baseada em grafos pode ser reduzida ao problema de floresta de caminho m´ınimo, onde as ra´ızes das ´arvores s˜ao determinadas pelos pixels de fronteira dos objetos da imagem. Sharaiha e Christofides descreveram uma TD chanfrada baseada em grafos e apontaram as principais vantagens de usar a teoria dos grafos em vez de usar a aproxima¸c˜ao pixel- por-pixel usada em processamento de imagens. A saber: o tamanho do grafo ´e normalmente menor que o tamanho da imagem; cada pixel ´e normalmente processado uma ´unica vez; o algoritmo pode ser estendido para dimens˜oes maiores e para diferentes grades topol´ogicas (por exemplo, grade hexagonal). Outro trabalho importante da TD por propaga¸c˜ao ordenada foi definido por Lotufo et. al. [LFZ02], onde definiu o algoritmo IFT (Image Floresting Transform). A IFT tem como entrada uma imagem em n´ıveis de cinza, uma outra imagem com marcadores e uma fun¸c˜ao estruturante para determinar a vizinhan¸ca. Como sa´ıda, o algoritmo retorna uma imagem de custos (para algumas entradas especiais esta imagem de custos ´e exatamente a TD), uma imagem representando a propaga¸c˜ao de cada marcador, ou watershed, e o caminho m´ınimo at´e o marcador mais pr´oximo.

4.2. TIPOS DE CLASSIFICAC¸ ˜OES DA TD 59 Um estudo de transforma¸c˜oes baseadas em grafos pode ser encontrado em Zampirolli [Zam97], onde se criou um conjunto de ferramentas baseadas em grafos na toolbox MMach [BBL94], usando o ambiente KHOROS , inclusive incluindo a TD por propaga¸c˜ao ordenada.

TD por propaga¸c˜ao

Os algoritmos da TD por propaga¸c˜ao (ou propaga¸c˜ao paralela) tˆem rela¸c˜oes diretas com eros˜oes morfol´ogicas e ser˜ao estudados nas pr´oximas se¸c˜oes.

Os trabalhos de Ragnemalm [Rag92], Eggers [Egg98] e Yamada [Yam84] apresentados anteriormente no tipo de propaga¸c˜ao vetorial tamb´em s˜ao por propaga¸c˜ao paralela. A chave destes algoritmos ´e: usar duas estruturas de armazenamento para o mapa de custos (custo velho e custo novo); propagar todos os pixels em paralelo atualizando custo novo apenas com os dados de custo velho; depois que tudo foi atualizado, trocar custo novo por custo velho e fazer outra propaga¸c˜ao paralela; continuar fazendo isto at´e n˜ao existir mais propaga¸c˜ao. Estes algoritmos n˜ao s˜ao baseados explicitamente em eros˜ao, por´em suas implementa¸c˜oes s˜ao bastante semelhantes ao algoritmo da TDE usando eros˜ao por propaga¸c˜ao apresentado na Subse¸c˜ao 4.3.3. O trabalho de Eggers [Egg98] propˆos v´arias melhorias ao trabalho de Ragnemalm [Rag92] fazendo um algoritmo que realiza menos acessos aos pixels. A id´eia ´e fazer uso da dire¸c˜ao da propaga¸c˜ao para restringir a varredura da vizinhan¸ca ape- nas aos pixels que podem ser modificados. Usando as informa¸c˜oes contidas no algoritmo do Eggers ´e poss´ıvel alterar o algoritmo da TDE utilizando eros˜ao por propaga¸c˜ao para que fa¸ca uso da dire¸c˜ao da propaga¸c˜ao, como apresentado na Se¸c˜ao 4.4.

Outro trabalho importante para esta tese foi feito por Vincent [Vin92], que implementou a TD por propaga¸c˜ao a qual est´a apresentada no Algo- ritmo 11, Subse¸c˜ao 4.3.3. Este algoritmo da TD usa uma estrutura de fila e poderia tamb´em ser usado para calcular a TDE, por´em h´a a necessidade

de trocar a fun¸c˜ao estruturante a cada eros˜ao e fazer c´opia de imagens. Isto poderia ser feito colocando na fila um token indicando o fim de cada eros˜ao. A cada retirada do token, seria trocado a fun¸c˜ao estruturante. A reescrita do Algoritmo 11 ´e apresentada no Algoritmo 13, por´em sem o uso de fila.

TD geom´etrica

Os algoritmos geom´etricos para a TD usando intersec¸c˜ao de par´abolas formam o ´ultimo tipo de TD por propaga¸c˜ao. Como exemplo, Saito e Tori- waki [ST94] mostraram que a TDE ´e separ´avel. Este problema ´e exatamente o que faz a morfologia matem´atica, quando o problema ´e decomposto em elementos unidimensionais. Nesta linha existem v´arios outros artigos: como o que valida o espa¸co cont´ınuo [EBS01]; o algoritmo definido por Meijster e Roerdink [MR00], um dos mais eficientes reportados na literatura; e tamb´em o proposto neste documento, veja Se¸c˜ao 4.5.

Documentos relacionados