理解好图像的点云拼接,需要从相机的模型说起。理解相机的成像原理之后,便可更为深刻的理解图像的点云如何拼接在一起。
首先说下相机的概念与原理。
相机概念与原理
相机的作用:将三维世界中的坐标点(单位为米)映射到二维图像平面(单位为像素)。
通常我们见到的相机都是针孔相机,但是不是简单的 针孔,还有透镜的畸变存在,所以在做图像处理时要进行畸变校正。
由于畸变的存在,我们在使用相机之前都要进行相机标定。
目的就是求出内参对于简单的应用求出径向畸变和切向畸变就够了。
所谓的外参就是相机的位姿。
有了外参、内参、图像、深度信息 便可以把图像中的点,转到世界坐标系下,并带有RGB的颜色。就形成了所谓的点云。
相关的公式也很好理解 ,就是通过相似三角形的原理。
注意其中fx 、fy、 cx 、cy也就是相机的内参了。在相机出厂时会给出。
理解了相机的概念与原理,来编辑代码实现下。
Code实现
全部代码
先放上全部代码,再进行分段讲解
代码讲解
读取对应路径下的彩色图像、深度图像、相机的位姿。
上面说了,有了这三个量再加上相机内参,就可以得到点云。
//相机内参
传说中的相机内参
//定义点云使用的格式
声明pcl的格式创建一个点云,然后开始for循环处理每一张图片和对应的深度图片与相机位姿。
得到要处理的彩色图像深度图像对应的pose,然后for循环处理每一个像素。
得到深度信息
通过:
这个公式得到相机坐标系下的 x,y,z
相机坐标系下的点通过坐标变换转到世界坐标系下。
赋值点云的坐标与颜色。
保存成点云文件。
责任编辑:lq6
-
图像
+关注
关注
2文章
1084浏览量
40461 -
拼接
+关注
关注
0文章
15浏览量
12660
原文标题:图像的点云拼接-原理讲解与代码实现
文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论