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

         {

             判断出局点;

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

                 

             存储平面内的点集;

             更新出局点;

         }

 

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

         //...

        存储平面数据;

       

    }

效果如下:

 

posted @   玥茹苟  阅读(1835)  评论(3编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示