(анимированный GIF, демонстрирующий результаты удаления цветовой составляющей цифрового шума)
Поборолся и я всласть.
скачать скрипт
После того, как я определил для себя способ удаления цветовой составляющей шума дающий приемлемые результаты, я воплотил его в соответствующем скрипте для GIMP:
Вот, что делает этот скрипт:
- Создает копию активного слоя, если выбран параметр "Create new layer", который будет содержать в себе результат работы скрипта. Если параметр "Create new layer" не выбран, результат заменит собой активный слой. Назовем этот слой "рабочим".
- Создает маску для "рабочего" слоя, если выбран параметр "Add black mask". Так как неугодный нам шум появляется обычно в темных участках изображения, то маска определяет именно их. Всё попадающее в диапазон от 0 до "Mask Threshold" будет считаться таким темным участком, который маска сделает непрозрачным. Степень размытости маски определяется параметром "Blur Radius".
- Разбирает "рабочий" слой на составляющие в выбранной цветовой модели "Color Model"(возможные варианты на данный момент "LAB" и "YCbCr ITU R470") и размывает каналы с цветовыми составляющими при помощи стандартного фильтра GIMP "Selective Gaussian Blur"("Выборочное Гауссово размывание"). Параметры "Blur Radius" и "Blur Delta" соответствуют параметрам этого фильтра.
- Собирает изображение и возвращает результат в "рабочий" слой
Рекомендации:
- Установка: скачайте скрипт, скопируйте его в каталог, в котором GIMP будет пытаться найти свои скрипты( например, в $HOME/.gimp-2.6/scripts) и перезапустите GIMP, если он был запущен. После этого, если все сделано правильно, скрипт появится в меню "Filters/Enhance"("Фильтры/Улучшение") с именем "Chroma Denoise".
- Параметр "Blur Radius" должен быть примерно равным размеру пятен шума в пикселях.
- Параметр "Blur Delta" должен быть примерно равным разнице в яркости пятна по отношению к основной картинке.
- Поэкспериментируйте со значением параметра "Mask Threshold", чтобы результат работы скрипта не затрагивал те области изображения, которые он не должен затрагивать.
- Помните, что "Selective Gaussian Blur" медленнее чем простой "Gaussian Blur" — чем больше значения двух его параметров тем дольше он будет работать.
P. S. Кроме этого скрипта, есть еще масса скриптов и плагинов для подавления различных шумов, самый лучший из них, по-моему, это Wavelet denoise. Не смотря на то, что подобных скриптов много, все они используют простой "Gaussian Blur", что негативно влияет на участки изображения с резкими цветовыми переходами — в этом случае переходы смазываются, приобретая совсем другой цветовой оттенок и ухудшая изображение.
1 комментарий:
Да, вот это статья, давно такого не читал, спасибо. Автору респект!
Отправить комментарий