2011-12-13 67 views
2

我有一堆點應該代表一張臉。我必須多次應用高斯濾波器。我嘗試了一些Java,但沒有奏效。我想我可能是錯誤地進行了。目的是「填補」一些空白區域。點雲上的高斯過濾器

我創建了n * n個單元格的掩碼,並將其應用於每個點。考慮到掩模內的點,該掩模應該應用高斯濾波器。雖然平均濾波器正常工作(但它不是我所需要的),但我所做的高斯濾波器卻不起作用。

點在3D空間上。問題是:如何繼續使用Java來創建一個高斯濾波器以應用於3D空間中的點雲?

我其實覺得解決方案很簡單,但我想我錯過了一些東西。我一直在閱讀我需要的關於高斯濾波器的一切。所以可能這只是我有的一個Java問題。

回答

2

以防萬一別人會有同樣的問題。我終於弄不清楚該怎麼做。這就像在普通彩色圖像上應用濾鏡。但不是有顏色強度值我有三個信息x,y,z。所以我必須分別計算Gauss Mask中x,y,z值的標準偏差。然後我可以根據掩模內的位置計算掩模每個單元的高斯權重。

最後,我可以計算使用高斯面具獲得的新值。它實際上非常直觀,但考慮到您不需要在點雲上隨處應用過濾器,您可以提高性能,這最終會破壞雲的真實形狀,但是您可以決定僅在空區域或尖峯位置。這樣可以更快地修復孔,尖峯和邊界。

另一個建議,即使使用高斯濾波器,尖峯實際上仍然是一個問題。他們仍然會在面具內部留下他們的重量,所以你寧願有洞然後尖峯,然後你可以只考慮掩碼內的非空值來產生新的x,y,z。我做到了,它的工作。我在應用過濾器之前嘗試去除尖刺。我相信有人可以有更優雅的解決方案,但我希望這對某人仍然有用。