Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

ROI の描画後の待機関数の使用

この例では、四角形の配置を終了するまで MATLAB® コマンド ラインをブロックするカスタム待機関数を定義する方法を説明します。

イメージを表示します。

imshow('pears.png')

イメージの左上隅に四角形 ROI を描画します。

h = drawrectangle('Position',[1 1 100 100]);

四角形の操作中は MATLAB コマンド ラインをブロックするカスタム待機関数を使用します。この例では、customWait と呼ばれる関数を指定します (定義は例の終わりにあります)。

コマンド ラインのブロック中に、1 つの梨を囲むように四角形のサイズと位置を変更します。関数 customWait の実行を再開するには、四角形をダブルクリックします。この関数は四角形の最終的な位置を返します。

pos = customWait(h)

pos = 1×4

  262.0000   36.0000  144.0000  145.0000

これは、ROI をクリックしたときにプログラムの実行をブロックするカスタム待機関数です。ROI の操作を完了すると、関数によって ROI の位置が返されます。

function pos = customWait(hROI)

% Listen for mouse clicks on the ROI
l = addlistener(hROI,'ROIClicked',@clickCallback);

% Block program execution
uiwait;

% Remove listener
delete(l);

% Return the current position
pos = hROI.Position;

end

このクリック コールバック関数は、ROI をダブルクリックするとプログラムの実行を再開します。イベント データは images.roi.ROIClickedEventData オブジェクトとしてコールバック関数に渡されることに注意してください。これにより、さまざまな種類の操作に応答するコールバック関数を定義できます。たとえば、Shift キーを押したまま ROI をクリックしたとき、またはラベルなどの ROI の特定の部分をクリックしたときにプログラムの実行を再開するようにコールバック関数を定義できます。

function clickCallback(~,evt)

if strcmp(evt.SelectionType,'double')
    uiresume;
end

end

参考

| | | |

関連するトピック