基于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的点云面分割算法的主要内容,如果未能解决你的问题,请参考以下文章
点云处理技术之PCL随机采样一致算法(Random sample consensus,RANSAC)
MATLAB点云处理(十六):多项式曲线拟合(RANSAC | MSAC)