我有一個關於什麼方法來平滑3D(xyz)網格的一般問題。平滑3維歐幾里德空間矩陣
我的程序有一個用立體視覺方法獲得的3D點矩陣。結果的形狀總是像半球形,但由於我想消除的立體視差錯誤,它的粗糙度很差。
問題是,該怎麼做? Rigth現在我有一半已經開發了一種方法,但我認爲可能有更好的方法。
我的實際想法是使用Hermite方法。我們的想法是:
採取一切XY和順利在兩個方向 - > XYnew和XnewY
轉換埃爾米特線成貝塞爾線,並找到XYnew和XnewY之間的交叉點,具有新點。 (重複所有點,通常爲2000)
使用具有XYZnew的hermite XYZ平滑。
分辯現在我有埃爾米特表面平滑化及Hermite線在C++平滑inplemented,但作爲espected中間部分是不容易。
無論如何,我的問題是,這是一個正確的方法或有另一個可能會更好嗎?
當然這個想法是elliminate由立體視覺方法所產生的誤差,這不是一個計算機圖形的問題,更是一個數據處理問題
附錄:
起初我吼聲與一個Z平滑將是足夠的,但顯然它不是,也有很多XY錯誤。在下面的圖片中,您可以看到Z配件正在工作,但它仍然非常粗糙,因爲它可以在2圖像中看到。 (顏色是變形建議立即進行刪除是相當連續)
貝塞爾曲線是二維的,並用它來平滑三維表面至少不起作用。此外,您的數據看起來並不那麼嘈雜,您是否嘗試使用加權線性最小二乘法進行移動平均或局部迴歸進行平滑? – divanov
我知道它沒有太多的噪音,但它不夠好。顏色(由正方形的變形計算)必須柔和,所有這些小的藍色和紅色的隨機孤立點確實是立體視覺錯誤。我沒有嘗試進行局部迴歸,但是我認爲在某些情況下單獨處理線可能會產生更多的錯誤。儘管如此,我仍然需要閱讀更多關於方法的知識,但似乎@佛朗哥的選擇是一個很好的選擇。 –