Гонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде Matlab (2006) (1246139), страница 26
Текст из файла (страница 26)
Если функция Н(и, о) была вещественной, то фазовая часть произведения не меняется, что видно из фазового уравнения (см, б 4.1), так как при умножении вещественной и мнимой части комплексного числа на одно и то же вещественное число фазовый угол не меняется. Такие фильтры принято называть фильтрами с нулевым сдвигом фазы. В этой главе рассматриваются только такие фильтры. Из теории линейных систем хорошо известно, что при выполнении некоторых слабых условий подача одиночного импульса в линейную систему полностью описывает характеристики этой системы.
При работе с конечными линейными системами, что имеет место в данной книге, отклик линейной системы, включая отклик на одиночный импульс, также является конечным. Если линейная система является пространственным фильтром, то можно полностью описать этот фильтр, подавая на вход одиночный импульс и наблюдая соответствующий отклик. Такие фильтры называются фильтрами с конечной импульсной характеристикой (Е1В., Е(п11е 1шрц1бе Веэропве).
Все пространственные фильтры в данной книге имеют тип Е1Н. ~~36 Г 4. Об б «б 4.3.3. М-функция для фильтрации в частотной области Последовательность описанных выше шагов фильтрации используется в этой главе и в части следующей, поэтому удобно иметь М-функцию, аргументами которой являются изображение и передаточная функция фильтра, которая выполняет все необходимые процедуры фильтрации и возвращает отфильтрованное и обрезанное изображение. Следующая функция как раз совершает все эти действия. 1ш»сСАоп я = «1СС111СИ, Н) '/РРТР11Т Рет1огшв 1ге<(пенсу доша1п 111Сег1пя.
'/ О = РРТР1ЕТ(Р, Н) т11Сетв Р Ап СЬе 1гейпепсу ооша1п пв1пя СЬе '/ 111Сег Сгапв1ег 1ппсС1оп Н. ТЬе опсрпС, О, Ав СЬе 111Сегеб '/, Ашайе, вЬАсЬ Ьая СЬе ваше я1яе ая Р. РРТР1ЬТ апсошаСАса11у раба '/ Р Со Ье СЬе ваше вьае ав Н. РппсС1оп РАРРЕРБ12Е сяп Ье пяе«1 '/ Со с(есетш1пе ап арргортьасе я(яе Хот Н. '/ '/ РРТР11Т аввшпев СЬаС Р Ав геа1 апо СЬаС Н Ая а геа1, ппсепсетео, '/ с1тсп1ат1у-вушшеСт1с 111Сег 1ппсС1оп. '/ ОЬСатп СЬе РРТ о1 СЬе ра«Ыео 1прпС. Р = ггС2(т, втве(Н, 1), ятяе(Н, 2)); % Рет1отш 111Сет1пя.
я = геа1(1ттС2(Н.»Р)); '/ Стор Со ог181па1 в1яе. я = я(1:я1ае(1, 1), 1:я1ве(Х, 2)); Техника построения фильтров в частотной области обсуждается в следующих трех параграфах. 4.4. Построение фильтров в частотной области по пространственным фильтрам В общем случае фильтрация в пространственной области является более эффективной с вычислительной точки зрения, чем фильтрация в частотной области, когда используются «малые» фильтры.
Точное определение этой малости является весьма трудным вопросом, ответ на который зависит от таких факторов, как тнп компьютера и выбор алгоритма, а такжс от многих других параметров, например, от размеров буферов. Важную роль играет то обстоятельство, насколько удобно реализовано обращение с комплексными данными, а также множество других факторов, которые выходят за рамки нашего обсуждения. Сравнение, выполненное в )Вг18Ьаш, 1988), для одномерных функций показало, что фильтрация с использованием алгоритма быстрого преобразования Фурье ГРТ выполняется быстрее, чем пространственная реализация этого процесса, когда функция имеет примерно 32 точки, т.е.
их число невелико. Поэтому полезно знать, как конвертировать пространственные фильтры в эквивалентную частотную форму, чтобы иметь возможность сравнивать эти два подхода. Самый очевидный метод построения частотного фильтра Н, отвечающего пространственному фильтру Ь, состоит в выполнении команды Н = 11С2(Ь, РЦ(1), РЦ(2)), о. ~ . л б 13~~7) где значения вектора РЦ зависят от размеров изображения, которое будет фильтроваться (см.
предыдущий параграф). Тем не менее, в этом параграфе мы будем интересоваться следующими вопросами: (1) как преобразовать пространственный фильтр в частотный; (2) как сравнивать результаты, получаемые при пространственном фильтровании функцией 1ш1 11хет, с результатами фильтрования в частотной области, которые обсуждались вьппе.
Как объяснялось в 3 3.4.1, раз функция 1шХ11ьет использует корреляцию и начало координат фильтра расположено в его центре, то для достижения эквивалентных результатов при обоих подходах необходимо выполнить определенную предварительную обработку данных. В пакете имеется функция 1тецх2, которая в точности совершает эти действия, а выходом этой функции служит соответствующий фильтр в частотной области. Функция Хгейх2 вычисляет частотный отклик фильтра Р1В., а в этой книге рассматриваются только такие фильтры.
Тогда в результате получаем нужный фильтр в частотной области. Интересующая нас команда выглядит следующим образом: Н = 1геах2()л, Н, С), где )л — это двуллерный пространственный фильтр, а Н вЂ” соответствующий ему двумерный фильтр в частотной области. Здесь й обозначает нужное нам число строк, а С вЂ” нужное число столбцов фильтра Н. Обычно полагается, что Н = = РЦ(1) и С = РЦ(2) (см. 3 3.4.1). Если записать функцию тте<р2 без обозначения выходной переменной, то абсолютная величина Н будет изображена на рабочем столе МАТЬАВ в виде трехмерного аксонометрического графика. Использование в приложениях функции Хтеах2 легко понять, разобрав следующий пример. Пример 4.2. Сравнение. фильтрации в првстрансгпвеннвй и часгпвгпнвй областях.
Рассмотрим изображение 1 размером 600х600 пикселов, приведенное иа рис. 4.9, а). Сейчас мы сгенерируем фильтр Н в частотной области, соответствующий пространственному фильтру Собела, который улучшает вертикальные края изображения (ель табл. 3.4). Затем мы сравним результаты фильтрации 1 в пространственной области с помощью маски Собела (используя 1шй11сет) с результатами, полученными при совершении эквивалентнол о процесса в частогной области. На практике фильтрация с малыми фильтрами вроде маски Собела может быть реализована непосредственно в пространственной области, как говорилось раньше. Однако мы выбрали этот фильтр в демонстративных целях, так как он имеет простые коэффициенты, а результаты его фильтрации интуитивно ясны и легко поддаются сравнению.
С болыпими фильтрами можно обращаться аналогично. На рис. 4,9, б) дан спектр Фурье 1, полученный следующими командами: » Р = 11ь2(Г); » Я = 11хв)лИь(1оЯ(1 ь аЬв(Р)); » Я = Яаса1е(Я); » 1шв)лоя(Я); р.лейби~ Продемонстрированные подходы можно использовать при реализации любых пространственных фильтров Г1К произвольных размеров с помощью фильтров в частотной области.
о 4.5. Прямое построение фильтров в частотной области В этом параграфе будет показано, как можно строить фильтры непосредственно в частотной области. Мы будем работать с циклически симметричными фильтрами, которые определяются как различные функции расстояния от начала координат преобразования. Разработанные в качестве примеров М-функции могут служить основой для построения других похожих функций. Мы начнем с реализации нескольких известных [низкочастотных) фильтров. Затем мы покажем, как с помощью дополнительных средств визуализации и построения графиков в МАТВАВ можно удобно отображать эти фильтры на экране компьютера. В конце параграфа будут кратко обсуждаться [высокочастные) фильтры, повышающие резкость изображения.
4.5.1. Построение сеточных массивов для использования в фильтрах в частотной области В следующих М-функциях важную роль играет процедура вычисления расстояния между любыми точками частотного прямоугольника. Поскольку в МАТ) АВ прн выполнении РЕТ предполагается, что начало отсчета находится в верхнем левом углу частотного прямоугольника, вычисления расстояния ведутся от этой точки.
Для лучшей визуализации центр данных можно смещать функцией ттеяЬТХГ. Следующая функция отсин создает сеточный массив, который используется при вычислении расстояний и при других подобных действиях. (См. разбор функции шеяЬВгтс) в 5 2.10.4). Сеточный массивы, которые строит функция шеяЬйг1П, уже приспособлены для применения в 11с2 и 111г2 без дополнительного пере- упорядочения'. 1иисгйоп [О, 7] = с)утиц(М, М) %йгт1П/ Сошрисея шеяЬяг16 1гес)иепсу шасг1сея. '/ [О, 'т] = ОгТОЧ(М, И) сошрисея шеяЬбг16 тгес1иепсу шасг1сея О апс1 % в'.
У алб 7 аге ияети1 Хог сошриг1ия Хгейиелсу-с)оша1п 111тег % 1ипст1опя СЬаС сал Ье ияео итГЬ Эгтв1ЕТ. О алб 7 аге ЬогЬ % М-ьу-й. '/ Бес ир галке о1 чагйаЬ1ея. и = О:(М 1); у = О:(И 1); % Сошрисе СЬе 1питсея тот ияе тл шеяЬВг1с). 1дх = 11пс)(и > М/2); и(1с1х) = и(1ох) М; 1с1у = 11Ы[ц > й/2); 'Функция 11вв обсуждается в 5 5.2.2. ~~~~42 Глава 4.