Сглаживание краев изображения

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

Я применил усреднение и фильтр низких частот Гаусса в MATLAB, но это только размывает изображение. Требуется четкое изображение с непрерывным изменением цвета.

Может ли кто-нибудь предложить подходящий метод для того же? Заранее спасибо.

Пример изображения:

введите здесь описание изображения


person gpj    schedule 31.10.2014    source источник
comment
как насчет размытия, а затем возврата всех пикселей, которые не имеют цвета на входном изображении?   -  person Steffen    schedule 31.10.2014
comment
В основном размытие приводит к тому, что изображение теряет резкость, следовательно, качество снижается. Что было бы предпочтительнее, так это ввести непрерывное изменение цвета изображения там, где они присутствуют.   -  person gpj    schedule 31.10.2014
comment
Непрерывное изменение цвета означает меньшую резкость. Я не вижу разницы в размытии и постоянном изменении цвета...   -  person Steffen    schedule 31.10.2014
comment
Я думаю, что OP хочет размыть только те пиксели, которые не являются краями. Таким образом, найдите все края / контуры на изображении, размойте изображение, затем замените те пиксели, которые являются краями, исходными цветами .... это то, что я бы попробовал.   -  person rayryeng    schedule 31.10.2014
comment
Это похоже на возможное решение. Спасибо, rayryeng.   -  person gpj    schedule 31.10.2014


Ответы (1)


Используйте нелокальные средства (NLM) или анизотропную диффузию. NLM лучше всего подходит для сохранения как краев, так и деталей в плоских/текстурированных областях.

В MATLAB Central есть несколько реализаций:

Есть много других.

person chappjc    schedule 31.10.2014