1、高斯噪声与椒盐噪声的基本特点
噪声类型 | 基本特点 | 滤波处理 |
高斯噪声 | 噪声的概率密度函数服从高斯分布(即正态分布),即某个强度的噪声点个数最多,离这个强度越远噪声点个数越少。高斯噪声是一种加性噪声,即噪声直接加到原图像上,因此可以用线性滤波器滤除。 | 使用均值滤波等线性滤波方法效果更佳 |
椒盐噪声 | 由图像传感器、传输信道、解码处理等产生的黑白相间的亮暗点噪声,往往由图像切割引起。椒盐噪声是指两种噪声,盐噪声(高灰度噪声)、胡椒噪声(低灰度噪声)。同时出现时,在图像上呈现为黑白杂点。 | 使用中值滤波方法效果更佳 |
2、调用matlab自带函数imnoise实现加噪功能
首先读入原始图片并进行显示,之后与要求一中的内容相同,显示其频谱图。
image=imread('C:\Users\dell\Desktop\The_image_processing\image.jpg');
figure;
subplot(2,3,1);imshow(image);title('原始图像');
image_gray=rgb2gray(image);
image_fft=fft2(image_gray);
image_fft_shift=fftshift(image_fft);
image_AM=log(abs(image_fft_shift)+1);
subplot(2,3,4);imshow(image_AM,[]);title('原始图像频谱图');
然后设置参数d、m、var,利用matlab自带函数imnoise实现加噪功能。g=imnoise(f,‘gaussian’,m,var)将均值m,方差为var的高斯噪声加到图像f上,默认值是均值m为0,方差var为0.01的噪声。
g=imnoise(f,‘salt & pepper’,d)用椒盐噪声污染图像f,其中d是噪声密度(即包括噪声值的图像区域的百分比)。因此,大约有d*numel(f)个像素受到影响。默认的噪声密度为0.05。
d=0.05;
m=0;
var=0.01;
im_noise_salt = imnoise(image,'salt & pepper',d); % 加入椒盐噪声
im_noise_gaussian = imnoise(image,'gaussian',m,var); % 加入高斯噪声
之后显示加噪后的图片及其频谱图的操作与上面类似,测试结果如图所示。
% 显示加入噪声后的图像
subplot(2,3,2),imshow(im_noise_salt);title('加入椒盐噪声后的图像');
subplot(2,3,3),imshow(im_noise_gaussian);title('加入高斯噪声后的图像')
%显示加入椒盐噪声后的图像频谱图
im_noise_salt_gray=rgb2gray(im_noise_salt);
im_noise_salt_fft=fft2(im_noise_salt_gray);
im_noise_salt_shift=fftshift(im_noise_salt_fft);
im_noise_salt_AM=log(abs(im_noise_salt_shift)+1);
subplot(2,3,5);imshow(im_noise_salt_AM,[]);title('加入椒盐噪声后的图像频谱图');
%显示加入高斯噪声后的图像频谱图
im_noise_gaussian_gray=rgb2gray(im_noise_gaussian);
im_noise_gaussian_fft=fft2(im_noise_gaussian_gray);
im_noise_gaussian_shift=fftshift(im_noise_salt_fft);
im_noise_gaussian_AM=log(abs(im_noise_gaussian_shift)+1);
subplot(2,3,6);imshow(im_noise_gaussian_AM,[]);title('加入高斯噪声后的图像频谱图');
很高兴您能看到这里,文中提到的一些函数如果有不懂可以留言也可以在matlab支持(支持 - MATLAB & Simulink (mathworks.cn))里去查询。希望本文对您学习有所帮助!