roipoly

Задайте многоугольную видимую область (ROI)

Описание

Создайте многоугольник в интерактивном режиме

BW = roipoly создает интерактивный инструмент многоугольника, сопоставленный с изображением, отображенным в текущей фигуре. roipoly возвращает маску как бинарное изображение, устанавливая пиксели в ROI к 1 и пиксели вне ROI к 0.

С этим синтаксисом и другими интерактивными синтаксисами, инструмент выбора многоугольника блокирует MATLAB® командная строка, пока вы не завершаете операцию. Для получения дополнительной информации об использовании инструмента выбора многоугольника смотрите Интерактивное Поведение.

BW = roipoly(I) отображает шкалу полутонов, или RGB отображают I в окне рисунка и создает интерактивный инструмент выбора многоугольника, сопоставленный с изображением.

Создайте многоугольник путем определения вершин

пример

BW = roipoly(I,xi,yi) задает (x, y) координаты вершин многоугольника как (xi, yi).

BW = roipoly(xref,yref,I,xi,yi) задает координаты вершин многоугольника в системе мировой координаты, заданной xref и yref. Вершины многоугольника имеют (x, y) координирует xi и yi в этой системе координат.

Задайте дополнительные Выходные опции

[BW,xi2,yi2] = roipoly(___) также возвращает координаты вершин закрытого многоугольника, xi2 и yi2. Можно использовать входные параметры любого другого синтаксиса.

[xrefout,yrefout,BW,xi2,yi2] = roipoly(___) также возвращает пределы изображений в xrefout и yrefout.

roipoly(___) без выходных аргументов отображает получившийся рисунок маски в новом окне рисунка.

Примеры

свернуть все

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

I = imread('eight.tif');

Задайте вершины многоугольника маски.

c = [222 272 300 270 221 194];
r = [21 21 75 121 121 75];

Создайте бинарный рисунок маски.

BW = roipoly(I,c,r);

Отобразите оригинальное изображение и многоугольную маску.

imshow(I)

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

figure
imshow(BW)

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

Входные параметры

свернуть все

Шкала полутонов или RGB отображают в виде m-by-n числовую матрицу или m-by-n-by-3 числовой массив, соответственно.

x- вершин многоугольника в виде числового вектора из той же длины как yi. Если вы указываете, что изображение ограничивает в системе мировой координаты с помощью xref, затем xi находится в этой системе координат. В противном случае, xi находится в системе координат по умолчанию.

y- вершин многоугольника в виде числового вектора из той же длины как xi. Если вы указываете, что изображение ограничивает в системе мировой координаты с помощью yref, затем yi находится в этой системе координат. В противном случае, yi находится в системе координат по умолчанию.

Отобразите пределы в мировых координатах вдоль x - размерность в виде числового вектора с 2 элементами из формы [xmin xmax]. Значение xref устанавливает изображение XData.

Отобразите пределы в мировых координатах вдоль y - размерность в виде числового вектора с 2 элементами из формы [ymin ymax]. Значение yref устанавливает изображение YData.

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

свернуть все

Бинарное изображение, возвращенное как m-by-n логическая матрица.

Типы данных: логический

x- вершин закрытого многоугольника, возвращенного как числовой вектор из той же длины как yi2. Первый и последний элемент в векторе идентичен, так, чтобы многоугольник был закрыт. Если вы указываете, что изображение ограничивает в системе мировой координаты с помощью xref, затем xi2 находится в этой системе координат. В противном случае, xi2 находится в системе координат по умолчанию.

y- вершин закрытого многоугольника, возвращенного как числовой вектор из той же длины как xi2. Первый и последний элемент в векторе идентичен, так, чтобы многоугольник был закрыт. Если вы указываете, что изображение ограничивает в системе мировой координаты с помощью yref, затем yi2 находится в этой системе координат. В противном случае, yi2 находится в системе координат по умолчанию.

Отобразите пределы в мировых координатах вдоль x - размерность, возвращенная как числовой вектор с 2 элементами из формы [xmin xmax]. Если вы указываете, что изображение ограничивает в системе мировой координаты с помощью xref, затем xrefout равно xref. В противном случае, xrefout равно оригинальному изображению XData.

