簡體   English   中英

2D平面擬合,ransac,matlab,鏈接

[英]2D plane fitting , ransac, matlab, link

我有一套3D點。

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(:) ) 要使此定義有意義,您必須確保在感興趣的區域上具有均勻間隔的網格。

根據您的應用,可能還有其他定義。 例如,如果您試圖在房間的中心找到高度,沿着牆壁和內部采樣點,那么用中位數替換平均值可能更合適。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM