由于我比较关注点云在实际工作中的应用,所以在第一次听到这个需求的时候,也提出了自己认为能够解决的思路。上班笔记比较忙,下班又太困了,打工人太难了。有时间自己在实现下。
解决这个问题,主要是分以下几个步骤:
- 搜索某点处,周围的点云
- 获取到需要进行截图的点云后,即需要将三维空间的点云转到二维平面来显示,这个过程就类似在拍照,所以我们用到的是相机成像的原理,将三维的点云转到二维成像
- 得到二维平台的所有点云坐标后,就可以一个点坐标给图像的rgb通道进行赋值,点缀自己想要的颜色。图像本身就是一个个的像素矩阵,在有点云的地方,附上颜色的道理。
- 最后,将图像矩阵生成图片。
点云处理处理方面可以使用pcl这个强大的库进行处理,里边也实现了很多算法,开发者只需要知道怎么用,不用自己去实现,极大缩短了开发的时间。下边是基于pcl这个库来对上边的库进行比较细致的解释。
一、 点云近邻搜索
pcl里边实现了kd-tree来对三维空间的点云数据进行存储和管理,这也为点云的检索成为可能以及提供相应的检索手段(接口)。
pcl中八叉树库提供了八叉树数据结构,利用flann进行快速近邻检索,以及相应的空间处理算法。
有些小伙伴可能会问什么是八叉树?
八叉树(Octree)是一种用于描述三维空间的树状数据结构。想象一个立方体,我们最少可以切成多少个相同等分的小立方体?答案就是8个。再想象我们有一个房间,房间里某个角落藏着一枚金币,我们想很快的把金币找出来,怎么找最高效?我们可以把房间当成一个立方体,先