drawcuboid

Создайте настраиваемый кубовидный ROI

Описание

пример

roi = drawcuboid создает Cuboid Объект ROI и включает интерактивный рисунок кубовидной видимой области (ROI) на текущей системе координат.

Чтобы чертить ROI, вызовите drawcuboid функция. Функция чертит кубовидный ROI, сосредоточенный в объеме. Перейдите указатель на изображение. Курсор превращается в форму fleur. Переместите ROI куда угодно в изображение. Чтобы закончить ROI, щелкните кнопкой мыши. Для получения дополнительной информации об использовании ROI, включая горячие клавиши и опции контекстного меню, смотрите Советы.

Примечание

drawcuboid функция удобства для создания Cuboid Объект ROI. Если вы создаете объект ROI непосредственно, вызывая Cuboid, необходимо вызвать draw возразите функции, чтобы включить интерактивный рисунок ROI. В отличие от этого drawcuboid функция создает объект ROI и вызывает draw возразите функции для вас. Какой бы ни способ, которым вы создаете ROI, вы используете свойства объектов, объектные функции и уведомления о событии, чтобы настроить его внешний вид и поведение. Для получения дополнительной информации об использовании этих возможностей смотрите Советы.

H = drawcuboid(ax) создает ROI на осях, заданных ax вместо текущей системы координат (gca).

roi = drawcuboid(S) создает ROI на Scatter объект задан S. Во время интерактивного размещения кубоид привязывается к самой близкой точке, заданной Scatter объект.

roi = drawcuboid(___,Name,Value) изменяет внешний вид ROI с помощью одной или нескольких пар "имя-значение".

Примеры

свернуть все

Создайте 3-D точечный график и в интерактивном режиме задайте ROI кубоида по данным.

Задайте векторы для 3-D поля точек данных.

[x,y,z] = sphere(16);
X = [x(:)*.5 x(:)*.75 x(:)];
Y = [y(:)*.5 y(:)*.75 y(:)];
Z = [z(:)*.5 z(:)*.75 z(:)];

Задайте размер и цвет каждого маркера.

S = repmat([1 .75 .5]*10,numel(x),1);
C = repmat([1 2 3],numel(x),1);

Создайте 3-D точечный график. Используйте view к изменению угол осей в фигуре.

figure
hScatter = scatter3(X(:),Y(:),Z(:),S(:),C(:),'filled'); 
view(-60,60);

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

drawcuboid(hScatter);

Задайте векторы для 3-D данных, имеющий разброс.

[x,y,z] = sphere(16);
X = [x(:)*.5 x(:)*.75 x(:)];
Y = [y(:)*.5 y(:)*.75 y(:)];
Z = [z(:)*.5 z(:)*.75 z(:)];

Задайте размер и цвет каждого маркера.

S = repmat([1 .75 .5]*10,numel(x),1);
C = repmat([1 2 3],numel(x),1);

Создайте 3-D точечный график и используйте представление, чтобы изменить угол осей в фигуре.

figure
hScatter = scatter3(X(:),Y(:),Z(:),S(:),C(:),'filled'); 
view(-60,60);

Начните помещать кубоид в оси, который привязывается к самой близкой точке из графика рассеивания. Настройте размер кубоида во время интерактивного размещения при помощи колесика прокрутки.

roi = drawcuboid(hScatter,'Color','r'); 

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

addlistener(roi,'MovingROI',@allevents);
addlistener(roi,'ROIMoved',@allevents);

allevents функция обратного вызова отображает предыдущее положение и текущее положение ROI.

function allevents(src,evt)
    evname = evt.EventName;
    switch(evname)
        case{'MovingROI'}
            disp(['ROI moving previous position: ' mat2str(evt.PreviousPosition)]);
            disp(['ROI moving current position: ' mat2str(evt.CurrentPosition)]);
        case{'ROIMoved'}
            disp(['ROI moved previous position: ' mat2str(evt.PreviousPosition)]);
            disp(['ROI moved current position: ' mat2str(evt.CurrentPosition)]);
    end
end

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

