主要内容

PCFitsphere.

适合球体到3-D点云

描述

例子

模型= pcfitsphere (ptcloudinmaxDistance适合与距离Inlier点到球体的最大允许距离的点云。该函数返回描述球体的几何模型。

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

模型inlierIndicesoutlierIndices] = pcfitsphere(ptcloudinmaxDistance另外,返回点云输入中的内嵌点和离群点的线性索引。

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

___] = pcfitsphere(___名称,值使用一个或多个指定的其他选项名称,值对论点。

例子

全部折叠

加载数据文件。

负载(“object3d.mat”);

显示原始点云。

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

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

设置最大点到球的距离为1cm用于球面拟合。

maxDistance = 0.01;

设置roi来限制搜索。

投资回报率=[无穷,0.5,0.2,0.4,0.1,正);sampleIndices = findPointsInROI (ptCloud roi);

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

[Model,Inlierindices] = PCFitsphere(PTCloud,MaxDistance,...'Samemindices',样品暗物典);Globe = Select(PtCloud,Inlierindices);

绘制地球。

持有情节(模型)

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

图PCSHOW(GLOBE)标题(“全球点云”

图中包含一个坐标轴。标题全球点云的轴包含类型分散的对象。

输入参数

全部折叠

点云,指定为apointcloud.目的。

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

数据类型:|

名称-值对的观点

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

例子:'Samemindices'[]

输入点云中待采样点的线性指数,指定为逗号分隔对,由'SampleIndices'和一列向量。空向量意味着所有点都是候选人来在Ransac迭代中采样以适合球体。指定子集时,仅采样子集中的点以适合模型。提供一个点的子集可以显着加速过程并减少试验的数量。您可以使用索引矢量使用findpointsinroi.的方法pointcloud.目的。

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

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

输出参数

全部折叠

球体的几何模型,返回为sphereModel目的。

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

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

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

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

参考

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

扩展功能

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

在R2015B中介绍