Морфологические операции на бинарных изображениях
Считайте бинарное изображение и отобразите его.
BW = imread('circles.png');
imshow(BW);
Удалите внутренние пиксели, чтобы оставить схему форм.
BW2 = bwmorph(BW,'remove');
figure
imshow(BW2)
Получите скелет изображений.
BW3 = bwmorph(BW,'skel',Inf);
figure
imshow(BW3)
BW
— Бинарное изображениеБинарное изображение в виде 2D числовой матрицы или 2D логической матрицы. Для числового входа любые ненулевые пиксели считаются 1
TRUE
).
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
operation
— Морфологическая операция, чтобы выполнитьМорфологическая операция, чтобы выполнить в виде одного из следующих.
Операция | Описание |
---|---|
| Выполните морфологическую нижнюю операцию шляпы, возвратив изображение минус морфологическое закрытие изображения. |
| Найдите точки разветвления скелета. Например: 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, используйте |
| Соедините несвязанные пиксели, то есть, 1 0 0 1 1 0 1 0 1 becomes 1 1 1 0 0 1 0 1 1 |
| Удалите изолированные пиксели (отдельный 0 0 0 0 1 0 0 0 0 |
| Выполните морфологическое закрытие (расширение, сопровождаемое эрозией). |
| Используйте диагональную заливку, чтобы устранить с 8 возможностями соединения из фона. Например: 0 1 0 0 1 0 1 0 0 becomes 1 1 0 0 0 0 0 0 0 |
| Найдите конечные точки скелета. Например: 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, используйте |
| Заполните изолированные внутренние пиксели (отдельный 1 1 1 1 0 1 1 1 1 |
| Удалите пиксели H-connected. Например: 1 1 1 1 1 1 0 1 0 becomes 0 0 0 1 1 1 1 1 1 |
| Установите пиксель на |
| Выполните морфологическое открытие (эрозия, сопровождаемая расширением). |
| Удалите внутренние пиксели. Эта опция устанавливает пиксель на |
| С |
| С Когда работа с 3-D объемами, или, когда это необходимо, сократить скелет, использует |
| Удалите цилиндрические пиксели. Например: 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 |
| С |
| С |
| Выполните морфологическую операцию цилиндра, возвратив изображение минус морфологическое открытие изображения. |
Совет
Чтобы выполнить морфологическую эрозию или расширение, используйте imerode
или imdilate
функция, соответственно. Если вы хотите реплицировать расширение или эрозию, выполняемую bwmorph
функция, затем задайте окружение как ones(3)
.
Типы данных: char |
string
n
— Число раз, чтобы выполнить операциюInf
Число раз, чтобы выполнить операцию в виде положительного целого числа или Inf
. Когда вы задаете n
как Inf
, bwmorph
функционируйте повторяет операцию, пока изображение больше не изменяется.
Пример: 100
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
BW2
— Отобразите после морфологических операцийОтобразите после морфологических операций, возвращенных как 2D логическая матрица.
Типы данных: логический
Когда используется с 'thin'
опция, bwmorph
использует следующий алгоритм [3]:
В первой подытерации удалите пиксель p, если и только если условиям G1, G2 и G3 все удовлетворяют.
Во второй подытерации удалите пиксель p если и только если условия G1, G2, и все удовлетворены.
где
x1, x2..., x8 являются значениями восьми соседей p, начиная с восточного соседа и пронумерованный в против часовой стрелки порядке.
где
Эти две подытерации вместе составляют одну итерацию утончающегося алгоритма. Когда пользователь задает бесконечное число итераций (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.
Указания и ограничения по применению:
bwmorph
поддерживает генерацию кода С (требует MATLAB® Coder™). Обратите внимание на то, что, если вы выбираете типовой MATLAB Host Computer
целевая платформа, bwmorph
генерирует код, который пользуется предварительно скомпилированной, специфичной для платформы разделяемой библиотекой. Использование разделяемой библиотеки сохраняет оптимизацию эффективности, но ограничивает целевые платформы, для которых может быть сгенерирован код. Для получения дополнительной информации смотрите Типы Поддержки Генерации кода в Image Processing Toolbox.
При генерации кода векторы символов или строковые скаляры, задающие операцию, должны быть постоянным временем компиляции и для лучших результатов, входное изображение должно иметь класс logical
.
Указания и ограничения по применению:
При генерации кода векторы символов или строковые скаляры, задающие операцию, должны быть постоянным временем компиляции и для лучших результатов, входное изображение должно иметь класс logical
.
Эта функция полностью поддерживает массивы графического процессора. Для получения дополнительной информации смотрите Обработку изображений на графическом процессоре.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.