本文使用 Matlab 仿真工具对原始图像添加不同参数的噪声,并绘制图像的时域及频域图,以分析不同噪声对图像的影响。

以下是一个使用 Matlab 添加噪声并绘制时域及频域图像的示例代码:

% 读取原始图像
img = imread('lena.png');
figure;
subplot(2, 2, 1);
imshow(img);
title('原始图像');

% 添加高斯噪声
noisy_img = imnoise(img, 'gaussian', 0, 0.01);
subplot(2, 2, 2);
imshow(noisy_img);
title('高斯噪声');

% 添加椒盐噪声
noisy_img = imnoise(img, 'salt & pepper', 0.05);
subplot(2, 2, 3);
imshow(noisy_img);
title('椒盐噪声');

% 添加泊松噪声
noisy_img = imnoise(img, 'poisson');
subplot(2, 2, 4);
imshow(noisy_img);
title('泊松噪声');

% 绘制频域图像
figure;
subplot(2, 2, 1);
imshow(log(abs(fftshift(fft2(img)))), []);
title('原始图像的频域图像');

subplot(2, 2, 2);
imshow(log(abs(fftshift(fft2(noisy_img)))) , []);
title('高斯噪声的频域图像');

subplot(2, 2, 3);
imshow(log(abs(fftshift(fft2(noisy_img)))) , []);
title('椒盐噪声的频域图像');

subplot(2, 2, 4);
imshow(log(abs(fftshift(fft2(noisy_img)))) , []);
title('泊松噪声的频域图像');

在上面的代码中,我们使用 imread 函数读取了一张 Lena 图像作为原始图像。然后,我们使用 imnoise 函数添加了高斯、椒盐和泊松噪声,并使用 subplot 函数将它们显示在同一张图像上。

接着,我们使用 fft2 函数对原始图像和噪声图像进行二维傅里叶变换,并使用 fftshift 函数将直流分量移到频域图像中心。最后,我们使用 imshow 函数显示了原始图像和噪声图像的频域图像。

下图是运行上述代码后生成的一些图像:

添加噪声的 Lena 图像及其时域和频域图像

从上图可以看出,不同类型的噪声会对图像的时域和频域图像产生不同的影响。高斯噪声会使图像的高频部分产生随机波动,椒盐噪声会在图像中产生黑白像素点,而泊松噪声则会在图像中产生随机亮度变化。

在实际应用中,我们可以使用类似上面的代码来模拟不同噪声对图像的影响,并根据需要对图像进行处理,以提高图像质量或提取有用信息。

Matlab图像噪声添加与时频域分析:高斯、椒盐、泊松噪声的影响

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

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