主要内容

pcfitplane

拟合平面到三维点云

描述

模型= pcfitplane (ptCloudInmaxDistance将一个平面适合于一个从内层点到平面的最大允许距离的点云。该函数返回描述该平面的几何模型。

该函数使用M-estimator SAmple Consensus (MSAC)算法来寻找平面。MSAC算法是随机抽样一致性(RANSAC)算法的变体。

模型= pcfitplane (ptCloudInmaxDistancereferenceVector将一个平面适合于具有由1 × 3指定的附加方向约束的点云referenceVector输入。

例子

模型= pcfitplane (ptCloudInmaxDistancereferenceVectormaxAngularDistance将一个平面适合于具有指定的最大角距离的点云。

模型inlierIndicesoutlierIndices) = pcfitplane (ptCloudInmaxDistance另外,返回点云输入中的内点和离群点的线性索引。

___meanError) = pcfitplane (ptCloudInmaxDistance另外,使用前面任何一种语法返回内嵌点到模型的距离的平均误差。

例子

___) = pcfitplane (ptCloudInmaxDistance名称,值使用由一个或多个指定的附加选项名称,值对参数。

例子

全部折叠

加载点云。

负载(“object3d.mat”

显示和标记点云。

图pcshow (ptCloud)包含(“X (m)”) ylabel (“Y (m)”) zlabel (“Z (m)”)标题(原始点云的

图中包含一个轴。标题为原始点云的轴包含一个散射类型的对象。

设置平面拟合的最大点到平面的距离(2cm)。

maxDistance = 0.02;

设置平面的法向量。

referenceVector = [0, 0, 1];

设置最大角度距离为5度。

maxAngularDistance = 5;

检测第一个平面,即表,并从点云中提取它。

[model1, inlierIndices outlierIndices] = pcfitplane (ptCloud,...maxDistance、referenceVector maxAngularDistance);plane1 =选择(ptCloud inlierIndices);remainPtCloud =选择(ptCloud outlierIndices);

设置感兴趣的区域以限制搜索第二个平面(左墙)。

roi =[正无穷,0.4,正,负,正);sampleIndices = findPointsInROI (remainPtCloud roi);

检测左墙并从剩余的点云中提取它。

[model2, inlierIndices outlierIndices] = pcfitplane (remainPtCloud,...maxDistance,“SampleIndices”, sampleIndices);plane2 =选择(remainPtCloud inlierIndices);remainPtCloud =选择(remainPtCloud outlierIndices);

绘制两个平面和剩下的点。

图pcshow (plane1)标题(第一架飞机的

图中包含一个轴。标题为First Plane的轴包含一个类型为scatter的对象。

图pcshow (plane2)标题(第二架飞机的

图中包含一个轴。标题为Second Plane的轴包含一个散点类型的对象。

图pcshow (remainPtCloud)标题(“剩下的点云”

图中包含一个轴。标题为“剩余点云”的轴包含一个散点类型的对象。

输入参数

全部折叠

点云,指定为pointCloud对象。

内点到平面的最大距离,用标量值指定。指定距离的单位与您为点云使用的单位一致。

数据类型:|

参考方向约束,指定为1 × 3向量。

数据类型:|

拟合平面的法向量与参考方向之间的最大绝对角距离,以度数表示。

数据类型:|

名称-值对的观点

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

例子:“SampleIndices”[]

输入点云中待采样点的线性索引,指定为由'组成的逗号分隔对SampleIndices'和一个列向量。空向量意味着所有的点都是RANSAC迭代中用来拟合平面的候选点。当您指定一个子集时,只采样子集中的点以适合模型。

提供一个点子集可以显著加快过程并减少试验次数。方法生成索引向量findPointsInROI的方法pointCloud对象。

查找内联函数的最大随机试验次数,指定为由'组成的逗号分隔对MaxNumTrials’和一个正整数。增加这个值会使输出更健壮,但会增加额外的计算。

查找最大内联数的置信百分比,指定为由'组成的逗号分隔对信心'和一个数值标量,范围为[0 100]。增加这个值会使输出更健壮,但会增加额外的计算。

输出参数

全部折叠

几何模型的飞机,返回为planeModel对象。

当输入点云没有包含足够的有效点时,或者当函数找不到足够的内点时,输出模型的系数设为零。

输入点云内内嵌点的线性索引,作为列向量返回。

输入点云中离群点的线性索引,作为列向量返回。

内嵌点到模型的距离的平均误差,以标量值返回。

参考文献

P. H. S.托尔和A. Zisserman。MLESAC:一种新的鲁棒估计器及其在图像几何估计中的应用。计算机视觉与图像理解.2000.

扩展功能

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

介绍了R2015b