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. The axes contains an object of type image.

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

mask = adapthisteq(I);
imshow(mask)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Figure contains an axes. The axes 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 для 2-D изображений и 26 для 3-D изображений.

Значение

Значение

Двумерные связи

4-соединенный

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

8-соединенный

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

Трехмерные связи

6-соединенный

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

  • Одно из следующих направлений: в, вне, слева, справа, вверх и вниз

18-соединенный

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

  • Одно из следующих направлений: в, вне, слева, справа, вверх и вниз

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

26-соединенный

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

  • Одно из следующих направлений: в, вне, слева, справа, вверх и вниз

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

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

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

Связь также может быть определена более общим образом для любой размерности путем определения 3х3-бай-... -by-3 матрица 0s и 1с. The 1-значенные элементы определяют местоположения окрестностей относительно центрального элемента conn. Обратите внимание, что conn должно быть симметричным относительно его центрального элемента. Дополнительные сведения см. в разделе «Определение пользовательских соединений».

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

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

свернуть все

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

Совет

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

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

Алгоритмы

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

Ссылки

[1] Vincent, L., «Morphological Grayscale Reconstruction in Image Analysis: Applications and Effective Algorithms», IEEE Transactions on Image Processing, Vol. 2, No2, April, 1993, pp. 176-201.

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

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