Вот фотография новогодней ёлки в том виде, в котором видит матрица камеры:

Она даже не чёрно-белая, а серо-серая.
Причина этого в том, что хотя аналогово-цифровой преобразователь (АЦП) камеры теоретически способен выдавать значения от 0 до 16382, данные не покрывают весь этот диапазон:

Реальный диапазон значений АЦП приблизительно равен от 2110 до 13600. Давайте представим эти значения в изображении в виде чёрного и белого:
Vnew = (Vold - Black)/(White - Black)

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

Давайте раскрасим каждый пиксель в цвет того фильтра, через который он виден:

Эта версия более цветная, но каждый пиксель имеет лишь одну треть от своего RGB-цвета.
Чтобы исправить это, я просто усреднил значения каждого пикселя с его соседями:

Если применить этот процесс ко всему фото, свет получит цвет:

Однако изображение по-прежнему слишком тёмное. Мониторы не обладают таким же динамическим диапазоном, что и человеческий глаз или матрица камеры: даже если у вас OLED-дисплей, от экрана всё равно будет отражаться внешнее освещение, ограничивая максимальную степень его черноты.
Есть и ещё одна менее очевидная причина этого:

Наше восприятие яркости нелинейно.
При дискретизации значений яркости основная часть интервалов АЦП впустую тратится на практически идентичные оттенки белого, а все остальные оттенки оказываются скученными в нижней части. Из-за такого неэффективного использования памяти большинство цветовых пространств выделяет тёмным цветам дополнительные интервалы:

Из-за этого в случае непосредственного отображения линейных данных они кажутся гораздо темнее, чем должны быть.
Обе эти проблемы можно решить, применив к каждому цветовому каналу нелинейную кривую, чтобы сделать тёмные области более яркими… но в итоге получается не очень:

Часть из этих зелёных оттенков вызвана тем, что матрица камеры по своей природе более чувствительна к зелёному свету, но за другую часть ответственен я: в матрице фильтров вдвое больше зелёных пикселей. При использовании моего наивного процесса устранения мозаичности зелёный канал усиливается ещё больше.
Как бы то ни было, это можно решить при помощи баланса белого: можно выровнять каналы, умножив каждый из них на константу.
Однако поскольку изображение нелинейно, для этого мне придётся сделать шаг назад. Вот показанное выше тёмное изображение со временным масштабированием всех значений, чтобы можно было увидеть проблему:

… а вот изображение с ослабленным зелёным, чтобы он соответствовал остальным каналам:

… и снова применяем кривую:

Наконец-то мы получили неплохое фото.
Но на самом деле, это самый минимум: я не выполнял никакой калибровки цветов, баланс белого неидеален, точки чёрного слишком высоко, на изображении много шума, который нужно подчистить…
Кроме того, применение кривой к каждому цветовому каналу непроизвольно привело к снижению насыщенности ярких участков. Этот эффект выглядит вполне неплохо (и именно его мы привыкли ожидать от плёнки), но из-за него звезда стала менее жёлтой. Можно выделить светлоту и применить к ней кривую, сохранив при этом цвет. Само по себе это превратило бы светодиодную гирлянду в перенасыщенный хаос, но если объединить оба способа, то можно получить красивые результаты.
Вот для сравнения фотография, которую сгенерировала моя камера из тех же данных:

Фотография явно далеко «не оригинальная»: чтобы достаточно точно отразить, как объект выглядит на самом деле, нужен приличный объём вычислений.
Все изменения контрастности или баланса белого, вносимые вами в графическом редакторе, выполняет «за кулисами» и сама камера. Отредактированное фото не становится «фальшивей», чем оригинал, это просто разные визуальные представления одних и тех же данных.
В конце концов, воссоздать восприятие человека сложно, и ещё сложнее оказывается это сделать в условиях ограничений дисплейной технологии или печати. Нет ничего плохого в настройке параметров изображения, если автоматизированные алгоритмы в чём-то просчитались.