PCL (一)点云的格式

48 篇文章 5 订阅

一、简介

PCL点云数据格式,可用的PointT类型_岁月神偷小拳拳的博客-CSDN博客_pcl哪些操作会改变点云的有序

点云有很多中格式,我们最长见的就是xyz的格式,下面我们大概罗列一下点云的格式:

PointXYZPointXYZI、PointXYZRGBA、PointXYZRGB、PointXY、InterestPoint、Normal、PointNormal、PointXYZRGBNormal、PointXYZINormal、PointXYZLNormal、PointXYZL、PointXYZRGBL、PointXYZHSV、PointWithRange、PointWithViewpoint、MomentInvariants、PrincipalRadiiRSD、Boundary、PrincipalCurvatures、PFHSignature125、FPFHSignature33、VFHSignature308、Narf36、BorderDescription、IntensityGradient、Histogram、PointWithScale、PointSurfel。

1、Point XYZ  每个点都显示固定的颜色

成员: float x  y  z 

union
{
   float data[4];
   struct
   {
      float x;
      float y;
      float z;
   };
};

 pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ> );

cloud.points[i].x

2.PointXYZI

成员变量: float x, y, z, intensity(强度图);

PointXYZI是在PointXYZ的基础上加上了intensity 的类型,对于兼容存储对齐,用三个额外的浮点数来填补intensity,这样在存储方面效率较低,但是符合存储对齐要求,运行效率较高。

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;

union
{
    float data[4];
    struct
    {
       float x;
       float y;
       float z;
    };
};
union
{
   struct
   {
      uint32_t rgba;
   };
   float data_c[4];
};

4.PointXYZRGB  每个点都显示各自的颜色

成员变量:float x, y, z, rgb;

union
{
    float data[4];
    struct
    {
       float x;
       float y;
       float z;
    };
};
union
{
    struct
    {
       float rgb;
    };
    float data_c[4];
};

5、PointXY

6、InterestPoint

除了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结构体表示给定点所在样本曲面上的法线方向,以及对应曲率的测量值

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

9.PointXYZRGBNormal

成员变量:float x, y, z, rgb 颜色, normal[3] 法向量, curvature  曲率;
PointXYZRGBNormal存储XYZ数据和RGB颜色的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 rgb;
        float curvature;
    };
    float data_c[4];
};

10.PointXYZINormal

成员变量:float x, y, z, intensity, normal[3], curvature;
PointXYZINormal存储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 intensity;
        float curvature;
    };
    float data_c[4];
};

11.PointXYZL

成员变量:float x, y, z, uin32_t label


 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值