博客转载自: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)北京航空航天出版