bwmorph

Морфологические операции на бинарных изображениях

Описание

пример

BW2 = bwmorph(BW,operation) применяет определенную морфологическую операцию к бинарному изображению BW.

Примечание

Чтобы выполнить морфологические операции на 3-D объемном изображении, использовать bwmorph3.

BW2 = bwmorph(BW,operation,n) применяет операцию n \times. n может быть Inf, в этом случае операция повторяется, пока изображение больше не изменяется.

Примеры

свернуть все

Считайте бинарное изображение и отобразите его.

BW = imread('circles.png');
imshow(BW);

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

Удалите внутренние пиксели, чтобы оставить схему форм.

BW2 = bwmorph(BW,'remove');
figure
imshow(BW2)

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

Получите скелет изображений.

BW3 = bwmorph(BW,'skel',Inf);
figure
imshow(BW3)

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

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

свернуть все

Бинарное изображение в виде 2D числовой матрицы или 2D логической матрицы. Для числового входа любые ненулевые пиксели считаются 1 TRUE).

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

Морфологическая операция, чтобы выполнить в виде одного из следующих.

Операция

Описание

'bothat'

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

bwmorph функция выполняет морфологическое закрытие с помощью окружения ones(3). Если вы хотите выполнить морфологическую нижнюю операцию шляпы с различным окружением, то используйте imbothat функция.

'branchpoints'

Найдите точки разветвления скелета. Например:

0  0  1  0  0           0  0  0  0  0
0  0  1  0  0           0  0  0  0  0
1  1  1  1  1  becomes  0  0  1  0  0
0  0  1  0  0           0  0  0  0  0
0  0  1  0  0           0  0  0  0  0

Примечание: Чтобы найти точки разветвления, изображение должно быть skeletonized. Чтобы создать изображение skeletonized, используйте bwmorph(BW,'skel').

'bridge'

Соедините несвязанные пиксели, то есть, 0 наборов- ценные пиксели к 1 если у них есть два ненулевых соседа, которые не соединяются. Например:

1  0  0           1  1  0 
1  0  1  becomes  1  1  1 
0  0  1           0  1  1

'clean'

Удалите изолированные пиксели (отдельный 1s, которые окружаются 0s), такие как центральный пиксель в этом шаблоне.

0  0  0 
0  1  0 
0  0  0

'close'

Выполните морфологическое закрытие (расширение, сопровождаемое эрозией).

bwmorph функция выполняет морфологическое закрытие с помощью окружения ones(3). Если вы хотите выполнить морфологическую заключительную операцию с различным окружением, то используйте imclose функция.

'diag'

Используйте диагональную заливку, чтобы устранить с 8 возможностями соединения из фона. Например:

0  1  0           0  1  0 
1  0  0  becomes  1  1  0 
0  0  0           0  0  0

'endpoints'

Найдите конечные точки скелета. Например:

1  0  0  0           1  0  0  0
0  1  0  0  becomes  0  0  0  0
0  0  1  0           0  0  1  0
0  0  0  0           0  0  0  0

Примечание: Чтобы найти конечные точки, изображение должно быть skeletonized. Чтобы создать изображение skeletonized, используйте bwmorph(BW,'skel').

'fill'

Заполните изолированные внутренние пиксели (отдельный 0s, которые окружаются 1s), такие как центральный пиксель в этом шаблоне.

1  1  1 
1  0  1 
1  1  1

'hbreak'

Удалите пиксели H-connected. Например:

1  1  1           1  1  1 
0  1  0  becomes  0  0  0 
1  1  1           1  1  1

'majority'

Установите пиксель на 1 если пятью или больше пикселями в его 3х3 окружении является 1; в противном случае установите пиксель на 0.

'open'

Выполните морфологическое открытие (эрозия, сопровождаемая расширением).

bwmorph функция выполняет морфологическое открытие с помощью окружения ones(3). Если вы хотите выполнить морфологическую вводную операцию с различным окружением, то используйте imopen функция.

'remove'

Удалите внутренние пиксели. Эта опция устанавливает пиксель на 0 если всеми его связанными с 4 соседями является 1, таким образом оставляя только граничные пиксели на.

'shrink'

