Гонсалес Р., Вудс Р. Цифровая обработка изображений (3-е изд., 2012) (1246138), страница 42
Текст из файла (страница 42)
Сравнивая это изображение с оригиналом на рис. 3.27(а)или с результатом эквализации гистограммы на рис. 3.27(б), легко заметить очевидные детали в правой части рис. 3.27(в), как бы вытащенные из темноты. Отметим, например, четкость контуров темной нити накаливания. Заслуживает186Глава 3. Яркостные преобразования и пространственная фильтрациявнимания тот факт, что яркие области в левой части остались почти неизмененными, что являлось одним из первоначальных требований.■3.4.
Îñíîâû ïðîñòðàíñòâåííîé ôèëüòðàöèèВ настоящем разделе выносятся на рассмотрение несколько основных концепций, лежащих в основе пространственной фильтрации в обработке изображений. Пространственная фильтрация является одним из основных инструментов, используемых в данной области для широкого спектра приложений,поэтому крайне рекомендуется выработать твердое понимание этих концепций.Как отмечалось в начале этой главы, приводимые здесь примеры в основномимеют отношение к применению пространственных фильтров для улучшенияизображений. Другие приложения пространственной фильтрации рассматриваются в дальнейших главах.Термин фильтр заимствован из области частотной фильтрации, которая естьтема следующей главы, где «фильтрация» относится к принятию (пропусканию)или подавлению определенных частотных компонент.
Например, фильтр, который пропускает нижние частоты, называется низкочастотным фильтром. Цель,на которую направлен эффект, производимый низкочастотным фильтром, заключается в размывании (сглаживании) изображения. Подобное сглаживаниеможно выполнить прямо по изображению путем использования пространственных фильтров (также называемых пространственными масками, ядрами,шаблонами или окнами)8. Фактически, как будет показано в главе 4, имеется взаимно однозначное соответствие между линейными пространственными фильтрами и фильтрами в частотной области.
Однако пространственные фильтрыпредлагают значительно большую гибкость, поскольку, как будет видно далее,они могут быть использованы также для нелинейной фильтрации, что не можетбыть реализовано в частотной области.См. раздел 2.6.2 касательно линейности.3.4.1. Механизмы пространственной фильтрацииНа рис. 3.1 мы кратко обрисовали, что пространственный фильтр состоитиз (1) окрестности (обычно небольшого прямоугольника) и (2) заданной операции, которая выполняется над пикселями изображения, попадающими в окрестность. Фильтрация создает новый пиксель, значение которого зависит от оператора фильтра, а координаты совпадают с координатами центра окрестности.98Также часто используется термин оператор. — Прим.
перев.Полученное на выходе фильтра значение обычно присваивается пикселю в соответствующем месте нового изображения, создаваемого как выход результата фильтрации изображения. В редких случаях значение на выходе фильтра замещает первоначальное значение пикселя в исходном изображении; в такой ситуации новое значение будетменять содержание изображения, все еще находящегося в процессе обработки.93.4. Основы пространственной фильтрации187Обработанное (фильтрованное) изображение возникает в процессе сканирования исходного изображения фильтром. Если оператор, выполняемый надпикселями исходного изображения, является линейным, то фильтр называютлинейным пространственным фильтром.
В противном случае фильтр являетсянелинейным. Первоначально внимание будет сосредоточено на линейных фильтрах, а затем будут проиллюстрированы некоторые простые нелинейные фильтры. Раздел 5.3 содержит более полный список нелинейных фильтров и их приложений.Начало координат изображенияyПиксели изображенияПиксели изображения–w(–1,–1)w (–1, 0)w (–1, 1)w(0,–1)w (0, 0)w (0, 1)w(1,–1)w (1, 0)w (1, 1)Изображениеxf (x – 1, y – 1)f(x – 1, y)f (x – 1, y + 1)f (x, y – 1)f(x, y)f(x, y + 1)f (x + 1, y – 1)f (x + 1, y)f(x + 1, y + 1)Коэффициентымаски фильтраЭлементы областиизображенияпод маскойРис.
3.28. Схема линейной пространственной фильтрации при использованиимаски фильтра 3×3. Выбранная форма обозначения координат коэффициентов маски фильтра упрощает запись выражений для линейной фильтрации188Глава 3. Яркостные преобразования и пространственная фильтрацияНа рис. 3.28 иллюстрируется схема линейной пространственной фильтрации с использованием окрестности 3×3 пикселей. В каждой точке (x, y) изображения отклик g(x, y) задается суммой произведений коэффициентов фильтрана соответствующие значения пикселей в области, покрытой маской фильтра:g ( x, y ) = w(−1, −1) f ( x − 1, y − 1) + w(−1, 0) f ( x − 1, y ) + K+w(0, 0) f ( x, y ) + K++ w(1, 0) f ( x + 1, y ) + w(1,1) f ( x + 1, y + 1).Заметим, что центральный коэффициент w(0, 0) стоит при значении пикселя в точке (x, y).
В случае маски размерами m×n будем полагать, что m = 2a + 1и n = 2b + 1, где a и b суть неотрицательные целые. Это означает, что в дальнейшем будут рассматриваться маски нечетных размеров, причем наименьшейбудет маска 3×3 элемента. В общем виде фильтрация изображения размерамиM×N с помощью фильтра размерами m×n задается выражениемag ( x, y ) = ∑b∑ w(s,t ) f ( x + s, y + t ) ,s =− a t =− bгде x и y изменяются так, что каждая точка оператора w в какой-то момент попадает на каждый пиксель изображения f.В принципе, возможно работать и с окрестностями четного размера и даже смесью четного и нечетного размеров. Однако работа с нечетными размерами упрощает индексирование и является интуитивно более естественной, посколькуцентр в таких фильтрах имеет целочисленные координаты.3.4.2.
Пространственная корреляция и сверткаСуществуют две близкородственные концепции, которые при выполнениилинейной пространственной фильтрации необходимо четко понимать. Однаиз них — корреляция, а другая — свертка. Корреляция есть процесс движениямаски фильтра по изображению и вычисление суммы произведений значенийэлементов маски и значений пикселей, на которые попадают соответствующиеэлементы маски, для всех точек изображения; в точности, как объяснялосьв предыдущем разделе. Механизмы свертки такие же, но за исключением того,что предварительно маска фильтра поворачивается на 180°.
Лучшим способомобъяснить различия между двумя концепциями является пример. Начнем с одномерной иллюстрации.На рис. 3.29(а) показана одномерная функция f вместе с некоторым фильтром w, а рис. 3.29(б) показывает начальную позицию для выполнения корреляции. Первое, что мы замечаем, — это что имеются участки функций, которыене перекрываются.
Решение этой проблемы состоит в расширении f добавлением нулей с обеих сторон в количестве, достаточном для перекрытия с w.Если фильтр имеет размер m, то необходимо добавить m – 1 нулей с каждойстороны f. На рис. 3.29(в) показана корректно расширенная функция. Первымзначением корреляции является сумма произведений элементов f и w для начальной позиции, показанной на том же рисунке (сумма произведений равна0). Этот результат соответствует смещению x = 0. Чтобы получить второе значе-3.4.
Основы пространственной фильтрацииКорреляцияНачалоwкоординат f1 2 3 2 8(а) 0 0 0 1 0 0 0 0(б)0 0 0 1 0 0 0 01 2 3 2 8189СверткаНачалоw повернута на 180°координат f0 0 0 1 0 0 0 08 2 3 2 1(и)0 0 0 1 0 0 0 08 2 3 2 1( к)Выравнивание начальной позицииРасширение нулями(в) 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 01 2 3 2 80 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 (л)8 2 3 2 1(г) 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 01 2 3 2 80 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 (м)8 2 3 2 1Позиция после одного сдвига(д) 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 01 2 3 2 80 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 (н)8 2 3 2 1Позиция после четырех сдвигов(е) 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 01 2 3 2 8Конечная позиция(ж)Полный результат корреляцииПолный результат свертки0 0 0 8 2 3 2 1 0 0 0 00 0 0 1 2 3 2 8 0 0 0 0Обрезанный результат корреляции(з)0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 (о)8 2 3 2 10 8 2 3 2 1 0 0Рис.
3.29.(п)Обрезанный результат свертки0 1 2 3 2 8 0 0(р)Иллюстрация одномерной корреляции и свертки фильтра с дискретным единичным импульсом. Заметим, что и корреляция, и сверткаявляются функциями смещенияние корреляции, w сдвигается вправо на один пиксель (смещение x = 1), и опятьвычисляется сумма произведений. Результат опять равен 0. В действительностипервый ненулевой результат появится при x = 3, когда восьмерка в w наползетна единичку в f и результат корреляции будет равен 8. Продолжая в таком духе,мы получим полный результат корреляции, показанный на рис.
3.29(ж). Заметим, что в итоге получилось 12 значений x (т. е. x = 0, 1, 2, …, 11) для полногосдвига w по f, так что каждый элемент w соответствовал каждому пикселю f. Часто удобно работать с корреляционными массивами, имеющими тот же размер,что и f, и в таком случае приходится обрезать полную корреляцию до размеровисходной функции, как это показано на рис.
3.29(з).Из предыдущего параграфа следует отметить два важных факта. Во-первых,корреляция есть функция смещения фильтра. Другими словами, значение корреляции в нулевой позиции соответствует нулевому смещению, значение в первой позиции — единичному смещению и так далее. Второй факт, который сле-190Глава 3. Яркостные преобразования и пространственная фильтрациядует отметить, — это то, что корреляция фильтра w с функцией, содержащейединицу в одной точке и нули во всех остальных, приводит к результату, являющемуся копией w, но повернутому на 180°. Такую функцию называют дискретным единичным импульсом.
Итак, можно заключить, что корреляция некоторойфункции с дискретным единичным импульсом приводит к зеркальному повороту функции на 180° в месте положения импульса.Расширение нулями не является единственным возможным вариантом. Так, например, можно m – 1 раз дублировать значения первого и последнего элементов f,или зеркально перевернуть m – 1 первых и последних элементов f и использоватьих для расширения.Концепция свертки является краеугольным камнем теории линейных систем. Как будет обсуждаться в главе 4, фундаментальным свойством сверткиявляется то, что свертка функции с единичным импульсом дает в результатекопию функции в месте импульса. В предыдущем параграфе было показано,что корреляция также дает в результате копию функции, однако повернутуюна 180°.
Таким образом, если предварительно повернуть фильтр и затем выполнить скользящую сумму операций умножения, то в результате мы должныполучить желаемый результат. Как видно из правого столбца на рис. 3.29, этои в самом деле так. Таким образом, видно, что для выполнения свертки достаточно перевернуть одну из функций на 180° и выполнить те же операции, чтои в случае корреляции.