Гонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде Matlab (2006) (1246139), страница 22
Текст из файла (страница 22)
В пакете предусмотрены две функции для совершения общей нелинейной фильтрации: п1111сег и соН11С. Первая из них совершает операции непосредственно в матричной форме, а функция со1111С организует данные н форме столбцов. Хотя со1т11с требует болыпего объема памяти, она выполняется существенно быстрее, чем в1т11бет. В большинстве приложений обработки изображений скорость вычисления является первостепенным фактором, поэтому функция со1Х11С является более предпочтительной при реализации общей нелинейной пространственной фильтрации. Для заданного входного изображения ~ размера ЛХ х Аг и для заданной окрестности размера т хи функция со1б11С строит матрицу, назовем ее А, максимального размера гппхЛХАг~, в которой каждый столбец соответствует пикселам, окруженным окрестностью с центром в некоторой точке изображения.
Например, первый столбец соответствует пикселам, окруженным окрестностью, центр которой расположен в самом левом верхнем углу изображения т. Все необходимые расширения выполняются функцией со1~11с (с помощью нулевых добавок). Синтаксис функции со1т11С имеет вид я = со1111С[1, [ш, и], 'в11б1нб', йтип, рагашехегв) где, как и раныпе, ш и п — это размеры области фильтра, 'в1161пб' обозначает, что процесс производится скольжением области тхп от пиксела к пикселу по входному изображению б, Фтцп обозначает ссылку на функцию 1цц, а раташееетв — это параметры (разделенные запятыми), которые могут потребоваться функции т1щ. Символ й называется дескрииторолг функции, который является особым типом данных МАТ[,АВ, содержащим информацию, которая используется при вызове функции.
Как скоро будет видно, эта конструкция является весьма плодотворной. В силу организации матрицы А, функция бац должна обращаться к каждому столбцу этой матрицы индивидуально, возвращая вектор-строку и, в которой »Матрица А всегда имеет глп строк. но число столбцов может меняться в зависимости от размера входного изображения. Выбор размера производится функцией со1111« автоматически.
записан результат для всех столбцов. В А'-ом элементе вектора тт стоит результат применения операции тцп к А-ему столбцу матрицы А. Поскольку матрица А может иметь до МХ столбцов, максимальный размер и равен 1 хЛХХ. Обсуждавшаяся в предыдущих параграфах линейная фильтрация имеет средства для расширения изображений, чтобы разрешать граничные проблемы, присущие пространственной фильтрации. Однако при использовании со1111С необходимо заранее расширить входное изображение до его фильтрации. Для этого служит функция рабаттау, которая в двумерном случае имеет синтаксис 1р = рабаггау(1, 1г с), шеСЬоб, 61гесС1оп), где Х вЂ” входное изображение, 1р — расширенное изображение, [г с) дает число добавляемых к 1 строк и столбцов, а параметры шеСЬоб и 61гесС1оп объясняются в табл. 3.3.
Например, если изображение 1 = ~1 2; 3 4), то команда » 1р = рабаггауИ, ~3 2), 'тер11.сате', 'ровС' ) дает результат 1р = 1 2 2 2 3 4 4 4 3 4 4 4 3 4 4 4 3 4 4 4. Если среди аргументов отсутствует 61гесС1оп, то значение по умолчанию есть 'ЬоСЬ', а если отсутствует аргумент шеСЬоб, то расширение по умолчанию делается нулями. Если оба параметра опущены, то делается расширение нулями со всех сторон изображения. В конце вычислений изображение обрезается до исходного размера. Таблица 3.3. Опции функции раааггау Опции Описание Мерной 'вуннегг1с' Размер изображения увеличивается с помощью его зеркального отобра- жения через границы. Размер изображения увеличивается с помощью продолжения пригранич- ными значениями.
'гер11сасе' Расширение производится путем периодическою повторения исходного изображения. 'сСгсп1ех' Рггесвоп Расширять перед первыми элементами по каждой размерности. Расширять после последних элементов по каждой размерности. Расширить в обе стороны по каждой разл~ерности. 'рте' 'ровс' 'ьогь' ~~~~! 2 Глава о.
Преобразования яркостпи изобрпстсений и простпранстеснная фильтпрация Пример 3.8. Использование функции со1111С при реализации пелинейной пространственной фильтрации. В качестве иллюстрации применения функции со1111С мы реализуем нелинейный филыр, отклик которого в любой точке совпадает со средним геометрическим яркости пикселов в окрестности с центром в данной точке. Геометрическим средним окрестности размера тхп называется произведение величин яркости всех пикселов окрестности, возведенное в степень 1/тп.
Сначала построим нелинейную функцию, которую мы назовем 8шеап~: 1цпсС1оп ч = бшеап(А) пш = в1хе(А, 1); '/ ТЬе 1еп8С)) о1 СЬе со1ишпв о1 А 1в а1иаув пш. ч = ргоа(А, 1). [1/шп); Для подавления граничных эффектов мы расширим изображение, например, с помощью опции 'гер1з.саСе ' в функции рас1аггау: » 1 = раааггау[Х, [ш и), 'гер11сапе'); Наконец, вызываем функцию со1111С » 8 = со1111СИ, [ш п), 'в11а1п8', э)дпеап); В этих действиях имеется несколько важных моментов.
Прежде всего отметим, что несмотря на то, что матрица А является частью аргументов функции 8шеап, сама она не включается в список аргументов функции со1111С. Эта матрица автоматически передается в 8шеап из со1111С посредством дескриптора функции. Кроме того, поскольку матрица А обрабатывается в со1111С автоматически, число столбцов в А является переменным (но, как уже подчеркивалось, число строк, т.е, длина столбца в А, всегда равна пш). Следовательно, размер А должен вычисляться каждый раз при вызове функции аргумента функцией со1111С. Процесс фильтрации в нашем случае заключается в вычислении произведения всех пикселов окрестности и возведения результата в степень 1/тп. Для каждой пары координат [х,у) результат фильтрации будет записан в соответствующий элемент вектора ч.
Функция, обозначенная дескриптором й, может быть любой функцией, которую можно вызывать из того места, где этот дескриптор был создан. Ключевое требование заключается в том, что нелинейная функция оперирует над столбцами матрицы А и возвращает вектор-строку, содержал)ую результат для каждого индивидуального столбца. Затем функции со1111С принимает эти результаты и группирует их в виде соответствующего выходного изображения 8. с) Некоторые часто встречающиеся нелинейные фильтры можно также построить на основе других функций МАТВАВ и 1РТ, например, Аш111Сег и ога111С2 [см. Э 3.5.2).
В частности, функция вр111С из 3 3.5 реализует фильтр геометрического среднего из примера 3.5 с помощью функции Аш111Сег и стандартных функций 1о8 и ехр системы МАТ1.АВ. При этом производительность вычислений обычно повышается, а объем требуемой памяти становится меныпе, чем зфуикция рсоа(А) возвращает произведение элементов А, а функция рсоа(А, ага) вычисляет произведение алел~вязов А вдоль размерности 61а. ~~~~~ 4 Глава з. Преобразования яркости изображений и пространственное фильтраиие у соШ1с.
Тем не менее, функция со1Х11с остается хорошим выбором при выполнении операций нелинейной фильтрации, для которых нет альтернативных реализаций. 3.5. Стандартные пространственные фильтры из пакета !РТ В этом параграфе обсуждаются линейные и нелинейные пространственные фильтры, которые поддерживаются в пакете 1РТ.
Дополнительные нелинейные фильтры будут реализованы в конце 3 5.3. 3.5.1. Линейные пространственные фильтры В пакете 1РТ имеются некоторые стандартные двумерные линейные пространственные фильтры, которые можно получить из функции 1врес1а1, которая генерирует маску фильтра и при выполнении команды и = 1врес1а1('суре', рагэшесегв), где 'суре' обозначает тип фильтра, а в аргументах раташесегв задаются параметры выбранного фильтра. Пространственные фильтры, получаемые этой командой, приведены в табл.
3.4 вместе с соответствующими параметрами каждого фильтра. Пример 3.9. Использование функции 1ш111хег. Проиллюстрируем использование Хвреста1 и тш111сег при улучшении изображения фильтром Лапласа. Оператор Лапласа изображения 1(х, у) обозначается '7еу(х, у) и задается формулой д~1(х,у) д'1(х,у) В качестве численных приближений вторых производных часто используются выражения дгу — = ~(х + 1, у) + Д(х — 1, у) — 2~(х, у) дг е — = ((х, у + 1) + 1 (х, у — 1) — 2г" (х, у), дуг поэтому ~7г~ = (~(х + 1, р) + ~(х — 1, у) + ~(х, у + 1) + Дх, у — 1)) — 4Дх, у).
Это выражение можно применить в любой точке (х,у) изображения, сделав свертку со следующей пространственной маской: О 1 О 1 — 4 1 О 1 О д.д. ~ д «д ддд ДБ) Таблица Зли Пространственные фильтры функции Хврес1а1 Тип Синтаксис и параметры гврес1а1('ачегабе', [» с]). Прямоугольный усредняющий фильтр размера гхс. По умолчанию Зхз. Одно число на месте [г с] означает квадратный фильтр.