图像的点云是如何拼接在一起的?

描述

理解好图像的点云拼接,需要从相机的模型说起。理解相机的成像原理之后,便可更为深刻的理解图像的点云如何拼接在一起。

首先说下相机的概念与原理。

相机概念与原理

相机的作用:将三维世界中的坐标点(单位为米)映射到二维图像平面(单位为像素)。

通常我们见到的相机都是针孔相机,但是不是简单的 针孔,还有透镜的畸变存在,所以在做图像处理时要进行畸变校正。

由于畸变的存在,我们在使用相机之前都要进行相机标定。

目的就是求出内参对于简单的应用求出径向畸变和切向畸变就够了。

所谓的外参就是相机的位姿。

有了外参、内参、图像、深度信息 便可以把图像中的点,转到世界坐标系下,并带有RGB的颜色。就形成了所谓的点云。

相关的公式也很好理解 ,就是通过相似三角形的原理。

图像

注意其中fx 、fy、 cx 、cy也就是相机的内参了。在相机出厂时会给出。

理解了相机的概念与原理,来编辑代码实现下。

Code实现

全部代码

先放上全部代码,再进行分段讲解

代码讲解

图像

读取对应路径下的彩色图像、深度图像、相机的位姿。

上面说了,有了这三个量再加上相机内参,就可以得到点云。

图像

//相机内参    

图像

传说中的相机内参

//定义点云使用的格式  

声明pcl的格式创建一个点云,然后开始for循环处理每一张图片和对应的深度图片与相机位姿。

图像


       

图像



     

图像


 

得到要处理的彩色图像深度图像对应的pose,然后for循环处理每一个像素。

得到深度信息

通过:

图像

这个公式得到相机坐标系下的 x,y,z

图像

相机坐标系下的点通过坐标变换转到世界坐标系下。

图像

赋值点云的坐标与颜色。

图像

保存成点云文件。

责任编辑:lq6

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分