PCL常用代码块

1. PCD文件加载

#第一种
pcl::PCDReader reader;
reader.read<pcl::PointXYZ> ("pcdFileName.pcd", *cloud);

#第二种
pcl::io::loadPCDFile("pcdFileName.pcd", *cloud);


#二进制适合用于传输存取
  pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);

  pcl::PCLPointCloud2 cloud_blob;

  pcl::io::loadPCDFile ("bun0.pcd", cloud_blob);

  pcl::fromPCLPointCloud2 (cloud_blob, *cloud);

2.点云可视化viewer

#第一种
    pcl::visualization::PCLVisualizer viewer("PCL Viewer");
    viewer.setBackgroundColor(0.0,0.0,0.5);
    viewer.addPointCloudNormals<pcl::PointXYZ, pcl::Normal>(cloud,normals);
    while(!viewer.wasStopped())
    {
        viewer.spinOnce();
    }

#第二种
void showPointCloud(pcl::PointCloud<pcl::PointXYZ>::Ptr cloud, const std::string& tileName)
{
    pcl::visualization::PCLVisualizer::Ptr viewer(new pcl::visualization::PCLVisualizer);
    viewer->setBackgroundColor(0,0,0);
    pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> color_handler(cloud,255,255,255);
    viewer->addPointCloud<pcl::PointXYZ> (cloud,color_handler,"sample cloud");
    viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 2, "sample cloud");
    viewer->addCoordinateSystem(1.0);
    viewer->initCameraParameters();

    while(!viewer->wasStopped())
    {
        viewer->spinOnce(100);
        std::this_thread::sleep_for(std::chrono::milliseconds(100));
    }
}

#第三种
      pcl::visualization::PCLPlotter plotter;
      plotter.addFeatureHistogram(*pfh_fe_ptr, 300); //设置的很坐标长度,该值越大,则显示的越细致
      plotter.plot();

3.点云处理

#把PointXYT 和 Normal数据合并在一起
  pcl::PointCloud<pcl::PointNormal>::Ptr cloud_with_normals (new pcl::PointCloud<pcl::PointNormal>);

  pcl::concatenateFields (*cloud, *normals, *cloud_with_normals);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值