beginDrawingFromPoint

Пакет: images.roi

Начните чертить ROI от заданной точки

Описание

пример

beginDrawingFromPoint(ROI,[x y]) переходит к интерактивному режиму, чтобы чертить форму для объекта ROI. Рисунок запускается в местоположении (x, y) в осях. Этот метод предназначается, чтобы использоваться в ButtonDownFcn коллбэк Image или Axes объект.

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 объекты.

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

Код создает окно фигуры, содержащее изображение монет. Каждый раз, когда вы щелкаете мышью по фигуре, скрипт выполняет функцию обратного вызова, 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

Код создает окно фигуры, содержащее график рассеивания. Каждый раз, когда вы щелкаете мышью по графику рассеивания, функция выполняет функцию обратного вызова, buttonPressedCallback, и чертит новый кубовидный ROI на уровне пикселя, по которому вы кликнули.

Входные параметры

свернуть все

Необходимая область в виде объекта ROI одного из следующих типов:

Начальная точка в осях в виде числового массива.

Начальная точка в 3-D осях в виде числового массива.

График поля точек в виде matlab.graphics.chart.primitive.Scatter объект.

Начальная точка в 3-D осях в виде N-by-3 числовой массив. Каждая строка в pos представляет 3-D пространственное местоположение потенциального положения размещения.

Введенный в R2018b