I SBAI - UNESP - Rio Claro/SP - Brasil Identificação automática de bordas com o uso de Transformadas Rápidas de Fourier MARCOS LUIZ MUCHERONI 1 PAULO ESTEVÃO CRUVlNEL2 EDSON ROBERTO MINATEL 1 1UFSCar-Departamento de Computação Rodovia Washington Luis km. 235 13560- São Carlos - S.P, Brasil 2EMBRAPA-CNPDIA Rua XV de Novembro no. 1452 13560 - São Carlos, SP. Brasil cruvinel@npdia . embrapa . ansp.br Abstract. In this paper it is presented an algorithm for both automatic identification and edge detection present onto an image. It has been used both a Fast Fourier Transform analysis and a Laplacian computation over an f(x,y) image. Moreover the results obtained showed the usefulness of this method to identify and to detect edges of different format from an unknown image under analysis. This algorithm was implemented in the C++ language on Silicon Graphics workstation. I - Introdução Uma borda em uma imagem pode ser entendida como limites de uma região onde significativas mudanças podem proporcionar uma série de efeitos físicos, tais como reflectância superficial ou mesmo um melhoramento quanto a visualização. Mudanças em aspectos físicos estão correlacionados com mudanças em intensidade, cores e textura. Diversas aplicações necessitam do reconhecimento de bordas, e incluem desde identificação de aberrações de cromos somas [Bille et al (1983)], análises em pesquisas agropecuárias [Roth et alo (1985)] e [Cruvinel (1992)], como também em tarefas gerais como na identificação de objetos [Brady (1982)]. Um certo numero de trabalhos têm sido publicados indicando as vantagens do uso de operadores direcionais [ Huertas (1986) ] e rotacionalmente invariantes [ Brady (1983)]. A identificação de bordas pode ser classificada em dois tipos de operadores direcionais: gradientes e segundos derivativos. O objetivo de um algoritmo para a identificação de bordas está em localizar regiões onde a intensidade/cor dos pixels muda muito rapidamente. Assim para uma imagem f(x, y) o cálculo do gradiente ou do Laplaciano pode ser dado respectivamente por: V f(x, y)= a f(x, y) ax v2 f(x, y) IX + 2 = a f(x,2 y) ax a f(x, y) A ay + A Iy a2 f(x, y) _..:........:...<..:.. ay2 (1) ( 2) onde IX e Iy são os vetores unitários nas direções x e y respectivamente. O operador gradiente, na identificação de bordas, responde com uma amplitude máxima de sinal acusando a borda, quando encontrada na imagem. Por outro lado os operadores Laplacianos, segundo derivativos, respondem com um corte abrupto à passagem pelo zero, localizando assim a borda. Esta operação encontra um melhor resultado em função de quanto maior for a relação sinal/ruído na imagem. Neste trabalho procurou-se implementar a identificação automática de bordas através do uso de Transformada de Fourier para o cálculo do Laplaciano em imagens f(x, yl. A intensidade da imagem foi colocada em níveis de pseudo-cores, numa escala que vai desde tons escuros até o branco, em conjunto com tons de amarelo, tons de verde e finalmente tons de azul. Assim tem-se que, em termos de valores quantizados: cinza < amarelo < verde < azul - 520- I SBAI - UNESP - Rio Claro/SP - Brasil D- A Transformada de Fourier, a Separabilidade, o Deslocamento e o Laplaciano. Uma maneira de obter-se o Laplaciano na análise de sinais e imagens é obtendo sua relação com a Transformada de Fourier, podendo-se para isto fazer-se o uso de sua transformada rápida ( FFT). Sendo X(x) uma função contínua da variável real x, a Transformada de Fourier F{X(x)} é definida pela equação: 00 F{X(x)} = Z(U) = fX(x)e-i21tuXdx (3) -00 onde i = {:1 . A Transformada de Fourier de uma função X(X) é uma função complexa do tipo: Z(U) := Re(u) + i Im(u) (4) sendo um resultado importante a magnitude IZ(U) I, a qUal é chamada de espectro de Fourier e é dado por: IZ(u) I = IRe 2 (u) + Im 2 (u) I 1/2 (5) A variável u é chamadafreqUência devido o fato que, usando a fórmula de Euler, o termo exponencial pode ser expresso na forma: e-i 21tux =COS 21tux - i sen 21tux (6) A função contínua X(x) da variável x, da equação (3), pode ser expressa como um somatório de senos e cosenos, os quais contém as componentes em freqüência da função . Pode-se desta forma, com uso da equação (6), obter-se para cada componente u a resultante em função da freqüência. Assim, dado Z(u), pode-se obter X(X) usando a Transformada de Fourier Inversa, dada por r ] {Z(u)} = X(X) = 00 fZ(u) ei21tux du (7) Estes resultados podem ser extensíveis às funções XX(x, y) de duas variáveis e sua transformada ZZ(u, v). Se XX(x, y) e ZZ(u, v) são contínuas e integráveis, pode-se obter os seguintes pares: F{xx(x,y)} = ZZfu,v) = 00 f f XX(x,y)e- i21t (ux+vy) dxdy (8) -00 e a sua inversa: -] F {ZZfu, v)} =XX(x, y) = 00 f f ZZ(u, v)e i21t (ux + VY)du~v (9) -00 Sendo X(n) uma função discreta de N amostras, tem-se a Transformada Discreta de Fourier e sua inversa dadas por: - 521 - I SBAI - UNESP - Rio ClarolSP - Brasil '2 IN 1 N-1 Z(u) = N L X(n) el 1tun (10) N=O e sua inversa dada por: X(n) N-1 L Z(n) e-I'21tuxlN (11) N=O No caso de duas variáveis, tomando M por N amostras, os pares da Transformada de Fourier Discreta serão: 1 M-1 N-1 ZZ(u,v) = MN L L XX(m,n)e- '121t(un/N +vm/M) (12) m=On=O XX(m,n) i i M 1 N 1 ZZ(u,v)ei21t(un/N + vm/M) (13) u=O v=O Três propriedades foram destacadas para a Transformada Discreta de Fourier de duas variáveis, neste trabalho, ou seja: lU) A propriedade da Separabilidade, que permite a implementação da Transformada Bi-dimensional, obtida a partir da equação (12), com M = N (imagem quadrada), é dada por: 1 N-1 '2 IN ZZ(u,v) = N2 L e-I 1tun I 1tvn IN L X(m,n)e- '2 N-1 (14) n=O n=O Nota-se que na equação (14) o somatório á direita só depende de v. Assim chamando-se a Transformada unidimensional a direita de Z(n), tem-se: 1 N-1 '2 IN ZZ(u,v) = N L Z(n)e -I 1tnu (15) n=O Logo ZZ(u, v) é uma transformada uni-dimensional dependendo apenas de u. Obtendo-se n funções de ZZ(fl) para cada transformada da função Z(n), pode-se simplificar ZZ(fi) tomando-a uni-dimensional para fi = 0,1 , ... N2, ou seja: ZZ(u, v) = ZZ(fl) (16) Por simplicidade, passa-se a denotar ZZ(fi) como ZZ(n), lembrando-se que n = 0,1 , ... N2, Esta propriedade permite a implementação do FFT bi-dimensional a partir do uni-dimensional, podendo assim utilizar seus algoritmos. A implementação do algoritmo da Transformada Rápida de Fourier foi feita utilizando-se o algoritmo radix-2 [Pi"euss (1982)], com otimizações. 11.2) A Periodicidade. que permite a apresentação da Transformada de Fourier Bi-dimensional deslocando-a um quadrante acima e à esquerda, pois: ZZ(u, v) = ZZ(-u,-v) - 522- (17) 1 SSAI - UNESP - Rio Claro/SP - Brasil ou, quando apresentada a magnitude: IZZ(u, v) I = IZZ(-u,-v) I (18) A propriedade pode facilmente ser demonstrada tomando-se o módulo (magnitude) da Transformada Discreta de Fourier Bi-Dimensional [Gonzalez(1987)] . Através desta propriedade pode-se deslocar a imagem, bastando para isto que seja tomado apenas o seu espectro, conforme a equação ( 18 ), o que permite assim uma visualização melhor das componentes presentes no espectro. 11.3) A propriedade do Laplaciano estabelece que o mesmo pode ser obtido através do uso da Transformada inversa de Fourier levando-se em conta a soma dos quadrados das componentes em freqüência vezes a Transformada de Fourier F(u,v) da imagem, ou seja: (19) Entretanto é necessário observar que tomando-se apenas a magnitude o Laplaciano não identificará mais a passagem por zero e sim uma passagem abrupta por um nível intermediário, criando um conjunto de pixels, neste nível, que identifica a borda. 111-0 Algoritmo do Laplaciano e Resultados A Figura 1 abaixo ilustra em pseudo-código o algoritmo do Laplaciano desenvolvido. O algoritmo de FFT implementado foi o Radix-2, sendo usado um mapeamento que permite transformar imagens em vetores uni-dimensionais, sem alterar as propriedades da Transformada Discreta de Fourier. Conforme desenvolvido na equação (16), o mesmo foi implementado no procedimento FFT (XX [N 2 )) significando assim a Transformada Bi-dimensional de Fourier de XX (x I Y) mapeada em N2 elementos unidimensionais e IFFT (ZZ [N 2 )) a Transformada de Fourier Inversa. O vetor auxiliar CXAux [N 2 ) é · usado para armazenar temporariamente a imagem XX (x, y) I a a ser analisada. A função ZZL (N 2 ) denota o Laplaciano em freqüência obtido através do algoritmo que toma uni-dimensional a Transformada de sinais bi-dimensionais, conforme o termo à direita da equação (19), a menos da Transformada Fourier Inversa. Tomando-se esta transformada inversa obtém-se o Laplaciano. inicio 1 Tome o tempo(horas,minutos,segundos); CXAu~ [N2 ) = FFT (XX [N 2 ) ) ; Para i = O até N2 faça: inicio 2 U = i MOD N; V = i DIV N; fator = sqr(N/2-U) + sqr(N/2-V); ZZL[i) = - sqr(2*PI)*fator*CXAux[i); fim 2 Salve Vetor ZZL[i) em Disco; Laplaciano[N 2 ) = IFFT (ZZL[N 2 )); Mostre o Tempo de execução; fim 1 Figura 1 - Pseudo código do algoritmo de identificação e detecção de bordas . - 523- I SBAI - UNESP - Rio Claro/SP - Brasil Para se verificar a viabilidade do algoritmo desenvolvido utilizou-se a linguagem C++ e usou-se uma 'W orkstation Silicon Graphics' modelo 'Indigo' em ambiente 'UNIX'. A interface gráfica foi desenvolvida com a 'Graphics Library' da 'Silicon Graphics' sobre ambiente compatível com o X-Windows, o '4D-Gifts'. Foram implementados os núcleos que possibilitam o cálculo do Laplaciano, bem como o cálculo da FFf e sua inversa em imagens de 256x256 pixels por 256 tons, necessitando da ordem de 2.5 segundos para serem calculadas. Uma imagem de 512x512 pixels ocupa a CPU por 10 segundos. Devido a discretização envolvida na exibição das imagens, cuidados foram tomados para a visualização das bordas detectadas. Assim, utilizou-se um recurso de filtragem, o qual identifica as mudanças abruptas de intensidades presentes na imagem, possibilitando uma melhor visualização do resultado obtido com o operador Laplaciano. Esse recurso é a limiarização (oothreshold que consiste na atribuição um único valor (uma cor fixa) a uma faixa de valores da imagem resultante. Com isso consegue-se uma melhor continuidade das bordas identificadas. Comparativamente, este método de identificação com uso da Transformada Rápida de Fourier é mais rápido que os métodos que utilizam Convolução direta das imagens com máscaras pré-projetadas como, por exemplo, na análise de figuras com texturas complexas, no que geralmente resulta em descontinuidades das bordas identificadas. Com a convolução direta há a necessidade de se projetar préviamente a melhor máscara para a identificação de bordas e no método pór Transformada de Fourier essa identificação é automática. Outra vantagem é evidenciada pelo fato de se poder variar os valores da limiarização, adequando as larguras das bordas convenientemente sem a necessidade de que novos cálculos sejam efetuados. A figura 2 ilustra as etapas realizados onde as imagens têm 256 x 256 pixels, em 256 níveis de intensidade divididos em pseudo-cores. Em ( 2a ) tem-se uma imagem genérica a ser analisada, composta por contornos diversos. Em ( 2b ) tem-se a FFf da imagem apresentada em ( 2a ) já rearranjada para visualização. Em ( 2c) encontra-se apresentado o resultado do calculo do Laplaciano, e em ( 2d ) o resultado do reconhecimento e da identificação das bordas encontradas na imagem apresentada em ( 2a). OO ), - 524- I SBAI - UNESP - Rio Claro/SP - Brasil (a) (b) (c) (d) Figura 2 - (a) Imagem a ser analisada; (b) FFT rearranjada da imagem (a); (c) resultado do Laplaciano no espaco em frequencia; (d) resultado da deteccao e o reconhecimento das bordas e contornos. - 525- I SBAI - UNESP - Rio Claro/SP - Brasil IV - Conclusão Os resultados encontrados levam a conclusão de ser este um algoritmo automático desenvolvido para a identificação de bordas presentes em uma imagem sob análise. Os resultados obtidos trazem uma altenativa metodológica para uso em vários campos da ciência aplicada e em particular na área agrosilvopastoril onde a necessidade da rápida identificação de bordas e contornos se faz presente, bem como em aplicações onde a inspeção visual é necessária. Agradecimentos Os autores agradecem o apoio institucional da EMBRAPA-CNPDIA e da UFSCar, Departamento de Computação, bem como à FAPESP pelo suporte financeiro através dos processos 90/3773-7 e 9212/92. Agradecem também o apoio científico dos pesquisadores Silvio Crestana e André Torre Neto. Referências Bille, J., Scharfenberg, H., and Mãnner, R., " Biological dosimetry by cromosome aberration scoring with parallel image processing with the Heidelberg polyprocessor system OI, Computer in Biology and Medicine, 13 (1983) 49-79. Brady M., "Computional approaches to computer vision" ACM Computers Surveys, 141 (1982) 3-71. Brady M.and Hom, B.K.P., "Rotationally symetric operators for surface interpolations" Computer Vision, Graphics, Image Processing, 12 (1983) 1-27. Cruvinel, P.E ., "Electronics as an important tool for modem agriculture and the experience of the nucleus of research and development of agricultural instrumentation NPDIA- EMBRAPA", in :II Escuela Latino Americana de Física de Suelos, Buenos-Aires, Argentina, (1992). Gonzalez, R.c., and Wintz, P., Digital Image Processing, Addison-Wesley Pub. Co., 2 ed., 1987. Huerta,>, A. and Medioni, G., "Detection of intensity changes with sub-pixel accuracy using Laplacian-Gaussian masks" , IEEE Transaction Pattems Analysis and Machine Intelligence, PAMI-8 5 (1986) 651-664. Preuss, R.D., "Very fast Computation of the Radix-2 Discrete Fourier Transform" IEEE Acoustic, Speech and Signal Processing, 30 (1982) 595-607. Roth, c.H., Henklain, J. C. e Farias, G.S., " Avaliação do tamanho de gotas de chuva natural e simulada para o norte do Paraná OI, Revista Brasileira de Ciência do Solo, 9 (1985) 171-174. - 526-