前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PCL中IO模块和类的介绍

PCL中IO模块和类的介绍

作者头像
点云PCL博主
发布2019-07-31 14:21:12
8370
发布2019-07-31 14:21:12
举报
文章被收录于专栏:点云PCL点云PCL

I/O模块中共有21个类

(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 文件的一个片段

代码语言:javascript
复制
#。PCD  v.7  --Point Cloud Data file format
VERSION .7
FIELDS x y z rgb
SIZE 4 4 4 4
TYPE F FFF
COUNT 1 1 1 1
WIDTH 213
HEIGHT 1
VIEWPOINT 0 0 0  1  0 0 0
POINTS 213
DATA ascii
0.93773    0.33763 0 4.218e+06
0.90805   0.35641  0 4.2108e+06  

未完待续**************************

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-07-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 点云PCL 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档