1、边界提取采用PCL库中的方法,基于法线估计来实现的边界检测与提取:由点云估计出法线,再由法线和点云数据估计出边界。
有多个参数需要用户根据自己的数据进行调整,其中影响主要是估计法线的半径设置ne.RadiusSearch,设置为分辨率的10倍时,效果较好,主要是对于法线估计。邻域半径选择太小了,噪声较大,估计的法线就容易出错,而搜索邻域半径设置的太大估计速度就比较慢。boundEst.RadiusSearch ,也设置10倍,太小则内部的很多点就都当成边界点了。最后一个参数是边界判断时的角度阈值,默认值为PI/2,此处设置为PI/4,用户也可以根据需要进行更改。
2、源码
注:测试代码均使用PclSharp1.12.0库
using PclSharp;
using PclSharp.Features;
using PclSharp.Helpers;
using PclSharp.IO;
using PclSharp.Search;
using PclSharp.Struct;
using PclSharp.Surface;
using System;
namespace PclSharpTest
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine($"C#--PclSharp算法库测试:");
//读取点云数据
var cloud = new PointCloudOfXYZ();
using (var reader = new PCDReader())
reader.Read(AppDomain.CurrentDomain.BaseDirectory + $"//pcd//table_scene_lms400.pcd", cloud);
//体素滤波
using (var sor = new PclSharp.Filters.VoxelGridOfXYZ())
&nb

本文探讨了如何使用PCL库中的法线估计进行点云边界检测,关键参数如法线估计半径、邻域搜索范围和角度阈值的优化,以及在实际应用中的效果展示。
最低0.47元/天 解锁文章
1735





