expansão de imagem #2mandrade/tvd/2006/trabalhos1-2004/td-trab1... · algoritmo linear), diferindo...
TRANSCRIPT
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 Imagem Expandida
Imagem Expandida
4.1.1.1.2. Algoritmo recursivo, Factor de expansão = 2
Imagem Expandida
4.1.1.2. DCT
Imagem Expandida Espectro da Imagem Expandia
4.1.1.2.1. Algoritmo linear, Factor de expansão = 2
Espectro da Imagem Expandida
Imagem Expandida
4.1.1.2.2. Algoritmo recursivo, Factor de expansão = 2
Imagem Expandida
4.1.2. Método Espacial
4.1.2.1. Algoritmo “Linear”
Imagem Expandida
4.1.2.2. Algoritmo “Vizinho”
Imagem Expandida
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 Imagem Expandida
Imagem Expandida
4.2.1.1.2. Algoritmo recursivo, Factor de expansão = 2
Imagem Expandida
4.2.1.2. DCT
Imagem Expandida Espectro da Imagem Expandia
4.2.1.2.1. Algoritmo linear, Factor de expansão = 2
Espectro da R,G e B da Imagem Expandida
Imagem Expandida
4.2.1.2.2. Algoritmo recursivo, Factor de expansão = 2
Imagem Expandida
4.2.2. Método Espacial
4.2.2.1. Algoritmo “Linear”
Imagem Expandida
4.2.2.2. Algoritmo “Vizinho”
Imagem Expandida
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 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 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.