ドキュメンテーション

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

imrect

ドラッグ可能な四角形の作成

構文

h = imrect
h = imrect(hparent)
h = imrect(hparent, position)
h = imrect(..., param1, val1,...)

説明

h = imrect は、現在の座標軸上に四角形を対話形式で配置します。この関数は、imrect オブジェクトのハンドル h を返します。四角形には、その外観や動作などを制御するコンテキスト メニューが関連付けられています。対話型動作を参照してください。このコンテキスト メニューを表示するには、四角形を右クリックします。

h = imrect(hparent) は、hparent で指定したオブジェクト上に四角形を対話形式で配置します。hparent は、四角形のグラフィックスの HG の親を指定します。これは通常 axes ですが、hggroups の親になり得るそれ以外のオブジェクトとするのも可能です。

h = imrect(hparent, position) は、ドラッグ可能な四角形を hparent で指定されたオブジェクト上に作成します。position は、四角形の初期のサイズと位置を指定する 4 要素のベクトルです。position[xmin ymin width height] の形式をもちます。

h = imrect(..., param1, val1,...) は、四角形の動作を制御するパラメーターおよび対応値を指定して、ドラッグ可能な四角形を作成します。使用するパラメーターを次の表に示します。パラメーター名は省略形でも構いません。大文字と小文字は区別されません。

パラメーター説明

'PositionConstraintFcn'

マウスをドラッグしたときに呼び出される関数ハンドル fcn。この関数を使用して、四角形をドラッグできる場所を制御します。有効な関数ハンドルの詳細は、setPositionConstraintFcn メソッドのヘルプを参照してください。

対話型動作

対話型構文で imrect を呼び出すと、ポインターはイメージ上で十字形 に変わります。四角形を作成してから、マウスを使用してサイズと位置を調整できます。四角形では、その外観や動作などを制御するコンテキスト メニューもサポートされています。次の図は四角形を示します。

次の表は、imrect でサポートされる対話型動作を示しています。

対話型動作説明
四角形の移動四角形内のポインターを移動します。ポインターが花形 に変わります。マウスをクリック アンド ドラッグして、四角形を移動します。
四角形のサイズ変更ポインターを四角形の任意の辺または角に動かすと、形が両方向の矢印 に変わります。マウスを使用して辺または角をクリック アンド ドラッグします。
四角形の色の変更四角形内のポインターを移動します。右クリックで表示されるコンテキスト メニューから [色の設定] を選択します。
現在の位置の座標の取得多角形内のポインターを移動します。右クリックして、コンテキストメニューから [位置のコピー] を選択します。imrect は、4 要素の位置ベクトルをクリップボードにコピーします。
対話型でサイズ変更の実行時に四角形の現在の縦横比を保存します。四角形内のポインターを移動します。右クリックして、コンテキスト メニューから [縦横比を固定] を選択します。
四角形の削除ポインターを四角形内または四角形の辺に移動します。右クリックして、コンテキスト メニューから [削除] を選択します。コンテキスト メニューからこのオプションを削除するには、Deletable プロパティを false に設定します。h = imrect(); h.Deletable = false;

メソッド

imrect オブジェクトは、以下に示した多数のメソッドをサポートしています。メソッドの一覧を表示するには、「methods imrect」と入力してください。

addNewPositionCallback — ROI オブジェクトに新しい位置のコールバックを追加する

詳細は、imroi を参照してください。

createMask — イメージ内にマスクを作成する

詳細は、imroi を参照してください。

delete — ROI オブジェクトを削除する

詳細は、imroi を参照してください。

getColor — ROI オブジェクトの描画に使用する色を取得する

詳細は、imroi を参照してください。

getPosition — 四角形の現在の位置を返す

pos = getPosition(h) は、四角形 h の現在の位置を返します。返される位置 pos は、1 行 4 列の配列 [xmin ymin width height] です。

getPositionConstraintFcn — 現在の位置の制約関数の関数ハンドルを返す

詳細は、imroi を参照してください。

removeNewPositionCallback — ROI オブジェクトから新しい位置のコールバックを削除する

詳細は、imroi を参照してください。

resume — MATLAB コマンド ラインの実行を再開する

詳細は、imroi を参照してください。

setColor — ROI オブジェクトの描画に使用する色を設定する

詳細は、imroi を参照してください。

setConstrainedPosition — ROI オブジェクトを新しい位置に設定する

詳細は、imroi を参照してください。

setFixedAspectRatioMode — サイズ変更時に縦横比を維持するかどうかを制御する

setFixedAspectRatioMode(h,TF) は、四角形 h の対話型のサイズ変更動作を設定します。TF は論理スカラーです。True は、対話型のサイズ変更中に現在の縦横比が維持されることを意味します。False は、対話型のサイズ変更が制約を受けないことを意味します。

setPosition — 新しい位置に四角形を設定する

setPosition(h,pos) は、四角形 h を新しい位置に設定します。新しい位置 pos[xmin ymin width height] の形式です。

setPositionConstraintFcn — ROI オブジェクトの位置制約関数を設定する

詳細は、imroi を参照してください。

setResizable — 四角形のサイズ変更動作を設定する

setResizable(h,TF) は、四角形 h を対話形式でサイズ変更できるかどうかを設定します。TF は論理スカラーです。

wait — ROI の作成が完了するまで MATLAB コマンド ラインをブロックする

詳細は、imroi を参照してください。

例 1

タイトルに更新した位置を表示します。元の XlimYlim の範囲内に四角形を保持するために、makeConstrainToRectFcn を使用して位置制約関数を指定します。

figure, imshow('cameraman.tif');
h = imrect(gca, [10 10 100 100]);
addNewPositionCallback(h,@(p) title(mat2str(p,3)));
fcn = makeConstrainToRectFcn('imrect',get(gca,'XLim'),get(gca,'YLim'));
setPositionConstraintFcn(h,fcn); 

次に、マウスを使用して四角形をドラッグします。

例 2

クリック アンド ドラッグにより四角形を対話形式で配置します。wait を使用して MATLAB コマンド ラインをブロックします。MATLAB コマンド ラインの実行を再開するには、四角形をダブルクリックします。

figure, imshow('pout.tif');
h = imrect;
position = wait(h);

ヒント

image オブジェクトを含んでいる axes で imrect を使用し、位置制約関数を指定しない場合、イメージの範囲外に四角形をドラッグできます。関数 plot で作成した座標軸で使用すると、座標軸の範囲は四角形の動きに合わせて自動的に拡張されます。

API 関数 setResizable を使用して四角形をサイズ変更を不可にすると、[縦横比を固定] コンテキスト メニュー項目は表示されません。

R2006a より前に導入

この情報は役に立ちましたか?