2D平面拟合,ransac,matlab,链接

我有一组3D点。2D平面拟合,ransac,matlab,链接

Points_[x,y,z]% n*3 where n is number of points 

我想适合飞机(它是地板)并检查飞机的高度。我认为这是2D问题。

z=bo+b1x+b2y; 

我无法找到一个链接,2D RANSAC平面拟合。有人可以给这个链接或文件。其次,有些软件(商业版)给出了飞机的高度值。这意味着一些复杂的价值。

问候,

回答:

如果形成下面“A”矩阵

A = [ones(numel(Points_X),1), Points_X(:), Points_Y(:)]; 

其中(:)是给你列向量(如果它们没有以开始)

然后你可以写出你的方程作为经典的线性方程组:

A*b = Points_Z(:); 

其中b = [b0; B1; b2] - 您尝试确定的参数的列向量。 这具有典型的解决方案

b=A\Points_Z(:) 

b=pinv(A)*Points_Z(:)

查看mldivide和PINV帮助。

你必须有3个或更多的点并不都在一条线上。对于这样的超定系统,pinv和\基本上会产生相同的结果。如果它们几乎共线,则可能有一些优势。

b中的3个参数基本上是平面上的平面的高度,x斜率和y平面的斜率。如果你仔细想想,一架飞机的“高度”就是你的z字。你可以谈论某个点以上的高度(如原点)。现在,如果你想在高采样点的质心,你会然后做

z_mean = [1 mean(Points_X(:)) mean(Points_Y(:))] * b 

这可能只是相当于mean(Points_Z(:))。为了使这个定义有意义,你必须确保你在感兴趣的区域上有一个均匀间隔的网格。

可能存在其他定义,例如,如果您试图找到房间中心的高度,并沿着墙壁和内部采样点,则用平均值替换平均值可能更合适。

以上是 2D平面拟合,ransac,matlab,链接 的全部内容, 来源链接: utcz.com/qa/259438.html

回到顶部