PCL學習筆記2 —— PCL中可用的PointT類型

PCL中可用的PointT類型:

【1】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;
    };
};

【2】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];
};

【3】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];
};

【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];
};

【5】PointXY——成員變量:float x,y        簡單的二維x-y結構代碼。

struct
{
    float x;
    float y;
};

【6】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];
};

【7】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];
};

【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];
};

文章原文參考:https://www.cnblogs.com/li-yao7758258/p/6433445.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章