Да, мне пришлось сделать что-то подобное с изображениями с космического корабля.
Простой метод № 1: используйте медианный фильтр с небольшой шириной — скажем, около 5 выборок или 7. Это дает выходное значение, которое является медианой соответствующего входного значения и нескольких его непосредственных соседей на любая сторона. Он избавится от этих шипов и хорошо сохранит края ступеней.
Медианный фильтр присутствует во всех наборах инструментов для обработки чисел, о которых я знаю, таких как Matlab, Python/Numpy, IDL и т. д., а также в библиотеках для скомпилированных языков, таких как C++, Java (хотя конкретные названия сейчас не приходят на ум. ..)
Прием № 2, возможно, не так хорош: используйте сглаживающий фильтр Савицки-Голея. Это работает за счет эффективного полиномиального подбора данных по методу наименьших квадратов в каждой выходной выборке с использованием соответствующей входной выборки и окрестности точек (во многом подобно медианному фильтру). Сглаживатель SG известен тем, что довольно хорошо сохраняет пики и резкие переходы.
Фильтр SG обычно предоставляется большинством пакетов обработки сигналов и обработки чисел, но может быть не таким распространенным, как медианный фильтр.
Прием № 3, самый трудоемкий и требующий наибольшего опыта и суждений: используйте более сглаженное — скользящее прямоугольное среднее, гауссовское и т. д. — но затем создавайте выходные данные, которые смешиваются между исходным и сглаженным данные. Смешение, управляемое новым рядом данных, который вы создаете, варьируется от полностью исходного (смешивание в 0 % сглаженного) до полностью сглаженного (100 %).
Чтобы контролировать смешивание, начните с детектора краев для обнаружения скачков. Вы можете сначала отфильтровать данные по медиане, чтобы избавиться от пиков. Затем расширьте (расширение на жаргоне обработки изображений) или сгладьте и перенормализуйте выходной сигнал детектора краев и переверните его, чтобы он давал 0,0 на скачках и рядом с ними и 1,0 во всех остальных местах. Возможно, вам нужен плавный переход к ним. Сделать это правильно — целое искусство, которое зависит от того, как будут использоваться данные — для меня это обычно изображения для просмотра людьми. Автоматизированная встроенная система управления может работать лучше, если ее настроить по-другому.
Основное преимущество этой техники в том, что вы можете подключить любой сглаживающий фильтр, который вам нравится. Это не будет иметь никакого эффекта, если значение управления смешиванием равно нулю. Основным недостатком является то, что скачки, небольшая окрестность, определяемая выходным сигналом детектора управляемых краев, будут содержать шум.
person
DarenW
schedule
01.11.2012