主要内容

pcfitplane

将平面与三维点云拟合

描述

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

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

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

例子

模型= pcfitplane (ptCloudInmaxDistancereferenceVectormaxAngularDistance将平面与具有指定最大角距离的点云相匹配。

模型inlierIndicesoutlierIndices) = pcfitplane (___此外,返回点云输入中的内点和离群点的线性指标。

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

例子

___) = pcfitplane (___名称=值指定选项,使用一个或多个名称-值参数以及来自以前语法的参数的任何组合。例如,pcfitplane (ptCloud maxDistance、referenceVector maxAngularDistance,信心= 95)将寻找最大内嵌数的置信百分比设置为95

例子

全部折叠

加载点云。

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

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

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

输入参数

全部折叠

点云,指定为pointCloud对象。

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

数据类型:|

参考方向约束,指定为1 × 3向量。您必须为函数指定此参数,以便应用方向约束以使平面适合于输入点云。如果不指定参考向量,则用平面方程拟合模型,斧头+通过+cz+d0

数据类型:|

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

数据类型:|

名称-值参数

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

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

输入点云中采样点的线性指标,指定为列向量。空向量意味着在RANSAC迭代中,所有点都是拟合平面的候选采样点。当指定一个子集时,只采样该子集中的点以适合模型。

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

用于查找内夹的最大随机试验次数,指定为正整数。增加这个值会使输出更加健壮,但会增加额外的计算量。

查找最大内嵌数的置信百分比,指定为范围(0 100)中的数值标量。增加这个值会使输出更加健壮,但会增加额外的计算量。

输出参数

全部折叠

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

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

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

输入点云内离群点的线性指数,作为列向量返回。

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

参考文献

[1]托尔,P. H. S.和A.齐瑟曼。MLESAC:一种新的应用于估计图像几何的鲁棒估计器。计算机视觉与图像理解“,.2000.

扩展功能

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

版本历史

介绍了R2015b

Baidu
map