主要内容

pcdenoise

去除三维点云中的噪声

描述

例子

ptCloudOut= pcdenoise (ptCloudIn返回删除异常值的过滤点云。

ptCloudOutinlierIndicesoutlierIndices= pcdenoise(ptCloudIn另外,返回标识为内值和异常值的点的线性下标。

ptCloudOut___= pcdenoise(___名称,值使用一个或多个指定的其他选项名称,值对参数,使用前面的任何语法。

例子

全部折叠

创建一个平面点云。

Gv = 0:0.01:1;[X,Y] = meshgrid(gv,gv);ptCloud = pointCloud ([X (:), Y(:), 0.5 *的(元素个数(X) 1)));图pcshow (ptCloud);标题(“原始数据”);

图中包含一个轴对象。标题为Original Data的axes对象包含一个散点类型的对象。

添加均匀分布的随机噪声。

噪声= rand(500,3);ptCloudA = pointCloud([ptCloud.Location;噪音);图pcshow (ptCloudA);标题(“数据”);

图中包含一个轴对象。标题为嘈杂数据的axes对象包含一个散点类型的对象。

删除离群值。

ptCloudB = pcdenoise(ptCloudA);图;pcshow (ptCloudB);标题(“去噪数据”);

图中包含一个轴对象。标题为降噪数据的axes对象包含一个散点类型的对象。

输入参数

全部折叠

点云,指定为apointCloud对象。

名称-值参数

的可选逗号分隔对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“阈值”1.0将阈值设置为1.0

最近相邻点的数目,指定为逗号分隔的对,由'NumNeighbors'和像素为单位的正整数。该值用于估计所有点到邻居的平均距离的平均值。减小这个值会使滤波器对噪声更加敏感。增加这个值会增加计算次数。

数据类型:|

异常值阈值,指定为逗号分隔的对,由'阈值'和标量。默认情况下,阈值是所有点到邻居的平均距离的平均值的一个标准偏差。一个点被认为是一个离群点,如果它的平均距离k-nearest neighbors大于指定阈值。

数据类型:|

输出参数

全部折叠

过滤后的点云,返回为pointCloud对象。

内嵌点的线性索引,返回为1 × -N向量。

数据类型:uint32

离群点的线性索引,返回为1 × -N线性指标的向量。

数据类型:uint32

参考文献

[1]鲁苏,R. B., Z. C.马顿,N.布罗多,M.多尔哈,M.比茨。“面向家庭环境的基于3D点云的对象地图”。机器人与自主系统杂志.2008.

扩展功能

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

GPU代码生成
使用GPU Coder™为NVIDIA®GPU生成CUDA®代码。

在R2015a中引入