For More Matlab Projects Visit last Posted Matlab Project Traffic Sign Recognition Using Matlab .
- 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
Now the following image below shows result of above procedure.
Algorithm Detected Edges of Road Shown by Pink and Yellow Lines
When There’s No Road
Results when only one side of road is visible
Result When Both Sides of Road Edges are Visible
Following images were used for concatenation
Used to Show Road is Left
Used to Show Road is Right Diagonal
Used to Show Road is Right
Used to Show Road is Left Diagonal
Used to Show Road Straight
Used to Show There’s No Road
arrow1=imread(‘arrow1.jpg’); arrow1=imresize(arrow1,[50 50]);
arrow2=imread(‘arrow2.jpg’); arrow2=imresize(arrow2,[50 50]);
arrow3=imread(‘arrow3.jpg’); arrow3=imresize(arrow3,[50 50]);
arrow4=imread(‘arrow4.jpg’); arrow4=imresize(arrow4,[50 50]);
arrow5=imread(‘arrow5.jpg’); arrow5=imresize(arrow5,[50 50]);
cross=imread(‘cross.jpg’); cross =imresize(cross,[50 50]);
readerobj = mmreader(‘roadtest.avi’);
Frames = read(readerobj);
vidFrames = read(readerobj);
numFrames = get(readerobj, ‘numberOfFrames’);
r = readerobj.Height;
c = readerobj.Width;
for k = 1 : numFrames-1
mov(k).cdata = vidFrames(:,:,:,k);
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)
elseif(x<y) a(120:169,120:169,:)=arrow4; check=1; elseif(x>y)
How To See Output
Just play these two input and output videos to see output.
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.