Какая математика стоит за алгоритмами баланса белого?

У меня есть изображение в цветовом пространстве CIELab. Мне нужно сделать некоторую обработку на нем. Итак, есть два вопроса:

  1. Учитывая массив значений Lab, как можно получить общую температуру изображения в Кельвинах? (Как в настройках камеры или в Lightroom)

  2. Имея значение температуры в Кельвинах, как можно отрегулировать баланс белого изображения, чтобы он соответствовал этой самой температуре? (Как в Lightroom)

Также хотелось бы узнать, как сделать то же самое для цветового оттенка.

1 ответ

Решение

Старый (и глупый) метод заключается в проверке цвета наиболее ярких пикселей (но без подсветки). Предполагается, что это белый. К счастью, часто встречаются белые объекты (проверьте глаза людей), поэтому он работает большую часть времени.

Просто удалите такой цветовой оттенок на всех пикселях, и вы получите сбалансированное изображение белого цвета. [Примечание: это должно быть сделано в линейном пространстве].

Из цветности белого вы можете получить Кельвин: примечание: большинство программ допускают WB в обоих направлениях ab (таким образом, 2D, ваш дополнительный "оттенок"), а не только одну линию (температура).

Современные камеры более умны: они проверяют, не обрезаны ли никакие каналы, они проверяют, что цветность находится не далеко от излучения черного тела (поэтому недалеко от просто параметра "температура"). И большинство современных камер могут различать объект (например, с расстоянием фокусировки (таким образом, пейзаж) и т. Д., Чтобы предсказать лучший WB).

Серая карта - все еще более надежный способ: никакие алгоритмы не могут получить истинный баланс белого.

Другие вопросы по тегам