Matlab 图像噪声添加及频域特征分析 - 高斯噪声、椒盐噪声、泊松噪声
Matlab 图像噪声添加及频域特征分析
本文将介绍如何使用 Matlab 在图像中添加不同类型的噪声,并分析其频域特征。我们将重点关注三种常见的噪声类型:高斯噪声、椒盐噪声和泊松噪声。
1. 添加不同类型噪声
以下代码展示了如何在 Matlab 中添加不同类型的噪声:
% 生成一个灰度图像
img = imread('lena_gray.jpg');
img = im2double(img);
% 添加高斯噪声
g_noise = imnoise(img, 'gaussian', 0, 0.01);
% 添加椒盐噪声
sp_noise = imnoise(img, 'salt & pepper', 0.05);
% 添加泊松噪声
p_noise = imnoise(img, 'poisson');
2. 绘制时域和频域图像
我们可以使用以下代码绘制原始图像、含噪声图像的时域和频域图像:
% 绘制原始图像及含噪声图像的时域及频域图像
figure;
subplot(2,4,1); imshow(img); title('原始图像');
subplot(2,4,2); imshow(g_noise); title('高斯噪声');
subplot(2,4,3); imshow(sp_noise); title('椒盐噪声');
subplot(2,4,4); imshow(p_noise); title('泊松噪声');
subplot(2,4,5); imhist(img); title('原始图像直方图');
subplot(2,4,6); imhist(g_noise); title('高斯噪声直方图');
subplot(2,4,7); imhist(sp_noise); title('椒盐噪声直方图');
subplot(2,4,8); imhist(p_noise); title('泊松噪声直方图');
% 绘制原始图像及含噪声图像的频域图像
figure;
subplot(2,4,1); imshow(log(1+abs(fft2(img))),[]); title('原始图像频域');
subplot(2,4,2); imshow(log(1+abs(fft2(g_noise))),[]); title('高斯噪声频域');
subplot(2,4,3); imshow(log(1+abs(fft2(sp_noise))),[]); title('椒盐噪声频域');
subplot(2,4,4); imshow(log(1+abs(fft2(p_noise))),[]); title('泊松噪声频域');
运行以上代码,将生成包含不同类型噪声的图像,并绘制时域及频域图像,如下图所示:

3. 分析频域特征
从频域图像可以观察到:
- 高斯噪声会在频域中引入低频噪声。
- 椒盐噪声会在频域中引入高频噪声。
- 泊松噪声则会在频域中引入随机噪声。
4. 去噪处理
在进行去噪处理时,可以根据不同的噪声类型选择不同的去噪方法。例如:
- 对于高斯噪声,可以使用高斯滤波。
- 对于椒盐噪声,可以使用中值滤波。
- 对于泊松噪声,可以使用泊松去噪方法。
% 对含噪声图像进行去噪处理,例如中值滤波
g_noise_filtered = medfilt2(g_noise, [3, 3]);
sp_noise_filtered = medfilt2(sp_noise, [3, 3]);
p_noise_filtered = medfilt2(p_noise, [3, 3]);
% 绘制去噪后的图像及频域图像
figure;
subplot(2,4,1); imshow(img); title('原始图像');
subplot(2,4,2); imshow(g_noise_filtered); title('高斯噪声去噪');
subplot(2,4,3); imshow(sp_noise_filtered); title('椒盐噪声去噪');
subplot(2,4,4); imshow(p_noise_filtered); title('泊松噪声去噪');
subplot(2,4,5); imshow(log(1+abs(fft2(img))),[]); title('原始图像频域');
subplot(2,4,6); imshow(log(1+abs(fft2(g_noise_filtered))),[]); title('高斯噪声去噪频域');
subplot(2,4,7); imshow(log(1+abs(fft2(sp_noise_filtered))),[]); title('椒盐噪声去噪频域');
subplot(2,4,8); imshow(log(1+abs(fft2(p_noise_filtered))),[]); title('泊松噪声去噪频域');
通过分析图像的频域特征,我们可以更好地理解不同噪声类型对图像的影响,并选择合适的去噪方法。
原文地址: https://www.cveoy.top/t/topic/n3mS 著作权归作者所有。请勿转载和采集!