Main Content

sliceViewer

イメージ スライスの参照

説明

sliceViewerオブジェクトは、グレースケール ボリュームと RGB ボリュームの個々のスライスを表示します。スライダーを使用することで、どのスライスを表示するかを制御できます。

sliceViewerオブジェクトを開くと、sliceDirectionで指定された方向のスタックにある中央のイメージが表示されます。スライダーを使用してボリューム内を移動し、個々のスライスを表示します。

sliceViewerオブジェクトは、その外観と動作のカスタマイズに使用できるプロパティ、オブジェクト関数、およびイベントをサポートしています。sliceViewerオブジェクトは、スライダーの移動などの特定のイベントが発生したときに通知を送信できます。詳細については、イベントを参照してください。

メモ

既定では、表示されたスライス内でマウスをクリック アンド ドラッグすると、明度とコントラストが対話的に変化します。"ウィンドウ/レベル"と呼ばれる手法です。マウスを左から右に横方向にドラッグするとコントラストが変わります。マウスを上下に縦方向にドラッグすると明度が変わります。Ctrlキーを押しながらマウスをクリック アンド ドラッグすると、変化の速度が速くなります。Shiftキーを押しながらマウスをクリック アンド ドラッグすると、変化の速度が遅くなります。これらのキーはクリック アンド ドラッグする前に押してください。この動作を制御するには、DisplayRangeInteractionプロパティを使用します。

作成

説明

sliceViewer(V)は、Figure にグレースケール ボリュームまたは RGB ボリュームVを表示します。Figure にはスライダーが含まれていて、このスライダーを使用してボリュームの個々のスライスを表示できます。

sliceViewer(___,Name,Value)は、名前と値のペアの引数を使用してプロパティを設定します。複数の名前と値のペアを指定できます。各プロパティ名を一重引用符で囲みます。

例:sliceViewer(V,'Colormap',cmap)は、sliceViewerオブジェクトを作成し、ボリュームの表示に使用するカラーマップを指定します。

sv = sliceViewer(___)は、ボリュームの可視化を制御するために使用できるプロパティを持つsliceViewerオブジェクトsvを返します。前のいずれかの構文の入力引数を使用します。

入力引数

すべて展開する

入力ボリューム。m x n x p x c の数値配列として指定します。グレースケール ボリュームの場合、cは 1 です。RGB ボリュームの場合、c は 3 です。RGB ボリュームには、クラスuint8uint16single、またはdoubleのみを指定できます。

データ型:single|double|int8|int16|int32|uint8|uint16|uint32

プロパティ

すべて展開する

イメージ スタックのカラーマップ。範囲[0 1]の値をもつ m 行 3 列の数値配列として指定します。Vが RGB イメージ スタックの場合、Colormapプロパティは効果がありません。

イメージ スタックの表示範囲。[low high]の形式の 2 要素ベクトルとして指定します。値low(およびlowより小さい任意の値) は黒として表示されます。値high(およびhighより大きい任意の値) は白として表示されます。中間の値は、既定数のグレー レベルを使用して、中間のグレー階調で表示されます。空行列([])を指定すると、sliceViewerは既定値を使用します。RGB イメージ スタックを指定した場合、DisplayRangeは効果がありません。

表示範囲の対話型制御の有効化。次のいずれかの値を指定します。対話型動作の詳細については、イベントを参照してください。

説明
'on'(グレースケール強度ボリュームの場合の既定値) 座標軸上でマウスを左クリックしてドラッグすることにより、グレースケール イメージ スタックの表示範囲を制御します。
'off'(logical ボリュームおよび RGB ボリュームの場合の既定値) 表示範囲の対話性なし。

sliceViewerオブジェクトの親。uipanelのハンドルとして指定するか、figureコマンドまたはuifigureコマンドを使用して作成した Figure のハンドルとして指定します。親を指定しない場合、sliceViewerオブジェクトの親はgcfです。

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

イメージ スタックの参照方向。1 行 3 列の logical ベクトルまたは次の表のいずれかの文字ベクトルとして指定します。

文字ベクトル logical ベクトル 説明
'X' (1 0 0) X 方向の参照
'Y' [0 1 0] Y 方向の参照
'Z'(既定の設定) [0 0 1] Z 方向の参照

ボリュームから表示されるスライスのインデックス。正の数値スカラーとして指定します。

オブジェクト関数

addlistener イベント ソースにバインドされたイベント リスナーの作成
getAxesHandle スライス ビューアーの座標軸のハンドルの取得

すべて折りたたむ

MRI データをワークスペースに読み込みます。

loadmristack

スライスを表示するためのカスタム カラーマップを指定して、スライス ビューアーでデータを表示します。スライス ビューアーによってイメージのスタックが開き、中央に表示されます。別のスライスを表示するには、スライダーを使用します。

cmap = parula(256); s = sliceViewer(mristack,'Colormap',cmap);

MRI データをワークスペースに読み込みます。

loadmristack

スライス ビューアーでデータを表示します。

s = sliceViewer(mristack);

表示されているスライスを含む座標軸のハンドルを取得します。

hAx = getAxesHandle(s);

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

文件名='animatedSlice.gif';

スライス番号の配列を作成します。

sliceNums = 1:21;

スライス番号についてループ処理し、表示されている各スライスのイメージを作成します。イメージを GIF ファイルに書き込みます。

foridx = sliceNums% Update slice numbers.SliceNumber = idx;% Use getframe to capture imageI = getframe(hAx); [indI,cm] = rgb2ind(I.cdata,256);% Write frame to the GIF fileifidx == 1 imwrite(indI,cm,filename,'gif','Loopcount',inf,'DelayTime', 0.05);elseimwrite(indI,cm,filename,'gif','WriteMode','append','DelayTime', 0.05);endend

イメージのスタックをワークスペースに読み込みます。

loadmristack

スライスを表示するためのカスタム カラーマップを指定して、スライス ビューアーでデータを表示します。スライス ビューアーによってイメージのスタックが開き、中央に表示されます。別のスライスを表示するには、スライダーを使用します。

cmap = parula(256); s = sliceViewer(mristack,'Colormap',cmap);

sliceViewerオブジェクトのスライダー移動中とスライダー移動完了という、2 つのスライダー イベントのリスナーを設定します。スライダーを移動すると、スライス ビューアーは、それらのイベントの通知を送信し、指定されたコールバック関数を実行します。

addlistener(s,'SliderValueChanging',@allevents); addlistener(s,'SliderValueChanged',@allevents);

このコールバック関数alleventsを使用して、各イベントの名前とスライダーの現在の位置を表示します。

functionallevents(src,evt) evname = evt.EventName;switch(evname)case{'SliderValueChanging'} disp(['Slider value changing event: 'mat2str (evt.CurrentValue)]);case{'SliderValueChanged'} disp(['Slider value changed event: 'mat2str (evt.CurrentValue)]);endend

詳細

すべて展開する

バージョン履歴

R2019b で導入