Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

setPositionConstraintFcn

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

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

説明

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

constrained_position = fcn(pos)

四角形移動時にタイトルを更新

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

imshow('cameraman.tif')
h = imrect(gca,[10 10 100 100]);
addNewPositionCallback(h,@(p) title(mat2str(p,3)));

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

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

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

入力引数

すべて折りたたむ

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

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

互換性の考慮事項

すべて展開する

R2018b 以降は非推奨

R2008a で導入