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