Работа по соседству
Эта статья нуждается в дополнительных цитатах для проверки . ( июль 2019 г. ) |
В компьютерном зрении и обработке изображений операция соседства — это широко используемый класс вычислений над данными изображения, который подразумевает, что они обрабатываются в соответствии со следующим псевдокодом:
Visit each point p in the image data and do { N = a neighborhood or region of the image data around the point p result(p) = f(N) }
Эту общую процедуру можно применять к данным изображения произвольной размерности. Кроме того, данные изображения, к которым применяется операция, не обязательно должны определяться с точки зрения интенсивности или цвета, это может быть любой тип информации, которая организована как функция пространственных (и, возможно, временных) переменных в p .
Результат применения операции соседства к изображению снова является чем-то, что можно интерпретировать как изображение, оно имеет тот же размер, что и исходные данные. Однако значение в каждой точке изображения не обязательно должно быть напрямую связано с интенсивностью или цветом. Вместо этого это элемент диапазона функции f , который может иметь произвольный тип.
Обычно окрестность N имеет фиксированный размер и представляет собой квадрат (или куб, в зависимости от размерности данных изображения) с центром в точке p . Также функция f фиксирована, но в некоторых случаях может иметь параметры, которые могут меняться в зависимости от p , см. ниже.
В простейшем случае окрестностью N может быть только одна точка. Этот тип операции часто называют точечной операцией.
Примеры
[ редактировать ]В наиболее распространенных примерах операции соседства используется фиксированная функция f , которая, кроме того, является линейной, то есть вычисление состоит из операции, инвариантной к линейному сдвигу . В этом случае операция соседства соответствует операции свертки . Типичным примером является свертка с фильтром нижних частот, где результат можно интерпретировать как локальные средние значения данных изображения вокруг каждой точки изображения. Другими примерами являются вычисление локальных производных данных изображения.
Также довольно часто используется фиксированная, но нелинейная функция f . Сюда входит медианная фильтрация и вычисление локальных дисперсий. Фильтр Нагао-Мацуямы — это пример сложной операции локального соседства, в которой дисперсия используется как индикатор однородности внутри группы пикселей. Результат аналогичен свертке с фильтром нижних частот с дополнительным эффектом сохранения острых краев. [1] [2]
Существует также класс операций соседства, в которых функция f имеет дополнительные параметры, которые могут меняться в зависимости от p :
Visit each point p in the image data and do { N = a neighborhood or region of the image data around the point p result(p) = f(N, parameters(p)) }
Это означает, что результат не инвариантен к сдвигу. Примерами являются адаптивные фильтры Винера .
Аспекты реализации
[ редактировать ]Приведенный выше псевдокод предполагает, что операция соседства реализуется в виде внешнего цикла по всем точкам изображения. Однако, поскольку результаты независимы, точки изображения можно посещать в произвольном порядке или даже обрабатывать параллельно. Более того, в случае линейных операций, инвариантных к сдвигу, вычисление f в каждой точке подразумевает суммирование произведений данных изображения и коэффициентов фильтра. Затем можно реализовать эту операцию соседства, имея цикл суммирования вне цикла по всем точкам изображения.
Важным вопросом, связанным с работой окрестностей, является то, как справиться с тем фактом, что окрестность N становится более или менее неопределенной для точек p, близких к краю или границе данных изображения. Было предложено несколько стратегий:
- Вычислите результат только для точек p, для которых соответствующая окрестность четко определена. Это означает, что выходное изображение будет несколько меньше входного.
- Заполнение нулями: достаточно расширьте входное изображение, добавив дополнительные точки за пределами исходного изображения, которым присвоено нулевое значение. Описанные выше циклы по точкам изображения посещают только исходные точки изображения.
- Расширение границ: достаточно расширить входное изображение, добавив дополнительные точки за пределами исходного изображения, которым присвоено значение изображения в ближайшей точке изображения. Описанные выше циклы по точкам изображения посещают только исходные точки изображения.
- Зеркальное расширение: достаточно сильно расширьте изображение, отразив его по границам. Этот метод менее чувствителен к локальным изменениям на границе изображения, чем расширение границы.
- Обтекание: изображение разбито на плитки, поэтому выход за один край переносится на противоположную сторону изображения. Этот метод предполагает, что изображение в значительной степени однородно, например, текстура стохастического изображения без больших текстонов.
Ссылки
[ редактировать ]- Бернд Йене (1997). Практическое руководство по обработке изображений для научных приложений . ЦРК Пресс. ISBN 0-8493-8906-2 .
- Бернд Йене и Хорст Хауссекер (2000). Компьютерное зрение и его приложения. Руководство для студентов и практиков . Академическая пресса. ISBN 0-13-085198-1 .
- ^ «ФИЛЬТР НАГАО-МАЦУЯМА» . Анорки. Архивировано из оригинала 17 января 2013 года . Проверено 25 августа 2012 г.
- ^ Шовенгердт, Роберт. «Шум изображения II» (PDF) . Университет Аризоны . Проверено 25 августа 2012 г.