PCL中的所有算法都是模板化的,除了自定义的结构外,不需要其他更改,增加了代码重用性和可读性;
Point的类型全都储存在point_types.hpp
如下图:
- 最常见的PointXYZ ,用户可以根据
points[i].data[0]
points[i].x
访问某个点的X座标值
2.PointXYZI ------float x,y,z,intensity
但是最后一个点intensity抹去(参与变换运算,齐次),储存效率低但是运行效率高
3.PointXYZRGBA-------float x,y,z;uint32_t rgba
4.PointXYZRGB------float x,y,z,rgb 早期的ROS的RGB信息是用浮点数来表达的
5.x-y 二维结构
struct
{
float x;
float y;
}
6. InterestPoint---------------float x,y,z,strength strength用来表示关键点的强度测量值
接下来的几个是关于法线和曲率信息
7 . PointNormal ------------------ float x,y,z; float normal[3],curvature;
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];
};
8. PointXYZRGBNormal----------------- float x,y,z,rgb,normal[3],curvature
【未完待续】