С n = Inf, уменьшите объекты к точкам путем удаления пикселей из контуров объектов. Объекты без отверстий уменьшаются к точке и объектам с уменьшением отверстий к связанному звонку на полпути между каждым отверстием и внешней границей. Эта опция сохраняет Число Эйлера (также известный как Эйлеровую характеристику).

'skel'

С n = Inf, удалите пиксели на контурах объектов, не позволяя объектам разбиться. Остающиеся пиксели составляют скелет изображений. Эта опция сохраняет Число Эйлера.

Когда работа с 3-D объемами, или, когда это необходимо, сократить скелет, использует bwskel функция.

'spur'

Удалите цилиндрические пиксели. Например:

0  0  0  0           0  0  0  0
0  0  0  0           0  0  0  0
0  0  1  0  becomes  0  0  0  0
0  1  0  0           0  1  0  0
1  1  0  0           1  1  0  0

'thicken'

С n = Inf, утолстите объекты путем добавления, что пиксели к внешнему виду объектов до выполнения так привели бы к ранее несвязанным объектам, являющимся связанным с 8. Эта опция сохраняет Число Эйлера.

'thin'

С n = Inf, тонкие объекты к линиям путем удаления пикселей из контура объектов. Объект без отверстий уменьшается к минимально связанному диапазону и объекту с уменьшениями отверстий к связанному звонку на полпути между каждым отверстием и внешней границей. Эта опция сохраняет Число Эйлера. См. Алгоритмы для большего количества детали.

'tophat'

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

bwmorph функция выполняет морфологическое открытие с помощью окружения ones(3). Если вы хотите выполнить морфологическую операцию цилиндра с различным окружением, то используйте imtophat функция.

Совет

Чтобы выполнить морфологическую эрозию или расширение, используйте imerode или imdilate функция, соответственно. Если вы хотите реплицировать расширение или эрозию, выполняемую bwmorph функция, затем задайте окружение как ones(3).

Типы данных: char | string

Число раз, чтобы выполнить операцию в виде положительного целого числа или Inf. Когда вы задаете n как Inf, bwmorph функционируйте повторяет операцию, пока изображение больше не изменяется.

Пример: 100

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

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

свернуть все

Отобразите после морфологических операций, возвращенных как 2D логическая матрица.

Типы данных: логический

Алгоритмы

свернуть все

Когда используется с 'thin' опция, bwmorph использует следующий алгоритм [3]:

  1. В первой подытерации удалите пиксель p, если и только если условиям G1, G2 и G3 все удовлетворяют.

  2. Во второй подытерации удалите пиксель p если и только если условия G1, G2, и G3 все удовлетворены.

Условие G1:

XH(p)=1

где

XH(p)=i=14bi

bi={1, если x2i1=0 и (x2i=1 или x2i+1=1)0, в противном случае                                          

x1, x2..., x8 являются значениями восьми соседей p, начиная с восточного соседа и пронумерованный в против часовой стрелки порядке.

Условие G2:

2min{n1(p),n2(p)}3

где

n1(p)=k=14x2k1x2k

n2(p)=k=14x2kx2k+1

Условие G3:

(x2x3x¯8)x1=0

Условие G3':

(x6x7x¯4)x5=0

Эти две подытерации вместе составляют одну итерацию утончающегося алгоритма. Когда пользователь задает бесконечное число итераций (n=Inf), итерации повторяются, пока изображение не прекращает изменяться. Условия все тестируются с помощью applylut с предварительно вычисленными интерполяционными таблицами.

Ссылки

[1] Haralick, Роберт М., и Линда Г. Шапиро, компьютер и видение робота, издание 1, Аддисон-Уэсли, 1992.

[2] Кун, Т. Юнг и Азрил Розенфельд, топологические алгоритмы для цифровой обработки изображений, Elsevier Science, Inc., 1996.

[3] Убегите, L., Сен-Вхань Ли и Чин И. Суэнь, "Разбавляя Методологии-A Всесторонний Обзор", Транзакции IEEE согласно Анализу Шаблона и Искусственному интеллекту, Vol 14, № 9, сентябрь 1992, страница 879, нижняя часть первого столбца через верхнюю часть второго столбца.

[4] Пратт, Уильям К., цифровая обработка изображений, John Wiley & Sons, Inc., 1991.

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

Представлено до R2006a
Для просмотра документации необходимо авторизоваться на сайте