Сайт о телевидении

Сайт о телевидении

» » Быстрый алгоритм медианной фильтрации. Одномерный цифровой медианный фильтр с трехотсчетным окном

Быстрый алгоритм медианной фильтрации. Одномерный цифровой медианный фильтр с трехотсчетным окном

Транскрипт

1 IN НАУЧНОЕ ПРИБОРОСТРОЕНИЕ, 011, том 1, 3, c ОБРАБОТКА И ПРЕДСТАВЛЕНИЕ ДАННЫХ УДК: Б. В. Бардин БЫСТРЫЙ АЛГОРИТМ МЕДИАННОЙ ФИЛЬТРАЦИИ Предложен быстрый алгоритм медианной фильтрации, использующий определение медианы данных в окне фильтра при помощи анализа локальной гистограммы. При переходе от точки к точке в процессе сканирования изображения корректировка гистограммы требует небольшого количества простых операций. Предложенный алгоритм существенно ускоряет медианную фильтрацию по сравнению с традиционными алгоритмами. Это позволяет расширить область применения медианной фильтрации. Кл. сл.: медианная фильтрация, цифровые изображения ВВЕДЕНИЕ Медианная фильтрация является удобным инструментом обработки информации, особенно двухмерной информации изображения . Медианный фильтр удаляет из сигнала фрагменты с размерами, меньшими чем половина размера окна фильтра, и при этом мало искажает или почти совсем не искажает остальные участки сигнала. Например, одномерный монотонный сигнал совсем не искажается медианным фильтром. Наиболее известным применением медианной фильтрации является устранение из сигнала коротких импульсных помех [, 3]. Причем амплитуда помехи не влияет на результат медианной фильтрации в отличие от реакции линейного фильтра. В работе показано использование медианного фильтра при обработке изображения клеток крови гранулоцитов. Здесь перед измерением размера гранулоцита его изображение подвергалось сглаживанию медианным фильтром с целью устранения гранул, которые могут влиять на результат измерения. Обычно в процессе медианной фильтрации значения сигнала в некоторой окрестности точки, в которой вычисляется отклик фильтра, при помощи сортировки по возрастанию или убыванию выстраиваются в вариационный ряд. Отклик фильтра определяется как медиана значение сигнала середины (центра) вариационного ряда. В дальнейшем эту окрестность будем называть окном фильтра. Кроме того, для упрощения будем рассматривать фильтр с квадратным окном размером n n. Следовательно, при вычислении медианы в окне фильтра число операций с данными, например число операций сортировки, равно n. При обработке изображения размером M N точек (пикселей) число операций с данными будет велико и составит M N n. Различные операции требуют разных затрат времени выполнения. При последовательном сканировании изображения количество наиболее трудоемких операций операций сортировки можно сократить. Так, при переходе от точки о1 с окном 1 к точке о с окном на рис. 1 можно из вариационного ряда окна 1 исключить точки столбца 1, отсортировать точки столбца 6 и объединить два полученных вариационных ряда в один. Такой алгоритм работает быстрее по сравнению с независимой сортировкой в каждом окне, однако общее число манипуляций с данными (пусть и менее трудоемких), например хотя бы перебор данных, остается тем же самым, т. е. достаточно большим. Поэтому при медианной фильтрации изображений обычно ограничиваются окнами 3 3 или 5 5 и редко Рис. 1. Сканирование изображения окном медианного фильтра 135

2 136 Б. В. БАРДИН больше, что вполне достаточно, например, для устранения импульсных помех. Такие же ограничения вынужденно принимаются и для различных нелинейных операций морфологической обработки , выполняющейся в геометрическом пространстве изображения, и которые в отличие от линейных операций невозможно выполнять в пространстве Фурье. Вместе с тем существует ряд задач обработки изображений, которые можно было бы эффективно решить при помощи медианного фильтра, но они требуют окна большого размера. Одна из таких задач будет рассмотрена ниже. Поэтому возможное повышение скорости медианной фильтрации сулит большие перспективы в задачах обработки изображений. БЫСТРАЯ МЕДИАННАЯ ФИЛЬТРАЦИЯ В работе при рассмотрении ранговых алгоритмов обработки изображений показано, что любую r-ю порядковую статистику v (r) элемента изображения можно найти из локальной гистограммы h (q) распределения значений элементов окрестности (окна на рис. 1), решив уравнение v (r) h (q) r. (1) q 0 Здесь q = 0, 1,Q 1 номер кванта (бина) гистограммы; v = q v квантованное значение видеосигнала; r = 0, 1, 1 ранг элемента: его номер в вариационном ряду; число элементов окрестности (окна), или площадь окна в пикселях; в нашем случае n. Медианный фильтр является частным случаем рангового фильтра с рангом отклика r = (1)/. Так как Q 1 h (q), () q 0 то из (1) следует, что медиана q = v (r) делит площадь гистограммы пополам (за вычетом бина, соответствующего q). На рис. показано разбиение гистограммы. Здесь h(q) площадь бина, соответствую- h(q) Рис.. Гистограмма яркости изображения в окне медианного фильтра щего медиане q. Остальные обозначения ясны из рисунка. При этом справедливы следующие соотношения:, (3) (1) /, (4) (1) /. (5) Предполагается, что нечетное. Знаки неравенства в двух последних выражениях могут иметь место только при 1. При сканировании окном медианного фильтра по строке, при переходе от точки о1 к точке о на рис. 1 корректировка гистограммы производится следующим образом. 1. Из гистограммы удаляются данные, соответствующие точкам столбца 1. При этом для каждой точки из площади соответствующего бина вычитается 1.. В гистограмму добавляются данные, соответствующие точкам столбца 6. При этом для каждой точки к площади соответствующего бина добавляется В процессе выполнения операций по пунктам 1 и одновременно изменяются величины, и. 4. На оснований выражений (3), (4) и (5) корректируются величины, и q. Ниже приведен фрагмент программы на языке С, реализующий описанный алгоритм корректировки. Здесь, для удовлетворения синтаксису языка С индексы при и q заменены строчными буквами, а индексы при h и v упущены. Для случая на рис. 1 n=5 и j=1. НАУЧНОЕ ПРИБОРОСТРОЕНИЕ, 011, том 1, 3

3 БЫСТРЫЙ АЛГОРИТМ МЕДИАННОЙ ФИЛЬТРАЦИИ 137 fr(i=0; i q) h--; else --; h[i]]++; if(v[i] < q) l++; else if(v[i] > q) h++; else ++; hile(l > (-1)/) q--; if(h[q] > 0) l=l-h[q]; h=h+h; =-l-h; hile(h > (-1)/) q++; if(h[q] > 0) h=h-h[q]; l=l+h; =-l-h; Если гистограмма не имеет разрывов, как изображено на рис., величина q при корректировке одной точки по п. 4 может измениться не более чем на единицу. Однако реальные локальные гистограммы, как правило, сильно изрезаны. Поэтому корректировки по п. 4 производятся в программе циклами hile для пропуска пустых бинов. Как видно из изложенного выше, рассматриваемый алгоритм медианной фильтрации имеет порядок сложности n, а не n как это имеет место для наиболее распространенных алгоритмов. Кроме того, здесь не требуется трудоемких операций сортировки. Видеоинформация, содержащаяся в регистрируемых аналитическими приборами изображениях, в частности в изображениях биологических объектов , обычно имеет три составляющие: видеоинформация, представляющая исследуемые объекты, шум и фоновая составляющая изображения. Фоновая составляющая обычно удаляется на начальном этапе обработки изображения, чтобы она не влияла на результаты обработки, или вычисляется с целью учета ее на последующих этапах обработки, что равнозначно. Фон изображения, как правило, изменяется медленнее, чем остальные составляющие сигнала при исследовании локальных объектов. Поэтому обычно фон вычисляется при помощи линейной низкочастотной фильтрации. Однако если на противоположных сторонах кадра изображения или на границах ра- ПРОВЕРКА РЕЗУЛЬТАТОВ И ВЫВОДЫ Рис. 3. Изображение объектов ПЦР-анализа НАУЧНОЕ ПРИБОРОСТРОЕНИЕ, 011, том 1, 3

