1. 程式人生 > >matlab 影象增噪演算法

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