свернуть все

Родительские оси ROI, заданного как объект осей или объект UIAxes. Для получения информации об использовании ROI в UIAxes, включая важные ограничения, смотрите Используя ROI в Приложениях, Созданных с App Designer.

График поля точек, заданный как Scatter объект. Родительский элемент Scatter объект становится родительским элементом ROI.

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: roi = drawcuboid('Color','k','Label','My Cuboid');

Цвет ROI, заданный как разделенная запятой пара, состоящая из 'Color' и MATLAB® ColorSpec (Color Specification) значение.

Пример: 'green'

Пример: 'g'

Пример: [0 1 0]

ROI может быть в интерактивном режиме удален через контекстное меню, заданное как разделенная запятой пара, состоящая из 'Deletable' и логическое значение true или false. Когда значением является true (значение по умолчанию), можно удалить ROI через контекстное меню. Чтобы отключить этот элемент контекстного меню, установите 'Deletable' к false. Когда значение установлено к false, можно все еще удалить ROI путем вызова delete функция, задавая указатель на ROI как вход.

Область осей, в которые можно в интерактивном режиме поместить ROI, заданный как разделенная запятой пара, состоящая из 'DrawingArea' и одно из значений в этой таблице.

ЗначениеОписание
'auto'

Областью рисунка является надмножество пределов текущей системы координат и ограничительной рамки, которая окружает ROI (значение по умолчанию).

'unlimited'Область рисунка не имеет никакого контура, и ROI могут чертиться или перетаскиваться, чтобы расширить вне пределов осей.
[x,y,z,w,h,d]Область рисунка ограничивается областью, начинающейся в (x, y, z), с шириной w, высота h и глубина d.

Прозрачность ребра ROI, заданного как разделенная запятой пара, состоящая из 'EdgeAlpha' и скаляр в области значений [0 1]. Когда установлено в 1, ребро ROI полностью непрозрачно. Когда установлено в 0, ребро ROI абсолютно прозрачно.

Пример: drawcuboid('EdgeAlpha',0.2)

Прозрачность поверхностей ROI, заданных как значение числового скаляра в области значений [0 1]. Когда значением является 1, поверхности ROI полностью непрозрачны. Когда значением является 0, поверхности ROI абсолютно прозрачны.

Прозрачность ROI стоит непосредственно под указателем мыши, заданным как разделенная запятой пара, состоящая из 'FaceAlphaOnHover' и скалярное значение в области значений [0 1] или 'none' не указать ни на какое изменение, чтобы стоять перед прозрачностью. Когда установлено в 1, поверхность под указателем мыши полностью непрозрачна. Когда установлено в 0, поверхность абсолютно прозрачна.

Пример: drawcuboid('FaceAlphaOnHover',1)

Цвет ROI стоит непосредственно под указателем мыши, заданным как разделенная запятой пара, состоящая из 'FaceColorOnHover' и MATLABColorSpec (Color Specification) или 'none'. По умолчанию цвет поверхности не изменяется на, наводят. (Наведите средние значения, располагающие указатель над поверхностью кубовидного ROI.), Когда вы не наводите на поверхность ROI, значение ROI Color свойство определяет цвет поверхности. Интенсивность должна быть в области значений [0,1].

Пример: drawcuboid('FaceColorOnHover','g')

Видимость ROI обрабатывает в Children свойство родительского элемента, заданного как разделенная запятой пара, состоящая из 'HandleVisibility' и одно из значений в этой таблице.

ЗначениеОписание
'on'Указатель на объект всегда отображается (значение по умолчанию).
'off'Указатель на объект скрыт в любом случае.
'callback'Указатель на объект отображается из коллбэков или функций, вызванных коллбэками, но не из функций, вызванных из командной строки.

Интерактивность ROI, заданного как разделенная запятой пара, состоящая из 'InteractionsAllowed' и одно из значений в этой таблице.

ЗначениеОписание
'all'ROI является полностью межигровым (значение по умолчанию).
'none'ROI не является межигровым, и никакие не перетаскивают точки, отображаются.
'translate'ROI может быть переведен (перемещенный) в области рисунка, но не изменился.

