主要内容

pcfitsphere

将球体与三维点云拟合

描述

实例

模型=pFitSphere(ptCloudIn,最大距离)将球体与点云相匹配,点云具有从内嵌点到球体的最大允许距离。该函数返回描述球体的几何模型。

此函数使用M估计样本一致性(MSAC)算法来查找球体。MSAC算法是随机样本一致性(RANSAC)算法的一个变体。

[模型,内部索引,离群指数) = pcfitsphere (ptCloudIn,最大距离)此外,还将线性索引返回到点云输入中的内部点和异常点。

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

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

例子

全部崩溃

加载数据文件。

装载(“object3d.mat”);

显示原始点云。

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

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

将球体拟合的最大点到球体距离设置为1cm。

最大距离=0.01;

设置roi以约束搜索。

roi=[-inf,0.5,0.2,0.4,0.1,inf];样本指数=findPointsInROI(ptCloud,roi);

检测球体,一个球体,并从点云中提取它。

(模型、inlierIndices) = pcfitsphere (ptCloud maxDistance,...“SampleIndices”, sampleIndices);全球=选择(ptCloud inlierIndices);

全球的阴谋。

持有绘图(模型)

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

图pcshow(全球)标题(“全球点云”)

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

输入参数

全部崩溃

点云,指定为pointCloud对象。

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

数据类型:仅有一个的|双重的

名称值参数

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

例子:“SampleIndices”,[].

输入点云中要采样的点的线性索引,指定为逗号分隔对,由'抽样指数'和列向量。空向量意味着所有点都是RANSAC迭代中拟合球体的候选样本。当您指定一个子集时,只有子集中的点被抽样以适合模型。提供分数子集可以显著加快过程并减少试验次数。可以使用findPointsInROI方法pointCloud对象。

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

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

输出参数

全部崩溃

球体的几何模型,返回为球体模型对象。

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

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

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

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

参考文献

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

扩展能力

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

介绍了R2015b