Можно создать объекты ROI, которые представляют ROI различных форм, включая круги, замещающие знаки, многоугольники, линии, ломаные линии, прямоугольники и нарисованные от руки формы. Можно также чертить формы от руки, которые получают "помощь" со стороны основного изображения, автоматически после контура ребер. В этом рисунке вы видите многоугольный ROI, дистиллируемый изображение.
Можно управлять аспектами положения ROI и внешнего вида. Можно создать маски из ROI и выполнить другие операции. Можно также задать, как ROI отвечает на события, которые происходят в ROI, таком как клики мыши и перемещение.
Существует три способа создать объекты ROI.
Создайте ROI в интерактивном режиме при помощи функции удобства создания. Функции создания позволяют вам чертить ROI на изображении. Используйте этот подход, если вы не имеете предварительных знаний размера и положения ROI и хотите использовать содержимое изображения, чтобы помочь в размещении ROI. Для получения дополнительной информации смотрите, Создают ROI Используя Функции Удобства Создания.
Создайте ROI программно путем указывания информации о размере и форме ROI. Используйте этот подход, если вы уже знаете детали о размере и форме ROI, такие как координаты вершин многоугольника или центральные координаты и радиус круга.
Создайте ROI программно, затем используйте draw
функционируйте, чтобы в интерактивном режиме чертить ROI на изображении. Используйте этот подход, если вы хотите установить свойства отображения и поведение ROI, прежде чем вы зададите размер и положение ROI. draw
функция также позволяет вам перерисовать существующий ROI, сохраняя внешний вид ROI. Для получения дополнительной информации смотрите, Создают ROI Используя Функцию ничьей.
Таблица показывает поддерживаемые ROI и их соответствующие функции удобства создания.
Объект ROI | Функция удобства создания ROI | Описание |
---|---|---|
AssistedFreehand | drawassisted | ROI от руки, который привязывается к ребрам существующих объектов в изображении
|
Circle | drawcircle | Круговой ROI
|
Crosshair | drawcrosshair | Линейный ROI, который состоит из двух перпендикулярных линий |
Cuboid | drawcuboid | 3-D кубовидный ROI
|
Ellipse | drawellipse | ROI эллипсоида |
Freehand | drawfreehand | ROI от руки, который следует за путем мыши
|
Line | drawline | Линейный ROI, который состоит из однострочного сегмента
|
Point | drawpoint | Укажите ROI
|
Polygon | drawpolygon | Многоугольный ROI, который состоит из замкнутого множества линейных сегментов
|
Polyline | drawpolyline | Полилинейный ROI, который состоит из открытого набора линейных сегментов
|
Rectangle | drawrectangle | Прямоугольный ROI
|
В этом примере показано, как создать объект ROI при помощи функций удобства создания ROI. Эти функции позволяют вам создать объекты ROI в интерактивном режиме путем рисования ROI по изображению.
Считайте и отобразите изображение.
I = imread('pears.png');
imshow(I)
Этот пример создает ROI эллипсоида. Можно использовать подобный процесс, чтобы создать любой объект ROI.
Создайте Ellipse
ROI при помощи drawellipse
функция. Настройте вид ROI путем определения StripeColor
аргумент пары "имя-значение" как желтый.
roi = drawellipse('StripeColor','y');
Смотрите свойства ROI.
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 эллипсоида. Можно использовать подобный процесс, чтобы создать любой объект ROI.
Создайте Ellipse
ROI программно при помощи images.roi.Ellipse
функция. Задайте свойства настроить внешний вид эллипса. Здесь, цвет поверхности является голубым, и граница ROI имеет красную дорожку. Не задавайте положение ROI.
roi = images.roi.Ellipse('Color','c','StripeColor','r');
Смотрите свойства ROI.
roi
roi = Ellipse with properties: Center: [] SemiAxes: [] RotationAngle: 0 AspectRatio: 1.6180 Label: '' Show all properties
Смотрите родительские оси ROI. ROI не чертится так, родительские оси пусты.
roi.Parent
ans = 0×0 empty GraphicsPlaceholder array.
Считайте и отобразите изображение.
I = imread('pears.png');
imshow(I)
Чертите ROI на изображении при помощи draw
функция. Перетащите курсор по изображению, чтобы создать эллиптическую форму. Отображенный ROI имеет цвет поверхности и цвет дорожки, который вы задали, когда вы создали ROI.
draw(roi)
Смотрите свойства ROI. Несколько свойств 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
Можно использовать ROI в приложениях, созданных с App Designer, порождая ROI в UIAxes
. Необходимо явным образом задать UIAxes при вызывании функции создания ROI как входной параметр или использовании 'Parent'
пара имя/значение. Существует несколько ограничений при использовании ROI в приложениях таким образом:
Курсор мыши не обновляется, когда вы наводите на ROI. Курсор всегда является стрелой.
ROI не изменяет цвет, когда вы наводите на него.
Контекстное меню ROI (UIContextMenu
) не поддерживается.
Следующий код, в то время как не рабочий процесс создания типового приложения, показывает, как задать ROI в UIAxes
в приложении (UIFigure
).
Создайте UIAxes
. Когда вы вызываете uiaxes
функция, это создает UIFigure
автоматически.
uax = uiaxes;
Создайте ROI в UIAxes
. Вызовите любую из функций создания ROI, таких как drawcircle
, или классы ROI, такие как images.roi.Circle
. Задайте UIAxes
в качестве аргумента. Переместите курсор через оси и перетащите мышь, чтобы чертить ROI. Форма курсора не изменяется, когда используется с UIAxes
.
h = drawcircle(uax);
Можно также создать ROI с помощью функции создания объекта, такой как images.roi.Circle
. Если вы используете объекты, необходимо также вызвать draw
функция, задавая объект ROI в качестве аргумента.