一、简介
PCL点云数据格式,可用的PointT类型_岁月神偷小拳拳的博客-CSDN博客_pcl哪些操作会改变点云的有序
点云有很多中格式,我们最长见的就是xyz的格式,下面我们大概罗列一下点云的格式:
PointXYZ、PointXYZI、PointXYZRGBA、PointXYZRGB、PointXY、InterestPoint、Normal、PointNormal、PointXYZRGBNormal、PointXYZINormal、PointXYZLNormal、PointXYZL、PointXYZRGBL、PointXYZHSV、PointWithRange、PointWithViewpoint、MomentInvariants、PrincipalRadiiRSD、Boundary、PrincipalCurvatures、PFHSignature125、FPFHSignature33、VFHSignature308、Narf36、BorderDescription、IntensityGradient、Histogram、PointWithScale、PointSurfel。
1、Point XYZ 每个点都显示固定的颜色
成员: float x y z
union
{
float data[4];
struct
{
float x;
float y;
float z;
};
};
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ> );
cloud.points[i].x
2.PointXYZI
成员变量: float x, y, z, intensity(强度图);
PointXYZI是在PointXYZ的基础上加上了intensity 的类型,对于兼容存储对齐,用三个额外的浮点数来填补intensity,这样在存储方面效率较低,但是符合存储对齐要求,运行效率较高。
union
{
float data[4];
struct
{
float x;
float y;
float z;
};
};
union
{
struct
{
float intensity;
};
float data_c[4];
};
3.PointXYZRGBA
成员变量: float x, y, z; uint32_t rgba;
union
{
float data[4];
struct
{
float x;
float y;
float z;
};
};
union
{
struct
{
uint32_t rgba;
};
float data_c[4];
};
4.PointXYZRGB 每个点都显示各自的颜色
成员变量:float x, y, z, rgb;
union
{
float data[4];
struct
{
float x;
float y;
float z;
};
};
union
{
struct
{
float rgb;
};
float data_c[4];
};
5、PointXY
6、InterestPoint
除了strength表示关键点的强度的测量值,其它的和PointXYZI类似。
union
{
float data[4];
struct
{
float x;
float y;
float z;
};
};
union
{
struct
{
float strength;
};
float data_c[4];
};
7 .Normal
成员变量:float normal[3], curvature;
Normal结构体表示给定点所在样本曲面上的法线方向,以及对应曲率的测量值
union
{
float data_n[4];
float normal[3];
struct
{
float normal_x;
float normal_y;
float normal_z;
};
}
union
{
struct
{
float curvature;
};
float data_c[4];
}
8.PointNormal
成员变量:float x, y, z; float normal[3], curvature(曲率);
PointNormal是存储XYZ数据的point结构体,并且包括采样点对应法线和曲率。
union
{
float data[4];
struct
{
float x;
float y;
float z;
};
};
// 法线
union
{
float data_n[4];
float normal[3];
struct
{
float normal_x;
float normal_y;
float normal_z;
};
};
// 曲率
union
{
struct
{
float curvature;
};
float data_c[4];
};
9.PointXYZRGBNormal
成员变量:float x, y, z, rgb 颜色, normal[3] 法向量, curvature 曲率;
PointXYZRGBNormal存储XYZ数据和RGB颜色的point结构体,并且包括曲面法线和曲率。
union
{
float data[4];
struct
{
float x;
float y;
float z;
};
};
// 法向量
union
{
float data_n[4];
float normal[3];
struct
{
float normal_x;
float normal_y;
float normal_z;
};
}
union //固定颜色 和 曲率
{
struct
{
float rgb;
float curvature;
};
float data_c[4];
};
10.PointXYZINormal
成员变量:float x, y, z, intensity, normal[3], curvature;
PointXYZINormal存储XYZ数据和强度值的point结构体,并且包括曲面法线和曲率。
union
{
float data[4];
struct
{
float x;
float y;
float z;
};
};
union
{
float data_n[4];
float normal[3];
struct
{
float normal_x;
float normal_y;
float normal_z;
};
}
union
{
struct
{
float intensity;
float curvature;
};
float data_c[4];
};
11.PointXYZL
成员变量:float x, y, z, uin32_t label