zoukankan      html  css  js  c++  java
  • PCL中有哪些可用的PointT类型(1)

    博客转载自:http://www.pclcn.org/study/shownews.php?lang=cn&id=266

    为了涵盖能想到的所有可能的情况,PCL中定义了大量的point类型。下面是一小段,在point_types.hpp中有完整目录,这个列表很重要,因为在定义你自己的类型之前,需要了解已有的类型,如果你需要的类型,已经存在于PCL,那么就不需要重复定义了。

    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是一个简单的XYZ坐标加intensity的point类型,理想情况下,这四个变量将新建单独一个结构体,并且满足存储对齐,然而,由于point的大部分操作会把data[4]元素设置成0或1(用于变换),不能让intensity与xyz在同一个结构体中,如果这样的话其内容将会被覆盖。例如,两个点的点积会把他们的第四个元素设置成0,否则该点积没有意义,等等。因此,对于兼容存储对齐,用三个额外的浮点数来填补intensity,这样在存储方面效率较低,但是符合存储对齐要求,运行效率较高。

    {
    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
    {
    uint32_t rgba;
    };
    float data_c[4];
    };

    PointXYZRGB - float x, y, z, rgb;

    除了rgb信息被包含在一个浮点型变量中,其它和PointXYZRGB类似。rgb数据被压缩到一个浮点数里的原因在于早期PCL是作为ROS项目的一部分来开发的,那里RGB数据是用浮点数来传送的,PCL设计者希望所有遗留代码会重新更改(在PCL 2.x中很可能这样做),可能取消此数据类型。

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

    未完待续,敬请关注“PCL中有哪些可用的PointT类型(2)”的其他内容。

    敬请关注PCL(Point Cloud Learning)中国更多的点云库PCL(Point Cloud Library)相关官方教程。

    参考文献:

     

    1.朱德海、郭浩、苏伟.点云库PCL学习教程(ISBN 978-7-5124-0954-5)北京航空航天出版

  • 相关阅读:
    17款加速效率的CSS工具
    我为什么向后端工程师推荐Node.js
    八款开源 Android 游戏引擎 (巨好的资源)
    50个必备的实用jQuery代码段
    $.getJSON()跨域请求
    javascript獲得服務器端控件的ID
    (转)8款在线CSS优化工具/组织和压缩CSS
    10 个文件和文档的比较工具
    40个有创意的jQuery图片和内容滑动及弹出插件收藏集之四
    MBP换硬盘的过程
  • 原文地址:https://www.cnblogs.com/flyinggod/p/8595796.html
Copyright © 2011-2022 走看看