Метка ROI, заданная как разделенная запятой пара, состоящая из 'Label' и вектор символов или строка. По умолчанию это свойство установлено в пустой массив ('') и ROI не имеет никакой метки.

Видимость метки ROI, заданной как разделенная запятой пара, состоящая из 'LabelVisible' и одно из этих значений.

ЗначениеОписание
'on'Метка отображается, когда ROI отображается, и Label свойство непусто (значение по умолчанию).
'hover'

Метка отображается только, когда мышь наводит на ROI.

'off'Метка не отображается.

Ширина ребра ROI, заданного как разделенная запятой пара, состоящая из 'LineWidth' и положительный числовой скаляр в точках. Значением по умолчанию является три раза число точек на экранный пиксель.

Родительский элемент ROI, заданный как разделенная запятой пара, состоящая из 'Parent' и Axes или UIAxes объект. Для получения информации об использовании ROI в UIAxes, включая важные ограничения, смотрите Используя ROI в Приложениях, Созданных с App Designer.

Положение кубоида, заданного как разделенная запятой пара, состоящая из 'Position' и 1 6 массив формы [xmin, ymin, zmin, width, height, depth ]. Это свойство обновляется автоматически, когда вы чертите или перемещаете кубоид.

Способность кубоида, который будет вращаться, заданный как разделенная запятой пара, состоящая из 'Rotatable' и одно из значений в этой таблице.

ЗначениеОписание
'all'ROI является полностью поворотным.
'x' ROI может только вращаться об оси x
'y'ROI может только вращаться об оси y.
'z'ROI может только вращаться об оси z.
'none'ROI не является поворотным.

Угол вращения ROI, заданного как разделенная запятой пара, состоящая из 'RotationAngle' и 1 3 числовой массив углов поворота, измеренных в градусах. Массив углов поворота имеет форму [x_angle y_angle z_angle], измеренный о x - y - и z - ось, соответственно. Вращение применяется о центроиде ROI в этом порядке: z, y, x.

Значение RotationAngle не влияет на значения в Position. Position представляет кубоид перед любым вращением. Когда вы будете вращать кубоид, используйте Vertices определить местоположение вращаемого ROI.

Способность колесика прокрутки настроить размер ROI, заданного как разделенная запятой пара, состоящая из 'ScrollWheelDuringDraw' и одно из значений в этой таблице.

ЗначениеОписание
'allresize'Колесико прокрутки влияет на все размерности ROI.
'xresize' Колесико прокрутки влияет только на размерность x.
'yresize' Колесико прокрутки влияет только на размерность y.
'zresize' Колесико прокрутки влияет только на размерность z.
'none'Колесико прокрутки не оказывает влияния.

Состояние выбора ROI, заданного как разделенная запятой пара, состоящая из 'Selected' и true или false. Можно также установить это значение в интерактивном режиме. Например, нажатие на ROI выбирает его и устанавливает это значение к true. Точно так же, если вы Ctrl-click ROI, отменяет выбор его и устанавливает это значение к false.

Цвет ROI, когда выбрано, заданный как разделенная запятой пара, состоящая из 'SelectedColor' и ColorSpec (Color Specification) MATLAB. Если 'SelectedColor' установлен в 'none', затем значение Color задает цвет ROI для всех состояний, выбранных или нет.

Пример: 'green'

Пример: 'g'

Пример: [0 1 0]

Цвет дорожки ROI, заданной как разделенная запятой пара, состоящая из 'StripeColorColorSpec (Color Specification) MATLAB значение. Если вы задаете 'StripeColor', ребро ROI чередуется. Чередование состоит из комбинации значения, заданного 'Color' и это значение.

Пример: 'green'

Пример: 'g'

Пример: [0 1 0]

Пометьте, чтобы сопоставить с ROI, заданным как разделенная запятой пара, состоящая из 'Tag' и вектор символов или скаляр строки. Используйте значение тега, чтобы найти объект ROI в иерархии объектов при помощи findobj функция.

