生成代码:对受到高斯白噪声及椒盐噪声干扰的lotus图像在频域内分别采用理想低
时间: 2024-02-27 19:54:34 浏览: 255
下面是一个基于MATLAB的示例代码,用于对受到高斯白噪声和椒盐噪声干扰的lotus图像进行频域平滑处理,其中采用理想低通滤波器:
```matlab
% 读取图像
I = imread('lotus.jpg');
% 将图像转换为灰度图像
Igray = rgb2gray(I);
% 添加高斯白噪声
Igauss = imnoise(Igray, 'gaussian', 0, 0.01);
% 添加椒盐噪声
Isalt = imnoise(Igray, 'salt & pepper', 0.1);
% 对高斯白噪声图像进行频域平滑处理
% 将图像转换为频域
F = fft2(Igauss);
Fshift = fftshift(F);
% 定义理想低通滤波器
D0 = 50;
H = zeros(size(F));
M = size(F, 1);
N = size(F, 2);
for i = 1:M
for j = 1:N
D = sqrt((i-M/2)^2 + (j-N/2)^2);
if D <= D0
H(i, j) = 1;
end
end
end
% 对频域图像进行滤波
G = Fshift .* H;
% 将滤波后的频域图像转换回空域
J = ifft2(ifftshift(G));
% 显示结果
figure;
subplot(1, 2, 1);
imshow(Igauss);
title('原始图像');
subplot(1, 2, 2);
imshow(J, []);
title('处理后的图像');
% 对椒盐噪声图像进行频域平滑处理
% 将图像转换为频域
F = fft2(Isalt);
Fshift = fftshift(F);
% 定义理想低通滤波器
D0 = 50;
H = zeros(size(F));
M = size(F, 1);
N = size(F, 2);
for i = 1:M
for j = 1:N
D = sqrt((i-M/2)^2 + (j-N/2)^2);
if D <= D0
H(i, j) = 1;
end
end
end
% 对频域图像进行滤波
G = Fshift .* H;
% 将滤波后的频域图像转换回空域
J = ifft2(ifftshift(G));
% 显示结果
figure;
subplot(1, 2, 1);
imshow(Isalt);
title('原始图像');
subplot(1, 2, 2);
imshow(J, []);
title('处理后的图像');
```
需要注意的是,在实际应用中,理想低通滤波器可能会导致图像模糊或失真。因此,可以考虑使用其他类型的频域滤波器,如Butterworth滤波器或高斯滤波器,以获得更好的处理效果。
阅读全文
相关推荐
















