直通滤波用于简单的在xyz轴上限定范围来进行滤波,多用于背景滤波的第一步。代码演示如下:
#include<iostream>
#include<pcl/visualization/cloud_viewer.h>
#include<pcl\filters\passthrough.h>
#include<pcl/point_types.h>
using namespace std;
int main()
{
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_src(new pcl::PointCloud<pcl::PointXYZ>);
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_filtered(new pcl::PointCloud<pcl::PointXYZ>);
// Fill in the cloud data
cloud_src->width = 100;
cloud_src->height = 1;
cloud_src->points.resize(cloud_src->width * cloud_src->height);
for (size_t i = 0; i < cloud_src->points.size(); ++i) {
cloud_src->points[i].x = 1024 * rand() / (RAND_MAX + 1.0f);
cloud_src->points[i].y = 1024 * rand() / (RAND_MAX + 1.0f);
cloud_src->points[i].z = 1024 * rand() / (RAND_MAX + 1.0f);
}
std::cerr << "Cloud before filtering: "