Chroma Based Road Tracking System Matlab Code

For More Matlab Projects Visit last Posted Matlab Project Traffic Sign Recognition Using Matlab .

Introduction

• Our Objective is to Detect Road tract using road edges especially when road signs or marking are not available.
• Input is video.avi format first frames are extracted and then Chroma based segmentation is applied.
• Figure Below Shown the Project model we have to implement this project according the Below Block Set.

Scenarios when both edges of road are visible

• First algorithm search for the detection of left and right edges of the road.
• This is done by simply analyzing video frames and when there’s change in color behavior algorithm search for edges by drawing lines on road starting from the center and in the same way lines move towards the edges as shown in the figure below
• Lines started from Initial Lines Pair and then lines are Expanding and finally when there is Convergence edges are found

Algorithm Result

Now the following image below shows result of above procedure.

Templates

Following images were used for concatenation

Matlab Implementation

for k = 1 : numFrames-1

mov(k).cdata = vidFrames(:,:,:,k);
a=mov(k).cdata;
z=mov(k).cdata;
for i=1:r
for j=1:c
if(a(i,j,1)>100&&a(i,j,2)>120&&a(i,j,3)>110&&a(i,j,1)<255&&a(i,j,2)<255&&a(i,j,3)<255) if(a(i,j,1)>120&&a(i,j,2)>190&&a(i,j,3)>120&&a(i,j,1)<160&&a(i,j,2)<255&&a(i,j,3)<150) z(i,j,1)=255; z(i,j,2)=255; z(i,j,3)=255; else z(i,j,1)=0; z(i,j,2)=0; z(i,j,3)=0; end else z(i,j,1)=255; z(i,j,2)=255; z(i,j,3)=255; end end end z=z(:,:,1); check=0; if(z(r,c/2)==0&&z(r-2,c/2)==0) for i=1:1:r-10 if(z(i,1)&&z(i+1,1)&&z(i+2,1)&&z(i+4,1)&&z(i+5,1)==255&&z(i+10,1)==255) x=i; end if(z(i,c)&&z(i+1,c)&&z(i+2,c)&&z(i+4,c)&&z(i+5,c)==255&&z(i+10,c)==255) y=i; end end if(x>=160&&y>=160)
if(x==y||x==y+2)
a(120:169,120:169,:)=arrow3;
check=1;
elseif(x<y) a(120:169,120:169,:)=arrow4; check=1; elseif(x>y)
a(120:169,120:169,:)=arrow2;
check=1;
end

end
if(check==0)
a(120:169,120:169,:)=arrow5;
end
else
a(120:169,120:169,:)=cross;
end
mov(k).cdata=a;
vidFrames(:,:,:,k)=mov(k).cdata;
end
implay(Frames);
implay(vidFrames);

How To See Output

Just play these two input and output videos to see output.

Source Code

Like , share this post on Facebook , Twitter by using left moving Social Sharing block and follow us on Facebook Page , Twitter and do comment and enter your email. After you have done you will automatically get source code in your mail. Note : This will be auto generated mail you can’t get until you follow above method.

27 Responses

1. john

this is so cool, can’t wait to get my hands on this. look forward to studying more of this! this is the answer to tonnes of my questions!

2. aswinrajan

Hi ,aswinrajan23@gmail.com
This is my mail,id could you send the source for this project?