matlab 图像增噪算法

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

猜你喜欢

转载自blog.csdn.net/qq_28013751/article/details/83826622