c++ - Remove points outside defined 3D box inside PCL visualizer -


in given point cloud, want remove points less min , greater max x, y , z direction. below sample code:

#include <pcl/io/io.h> #include <pcl/io/pcd_io.h> #include <pcl/filters/passthrough.h> #include <pcl/visualization/pcl_visualizer.h>  // define min , max x, y , z float minx = -0.1, miny = -0.5, minz = -2.5; float maxx = +0.1, maxy = +0.5, maxz = +2.5;  int main (int argc, char** argv) {     pcl::visualization::pclvisualizer viewer("cloud viewer");      pcl::pointcloud<pcl::pointxyzrgba>::ptr body (new pcl::pointcloud<pcl::pointxyzrgba>);     pcl::io::loadpcdfile ("body.pcd", *body);      pcl::pointcloud<pcl::pointxyzrgba>::ptr bodyfiltered (new pcl::pointcloud<pcl::pointxyzrgba>);      pcl::passthrough<pcl::pointxyzrgba> filter;     filter.setinputcloud (body);     filter.setfilterfieldname ("x");     filter.setfilterlimits (minx, maxx);     filter.setfilterfieldname ("y");     filter.setfilterlimits (miny, maxy);     filter.setfilterfieldname ("z");     filter.setfilterlimits (minz, maxz);     filter.filter (*bodyfiltered);      viewer.addpointcloud (bodyfiltered,"body");     viewer.spin();     return 0; } 

it seems last filter being applied. solution, please?

what using pcl::cropbox? (documentation)

pcl::cropbox<pcl::pointxyzrgba> boxfilter; boxfilter.setmin(eigen::vector4f(minx, miny, minz, 1.0)); boxfilter.setmax(eigen::vector4f(maxx, maxy, maxz, 1.0)); boxfilter.setinputcloud(body); boxfilter.filter(*bodyfiltered); 

Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -