PCL库中IO *** 作

PCL库中IO *** 作,第1张

PCL库中I/O *** 作

文章目录
    • 简介
    • 主要类说明
      • 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和pcl::ImageGrabber

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、pcl::ImageGrabber、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);

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5635153.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存