Фильтрация узких спектральных линий в цифровой постобработке

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

Пример изображения ниже. Мельница освещена единственным натриевым уличным фонарем за моей спиной, а туман в небе освещен далекими уличными фонарями. Деревянные части наверху мельницы окрашены в белый цвет, поэтому их можно использовать в качестве эталона цвета. Поскольку во время съемки изображения вокруг не было другого источника света, удаление спектральной линии натрия должно сделать мельницу довольно темной, а ее части - относительно нейтрально-серыми.

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

Ради общности и независимости от какого-либо конкретного программного продукта позвольте мне спросить так: как можно удалить спектральную линию заданной длины волны из цифрового изображения при постобработке?

Я предполагаю, что вы возьмете образец цвета с белого объекта, освещенного «оскорбительным» источником света. Скажем, это дает вам RGB 20,20,5. Теперь вы должны пойти и создать карту яркости вашего изображения, умножить значения на вектор цвета, собранный ранее, и вычесть результат из входного изображения... но если я это сделаю, я получу очень непригодные для использования результаты.
Если выложите фото, я, скорее всего, подскажу, как это исправить. Без картинки для меня это звучит как тарабарщина.
@RyanFromGDSE: образец добавлен. Но я бы хотел, чтобы ответ был применим к любому монохроматическому источнику света.
Это нормально, и спасибо за изображение, но я до сих пор понятия не имею, что означает «узкие спектральные линии». Вы имеете в виду только общий оттенок?
Ну вроде. Если вы посмотрите на спектр большинства источников света, вы увидите довольно широкое сочетание красных, зеленых, желтых и синих компонентов. Но натриевые лампы излучают только одну длину волны света (см. en.wikipedia.org/wiki/Sodium-vapor_lamp#/media/File:SOX.png ) и поэтому могут быть легко отфильтрованы такими фильтрами, как hoyafilter.com/hoya/products . /coloredfilters/… с соответствующими кривыми фильтра.
Все еще не уверен и не знаю, что у вас будет какой-либо способ устранить определенную длину волны. Но является ли какой-либо из них тем, что вы ожидаете от результата? Если это так, я могу опубликовать ответ, объясняющий, как это довольно просто: imgur.com/a/KDHeb
Не совсем то, что я ожидал, нет ... похоже, вы в основном изменили баланс белого и оттенок для этих изображений. Но я ожидаю, что при использовании подходящего фильтра яркость любой поверхности, освещенной оранжевым натриевым светом, должна заметно уменьшиться. Я нашел пример здесь: forum.meteoros.de/…

Ответы (1)

Краткий ответ: вы не можете. Фильтры вашей камеры не знают разницы между линией Na и длинами волн около 590 нм, то есть от 570 до 640 или около того. Как только информация объединена (т. е. фотоны всех длин волн, которые проходят через заданный цветовой фильтр), обратный алгоритм становится невозможным. Кроме того, как отмечает ваш источник, даже хорошая лампа низкого давления имеет двухлинейный выход.

Единственный способ убрать этот свет — установить узкополосный фильтр перед объективом. Их можно купить, хотя и недешево, насколько я знаю.