PCL中IO模块和类的介绍
来源:互联网 发布:小米网络音响和ai音响 编辑:程序博客网 时间:2024/04/29 08:44
(1)class pcl::FIleReader:定义了PCD文件的读取接口,主要用作其他读取类的父类 pcl::FileReader有pcl::PCDReader和pcl::PLYReader子类
(2)class pcl::FIleWrite : 与class pcl::FIleReader对应,是写入PCD文件类的接口定义,作为其他写入类的父类,pcl::Filewriter有pcl::PCDwriter和pcl::PLYWriter子类
(3) class pcl::Grabber:类Grabber为PCL1.X对应的设备驱动接口的基类定义
父类 子类
pcl::ONIGrabber
pcl::Grabber pcl::OpenNIGrabber
pcl::PCDGrabberBase ----------pcl::PCDGrabber< PointT >
(4)classopenni_wrapper::OpenNIDevice:定义OpenNI设备的基类,用于获取包括红外数据,RGB数据,深度图像数据
父类 子类
openni_wrapper::DeviceONI
openni_wrapper::OpenNIDevice openni_wrapper::DeviceKinect
openni_wrapper::DevicePrimesense
openni_wrapper::DeviceXtionPro
PCD(点云数据)文件格式,以下几种格式
(1)PLY是一种多边形文件格式,
(2)STL是3D System公司创建的模型文件格式,主要应用于CAD,CAM领域
(3)OBJ是从几何学上定义的文件格式,
(4)X3D是符合ISO标准的基于XML的文件格式,表示3D计算机图形数据
PCD文件头格式
每个PCD文件包含一个文件头,确定和声明文件中存储这点云的数据的某种特性,PCD文件必须用ASCII码来编码,
(1)VERSION---------指定PCD文件版本
(2) FIELSS------------指定一个点恶意有的每一个维度和字段的名字例如
FILEDS x y z #XYZ data
FILEDS x y z rgb #XYZ + color
FILEDS x y z normal_x normal_y normal_z #XYZ +surface normal
FILEDS j1 j2 j3 #moment invariants
.....
(3) SIZE-----------用字节数指定每一个维度的大小 例如
unsigned char/char? has 1 byte
unsigned short/short? has 2 byte
double ?has 8 byte
(4) TYPE------------用一个字符指定每一个维度的类型 被接受类型有
I----------------表示有符号类型 int8(char) int16 (short) int32(int)
U----------------表示无符号类型 ------------------
F----------------表示浮点类型
(5)COUNT----------指定每一维度包含的元数目(默认情况下,没有设置 的话,所有维度的数目被设置为1)
(6)WIDTH------用点的数量表示点云数据集的宽度,根据有序点云还是无序点云,WIDTH有两层解释:
1,它能确定无序数据集的点云中点的个数,
2,它能确定有序点云数据集的宽度
注意有序点云数据集,意味着点云是类似与图像的结构,数据分为行和列,这种点云的实例包括立体摄像机和时间飞行摄像机生成的数据,有序数据集的优势在于,预先了解相邻点(和像素点类似)的关系,邻域操作更加高效,这样就加速了计算并降低了PCL中某些算法的成本。例如:WIDTH 640 #每行有640个点
(7)HEIGHT---------------用点的数目表示点云数据集的高度。类似于WIDTH也有两层解释,
有序点云的例子:WIDTH 640 #像图像一样的有序结构,有640行480列,
HEIGHT 480 #这样该数据集中共有640*480=307200个人点
无序点云例子:
WIDTH 307200
HEIGHT 1 #有307200个点的有序点云数据集
(8)VIEWPOINT--------------------指定数据集中点云的获取视角。VIEWPOINT有可能在不同坐标系之间转换的时候应用,在辅助获取其他特征时,也比较有用, 例如曲面发现,在判断方向一致性时,需要知道视点的方位
视点信息被指为平移(tx ty tz) +四元数(qw qx qy qz)
(9 ) POINTS----------------指定点云中点的总数
(10) DATA---------------指定存储点云数据的数据结构,有两种形式:ASCII和二进制
(注意PCD文件的文件头部分必须是以上部分顺序的精确的指定)
4 数据存储类型:
(1)如果易ASCII形式,每一点占据一个新行,
(2)如果以二进制的形式,这里数据是数组向量的PCL
例子 PCD 文件的一个片段
#。PCD v.7 --Point Cloud Data file formatVERSION .7FIELDS x y z rgbSIZE 4 4 4 4 TYPE F FFFCOUNT 1 1 1 1WIDTH 213HEIGHT 1VIEWPOINT 0 0 0 1 0 0 0 POINTS 213DATA ascii0.93773 0.33763 0 4.218e+060.90805 0.35641 0 4.2108e+06
微信公众号号可扫描二维码一起共同学习交流
未完待续**************************
- PCL中IO模块和类的介绍
- PCL中关于滤波模块的类
- PCL中Sample_consensus模块支持的几何模型
- PCL中Sample_consensus模块支持的几何模型
- JDK中个别类的介绍-IO读写(java.io.*)
- SciPy中两个模块:io 和misc
- PCL中特征提取部分的翻译和总结整理
- Python中各个模块的介绍和使用
- Java IO中几个主要类介绍和使用
- pcl中遇到的问题
- PCL 中KdTree的bug
- PCL学习笔记(2):点云视窗类CloudViewer的介绍以及PCL程序:代码解析
- PCL和MFC的融合
- Perl Socket模块和IO::SOCKET模块的网络编程
- IO流和集合的交集Properties类的介绍。
- PCL 中 pcl::PointCloud<pcl::PointXYZRGBA>::ConstPtr 出现incomplete type is not allowed 的解决方法
- Java中IO流的介绍
- Java 的IO操作和介绍
- Linux 下开发包安装问题
- PCL库简要说明
- Spark的算子的分类
- PCL中可用的PointT类型
- Eclipse远程调试Spark
- PCL中IO模块和类的介绍
- 从PCD文件写入和读取点云数据
- spring-boot 整合mybatis 配置 可以发布到tomcat中运行
- 连接两个点云中的字段或数据形成新点云以及Opennni Grabber初识
- kd-tree理论以及在PCL 中的代码的实现
- PCL学习八叉树
- Android 使用SwipeBackLayout实现滑动返回上一级页面——实战来袭
- PCL 可视化
- js判断是否手机端进行地址跳转