FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO Licenciatura em Engenharia Electrotécnica e de Computadores 5º Ano, 1º Semestre Televisão Digital - 2002/2003 TRABALHO PRÁTICO Redução de imagem - 2 Alunos: Pedro Miguel Pereira Afonso – [email protected] Ricardo Nuno de Oliveira Pinto Ferreira – [email protected] O objectivo deste trabalho é produzir uma imagem digital de dimensões a.N x a.M (a < 1) a partir de uma imagem de dimensões n x M utilizando uma estratégia que trabalhe no domínio das frequências. Para a concretização do trabalho utilizamos o ambiente de simulação matlab. 1ª PARTE FFT Tal como descrito no guião, começamos o trabalho usando a FFT para passarmos para o domínio das frequências. O primeiro passo foi o de analisar qual o tipo de imagem que queríamos reduzir. Usando o campo ‘ColorType’ do comando ‘imfinfo’ verificamos que existem três tipos diferentes de imagem: truecolor, grayscale (intensity) e indexed. Assim, foi necessário implementar rotinas separadas para abrir os diversos tipos de imagem e posteriormente efectuar a sua conversão para indexed. Teoricamente, a redução de uma imagem passa por aproveitar as frequências mais baixas, descartando as mais elevadas. Explicação geral do código: Visto que estamos a trabalhar com imagens representadas em matrizes de duas dimensões, usamos a fft2 para passar para o domínio das frequências. Foi necessário utilizar o comando fftshift por forma a concentrarmos a energia nos coeficientes centrais para posteriormente aproveitá-los. O passo seguinte consistiu em calcular uma janela em volta do centro do espectro com as dimensões calculadas com base na percentagem de redução por nós inserida à entrada. Após termos definido essa janela, copiamos a informação aí contida para uma nova matriz para, posteriormente efectuarmos a sua transformada inversa (ifft2). Finalmente, gravamos a matriz transformada num novo ficheiro de imagem. Verificámos que a imagem reduzida, embora tivesse as dimensões correctas, apresentava-se sempre mais clara do que a original. Após alguma análise às diversas matrizes das diferentes imagens, constatámos que os coeficientes da imagem reduzida eram superiores aos da imagem inicial. Ou seja, enquanto que, para o mesmo pixel, a imagem inicial apontava para o valor Y do colormap, a nova imagem apontava para um valor Y*X que não existia no nosso colormap (logo, era 255, a cor branca). Assim, tentamos encontrar uma relação entre a imagem reduzida e a original numa posição, e multiplicamos os coeficientes da imagem reduzida por este valor. Após termos tentado para os diversos tipos de imagens, verificamos que esta relação funcionava melhor nas imagens do tipo indexed, enquanto que nos outros tipos de imagens a relação não originava bons resultados. Para estes casos, isto é imagens truecolor e grayscale, tentamos implementar um algoritmo teórico tendo como base o parâmetro de redução passado à entrada. Com esta nova abordagem só obtemos resultados satisfatórios até um redução de 75%. 2ª PARTE DCT Analogamente ao que tínhamos implementado para a FFT fizemo-lo agora para a DCT. Utilizamos praticamente as mesmas rotinas de redução, embora neste caso tenhamos escolhido zona superior esquerda do espectro, zona esta onde se concentram as frequências de mais baixa ordem. Tal como na FFT deparamo-nos com o facto de a imagem depois de reduzida aparecer com alterações nas cores. Concluímos que estas diferenças resultavam do facto de que, na imagem reduzida depois de passar pela DCT, e consequentemente pela IDCT, os valores eram alterados por um factor de aproximadamente 1-(taxa redução). Então decidimos multiplicar a matriz resultante da DCT inversa por este factor de modo a que a imagem se aproximasse mais da original. As imagens resultantes desta aproximação, tanto as indexed como as grayscale, ficam iguais. Relativamente às imagens truecolor apesar de conseguirmos reduzir as imagens para qualquer dimensão, o colormap da nova imagem fica diferente do original, logo a imagem reduzida não fica com as mesmas cores da original. Conclusão: Da elaboração do trabalho verificamos que as imagens reduzidas pela DCT ficavam iguais às originais, enquanto que as imagens reduzidas pela FFT eram, nalguns casos, diferentes devido ao problema com o colormap, problema este já referido acima. Consideramos que os objectivos referentes ao método de redução da imagem foram atingidos, tanto pela FFT como pela DCT. Até à data de conclusão do relatório não nos foi possivel resolver o problema causado pela redução das imagens no colormap.