欢迎访问 生活随笔!

ag凯发k8国际

当前位置: ag凯发k8国际 > 人工智能 > 目标检测 >内容正文

目标检测

基于平均背景建模的运动目标检测 -ag凯发k8国际

发布时间:2024/3/13 目标检测 86 豆豆
ag凯发k8国际 收集整理的这篇文章主要介绍了 基于平均背景建模的运动目标检测 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

建立一个场景模型,包含图像灰度均值、帧间平均差值。

对于输入的后续视频,当灰度在区间内时,认为是静止区域,反之为运动目标。判断静止灰度区间为

                                                             

diff实际上可认为是为了抑制一定的噪声,当图像序列噪声很小时,效果不错,但在实际场景基本不适用,例如我的实验图像。

 

 

我使用了前100帧图像作场景建模,暂未考虑场景更新问题,因此不能适用于背景具有运动目标的情况(例如风吹窗帘、摇曳的树),光线问题。

 如下三幅图是对运动目标的检测,可以看出除了人物还有大量的噪声被检测出来。





因此,我对背景模型进行了去噪处理,采用了cvsmooth函数中的简单模糊、高斯、中值等,本以为中值效果应该最好,但由于噪声分布过于紧密,中值去噪并不好,最后采用15大小的普通加权去噪,效果如下。



使用大窗口进行模糊确实可以去除噪声,但对目标也会进行模糊,检测出现问题,此外,当噪声过大时,信号被严重干扰,甚至被淹没。说明简单的背景模型或去噪是行不通的。的背景模型或去噪是行不通的。


#include #include #includevoid main() { cvcapture *capture = cvcreatefilecapture("walk2.mpg");cvsize img_sz = cvsize(384,288);iplimage *pic;iplimage *frame = cvcreateimage(img_sz,8,1);iplimage *frame2 = cvcreateimage(img_sz,8,1);iplimage *framedn = cvcreateimage(img_sz,8,1);iplimage *imask = cvcreateimage(img_sz,ipl_depth_8u,1);iplimage *iscratch = cvcreateimage(img_sz,ipl_depth_32f,1);iplimage *iavgf = cvcreateimage(img_sz,ipl_depth_32f,1);iplimage *ipref = cvcreateimage(img_sz,ipl_depth_32f,1);iplimage *iscratch2 = cvcreateimage(img_sz,ipl_depth_32f,1);iplimage *idifff = cvcreateimage(img_sz,ipl_depth_32f,1);iplimage *ihif = cvcreateimage(img_sz,ipl_depth_32f,1);iplimage *ilowf = cvcreateimage(img_sz,ipl_depth_32f,1);int fnum=1,icount = 100,ht=5;cvzero(iavgf);cvzero(iscratch);cvzero(ipref);cvzero(iscratch2);cvzero(idifff);while(fnum<=icount){pic = cvqueryframe(capture);if(!pic) break;cvcvtcolor(pic,frame,cv_rgb2gray);cvsmooth(frame,framedn,cv_blur,15);cvcvtscale(framedn,iscratch,1.0,0);cvacc(iscratch,iavgf);cvabsdiff(iscratch,ipref,iscratch2);cvacc(iscratch2,idifff);cvcopy(iscratch,ipref);fnum ;}cvconvertscale(iavgf,iavgf,(double)(1.0/(icount))); /*均值*/cvconvertscale(idifff,idifff,(double)(1.0/(icount))); /*帧间插值*/cvadds(idifff,cvscalar(1.0),idifff);cvconvertscale(idifff,iscratch,ht); /*high threshold = low threshold*/cvadd(idifff,iavgf,ihif);cvsub(iavgf,iscratch,ilowf);while(1){pic = cvqueryframe(capture);if(!pic) break;cvcvtcolor(pic,frame,cv_rgb2gray);cvsmooth(frame,framedn,cv_blur,15);cvcvtscale(framedn,iscratch,1.0,0);cvinrange(iscratch,ilowf,ihif,imask);cvsubrs(imask,cvscalar(255),imask);cvnamedwindow("mask");cvshowimage("mask",imask);cvnamedwindow("frame");cvshowimage("frame",frame);cvwaitkey(33);}}


总结

以上是ag凯发k8国际为你收集整理的基于平均背景建模的运动目标检测的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得ag凯发k8国际网站内容还不错,欢迎将ag凯发k8国际推荐给好友。

  • 上一篇:
  • 下一篇:
网站地图