cvCamShift函数

来源:互联网 发布:bootstrap 可视化编程 编辑:程序博客网 时间:2024/06/16 08:47


CamShift算法原理
      我们将MeanShift算法扩展到连续图像序列(一般都是指视频图像序列),这样就形成了CamShift算法。CamShift算法的全称是"Continuously Apaptive Mean-SHIFT",它的基本思想是视频图像的所有帧作MeanShift运算,并将上一帧的结果(即Search Window的中心和大小)作为下一帧MeanShift算法的Search Window的初始值,如此迭代下去,就可以实现对目标的跟踪。整个算法的具体步骤分5步:
Step 1:将整个图像设为搜寻区域。
Step 2:初始话Search Window的大小和位置。
Step 3:计算Search Window内的彩色概率分布,此区域的大小比Search Window要稍微大一点。
Step 4:运行MeanShift。获得Search Window新的位置和大小。
Step 5:在下一帧视频图像中,用Step 3获得的值初始化Search Window的位置和大小。跳转到Step 3继续运行。

源码分析如下:



CVAPI(int)  cvCamShift( const CvArr* prob_image, CvRect  window,  CvTermCriteria criteria, CvConnectedComp* comp, CvBox2D* box CV_DEFAULT(NULL) );  /* prob_image 色彩概率分布图像 window     search window的初始值 criteria   判断搜索是否停止的一个标准 comp       保存运算结果,包括新的search window的位置和面积 box        包含被跟踪物体的最小矩形 */  


boundingRect()函数的使用方法

函数作用:

计算轮廓的垂直边界最小矩形,矩形是与图像上下边界平行的
如下图,找轮廓的最小的外边界矩形框




0 0