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

Существует три способа создания объектов окупаемости инвестиций.
Создайте ROI в интерактивном режиме с помощью функции удобства создания. Функции создания позволяют рисовать окупаемость инвестиций на изображении. Используйте этот подход, если вы не знаете заранее размер и положение ROI и хотите использовать содержимое изображения, чтобы помочь в размещении ROI. Дополнительные сведения см. в разделе Создание окупаемости инвестиций с помощью функций удобства создания.
Создайте ROI программным путем, указав информацию о размере и форме ROI. Используйте этот подход, если уже известны сведения о размере и форме ROI, такие как координаты вершин многоугольника или координаты центра и радиус окружности.
Создайте ROI программно, затем используйте draw функция для интерактивного отображения окупаемости инвестиций на изображении. Этот подход используется для установки графических свойств и поведения ROI перед определением размера и положения ROI. draw функция также позволяет перерисовывать существующий ROI, сохраняя внешний вид ROI. Дополнительные сведения см. в разделе Создание окупаемости инвестиций с помощью функции рисования.
В таблице показаны поддерживаемые ROI и соответствующие функции удобства создания.
| Объект окупаемости инвестиций | Функция удобства создания ROI | Описание |
|---|---|---|
AssistedFreehand | drawassisted | Свободная окупаемость инвестиций, которая привязывается к краям существующих объектов на изображении
|
Circle | drawcircle | Циклическая окупаемость инвестиций
|
Crosshair | drawcrosshair | Линейная окупаемость инвестиций, состоящая из двух перпендикулярных линий
|
Cuboid | drawcuboid | 3-D Кубоидальная окупаемость инвестиций
|
Ellipse | drawellipse | Эллипсоидная окупаемость инвестиций
|
Freehand | drawfreehand | ROI Freehand, который следует по пути мыши
|
Line | drawline | Линейная окупаемость инвестиций, состоящая из сегмента одной линии
|
Point | drawpoint | Точечная окупаемость инвестиций
|
Polygon | drawpolygon | Многоугольная окупаемость инвестиций, состоящая из замкнутого набора отрезков
|
Polyline | drawpolyline | Окупаемость инвестиций в полилинию, которая состоит из открытого набора сегментов линий
|
Rectangle | drawrectangle | Прямоугольная окупаемость инвестиций
|
В этом примере показано, как создать объект ROI с помощью функций удобства создания ROI. Эти функции позволяют создавать объекты ROI в интерактивном режиме путем рисования ROI поверх изображения.
Чтение и отображение изображения.
I = imread('pears.png');
imshow(I)
В этом примере создается эллипсоидная окупаемость инвестиций. Аналогичный процесс можно использовать для создания любого объекта ROI.
Создание Ellipse Окупаемость инвестиций с помощью drawellipse функция. Настройте вид окупаемости инвестиций, указав StripeColor аргумент пары имя-значение как желтый.
roi = drawellipse('StripeColor','y');

Проверьте свойства окупаемости инвестиций.
roi
roi =
Ellipse with properties:
Center: [446.0000 197.0000]
SemiAxes: [115.8836 71.6200]
RotationAngle: 298.3342
AspectRatio: 1.6180
Label: ''
Color: [0 0.4470 0.7410]
Parent: [1×1 Axes]
Visible: 'on'
Selected: 0
Show all properties
draw ФункцияВ этом примере показано, как использовать draw для перерисовки существующего ROI в интерактивном режиме. Этот подход полезен, если требуется задать графические свойства и поведение ROI перед определением размера и положения ROI. Например, можно создать и настроить ROI перед созданием осей для отображения ROI.
В этом примере создается и рисуется эллипсоидная окупаемость инвестиций. Аналогичный процесс можно использовать для создания любого объекта ROI.
Создание Ellipse ROI программно с помощью images.roi.Ellipse функция. Задайте свойства для настройки внешнего вида эллипса. Здесь цвет лица голубой и граница ROI имеет красную полосу. Не указывайте позицию окупаемости инвестиций.
roi = images.roi.Ellipse('Color','c','StripeColor','r');
Проверьте свойства окупаемости инвестиций.
roi
roi =
Ellipse with properties:
Center: []
SemiAxes: []
RotationAngle: 0
AspectRatio: 1.6180
Label: ''
Show all properties
Проверьте родительские оси окупаемости инвестиций. ROI не отображается, поэтому родительские оси пусты.
roi.Parent
ans = 0×0 empty GraphicsPlaceholder array.
Чтение и отображение изображения.
I = imread('pears.png');
imshow(I)
Нарисуйте окупаемость инвестиций на изображении с помощью draw функция. Щелкните и перетащите курсор на изображение, чтобы создать эллиптическую форму. Отображаемый ROI имеет цвет грани и цвет полосы, заданные при создании ROI.
draw(roi)

Проверьте свойства окупаемости инвестиций. Несколько свойств окупаемости инвестиций обновляются после рисования.
roi
roi =
Ellipse with properties:
Center: [337 107.5000]
SemiAxes: [109.3766 67.5985]
RotationAngle: 42.2208
AspectRatio: 1.6180
Label: ''
Color: [0 1 1]
Parent: [1×1 Axes]
Visible: 'on'
Selected: 0
Show all properties
Теперь ROI имеет родительские оси. Получение всех графических объектов, совместно использующих одни и те же родительские оси. В этом примере ROI имеет тот же родитель, что и отображаемое изображение.
roi.Parent.Children
ans = 2×1 graphics array: Ellipse Image
Вы можете использовать окупаемость инвестиций в приложениях, созданных с помощью App Designer, для воспитания окупаемости инвестиций в UIAxes. Необходимо явно указать UIAxes при вызове функции создания ROI в качестве входного аргумента или с помощью 'Parent' пара имя/значение. Есть несколько ограничений при использовании ROI в приложениях таким образом:
Курсор мыши не обновляется при наведении курсора на ROI. Курсор всегда является стрелкой.
ROI не изменяет цвет при наведении на него курсора.
Контекстное меню окупаемости инвестиций (ROI) (UIContextMenu) не поддерживается.
Следующий код, хотя и не типичный рабочий процесс создания приложения, показывает, как указать окупаемость инвестиций в UIAxes в приложении (UIFigure).
Создать UIAxes. При вызове uiaxes функция, она создает UIFigure автоматически.
uax = uiaxes;

Создайте ROI в UIAxes. Вызовите любую из функций создания ROI, например: drawcircleили классы окупаемости инвестиций, такие как images.roi.Circle. Укажите UIAxes в качестве аргумента. Наведите курсор на оси, щелкните и перетащите мышь, чтобы нарисовать окупаемость инвестиций. Форма курсора не изменяется при использовании с UIAxes.
h = drawcircle(uax);

Можно также создать ROI с помощью функции создания объекта, например: images.roi.Circle. При использовании объектов необходимо также вызвать draw , указывая объект ROI в качестве аргумента.