ドキュメンテーション

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

imfreehand

ドラッグ可能なフリーハンドで領域を作成

構文

h = imfreehand
h = imfreehand(hparent)
h = imfreehand(...,param1, val1,...)

説明

h = imfreehand は、現在の座標軸上に関心領域となるフリーハンド領域の対話型配置を行います。この関数は、imfreehand オブジェクトのハンドル h を返します。フリーハンドの関心領域は、マウスを使用して対話形式でドラッグでき、その外観や動作などを制御するコンテキスト メニューもサポートされています。対話型動作を参照してください。

h = imfreehand(hparent) は、hparent で指定したオブジェクト上にフリーハンドの関心領域の対話型配置を行います。hparent は、通常 axes であるフリーハンド領域のグラフィックスの HG の親を指定しますが、hggroup の親にすることが可能な他のオブジェクトにすることもできます。

h = imfreehand(...,param1, val1,...) は、ツールの動作を指定するパラメーターと対応する値を指定して、フリーハンドの ROI を作成します。使用するパラメーターを次の表に示します。パラメーター名は省略形でも構いません。大文字と小文字は区別されません。

パラメーター説明
'Closed'フリーハンド領域が閉じているかどうかを特定するスカラーの論理値。true (既定の設定) に設定した場合は、imfreehand は直線を描画し、フリーハンド ラインの端点を接続して、閉じた領域を作成します。false に設定した場合は、imfreehand は領域を開いたまま維持します。
'PositionConstraintFcn'

マウスを使用してフリーハンド領域をドラッグするときに常に呼び出される、関数を指定する関数ハンドル。どこにフリーハンド領域がドラッグされるかを指定する場合に、このパラメーターを使用します。有効な関数ハンドルの詳細は、setPositionConstraintFcn メソッドのヘルプを参照してください。

対話型動作

対話型構文で imfreehand を呼び出すと、ポインターはイメージ上では十字形 に変わります。マウスをクリック アンド ドラッグして、フリーハンド領域を描画します。既定の設定では、imfreehand は、描画した最後の点と最初の点を結ぶ直線を描画しますが、'Closed' パラメーターを使用してこの動作を制御できます。次の図は、フリーハンド領域とコンテキスト メニューを示しています。

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

対話型動作説明
領域を移動する。ポインターをフリーハンド領域の内側に移動します。ポインターが花形 に変わります。領域を移動するには、左マウスボタンをクリックしたままドラッグします。
領域を描画するために使用する色を変更する。ポインターをフリーハンド領域の内側に移動します。右クリックで表示されるコンテキスト メニューから [色の設定] を選択します。
フリーハンド領域の現在の位置を取得する。ポインターをフリーハンド領域の内側に移動します。右クリックして、コンテキスト メニューから [位置のコピー] を選択します。imfreehand によって、ROI の境界の座標の n 行 2 列の配列がクリップボードにコピーされます。
領域を削除する。ポインターを領域内に移動します。右クリックして、コンテキスト メニューから [削除] を選択します。コンテキスト メニューからこのオプションを削除するには、Deletable プロパティを false に設定します。h = imfreehand(); h.Deletable = false;

メソッド

imfreehand オブジェクトでは、以下のメソッドを使用できます。すべてのメソッドの詳細なリストを参照するには、methods imfreehand を入力してください。

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

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

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

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

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

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

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

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

getPosition — フリーハンド領域の現在の位置を返す

pos = getPosition(h) は、フリーハンド領域 h の現在の位置を返します。返される位置 pos は N 行 2 列の配列 [X1 Y1;...;XN YN] です。

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

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

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

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

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

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

setClosed — フリーハンド領域の形状を設定する

setClosed(h,TF) は、フリーハンド領域 h の形状を設定します。TF は論理スカラーです。True の場合、フリーハンド領域は閉じています。False の場合、フリーハンド領域は開いています。

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

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

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

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

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

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

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

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

イメージ全体をクリック アンド ドラッグすることにより、閉じたフリーハンドの関心領域を対話形式で配置します。

figure, imshow('pout.tif');
h = imfreehand(gca);    

クリックとドラッグにより、フリーハンド領域を対話形式で配置します。MATLAB コマンド ラインをブロックするために、wait メソッドを使用します。フリーハンド領域上をダブルクリックすることで、MATLAB コマンド ラインの実行を再開します。

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

ヒント

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

R2007b で導入

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