Похоже, что было применено нелинейное преобразование яркости. Например, эффект выделения может означать, что только более яркие части изображения имеют еще большую яркость, а регулировка тени может означать, что более темные части изображения имеют повышенную яркость.
Общий подход будет
- Преобразование данных изображения RGB в цветовое пространство с яркостью в качестве отдельного измерения, например, HSL или CIELAB.
- Преобразуйте яркость / яркость / яркость по пикселям с помощью одной функции преобразования, которая непрерывна и монотонно увеличивается, но ограничена диапазоном допустимых значений. Это похоже на нелинейное растяжение или сжатие гистограммы яркости.
- Заменить оригинальную яркость на преобразованную.
- Преобразование обратно в цветовое пространство RGB.
Характерной чертой функции преобразования яркости является то, что она обычно только растягивает или сжимает определенный диапазон яркости (это хорошо видно на примерах изображений). Для этого обычно требуется больше, чем только один параметр (вам необходимо определить диапазон гистограммы, на который это влияет, а также силу). Похоже, что у Adobe есть некоторая эвристика, которую он рассматривает как тени и то, что он рассматривает как светлые участки (возможно, среднее значение гистограммы яркости) как обрезанный, и предлагает только силу в качестве параметра.
Точная форма трансформации также зависит от вашего вкуса. Я немного поиграл
Подсветка, похожая на вашу подсветку, которую я могу получить (с преобразованием в CIELAB и Ligthness L изменяется от 0 до 100) кусочно-линейной функцией:
a = 1.5
b = 50
L(L>b)=a*L(L>b)-(a-1)*b
Улучшение теней, которое похоже на ваше усиление теней, которое я могу получить с экспоненциально затухающим улучшением.
a = 4;
b = 20;
L = ((a-1)*exp(-L/b)+1) * L;
Вы видите, что мне всегда нужны как минимум два параметра, и я убежден, что можно найти лучшие функции преобразования, но результаты убедительно свидетельствуют о том, что по сути это не что иное, как просто преобразование яркости, которое можно воспроизвести в iOS приложение. Игра с различными функциями преобразования может дать лучшее представление о том, что хорошо, а что нет.