基于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++)

         {

             判断出局点;

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

                 

             存储平面内的点集;

             更新出局点;

         }

 

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

         //...

        存储平面数据;

       

    }

效果如下:

猜你喜欢

转载自www.cnblogs.com/lovebay/p/11532757.html
今日推荐