ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

beginDrawingFromPoint

パッケージ: images.roi

指定された点からの ROI の描画の開始

説明

beginDrawingFromPoint(ROI,[x y]) はオブジェクト ROI の形状を描画するために対話モードを開始します。描画は座標軸上の位置 (x,y) から始まります。このメソッドは、Image オブジェクトまたは Axes オブジェクトの ButtonDownFcn コールバック内で使用されることを意図しています。

beginDrawingFromPoint(ROI,[x y z]) は直方体 ROI (images.roi.Cuboid) を描画するために対話モードを開始します。描画は座標軸上の位置 (x,y,z) から始まります。

beginDrawingFromPoint(ROI,[x y z],s) は直方体 ROI (images.roi.Cuboid) を描画するために対話モードを開始します。描画は座標軸上の位置 (x,y,z) から始まり、Scatter オブジェクト s からマウスに最も近い位置にスナップされます。

beginDrawingFromPoint(ROI,[x y z],pos) は直方体 ROI (images.roi.Cuboid) を描画するために対話モードを開始します。描画は座標軸上の位置 (x,y,z) から始まり、pos で指定された位置からマウスに最も近い位置にスナップされます。

すべて折りたたむ

sampleDrawLine.m という新しいスクリプトを作成します。次のコードをコピーしてスクリプト内に貼り付け、ファイルを保存します。

hIm = imshow(imread('coins.png'));
hIm.ButtonDownFcn = @(~,~) buttonPressedCallback(hIm.Parent);
 
function buttonPressedCallback(hAx)
    cp = hAx.CurrentPoint;
    cp = [cp(1,1) cp(1,2)];
    obj = images.roi.Line('Parent',hAx,'Color',rand([1,3]));
    beginDrawingFromPoint(obj,cp);
end

MATLAB® コマンド ウィンドウに戻ります。次のコマンドを入力して、スクリプトを実行します。

sampleDrawLine

このコードは、コインのイメージを含む Figure ウィンドウを開きます。Figure 上でマウスをクリックするたびに、スクリプトがコールバック関数 buttonPressedCallback を実行します。コールバック関数は、クリックしたピクセルから新しい ROI の描画を開始します。

エディターで cuboidExample.m という名前のファイルを開きます。次のコードをコピーしてファイルに貼り付け、ファイルを保存します。

function cuboidExample
    [x,y,z] = sphere(16);
    X = [x(:)*.5 x(:)*.75 x(:)];
    Y = [y(:)*.5 y(:)*.75 y(:)];
    Z = [z(:)*.5 z(:)*.75 z(:)];
    
    % Specify the size and color of each marker.
    S = repmat([1 .75 .5]*10,numel(x),1);
    C = repmat([1 2 3],numel(x),1);
    
    % Create a 3-D scatter plot
    figure
    hScatter = scatter3(X(:),Y(:),Z(:),S(:),C(:),'filled'); 
    view(-60,60);
 
    % Begin drawing cuboids when a scatter
    % point is clicked
    hScatter.ButtonDownFcn = @(~,~) buttonPressedCallback(hScatter.Parent);
   
    function buttonPressedCallback(hAx)
       cp = hAx.CurrentPoint;
       cp = cp(1,1:3);
       obj = images.roi.Cuboid('Parent',hAx,'Color',rand([1,3]));
       obj.beginDrawingFromPoint(cp);
    end
 end

MATLAB コマンド ウィンドウに戻り、次のコマンドを入力して関数を実行します。

cuboidExample

このコードは、散布図を含む Figure ウィンドウを開きます。散布図上でマウスをクリックするたびに、関数がコールバック関数 buttonPressedCallback を実行し、クリックしたピクセルに新しい直方体 ROI を描画します。

入力引数

すべて折りたたむ

座標軸内の開始点。数値配列として指定します。

3 次元座標軸内の開始点。数値配列として指定します。

散布図。matlab.graphics.chart.primitive.Scatter オブジェクトとして指定します。

3 次元座標軸内の開始点。N 行 3 列の数値配列として指定します。pos の各行は、配置位置となる可能性がある 3 次元空間位置を表します。

R2018b で導入