计算机图形学实验---三维重建(SLAM)

计算机图形学实验—三维重建(SLAM)

本实验于2023年秋季学期进行,感谢教辅的PPT!

一.环境

本实验使用python,使用的库为numpy,os,cv2,open3d

二.实验原理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
张正友标定
张正友标定项目地址
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三.算法流程

1.读取相机内参(fx,fy,cx,cy)、外参数(R,T),将外参的四元数转化成R矩阵;
在这里插入图片描述
2.读取相机对应的深度图和RGB图,注意opencv读取RGB图的结果是BGR格式;
3.对深度图进行处理,除以实际的尺度depth_scale=1000;
4.遍历所有的像素,利用公式计算对应的3D点位置。
在这里插入图片描述
  在相机有外参的情况下,可以先默认把相机放在世界坐标系原点处,转化成如下公式:
在这里插入图片描述
  便可以得到每个像素(u,v)和对应的3D点坐标(x_w,y_w,z_w),再利用相机外参数4*4的[R T]与[x_w,y_w,z_w,1]相乘即可转换到实际位置(也可旋转和平移分开进行)
在这里插入图片描述
5.重复上述1-4步,将每一张图获得的点云累加;
6.对重建的点云进行可视化(截图保存),可以利用第三方库可视化或保存成ply等格式用meshlab软件可视化;
7.直接拼接累加的点云往往存在噪声,需对最终的点云进行点云滤波(如统计滤波、半径滤波、体素滤波等),这一步可使用第三方库如pcl或者open3d,对点云进行过滤,并可视化结果,需提供对比图片,可以对比不同参数的过滤结果,选择效果最好的;
8.将最终对点云保存成ply,可以将点云信息直接写入文件,保存示例如下,也可用第三方库保存;
在这里插入图片描述

博客借鉴
图片
将四元数转换为外参矩阵

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值