- •Лабораторная работа №7. Морфологическая обработка изображений
- •Базовые понятия теории множеств
- •Риунок 1 – а) Два множества а и в. Б) Объединение множеств а и в. В) Пересечение множеств а и в. Г) Дополнение множества а. Д) Разность множеств а и в.
- •Двоичные изображения, множества и логические операции
- •Разложение структурообразующих элементов
- •Функция strel
- •Преобразование успех/неудача
- •Использование поисковых таблиц
- •Функция bwmorph
- •Выделение компонент связности
- •Морфологическая реконструкция
- •Размыкание реконструкцией
- •Размыкание и замыкание
- •Реконструкция
- •Список индивидуальных данных
- •Задание:
Функция bwmorph
Функция bwmorph из пакета ITP выполняет ряд полезных действий, построенных на основе операций дилатации, эрозии, а также с использованием поисковых таблиц. Она имеет следующую синтаксическую форму вызова:
g = bwmorph (f,operation,n),
где f – это входное двоичное изображение, operation – символьная строка, задающая конкретную операцию, а n обозначает, сколько раз необходимо выполнить эту операцию. Входной аргумент n не является обязательным. При его отсутствии операция выполняется только один раз. В табл. 3 перечислены все допустимые операции функции bwmorph.
Таблица 3. Операции, поддерживаемые функцией bwmorph
Операция |
Описание |
bothat |
Совершает операцию «дно шляпы» с использованием структурообразующего элемента 3×3. Для других элементов применять imbothat |
bridge |
Соединяет пикселы, разделенные промежутком в один пиксел. |
clean |
Удаляет изолированные пикселы переднего плана |
close |
Замыкает с использованием элемента 3×3. Для других структурообразующих элементов применять операцию imclose. |
diag |
Делает заполнение вокруг диагонально связанных пикселов переднего плана. |
dilate |
Совершает дилатацию с использованием элемента 3×3. Для других структурообразующих элементов применять операцию imdilate. |
erode |
Выполняет эрозию с использованием элемента 3×3. Для других структурообразующих элементов применять операцию imerode |
fill |
Заполняет однопикселные «дырки» (фоновые пикселы, окруженные со всех сторон пикселами переднего плана). |
hbreak |
Удаляет Н-связанные пикселы переднего плана. |
open |
Делает пиксел р пикселом переднего плана, если не менее 5 пикселов N8(p) являются пикселами переднего плана; в противном случае делает пиксел р фоновым. |
majority |
Размыкает с использованием элемента 3×3. Для других структурообразующих элементов применять операцию imopen. |
remove |
Удаляет «внутренние» пикселы (пикселы переднего плана, у которых нет ни одного фонового соседа). |
shrink |
Сжимает объекты без внутренних дыр в точки. Сжимает объекты с дырами в кольца. |
skel |
Строит остов изображения. |
spur |
Удаляет отростки пикселов. |
thicken |
Утолщает объекты без соединения несвязанных частей. |
thin |
Утончает объекты без дыр до минимальной средней линии. Утончает объекты с дырами до колец. |
tophat |
Совершает операцию «верх шляпы» с использованием структурообразующего элемента 3×3. Для других элементов применять imtophat |
Операция утончение сокращает двоичные объекты или формы изображения до отдельных линий, которые имеют толщину всего в один пиксел. Например, попилярные линии на отпечатках пальцев, показанные на рис. 22в), являются слишком толстыми. При анализе этих линий может потребоваться их утончение вплоть до толщины в один пиксел. Каждое применение соответствующей операции утончения из bwmorph удаляет один или два пиксела из толщины объектов двоичного изображения. Например, следующие команды демонстрируют результат применения операции утончения один и два раза.
>> f = imread ( ‘ fingerprint_cleaned. tif ’ ) ;
>> g1 = bwmorph ( f , ‘ thin ’ , 1 ) ;
>> g2 = bwmorph ( f , ‘ thin ’ , 2 ) ;
>> imshow ( g1 ) , figure, imshow ( g2 )
На рис. 15а) и б), приведены соответствующие утонченные изображения. Имеется важный вопрос: сколько раз следует применять эту операцию? Для ряда действий, включая утончение, функция bwmorph допускает для n значение Inf (т.е. бесконечность). Вызов bwmorph с этим значением предписывает исполнение операции до тех пор, пока изображение не перестанет изменяться. Иногда это называют повторением операции до стабилизации. Например,
>> ginf = bwmorph ( f , ‘ thin ’ , Inf ) ;
>> imshow ( ginf )
Как видно из рис. 15, в), это действие приводит к существенному улучшению изображения по сравнению с рис. 9.11, в).
Рисунок 15 - а) Отпечатки пальцев из рис. 11, в) утончены один раз. б) Утончение изображения произведено два раза. в) Утончение изображения до стабилизации.
Построение остова представляет собой другой путь сокращения объектов двоичного изображения для получения множества тонких линий, которое несет важную информацию о формах исходных объектов. Функция bwmorph строит остов, когда параметр operation установлен в ‘skel’. Пусть f обозначает изображение объекта, похожего на кость, с рис. 16а). Для получения его остова мы вызываем bwmorph при n = Inf:
>> fs = bwmorph ( f , ‘ skel ’ , Inf ) ;
>> imshow ( f ) , figure , imshow ( fs )
На рис. 16б) приведен полученный остов, который вполне приемлемо отражает основные формы исходного объекта.
Процедуры построения остова и утончения часто строят лишние короткие отростки, которые иногда называются паразитическими компонентами. Процесс подчищения (или удаления) этих компонент называется усечением. Для этих целей можно использовать функцию endpoints (см. § 9.3.3). Метод заключается в последовательном обнаружении концевых точек и их удаление. Следующие простые команды делают завершающую обработку построенного остова fs изображения, которые повторяются 5 раз, для удаления концевых точек:
>> for k = 1: 5
fs = fs & ̃endpoints ( fs ) ;
end
Рис. 16в) показывает результат этих действий.
Рисунок 16 - а) Изображение в виде кости. б) Остов, полученный с помощью функции bwmorph. в) Окончательный остов после выполнения операции усечения функцией endpoints.
