该算法在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++)
{
判断出局点;
判断 平面法向与点法向的一致性 (求解两个空间向量的夹角);
存储平面内的点集;
更新出局点;
}
//平面的噪点 离群点剔除
//...
存储平面数据;
}
效果如下:
原文地址:https://www.cnblogs.com/lovebay/p/11532757.html
时间: 2024-10-25 17:37:49