主要内容

pointCloud

对象,用于存储三维点云

描述

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

创建

描述

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

例子

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

输入参数

全部展开

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

数据类型:|

输出参数

全部展开

点云,返回为pointCloud对象中列出的属性属性

属性

全部展开

该属性是只读的。

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

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

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

数据类型:|

点云颜色,指定为an3或——- - - - - -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表示- × 1向量——- - - - - -N矩阵。该函数将每个强度值映射到当前颜色映射中的颜色值。

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

数据类型:||uint8|uint16

该属性是只读的。

点云中的点数,以正整数形式存储。

该属性是只读的。

沿x-轴,存储为1 × 2向量。

该属性是只读的。

沿y-轴,存储为1 × 2向量。

该属性是只读的。

沿z-轴,存储为1 × 2向量。

对象的功能

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

例子

全部折叠

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

负载(“xyzPoints”);

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

ptCloud = pointCloud(xyzPoints);

检查点云对象的属性。

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

使用显示点云pcshow

pcshow (ptCloud)

图包含一个轴对象。axis对象包含一个类型为scatter的对象。

修改点云数据的颜色

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

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

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

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

图包含一个轴对象。axis对象包含一个类型为scatter的对象。

添加表面法线到点云数据

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

normals = pcnormals(ptCloud);

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

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

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

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

图包含一个轴对象。轴对象包含两个类型的对象散射,抖动。

提示

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

ptCloudB=复制ptCloudA

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

ptCloud=pcFunctionptCloud

扩展功能

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

版本历史

在R2015a中引入