Trabalhos da
Disciplina “Fundamentos de Processamento de Imagens”
de Lucas
Enrique Guaycochea
2do Semestre 2007
Trabalhos pedidos nas aulas
Nesta página temos as resoluções
das questões que surgieram nas aulas da disciplina.
·
O que acontecería se tras aplicar a Transformada de
Fourier à imagem, mudamos o módulo dos coeficientes de todas as frequências a 1
?
Bom, pensando antes de fazer
nada, se deixamos todos os módulos em 1, vamos fazer que as contribuções de
todas as frequências seja igual, então a gente espera que quando apliquemos a
transformada inversa vamos a ter perdido completamente a imagem original.
Para levar os modulos dos
coeficientes, simplemente divide-se o coeficiente por su modulo:
![]()
Assim, se manter a fase.
·
O que acontecería, agora, se mantemos o módulo e
levamos a fase de todas as frequências a 0 ?
Igual que antes, a eliminar as
fases a gente acha que vão perder as relações entre as frequências e tambem
vamos a perder completamente a imagem original quando fazemos a transformada
inversa.
O que será feito é eliminar a
parte imaginaria deixando o valor do modulo na parte real:
![]()
Depois de programar em MATLAB,
vemos os seguintes resultados:

Os resultados concordam com o
que a gente achava. No primeiro lugar temos a imagem original, na segunda linha
está o espectro original e sua transformada inversa. Na terceira linha esta o
espectro que todos os modulos dos coeficientes em 1, e sua transformada
inversa. E, finalmente, na quarta e ultima linha, tem o espectro com as faces
em 0 (o modulo se mantem, então a imagem que é dos modulos é a mesma que a
original) e sua transformada.
O codigo em MATLAB está a
continuação:
nome=input('Ingrese nome da imagem: ');
I=imread(nome);
TF=fft2(I);
[width, height]=size(I);
TFaux=TF;
for i=1:width
for j=1:height
TF(i,j)=TF(i,j)/abs(TF(i,j));
end
end
subplot(4,2,1);imshow(I);
subplot(4,2,3);imshow(log(abs(fftshift(TFaux))),[3 10]);
subplot(4,2,4);imshow(uint8(ifft2(TFaux)));
subplot(4,2,5);imshow(log(abs(fftshift(TF))),[3
10]);
subplot(4,2,6);imshow(uint8(ifft2(TF)));
TF2=TFaux;
for i=1:width
for j=1:height
TF2(i,j)=abs(TF2(i,j));
end
end
subplot(4,2,7);imshow(log(abs(fftshift(TF2))),[3
10]);
subplot(4,2,8);imshow(uint8(ifft2(TF2)));