基于RANSAC的点云面分割算法

Posted lovebay

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于RANSAC的点云面分割算法相关的知识,希望对你有一定的参考价值。

该算法在RANSAC和空间检索树的基础上实现的。

算法思路:

1、点云抽希、法线估计

2、出局点索引存储声明

3、平面检测

    for (size_t i = 0; i < cloudTemp->points.size(); i++)

   

判断为出局点;

         if (检索一定量的临近点)

        

              判断搜索点集是否符合要求;

              存储搜索的点集 ;

        

         RANSAC平面拟合(ransac计算平面模型参数);

        判断平面拟合的正确性;

         /*

         * 利用拟合平面 计算点云到该面距离, 设置容差  判断点云是否在平面内

         */

         for (size_t j = 0; j < tr_cloud->points.size(); j++)

        

             判断出局点;

判断 平面法向与点法向的一致性 (求解两个空间向量的夹角);

                 

             存储平面内的点集;

             更新出局点;

        

 

         //平面的噪点 离群点剔除

         //...

        存储平面数据;

       

   

效果如下:

技术图片

 

以上是关于基于RANSAC的点云面分割算法的主要内容,如果未能解决你的问题,请参考以下文章

3D,点云分割,不要割个寂寞

点云处理技术之PCL随机采样一致算法(Random sample consensus,RANSAC)

MATLAB点云处理(十六):多项式曲线拟合(RANSAC | MSAC)

Open3D 点云RANSAC拟合圆(Python版本)

Sift+ICP点云基于Sift+ICP算法的点云数据配准算法matlab仿真

MATLAB点云处理(十八):直线拟合(最小二乘 | RANSAC)