Main Content

setPositionConstraintFcn

ROI オブジェクトの位置制約関数の設定

関数 setPositionConstraintFcn は推奨されません。代わりに、新しい ROI で DrawingArea プロパティを使用してください。詳細については、互換性の考慮事項を参照してください。

説明

setPositionConstraintFcn(h,fcn) は、ROI オブジェクト h の位置制約関数を指定した関数ハンドル fcn に設定します。オブジェクトがマウスのドラッグによって移動されると、次の構文を使用して制約関数が呼び出されます。

constrained_position = fcn(pos)

すべて折りたたむ

イメージ上に四角形の ROI を表示します。

imshow("cameraman.tif")
h = imrect(gca,[10 10 100 100]);

タイトルに四角形の位置を表示します。

addNewPositionCallback(h,@(p) title(mat2str(p,3)));

四角形移動時にタイトルを更新します。四角形の 1 辺をドラッグしてイメージの境界外への移動を試みます。

元の XLimYLim の範囲内に四角形を保持するために、makeConstrainToRectFcn を使用して位置制約関数を指定します。

fcn = makeConstrainToRectFcn("imrect",get(gca,"XLim"),get(gca,"YLim"));
setPositionConstraintFcn(h,fcn);

次に、マウスを使用して四角形をドラッグします。四角形がイメージの境界を越えられなくなっていることを確認します。

入力引数

すべて折りたたむ

ROI オブジェクト。imellipseimlineimpointimpoly または imrect オブジェクトとして指定します。

関数ハンドル。ハンドルとして指定します。この関数を作成するには、makeConstrainToRectFcn を使用します。関数は数値配列を入力として受け入れ、数値配列を出力として返さなければなりません。オブジェクトで getPosition を呼び出したとき、両方の配列は同じ形式でなければなりません。詳細については、関数ハンドルの作成を参照してください。

バージョン履歴

R2008a で導入

すべて展開する