regionfill

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

Описание

пример

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

пример

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

Примеры

свернуть все

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

I = imread('eight.tif');

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

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

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

J = regionfill(I,x,y);

Отобразите оригинальное изображение и заполненное изображение рядом друг с другом.

figure
subplot(1,2,1)
imshow(I)
title('Original image')
subplot(1,2,2)
imshow(J)
title('Image with one less coin')

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

I = imread('eight.tif');

Создайте рисунок маски, который касается всех монет.

mask = I < 200;

Заполните отверстия в рисунке маски.

mask = imfill(mask,'holes');

Удалите шум в рисунке маски.

mask = imerode(mask,strel('disk',10));
mask = imdilate(mask,strel('disk',20));

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

J = regionfill(I,mask);

Отобразите оригинальное изображение рядом с рисунком маски и заполненным изображением.

figure
subplot(1,3,1)
imshow(I)
title('Original image')
subplot(1,3,2)
imshow(mask)
title('Mask of pixels to fill')
subplot(1,3,3)
imshow(J)
title('Resulting 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.

Советы

  • regionfill не поддерживает интерактивный синтаксис что roifill поддержки, чтобы задать видимую область (ROI). Чтобы задать ROI в интерактивном режиме, используйте roipoly с regionfill.

Алгоритмы

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

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

| | | | | |

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