Основная проблема при съемке под водой состоит в том, что вода поглощает немного света. Он поглощает красный больше, чем синий. Как вы можете видеть в этой статье в Википедии о электромагнитном поглощении водой , поглощение красного / оранжевого света (на метр воды) примерно в 100 раз больше, чем синего / фиолетового света.
![Absorption in Water of Visible Light](https://i.stack.imgur.com/qaZj1.gif)
Я не уверен, что для этого достаточно простых настроек баланса белого, но я бы попробовал две вещи:
Попытка «автоматической» регулировки баланса белого
Если у вас есть что-нибудь с очень нейтральным цветом в вашей сцене, вы часто можете выполнять автоматическую регулировку баланса белого в некоторых программах для фотосъемки. Если все ваши снимки имеют примерно одинаковую глубину, то вам, возможно, понадобится выполнить это один раз и применить ко всем.
Попытка «ручной» цветовой балансировки (первая?)
Если автоматическая балансировка белого не работает, или не дает отличных результатов, или у вас нет нейтральных объектов в ваших сценах, тогда вы можете попробовать вручную отрегулировать уровни RGB на основе ожидаемого освещения в сцене. Это может помочь точно узнать, какие диапазоны длин волн использует фильтр Байера вашей камеры, но в противном случае , глядя на график Я бы предположил, что их центры приблизительно красные = 650-700 нм, зеленые = 500-550, синие = 425- 450, что соответствует коэффициентам поглощения R = 0,4, G = 0,04, B = 0,007 (единицы - доля света на метр).
Так что вы можете умножить свои цветовые каналы, чтобы поднять красный и зеленый свет до уровня синего, если вы примерно знаете, на какой глубине вы были. Формула, которая вам понадобится для определения того, сколько света на самом деле уменьшается, есть Закон Бера-Ламберта , и на самом деле это просто экспоненциальная функция затухания, основанная на произведении вышеуказанных коэффициентов и вашей глубины:
![Beer-Lambert Law](https://i.stack.imgur.com/O7Yeu.png)
Из этих чисел на 10 м вы получите относительную интенсивность RGB = [0,018, 0,67, 0,93], поэтому вам нужно умножить красный канал на ~ 51, а зеленый на ~ 1,4. Также обратите внимание, что когда я говорю «10 м», я имею в виду общее расстояние, на которое свет распространяется от поверхности, то есть глубина объекта + ваше расстояние до объекта.
На расстоянии 20 м через воду вы будете иметь относительную интенсивность RGB = [0,00034, 0,45, 0,87], поэтому вы захотите умножить красный канал на ~ 2600, а зеленый на ~ 1,9.
Очевидно, что на такой глубине у вас будет очень шумный красный канал, даже на ISO100 (на 20 м вы теряете ~ 11 бит информации на красном канале, когда вы умножаетесь на 2600, так что, возможно, остается 3 бита из оригинальных 14, если вам повезет!).
Все эти числа довольно приблизительны и, конечно, предполагают одну длину волны для всего диапазона каждого фильтра RGB и одинаковое общее расстояние прохождения света через воду для всей сцены (но это крупный план и океанический коралл, расположенный на 3 м ниже, имеет разницу в ~ 6 м в расстоянии поглощения), но многие из этих предположений уже присущи цифровой обработке ...
Не сделав этого сам, я, вероятно, попытался бы выполнить эти настройки до / после попытки различного баланса белого, чтобы увидеть, что дает лучшие результаты, и попытаться отрегулировать коэффициенты усиления выше (в идеале, вы хотите получить некоторые данные о длинах волн фильтра RGB и более точных данных о поглощении цветов точных длин волн для определения этих соотношений).
Не слишком ли поздно?
Итак, ответ на на этот вопрос предполагает, что вам следует использовать какой-то подводный фильтр, который, как я подозреваю, имеет спектр пропускания, который во многом похож на обратный спектр поглощения воды на некоторой определенной глубине. Это было бы идеально, потому что вы не полагаетесь на предполагаемую производительность ваших каналов RGB в эфире. Но это, конечно, не поможет вам с обработкой RAW!
Наконец, добавление собственного света тоже может помочь. Если вы делаете снимки на расстоянии около 10 м под поверхностью, но только в 1 м от подводного объекта, то для обеспечения собственного света (достаточного для подавления солнечного света, все еще падающего так далеко) потребуется гораздо меньшая компенсация. На расстоянии 2 м (1 м от объекта, 1 м от объекта) отношения RGB равны [0,45, 0,92, 0,99], так что регулировки R на 2,2 и G на 1,07 должно быть достаточно, и автоматическая балансировка белого может даже «просто» Работа". Это также может помочь в некоторых сценах, если вы попытаетесь добиться того, чтобы общее расстояние, которое проходит свет (от источника света до объекта), было более равномерным по всей сцене.