主要内容

pcfitplane

适合飞机三维点云

描述

模型= pcfitplane (ptCloudIn,maxDistance)适合一个平面点云,有一个最大允许内围层点到平面的距离。函数返回一个几何模型,描述了飞机。

这个函数使用M-estimator样品一致(MSAC)算法找到飞机。MSAC算法随机样本共识的一种变体(RANSAC)算法。

模型= pcfitplane (ptCloudIn,maxDistance,referenceVector)适合一个平面点云,额外的取向1×3规定的约束referenceVector输入。

例子

模型= pcfitplane (ptCloudIn,maxDistance,referenceVector,maxAngularDistance)适合一个平面点云,有一个指定的最大角距。

(模型,inlierIndices,outlierIndices)= pcfitplane (___)此外返回线性指数窗和异常值点的点云输入。

(___,meanError)= pcfitplane (___)此外返回内围层点的距离的平均误差模型,使用任何前面的语法。

例子

(___)= pcfitplane (___,名称=值)指定选项使用一个或多个名称参数除了参数从以前的语法的任意组合。例如,pcfitplane (ptCloud maxDistance、referenceVector maxAngularDistance,信心= 95)设置内围层的信心寻找最大数量的百分比95年

例子

全部折叠

加载点云。

负载(“object3d.mat”)

显示图的点云和标签。

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

设置最大point-to-plane距离(2厘米)飞机配件。

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)标题(“第一架飞机”)

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

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

输入参数

全部折叠

点云,指定为一个pointCloud对象。

平面的最大距离内围层点,指定为一个标量值。指定距离的单位是一致的点云的单位使用。

数据类型:|

参考方位限制,指定为1×3向量。您必须指定这个参数的函数使用一个方位限制,以适应飞机输入点云。如果你不指定参考向量,该函数使用飞机的模型方程,斧头+通过+cz+d=0

数据类型:|

最大绝对角安装平面的法向量之间的距离和参考方向,指定为一个标量值度。

数据类型:|

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

例子:pcfitplane (ptCloud maxDistance、referenceVector maxAngularDistance,信心= 95)设置内围层的信心寻找最大数量的百分比95年

点的线性指标样本的输入点云,指定为一个列向量。空向量意味着所有点样本的候选人RANSAC迭代以适应飞机。当你指定一个子集,只采样点的子集来适应一个模型。

提供的一个子集点可以显著加快这一进程,减少试验的次数。您可以生成指数向量使用findPointsInROI对象的函数pointCloud对象。

最大数量的随机试验寻找窗,指定为一个正整数。增加这个值使输出更健壮但增加了额外的计算。

信心寻找最大内围层数百分比,指定为数字标量范围(0 100)。增加这个值使输出更健壮但增加了额外的计算。

输出参数

全部折叠

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

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

内的线性指数窗点输入点云,作为一个列向量返回。

的线性指标输入点云中的离群点,作为一个列向量返回。

内围层点的距离的平均误差模型,作为标量值返回。

引用

[1]托,p·h·S。,and A. Zisserman. “MLESAC: A New Robust Estimator with Application to Estimating Image Geometry.”计算机视觉和图像理解。2000年。

扩展功能

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

版本历史

介绍了R2015b