主要内容

pointCloud

存储3-D点云的对象

描述

pointCloud对象从三维坐标系中的一组点创建点云数据xy,z样品表面或环境的几何坐标。每个点还可以用其他信息表示,比如RGB颜色。中列出的属性将点云数据存储为对象属性.使用对象的功能从点云数据中检索、选择和删除所需的点。

创建

描述

ptCloud= pointCloud (xyzPoints返回具有指定坐标的点云对象xyzPoints

例子

ptCloud= pointCloud (xyzPoints名称=值指定选项,使用一个或多个名称-值参数以及来自以前语法的参数的任何组合。例如,pointCloud(xyzPoints,Color=[0 0 0])设置颜色点的性质xyzPoints[0 0 0]

输入参数

全部展开

三维坐标点,指定为-by-3的点列表或——- - - - - -N-by-3数组用于有组织的点云。三维坐标点指定xy,z点在三维坐标空间中的位置。一个有组织的点云的前两个维度对应于传感器(如RGBD或激光雷达)的扫描顺序。此参数设置位置财产。

数据类型:|

输出参数

全部展开

点云,归为一pointCloud中列出的属性属性

属性

全部展开

此属性是只读的。

点在三维坐标空间中的位置,用3或——- - - - - -N3数组。每个条目指定xy,z点在三维坐标空间中的坐标。的xyzPoints输入参数设置此属性。

  • 对于无组织点云,位置必须指定为-by-3 array,其中是总点数,和数组提供的xyz每个点的坐标。

  • 对于有组织的点云,位置必须指定为——- - - - - -N-by-3 array,其中N是总点数,和数组提供的xyz每个点的坐标。从投影机中获得的点数,如Kinect®或者一个激光雷达传感器,被存储为一个有组织的点云。一个有组织的点云被布置成一个二维的点阵列,类似于一个类似图像的结构。

数据类型:|

点云的颜色,指定为3或——- - - - - -N3数组。使用此属性可设置点云中点的颜色。每个条目指定点云数据中一个点的RGB颜色。因此,可以为所有点指定相同的颜色,也可以为每个点指定不同的颜色。

  • 指定的数据类型时,指定的RGB值必须在[0,1]的范围内颜色作为

  • 的数据类型时,指定的RGB值必须在[0,255]的范围内颜色作为uint8

坐标 有效转让颜色
3组 -by-3数组,包含每个点的RGB值

——- - - - - -N3组 ——- - - - - -N-by-3数组,包含每个点的RGB值

数据类型:uint8

表面法线,用a表示3或——- - - - - -N3数组。使用此属性指定关于点云中每个点的法向量。曲面法线中的每一项都指定了xy,z法向量的分量。

坐标 表面法线
3组 -by-3数组,其中每一行包含一个对应的法向量。
——- - - - - -N3组 ——- - - - - -N-by-3数组,包含每个点的1 × 1 × 3法向量。

数据类型:|

每个点的灰度强度,用a表示-by-1向量或——- - - - - -N矩阵。该函数将每个强度值映射到当前colormap中的一个颜色值。

坐标 强度
3组 -by-1向量,其中每一行包含相应的强度值。
——- - - - - -N3组 ——- - - - - -N包含每个点的强度值的矩阵。

数据类型:||uint8|uint16

此属性是只读的。

点云中的点数,存储为正整数。

此属性是只读的。

坐标范围x-axis,存储为1 × 2向量。

此属性是只读的。

坐标范围y-axis,存储为1 × 2向量。

此属性是只读的。

坐标范围z-axis,存储为1 × 2向量。

对象的功能

findNearestNeighbors 找到点云中一个点的最近邻居
findNeighborsInRadius 在点云的一个点的半径内找到邻居
findPointsInROI 在点云中感兴趣的区域内找到点
removeInvalidPoints 从点云中删除无效点
选择 选择点云中的点
复制 点云对象的拷贝数组

例子

全部折叠

将3-D坐标点读入工作区。

负载(“xyzPoints”);

从输入点坐标创建点云对象。

ptCloud = pointCloud(xyzPoints);

检查点云对象的属性。

ptCloud
ptCloud = pointCloud属性:Location: [5184x3 single] Count: 5184 XLimits: [-3 3.4338] YLimits: [-2 2] ZLimits: [0.0016 3.1437] Color: [] Normal: [] Intensity: []

使用显示点云pcshow

pcshow (ptCloud)

图中包含一个axes对象。axes对象包含一个scatter类型的对象。

修改点云数据颜色

创建一个与点云数据大小相同的RGB颜色数组。设置点颜色为红色。

cmatrix = ones(size(ptCloud.Location))。*[10 0 0];

创建点云对象,将颜色属性设置为RGB颜色数组。

ptCloud = pointCloud(xyzPoints,“颜色”, cmatrix);pcshow (ptCloud)

图中包含一个axes对象。axes对象包含一个scatter类型的对象。

向点云数据添加表面法线

计算点云数据对应的曲面法线pcnormals

normals = pcnormals(ptCloud);

从输入点坐标创建点云对象。将计算得到的曲面法线添加到点云对象中。

ptCloud = pointCloud(xyzPoints,“正常”、法线);

显示点云并绘制表面法线。

pcshow(ptCloud) x = ptCloud. location (:,1);y = ptCloud.Location(:,2);z = ptCloud.Location(:,3);U =法线(:,1);V =法线(:,2);W =法线(:,3);持有quiver3 (x, y, z, u, v, w);持有

图中包含一个axes对象。axis对象包含两个类型为scatter和quiver的对象。

提示

pointCloud对象是处理对象。如果您想创建点云的单独副本,可以使用MATLAB®复制方法。

ptCloudB复制ptCloudA

如果希望保留点云的单个副本(可以由点云函数修改),请为输入和输出使用相同的点云变量名。

ptCloudpcFunctionptCloud

扩展功能

C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。

版本历史

在R2015a中介绍