Создайте формы ROI

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

Можно управлять аспектами положения ROI и внешнего вида. Можно создать маски из ROI и выполнить другие операции. Можно также задать, как ROI отвечает на события, которые происходят в ROI, таком как клики мыши и перемещение.

Polygon ROI that approximates the boundary of an object in an image.

Существует три способа создать объекты ROI.

  • Создайте ROI в интерактивном режиме при помощи функции удобства создания. Функции создания позволяют вам чертить ROI на изображении. Используйте этот подход, если вы не имеете предварительных знаний размера и положения ROI и хотите использовать содержимое изображения, чтобы помочь в размещении ROI. Для получения дополнительной информации смотрите, Создают ROI Используя Функции Удобства Создания.

  • Создайте ROI программно путем указывания информации о размере и форме ROI. Используйте этот подход, если вы уже знаете детали о размере и форме ROI, такие как координаты вершин многоугольника или центральные координаты и радиус круга.

  • Создайте ROI программно, затем используйте draw функционируйте, чтобы в интерактивном режиме чертить ROI на изображении. Используйте этот подход, если вы хотите установить свойства отображения и поведение ROI, прежде чем вы зададите размер и положение ROI. draw функция также позволяет вам перерисовать существующий ROI, сохраняя внешний вид ROI. Для получения дополнительной информации смотрите, Создают ROI Используя Функцию ничьей.

Таблица показывает поддерживаемые ROI и их соответствующие функции удобства создания.

Объект ROIФункция удобства создания ROIОписание
AssistedFreehanddrawassisted

ROI от руки, который привязывается к ребрам существующих объектов в изображении

Assisted Freehand ROI tracing the edge of an object between selected waypoints.

Circledrawcircle

Круговой ROI

Blue Circle ROI drawn over a round object in an image.

Crosshairdrawcrosshair

Линейный ROI, который состоит из двух перпендикулярных линий

A horizontal line and a vertical line intersect to form a Crosshair ROI.

Cuboiddrawcuboid

3-D кубовидный ROI

Blue Cuboid ROI drawn over a 3-D region in a point cloud.

Ellipsedrawellipse

ROI эллипсоида

Blue Ellipse ROI drawn over a round object in an image.

Freehanddrawfreehand

ROI от руки, который следует за путем мыши

Freehand ROI tracing the edge of an object in an image.

Linedrawline

Линейный ROI, который состоит из однострочного сегмента

Blue Line ROI drawn over the widest part of an object in an image.

Pointdrawpoint

Укажите ROI

Blue Point ROI drawn near the center of an object in an image.

Polygondrawpolygon

Многоугольный ROI, который состоит из замкнутого множества линейных сегментов

Blue Polygon ROI with 10 vertices approximating the boundary of an object in an image.

Polylinedrawpolyline

Полилинейный ROI, который состоит из открытого набора линейных сегментов

Blue Polyline ROI with 12 line segments approximating the boundary of an object in an image.

Rectangledrawrectangle

Прямоугольный ROI

Blue Rectangle ROI encompassing an object in an image.

Создайте 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

Создайте ROI Используя 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 в приложениях, созданных с App Designer, порождая ROI в UIAxes. Необходимо явным образом задать UIAxes при вызывании функции создания ROI как входной параметр или использовании 'Parent' пара имя/значение. Существует несколько ограничений при использовании ROI в приложениях таким образом:

  • Курсор мыши не обновляется, когда вы наводите на ROI. Курсор всегда является стрелой.

  • ROI не изменяет цвет, когда вы наводите на него.

  • Контекстное меню ROI (UIContextMenu) не поддерживается.

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

  1. Создайте UIAxes. Когда вы вызываете uiaxes функция, это создает UIFigure автоматически.

    uax = uiaxes;

  2. Создайте ROI в UIAxes. Вызовите любую из функций создания ROI, таких как drawcircle, или классы ROI, такие как images.roi.Circle. Задайте UIAxes в качестве аргумента. Переместите курсор через оси и перетащите мышь, чтобы чертить ROI. Форма курсора не изменяется, когда используется с UIAxes.

    h = drawcircle(uax);

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

Связанные примеры

Больше о