MATLAB点云处理:1点云的读取、显示和保存

本文作为MATLAB点云学习记录的开篇,介绍MATLAB读取、显示和保存点云的内容

  1. 点云读取
  2. 读取非PCD和PLY格式的文件
  3. 点云显示
  4. 点云保存

点云读取

MATLAB能够读取PLY或者PCD格式的文件

rabbit = pcread('rabbit.pcd')

这里读取了那个著名的兔子点云,获取了一个pointCloud对象,这个pointCloud对象包含的属性有

Location 包含了所有的点信息,每个点的x y z构成一行
Count 点的总个数
XLimit YLimit ZLimit 分别包含X Y Z坐标的最小值和最大值,也就是范围
Color 点的颜色信息,这个暂时先忽略
Normal 点的法向
Intensity 

这里展示一下,我读取的rabbit包含的信息
MATLAB点云处理:1点云的读取、显示和保存_第1张图片
那么随之而来的一个问题就是,该怎么去使用这样的数据呢,比如点云处理需要用到Location里的xyz坐标信息,其实很简单,可以通过“.”直接访问这些信息

point_xyz = rabbit.Location;

这样现在得到的point_xyz就只包含了rabbit点云的三维坐标

读取非PCD和PLY格式的文件

MATLAB提供的pcread函数只能读取pcd或者ply格式的文件,我们知道各种格式的文件是可以相互转化的,可以提前把其它格式的文件利用Geomagic等点云处理软件进行转换就好了,但是似乎太麻烦,其实有更简单的办法:利用pointCloud函数

rabbit_copy = pointCloud(point_xyz)

刚才我们获得point_xyz只包含点的三维坐标,现在我们可以利用pointCloud将一个N*3的矩阵转换为一个点云,这样我们就可以将点云和矩阵进行相互的转化,是不是很easy

点云显示

视觉是最直观的传达方式,有必要将读取的点云或者处理的结果展示出来,MATLAB利用pcshow显示pointCloud对象

pcshow(rabbit)

MATLAB点云处理:1点云的读取、显示和保存_第2张图片
这里留个伏笔,点云显示的话,MATLAB还有一个pcshowpair函数,下次再说吧

点云存储

MATLAB提供的点云存储函数为pcwrite

pcwrite(rabbit,'rabbit_copy.pcd')

通过这种方法就将刚才的点云对象,保存到名为‘rabbit_copy.pcd’文件里了

你可能感兴趣的:(MATLAB点云处理学习记录,matlab)