主要内容

pcfitplane

平面与三维点云拟合

描述

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

此函数使用M-Everialator采样共识(MSAC)算法来查找该平面。MSAC算法是随机样本共识(RANSAC)算法的变体。

模型= pcfitplane (ptcloudinMaxdistance.参考矢量拟合平面到点云,点云有额外的方向约束,由1 × 3指定参考矢量输入。

例子

模型= pcfitplane (ptcloudinMaxdistance.参考矢量maxAngularDistance适合具有指定最大角度距离的点云的平面。

模型inlierIndicesupierIndices) = pcfitplane (ptcloudinMaxdistance.另外将线性索引返回到点云输入中的Inlier和异常值。

___meanError) = pcfitplane (ptcloudinMaxdistance.另外,使用前面的任何语法返回inlier点到模型的距离的平均误差。

例子

___) = 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,CaperencVector,Maxangulardistance);Plane1 = SELECT(PTCLOUD,INLIELINDICES);保留= SELECT(PTCLOUD,OutierIndices);

设置感兴趣的区域,以限制对第二架飞机,左壁的搜索。

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

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

[Model2,Inlierindices,OutierIndices] = PCFitplane(保留为止,...Maxdistance,'Samemindices', sampleIndices);plane2 =选择(remainPtCloud inlierIndices);remainPtCloud =选择(remainPtCloud outlierIndices);

画出两个平面和其余的点。

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

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

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

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

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

图中包含一个轴对象。具有标题剩余点云的轴对象包含类型分散的对象。

输入参数

全部收缩

点云,指定为apointcloud.目的。

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

数据类型:|双倍的

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

数据类型:|双倍的

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

数据类型:|双倍的

名称-值参数

指定可选的逗号分隔的对名称,价值论点。的名字参数名和价值是相应的价值。的名字必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:'Samemindices'[]

输入点云中待采样点的线性指数,指定为逗号分隔对,由'SampleIndices'和列向量。空向量表示在RANSAC迭代中所有点都是拟合平面的候选样本。当您指定一个子集时,只有子集中的点被抽样以适合模型。

提供分数子集可以显著加快过程并减少试验次数。可以使用findpointsinroi.方法的方法pointcloud.目的。

用于查找inliers的最大随机试验次数,指定为由“逗号分隔对”MaxNumTrials和一个正整数。增加这个值会使输出更健壮,但会增加额外的计算。

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

输出参数

全部收缩

几何模型的平面,返回作为PlaneModel.目的。

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

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

输入点云中的异常值点的线性指标,作为列向量返回。

意味着Inlier指向模型的距离的误差,作为标量值返回。

参考

Torr, P. H. S.和A. Zisserman。“MLESAC:一种新的用于估计图像几何的鲁棒估计器”。计算机视觉与图像理解.2000.

扩展功能

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

介绍在R2015B.