主要内容

pcdenoise

去除三维点云中的噪声

描述

例子

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

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

ptCloudOut___) = pcdenoise (___名称=值指定名称-值参数,以及来自以前语法的参数的任何组合。例如,阈值= 1.0将离群值阈值设置为1.0

例子

全部折叠

创建一个平面点云。

全球之声= 0:0.01:1;(X, Y) = meshgrid(问,问);ptCloud = pointCloud ([X (:), Y(:), 0.5 *的(元素个数(X) 1)));图pcshow (ptCloud);标题(“原始数据”);

添加均匀分布随机噪声。

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

删除离群值。

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

从保存的mat文件加载有组织的点云。

ld =负载(“drivingLidarPoints.mat”);orgPtCloud = ld.ptCloud;

从点云中去除噪声。

orgPtCloudOut = pcdenoise (orgPtCloud PreserveStructure = true);

输入参数

全部折叠

点云,指定为pointCloud对象。

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

例子:阈值= 1.0将阈值设置为1.0

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

数据类型:|

离群值阈值,指定为逗号分隔的对,由'阈值和一个正数。缺省情况下,阈值是所有点到邻居的平均距离的平均值的一个标准差。如果一个点到它的平均距离被认为是一个离群值k-最近邻值高于指定阈值。

数据类型:|

将点云的组织结构保存为——- - - - - -N-by-3位置矩阵,指定为真正的.下表根据的值描述了点云结构PreserveStructure

PreserveStructure 函数返回
真正的

有组织的去噪点云

位置属性,该属性描述点云的结构,包含——- - - - - -N3矩阵。

在去噪后的点云中未被选中的点被填充,对应的颜色设置为(0 0 0)

要返回有组织的点云,输入必须是有组织的点云。

无组织的、去噪的点云。

位置属性,该属性描述点云的结构,包含3矩阵。

输出参数

全部折叠

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

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

数据类型:uint32

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

数据类型:uint32

参考文献

ruu, R. B., Z. C. Marton, N. Blodow, M. Dolha, M. beitz。“面向家庭环境的基于3D点云的对象映射”。机器人与自主系统杂志.2008.

扩展功能

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

版本历史

介绍了R2015a

Baidu
map