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

时间:2012-11-17 14:16:58

标签: 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中可用的功能?

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

Here是粒子过滤器的另一种实现,使用了OpenCV和GSL库。作者提供的源代码易于阅读。也许你可以从中学到一些东西。