pcl基础c++笔记

命名类的成员变量时,单词之间用下划线隔开并以下划线结尾,例如:

int example_int_;//对阅读pcl源码很有帮助,可明显区分成员变量与局部变量。

pcl代码块的标准缩进是两个空格,这里用单个空格来隔开函数/类成员函数名字与其参数列表,例如:

int exampleMethod(int example_arg);

点索引机制,向PCL算法传递点云数据的标准方法是通过访问setInputCloud()。另外,PCL也可通过setIndices()传递用户感兴趣区域或点云集,而不是整个点云。

点云是复杂的n维结构,它应该能表示不同类型的信息,然而用户应该知道并理解需要传送什么样的信息,从而使代码更易于调试、优化等。

PointXYZI是一个简单的XYZ坐标加intensity的point类型,理想情况下,这四个变量将新建单独一个结构体,并且满足存储对齐,然而,由于point的大部分操作会把data[4]元素设置成0或1(用于变换),不能让intensity与xyz在同一个结构体中,如果这样的话其内容将会被覆盖。

Normal结构体表示给定点所在样本曲面上的法线方向,以及对应曲率的测量值。

PointWithRange除了range包含从所获得的视点到采样点的距离测量值以外,其他与PointXYZI类似。

PointWithViewpoint除了vp_x,vp_y和vp_z以三维点表示所获得的视点以外,其他与PointXYZI类似。

MomentInvariants是一个包含采样曲面上面片三个不变矩的point类型,描述面片上质量的分布情况。

为了增加新的point类型,首先需要定义,例如:

struct MyPointType{

float test;

};

然后,得确保你的代码包含了PCL中特定的类/算法的模板头文件的实现,它将和新point类型MyPointType共同使用。例如,你想使用pcl::PassThrough,则只需要使用下面的代码即可。

#include <pcl/filters/passthrough.h>

#include <pcl/filters/impl/passthrough.hpp>

如果你的代码是库的一部分,可以被他人利用,则需要为你自己的MyPointType类型进行实例化显示。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值