roipoly

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

Описание

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

BW = roipoly создает интерактивный полигональный инструмент, сопоставленный с изображением, отображаемым на текущей фигуре. roipoly возвращает маску как бинарное изображение, задавая пиксели внутри информация только для чтения равными 1 и пиксели за пределами информация только для чтения, чтобы 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. The axes contains an object of type image.

figure
imshow(BW)

Figure contains an axes. The axes 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 логическая матрица.

Типы данных: logical

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 из контекстного меню.

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

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

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

  • Наведите указатель мыши на начальную вершину выбранного многоугольника. Указатель изменяется на круг. Нажмите любую из кнопок мыши.

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

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

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

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

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

Перемещение вершины. (Изменение структуры необходимой области.)Наведите указатель мыши на вершину. Указатель изменяется на круг. Щелкните и перетащите вершину в новое положение.
Добавление новой вершины.Переместите указатель мыши на ребро многоугольника и нажмите клавишу 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, an m-by- n отображается черное изображение. Используйте мышь, чтобы задать многоугольник в этом изображении.

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