Main Content

等値断面の可視化

等値断面とは

"等値断面" とは、等値面の内容を見やすくするために、その範囲に合わせて切り込む形で表示される平面のことです。等値断面は、エンド キャップ を与える等値面の内部の断面を示します。

次の 2 つの図は isocap の使用方法を説明しています。最初の図は、isocap のない等値面です。

2 番目の図は同じ等値面に等値断面を加えた効果を示しています。

その他の等値断面の使用

等値断面の他の使用例は、次のとおりです。

Isocaps の定義

等値断面は等値面のように patch グラフィックス オブジェクトとして作成されます。isocaps コマンドを使用して、patch に渡すデータを作成します。以下に例を示します。

patch(isocaps(voldata,isoval),...
   'FaceColor','interp',...
...'EdgeColor','none')

は、値 isoval でスカラー ボリューム データ voldata の isocaps を作成します。同じボリューム データと等値面に "適合する" iscaps のエッジを確認する等値を使用して等値面を作成するべきです。

パッチの FaceColor プロパティを interp に設定すると、等値断面により設定されたデータ値の範囲をカラーマップのエントリにマッピングするカラーリングになります。他の patch プロパティを設定して、isocaps のライティングやカラーリングの効果をコントロールすることもできます。

等値面への等値断面の追加

次の例は、isocaps を使用する際のカラーリングやライティングの特性の設定方法を示します。4 つの基本的な手順があります。

1. データの準備

次の例は、ランダムな (rand) 3 次元配列データを使用してボリューム データを定義します。次にデータを平滑化します (smooth3)。

data = rand(12,12,12);
data = smooth3(data,'box',5);

2. 等値面の作成とプロパティの設定

isosurfacepatch を使用して等値面を作成し、カラーリングおよびライティング プロパティを設定します。反射光の AmbientStrengthSpecularStrengthDiffuseStrength を小さくして、2 つの光源の明るさに対してより一様なライティングを与えるようにします。

等値面の頂点法線を再計算して、平滑化されたライティングを作成します (isonormals)。

isoval = .5;
h = patch(isosurface(data,isoval),...
   'FaceColor','blue',...
   'EdgeColor','none',...
   'AmbientStrength',.2,...
   'SpecularStrength',.7,...
   'DiffuseStrength',.4);
isonormals(data,h)

3. 等値断面の作成とプロパティの設定

等値面と同じデータ、同じ等値を使用して isocaps を定義します。内挿を行うカラーリングを指定し、青色の等値面により既定のカラーマップよりも対照的な色を与えるカラーマップ (colormap) を選択します。

patch(isocaps(data,isoval),...
   'FaceColor','interp',...
   'EdgeColor','none')
colormap hsv

4. 表示の定義

データの縦横比を [1,1,1] に設定し、適切な比率で表示します (daspect)。座標軸の空白部分を削除し、表示を 3 次元に設定します (axis tightview)。

daspect([1,1,1])
axis tight
view(3)

5. ライティングを追加する

一様なライティングを付加し、形状の小さな変化を視覚可能にする光源の機能を使用するために、この例では 2 つのライトを使用します。1 つはカメラの左側、もう 1 つは右側に設定します (camlight)。Gouraud ライティングを使用して色が最も滑らかに変化するようにします (lighting)。

camlight right
camlight left