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的學習,可以掃描二維碼關注公眾號,有興趣的可以直接在公眾號回復與我交流,相互學習,