exponenta event banner

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» в слове «водораздел».

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-подключенных

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

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

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

26-подключенных

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

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

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

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

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

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

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

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

свернуть все

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

Совет

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

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

Алгоритмы

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

Ссылки

[1] Винсент, Л., «Морфологическая реконструкция в градациях серого в анализе изображений: приложения и эффективные алгоритмы», IEEE Transactions on Image Processing, Vol. 2, No. 2, April, 1993, pp. 176-201.

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

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