imfill

Заполните области изображений и отверстия

Описание

пример

BW2 = imfill(BW,locations) выполняет операцию заливки на фоновых пикселях входного бинарного изображения BW, запуск с точек задан в locations.

BW2 = imfill(BW,locations,conn) заполняет область, заданную locations, где conn задает возможность соединения.

пример

BW2 = imfill(BW,'holes') отверстия заливок во входном бинарном изображении BW. В этом синтаксисе отверстие является набором фоновых пикселей, которые не могут быть достигнуты путем заполнения в фоновом режиме от ребра изображения.

пример

BW2 = imfill(BW,conn,'holes') отверстия заливок в бинарном изображении BW, где conn задает возможность соединения.

пример

I2 = imfill(I) отверстия заливок в полутоновом изображении I. В этом синтаксисе отверстие задано как область темных пикселей, окруженных более легкими пикселями.

пример

I2 = imfill(I,conn) отверстия заливок в полутоновом изображении I, где conn задает возможность соединения.

BW2 = imfill(BW) отображает бинарное изображение BW на экране и позволяет вам задать область, чтобы заполнить путем выбора точек в интерактивном режиме с мышью. Использовать этот синтаксис, BW должно быть 2D изображение.

Нажмите Backspace или Delete, чтобы удалить ранее выбранную точку. Щелкните при нажатой клавише Shift, щелкните правой кнопкой или дважды кликните, чтобы выбрать конечную точку и запустить операцию заполнения. Нажмите Return, чтобы закончить выбор, не добавляя точку.

BW2 = imfill(BW,0,conn) позволяет вам заменить возможность соединения по умолчанию, когда вы в интерактивном режиме задаете местоположения.

[BW2, locations_out] = imfill(BW) возвращает местоположения точек, выбранных в интерактивном режиме в locations_out. Использовать этот синтаксис, BW должно быть 2D изображение.

Примеры

свернуть все

BW1 = logical([1 0 0 0 0 0 0 0
               1 1 1 1 1 0 0 0
               1 0 0 0 1 0 1 0
               1 0 0 0 1 1 1 0
               1 1 1 1 0 1 1 1
               1 0 0 1 1 0 1 0
               1 0 0 0 1 0 1 0
               1 0 0 0 1 1 1 0]);

BW2 = imfill(BW1,[3 3],8)
BW2 = 8x8 logical array

   1   0   0   0   0   0   0   0
   1   1   1   1   1   0   0   0
   1   1   1   1   1   0   1   0
   1   1   1   1   1   1   1   0
   1   1   1   1   1   1   1   1
   1   0   0   1   1   1   1   0
   1   0   0   0   1   1   1   0
   1   0   0   0   1   1   1   0

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

I = imread('coins.png');
figure
imshow(I)
title('Original Image')

Figure contains an axes object. The axes object with title Original Image contains an object of type image.

Преобразуйте изображение в бинарное изображение.

BW = imbinarize(I);
figure
imshow(BW)
title('Original Image Converted to Binary Image')

Figure contains an axes object. The axes object with title Original Image Converted to Binary Image contains an object of type image.

Заполните отверстия в бинарном изображении и отобразите результат.

BW2 = imfill(BW,'holes');
figure
imshow(BW2)
title('Filled Image')

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

I = imread('tire.tif');
I2 = imfill(I);
figure, imshow(I), figure, imshow(I2)

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

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

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

свернуть все

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

Пример: BW = imread('text.png');

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

Линейные индексы, идентифицирующие пиксельные местоположения в виде числового вектора или 2D числовой матрицы положительных целых чисел. Если locations p-by-1 вектор, затем он содержит линейные индексы стартовых местоположений. Если locations p-by-ndims(BW) матрица, затем каждая строка содержит индексы массива одного из стартовых местоположений.

Пример: [3 3]

Типы данных: double

Полутоновое изображение в виде числового массива любой размерности.

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

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

Пиксельная возможность соединения в виде одного из значений в этой таблице. Возможностью соединения по умолчанию является 4 для 2D изображений и 6 для 3-D изображений.

Значение

Значение

Двумерные возможности соединения

4

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

8

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

3D возможности соединения

6

Пиксели соединяются, если их поверхности затрагивают. Окружение пикселя является смежными пикселями в:

  • Одно из этих направлений: в, левый, правильный, и вниз

18

Пиксели соединяются, если их поверхности или ребра затрагивают. Окружение пикселя является смежными пикселями в:

  • Одно из этих направлений: в, левый, правильный, и вниз

  • Комбинация двух направлений, таких как право вниз или в -

26

Пиксели соединяются, если их поверхности, ребра или углы затрагивают. Окружение пикселя является смежными пикселями в:

  • Одно из этих направлений: в, левый, правильный, и вниз

  • Комбинация двух направлений, таких как право вниз или в -

  • Комбинация трех направлений, такой как "в праве" или "в сниженном"

Для более высоких размерностей, imfill использует значение по умолчанию conndef(ndims (BW), 'минимальный').

Возможность соединения может также быть задана более общим способом к любой размерности путем определения 3-by-3-by-... Матрица-by-3 0s и 1s. 1- ценные элементы задают местоположения окружения относительно центрального элемента conn. Обратите внимание на то, что conn должно быть симметричным о его центральном элементе. Смотрите Задающие Пользовательские Возможности соединения для получения дополнительной информации.

Типы данных: double | logical

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

свернуть все

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

Линейные индексы пиксельных местоположений, возвращенных как числовой вектор или матрица.

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

Алгоритмы

imfill использует алгоритм на основе морфологической реконструкции [1].

Ссылки

[1] Soille, P., Морфологический Анализ изображения: Принципы и Приложения, Springer-Verlag, 1999, стр 173–174.

Расширенные возможности

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

| | |

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