Redução Imagem
Redução de imagem - 2
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