MATLAB 高斯低通滤波处理椒盐噪声图像
本段代码实现了对加入椒盐噪声的灰度图像进行高斯低通滤波处理,并展示了原图像、加噪图像和处理后的图像。
首先,读取灰度图像,并加入椒盐噪声,展示加噪后的图像。
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('高斯低通滤波处理');
原文地址: https://www.cveoy.top/t/topic/nAqL 著作权归作者所有。请勿转载和采集!