PCL中可用的PointT类型:
PointXYZ——成员变量:float x,y,z;
PointXYZ是使用最常见的一个点数据类型,因为他之包含三维XYZ坐标信息,这三个浮点数附加一个浮点数来满足存储对齐,可以通过points[i].data[0]或points[i].x访问点X的坐标值
union { float data[4]; struct { float x; float y; float z; }; };
PointXYZI——成员变量:float x,y,z,intensity
PointXYZI是一个简单的X Y Z坐标加intensity的point类型,是一个单独的结构体,并且满足存储对齐,由于point的大部分操作会把data[4]元素设置成0或1(用于变换),
不能让intensity与XYZ在同一个结构体中,如果这样的话其内容将会被覆盖,例如:两个点的点积会把第四个元素设置为0,否则点积没有意义,
union{ float data[4]; struct { float x; float y; float z; }; }; union{ struct{ float intensity; }; float data_c[4]; };
PointXYZRGBA——成员变量:float x,y,z;uint32_t rgba 除了RGBA信息被包含在一个整型变量中,其他的和PointXYZI类似
union{ float data[4]; struct { float x; float y; float z; }; }; union{ struct{ float rgba; }; float data_c[4]; };
PointXYZRGB——float x,y,z,rgb 除了RGB信息被包含在一个浮点数据变量中,其他的和 PointXYZRGBA
union{ float data[4]; struct { float x; float y; float z; }; }; union{ struct{ float rgb; }; float data_c[4]; };
PointXY——成员变量:float x,y 简单的二维x-y结构代码
struct{ float x; float y; };
InterestPoint——成员变量:float x,y,z,strength除了strength表示关键点的强度测量值,其他的和PointXYZI
union{ float data[4]; struct { float x; float y; float z; }; }; union{ struct{ float strength; }; float data_c[4]; };
Normal——成员变量:float normal[3],curvature;
另一个常用的数据类型,Normal结构体表示给定点所在样本曲面上的法线方向,以及对应曲率的测量值,例如访问法向量的第一个坐标可以通过points[i].data_n[0]或者points[i].normal[0]或者points[i]
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]; };
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]; };
未完待续***************************************88888888888
备注:关于点云库PCL的学习,可以扫描二维码关注公众号,有兴趣的可以直接在公众号回复与我交流,相互学习,