Гонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде Matlab (2006) (1246139), страница 83
Текст из файла (страница 83)
Отрезок, соединяюгций две такие точки, называется большой осью границы. Малая ось границы определяется как отрезок, перпендикулярный большой оси и имеющий такую (минимальнук~) длину, что проведенный через концы обеих осей прямоугольник со сторонами, параллельными 1Если имеется несколько таких пар. то они должны лежать близко друг от друга и служить доминиругсщилг фактором, позаоляющим отличить форму границы. 'Ьне г». л д« этим осям, полностью накрывает гранину.
Упомянутый прямоугольник называется баэовьон прямоугольником, а отношение длины болыпой оси к длине малой носит название эксцентриситета границы. Функция 61ашеьег (см. ее листинг в приложении В) вычисляет диаметр, большую и малую оси, а также базовый прямоугольник границы или области.
Она имеет форму вызова а = 61ашесег(11, где 1. -- это размечающая матрица (см. 3 9.4), а з -- структура со следующими полями: Скаляр, обозначающий максимальное расстояние между любыми двумя пикселами соответствующей области. Матрица 2х2, в которой по строкам записаны координаты концевых точек большой оси соответствующей области. Матрица 2 х 2, в которой по строкам записаны координаты концевых точек малой оси соответствующей области. Матрица 2х2, в которой по строкам записаны координаты четырех углов базового прямоугольника области. в.РАашеьег а.иабоГАхйв З.И1поГАх1в в.йавйсйессап81е 11.3.2. Нумерация фигур Номер фигуры границы строится на оса! б! нове 4-направленного цепного кода Фримана и определяется как первая разность с минимальным численным значением (см. (ВпЬ1ыса, Спгшап 1980) и (ВпЬ~езса, 1981)).
Порядком номера фигуры по определению называется число цифр в его записи. Таким образом, ног! мер фигуры границы задается параметром с. 6Шшш в функции 1сйсо6е, которая обсуждалась в 0 11.2.1, а порядок номера фигуры вычисляется по формуле 1епятй(с.6Шшш). ?~ Кнк отмечалось н 3 11.2.1, 4-напрынленный цепной код Фримана можно сдецепней нел. о о о аз о о 3 3 3 3 3 33 13 11 пать инвариантным относительно выбора начальной точки с помощью испольРазность: 3 О О О 3 1 О 3 3 О 1 3 О О 3! 3 О зования целой минимальной величины.
не"ерфи"уры: 000310330130031303 А чтобы добиться инвариантности по отношению к поворотам, надо, чтобы Рнс. 11.14. Шаги при вычислении номеров фигур они (повороты) были кратны 90' при использовании первых разностей. Значит, номера фигур инвариантны относительно начальной точки и относительно поворотов на углы, кратные 90'. Один из часто используемых способов стандартизации произвольных поворотов состоит в совмещении одной из координатных [В, сЬеса] = х2ша)огахгв[А, В). Здесь А = в.йа)огАхтв взято из функции 61ашехег, а  — входное (двоичное) изображение или список точек границы (как обычно, мы предполагаем, что граница является связной замкнутой кривой).
На выход В поступают данные в той же форме. что и на вход (т. е. двоичное изображение или координатная последовательность). В силу возможных ошибок округления, повороты могут привести к разрывам границы. поэтому может потребоваться дополнительная обработка для заполнения возникших разрывов (папример, с помощью функции ЬяшогрЬ). 11.3.3. Фурье-дескрипторы На рис. 11.15 приведена К-точечная дискретная граница на плоскости ху. Начиная с произвольной точки (хо, уо), обойдем гранину, скажем, против часовой стрелки, и обозначим координаты встречающихся точек границы (хо.уо).
(хму>). (хя, уз), .... (хк >, ук а). Эти координаты можно записать в форме х(К) = хь и у(к) = уь Б При использовании этих обозначений саму границу можно представить в виде последовательности координатных пар я(к) = [х(>с), у(>с)[, где Ь = О, 1, 2,..., К вЂ” 1. Далее, каждую пару координат можно представить комплексным числом Уа у~ ха х, Действительная ось в(к) = х(к) + )у(к). Рис. 11.15. Дискретная граниКак мы знаем из з 4.1, дискретное преобразование пв и вв нрвдстввлвния в виде «оьь Фурье ([)Р'Т) конечной последовательности я(/с) плексной последоввтвльпккчп. Нвчвльнвя точка (яо, уа) вмйрвнв прозадается уравнением извольно К вЂ” 1 а(и) = ~ в(>с)е А=О при и = О, 1,2...., К вЂ” 1. Комплексные коэффициенты а(и) называются фурьед'ескрипторами границы.
Обратное преобразование Фурье, примененное к этим осей с направлением главной оси, а затем строительстве цепного кода исходя из повернутой фигуры. Э ~а праце;сура проиллюстрирована на рис. 11.14. Инструменты, которые позволят реализовать в одной М-функции процедуру определения номеров фигур. были разработаны нами ранее. Они состоят из функции ьошн1аг>.ев,которая находит границу, функции жвшесег, которая определяет главную ось, функции ЬвпЬвашр,которая понижает разрешение решетки дискретизации и функции 1сЬсос1е, которая вычисляет номера фигур.
Следует помнить, что при извлечении 4-связной границы функцией Ьоппааг1ев входное изображение должно быть размечено функцией Ьи1аЬе1, в которой задана 4-связность. Как указано на рис. 11.14. компенсация движения основана на совл>ещении одной из координатных осей области пли границы с помощью функции х2аяа)огахгв. Эта функция имеет следуя>п>ую форму вызова (ее программный код находится в приложении В): (476 Г».и д коэффициентам, позволяет восстановить границу э(/с): 1 К вЂ” 1 э(/с) = — ) а(и)е' К и=о при й = О, 1, 2,..., К вЂ” 1.
Предположим, однако, что вместо всех коэффициентов Фурье используются только первые Р из них. Это равносильно тому, что в последнем уравнении принимается а(и) = О при и > Р— 1. Результатом восстановления окажется следующее приблиэ1сение последовательности э(Ь): 1 Р-1 й(К) = — ~и а(и)Е1 ии / К и=о при й = О, 1,2,..., К вЂ” 1. Несмотря на то, что при вычислении каждой компоненты используется лишь Р членов, параметр /и по-прежнему пробегает весь диапазон от О до К вЂ” 1. Значит, в приближенной границе будет то же самое число точек, хотя для восстановления их координат используется меньшее число членов. Вспомним из рассмотрения преобразования Фурье в гл. 4, что высокочастотные составляющие описывают мелкие детали, тогда как низкочастотные компоненты определяют общую форму границы.
Следовательно, чем меньше Р, тем больше деталей границы теряется. Следующая функция Хтаеяср вычисляет фурье-дескрипторы границы в. Аналогично, имея множество фурье-дескрипторов, исходная замкнутая пространственная кривая получается с помощью обратной функции 1ттаезср. В документации каждой из этих функций объясняется их синтаксис. УипсС1оп я = ттаезср(я) '/Р1ИЕЯСР Сошрисев Роиттет аезст1РСотя.
'/ 2 = РЕОЕБСР(Я) сошриСея СЬе Роит1ет аеяст1рпотя о1 Я, иЬ1сЬ 1я а11 '/ пр-Ьу-2 яеп(пенсе о1 тшабе соота1пасея аеяст1Ь1пЕ а Ьоипаэту. '/ '/ Оие Со зушшепту сопз1аетаС1опя иЬеп вотЫ1пЕ в1СЬ 1пнетзе Роит1ет '/ деяст(рсотя Ьавео оп 1еиет СЬап пр Сетшя, СЬе пшпЬет ОХ '/ ротпсв тп Б еЬеп сошриС1пЕ СЬе аевсттрСотв шивС Ье епеп. 11 СЬе '/ пшпЬет ОХ ротппз 1я ОИ, РЕОЕЯСР аир11сапея СЬе епа ро1пС апа / ааая тс ас сье епа от сье веп(ивисе. 11 а 6111етепс стеасшепс 1я '/ аев1теа, СЬе вес(пенсе шивС Ье ртосеввеп( ехпетпа11у зо СЬаС 1С Ьав '/ ап ечеп пшпЬет о1 ро1пСв. '/ '/ Яее 1ипспаоп 1РЕОЕЯСР 1от сошриС1пб СЬе 1ппетяе аевстарсотв. '/ Рте11ш1паттев [пр, пс) = заве(в); 11 пс "= 2 еттот('Я пшвС Ье ОХ вахе пр-Ьу-2.'); епа 11 пр/2 = тонио(пр/2)1 в(епа + 1, :) = в(епо, :); .Ю.
Д 4Д7 пр = пр + 1; епй % Сгеасе ал а1сегпаС1пя ве~(иепсе о1 1в влб -1в Хог пве 1п сепсег1пя % СЬе Сгалв1отш. х = О:(пр — 1); ш = ((-1) . х)'; % Мп1С1р1у СЬе гпрпС вес(пепсе Ьу а1СегпаС1пЯ 1в алй -1в Со % сепгег СЬе СтапзХогш. в(:, 1) = ш .а в(:, 1); я(:, 2) = ш .я в(:, 2); % Сопчегт соогб1папев Со сошр1ех ппшЬегв. з = в(:, 1) + 1ея(:, 2); % СошрпСе СЬе йевсгйрСотз. х = ХХС(в); Функция 11гйевср имеет следующий текст: 1ппсС1оп в = 11гбевср(х, пй) %1РКОЕЯСР СошрпСев 1пчегве Ропг1ег безсг1РСогв. % 1 = 1РЮЕЯСР(Е, МО) сошрпСев СЬе 1пчегяе Ропг1ег йевсгбргогз о1 % о1 Е, яйбсЬ 1в а ве~(пенсе оХ Ропг1ег йевсг1РСог оЬСатпей, Уст % ехашр1е, Ьу пв1пЯ 1ипссбоп РНВЕЯСР.
МР 1я СЬе ппшЬег о1 '/ бевсг1ртогв пвеб Со сошрпС1пЕ СЬе 1пчегве; МО шпвС Ье вл ечеп % 1пгеЯег по Ятеагег СЬал 1епЕСЬ(Е). 11 МР 1з ош1ССей, 1С йе1ап1Св % Со 1епЯСЬ(Е). ТЬе опсрпС, Я, 1з ап МО-Ьу-2 шастбх сопса1п1пЯ СЬе % соогб1пасея о1 а с1овеб Ьоппбагу. % Рге11п1пат1ев. пр = 1епяСЬ(я); % СЬесЬ 1прпся.
11 пагЯ1п == 1 ~ пй ) пр пй = пр; епб % СгеаСе ал а1СегпаС1пЕ яецпепсе о1 1в алй -1в 1ог пяе 1п сепсег1пя % СЬе Стапв1отш. х = О:(пр — 1); ш = ((-1) ."х)'; % Уяе оп1у пб йеясгбрпогв гп СЬе 1пчегве. Я1псе СЬе % беясг1рсогя аге сепсегей, (пр - пб)/2 Сетшв Хгош еасЬ епй о1 У, СЬе веопепсе ате веС Со О. б = гоппй((пр — пй)/2); '/ Ноппй 1п сазе пб 1я ойб. х(1:б) = О; х(пр — й ~ 1:пр) = О; У, СошрпСе СЬе 1пчегве влй сопчетС Ьасй Со соогб1пагея. хх = ШС(х); я(:, 1) = геа1(хх); в(., 2) = 1шая(хх); % Мп1ССР1у Ьу а1СегпаС1пЕ 1 алб -1з Со ппйо СЬе еаг11ет (41В т».л 1 % сепьег1пб. в(:, 1) = ш.ав(:, 1); в(:, 2) = ш.ав(:, 2); Пример 11.8. Фурье-дескрииторьс На рис. 11.16, а) приведено изображение 1, похожее на рпс.
11.13, в), но построенное с помощью гауссовой маски 15 х 15 с параметром в18 = 9 и с последующим пороговым преобразованием с порогом 0.7. В этом случае мы хотели иметь не очень гладкое изображение, чтобы было легче продемонстрировать эффекты, возникающие при уменьшении числа дескрипторов и влияюп1ие на форму границы. Изображение на рис.