• Nenhum resultado encontrado

estipular um erro, onde qualquer busca padrão poderá ser usada Porém, para imagens, grandes escolhas tornam o processo lento.

Em geral, a compressão de uma imagem consiste na eliminação dos coeficintes redundantes no domínio transformado, que são trocados por zero. A imagem comprimida é armazenada no domínio transformado e, para tanto, a sua recuperação deve ser feita usando a transformada inversa.

5.2 sistema de armazenamento de imagens através da transformada wavelet Quando a Transformada Wavelet é aplicada a uma imagem, ela a decompõe em vários níveis de resolução, devido à Análise de MultirresoluçãoJ. F. Silvia[16]. Após a decomposição completa da imagem, sua energia está concentrada em poucos coeficientes wavelet, ou seja, a imagem pode ser reconstruída usando apenas estes coeficientes, praticamente sem perda de informações.

Através da análise do histograma que será apresentada, permite analizar a faixa de coeficientes que se deseja desprezar. Os coeficientes próximos de zero, influenciam muito pouco na qualidade da imagem, desta forma, pode-se desprezá-los afim obter uma boa compressão.

O algoritmo proposto neste trabalho cria um vetor apenas para o armazenamento dos coefici- entes significativos para a reconstrução da imagem. Através desse vetor, é possível reconstruir a imagem original. Além do valor de cada coeficiente não eliminado pelo limiar escolhido no histograma, é necessário que este vetor contenha também informações como a dimensão da imagem e a posição dos coeficientes na imagem original.

5.2.1 Codificação da Imagem Comprimida

A Transformada Wavelet, usada nesse trabalho, é a Transformada Wavelet Discreta Unidimensio- nal e, a escala de resolução usada nas imagens é a escala por linha, ou seja, a cada autoresolução apresenta-se a imagem resultante e os detalhes retirados pela transformada Wavelet.

A primeira componente desse vetor deverá ser a dimensão do vetor que representa a imagem, ou seja, largura x altura. A partir da segunda componente, os coeficientes já podem ser armaze- nados. Como a imagem processada contém muitos zeros, para se obter uma boa compressão, cada coeficiente deverá trazer consigo a distância até o próximo elemento diferente de zero, este procedimento continua até codificação de todo o vetor. A seguir, é feita uma ilustração do funcionamento desse sistema de armazenamento para um vetor de 20 posições.

5.2 sistema de armazenamento de imagens através da transformada wavelet 53

Seja A, um vetor, ~A sua versão decomposta pela Transformada Wavelet Discreta (TWD) e ALo

vetor após a escolha da faixa dos coeficientes a serem desprezados.

A = (∗, ∗, ∗, ∗, ∗, ∗, ∗, ∗, ∗, ∗, ∗, ∗, ∗, ∗, ∗, ∗, ∗, ∗, ∗, ∗) → TWD → ~A = (∗, ∗, o, o, o, ∗, o, ∗, o, o, o, ∗, ∗, ∗, o, o, o, ∗, o, o)

Em ~A, os coeficientes representados por ∗ são coeficientes significantes, enquanto que os que estão representados por 0 podem ser eliminados.

Supondo que os coeficientes que podem ser eliminados trazem poucas informações a imagem, ou seja, são próximos de zero, é indicado desprezá-los através da análise no histograma. Desta forma, o vetor ALresultante é o seguinte:

AL= (∗, ∗, 0, 0, 0, ∗, 0, ∗, 0, 0, 0, ∗, 0, ∗, 0, 0, 0, ∗, 0, 0)

O vetor AL é um vetor esparso com poucos coeficientes, por isso só há a necessidade de

armazenar os coeficientes não-nulos. Assim, o vetor que representaria o vetor comprimido seria: Vcod= (20, ∗, ∗, 3, ∗, 2, ∗, 3, ∗, 2, ∗, 3, ∗)

sendo que o número 20 na primeira posição indica a dimensão do vetor. Após os dois primeiros elementos *, o número 3 indica que o próximo coeficiente diferente de zero se encontra a uma distância 3 do anterior e, assim por diante. Dessa forma, para um vetor transformado e comprimido de ordem N, o vetor Vcodseria escrito da seguinte maneira:

Vcod= (N, ∗, d, ∗, ...)

