Так называемая гамма-коррекция - странный зверь, который существует по историческим причинам. Первоначально он был реализован телевещательными компаниями, чтобы иметь дело с тем фактом, что электронно-лучевые трубки не имеют линейного отклика на амплитуду сигнала. И вместо того, чтобы компенсировать в каждом телевизоре, т.е. в приемнике, решили компенсировать в передатчике. Это также имело приятный динамический c эффект сжатия.
По прошествии времени предварительная компенсация оставалась в стандартах, и для современных устройств, которые имеют линейный отклик, предварительную компенсацию необходимо отменить, применив гамма-коррекция с обратной экспонентой. Поэтому, когда вы получаете изображение из неизвестного источника, неясно, нужно ли его гамма-корректировать и с каким показателем.
При этом показатель гамма также используется полным эмпирическим способом для усилить или ослабить темные тона, и наоборот. Априори концепция «оптимальной» гамма-экспоненты весьма субъективна и будет различаться в зависимости от атмосферы, которую вы хотите придать своему изображению, и в зависимости от конкретного объекта.
Я не знаю ни одного метод автоматического выбора значения гаммы. Если бы мне пришлось, я бы выбрал какую-нибудь функцию, взятую из гистограммы изображения (например, среднее значение, отклонение, коэффициент вариации ...), и настроил бы гамму до тех пор, пока этот критерий не достигнет определенного значения. Поскольку гистограмма не имеет формы аналити c, необходим процесс проб и ошибок (например, дихотомия c поиск).
Также ознакомьтесь с методом «спецификации гистограммы».