cvPOSIT和cvFindExtrinsicCameraParams2之间的区别

时间:2011-07-06 10:39:15

标签: iphone opencv augmented-reality

另一个OpenCV问题;

如果没有我必须实现2个版本 - 任何人都可以告诉我cvPOSTIT和cvFindExtrinsicCameraParams2之间的差异,以及每个版本的优点。

输入和输出似乎相同。

3 个答案:

答案 0 :(得分:3)

根据我的经验,cvFindExtrinsicCameraParams2()适用于共面点(因此它可能是http://dl.acm.org/citation.cfm?id=228149的实现),而cvPOSIT()则不适用。但我不是百分百肯定。

答案 1 :(得分:1)

似乎cvPOSIT()仅存在于OpenCV的旧C API中,而不存在于新的C ++ API中。相反,cvFindExtrinsicCameraParams2()同时存在。虽然不是一个完美的指标,但我最好的猜测是他们都实施了POSIT算法并进行了少量修改,前者只是出于遗留原因而存在。

除此之外,你的猜测和我一样好。如果你想要一个明确的答案,我建议在OpenCV邮件列表上询问。

答案 2 :(得分:1)

我已经使用过cvPOSIT了。它仅适用于对象上的3D非共面点。因为它基于“DAVIS,D.F。D. A. L. S. 1995.Model Based Object Pose in 25 Lines of Code”的算法。所以你必须找到一个共面特征的方法

使用cvFindExtrinsicCameraParams2(),它也适用于平面特征,使用cvFindHomography解决转换,然后通过levenberg-marquardt近似细化结果。对于非共面点,预处理是通过不同的方法DLT(直接线性变换)(不再是“...... 25行代码”文章)完成的。

我不太确定他们的表现,哪一个更快。据我所知,“...... 25行代码”速度非常快,适用于到目前为止的实时视觉。