Гонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде Matlab (2006) (1246139), страница 25
Текст из файла (страница 25)
Эта функция и ее применение обсуждаются в следующем параграфе. 42. Вычисление и визуализация двумерного 0ЕТ в МАТЮКАВ Прямое и обратное 1)РТ на практике вычисляются с помощью алгоритма быстрого преобразования Фурье (ГРТ, Раэг Гоинег Тгапв(огш). Алгоритм РРТ массива 1 изображения ЛХхХ реализован в пакете функцией НЬ2, которая имеет следующий синтаксис: Р = 11С2(1). Эта функция возвращает преобразование Фурье размера ЛХхМ, причем данные организованы в форме, представленной на рис.
4.2, а), т, е, начало данных находится в верхнем левом угле, где имеется четыре четверть-периода (квадранта), которые примыкают к центральной точке частотной области. Как объясняется в 3 4.3.1, необходимо дополнять входное изображение нулями при использовании преобразования Фурье в фильтрации. В этом случае синтаксис имеет вид Р=Ш2И, Р, и) В этом случае функция тгс2 дополняет входное изображение нужным количеством нулей, и результат ее выполнения имеет размер РхЯ. Для получения спектра Фурье следует применить команду Б = аЬв(Р), которая вычисляет абсолютную величину (корень квадратный из суммы квадратов вещественной и мнимой частей) каждого элемента массива.
Визуальный анализ спектра при отображении его в виде изображения является важным инструментом при работе в частотной области. В качестве иллюстрации рассмотрим простое изображение 1 на рис. 4.3, а). Мы вычисляем преобразование Фурье и отображаем его спектр с помощью следующей последовательности шагов: » Р = 1йс2(1); » Б = аЬв(Р); » 1швйоя(Я, ( з); На рис.
4.3, б) приведен результат этих действий. Четыре яркие точки по углам изображения появляются в силу свойства периодичности, объясненного в предыдущем параграфе. Функцию ИсвЬНс пакета можно использовать для смещения начала координат преобразования в центр частотной области. Ее синтаксис имеет вид Рс = Нсвьыс(Р) ~~~~28 Глава 4. Обработпка в частотной области результат которых приведен на рис. 4.3, г). На этом изображении хорошо заметно визуальное улучшение отдельных деталей.
Функция Шйпп11С обращает центрирование спектра. Ее синтаксис имеет вид г = ШсвЫ1с(гс). Эту функцию можно использовать для приведения спектра к его первоначальному виду, т. е. когда центр спектра расположен в верхнем левом углу прямоугольника. Это свойство будет использоваться в 3 4.4. Обратите внимание на то, что центр частотного прямоугольника находится в точке (М/2, Х/2), когда координаты и и с пробегают интервал от 0 до М вЂ” 1 и до Аг — 1 соответственно. Например, центр частотного квадрата 8х8 находится в точке (4,4), т.е. в пятой точке по каждой оси, если считать от точки (0,0). Если, как в системе МАТЬАВ, эти переменные меняются от 1 до М и от 1 до Аг соответственно, то центр квадрата имеет координаты ((М/2) + 1, (Х/2) -г 1].
В нашем примере с квадратом 8х8 цент находится в точке (5,5), если считать от (1, 1). Ясно, что эти два центра отвечают одной и той же точке, однако это место может быть источником ошибок и разночтений при нахождении координат центров 1)РТ при вычислениях на МАТЬАВ. Если М и Аг — нечетные числа, то центр при вычислениях в МАТЬАВ определяется округлением М/2 и Аг/2 в сторону уменьшения до ближайшего целого. Дальнейший анализ делается как в предыдущем абзаце. Например, центр области 7х7 находится в точке (3, 3), если считать от (О, 0), и он имеет координаты (4, 4), если начало есть (1, 1). В обоих случаях центр расположен в четвертой точке от начала отсчета.
Если только одна из размерностей нечетна, то координаты центра по этому направлению вычисляются округлением, как описано выше. Используя функцию 11оотг из МАТЬАВ и помня, что начало отсчета находится в точке (1, 1), центр частотного прямоугольника вычисляется по формуле (11оот(М/2) +1, 11оог(М/2) + 1], которая дает правильный результат и для четных,и для нечетных величин М и Аг. Наконец, укажем, что обратное преобразование Фурье вычисляется с помощью функции Шс2, синтаксис которой имеет вид 1 = 111С2(г), где г — это преобразование Фурье, а 1 соответствующое изображение. Если исходное изображение, использованное при вычислении г, было вещественным, то и обратное преобразование, в теории, должно быть вещественным. Однако на практике выход 1тхс2 часто имеет очень малую мнимую компоненту, которая получается из-за ошибок округления при выполнении арифметических действий с плавающей запятой.
Поэтому хорошил» практическим советом является выделение вещественной части после выполнения обратного преобразования Фурье, ГКоманда В = т1оог(А) округляет каждый элемент массива А до ближайшего целого числа. не превосходящего его по значению. Функция се11 округляет до ближайшего целого, большего или равного заданному числу. 9 „» ~~29 чтобы изображение имело вещественные пикселы. Эти два действия можно вы- полнить в одной команде: » 1 = геа1(1йХс2И)); Как и в случае прямого преобразования, эта функция имеет альтернативную форму хб1С2(й, Р, Я), когда Р расширяется нулями до размера РхЯ до совершения преобразования.
Эта опция не будет использоваться в нашей книге. 4.3. Фильтрация в частотной области Фильтрация в частотной области имеет весьма простую концепцию. В этом параграфе будет сделан краткий обзор понятий, связанных с фильтрацией, а также будут приведены некоторые ее реализации на МАТ1.АВ. 4.3.1. Базовые концепции Основой линейной фильтрации в частотной и пространственной области служит теорема о свертке, которую можно сформулировать така: ) (х, у)» Ь(х, у) «=ь Н(и222)г'(и, и). и в обратную сторону )'(х, у)6(х2 у) «=о Н(и2 и) * Г(и, и). Здесь символ «*» обозначает операцию свертки двух функций, а выражения по обе стороны от двойных стрелок определяют соответствующие пары при преобразовании Фурье. Например, первое выражение означает, что свертку двух пространственных функций можно получить, если вычислить обратное преобразование Фурье от произведения прямых преобразований Фурье этих двух функций.
Наоборот, прямое преобразование Фурье свертки двух пространственных функций дает произведение их прямых преобразований Фурье. Аналогичныл2 образом можно прокомментировать и второе утверждение. Применительно к фильтрации нас интересует первое из приведенных выше выражений. Фильтрация в пространственной области состоит из свертки изображения Дх2у) и маски 6(х, у). Линейная пространственная свертка объяснялась в э' 3.4.1.
В соответствии с теоремой о свертке, тот же результат можно получить в частотной области. умножив г'(и, и) на Н(и, и) — преобразование Фурье пространственного фильтра. Принято называть Н(и, и) г»ередаточной функцией фильгпра. На самом деле, основная идея фильтрации в частотной области заключается в подборе передаточной функции фильтра, которая модифицирует Г(и, и) специфическим образом. Например, фильтр на рис. 4.4, а) имеет передаточную функ- ЗФункции геанагй) и ганке(агб) извлекают, соответственно, вещественную и мнимую части ехб. здля цифровых изображений зти выражения выполняются строго, только когда функции )"(х, у) и 6(х, у) продолжены нулями правильным образом, что обсуждается позже.
~~~~ЗО Глав~~ 4. Обрабатка в маслив~*~~й ~ бласти ~ сз. ь ~ г б 13~~!) опция, позволяющая дополнять входные данные до квадрата, длина стороны которого равна ближайшей степени числа 2. Время выполнения алгоритма г г Т зависит, грубо говоря, от числа простых делителей Р и (,с Этот алгоритм работает быстрее, когда Р и Я являются степенями двойки, чем когда Р и Я вЂ” простые числа. Кроме того, на практике можно посоветовать работать с квадратными изображениями и фильтрами, т.е. чтобы фильтрация имела одинаковые размеры по обоим измерениям.
Функция рас(оебв1яе позволяет делать такой выбор достаточно гибко, исходя из входных параметров. В функции раЫебв1хе векторы АВ, СР и РЦ имеют элементы [А В], [С Р] и [Р Ц] соответственно (все эти числа были определены выше)э. 1ипсС1оп РЦ = рас(с]ебв1хе(АВ, СР, РАМАМ) ХРАРРЕРБ1ЕЕ СошРисев РасЫес) вахев пве1п1 1ог РРТ-Ьавес) 111Сег1пЕ. '/ РЦ = РАРРЕРБ12Е(АВ), чЬеге АВ Ав а Счо-е1ешепС вахе чессог, '/ сошрцсев СЬе Сво-е1ешепС в1ве чессог РЦ = 2еАВ.
'/ Х РЦ = РАРРЕРБ1ЕЕ(АВ, 'РпВ2') сошрпсев СЬе чессог РЦ васЬ СЬаС '/, РЦ(1) = РЦ(2) = 2 пехсрон2(2еш), чЬеге ш 1я МАХ(АВ), у '/ РЦ = РАРРЕРБ12Е(АВ, СР), нЬеге АВ апс( СР аге Сво-е1ешепС в1яе '/ чессогв, сошрпсев СЬе Сво-е1ешепС вахе чесСог РЦ. ТЬе е1ешепсв Х о1 РЦ аге СЬе вша11евС ечеп 1псеЕегя Егеасег СЬап ог ейиа1 Со Х АВ + СР 1. '/ '/ РЦ = РАРРЕРБ12Е(АВ, СР, 'РМВ2') сошрисев СЬе чессог РЦ висЬ СЬаС У, РЦ(1) = РЦ(2) = 2 пехсроч2(2еш), чЬеге ш 1в МАХ([АВ СР]).
Н пагЕ1п == 1 РЦ = 2еАВ; е1яепй пагЕ1п == 2 А хясЬаг(СР) РЦ = АВ + СР 1; РЦ = 2 * се11(РЦ / 2); е1яе11 пагЕАп == 2 ш = шах(АВ); '/ Мах1шпш б1шепя1оп. Х Р1по ровег-о1-2 аС 1еаяС Сч1се ш. Р = 2 пехсроч2(2еш); РЦ = [Р, Р]; е1яепй пагЕАп == 3 ш = шах([АВ СР]); '/ Мах1шщп с)1шепв1оп. Р = 2 пехСроч2(2*ш); РЦ = [Р, Р]; е1яе еггог('ЫгопЕ пшпЬег о1 гприсв.') епб еФункции р пехсроч2(п) возвращает наименьшую степень р числа 2, дли которой 2е не меньше абсолютной величины п. 132 1; анл ~.
~)б>або ~ла ~: ча~ тпоо~ной облзс~аи ~ Опрело лик РЯ с и~ею~пьн~ функции расЫебв~ле. вычис.~ии бьктьк«* щ>еоб~ж- е „б (3~~5) 4. Умножить преобразование Фурье на передаточную функцию фильтра; С = Н.еу; 5. Найти вещественную часть обратного преобразования Фурье от С: я = геа1(Шс2(С)); 6. Вырезать верхний левый прямоугольник исходных размеров: 8 = 8(1: в1яе(1,1), 1;в1зе(1,2)); Эта процедура фильтрации схематически изображена на рнс.
4.8. Предварительная стадия обработки может состоять из определения размеров изображения, вычисления параметров расширения и генерации фильтра. Заключительная стадия обработки состоит в выделении вещественной части результата, обрезания изображения до исходного размера и его конвертации в класс цбпв8 или ибпб16 для сохранения на диске. у(х, у) Входное изображение б(х, у) Улучшенное изображение Рнс. 4.8. Основзгьге шаги фильтрации в частотной области Передаточная функция фильтра Н(и, с) на рис. 4.8 умножается на вещественную и мнимую части Г(и, о).