Гамма-коррекция на изображении в Android

Я создаю приложение для Android, которое предоставляет пользователю некоторые функции обработки изображений. Но перед применением какой-либо функции преобразования изображения я хотел бы сделать гамма-коррекцию, чтобы улучшить изображение. Я знаю, как выполнить гамма-коррекцию, но я не знаю, какое гамма-значение использовать, поскольку само изображение не имеет гамма-значения, с которым было создано изображение. Любая информация о том, как выбрать значение гаммы для конкретного изображения, будет очень полезна.

1 ответ

Решение

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

Измерьте среднюю яркость изображения и назовите его aсо значениями от 0 до 255. У вас есть цель для оптимальной яркости, давайте назовем это t, Если неизвестная гамма g тогда вы получите:

t/255 = (a/255)^g

Решение для g дает:

g = log(t/255) / log(a/255)
Другие вопросы по тегам