aihot  2017-05-27 19:08:15  OpenCV |   查看评论   
算法步骤如下:
 
(1)令i=1,获得第i帧图像I(x,i);
 
(2)获得第i+1帧图像I(x,i+1);
 
(3)对图像去噪,得到去燥后图像I '(x, i)和I '(x, i+1);
 
(4)利用I '(x, i)和I '(x, i+1)计算得到光流场;
 
(5)计算得到局部动能场K(i);
 
(6)利用边缘检测算法(如基于小波的方法)局部动能场并分割图像得到不同的运动单元也理解为一个运动单元);
 
(7)由于目标一般较背景小,故提取出体积较运动单元作为检测目标;
 
(8)计算其质心作为目标位置;
 
(9)置i=i+1,重复(2)~(8),直至检测结束。
 
基于光流场分析的运动目标检测方法,不仅包含了被观察物体的运动信息,而且携带了三维结构的丰富信息,因此它不仅可以用于运动目标检测,还可以直接应用于运动目标跟踪,能够很精确的计算出运动目标的速度,同时在摄像机存在运动的情况下也能够检测出运动目标。而在实际的应用中,由于存在多光源、遮挡性、噪声和透明性等多方面的原因,光流场基本方程中的灰度守恒这个假设条件是得不到满足的,因此不能求解出正确的光流场,同时由于其采用的是迭代的求解计算方法,故需要的计算时间比较长,从而无法满足实时的要求,并且该方法受噪声的影响较大,因而该方法多适用于目标运动速度不大,图像噪声比较小的情况。
 
cvCalcOpticalFlowPyrLK 函数在使用时,首先要确定特征点,也就是目标旧的位置。
 
本程序通过使用cvGoodFeaturesToTrack 函数选择角点作为特征点。
 
本程序只是一个简单的运动检测,在具体应用过程中,可以根据自己的需要修正
 

除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自运动目标检测__光流法

留言与评论(共有 0 条评论)
   
验证码:
[lianlun]1[/lianlun]