Как масштабировать между двумя настройками баланса белого для восприятия равных приращений?

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

Ответы (3)

Логарифмически интерполируйте числа R и B. Мы воспринимаем интенсивность света именно так, а не линейно. Например, та же самая сцена, снятая с последовательностью уменьшающихся значений диафрагмы, когда все остальное остается постоянным, дает последовательность изображений, которые выглядят последовательно светлее, причем каждый шаг кажется примерно постоянным. Тем не менее, фактическое количество света будет идти в степени 2 последовательности.

Чтобы интерполировать уровень освещенности от A до B, вы хотите найти соотношение, а не приращение, которое приведет вас к желаемому количеству шагов. В обычной линейной интерполяции, если вы хотите перейти от A к B за 4 шага, вы должны добавлять (BA)/4 каждый шаг. При логарифмической интерполяции вы хотите умножать на некоторое значение каждый шаг. В этом примере это кратное будет (B/A) 1/4 , что является четвертым корнем B/A. В общем, коэффициент умножения каждого шага равен (B/A) 1/steps .

Например, если вы хотите пройти от 5 до 39 за 4 шага, то каждый шаг должен быть (39/5) 1/4 = 1,6712. Последовательность будет такой:

5.000
 8.356
13.964
23.337
39.000

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

Есть забавная вещь в том, как мы воспринимаем баланс белого.

Если изображение визуализируется с использованием значения ББ, которое значительно отличается от фактической температуры света в сцене, ББ может быть перемещен на довольно большое расстояние с очень небольшим изменением нашего восприятия изображения. Если баланс белого установлен вблизи «переломной точки» нашего восприятия, то гораздо меньшие изменения баланса белого могут вызвать изменения цвета изображения, которые мы воспринимаем как более значительные.

Например, предположим, что мы делаем снимок под прямыми солнечными лучами через два или три часа после восхода солнца. Свет будет сосредоточен около 5200 К.

Если мы сравним изображение, отрендеренное с цветовыми температурами 2500 К и 3500 К, то особой разницы не заметим. Оба изображения будут иметь очень синий оттенок для наших глаз. Рендеринг 2500 K будет выглядеть немного синеватым. То же самое верно, если мы сравним изображение, визуализированное с цветовыми температурами 8000 К и 10 000 К, они оба будут выглядеть для наших глаз почти одинакового оттенка желтого/оранжевого.

Но если мы сравним изображение, полученное с цветовыми температурами 4900 К и 5500 К, мы увидим более значительную разницу между ними на наш взгляд. Версия 4900 K будет выглядеть немного синей, а версия 5500 K будет выглядеть немного янтарной.

Логарифмическая интерполяция чисел R & B, как объясняет ответ Олина Латропа, даст четные шаги по шкале WB между двумя настройками. Но с точки зрения восприятия они могут быть не равномерными шагами, если только точка баланса не находится в центре двух образцов.

Интересный момент. Не важно для каких-либо целей, которые у меня были до сих пор, но стоит отметить. Наверное, то, что описывают люди, когда говорят о том, что «правильный» ББ просто «щелкает», когда его находят.

Откровенно говоря, это не кажется практичным или полезным, но для этого вы можете сделать снимок своей камерой каждого из дневного света и тени, а затем в разделе производителей EXIF ​​увидеть что-то вроде:

Уровни WB_RB: 1.82421875 1.5234375 1 1, которые являются множителями, используемыми для R, B, G, G.

Каждый пиксель конечно. Но настройки баланса белого (дневной свет, тень и т. д.) просто сообщают вам номинальные стандартные значения, а НЕ значения, фактические в освещении вашей сцены (есть много значений тени, лампы накаливания, вспышки и т. д.). ББ камеры предлагает только один необдуманный выбор, не связанный с вашей реальной сценой (что, вероятно, является вашей проблемой).

Что бы сделал фотограф, так это поместил бы стандартную карту баланса белого (Porta Brace, B&H за 5 долларов или WhiBal тоже хороши, но дороже — любая из них работает нормально) при том же освещении, что и сцена (дальний край будет обрезан). , или только на первой тестовой картинке). Это может быть белая бумага, или конверт, или футболка, или фарфоровая тарелка, или церковный шпиль, или частокол, или вывеска, и они обычно близки, обычно предназначены для того, чтобы выглядеть Белыми, но НЕ ИЗВЕСТНО точны, могут немного варьироваться. Это просто должно быть в ТОМ ЖЕ свете, что и ваша сцена.

Затем с помощью стандартного инструмента WB вы просто щелкаете карточкой на изображении, и Presto, ваш цвет идеален, независимо от того, каким он был раньше. Карты имеют идеальные нейтральные цвета (равные компоненты RGB, без цветового оттенка). Щелчок по карте с помощью инструмента говорит: «Компьютер, я уверен, что это место нейтральное, поэтому сделайте его нейтральным». Presto, на вашем изображении нет цветового оттенка (при условии, что карта находится в том же свете, что и ваша сцена).

Все остальные детали излишни. Вам понравится этот метод. Делает WB легким.

Хороший общий ответ на баланс белого, но я не уверен, что он отвечает на вопрос о масштабировании восприятия? Масштабируются ли множители баланса белого линейно или они следуют какой-то другой функции (логарифмической? Например, яркость/гамма)
Я не эксперт по множителям, поищите в Google множители WB. Но они применяются к каждому компоненту КАЖДОГО пикселя, который отвечает за яркость. Nikon указывает его для RBGG, который является линейным.
Да, я понимаю, как балансировать белый для существующего источника света, вот как я пришел к двум настройкам, между которыми я хочу интерполировать. Это может показаться вам непрактичным, но если у меня есть причина хотеть это сделать, то для меня это практический вопрос. :П
Хотя он существует в виде линейных данных в необработанном файле, применение усиления в отношении восприятия обычно не является линейным . Когда у меня будет возможность, я пойду эмпирическим путем и попробую различные упомянутые журналы. Я просто подумал, что со всеми умными людьми здесь это может быть простым ответом для кого-то.
@junkyardsparkle Как только у вас появятся данные, вернитесь и добавьте свои выводы в качестве ответа.
@RichardSmith Подойдет, если меня никто не опередит. На данный момент у меня еще меньше способностей к математике, чем обычно, из-за сильной простуды. :/