*点群からボリューム補間によってメンを作成する(ParaView) [#b3d5e174]

[[ParaView:http://www.paraview.org/]]を使用して、点群データからボリューム(画像データ)上に点の位置を補間してから、マーチングキューブス法で面を作成する方法を説明します。

**点群の読み込み [#d5a38f7a]

ここで使用するサンプルデータは、horse.particles(このページの一番下からダウンロード)です。

この点群データは、比較的密でノイズもないきれいな馬のデータで、(x,y,z)の座標とスカラー値(全て1.0)からなっています。*.particlesはVTK particle filesというデータ形式です。

まず、馬の点群データを読み込みます。ParaViewを起動してから、ツールバーから

File > Open...

と進み、ファイルの指定ダイアログから、"horse.particles"を指定して読み込みますと、下のような馬の点群が表示されます。

#ref(load_points.png,center,nowrap,60%,馬の点群);

**点群のボリューム補間 [#s49f4245]

次に、点群をボリュームデータ(画像データ)上に補間します。これには、"Point Volume Interpolator"を使用します。

  File >> Filters >> Alphabetical >> Point Volume Interpolator

この例の設定では、"Properties"タブにおいて、

  Kernel: GaussinKernel
  Kernel Footprint: Radius
  Radius: 0.007

と設定し、"Apply"します。Radiusを大きくすると、影響範囲が大きくなり、計算が終わらなくなるので注意ください。

#ref(gaussian_kernel.png,center,nowrap,60%,ガウシアンカーネルの設定);

これで、点群からボリュームへの補間が完了しました。

**等値面 [#t97f64ea]

次に、マーチングキューブス法によって、等値面を作成します。

通常は、等値面の作成にはツールバーの"Contour"アイコンを使用しますが、ここでは、クリップを使用します。

  Clip Type: Scalar
  Scalars: Scalar
  Value: 0.99
  Invert: チェックを外す

とし、"Apply"します。以下ように馬が出てこない場合は、Invertにチェックを入れます。

#ref(isosurface.png,center,nowrap,60%,コンター図の設定);

**スムージング [#r53f6212]

馬の等値面が抽出されましたら、表面がデコボコしていますので、スムージングを掛けます。

まず、スムージングを掛けるためには、データ形式をpoly dataに変換する必要があるので、

  Filters >> Alphabetical >> Extract Syrface

をします。

#ref(extract_surface.png,center,nowrap,60%,ポリゴンデータ形式に変換);

続けて、

  Filters >> Alphabetical >> Smooth

として、500回くらいスムージングします。

#ref(smoothing.png,center,nowrap,60%,スムージング);

**ダウンロード [#k551ac14]
セント・ヘレンズ点群データ
#ref(stHelens.zip)


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS