]> AND Private Git Repository - these_gilles.git/blob - THESE/codes/snake/basic_code/ImageDerivatives2D.m
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
final
[these_gilles.git] / THESE / codes / snake / basic_code / ImageDerivatives2D.m
1 function J=ImageDerivatives2D(I,sigma,type)\r
2 % Gaussian based image derivatives\r
3 %\r
4 %  J=ImageDerivatives2D(I,sigma,type)\r
5 %\r
6 % inputs,\r
7 %   I : The 2D image\r
8 %   sigma : Gaussian Sigma\r
9 %   type : 'x', 'y', 'xx', 'xy', 'yy'\r
10 %\r
11 % outputs,\r
12 %   J : The image derivative\r
13 %\r
14 % Function is written by D.Kroon University of Twente (July 2010)\r
15 \r
16 % Make derivatives kernels\r
17 [x,y]=ndgrid(floor(-3*sigma):ceil(3*sigma),floor(-3*sigma):ceil(3*sigma));\r
18 \r
19 switch(type)\r
20     case 'x'\r
21         DGauss=-(x./(2*pi*sigma^4)).*exp(-(x.^2+y.^2)/(2*sigma^2));\r
22     case 'y'\r
23         DGauss=-(y./(2*pi*sigma^4)).*exp(-(x.^2+y.^2)/(2*sigma^2));\r
24     case 'xx'\r
25         DGauss = 1/(2*pi*sigma^4) * (x.^2/sigma^2 - 1) .* exp(-(x.^2 + y.^2)/(2*sigma^2));\r
26     case {'xy','yx'}\r
27         DGauss = 1/(2*pi*sigma^6) * (x .* y)           .* exp(-(x.^2 + y.^2)/(2*sigma^2));\r
28     case 'yy'\r
29         DGauss = 1/(2*pi*sigma^4) * (y.^2/sigma^2 - 1) .* exp(-(x.^2 + y.^2)/(2*sigma^2));\r
30 end\r
31 \r
32 J = imfilter(I,DGauss,'conv','symmetric');\r