2012-10-04 53 views
1

我有一個關於什麼方法來平滑3D(xyz)網格的一般問題。平滑3維歐幾里德空間矩陣

我的程序有一個用立體視覺方法獲得的3D點矩陣。結果的形狀總是像半球形,但由於我想消除的立體視差錯誤,它的粗糙度很差。

問題是,該怎麼做? Rigth現在我有一半已經開發了一種方法,但我認爲可能有更好的方法。

我的實際想法是使用Hermite方法。我們的想法是:

  1. 採取一切XY和順利在兩個方向 - > XYnew和XnewY

  2. 轉換埃爾米特線成貝塞爾線,並找到XYnew和XnewY之間的交叉點,具有新點。 (重複所有點,通常爲2000)

  3. 使用具有XYZnew的hermite XYZ平滑。

分辯現在我有埃爾米特表面平滑化及Hermite線在C++平滑inplemented,但作爲espected中間部分是不容易。

無論如何,我的問題是,這是一個正確的方法或有另一個可能會更好嗎?

當然這個想法是elliminate由立體視覺方法所產生的誤差,這不是一個計算機圖形的問題,更是一個數據處理問題

附錄:

起初我吼聲與一個Z平滑將是足夠的,但顯然它不是,也有很多XY錯誤。在下面的圖片中,您可以看到Z配件正在工作,但它仍然非常粗糙,因爲它可以在2圖像中看到。 (顏色是變形建議立即進行刪除是相當連續) Image without Z smoothing enter image description here

+0

貝塞爾曲線是二維的,並用它來平滑三維表面至少不起作用。此外,您的數據看起來並不那麼嘈雜,您是否嘗試使用加權線性最小二乘法進行移動平均或局部迴歸進行平滑? – divanov

+0

我知道它沒有太多的噪音,但它不夠好。顏色(由正方形的變形計算)必須柔和,所有這些小的藍色和紅色的隨機孤立點確實是立體視覺錯誤。我沒有嘗試進行局部迴歸,但是我認爲在某些情況下單獨處理線可能會產生更多的錯誤。儘管如此,我仍然需要閱讀更多關於方法的知識,但似乎@佛朗哥的選擇是一個很好的選擇。 –

回答

2

除非你有更好的先驗概率,它是很難被擊敗的經典Taubin的算法:http://mesh.brown.edu/taubin/pdfs/taubin-iccv95a.pdf

+0

這與應用高斯平滑大致相同。 – divanov

+0

事情是我也需要從平滑的結果中提取可靠的信息,你認爲Taubin的算法不會過濾我的數據太多嗎?當然,我可以看到,如果我使用高斯平滑,而不是消除立體視覺中產生的錯誤,我將創建更多的錯誤,因爲過濾器修改結果的數量,但是Taubin的算法是否真的作爲低通濾波器工作,是隻會消除我的數據的高頻率?看起來好文章,但我只是想確定之前,我用C++實現它... –

+0

嗯,儘管我不會使用它,但我仍然認爲你的答案是有效的。它確實是一個很好的算法,並且在平滑曲面上工作起來相當不錯。 –