主要内容

pointCloud

存储3-D点云的对象

描述

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

创建

描述

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

ptCloud= pointCloud (xyzPoints颜色=颜色还设置点云的颜色。

例子

ptCloud= pointCloud (___名称=值除前面的语法外,使用一个或多个名称-值参数设置属性。例如,数= 5184将点云中的点数设置为5148

输入参数

全部展开

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

数据类型:|

点云颜色,指定为RGB值之一,为颜色字符串、1 × 3向量或3或——- - - - - -N3矩阵。——- - - - - -N指定点云的维度。每个条目指定点云数据中一个点的RGB颜色。因此,可以为所有点指定相同的颜色,也可以为每个点指定不同的颜色。

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

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

  • uint16数据类型,颜色RGB的取值范围必须为[0,65535]。

  • 函数存储颜色值要么为3或——- - - - - -N3。如果将颜色指定为字符串或1 × 3向量,则该函数将其转换为这些维度之一。

颜色 格式 例子
为所有点指定一种颜色

字符串标量或字符向量

“r”

“红色”

1×3向量

(255 0 0)1 × 3网格,列分别标记为r,g,b。

为每个点指定一种颜色

字符向量的单元格数组

(“红”、“黄”“蓝”)

-by-3矩阵,作为RGB值的列表

255 0 0 255 0 0 0 255 255
m × 3网格,列分别为r,g,b。

——- - - - - -N-by-3矩阵的组织点云,包含每个点的RGB值,其中——- - - - - -N为点云的维数。

m × n × 3网格,3个m × n矩阵分别标记为r,g,b。

数据类型:uint8|uint16

输出参数

全部展开

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

属性

全部展开

此属性是只读的。

点在三维坐标空间中的位置,用3或——- - - - - -N3数组。每个条目指定xy,z点在三维坐标空间中的坐标。的xyzPoints输入参数设置此属性。为了减少内存使用,可以将点位置存储为数据类型。

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

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

数据类型:|

点云的颜色,指定为3或——- - - - - -N3矩阵。——- - - - - -N指定点云的维度。每个条目指定点云数据中一个点的RGB颜色。属性设置此属性颜色输入参数。对象将该输入设置的颜色格式转换为3或——- - - - - -N3矩阵。有关如何设置颜色的详细信息,请参见中的颜色输入选项表颜色输入描述。

数据类型:uint8|uint16

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

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

数据类型:|

每个点的灰度强度,用a表示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)

修改点云数据颜色

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

cmatrix = 1(大小(ptCloud.Location))。* (1 0 0);

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

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

向点云数据添加表面法线

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

法线= 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);持有

提示

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

ptCloudB复制ptCloudA

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

ptCloudpcFunctionptCloud

扩展功能

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

版本历史

介绍了R2015a

全部展开

Baidu
map