本段代码实现了对加入椒盐噪声的灰度图像进行高斯低通滤波处理,并展示了原图像、加噪图像和处理后的图像。

首先,读取灰度图像,并加入椒盐噪声,展示加噪后的图像。

I = rgb2gray(imread('D:\matblab_21b\projects\picture\test.tif'));
IA = imnoise(I, 'salt & pepper');  %%加入椒盐噪声
subplot(222), imshow(IA);
title('加入椒盐噪声后的图像');

然后,使用 freqspace 函数生成频率域网格,计算中心频率和距离,并根据距离计算高斯滤波器的频率响应 Hd

[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/nAqL 著作权归作者所有。请勿转载和采集!

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