【目标检测】基于背景差分法实现车辆检测附matlab代码

网友投稿 589 2022-09-04


【目标检测】基于背景差分法实现车辆检测附matlab代码

1 简介

运动目标的检测是数字图像处理和模式识别以及计算机视觉领域研究的主要内容之一,也是计算机视觉研究的一个重要领域.对基于背景差分法的视频目标检测的算法进行了研究.以Matlab为主体研究工具,对视频中的运动目标进行检测.对背景差分法的原理和算法进行了研究,并对其进行了详细的讨论和分析.利用中值滤波背景模型来提取背景,并对目标的阴影进行检测与抑制.实验结果表明,采用该算法对运动目标进行检测具有良好的准确性和稳定性.

背景差分法的原理是利用当前图像与背景图像的差分以提取运动区域的一种运动检测方法。根据灰度等特征的变化来判断,即利用当前图像与背景做差分,若差分值大于某一阈值时,则认为检测到目标。在背景差分算法中,背景图像选取的准确性直接导致最后目标检测的精确性。理想状况下,一般认为背景图像保持静止,并且当运动目标区域的像素值发生变化时,背景的像素值保持不变。背景差分法的公式为:

2 部分代码

clcclearclose all%获取帧图像video_path='video.avi';%把视频放到程序的文件夹,这里填视频名即可video_obj=VideoReader(video_path);frameNum=video_obj.NumFrames;file_name='image_run';%新建文件夹名称if ~exist(file_name,'dir')%如果没有这个文件夹 mkdir(file_name);%那就新建一个这个文件夹endfor i=1:frameNum image_name=strcat('./',file_name,'/im_',num2str(i),'.png');%用字符串和数字组合图片的路径+文件名 frame=read(video_obj,i); imwrite(frame,image_name,'png');%写入图像文件endthreshold=20;%差分阀值 imshow(originalPic) rectangle('position',max_rect,'EdgeColor','r');%找到边界赋值对应边界为红色 chafen1_name=strcat('./',file_name2,'/im_',num2str(p),'.png');%用字符串和数字组合图片的路径+文件名 imwrite(originalPic,chafen1_name,'png');endwriterObj=VideoWriter('动态检测_run.avi');%定义一个视频文件用来存动画open(writerObj);%打开该视频文件for p=1:frameNum-1 framename=strcat('./',file_name2,'/im_',num2str(p),'.png');%组合图片的路径+文件名 frame=imread(framename); writeVideo(writerObj,frame);%把帧写入视频endclose(writerObj);%关闭视频文件句柄disp('完成检测');

3 仿真结果

4 参考文献

[1]汪国强, 盖琪琳, 于怀勇,等. 基于背景差分法的视频目标检测算法研究[J]. 黑龙江大学工程学报, 2014, 5(4):5.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【语音去噪】基于最小二乘自适应滤波LMS和RLS实现语音去噪含Matlab源码
下一篇:java递归实现汉诺塔步骤介绍
相关文章

 发表评论

暂时没有评论,来抢沙发吧~