主要内容

fitPolynomialRANSAC

用RANSAC拟合多项式到点

描述

例子

P= fitPolynomialRANSAC (xyPointsNmaxDistance求多项式系数,P,通过对给定的一小组点进行抽样xyPoints生成多项式拟合。最内饰的合体maxDistance返回。如果找不到合适的,那么P返回空的。的function uses the M-estimator sample consensus (MSAC) algorithm, a variation of the random sample consensus (RANSAC) algorithm to fit the data.

PinlierIdx) = fitPolynomialRANSAC (___返回逻辑数组,inlierIdx,它指定与拟合多项式相嵌的数据点的索引maxDistance.使用前面语法中的输入参数。

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

例子

全部折叠

使用RANSAC算法生成一个多项式,适合一组噪声数据。的fitPolynomialRANSAC函数通过对一小组点进行抽样生成一个多项式(x, y)点数据和生成多项式拟合。最内饰的贴合maxDistance返回。

用…构造并绘制一条抛物线(x, y)点。

x =(10:0.1:10)”;y = (36 x ^ 2) / 9;图绘制(x, y)标题(“抛物线”

图中包含一个坐标轴。标题为抛物线的轴包含一个字体为线的对象。

为抛物线上的点添加噪声和离群点。

y = y +兰德(长度(y), 1);y((50150、99199))= [y (50) + 12 y (150) -12, y (99) + 33, y (199) -23);情节(x, y)标题(“带有异常值和噪声的抛物线”

图中包含一个坐标轴。标题为带有异常值和噪声的抛物线的轴包含一个类型线的对象。

使用fitPolynomialRANSAC生成二次多项式的系数。还可以得到指定的内联器maxDistance从多项式拟合。

N = 2;%二次多项式maxDistance = 1;一个点允许的最大内嵌距离[P, inlierIdx] = fit多项式ialransac ([x,y],N,maxDistance);

求多项式的值polyval.绘制曲线并覆盖(x, y)点。用红圈标出异常值。

yRecoveredCurve = polyval (P (x);图绘制(x, yRecoveredCurve“g”“线宽”, 3)情节(x (inlierIdx), y (inlierIdx),“。”x (~ inlierIdx), y (~ inlierIdx),“罗”)传说(合适的多项式的“内围层点”“离群点”)举行

图中包含一个坐标轴。轴线包含3个线型对象。这些对象代表拟合多项式,Inlier点,Outlier点。

输入参数

全部折叠

(x, y)坐标点,指定为2矩阵。多项式适合于这些点。

数据类型:||uint32|int32|uint16|int16

多项式拟合度,P,指定为整数。多项式的次是方程中各项的最高次。例如,2次多项式是:

一个x2+Bx+C

一个B,C是常数。一般来说,高次多项式允许更好的拟合,但这种拟合取决于您的数据。

从多项式拟合曲线到指定为正标量的内嵌点的最大距离。任何更远的点都被认为是异常值。RANSAC算法从一个小样本点创建一个拟合,但试图最大化内嵌点的数量。降低最大距离有助于提高多项式拟合通过对嵌点施加更紧的公差。

名称-值对的观点

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

例子:“MaxNumTrials”,2000年

最大随机试验数,指定为逗号分隔对,由'MaxNumTrials'和一个整数。单次试验使用最少的随机点数xyPoints拟合抛物线模型。然后,试验检查内嵌的数量maxDistance从模型。经过所有的试验,选择嵌线数量最多的模型。增加试验次数可以提高输出的稳健性,但需要额外的计算。

确信最终解找到多项式拟合的最大嵌套数,指定为逗号分隔对,由'信心和从0到100的标量。增加这个值会提高输出的稳健性,但会增加额外的计算量。

函数验证多项式,指定为逗号分隔对,由'ValidatePolynomialFcn'和函数句柄。函数返回真正的如果根据函数中定义的准则接受多项式。使用这个函数来拒绝特定的多项式拟合。函数的形式必须是:

isValid = validatePolynomialFcn (P,变长度输入宗量)

如果没有指定函数,则假定所有多项式都是有效的。

试图找到产生有效多项式的样本的最大次数,指定为逗号分隔对,由“MaxSamplingAttempts'和一个整数。

输出参数

全部折叠

多项式系数,返回为数值标量向量。每一个元素对应于一次多项式方程中的一个常数N.例如,对于二次多项式,一个x2+Bx+C

P = [a b c];

数据类型:|

Inlier点,作为逻辑向量返回。这个向量的长度和xyPoints,每个元素表明该点是否是基于多项式拟合的嵌套点maxDistance

参考文献

Torr, P. H. S.和A. Zisserman。“MLESAC:一种新的用于估计图像几何的鲁棒估计器”。计算机视觉与图像理解.第18卷,第1期,2000年4月,138-156页。

另请参阅

||

介绍了R2017a