exponenta event banner

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. 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-на-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.

Подробнее

свернуть все

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

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

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

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

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

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

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

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

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

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

Нажмите клавишу Backspace, Escape или Delete или щелкните правой кнопкой мыши внутри области и выберите в контекстном меню команду «Отмена».

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

Перемещение вершины. (Изменение формы региона интересов.)Наведите указатель на вершину. Указатель изменяется на круг. Щелкните и перетащите вершину в новое положение.
Добавление новой вершины.Наведите указатель на край многоугольника и нажмите клавишу A. Указатель изменяет форму на. Щелкните левой кнопкой мыши, чтобы создать новую вершину в этой точке кромки.
Удаление вершины. (Изменение формы региона интересов.)Наведите указатель на вершину. Указатель изменяется на круг. Щелкните правой кнопкой мыши и выберите в контекстном меню команду «Удалить вершину». roipoly рисует новую прямую линию между двумя вершинами, которые были соседями удаленной вершины.
Изменение цвета многоугольникаПереместите указатель в любую точку границы области и щелкните правой кнопкой мыши. В контекстном меню выберите «Задать цвет».
Получение координат вершин Переместите указатель внутрь области. Щелкните правой кнопкой мыши и выберите «Копировать положение» в контекстном меню, чтобы скопировать текущее положение в буфер обмена. Позиция представляет собой массив n-by-2, содержащий координаты x и y каждой вершины, где n - число вершин.

Совет

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

  • Для любого из roipoly syntaxes, можно заменить входное изображение 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