主要内容

pcfitplane

将平面拟合到三维点云

描述

模型=pcfitplane(ptCloudIn,maxDistance)将平面拟合到点云,该点云具有从内点到平面的最大允许距离。该函数返回描述该平面的几何模型。

该函数使用m估计样本一致性(MSAC)算法来寻找平面。MSAC算法是RANdom SAmple Consensus (RANSAC)算法的一种变体。

模型=pcfitplane(ptCloudIn,maxDistance,referenceVector)将平面拟合到点云,该点云具有由1-x-3指定的其他方向约束referenceVector输入

实例

模型=pcfitplane(ptCloudIn,maxDistance,referenceVector,最大角度距离)将平面与具有指定的最大角距离的点云拟合。

[模型,内部索引,outlierIndices]=pcfitplane(ptCloudIn,maxDistance)另外,返回点云输入中的内嵌点和离群点的线性索引。

[___,平均误差]=pcfitplane(ptCloudIn,maxDistance)另外,使用前面的任何语法返回内部点到模型的距离的平均误差。

实例

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

例子

全部折叠

加载点云。

装载(“object3d.mat”)

显示和标记点云。

图pcshow(ptCloud)xlabel(‘X(m)’) ylabel (‘Y(m)’) zlabel (“Z (m)”)标题(“原始点云”)

图中包含一个轴对象。标题为Original Point Cloud的轴对象包含一个类型为scatter的对象。

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

最大距离=0.02;

设平面的法向量。

参考向量=[0,0,1];

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

maxAngularDistance = 5;

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

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

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

roi=[-inf,inf;0.4,inf;-inf,inf];样本指数=findPointsInROI(remainPtCloud,roi);

检测左侧墙并将其从剩余的点云中提取。

[model2, inlierIndices outlierIndices] = pcfitplane (remainPtCloud,...maxDistance,“SampleIndices”,样本索引);plane2=select(remainPtCloud,inlierIndexes);remainPtCloud=select(remainPtCloud,outlierIndexes);

绘制两个平面和其余点。

图pcshow(平面1)标题(第一架飞机的)

图中包含一个轴对象。标题为第一个平面的轴对象包含一个散射类型的对象。

图pcshow(平面2)标题(“第二架飞机”)

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

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

图中包含一个轴对象。标题为Remaining Point Cloud的axis对象包含一个类型为scatter的对象。

输入参数

全部折叠

点云,指定为pointCloud对象。

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

数据类型:仅有一个的|

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

数据类型:仅有一个的|

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

数据类型:仅有一个的|

名称值参数

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

例子:“SampleIndices”,[].

输入点云中要采样的点的线性索引,指定为逗号分隔对,由'抽样指数'和列向量。空向量意味着所有点都是RANSAC迭代中采样以拟合平面的候选点。指定子集时,仅对子集中的点进行采样以适合模型。

提供一组点可以显著加快过程并减少试验次数findPointsInROI的方法pointCloud对象。

查找嵌套的最大随机试验数,指定为逗号分隔对,包含'最大数和一个正整数。增加这个值会使输出更健壮,但会增加额外的计算。

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

输出参数

全部折叠

平面的几何模型,返回为planeModel对象。

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

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

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

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

参考文献

[1] MLESAC:一种新的稳健估计器,应用于估计图像几何体计算机视觉与图像理解. 2000.

扩展能力

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

介绍了R2015b