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<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操作相关推荐
- 学习PCL库:PCL库中的IO模块介绍
公众号致力于点云处理,SLAM,三维视觉,高精地图等领域相关内容的干货分享,欢迎各位加入,有兴趣的可联系dianyunpcl@163.com.未经作者允许请勿转载,欢迎各位同学积极分享和交流. IO模 ...
- PCL库中Marching Cubes(移动立方体)算法的解析
PCL库中Marching Cubes(移动立方体)算法解析 1. Marching Cubes算法的原理这里不再赘述,不懂的话,提供一下文献资源: 链接:MARCHING CUBES A HIGH ...
- numpy库中ndarray切片操作的参数意义
ndarray切片操作的规则总结出来叫做"三帽号规则" 三帽号规则即:[开始索引:结尾索引:步长],并且切片区间是左闭右开的,即"开始索引:结尾索引"表示的区间 ...
- c/c++标准库中的文件操作总结
1 stdio.h是c标准库中的标准输入输出库 2 在c++中调用的方法 直接调用即可,但是最好在函数名前面加上::,以示区分类的内部函数和c标准库函数. 3 c标准输入输出库的使用 3.1 核心结构 ...
- (曲率系列3:)PCL:PCL库中的两种曲率表示方法pcl::NormalEstimation和PrincipalCurvaturesEstimation
PCL里有两个计算曲率的调用函数: (1)pcl::NormalEstimation 这里边计算的曲率不是数学上定义的曲率. (2)pcl::PrincipalCurvaturesEstimation ...
- Linux学习笔记-标准库中的管道操作
目录 理论 例子 理论 stdio.h里面有标志库管道操作 FILE *popen(const char* cmdstring, const char *type);返回值:成功返回文件指针,出错返回 ...
- 使用PCL库将KITTI数据集可视化
PCL点云可视化 KITTI数据集浅析 KITTI数据集简介 KITTI基本结构 Calib Velodyne 标签数据解析 点云数据可视化 创建点云对象 创建视窗对象 添加点云到视窗 相机参数的设置 ...
- 【Pandas库】(5) 索引操作--增、删
各位同学好,今天我向大家介绍一下pandas库中的索引操作--增.删. 1. 增加 1.1 对series操作 方法一:在原有数据上增加,改变原有数据. Series名[新标签名] = 新标签名对应的 ...
- 学习PCL库你应该知道的C++特性
要学会PCL首先要对C++进行学习,所以这里我们首先对PCL库的代码中常见的C++的技巧进行整理和概述,并且对其中的难点进行细化讲解.首先我们搞清楚PCL库的文件形式.是一个以CMake构建的项目,库 ...
- CMake结合PCL库学习(2)
紧接着上一篇文章 对于PCL 库中的各个模块之间是有相互依赖关系的 其中Common模块是最基础的模块,其中是定义各种数据结构的头文件,所以Common这个模块是不需要依赖性响的,但是IO 模块就是需 ...
最新文章
- sudo apt get linux,常用sudo apt-get命令
- 爆发的电池储能市场真相!年销量将超260亿美元
- Azure Service Fabric正式发布
- 网站过度优化该怎样解决?
- 我司那产品经理丨第四期
- HDU 4323 bk树 编辑距离
- 凄怆与悲凉(灾区现场最新照片)
- Android6.0 源码修改之 仿IOS添加全屏可拖拽浮窗返回按钮...
- dotnet core 应用是如何跑起来的 通过自己写一个 dotnet host 理解运行过程
- 分羊(区间dp:分治与决策单调性优化)
- 串的模式匹配(KMP算法)
- 使用git将本地仓库上传到远程仓库
- SDNU 1072.我们爱递归(水题)
- spring-tool-suite(STS) 创建 spring boot项目
- 慕课PDF下载扩展--再也不用担心慕课不给PDF了
- 【软件设计师】知识点总结
- 15个网盘资源搜索引擎
- 可解释深度学习:从感受野到深度学习的三大基本任务:图像分类,语义分割,目标检测,让你真正理解深度学习
- 无lnternet_为什么无internet访问权限,无lnternet访问权限怎么办
- 苏宁回应股权质押给淘宝;日本政府用 AI 帮民众找对象;魅族回应 “暗中给手机植入木马” | EA周报...
热门文章
- IDEA maven项目使用Junit报错 java: 程序包org.junit不存在
- UCT(信心上限树算法)解四子棋问题——蒙特卡罗法模拟人机博弈
- Java随机生成4位随机数字+字母
- 输入一个字符串,判断它的所有字符中否全部是大写字母,如不是,统计小写字母个数,并将其转换成大写字母后输出
- word 2007中在页眉中插入或这删除下划线
- linux ntfs格式u盘实现与挂载
- 扫呗--扫码付支付问题
- 2018第七届中国金融科技峰会
- KOOM原理讲解(上)-JAVA内存分析
- android刷win8,驰为VX8 3G Win8刷安卓系统固件教程发布