Скачиваний:
4
Добавлен:
02.05.2014
Размер:
47.64 Кб
Скачать

Список функций Image Processing Toolbox. Описание функции BWMORPH  Семинары   Обучение   Лицензирование   Разработка   Подписка   Форум  Регистрация    Matlab    Toolboxes    Simulink    Blocksets    Femlab    Полезное Вход Обработка сигналов и изображений\image Processing ToolboxСписок функций Image Processing Toolbox: Морфологические операции над бинарным изображением

  В оглавление \ К следующему разделу \ К предыдущему разделу

BWMORPH Морфологические операции над бинарным изображением Синтаксис:

BWd=bwmorph(BWs, operation)

BWd=bwmorph(BWs, operation, n)

Описание:

Функция BWd=bwmorph(BWd, operation) создает бинарное изображение BWd, подвергая обработке морфологическим фильтром исходное бинарное изображение BWs. Тип используемого морфологического фильтра определяется параметром operation. Морфологические операции (их также называют морфологическими фильтрами) представляют собой нелинейный способ обработки изображений. Их применяют с целью изменения формы объектов. Рассматривая морфологические операции, будем называть связные области, значения пикселей которых равны единице, объектами, а области изображения, значения пикселей которых равны нулю, фоном.

Параметр operation может принимать одно из следующих значений:

"erode" Эрозия объекта. Приводит к замене значений граничных пикселей объекта на 0. Однократное применение эрозии приводит к удалению слоя границы толщиной в 1 пиксель (рис. 16). "dilate" Наращение объекта. Приводит к замене значений пикселей фона, граничащих с объектом, на 1. Однократное применение наращения приводит к добавлению к объекту слоя толщиной в 1 пиксель (рис. 1в). "open" Открытие. Представляет собой последовательное применение эрозии и наращения. Приводит к соединению областей фона, ранее разъединенных узкими участками пикселей объектов (рис. 1г). "close" Закрытие. Представляет собой последовательное применение наращения и эрозии. Приводит к удалению небольших по площади фрагментов фона внутри объектов, например "дыр" (замкнутых областей фона внутри объекта) (рис. 1д). "tophat" Преобразование типа "верх шляпы ". Соответствует вычитанию из исходного изображения результата его открытия (рис. 1е). "bothat" Преобразование типа "низ шляпы". Соответствует вычитанию исходного изображения из результата его закрытия (рис. 1ж). "clean" Удаление изолированных пикселей объектов. Пиксели равные l, все 8 соседей которых равны 0, заменяются на 0. "fill" Заполнение изолированных пикселей фона. Пиксели, равные 0, все 8 соседей которых равны 1, заменяются на 1. "diag" Уничтожение 8-связности фона. Осуществляется добавлением необходимого количества единиц во фрагменты объектов, связанных только по диагонали. Например, фрагмент изображения заменяется на "bridge" Соединение пикселей объекта, разъединенных фрагментом фона толщиной в 1 пиксель. Например, фрагмент изображения заменяется на "hbreak" Удаление центрального пикселя в конфигурациях, похожих на букву "Н": и заменятся соответственно на и "remove" Удаление внутренних пикселей объектов. Для этого в 0 устанавливаются пиксели объекта, у которых 4 соседних по горизонтали и вертикали пикселя были равны 1, т.е. тоже являлись пикселями объекта. В результате применения этого морфологического фильтра не сброшенными останутся только пиксели границы объекта (рис. 1б). "majority" Эрозия и наращение по преобладанию в окрестности пикселей фона или объекта. Осуществляется следующим образом: если в окрестности пикселя размера 3x3 находится 5 или более пикселей объекта, то рассматриваемый пиксель устанавливается в 1, в противном случае – в 0. "skel" Построение остова (скелета) объекта. Операция выполняет эрозию объекта с учетом ряда условий для сохранения 8-связности остова. В результате последовательного применения данной операции можно построить остов, представляющий собой связную линию толщиной в 1 пиксель, проходящую по середине объекта (рис. 1в). "shrink" Сжатие объекта. Операция выполняет эрозию объекта с учетом ряда условий для сохранения 8-связности замкнутых участков остова. В результате последовательного применения данной операции объекты, не содержащие дыр, превращаются в точку, а объекты с дырами "сжимаются" в 8-связные замкнутые участки остова, проходящие посередине и по внешней границе объекта (рис. 1г). "thin" Утоньшение объекта. Операция выполняет эрозию объекта с учетом ряда условий для сохранения 8-связности участков остова. В результате последовательного применения данной операции объекты, не содержащие дыр, превращаются в одну или несколько связных линий с минимальным количеством разветвлении остова по сравнению с остовом, получаемым с помощью оператора 'skel", а объекты с дырами сжимаются в 8-связные замкнутые участки остова, проходящие посередине между границами дыр и внешней границей объекта (рис. 1д). "thicken" Утолщение объекта. Операция выполняет наращение объекта с учетом ряда условий для сохранения 4-связности участков фона. Данная операция может рассматриваться как построение остова фона и является по смыслу обратной операции 'thin'. Результат данной операции будет незначительно отличаться от результатов применения оператора 'thin' к инвертированному изображению (рис. 1е). "spur" Удаление ответвлений объекта толщиной в 1 пиксель, т. е. удаление пикселей, у которых только один из соседних пикселей установлен в 1, а остальные - в 0. Например, фрагмент изображения

заменяется на .

В результате последовательного применения данной операции к изображению остова на изображении остаются только замкнутые участки остова. На рис. 1, б-ж показаны результаты применения одной итерации эрозии, наращения, открытия, закрытия, операций 'tophat' и 'bothat' соответственно к бинарному объекту, изображенному на рис. 1а. Изображения показаны в инверсных цветах относительно того, как они воспроизводятся в MATLAB.

