本文将使用MATLAB代码模拟三种常见图像噪声(高斯噪声、椒盐噪声、泊松噪声),并通过时域和频域图像对比分析它们对图像的影响。

以下是一个示例代码,其中包含高斯噪声、椒盐噪声和泊松噪声三种噪声类型:

% 读取原始图像
I = imread('lena.png');
I = im2double(I);

% 添加高斯噪声
sigma = 0.1;
noise = sigma * randn(size(I));
I_gaussian = I + noise;

% 添加椒盐噪声
density = 0.05;
noise = rand(size(I));
I_salt_pepper = I;
I_salt_pepper(noise < density/2) = 0;
I_salt_pepper(noise > 1 - density/2) = 1;

% 添加泊松噪声
lambda = 5;
noise = poissrnd(lambda, size(I));
I_poisson = im2double(noise);

% 绘制时域图像
figure;
subplot(2, 2, 1);
imshow(I);
title('Original Image');
subplot(2, 2, 2);
imshow(I_gaussian);
title('Gaussian Noise');
subplot(2, 2, 3);
imshow(I_salt_pepper);
title('Salt & Pepper Noise');
subplot(2, 2, 4);
imshow(I_poisson);
title('Poisson Noise');

% 绘制频域图像
figure;
subplot(2, 2, 1);
imshow(log(1 + abs(fftshift(fft2(I)))), []);
title('Original Image');
subplot(2, 2, 2);
imshow(log(1 + abs(fftshift(fft2(I_gaussian)))), []);
title('Gaussian Noise');
subplot(2, 2, 3);
imshow(log(1 + abs(fftshift(fft2(I_salt_pepper)))), []);
title('Salt & Pepper Noise');
subplot(2, 2, 4);
imshow(log(1 + abs(fftshift(fft2(I_poisson)))), []);
title('Poisson Noise');

运行上述代码,将得到时域及频域图像如下所示:

image-20211022154020169

通过观察图像可以发现,三种噪声类型都会对图像的质量产生不同程度的影响。

高斯噪声会使图像变得模糊,细节丢失,图像整体亮度降低。

椒盐噪声会在图像中产生大量黑白噪点,破坏图像的连续性,严重影响图像的视觉效果。

泊松噪声会使图像出现斑点,整体亮度下降,同时会使一些细节部分变得更加突出。

在频域图像中,可以看到各种噪声类型对图像的频率分布产生了不同的影响,这也是在图像处理中常常使用频域滤波的原因之一。

MATLAB图像噪声分析:高斯、椒盐、泊松噪声的时域频域对比

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

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