文章目录

  • 简介
  • 主要类说明
    • 1. class pcl::FileReader
    • 2. class pcl::FileWriter
    • 3. class pcl::FileGrabber
    • 4. class pcl::Grabber
    • 5. class openni_wrapper::OpenNIDevice
    • 6. class openni_wrapper::OpenNIDriver
    • 7. class openni_wrapper::OpenNIException
    • 8. class openni_wrapper::Image
    • 9. class openni_wrapper::IRImage
    • 10. class openni_wrapper::ShiftToDepthConverter
    • 11. class pcl::io::IOException
    • 12. class pcl::io::Image
    • 13. class pcl::io::IRImage
    • 14. class pcl::io::FrameWrapper
    • 15. class pcl::io::LZFImageReader
    • 17. class pcl::io::LZFImageWriter
    • 18. class pcl::io::PointCloudImageExtractor
  • IO模块LZF压缩/解压函数

简介

 PCL库中所有操作都是依赖于展开后的点云数据(即点运数据未进行任何数据压缩操作),利用不同的设备获取/处理点云数据都是点云处理前后必须要做的流程,PCL中有自己设计的内部PCD文件格式,因此设计读写该格式以及与其他3D文件格式之间进行转化的接口类都是必要的。
 I/O模块提供了点云文件输入输出相关的操作类,并封装了openNI兼容的设备源数据获取接口,可直接从感知设备获取点云图像等数据。I/O模块对点云的获取、读入、存储等相关操作进行了封装,其依赖与pcl_common外部库。

主要类说明

1. class pcl::FileReader

 类FileReader定义了关于读文件的操作接口(即纯虚函数),它是一个抽象类。它的派生类主要有pcl::PCDReader、pcl::PLYReader、pcl::ASCIIReader和pcl::OBJReader。
 类PCDReader主要用于读取pcd文件格式的文件的操作类,支持PCD的PCD_V7和PCD_V6版本;PCD文件格式:https://blog.csdn.net/CFH1021/article/details/121243009。
 类PLYReader用于读取ply(Point Cloud Data)格式文件的操作类。
 类ASCIIReader用于读取ascii格式的文件。

2. class pcl::FileWriter

 类FileWriter定义了写入文件的操作接口(即纯虚函数),他是一个抽象类。它的派生类主要有pcl::PCDWriter和pcl::PLYWriter。
 类PCDWriter用于写入PCD格式文件,默认是PCD_V7版本。
 类PLYWriter用于写入ply(Point Cloud Data)格式文件。

3. class pcl::FileGrabber

 类FileGrabber为在固定大小输入上操作的Grabbers定义了一个容器式的接口,该类数据抽象类。它的派生类有pcl::PCDGrabber<PointT>和pcl::ImageGrabber<PointT>。

4. class pcl::Grabber

 类Grabber为PCL1.x对应的设备驱动接口的基类定义。它的派生类有pcl::ONIGrabber(ONI提取器)、pcl::DinastGrabber(Dinast设备提取器)、pcl::HDLGrabber(Velodyne高清晰度激光器的抓取器)、pcl::RealSenseGrabber、pcl::DepthSenseGrabber(深度感应设备的提取器,例如:Creative Senz3D, SoftKinetic DS325)、pcl::EnsensoGrabber(Ensenso设备进行IDS成像的提取器)、pcl::OpenNIGrabber(OpenNI设备提取器,例如Primesense PSDK, Microsoft Kinect, Asus XTion Pro/Live)、pcl::OpenNI2Grabber(OpenNI2设备提取器,例如Primesense PSDK, Microsoft Kinect, Asus XTion Pro/Live)、pcl::ImageGrabberBase(图像文件提取器基类)、pcl::RobotEyeGrabber(视觉机器人机器人眼传感器提取器)、pcl::PCDGrabberBase(PCD文件提取器基类)、pcl::DavidSDKGrabber(davidSDK结构光兼容设备的抓取器)、pcl::PCDGrabber<PointT>、pcl::ImageGrabber<PointT>、pcl::FotonicGrabber(Fotonic设备提取器)、pcl::VLPGrabber(Velodyne lidar提取器,继承于HDLGrabber)。

