Expansão de Imagem #2mandrade/tvd/2006/trabalhos1-2004/TD-trab1... · algoritmo Linear), diferindo...

Preview:

Citation preview

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.

Recommended