Гонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде Matlab (2006) (1246139), страница 81
Текст из файла (страница 81)
Ясно, что наименыпее возможное значение К равно наибольшей размерности В. Для выполнения этого требования обычно матрица В дополняется нулями с помощью функции рабаггау при выборе опции 'раве'. Например, пусть матрица В имеет размер 640х480 и задана величина ш1пб1ш = 3. Параметр К должен удовлетворять условиям К >= гпах(в1яе(В)) и К)ш1пб1ш = 2 "р или К = ш1п41шв (2 р).
Разрешая эти соотношения относительно р, получаем р = 8 и, следовательно, К = 768. Для нахождения величин блоков при разложении на квадродерево мы воспользуемся функцией <~сбвсЬ11с, которая обсуждалась в 8 10.4.2: [на1в, г, с) = с(ебеСЬ1К(В, Ц, ш1пб1ш), где ча1в — это массив, состоящий из значений ш1пб1шхш1п41ш блоков разложения по квадродереву матрицы В, а Ц вЂ” разреженная матрица, возвращаемая функцией с[сбесошр. Параметры г и с являются векторами, в которые записаны координаты сторон и столбцов верхних левых углов блоков.
Пример 11.4. Построение клеточной сгпенки границы области. Чтобы увидеть реализацию шагов с 1 по 4 алгоритма МРР, рассмотрим изображение на рис. 11.4, а) и предположим, что параметр ш1пб1ш = 2. Пикселы представлены маленькими квадратиками для облегчения объяснения функции с[сбесошр. Изображение имеет размер 32х32 пикселов, и легко проверить, что для выбранного значения ш1п41ш не требуется делать расширение изображения.
4-связная граница этой области получается с помощью следующей командыз: » В = Ьирег1ш(В, 8); На рис. 11.6, б) показан результат. Отметим, что В стало изображением, на котором отображена только 4-связная граница (напомним, что маленькие квадратики обозначают отдельные пикселы). На рис. 11.6, в) показано разложение по квадродереву для В, которое получено командой » Ц = цебесошр(В, О, 2); Здесь 0 — это порог, который допускает разложение блоков вплоть до минимального размера 2х2 независимо от расположения в них 0 и 1 (казцдый из этих блоков может содержать от 0 до 4 пикселов). Заметьте, что имеется много блоков, размеры которых больше, чем 2 х2, но все они образованы фоновыми пикселами. Теперь мы воспользуемся командой цсяесЬ1К(В, Ц, 2) для извлечения величин и координат верхних левых углов для всех блоков с размером 2х2.
После Синтаксис функции Ьвраг1и имеет вид 8 = Ьвраг1и(Е, саюп, где сава обозначает желаемую связность; 4 (па умолчанию) или 8. Связность определяется относительно фоновых пикселав. Пазтаму, для получения 4-связнай границы объекта мы выбрали сапа 8. Наоборот, для построения 8-связной границы следует положить сапа 4. Выходом 8 служит двоичное изображение границ объектов изображения К Эта функция рассматривается подробно в 1 11.3.1.
(464 1дана 11. 11р~дс ~антенн~ а она~ание Р ггого все одоки, содержании н~ пенсе одного никс~да со знак. ниск1 1, полцд- 46~~5) Функция 1про1убоп используется функцией штпрегро1у (которая обсуждается в следующем параграфе) для выяснения, лежит ли точка внутри, на границе или вне многоугольника. Она имеет синтаксис 1в = 1про1убоп(Х, У, хи, ух), где Х и У вЂ” это векторы, состоящие из х- и у-координат тестируемых точек, а хи и уч .
- векторы, образованные из х- и у-координат вершин многоугольника, расположенные в последовательности по или против направления часовой стрелки. Массив 1В является вектором, длина которого равна числу тестируемых точек. Его значение равно 1 для точек, лежащих внутри или на границе многоугольника. н 0 — для точек, расположенных вне границ многоугольника. М-функция для построения МРР Все шаги алгоритма с 1 по 9 реализованы функцией ш1прегро1у, программный код которой приведен в приложении В. Она имеет синтаксис (х, у3 = шупрегро1у(В, се11а1хе), где  — это входное двоичное изображение, содержащее единственную область или границу,а се11в1хе — это размер квадратных ячеек клеточного комплекса для покрытия границы.
Векторы-столбцы х и у содержат х- и у-координаты вершин МРР. Пример 11.5. Использование функции шйпрегро(у. На рис. 11.7, а) показано изображение В кленового листа, а на рис. 11.7, б) приведена его граница, выделенная командами » Ь = Ьоши1агхее(В, 4, 'си'); » Ь = Ь(1); » (М, й) = 312е(В); » хштп = ш1п(Ь(:, 1)); » ушхп = ш1п(Ь(:, 2))", » Ьйш = Ьошк121ш(Ь, М, в, хшйп, уш1п); » ХшвЬоя(ЬХш) С этой эталонной границей будут сравниваться различные ломаные МРР в дан- ном примере. Иа рис. 11.7, в) приведен результат команд » (х, у) = ш1прегро1у(В, 2); » Ь2 = соппессро1у(х, у); » В2 = Ьоип621ш(Ь2, й, В, хшхп, ушхп); » Хшвйои(В2) Аналогично, на рис.
11.7 с г) по е) показаны различные МРР, построенные по квадратным ячейкам с размерами 3, 4 и 8 пикселов соответственно. Тонкий стебель был утрачен при использовании клеток, крупнее чем 2 х2, в силу уменьшения разрешения. Вторая основная характеристика формы листа связана с тремя основными его долями. Эти особенности прослеживаются достаточно отчетливо даже для ячеек со стороной 8, как показано на рис. 11.7., е). При дальнейшем 4«««г».п д увеличении размеров ячеек до 10 н даже до 16 зти характеристики все еще сохраняются, как видно на рис. 11.8, а) и б).
Однако на рис. 11.8, в) и г), видно, что эти характерные черты теряются для 20 и для больших значений. Стрелками на рис. 11.7, в) и д), отмечены узлы, образованные салюпересекающимися линиями. '1акие узлы могут возникать, если размер отступа на границе по отношению к размеру ячейки такой, что прн разметке вогнутых вершин их положения «пересекают» друг друга, изменяя направление последовательности по часовой стрелке. Один способ в разрешении этой коллизии состоит в удалении одной из вершин.
Другой путь — это увеличить или уменьшить размер ячейки, Например, рис. 11.7, г), отвечающий размеру 3, не обнаруживает эту особенность, которая проявилась для размеров ячеек 2 и 4. П Рис. 11ЗП а) Исходное изображение, б) 4-связная гранина. е) Ломаная МРР, построенная по я ~ейкам с размером сторон в 2 пикседа, г)-е) МРР, построенные, соответственно, па ячейкам са сторонами 3, 4 и 8 11.2.3.
Сигнатуры Сигнатурп есть описание границы объекта с помощью одномерной функции, которая может строиться различными способами. Один из простейших методов состоит в нахождении зависимости расстояния от центроида (т, е, от некоторой средней точки объекта, например, от его центра тяжести) до границы объекта в виде функции угла, что иллюстрирует рис. 11.9, Независимо от способа построения сигнатуры, основная идея состоит в том, чтобы свсстн представление грани- ».. л д: .
46~~7) цы к одномерной функции, которую предположительно описать легче, чем исходную двумерную гранину. Имейте в виду, что такой метод сигнатурного описания годится, только если известно, что вектор, проведенный из начала координат до границы, пересекает эту гранину только один рвз, что приводит к однозначно определенной функции от возрастающего угла. Это условие исключает границы с самопересечениями, а также границы, имеющие глубокие узкие вогнутости или тонкие длинные выступы. Рис. 11.6. МРР, построек- и! иые по еще большим ичейиемсрезмереми а) 10, 61 )6, в) 20 и г) 32 в! г) Сигнатуры, построенные описанным выше способом, инвариантны по отношению к параллельному переносу, однако они зависят от поворота и изменения масштаба. Инвариантности к повороту можно достичь, найдя способ выбора одной и той же начальной точки для построения сигнатуры независимо от ориентации фигуры.
Один из способов сделать это заключается в выборе в качестве пачалыюй максимально удаленную от цсптроида точку (ель З 11.3.1) прп условии, что такая точка единственна и не зависит от искажений, возникающих при поворотах интересующих фигур. Другой способ может заключаться в выборе максимально удюгенной от пснтроида точки на собственной оси фигуры (см. 6' 11.5) . Такой метод требует болыпего объема вычислений, но является и более устойчивым, поскольку направление оси фигуры определяется с учетом всех точек ее контура.
Еще один способ основан на получении цепного кода границы и на последующем применении метода, описанного в 6 11.1.2, полагая, что поворот можно аппроксимировагь дискретными углами в кодовых направлениях, определенных в В 11.1. Если исходить из предположения, что изменение масштаба производится оди- наково по обеим осям и дискретизация по углу и является равномерной. то (468 Глава )л Представление и описание масштабирование фигуры отражается на изменении амплитуды соответствующей сигнатуры.
Этот результат можно пронормировать путем масштабирования функций сигнатуры таким образом, чтобы они всегда охватывали один и тот же диапазон значений, например, [О, 1). Достоинством данного метода является простота, однако его серьезный недостаток кроется в том, что масштабирование всей функции определяется всего двумя значениями — минимальным и максимальным. Если в изображении присутствует шум, эта зависимость может стать источником расхождений между объектами.
Более устойчивый (но также требующий больших вычислений) метод состоит в делении каждого углового отсчета на дисперсию сигнатурной функции в предположении, что эта дисперсия не равна нулю [как на рис. 11.9, а)) и не очень мала (тогда пе возникнут вычислительные трудности). Учет дисперсии приводит к переменному коэффициенту масштабирования, который обратно пропорционален изменениям размеров и действует аналогично автоматической регулировке расхождения. Какой бы способ ни применялся, следует иметь в виду, что основная идея состоит в устранении зависимости от масштаба при сохранении формы кривой в целом.
Рис. 11.9. Два объекта: а) круг и б) квадрат. в) и г) — соответствующие сигнатурные функции расстояния в гависимости ог угла а) б! А в) ц) г) г(ц) г2А А 9 9 Зрр 5рзр7р2р 4 2 4 ц 4 2 4 9 9 53 9р 5р5397р2р 4 2 4 4 2 4 Функция в1явасцге, включенная в приложение В, находит сигнатуру заданной границы. Она имеет синтаксис [вС, впя1е, хО, уО] = в1япахцге(Ь, хО, уО), где Ь вЂ” это массив прх2, состоящий из ху-координат границы, ориентированной по или против направления часовой стрелки.
Сигнатура является функцией угла апя1е, которая записывается в массив вс. Координаты (хО, уО) обозначают начало вектора, который продолжается до границы. Если эти координаты не включены в аргументы, функция использует по умолчанию координаты центроида границы. В любом случае, координаты начала использованного вектора (хО, уО) включаются функцией в выходные данные. Размеры массивов вс и апя1е равны 360 х1, т. е.