ORBSLAM中的三角化—理论与实现

《slam十四讲》一书中有解释三角化,结论就是有了对极约束就可以三角化将地图点恢复出来。但是在ORBSLAM中三角化的代码部分,所用到的方法要更高级。 

理论—— 

所涉及到的理论参见《Multi View Geometry in Computer Vision》第321页。这一页如下,解释的很简练,你可以再参照书中的其他内容帮助理解。  

大致意思就是,得到A矩阵,解AX=0,X即3D点位置。 求解AX=0可以用SVD方法。   

 

 

实现——

/**
 * @brief 给定投影矩阵P1,P2和图像上的点kp1,kp2,从而恢复3D坐标
 *
 * @param kp1 特征点, in reference frame
 * @param kp2 特征点, in current frame
 * @param P1  投影矩阵P1
 * @param P2  投影矩阵P2
 * @param x3D 三维点
 * @see       Multiple View Geometry in Computer Vision - 12.2 Linear triangulation methods p312
 */
void Initializer::Triangulate(const cv::KeyPoint &kp1, const cv::KeyPoint &kp2, const cv::Mat &P1, const cv::Mat &P2, cv::Mat &am
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值