【问题标题】:PCL Color FilterPCL 彩色滤光片
【发布时间】:2020-02-01 02:46:52
【问题描述】:
【问题讨论】:
标签:
point-cloud-library
point-clouds
【解决方案1】:
我最终使用了 conditional_removal,有一个针对 RGB 的模板专门化。这是一个 sn-p,我们得到一个名为 cloud_msg 的 ROS 点云。
#include <pcl/filters/conditional_removal.h> //and the other usuals
pcl::PointCloud<pcl::PointXYZRGB>::Ptr rgb_cloud(new pcl::PointCloud<pcl::PointXYZRGB>);
pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud_filtered(new pcl::PointCloud<pcl::PointXYZRGB>);
pcl::fromROSMsg(*cloud_msg, *rgb_cloud);
pcl::PCLPointCloud2 cloud_filtered_ros;
pcl::ConditionalRemoval<pcl::PointXYZRGB> color_filter;
pcl::PackedRGBComparison<pcl::PointXYZRGB>::Ptr
red_condition(new pcl::PackedRGBComparison<pcl::PointXYZRGB>("r", pcl::ComparisonOps::GT, 90));
pcl::ConditionAnd<pcl::PointXYZRGB>::Ptr color_cond (new pcl::ConditionAnd<pcl::PointXYZRGB> ());
color_cond->addComparison (red_condition);
// Build the filter
color_filter.setInputCloud(rgb_cloud);
color_filter.setCondition (color_cond);
color_filter.filter(*cloud_filtered)