主要内容

PointCloud

存储3-D点云的对象

描述

PointCloud对象从3-D坐标系中的一组点创建点云数据,点通常表示X,,,,y, 和z样品表面或环境的几何坐标。每个点也可以用其他信息来表示,例如RGB颜色。点云数据作为对象存储,并在特性。利用对象功能要检索,从点云数据中选择并删除所需的点。

创建

描述

ptcloud= pointcloud(xyzpoints返回具有指定的坐标的点云对象xyzpoints

例子

ptcloud= pointcloud(xyzpoints,,,,名称=值除了以前的语法中的任何参数组合外,还使用一个或多个名称值参数指定选项。例如,pointCloud(xyzpoints,color = [0 0 0])设置颜色点的属性xyzpoints[0 0 0]

输入参数

展开全部

3-D坐标点,指定为m-by-3点或m-经过-n- 有组织的点云的by-3阵列。3-D坐标点指定X,,,,y, 和z3-D坐标空间中的点位置。有组织的点云的前两个维度对应于RGBD或LIDAR等传感器的扫描顺序。这个参数设置了地点财产。

数据类型:单身的|双倍的

输出参数

展开全部

点云,返回PointCloud对象,列出的属性特性

特性

展开全部

此属性仅阅读。

点在3-D坐标空间中的位置,指定为m-by-3或m-经过-n-by-3阵列。每个条目指定X,,,,y, 和z3-D坐标空间中一个点的坐标。这xyzpoints输入参数设置此属性。

  • 对于无组织的点云,地点必须指定为m-by-3阵列,哪里m是点的总数,并且数组提供X,,,,y,,,,z每个点的坐标。

  • 对于有组织的点云,地点必须指定为m-经过-n-by-3阵列,哪里m*n是点的总数,并且数组提供X,,,,y,,,,z每个点的坐标。从投影摄像机(例如Kinect)获得的点®或激光雷达传感器作为有组织的点云存储。有组织的点云被布置为类似于图像的结构的2D点阵列。

数据类型:单身的|双倍的

点云颜色,指定为m-by-3或m-经过-n-by-3阵列。使用此属性在点云中设置点的颜色。每个条目都指定点云数据中点的RGB颜色。因此,您可以为所有点指定相同的颜色或每个点的不同颜色。

  • 指定的RGB值必须位于[0,1]的范围内,当您指定数据类型颜色作为单身的或者双倍的

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

坐标 有效分配颜色
m-by-3阵列 m-by-3数组,每个点包含RGB值

m-经过-n-by-3阵列 m-经过-n-by-3数组,每个点包含RGB值

数据类型:UINT8

表面正态,指定为m-by-3或m-经过-n-by-3阵列。使用此属性相对于点云中的每个点指定正常向量。表面正常中的每个条目都指定X,,,,y, 和z正常矢量的组成部分。

坐标 表面正常
m-by-3阵列 m-by-3数组,其中每一行包含相应的正常向量。
m-经过-n-by-3阵列 m-经过-n-by-3阵列,每个点包含1 x-1 by-3的正常矢量。

数据类型:单身的|双倍的

每个点的灰度强度,指定为m-b-1矢量或m-经过-n矩阵。该函数将每个强度值映射到当前菌落中的颜色值。

坐标 强度
m-by-3阵列 m-by-1矢量,其中每一行包含相应的强度值。
m-经过-n-by-3阵列 m-经过-n矩阵包含每个点的强度值。

数据类型:单身的|双倍的|UINT8|UINT16

此属性仅阅读。

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

此属性仅阅读。

坐标范围X- 轴,存储为1 x-2矢量。

此属性仅阅读。

坐标范围y- 轴,存储为1 x-2矢量。

此属性仅阅读。

坐标范围z- 轴,存储为1 x-2矢量。

对象功能

FindNearestNeighbors 在点云中找到一个点的邻居
Findneighborsinradius 在点云中的点半径内找到邻居
Findpointsinroi 在点云中感兴趣的区域内找到点
删除Invalidpoints 从点云中删除无效的点
选择 点数云中的选择点
复制 复制点云对象的数组

例子

全部收缩

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

加载('xyzpoints');

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

ptcloud = pointcloud(xyzpoints);

检查点云对象的属性。

ptcloud
ptcloud = pointcloud with属性:位置:[5184x3单]计数:5184 xlimits:[-3 3.4338] ylimits:[-2 2] Zlimits:[0.0016 3.1437]颜色:[]正常:[]强度:[]强度:[]

使用使用PCSHOW

PCSHOW(PTCLOUD)

图包含一个轴对象。轴对象包含类型散点的对象。

修改点云数据的颜色

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

cmatrix = ons(size(ptcloud.location))。*[1 0 0];

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

ptcloud = pointcloud(xyzpoints,'颜色',cmatrix);PCSHOW(PTCLOUD)

图包含一个轴对象。轴对象包含类型散点的对象。

将表面正常添加到点云数据

使用使用点云数据对应于点云数据的表面正态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);抓住离开

图包含一个轴对象。轴对象包含2个类型散点的对象。

提示

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

ptcloudb=复制((ptclouda

如果要保留点云的单个副本,该副本可以通过点云功能进行修改,请为输入和输出使用相同的点云变量名称。

ptcloud=pcunction((ptcloud

扩展功能

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

版本历史记录

在R2015a中引入