orthosliceViewer
説明
orthosliceViewer
オブジェクトは、ボリュームの 3 つの直交ビュー (x、y、および z 次元に沿ったビュー) でボリューム イメージ データを表示します。
orthosliceViewer
を使用して、ボリュームの個々のスライスを確認します。orthosliceViewer
が開き、各次元の中央のスライスが表示されます。イメージ スタックの各ビューには、十字が含まれており、これを使用してイメージ スタックの異なるスライスを表示できます。十字はリンクされているため、1 つを動かすと、関連するビュー内の十字も動きます。
orthosliceViewer
オブジェクトは、その外観と動作のカスタマイズに使用できるプロパティ、オブジェクト関数、およびイベントをサポートしています。orthosliceViewer
オブジェクトは、十字の移動などの特定のイベントが発生したときに通知を送信できます。詳細については、イベントを参照してください。
メモ
既定では、表示されたスライス内でマウスをクリック アンド ドラッグすると、明度とコントラストが対話的に変化します。"ウィンドウ/レベル" と呼ばれる手法です。マウスを左から右に横方向にドラッグするとコントラストが変わります。マウスを上下に縦方向にドラッグすると明度が変わります。Ctrl キーを押しながらマウスをクリック アンド ドラッグすると、変化の速度が速くなります。Shift キーを押しながらマウスをクリック アンド ドラッグすると、変化の速度が遅くなります。これらのキーはクリック アンド ドラッグする前に押してください。この動作を制御するには、DisplayRangeInteraction プロパティを使用します。
作成
説明
orthosliceViewer(___,
は、名前と値のペアの引数を使用してプロパティを設定します。複数の名前と値のペアを指定できます。各プロパティ名を一重引用符で囲みます。Name,Value
)
例: orthosliceViewer(V,'Colormap',cmap)
は、orthosliceViewer
オブジェクトを作成し、ボリュームの表示に使用するカラーマップを指定します。
は、イメージの可視化を制御するために使用できるプロパティをもつ s
= orthosliceViewer(___)orthosliceViewer
オブジェクト s
を返します。前のいずれかの構文の入力引数を使用します。
入力引数
V
— 入力ボリューム
数値配列
入力ボリューム。m x n x p x c の数値配列として指定します。グレースケール ボリュームの場合、c
は 1 です。RGB ボリュームの場合、c は 3 です。RGB ボリュームには、クラス uint8
、uint16
、single
、または double
のみを指定できます。
データ型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
プロパティ
一般的なプロパティ
Colormap
— イメージ スタックのカラーマップ
gray(256)
(既定値) | m 行 3 列の数値配列
イメージ スタックのカラーマップ。範囲 [0, 1] の値をもつ m 行 3 列の数値配列として指定します。V
が RGB イメージ スタックの場合、Colormap
プロパティは効果がありません。
DisplayRange
— グレースケール ボリュームの表示範囲
[min(V(:)) max(V(:))]
(既定値) | 2 要素ベクトル
グレースケール ボリュームの表示範囲。[low high]
の形式の 2 要素ベクトルとして指定します。値 low
(および low
より小さい任意の値) は黒として表示されます。値 high
(および high
より大きい任意の値) は白として表示されます。中間の値は、既定数のグレー レベルを使用して、中間のグレー階調で表示されます。空行列 ([])
を指定すると、orthosliceViewer
は既定値を使用します。RGB ボリュームを指定した場合、DisplayRange
は効果がありません。
DisplayRangeInteraction
— 表示範囲の対話型制御
'on'
| 'off'
表示範囲の対話型制御。次のいずれかの値を指定します。RGB イメージ スタックを指定した場合、このプロパティは効果がありません。この機能の使用方法の詳細については、イベントを参照してください。
値 | 説明 |
---|---|
'on' (グレースケール強度ボリュームの場合の既定値) | 座標軸上でマウスを左クリックしてドラッグすることにより、グレースケール イメージ スタックの表示範囲を制御できます。 |
'off' (logical ボリュームおよび RGB ボリュームの場合の既定値) | 表示範囲の対話性なし。 |
Parent
— orthosliceViewer
オブジェクトの親
gcf
(既定値) | uipanel | Figure
orthosliceViewer
オブジェクトの親。uipanel
のハンドルとして指定するか、関数 figure
または uifigure
を使用して作成した Figure として指定します。親を指定しない場合、orthosliceViewer
オブジェクトの親は gcf
です。
ScaleFactors
— ボリュームを再スケーリングするために使用する倍率
[1 1 1]
(既定値) | 1 行 3 列の正の数値ベクトル
ボリュームを再スケーリングするために使用する倍率。1 行 3 列の正の数値ベクトルとして指定します。配列内の値は、x、y、および z 方向に適用される倍率に対応します。
SliceNumbers
— 表示されるイメージ スライスのインデックス
各直交方向の中央のスライス | 1 行 3 列の非負の数値配列。
表示されるイメージ スライスのインデックス。1 行 3 列の非負の数値配列として指定します。orthosliceViewer
は、YZ
、XZ
、および XY
ビュー内の [x,y,z]
インデックスにおいて対応するスライスを表示します。
十字のプロパティ
CrosshairColor
— 十字の色
[1 1 0]
(既定値) | RGB 3 成分 | 色の名前 | 色の省略名
十字の色。RGB 3 成分、色の名前、または色の省略名として指定します。
RGB 3 成分を使用すると、任意の色を指定できます。RGB 3 成分は、色の赤、緑、青の成分の強度を指定する 3 つの要素から成る行ベクトルです。強度は [0, 1] の範囲でなければなりません。
いくつかの一般的な色については、色の名前を string スカラーまたは文字ベクトルとして指定できます。次の表に、名前付きの色のオプション、およびそれと等価な RGB 3 成分を示します。
色の名前 | 省略名 | RGB 3 成分 | 外観 |
---|---|---|---|
"red" | "r" | [1 0 0] | |
"green" | "g" | [0 1 0] | |
"blue" | "b" | [0 0 1] | |
"cyan" | "c" | [0 1 1] | |
"magenta" | "m" | [1 0 1] | |
"yellow" | "y" | [1 1 0] | |
"black" | "k" | [0 0 0] | |
"white" | "w" | [1 1 1] | |
以下に、MATLAB® がさまざまなタイプのプロットで使用する既定の色の RGB 3 成分を示します。
RGB 3 成分 | 外観 |
---|---|
[0 0.4470 0.7410] | |
[0.8500 0.3250 0.0980] | |
[0.9290 0.6940 0.1250] | |
[0.4940 0.1840 0.5560] | |
[0.4660 0.6740 0.1880] | |
[0.3010 0.7450 0.9330] | |
[0.6350 0.0780 0.1840] | |
例: 'CrosshairColor','r'
例: 'CrosshairColor','green'
例: 'CrosshairColor',[0 0.4470 0.7410]
CrosshairEnable
— リンクされている十字オブジェクトの状態
'on'
(既定値) | 'inactive'
| 'off'
リンクされている十字オブジェクトの状態。次の表のいずれかの値で指定します。
値 | 説明 |
---|---|
'on' | 十字が表示され、対話的に操作できます。 |
'inactive' | 十字が表示されますが、対話的な操作はできません。 |
'off' | 十字は表示されません。 |
CrosshairLineWidth
— 十字のラインの幅
スクリーン ピクセルに対する点の数 (既定値) | 正の数値スカラー
十字のラインの幅。正の数値スカラーとしてポイント単位で指定します。既定値はスクリーン ピクセルに対する点の数です。
CrosshairStripeColor
— 十字ストライプの色
'none'
(既定値) | RGB 3 成分 | 色の名前 | 色の省略名
十字ストライプの色。RGB 3 成分、色の名前、色の省略名、または 'none'
として指定します。'none'
を指定した場合、十字は CrosshairColor
プロパティで指定された単色になります。そうでない場合、十字はストライプ状になります。このとき、このプロパティおよび CrosshairColor
プロパティで指定された色が交互に現れます。
RGB 3 成分を使用すると、任意の色を指定できます。RGB 3 成分は、色の赤、緑、青の成分の強度を指定する 3 つの要素から成る行ベクトルです。強度は [0, 1] の範囲でなければなりません。
いくつかの一般的な色については、色の名前を string スカラーまたは文字ベクトルとして指定できます。次の表に、名前付きの色のオプション、およびそれと等価な RGB 3 成分を示します。
色の名前 | 省略名 | RGB 3 成分 | 外観 |
---|---|---|---|
"red" | "r" | [1 0 0] | |
"green" | "g" | [0 1 0] | |
"blue" | "b" | [0 0 1] | |
"cyan" | "c" | [0 1 1] | |
"magenta" | "m" | [1 0 1] | |
"yellow" | "y" | [1 1 0] | |
"black" | "k" | [0 0 0] | |
"white" | "w" | [1 1 1] | |
以下に、MATLAB がさまざまなタイプのプロットで使用する既定の色の RGB 3 成分を示します。
RGB 3 成分 | 外観 |
---|---|
[0 0.4470 0.7410] | |
[0.8500 0.3250 0.0980] | |
[0.9290 0.6940 0.1250] | |
[0.4940 0.1840 0.5560] | |
[0.4660 0.6740 0.1880] | |
[0.3010 0.7450 0.9330] | |
[0.6350 0.0780 0.1840] | |
例: 'CrosshairStripeColor','r'
例: 'CrosshairStripeColor','green'
例: 'CrosshairStripeColor',[0 0.4470 0.7410]
オブジェクト関数
addlistener | イベント ソースにバインドされたイベント リスナーの作成 |
getAxesHandles | 直交スライス ビューアーの座標軸のハンドルの取得 |
例
直交スライス ビューアーでの MRI データの表示
イメージ スタックをワークスペースに読み込みます。
load(fullfile(toolboxdir('images'),'imdata','BrainMRILabeled','images','vol_001.mat'));
カスタム カラーマップを作成します。
cmap = parula(256);
直交スライス ビューアーで MRI データを表示します。
s = orthosliceViewer(vol,'Colormap',cmap)
s = orthosliceViewer with properties: SliceNumbers: [121 121 78] CrosshairColor: [1 1 0] CrosshairLineWidth: 1 CrosshairStripeColor: 'none' CrosshairEnable: 'on' Parent: [1×1 Panel] Colormap: [256×3 double] DisplayRange: [0 2239] ScaleFactors: [1 1 1] DisplayRangeInteraction: 'on'
直交スライス ビューアーを使用した MRI データ スライスの GIF の作成
MRI データを読み込み、直交スライス ビューアーで表示します。
load(fullfile(toolboxdir('images'),'imdata','BrainMRILabeled','images','vol_001.mat')); s = orthosliceViewer(vol);
スライスを含む座標軸のハンドルを取得します。
[hXYAxes, hYZAxes, hXZAxes] = getAxesHandles(s);
可視性を向上させるために十字をオフにします。
set(s,'CrosshairEnable','off');
GIF ファイルの名前を指定します。
filename = 'animatedYZSlice.gif';
所要の方向のスライス番号の配列を作成します。YZ 方向を考えます。
sliceNums = 1:240;
ループ処理を使用して、指定したスライス位置でイメージを作成します。
for idx = sliceNums % Update X slice number to get YZ Slice. s.SliceNumbers(1) = idx; % Use getframe to capture image. I = getframe(hYZAxes); [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
アニメーション GIF を表示します。
直交スライス ビューアーの十字イベントのリスナーの設定
イメージのスタックを読み込みます。
load(fullfile(toolboxdir('images'),'imdata','BrainMRILabeled','images','vol_001.mat'));
スライスを表示するためのカスタム カラーマップを作成します。
cmap = parula(256);
直交スライス ビューアーでイメージ スタックを表示します。
os = orthosliceViewer(vol,'Colormap',cmap);
直交スライス ビューアーの十字の移動に関する 2 つのイベントのリスナーを設定します。十字を移動すると、直交スライス ビューアーは、それらのイベントの通知を送信し、指定されたコールバック関数を実行します。
addlistener(os,'CrosshairMoving',@allevents); addlistener(os,'CrosshairMoved',@allevents);
コールバック関数 allevents
は、各イベントの名前を十字の以前の位置と現在の位置と共に表示します。
function allevents(src,evt) evname = evt.EventName; switch(evname) case{'CrosshairMoved'} disp(['Crosshair moved previous position: ' mat2str(evt.PreviousPosition)]); disp(['Crosshair moved current position: ' mat2str(evt.CurrentPosition)]); case{'CrosshairMoving'} disp(['Crosshair moving previous position: ' mat2str(evt.PreviousPosition)]); disp(['Crosshair moving current position: ' mat2str(evt.CurrentPosition)]); end end
詳細
イベント
orthosliceViewer
オブジェクトは、十字が移動したときに通知を送信できます。このような通知を受け取るには、関数 addListener
を使用して "リスナー" を設定します。リスナーを設定するには、'CrosshairMoving'
などのイベントの名前とイベントの発生時に実行する関数を指定します。次の表に、orthosliceViewer
オブジェクトでサポートされているイベントを示します。例については、直交スライス ビューアーの十字イベントのリスナーの設定を参照してください。
イベント名 | トリガー | イベント データ | イベント属性 |
---|---|---|---|
CrosshairMoving | orthosliceViewer で十字が移動しています。 | images.stack.browser.CrosshairMovingEventData |
|
CrosshairMoved | orthosliceViewer で十字の移動が停止しました。 | images.stack.browser.CrosshairMovingEventData |
|
バージョン履歴
R2019b で導入
参考
sliceViewer
| ボリューム ビューアー | volshow
| slice
| Crosshair
| obliqueslice
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)