我需要使用压缩算法和 OpenCV 库实现一个软件来跟踪图像流中的移动对象。我读过 OpenCV 包含此算法的实现,但我没有找到解释如何使用 OpenCV 中可用的相应函数的示例或教程。
cvCreateConDensation
函数分配 CvConDensation
结构并要求状态 vector 的维度(dynam_params
),测量 vector 的维度(measure_params
)和样本数量 (sample_count
)。
- 状态 vector 的维度应该引用对象的状态:例如,如果状态可以是被跟踪对象的中心点,那么状态 vector 应该包含对象中心的两个坐标,所以在这种情况下,状态 vector 的维数应为 2;以类似的方式,如果对象的状态由属于其形状的 S 个点组成,那么我将指定 2*S 作为
dynam_params
值(即坐标数等于 2*S)。这是正确的吗? - 样本数就是粒子数,因此参数
sample_count
必须设置为用于跟踪对象的粒子数。 - 测量 vector 的维度如何?
measure_params
参数的用途是什么?
cvConDensInitSampleSet
函数初始化缩合算法的样本集。哪个规则用于初始化样本集?哪个分布用于初始化样本集?给定跟踪目标的起始位置和边界框,该函数如何初始化样本集?
执行算法的完整交互(选择、预测和测量)的函数是什么?样本如何更新?
是否有任何教程详细说明如何使用 OpenCV 中可用的函数?
最佳答案
可以在opencv和ross(同一作者)的问答中找到压缩算法的工作示例:
http://answers.ros.org/question/55316/using-the-opencv-particle-filter-condensation/
和
http://answers.opencv.org/question/6985/syntax-for-particle-filter-in-opencv-243/
关于c++ - 如何使用 OpenCV 中可用的压缩算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13431398/