sendo d a distância de um elemento diferente de zero a outro elemento também diferente de zero. O vetor Vcodpode ser gerado na mesma rotina que faz a eliminação dos coeficientes escolhidos

na análise do histograma, pois nesta rotina há a identificação dos coeficientes que estão acima do limiar. Logo, o custo computacional para gerar este vetor será desprezível.

O vetor Vcodé a versão compactada do vetor no domínio Wavelet.

5.2.2 Decodificação da Imagem Comprimida

O procedimento de reconstrução do vetor, a partir do vetor Vcod, também é muito simples. A

ordem do vetor é o valor do primeiro elemento do vetor Vcod. Portanto, o primeiro passo é a

5.3 função de peano e wavelet 1d em processamento de imagens e uma interface gráfica para o usu

A partir do primeiro elemento, tem-se a tarefa de colocar cada coeficiente em seu lugar original no vetor inicial. Como os coeficientes da imagem variam em uma escala de −1 a 1 e não existe distância 1 no processo, não há perigo de confusão entre distância e coeficiente.

Desta forma, se o primeiro elemento após a dimensão do vetor pertencer a escala, significa que este será o primeiro coeficiente do vetor, caso contrário, o número fora da escala indicará a que distância estará o primeiro elemento diferente de zero. Como o vetor de decodificação foi iniciado como vetor nulo, basta repetir este procedimento para cada elemento do vetor Vcod, ou

seja, a cada distância d, substitui o 0 do vetor de decodificação pelo elemento que vem após o elemento que representa a distância d no vetor Vcod.

Cada dois elementos representam, respectivamente, o valor do coeficiente preservado no vetor transformado e sua localização no vetor de domínio wavelet, então basta usar esses dois valores para localizar e posicionar o coeficiente no seu lugar no vetor nulo criado incialmente. Após o preenchimento de todos os elementos do vetor, aplica-se sobre este a transformada wavelet discreta inversa (TWDI).

5.3 função de peano e wavelet 1d em processamento de imagens e uma inter- face gráfica para o usuário

O uso da Função de Peano no processamento de uma imagem consiste em percorrer todos os pontos da imagem continuamente e sem autointerseções, isto evita o problema das condições de contorno periódicas encontrados ao se aplicar as Wavelets.

No final deste processo de varredura da imagem, gera-se um vetor contendo LxC (larguraX- Comprimento da imagem) elementos.

Dentre as diversas curvas apresentadas por Peano que poderiam fazer este papel de percorrer os pontos da imagem, utiliza-se nesse trabalho a curva apresentada a seguir:

5.4 interfaces gráficas para o sistema de armazenamento de imagens comprimidas 55

Figura 22: Curva de Peano discretizada

A curva acima foi gerada utilizando a função (4.5) definida na seção 4: Xj+in= (B[k] − 1) + (−1)Sxj+in(2xj+in− B[k] + 1)/2,

com Sxj+in = j+in−1 X k=1 xk− i−1 X q=0 xj+qn. e os parâmetros: n = 2; m = 6.

Como n ∗ m = 12, pode-se escolher 12 valores para B, no caso acima tem-se: B[i] = 3, i = 0..9, B[n ∗ m − 2] = B[n ∗ m − 1] = 2.

Está curva foi escolhida por apresentar uma maior proximidade dos pontos vizinhos, aumentando- se desta forma, a correlação entre os pixels, o que melhora a compressão da imagem.

Ao se usar esta curva, armazena-se os pontos da imagem em um vetor, ou seja, tem-se a imagem linearizada. Em seguida aplica-se a Transformada Wavelet 1D para decompor a imagem em coeficientes Wavelets. Afim de obter uma boa decomposição, foi implatado o processo de autoresolução, escolha da faixa de comprimento de onda a ser desprezada e o uso da variação de pontos da base de Daubechies a cada autoresolução.

A seguir é apresentado a interface gráfica ao usuário, mostrando todas as funcionalidades do programa.

5.4 interfaces gráficas para o sistema de armazenamento de imagens comprimidas 56

Figura 23: Interface Gráfica

5.4 interfaces gráficas para o sistema de armazenamento de imagens compri- midas

