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

Private GIT Repository
modif finale lnivs + keywords
[these_gilles.git] / THESE / codes / snake / basic_code / GetContourNormals2D.m
1 function N=GetContourNormals2D(P)\r
2 % This function calculates the normals, of the contour points\r
3 % using the neighbouring points of each contour point\r
4 %\r
5 % N=GetContourNormals2D(P)\r
6\r
7 % inputs,\r
8 %  P : List with contour coordinates M x 2\r
9 %\r
10 % outputs,\r
11 %  N : List with contour normals M x 2\r
12 %\r
13 % Function is written by D.Kroon University of Twente (July 2010)\r
14 \r
15 % Use the n'th neighbour to calculate the normal (more stable)\r
16 a=4;\r
17 \r
18 % From array to separate x,y\r
19 xt=P(:,1); yt=P(:,2);\r
20 \r
21 % Derivatives of contour\r
22 n=length(xt);\r
23 f=(1:n)+a; f(f>n)=f(f>n)-n;\r
24 b=(1:n)-a; b(b<1)=b(b<1)+n;\r
25 \r
26 dx=xt(f)-xt(b);\r
27 dy=yt(f)-yt(b);\r
28 \r
29 % Normals of contourpoints\r
30 l=sqrt(dx.^2+dy.^2);\r
31 nx = -dy./l; \r
32 ny =  dx./l;\r
33 N(:,1)=nx; N(:,2)=ny;\r