我正在研究过滤点云数据,我在多种科学出版物中读到,最好在有组织的点云上工作,因为如果云是有组织的,过滤/分割等可以更有效。所以我使用球形投影来组织它,效果很好。
将投影云传递到多个过滤器(如体素、裁剪、异常值去除)后,它会恢复到以前的格式!我不想要的,我仍然想分割和处理表面等等,但在有组织的格式上,以便从有组织的格式中计算获利!!
我可以在其上应用投影,但它会再次对它进行上采样,这是合乎逻辑的,但在通过过滤器下采样后我并不真正想要!!
有什么方法可以通过实例化过滤器来以不同的方式处理数据而不破坏数据?
这里是数据管道的一些信息
Projected cloud Size: 65536
The projected cloud is organized: 1
The projected cloud is dense: 1
Projected PointCloud width: 1024
Projected PointCloud height: 64
Projecting took 11 milliseconds
PointCloud after cropping: 51145 data points (x y z intensity).
PointCloud after extracting the ego: 51115 data points (x y z intensity).
PointCloud after filtering with voxel grid: 17340 data points (x y z intensity).
PointCloud size after regarding Radius Outlier Removal filter: 17303 data points (x y z intensity).
Filtered Cloud Size: 51145
The filtered Cloud is organized: 0
Filtered PointCloud width: 51145
Filtered PointCloud height: 1
Filtering took 21 milliseconds
设置过滤器时,在应用之前请执行以下操作:
your_filter.setKeepOrganized(true);
例如,使用统计异常值去除过滤器:
pcl::PointCloud<PointXYZ>::Ptr cloud_filtered;
pcl::StatisticalOutlierRemoval<PointXYZ> stat_filter;
stat_filter.setInputCloud(original_cloud);
stat_filter.setMeanK(50);
stat_filter.setStddevMulThresh(1.0);
// keeps `cloud_filtered` organized after filtering
stat_filter.setKeepOrganized(true);
stat_filter.filter(*cloud_filtered);