Go to the documentation of this file.00001 #include <pcl/point_types.h>
00002 #include <pcl/io/pcd_io.h>
00003 #include <pcl/filters/passthrough.h>
00004 #include <pcl/console/parse.h>
00005
00006 using namespace pcl::console;
00007 typedef pcl::PointXYZRGB PointT;
00008
00009 int main( int argc, char** argv )
00010 {
00011
00012 if( argc != 3 )
00013 {
00014 std::cerr << "Syntax is: " << argv[0] << " {input_pointcloud_filename.pcd} {output_pointcloud_filename.pcd}" << std::endl;
00015 return(-1);
00016 }
00017
00018
00019 pcl::PointCloud<PointT>::Ptr input_cloud (new pcl::PointCloud<PointT>);
00020 pcl::PCDReader reader;
00021 pcl::PCDWriter writer;
00022 reader.read ( argv[1], *input_cloud);
00023 std::cerr << "Loaded cloud with points: " << input_cloud->points.size() << std::endl;
00024
00025
00026 pcl::PointCloud<PointT>::Ptr filtered_cloud (new pcl::PointCloud<PointT>);
00027 pcl::PassThrough<PointT> filter;
00028 filter.setInputCloud (input_cloud);
00029 filter.setFilterFieldName ("x");
00030 filter.setFilterLimits (-100.0, 100.0);
00031
00032
00033 filter.filter (*filtered_cloud);
00034
00035
00036 std::cerr << "Saving cloud to: " << std::string(argv[2]) << " with points: " << filtered_cloud->points.size() << std::endl;
00037 writer.write(std::string(argv[2]), *filtered_cloud, false);
00038 return(0);
00039 }