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('泊松噪声去噪频域');

通过分析图像的频域特征,我们可以更好地理解不同噪声类型对图像的影响,并选择合适的去噪方法。

Matlab 图像噪声添加及频域特征分析 - 高斯噪声、椒盐噪声、泊松噪声

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

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