imreconstruct

Морфологическая реконструкция

Описание

пример

J = imreconstruct(marker,mask) выполняет морфологическую реконструкцию изображения marker под изображением mask, и возвращает реконструкцию в J. Элементы marker должно быть меньше чем или равно соответствующим элементам mask. Если значения в marker больше соответствующих элементов в mask, затем imreconstruct отсекает значения к mask уровень прежде, чем запустить процедуру.

J = imreconstruct(marker,mask,conn) выполняет морфологическую реконструкцию с заданной возможностью соединения, conn.

Примеры

свернуть все

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

I = imread('snowflakes.png');
imshow(I)

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

Настройте контраст изображения, чтобы создать рисунок маски и отобразить результаты.

mask = adapthisteq(I);
imshow(mask)

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

Создайте изображение маркера, которое идентифицирует объекты высокой интенсивности в изображении с помощью морфологической эрозии, и отобразите результаты.

se = strel('disk',5);
marker = imerode(mask,se);
imshow(marker)

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

Выполните морфологическое открытие на рисунке маски, с помощью изображения маркера, чтобы идентифицировать объекты высокой интенсивности в маске. Отобразите результат.

obr = imreconstruct(marker,mask);
imshow(obr,[])

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

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

mask = imread('text.png');
figure
imshow(mask)

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

Создайте изображение маркера, которое идентифицирует объект в изображении, которое вы хотите извлечь посредством сегментации. В данном примере идентифицируйте "w" в слове "водораздел".

marker = false(size(mask));
marker(13,94) = true;

Выполните сегментацию рисунка маски с помощью изображения маркера.

im = imreconstruct(marker,mask);
figure
imshow(im)

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

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

свернуть все

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

Пример: se = strel('disk',5); marker = imerode(mask,se);

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

Рисунок маски в виде числового или логического массива, одного размера и тип данных как marker.

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

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

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

Значение

Значение

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

4

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

8

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

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

6

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

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

18

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

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

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

26

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

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

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

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

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

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

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

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

свернуть все

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

Советы

  • Морфологическая реконструкция является алгоритмическим базисом для нескольких других функций Image Processing Toolbox™, включая imclearborder, imextendedmax, imextendedmin, imfill, imhmax, imhmin, и imimposemin.

  • Performance note: Эта функция может использовать в своих интересах аппаратную оптимизацию для типов данных logicaluint8uint16единственный, и double запускаться быстрее. Аппаратная оптимизация требует marker и mask быть 2D изображениями и conn быть любой 4 или 8.

Алгоритмы

imreconstruct использует быстрый гибридный полутоновый алгоритм реконструкции, описанный в [1].

Ссылки

[1] Винсент, L., "Морфологическая Полутоновая Реконструкция в Анализе изображения: Приложения и Эффективные Алгоритмы", Транзакции IEEE на Обработке изображений, Издании 2, № 2, апрель 1993, стр 176-201.

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

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