Гонсалес Р., Вудс Р. Цифровая обработка изображений (3-е изд., 2012) (1246138), страница 43
Текст из файла (страница 43)
Оказывается, не имеет значения, которую из двух функций переворачивать.Заметим, что поворот функции на 180° эквивалентен ее горизонтальному перевороту.Рассмотренные выше принципы легко расширяются на изображения, чтоиллюстрируется на рис. 3.30. В случае фильтра размерами m×n изображение расширяется минимум на m – 1 строку нулей сверху и снизу, а также на n – 1 столбец нулей слева и справа. В данном случае m и n равны 3, так что f расширяетсяна две строки нулей сверху и снизу и на два столбца нулей справа и слева, какэто видно на рис. 3.30(б). На рис. 3.30(в) показано начальное положение маскифильтра для выполнения корреляции. На рис.
3.30(г) представлен полный результат корреляции, а на рис. 3.30(д) — соответствующий обрезанный результат. Еще раз заметим, что в результате получили повернутые на 180° значенияэлементов фильтра. В случае свертки требуется предварительно, как и ранее,повернуть маску и затем выполнить скользящее суммирование произведений.Результат представлен на рис.
3.30(е)—(з). Еще раз видно, что свертка функциис единичным импульсом копирует функцию в месте импульса. Ясно, что еслимаска фильтра является симметричной, то и корреляция, и свертка дадут одинаковый результат.В двумерном случае поворот на 180° эквивалентен перевороту маски сначалапо одной оси, а затем по другой.3.4. Основы пространственной фильтрации00000147000000Началокоординат0 0 0 00 0 0 00 1 0 00 0 0 00 0 0 0(а)f(x, y)w(x, y)1 2 34 5 67 8 9Начальноеположение w2 3 0 0 05 6 0 0 08 9 0 0 00 0 0 0 00 0 0 1 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0(в)000000000000000000000000000Повернутая w963000000852000000741000000000000000000010000(е)000000000Расширенное f0 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 1 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0(б)000000000Полный результаткорреляции0 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 00 0 0 9 8 7 00 0 0 6 5 4 00 0 0 3 2 1 00 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 0(г)0000000000000000000000000000000000000000000000000000000000000000000000000000000000001470000 00 00 02 35 68 90 00 00 0(ж)000000000Обрезанныйрезультат корреляции0 0 0 0 00 9 8 7 00 6 5 4 00 3 2 1 00 0 0 0 0(д)Полный результат свертки000000000191000000000000000000Обрезанныйрезультат свертки0000001470025800369000000(з)Рис.
3.30. Корреляция (средний ряд) и свертка (нижний ряд) двумерного фильтра с двумерным единичным импульсом. Нули показаны серым дляудобства визуального анализаПодводя итог обсуждению, сформулируем сказанное в аналитическом виде.Корреляция фильтра w(x, y) размерами m×n с изображением f(x, y), обозначаемаякак w(x, y)f(x, y), задается уравнением, записанным в конце предыдущего раздела, которое повторим здесь для удобства:aw( x, y ) f ( x, y ) = ∑b∑ w(s,t ) f ( x + s, y + t ) .(3.4-1)s =− a t =− bЭто уравнение вычисляется для всех значений переменных смещения x и y,так что все элементы из w попадают на каждый из пикселей f, при этом предполагается, что f расширено соответствующим образом.
Как объяснено ранее, a = (m – 1)/2, b = (n – 1)/2 и для удобства обозначений предполагается, чтоm и n — целые нечетные.192Глава 3. Яркостные преобразования и пространственная фильтрацияПодобным же образом свертка w(x, y) с f(x, y), обозначаемая как w(x, y)f(x, y)10,задается уравнениемaw( x, y ) f ( x, y ) = ∑b∑ w(s,t ) f ( x − s, y − t ),(3.4-2)s =− a t =− bгде знак минус действует как смена порядка на обратный (т. е. поворот на 180°).Переворот и сдвиг f вместо w сделан для упрощения обозначений, а также следуя общепринятым правилам.
Результат тот же самый. Как и в случае корреляции, это уравнение вычисляется для всех значений переменных смещения xи y, так что все элементы из w попадают на каждый из пикселей f, расширенногосоответствующим образом. Вам следует раскрыть уравнение (3.4-2) для случаямаски 3×3 и убедиться, что результат, получаемый с помощью данного уравнения, идентичен примеру на рис. 3.30. На практике часто приходится работатьс алгоритмом, который реализует уравнение (3.4-1).
Если необходимо выполнить операцию корреляции, следует на вход алгоритма подавать w; если же необходима свертка, то предварительно следует повернуть w на 180°. Обратныйвариант будет в случае, если реализован алгоритм по уравнению (3.4-2).Достаточно часто, когда не возникает неясности, результат корреляции илисвертки обозначают через g(x, y), а не w(x, y) f(x, y) или w(x, y) f(x, y).
Например,см. уравнение в конце предыдущего раздела или уравнение (3.5-1).Как уже упоминалось ранее, свертка является краеугольным камнем теории линейных систем. Как будет показано в главе 4, свойство свертки функциис единичным импульсом копировать функцию в место расположения импульсаиграет центральную роль во многих важных выводах. Мы вернемся к сверткев главе 4 в контексте преобразования Фурье и теоремы о свертке.
Однако, в отличие от уравнения (3.4-2), мы будем иметь дело со сверткой функций одинаковых размеров. Форма уравнения остается той же самой, но пределы суммирования становятся другими.Использовать корреляцию или свертку для выполнения пространственнойфильтрации — это вопрос предпочтения.
Поскольку в реальности как формула(3.4-1), так и (3.4-2) могут быть использованы для выполнения функции другой,достаточно лишь перевернуть фильтр, важным становится то, что маска фильтра, используемая в данной задаче фильтрации, должна быть задана способом,соответствующим планируемой операции. В настоящей главе все результатылинейной пространственной фильтрации основываются на уравнении(3.4-1).Наконец, мы обращаем внимание, что в литературе по обработке изображений встречаются термины фильтр свертки, маска свертки или ядро свертки.Как правило, эти термины используются для обозначения пространственногофильтра и не обязательно, чтобы этот фильтр использовался именно для свертки.
Аналогично фраза «свертка маски с изображением» часто используется дляобозначения скользящего процесса суммирования произведений, который мытолько что рассмотрели, а не обязательно для дифференциации между корреля10Поскольку свертка является коммутативной операцией, имеем w(x, y)f(x, y) =f(x, y)w(x, y). Это свойство не выполняется для корреляции, как можно видеть, например, поменяв местами функции на рис. 3.29(а).3.4. Основы пространственной фильтрации193цией и сверткой. Вернее, она используется для общего указания любой из этихдвух операций.
Эта неточность терминологии является частым источником путаницы.3.4.3. Векторное представление линейной фильтрацииКогда интерес представляет характеристика отклика R некоторой маски (либокорреляции, либо свертки), иногда удобно записать сумму произведенийв видеmnR = w1z1 + w2 z 2 + ... + wmn zmn = ∑ wk zk = wT z ,(3.4-3)k =1где множество w — коэффициенты фильтра размерами mn, а z — соответствующие значения яркостей пикселей изображения, покрываемых фильтром.
Чтобы использовать это уравнение для свертки, мы просто поворачиваем маскуна 180°, как объяснено в предыдущем разделе. Подразумевается, что уравнение(3.4-3) справедливо для конкретной пары координат (x, y). В следующем разделебудет видно, почему такая форма записи удобна для объяснения характеристикзаданного линейного фильтра.Обратитесь к разделу обучающих материалов на интернет-сайте книги для краткого обзора векторов и матриц.В качестве примера на рис. 3.31 показана общая маска 3×3 с коэффициентами, обозначенными так же, как и выше. В этом случае уравнение (3.4-3) принимает вид9R = w1z1 + w2 z 2 + ... + w9 z9 = ∑ wk zk = wT z ,(3.4-4)k =1где w и z — 9-мерные вектора, сформированные из коэффициентов маски и, соответственно, значений яркостей пикселей изображения, покрываемых фильтром.3.4.4. Формирование масок пространственных фильтровДля формирования линейного пространственного фильтра размерами m×n требуется задать mn коэффициентов маски. И наоборот, выбор этих коэффициен-Рис.
3.31.w1w2w3w4w5w6w7w8w9Другой вариант представления часто используемой маски фильтрапо окрестности 3×3 элемента194Глава 3. Яркостные преобразования и пространственная фильтрациятов базируется на том, какие действия ожидаются от фильтра при условии, чтов случае линейной фильтрации мы можем реализовать лишь сумму произведений. Предположим, например, что требуется заменить значение пикселя на изображении значением средней яркости по окрестности 3×3 с центром в данномпикселе.
Среднее значение в любой точке (x, y) изображения есть сумма девятизначений яркости в окрестности 3×3 с центром в (x, y), деленная на 9. Полагая,что zi, i = 1, 2, ..., 9, обозначает эти яркости, среднее будет равноR=1 9∑ zi .9 i =1Но эта формула совпадает с (3.4-4) при значениях коэффициентов wi = 1/9.Другими словами, операция линейной фильтрации по маске 3×3, коэффициенты которой равны 1/9, выполняет желаемое усреднение.