ドキュメンテーション

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

imellipse

ドラッグ可能な楕円を作成

構文

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

説明

h = imellipse は、現在の Axes 上に楕円を対話形式で配置します。この関数は、imellipse オブジェクトのハンドル h を返します。この楕円には、その外観や動作などを制御するコンテキスト メニューがあります。詳細は、「対話型動作」を参照してください。コンテキスト メニューを表示するには、ラインを右クリックします。

h = imellipse(hparent) は、hparent で指定したオブジェクト上に楕円の対話型配置を行います。hparent は、通常 Axes である楕円のグラフィックスの HG の親を指定しますが、hggroups の親にすることが可能なそれ以外のオブジェクトにすることもできます。

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

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

パラメーター
'PositionConstraintFcn'

マウスをドラッグするときに常に呼び出される関数ハンドル。これで、どこに楕円がドラッグされるかを指定できます。有効な関数ハンドルの詳細は、setPositionConstraintFcn メソッドのヘルプを参照してください。

対話型動作

対話型構文で imellipse を呼び出すと、ポインターはイメージ上では十字形 に変わります。マウスをクリック アンド ドラッグして、楕円のサイズと位置を指定します。また、コンテキスト メニューを使用して、その外観や動作などを制御できます。次の図は、楕円とコンテキスト メニューを示しています。

次の表に imellipse がサポートしている対話型動作を示します。

対話型動作説明
楕円全体を移動する。ポインターを楕円の内側に移動します。ポインターが花形 に変わります。マウスをクリック アンド ドラッグして、楕円を移動します。
楕円をサイズ変更する。楕円上のサイズ変更ハンドル上にポインターを移動します。ポインターが両方向の矢印 に変わります。マウスをクリック アンド ドラッグして、楕円をサイズ変更します。
楕円を表示するために使用する色を変更する。 ポインターを楕円の内側に移動します。右クリックで表示されるコンテキスト メニューから [色の設定] を選択します。
楕円の現在の位置を取り出す。ポインターを楕円の内側に移動します。右クリックして、コンテキスト メニューから [位置のコピー] を選択します。imellipse によって、4 要素の位置ベクトル ([xmin ymin width height]) がクリップボードにコピーされます。
サイズ変更の実行時に現在の楕円の縦横比を保存する。ポインターを楕円の内側に移動します。右クリックして、コンテキスト メニューから [縦横比を固定] を選択します。

メソッド

imellipse オブジェクトは、多くのメソッドをサポートしています。詳細なリストを参照するには、methods imellipse を入力してください。

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

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

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

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

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

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

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

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

getPosition — 楕円の現在の位置を返す

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

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

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

getVertices — 楕円の境界の頂点を返す

vert = getVertices(h) は、楕円 h の境界に沿って並ぶ頂点の集合を返します。vert は、N 行 2 列の配列です。

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

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

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

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

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

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

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

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

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

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

setPosition — 楕円を新しい位置に設定する

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

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

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

setResizable — 楕円のサイズ変更動作を設定する

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

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

vert = wait(h) は、ROI オブジェクト h の配置が終了するまで、MATLAB コマンド ラインの実行をブロックします。配置が完了したことを示すには、ROI オブジェクトをダブルクリックします。返された頂点 vert は、getVertices メソッドによって返される形式です。

例 1

楕円を作成し、コールバックを使用して、Figure のタイトルに更新した位置を表示します。この例では、元の xlimylim の内部に楕円を保つために、makeConstrainToRectFcn を使用します。

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

例 2

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

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

詳細

すべて展開する

ヒント

イメージ オブジェクトを含んでいる Axes で imellipse を使用し、位置制約関数を指定しない場合、イメージの範囲外に楕円をドラッグすると、それが失われることがあります。関数 plot で作成した Axes で使用すると、座標軸の範囲は楕円の動きに合わせて自動的に拡張されます。

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