说明:以上代码是对一张灰度图像进行高斯低通滤波的处理,其中加入了椒盐噪声。首先使用 imread 函数读取图像,然后通过 imnoise 函数加入椒盐噪声,得到加噪后的图像 IA。接着定义频域采样点,计算频域中心距离,以此构造高斯低通滤波器 Hd。使用 fft2 函数对加噪图像进行傅里叶变换,并进行 fftshift 操作将低频部分移到中心位置。将傅里叶变换后的图像与滤波器 Hd 相乘,得到经过滤波器处理后的频域图像 Ya。使用 ifftshift 操作将低频部分移回原位,然后使用 ifft2 函数进行反傅里叶变换,得到滤波后的图像 Ia。最后使用 subplot 和 imshow 函数将原图像、加噪图像和滤波后的图像进行显示。

代码示例:

I = rgb2gray(imread('D:\matblab_21b\projects\picture\test.tif'));
IA = imnoise(I, 'salt & pepper'); %%加入椒盐噪声
subplot(222), imshow(IA);
title('加入椒盐噪声后的图像');
[f1, f2] = freqspace(size(IA), 'meshgrid');
D = 100 / size(IA, 1);
r = f1.^2 + f2.^2;
Hd = ones(size(IA));
for i = 1:size(IA, 1)
    for j = 1:size(IA, 2)
        t = r(i, j) / (D * D);
        Hd(i, j) = exp(-t);
    end
end
Y = fft2(double(IA));
Y = fftshift(Y);
Ya = Y .* Hd;
Ya = ifftshift(Ya);
Ia = real(ifft2(Ya));
subplot(221), imshow(uint8(I));
title('原图像');
subplot(223), imshow(uint8(Ia));
title('高斯低通滤波处理');
Matlab 高斯低通滤波实现图像降噪

原文地址: https://www.cveoy.top/t/topic/nAqI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录