VS2017+Opencv3.2.0SFM实现多目三维重建

实验大致步骤:

开发环境:VS2017+opencv3.2.0+opencv_contrib(因为要用到sift算子提取特征点)
1.首先需要已知相机的内部参数矩阵内部参数矩阵f为相机焦距,Cx,Cy分别为相机光心位置;
2.以第一次相机的坐标系为世界坐标系,对第一次和第二次拍摄的图片做特征匹配,通过两幅图的特征点可求得对应的本质矩阵E;
3.因为以第一个相机坐标系为世界坐标系,所以R1=I,T1=0,所以通过分解本质矩阵E可以求得R2,T2(即两个相机坐标系的位置变换关系);
4.通过前两次中的匹配点和K(内参矩阵)R2T2,可通过OpenCV中的**triangulatePoints()**函数来恢复部分点云;
5.加入第三次相机…拍摄的图片,可通过**solvePnPRansac()**函数(若空间点的位置和图像中的像素位置已知,则可以得出相机在空间中的位置)来求解第三个相机相对于第一个相机(世界坐标系)的位置关系。因为第三次和第二次拍摄的图片做特征匹配的特征点中肯定也包含了一些在第一次和第二次图片做特征匹配中的点(最少需要四对点),而且这些点的空间位置之前已经得到,即可求得相机三相对于相机一(世界坐标系)的变换矩阵;
6.得到相机三的变换矩阵后,则可以通过与第二次做特征匹配的匹配点来求得更多的点云(排除那些与相机一、二做特征匹配得到相同的特征点);
7.加入的更多相机图片依此类推,即可恢复一个相对稠密的三维点云了。
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值