一、随机下采样
点云下采样是对点云以一定的采样规则重新进行采样,目的是在保证点云整体几何特征不变的情况下,降低点云的密度,进而可以降低相关处理的数据量和算法复杂度。
随机下采样顾名思义,随机下采样就似乎在原始点云中随机采样一定点数的点。这种方法最终得到的点云数量也是固定的。
二、代码部分
注:测试代码均使用PclSharp1.12.0库
/// <summary>
/// 随机下采样
/// 最终得到的点云数量也是固定的。
/// </summary>
/// <param name="inCloud"></param>
/// <param name="sample">下采样的点数</param>
/// <param name="seed">随机函数种子点</param>
/// <returns></returns>
public static PointCloudOfXYZ RandomSample(PointCloudOfXYZ inCloud, uint sample = 10000, uint seed = 1)
{
try
{
PointCloudOfXYZ cloudFiltered = new PointCloudOfXYZ();//滤波后的点云
using (var filter = new PclSharp.Filters.RandomSampleOfXYZ())
{
filter.SetInputCloud(inCloud);
filter.Sample = sample;//设置下采样点云的点数
filter.Seed = seed;//设置随机函数种子点
filter.filter(cloudFiltered);
}
return cloudFiltered;//返回滤波后的点云
}
catch (Exception)
{
return inCloud;//返回滤波前的点云
}
}
三、结果显示