高斯低通濾波對影象進行低通濾波程式碼,這個是灰度影象的
彩色影象就是取出RGB三個分量進行濾波再整合
I1=imread("flower.jpg"); %讀取影象
I=rgb2gray(I1); %將影象變為灰度圖象
%將灰度影象的二維不連續Frourier變換的零頻率成分移到頻譜的中心
s=fftshift(fft2(I));
[M,N]=size(s); %分別返回s的行數到M中,列數到N中
n=2; %對n賦初值
%GLPF濾波,d0=5,15,30(程式中以d0=30為例)
d0=30; %初始化d0
n1=floor(M/2); %對M/2進行取整
n2=floor(N/2); %對N/2進行取整
for i=1:M
for j=1:N
d=sqrt((i-n1)^2+(j-n2)^2); %點(i,j)到傅立葉變換中心的距離
h=1*exp(-1/2*(d^2/d0^2)); %GLPF濾波函式
s(i,j)=h*s(i,j); %GLPF濾波後的頻域表示
end
s=ifftshift(s); %對s進行反FFT移動
%對s進行二維反離散的Fourier變換後,取複數的實部轉化為無符號8位整數
s=uint8(real(ifft2(s)));
figure; %建立圖形影象物件
imshow(s); %顯示GLPF濾波處理後的影象
title("GLPF濾波(d0=30)"); %為經GLPF濾波後的影象新增標題
高斯低通濾波對影象進行低通濾波程式碼,這個是灰度影象的
彩色影象就是取出RGB三個分量進行濾波再整合
I1=imread("flower.jpg"); %讀取影象
I=rgb2gray(I1); %將影象變為灰度圖象
%將灰度影象的二維不連續Frourier變換的零頻率成分移到頻譜的中心
s=fftshift(fft2(I));
[M,N]=size(s); %分別返回s的行數到M中,列數到N中
n=2; %對n賦初值
%GLPF濾波,d0=5,15,30(程式中以d0=30為例)
d0=30; %初始化d0
n1=floor(M/2); %對M/2進行取整
n2=floor(N/2); %對N/2進行取整
for i=1:M
for j=1:N
d=sqrt((i-n1)^2+(j-n2)^2); %點(i,j)到傅立葉變換中心的距離
h=1*exp(-1/2*(d^2/d0^2)); %GLPF濾波函式
s(i,j)=h*s(i,j); %GLPF濾波後的頻域表示
end
end
s=ifftshift(s); %對s進行反FFT移動
%對s進行二維反離散的Fourier變換後,取複數的實部轉化為無符號8位整數
s=uint8(real(ifft2(s)));
figure; %建立圖形影象物件
imshow(s); %顯示GLPF濾波處理後的影象
title("GLPF濾波(d0=30)"); %為經GLPF濾波後的影象新增標題