2016-06-28 65 views
4

我在3D空間中有一些平面,理論上這些平面應該全部相交在同一條線上。查找多個平面的平均相交線

每個平面通過取3個測量點來計算。但是,這些點的測量存在一些誤差。

所以在實踐中,飛機並不是全部相交在同一條直線上。

如何獲得所有這些飛機的「平均」相交線?

我可以將每個平面與每個其他平面相交,並對平均線進行平均。但是,當兩個飛機的方向幾乎相同時,其測量中的一個小錯誤將導致其計算出的交叉點出現巨大誤差。所以我會用這種方法計算平均交點時放大測量誤差。

有沒有更公平的方法來計算公共交叉線?

+0

爲*相同的定向平面*加上一個較小的交線,併爲*正交平面*加一個較大的交線*或者消除*在平行平面*附近的交點。 –

+0

是的,加權每個單獨的行應該工作,謝謝!我很好奇,是否有一些數學上的確切重量,也就是說,如果我用[angle-between-the-plane-in-rad]²來衡量每條線,我會得到最合適的結果還是有其他一些最佳值爲重量。 – HugoRune

+0

我想過了,但對此沒有很好的答案。您必須同時管理誤差模型和平面之間的角度。我認爲你不能不使用線性函數,使用一些快速增長的函數,一種指數式?真的很喜歡正交。所有這些都取決於飛機的數量等。 –

回答

0

我認爲你所需要的不是平均值,而是一種檢測異常值(即不良交點線)並丟棄它們的算法。

這樣做的一個標準算法是隨機樣本共識RANSAC)。但爲了能夠使用它,你必須定義線之間的某種距離,這應該有可能以一種有意義的方式進行。

找到內點(即好的相交線)的另一種可能性是Hough transform。在這個算法中,線的整個參數空間被細分爲單元。計算出的相交線爲包含該相交線參數的單元格「投票」。票數最多的參數單元勝出。可以通過計算投票給獲勝單元的所有線的平均線來改進結果。