四角形
四角形の関心領域
説明
Rectangle
オブジェクトは、四角形の関心領域 (ROI) の形状と位置を指定します。この ROI に対し、外観や対話型動作をカスタマイズできます。
キーボード ショートカットを含むこの ROI の使用方法の詳細については、ヒントを参照してください。
作成
Rectangle
オブジェクトは次の 2 つの方法で作成できます。詳細については、ROI の形状の作成を参照してください。
関数
drawrectangle
を使用。ROI の作成と外観の設定を 1 つのコマンドで行う場合、この関数を使用します。ROI の形状と位置は、マウスを使ってイメージの上に ROI を描画することで対話形式で指定することも、名前と値の引数を使用してプログラムで指定することもできます。ここで説明する関数
images.roi.Rectangle
を使用。ROI の形状や位置を指定する前に ROI の外観や動作を指定する場合、この関数を使用します。形状と位置は、オブジェクトを作成した後に、関数draw
を使用して対話形式で指定するか、オブジェクトのプロパティを変更してプログラムで指定することができます。
構文
説明
入力引数
ax
— ROI の親
gca
(既定値) | Axes
オブジェクト | UIAxes
オブジェクト
ROI の親。Axes
オブジェクトまたは UIAxes
オブジェクトとして指定します。重要な制限など UIAxes で ROI を使用する方法の詳細については、App Designer を使って作成したアプリでの ROI の使用を参照してください。
プロパティ
AspectRatio
— 四角形の縦横比
1
(既定値) | 正の数値
四角形の縦横比。正の数値として指定します。四角形の描画またはサイズ変更を行うと、このプロパティの値は自動的に変化します。Rectangle
オブジェクトは、この値を height/width
として計算します。
Color
— ROI の色
[0 0.4470 0.7410]
(既定値) | RGB 3 成分 | 色の名前 | 色の省略名
ROI の色。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] | |
例: "Color","r"
例: "Color","green"
例: "Color",[0 0.4470 0.7410]
ContextMenu
— コンテキスト メニュー
ContextMenu
オブジェクト
ROI を右クリックしたときに表示されるコンテキスト メニュー。ContextMenu
オブジェクトとして指定します。関数 uicontextmenu
を使用してコンテキスト メニュー プロパティを設定することによって、カスタム コンテキスト メニューを作成できます。
Deletable
— ROI を削除するオプションをコンテキスト メニューに表示するかどうか
true
または 1
(既定値) | false
または 0
ROI を削除するオプションをコンテキスト メニューに表示するかどうか。数値または logical の 1
(true
) か 0
(false
) として指定します。値が true
の場合、コンテキスト メニューを使用して ROI を対話形式で削除できます。値が false
の場合、ROI を削除するコンテキスト メニュー オプションは無効になります。
どちらの場合も、コンテキスト メニューではなく関数 delete
を使用して ROI を削除できます。
DrawingArea
— ROI を対話形式で配置できる座標軸の領域
"auto"
(既定値) | "unlimited"
| [x,y,w,h]
ROI を対話形式で配置できる座標軸の領域。次の表のいずれかの値で指定します。
値 | 説明 |
---|---|
"auto" | 描画領域は現在の座標軸の範囲です (既定の設定)。 |
"unlimited" | 描画領域には境界がなく、座標軸の範囲を超えて ROI を描画したりドラッグしたりできます。 |
[x,y,w,h] | 描画領域は、(x,y) を基準として幅 w と高さ h まで広がる四角形の領域に制限されます。 |
FaceAlpha
— ROI 面の透明度
0.2
(既定値) | 範囲 [0, 1] の数値
ROI 面の透明度。[0, 1] の範囲の数値として指定します。値が 1
の場合、ROI 面は完全に不透明になります。値が 0
の場合、ROI 面は完全に透明になります。
FaceSelectable
— ROI 面でクリックをキャプチャ可能
true
または 1
(既定値) | false
または 0
ROI 面でクリックをキャプチャ可能。数値または logical の 1
(true
) か 0
(false
) として指定します。true
の場合、ROI 面でマウス クリックをキャプチャします。false
(既定の設定) の場合、ROI 面でマウス クリックをキャプチャしません。
FixedAspectRatio
— 縦横比を一定に維持
false
または 0
(既定値) | true
または 1
対話型の操作中に縦横比を一定に維持。数値または logical の 0
(false
) か 1
(true
) として指定します。値が true
の場合、ROI の描画やサイズ変更を行うときに縦横比が維持されます。値が false
の場合、ROI の描画やサイズ変更を行うときに縦横比を変更できます。このプロパティの状態は、既定のコンテキスト メニューを使用して変更できます。
HandleVisibility
— 親の Children
プロパティでの ROI ハンドルの可視性
"on"
(既定値) | "off"
| "callback"
親の Children
プロパティでの ROI ハンドルの可視性。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
"on" | オブジェクト ハンドルは常に参照できます (既定の設定)。 |
"off" | オブジェクト ハンドルは常に参照できません。 |
"callback" | オブジェクト ハンドルはコールバックまたはコールバックによって呼び出された関数内から参照できますが、コマンド ラインから呼び出された関数内からは参照できません。 |
InteractionsAllowed
— ROI の対話性
"all"
(既定値) | "none"
| "translate"
ROI の対話性。次の表のいずれかの値で指定します。
値 | 説明 |
---|---|
"all" | ROI は完全に対話形式で操作できます。 |
"none" | ROI は対話形式で操作できず、ドラッグ ポイントが表示されません。 |
"translate" | ROI は描画領域内で平行移動できます。 |
Label
— ROI ラベル
''
(既定値) | 文字ベクトル | string スカラー
ROI ラベル。文字ベクトルまたは string スカラーとして指定します。既定では、ROI にラベルはありません (''
)。
LabelAlpha
— テキストの背景の透明度
1
(既定値) | 範囲 [0, 1] の数値
テキストの背景の透明度。[0, 1] の範囲の数値として指定します。1
に設定すると、テキストの背景は完全に不透明になります。0
に設定すると、テキストの背景は完全に透明になります。
LabelTextColor
— ラベル テキストの色
"black"
(既定値) | 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] | |
例: "LabelTextColor","r"
例: "LabelTextColor","green"
例: "LabelTextColor",[0 0.4470 0.7410]
LabelVisible
— ROI ラベルの可視性
'on'
(既定値) | 'off'
| 'hover'
| 'inside'
ROI ラベルの可視性。次のいずれかの値を指定します。
値 | 説明 |
---|---|
'on' | ROI が表示されていて Label プロパティが空でない場合、ラベルは表示されます (既定の設定)。 |
'hover' | マウスのカーソルを ROI 上に置いている場合のみ、ラベルは表示されます。 |
'inside' | ラベルは、表示するための十分なスペースが ROI 内にある場合のみ、表示されます。 |
'off' | ラベルは表示されません。 |
LineWidth
— ROI の境界線の幅
正の数値
ROI の境界線の幅。ポイント単位の正の数値として指定します。既定値はスクリーン ピクセルに対する点の数の 3 倍です。つまり、既定では境界線の幅は 3 ピクセルになります。
MarkerSize
— マーカー サイズ
正の数値
マーカー サイズ。ポイント単位の正の数値として指定します。既定値はスクリーン ピクセルに対する点の数の 8 倍です。つまり、既定ではマーカー サイズは 8 ピクセルになります。
Parent
— ROI の親
Axes
オブジェクト | UIAxes
オブジェクト
ROI の親。Axes
または UIAxes
オブジェクトとして指定します。重要な制限など UIAxes で ROI を使用する方法の詳細については、App Designer を使って作成したアプリでの ROI の使用を参照してください。
Position
— ROI の位置
1 行 4 列の数値ベクトル
ROI の位置。[xmin, ymin, width, height]
形式の 1 行 4 列の数値ベクトルとして指定します。xmin
と ymin
は四角形の左上隅の位置を指定します。width
と height
は四角形の広がりを 2 次元で指定します。
Rotatable
— 四角形の回転可能性
false
または 0
(既定値) | true
または 1
四角形の回転可能性。数値または logical の 0
(false
) か 1
(true
) として指定します。値が false
(既定の設定) の場合、四角形を回転できません。値が true
の場合、コーナーにあるマーカーの近くをクリックして四角形を回転できます。
RotationAngle
— 四角形の中心周りの角度
0
(既定値) | 数値スカラー
四角形の中心周りの角度。数値スカラーとして指定します。角度は時計回りの方向に度単位で測定します。ROI を描画または移動すると、このプロパティの値は自動的に変化します。
RotationAngle
の値は、Position
プロパティの値には影響を与えません。Position
プロパティは回転前の ROI の初期位置を表します。回転した ROI の位置を決定するには、Vertices
プロパティを使用します。
Selected
— ROI の選択状態
false
または 0
(既定値) | true
または 1
ROI の選択状態。数値または logical の 0
(false
) か 1
(true
) として指定します。このプロパティは対話形式で設定することもできます。たとえば、ROI をクリックすると、その ROI が選択され、このプロパティが true
に設定されます。同様に、Ctrl キーを押したまま ROI をクリックすると、ROI は選択解除され、このプロパティの値が false
に設定されます。
SelectedColor
— 選択したときの ROI の色
"none"
(既定値) | RGB 3 成分 | 色の名前 | 色の省略名
選択したときの ROI の色。RGB 3 成分、色の名前、色の省略名、または "none"
として指定します。"none"
を指定した場合、Color
の値はすべての状態 (選択または未選択) の ROI の色を定義します。
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] | |
例: "SelectedColor","r"
例: "SelectedColor","green"
例: "SelectedColor",[0 0.4470 0.7410]
StripeColor
— ROI ストライプの色
"none"
(既定値) | RGB 3 成分 | 色の名前 | 色の省略名
ROI ストライプの色。RGB 3 成分、色の名前、色の省略名、または "none"
として指定します。"none"
を指定した場合、ROI のエッジは Color
で指定された単色になります。そうでない場合、ROI のエッジはストライプ状になります。このとき、Color
および StripeColor
で指定された色が交互に現れます。
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] | |
例: "StripeColor","r"
例: "StripeColor","green"
例: "StripeColor",[0 0.4470 0.7410]
Tag
— ROI に関連付けるタグ
''
(既定値) | 文字ベクトル | string スカラー
ROI に関連付けるタグ。文字ベクトルまたは string スカラーとして指定します。関数 findobj
を使用してオブジェクトの階層内の ROI オブジェクトを見つけるには、このタグ値を使用します。
UserData
— ROI に関連付けるデータ
任意の MATLAB データ
ROI に関連付けるデータ。任意の MATLAB データとして指定します。たとえば、スカラー、ベクトル、行列、cell 配列、string、文字配列、table、または構造体を指定できます。四角形
オブジェクトはこのデータを使用しません。
Vertices
— 四角形のエッジ上の点の位置
4 行 2 列の数値行列
この プロパティ は読み取り専用です。
ROI のコーナー上の点の位置。4 行 2 列の数値行列として返されます。
Visible
— ROI の可視性
"on"
(既定値) | "off"
| on/off の logical 値
ROI の可視性。"on"
か "off"
、または数値か logical の 1
(true
) か 0
(false
) として指定します。値 "on"
は true と等価であり、"off"
は false と等価です。この値は、OnOffSwitchState
型の on/off の logical 値として格納されます。
値 | 説明 |
---|---|
"on" | ROI を表示します。 |
"off" | ROI を削除せずに非表示にします。ただし、非表示の ROI のプロパティにアクセスすることはできます。 |
オブジェクト関数
addlistener | イベント ソースにバインドされたイベント リスナーの作成 |
beginDrawingFromPoint | 指定された点からの ROI の描画の開始 |
bringToFront | Axes のスタックの順番の最前面への ROI の移動 |
createMask | ROI からのバイナリ マスク イメージの作成 |
draw | 対話形式による ROI の描画の開始 |
inROI | 点が ROI 内にあるかどうかのクエリ |
wait | ROI の操作が完了するまで MATLAB コマンド ラインをブロック |
例
非対話形式による四角形 ROI の作成
イメージをワークスペースに読み取って表示します。
I = imread('baby.jpg');
figure
imshow(I)
Position
パラメーターを使用してその位置とサイズを指定し、イメージ上に四角形 ROI を作成します。また、この例では四角形のエッジがストライプ状のラインになるように指定しています。プログラムによって ROI を作成する場合、特定の座標軸に ROI を描画するには、座標軸を入力引数として指定しなければなりません。そうでない場合、images.roi.Rectangle
クラスのインスタンスは作成されますが表示されません。この例では、現在の座標軸 (gca
) を指定して、その座標軸にあるイメージに ROI を描画します。
h = images.roi.Rectangle(gca,'Position',[500,500,1000,1000],'StripeColor','r');
四角形 ROI イベントのリスナーの設定
イメージを読み取って表示します。
I = imread("cameraman.tif");
imshow(I)
イメージと同じ座標軸で四角形 ROI を作成してから、ROI 移動イベントのリスナーを追加します。
roi = images.roi.Rectangle(gca); addlistener(roi,"MovingROI",@allevents); addlistener(roi,"ROIMoved",@allevents);
四角形 ROI を対話形式で描画します。次に、ROI を移動してコールバック関数 allevents
を呼び出します。ROI を移動すると、リスナーによってそれらのイベントの通知が送信され、コールバック関数が実行されます。
draw(roi)
コールバック関数 allevents
は ROI の以前の位置と現在の位置をコマンド ラインに表示します。
function allevents(src,evt) evname = evt.EventName; switch evname case "MovingROI" disp("ROI moving. Previous position: "+mat2str(evt.PreviousPosition)); disp("ROI moving. Current position: "+mat2str(evt.CurrentPosition)); case "ROIMoved" disp("ROI moved. Previous position: "+mat2str(evt.PreviousPosition)); disp("ROI moved. Current position: "+mat2str(evt.CurrentPosition)); end end
詳細
イベント
特定のイベントが発生したときに ROI から通知を受け取るには、これらのイベントに対する "リスナー" を設定します。これらのイベントのいずれかが発生したときに実行するコールバック関数を指定できます。ROI がリスナーを通じてアプリケーションに通知するとき、イベントに固有のデータを返します。特定のイベントのイベント クラスを確認して何が返されたかを調べます。
例については、四角形 ROI イベントのリスナーの設定を参照してください。
イベント名 | トリガー | イベント データ | イベント属性 |
---|---|---|---|
DeletingROI | ROI が対話的に削除されようとしている。 | event.EventData |
|
DrawingStarted | ROI が対話的に描画されようとしている。 | event.EventData |
|
DrawingFinished | ROI が対話的に描画された。 | event.EventData |
|
MovingROI | ROI の形状または位置が対話的に変更中である。 | images.roi.RectangleMovingEventData |
|
ROIMoved | ROI の形状または位置が対話的に変更された。 | images.roi.RectangleMovingEventData |
|
ROIClicked | ROI がクリックされた。 | images.roi.ROIClickedEventData |
|
ヒント
関数
draw
またはdrawrectangle
を使用して対話形式で ROI を描画するには、カーソルを座標軸に配置し、クリック アンド ドラッグして形状を作成します。ROI の描画を終了するには、マウス ボタンを離します。ROI は、キーボード ショートカットを含む以下の対話性をサポートします。
動作 キーボード ショートカット ROI の描画をキャンセルする。 Esc キーを押します。関数は Position
プロパティが空の有効な ROI オブジェクトを返します。ROI をサイズ変更 (形状変更) する。 頂点にカーソルを配置し、クリック アンド ドラッグします。四角形には、各コーナーと各辺の中点に頂点があります。サイズ変更中に縦横比を保持するには、Shift キーを押します。縦横比をロックするには、右クリック コンテキスト メニューの [縦横比を固定] を使用します。
ROI を移動する。 ROI 上にカーソルを配置します。カーソルが花形に変わります。ROI をクリック アンド ドラッグします。 ROI を削除する。 ポインターを四角形上に配置し、右クリックして表示されたコンテキスト メニューから [四角形の削除] を選択します。関数 delete
を使用して、プログラムによって ROI を削除することもできます。App Designer を使って作成したアプリで ROI を使用する方法の詳細については、App Designer を使って作成したアプリでの ROI の使用を参照してください。
バージョン履歴
R2018b で導入R2020a: UIContextMenu
プロパティは推奨されません
R2020a 以降では、UIContextMenu
プロパティを使用してコンテキスト メニューをグラフィックス オブジェクトや UI コンポーネントに割り当てることは推奨されません。代わりに ContextMenu
プロパティを使用してください。プロパティの値は同じです。
現時点では UIContextMenu
プロパティのサポートを削除する予定はありません。ただし、グラフィックス オブジェクトまたは UI コンポーネントに対して関数 get
を呼び出すことにより返されるリストに、UIContextMenu
プロパティは表示されなくなりました。
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)