4 138 Б. В. БАРДИН бочей области изображения величина фона существенно различается (или меняется), то линейный фильтр воспринимает это различие как скачок сигнала и пытается его сгладить. Это известное явление краевых эффектов. Существуют различные способы борьбы с краевыми эффектами. Чаще всего это или отбрасывание части изображения, затронутого краевыми эффектами, с соответствующей потерей части полезной информации, или расширение кадра с таким заполнением дополнительных полей, чтобы на краях исходного поля изображения, содержащего полезную информацию, не было бы скачков. Однако, существуют изображения, при обработке которых реализовать такие подходы или невозможно, или очень затруднительно. Так, на рис. 3 показана лунка микрочипа с объектами ПЦР-анализа и профиль сигнала по горизонтальной линии на изображении. На рис. 4 показано вычисление фоновой составляющей при помощи линейной фильтрации, которая, как видно из рисунка, дает большие краевые искажения по контуру лунки. Урезание областей изображения, искаженных краевыми эффектами, в данном случае недопустимо в связи с большой потерей полезной информации, а расширение рабочей области затруднительно из-за того, что эта область является круглой, а также в связи с большой неравномерностью фона по контуру области. На рис. 5 показано вычисление фона при помощи медианного фильтра. Из рисунка видно, что краевые эффекты в этом случае очень малы, однако при этом потребовалось применение фильтра с большим окном пиксель или 1681 пиксель в окне. Размер изображения составлял пикселей. Измерение времени медианной фильтрации производилось на компьютере со скромными возможностями. Он имел в своем составе одноядерный процессор Pentiu 4 CPU.4 Gz и RAM 51 MB. Время фильтрации традиционным медианным фильтром с использованием сортировки данных в окне составило 33 с. Время же фильтрации с использованием предлагаемого в настоящей работе алгоритма составило 0.37 с, т. е. почти на два порядка меньше, чем при использовании традиционных алгоритмов. Надо отметить, что, с одной стороны, в рассматриваемой задаче (ПЦР-анализ) время 0.37 с является вполне приемлемым, а с другой стороны, в системах, использующих цифровую обработку изображений, как правило, применяются значительно более мощные компьютеры. Таким образом, применение предлагаемого алгоритма позволяет значительно ускорить работу медианного фильтра, что, кроме того, позволяет расширить область применения медианной фильтрации. Рис. 4. Вычисление фона линейным фильтром Рис. 5. Вычисление фона медианным фильтром НАУЧНОЕ ПРИБОРОСТРОЕНИЕ, 011, том 1, 3

5 БЫСТРЫЙ АЛГОРИТМ МЕДИАННОЙ ФИЛЬТРАЦИИ 139 СПИСОК ЛИТЕРАТУРЫ 1. Бардин Б.В. Исследование возможностей медианной фильтрации при цифровой обработке изображений совокупностей локальных биологических объектов // Научное приборостроение Т. 1,. С Гонсалес Р., Вудс Р. Цифровая обработка изображений. Пер. с англ. М.: Техносфера, с. 3. Ярославский Л.П. Цифровая обработка сигналов в оптике и голографии. М.: Радио и связь, с. 4. Бардин Б.В., Чубинский-Надеждин И.В. Обнаружение локальных объектов на цифровых микроскопических изображениях // Научное приборостроение Т. 19, 4. С Бардин Б.В, Манойлов В.В., Чубинский-Надеждин И.В., Васильева Е.К., Заруцкий И.В. Определение размеров локальных объектов изображений для их идентификации // Научное приборостроение Т. 0, 3. С Институт аналитического приборостроения РАН, г. Санкт-Петербург Контакты: Бардин Борис Васильевич, Материал поступил в редакцию FAT AGORITM OF MEDIAN FITERING B. V. Bardin Institute fr Analytical Instruentatin f RA, aint Petersburg Fast algrith f edian filtering using data edian deterinatin in filter ind by eans f lcal histgra analysis has been suggested. When ving fr pixel t pixel in the prcess f iage scanning crrectin f histgra requires sall nuber f nn-cplex peratins. The suggested algrith increases cnsiderably the edian filtering prcess cpared t the traditinal algriths. This enables edian filtering applicatin sphere extending. Keyrds: edian filtering, digital iaging Оригинал-макет подготовлен Беленковым В.Д. Лицензия ИД 0980 от 06 октября 000 г. Подписано к печати г. Формат Бумага офсетная. Печать офсетная. Усл. печ. л Уч.-изд. л Тираж 100 экз. Тип. зак. 70. С 96 Санкт-Петербургская издательская фирма "Наука" РАН, Санкт-Петербург, Менделеевская линия, 1 E-ail: Internet:.naukaspb.spb.ru Первая Академическая типография «Наука», Санкт-Петербург, 9 линия, 1


НЕЛИНЕЙНЫЙ ФИЛЬТР ГЕОМЕТРИЧЕСКОГО СРЕДНЕГО С ЭКСПОНЕНЦИАЛЬНЫМИ ВЕСАМИ Толстунов Владимир Андреевич канд. техн. наук, доцент Кемеровского государственного университета, РФ, г. Кемерово E-mail: [email protected]

УДК 61.397 Частотные и пространственные методы цифровой фильтрации изображений # 05, май 01 Черный С.А. Cтудент, кафедра «Радиоэлектронные системы и устройства» Научный руководитель: Ахияров В.В., кандидат

Эффективная модификация алгоритма адаптивной медианной фильтрации цифровых изображений Яиков Рафаэль Равильевич Ярославский государственный университет им. П. Г. Демидова 2015 Какие бывают шумы? Аддитивный

Секция 6. Цифровая обработка сигналов и изображений 377 УДК 004.932.2+004.932.72"1 Е.Е. Плахова, Е.В. Меркулова Донецкий национальный технический университет, г. Донецк кафедра автоматизированных систем

Открытые информационные и компьютерные интегрированные технологии 64, 014 УДК 004.8/004.93/681.513.8;681.514 Л. С. Костенко Методы и алгоритмы сглаживания фона изображений в системах распознавания образов

УДК 519.6 + 004.4 ФИЛЬТРАЦИЯ РЕНТГЕНОВСКИХ ТОМОГРАММ МЕТОДОМ АДАПТАЦИИ РАЗМЕРА ОКНА ФИЛЬТРА К ЛОКАЛЬНЫМ ХАРАКТЕРИСТИКАМ ИЗОБРАЖЕНИЯ Е.Н. Симонов, В.В. Ласьков Предложен алгоритм фильтрации изображений

ISSN 0868 5886, c. 96 102 ОБРАБОТКА И АНАЛИЗ СИГНАЛОВ УДК 621.391.837: 681.3 Б. В. Бардин, И. В. Чубинский-Надеждин ОБНАРУЖЕНИЕ ЛОКАЛЬНЫХ ОБЪЕКТОВ НА ЦИФРОВЫХ МИКРОСКОПИЧЕСКИХ ИЗОБРАЖЕНИЯХ Рассмотрена

ИКОНИКА НАУКА ОБ ИЗОБРАЖЕНИИ УДК 004.932.4 МЕТОД МЕЖКАНАЛЬНОЙ КОМПЕНСАЦИИ ИМПУЛЬСНЫХ ПОМЕХ В ЗАДАЧАХ ВОССТАНОВЛЕНИЯ МНОГОКОМПОНЕНТНЫХ ЦИФРОВЫХ ИЗОБРАЖЕНИЙ 2013 г. Е. А. Самойлин, доктор техн. наук; В.

Реализация некоторых алгоритмов обработки изображений с использованием технологии CUDA на графических устройствах Н.Н. Богословский Томский государственный университет Обработки цифровых изображений в

УДК 621.391 А. В. ИВАШКО, канд. техн. наук, проф. НТУ «ХПИ»; К. Н. ЯЦЕНКО, студент НТУ «ХПИ» РЕАЛИЗАЦИЯ МЕДИАННЫХ И КВАЗИМЕДИАННЫХ ФИЛЬТРОВ НА ЦИФРОВЫХ СИГНАЛЬНЫХ ПРОЦЕССОРАХ В статье рассмотрена программная

