文本内容:
算法原代码Vibe「,;带读取视频文件㊀video=Vid oReaderDSC_
0005.MOV获取视频高度参数㊀height=video.H ight;%获取视频宽度参数width=video.Width;%11se=strel disk,1;%%设置参数%获取视频总帧数NumFrames=video.NumberOf Frames;带阈值cardinality=2;给定半径r=20;%样本集数目n=20;%%%初始化;%初始化个高为宽为的图像bg=zeros height,width,n20height,width文件;%初始化个高为bgl=zeros height,width,NumFrames NumFramesheight,宽为的图像文件width fornn=1:n;%读取图像㊀㊀imrgb=r advid o,nn灰度化imgray=rgb2gray imrgb;%bg:,:,nn=imgray;end1bgpad=padarraybg,
[11]*replicate;z%%随机更新for f=25:NumFrames读取图像imageRGB=read video,f;%;%灰度化㊀image=rgb2gray imagRGBfor i=1:heightfor j=1:width获取div=abs bgi,j,:-double imagei,j;%I欢氏品目离logic=divr;bignum=sumlogic;if bignumcardinalitybgl i,j,f=0;%%随机选择初始化背景中的一个点用新点进行替换randz=randin;bgpadi+1,j+1,randz=imagei,j;%%随机改变邻域i,jrandy=randi[-11];randx=randi[-11];bgpadi+l+randy,j+l+randx,randz=imagei,j;elsebgli,j f=255;endfendend,,bgl::,f=bwareaopen bgl::,f,300;,,bgl=imdilatebgl:f,se;axeshandles.axes2;,imshow bgl::,f;disp f;是用来标记二值图像中的[L,num]=bwlabelbgl:,:,f;%bwlabel连通区域axeshandles.axesl;imshowimageRGB;hold on;;%转换标记矩阵到图像1RGB=label2rgb LRGB STATS=regionpropsL,1all;for i=l:num;为图像的横竖彳亍y=ceil STATS i.BoundingBox1r图像的竖彳亍x=ceil STATSi.BoundingBox2;%c;%图像的横竖行h=ceil STATSi.BoundingBox3r图像的竖彳亍㊀w=c ilSTATSi.BoundingBox4;%c11111%rectanglePosition,,[y,x,h,w],EdgeColor,r;enddrawnow end。
个人认证
优秀文档
获得点赞 0