このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
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
参考
drawrectangle
| Rectangle
| addlistener
| uiresume
| uiwait