ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

volshow

ボリューム データの表示

説明

ボリューム データを表示し、表示の外観を制御するプロパティを持つ volshow オブジェクトを作成します。

作成

説明

volshow(V) は、Figure に 3 次元グレースケール ボリューム V を表示します。マウスを使用して、表示を対話形式で回転および拡大縮小することもできます。

volshow(V,Name,Value) は、ボリュームの可視化を制御するプロパティを設定する 1 つ以上の名前と値のペアを使用して、ボリュームを表示します。名前と値のペアのリストについては、プロパティを参照してください。各プロパティを引用符で囲みます。たとえば、'BackgroundColor' のようにします。

h = volshow(___) は、ボリュームの可視化を制御するために使用できるプロパティを持つ volshow オブジェクトを返します。

入力引数

すべて展開する

ボリューム データ。3 次元グレースケール ボリュームとして指定します。

プロパティ

すべて展開する

ボリューム コンテンツの透明度マップ。[0 1] の範囲の値を持つ 256 行 1 列の数値配列として指定します。

背景の色。MATLAB® ColorSpec として指定します。強度は [0,1] の範囲でなければなりません。

カメラの位置または視点。[x y z] 形式の 3 要素ベクトルとして指定します。このベクトルは、カメラの位置の座標軸座標を定義します。その点を視点として座標軸が表示されます。カメラは視点軸に沿った向きになります。視点軸はカメラの位置とカメラのターゲットを結ぶ直線です。CameraPosition プロパティを変更すると、ボリュームを表示する点が変化します。詳細については、カメラ グラフィックス用語 (MATLAB)を参照してください。ボリュームを対話形式で回転させると、このプロパティの値が変化します。

上方向を定義するベクトル。[x y z] 形式の 3 要素方向ベクトルとして指定します。既定では、volshow は z 軸を上方向 ([0 0 1]) として定義します。詳細については、カメラ グラフィックス用語 (MATLAB)を参照してください。ボリュームを対話形式で回転させると、このプロパティの値が変化します。

視野。0 以上で 180 未満のスカラー角度として指定します。角度が大きいほど、視野が広くなります。また、角度が大きいほど、シーン内でオブジェクトが小さく表示されます。詳細については、カメラ グラフィックス用語 (MATLAB)を参照してください。

カメラのターゲットとして使用する点。[x y z] 形式の 3 要素ベクトルとして指定します。カメラは視点軸に沿った向きになります。視点軸はカメラの位置とカメラのターゲットを結ぶ直線です。詳細については、カメラ グラフィックス用語 (MATLAB)を参照してください。

ボリューム コンテンツのカラーマップ。[0 1] の範囲の値を持つ 256 行 3 列の数値配列として指定します。

ボリュームの対話性。true または false として指定します。true (既定の設定) の場合、マウスのスクロール ホイールを使用してズームしたり、ボリュームをクリック アンド ドラッグして回転させたりできます。回転およびズームは CameraTarget で指定される値に関して実行されます。false の場合、ボリュームに対する対話型の操作はできません。

等値面の色。[0 1] の範囲の値を持つ MATLAB ColorSpec として指定します。Renderer'Isosurface' に設定されている場合、このプロパティはボリュームの色を指定します。

Renderer'Isosurface' に設定されている場合に描画されるボリュームの面を定義する値。数値配列として指定します。範囲 [0 1] の値でなければなりません。

volshow オブジェクトの親。uipanel または figure のハンドルとして指定します。親を指定しない場合、volshow オブジェクトの親は gcf です。

レンダリング スタイル。次の表のいずれかの値を指定します。ボリュームが logical の場合、既定の Renderer'Isosurface'、それ以外の場合、既定の Renderer'VolumeRendering' です。

説明
'VolumeRendering'各ボクセルに指定された色と透明度に基づいてボリュームを表示します。
'MaximumIntensityProjection'透過した各 X 線の強度値がデータ全体で最も高いボクセルを表示します。
'Isosurface'Isovalue の値で指定されるボリュームの等値面を表示します。

ボリュームを再スケーリングするために使用する倍率。正の数値から成る 1 行 3 列の配列として指定します。配列内の値は、x、y、および z 方向に適用される倍率に対応します。

オブジェクト関数

setVolume新しいボリュームの設定

すべて折りたたむ

ボリュームを読み込んで表示します。

load('spiralVol.mat');
h = volshow(spiralVol);

GIF ファイルの名前を指定します。

filename = 'animatedSpiral.gif';

単位円周上にカメラ位置の配列を作成します。

vec = linspace(0,2*pi(),120)';
myPosition = [cos(vec) sin(vec) ones(size(vec))];

ループ処理を使用して、各カメラ位置でイメージを作成します。

for idx = 1:120
    % Update current view.
    h.CameraPosition = myPosition(idx,:);
    % Use getframe to capture image.
    I = getframe(gcf);
    [indI,cm] = rgb2ind(I.cdata,256);
    % Write frame to the GIF File.
    if idx == 1
        imwrite(indI, cm, filename, 'gif', 'Loopcount', inf, 'DelayTime', 0.05);
    else
        imwrite(indI, cm, filename, 'gif', 'WriteMode', 'append', 'DelayTime', 0.05);
    end
end

MRI データを読み込み、大きさが 1 の次元を削除します。

load mri
V = squeeze(D);

MRI イメージに適したカラーマップと透明度 (アルファ) マップを生成します。

intensity = [0 20 40 120 220 1024];
alpha = [0 0 0.15 0.3 0.38 0.5];
color = ([0 0 0; 43 0 0; 103 37 20; 199 155 97; 216 213 201; 255 255 255]) ./ 255;
queryPoints = linspace(min(intensity),max(intensity),256);
alphamap = interp1(intensity,alpha,queryPoints)';
colormap = interp1(intensity,color,queryPoints);

カスタムのカラーマップと透明度マップを使用してボリュームを表示します。マウスをクリック アンド ドラッグして、ボリュームを回転させます。スクロール ホイールを使用して、ボリュームを拡大および縮小します。

vol = volshow(V,'Colormap',colormap,'Alphamap',alphamap);

データを読み込みます。

load mri
V = squeeze(D);

CT イメージの可視化に適したカラーマップと alphamap を生成します。

intensity = [-3024,-16.45,641.38,3071];
alpha = [0, 0, 0.72, 0.72];
color = ([0 0 0; 186 65 77; 231 208 141; 255 255 255]) ./ 255;
queryPoints = linspace(min(intensity),max(intensity),256);
alphamap = interp1(intensity,alpha,queryPoints)';
colormap = interp1(intensity,color,queryPoints);

カスタムのカラーマップと alphamap を使用したボリュームの表示

volshow(V,'Colormap',colormap,'Alphamap',alphamap);

R2019a で導入