1. 直通滤波基础回顾与多维度扩展
点云处理中的直通滤波(PassThrough Filter)就像是一个智能筛子,能够按照我们设定的规则筛选出需要的点。基础用法大家都熟悉——比如在Z轴方向设置0.5米到1.5米的阈值范围,就能轻松提取桌面上的物体点云。但实际项目中,我们往往需要更精细的控制。
我处理过一个工业零件分拣项目,单纯用Z轴滤波时发现效果总是不理想。后来意识到,零件在传送带上不仅会有高度变化,还会出现横向偏移。这时候就需要同时控制X、Y、Z三个维度的阈值范围。通过组合使用多个维度的直通滤波,最终实现了95%以上的准确提取率。
多维度联用的核心思路很简单:就像用多个筛子层层过滤。先对Z轴进行第一轮筛选,保留高度合适的点;然后对这些点再按X轴范围筛选;最后用Y轴条件做最终确认。这种级联过滤的方式,在PCL中可以通过连续调用PassThrough实现:
cpp复制// 第一轮Z轴过滤
pcl::PassThrough<pcl::PointXYZ> pass_z;
pass_z.setInputCloud(cloud);
pass_z.setFilterFieldName("z");
pass_z.setFilterLimits(0.5, 1.5);
pass_z.filter(*cloud_filtered);
// 第二轮X轴过滤
pcl::PassThrough<pcl::PointXYZ> pass_x;
pass_x.setInputCloud(cloud_filtered);
pass_x.setFilterFieldName("x");
pass_x.setFilterLimits(-0.3, 0.3);
pass_x.filter(*cloud_filtered);
// 第三轮Y轴过滤
pcl::PassThrough<pcl::PointXYZ> pass_y;
pass_y.setInputCloud(cloud_filtered);
pass_y.setFilterFieldName("y");
pass_y.setFilterLimits(0.2, 0.8);
pass_y.filter(*cloud_filtered);
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 复杂ROI区域提取实战技巧
实际工程中最头疼的就是遇到非规则形状的感兴
