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
【未完待續】