UNIVERSIDADE ESTADUAL PAULISTA Faculdade de Ciências e Tecnologia de Presidente Prudente Programa de Pós-Graduação em Matemática Aplicada e Computacional AVALIAÇÃO DE TÉCNICAS DE INTERPOLAÇÃO DE IMAGENS DIGITAIS Wesley Barbosa Dourado Orientador: Prof. Dr. Aylton Pagamisse Presidente Prudente, Agosto de 2014 UNIVERSIDADE ESTADUAL PAULISTA Faculdade de Ciências e Tecnologia de Presidente Prudente Programa de Pós-Graduação em Matemática Aplicada e Computacional AVALIAÇÃO DE TÉCNICAS DE INTERPOLAÇÃO DE IMAGENS DIGITAIS Wesley Barbosa Dourado Orientador: Prof. Dr. Aylton Pagamisse Dissertação apresentada ao Programa de Pós-Graduação em Matemática Aplicada e Computacional da Faculdade de Ciências e Tecnologia da UNESP como parte dos requi- sitos para obtenção do título de Mestre em Matemática Aplicada e Computacional. Presidente Prudente, Agosto de 2014 FICHA CATALOGRÁFICA Dourado, Wesley Barbosa. D771a Avaliação de Técnicas de Interpolação de Imagens Digitais / Wesley Barbosa Dourado. - Presidente Prudente : [s.n], 2014 139 f. : il. Orientador: Aylton Pagamisse Dissertação (mestrado) - Universidade Estadual Paulista, Faculdade de Ciências e Tecnologia Inclui bibliografia 1. Interpolação. 2. Zoom. 3. Imagem digital. I. Pagamisse, Aylton. II. Universidade Estadual Paulista. Faculdade de Ciências e Tecnologia. III. Título. A minha mãe, Roseneide e a todos que me ajudaram até aqui. Agradecimentos Em primeiro lugar agradeço a Deus pois sem Ele nada poderia fazer. Agradeço a Ele pelo entendimento e inteligência que me concede durante a caminhada. Sou grato a Ele por todos os percussos de minha vida. Agradeço, a minha mãe Roseneide por toda paciência, incentivo e preocupação tam- bém. Agradeço ao prof. Dr. Aylton Pagamisse pela orientação, contribuição, conselhos e paciência que sempre teve comigo. Também sou grato a todos os professores do PosMAC, em especial: Vanessa Botta, Messias Meneguette, Eniuce Menezes e Ronan Antônio, que lecionaram as disciplinas que cursei no mestrado e contribuíram muito para o meu desenvolvimento acadêmico. Também aos professores doutores Marco A. Piteri, Almir O. Artero e Aparecido Nilceu Marana pelas correções e contribuições para com este trabalho. Agradeço aos meus amigos do PosMAC. Todos que contribuíram de maneira geral para o meu crescimento não somente acadêmico mas como cidadão. Agradecimentos especiais a Alisson Reinol, Patrícia Demetria, Irineu Palhares, Rafael Paulino e a Renata N. Imada, pelas críticas construtivas e apoio, seja através de conselhos, seja através do ato de compartilhar o conhecimento científico. Agradeço aos alunos do 2o ano da graduação de Licenciatura em Matemática a qual realizei meu estágio de docência. A participação deles em meu crescimento como professor foi indispensável. Agradeço aos funcionários da seção de pós-graduação pelo bom auxílio prestado no decorrer do mestrado e pela disposição de fazê-lo sempre que preciso. À CAPES pelo apoio financeiro. Finalmente, agradeço a todos que, diretamente ou indiretamente, contribuíram para a elaboração deste trabalho. “ Até aqui nos ajudou o Senhor ” 1 Samuel 7:12b Resumo Nesta dissertação é realizado um estudo comparativo sobre alguns tipos de algoritmos aplicados a imagens digitais voltado para interpolação. Este trabalho inclui os métodos clássicos, que são: replicação, bilinear, bicúbica, Lagrange e interpolação pela função sinc; e alguns recentes: algoritmo-localmente adaptativo, método New Edge-Direction Interpo- lation (NEDI), improved New Edge Direction Interpolation (iNEDI), iterative curvature- based interpolation (ICBI), interpolação utilizando wavelets redundantes e utilizando filtro bilateral. Todos os novos métodos possuem melhorias em aspectos visuais e redução de ruídos nas bordas em relação aos clássicos. Os métodos avaliados são comparados visu- almente e quantitativamente utilizando as métricas estatísticas: erro médio quadrático (MSE), Raíz do Erro Médio Quadrático (RMSE), Erro Médio Quadrático Normalizado (NMSE), Relação Sinal-Ruído (SNR), Coeficiente de Correlação (CC) e Índice de Quali- dade Universal (IQI). Também é realizada uma discussão dos resultados obtidos, anali- sando as qualidades e os defeitos dos métodos estudados. Por fim, são propostas algumas ideias para trabalhos futuros, visando aprimorar as técnicas já existentes. Palavras-Chave: Interpolação. Zoom. Imagem digital. Abstract In this dissertation, a comparative study of some types of interpolation algorithms for digital images is carried out. This dissertation presents the classical methods, which are: replication, bilinear, bicubic, and Lagrange interpolation by the function sinc; and some newer methods: adaptive locally algorithm adaptive, New Interpolation Edge Direction (NEDI), improved New Edge-Direction Interpolation (iNEDI), iterative curvature-based interpolation (ICBI) , interpolation method that uses redundant wavelets and interpolation method using the bilateral filter. All new methods have improvements to visual aspects and reduction of noise at the edges compared to classical. All evaluated methods are compared visually and quantitatively using statistical metrics, such as: Mean Square Error (MSE), Root Mean Square Error (RMSE), Normalized Mean Square Error (NMSE), Signal Noise Ratio (SNR), Correlation Coefficient (CC) and Universal Image Quality Index (IQI). A discussion of the results is also performed, analyzing the strengths and weaknesses of the methods studied. Finally, we propose some ideas for future work, aiming to improve existing techniques. Keywords: Interpolation. Zoom. Digital image. Lista de Figuras 1.1 Ilustração de zoom em uma imagem pelo fator de dois. . . . . . . . . . . . 17 1.2 Sinal original e sua reamostragem com o efeito aliasing. . . . . . . . . . . . 18 1.3 Exemplo do efeito aliasing em sinal unidimensional. . . . . . . . . . . . . . 18 1.4 Exemplo do efeito aliasing em imagens. . . . . . . . . . . . . . . . . . . . . 19 1.5 Exemplo de Jaggies em imagens. . . . . . . . . . . . . . . . . . . . . . . . 19 2.1 Esquema da interpolação do vizinho mais próximo. . . . . . . . . . . . . . 23 2.2 Ampliação de imagem utilizando a interpolação pelo vizinho mais próximo. 23 2.3 Exemplificação do cálculo do método bilinear. . . . . . . . . . . . . . . . . 24 2.4 Ampliação de imagem pela interpolação bilinear. . . . . . . . . . . . . . . . 25 2.5 Esquema da interpolação bicúbica. . . . . . . . . . . . . . . . . . . . . . . 26 2.6 Ampliação dae imagem pela interpolação bicúbica. . . . . . . . . . . . . . 26 2.7 Gráfico da função sinc(·) normalizada. . . . . . . . . . . . . . . . . . . . . 31 2.8 Exemplo da inserção de zeros em um sinal unidimensional. . . . . . . . . . 33 2.9 Ampliação de imagem utilizando a interpolação pela função sinc(·). . . . . 34 3.1 Representação da interpolação no segundo estágio. . . . . . . . . . . . . . . 36 3.2 Representação da interpolação no terceiro estágio. . . . . . . . . . . . . . . 38 3.3 Ilustração dos pontos no segundo estágio. . . . . . . . . . . . . . . . . . . . 39 3.4 Exemplificação da terceira condição. . . . . . . . . . . . . . . . . . . . . . 41 3.5 Exemplificação da quarta condição. . . . . . . . . . . . . . . . . . . . . . . 42 3.6 Ilustração da sexta condição. . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3.7 Ilustração da nona condição. . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.8 Ilustração do terceiro estágio do método. . . . . . . . . . . . . . . . . . . . 44 3.9 Aplicação do método adaptativo na imagem Lena. . . . . . . . . . . . . . . 45 3.10 Representação do primeiro passo do método NEDI. . . . . . . . . . . . . . 46 3.11 Representação do cálculo dos termos Rkl, R̂kl, rk e r̂k. . . . . . . . . . . . . 46 3.12 Representação dos pixels a serem interpolados . . . . . . . . . . . . . . . . 48 3.13 Segundo passo do algoritmo NEDI. . . . . . . . . . . . . . . . . . . . . . . 48 3.14 Imagem ampliada pelo método NEDI. . . . . . . . . . . . . . . . . . . . . . 49 3.15 Representação da janela circular utilizada no método iNEDI. . . . . . . . . 50 7 8 3.16 Ilustração da transição de regiões homogêneas separadas por uma borda. . 51 3.17 Aplicação do método iNEDI na imagem Lena. . . . . . . . . . . . . . . . . 52 3.18 Ilustração dos pixels utilizados para o calculo de Ĩ11 e Ĩ22. . . . . . . . . . . 53 3.19 Segundo passo do método ICBI. . . . . . . . . . . . . . . . . . . . . . . . . 55 3.20 Aplicação do método ICBI na imagem Lena. . . . . . . . . . . . . . . . . . 56 4.1 Esquema do processo de decimação em transformada wavelets. . . . . . . . 59 4.2 Esquema do processo de análise da imagem. . . . . . . . . . . . . . . . . . 59 4.3 Processo de síntese para a composição da imagem. . . . . . . . . . . . . . . 60 4.4 Esquema do processo de transformada wavelet diádica. . . . . . . . . . . . 61 4.5 Representação da interpolação do ponto central utilizando os vizinhos das diagonais. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 4.6 Esquema da imagem após a primeira etapa do algoritmo. . . . . . . . . . . 63 4.7 Representação da imagem rotacionada em 450. . . . . . . . . . . . . . . . . 63 4.8 Pontos interpolados na segunda etapa. . . . . . . . . . . . . . . . . . . . . 64 4.9 Aplicação do método de interpolação que utiliza wavelets proposto na ima- gem Lena. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 4.10 Representação da camada base e a camada de detalhes. . . . . . . . . . . . 67 4.11 Filtragem da camada de detalhes. . . . . . . . . . . . . . . . . . . . . . . . 68 4.12 Representação das configurações do algoritmo para o cálculo das intensi- dades de pixels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 4.13 Aplicação do método proposto na imagem Lena. . . . . . . . . . . . . . . . 70 5.1 Degradações na Imagem Lena . . . . . . . . . . . . . . . . . . . . . . . . . 76 5.2 Exemplificação da percepção visual no contraste (Koffka Ring) . . . . . . . 78 5.3 Imagem Lena degradada com ruído branco. . . . . . . . . . . . . . . . . . . 78 5.4 Representação do foco do HVS. . . . . . . . . . . . . . . . . . . . . . . . . 79 6.1 Imagens utilizadas na análise visual. . . . . . . . . . . . . . . . . . . . . . . 82 6.2 Imagem Lena ampliada com método replicação. . . . . . . . . . . . . . . . 83 6.3 Imagem copo ampliada com método replicação. . . . . . . . . . . . . . . . 84 6.4 Imagem teste ampliada com método replicação. . . . . . . . . . . . . . . . 84 6.5 Imagem Lena ampliada com método bilinear. . . . . . . . . . . . . . . . . . 85 6.6 Imagem copo ampliada com método bilinear. . . . . . . . . . . . . . . . . . 85 6.7 Imagem teste ampliada com método bilinear. . . . . . . . . . . . . . . . . . 86 6.8 Imagem Lena ampliada com método bicúbico. . . . . . . . . . . . . . . . . 87 6.9 Imagem copo ampliada com método bicúbico. . . . . . . . . . . . . . . . . 87 6.10 Imagem teste ampliada com método bicúbico. . . . . . . . . . . . . . . . . 88 6.11 Imagem Lena ampliada com método sinc. . . . . . . . . . . . . . . . . . . 88 6.12 Imagem Copo ampliada com método sinc. . . . . . . . . . . . . . . . . . . 89 9 6.13 Imagem teste ampliada com método sinc. . . . . . . . . . . . . . . . . . . . 89 6.14 Imagem Lena ampliada com método adaptativo. . . . . . . . . . . . . . . . 90 6.15 Imagem copo ampliada com método adaptativo. . . . . . . . . . . . . . . . 90 6.16 Imagem teste ampliada com método adaptativo. . . . . . . . . . . . . . . . 91 6.17 Imagem Lena ampliada com método Nedi. . . . . . . . . . . . . . . . . . . 92 6.18 Imagem copo ampliada com método Nedi. . . . . . . . . . . . . . . . . . . 92 6.19 Imagem teste ampliada com método Nedi. . . . . . . . . . . . . . . . . . . 93 6.20 Imagem Lena ampliada com método iNedi. . . . . . . . . . . . . . . . . . . 93 6.21 Imagem copo ampliada com método iNedi. . . . . . . . . . . . . . . . . . . 94 6.22 Imagem teste ampliada com método iNedi. . . . . . . . . . . . . . . . . . . 94 6.23 Imagem Lena ampliada com método icbi. . . . . . . . . . . . . . . . . . . . 95 6.24 Imagem copo ampliada com método icbi. . . . . . . . . . . . . . . . . . . . 95 6.25 Imagem teste ampliada com método icbi. . . . . . . . . . . . . . . . . . . . 96 6.26 Imagem Lena ampliada com método wavelets redundantes. . . . . . . . . . 96 6.27 Imagem copo ampliada com método wavelets redundantes. . . . . . . . . . 97 6.28 Imagem teste ampliada com método wavelets redundantes. . . . . . . . . . 97 6.29 Imagem Lena ampliada com método que utiliza o filtro bilateral. . . . . . . 98 6.30 Imagem copo ampliada com método que utiliza o filtro bilateral. . . . . . . 98 6.31 Imagem teste ampliada com método que utiliza o filtro bilateral. . . . . . . 99 6.32 Representação das cores do modelo RGB. . . . . . . . . . . . . . . . . . . . 100 6.33 Representação tridimensional das cores do modelo RGB. . . . . . . . . . . 101 6.34 Representação das cores do modelo HSI. . . . . . . . . . . . . . . . . . . . 102 6.35 Imagem colorida escolhida. . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 6.36 Imagem colorida ampliada pelos métodos estudados. . . . . . . . . . . . . . 104 6.37 Imagens utilizadas para a comparação estatística. . . . . . . . . . . . . . . 105 6.38 Exemplo da interferência da sub-amostragem para a comparação de méto- dos de interpolação. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 6.39 Imagens testes utilizadas para a comparação visual dos métodos. . . . . . . 111 6.40 Aplicação dos métodos Replicação ao NEDI na imagem cameraman. . . . . 112 6.41 Aplicação dos métodos iNEDI e ICBI na imagem cameraman. . . . . . . . 113 6.42 Aplicação dos métodos wavelets e bilateral na imagem cameraman. . . . . 114 6.43 Aplicação dos métodos Replicação ao NEDI na imagem Lena. . . . . . . . 115 6.44 Aplicação dos métodos iNEDI ao bilateral na imagem Lena. . . . . . . . . 116 6.45 Aplicação dos métodos Replicação ao Sinc na imagem da flor. . . . . . . . 117 6.46 Aplicação dos métodos Localmente adaptativo ao ICBI na imagem da flor. 118 6.47 Aplicação dos métodos wavelets ao bilateral na imagem da flor. . . . . . . 119 6.48 Aplicação dos métodos Replicação ao NEDI na imagem do babuíno. . . . . 120 6.49 Aplicação dos métodos iNEDI ao bilateral na imagem do babuíno. . . . . . 121 6.50 Aplicação dos métodos Replicação ao Sinc estudados na imagem do copo. . 122 6.51 Aplicação dos métodos Localmente adaptativo ao ICBI estudados na ima- gem do copo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 6.52 Aplicação dos métodos wavelets e bilateral na imagem do copo. . . . . . . 124 Sumário 1 Introdução 14 1.1 Técnicas de Interpolação . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.2 O processo de Zoom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.2.1 Amostragem e Reamostragem . . . . . . . . . . . . . . . . . . . . . 17 1.3 Organização do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2 Métodos Clássicos 22 2.1 Interpolação por vizinho mais próximo . . . . . . . . . . . . . . . . . . . . 22 2.2 Interpolação Bilinear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.3 Interpolação Bicúbica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.4 Interpolação por Polinômios de Lagrange . . . . . . . . . . . . . . . . . . . 27 2.5 Interpolação com base na Convolução . . . . . . . . . . . . . . . . . . . . . 28 2.5.1 Transformada de Fourier . . . . . . . . . . . . . . . . . . . . . . . . 28 2.5.2 Interpolação por função sinc . . . . . . . . . . . . . . . . . . . . . . 30 3 Métodos de Interpolação Utilizando Bordas Direcionais 35 3.1 Algoritmo Localmente-adaptativo . . . . . . . . . . . . . . . . . . . . . . . 36 3.2 Adaptação do Algoritmo Baseado em Estágios . . . . . . . . . . . . . . . . 39 3.3 O método NEDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.4 Método iNEDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.5 Interpolação Iterativa com Base em Curvatura . . . . . . . . . . . . . . . . 52 4 Outras abordagens: Wavelets e Filtro Bilateral 57 4.1 Transformada Wavelets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 4.1.1 Transformada Wavelets Decimadas . . . . . . . . . . . . . . . . . . 58 4.1.2 Wavelets Diádica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 4.2 Método Adaptativo de Super-resolução de Frame Único com Wavelets Re- dundantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 4.2.1 Descrição do Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . 61 4.2.2 Super-Resolução em frame único . . . . . . . . . . . . . . . . . . . 62 4.2.3 Aplicação da Transformada Wavelets . . . . . . . . . . . . . . . . . 63 4.3 Método de Interpolação utilizando o Filtro Bilateral . . . . . . . . . . . . . 65 4.3.1 Descrição do método . . . . . . . . . . . . . . . . . . . . . . . . . . 66 4.3.2 Separação em Camadas . . . . . . . . . . . . . . . . . . . . . . . . . 66 4.3.3 Filtragem da Camada de Detalhes . . . . . . . . . . . . . . . . . . . 67 4.3.4 Interpolação das Camadas . . . . . . . . . . . . . . . . . . . . . . . 68 4.3.5 Composição das camadas com realce nos Detalhes . . . . . . . . . . 70 5 Avaliação Qualitativas e Quantitativas das Imagem Digitais 72 5.1 Métricas Clássicas de Qualidade . . . . . . . . . . . . . . . . . . . . . . . . 72 5.1.1 Erro Máximo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 5.1.2 Erro Médio Absoluto . . . . . . . . . . . . . . . . . . . . . . . . . . 73 5.1.3 Erro Médio Quadrático . . . . . . . . . . . . . . . . . . . . . . . . . 73 5.1.4 Raíz do Erro Médio Quadrático . . . . . . . . . . . . . . . . . . . . 74 5.1.5 Erro Médio Quadrático Normalizado . . . . . . . . . . . . . . . . . 74 5.1.6 Relação Sinal-Ruído de Pico . . . . . . . . . . . . . . . . . . . . . . 74 5.1.7 Relação Sinal-Ruído . . . . . . . . . . . . . . . . . . . . . . . . . . 75 5.1.8 Covariância . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 5.1.9 Coeficiente de Correlação . . . . . . . . . . . . . . . . . . . . . . . . 76 5.2 Problemas na Avaliação de Qualidade de Imagens . . . . . . . . . . . . . . 76 5.2.1 Índice de Similaridade Estrutural . . . . . . . . . . . . . . . . . . . 79 6 Análise e Comparação dos Métodos Estudados 82 6.1 Análise Visual dos métodos . . . . . . . . . . . . . . . . . . . . . . . . . . 82 6.1.1 Interpolação por Replicação . . . . . . . . . . . . . . . . . . . . . . 83 6.1.2 Interpolação Bilinear . . . . . . . . . . . . . . . . . . . . . . . . . . 85 6.1.3 Interpolação Bicúbica. . . . . . . . . . . . . . . . . . . . . . . . . . 86 6.1.4 Interpolação Sinc . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 6.1.5 Interpolação Localmente Adaptativo . . . . . . . . . . . . . . . . . 90 6.1.6 Interpolação NEDI . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 6.1.7 Interpolação iNEDI . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 6.1.8 Interpolação ICBI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 6.1.9 Interpolação utilizando wavelets Redundantes . . . . . . . . . . . . 96 6.1.10 Interpolação utilizando Filtro Bilateral . . . . . . . . . . . . . . . . 98 6.2 Imagens Coloridas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 6.2.1 Modelos de Cores. . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 6.2.2 Aplicações dos métodos em imagens coloridas. . . . . . . . . . . . . 103 6.3 Comparação dos métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 6.3.1 Comparação métrica. . . . . . . . . . . . . . . . . . . . . . . . . . . 105 6.3.2 Análise Visual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 7 Considerações Finais 126 Referências Bibliográficas 129 A Apêndice A 133 A.1 Interpolação por convolução, função sinc. . . . . . . . . . . . . . . . . . . . 133 A.2 Interpolação Localmente adaptativa . . . . . . . . . . . . . . . . . . . . . . 134 Capítulo 1 Introdução Inúmeras são as aplicações de técnicas de interpolação em processamento de imagens digitais. Entre elas estão o uso no processo de redimensionamento de escala (zoom) e em rotação de imagens. O aprimoramento dos métodos existentes para ampliar a aplica- bilidade tanto em áreas médicas, forenses, industriais ou de entretenimento é essencial. Desenvolver novos algoritmos que produzam imagens de alta resolução espacial sem in- troduzir ruídos ou distorções é uma exigência cada vez maior. O processo de zoom tanto quanto a rotação de imagens são muito utilizados em aparelhos celulares e em programas de edição de fotos. Em sensoriamento remoto, tal estudo possui importantes aplicações pois melhoram a interpretação e a identificação de alvos. Para a obtenção de boas imagens em alguns satélites são utilizados sensores com alta resolução espacial. Contudo, apesar de existirem sensores comerciais deste tipo, o alto custo os torna inviável para o uso em algumas aplicações. Neste sentido o estudo de super-resolução é uma alternativa para a aquisição dessas imagens. Boa parte dos satélites utilizam sensores Charged Coupled Device (CCD). Alguns exemplos são: QuickBird; Ikonos II e CBERS 1, CBERS 2 e CBERS 2B (CBERS do inglês,China Brazil Earth Resources Satellite). Em computação gráfica, especificamente em jogos digitais, uma interpolação adequada melhora o visual de movimentação de determinados objetos e diminui artefatos como aliasing. Em vídeos, a interpolação é feita entre frames sequenciais para proporcionar mais aparência de suavidade e continuidade dos movimentos. Essa mesma técnica é utilizada nas transições das imagens animadas (Graphics Interchange Format, GIF). Desta forma, as emendas ou tremores são atenuados, pois quanto mais imagens forem inseridas por interpolação maior será a sensação de continuidade do movimento. O grande desafio dos métodos de interpolação está em melhorar a resolução espacial preservando as informações originais, sem acrescentar novos artefatos à imagem. Várias 14 15 técnicas são utilizadas para este intuito, contudo, quanto mais sofisticado o algoritmo maior seu custo computacional. 1.1 Técnicas de Interpolação A interpolação é, basicamente, o processo que utiliza dados conhecidos para estimar valores em pontos desconhecidos. Em imagens, pode ser ser utilizada para a mudança de escalas, morfismos ou para rotações. Existem várias técnicas que utilizam abordagens distintas de interpolação conservando os aspectos de detalhes da imagem. Os métodos avaliados neste trabalho podem ser classificados (Kumar [20]) em três tipos distintos: • Técnicas Lineares Utilizam filtros espaciais lineares (Gonzalez [13]) para a interpolação das imagens. Essa filtragem é efetuada utilizando uma vizinhança ou uma operação pré-definida realizada sobre os pixels da imagem. Os filtros mais comuns são: a interpolação por vizinho mais próximo, bilinear, bicúbica, quadrática, gaussiana e outros tipos de funções splines (Hou [15], Paik [21], Späth [29]); • Técnicas Não-lineares Melhoram a qualidade utilizando restrições para cada característica da imagem. Battiato [2] desenvolve um algoritmo baseado neste tipo de técnica. Já Jiang [18] otimiza uma função com base na aproximação do gradiente da imagem de alta- resolução estimada a partir da imagem de baixa-resolução. Os dois trabalhos buscam preservar as bordas definindo restrições baseadas nas direções encontradas em sua orientação; • Técnicas de Transformadas Usam a decomposição de uma imagem em multi-resoluções e aplicam a interpolação em cada nível obtido. Um exemplo disso é o uso da transformada wavelets que separa a imagem em vários sub-níveis com componentes decimadas. Desta forma, são adquiridas informações relevantes no domínio das wavelets que não estão apa- rentes em seu domínio original. Algumas aplicações de transformadas wavelets no processo de interpolação são dadas por Dumic [7] que emprega diferentes técnicas de decimação da imagem original e amplia cada sub-banda individualmente. Zhu [40] propõe um novo esquema de interpolação no domínio wavelet com base na esti- mativa estatística do sinal. Com o conhecimento do comportamento das bordas e as estatísticas de sinais locais, a estimativa é capaz de aumentar arestas importantes para manter a consistência da intensidade das altas frequências. Esta abordagem 16 visa a síntese dos componentes de altas frequências da imagem ampliada, adaptando a interpolação de acordo com o conteúdo de frequência contida em cada nível de decomposição. 1.2 O processo de Zoom O termo zoom vem do inglês (zoom lens) e é designado a tipos específicos de len- tes fotográficas que possuem a capacidade de ampliar a imagem que o usuário pretende capturar. Contudo, em processamento de imagem o termo zoom possui outro significado. Para diferenciar um do outro, são utilizados os termos zoom óptico (ampliação de imagens através de lentes) e zoom digital (em tratamento de imagens digitais). O zoom digital é o processo pelo qual se amplia ou reduz a dimensão de uma imagem utilizando algum método digital para a reamostragem. Estes métodos são os de inter- polação de imagens. A expressão zoom digital é popularmente utilizada quando se quer ampliar uma parcela ou a totalidade de uma imagem por meio digital. O zoom pode ser separado em dois tipos: o zoom in e o zoom out. O primeiro é denominado ao processo de reamostragem da imagem por um fator maior que um. Isto é, quando se deseja redimen- sionar a imagem para um tamanho maior em comparação ao original. Já o segundo termo é utilizado quando se deseja redimensionar o tamanho da imagem para uma escala menor. Matematicamente, se f : U ⊂ R 2 → R é uma imagem e α ∈ R +. Então g : V ⊂ R 2 → R é denominado zoom de f se: g(αx, αy) = f(x, y) (1.1) para todo (x, y) ∈ U . Observe que pela Expressão 1.1, temos três situações: - Se α > 1, então a imagem g é uma ampliação da imagem f (zoom in); - Se α = 1, então a imagem g é exatamente a imagem f ; - Se α < 1, então a imagem g é uma redução da imagem f (zoom out). Neste trabalho são estudados os métodos de interpolação que tem como consequência a ampliação da imagem original. Por este motivo, de agora em diante toda vez que for utilizado o termo isolado zoom, este corresponderá ao zoom in. Para exemplificar, considere que seja aplicada em uma imagem o zoom pelo fator de dois. Isto significa que tanto a dimensão da altura, como a largura da nova imagem serão o dobro das dimensões da original (Figura 1.1). Muitos métodos que são estudados neste trabalho são interpolações que ampliam a imagem pelo fator de 2n com n ∈ N. Na Figura 1.1, os pontos em brancos são exatamente os pixels que serão interpolados. 17 Figura 1.1: Ilustração de zoom em uma imagem pelo fator de dois. Os pontos pretos representam os pixels da imagem original. Os pontos brancos são os pixels a serem interpolados. 1.2.1 Amostragem e Reamostragem A amostragem é o procedimento pelo qual se obtém informação sobre um todo, examinando-se apenas uma parte do mesmo. A reamostragem, por sua vez, introduz dados com o intuito de aumentar o espaço amostral com o qual se trabalha. O processo de zoom, por exemplo, é um tipo de reamostragem, em que ao expandir (ou contrair) uma imagem o resultado final será o conjunto de pixels originais juntamente com os no- vos inseridos (ou removidos). Para isso são utilizados métodos de interpolação, sendo a ferramenta essencial para a reamostragem pois insere informações através de dados previamente conhecidos. Para que ocorra uma boa reamostragem sem a inserção de artefatos, o sinal deve obede- cer ao teorema conhecido como “Teorema da Amostragem”, o qual estabelece que a partir de uma amostra discreta, sob algumas hipóteses, uma função pode ser completamente determinada, ou seja, totalmente reamostrada. Teorema 1 (Teorema de Nyquist (ou da Amostragem)). Seja x(t) um sinal de banda limitada com x(ω) = 0, se |ω| > Ω, ∀ 0 < Ω < ∞ . Então x(t) é determinado de modo único pelas amostras x(nT ) com n = 0,±1 ± 2, . . . se ωs > 2 · Ω, em que ωs = 2π T , com T sendo o período. Se algum sinal reconstruído não obedecer a este teorema, alguns artefatos inseridos pela má reamostragem degradará o sinal, e este apresentará o efeito aliasing. Segundo Gonzalez [13], o efeito aliasing corresponde ao caso da subamostragem, pois os períodos de cada sinal se sobrepõe. Observe na Figura 1.2, o efeito aliasing em um sinal unidi- mensional. O sinal resultante possui reamostragem totalmente degradada em relação ao sinal original. 18 Figura 1.2: Sinal original e sua reamostragem com o efeito aliasing. Fonte: Retirado e adaptado a partir de [38]. Observe que na Figura 1.2, o sinal reamostrado não obedece ao teorema da amostra- gem. Desta maneira há perda da informação original e o sinal resultante é totalmente degradado. Na Figura 1.3 está outro exemplo do efeito aliasing em um sinal unidimen- sional. (a) Sinal Original (b) Sinal com efeito aliasing Figura 1.3: (a) Sinal que está de acordo com o Teorema; (b) Sinal com a presença do efeito aliasing. Fonte: Retirado e adaptado a partir de [38]. O efeito aliasing degrada a imagem original inserindo ou retirando informações. Na Figura 1.4 (b), é possível ver que as listras da calça sofrem uma degradação se comparadas às listras da calça na imagem original. O efeito aliasing, quando introduz serrilhamento nas bordas, é denominado de efeito jaggie. 19 (a) Imagem original (b) Imagem com efeito aliasing Figura 1.4: (a) Imagem original. (b) Imagem reduzida pela metade de seu tamanho por exclusão de pixels. Fonte: Adaptado a partir de [13]. Os jaggies são tipos específicos do efeito aliasing e são mais perceptíveis em regiões de alta frequências, ou seja, geralmente em regiões de bordas. Figura 1.5: Imagem do olho da Lena apresentando o efeito jaggie. É possível observar na Figura 1.5 que nas bordas do chapéu e ao redor da íris dos olhos ocorrem o efeito serrilhado. A seguir na seção 1.3 será apresentado como este trabalho está organizado. 20 1.3 Organização do Trabalho A dissertação está organizada em sete capítulos, como se segue: No Capítulo 1 está a introdução deste trabalho, o qual é discutido o processo de zoom e classificados alguns tipos de técnicas de interpolação de imagens digitais. Também é apresentado a organização geral do trabalho. No Capítulo 2, encontram-se os métodos mais usuais da literatura, como por exem- plo a interpolação bicúbica [13, 28] utilizados em softwares de manipulação de imagens como Photoshop e em aplicativos de celulares. Os métodos de interpolação por vizinho mais próximo (nearest), bilinear e interpolação por polinômio de Lagrange também são discutidos. Por último também é apresentada a interpolação por convolução, em que o processo de redimensionar as escalas ocorrem no domínio das frequências. No Capítulo 3 são apresentados métodos mais recentes que são baseados em bordas direcionais. O primeiro algoritmo é de Battiato [2], que confere várias condições impostas e através de quatro estágios verifica a presença de altas frequências em regiões locais e atribui ao novo pixel o valor calculado de acordo com a presença ou ausência de bordas. Em seguida o método de Kumar [20] que faz alterações no método do Battiato [2] e utiliza uma distribuição de pesos nos valores da região vizinha local para o cálculo. A abordagem feita por Li [22] utiliza estimativas estatísticas com correlações locais entre a nova imagem e a original. Aperfeiçoamentos deste método são propostos por Giachetti [10], que introduz dois novos algoritmos, sendo que o primeiro se baseia em [22] com mudanças no código para reduzir artefatos presentes em bordas, enquanto que o segundo utiliza as segundas derivadas direcionais para uma melhor estimativa das intensidades de cinza dos novos pixels. O Capítulo 4 tem como foco principal apresentar outras técnicas de interpolação, que utilizam ferramentas como wavelets [26, 37] e filtro bilateral [14, 33]. No Capítulo 5 é realizada uma análise dos problemas envolvidos na comparação en- tre imagens e as métricas resultantes [36]. Métricas mais aprimoradas abrangem vários campos além da estatística. Para melhorar o cálculo da qualidade entre duas imagens, é necessário levar em consideração o processo de percepção realizado pelo sistema visual humano. Quanto mais as métricas se aproximarem desta interpretação, mais as medidas quantitativas vão refletir como a visão humana recebe e identifica semelhanças e diferenças entre duas imagens. No Capítulo 6 é feita uma análise dos métodos e como cada um se comporta próximo à bordas. Também são mostradas algumas comparações visuais por meio de aplicações em cinco imagens que diferem nas direções dos contornos, nos detalhes e nas texturas. Algumas imagens possuem regiões mais homogêneas, enquanto outras são ricas em infor- mações. Após ser feita uma análise qualitativa desses resultados, mostrando as deficiências 21 e as qualidades dos métodos, são apresentados as métricas de comparação das imagens resultantes comparados com as originais. Finalmente, no Capítulo 7 estão as conclusões feitas por meio das comparações rea- lizadas no Capítulo 6. Também são indicados estudos futuros como contribuição do desenvolvimento dos métodos estudados. No Apêndice A estão as implementações de alguns algoritmos na linguagem Matlab. Capítulo 2 Métodos Clássicos Este capítulo está dividido em cinco seções que apresentam as técnicas de interpo- lação mais clássicas encontradas na literatura de processamento de imagens, que são de simples compreensão e de fácil implementação. Os métodos presentes neste capítulo são: replicação (ou vizinho mais próximo), bilinear, bicúbico, interpolação por polinômios de Lagrange e interpolação utilizando a função discreta sinc. 2.1 Interpolação por vizinho mais próximo O método de interpolação por vizinho mais próximo, também é conhecida como pi- xel replication, é a interpolação mais simples de ser implementada, contudo, apresenta desvantagens por causar distorções em detalhes finos e frequentemente apresenta o efeito jaggie em regiões que apresentam bordas. A ideia dessa técnica é atribuir ao novo valor interpolado o valor do nível de cinza do pixel mais próximo da imagem original (Figura 2.1). Pode-se expressar a interpolação por vizinho mais próximo por meio da Equação 2.1, sendo f(x′, y′) o pixel a ser interpolado, em que dx e dy são as distâncias entre os pontos originais e os interpolados nas direções x e y, respectivamente. Ou seja, dx = x′ − x e dy = y′ − y. f(x′, y′) = ⎧⎪⎪⎪⎪⎨ ⎪⎪⎪⎪⎩ f(x, y) para dx < 0.5 e dy < 0.5 f(x+ 1, y) para dx ≥ 0.5 e dy < 0.5 f(x, y + 1) para dx < 0.5 e dy ≥ 0.5 f(x+ 1, y + 1) para dx ≥ 0.5 e dy ≥ 0.5 (2.1) 22 23 Figura 2.1: Esquema da interpolação do vizinho mais próximo. Fonte: Adaptado a partir de Pedrini [28]. Observe na Figura 2.2, uma imagem resultante da interpolação pelo vizinho mais próximo. Note o efeito serrilhado na borda do chapéu e nas curvas das bochechas do rosto ampliado. (a) Imagem original. (b) Região da imagem ampliada. Figura 2.2: Ampliação da região do rosto utilizando a interpolação pelo vizinho mais próximo. 24 2.2 Interpolação Bilinear A interpolação bilinear utiliza a média ponderada dos pixels originais que se encontram ao redor do novo pixel, como mostrado na Figura 2.1. De acordo com Pedrini [28], a interpolação bilinear é dada pela Equação 2.2. f(x′, y′) = (1− dx) · (1− dy) · f(x, y) + dx · (1− dy) · f(x+ 1, y) +(1− dx) · dy · f(x, y + 1) + dx · dy · f(x+ 1, y + 1) (2.2) Se observarmos o exemplo da Figura 2.1, o valor interpolado f(x′, y′) está mais próximo de f(x, y) do que f(x + 1, y + 1) e portanto o peso de f(x, y) deverá ser maior do que o peso de f(x+ 1, y + 1). A distância máxima que estes termos podem obter é o valor de um, pois esta é a distância entre dois pixels da imagem original na mesma linha ou coluna, por exemplo, f(x, y) e f(x, y + 1). Quanto mais distante o pixel interpolado estiver de algum ponto vizinho, menor será a influência que sofrerá deste pixel. Isto é, se f(x′, y′) estiver a uma distância dx de f(x, y), então o peso atribuído a f(x′, y′) será de (1 − dx), pois quanto maior for dx, menor será (1− dx). Figura 2.3: Representação de como ocorre a média ponderada na imagem utilizando a interpolação bilinear. A intensidade do pixel interpolado possui a interferência dos valores de seus vizinhos, causando a suavidade nas bordas. O que ocorre nas bordas é a interferência de níveis de pixels de regiões distintas ao seu redor. Apesar da média ser ponderada, o fato de utilizar apenas os quatros vizinhos mais próximo ao seu redor, proporciona à imagem transições mais suaves em locais de altas frequências. Observe a Figura 2.3. Nela o ponto pintado de preto representa um dos novos pixels interpolados e este pertence à borda cuja intensidade nível de cinza é dada por B = 50. Considere que os pontos das regiões A e C tem intensidades 30 e 10 respectivamente, como indicado. O método, depois de realizar os cálculos, atribui ao ponto preto o valor de 35, apesar desse ponto pertencer à borda que possui valor 50. 25 Note que com essa interpolação, o efeito de serrilhado é diminuído, porém a imagem fica borrada (Figura 2.4). (a) Imagem original (b) Região da imagem ampliada Figura 2.4: Ampliação da região do rosto pela interpolação bilinear. 2.3 Interpolação Bicúbica A interpolação bicúbica possui o mesmo princípio da interpolação bilinear, porém, utiliza os dezesseis pixels vizinhos ao invés de quatro pixels. É atribuído a cada um o peso correspondente à sua distância geométrica ao novo pixel e, por meio do uso de pesos baseados na spline cúbica, é calculado o seu valor de intensidade. A Figura 2.5 mostra o esquema da interpolação bicúbica. Uma B-spline é uma spline que possui o menor subconjunto fechado do domínio em relação a um determinado grau B. Uma spline é uma curva definida matematicamente por dois ou mais pontos de controle (Chui [6]). A expressão geral da interpolação bicúbica pode ser definida pela função B-spline cúbica dada por: f(x′, y′) = 2∑ m=−1 2∑ n=−1 f(x+m, y + n)R(m− dx)R(dy − n) (2.3) em que, R(s) = 1 6 [P (s+ 2)3 − 4P (s+ 1)3 + 6P (s)3 − 4P (s− 1)3] (2.4) P (t) = { t, t > 0 0, t ≤ 0 26 Figura 2.5: Esquema da interpolação bicúbica. Fonte: Adaptado a partir de Pedrini [28]. O método da interpolação bicúbica não causa o serrilhamento tão exagerado como causado pelo vizinho mais próximo e também não suaviza tanto a imagem quanto a interpolação bilinear. É frequentemente utilizado em softwares de edições de imagens. Observe um exemplo de aplicação da interpolação bicúbica na Figura 2.6: (a) Imagem original (b) Região da imagem ampliada Figura 2.6: Ampliação da região do rosto pela interpolação bicúbica. 27 2.4 Interpolação por Polinômios de Lagrange O método de interpolação por polinômios de Lagrange também utilizam os dezesseis pixels vizinhos do novo pixel para calcular o seu valor de intensidade. Antes de apresentar a expressão do método, é necessário definir o que é um polinômio de Lagrange. Considere Pn(x) definido da seguinte maneira: Pn(x) = n∑ i=0 Li(x)f(xi) (2.5) em que Li(x) = n∏ j=0 j �=i x− xj xi − xj (2.6) é chamado de polinômio interpolador de Lagrange de grau n. Segundo Späth [29] esta forma pode ser reescrita para duas dimensões: Pij(x, y) = N∑ k=1 N∑ �=1 aijk�(x− xi) k−1(y − yj) �−1 (2.7) em que aijk� são os coeficientes do polinômio de Lagrange. Logo, a expressão do método de interpolação pode ser dada pela Equação 2.8. f(x′, y′) = −dy(dy − 1)(dy − 2)L(1) 6 + (dy + 1)(dy − 1)(dy − 2)L(2) 2 (2.8) + −dy(dy + 1)(dy − 2)L(3) 2 + dy(dy + 1)(dy − 1)L(4) 6 em que L(n) = −dx(dx− 1)(dx− 2)f(x− 1, y + n− 2) 6 + (dx+ 1)(dx− 1)(dx− 2)f(x, y + n− 2) 2 + (2.9) −dx(dx+ 1)(dx− 2)f(x+ 1, y + n− 2) 2 + dx(dx+ 1)(dx− 1)f(x+ 2, y + n− 2) 6 Nas Equações 2.8 e 2.9, dx e dy são as distâncias entre o ponto interpolado e o seu vizinho (que pertence a imagem original) nas direções horizontais e verticais, respectiva- mente. Este método apresenta menor tempo computacional. Contudo, os resultados são visualmente semelhantes comparativamente ao método da interpolação bicúbica. 28 2.5 Interpolação com base na Convolução Os métodos de interpolação baseada na convolução (Unser [35]) possuem importantes aplicações no processo de rotação de imagens. Dada duas funções f e g, a convolução pode ser representada por f ∗ g e definida no caso contínuo da seguinte maneira: f ∗ g = ∫ +∞ −∞ f(τ)g(t− τ)dτ (2.10) Seja o espaço de Hilbert L2 (Kreyszig [19]) o conjunto de todas as sequências si, com s : R −→ R tal que, ∞∑ i=1 |si|2 <∞ (2.11) e sua norma dada pelo produto interno: 〈s(x), r(x)〉L2 = ∫ +∞ −∞ s(x)r(x)dx (2.12) com r(x) ∈ L2. Pode-se definir o espaço V (ϕ) ⊂ L2 como o conjunto das convoluções das funções ϕ com os elementos de L2 : V (ϕ) = { s(x); s(x) = ∑ k∈Z c(k)ϕ(x− k), c ∈ L2 } (2.13) O conjunto ϕ(x− k)k∈Z é uma base de Riesz do espaço V (ϕ) (Unser [35]), e isso implica que ∃A,B ∈ R com A > 0 e B > 0, ou seja, A e B constantes estritamente positivas, em que: A ≤ ∑ k∈Z |Φ(ω + 2πk)|2 ≤ B (2.14) o termo Φ(ω) é a Transformada de Fourier da função ϕ(x). Desta maneira, segundo o teorema da representação de Riesz (Brezis [3]), assegura-se que para cada s(x) ∈ V (ϕ), s(x) é unicamente determinado pela sequência de coeficientes c(k). Considerando que a convolução está intimamente ligada à transformada de Fourier, será apresentada um breve estudo sobre o assunto. 2.5.1 Transformada de Fourier Seja f(t) uma função absolutamente integrável com integral finita: ∫ +∞ −∞ |f (t)| dt <∞ (2.15) 29 tem-se que a transformada de Fourier da função f(x) é dada da seguinte maneira: f̂ (ω) = ∫ +∞ −∞ f (x) e−iωxdx (2.16) e sua inversa é expressa por: f (x) = 1 2π ∫ +∞ −∞ f̂ (ω) eiωxdω (2.17) Seja uma função contínua de duas variáveis x e y, a transformada de Fourier no caso bidimensional é representado por: f̂ (μ, υ) = ∫ +∞ −∞ ∫ +∞ −∞ f (x, y) · e−i2π(μx+υy)dxdy (2.18) e f (x, y) = ∫ +∞ −∞ ∫ +∞ −∞ f̂ (μ, υ) · ei2π(μx+υy)dμdυ (2.19) em que μ e υ são variáveis de frequência. Já no caso discreto, tem-se as séries de Fourier, apresentada na Equação 2.20. x̄k = 1 n n−1∑ j=0 fj · e− 2πi n jk, (2.20) com fj dada por: fj = n−1∑ k=0 x̄k · e 2πi n jk (2.21) A sequência de fj é denominada de coeficientes de Fourier, com j ∈ {1, 2, . . . , n− 1}. Em imagens digitais geralmente não há a condição de periodicidade, isto é, f(x, 0) �= f(x + N, 0) para qualquer x em uma imagem NxN . Assim, a transformada de Fourier discreta (DFT) pode ser aplicada na função f no intervalo 0 ≤ x ≤ N−1 e 0 ≤ y ≤ N−1. Para o caso bidimensional, tem-se: f̂ (μ, υ) = M−1∑ x=0 N−1∑ y=0 f (x, y) · e−i2π(μx M +υy N )dxdy (2.22) e f (x, y) = M−1∑ μ=0 N−1∑ υ=0 f̂ (μ, υ) · ei2π(μx M +υy N )dμdυ (2.23) Considere que �{f(t) ∗ g(t)} seja a aplicação da transformada de Fourier na convolu- ção de duas funções f(t) e g(t) de uma variável contínua. Ou seja: 30 �{f(t) ∗ g(t)} = ∫ +∞ −∞ [∫ +∞ −∞ f(τ)g(t− τ)dτ ] · e−i2πμtdt⇐⇒ �{f(t) ∗ g(t)} = ∫ +∞ −∞ f(τ) [∫ +∞ −∞ g(t− τ)e−i2πμtdt ] dτ (�)⇐⇒ (2.24) �{f(t) ∗ g(t)} = ∫ +∞ −∞ f(τ) [ ĝ(μ)e−i2πμtdt ] dτ ⇐⇒ �{f(t) ∗ g(t)} = ĝ(μ) · f̂(μ) em que tem-se a passagem (�) de tal maneira que �{g(t− τ)} = ĝ(μ)e−i2πμtdt. Se for aplicado a transformada inversa de Fourier no lado direito da última equação, obtém-se f(t) ∗ g(t). O teorema da convolução garante que a convolução entre duas funções é o mesmo que a multiplicação de suas transformadas de Fourier. O inverso também ocorre. O teorema da convolução é expressa por: f(t) ∗ g(t) ⇐⇒ ĝ(μ) · f̂(μ) e (2.25) f(t) · g(t) ⇐⇒ ĝ(μ) ∗ f̂(μ) 2.5.2 Interpolação por função sinc Na teoria de processamento de sinais digitais e informações, a função sinc(·) norma- lizada pode ser definida por: sinc(x) = ⎧⎨ ⎩ sen(πx) πx , ∀x �= 0 1 caso contrário (2.26) a não-normalizada não possui o número π acompanhando a incógnita: sinc(x) = ⎧⎨ ⎩ sen(x) x , ∀x �= 0 1 caso contrário (2.27) O termo “sinc” é uma contração do nome da função em latim sinus cardinalis (seno cardinal). A vantagem de usar a normalizada está em aplicar a integral sobre todos os pontos, pois para qualquer x o resultado será 1. ∫ +∞ −∞ sen(πx) πx = 1 (2.28) 31 A Equação 2.28 também pode ser representada como o produtório infinito: sinc(x) = sen(πx) πx = ∞∏ n=1 ( 1− x2 n2 ) (2.29) Outra vantagem é que os zeros do sinc(·) não-normalizado são múltiplos não nulos de π enquanto que os zeros do normalizado são inteiros não nulos. É importante destacar que: i A sinc é uma função de interpolação passa-banda, ou seja, sinc(0) = 1, e sinc(x) = 0 para x inteiros e não-nulos, conforme pode ser observado na Figura 2.7. Figura 2.7: Gráfico da função sinc(·) normalizada. Fonte: Adaptado a partir de [12]. ii As funções xk (t) = sinc(t − k) formam uma base ortonormal (Unser [34]) para as funções limitadas em banda no espaço de funções L(R), cuja maior frequência angular é ω(H) = π. Como a frequência angular é ω = 2πf , tem-se que o ciclo de frequência mais alto é fH = 1 2 . Por estes motivos, de agora em diante quando for mencionada a função sinc(·), esta será a normalizada. Um cálculo simples mostra que a transformada de Fourier da função sinc(·) é a função retangular: Π(x) = { A, |t| ≤ t0 0 |t| > t0 (2.30) Um dos teoremas mais importantes na teoria de sinais digitais é o teorema de Nyquist- Shannon (ou apenas Nyquist), que também é conhecido como teorema da amostragem (Teorema 1 pg. 17). O teorema de Shannon pode ser enunciado da seguinte maneira: 32 Teorema 2 (Teorema de Shannon). Seja f : R→ R uma função banda limitada, isto é, f̂(ω) = 0, se |ω| > Ω para algum 0 < Ω <∞. Se Δt < π Ω , então ∀t0 ∈ R, f(t) = ∑ j∈Z f(t0 + jΔt)sinc ( t− t0 − jΔt Δt ) (2.31) Abaixo segue a Demonstração (Camargo [4]). Demonstração. Considere o intervalo [−Ω,Ω], expandindo a função exponencial eiωt em sua série de Fourier, obtêm-se eiωt = +∞∑ n=−∞ cne − 2iπnω Ω (2.32) em que cn = 1 2Ω ∫ Ω −Ω eiωt · e− iπnω Ω dω (2.33) Considera-se Δt = π/Ω e tn = nΔt, temos que cn = 1 2Ω ∫ Ω −Ω eiω(t−tn)dω = sen(π(t− tn)/Δt) π(t− tn)/Δt = sinc ( t− tn Δt ) (2.34) e então, eiωt = +∞∑ n=−∞ sinc ( t− tn Δt ) eiωtn , ω ∈ [−Ω,Ω]. (2.35) Por fim, como f(t) é banda limitada, tem-se: f(t) = 1 2π ∫ ∞ −∞ f̂(ω)eiωtdω = 1 2π ∫ Ω −Ω f̂(ω) +∞∑ n=−∞ sinc ( t− tn Δt ) eiωt)ndω = +∞∑ n=−∞ sinc ( t− tn Δt ) 1 2π ∫ Ω −Ω f̂(ω)eiωtndω (2.36) = +∞∑ n=−∞ sinc ( t− tn Δt ) f(tn), o que finaliza a demonstração. 33 A implementação desta interpolação está no Apêndice A. A ideia utilizada está na técnica de Zero Padding, que é a inserção apropriada de zeros no domínio da frequência da imagem. O problema desta técnica, é que, ao inserir zeros no domínio de frequência, as regiões suaves da imagem reamostrada tendem a seguir a frequência das regiões de detalhes. Para ficar mais claro, observe a Figura 2.8. É possível observar que a inserção de zeros faz com que o sinal reamostrado mantenha as características de alguns detalhes do sinal original. A inserção de zeros no domínio do tempo pela transformada de Fourier, fornece a interpolação banda limitada no domínio de frequência. Da mesma forma, a inserção de zeros no domínio da frequência fornece interpolação no domínio do tempo. Este tipo de interpolação é a forma ideal para a reamostragem e representa justamente a imagem original com a convolução pela função sinc(·). Figura 2.8: Exemplo da inserção de zeros em um sinal unidimensional. Em imagens, a técnica Zero Padding introduz um efeito de “ondas”, em regiões mais homogêneas. Observe que na Figura 2.9, as regiões mais suaves da imagem possuem linhas como se fossem a propagação dos contornos das bordas. A Figura 2.9(b) ilustra os resultados da aplicação deste método na imagem (região quadrangular) relativa a Figura 2.9(a). 34 (a) Imagem original (b) Rosto Ampliado Figura 2.9: Ampliação do rosto utilizando a interpolação pela função sinc(·). A implementação da interpolação sinc está na seção A.1 do Apêncide A . Todos os outros métodos discutidos no presente capítulo não foram implementados. Para estes, foram utilizados o comando imresize do ambiente Matlab. Capítulo 3 Métodos de Interpolação Utilizando Bordas Direcionais Neste capítulo são apresentados alguns métodos mais recentes que utilizam como base a busca da presença de bordas através da avaliação de suas direções. Com o objetivo de preservar bordas, Battiato [2] propõe um método que tenta levar em conta informações sobre descontinuidades ou variações de luminosidade acentuadas. Para isso o algoritmo é baseado em alguns estágios, em que cada um verifica condições investigando a presença de bordas. Kumar [20] adapta o método adicionando pesos a cada pixel para a interpolação. Em [22], Li propõe o algoritmo interpolador com bordas direcionais baseado em Alle- bach [1]. Este método utiliza um cálculo de estimativa da covariância local entre os pixels da imagem de baixa e alta resolução como peso da média ponderada dos pixels vizinhos. Melhorias deste algoritmo foram feitas por Giachetti [10, 11] que também apresenta o método de interpolação iterativa com base em curvatura [9]. Este interpola com base em dois passos, em que utiliza uma correlação iterativa dos pixels obtidos por meio da mi- nimização de uma função que depende das segundas derivadas direcionais de intensidade da imagem. Outros algoritmos de interpolação que se baseiam no método de Li foram propostos por Tam [31, 32], que aperfeiçoa a janela utilizada para o cálculo da covariância local. Esta mudança elimina o problema de acumulação de erro preservando a suavidade e a forma das bordas. Su [30] também apresenta a interpolação a partir da triangulação de dados dependentes do nível de pixel da imagens de baixa resolução. Este algoritmo possui vantagens no tempo computacional por ser mais simples do que os métodos adaptáveis. Estes dois últimos métodos não serão abordados neste trabalho, porém são exemplos de abordagens que se fundamentam na técnica de interpolação utilizando direções orientadas. 35 36 3.1 Algoritmo Localmente-adaptativo Os métodos descritos nesta seção têm como objetivo aumentar a escala da imagem sem introduzir o efeito de suavização nas bordas, como ocorre nos métodos bilinear e bicúbico. O problema dos métodos clássicos é que não são capazes de realçar os detalhes de altas frequências sem introduzir artefatos, apesar de conseguir preservar as baixas frequências contidas na imagem original. O algoritmo de interpolação localmente-adaptativo utiliza os níveis de cinza dos pixels ao redor do novo para a avaliação da presença ou não de bordas. − Primeiro Estágio A imagem original é expandida por um fator de dois. Os valores de cinza da imagem original são distribuídos na nova imagem como mostrado na Figura 1.1 (pág. 17). − Segundo Estágio O algoritmo procura linha por linha todos os pontos em brancos que possuam em suas diagonais pixels da imagem original. Estes pontos são representados na Figura 3.1 pelo ponto X. Observe que os pontos referenciados genericamente por a, b, c e d são os pixels da imagem original. Os pontos denominados V1, V2 são os pontos que estão entre dois pixels da imagem original na direção vertical, e H1, H2, na horizontal. Figura 3.1: Representaão do pixel X a ser interpolado no segundo estágio. Fonte: Adaptado a partir de Battiato [2]. Considere que os valores de luminância dos pontos ao redor do ponto a ser interpolado são dados por a, b, c e d, respectivamente, e que os valores T1 e T2 são as tolerâncias que limitam superior e inferiormente as diferenças dos níveis de cinza dos pixels da imagem atribuídos pelo usuário. Então, segundo Battiato [2], pode-se adotar os seguintes critérios: 37 • uniformidade: |max(a, b, c, d)−min(a, b, c, d)| < T1, em que T1 é um valor de tolerância. Nesta etapa, o algoritmo verifica se a distância máxima entre os pontos é menor do que o valor T1 fornecido previamente. Se o valor dessa diferença for menor que o limiar então provavelmente a região é homogênea e a média é atribuída ao ponto X. Neste caso X = a+ b+ c+ d 4 ; • bordas na direção bc: se |a − d| > T2 e |a − d| − |b − c| > r, em que T2 e r também são valores de limites e r > 0, então os níveis de cinza dos pontos b e c estão mais próximos entre si do que dos pontos a e d. Como a e d possuem disparidade em suas intensidades, então provavelmente há a presença de bordas na direção bc e o ponto X faz parte desta borda. Portanto, é atribuído ao ponto X o valor de intensidade correspondente a b+ c 2 ; • bordas na direção ad: se |b− c| > T2 e |b− c| − |a− d| > r. Caso a condição anterior não seja satisfeita, é verificado se há presença de borda na direção ad. Para isto, é feita a diferença |b− c|. Se esta for maior que T2 e |b− c| >> |a− d|, provavelmente existe uma borda que separa os pontos a e b. Portanto X recebe o valor de a+ d 2 ; • bordas na direção H1H2: se |a − d| > T1 e |b − c| > T1, e ainda (a − d) ∗ (b − c) > 0 então H1 = a+ b 2 e H2 = c+ d 2 . Se não há existência de bordas nas diagonais é porque é provável que exista na horizontal ou na vertical. Para verificar qual dos dois casos, é verdadeiro, o algoritmo confere se |a− d| e |b− c| são maiores que T1. Se isso ocorre, significa que os pixels superiores e os inferiores estão com valores muito distantes entre si. O próximo passo é conferir se (a − d) ∗ (b − c) > 0. Caso esta multiplicação seja positiva, significa que o valor de a e b são ambos maiores (ou menores) do que os pontos d e c, respectivamente. Logo os pontos a e b possuem níveis de cinza mais próximos entre si e o mesmo acontece com os pontos c e d. Então é atribuído aos valores H1 = a+ b 2 e H2 = c+ d 2 . O ponto X é deixado indefinido. • bordas na direção V1V2: se |a − d| > T1 e |b − c| > T1, e ainda (a − d) ∗ (b − c) < 0 então V1 = a+ c 2 e V2 = b+ d 2 . Para finalizar este estágio, caso |a−d| > T1 e |b−c| > T1 contudo (a−d)∗(b−c) < 0 então os valores de a está mais próximo do ponto c do que de b, e por conseguinte, b está mais próximo de d do que do ponto a. Desta maneira é atribuído a V1 o valor de a+ c 2 ; e, de V2, o valor de b+ d 2 . Nesta etapa X também é deixado indefinido. 38 Observe que após este estágio ainda ficam alguns pontos Xs, H1, H2, V1 e V2 sem valores atribuídos. − Terceiro Estágio O algoritmo retorna a fazer a varredura de todas as linha da imagem procurando pelos pontos que não foram interpolados nos estágios anteriores. Estes são apresentados pelo ponto P na Figura 3.2. Para o próximo passo, considere que as letras a e b representam os pixels da imagem original e os pontos X1 e X2 são os valores de cinza provenientes do estágio anterior. (a) Pixel P = Y2i,2j+1 (b) Pixel P = Y2i+1,2j Figura 3.2: Representação da interpolação dos pontos do tipo Y2i,2j+1 e Y2i+1,2j no terceiro estágio.. Fonte: Adaptado a partir de Battiato [2]. • X1 e X2 são pontos indefinidos; o algoritmo confere se |a− b| < T1, se assim for, então o valor de P será P = a+ b 2 . Caso contrário, P é deixado indefinido; • X1 e X2 são pontos já definidos; verifica a existência de bordas na vertical ou na horizontal. Desta maneira, os seguintes itens são averiguados: (i) (Presença de borda na direção X1X2): Quando |a−b| > T2 e |a−b| >> |x1−x2|. Neste caso P = x1 + x2 2 ; Quando isto acontece, pelo fato de |a− b| > T2, provavelmente há uma borda que separa os valores dos pontos a e b. A distância ab é muito maior que a distância X1X2, ou seja, o ponto P deve pertencer a borda que passa por X1X2. Desta forma, P = x1 + x2 2 ; (ii) (Presença de borda na direção ab): Quando |x1−x2| > T2 e |x1−x2| >> |a−b|. Quando |x1 − x2| > T2 e |x1 − x2| >> |a− b| ocorre justamente o contrário, e neste caso tem-se P = a+ b 2 ; 39 • Nenhuma das opções acima: Se nenhum dessas condições forem satisfeitas o ponto P é deixado indefinido e o algoritmo vai para o próximo e último estágio. − Quarto Estágio Por fim, para a interpolação dos pontos deixados em branco, o método cria um vetor que possua todos os pixels vizinhos que tenham valores definidos pelos estágios anteriores e aplica a mediana neste vetor. Antes dos cálculos, contudo, todos os pixels recebem pesos adequados segundo seu valor de nível de cinza. 3.2 Adaptação do Algoritmo Baseado em Estágios Este método possui três estágios, em que o primeiro consiste em ampliar a imagem em duas vezes o seu tamanho original. A implementação deste algoritmo está na seção A.2 no Apêncide A. O segundo e terceiro estágios serão descritos a seguir. − O segundo Estágio O método verifica algumas restrições para atribuir aos novos pontos interpolados um valor que depende de seus vizinhos (pontos originais da imagem original). Para encontrar o valor destes pontos, é estipulado primeiramente um peso para cada pixel novo. Este peso será calculado de acordo com a Equação 3.1. Peso_do_Pixel = |V alor_do_Pixel − ωt| (3.1) Como as imagens utilizadas nos testes possuem valores de níveis de cinza entre 0 e 255 tons de cinza distintos, então é escolhido a média destes valores, ou seja ωt = 128. Através da Equação 3.1 todos os pixels a serem interpolados utilizam pesos que variam com a intensidade dos originais. Para a descrição do método observe a Figura 3.3. Figura 3.3: Ilustração dos pontos no segundo estágio. Fonte: Adaptado a partir de Kumar [20]. 40 Na Figura 3.3 os pontos a, b, c e d representam os pixels da imagem original e X, o ponto a ser interpolado neste estágio. As distâncias Zκ, com κ ∈ {1, 2, 3, 4, 5, 6}, representarão as diferenças em módulo das intensidades dos pixels como se segue: Z1 = |a− d| Z2 = |b− c| Z3 = |a− b| (3.2) Z4 = |c− d| Z5 = |a− c| Z6 = |b− d| • Condição 1 : Verifica se todos os pontos são uniformes. Para tal o algoritmo depende de um fator K que será o limiar utilizado para definir se dois pontos estão muito distantes entre si ou não. No trabalho foi utilizado K = 10. Para conferir se o ponto X está em uma região homogênea, basta considerar a média dos níveis de intensidade de cada pixel até o centro dado por: Zuniforme = |M − a|+ |M − b|+ |M − c|+ |M − d| 4 (3.3) em que M = (a + b + c + d)/4 e verificar se Zuniforme < K. Se assim for, então X = M , caso contrário o algoritmo vai para a próxima condição. • Condição 2 : Verifica se Z1 = 0 e Z2 = 0 ou se Z1 e Z2 são menores que as distâncias horizontais e verticais. Se assim for, então: X = (a× |ωt − a|+ b× |ωt − b|) / (|ωt − a|+ |ωt − b|) (3.4) • Condição 3 : Nesta etapa, o algoritmo verifica se tem a existência de borda na diagonal ad. Se houver nesta diagonal, a diferença entre estes pontos serão menores que as outras distâncias Zks. Logo o algoritmo checa: - se Z1 == 0 ou Z1 < min {Z2, Z3, Z4, Z5, Z6}. Se isso ocorrer, considere: { Bα = |b− a|+ |b− d| Cα = |c− a|+ |c− d| (3.5) Então existem duas possibilidades: 41 (i) Se Bα < Cα então existe uma borda passando por ad e o ponto b pertence a esta borda, como ilustrado na Figura 3.4 (a): (a) Borda em ad passando por b. (b) Borda em ad passando por c. Figura 3.4: Exemplificação da terceira condição. Os pixels em preto representam a região de uma borda. Fonte: Adaptado a partir de Kumar [20]. Então; X = (a× |ωt − a|+ d× |ωt − d|+ b× |ωt − b|) (|ωt − a|+ |ωt − d|+ |ωt − b|) (3.6) (ii) Se Cα < Bα então existe uma borda passando por ad e o ponto c pertence a esta borda, como ilustrado na Figura 3.4 (b). Neste caso; X = (a× |ωt − a|+ d× |ωt − d|+ c× |ωt − c|) (|ωt − a|+ |ωt − d|+ |ωt − c|) (3.7) • Condição 4 : o algoritmo confere se há a presença de borda na direção bc. Para isto, basta averiguar se Z2 = 0 ou Z2 < min {Z1, Z3, Z4, Z5, Z6}. Se isso acontecer, considere: { Aα = |a− b|+ |a− c| Dα = |d− b|+ |d− c| (3.8) Então; (i) Se Aα < Dα então existe uma borda passando por bc e o ponto a pertence a esta borda (Figura 3.5 (a)) : 42 (a) Borda em bc passando por a. (b) Borda em bc passando por d. Figura 3.5: Exemplificação da quarta condição em que os pixels em preto representam a região de uma borda. Fonte: Adaptado a partir de Kumar [20]. Então tem-se: X = (b× |ωt − b|+ c× |ωt − c|+ a× |ωt − a|) (|ωt − a|+ |ωt − c|+ |ωt − b|) (3.9) (ii) Se Dα < Aα então existe uma borda passando por bc e o ponto d pertence a esta borda, como ilustrado na Figura 3.5 (b), e portanto, X = (b× |ωt − b|+ c× |ωt − c|+ d× |ωt − d|) (|ωt − b|+ |ωt − c|+ |ωt − d|) (3.10) • Condição 5 : Constata se todas as distâncias são maiores do que as horizontais. Em outras palavras, se Z3 = 0 e Z4 = 0 ou se Z3 e Z4 são menores que as distâncias diagonais e verticais. Se assim for, então: X = (a× |ωt − a|+ c× |ωt − c|) (|ωt − a|+ |ωt − c|) (3.11) • Condição 6 : Se a borda está na direção ab a intensidade de Z3 é mínima possível. Logo Z3 = 0 ou Z3 < min {Z1, Z2, Z4, Z5, Z6}. Então X receberá o valor da média ponderada entre os valores de ab e um valor intermediário entre c e d. Este valor intermediário será a média entre estes pontos e é denominada por H2. Observe a Figura 3.6 (a), em que H2 = c+ d 2 . Neste caso X = a× |ωt − a|+ b× |ωt − b|+H2 × |ωt −H2| |ωt − a|+ |ωt − b|+ |ωt −H2| (3.12) 43 (a) Borda em ab. (b) Borda em cd. Figura 3.6: (a) Ilustração da condição 6; (b) Ilustração da condição 7. Fonte: Adaptado a partir de Kumar [20]. • Condição 7 : Se a borda está na direção cd, o mesmo procedimento anterior é rea- lizado. Desta maneira, se Z4 = 0 ou é a menor distância, então dado H1 = a+ b 2 (Figura 3.6 (b)), o valor de X é dado pela Expressão 3.13: X = c× |ωt − c|+ d× |ωt − d|+H1 × |ωt −H1| |ωt − c|+ |ωt − d|+ |ωt −H1| (3.13) • Condição 8 : Assim como nas direções horizontais, o algoritmo verifica a existência de bordas nas verticais. - Se (Z5 = 0 e Z6 = 0) ou (Z5 < min {Z1, Z2, Z3, Z4} e Z6 < min {Z1, Z2, Z3, Z4}). - Então X = a× |ωt − a|+ b× |ωt − b| |ωt − a|+ |ωt − b| (3.14) • Condição 9 : Para verificar se há borda na direção ac basta conferir se Z5 possui a menor distância que os outros. Caso isso ocorra, então: X = a× |ωt − a|+ c× |ωt − c|+ V2 × |ωt − V1| |ωt − a|+ |ωt − c|+ |ωt − V2| (3.15) em que V2 = b+ d 2 (Figura 3.7 (a)). 44 (a) Borda em ac. (b) Borda em bd. Figura 3.7: (a) Ilustração da condição 9; (b) Ilustração da condição 10. Fonte: Adaptado a partir de Kumar [20]. Condição 10 : Por fim, o algoritmo verifica borda no lado bd. Se Z6 = 0 ou Z6 < min {Z1, Z2, Z3, Z4, Z5}. Então considere V1 = a+ c 2 , logo: X = b× |ωt − b|+ d× |ωt − d|+ V1 × |ωt − V1| |ωt − b|+ |ωt − d|+ |ωt − V1| (3.16) conforme a Figura 3.7 (b). − O Terceiro Estágio A última etapa deste método consiste em retornar ao começo e verificar os pixels deixados indefinidos pelos estágios anteriores. O calculo destes pontos é como descrito no Estágio 2 considerando os pixels ao seu redor {a, b,X1, X2}, como mostrado na Figura 3.8. Observe que os pontos a e b são pontos da imagem original e X1 e X2 são pontos interpolados nos estágios anteriores. Figura 3.8: Ilustração do terceiro estágio do método. Fonte: Adaptado a partir de Kumar [20]. 45 Observe o resultado obtido com a aplicação do método localmente adaptativo por Kumar [20] na Figura 3.9. (a) Imagem original (b) Rosto Ampliado Figura 3.9: Aplicação do método adaptativo em imagem. 3.3 O método NEDI Proposto por Li [22], o método New Edge-Direction Interpolation (NEDI), tem como metodologia interpolar cada ponto da imagem de alta resolução (Y2i,2j) utilizando uma estimativa da covariância da imagem de baixa resolução (Xi,j). O zoom é realizado no fator de dois, ou seja, Y2i,2j = Xi,j. Para isto, o algoritmo do método realiza o seguinte cálculo nos novos pixels: Ŷ2i+1,2j+1 = 1∑ k=0 1∑ l=0 α2k+lY2(i+k),2(j+l) (3.17) em que Ŷ2i+1,2j+1 são aqueles que possuem pixels originais nas diagonais. Na Figura 3.10, é representado um destes pixels pelo ponto cinza. O coeficiente α2k+l é o peso estimado conforme a Equação 3.18. α = R−1 yy ry (3.18) Na Equação 3.18, tem-se o vetor α = [α0, α1, α2, α3], Ryy = [Rkl] com l, k ∈ {0, 3} e ry = [r0, r1, r2, r3]. Os termos [α0, α1, α2, α3], são os coeficientes a serem calculados utilizando os quatro pixels originais que estão nas diagonais. O termo Rkl é a covariância- 46 Figura 3.10: Representação da imagem expandida. Os pontos pretos são os pixels originais e o ponto cinza é o ponto interpolado Ŷ2i+1,2j+1. Fonte: Adaptado a partir de Li [22]. local entre dois pontos originais vizinhos do ponto interpolado. Já o termo ry, por sua vez, é o cálculo da covariância-local entre o ponto interpolado e os vizinhos mais próximos da imagem de baixa resolução. Por exemplo, R03 = E[Y2i,2jY2i,2j+2] e r0 = E[Y2i,2jY2i+1,2j+1], em que a função E[XY ] é a esperança entre duas variáveis X e Y . Observe a Figura 3.11. Figura 3.11: Representação do cálculo dos termos Rkl, R̂kl, rk e r̂k. Os pontos pretos são os pixels originais enquanto o ponto cinza é o pixel que será interpolado pelo método. Fonte: Adaptado a partir de Li [22]. 47 Observe que a covariância r0 circulado na Figura 3.11 precisa do valor Y2i+1,2j+1 para ser calculada. Contudo, não é conhecido o valor da intensidade deste pixel e portanto é necessário estimar o valor de rk. Para isto, ao invés de utilizar rk, é calculado o valor de r̂k com os valores dos pixels da imagem original. Desta maneira, o ponto Y2i+1,2j+1 é interpolado utilizando-se r̂k e R̂kl no calculo do coeficiente α. Segundo Li [22], R̂k,l pode ser calculado da seguinte maneira: R̂kl = 1 M2 CTC (3.19) e, analogamente, r̂k é calculado da seguinte forma: r̂k = 1 M2 CT y (3.20) em que y = [y1, . . . , yk, . . . , yM2 ] é o vetor que contém todos os pixels da janela local. A matriz C contém em cada linha o valor dos quatro vizinhos da diagonal de cada yk ∈ y. Ou seja, sendo y = [yh1,k1 , yh2,k2 , . . . , yhN ,kN ] T , a matriz C é dada por: C = ⎛ ⎜⎜⎜⎜⎝ Ih1−1,k1−1 Ih1−1,k1+1 Ih1+1,k1−1 Ih1+1,k1+1 Ih2−1,k2−1 Ih2−1,k2+1 Ih2+1,k2−1 Ih2+1,k2+1 ... ... . . . ... IhN−1,kN−1 IhN−1,kN+1 IhN+1,kN−1 IhN+1,kN+1 ⎞ ⎟⎟⎟⎟⎠ (3.21) A Equação 3.18 pode então ser reescrita da seguinte maneira: α = (CTC)−1(CT y) (3.22) Todos os coeficientes αis podem ser resolvidos através do método de mínimos quadra- dos. Desta forma, o valor Y2i+1,2j+1 é interpolado com cada valor de α da Equação 3.22 substituída na Equação 3.17. O método NEDI aplica a interpolação adaptativa baseada na covariância apenas nas áreas ao redor de bordas, e em regiões homogêneas, aplica a interpolação bilinear. Para isto, o algoritmo considera que o pixel está próximo de borda se o número que corresponde à diferença entre sua variância local estimada com os pixels da vizinhança for muito grande. Ou seja, se a variância local entre um pixel e os qua- tro pixels vizinhos forem menor que um limiar estipulado (threshold), então o algoritmo aplica a interpolação bilinear. Nos experimentos desenvolvidos ao longo deste trabalho foi utilizado threshold th = 8. Após o cálculo de todos os pontos centrais Y2i+1,2j+1, o algoritmo interpola os pontos do tipo Y2i+1,2j que são representados pelos círculos com listras na vertical e os Y2i,2j+1, representados pelos círculos com listras na horizontal (Figura 3.12). 48 Figura 3.12: Representação dos pixels que ainda não foram interpolados (circulos listrados). Os círculos pretos representam os pixels originais enquanto os cinzas representam os pixels interpolados na etapa anterior. Para preencher tanto os pontos Y2i,2j+1 quanto os Y2i+1,2j, o algoritmo faz uma rotação de 45o e aplica a Equação 3.17 nestes pixels, conforme ilustra a Figura 3.13. Figura 3.13: Segundo passo do algoritmo NEDI. Ilustração da interpolação do pixel Y2i+1,2j através da estimativa de α utilizando os termos R̂kl e r̂k. Fonte: Adaptado a partir de Li [22]. Na Figura 3.13 está representado a interpolação do ponto Y2i+1,2j. Observe que nesta posição os pontos originais (pontos pretos) ficam na posição vertical e os estimados no primeiro passo (pontos cinzas) estão na posição horizontal. A estimativa dos termos Rkl e rk são calculados da mesma maneira. Na Figura 3.14(b) pode ser observada a aplicação do método na região indicada na Figura 3.14(a). 49 (a) Imagem original. (b) Rosto ampliado. Figura 3.14: Parte da imagem ampliada pelo método NEDI. 3.4 Método iNEDI O algoritmo NEDI tem como resultado a preservação da forma contínua das bordas, contudo, pode introduzir artefatos indesejáveis na imagem resultante. Giachetti [11] pro- põe uma modificação no método e apresenta o improved New Edge Directed Interpolation (iNEDI). Pode-se listar as seguintes limitações do método NEDI: - A suposição da covariância estacionária local é violada em alguns casos; - Introduz artefatos como jaggies e distorções em regiões de altas frequências; - O sistema resultante dado pela Equação 3.21 é frequentemente mal condicionado. O uso de largas janelas melhora o condicionamento da matriz CTC, porém, isto suaviza a imagem, dando a aparência de imagem borrada; - Valores de pixels interpolados trocam com o brilho global; Para resolver este problemas, o algoritmo iNEDI apresenta as seguintes mudanças: - A primeira modificação está no tamanho da janela utilizada por NEDI. De acordo com Giachetti [11], utilizar a janela quadrada pode introduzir artefatos direcionais e de qualquer modo faz com que o algoritmo seja não isotrópico. Em análise de imagens um operador isotrópico é aquele que responde de forma igual a variações de intensidade sem qualquer preferência por uma orientação. Os artefatos podem ser reduzidos ao calcular os parâmetros em janelas aproximadamente circulares, ou seja, janelas que variam seu formato de acordo com a posição do pixel interpolado. 50 Figura 3.15: Representação da janela circular utilizada no método iNEDI. Fonte: Imagem retirada e adaptada a partir de Giachetti [11]. A mudança para uma janela mais próxima possível de um círculo reduziria esses efeitos indesejáveis; - O problema do mal condicionamento é que a matriz C pode ter uma linha ou coluna como combinação linear das outras. Neste caso o determinante da matriz C é igual a zero e sua solução dos mínimos quadrados não é única. Em outras palavras, existem vários α∗s que minimizam o termo ‖C α− y‖2. Para resolver este problema, considere o valor de I4 = (I2i,2j, I2i,2j+2, I2i+2,2j, I2i+2,2j+2) como sendo I4 = I0+ Ierr, com Ierr o erro. Desta maneira, o valor I2i+1,2j+1 interpolado é calculado pela Equação 3.23; I2i+1,2j+1 = α∗ · I4 (3.23) e o seu erro quadrático é ( α∗ · Ierr)2. Desta maneira, o método escolhe como única, a menor norma de solução para α∗. Esta modificação impede que a matriz C apresente o problema oriundo pela aplicação do método NEDI; - Os valores dos pixels interpolados no método NEDI sofrem alterações no brilho. Isto ocorre porque eles não dependem somente das diferenças entre os valores dos vizinhos mas também do seus valores absolutos. Para resolver este problema, é subtraído de cada valor da matriz C a média da intensidade dos quatros vizinhos dos valores dos termos pertencente a C. Isto é: 51 C ′ = ⎛ ⎜⎜⎜⎜⎝ Ih1−1,k1−1 − Īh1,k1 Ih1−1,k1+1 − Īh1,k1 · · · · · · Ih2−1,k2−1 − Īh2,k2 Ih2−1,k2+1 − Īh2,k2 · · · · · · ... ... . . . ... IhN−1,kN−1 − ĪhN ,kN IhN−1,kN+1 − ĪhN ,kN · · · · · · ⎞ ⎟⎟⎟⎟⎠ (3.24) e y ′ dado por: y ′ = (Ih1,k1 − Īh1,k1 , Ih2,k2 − Īh2,k2 , . . . , IhN ,kN − ĪhN ,kN ) T (3.25) em que Īh,k = (Ih1−1,k1−1, Ih1−1,k1+1, Ih1+1,k1−1, Ih1+1,k1+1) 4 . Desta forma, I(i, j) é obtido assim: I(i, j) = α′ · (Ii−1,j−1, Ii−1,j+1, Ii+1,j−1, Ii+1,j+1) + Īi,j (3.26) - Ao invés de utilizar a interpolação bilinear, que suaviza demais as regiões homogêneas, o método iNEDI utiliza a interpolação bicúbica, o que lhe dá regiões suaves mais nítidas; - Um outro problema do método NEDI é garantir que os pontos da janela utilizada na estimação do pixel interpolado estejam totalmente inseridos na mesma borda. O fato de pixels de regiões distintas estarem na mesma janela, pode ocasionar uma interpolação equivocada e introduzir artefatos indesejáveis nas bordas. Para solucio- nar este problema, o método tenta excluir todas as áreas uniformes que não estejam ligadas à borda para a interpolação (Figura 3.16). Figura 3.16: Ilustração da transição de regiões homogêneas separadas por uma borda. A máscara circular contêm pixels da borda e de ambas as regiões. Imagem retirada e adaptada a partir de Giachetti [11]. 52 Esta estratégia aumenta as chances de se ter uma boa interpolação, porém ainda há a possibilidade de ocorrer valores indesejáveis de altas frequências nesta etapa. Por essa razão é colocado mais um limiar, substituindo qualquer valor interpolado fora da faixa de intensidade dos quatro vizinhos com o mais próximo dos valores que delimitam esse intervalo. Os resultados da aplicação do método na região indicada na Figura 3.17(a) é observado na Figura 3.17(b). (a) Imagem original. (b) Rosto ampliado. Figura 3.17: Parte da imagem ampliada pelo método iNEDI. 3.5 Interpolação Iterativa com Base em Curvatura Proposto por Giachetti [9, 11], o novo método tem como base um preenchimento em duas etapas e uma correção iterativa dos pixels interpolados obtidos através da minimi- zação de uma função objetiva, dependendo das derivadas direcionais de segunda ordem da intensidade da imagem. A interpolação iterativa com base em curvatura (do inglês, iterative curvature-based interpolation, ICBI) utiliza restrições para derivar as funções re- lacionadas com o método NEDI, contudo é computacionalmente mais vantajosa por sua velocidade. O método ICBI amplia a imagem duas vezes o tamanho original. Para o preenchi- mento dos novos pixels, o primeiro passo é calcular as aproximações da segunda ordem de derivadas Ĩ11(2i+1, 2j+1) e Ĩ22(2i+1, 2j+1), dada respectivamente pela Equação 3.27a 53 e Equação 3.27b, em que I(i, j) representa o valor de intensidade da imagem na posição (i, j). Ĩ11(2i+ 1, 2j + 1) = I(2i− 2, 2j + 2) + I(2i, 2j) + I(2i+ 2, 2j − 2)− 3I(2i, 2j + 2) −3I(2i+ 2, 2j) + I(2i, 2j + 4) + I(2i+ 2, 2j + 2) + I(2i+ 4, 2j) (3.27a) Ĩ22(2i+ 1, 2j + 1) = I(2i, 2j − 2) + I(2i+ 2, 2j) + I(2i+ 4, 2j + 2)− 3I(2i+ 2, 2j + 2) −3I(2i, 2j) + I(2i− 2, 2j) + I(2i, 2j + 2) + I(2i+ 2, 2j + 4) (3.27b) Observe na Figura 3.18(a) e (b) os pixels utilizados para o cálculo das Equações 3.27a e 3.27b, respectivamente. (a) Interpolação pela Eq. 3.27a (b) Interpolação pela Eq. 3.27b Figura 3.18: Ilustração dos pixels utilizados para o calculo de Ĩ11 e Ĩ22, respectivamente. Fonte: Imagem retirada e adaptada a partir de Giachetti [9]. Depois de calculados os termos Ĩ11(2i+ 1, 2j + 1) e Ĩ22(2i+ 1, 2j + 1), é atribuído ao ponto I(2i + 1, 2j + 1) o valor da média dos dois vizinhos que possui a menor derivada direcional, conforme a Equação 3.28. ⎧⎪⎪⎪⎨ ⎪⎪⎪⎩ I(2i, 2j) + I(2i+ 2, 2j + 2) 2 se Ĩ11(2i+ 1, 2j + 1) < Ĩ22(2i+ 1, 2j + 1) I(2i+ 2, 2j) + I(2i, 2j + 2) 2 caso contrário (3.28) Depois deste processo, o método ainda calcula o valor de três componentes para ame- nizar artefatos como blurring ou jaggies que a interpolação pela Equação 3.28 possa ocasionar. O primeiro componente é o termo que verifica a curvatura de continuidade (Uc). O primeiro passo então é calcular Uc, dada pela Equação 3.29. 54 Uc(2i+ 1, 2j + 1) = ω1(|(I11(2i+ 1, 2j + 1)− I11(2i+ 2, 2j + 2))| + |(I22(2i+ 1, 2j + 1)− I22(2i+ 2, 2j + 2))|) +ω2(|(I11(2i+ 1, 2j + 1)− I11(2i+ 2, 2j))| + |(I22(2i+ 1, 2j + 1)− I22(2i+ 2, 2j))|) +ω3(|(I11(2i+ 1, 2j + 1)− I11(2i, 2j + 2))| + |(I22(2i+ 1, 2j + 1)− I22(2i, 2j + 2))|) +ω4(|(I11(2i+ 1, 2j + 1)− I11(2i, 2j))| + |(I22(2i+ 1, 2j + 1)− I22(2i, 2j))|) (3.29) em que I11 e I22 são dadas pelas expressões 3.30 e 3.31, respectivamente: I11(2i+ 1, 2j + 1) = I(2i− 1, 2j − 1) + I(2i+ 3, 2j + 3)− 2I(2i+ 1, 2j + 1) (3.30) I22(2i+ 1, 2j + 1) = I(2i− 1, 2j + 3) + I(2i+ 3, 2j − 1)− 2I(2i+ 1, 2j + 1) (3.31) e os pesos ωi pertencem ao conjunto {0, 1}, em que, ωi = 1 se a primeira derivada é correspondente com a derivada direcional e zero caso contrário. O termo Uc diminui a suavidade que possa ocorrer na interpolação dada pela Equação 3.28. O segundo termo é chamado de curvatura de realce, e é dada pela Equação 3.32. Ue(2i+ 1, 2j + 1) = −(|I11(2i+ 1, 2j + 1)|+ |I22(2i+ 1, 2j + 1)|) (3.32) que resulta em uma imagem mais nítida. O último termo (Equação 3.33) é derivado de Morse [24], que apresenta um método para melhorar a aparência da imagem em consideração a suavidade dos contornos. Ui(2i+ 1, 2j + 1) = f(I)|2i+1,2j+1I(2i+ 1, 2j + 1) (3.33) em que f(I) é dada pela Equação 3.34: f(I) = −I1(i, j) 2I22(i, j)− 2I1(i, j)I2(i, j)I12(i, j) + I11(i, j) 2I2(i, j) I1(i, j)2 + I2(i, j)2 (3.34) em que I11 e I22 estão definidos pelas Equações 3.30 e 3.31, respectivamente, e os termos I12, I1 e I2 são dados por: I12(2i+ 1, 2j + 1) = (3.35) 1 2 (I(2i+ 1, 2j − 1) +I(2i+ 1, 2j + 3)− I(2i− 1, 2j + 1) −I(2i+ 3, 2j + 1)) I1(2i+ 1, 2j + 1) = 1 2 (I(2i, 2j)− I(2i+ 2, 2j + 2)) (3.36) I2(2i+ 1, 2j + 1) = 1 2 (I(2i, 2j + 2)− I(2i+ 2, 2j)) (3.37) 55 Após ter calculado todos os termos, o algoritmo os reúne pela Equação 3.38: U(2i+ 1, 2j + 1) = α · Uc(2i+ 1, 2j + 1) +β · Ue(2i+ 1, 2j + 1) . . . +γ · Ui(2i+ 1, 2j + 1) (3.38) em que α, β, γ são parâmetros escolhidos pelo usuário. Para finalizar, é computado U(2i + 1, 2j + 1) e, a este é somado ou subtraído um pequeno valor δ para cada pixel I2i+1,2j+1. A menor intensidade destes é atribuído ao pixel interpolado. Em seguida, todo este processo é repetido para os pontos do tipo I2i+1,2j e I2i,2j+1. Para isto, são utilizado os pixels da imagem original que estão na vertical e horizontal, como demonstrado na Figura 3.19 (b). (a) Primeira etapa (b) Segunda Etapa Figura 3.19: (a) Aplicação do método utilizando os quatro vizinhos da diagonal; (b) Aplicação do método utilizando os quatro vizinhos da vertical ou horizontal. Fonte: Imagem retirada e adaptada a partir de Giachetti [9]. A Figura 3.20(b) ilustra os resultados da aplicação deste método na imagem (região quadrangular) relativa a Figura 3.20(a). 56 (a) Imagem original (b) Rosto Ampliado Figura 3.20: Aplicação do método ICBI na região do rosto da Lena. A implementação do método NEDI encontra-se em [22], do método iNEDI está em [11] e do icbi em [9]. Capítulo 4 Outras abordagens: Wavelets e Filtro Bilateral Neste capítulo, são incluídos duas outras abordagens, uma baseada em wavelets e outro no filtro bilateral. A primeira seção apresenta um resumo sobre a teoria das transforma- das wavelets e sua aplicabilidade em super-resolução em processamento de imagens. Na segunda seção está um dos exemplos de método de interpolação proposto por Pagamisse [26], que utiliza o método adaptativo dado por Battiato [2] juntamente com wavelets não redundantes com o intuito de ampliar a imagem, levando-se em conta a super-resolução. Na terceira e última seção, é apresentado o algoritmo proposto por Han [14], que utiliza um novo método de interpolação baseado no filtro bilateral para a obtenção de imagens de altas resoluções. 4.1 Transformada Wavelets Segundo Pedrini [28], uma transformada em processamento de imagens é o processo que resulta em uma alteração da representação inicial da imagem. Desta maneira é mais fácil investigar informações específicas e assim fazer uma análise mais acurada dos dados. Por exemplo, as transformadas de Fourier são alterações da função original em funções senoides complexas. Já a transformada discreta do cosseno são baseadas em cossenoides e são muito exploradas para aplicações em áreas de filtragem e compressão. As transformadas wavelets por sua vez, são funções que permitem descrever as distintas frequências contidas na imagem. Diferente de Fourier, podem fornecer informações sobre a frequência e também sobre a imagem. A função wavelet usualmente denotada por ψ deve satisfazer a duas condições, descritas nas Equações 4.1 e 4.2. 1) Condição de admissibilidade: 57 58 cψ = 2π ∫ ∞ −∞ |ψ̂(ξ)|2 |ξ| dξ <∞ (4.1) que garante a invertibilidade da transformada wavelet. Em muitos casos, é o mesmo que exigir que a integral dessa função seja zero. 2) A função deve ser unitária, ou seja: ∫ ∞ −∞ |ψ(t)|2dt = 1 (4.2) No caso discreto, pode-se decompor um sinal unidimensional da seguinte maneira: f(t) = ∑ k c1,kφ1,k(t) + ∑ k d1,kψ1,k(t) (4.3) A Equação 4.3 é a decomposição da função f(t) na primeira escala, em que φ1,k(t) é o filtro passa-baixa e ψ1,k(t) é o filtro passa-alta. A segunda escala é dada pela Equação 4.4; c1,k = ∑ k c2,kφ2,k(t) + ∑ k d2,kψ2,k(t) (4.4) e assim sucessivamente. 4.1.1 Transformada Wavelets Decimadas Duas operações importantes para o estudo da transformadas wavelets são a decimação (downsampling) e a interpolação (upsampling). No processo de decimação, a imagem é decomposta em quatro sub-camadas, em que, cada uma possui distintas informações da imagem original. Pelo fato da imagem ser um sinal bidimensional, é necessário uma função de escala bidimensional ϕ(x, y) e três wavelets bidimensionais ψH(x, y), ψV (x, y) e ψD(x, y). Desta maneira, tem-se quatro produtos, em que a primeira é a função de escala separável: ϕ(x, y) = ϕ(x)ϕ(y) (4.5) e as wavelets separáveis: ψH(x, y) = ψ(x)ϕ(y) (4.6) ψV (x, y) = ϕ(x)ψ(y) (4.7) ψD(x, y) = ψ(x)ψ(y) (4.8) Essas wavelets medem as variações da função bidimensional. Em outras palavras, cada termo avalia as variações direcionais da imagem, ou seja, ψH(x, y) avalia variações nas 59 colunas, o que significa que possuem informações das bordas horizontais. Já ψV (x, y) avalia ao longo das linhas, o que fornece informações das bordas verticais e ψD(x, y) das diagonais. Na Figura 4.1 está representado a decomposição das Equações 4.5 a 4.8. Ao aplicar a função wavelet, tem-se quatro sub-bandas, em que Iϕ é a banda suavizada da imagem, ou seja, possuem apenas as informações de baixa frequência que correspondem a regiões suaves e homogêneas. Já os detalhes de bordas, por serem altas frequências, estão conti- das nas sub-bandas de detalhes em que IHψ (x, y) estão as bordas horizontais, IVψ (x, y) as verticais e IDψ (x, y) detalhes das diagonais. Figura 4.1: Esquema do processo de decimação em transformada wavelets. Fonte: Adaptado a partir de Castilho [5]. Observe que a cada nível houve um processo de decimação, ou seja, a informação do nível anterior foi dividida pelo fator de dois, e no segundo nível há mais divisão. O processo de decomposição citado acima está esquematizado na Figura 4.2 e Figura 4.3: Figura 4.2: Esquema do processo de análise da imagem. Fonte: Adaptado a partir de Castilho [5]. 60 Figura 4.3: Processo de síntese para a composição da imagem. Fonte: Adaptado a partir de Castilho [5]. 4.1.2 Wavelets Diádica Assim como no processo de decimação, a transformada wavelets diádica também se- para as informações em suave e em detalhes. Desenvolvida por Mallat [23], a imagem de entrada é separada em três sub-bandas; a camada suave, a de informações nas bordas horizontais e nas bordas verticais. A diferença desta transformada é que não há a deci- mação, ou seja, não há divisão pelo fator de dois. Isto significa que o tamanho de cada sub-banda em cada etapa é o mesmo do tamanho do sinal inicial. Por este motivo, esta transformada também é chamada de transformada wavelets redundantes. Considere o filtro passa-baixa H(n) e o filtro passa-alta G(n) ambos correspondentes a uma função suavizante ϕ(t) e à wavelet mãe ψ(t), respectivamente. Seja f o sinal (no caso a imagem) e os filtros Hp, Gp, obtidos inserindo 2p− 1 zeros em cada coeficiente dos filtro H e G. A decomposição diádica discreta da imagem é dada por: W 1 2j+1f = S2jf ∗ (Gj · I) W 2 2j+1f = S2jf ∗ (I ·Gj) S1 2j+1f = S2jf ∗ (Hj ·Hj) em que I é o filtro de Dirac e a operação ∗ é a convolução. Note que nesta composição, os detalhes são separados e analisados em apenas duas camadas: W 1 k , em que possui todas as informações das bordas ao longo da direção horizontal e W 2 k , que possui todas as informações na vertical. Observe a Figura 4.4, em que cada nova camada possuirá a dimensão da anterior. 61 Figura 4.4: Esquema do processo de transformada wavelet diádica. Fonte: Adaptado a partir de Pagamisse [26]. 4.2 Método Adaptativo de Super-resolução de Frame Único com Wavelets Redundantes Apesar dos resultados obtidos pelas técnicas de interpolação utilizando vários frames, nem sempre é possível obter várias imagens de baixa resolução para se obter a de melhor qualidade. Por isso a super-resolução de frame único também é um tópico muito estudado. Em seu trabalho, Pagamisse [26] utiliza as wavelets redundantes como ferramentas para a ampliação da imagem de entrada, juntamente com cálculos da variância local para determinar os valores dos pixels interpolados (Ward [37]). Alguns pontos são obtidos baseados no cálculo de bordas locais em regiões 2x2 para obter informações adicionais da imagem. A seguir serão apresentados detalhes do método. 4.2.1 Descrição do Algoritmo O método utiliza um frame único para sintetizar uma imagem em uma grade mais fina do que a original reduzindo a perda de informação de detalhes presentes. Para tal utiliza-se a expansão wavelet para realizar a interpolação juntamente com o cálculo de pixels, simulando um deslocamento sub-pixel na diagonal da imagem. A transformada wavelets utilizada foi desenvolvida por Mallat [23] e é conhecida como transformada wavelet diádica discreta, em que, segue o processo de níveis sem a decimação. Ou seja, a cada nível a quantidade de informação da original é mantida em cada camada, obtendo assim uma redundância de informações. Este algoritmo utiliza também o método adaptativo proposto por Battiato [2] para a interpolação dos pixels centrais da forma I2i+1,2j+1. Pagamisse propõe pequenas alterações no método a fim de não precisar realizar o “rebinning”, que é o processo de escanear a imagem depois de uma etapa procurando os pontos ainda não interpolados para a próxima etapa. Após este processo, é utilizada a ideia baseada em [37] para a interpolação dos pontos ainda sem preenchimento. Por fim é aplicado a transformada wavelet diádica discreta 62 inversa obtendo a imagem ampliada no fator de 2. A seguir cada passo será explicado com mais detalhes. 4.2.2 Super-Resolução em frame único A primeira etapa para o aumento da imagem é a sua expansão, assim como nos métodos anteriores. Desta maneira, o primeiro passo do algoritmo é interpolar os pontos centrais, representados na Figura 4.5 por X, utilizando os quatros pontos vizinhos a, b, c e d. Figura 4.5: Representação da interpolação do ponto X utilizando os vizinhos das diagonais. Os pixels a, b, c e d pertence a imagem original. Para esta interpolação Pagamisse [26] utilizou o método adaptativo segundo Battiato [2], contudo, fez pequenas alterações. Para o cálculo de X são verificadas as seguintes etapas: • (uniformidade): |max(a, b, c, d) − min(a, b, c, d)| < T1, em que T1 é um valor de tolerância (um valor limite). Neste caso X = a+ b+ c+ d 4 ; • (bordas na direção SW-NE ): se |a − d| > T2 e |a − d| − |b − c| > r, em que T2 e r também são valores de limites. Neste caso X = b+ c 2 ; • (bordas na direção NW-SE ): se |b− c| > T2 e |b− c| − |s− d| > r, então X = a+ d 2 ; • (bordas na direção NS ): se |a− c| > T1 e |b− c| > T1, e ainda (a− d) ∗ (b− c) > 0 então se (a+ c) > (b+ d), logo X = b+ d 2 , caso contrário, X = a+ c 2 ; • (bordas na direção EW ): se |a− d| > T1 e |b− c| > T1, (a− d) ∗ (b− c) < 0 e ainda se (a+ b) > (c+ d) X = c+ d 2 , caso contrário, X = a+ b 2 . Os parâmetros T1, T2 e r são fornecidos pelo usuário ao iniciar o algoritmo. Eles definem os limiares a serem tomados para verificações de regiões consideradas homogêneas ou bordas. 63 4.2.3 Aplicação da Transformada Wavelets A transformada wavelet é obtida aplicando-se os filtros unidimensionais nas linhas e nas colunas da imagem. Entretanto, ao se aplicar a wavelet, os pixels em branco, indicado na Figura 4.6, não se relacionam com a informação do pixel central (pontos cinzas, obtida pela etapa anterior). Figura 4.6: Imagem após a primeira etapa. Para contornar este problema, é feito uma rotação na imagem de 450 graus e uma reamostragem pelo fator de dois para preencher os pontos brancos. Isto permite que estes se relacionem com os pontos pretos (pixels originais) e os pontos cinzas (Figura 4.7). Figura 4.7: Imagem rotacionada 450. Fonte: Adaptado a partir de Pagamisse [26]. Depois de rotacionados, é aplicado a transformada wavelet diádica na imagem obtendo três bandas: a versão suavizada, e duas de detalhes (horizontal e vertical). Para a interpolação dos pontos em brancos mostrados na Figura 4.7 é calculado a média dos pontos que possuem a menor variância entre os quatro pontos vizinhos (Figura 4.8): 64 Figura 4.8: Pontos interpolados na segunda etapa. Fonte: Adaptado a partir de Ward [37]. O cálculo proposto por Ward [37] para obter a menor variância consiste em construir conjuntos Sk definidos pela Expressão 4.9: S1 = {P1, P2, P3} , S2 = {P1, P2, P4} S3 = {P1, P3, P4} , S4 = {P2, P3, P4} (4.9) desta maneira, verifica-se qual dentre os conjuntos Sk′s com k ∈ {1, 2, 3, 4} possui os pontos Pk de tal maneira que k = arg minj {var (Sj)} e j ∈ {1, 2, 3, 4}. Por exemplo, se S1 = min {S1, S2, S3, S4}, então os pontos {P1, P2, P3}, que pertencem a S1, são os que tem menor variância. Logo, o valor do ponto X será a média entre P1, P2 e P3. Para finalizar, a imagem é novamente rotacionada 450 de volta e assim, aplicado a transformada inversa obtendo a imagem com o tamanho duas vezes maior que a imagem original. A Figura 4.9(b) ilustra os resultados da aplicação deste método na imagem (região quadrangular) relativa a Figura 4.9(a). 65 (a) Imagem original (b) Rosto ampliado Figura 4.9: Aplicação do método proposto por Pagamisse em parte da imagem. 4.3 Método de Interpolação utilizando o Filtro Bilate- ral Uma nova abordagem que utiliza o filtro bilateral foi proposto por Han [14] e seu método interpola a imagem e ainda realça as bordas filtrando alguns ruídos nas regiões homogêneas. A ideia do algoritmo é utilizar o filtro bilateral para separar a imagem em duas camadas. Uma possuirá toda a informação dos detalhes da imagem original, enquanto a outra terá toda a informação de baixa frequência, ou seja, as regiões suaves. O método interpola ambas as camadas de maneira específica e no final as une com um realce nos detalhes. O filtro Bilateral é um filtro passa-baixa que tem como objetivo a redução de ruídos. Possui um efeito de “borramento” quanto maior o desvio padrão utilizado. O valor da intensidade de cada pixel da imagem, ao ser aplicado o filtro bilateral, é substituída por uma média ponderada de valores de intensidade dos pixels vizinhos. Este peso pode ser baseada em uma distribuição Gaussiana. Segundo Tomasi [33], o filtro Bilateral pode ser definido como: Ib = k−1(x) ∫ +∞ −∞ ∫ +∞ −∞ f(ξ)c(ξ, x)s(f(ξ), f(x))dξ (4.10) em que k(x) = ∫ +∞ −∞ ∫ +∞ −∞ c(ξ, x)s(f(ξ), f(x))dξ (4.11) Neste caso, f(ξ) representa a função o qual é aplicado o filtro bilateral. As funções c(·) e s(·) no caso gaussiano, são definidos pela Expressão 4.12: 66 c(ξ, x) = e − 1 2 ( d(ξ,x) σd )2 s(ξ, x) = e− 1 2( δ(f(ξ),f(x)) σr ) 2 (4.12) 4.3.1 Descrição do método Primeiramente é aplicado o filtro bilateral na imagem original, obtendo assim uma versão suavizada que recebe o nome de camada base. A diferença desta camada com a original resulta na camada de detalhes, que possui toda informação relevante das bor- das. Contudo, ruídos também possuem altas frequências e estes aparecem na camada de detalhes. Para reduzir o realce dos ruídos e assim, melhorar a imagem interpolada, é feito uma filtragem. Desta maneira, qualquer ponto isolado nos detalhes são eliminados. Após a filtragem, ambas as camadas são expandidas individualmente. Para isto o método utilizado por Han [14] é a interpolação de preservação de bordas. Depois de de todo este processo, junta-se as duas camadas com os detalhes realçados. Para melhor entendimento, será explicada cada passo a seguir. 4.3.2 Separação em Camadas Para separar a imagem original primeiramente é aplicado o filtro bilateral na imagem. Para aplicação em imagens digitais é necessário reformular a Equação 4.10 para o discreto: Ib = 1 k(x) ∑ y∈Ω c(x, y) · s(I(x), I(y))I(y) (4.13) em que Ib é a camada base, I(x) e I(y) são os valores dos pixels da imagem original nas posições x e y, respectivamente. Na Equação 4.13, os valores k(x), c(·) e s(·) são definidos por meio das Equações 4.14 e 4.15 respectivamente. k(x) = ∑ y∈Ω c(x, y)s(I(x), I(y)) (4.14) c(i, j) = e − ‖i−j‖22 2σ2 c s(u, v) = e − ‖u−v‖22 2σ2 s (4.15) O parâmetro σ é o desvio padrão inserido inicialmente no algoritmo e ‖·‖22 é a norma euclidiana. Aplicando este filtro em uma imagem, tem-se a camada base. Para se obter a camada de detalhe, basta fazer a diferença desta com a imagem original: 67 Id(x) = I(x)− Ib(x) (4.16) Observe na Figura 4.10 a separação das camadas feita pelo algoritmo: (a) Original (b) Camada Base (c) Camada Detalhes Figura 4.10: Aplicação do filtro bilateral na imagem original com σc = 1.8 e σs = 30. Quanto mais suavizada a camada base, mais grossa serão as bordas que ficam na camada de detalhes. Este controle é feito pelos desvios padrões σc e σs fornecidos inicial- mente. O problema na camada base (Figura 4.10 (c)) é que todos os ruídos da imagem ficam realçadas. Portanto, é necessário filtrar esta camada de tal maneira que somente os detalhes relevantes das imagens permaneçam. 4.3.3 Filtragem da Camada de Detalhes Para suprimir quaisquer ruído presente na imagem, primeiramente o algoritmo calcula os gradientes de energia de ambas as camadas: Eb(x) = √ G2 X(Ib(x)) +G2 Y (Ib(x)) (4.17) Ed(x) = √ G2 X(Id(x)) +G2 Y (Id(x)) (4.18) em que GX e GY são obtidos utilizando os operadores de Sobel: GX(F ) = ⎡ ⎢⎣ −1 0 1 −2 0 2 −1 0 1 ⎤ ⎥⎦ ∗ F (4.19) GY (F ) = ⎡ ⎢⎣ −1 −2 −1 0 0 0 1 2 1 ⎤ ⎥⎦ ∗ F (4.20) com o operador convolução (∗). 68 Depois de ter feitos estes cálculos é utilizado um filtro não linear com o gradiente de energia das duas camadas: Îd(x) = |Eb(x)|2 |Eb(x)|2 + γ1|Ed(x)|2Ed(x) (4.21) em que, segundo Han [14], γ1 é um fator de regularização de controle entre a redução de ruídos e a preservação da textura da imagem definido pela Equação 4.22: γ1 = ∑ |Eb(x)|2∑ |Ed(x)|2 (4.22) Observe a Figura 4.11 . (a) Camada de detalhes (b) Camada de detalhes filtrada Figura 4.11: Ilustração da diferença entre a camada filtrada com a original. 4.3.4 Interpolação das Camadas É utilizado uma simples interpolação que leva em consideração a direção de borda através da correlação entre os pixels que consiste em três etapas: a) A primeira etapa baseia-se em expandir a imagem; b) Na segunda etapa, o algoritmo interpola todos os pontos Ic (Figura 4.12 (a)) aplicando o método de gradiente de base locais convencional (Hwang [17]). Para isto são utilizados os quatro pixels da diagonal que estão posicionadas ao seu redor. Para esta interpolação é feito o seguinte cálculo: d∗a = arg mind∈{1,2}(|Ad − Bd|) (4.23) 69 (a) Primeira Configuração Pixels I2i,2j (b) Segunda Configuração Pixels I2i+1,2j (c) Segunda Configuração Pixels I2i,2j+1 Figura 4.12: Representação das configurações do algoritmo para o cálculo das intensidades de pixels na presença de borda. Fonte: Imagem retirada e adaptada a partir de Han [14]. em que d∗a representa a borda direcional desta primeira configuração. Desta maneira, é verificado qual diferença é menor, se |A1 − B1| ou |A2 − B2|. O valor de Ic é a média aritmética dos pontos pertencentes à menor intensidade, ou seja; I(·) = Ad∗a + Bd∗a 2 (4.24) Os pontos centrais da Figura 4.12 possuirá a média dos pontos mais próximos de intensidade de tons de cinza entre si. Se houver uma borda passando por A1 e B1 por exemplo, a diferença |A1 − B1| será muito menor do que |A2 − B2|. c) Nesta etapa o algoritmo irá preencher os pontos que sobraram, e para isso, há duas configurações possíveis: • Configuração 1 : Utilizado para os pixels que estão entre dois outros da imagem original na horizontal, como mostrado na Figura 4.12 (b). Estes pontos são do tipo I2n,2n+1, ou seja, são pontos cuja a linha é par e a coluna é ímpar. • Configuração 2 : Utilizado para os pixels que estão entre dois outros da imagem original na vertical, como mostrado na Figura 4.12 (c). Em complementação da última configuração, estes últimos pontos interpolados são do tipo I2n+1,2n, ou seja, são pontos cuja linha é ímpar e a coluna é par. Assim como no item (b), para encontrar o valor de Ic é aplicada a Equação 4.24. Em que d∗a é dada pela Equação 4.23 com d ∈ {1, 2, 3}. Depois de aplicado a interpolação nas duas camadas, o algoritmo as compõe resultando na imagem final. 70 4.3.5 Composição das camadas com realce nos Detalhes Para obter a imagem em alta resolução, é necessário fazer a seguinte composição: Îfinal(x) = Îb(x) + λ(x)Îd(x) (4.25) em que Îb(x) e Îd(x) são, respectivamente, a camada base e a camada de detalhes inter- polados. A função λ(x) é um fator peso utilizado para realçar as informações na camada de detalhes (onde estão as bordas). Este fator é estimado pela Equação 4.26: λ(x) = 1 + |Êb(x)| γ2|Êd(x)| (4.26) em que |Êb(x)| é o gradiente da energia da imagem Îb(x) e |Êd(x)| é o gradiente da energia da camada Îd(x). Para prevenir uma alteração drástica e distorções de cores, Han [14] faz a seguinte restrição: λ(x) ≤ |Êb(x)| (4.27) Ainda para a Equação 4.26, γ2 é definido como: γ2 = ∑ |Êb(x)|∑ |Êd(x)| (4.28) A Figura 4.13(b) ilustra os resultados da aplicação deste método na imagem (região quadrangular) relativa a Figura 4.13(a). (a) Imagem original (b) Rosto ampliado Figura 4.13: Aplicação do método proposto na imagem Lena. 71 A implementação do método das wavelets foi fornecido por um dos autores. O pro- grama da interpolação utilizando o filtro bilateral encontra-se em [16]. Capítulo 5 Avaliação Qualitativas e Quantitativas das Imagem Digitais Um dos problemas encontrados nos resultados obtidos usando técnicas de processa- mento de imagem está na análise da qualidade por meios de medidas estatísticas. Isto ocorre pois muitas vezes os métodos utilizados não levam em conta a percepção humana e desta maneira não reflete exatamente como a informação é recebida e interpretada. A avaliação da qualidade de uma imagem digital é um assunto que ainda necessita de sofisticação em seus modelos matemáticos. Os métodos que avaliam a qualidade em sua maioria se baseam em medidas simples, como por exemplo Erro Médio Quadrático. A razão para isso é a falta do conhecimento da relação entre a estrutura do sistema visual humano (do inglês Human Visual System, HVS) com as estruturas estatísticas. O estudo do HVS é imprescindível quando se deseja avaliar as características de uma imagem, pois métodos puramente estatísticos não conseguem prever precisamente como o ser humano interpreta a informação visual. No entanto, tanto o conhecimento do HVS quanto a sofisticação de métricas matemáticas que modelam a percepção da visão ainda permanecem limitadas e são desafios a serem explorados. Neste capítulo serão apresentados alguns métodos usuais da literatura indicando van- tagens e desvantagens de serem utilizadas para a avaliação de qualidade de imagens. 5.1 Métricas Clássicas de Qualidade Nesta seção serão apresentadas algumas técnicas clássicas para avaliação de qualidades de imagens, que são tradicionalmente utilizadas para a avaliaç