matlab强大之处在于已经写好了库函数imnoise可以直接拿来使用:
首先进行一段科普:
常用的噪声类型
'gaussian':Gaussian white noise with constant mean and variance
'localvar':Zero-mean Gaussian white noise with an intensity-dependentvariance
'poisson':Poisson noise
'salt & pepper':On and off pixels
'speckle':Multiplicative noise'gaussian'
语法:
g = imnoise(I,type)
g = imnoise(I,type,parameters)
g = imnoise(I,'gaussian',m,v)
g = imnoise(I,'localvar',V)
g = imnoise(I,'localvar',image_intensity,var)
g = imnoise(I,'poisson')
g = imnoise(I,'salt & pepper',d)
g = imnoise(I,'speckle',v)
下面是重点!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
直接写好文件操作即可给图像增加噪声:
这里实现的主要是批量图片操作,单个图片不再赘述。
clear;
clc;
Objdir='F:\projec_tt\create_noise\pic_3\';
Outputdir='F:\projec_tt\create_noise\pic_3_protect\';
tnum=64;
for i=1:tnum
Fullfile=[Objdir,int2str(i),'.png'];
A=imread(Fullfile);
% B=imnoise(A,'gaussian',0,0.05);
% B=imnoise(A,'salt & pepper',0.02);
B=imnoise(A,'speckle',0.2);
figure(i);
imagesc(B);
title('加入高斯噪声以后的图像');
imwrite(B,[Outputdir,int2str(i),'_p.png']);
pause;
end
代码纯手工打造
不适用库函数版本的代码可以参考致谢中的链接;
使用python版本是没有库函数的,需要从像素点上进行修改
可以参考本人写的博客
致谢:
图片的批量操作感谢:https://blog.csdn.net/misayaaaaa/article/details/71157743?utm_source=gold_browser_extension
imnoise库函数说明感谢:https://baike.baidu.com/item/imnoise/10554829
噪声的增加感谢:http://blog.sciencenet.cn/blog-2518444-889266.html
不适用库函数:https://blog.csdn.net/pxrsun/article/details/78347254?locationNum=10&fps=1