PCL ——CropBox 过滤掉用户给定立方体内的点云数据

最近开始学习PCL,博客写作存档学习。

//PCL CropBox   过滤掉用户给定立方体内的点云数据
#include <iostream>
#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/console/time.h>
#include <pcl/filters/crop_box.h>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>


typedef pcl::PointXYZ PointT;
using namespace std;

int main()
{
    pcl::PointCloud<PointT>::Ptr cloud(new pcl::PointCloud<PointT>);
    pcl::console::TicToc tt;

    std::cerr<<"ReadImage...\n",tt.tic();
    pcl::PCDReader reader;
    reader.read("2.pcd",*cloud);
    std::cerr<<"Done  "<<tt.toc()<<"  ms\n"<<std::endl;
    std::cerr<<"The points data:  "<<cloud->points.size()<<std::endl;

    pcl::PointCloud<PointT>::Ptr cloud_filtered(new pcl::PointCloud<PointT>);
    pcl::CropBox<PointT> crop;

    crop.setMin(Eigen::Vector4f(-0.2,-0.2,0.0,1.0)); //给定立体空间
    crop.setMax(Eigen::Vector4f(-2.0,1.0,2.0,1.0));  //数据随意给的,具体情况分析
    crop.setInputCloud(cloud);
    crop.setKeepOrganized(true);
    crop.setUserFilterValue(0.1f);
    crop.filter(*cloud_filtered);
    std::cerr<<"The points data:  "<<cloud_filtered->points.size()<<std::endl;

    boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer(new pcl::visualization::PCLVisualizer("3D Viewer"));
    int v1(0);
    viewer->createViewPort(0.0, 0.0, 0.5, 1.0, v1);
    viewer->setBackgroundColor(0, 0, 0, v1);
    viewer->addPointCloud<pcl::PointXYZ>(cloud, "sample cloud1", v1);

    int v2(0);
    viewer->createViewPort(0.5, 0.0, 1.0, 1.0, v2);
    viewer->addPointCloud<pcl::PointXYZ>(cloud_filtered, "sample cloud2", v2);
    viewer->setBackgroundColor(0.3, 0.3, 0.3, v2);
    viewer->addCoordinateSystem(1.0);

    viewer->initCameraParameters();
    while (!viewer->wasStopped())
    {
        viewer->spinOnce(100);
        boost::this_thread::sleep(boost::posix_time::microseconds(100000));
    };

    return 0;
}

注:F2可查看类明细。
参考链接:(https://blog.csdn.net/ethan_guo/article/details/80359313)

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值