Main Content

removeNewPositionCallback

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

関数 removeNewPositionCallback は推奨されません。代わりに、新しい ROI でオブジェクト関数 addlistener を使用してください。詳細については、互換性の考慮事項を参照してください。

説明

removeNewPositionCallback(h,id) は ROI オブジェクト h の新しい位置のコールバック リストから対応する関数を除去します。

すべて折りたたむ

ライン ROI オブジェクトを作成します。タイトルにラインの位置を表示します。addNewPositionCallback を使用して、ラインを移動するたびにタイトルを更新します。

imshow("pout.tif")
h = imline(gca,[10 100],[100 100]);
id = addNewPositionCallback(h,@(pos) title(mat2str(pos,3)));

ラインを移動して、コールバックの動作を確認します。

コールバック動作を確認した後、コールバックを削除します。タイトルはラインを移動しても変わらなくなります。

removeNewPositionCallback(h,id);

入力引数

すべて折りたたむ

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

新しい位置コールバック関数の識別子。struct として指定します。

バージョン履歴

R2008a で導入

すべて折りたたむ

R2018b: 関数 removeNewPositionCallback は非推奨

R2018b 以降、既存の ROI オブジェクトのセットが新しい ROI オブジェクトのセットに置き換えられています。新しいオブジェクトは、面の色の透明度など、さらに便利な機能を提供します。新しいクラスでは、移動やクリックなどの ROI の変化に応答するために使用できるイベントもサポートされています。現時点では、以前の ROI オブジェクトを削除する予定はありませんが、追加された機能や柔軟性を活用するために、新しい ROI に切り替えてください。新しい ROI 関数を使用した ROI の作成方法の詳細については、ROI の形状の作成を参照してください。

新しい ROI では、Position プロパティには ROI の現在の位置が含まれています。この値が変化したときに通知を受け取るには、オブジェクト関数 addlistener を使用して "リスナー" を設定します。このコールバックを削除するには、リスナー オブジェクトを削除します。

コードの更新

removeNewPositionCallback のすべてのインスタンスを更新してください。

非推奨の使用方法推奨される代替案

この例では、addNewPositionCallback メソッドを使用して、ROI の位置が変化したときにコールバック関数を実行するように指定します。次に、このコードは removeNewPositionCallback を使用してコールバックを削除します。

imshow("cameraman.tif")
h = imrect(gca, [10 10 100 100]);
% Add callback that updates the title with position.
id = addNewPositionCallback(h,@(p) title(mat2str(p,3)));
% Remove position callback. Title no longer updates.
removeNewPositionCallback(h,id);

次のコードは等価なコードで、新しい ROI オブジェクトを作成しており、オブジェクト関数 addNewPositionCallback がオブジェクト関数 addlistener に置き換えられています。この例では "MovingROI" イベントをリッスンします。リスナーを削除するには delete(el) を使用します。

imshow("cameraman.tif")
h = drawrectangle(gca,"Position",[10 10 100 100]);
% Set up a listener for ROI moving events.
el = addlistener(h,"MovingROI",@mymovecb)
% Callback to update title with current position
function mymovecb(src,evt)
    currpos = evt.CurrentPosition;
    title(mat2str(currpos,3))
end