博客转载自:http://www.pclcn.org/study/shownews.php?lang=cn&id=267

PointXY-float x, y;

简单的二维x-y point结构

struct
{
float x;
float y;
};

InterestPoint-float x, y, z, strength;

除了strength表示关键点的强度的测量值,其它的和PointXYZI类似。

union
{
float data[];
struct
{
float x;
float y;
float z;
};
};
union
{
struct
{
float strength;
};
float data_c[];
};

Normal - float normal[3], curvature;

另一个最常用的数据类型,Normal结构体表示给定点所在样本曲面上的法线方向,以及对应曲率的测量值(通过曲面块特征值之间关系获得——查看NormalEstimation类API以便获得更多信息,后续章节有介绍),由于在PCL中对曲面法线的操作很普遍,还是用第四个元素来占位,这样就兼容SSE和高效计算,例如,用户访问法向量的第一个坐标,可以通过points[i].data_n[0]或者points[i].normal[0]或者points[i].normal_x,再一次强调,曲率不能被存储在同一个结构体中,因为它会被普通的数据操作覆盖掉。

union
{
float data_n[];
float normal[];
struct
{
float normal_x;
float normal_y;
float normal_z;
};
}
union
{
struct
{
float curvature;
};
float data_c[];
};

PointNormal - float x, y, z; float normal[3], curvature;

PointNormal是存储XYZ数据的point结构体,并且包括采样点对应法线和曲率。

union
{
float data[];
struct
{
float x;
float y;
float z;
};
};
union
{
float data_n[];
float normal[];
struct
{
float normal_x;
float normal_y;
float normal_z;
};
};
union
{
struct
{
float curvature;
};
float data_c[];
};

未完待续,敬请关注“PCL中有哪些可用的PointT类型(3)”的其他内容。

敬请关注PCL(Point Cloud Learning)中国更多的点云库PCL(Point Cloud Library)相关官方教程。

参考文献:

1.朱德海、郭浩、苏伟.点云库PCL学习教程(ISBN 978-7-5124-0954-5)北京航空航天出版

05-17 02:09