2012-11-21 243 views
5

我有一個3d點雲圖像(請參見下文)。剔除點雲中的遮擋點

我想挑選所有理論上位於其他點之後的點(例如,由於被胸部和腹部周圍的點阻擋,所以在人的背部周圍的點將不可見)。

我該如何去解決這個問題?

我所需要的只是不妨礙正面視圖的點,以便我可以將其用於其他目的。

編輯:這不是真的用於查看目的。我試圖隔離只有無遮擋的頂點以便稍後計算表面法線以提取深度圖像特徵。

enter image description here

+0

爲什麼你需要表面法線來提取深度? – JAre

+0

不提取深度,但使用曲面法線作爲深度圖像的特徵。這更像是一個計算機視覺的東西。我正在使用一些OBJ模型來臨時模擬從Kinect獲得的點雲數據。並且由於它是深度傳感器,所以只有對象的正面部分由Kinect獲取 –

+0

可以將網格法線渲染爲片段顏色(RGB)和深度作爲紋理的alpha,並從中查找隨機點或應用contians 1和0的掩碼並對其進行多重着色輸出,以便您可以使用點而不是實體表面獲得紋理。 – JAre

回答

3

你不能用某一點遮掩某些東西 - 它沒有尺寸。

如果你有一個網格(即你知道哪些點「連接」到哪個點),你可以隱藏在網格後面隱藏的東西。

如果你不這樣做,我所知道的最簡單的技巧就是使用z相關的衰落 - 只需要在後方昏迷。

+0

如果你考慮一條線(射線)之間的點視圖和模型中的一個點,那麼該線上的所有點都不會被距離相機模型最近的點「遮擋」? –

+0

@RuiMarques只有當它們在線時纔是_exactly_,但是一個點的大小爲零,所以不能真正掩蓋任何東西。 – Alnitak

+0

當然,我猜測OP意味着點被其他點定義的表面遮擋。 –

1

如何繪製多邊形網格配點的質感?另一種方法是將多邊形網格渲染到z緩衝區(只需要深度)並使用它來丟棄網格後面的點(遠點將失敗z-測試)。