它是MeanShift算法的改进,称为连续自适应的MeanShift算法,CamShift算法的全称是"Continuously Adaptive Mean-SHIFT",它的基本思想是视频图像的所有帧作MeanShift运算,并将上一帧的结果(即Search Window的中心和大小)作为下一帧MeanShift算法的Search Window的初始值,如此迭代下去。

 

  Camshift 是由Meanshift 推导而来 Meanshift主要是用在单张影像上,但

 

  是独立一张影像分析对追踪而言并无意义,Camshift 就是利用MeanShift的方

 

  法,对影像串列进行分析。

 

  (1) 首先在影像串列中选择ㄧ区域。

 

  (2) 计算此区域的颜色2D机率分布。

 

  (3) 用MeanShift演算法来收敛欲追踪的区域。

 

  (4) 集中收敛的区域,并标示之。

 

  (5) 每个frame重复(3)(4)。

 

  Camshift 关键就在于当目标的大小发生改变的时候,此算法可以自适应调整目标区域继续跟踪。

 

  对于OPENCV中的CAMSHIFT例子,是通过计算目标HSV空间下的HUE分量直方图,通过直方图反向投影得到目标像素的概率分布,然后通过调用CV库中的CAMSHIFT算法,自动跟踪并调整目标窗口的中心位置与大小。

 

  这个算法对于纯色物体在黑白背景下的跟踪效果是很好的,但是如果背景的颜色与目标相近,或者目标附近有与目标的色调相近的算法比较物体,则CAMSHIFT会自动将其包括在内,导致跟踪窗口扩大,甚至有时会将跟踪窗口扩大到整个视频框架。

posted on 2011-11-12 18:51  Pierres  阅读(434)  评论(0编辑  收藏  举报