Контекстное меню, заданное как разделенная запятой пара, состоящая из 'UIContextMenu' и ContextMenu создание объекта с помощью uicontextmenu функция. Задайте эту пару "имя-значение", чтобы отобразить пользовательское контекстное меню, когда вы щелкнете правой кнопкой по ROI. Чтобы создать пользовательское контекстное меню, создайте ContextMenu объект, при помощи uicontextmenu функция, и затем конфигурирует свойства контекстного меню.

Данные, чтобы сопоставить с ROI, заданным как разделенная запятой пара, состоящая из 'UserData' и любые данные MATLAB. Например, можно задать скаляр, вектор, матрицу, массив ячеек, строку, символьный массив, таблицу или структуру. MATLAB не использует эти данные.

Это свойство доступно только для чтения.

Местоположения углов кубовидного ROI, заданного как 8 3 массив. Каждой строкой является x - y - и z - координата угла кубовидного ROI.

Видимость ROI, заданная как разделенная запятой пара, состоящая из 'Visible' и одно из значений в этой таблице.

ЗначениеОписание
'on'Задайте это значение, чтобы отобразить ROI (значение по умолчанию).
'off'Задайте это значение, чтобы скрыть ROI, не удаляя его. Все еще можно получить доступ к свойствам скрытого ROI.

Выходные аргументы

свернуть все

Кубовидный ROI, возвращенный как Cuboid объект.

Советы

  • ROI поддерживает следующую интерактивность, включая горячие клавиши.

    ПоведениеГорячая клавиша
    Подстройте размер ROI при рисовании.Используйте колесико прокрутки, чтобы внести небольшие изменения в размер ROI при рисовании.
    Прекратите чертить ROI.Нажмите Esc. Функция возвращает допустимый объект ROI с пустым Position поле .
    Измените размер (изменяют) ROI.

    Расположите указатель на одну из видимых поверхностей кубоида и перетащите поверхность. Вам придется вращать кубоид, чтобы выбрать поверхность.

    Если вы нажимаете Shift, перетаскивание мыши перемещает ROI, но не изменяет ни одной из размерностей.

    Переместите ROI.

    Расположите указатель на любую из видимых поверхностей ROI и перетаскивания при нажатии Shift.

    Расположите указатель на любую видимую поверхность ROI, щелкните правой кнопкой и выберите Lock Dimensions. Перетащите, чтобы переместить ROI.

    Удалите ROI.Расположите указатель над ROI и щелкните правой кнопкой, чтобы просмотреть его контекстное меню. Выберите Delete Cuboid из меню. Можно также удалить ROI с помощью delete объектная функция.
  • drawcuboid функция возвращает Cuboid Объект ROI. После создания используйте эти возможности объекта настроить внешний вид и поведение ROI.

    • Свойства объектов — ROI возражает свойствам поддержки, которые изменяют их внешний вид или поведение. Например, чтобы изменить цвет roi к желтому, устанавливает его Color свойство, roi.Color = 'yellow'.

    • Объектные функции — объекты ROI поддерживают набор объектных функций, которые работают с ROI. Например, если вы хотите приостановить командную строку MATLAB после создания ROI, вызовите wait объектная функция.

    • Уведомления о событии — объекты ROI могут уведомить ваш код, когда определенные события, такой как перемещаемый или кликнувший, происходят с ROI. Чтобы получить эти уведомления, используйте addlistener возразите функции, чтобы настроить listeners для определенных событий. В прослушивателе задайте событие, такое как 'ROIMoved', и функция обратного вызова, которая выполняется, когда событие имеет место. Когда ROI уведомляет ваше приложение через прослушиватель, это возвращает данные, характерные для события. Например, с 'ROIMoved' событие, объект ROI возвращает свое предыдущее положение и свое текущее положение.

    Для примера использования прослушивателей события с Cuboid возразите, смотрите Настроенный Прослушиватель для Событий ROI Кубоида. Для получения дополнительной информации об этих возможностях, смотрите Cuboid объектная документация.

Введенный в R2019a