regionfill

Заполните заданные области в изображении с помощью входящей интерполяции

Описание

пример

J = regionfill(I,mask) заполняет области в изображении I заданный mask. Ненулевые пиксели в mask назовите пиксели изображения I заполнять. Можно использовать regionfill удалить объекты в изображении или заменить недопустимые пиксельные значения с помощью их соседей.

пример

J = regionfill(I,x,y) заполняет область в изображении I соответствие многоугольнику с вершинами, заданными x и y.

Примеры

свернуть все

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

I = imread('eight.tif');
imshow(I)

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

Задайте x-и y-координаты многоугольника, который полностью окружает одну из монет в изображении.

x = [222 272 300 270 221 194];
y = [21 21 75 121 121 75];

Заполните многоугольник при помощи regionfill функция.

J = regionfill(I,x,y);

Отобразите заполненное изображение.

imshow(J)
title('Filled Image with One Fewer Coin')

Figure contains an axes. The axes with title Filled Image with One Fewer Coin contains an object of type image.

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

I = imread('eight.tif');
imshow(I)

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

Задайте вершины ROI многоугольника, который полностью окружает две из монет при помощи drawpolygon функция. Задайте аргумент пары "имя-значение" 'Position' как x-координаты и y-координаты вершин многоугольника. Если вы хотите чертить многоугольник в интерактивном режиме, то не используйте аргумент пары "имя-значение" 'Position'.

x = [68 296 296 113 68];
y = [12 12 120 120 66];
roi = drawpolygon(gca,'Position',[x;y]');

Figure contains an axes. The axes contains 2 objects of type image, images.roi.polygon.

Создайте рисунок маски, в котором ROI является true и фоном является false. Отобразите маску.

mask = createMask(roi);
imshow(mask)

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

Заполните области во входном изображении с помощью рисунка маски. Отобразите заполненное изображение.

J = regionfill(I,mask);
imshow(J)

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

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

свернуть все

Полутоновое изображение в виде 2D числовой матрицы размера, больше, чем или равный 3х3.

Пример: I = imread('eight.tif');

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

Бинарное изображение маски в виде логического массива одного размера с I.

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

X-координаты вершин многоугольника в виде числового вектора. Длина x должна быть та же длина как y.

Пример: x = [222 272 300 270 221 194];

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

Y-координаты вершин многоугольника в виде числового вектора. Длина x должна быть та же длина как y.

Пример: y = [21 21 75 121 121 75];

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

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

свернуть все

Заполненное полутоновое изображение, возвращенное как 2D числовой массив. J имеет тот же размер и класс как I.

Советы

  • В интерактивном режиме создать маску ROI mask, можно использовать roipoly функционируйте или drawpolygon функция, сопровождаемая createMask.

Алгоритмы

regionfill гладко интерполирует внутрь от пиксельных значений на внешней границе областей. regionfill вычисляет дискретный Лапласиан по областям и решает краевую задачу Дирихле.

Представленный в R2015a