Neste trabalho, são utilizadas imagens de tamanho 512x512 e no formato ppm, para este caso é apresentado um estudo para a melhor base Wavelets e a melhor base de Peano, afim de obter o melhor tempo de execução do software, a melhor qualidade da imagem recuperada e a melhor compressão. O software também possibilita trabalhar com outros formatos de imagem, bastando para isto uma pequena variação de escala em cada bit da imagem, como também possibilita imagens de outras dimensões, necessitando neste caso, a escolha do m e das bases de Peano. Cabe, em trabalhos futuros, o apefeiçoamento para automatizar este processo.

Inicialmente, apresenta-se a interface acima sem usar o aperfeiçoamento. Seguem, então, os passos que devem ser tomados para obter a compressão de uma imagem:

5.4 interfaces gráficas para o sistema de armazenamento de imagens comprimidas 57

(1) Escolha da imagem. O usuário poderá entrar com qualquer imagem ppm ou pgm, além do conjunto de exemplos fornecidos pelo sistema;

(2) As dimensões da imagem (altura e largura); (3) O número de Autoresoluções;

(4) A escolha da quantidade de pontos da base de Daubechies, neste caso, tem-se o default que consta na imagem acima. Note que há mudanças de base em algumas autoresoluções. O conveniente é começar com a máxima quantidade de pontos, já que na primeira resolução as ondas possuem um grande comprimento de onda e tendem a diminuir a cada autoresolução, já que a quantidade de pontos vai se reduzindo a metade.

(5) As bases de Peano. Neste caso também foi optado pelas que estão na interface acima. Veja que é a mesma curva apresentada na figura 24, havendo uma mudança apenas no valor de m, sendo utlizado aqui m = 6 com 3 nas bases adicionadas. Isto faz com o que o produto das bases se aproxime à quantidade de pontos da imagem. Neste exemplo, usando estas bases e sem o aprimoramento, obtem-se uma imagem de dimensões 486x486, ou seja, as dimensções foram truncadas em relação a imagem orginal. O soft também possibilita trabalhar com m > 6 ou bases ímpares que não sejam apenas 3, de forma a preencher uma região de dimensões maiores que 512x512. Neste caso, a imagem 512x512 fica interior a um quadro de dimensões maiores, onde os pixeis fora da imagem tem valor 1. Com isto, não se perde os dados da imagem, mas prejudica a taxa de compressão e cria-se problemas na borda da imagem, o que não é a intenção deste trabalho. Após o preenchimento da interface acima, clica-se em ok. Em poucos segundos é apresentado o histograma para a escolha dos coeficientes a serem processados.

5.4 interfaces gráficas para o sistema de armazenamento de imagens comprimidas 58

Figura 24: Histograma dos coeficientes

Na figura acima, nota-se que na proximidade do zero contém uma grande quantidade de pontos, estes pontos influenciam pouco na qualidade da imagem e são estes os que devem ser desprezados no processamento. Neste exemplo, deixa-se passar todos os pontos, para isto, basta um click com o botão esquerdo do mouse numa região anterior a todos os coeficientes, isto gera uma reta vertical vermelha no ponto onde houve o click. Como a intenção é selecionar todos os coeficientes, clica-se com o botão direito do mouse em qualquer lugar a direita da reta criada de tal forma a selecionar todo o histograma. A tela a seguir mostra a seleção realizada.

5.4 interfaces gráficas para o sistema de armazenamento de imagens comprimidas 59

Figura 25: Seleção dos coeficientes a serem processados

Após clicar no botão avançar, é gerada a interface com o processamento da imagem a cada autoresolução.

5.4 interfaces gráficas para o sistema de armazenamento de imagens comprimidas 60

Figura 26: Interface Pós-Processamento

Na primeira imagem inferior da segunda coluna, tem-se a imagem original. Na primeira coluna de baixo para cima, apresenta-se a cada autoresolução, a imagem resultante a cada processa- mento Wavelet 1D; e na segunda coluna, os detalhes retirados a cada processamento. A cada autoresolução, a quantidade de pontos da imagem se reduz a metade.

Nesta interface, é possível escolher os detalhes na coluna 2 à serem adicionados à imagem resultante da última autoresolução. A adição destes detalhes melhora a qualidade da imagem, e por consequência, diminui a compressibilidade. Cabe ao usuário indentificar as imagens de acordo com a sua necessidade. O duplo click com o botão esquerdo do mouse, mostra a imagem no seu tamanho padrão.

