imfill

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

Описание

пример

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

Опционально можно выполнить операцию заливки с помощью графического процессора (требует Parallel Computing Toolbox™).

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')

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

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

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

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

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

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

свернуть все

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

Пример: 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