<< NL_V_RectanglesCornersA NL_V: Vision NL_V_RectanglesZoom >>

NARVAL >> NL_V: Vision > NL_V_RectanglesCornersI

NL_V_RectanglesCornersI

Extract the corners of the ith object of an obstacle (Multi-Rectangles).

Calling Sequence

[Xi,Yi] = NL_V_RectanglesCornersI(X,Y,N,I)

Arguments

X :

X-coordinate of corners.

Y :

Y-coordinate of corners.

N :

Quantity of corners per object (vector).

I :

Object index.

:

X-coordinate of corners of the ith object.

:

Y-coordinate of corners of the ith object.

Description

NL_V_RectanglesCornersI extracts the corners of the Ith object of an obstacle created with Multi-Rectangles (see NL_V_RectanglesCorners). After a false detection scheme, real corners coordinates are stored in [X,Y]. N provides the number of corners for each obstacle.

Examples

dt=getdate();
seed=dt(10);
rand('seed',seed);//initialization of the random values generator
no=4;//quantity of obstacles (rectangle)
L=1000;//squared area side
hm=100;//minimal height
hM=250;//maximal height
wm=100;//minimal width
wM=250;//maximal width
Al=[0 %pi/2 %pi -%pi/2];//available angles for obstacles
[Xs,Ys,X,Y,H,W,A]=NL_V_RectanglesCorners(no,L,hm,hM,wm,wM);//generation of obstacles
[P]=NL_V_PotentialRectangles(X,Y,H,W,A,L);//generation of obstacle matrix
z=10;//zoom factor
o=2;// 1=mean, 2=max, 3=min, 4=median
Pz=NL_V_MRA(P,z,o);//scale modification
[Pzx,Pzy]=size(Pz);//image size
w1=1;//window index
w2=2;//window index
scf(w1);
clf(w1);
grayplot(1:Pzx,1:Pzy,Pz);//graph visualization
xset("colormap",graycolormap(128));
scf(w2);
clf(w2);
[PEz]=NL_V_Erosion(Pz);//contour performance
Cont=Pz-PEz;//contour 1
[Contx,Conty]=size(Cont);
grayplot(1:Contx,1:Conty,Cont);
xset("colormap",graycolormap(128));
w3=3;//window index
scf(w3);
clf(w3);
[Dim]=NL_V_DistanceMapObject(Pz,Cont);//creation of the distance map
[Dimx,Dimy]=size(Dim);//image size
grayplot(1:L/z,1:L/z,Dim);//graph visualization
xset("colormap",graycolormap(128));
HL1=[0 -1 0;-1 4 -1;0 -1 0];//kernel 1
HL2=[-1 -1 -1;-1 8 -1;-1 -1 -1];//kernel 2
[Dim1]=NL_V_Convolution2D(Dim,HL2);//convolution
[Dim1x,Dim1y]=size(Dim1);//image size
w4=4;//window index
scf(w4);
clf(w4);
grayplot(1:Dim1x,1:Dim1y,Dim1);
xset("colormap",graycolormap(128));
wm=3;//parameter
[cornerz]=NL_V_Moravec(Pz,wm);//extraction of corners
T=(max(cornerz)+min(cornerz))/2;//threshold
[cornerT]=NL_V_MoravecFilter(cornerz,T);//application of a threshold
[cornerTx,cornerTy]=size(cornerT);//image size 
w5=5;//window index
scf(w5);
clf(w5);
grayplot(1:cornerTx,1:cornerTy,cornerT);//graph visualization
xset("colormap",graycolormap(128));
[x,y,direction,n]=NL_V_ContourCorners(Cont);//Corners detection
lc=2;//parameters
DT=3;
Tcorel=1;
Tgrad=1;
[xs,ys,ns]=NL_V_ContourCornersFilt(x,y,direction,n,lc,Tcorel,Tgrad,DT);//remove false detections
for kl=1:length(ns)
[xsi,ysi]=NL_V_RectanglesCornersI(xs,ys,ns,kl)//application of NL_V_RectanglesCornersI 
end

Report an issue
<< NL_V_RectanglesCornersA NL_V: Vision NL_V_RectanglesZoom >>