用pcl读ply文件_PCL基础

  1. 点云数据类型
  2. 点云格式-pcd
  3. 向pcd文件写入点云数据
  4. 从pcd文件读取点云
  5. kd-tree 的实现
  6. 基于octree的空间划分及搜索操作

点云数据类型

1.点云定义

根据激光测量原理得到的点云,包括三维坐标(XYZ)和激光反射强度(Intensity)。
根据摄影测量原理得到的点云,包括三维坐标(XYZ)和颜色信息(RGB)。
结合激光测量和摄影测量原理得到点云,包括三维坐标(XYZ)、激光反射强度(Intensity)和颜色信息(RGB)。
在获取物体表面每个采样点的空间坐标后,得到的是一个点的集合,称之为“点云”(Point Cloud)。
点云存储格式有很多:*.pts; *.asc ; *.dat; *.stl ; [1]  *.imw;*.xyz;*.las
LAS格式文件已成为LiDAR数据的工业标准格式,LAS文件按每条扫描线排列方式存放数据,包括激光点的三维坐标、多次回波信息、强度信息、扫描角度、分类信息、飞行航带信息、飞行姿态信息、项目信息、GPS信息、数据点颜色信息等。

bac875788c7760403ddc27068c92928c.png

2. PCL中点云数据类型

点云数据分为有序与无序两种类型:

1dbff7ca2b059a5a589c34e2b8b6cbe2.png

最基本的数据类型就是PointCloud了。它是一个C++类,包含了如下的数据成员(括号中是这个数据的数据类型):

(1)width(int) :指定了点云数据中的宽度。width有两层含义:

- 对于无序点云而言, 指的是点云的数量。

- 在有序点云中,一行点云的数量。

(2)height(int) :指定了点云数据中的高度。height有两层含义:

  • 指定有序点云中,点云行的数量。
  • 对于无序点云,将height设为1(它的width即为点云的大小),区分点云是否有序。

(3)points(std::vector) :points是存储类型为PointT的点的向量。举例来说,对于一个包含XYZ数据的点云,points成员就是由pcl::PointXYZ类型的点构成的向量:

(4)is_dense(bool) :
指定点云中的所有数据都是有限的(true),还是其中的一些点不是有限的,它们的XYZ值可能包含inf/NaN 这样的值(false)。

(5)sensor_origin_(Eigen::Vector4f) :
指定传感器的采集位姿(==origin/translation==)这个成员通常是可选的,并且在PCL的主流算法中用不到。

(6)sensor_orientaion_(Eigen::Quaternionf) :
指定传感器的采集位姿(方向)。这个成员通常是可选的,并且在PCL的主流算法中用不到。
为了简化开发,PointCloud类包含许多帮助成员函数。举个例子,如果你想判断一个点云是否有序,不用检查height是否等于1,而可以使用isOrganized()函数来判断:

if (!cloud.isOrganized ())
  ...
 

上面所说pcl::PointCloud包含一个域,他作为点的容器,这个域是PointT类型的是pcl::PointCloud类的模板参数,定义了点云的存储类型。

接下来介绍几种常用的点云类型:

(1)pcl::PointCloud<pcl::PointXYZ>  //PointXYZ 成员:float x,y,z;表示了xyz3D信息,可以通过points[i].data[0]或points[i].x访问点X的坐标值
(2)pcl::PointCloud<pcl::PointXYZI>  //PointXYZI成员:float x, y, z, intensity; 表示XYZ信息加上强度信息的类型。
(3)pcl::PointCloud<pcl::PointXYZRGB>  //PointXYZRGB 成员:float x,y,z,rgb; 表示XYZ信息加上RGB信息࿰
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值