drawrectangle

Создайте настраиваемый прямоугольный ROI

Описание

пример

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

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

Примечание

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

roi = drawrectangle(ax) создает ROI в осях, заданных ax.

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

Примеры

свернуть все

Считайте изображение в рабочую область и отобразите ее.

imshow(imread('baby.jpg'))

Чертите красный прямоугольный ROI с меткой 'OuterRectangle'.

r1 = drawrectangle('Label','OuterRectangle','Color',[1 0 0]);

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

r2 = drawrectangle('Label','InnerRectangle','DrawingArea',r1.Position);

Считайте изображение в рабочую область и отобразите его.

I = imread('baby.jpg');
figure
imshow(I)

Figure contains an axes. The axes contains an object of type image.

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

h = drawrectangle('Position',[500,500,1000,1000],'StripeColor','r');

Figure contains an axes. The axes contains 2 objects of type image, images.roi.rectangle.

Считайте изображение в рабочую область.

I = imread('cameraman.tif');

Отобразите изображение.

imshow(I); 

Чертите прямоугольный ROI на изображении.

roi = drawrectangle('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 в виде Axes возразите или UIAxes объект. Для получения информации об использовании ROI в UIAxes, включая важные ограничения смотрите Используя ROI в Приложениях, Созданных с App Designer.

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

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

Пример: roi = drawrectangle('LineWidth',5);

Соотношение сторон прямоугольника в виде разделенной запятой пары, состоящей из 'AspectRatio' и неотрицательный числовой скаляр, вычисленный как height/width. Это значение изменяется автоматически, когда вы чертите или изменяете размер ROI.

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

Пример: 'green'

Пример: 'g'

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

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

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

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

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

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

Поверхность ROI может получить нажатия кнопки в виде разделенной запятой пары, состоящей из 'FaceSelectable' и значение true или false. Когда true (значение по умолчанию), поверхность ROI может получить нажатия кнопки. Когда false, поверхность ROI не может получить нажатия кнопки.

Соотношение сторон остается постоянным во время взаимодействия в виде разделенной запятой пары, состоящей из 'FixedAspectRatio' и логические значения true или false. Когда true, ROI обеспечивает соотношение сторон, когда вы чертите или изменяете размер прямоугольника. Когда false (значение по умолчанию), можно изменить соотношение сторон при рисовании или изменении размеров прямоугольника. Можно изменить состояние этого свойства с помощью контекстного меню по умолчанию.

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

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

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

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

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

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

Цвет текста метки в виде разделенной запятой пары, состоящей из 'LabelTextColor' и MATLAB ColorSpec (Color Specification) значение. Значения интенсивности должны быть в области значений [0,1].

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

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

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

'inside'Метка отображается только, когда там соответствует пробел в ROI, чтобы отобразить его.
'off'Метка не отображается.

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

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

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

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

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

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

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

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

Пример: 'green'

Пример: 'g'

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

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

Пример: 'green'

Пример: 'g'

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

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

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

Местоположения точек, в напряжении из ROI, возвращенного как разделенная запятой пара, состоящая из 'Vertices' и n-by-2 массив.

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

Видимость ROI в виде разделенной запятой пары, состоящей из 'Visible' и 'on' или 'off', или как числовой или логический 1 (TRUE) или 0 ложь. Значение 'on' эквивалентно истине и 'off' эквивалентно лжи. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения - выключения типа matlab.lang.OnOffSwitchState.

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

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

свернуть все

Прямоугольный ROI, возвращенный как Rectangle объект.

Советы

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

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

    Указатель положения по вершине и затем перетаскивает. Прямоугольник имеет вершины в каждом углу и в средней точке каждой стороны. Чтобы сохранить соотношение сторон при изменении размеров, нажмите клавишу Shift. Чтобы заблокировать соотношение сторон, используйте Fix Aspect Ratio в контекстном меню щелчка правой кнопкой.

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

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

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

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

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

Вопросы совместимости

развернуть все

Не рекомендуемый запуск в R2020a

Введенный в R2018b