Как удалить гауссовский шум с изображения, не разрушая края?

15

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

Авирал Кумар
источник
4
Покажи немного усилий, что ты попробовал?
0x90
1
На самом деле у меня стандартное изображение Лены, искаженное гауссовским шумом. Я хочу удалить дис шум, прежде чем применять анизотропную диффузию. Я не хочу идти на медианную фильтрацию, потому что края размыты. Дайте некоторый вклад.
Aviral Kumar
2
stackoverflow.com/questions/8619153/… может помочь вам
0x90
1
Не совсем ответ, но я нашел эту ссылку в различных статьях на эту тему - пытаясь удалить шум, не избавляясь от информации о границе.
Спейси
1
Можете ли вы опубликовать несколько изображений и вывести их, пожалуйста, чтобы мы лучше понимали, как будет выглядеть (не) удовлетворительный результат? Почему бы вам не запустить анизотропную диффузию, например, для шумоподавления изображения?
Джонас

Ответы:

10

Возможно, вам придется рассмотреть более продвинутые методы. Вот две недавние работы по шумоподавлению с сохранением краев:

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

( Модели регрессии скачка включают в себя разрывы с использованием пошаговых функций. У основного автора есть книга на эту тему .)

Эмре
источник
2

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

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

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

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

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

Генри Гомерсалл
источник
Эти документы специально не касаются сохранения краев; они об общем шумоподавлении изображения.
Эмре
Хорошо, вейвлеты по своей природе хороши в сохранении краев. Природа естественных изображений заключается в том, что большая часть существенной информации находится на краях, поэтому обсуждение краев как особого случая является излишним. Естественные изображения определяются по краям.
Генри Гомерсалл
Это спорно ли обычные вейвлеты особенно хорошо сохраняющих края. Эта проблема является одной из причин множества расширений, включая риглеты, бимлеты, кривые и контуры.
Эмре
Действительно, у вейвлетов есть свои проблемы, поэтому я и предложил использовать что-то кроме ванильных вейвлетов. Хотя можно предположить, что я склонен к DTCWT, это не без веской причины. Обе эти бумаги демонстрируют впечатляющее сохранение края. Как и этот документ (см. Рисунки 8 и 9 - сравнение с шумными изображениями).
Генри Гомерсалл
1

В то время как для каждой задачи по обработке сигналов нет единого решения, здесь есть идея:

  1. так как вы пытаетесь сохранить края, выясните, где они находятся на изображении. Используйте хитрый детектор краев, чтобы найти края на вашем изображении.
  2. Расширьте / увеличьте границы краев, выводимых из изображения (возможно, 2-5 пикселей в ширину для каждого края), давайте назовем это «маской»
  3. инвертировать маску.
  4. Примените маску к своему изображению, т.е. пропустите только те элементы, которые НЕ являются краями.
  5. применить метод гауссинга
  6. использовать исходную маску краев, чтобы получить значения пикселей изображения там, где есть края
  7. Поместите их обратно в обезгаженное изображение

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

Кибермужчины
источник