Faculdade de Engenharia da Universidade do Porto Engenharia Electrotécnica e de Computadores Expansão de Imagem #2 Televisão Digital António Alberto da Silva Marques Pedro Ricardo dos Reis Porto, 2004
Índice 1. Introdução e Objectivos 2. Algoritmos implementados 2.1. Princípios gerais sobre o qual assentam os algoritmos 3. Interface Gráfica 4. Apresentação dos resultados obtidos 4.1. Imagem einstein.tif (256x256) 4.1.1. Método da Frequências 4.1.1.1. FFT 4.1.1.1.1. Algoritmo linear, Factor de expansão = 2 4.1.1.1.2. Algoritmo recursivo, Factor de expansão = 2 4.1.1.2. DCT 4.1.1.2.1. Algoritmo linear, Factor de expansão = 2 4.1.1.2.2. Algoritmo recursivo, Factor de expansão = 2 4.1.2. Método Espacial 4.1.2.1. Algoritmo Linear 4.1.2.2. Algoritmo Vizinho 4.2. Imagem movie20.bmp (320x180) 4.2.1. Método da Frequências 4.2.1.1. FFT 4.2.1.1.1. Algoritmo linear, Factor de expansão = 1.5 4.2.1.1.2. Algoritmo recursivo, Factor de expansão = 1.5 4.2.1.2. DCT 4.2.1.2.1. Algoritmo linear, Factor de expansão = 1.5 4.2.1.2.2. Algoritmo recursivo, Factor de expansão = 1.5 4.2.2. Método Espacial 4.2.2.1. Algoritmo Linear 4.2.2.2. Algoritmo Vizinho 5. Análise dos resultados obtidos 6. Conclusões
1. Introdução e Objectivos Com este documento pretende-se descrever de forma sumária e objectiva o trabalho realizado (Expansão de Imagem #2), no âmbito da disciplina de Televisão Digital. O objectivo do trabalho consiste em expandir uma imagem no domínio das frequências, recorrendo à utilização da transformada Fast Fourier Transform (FFT) ou da transformada Discrete Cousine Transform (DCT), acrescentando zeros em torno da matriz original de dimensões N x M. No entanto, também decidimos implementar a expansão de imagem no domínio espacial, recorrendo à utilização do script para MatLab para expandir uma imagem, expansao.m, fornecido na página da disciplina, para deste modo, podermos tirar melhores conclusões sobre a expansão de imagem nos dois domínios, utilizando diferentes algoritmos de processamento de imagem. Como ponto de partida tivemos em consideração o trabalho desenvolvido pelos colegas do ano anterior, 2003/2004, exploramo-lo e verificamos os resultados obtidos, analisando-o com diferentes tipos de imagens. Propusemo-nos então, a complementar o trabalho realizado pelos nossos colegas do ano anterior. Para tal, implementamos uma nova interface gráfica e desenvolvemos novas funcionalidades, mais concretamente propusemo-nos a: Desenvolver uma nova interface gráfica; Implementar novos algoritmos de expansão de imagem; Adaptar os algoritmos desenvolvidos no trabalho realizado anteriormente, que manipulam a imagem no domínio das frequências, e, os novos algoritmos implementados neste trabalho (existentes no ficheiro expansao.m ), que manipulam a imagem no domínio espacial, a expandirem imagens de todos os tipos de cor; Testar com diferentes tipos de imagens, os diferentes tipos de algoritmos; Avaliar os resultados entre a imagem original e a imagem expandida, efectuando uma análise crítica (e comparativa) de acordo com o tipo de imagem utilizada (e.g. imagem com muito detalhe/ pouco detalhe) e os diferentes métodos e algoritmos utilizados. Desenvolvemos todo o trabalho utilizando a ferramenta Matlab. 2. Algoritmos implementados Foram implementados diferentes tipos de algoritmos que trabalham em domínios diferentes, i.e., domínio das frequências e domínio espacial. Domínio das frequências o FFT (Fast Fourier Transform) Linear Recursivo o DCT (Discrete Cousine Transform) Linear Recursivo Domínio espacial o Bilinear interpolation ( Linear ) o Nearest-neighbour interpolation ( Vizinho )
2.1. Princípios gerais sobre o qual assentam os algoritmos Nesta secção iremos descrever os algoritmos implementados, dando uma noção geral sobre estes. FFT, utilizando o algoritmo Linear o Após a imagem ser lida para uma variável (matriz), esta é convertida para o domínio das frequências; o Determina-se o tamanho da matriz; o Calculam-se as dimensões da nova matriz (imagem expandida), esta resulta da multiplicação do factor de expansão pelo respectivo tamanho da altura e largura da matriz original (imagem lida); o Calcula-se o n.º de linhas e colunas a preencher com zeros; o Acrescenta-se à matriz original os zeros calculados anteriormente, onde esta nova matriz equivale à imagem expandida; o Converte-se a matriz novamente para o domínio espacial. FFT, utilizando o algoritmo Recursivo o O princípio de funcionamento é semelhante ao anterior (Linear); o A matriz expandida resulta da expansão interactivamente por factores múltiplos de 2. DCT, utilizando o algoritmo Linear o O princípio de funcionamento é equivalente ao da FFT (utilizando o algoritmo Linear), diferindo a forma de preenchimento dos zeros, como iremos descrever posteriormente. DCT, utilizando o algoritmo Recursivo o O princípio de funcionamento é semelhante ao anterior (Linear); o A matriz expandida resulta da expansão interactivamente por factores múltiplos de 2. Bilinear interpolation o A imagem expandida resulta da aproximação de uma média pesada dos 4 pixels mais próximos. Começa-se por ir buscar os valores dos 4 pixels mais próximos e calcula-se a média pesada de acordo com a distância. Nearest-neighbour interpolation o A imagem expandida resulta da aproximação do valor do pixel mais próximo
3. Interface Gráfica A interface gráfica que realizamos é apresentada na figura 1. Figura 1: Interface Gráfica Esta interface gráfica foi construída com o intuito de a tornar de fácil manuseamento, dando a possibilidade de: abrir um browser que permite ao utilizado abrir e guardar qualquer tipo de imagem; visualizar as propriedades da imagem selecciona; seleccionar o método e algoritmo pretendido inserir o factor de expansão pretendido; visualizar o espectro da imagem seleccionada e da imagem expandia (no caso da imagem ser a cores o espectro da imagem expandida é visualizado em cada um dos seus componente, i.e., R,G e B; visualizar a imagem seleccionada e a imagem expandida, no programa e/ou em janela diferente (carregando os respectivos botões), para facilitar a comparação das imagem
4. Apresentação dos resultados obtidos Experimentámos o programa com diferentes tipos de imagens. Em seguida, serão apresentados (em tamanho real, excepto os espectros) os resultados obtidos, recorrendo a dois tipos de imagens diferentes e aos diferentes tipos de algoritmos. 4.1. Imagem einstein.tif (256x256) 4.1.1. Método da Frequências 4.1.1.1. FFT Imagem Original Espectro da Imagem Original
4.1.1.1.1. Algoritmo linear, Factor de expansão = 2 Espectro da
4.1.1.1.2. Algoritmo recursivo, Factor de expansão = 2 4.1.1.2. DCT Espectro da Imagem Expandia
4.1.1.2.1. Algoritmo linear, Factor de expansão = 2 Espectro da
4.1.1.2.2. Algoritmo recursivo, Factor de expansão = 2
4.1.2. Método Espacial 4.1.2.1. Algoritmo Linear
4.1.2.2. Algoritmo Vizinho 4.2. Imagem movie.jpg (320x180) 4.2.1. Método da Frequências 4.2.1.1. FFT Imagem Original Espectro da Imagem Original
4.2.1.1.1. Algoritmo linear, Factor de expansão = 2 Espectro da R,G e B da 4.2.1.1.2. Algoritmo recursivo, Factor de expansão = 2
4.2.1.2. DCT Espectro da Imagem Expandia 4.2.1.2.1. Algoritmo linear, Factor de expansão = 2 Espectro da R,G e B da
4.2.1.2.2. Algoritmo recursivo, Factor de expansão = 2 4.2.2. Método Espacial 4.2.2.1. Algoritmo Linear
4.2.2.2. Algoritmo Vizinho 5. Análise dos resultados obtidos Quanto à imagem einstein.tif podemos concluir: no domínio das frequências obtivemos melhores resultados com a transformada DCT do que a transformada FFT; existem pequenas alterações na imagem, e.g. tonalidade da imagem, isto devese ao facto de que quando utilizamos a transformada (DCT/FFT) esta produz alterações nos coeficientes da imagem; o algoritmo recursivo e o algoritmo linear, nas duas transformadas, produzem resultados semelhantes, no entanto o algoritmo recursivo produz melhor eficiência espectral; no domínio espacial, utilizando o algoritmo vizinho obtivemos uma melhor imagem, mas mais pixelizada do que utilizando o algoritmo linear; em comparação com os dois domínios, verifica-se que o domínio espacial produz uma imagem mais parecida com a imagem original. Quanto à imagem movie20.bmp podemos concluir: no domínio das frequências obtivemos melhores resultados com a transformada DCT do que a transformada FFT; existem pequenas alterações na imagem, e.g. tonalidade da imagem, isto deve-se ao facto de que quando utilizamos a transformada (DCT/FFT) esta produz alterações nos coeficientes da imagem; o algoritmo recursivo e o algoritmo linear, nas duas transformadas, produzem resultados semelhantes, no entanto nesta imagem consegue-se verificar que o algoritmo recursivo produz uma imagem com melhor tonalidade; no domínio espacial, utilizando o algoritmo vizinho obtemos uma melhor imagem mas mais pixelizada do que utilizando o algoritmo linear; o domínio espacial pouco altera as tonalidades da imagem original; em comparação com os dois domínios, verifica-se que o domínio espacial produz uma imagem mais parecida com a imagem original.
6. Conclusões Com a realização deste trabalho tornou-se possível colocar e verificar na prática os conceitos adquiridos teoricamente. Defrontamo-nos com algumas dificuldades, as quais encaramos como um desafio que permitiu um maior empenho para a concretização dos objectivos a que nos propusemos. A expansão de imagens a cores e colocar as imagens expandidas a serem guardadas para um ficheiro representaram as nossas maiores dificuldades. Quanto à expansão de imagens a cores o objectivo foi concluído com sucesso, contudo, no que respeita à gravação de imagens expandidas para um ficheiro, conseguimos guardar com sucesso as imagens a cores, no entanto, as imagens de escala cinza quando aplicado os métodos das frequências, algumas das imagens escurecem e apenas se torna possível a sua visualização correcta abrindo o programa e aplicando algum dos métodos com factor de expansão igual a 1. No que concerne ao problema mencionado, este está associado com a manipulação de uint8 e double, no Matlab, na gravação da imagem expandida para o ficheiro. Concluindo, podemos considerar que os objectivos a que no propusemos foram atingidos e este trabalho foi realizado com sucesso.