从给定的世界点(原始坐标),内在矩阵,旋转矩阵和平移向量计算重投影点,重投影误差和平均重投影误差的步骤是什么?
是否有内置的opencv功能,或者我们应该计算手动?
如果我们必须手动计算,获得重新投射点的最佳方法是什么?
答案 0 :(得分:-1)
projectPoints
投影3D指向图像平面。
calibrateCamera
返回最终的重新投影错误。 calibrateCamera
从校准模式的多个视图中找到相机的内在和外在参数。
该函数估计内在的相机参数和外在的 每个视图的参数。该算法基于 [Zhang2000] 1 和[BouguetMCT] 2 。三维物体点和坐标 必须指定每个视图中相应的2D投影。 这可以通过使用具有已知几何形状的对象来实现 易于检测的特征点。这样的对象叫做a 校准装置或校准模式,OpenCV内置 支持棋盘作为校准装置(见
findChessboardCorners()
)。该算法执行以下步骤:
计算初始内部参数(该选项仅可用 对于平面校准模式)或从输入读取它们 参数。失真系数最初都设置为零 除非指定了
CV_CALIB_FIX_K?
的某些内容。估计最初的 相机姿势好像内在参数已经知道。 这是使用
solvePnP()
完成的。- 醇>
运行全球Levenberg-Marquardt 优化算法,以减少重投影错误,即, 观察到的特征点之间的平方距离的总和
imagePoints
和预计(使用当前的相机估算值) 参数和姿势)对象点objectPoints
。看到projectPoints()
了解详情。该函数返回最终结果 重新投影错误。
1 张正友。一种灵活的摄像机校准新技术。 模式分析和机器智能,IEEE Transactions on ,2000,22.11:1330-1334。
<子> 2 J.Y.Bouguet。 MATLAB校准工具。 http://www.vision.caltech.edu/bouguetj/calib_doc/