PCL库中I/O操作

简介

 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);
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值