а) исходное изображение

б) эрозия

в) наращение

г) открытие

д) закрытие

е) операция "tophat"

ж) операция "bothat" Рис. 1.

Функция BWd=bwmorph(BWs, operation, n) создает бинарное изображение BWd, подвергая BWs морфологической фильтрации n раз. Параметр n может быть равен Inf, в этом случае обработка продолжается до тех пор, пока результаты двух последовательных итераций не совпадут.

Параметр n=Inf имеет смысл использовать для операций построения остова: 'shrink', 'skel', 'thicken', 'thin', удаления ответвлений 'spur'. Заметим, что в результате применения данных операций при построении остова для изображения не изменяется число Эйлера (см. описание функции bweuler).

На рис. 2, б-е показаны результаты применения операций 'shrink', 'skel', 'thicken', 'thin', 'remove' при n=Inf к бинарному изображению, приведенному на рис. 2а. Изображения показаны в инверсных цветах относительно того, как они воспроизводятся в MATLAB.

а) исходное изображение

б) операция "remove"

в) операция "skel"

г) операция "shrink"

д) операция "thin"

е) операция "thicken" Рис. 2.

Результирующее изображение BWd имеет формат представления данных uint8.

Алгоритмы:

Эрозия и наращение являются базовыми операциями морфологической обработки. Рассмотрим алгоритмы их выполнения. Для обеих операций задается структурный элемент, который называют маской морфологического фильтра. Ненулевые значения в маске определяют, какие из соседних пикселей следует учитывать при осуществлении операции [1, 2, 3].

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

В функции bwmorph в операциях эрозии и наращения, а также в производных от них операциях (открытие, закрытие и т. д.) используется структурный элемент 3x3 вида:

.

Данные правила применяются нерекурсивно ко всем пикселям изображения.

Для осуществления ряда морфологических операций в функции bwmorph используется функция applylut с предопределенными таблицами перекодировки.

Пример:

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

Исходное полутоновое изображение I читается из файла (рис. 3a). Пиксели объектов имеют значения яркости меньше 150, поэтому для выделения объектов можно воспользоваться бинаризацией по порогу 150: BW1=I<150. Однако на бинарном изображении BW1 объекты слипаются (рис. 36).

Для разделения объектов можно использовать следующий подход. Сначала изображение подвергают эрозии до тех пор, пока не исчезнет слипание объектов. При этом объекты не должны в результате эрозии совсем исчезнуть. В рассматриваемом случае необходимо 6 итераций эрозии. Результат эрозии помещается в изображение BW2 (рис. 3в).

Затем для BW2 "утолщаются" объекты (строится остов фона) (рис. 3г). Результат логического "И" изображений BW1 & BW2 дает изображение с пикселями фона в местах слипания объектов (рис. 3д). Таким образом, объекты удалось разделить.

Далее для выделения объектов и подсчета их числа можно воспользоваться функцией bwlabel.

% Пример разделение слипшихся объектов с помощью

% морфологических операций.

% Чтение исходного изображения и вывод его на экран.

I=imread('split.bmp');

imshow(I);

% Бинаризация по порогу яркости.

BW1=I<150;

figure, imshow(BW1);

% Эрозия бинарного изображения.

BW2=bwmorph(BW1, 'erode', 6);

figure, imshow(BW2);

% Утолщение объектов.

BW2=bwmorph(BW2, 'thicken', Inf);

figure, imshow(BW2);

% Логическое И изображений результата утолщения

% и исходного бинарного.

BW1=BW1&BW2;

figure, imshow(BWI);

а)

б)

в)

г)

д) Рис. 3.

Сопутствующие функции: DILATE, ERODE, BWEULER, APPLYLUT.

Литература: Прэтт У. Цифровая обработка изображений. В 2 т. М.: Мир, 1982.

Haralick M., and Shapiro L. Computer and Robot Vision. V. I. Addison-Wesley, 1992.

Lam L, Lee S-W., Suen C. Y. Thinning Methodologies - A Comprehensive Survey // IEE Transactions on Pattern Analysis and Machine Intelligence. V. 14, № 9. 1992. P. 869-884.

  В оглавление \ К следующему разделу \ К предыдущему разделу

  I Всероссийская научная конференция "Проектирование научных и инженерных приложений в среде MATLAB" (май 2002 г.)

  II Всероссийская научная конференция "Проектирование научных и инженерных приложений в среде MATLAB" (май 2004 г.) На первую страницу \ Сотрудничество \ MathWorks \ SoftLine \ Exponenta.ru \ Exponenta Pro    E-mail: matlab@exponenta.ru      Информация на сайте была обновлена 14.05.05 Copyright 2001-2005 SoftLine Co 

Наши баннеры         hotlog_js="1.0"; hotlog_r=""+Math.random()+"&s=58396&im=33&r="+escape(document.referrer)+"&pg="+ escape(window.location.href); document.cookie="hotlog=1; path=/"; hotlog_r+="&c="+(document.cookie?"Y":"N"); hotlog_js="1.1";hotlog_r+="&j="+(navigator.javaEnabled()?"Y":"N") hotlog_js="1.2"; hotlog_r+="&wh="+screen.width+'x'+screen.height+"&px="+ (((navigator.appName.substring(0,3)=="Mic"))? screen.colorDepth:screen.pixelDepth) hotlog_js="1.3" hotlog_r+="&js="+hotlog_js; document.write("") >

Соседние файлы в папке Функции Image Toolbox