Kinect V2 开发指南(二)

今天刀哥带你们去了解一下点云的一些操作,请系好安全带,我们要发车了。

上一节我们讲如何将深度图像变成点云图像,这节我们就讲讲如何在点云中找到我们所需的部分。

我们以一个挡书板为例来说明怎么将这个东西分割出来。

首先,说到点云操作就不得不说一个开源库PCL库,这个库里有一些基础的点云操作函数。在不太深入的学习和开发中,这些函数是够用的。除了一些基础的输入输出、点云构建的函数之外,在这里主要用到了两种函数,一种是点云的滤波函数,另一种是点云的分割函数,一起来试试看吧。

祭出我们上一节的点云图。

可以看出这个点云中包含了非常多的场景信息,我们想要的只是挡书板的信息,怎么办呢?首先我们来介绍一下点云的直通滤波,直通滤波是以一个轴为基准,有一个距轴一定距离的参数,这个参数附近的点云会被保留下来,其他部分会被当成噪声给滤掉,就是这么简单,那么我们来看一下直通滤波后的图像吧!

我们会发现大部分点云信息都被清除了,剩下了挡书板平面附近的点云信息了。但是这还不够哦,我们需要彻底把挡书板的信息提取出来,接下来我们需要用到的一个函数是平面模板匹配,原理这里先不讲,自己可以去搜搜看,它通过一定算法对点云进行计算然后判断点云是否是一个平面,值得一说的是这个算法会对每个点进行操作,因此要在之前放上一个直通滤波,这样就能很好的降低这个算法的计算量。分割完之后的图像就比较完美了。

可以看出这是两个挡书板的表平面,信息完整,平面完好,建模出来的效果一定比较不错,但是在建模之前一定要记得进行统计滤波,滤掉一些可能出现的离散点,因为这种点会对重建算法就很大影响。

今天就先讲到这里,下一节我们来讲一下如何对点云进行三维重建。

猜你喜欢

转载自blog.csdn.net/Legend_of_Dagger_Lee/article/details/89310846
今日推荐