5. class openni_wrapper::OpenNIDevice

 类OpenNIDevice定义了OpenNI设备的基类,它的派生类可以用于实现不用OpenNI设备,用于抓取包括红外数据、RGB数据、深度图像数据等。派生类有openni_wrapper::DeviceKinect(MS Kinect设备接口实现)、openni_wrapper::DeviceONI(用于播放ONI文件的虚拟设备的接口实现)、openni_wrapper::DeviceXtionPro(Asus Xtion Pro设备接口实现)和openni_wrapper::DevicePrimesense(Primesense device设备接口实现)。

6. class openni_wrapper::OpenNIDriver

 类OpenNIDriver采用到哪里模式实现对底层驱动的封装,里面包含一个xn::Context对象,提供给所有设备使用。该类提供了枚举和访问所有设备的方法的实现。

7. class openni_wrapper::OpenNIException

 类OpenNIException是用于异常处理的实现;它继承于std::exception。

8. class openni_wrapper::Image

 类Image是指包含一个对图像元数据的引用的抽象类,因此,该类提供一个接扩来填充RGB或者灰度图像缓冲区。它的派生类有openni_wrapper::ImageBayerGRBG、openni_wrapper::ImageRGB24和openni_wrapper::ImageYUV422。

9. class openni_wrapper::IRImage

 类IRImage主要包含一个对IR元数据的引用。

10. class openni_wrapper::ShiftToDepthConverter

 类ShiftToDepthConverter提供openni 11位移位数据到深度的转换。

11. class pcl::io::IOException

  类IOException是PCL io模块I/O相关的异常处理接口实现,它继承于st::exception。

12. class pcl::io::Image

 类Image提供一个接口用于填充RGB或者灰度图像缓冲区,它的派生类有pcl::io::ImageYUV422和pcl::io::ImageRGB24。

13. class pcl::io::IRImage

 类IRImage仅包含一个对IR元数据的引用。

14. class pcl::io::FrameWrapper

 类FrameWrapper用于包装本机帧数据类型的纯抽象接口。它的派生类有pcl::io::openni2::Openni2FrameWrapper。

15. class pcl::io::LZFImageReader

 类LZFImageReader是PCL中LZF格式的图像解读器的抽象类,它的派生类有pcl::io::LZFDepth16ImageReader、pcl::io::LZFRGB24ImageReader、pcl::io::LZFYUV422ImageReader和pcl::io::LZFBayer8ImageReader。

17. class pcl::io::LZFImageWriter

 类LZFImageWriter是PCL中LZF格式的图像解读器的抽象类,它的派生类有pcl::io::LZFDepth16ImageWriter、pcl::io::LZFRGB24ImageWriter、pcl::io::LZFYUV422ImageWriter和pcl::io::LZFBayer8ImageWriter。

18. class pcl::io::PointCloudImageExtractor

 类PointCloudImageExtractor是一个抽象类,它定义从原始点云中提取图像的接口,即图像提取器。它的派生类实现了从特定领域提取图像的功能。它的派生类有pcl::io::PointCloudImageExtractorWithScaling、pcl::io::PointCloudImageExtractorFromNormalField、pcl::io::PointCloudImageExtractorFromRGBField、pcl::io::PointCloudImageExtractorFromLabelField、pcl::io::PointCloudImageExtractorFromZField、pcl::io::PointCloudImageExtractorFromCurvatureField和pcl::io::PointCloudImageExtractorFromIntensityField。

IO模块LZF压缩/解压函数

PCL_EXPORTS unsigned int lzfCompress (const void *const in_data,  unsigned int in_len,void             *out_data, unsigned int out_len);PCL_EXPORTS unsigned int lzfDecompress (const void *const in_data,  unsigned int in_len,void             *out_data, unsigned int out_len);

