PCL--学习笔记(持续更新——蜗速)

1.PCL头文件引用说明(按需添加)

#include <boost/make_shared.hpp>                            //boost指针相关头文件
#include <pcl/point_types.h>                                //点类型定义头文件
#include <pcl/point_cloud.h>                                //点云类定义头文件
#include <pcl/features/normal_3d.h>                         //法线特征头文件
#include <pcl/features/normal_3d_omp.h>                     //法线特征加速头文件    
#include <pcl/features/fpfh.h>                              //fpfh类特征头文件
#include <pcl/features/fpfh_omp.h>                          //fpfh加速类头文件
#include <pcl/features/boundary.h>                          //边界提取头文件 
#include <pcl/search/kdtree.h>                              //kdtree搜索对象类头文件
#include <pcl/point_representation.h>                       //点表示相关的头文件
#include <pcl/io/pcd_io.h>                                  //PCD文件打开存储类头文件
#include <pcl/filters/passthrough.h>                        //直通滤波器头文件
#include <pcl/filters/voxel_grid.h>                         //用于体素网格化的滤波类头文件
#include <pcl/filters/filter.h>                             //滤波相关头文件 
#include <pcl/filters/project_inliers.h>                    //点云投影头文件
#include <pcl/filters/extract_indices.h>                    //索引提取头文件
#include <pcl/filters/statistical_outlier_removal.h>        //统计离群点类头文件 
#include <pcl/segmentation/sac_segmentation.h>              //RanSaC分割
#include <pcl/segmentation/region_growing.h>                //区域生长
#include <pcl/segmentation/region_growing_rgb.h>            //基于颜色的区域生长
#include <pcl/segmentation/supervoxel_clustering.h>         //超体聚类
#include <pcl/segmentation/lccp_segmentation.h>             //基于凹凸性分割
#include <pcl/surface/mls.h>                                //点云平滑类头文件
#include <pcl/registration/icp.h>                           //ICP类相关头文件
#include <pcl/registration/icp_nl.h>                        //非线性ICP 相关头文件
#include <pcl/registration/transforms.h>                    //变换矩阵类头文件
#include <pcl/registration/ia_ransac.h>                     //sac-ia类头文件 
#include <pcl/registration/correspondence_estimation.h>     //直方图配准
#include <pcl/registration/correspondence_rejection_features.h>//特征的错误对应关系去除
#include <pcl/registration/correspondence_rejection_sample_consensus.h>//随机采样一致性去除 
#include <pcl/visualization/pcl_visualizer.h>               //可视化类头文件

typedef pcl::PointXYZ  Pxyz;
typedef pcl::PointXYZRGB Prgb;
typedef pcl::PointCloud<Pxyz> PXYZ;
typedef pcl::PointCloud<Prgb> PRGB;
 
typedef pcl::Normal Pnl;
typedef pcl::PointNormal Pnt;
typedef pcl::PointCloud<Pnt> PNT;

2.PCL 文件读取与保存(二进制读取、存储速度快)

//读取文件
pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGB>);
if(pcl::io::loadPCDFile<pcl::PointXYZRGB>("path_cloud.pcd", *cloud) == -1)
{
    std::cout<<"读取文件失败,检查文件路径与格式"<<std::endl;
    return -1; 
}
//保存文件
pcl::PCDWriter writer;
writer.write<pcl::PointXYZRGB>("name.pcd",*cloud);
writer.writeASCII<pcl::PointXYZRGB>("name.pcd", *cloud);//ASCII方式保存
writer.writeBinary<pcl::PointXYZRGB>("name.pcd", *cloud);//二进制方式保存

3.PCL 点云kdtree最近邻搜索

pcl::kdTreeFLANN<pcl::PointXYZRGB> kdtree;                  //创建kdtree 对象
kdtree.setInputCloud(cloud);                                //添加点云
pcl::PointXYZRGB searchPoint;                               //设置查询点
int num = 10;                                               //查询近邻个数
std::vector<int>  pointIdx(num);                            //存放索引点
std::vector<float> pointDist(num);                          //存放近邻中心距离
kdtree.nearestKSearch(searchPoint, k, pointIdx, pointDist); //进行点云检索

 

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值