【发布时间】:2011-09-29 12:26:08
【问题描述】:
另一个 OpenCV 问题;
无需我实现 2 个版本 - 谁能告诉我 cvPOSTIT 和 cvFindExtrinsicCameraParams2 之间的区别以及它们各自的优点。
输入和输出似乎相同。
【问题讨论】:
标签: iphone opencv augmented-reality
另一个 OpenCV 问题;
无需我实现 2 个版本 - 谁能告诉我 cvPOSTIT 和 cvFindExtrinsicCameraParams2 之间的区别以及它们各自的优点。
输入和输出似乎相同。
【问题讨论】:
标签: iphone opencv augmented-reality
根据我的经验,cvFindExtrinsicCameraParams2() 适用于共面点(因此它可能是http://dl.acm.org/citation.cfm?id=228149 的实现),而 cvPOSIT() 则不然。但我不是 100% 确定。
【讨论】:
cvPOSIT() 似乎只存在于 OpenCV 的旧 C API 中,而不存在于新的 C++ API 中。相反,cvFindExtrinsicCameraParams2() 在两者中。虽然不是一个完美的指标,但我最好的猜测是,它们都实现了 POSIT 算法,并进行了少量修改,而前者仅出于遗留原因而存在。
除此之外,你的猜测和我的一样好。如果你想要一个明确的答案,我建议在 OpenCV 邮件列表中询问。
【讨论】:
我已经使用过 cvPOSIT。它仅适用于对象上的 3D 非共面点。因为它基于“DAVIS, D. F. D. A. L. S. 1995. Model-Based Object Pose in 25 Line of Code”中的算法。因此,您必须找到一种解决共面特征的方法
使用 cvFindExtrinsicCameraParams2(),它也适用于平面特征,使用 cvFindHomography 求解变换,然后通过 levenberg-marquardt 近似来细化结果。对于非共面点,预处理由不同的方法 DLT(直接线性变换)完成(不再是“.. 25 行代码”文章)
我不太确定他们的性能,哪个更快。据我所知,“.. 25 行代码”非常快,并且到目前为止适用于实时视觉。
【讨论】: