PCL点云——Feature模块(法向量计算、PFH、FPFH)

目录

前言

一、头文件及声明

二、Feature模块

1、法向量计算

2、PFH 点特征直方图描述子

3、FPFH 快速点特征直方图描述子

总结


前言

特征模块的一些常用指令。


一、头文件及声明

#include <pcl/point_cloud.h>                    // 点的集合
#include <pcl/point_types.h>                    // PCL中支持的点类型头文件
#include <pcl/io/ply_io.h>                      // PLY读写类相关的头文件
#include <pcl/io/pcd_io.h>                      // PCD读写类相关的头文件
#include <pcl/visualization/pcl_visualizer.h>   // 可视化
 
using namespace std;
using PointT = pcl::PointXYZ;
using CloudP = pcl::PointCloud<PointT>;
using PointN = pcl::PointNormal;
using CloudN = pcl::PointCloud<PointN>;
using PointL = pcl::PointXYZL;
using CloudL = pcl::PointCloud<PointL>;

二、Feature模块

1、法向量计算

#include <pcl/features/normal_3d.h>  // 单线程
#include <pcl/features/normal_3d_omp.h>  // 多线程,内部包含了normal_3d.h
void normalsCalculation(CloudP::Ptr cloud, pcl::PointCloud<pcl::Normal>::Ptr normals)
{
#if 0
    // 单线程
    pcl::NormalEstimation<PointT, pcl::Normal> ne;
#else
    // 多线程
    pcl::NormalEstimationOMP<PointT, pcl::Normal> ne;
    ne.setNumberOfThreads(4);
#endif

    ne.setInputCloud(cloud->makeShared());
    ne.setSearchSurface(cloud->makeShared());
    ne.setKSearch(20);

    ne.compute(*normals);
}
/********************************************************************
* @brief    计算点云法线并拼接到点云数据中
* @note
* @param    CloudP::Ptr in_cloud                    输入点云
* @return   pcl::PointCloud<pcl::PointNormal>::Ptr  包含法线信息的点云
********************************************************************/
CloudN::Ptr compute_normals(CloudP::Ptr in_cloud)
{
    pcl::NormalEstimationOMP<PointT, pcl::Normal> normal_estimator;
    pcl::PointCloud<pcl::Normal>::Ptr normals(new pcl::PointCloud<pcl::
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值