1方法
分别利用pcl::VoxelGrid,pcl::PassThrough,pcl::StatisticalOutlierRemoval对点云进行降采样,滤波,去燥处理。
2代码
pcl
::VoxelGrid
<pcl
::PCLPointCloud2
>sor
;
sor
.setInputCloud(cloud2
);
sor
.setLeafSize(1.0f, 1.0f, 1.0f);
sor
.filter(*cloud2_filtered
);
pcl
::fromPCLPointCloud2(*cloud2_filtered
, *cloud_me
);
cout
<< "原点云点数:" << cloud
->points
.size() << endl
;
cout
<<"降采样后点数:" <<cloud_me
->points
.size() << endl
;
pcl
::PassThrough
<pcl
::PointXYZ
> pass
;
pass
.setInputCloud(cloud_me
);
pass
.setFilterFieldName("z");
pass
.setFilterLimits(-54, -45);
pass
.setFilterLimitsNegative(true);
pass
.filter(*cloud_medium
);
cout
<<"按Z轴滤波后点数:" << cloud_medium
->points
.size() << endl
;
pcl
::StatisticalOutlierRemoval
<pcl
::PointXYZ
> remov
;
remov
.setInputCloud(cloud_medium
);
remov
.setMeanK(50);
remov
.setStddevMulThresh(1.0);
remov
.filter(*cloud_final
);
cout
<<"去噪后点数:"<< cloud_final
->points
.size() << endl
;
3效果