相机校准与畸变校正:原理、方法及代码实现
1. 相机位姿计算
1.1 cv::solvePnP 函数
cv::solvePnP 函数用于计算对象(如棋盘)在多个帧中的位姿,相对于相机静止的情况。其输入的畸变系数是预先提供的,而非计算得出。旋转输出以 Rodrigues 形式呈现,是一个三维旋转向量,代表棋盘或点围绕旋转的三维轴,向量的大小表示逆时针旋转角度。该旋转向量可通过 cv::Rodrigues() 函数转换为 3×3 旋转矩阵。平移向量表示相机坐标系中棋盘原点的偏移量。
useExtrinsicGuess 参数可设置为 true ,表示将 rvec 和 tvec 参数的当前值作为求解器的初始猜测值,默认值为 false 。最后一个参数 flags 可以设置为 cv::ITERATIVE 、 cv::P3P 或 cv::EPNP 之一,以指示求解整个系统应使用的方法:
- cv::ITERATIVE :使用 Levenberg - Marquardt 优化来最小化输入图像点和对象点投影值之间的重投影误差。
- cv::P3P :基于 [Gao03] 方法,需要精确提供四个对象点和四个图像点,只有方法成功时, cv::SolvePNP 的返回值才为 true 。
超级会员免费看
订阅专栏 解锁全文
16

被折叠的 条评论
为什么被折叠?