Apresenta-se a seguir a escolha de alguns detalhes para observar a funcionalidade do programa. Então, para realizar a seleção das imagens, clica-se com o botão direito do mouse nos quadros que se deseja adicionar. As imagens selecionadas apresentam a borda vermelha, como segue na figura:

5.4 interfaces gráficas para o sistema de armazenamento de imagens comprimidas 61

Figura 27: Composição das imagens selecionadas

Após a seleção, clica-se no botão atualizar, isto faz renderizar todas as imagens, ou seja, reapresenta-se a interface com a imagem resultante da soma das imagens selecionadas, ao lado da imagem original. Como se percebe, a imagem resultante da última autoresolução, deve-se sempre ser somada para se obter uma imagem razoálvel. A soma apenas dos detalhes, não reconstrói uma imagem nítida. A soma de uma imagem com o seu detalhe, gera a imagem da autoresolução anterior; Por sua vez, a adição de todos os detalhes contrói a imagem original, desde que não tenha ocorrido seleção da faixa dos coeficientes a serem desprezados, como neste exemplo.

No quadro à direita da interface, é apresenta algumas propriedades sobre o processamento de imagens. São elas:

# PSNR

O PSNR (Peak Signal Noise Ratio) é uma relação entre o máximo possível de potência de um sinal, pela potência do ruído, quando se tem um sinal antes e depois de um processo de degradação, sendo que a unidade utilizada para representa-lo é o dB (decibel). Aplicando este conceito em vídeos e imagens, o PSNR é a relação entre a entrada e a saída de um processo de compressão com perdas, que avalia o quanto a compressão introduziu ruídos na imagem ou frame original. Matematicamente o PSNR de uma imagem de dimensão m por n é definido por:

PSNR = 10.log MAX2I MSE ! = 20.log MAXI √ MSE 

onde MAX é o valor máximo possível de um pixel e MSE (Mean Square Error - Erro médio quadrado):

5.4 interfaces gráficas para o sistema de armazenamento de imagens comprimidas 62 MSE = 1 MN m−1 X i=0 n−1 X j=0 ||I(i, j) − K(i, j)||2

Desta forma, quanto maior o valor do PSNR, maior é a relação entre a potência do sinal pela potência do ruído, o que significa melhor qualidade. Em termos gerais, valores de PSNR acima de 42dB correspondem à compressões que introduzem perdas imperceptíveis ao olho humano, o que significa uma qualidade excepcional. Considera-se que imagens com PSNR acima de 36dB tem qualidade bastante aceitável, entre 30dB e 36dB apresenta uma qualidade mediana e abaixo de 30dB a qualidade já é bem ruim.

Com esta propriedade, é possível controlar a faixa de coeficientes a serem eliminados, de tal forma a obter uma boa qualidade de imagem.

# Energia do Sinal

Intuitivamente, a energia é uma medida da amplitude de um sinal. Quanto maiores forem os valores da amplitude, maior é a energia do sinal. Na interface tem-se o percentual entre a energia do sinal original e do sinal processado. Este valor é calculado pela fórmula:

E = Norma do sinal processado Norma do sinal original X100

Se x é um vetor de dimensão n que representa um sinal, a norma (N) de x é calculada por N = v u u t n X i=1 x2 i .

Neste trabalho, o percentual da energia do sinal indica o quanto a amplitude foi preservada no processamento. Este valor se torna importante, uma vez que as ondas de alta amplitude trazem as informações mais importantes para a qualidade da imagem.

# A Taxa de Compressão

A taxa de compressão C, em porcentagem, é a razão entre o número de coeficientes eliminados e o número total de coeficientes, definida por:

C = Cel T x100

sendo Cel o número de coeficientes eliminados e T, o número total de coeficientes.

# Número de Coeficientes da Imagem Original

Representa o número de coeficientes da imagem antes do processamento.

5.4 interfaces gráficas para o sistema de armazenamento de imagens comprimidas 63

Representa o número de coeficientes da imagem pós-processamento.

# Número de Bits da Imagem Original

Representa o número de bits da imagem antes do processamento.

# Número de Bits da Imagem Processada

Representa o número de bits da imagem pós-processamento.

# Redução do Número de Bits

Representa a redução do número de bits da imagem após o processamento.

# Normas

A norma tem a propriedade de indicar a energia do sinal em cada imagem processada por autoresolução.

Em seguida, apresenta-se a interface com o aprimoramento e com uma escolha da faixa de comprimento de onda a ser desprezada durante o processamento.