Обработка цифровых изображений стеклянных микрошариков методами фильтрации и сегментации 77-30569/403867 # 03, март 2012 Стругайло В. В. УДК 004.932 Россия, Московский автомобильно-дорожный государственный

ВА Толстунов Нелинейная фильтрация на основе степенного преобразования 7 УДК 00467 ВА Толстунов Нелинейная фильтрация на основе степенного преобразования Предлагается алгоритм цифрового сглаживающего фильтра

Содержание 6. Обработка и количественный анализ СЗМ изображений Содержание 6. ОБРАБОТКА И КОЛИЧЕСТВЕННЫЙ АНАЛИЗ СЗМ ИЗОБРАЖЕНИЙ... 6-1 6.1. ЦЕЛЬ РАБОТЫ... 6-2 6.2. СОДЕРЖАНИЕ РАБОТЫ... 6-2 6.3. ЗАДАНИЕ...

Полосовая фильтрация 1 Полосовая фильтрация В предыдущих разделах была рассмотрена фильтрация быстрых вариаций сигнала (сглаживание) и его медленных вариаций (устранение тренда). Иногда требуется выделить

УДК 004.932 В.К. Злобин, Б.В. Костров, В.А. Саблина АЛГОРИТМ СЕКВЕНТНОЙ ФИЛЬТРАЦИИ ГРУППОВЫХ ПОМЕХ НА ИЗОБРАЖЕНИИ Рассмотрены проблемы использования методов секвентного анализа применительно к цифровой

Math-Net.Ru Общероссийский математический портал А. В. Гроховской, А. С. Макаров, Алгоритм предварительной обработки изображений для систем технического зрения, Матем. моделирование и краев. задачи, 2009,

УДК 61.865.8 МЕТОДЫ ПОВЫШЕНИЯ КОНТРАСТНОСТИ РАСТРОВЫХ ИЗОБРАЖЕНИЙ ДЛЯ СИСТЕМ ЦИФРОВОЙ ОБРАБОТКИ ВИДЕОИНФОРМАЦИИ М. Б. Сергеев, доктор техн. наук, профессор Н. В. Соловьев, канд. техн. наук, доцент А. И.

Влияние фильтров на классификацию дактилографии # 01, январь 2015 Деон А. Ф., Ломов Д. С. УДК: 681.3.06(075) Россия, МГТУ им. Н.Э. Баумана [email protected] Классы отпечатков пальцев В традиционной дактилоскопии

ISSN 0868 5886, c. 9 13 МЕТОДЫ ИЗМЕРЕНИЙ УДК 543.426; 543.9 Ю. В. Белов, И. А. Леонтьев, А. И. Петров, В. Е. Курочкин КОРРЕКЦИЯ БАЗОВОЙ ЛИНИИ СИГНАЛОВ ФЛУОРЕСЦЕНТНОГО ДЕТЕКТОРА ГЕНЕТИЧЕСКОГО АНАЛИЗАТОРА

Ñóäîñòðîåíèå ñóäîðåìîíò è ýêñïëóàòàöèÿ ôëîòà УДК 004.93.4:551.463.1 Г. А. Попов Д. А. Хрящёв ÎÁ ÎÄÍÎÌ ÌÅÒÎÄÅ ÍÈÇÊÎ ÀÑÒÎÒÍÎÉ ÔÈËÜÒÐÀÖÈÈ ÃÈÄÐÎËÎÊÀÖÈÎÍÍÛÕ ÈÇÎÁÐÀÆÅÍÈÉ Введение Многие современные исследования

Домашнее задание. Обработка результатов наблюдений двухмерного случайного вектора.1. Содержание и порядок выполнения работы Дана парная выборка (x i ; y i) объема 50 из двумерного нормально распределенного

Пособие для учащихся учреждений общего среднего образования 5-е издание, исправленное М о з ы р ь «Белый Ветер» 2 0 1 4 УДК 372.851.046.14 ББК 74.262.21 Т36 С о с т а в и т е л ь Г. А. БУрьяК Р е ц е н

SWorld 218-27 December 2012 http://www.sworld.com.ua/index.php/ru/conference/the-content-of-conferences/archives-of-individual-conferences/december- 2012 MODERN PROBLEMS AND WAYS OF THEIR SOLUTION IN SCIENCE,

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ЖЕЛЕЗНОДОРОЖНОГО ТРАНСПОРТА Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ

УДК 004.021 1 Е. В. Леонтьева, Е. В. Медведева МЕТОД ВОССТАНОВЛЕНИЯ RGB-КОМПОНЕНТНЫХ ИЗОБРАЖЕНИЙ, ИСКАЖЕННЫХ АППЛИКАТИВНЫМИ ПОМЕХАМИ Предложен метод восстановления цветных изображений, искаженных аппликативными

Министерство образования Российской Федерации Волгоградский государственный технический университет Кафедра материаловедения и композиционных материалов Методы одномерного поиска Методические указания

Компьютерная Графика Подавление и устранение шума Борьба с шумом изображения Подавление и устранение шума Причины возникновения шума: Несовершенство измерительных приборов Хранение и передача изображений

Кафедра математического обеспечения АСУ Г.А. ШЕЙНИНА Структуры и алгоритмы обработки данных Рекомендовано редакционно-издательским советом университета в качестве методических указаний для студентов специальности

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АЭРОКОСМИЧЕСКИЙ УНИВЕРСИТЕТ имени академика С.П.КОРОЛЕВА

Нелинейная фильтрация зашумленных интерференционных полос 245 НЕЛИНЕЙНАЯ ФИЛЬТРАЦИЯ ЗАШУМЛЕННЫХ ИНТЕРФЕРЕНЦИОННЫХ ПОЛОС С ПРОСТРАНСТВЕННО ЗАВИСИМОЙ ИМПУЛЬСНОЙ РЕАКЦИЕЙ СИСТЕМЫ М.В. Волков Научный руководитель

МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ им. Н. И. ЛОБАЧЕВСКОГО Факультет вычислительной математики и кибернетики Кафедра математической

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ» ВВЕДЕНИЕ В АНАЛИЗ И ДИФФЕРЕНЦИАЛЬНОЕ ИСЧИСЛЕНИЕ ФУНКЦИЙ ОДНОЙ ПЕРЕМЕННОЙ

АЛГОРИТМЫ ПОИСКА РАССТОЯНИЙ ДО ОБЪЕКТНЫХ ПИКСЕЛОВ НА БИНАРНЫХ ИЗОБРАЖЕНИЯХ Н.Л. Казанский, В.В. Мясников, Р.В. Хмелев Институт систем обработки изображений РАН Постановка задачи Одной из важнейших задач

00 ВЕСТНИК НОВГОРОДСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА 55 УДК 598765 ВЫДЕЛЕНИЕ КОНТУРОВ ИЗОБРАЖЕНИЯ ДВИЖУЩЕГОСЯ ОБЪЕКТА ИОТитов, ГМЕмельянов Институт электронных и информационных систем НовГУ, TitovIlya@yandexru

ISSN2221-2574 Телевизионные системы, передача и обработка изображений УДК 621.396 Построение модели тестового изображения Жиганов С.Н., Гашин И.В. В работе рассмотрена методика построения модели изображения,

Системы управления и моделирование Алгоритм анализа робастной устойчивости дискретных систем управления с периодическими ограничениями М. В. МОРОЗОВ Аннотация. Для дискретных линейных нестационарных систем

УДК 681.5:004.93 Калиниченко Ю.В. К ВОПРОСУ О ВЫДЕЛЕНИИ ГРАНИЦ ДЕТЕКТОРОМ КЕННИ Луганский национальный университет имени Тараса Шевченко Рассмотрен вопрос выделения границ детектором Кенни. Алгоритм реализован

Краевая научно-практическая конференция учебно-исследовательских работ учащихся 6-11 классов «Прикладные и фундаментальные вопросы математики» Прикладные вопросы математики Распознавание символов на электронных

АЛГОРИТМЫ КОНТРОЛЯ КООРДИНАТ ИСТОЧНИКА ИЗЛУЧЕНИЯ НА ФОТОЧУВСТВИТЕЛЬНОЙ ПОВЕРХНОСТИ МАТРИЦЫ В.В.Замятин Для измерения координат точечного источника излучения на поверхности фоточувствительной матрицы применяют

Цифровая Обработка Сигналов 4/28 УДК 68.58 АДАПТИВНАЯ ФИЛЬТРАЦИЯ ИЗОБРАЖЕНИЙ СО СТРУКТУРНЫМИ ИСКАЖЕНИЯМИ Костров Б.В., Саблина В.А. Введение Процесс регистрации аэрокосмических изображений сопровождается

370 Секция 6. Цифровая обработка сигналов и изображений УДК 004. 93"12 И.С. Личканенко, В.Н. Пчелкин Донецкий национальный технический университет, г. Донецк кафедра компьютерных систем мониторинга МЕТОДЫ

ОБРАБОТКА КОСМИЧЕСКИХ ИЗОБРАЖЕНИЙ НА ОСНОВЕ ЧАСТОТНЫХ ПРЕДСТАВЛЕНИЙ А.Ю. Лихошерстный Белгородский государственный университет e-mail: [email protected] В работе изложен новый метод фильтрации

ISSN 1995-55. Вестник РГРТУ. 1 (выпуск 31). Рязань, 0 УДК 1.391 Ю.М. Коршунов ОЦЕНКА КАЧЕСТВА РАБОТЫ ЦИФРОВЫХ ФИЛЬТРОВ НА ОСНОВЕ ИСКУССТВЕННО СОЗДАННОЙ ИМИТАЦИОННОЙ МОДЕЛИ СИГНАЛА И ПОМЕХИ Предложен метод

АНАЛИЗ ДИСПЕРСНОГО СОСТАВА МИКРОСКОПИЧЕСКИХ ОБЪЕКТОВ С ИСПОЛЬЗОВАНИЕМ ЭВМ Королев Д. В., Суворов К. А. Санкт-Петербургский государственный технологический институт (технический университет), [email protected]

УДК 528.854 Кузьмин С. А. ИССЛЕДОВАНИЕ АЛГОРИТМОВ УСТРАНЕНИЯ ИМПУЛЬСНЫХ ПОМЕХ В ВИДЕОРЯДАХ Рассмотрена задача повышения характеристик алгоритмов обнаружения объектов в видеопоследовательностях путем подавления

УДК 681.3.082.5 Г.Н. Глухов Алгоритм цифрового сглаживания поверхности Предлагается алгоритм оптимального сглаживания поверхности. Критерием оптимальности выбран минимум взвешенных сумм: суммы квадратов

Пособие для учащихся учреждений общего среднего образования С о с т а в и т е л ь Г. И. Струк 5-е издание М о з ы р ь «Белый Ветер» 2 0 1 4 УДК 372.851.046.14 ББК 74.262.21 Т36 Р е ц е н з е н т ы: кандидат

SWorld 8-29 June 203 http://www.sworld.com.ua/index.php/ru/conference/the-content-of-conferences/archives-of-individual-conferences/june-203 MODERN PROBLEMS AND WAYS OF THEIR SOLUTION IN SCIENCE, TRANSPORT,

Министерство образования Российской Федерации Санкт-Петербургский государственный университет низкотемпературных и пищевых технологий Кафедра теоретической механики ИССЛЕДОВАНИЕ СИЛ РЕАКЦИЙ ОПОР СОСТАВНОЙ

УДК 004.932.72; 681.3 Н. Ю. Р я з а н о в а, В. А. У л ь и х и н ВОПРОСЫ МАСШТАБИРОВАНИЯ ИЗОБРАЖЕНИЙ С УЧЕТОМ ИХ СОДЕРЖАНИЯ Рассмотрены вопросы выбора алгоритмов выявления сюжета и определения значимости

УДК 621.397:621.396.96 ВЫДЕЛЕНИЕ ПРЯМОЛИНЕЙНЫХ КРОМОК НА ЗАШУМЛЕННЫХ ИЗОБРАЖЕНИЯХ В. Ю. Волков, доктор техн. наук, профессор Санкт-Петербургский государственный университет телекоммуникаций им. проф. М.

Министерство образования и науки РФ Алтайский государственный университет О. Ю. Воронкова, С. В. Ганжа ОРГАНИЗАЦИОННО-ЭКОНОМИЧЕСКИЙ МЕХАНИЗМ РЕГУЛИРОВАНИЯ ЗЕМЕЛЬНО-ИПОТЕЧНЫХ ОТНОШЕНИЙ В РЫНОЧНЫХ УСЛОВИЯХ

ВОССТАНОВЛЕНИЕ ИЗОБРАЖЕНИЙ НЕЛИНЕЙНЫМИ ФИЛЬТРАМИ, ПОЛУЧЕННЫМИ ИДЕНТИФИКАЦИЕЙ ЛИНЕЙНОЙ ПО ПАРАМЕТРАМ МОДЕЛИ В.А. Фурсов, Д.А. Елкин Самарский государственный аэрокосмический университет имени академика

ISSN 0868 5886, c. 101 106 ПРИБОРЫ, УСТАНОВКИ, МЕТОДЫ УДК 621.38 Б. С. Гуревич, С. Б. Гуревич, В. В. Манойлов ВЕЙВЛЕТ-ФИЛЬТРАЦИЯ ПРОСТРАНСТВЕННЫХ ЧАСТОТ ПРИ ДИСКРЕТИЗАЦИИ СВЕТОВЫХ ПОЛЕЙ Рассматриваются

Электронный журнал «Труды МАИ». Выпуск 50.mai.ru/science/trud/ УДК 004.9 ББК 3.97 Методика фильтрации периодических помех цифровых изображений В.Ю. Гусев А.В. Крапивенко Аннотация В статье рассмотрена

МОДЕЛЬ ЗРИТЕЛЬНОЙ СИСТЕМЫ ЧЕЛОВЕКА- ОПЕРАТОРА ПРИ РАСПОЗНАВАНИИ ОБРАЗОВ ОБЪЕКТОВ Ю.С. Гулина, В.Я. Колючкин Московский государственный технический университет им. Н.Э. Баумана, Изложена математическая

ОПТИКО-ЭЛЕКТРОННОЕ МЕТОДЫ КОНТРОЛЯ КООРДИНАТ ИЗЛУЧАТЕЛЯ НА ПОВЕРХНОСТИ МАТРИЦЫ С ПРИМЕНЕНИЕМ ЦЕНТРОИДАЛЬНЫХ АЛГОРИТМОВ В. И. Замятин В. В. Замятин Алтайский государственный технический университет им.

УДК 621.396 УМЕНЬШЕНИЕ ВЛИЯНИЯ 8-БИТНОГО КВАНТОВАНИЯ ГРАДАЦИЙ ЯРКОСТЕЙ НА ВОЗМОЖНОСТИ ВОССТАНОВЛЕНИЯ А. Ю. Зражевский, А. В. Кокошкин, В. А. Коротков Институт радиотехники и электроники им. В.А. Котельникова

Лабораторная работа 3 Задание Требуется реализовать программу, выполняющую действия над массивами. При выполнении части 1 допускается использование массивов статического размера. При выполнении части 2

Методика априорной оценки эффективности сжатия цифровых изображений в системе оперативной передачи данных дистанционного зондирования Земли 2.3. Анализ алгоритмов сжатия на линейность Для анализа цифрового

Занятие 3 РЕГРЕССИОННЫЙ АНАЛИЗ ДЛЯ ОБРАБОТКИ РЕЗУЛЬТАТОВ ЭКСПЕРИМЕНТА Регрессионный анализ часто используется в химии с целью обработки экспериментальных данных, совокупность которых представлена некоторой

Практикум для учащихся учреждений общего среднего образования М о з ы р ь «Белый Ветер» 2 0 1 4 УДК 51(075.2) ББК 22.1я71 Л84 Р е ц е н з е н т ы: кандидат педагогических наук, доцент кафедры методики

Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования Донской государственный технический университет Кафедра «Программное обеспечение вычислительной

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ

МИНИСТЕРСТВО ЗДРАВООХРАНЕНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ МЕТОД ДИФФЕРЕНЦИАЛЬНОЙ ДИАГНОСТИКИ ХРОНИЧЕСКОГО ПАНКРЕАТИТА И АДЕНОКАРЦИНОМЫ ПОДЖЕЛУДОЧНОЙ ЖЕЛЕЗЫ Инструкция по применению УЧРЕЖДЕНИЯ-РАЗРАБОТЧИКИ: УО «Белорусский

ВОССТАНОВЛЕНИЕ ФАЗЫ ИНТЕРФЕРЕНЦИОННЫХ ПОЛОС МЕТОДОМ НЕЛИНЕЙНОЙ ДВУМЕРНОЙ ФИЛЬТРАЦИИ КАЛМАНА А.С. Захаров Исследованы характеристики двумерного дискретного нелинейного фильтра Калмана при динамическом оценивании

СБОРНИК НАУЧНЫХ ТРУДОВ НГТУ. 28. 4(54). 37 44 УДК 59.24 О КОМПЛЕКСЕ ПРОГРАММ ДЛЯ РЕШЕНИЯ ЗАДАЧИ ИДЕНТИФИКАЦИИ ЛИНЕЙНЫХ ДИНАМИЧЕСКИХ ДИСКРЕТНЫХ СТАЦИОНАРНЫХ ОБЪЕКТОВ Г.В. ТРОШИНА Рассмотрен комплекс программ

Материалы V Международной научно-технической школы-конференции, 3 ноября 8 г. МОСКВА МОЛОДЫЕ УЧЕНЫЕ 8, часть 4 МИРЭА ОЦЕНКА КАЧЕСТВА ФИЛЬТРОВ ИНТЕРПОЛЯЦИИ В СТАНДАРТАХ ВИДЕОКОДИРОВАНИЯ 8 г. Д.Б. ПОЛЯКОВ

Недавно пришлось столкнуться с необходимостью программной фильтрации данных АЦП. Гугление и курение (различной документации) привело меня к двум технологиям: Фильтр низких частот (ФНЧ) и Медианный фильтр. Про ФНЧ есть весьма подробная статья в сообществе Easyelectronics , поэтому далее речь пойдёт про медианный фильтр.

Дисклеймер (отмазка): Эта статья по большей частью является практически дословным переводом статьи с сайта embeddedgurus . Однако, переводчик (я) тоже использовал приведенные алгоритмы в работе, нашёл их полезными, и, возможно, представляющими интерес для этого сообщества.

Итак, любой линейный фильтр создан, чтобы пропускать сигналы в заданной полосе частот, и максимально ослаблять все остальные. Подобные фильтры незаменимы, если требуется устранить влияние всевозможных шумов. Однако, в реальном мире встраиваемых систем, разработчик может столкнуться с фактом, что эти классические фильтры практически бесполезны против кратковременных мощных выбросов.

Этот тип шума обычно возникает от какого-либо случайного события, такого, как электростатический разряд, сработавший рядом с прибором брелок сигнализации и прочее. При этом входной сигнал может принять заведомо невозможное значение. Например, с АЦП поступили данные: 385, 389, 388, 388, 912, 388, 387. Очевидно, что значение 912 тут ложное, и должно быть отброшено. При использовании классического фильтра, почти наверняка это большое число повлияет на выходное значение очень сильно. Очевидным решением тут будет применение медианного фильтра.

В соответствии со своим названием, медианный фильтр пропускает среднее значение из множества значений. Обычно размер этой группы нечётный, чтобы избежать двусмысленности при выборе среднего значения. Основная идея-имеется некий буфер с несколькими значениями, из которых выбирается медиана.

Отличия медианы от среднего арифметического

Предположим, что в одной комнате оказалось 19 бедняков и один миллиардер. Каждый кладёт на стол деньги - бедняки из кармана, а миллиардер - из чемодана. По $5 кладёт каждый бедняк, а миллиардер - $1 млрд (109). В сумме получается $1 000 000 095. Если мы разделим деньги равными долями на 20 человек, то получим $50 000 004,75. Это будет среднее арифметическое значение суммы наличных, которая была у всех 20 человек в этой комнате.

Медиана в этом случае будет равна $5 (полусумма десятого и одиннадцатого, срединных значений ранжированного ряда). Можно интерпретировать это следующим образом. Разделив нашу компанию на две равные группы по 10 человек, мы можем утверждать, что в первой группе каждый положил на стол не больше $5, во второй же не меньше $5. В общем случае можно сказать, что медиана это то, сколько принёс с собой средний человек. Наоборот, среднее арифметическое - неподходящая характеристика, так как оно значительно превышает сумму наличных, имеющуюся у среднего человека.
ru.wikipedia.org/wiki/Медиана_ (статистика)

По размеру этого множества разделим фильтры на два типа:
Размерность = 3
Размерность > 3

Фильтр размерностью 3
Размерность три - наименьшая из возможных. Вычислить среднее значение возможно, использовав лишь несколько операций IF. Ниже приведён код, реализующий этот фильтр:

Uint16_t middle_of_3(uint16_t a, uint16_t b, uint16_t c) { uint16_t middle; if ((a <= b) && (a <= c)) { middle = (b <= c) ? b: c; } else if ((b <= a) && (b <= c)) { middle = (a <= c) ? a: c; } else { middle = (a <= b) ? a: b; } return middle; }

Фильтр размерностью >3
Для фильтра размерностью больше трёх предлагаю воспользоваться алгоритмом, предложенным Филом Экстормом (Phil Ekstrom) в Ноябрьском номере журнала «Embedded Systems», и переписанного с Dynamic C на стандартный С Найджелом Джонсом (Nigel Jones). Алгоритм использует односвязный список, и использует тот факт, что когда массив отсортирован, удаление самого старого значения, и добавление нового не нарушает сортировку.

#define STOPPER 0 /* Smaller than any datum */ #define MEDIAN_FILTER_SIZE (13) uint16_t median_filter(uint16_t datum) { struct pair { struct pair *point; /* Pointers forming list linked in sorted order */ uint16_t value; /* Values to sort */ }; static struct pair buffer = {0}; /* Buffer of nwidth pairs */ static struct pair *datpoint = buffer; /* Pointer into circular buffer of data */ static struct pair small = {NULL, STOPPER}; /* Chain stopper */ static struct pair big = {&small, 0}; /* Pointer to head (largest) of linked list.*/ struct pair *successor; /* Pointer to successor of replaced data item */ struct pair *scan; /* Pointer used to scan down the sorted list */ struct pair *scanold; /* Previous value of scan */ struct pair *median; /* Pointer to median */ uint16_t i; if (datum == STOPPER) { datum = STOPPER + 1; /* No stoppers allowed. */ } if ((++datpoint - buffer) >= MEDIAN_FILTER_SIZE) { datpoint = buffer; /* Increment and wrap data in pointer.*/ } datpoint->value = datum; /* Copy in new datum */ successor = datpoint->point; /* Save pointer to old value"s successor */ median = &big; /* Median initially to first in chain */ scanold = NULL; /* Scanold initially null. */ scan = &big; /* Points to pointer to first (largest) datum in chain */ /* Handle chain-out of first item in chain as special case */ if (scan->point == datpoint) { scan->point = successor; } scanold = scan; /* Save this pointer and */ scan = scan->point ; /* step down chain */ /* Loop through the chain, normal loop exit via break. */ for (i = 0 ; i < MEDIAN_FILTER_SIZE; ++i) { /* Handle odd-numbered item in chain */ if (scan->point == datpoint) { scan->point = successor; /* Chain out the old datum.*/ } if (scan->value < datum) /* If datum is larger than scanned value,*/ { datpoint->point = scanold->point; /* Chain it in here. */ scanold->point = datpoint; /* Mark it chained in. */ datum = STOPPER; }; /* Step median pointer down chain after doing odd-numbered element */ median = median->point; /* Step median pointer. */ if (scan == &small) { break; /* Break at end of chain */ } scanold = scan; /* Save this pointer and */ scan = scan->point; /* step down chain */ /* Handle even-numbered item in chain. */ if (scan->point == datpoint) { scan->point = successor; } if (scan->value < datum) { datpoint->point = scanold->point; scanold->point = datpoint; datum = STOPPER; } if (scan == &small) { break; } scanold = scan; scan = scan->point; } return median->value; }
Чтобы воспользоваться этим кодом, просто вызываем функцию каждый раз, когда появляется новое значение. Она вернёт медианное из последних MEDIAN_FILTER_SIZE измерений.
Этот подход требует довольно много RAM, т.к. приходится хранить и значения, и указатели. Однако он довольно быстрый (58мкс на 40МГц PIC18).

Выводы
Как и большинство других вещей в мире встраиваемых систем, Медианный фильтр имеет свою цену. Например, он вносит задержку в одно чтение при непрерывно растущих входных значениях. К тому же, этот фильтр сильно искажает информацию о частоте сигнала. Конечно, если нам интересна только постоянная составляющая, это не создает особых проблем.

Медианная фильтрация - метод нелинейной обработки сигналов, разработанный Тьюки . Этот метод оказывается полезным при подавлении шума на изображении. Одномерный медианный фильтр представляет собой скользящее окно, охватывающее нечетное число элементов, изображения. Центральный элемент заменяется медианой всех элементов изображения в окне. Медианой дискретной последовательности для нечетного является тот ее элемент, для которого существуют элементов, меньших или равных ему по величине, и элементов, больших или равных ему по величине. Пусть в окно попали элементы изображения с уровнями 80, 90, 200, 110 и 120; в этом случае центральный элемент следует заменить значением 110, которое является медианой упорядоченной последовательности 80, 90, 110, 120, 200. Если в этом примере значение 200 является шумовым выбросом в монотонно возрастающей последовательности, то медианная фильтрация обеспечит существенное улучшение. Напротив, если значение 200 соответствует полезному импульсу сигнала (при использовании широкополосных датчиков), то обработка приведет к потере четкости воспроизводимого изображения. Таким образом, медианный фильтр в одних случаях обеспечивает подавление шума, в других - вызывает нежелательное подавление сигнала.

На рис. 12.6.1 показано воздействие медианного и усредняющего (сглаживающего) фильтров с пятиэлементным окном на ступенчатый, пилообразный, импульсный и треугольный дискретные сигналы. Из этих диаграмм видно, что медианный фильтр не влияет на ступенчатые или пилообразные функции, что обычно является желательным свойством. Однако этот фильтр подавляет импульсные сигналы, длительность которых составляет менее половины ширины окна. Фильтр также вызывает уплощение вершины треугольной функции.

Рис. 12.6.1. Примеры медианной фильтрации простейших дискретных сигналов, .

а - ступенчатый переход: б - пилообразный переход; в - одиночный импульс; е - сдвоенный импульс; д - строенный импульс; е - треугольный сигнал.

Возможности анализа действия медианного фильтра ограничены. Можно показать, что медиана произведения постоянной и последовательности равна

Кроме того,

Однако медиана суммы двух произвольных последовательностей и не равна сумме их медиан:

Это неравенство можно проверить на примере последовательностей 80, 90, 100, 110, 120 и 80, 90, 100, 90, 80.

Возможны различные стратегии применения медианного фильтра для подавления шумов. Одна из них рекомендует начинать с медианного фильтра, окно которого охватывает три элемента изображения. Если ослабление сигнала незначительно, окно фильтра расширяют до пяти элементов. Так поступают до тех пор, пока медианная фильтрация начинает приносить больше вреда, чем пользы. Другая возможность состоит в осуществлении каскадной медианной фильтрации сигнала с использованием фиксированной или изменяемой ширины окна. В общем случае те области, которые остаются без изменения после однократной обработки фильтром, не меняются и после повторной обработки. Области, в которых длительность импульсных сигналов составляет менее половины ширины окна, будут подвергаться изменениям после каждого цикла обработки.

Концепцию медианного фильтра легко обобщить на два измерения, применяя двумерное окно желаемой формы, например прямоугольное или близкое к круговому. Очевидно, что двумерный медианный фильтр с окном размера обеспечивает более эффективное подавление шума, чем последовательно примененные горизонтальный и вертикальный одномерные медианные фильтры с окном размера ; двумерная обработка, однако, приводит к более существенному ослаблению сигнала. На рис. 12.6.2 показано влияние двумерной медианной фильтрации на пространственный импульсный сигнал. Использовались фильтры с окнами двух типов: квадратным размера и крестообразным размера . Как видно, медианный фильтр с квадратным окном разрушил углы изображенного квадрата, а фильтр с крестообразным окном оставил его без изменения.

Рис. 12.6.2. Примеры двумерной медианной фильтрации

На рис. 12.6.3 и 12.6.4 представлены образцы изображений, подвергнутых медианной фильтрации с целью подавления шумов. Как видно, медианный фильтр более эффективно подавляет разрозненные импульсные помехи, чем гладкие шумы. Медианную фильтрацию изображений в целях подавления шумов следует считать эвристическим методом. Ее нельзя применять вслепую. Напротив, следует проверять получаемые результаты, чтобы убедиться в целесообразности медианной фильтрации.

Рис. 12.6.3. Образцы изображений, обработанных одномерным медианным фильтром с целью подавления импульсных помех.

а - исходное изображение с импульсными помехами (15 искаженных элементов в каждой строке); б - результат медианной фильтрации при ; в - результат медианной фильтрации при ; г - результат медианной фильтрации при .

Рис. 12.6.4. Образцы изображений, обработанных одномерным медианным фильтром с целью подавления гауссова шума.

а - исходное изображение с гауссовым шумом ; б - результат медианной фильтрации при ; в - результат медианной фильтрации при ; г - результат медианной фильтрации при .

  • Медианная фильтрация нелинейна, так как медиана суммы двух произвольных последовательностей не равна сумме их медиан, что в ряде случаев может усложнять математический анализ сигналов.
  • Фильтр вызывает уплощение вершин треугольных функций.
  • Подавление белого и гауссового шума менее эффективно, чем у линейных фильтров. Слабая эффективность наблюдается также при фильтрации флюктуационного шума.
  • При увеличении размеров окна фильтра происходит размытие крутых изменений сигнала и скачков.

Недостатки метода можно уменьшить, если применять медианную фильтрацию с адаптивным изменением размера окна фильтра в зависимости от динамики сигнала и характера шумов (адаптивная медианная фильтрация). В качестве критерия размера окна можно использовать, например, величину отклонения значений соседних отсчетов относительно центрального ранжированного отсчета /1i/. При уменьшении этой величины ниже определенного порога размер окна увеличивается.

16.2. МЕДИАННая ФИЛЬТРАЦИя изображений .

Шумы в изображениях. Никакая система регистрации не обеспечивает идеального качества изображений исследуемых объектов. Изображения в процессе формирования их системами (фотографическими, голографическими, телевизионными) обычно подвергаются воздействию различных случайных помех или шумов. Фундаментальной проблемой в области обработки изображений является эффективное удаление шума при сохранении важных для последующего распознавания деталей изображения. Сложность решения данной задачи существенно зависит от характера шумов. В отличие от детерминированных искажений, которые описываются функциональными преобразованиями исходного изображения, для описания случайных воздействий используют модели аддитивного, импульсного и мультипликативного шумов.

Наиболее распространенным видом помех является случайный аддитивный шум, статистически независимый от сигнала. Модель аддитивного шума используется тогда, когда сигнал на выходе системы или на каком-либо этапе преобразования может рассматриваться как сумма полезного сигнала и некоторого случайного сигнала. Модель аддитивного шума хорошо описывает действие зернистости фотопленки, флуктуационный шум в радиотехнических системах, шум квантования в аналого-цифровых преобразователях и т.п.

Аддитивный гауссов шум характеризуется добавлением к каждому пикселю изображения значений с нормальным распределением и с нулевым средним значением. Такой шум обычно вводится на этапе формирования цифровых изображений. Основную информацию в изображениях несут контуры объектов. Классические линейные фильтры способны эффективно удалить статистический шум, но степень размытости мелких деталей на изображении может превысить допустимые значения. Для решения этой проблемы используются нелинейные методы, например алгоритмы на основе анизотропной диффузии Перрона и Малика, билатеральные и трилатеральные фильтры. Суть таких методов заключается в использовании локальных оценок, адекватных определению контура на изображении, и сглаживания таких участков в наименьшей степени.


Импульсный шум характеризуется заменой части пикселей на изображении значениями фиксированной или случайной величины. На изображении такие помехи выглядят изолированными контрастными точками. Импульсный шум характерен для устройств ввода изображений с телевизионной камеры, систем передачи изображений по радиоканалам, а также для цифровых систем передачи и хранения изображений. Для удаления импульсного шума используется специальный класс нелинейных фильтров, построенных на основе ранговой статистики. Общей идеей таких фильтров является детектирование позиции импульса и замена его оценочным значением, при сохранении остальных пикселей изображения неизменными.

Двумерные фильтры. Медианная фильтрация изображений наиболее эффективна, если шум на изображении имеет импульсный характер и представляет собой ограниченный набор пиковых значений на фоне нулей. В результате применения медианного фильтра наклонные участки и резкие перепады значений яркости на изображениях не изменяются. Это очень полезное свойство именно для изображений, на которых, как известно, контуры несут основную информацию.

Рис. 16.2.1.

При медианной фильтрации зашумленных изображений степень сглаживания контуров объектов напрямую зависит от размеров апертуры фильтра и формы маски. Примеры формы масок с минимальной апертурой приведены на рис. 16.2.1. При малых размерах апертуры лучше сохраняются контрастные детали изображения, но в меньшей степени подавляется импульсные шумы. При больших размерах апертуры наблюдается обратная картина. Оптимальный выбор формы сглаживающей апертуры зависит от специфики решаемой задачи и формы объектов. Особое значение это имеет для задачи сохранения перепадов (резких границ яркости) в изображениях.

Под изображением перепада понимаем изображение, в котором точки по одну сторону от некоторой линии имеют одинаковое значение а , а все точки по другую сторону от этой линии - значение b , b ¹a . Если апертура фильтра симметрична относительно начала координат и содержит его в себе, то медианный фильтр сохраняет любое изображение перепада. Это выполняются для всех апертур с нечетным количеством отсчетов, т.е. кроме апертур (квадратные рамки, колца), которые не содержат начала координат. Тем не менее квадратные рамки и кольца будут лишь незначительно изменять перепад.

Рис. 16.2.2.

Для упрощения дальнейшего рассмотрения ограничимся примером фильтра с квадратной маской размером N × N, при N=3. Скользящий фильтр просматривает отсчеты изображения слева-направо и сверху-вниз, при этом входную двумерную последовательность также представим в виде последовательного числового ряда отсчетов {x(n)} слева-направо сверху-вниз. Из этой последовательности в каждой текущей точке маска фильтра выделяет массив w(n), как W-элементный вектор, который в данном случае содержит все элементы из окна 3×3, центрированные вокруг x(n), и сам центральный элемент, если это предусмотрено типом маски:

w(n) = . (16.2.1)

В этом случае значения x i соответствует отображению слева-направо и сверху-вниз окна 3×3 в одномерный вектор, как показано на рис. 16.2.2.

Элементы данного вектора, как и для одномерного медианного фильтра, также могут быть упорядочены в ряд по возрастанию или убыванию своих значений:

r(n) = , (16.2.2)

определено значение медианы y(n) = med(r(n)), и центральный отсчет маски заменен значением медианы. Если по типу маски центральный отсчет не входит в число ряда 16.2.1, то медианное значение находится в виде среднего значения двух центральных отсчетов ряда 16.2.2.

Приведенные выражения не объясняют способа нахождения выходного сигнала вблизи конечных и пограничных точек в конечных последовательностях и изображениях. Один из простых приемов состоит в том, что нужно находить медиану только тех точек внутри изображения, которые попадают в пределы апертуры. Поэтому для точек, расположенных рядом с границами, медианы будут определены, исходя из меньшего числа точек.

На рис. 16.2.3 приведен пример очистки зашумленного изображения медианным фильтром Черненко /2i/. Зашумление изображения по площади составляло 15%, для очистки фильтр применен последовательно 3 раза.



Рис. 16.1.5.

Медианная фильтрация может выполняться и в рекурсивном варианте, при котором значения сверху и слева от центрального отсчета в маске (в данном случае x 1 (n)-x 4 (n) на рис. 16.2.2) в ряде 16.2.1 заменяются на уже вычисленные в предыдущих циклах значения y 1 (n)-y 4 (n).

Адаптивные двумерные фильтры. Противоречие по зависимости степени подавления шумов и искажения сигнала от апертуры фильтра в некоторой степени сглаживается при применении фильтров с динамическим размером маски, с адаптацией размеров апертуры под характер изображения. В адаптивных фильтрах большие апертуры используются в монотонных областях обрабатываемого сигнала (лучшее подавление шумов), а малые – вблизи неоднородностей, сохраняя их особенности, при этом размер скользящего окна фильтра устанавливается в зависимости от распределения яркости пикселей в маске фильтра. В их основе лежит, как правило, анализ яркости окрестностей центральной точки маски фильтра.

Простейшие алгоритмы динамического изменения апертуры фильтра, симметричного по обеих осям, обычно работают по заданному на основании эмпирических данных пороговому коэффициенту яркости S порог = . В каждом текущем положении маски на изображении итерационный процесс начинается с апертуры минимального размера. Величины отклонения яркости соседних пикселей A(r, n), попавших в окно размером (n x n), относительно яркости центрального отсчета A(r) вычисляются по формуле:

S n (r) = |A(r,n)/A(r) – 1|. (16.2.3)

Критерий, согласно которому производится увеличение размера маски с центральным отсчетом r и выполняется следующая итерация, имеет вид:

max < S порог. (16.2.4)

Максимальный размер маски (количество итераций), как правило, ограничивается. Для неквадратных масок, имеющих размеры (n x m), итерации могут вычисляться с раздельным увеличением параметров n и m, а также с изменением формы масок в процессе итераций.

Фильтры на основе ранговой статистики . В последние два десятилетия в цифровой обработке изображений активно развиваются нелинейные алгоритмы на основе ранговой статистики для восстановления изображений, поврежденных различными моделями шумов. Подобные алгоритмы позволяют избежать дополнительного искажения изображения при удалении шума, а также значительно улучшить результаты работы фильтров на изображениях с высокой степенью зашумленности.

Сущность ранговой статистики обычно заключается в том, что ряд 16.2.1 не включает центральный отсчет маски фильтра, и по ряду 16.2.2 производится вычисление значения m(n). При N=3 по рис. 16.2.2:

m(n) = (x 4 (n)+x 5 (n))/2. (16.2.5)

Вычисление выходного значения фильтра, которым заменяется центральный отсчет, выполняется по формуле:

y(n) = a x(n) + (1-a) m(n). (16.2.6)

Значение коэффициента доверия a связывается определенной зависимостью со статистикой отсчетов в окне фильтра (например, полной дисперсией отсчетов, дисперсией разностей x(n)-x i (n) или m(n)-x i (n), дисперсией положительных и отрицательных разностей x(n)-x i (n) или m(n)-x i (n), и т.п.). По существу, значение коэффициента a должно задавать степень поврежденности центрального отсчета и, соответственно, степень заимствования для его исправления значения из отсчетов m(n). Выбор статистической функции и характер зависимости от нее коэффициента a может быть достаточно многообразным и зависит как от размеров апертуры фильтра, так и от характера изображений и шумов.

литература

44. Большаков И.А., Ракошиц В.С. Прикладная теория случайных потоков, М.: Сов. радио, 1978,- 248с.

46. Хуанг Т.С. и др. Быстрые алгоритмы в цифровой обработке изображений. – М.: Радио и связь, 1984. – 224 с.

47. Сойфер В.А. Компьютерная обработка изображений. Часть 2. Методы и алгоритмы. – Соросовский образовательный журнал №3, 1996.

48. Апальков И.В., Хрящев В.В. Удаление шума из изображений на основе нелинейных алгоритмов с использованием ранговой статистики. - Ярославский государственный университет, 2007.

1i. Яровой Н.И. Адаптивная медианная фильтрация. - http://www.controlstyle.ru/articles/science/text/amf/

2i. Черненко С.А. Медианный фильтр. - http://www.logis-pro.kiev.ua/math_power_medianfilter_ru.html.

3i. Радченко Ю.С. Эффективность приема сигналов на фоне комбинированной помехи с дополнительной обработкой в медианном фильтре. – "Журнал радиоэлектроники", №7, 2001. / http://jre.cplire.ru/iso/jul01/2/text.html

О замеченных ошибках и предложениях по дополнению: [email protected].

Copyright ©2008 Davydov А.V.

Если ваше инженерное образование похоже на мое, тогда вы наверняка много знаете о различных типах линейных фильтров, основная задача которых, пропустить сигнал в одном диапазоне частот и задержать сигналы в остальных диапазонах. Эти фильтры, конечно, незаменимы для многих типов шумов. Однако в реальном мире встраиваемых систем требуется немного времени, чтобы понять, что классические линейные фильтры бесполезны против импульсного шума (burst noise, popcorn noise).

Импульсные шумы обычно возникает от псевдо случайных событий. Например, рядом с вашим устройством может переключаться двухполосный радиоприемник или может произойти какой-нибудь статический разряд. Всякий раз когда это происходит, входной сигнал может временно искажаться.

Например, в результате аналогово-цифрового преобразования мы получаем такой ряд значений: 385, 389, 912, 388, 387. Значение 912 предположительно аномальное и его нужно отклонить. Если вы попробуете использовать классический линейный фильтр, то заметите, что значение 912 будет оказывать значительное влияние на выходной результат. Лучшим решением в этом случае будет использование медианного фильтра .

Несмотря на очевидность такого подхода, мой опыт говорит, что медианные фильтры используются во встраиваемых системах удивительно редко. Возможно это связано с недостатком знаний об их существовании и трудностью с реализацией. Надеюсь мой пост в некоторой степени устранит эти препятствия.

Идея медианного фильтра проста. Он выбирает из группы входных значений среднее и выдает на выход. Причем обычно группа имеет нечетное количество значений, поэтому проблемы с выбором не возникает

До недавнего времени я выделял три класса медианных фильтров, отличающихся количеством используемых значений:

Фильтр использующий 3 значения (наименьший возможный фильтр),
- фильтр использующий 5, 7 или 9 значений (наиболее используемые),
- фильтр использующий 11 или больше значений.

Сейчас я придерживаюсь более простой классификации:

Фильтр использующий 3 значения,
- фильтр использующий больше 3 значений.

Медианный фильтр на 3

Это наименьший возможный фильтр. Он легко реализуется с помощью нескольких операторов и, следовательно, имеет маленький и быстрый код.


uint16_t middle_of_3(uint16_t a, uint16_t b, uint16_t c)
{
uint16_t middle;

If ((a <= b) && (a <= c)){
middle = (b <= c) ? b: c;
}
else{
if ((b <= a) && (b <= c)){
middle = (a <= c) ? a: c;
}
else{
middle = (a <= b) ? a: b;
}
}

Return middle;
}

Медианный фильтр > 3

Для фильтра размером больше 3, я предлагаю вам использовать алгоритм, описанный Филом Экстромом в ноябрьском номере журнала Embedded Systems Programming за 2000 год. Экстром использует связный список. Этот подход хорош тем, что когда массив отсортирован, удаление старого значения и добавление нового не вносит в массив существенный беспорядок. Поэтому этот подход хорошо работает с фильтрами больших размеров.

Имейте ввиду, в оригинальном опубликованном коде были некоторые баги, которые Экстром потом исправил. Учитывая, что на embedded.com сейчас сложно что-то найти, я решил опубликовать свою реализацию его кода. Изначально код был написан на Dynamic C, но для этого поста был портирован на стандартный Си. Код предположительно рабочий, но его полная проверка остается на вашей совести.


#define NULL 0
#define STOPPER 0 /* Smaller than any datum */
#define MEDIAN_FILTER_SIZE 5

uint16_t MedianFilter(uint16_t datum)
{

struct pair{
struct pair *point; /* Pointers forming list linked in sorted order */
uint16_t value; /* Values to sort */
};

/* Buffer of nwidth pairs */
static struct pair buffer = {0};
/* Pointer into circular buffer of data */
static struct pair *datpoint = buffer;
/* Chain stopper */
static struct pair small = {NULL, STOPPER};
/* Pointer to head (largest) of linked list.*/
static struct pair big = {&small, 0};

/* Pointer to successor of replaced data item */
struct pair *successor;
/* Pointer used to scan down the sorted list */
struct pair *scan;
/* Previous value of scan */
struct pair *scanold;
/* Pointer to median */
struct pair *median;
uint16_t i;

if (datum == STOPPER){
datum = STOPPER + 1; /* No stoppers allowed. */
}

If ((++datpoint - buffer) >= MEDIAN_FILTER_SIZE){
datpoint = buffer; /* Increment and wrap data in pointer.*/
}

Datpoint->value = datum; /* Copy in new datum */
successor = datpoint->point; /* Save pointer to old value"s successor */
median = &big; /* Median initially to first in chain */
scanold = NULL; /* Scanold initially null. */
scan = &big; /* Points to pointer to first (largest) datum in chain */

/* Handle chain-out of first item in chain as special case */
if (scan->point == datpoint){
scan->point = successor;
}


scan = scan->point ; /* step down chain */

/* Loop through the chain, normal loop exit via break. */
for (i = 0 ; i < MEDIAN_FILTER_SIZE; ++i){
/* Handle odd-numbered item in chain */
if (scan->point == datpoint){
scan->point = successor; /* Chain out the old datum.*/
}

If (scan->value < datum){ /* If datum is larger than scanned value,*/
datpoint->point = scanold->point; /* Chain it in here. */
scanold->point = datpoint; /* Mark it chained in. */
datum = STOPPER;
};

/* Step median pointer down chain after doing odd-numbered element */
median = median->point; /* Step median pointer. */
if (scan == &small){
break; /* Break at end of chain */
}
scanold = scan; /* Save this pointer and */
scan = scan->point; /* step down chain */

/* Handle even-numbered item in chain. */
if (scan->point == datpoint){
scan->point = successor;
}

If (scan->value < datum){
datpoint->point = scanold->point;
scanold->point = datpoint;
datum = STOPPER;
}

If (scan == &small){
break;
}

Scanold = scan;
scan = scan->point;
}

return median->value;
}

Чтобы использовать этот фильтр, просто вызывайте функцию каждый раз, когда получаете новое входное значение. Функция будет возвращать среднее значение из последних принятых значений, количество которых определяется константой MEDIAN_FILTER_SIZE.

Этот алгоритм может использовать изрядное количество оперативной памяти (конечно, это зависит размера фильтра), потому что сохраняет входные значения и указатели на структуры. Однако, если это не проблема, то алгоритм действительно хорош для применения, потому что он значительно быстрее, чем алгоритмы основанные на сортировке.

Медианная фильтрация на базе сортировки

В старой версии этой статьи для медианных фильтров размером 5, 7 или 9, я поддерживал подход на основе алгоритмов сортировки. Сейчас я изменил свою мнение. Однако, если вы хотите использовать их, я предоставляю вам базовый код:


if (ADC_Buffer_Full){

Uint_fast16_t adc_copy;
uint_fast16_t filtered_cnts;

/* Copy the data */
memcpy(adc_copy, ADC_Counts, sizeof(adc_copy));

/* Sort it */
shell_sort(adc_copy, MEDIAN_FILTER_SIZE);

/* Take the middle value */
filtered_cnts = adc_copy[(MEDIAN_FILTER_SIZE - 1U) / 2U];

/* Convert to engineering units */
...

Заключение

Использование медианных фильтров связанно с определенными затратами. Очевидно, что медианные фильтры добавляют задержку ступенчато меняющимся значениям. Также медианные фильтры могут полностью затирать частотную информацию в сигнале. Конечно, если вас интересуют только постоянные значения, то это не проблема.

С учетом этих оговорок, я все-таки настоятельно рекомендую вам использовать в своих разработках медианные фильтры.