PCL库中I/O操作相关推荐

  1. 学习PCL库:PCL库中的IO模块介绍

    公众号致力于点云处理,SLAM,三维视觉,高精地图等领域相关内容的干货分享,欢迎各位加入,有兴趣的可联系dianyunpcl@163.com.未经作者允许请勿转载,欢迎各位同学积极分享和交流. IO模 ...

  2. PCL库中Marching Cubes(移动立方体)算法的解析

    PCL库中Marching Cubes(移动立方体)算法解析 1. Marching Cubes算法的原理这里不再赘述,不懂的话,提供一下文献资源: 链接:MARCHING CUBES A HIGH ...

  3. numpy库中ndarray切片操作的参数意义

    ndarray切片操作的规则总结出来叫做"三帽号规则" 三帽号规则即:[开始索引:结尾索引:步长],并且切片区间是左闭右开的,即"开始索引:结尾索引"表示的区间 ...

  4. c/c++标准库中的文件操作总结

    1 stdio.h是c标准库中的标准输入输出库 2 在c++中调用的方法 直接调用即可,但是最好在函数名前面加上::,以示区分类的内部函数和c标准库函数. 3 c标准输入输出库的使用 3.1 核心结构 ...

  5. (曲率系列3:)PCL:PCL库中的两种曲率表示方法pcl::NormalEstimation和PrincipalCurvaturesEstimation

    PCL里有两个计算曲率的调用函数: (1)pcl::NormalEstimation 这里边计算的曲率不是数学上定义的曲率. (2)pcl::PrincipalCurvaturesEstimation ...

  6. Linux学习笔记-标准库中的管道操作

    目录 理论 例子 理论 stdio.h里面有标志库管道操作 FILE *popen(const char* cmdstring, const char *type);返回值:成功返回文件指针,出错返回 ...

  7. 使用PCL库将KITTI数据集可视化

    PCL点云可视化 KITTI数据集浅析 KITTI数据集简介 KITTI基本结构 Calib Velodyne 标签数据解析 点云数据可视化 创建点云对象 创建视窗对象 添加点云到视窗 相机参数的设置 ...

  8. 【Pandas库】(5) 索引操作--增、删

    各位同学好,今天我向大家介绍一下pandas库中的索引操作--增.删. 1. 增加 1.1 对series操作 方法一:在原有数据上增加,改变原有数据. Series名[新标签名] = 新标签名对应的 ...

  9. 学习PCL库你应该知道的C++特性

    要学会PCL首先要对C++进行学习,所以这里我们首先对PCL库的代码中常见的C++的技巧进行整理和概述,并且对其中的难点进行细化讲解.首先我们搞清楚PCL库的文件形式.是一个以CMake构建的项目,库 ...

  10. CMake结合PCL库学习(2)

    紧接着上一篇文章 对于PCL 库中的各个模块之间是有相互依赖关系的 其中Common模块是最基础的模块,其中是定义各种数据结构的头文件,所以Common这个模块是不需要依赖性响的,但是IO 模块就是需 ...

最新文章

  1. sudo apt get linux,常用sudo apt-get命令
  2. 爆发的电池储能市场真相!年销量将超260亿美元
  3. Azure Service Fabric正式发布
  4. 网站过度优化该怎样解决?
  5. 我司那产品经理丨第四期
  6. HDU 4323 bk树 编辑距离
  7. 凄怆与悲凉(灾区现场最新照片)
  8. Android6.0 源码修改之 仿IOS添加全屏可拖拽浮窗返回按钮...
  9. dotnet core 应用是如何跑起来的 通过自己写一个 dotnet host 理解运行过程
  10. 分羊(区间dp:分治与决策单调性优化)
  11. 串的模式匹配(KMP算法)
  12. 使用git将本地仓库上传到远程仓库
  13. SDNU 1072.我们爱递归(水题)
  14. spring-tool-suite(STS) 创建 spring boot项目
  15. 慕课PDF下载扩展--再也不用担心慕课不给PDF了
  16. 【软件设计师】知识点总结
  17. 15个网盘资源搜索引擎
  18. 可解释深度学习:从感受野到深度学习的三大基本任务:图像分类,语义分割,目标检测,让你真正理解深度学习
  19. 无lnternet_为什么无internet访问权限,无lnternet访问权限怎么办
  20. 苏宁回应股权质押给淘宝;日本政府用 AI 帮民众找对象;魅族回应 “暗中给手机植入木马” | EA周报...

热门文章

  1. IDEA maven项目使用Junit报错 java: 程序包org.junit不存在
  2. UCT(信心上限树算法)解四子棋问题——蒙特卡罗法模拟人机博弈
  3. Java随机生成4位随机数字+字母
  4. 输入一个字符串,判断它的所有字符中否全部是大写字母,如不是,统计小写字母个数,并将其转换成大写字母后输出
  5. word 2007中在页眉中插入或这删除下划线
  6. linux ntfs格式u盘实现与挂载
  7. 扫呗--扫码付支付问题
  8. 2018第七届中国金融科技峰会
  9. KOOM原理讲解(上)-JAVA内存分析
  10. android刷win8,驰为VX8 3G Win8刷安卓系统固件教程发布