www.gusucode.com > 基于matlab编程去除车道线和其他非圆碟形状的结构目标物源 > 基于matlab编程去除车道线和其他非圆碟形状的结构目标物源码程序/code/main.m
clc trafficObj=VideoReader('a.avi'); nframes=get(trafficObj,'NumberOfFrames'); I=read(trafficObj,1); darkCarValue=50; taggedCars=zeros([size(I,1) size(I,2) 3 nframes],class(I)); for k=1:nframes singleFrame=read(trafficObj,k); I=rgb2gray(singleFrame); noDarkCars=imextendedmax(I,darkCarValue); sedisk=strel('disk',2); noSmallStructures=imopen(noDarkCars,sedisk); noSmallStructures=bwareaopen(noSmallStructures,150); L=bwlabel(noSmallStructures); taggedCars(:,:,:,k)=singleFrame; if any(L(:)) stats=regionprops(L,{'centroid','area'}); areaArray=[stats.Area]; [junk,idx]=max(areaArray); c=stats(idx).Centroid; c=floor(fliplr(c)); width=2; row=c(1)-width:c(1)+width; col=c(2)-width:c(2)+width; taggedCars(row,col,1,k)=255; taggedCars(row,col,2,k)=0; taggedCars(row,col,3,k)=0; end end frameRate=get(trafficObj,'FrameRate'); implay(taggedCars,frameRate); % imshow(darkCar); figure, imshow(noDarkCar)