如何将solvePnPRansac与double值一起使用?

时间:2012-07-24 20:35:57

标签: c++ opencv

我正在尝试使用OpenCV的solvePnPRansac()来计算来自对象的已知2D投影的3D姿势。我的值(内在相机参数,模型点(3D),图像点(2D))都是双值。正常solvePnP()并没有抱怨。

但是,当我尝试使用solvePnPRansac时,会产生错误消息:

  

断言失败< opoints.depth()== CV_32F>

如何将此功能用于双值? (使用float不能产生预期的结果)

1 个答案:

答案 0 :(得分:2)

今天我测试了SolvePnPRAnsac,对于ITERATIVE和P3P,结果看起来是一样的,但是当我使用这些结果来渲染我的对象时,渲染的图像与当前帧非常不同。 在EPnP选项的情况下,平移向量与ITERATIVE和P3P结果非常相似,但旋转与其他两个选项非常不同。然而,我从Epnp得到的渲染图像结果非常好,在实现算法时似乎存在P3P和ITERATIVE的一些问题。