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