みたにっき@はてな

三谷純のブログ

MeshLabによる、3次元測定データの穴埋め

3次元測定機による復元データは、たいていの場合、ノイズや遮蔽領域の影響で、データ欠損を含みます。
欠損部は穴の開いた状態になるので、見た目も悪く、そのあとの処理にも影響を与えます。

大学の実験の授業では、3次元測定機を使った形状測定を行っているのですが、
今日、受講生からかなり大きな欠損を含むデータを受け取ったので、試しに MeshLab を使った穴埋めをしてみました。

↓元のデータはこんな感じ。

かなりのデータが欠けています。画像を見ただけではわかりにくいですが、胴体と頭部の間は完全に離れてしまっています。
さらに、異なる視点から測定したデータを併せたものなので、面が幾重にも重なっています。

このような場合は、メッシュ操作で穴を埋めようとするのはほとんど無理なので、面の情報を破棄して、点群(法線情報を含む)からのメッシュ再構成をしてしまったほうがよいです。

そこで、MeshLabに備わっている [Filters]の [Remeshing...]-[Surface Reconstruction: Poisson]を使ってみました。
(オプションの Octree Depth は 8 に設定しました)

↓その結果はこんな感じ。

驚くほど簡単に綺麗な結果を得ることができました。
すごいね。

この手法については、次の論文が参考になります。
Michael Kazhdan, Matthew Bolitho, Hugues Hoppe. Poisson surface reconstruction, Symposium on Geometry Processing 2006, 61-70.