Какая математика стоит за алгоритмами баланса белого?
У меня есть изображение в цветовом пространстве CIELab. Мне нужно сделать некоторую обработку на нем. Итак, есть два вопроса:
Учитывая массив значений Lab, как можно получить общую температуру изображения в Кельвинах? (Как в настройках камеры или в Lightroom)
Имея значение температуры в Кельвинах, как можно отрегулировать баланс белого изображения, чтобы он соответствовал этой самой температуре? (Как в Lightroom)
Также хотелось бы узнать, как сделать то же самое для цветового оттенка.
1 ответ
Старый (и глупый) метод заключается в проверке цвета наиболее ярких пикселей (но без подсветки). Предполагается, что это белый. К счастью, часто встречаются белые объекты (проверьте глаза людей), поэтому он работает большую часть времени.
Просто удалите такой цветовой оттенок на всех пикселях, и вы получите сбалансированное изображение белого цвета. [Примечание: это должно быть сделано в линейном пространстве].
Из цветности белого вы можете получить Кельвин: примечание: большинство программ допускают WB в обоих направлениях ab (таким образом, 2D, ваш дополнительный "оттенок"), а не только одну линию (температура).
Современные камеры более умны: они проверяют, не обрезаны ли никакие каналы, они проверяют, что цветность находится не далеко от излучения черного тела (поэтому недалеко от просто параметра "температура"). И большинство современных камер могут различать объект (например, с расстоянием фокусировки (таким образом, пейзаж) и т. Д., Чтобы предсказать лучший WB).
Серая карта - все еще более надежный способ: никакие алгоритмы не могут получить истинный баланс белого.