Отобразите пределы в мировых координатах вдоль y - размерность, возвращенная как числовой вектор с 2 элементами из формы [ymin ymax]. Если вы указываете, что изображение ограничивает в системе мировой координаты с помощью yref, затем yrefout равно yref. В противном случае, yrefout равно оригинальному изображению YData.

Больше о

свернуть все

Интерактивное поведение

Инструмент выбора многоугольника позволяет вам выбрать и настроить вершины многоугольника в интерактивном режиме с помощью мыши.

Когда инструмент многоугольника активен, изменения указателя в кресте нитей, когда вы перемещаете указатель через изображение на рисунке. Используя мышь, вы задаете область путем выбора вершин многоугольника. Можно переместить или изменить размер многоугольника с помощью мыши. По окончании расположив и измерив многоугольник, создаете маску путем двойного клика, или путем щелчка правой кнопкой в области и выбора Create mask из контекстного меню.

Фигура иллюстрирует многоугольник, заданный несколькими вершинами. Следующая таблица описывает все интерактивное поведение инструмента многоугольника.

Интерактивное поведениеОписание
Закрытие многоугольника. (Завершение необходимой области.)

Используйте любой из следующих механизмов:

  • Переместите указатель через начальную вершину многоугольника, который вы выбрали. Указатель превращается в круг. Щелкните любой кнопкой мыши.

  • Дважды кликните левую кнопку мыши. Это действие создает вершину в точке под указателем мыши и проводит прямую линию, соединяющую эту вершину с начальной вершиной.

  • Щелкните правой кнопкой по мыши. Это чертит линию, соединяя последнюю вершину, выбранную с начальной вершиной; это не создает новую вершину в точке под мышью.

Перемещение целого многоугольникаПереместите указатель в области. Указатель превращается в форму fleur. Перетащите многоугольник по изображению.
Удаление многоугольника

Нажмите Backspace, Escape или Delete, или щелкните правой кнопкой в области и выберите Cancel из контекстного меню.

Примечание: Если вы удаляете ROI, функция возвращает пустые значения.

Перемещение вершины. (Изменение необходимой области.)Переместите указатель через вершину. Указатель превращается в круг. Перетащите вершину к ее новой позиции.
Добавление новой вершины.Переместите указатель через ребро многоугольника и нажмите клавишу A. Указатель изменяет форму в. Щелкните левой кнопкой мыши, чтобы создать новую вершину в той точке на ребре.
Удаление вершины. (Изменение необходимой области.)Переместите указатель через вершину. Указатель превращается в круг. Щелкните правой кнопкой и выберите Delete vertex из контекстного меню. roipoly проводит новую прямую линию между двумя вершинами, которые были соседями удаленной вершины.
Изменение цвета многоугольникаПереместите указатель куда угодно в контуре области и щелкните правой кнопкой мыши. Выберите Set color из контекстного меню.
Получение координат вершин Переместите указатель в области. Щелкните правой кнопкой и выберите Copy position из контекстного меню, чтобы скопировать текущее положение в Буфер обмена. Положением является n-by-2 массив, содержащий x - и y - координаты каждой вершины, где n является количеством вершин.

Советы

  • roipoly всегда производит закрытый многоугольник. Если вы задаете входные положения вершины закрытого многоугольника (таким образом, что последняя пара координат идентична первой паре), то длина выходных векторов координаты равна заданному числу точек. Если заданные точки не описывают закрытый многоугольник, то roipoly добавляет конечная точка, имеющая те же координаты как первая точка. В этом случае длина выходных векторов координаты является одним большим, чем заданное число точек.

  • Для любого из roipoly синтаксисы, можно заменить входное изображение I с двумя аргументами, m и n, это задает размерности строки и столбца произвольного изображения. Например, эти команды создают 100 200 бинарную маску.

    c = [112 112 79 79];
    r = [37 66 66 37];
    BW = roipoly(100,200,c,r);
    

    Если вы задаете m и n с интерактивной формой roipoly, m- n черное изображение отображено. Используйте мышь, чтобы задать многоугольник в этом изображении.

Представлено до R2006a