如何使用OpenCV中提供的缩合算法?

enz*_*m83 5 c c++ opencv particle-filter

我需要使用缩合算法和OpenCV库来实现一个用于跟踪图像流中移动对象的软件.我已经读过OpenCV包含了这个算法的实现,但是我没有找到解释如何使用OpenCV中可用的相应函数的示例或教程.

cvCreateConDensation函数分配CvConDensation结构并需要状态向量(dynam_params)的维度,测量向量的维度(measure_params)和样本数量(sample_count).

  • 状态向量的维度应该指对象状态:例如,如果状态可以是被跟踪对象的中心点,那么状态向量应该包含对象中心的两个坐标,所以维度在这种情况下,状态向量应为2; 以类似的方式,如果对象的状态由属于其形状的S点形成,则我将指定2*S作为dynam_params值(即,坐标的数量等于2*S).它是否正确?
  • 样本数是粒子数,因此sample_count必须使用用于跟踪对象的粒子数来设置参数.
  • 测量矢量的尺寸如何?measure_params参数的目的是什么?

cvConDensInitSampleSet函数初始化凝聚算法的样本集.哪个规则用于初始化样本集?哪个分布用于初始化样本集?给定要跟踪的对象的起始位置和边界框,该函数如何初始化样本集?

执行算法的完整交互(选择,预测测量)的功能是什么?样本如何更新?

是否有任何教程详细解释如何使用OpenCV中可用的功能?