Figura 28: Interface Gráfica com aprimoramento ativo

5.4 interfaces gráficas para o sistema de armazenamento de imagens comprimidas 64

Figura 29: Seleção da faixa de coeficientes a serem processados

5.4 interfaces gráficas para o sistema de armazenamento de imagens comprimidas 65

Figura 30: Interface pós-processamento

Clicando-se sobre quaisquer uma das imagens, apresenta-se uma nova janela com a imagem ampliada. A seguir, é mostrado a comparação visual entre a imagem original e a processada no seu tamanho padrão. Tais imagens é representada na última linha da interface acima.

5.4 interfaces gráficas para o sistema de armazenamento de imagens comprimidas 66

Figura 31: (a) Imagem pós-processamento; (b) Imagem original

Nestas imagens, percebe-se a diferença mínima na qualidade da imagem sob uma grande diferença da quantidade de coeficientes resultantes. A imagem original possui 264.144 coeficientes, enquanto a processada 13.464 coeficientes. Em bits, houve uma redução de 2.359,296 bits para 92.341,625 bits, ou seja, uma redução de aproximadamente 96% sob uma taxa de compressão de 94.8%.

Parte VI

PA RT E V I : C O N C L U S Ã O

Capítulo

6

C O N C L U S Ã O

6

C O N C L U S Ã O

Neste trabalho foi proposto um sistema de armazenamento de imagens, que por sua vez são comprimidas usando a Função de Peano e a Transformada Wavelet 1D com o objetivo de reduzir o espaço de memória computacional utilizado para armazenamento de imagens. Este sistema armazena apenas os coeficientes que não são eliminados na compressão, suas posições e a dimensão desta imagem. Tornando assim bem menor o espaço utilizado para armazená-la. De acordo com o conjunto de imagens usado para testes, este sistema reduz em torno de 95% o espaço de armazenamento da imagem. Embora o sistema de armazenamento tenha sido implementado na linguagem java, o mesmo pode ser feito em qualquer linguagem de programação e para compressão de imagens usando qualquer tipo de técnica, não apenas as técnicas baseadas na transformada wavelet. Também foi proposta uma interface gráfica para o processamento de imagens com o objetivo de proporcionar o acesso ao processamento de imagens a todo tipo de usuário de computadores, principalmente aqueles que não têm domínio de nenhuma linguagem de programação. A interface proposta permite ao usuário selecionar uma imagem para processamento, escolher a faixa de coeficientes a serem desprezados no processamento da imagem, comparar visualmente as imagens, original e processada, analisar os dados referentes à operação realizada e salvar a imagem processada. Como sugestão para futuros trabalhos, está a questão do processamento de imagens coloridas, pois a interface proposta processa apenas imagens em tom cinza. E, a possibilidade de uma interface onde se possam fazer as escolhas automáticas das bases de Peano.

R E F E R Ê N C I A S B I B L I O G R Á F I C A S

[1] J. R. Buck; A. V. Oppenheim, R. W. Schafer. Discrete-time signal processing. New Jersey: Prentice Hall. 1998. (Citado na pagina15.)

[2] N. J. Leite A. X. Falcão. Fundamentos de Processamento de Imagem Digital. Campinas: Unicamp. 1998. (Citado na pagina51.)

[3] M. P. Albuquerque. Processamento de imagens: métodos e análises. Rio de Janeiro: FACET. 2001. (Citado na pagina13.)

[4] Cenário atual. Rio de Janeiro: Pontifica Universidade Católica. Centro Digital de Referência. 2004. p. 1-15. Disponível em: < http://www.maxwell.lambda.ele.puc- rio.br/cgi-bin/PRG0599.EXE/76263.PDF?NrOcoSis = 22053CdLinPrg = pt >

.2004.(Citadonapagina51.)

[5] J. Eyng; A.V. Silva. Wavelets e wavelet de packets. In: SEMINÁRIO VISÃO COMPUTACIONAL,

2, 2000, Florianópolis. Visão computacional... Florianópolis: PPGCC - INE - UFSC. 2000. (Citado

na pagina24.)

[6] S. S. C. Botelho. Processamento digital de imagens: conceitos básicos de imagens. 2005. (Citado na pagina8.)

