平面方程:ax+by+cz+d=0
方程本身不複雜,原理推導別人已經寫得很明白了,我這裡只貼位址了,不重複推導。
構建係數矩陣後,利用最小二乘即可 求解:
ax=b
x=(ata)-1atb
% matlab
inv(a'*a)*a'*b
實際使用過程中,遇到一些問題。
參考原部落格提出的方法,當用於擬合係數 c=0的平面,結果有時候對,有時候不對,一開始我懷疑係數矩陣超出double型別的資料範圍,後來採用了8萬多個點計算發現,並沒有出現資料型別超限的情況,那麼剩下可能就是在 c≠0 的情況下推導出的模型不適用於所有情況,於是我假設 a≠0,同樣的方法重新推導了係數矩陣,代入點雲計算發現擬合出來的平面是正確的。
總結:方法一可以用來擬合平面,但是如果平面與推導的係數矩陣假設條件(a≠0 or b≠0 or c≠0 )不符,擬合容易失敗(有時候也可以擬合出來)。如果結合先驗知識提前知道(a≠0 or b≠0 or c≠0 )則可以對應採用相應的模型進行擬合,會稍微麻煩一些。
貼個簡單例
圓柱點雲擬合
最近一段時間都在做點雲擬合方面的研究,準確來說是圓柱點雲資料的擬合,求出圓柱的一些相關引數。現在就來總結一下到目前的成果。圓柱擬合目前用的最多的還是最小二乘法,即求離散點到圓柱中軸線的距離與設計半徑的差達到最小,但是也很多其他的方法,下面來說一下各個方法。1.最小二乘。求取圓柱中軸線方向向量 座標轉...
空間離散點擬合成空間平面
空間中的離散點得到擬合平面,其實這就是乙個最優化的過程。即求這些點到某個平面距離和最小的問題。我們知道乙個先驗訊息,那就是該平面一定會過眾散點的平均值。接著我們需要做的工作就是求這個平面的法向量。根據協方差矩陣的svd變換,最小奇異值對應的奇異向量就是平面的方向。隨機生成一組 x,y,z 這些點的座...
空間離散點擬合成空間平面
空間中的離散點得到擬合平面,其實這就是乙個最優化的過程。即求這些點到某個平面距離和最小的問題。我們知道乙個先驗訊息,那就是該平面一定會過眾散點的平均值。接著我們需要做的工作就是求這個平面的法向量。根據協方差矩陣的svd變換,最小奇異值對應的奇異向量就是平面的方向。隨機生成一組 x,y,z 這些點的座...