Гонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде Matlab (2006) (1246139), страница 32
Текст из файла (страница 32)
5.5, 6)), подпорченный только шумом «соль», получен командами » я = ззапозяе2('яа1С й рарет', М, М, О, 0.1); » с = тзпд(я == 1); » яя » Мя(с) = 255; Избавиться от шума «перец» можно с помощью контрагармонического фильтра с положительным значением Я. Рис. 5.5, в) построен командой » Хр = ярй11С(яр, 'сЬзаеап', 3, 3, 1.5); Аналогично, для борьбы с шумом «соль» можно воспользоваться контрагармоническим фильтром с отрицательным значением Я; » 1я = ярт11С(бя, 'сЬшеап', 3, 3, -1.5); На рис. 5.5, г) показан результат. Можно также действовать минимальным и максимальным фильтрами.
Например, рис. 5.5, д) и е) получены, соответственно, из а) и 6) с помощью следующих команд » 1ршах = ярт11С(йр, 'шах', 3, 3); » трштп = ярХ11С(йя, 'шйп', 3, 3); Другие решения с использованием функции тршйп можно получать аналогичным образом. сз 5.3.2. Адаптивные пространственные фильтры Приведенные выше фильтры пригиеняются одинаково ко всем пикселам изображения независимо от их местоположения. В некоторых случаях результат фильтрации можно улучшить, если фильтр имеет возможность менять свое действие в зависимости от характеристик изображения в области фильтрации, В качестве иллюстрации реализации адаптивной процедуры пространственной фильтрации на МАТ1,АВ рассмотрим адаптивный медианный фильтр. Как и раныпез Я«и обозначает окрестность фильтрации с центром в точке (х, у) на изображении, подвергаемом обработке. Алгоритм, который детально разобран в 1Сопга1ег, Ъ«'оос1я, 2002), (178 Глава б.
Восстановление изображений действует следующим образом. Обозначим минимум яркости в о' „, максимум яркости в з',и, медиана яркости в В „ яркость в точке (х, у). гоно птах глупее Адаптивный алгоритм медианной фильтрации действует на двух уровнях, кото- рые мы назовем уровень А и уровень В: Уровень А Если е ш < е ,е < е , то перейти на уровень В, иначе увеличить размер окна. Если размер окна < В „, то повторить уровень А, иначе подать на выход величину го„а. Уровень В Если ееио < ееп < еоооо то подать на выход ееп, иначе подать на выход величину е,е. Здесь Вол»„обозначает максимально допустимый размер окна адаптивного фильтра.
Другая особенность последнего шага на уровне А состоит в возвращении величины е» вместо медианы. Это приводит к немного меньшему размытию изображения, однако такая процедура может не заметить шум типа «соль» («перец») на постоянном заднем фоне, имеющем то же значение, что и шум «соль» («перец»). М-функция, которая реализует этот алгоритм, называется аашеа1ап. Она включена в приложение В и имеет синтаксис 1 = айршеа1эл(6, Яшах), где 6 — это фильтруемое изображение, Яшах — определенный выше максимально допустимый размер окна адаптивной фильтрации.
Пример 5.6. Адаптивная медианная фильгарация. В качестве примера рассмотрим снимок 1 монтажной платы на рис. 5.6, а), ис- порченный шумом «соль и перец», который наложен на изображение командой )) 6 = 1пшо1ве(1, 'ва11 Й рарег', 0.251, а на рис. 5.6, б) приведен результат выполнения следующей команды (см. Я 3.5.2 по поводу использования функции шей11112) )) 11 = шеах11С2(6, ~7 7], 'вушшесгтс'); Это изображение, очевидно, очищено от шума, но одновременно с этим оно стало слишком расплывчатым и искаженным (обратите внимание на то, как выглядят штырьки разъемов вверху изображения). Напротив, совершив действие >> 12 = айршеа1ап(6, 7,); мы получим изображение 5.6, в), на котором шум также отсутствует, но оно существенно четче, чем рис.
5.6, б). Н ~~( 180 Глава е. Восстановление иеобраекений 5.5. Моделирование искажающих функций Если имеется оборудование, генерирующее искаженные изображения, то можно установить природу искажения, экспериментируя с различными установками и параметрами этого оборудования. Однако доступность такого оборудования является скорее исключением, чем правилом. Более типичной является ситуация, когда производятся эксперименты с различными функциями РЯР, которые тестируются с разными алгоритмами восстановления изображений.
Другой подход состоит в математическом моделировании самих функции РБР. Такой подход выходит за рамки обсуждения н этой книге. Подробное изложение этого материала имеется в [Сопга1ег, %ообв, 2002]. Наконец, если нет доступной информации про РЯР, можно прибегнуть к «слепой деконволюции» для каких-то заключений относительно свойств РЯР.
Этот подход будет обсуждаться в 3 5.10. Конец этого параграфа будет посвящен различным методам моделирования функций РЯР с помощью функций зшХ11гег и 1врес1а1, которые были введены, соответственно, в 3 3.4 и 3.5, а также различным генераторам шума, рассмотренным ранее в этой главе. Одной из основных трудностей, с которой приходится сталкиваться при решении задач восстановления изображений, является проблема размывания и смазывания изображений. Размывание, возникающее, когда сцена и регистрирующее устройство находятся в покое по отношению друг к другу, можно смоделировать низкочастотными фильтрами в пространственной или частотной областях. Другая важная модель искажения изображений смазыванием соответствует равномерному прямолинейному перемещению сцены относительно регистрирующих устройств и датчиков в процессе фиксирующей съемки. В этом случае размытие изображений можно смоделировать с помощью функции йвресйа1 из пакета 1РТ: РБР = Хврес1а1('шогйоп', 1еп, Слега) Эта форма вызова 1врес1а1 возвращает РЯР, которая аппроксимирует эффекты линейного перемещения камеры на 1еп пикселов.
Угловой параметр свеса измеряется в градусах, причем он отсчитывается от положительной горизонтальной полуоси против часовой стрелки. Значения по умолчанию; 1еп = 9 и свеса = О, что соответствует смещению на 9 пикселов в горизонтальном направлении. Мы используем функцию 1шй11сег для построения изображения, искаженного фильтром РБР, который или известен, или построен приведенной выше командой: » я = 1ш111гег(т, РБР, 'сйгсп1аг'); где параметр 'сзгсп1аг' (см. табл, 3.2) используется для подавления граничных эффектов.
После чего искажение вносится в изображение в виде аддитивного шума по формуле » Б = я + пойве; где похее — это случайное шумовое изображение, которое имеет тот же размер, что и Б, и строится одним из методов, изложенных в 3 5.2. ы. я а е (в~~~) При сравнении различных подходов, обсуждаемых в этом и следующем параграфах, полезно работать с одним и тети же тестовым изображением. Изображение, которое строится функцией сйесКегЬоагс(, особенно удобно в этом смысле, поскольку у него очень просто изменять масштаб, не затрагивая его характерных черт.
Функция имеет следующий синтаксис С = сйесКетЬоатб(МР, М, М), где МР - зто длина в пикселах каждой клетки, И вЂ” это число строк, а М вЂ” число столбцов шахматной доски. Если параметр М опущен, то он по умолчанию приравнивается к М. Если они оба опущены, то строится классическая шахматная доска 8х8. Наконец, если отсутствует МР, то по умолчанию МР = 10 пикселов. Светлые клетки в левой половине шахматной доски будут белыми, а в правой половине они будут светло-серыми. Чтобы построитыпахматную доску, у которой все светлые клетки будут белыми, следует дать командуз >) К = 1ш2ооиЬ1е(сйесКегЬоагп(МР, М, М) ) 0.5); Изображение, которое строит функция сйесКегЬовтй, имеет класс боиЬ1е со значениями в интервале (О, 1].
Многие алгоритмы восстановления изображений работают медленно с большими изображениями. Поэтому имеет смысл экспериментировать с малыми изображениями для сокращения времени вычислений, что позволяет скорее оптимизировать алгоритм. В этом случае для целей визуализации полезно иметь возможность увеличивать изображение посредством дублирования пикселов. Это делается с помощью следующей функции (см, ее программный код в приложении В): В = р1хе1пир(А, ш, и).
Эта функция дублирует каждый пиксел ш раз по вертикали и и раз по горизон- тали. Если п опущено, то по умолчанию и = ш. Пример 5.7. Моделирование размытого зашумленного изображения. На рис. 5.7, а) построено изображение с помощью команды » Х = сЬесКегЬоатд(8); Испорченное изображение 5.7, б) получено командами » РЯР = 1врес1а1('шос1оп', 7, 45); )> КЬ = 1ш111тег(1, РЯР, 'стгси1аг'); Заметьте, что РБР это пространственный фильтр. Он имеет следующие значения; >) РЯР РЯР = 0 0 0.0145 0 0 0.0376 0.1283 0.0145 Операция > производит результат класса 1октсад 1взаовЫе используется для приведения изображения к класса аоаые,что согласуется с классом выхода функции саескетьоаа.
~~~~~2 !.ни я 5. Во«хоа~н и~гни и.~ 6р~~«гнич ~ , 0... О,, О,, Я, 0375 О, 1ЯЯ Д,037ф 0 ! « . «- ° ф., 1в~з) 5.6. Инверсная фильтрация Самый простой подход к восстановлению испорченного изображения состоит в построении приближения вида г" ( ) С(п) с) Н(и, и) после чего следует применить обратное преобразование Фурье к функции Г(и, и) (напомним, что С(и, с) — это преобразование Фурье испорченного изображения).
Этот подход удобно называть инверсной фильтрацией. Воспользовавшись моделью из З 5.1, этот метод можно выразить в виде следующего приближения Е(п, с) = Г(и, п) + Х(и, с) Н(и, и) Это обманчиво простое выражение говорит нам о том, что даже если мы знаем Н(и, и) точно, то мы не можем восстановить Г(и, и) (а значит, и оригинальное, неиспорченное изображение 1(и, и)), поскольку шумовая компонента является случайной величиной, преобразование Фурье которой 1«'(и, с) остается неизвестной. Кроме того, на практике обычно имеются большие проблемы с функцией Н(и, и), которая может иметь нулевые значения. Даже если член г«(и, п) пренебрежимо мал, деление его на малые значения Н(и, и) может дать нежелательно большую прибавку к приближению Е(и, с). Типичный подход к совершению инверсной фильтрации состоит в построении частного Е(и, и) = С(и, и) (Н(и, и), у которого необходимо ограничить частотный диапазон «малой» окрестностью начала отсчета, а затем делать обратное преобразование.