灰度图像的频率域滤波——高斯(Gaussian)低通滤波器(Matlab)

人盡茶涼 提交于 2019-11-29 04:59:35
clc;
clear all;
close all;

%读入图像,并转换为double型
I=imread('D:\Gray Files\4-41.tif');
I_D=im2double(I);
%获得图像的高度和宽度
[M,N]=size(I_D);
%图像中心点
M0=M/2;
N0=N/2;
J=fft2(I_D);
J_shift=fftshift(J);

%%%%===================高斯(Gaussian)低通滤波器==========================

%截至频率距离圆点的距离,delta表示高斯曲线的扩散程度
D0=80;
delta=D0;
for x=1:M
    for y=1:N
        %计算点(x,y)到中心点的距离
        d2=(x-M0)^2+(y-N0)^2;
        %计算高斯滤波器
        h=exp(-d2/(2*delta^2));
        %用滤波器乘以主函数
        J_shift(x,y)=J_shift(x,y)*h;
    end
end

J=ifftshift(J_shift);
I_D_rep=ifft2(J);
imshow(I_D_rep,[]);

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!