Skip to content

Instantly share code, notes, and snippets.

@johnnyferreiradev
Created May 6, 2019 19:42
Show Gist options
  • Save johnnyferreiradev/97db8994360199851774fe1d9721b544 to your computer and use it in GitHub Desktop.
Save johnnyferreiradev/97db8994360199851774fe1d9721b544 to your computer and use it in GitHub Desktop.
Filtro Gaussiano Passa-Baixas no domínio da Frequência
close all,
clear all,
clc
%Leitura da imagem
imgg=imread('lenna.jpg');
%Transformar a imagem dergb para escala de cinza
img=rgb2gray(imgg);
%Transformar a imagem em double
img=im2double(img);
%Mostra a imagem
figure(1), imshow(img);
title('Imagem Original')
%Calcula a transformada de fourier da imagem
img_f=fft2(img);
%Reordena as frequencias (centraliza as frequencias baixas)
img_f_ord=fftshift(img_f);
%Parte real da transformada de fourier
real_img_f_ord=real(img_f_ord);
%Magnitude da transformada de fourier
abs_img_f_ord=abs(img_f_ord);
figure(2), imshow(real_img_f_ord);
title('Espectro da Imagem')
figure(3),imshow(log(abs_img_f_ord+1),[]);
title('Espectro da Imagem - Escala Logaritmica')
%Transformada inversa de fourier
img_if=ifft2(img_f);
figure(4), imshow(img_if);
title('Transformada inversa de fourier')
%Filtro passa-baixas gaussiano
i=1:465;
j=1:465;
sigma=1;
D0=20;
for i=1:465,
for j=1:465,
w= i-256;
k= j-256;
D=sqrt(w*w + k*k);
filtroPB(i,j)=exp(-((D/D0)^2)/(2*sigma*2));
end
end
figure(5), imshow(filtroPB);
title('Filtro passa-baixas')
%Multiplicação ponto-a-ponto da função de transferênci da ... filtro
img_F_PB=filtroPB.*img_f_ord;
%Mostra o filtro utilizado
figure(6), imshow(real(img_F_PB));
title('Filtro Passa-baixas com o espectro')
%Imagem filtrada - Passa-baixas
img_if_PB=ifft2(img_F_PB);
figure(7),imshow(real(img_if_PB));
title('Imagem Filtrada- Passa-Baixas')
%Filtro
figure(8),surf(filtroPB);
title('Filtro')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment