Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Реализация медианного фильтра
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
BAMBINATOR
Добрый день, помогите пожалуйсто реализовать одномерный пятиотсчетный медианный фильтр с использованием NIOS II для обработки изображений с импульсными помехами. Может у кого-нибудь есть примеры кода?
Джеймс
Цитата(BAMBINATOR @ May 14 2009, 21:56) *
Добрый день, помогите пожалуйсто реализовать одномерный пятиотсчетный медианный фильтр с использованием NIOS II для обработки изображений с импульсными помехами. Может у кого-нибудь есть примеры кода?


В смысле, для real-time video, или для статической картинки? Я конечно не знаю, насколько далеко вперед ушел NIOS по производительности и на какой частоте он у вас работает, но он вряд ли справится. А если уж FPGA есть, то почему не сделать прямо на FPGA?
MAXvaLL
Цитата(BAMBINATOR @ May 14 2009, 21:56) *
Добрый день, помогите пожалуйсто реализовать одномерный пятиотсчетный медианный фильтр с использованием NIOS II для обработки изображений с импульсными помехами. Может у кого-нибудь есть примеры кода?

А в чем проблемы?
Берете N отсчетов (размер и форма апертуры не принципиальна), сортируете их по возрастанию/убыванию любым из извесных вам быстрых алгоритмов сортировки, потом берете из этих отсортированных отсчетов средний. Все.
Каждая компонента цвета обрабатывается отдельно.
Oldring
Цитата(MAXvaLL @ May 15 2009, 14:10) *
любым из извесных вам быстрых алгоритмов сортировки, потом берете из этих отсортированных отсчетов средний. Все.


Вот "быстрых алгоритмов" на пяти отсчетах - не нужно.
MAXvaLL
Цитата(Oldring @ May 15 2009, 15:57) *
Вот "быстрых алгоритмов" на пяти отсчетах - не нужно.

А почему нет?! Они ничем не хуже будут, однозначно.
Тем более я говори в общем случае, про N отсчетов.
Тем более возможно имелось ввиду 5х5
Oldring
Цитата(MAXvaLL @ May 15 2009, 17:04) *
А почему нет?! Они ничем не хуже будут, однозначно.


Однозначно будут хуже. В них на коротких длинах осуществляется переход на медленные алгоритмы wink.gif Ну и в лоб реализованный прямо по месту пузырек будет однозначно быстрее библиотечного qsort.

Тем более для последовательной медианной фильтрации. В одномерном случае это один проход по массиву на точку: выкинуть старый отсчет и запихнуть новый. Думаю и в двумерном случае тоже можно очень эффективно реализовать немного подумав.
MAXvaLL
Цитата(Oldring @ May 15 2009, 18:16) *
Однозначно будут хуже. В них на коротких длинах осуществляется переход на медленные алгоритмы wink.gif Ну и в лоб реализованный прямо по месту пузырек будет однозначно быстрее библиотечного qsort.

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

А кто сказал что нужно пользовать какие-то стремные библиотечные? Насколько я помню, по объему кода они примерно одинаковы.
Кто мешает самому реализовать?!

Поясните, что вы имели ввиду, говоря про 1 проход и запихивание/выкидывание.
Oldring
Цитата(MAXvaLL @ May 15 2009, 20:17) *
Поясните, что вы имели ввиду, говоря про 1 проход и запихивание/выкидывание.


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

Цитата(MAXvaLL @ May 15 2009, 20:17) *
А кто сказал что нужно пользовать какие-то стремные библиотечные? Насколько я помню, по объему кода они примерно одинаковы.
Кто мешает самому реализовать?!


Ну так реализуйте и сравните реальную скорость.
MAXvaLL
Цитата(Oldring @ May 15 2009, 20:21) *
При одномерной фильтрации нужно из отсортированного списка удалить старый отсчет и добавить новый, сохранив список сортированным. Это можно сделать за один проход по списку, не сортирукя все отсчеты заново.



Ну так реализуйте и сравните реальную скорость.

Понял вашу идею. Это да, при одномерном.

Так реализовывал конечно, только не пробовал на малых длинах списка. Что, неужели медленее?!
Oldring
Цитата(MAXvaLL @ May 15 2009, 20:26) *
Так реализовывал конечно, только не пробовал на малых длинах списка. Что, неужели медленее?!


Разумеется. Одно дело - асимптотика, другое - малые длины. На малых длинах важна константа, то есть простота.
Maverick
Цитата(BAMBINATOR @ May 14 2009, 20:56) *
Добрый день, помогите пожалуйсто реализовать одномерный пятиотсчетный медианный фильтр с использованием NIOS II для обработки изображений с импульсными помехами. Может у кого-нибудь есть примеры кода?

Могу поделиться примером для реализации для ПЛИС на VHDL
Когда-то сам на основе предложенной реализации - реализовал фильтр 7х7
PS там описана реализация для окна 3х3 окна, но думаю преобразовать его в окно NxN не будет большой проблемой
Еще можете посмотреть у Xilinx xapp 953 "Two-Dimensional Rank Order Filter"(доступен пример на VHDL языке)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.