Морфологическая реконструкция может считаться концептуально повторными расширениями изображения, названного marker image, до контура подгонок маркера изображений под вторым изображением, названным mask image. В морфологической реконструкции peaks в изображении маркера “распространяется” или расширяет.
Этот рисунок иллюстрирует эту обработку в 1D. Каждое последовательное расширение ограничивается лечь под маской. Когда дальнейшее расширение прекращает изменять изображение, обрабатывая остановки. Итоговое расширение является восстановленным изображением. (Примечание: фактическая реализация этой операции в тулбоксе сделана намного более эффективно. Смотрите imreconstruct
страница с описанием для получения дополнительной информации.) Рисунок показывает последовательные расширения маркера.
Повторные расширения изображения маркера, ограниченного маской
Морфологическая реконструкция основана на морфологическом расширении, но отметьте следующие уникальные свойства:
Обработка основана на двух изображениях, маркере и маске, а не одном изображении и элементе структурирования.
Обработка основана на концепции пиксельной возможности соединения, а не элементе структурирования.
При обработке повторений, пока изображение не устойчиво и больше не изменяется.
Морфологическая реконструкция обрабатывает одно изображение, названное маркером, на основе характеристик другого изображения, названного маской. Звездные часы или peaks, в изображении маркера задают, где обработка начинается. Обработка продолжается, пока значения изображений не прекращают изменяться.
Чтобы проиллюстрировать морфологическую реконструкцию, рассмотрите это простое изображение. Это содержит две первичных области, блоки пикселей, содержащих значения 14
и 18
. Фон, в основном, все установлен в 10
, с некоторым пиксельным набором к 11
.
Чтобы морфологически восстановить это изображение, выполните эти шаги:
Создайте изображение маркера. Как с элементом структурирования в расширении и эрозии, характеристики изображения маркера определяют обработку, выполняемую в морфологической реконструкции. Peaks в изображении маркера должен идентифицировать местоположение объектов в рисунке маски, который вы хотите подчеркнуть.
Один способ создать изображение маркера состоит в том, чтобы вычесть константу из рисунка маски, с помощью imsubtract
.
marker = imsubtract(A,2) marker = 8 8 8 8 8 8 8 8 8 8 8 12 12 12 8 8 9 8 9 8 8 12 12 12 8 8 8 9 8 8 8 12 12 12 8 8 9 8 9 8 8 8 8 8 8 8 8 8 8 8 8 9 8 8 8 16 16 16 8 8 8 8 8 9 8 16 16 16 8 8 8 8 9 8 8 16 16 16 8 8 8 9 8 9 8 8 8 8 8 8 8 8 8 8 8 8 9 8 8 8
Вызовите imreconstruct
функционируйте, чтобы морфологически восстановить изображение. В выходном изображении отметьте, как все колебания интенсивности кроме пика интенсивности были удалены.
recon = imreconstruct(marker, mask)
Полутоновые изображения могут думаться в трех измерениях: x-и оси Y представляют положения пикселя, и ось z представляет интенсивность каждого пикселя. В этой интерпретации значения интенсивности представляют вертикальные изменения, как в топографической карте. Областями высокой интенсивности и низкой интенсивности в изображении, peaks и оврагах в топографических терминах, могут быть важные морфологические функции, потому что они часто отмечают соответствующие объекты изображения.
Например, в изображении нескольких сферических объектов, точки высокой интенсивности могли представлять верхние части объектов. Используя морфологическую обработку, эти максимумы могут использоваться, чтобы идентифицировать объекты в изображении.
Этот раздел затрагивает эти темы:
Этот раздел использует следующие термины.
Термин | Определение |
---|---|
глобальные максимумы | Самые высокие региональные максимумы в изображении. Смотрите запись для региональных максимумов в этой таблице для получения дополнительной информации. |
глобальные минимумы | Самые низкие региональные минимумы в изображении. Смотрите запись для региональных минимумов в этой таблице для получения дополнительной информации. |
региональные максимумы | Связанный набор пикселей постоянной интенсивности, от которой невозможно достигнуть точки с более высокой интенсивностью без первого убывания; то есть, связанный компонент пикселей с тем же значением интенсивности, t, окруженный пикселями, что у всех есть значение меньше, чем t. |
региональные минимумы | Связанный набор пикселей постоянной интенсивности, от которой невозможно достигнуть точки с более низкой интенсивностью без первого возрастания; то есть, связанный компонент пикселей с тем же значением интенсивности, t, окруженный пикселями, что у всех есть значение, больше, чем t. |
Изображение может иметь несколько региональных максимумов или минимумов, но только один глобальный максимум или минимум. Определение peaks изображений или оврагов может использоваться, чтобы создать изображения маркера, которые используются в морфологической реконструкции.
Этот рисунок иллюстрирует концепцию в 1D.
Тулбокс включает функции, которые можно использовать, чтобы найти области высокой или низкой интенсивности в изображении:
imregionalmax
и imregionalmin
функции идентифицируют все региональные минимумы или максимумы.
imextendedmax
и imextendedmin
функции идентифицируют региональные минимумы или максимумы, которые больше или меньше, чем заданный порог.
Функции принимают полутоновое изображение как вход и возвращают бинарное изображение, как выведено. В выходном бинарном изображении региональные минимумы или максимумы установлены в 1
; все другие пиксели установлены в 0
.
Например, это простое изображение содержит два первичных региональных максимума, блоки пикселей, содержащих значение 13
и 18
, и несколько меньших максимумов, набора к 11
.
Бинарное изображение возвращено imregionalmax
точки все эти региональные максимумы.
B = imregionalmax(A)
Вы можете хотеть только идентифицировать области изображения, где изменение в интенсивности является экстремальным значением; то есть, различие между пикселем и соседними пикселями больше (или меньше, чем) определенного порога. Например, чтобы найти только те региональные максимумы в демонстрационном изображении, A
, это - по крайней мере два модуля выше, чем их соседи, использует imextendedmax
.
B = imextendedmax(A,2)
В изображении каждое маленькое колебание интенсивности представляет региональный минимум или максимум. Вы можете только интересоваться значительными минимумами или максимумами а не этими меньшими минимумами и максимумами, вызванными фоновой структурой.
Чтобы удалить менее значительные минимумы и максимумы, но сохранить значительные минимумы и максимумы, используйте imhmax
или imhmin
функция. С этими функциями можно задать контрастные критерии или пороговый уровень, h, который подавляет все максимумы, высота которых меньше h или чьи минимумы больше h.
Примечание
imregionalmin
, imregionalmax
, imextendedmin
, и imextendedmax
функции возвращают бинарное изображение, которое отмечает местоположения региональных минимумов и максимумов в изображении. imhmax
и imhmin
функции производят измененное изображение.
Например, это простое изображение содержит два первичных региональных максимума, блоки пикселей, содержащих значение 14
и 18
, и несколько меньших максимумов, набора к 11
.
Чтобы устранить все региональные максимумы кроме двух значительных максимумов, используйте imhmax
, определение порогового значения 2
. Обратите внимание на то, что imhmax
только влияет на максимумы; ни одно из других пиксельных значений не изменяется. Два значительных максимума остаются, несмотря на то, что их высоты уменьшаются.
B = imhmax(A,2)
Этот рисунок берет вторую строку из демонстрационного изображения, чтобы проиллюстрировать в 1D как imhmax
изменяет профиль изображения.
Можно подчеркнуть определенные минимумы (темные объекты) в изображении с помощью imimposemin
функция. imimposemin
функционируйте использует морфологическую реконструкцию, чтобы устранить все минимумы из изображения кроме минимумов, которые вы задаете.
Чтобы проиллюстрировать процесс наложения минимума, этот код создает простое изображение, содержащее два первичных региональных минимума и несколько других региональных минимумов.
mask = uint8(10*ones(10,10)); mask(6:8,6:8) = 2; mask(2:4,2:4) = 7; mask(3,3) = 5; mask(2,9) = 9; mask(3,8) = 9; mask(9,2) = 9; mask(8,3) = 9
Чтобы получить изображение, которое подчеркивает два самых глубоких минимума и удаляет всех других, создайте изображение маркера, которое точно определяет два минимума интереса. Можно создать изображение маркера, явным образом установив определенные пиксели на определенные значения или при помощи других морфологических функций извлекать функции, которые вы хотите подчеркнуть в рисунке маски.
Этот пример использует imextendedmin
получить бинарное изображение, которое показывает местоположения двух самых глубоких минимумов.
marker = imextendedmin(mask,1)
Теперь используйте imimposemin
создать новые минимумы в рисунке маски в точках, заданных изображением маркера. Отметьте как imimposemin
устанавливает значения пикселей, заданных изображением маркера к самому низкому значению, поддержанному, по условию вводят (0
для uint8
значения. imimposemin
также изменяет значения всех других пикселей в изображении, чтобы устранить другие минимумы.
I = imimposemin(mask,marker) I = 11 11 11 11 11 11 11 11 11 11 11 8 8 8 11 11 11 11 11 11 11 8 0 8 11 11 11 11 11 11 11 8 8 8 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 0 0 0 11 11 11 11 11 11 11 0 0 0 11 11 11 11 11 11 11 0 0 0 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11
Этот рисунок иллюстрирует в 1D как imimposemin
изменяет профиль строки 2 изображения.
Наложение минимума