Гонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде Matlab (2006) (1246139), страница 35
Текст из файла (страница 35)
Их иногда называют преобразованиями куска реэивьц поскольку их можно себе представить, если нанести изображение на кусок резины, а затем растягивать его в соответствии с предписанными правилами. Геометрические преобразования часто используются при регистрации иэображений.
В этом процессе участвуют два изображения на одной сцене, которые необходимо наложить друг на друга с целью визуализации или количественного сравнения. В следующих подпараграфах обсу»кдаются: (1) пространственные преобразования и способы их визуализации в МАТ1,АВ; (2) применение пространственных преобразований к конкретным изображениям; (3) задание пространственных преобразований для регистрации изображений. 5. 11.1. Пространственные преобразования Пусть изображение ), заданное в координатной система (ш, г), подвергается гео- метрической деформации, в результате которой получается изображение д в ко- ординатной системе (х, у).
Это (координатное) преобразование можно записать в виде формулы (х,у) = Т((ш,г)). Например, если (х, у) = Т((ш9 г)) = (ш/2, г)2), то «искажение» сводится к двойному сжатию по обеим пространственным измерениям, как показано на рис. 5.12. Чаще всего используется класс геометрических преобразований, представители которого называются аффинпыми преобра ованияг«и (см. ['9«о1Ьегв, 1990!).
Аффинное преобразование можно записать в матричной форме си 112 0 121 122 0 »31 »32 [х у Ц = (ш г ЦТ = [ш г Ц Такой формулой можно задать сжатие, поворот, перенос или сдвиг, соответствую- щим образом определяя элементы матрицы Т. В табл. 5.3 показано, как выбирать эти величины для совершения различных преобразований. (~96 г 5.з«г ТЦ5, 2)) (2.5, 1) В пакете 1РТ пространственное преобразование задается в виде т.
и, 11огтсгнрукгпуры'. Один путь определения структуры состоит в использовании функ- Таблица б.з. Типы аффинных преобразований гСм. Я 2.10.6 и 11.1.1, где обсуждались структуры. Рис. 0.12. Простое пространстненное преобразование. (Заметим, что оси хр на рисунх ке не соответствуют координатной системе изображения, заданной в 5 2,1.1, Там же обращалось внимание на то, что 1РТ использует т. н.
пространственную координатную систему, в которой у обозначает строки, а я — столбцы. Далее в зтом параграфе используется именно зта система для совместимости с документацией 1РТ по части геометрических преобразований.) ции шаСсетогш, вызов которой имеет вид С1огш = шайетгогш[Сгапягогш Суре, Сгепя1огш рагашетегя). Первый входной аргумент Сгапя1огш Суре может принимать значения 'а11гпе', 'рго]есС1че', 'Ьох', 'сошроятсе', или 'святош'. Эти типы преобразований объяснены в табл. 5.4 в 3 5.11.3.
Остальные аргументы зависят от выбранного типа преобразования, и они разъясняются на справочной странице функции ша[сетогш. Рассмотрим некоторые аффинные преобразования. Например, можно определить аффинную С1огш-структуру, прямо описав ее матрицу Т сле пующилс способом: » Т= [200; 030; 001]; » Стогш = ша1сесгогш['агт1пе', Т) С1огш = пс[1шв 1п:2 похшя оп'С: 2 1огяагй 1сп:етяй а111пе 1пчегяе 1сп:е1пч агг1пе Сс[ата:[1 х 1 яегпсС] Хотя пользователю не потребуется напрямую обращаться к полям структуры С1огш, сообщим, что информация о матрице Т и о ее обратной Т с хранится в поле Сс[аса: » Стогш. Сс[ата Т:3 х 3 с[опЫе Т1пч:3 х 3 йопЫе » С1огш.сс[аеа.Т апя 200 030 001 » Стогш.тс1аСа.Ттпч ахся 0.5000 0 0 00.3333 0 0 01.0000 В пакете 1РТ имеются две функции, с помощью которых пространственное преобразование применяется к точкам: Сгогшгяй вычисляет прямое преобразование Т((се, г)), а функция С1огштпч вычисляет обратное преобразование Т с((г,у)).
Форма вызова ттогштяй имеет вид ХУ = Сгогш1чИ112, С1огш). Здесь 'я2 — матрица Рх2, в каждой строке которой стоят пары се и х координат одной точки из. Р. Аналогично, ХУ вЂ” это матрица, столбцы которой содержат хи у-координаты Р преобразованных точек. Например, следующие команды вычисляют прялсое преобразование пары точек, после чего вычисляется обратное преобразование для проверки, получаются ли исходные данные: ~~~~98 Глава 5. Восстановление изобраокений ИЕ= [11; 32]; ХУ = С1огш1вп(ЫЕ, С1огш) » ХУ 2 3 6 б » И22 = С1огштпи(ХУ, С1огш) 022 1 1 3 2 Чтобы лучше почувствовать то или иное пространственное преобразование, полезно посмотреть на то, как оно действует на изображение, содержащее координатную сетку.
Следующая М-функция н1вСХогш1яа строит координатную сетку, преобразует ее с помощью Стогштяо, а затем размещает рядом графики этой сетки и ее преобразования для удобства сравнения. Обратите внимание на совместное употребление функций шеяЬЕСЫ Я 2.10.4) и 11пврасе Я 2.8.1) при построении сетки. Следующий программный код также иллюстрирует использование некоторых других функций, описанных ранее. ХппсС1оп и1вттогштие((С1отш, ие(ата, хиласа, М) %Н13ТЕОКМРИО НАяпа11хе Хогяаго Ееошесг1с Сгапв1отш.
У, Н1ЯТРОКМРИО(ТРОКМ, ИКАМСЕ, ЕКАМСЕ, М) вЬовв Сяо р1осв: вл М-Ьу-М % ЕСЫ гп СЬе М-Е свого(1паге вуятеш, апе( СЬе враС1а11у Сгапв1огшед '/ Ет1о Ап СЬе Х-У соотд1пасе яувсеш. ИКАМСЕ апе( 2КАМСЕ аге % Сяо-е1ешепС нессогв ярес11у1пЕ СЬе оея1гео гапбе 1ог СЬе ЕСЫ. М % сап Ье ош1ССес(, 1п яЬХсЬ саве СЬе йе1ап1С иа1пе 1в 10. 11 пагЕХп ( 4 М = 10; егк1 % Сгеасе СЬе в-х Ег1о апо Сгапв1огш 1С.
[и, х] = шеяЬЕг16(11пярасе(ве(ата(1), Мата(2), М), 11пврасе(воаса(1), апаса(2), М)); вх = [в(:) х(:)]; ху = С1отш1вй([в(:) х(:)], С1отш); % Са1сп1асе СЬе ш1п1шшп апо шах1шшп иа1пея о1 и апо х, % ая ие11 ав х ппс( у. ТЬеве аге ияеа во СЬе Сио р1осв сап Ье '/ 41вр1ауей пв1пЕ СЬе ваше яса1е. х = геяЬаре(ху(:, 1), я1хе(я)); % гевЬаре Ая 31вспввей Ап Бес. 8.2.2. у = тевЬаре(ху(:, 2), я1хе(х)); ях = [я(:); х(:)]; вх11шАСя = [ш1п(вх) шах(вх)]; ху = [х(:); у(:)]; ху11ш1Св = [ш1п(ху) шах(ху)]; '/ Сгеасе СЬе я-х р1оС. япЬр1оС(1,2,1) '/ Бее Бесс1оп 7.2. 1 1ог а с(1вспвв1оп о1 СЬАв 1ппсСАоп. р1оС(я, х, 'Ь'), ах1в еопа1, ах1в 1] Ьо16 оп р1оп(ч', х', 'Ь') Ьо14 о11 х11ш(вх11ш1тя) у11ш(ху) Тш1ея) «1вСХогш1«а Пример 5.12.
Визу лизация некоторых аффинных преобразований функцией «1 вс г огш1 яй. В этом примере мы проиллюстрируем действие некоторых аффннных преобразований с помощью функции «1всгогшгяе(. Кроме того, для создания аффинной с1огш мы воспользуемся еще одним подходом использования функции ша[гес1огш. Начнем с аффинного преобразования, которое растягивает изображение в 3 раза по горизонтали и в 2 раза по вертикали: » Т1= [300; 020; 001]; » С1огш1 = шв)геСХогш('а111пе', Т1); » «1вс1огш1«а(сХогш1, [О 100], [О 100]); На рис.
5.13, а) и б) даны результаты. Эффекты сдвига наблюдаются, если элементы 1пг и (еп в аффинной матрице Т являются ненулевыми: » Т2= [100; .210; 001]; » СХогш2 = ша)геегогш('а111пе', Т2); » «1втгогшгвй(сгогш2, [О 100], [О 100] ); На рнс. 5.13, в) и г) показаны эффекты сдвига применительно к координатной сетке. Важное свойство аффинных преобразований состоит в том, что любая их комбинация снова является аффинным преобразованием.
Математически матрица Т этого аффинного преобразования получается перемножением соответствующих аффинных матриц. Следующий блок команд генерирует и отображает аффинное преобразование, которое получается комбинацией растяжения, поворота и сдвига. » Твса1е = [1.5 0 0; 0 2 0; 0 0 1]; » Тгосасгоп = [сов(р1/4) вхп(р1/4) 0; -втп(р1/4) сов(р1/4) 0; 0 0 1]; » ТяЬеаг = [1 0 0; .2 1 0; 0 0 1]; » ТЗ = Твса1евТгосастопвТяйеаг; » в1огшЗ = шв)гес1огш('а111пе', ТЗ); » «1всгогшгвй(сгогшЗ, [О 100], [О 100]); На рис.
5.13, д) и е) приведен результат. П ~~~200 Глава б. Восстпановление изображений б) 300 0 0 100 200 100 200 300 50 50 100 100 150 150 200 200 и' г) 60 80 100 !20 0 20 40 60 80 100 120 0 20 20 40 60 80 80 100 100 д) е) 100 50 0 О 50 100 1ОО 50 0 50 100 0 50 50 100 100 150 150 200 Рнс. 8.13. Визуализапия аффиннык преобразований с помощью сетки. а) Сетка 1.
6) Сетка 1, преобразованная с помощью сготи1. е) Сетка 2, г) Сетка 2, преобразованная с помощью стоти2. д) Сетка 3. е) Сетка 3, преобразованная с помощью стотиз 5. 11.2. Применение пространственных преобразований к изображениям Большинство вычислительных методов пространственного преобразования изображений можно разделить на две категории: методы, использующие прямое отоб- а! 0 0 в) 0 20 40 0 40 60 5.».в «б б 2Д я = 1шегапвготш(Х, е1огш, 1пеегр), где 1псетр — зто строка символов, которая определяет метод интерполяции ближайших пикселов для вычисления значения выходного пиксела.
Переменная 1пеегр имеет три возможных значения: 'пеатеве', 'Ы11пеаг' и 'ЫсиЫс'. Если 1певгр опущена, то по умолчанию используется 'Ы11пеаг'. Как и в предыдущих примерах, в качестве тестового изображения при экспериментировании с пространственными преобразованиями будет использоваться шахматная доска. Пример 5.13. Пространственное нреобразовапие изображений. Мы воспользуемся функциями сйесКетЬоагй и 1шетапв1отш для исследования некоторых аспектов преобразования изображений.