資源簡介
matlab實現的高斯差分濾波,DoG濾波

代碼片段和文件信息
function?[mask]=DoG_test(stringratiosigman)
%參數設置?string?讀入圖像的名字,例如?‘LENA.jpg’?ratio?sigma1?和sigma2
%的比例,sigma高斯方差,n手動設置模板大小
Img=imread(string);
Mysize=size(Img);
if?numel(Mysize)>2
????Img=rgb2gray(Img);
end
%確定摸版大小
%如果參數為三個自動設置模板大小為?3*sigma,否則根據n來設置模板大小
if(nargin==3)
????Xmax=ceil(max(3*ratio*sigma1));
????Xmin=-Xmax;Ymax?=?Xmax;Ymin?=?-Xmax;
else
????Xmin=-n;Xmax=n;Ymin=-n;Ymax=n;
end?
[xy]?=?meshgrid(Xmin:XmaxYmin:Ymax);
%mask
%?mask=1/(2*pi)^0.5?*?(?1/(sigma)?*?exp(?-(x.^2+y.^2)/(2*(sigma)^2))??-?1/(ratio*sigma)?*?exp(?-(x.^2+y.^2)/(2*(ratio*sigma)^2))??);
mask=1/(2*pi)^0.5?*?(?1/(ratio*sigma)?*?exp(?-(x.^2+y.^2)/(2*(ratio*sigma)^2))??-?1/(sigma)?*?exp(?-(x.^2+y.^2)/(2*(sigma)^2))??);
ImgMask=imfilter(Imgmask?‘replicate‘);
ImgD=ImgMask-Img;
figureimshow(Img)title(‘orignal‘);
figureimshow(ImgMask)title(‘ImgMask‘);
figureimshow(ImgD)title(‘ImgD‘);
end
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????527334??2016-06-24?17:40??DOG_filter\bingnv.jpg
?????文件????????983??2016-07-05?11:02??DOG_filter\DoG_test.m
?????文件?????261040??2016-06-24?17:37??DOG_filter\dota2.jpg
?????文件?????389224??2016-06-24?17:37??DOG_filter\ES.jpg
?????文件?????279548??2016-07-05?10:15??DOG_filter\hunan.jpg
?????文件?????129837??2016-06-24?17:38??DOG_filter\jugg.jpg
?????文件??????17718??2016-06-24?17:19??DOG_filter\LENA.jpg
?????文件??????47977??2016-07-05?10:15??DOG_filter\zhalan.jpg
?????目錄??????????0??2016-07-05?11:04??DOG_filter
-----------?---------??----------?-----??----
??????????????1653661????????????????????9
評論
共有 條評論