roifill

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

roifill не рекомендуется. Используйте regionfill вместо этого. Если вы хотите задать полигон в интерактивном режиме, то используйте roipoly с regionfill.

Используйте функцию roifill, чтобы заполнить заданный полигон видимой области (ROI) в полутоновом изображении. roifill гладко интерполирует внутрь от пиксельных значений на контуре полигона путем решения уравнения Лапласа. Граничные пиксели не изменяются. roifill может использоваться, например, чтобы стереть объекты в изображении.

Синтаксис

J = roifill
J = roifill(I)
J = roifill(I,mask)
J = roifill(I,xi,yi)
J = roifill(x,y,I,xi,yi)
[J,BW] = roifill(___)
[x2,y2,J,BW,xi2,yi2] = roifill(___)
roifill()

Описание

J = roifill создает интерактивный инструмент выбора полигона, сопоставленный с изображением, отображенным в текущей фигуре. С этим синтаксисом и другими интерактивными синтаксисами, инструмент выбора полигона блокирует командную строку MATLAB®, пока вы не завершаете операцию. roifill заполняет выбранный полигон и возвращает заполненное изображение, J.

Для получения дополнительной информации об использовании инструмента выбора полигона, чтобы задать и заполнить КОРОЛЕЙ, смотрите Интерактивное Поведение.

J = roifill(I) отображает изображение I в окне рисунка и создает интерактивный инструмент полигона, сопоставленный с изображением.

J = roifill(I,mask) области заливок в I, соответствующем ненулевым пикселям в маске. Если существует несколько областей, то roifill выполняет интерполяцию на каждой области независимо.

пример

J = roifill(I,xi,yi) заполняет полигон с вершинами, заданными координатами X-Y xi и yi в системе пространственной координаты по умолчанию.

J = roifill(x,y,I,xi,yi) задает систему пространственной координаты не по умолчанию с помощью векторов x и y. Вершины полигона имеют, координирует xi и yi в этой системе координат.

[J,BW] = roifill(___) возвращает двухуровневое изображение BW с 1 s для пикселей, соответствующих интерполированной области I и 0 s в другое место.

[x2,y2,J,BW,xi2,yi2] = roifill(___) также возвращает изображение XData и YData в x2 и y2 и координатах полигона в xi2 и yi2.

roifill() без выходного аргумента отображает заполненное изображение в новом окне рисунка.

Примеры

Заполните область Используя roifill

Этот пример использует roifill, чтобы заполнить область во входном изображении, I. Для большего количества примеров, особенно интерактивных синтаксисов, смотрите видимую область Заливки в Изображении.

I = imread('eight.tif');
c = [222 272 300 270 221 194];
r = [21 21 75 121 121 75];
J = roifill(I,c,r);
imshow(I)
figure
imshow(J)

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

свернуть все

Полутоновое изображение, заданное как числовая матрица.

Типы данных: single | double | int16 | uint8 | uint16

Маска, заданная как числовая или логическая матрица, одного размера как входное изображение, I.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический

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

Отобразите степень в мировых координатах X-Y, заданных как числовой вектор с 2 элементами формы [min max]. Два элемента x дают x-координаты (горизонталь) первых и последних столбцов изображения I, соответственно. Два элемента y дают y-координаты (вертикальные) из первых и последних строк I.

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

свернуть все

Заполненное изображение, возвращенное как числовая матрица.

Типы данных: single | double | int16 | uint8 | uint16

Двухуровневое изображение, возвращенное как логическая матрица, одного размера как входное изображение, I.

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

x - или y - координата вершин полигона, заданных как числовые векторы. xi и yi пусты, если вы задаете ROI полигона с помощью аргумента mask.

Отобразите степень в мировых координатах X-Y, возвращенных как числовые векторы с 2 элементами формы [min max]. Если вы указываете, что изображение ограничивает x и y, то x2 и y2 равны этим значениям. В противном случае x2 и y2 равны оригинальному изображению XData и YData.

Больше о

свернуть все

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

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

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

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

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

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

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

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

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

Удаление полигона

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

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

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

Смотрите также

| | | |

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