[7] R. Coifman. Adapted multiresolution analysis, computation, signal processing and operator theory. In: CONGRESS OF MATHEMATICIANS, Kioto. Proceedings... Kioto:(s.n.), p. 879-887. 1990. (Citado na pagina19.)

[8] I. Daubechies. The wavelet transform, time frequency localization and signal analysis. IEEE Transactions on Information Theory, New York, v.36, p.961-1005. 1990. (Citado na pagina15,19, and29.)

[9] I. Daubechies. Ten lectures on wavelets. Philadelphia: SIAM Books. 1992. (Citado na pagina4, 19,20, and27.)

[10] I. Daubechies. Orthonormal bases of compactly supported wavelets. Communications on Pure and Applied Mathematics, New York, v. 41, p. 909-996. 1998. (Citado na pagina19and26.)

[11] M. A. Duarte. Redução de ruído em sinais de voz no domínio Wavelet. 2005. 105 f. Tese (Doutorado)- Faculdade de Engenharia, Universidade Estadual Paulista, Ilha Solteira. 2005. (Citado na pa- gina15.)

[12] D. H. Salentin; E. J. Stollnits, T. D. Derose. Wavelets for computer graphics theory and applications. 2004. (Citado na pagina4.)

[13] D. H. Salesin; E. J. Stollnits, T. D. Derose. Wavelets for computer graphics theory and applications. San Francisco: Morgan Kaufmann Publishers. 1996. (Citado na pagina15and27.)

[14] R. R. A. Faria. Wavelets e as artes multirresolucionárias. 1997. (Citado na pagina19.)

[15] A. Haar. Zur theorie der orthogonalen functionen-systeme. Mathematische Annalen, Berlin, v.69, p.

331-371. 1910. (Citado na pagina20.)

referências bibliográficas 71

[16] F. Villarreal W.C Soares; J. F. Silvia, M. A. Duarte. Processamento digital de imagens e a transformada Wavelet. In: BRAZILIAN CONFERENCE ON DYNAMICS, CONTROL AND THEIR APPLICATIONS. 2007. (Citado na pagina4and52.)

[17] S. Goldstein; J. Gomes, L. Velho. Wavelets: teoria, software e aplicações. São Paulo: IMPA. 1997. (Citado na pagina3and26.)

[18] E. P. Somoncelli; J. Portilla. Image denoising via adjustment of wavelet coefficient magnitude correlation. p.277-280. 2000. (Citado na pagina3.)

[19] R. P. Kosloski. Wavelet: um estudo e aplicação à detecção e caracterização de distúrbios em sistema de energia elétrica. 2000. 84 f. Dissertação (Mestrado) Faculdade de Engenharia, Universidade Estadual Paulista, Ilha Solteira. 2000. (Citado na pagina29.)

[20] G. Oppenheim J. Poggi; M. Misiti, Y. Misiti. Matlab: wavelet toolbox user’s guide. Natick: Math Works. 1996. (Citado na pagina4,21, and24.)

[21] A. G. Melo; M. P. Albuquerque, E. S. Caner. Análise de imagem e visão computacional. Rio de Janeiro: CBPF. 2004. (Citado na pagina10.)

[22] S. Mochizuki. Real Time Optimization: Classification and Assesment. 2004. (Citado na pagina3.) [23] Y. Nievergelt. Wavelets made easy. Boston: Bikhäuser. 1999. (Citado na pagina22.)

[24] M. Vetterli; O. Rioul. Wavelets and signal processing. IEEE Signal Processing Magazine, New York, v.8, n.4, p. 14-38. 1991. (Citado na pagina19.)

[25] S. Arie C. P Melo; P. R. C. Alcocer, S. S. Furuir. A DICOM graphic user interface for PC’s: towards a hierarchical system for dynamic digital angiographic image storage and visualization. RBE Revista Brasileira de Engenharia. Caderno de Engenharia Biomédica, Rio de Janeiro, v.12, p.191-201. 1996. (Citado na pagina12.)

[26] S. Quake M. V. Wickerhauser; R. Coifman, Y. Meyer. Signal processing and compression with wavelet packets. In: MEYER, Y.; ROQUESED, S. Progress in wavelet analysis and applications. p.

77-93. 1993. (Citado na pagina19.)

[27] R. C. Gonzáles; R. E. Woods. Digital image processing. (s.l.): Publishing Company. 1992. (Citado na pagina8.)

Documentos relacionados