roifill

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

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

Описание

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

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

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

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 с 1s для пикселей, соответствующих интерполированной области I и 0s в другом месте.

[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 | logical

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