Эффект Instagram Lux - PullRequest
       7

Эффект Instagram Lux

9 голосов
/ 17 марта 2012

Instagram недавно добавил кнопку Lux, которая позволяет автоматически контрастировать / выравнивать фотографии, которые вы делаете.

У меня есть куча картинок, которые мне нужно подобрать автоматически, чтобы сделать эти картинки лучше.Если бы я хотел использовать пакетную команду с Imagemagick, какие «секретные ингредиенты» использовать?Должен ли я просто придерживаться настройки контрастности или играть с уровнями и т. Д.?

Поскольку я не знаю, будет ли исходное изображение темным, ярким, уже контрастным, мне потребуется проанализировать изображение перед его обработкой.

Поэтому 2 вопроса:

  1. На какие настройки мне следует обратить внимание при создании моей пакетной команды для Imagemagick, которая будет последовательно выводить более привлекательные фотографии?

  2. Имеет ли смысл запускать пакет и позже возвращать «ложные срабатывания» вручную (у меня есть около 50 000 фото для обработки)?

1 Ответ

29 голосов
/ 19 марта 2012

Простой линейный способ выполнения «автоконтрастности» - это линейное растяжение и смещение интенсивности изображения.
Идея состоит в том, чтобы найти параметры коррекции растяжения (контрастности) и смещения (интенсивности) так, чтобы в скорректированном изображении 5-й процентиль был сопоставлен с 0, а 95-й процентиль был сопоставлен с 255.

Мой пример для изображения в градациях серого. Для цветных изображений вы можете конвертировать в любое цветовое пространство, которое имеет один канал интенсивности и 2 цветовых канала (например, Lab, HSV, YUV и т. Д.) И выполнять это только на канале интенсивности.

  1. Создание гистограммы изображения
  2. Найти 5-й и 95-й процентиль серого (используйте накопленную сумму по значениям гистограммы).
  3. Решите для a и b в этих 2 простых линейных уравнениях:
    a*p5+b=0 и a*p95+b=255, где p5 и p95 - 5-й и 95-й процентили серого цвета соответственно.
  4. a - это контраст , а b - интенсивность поправок.
  5. Теперь отобразите все интенсивности серых пикселей в соответствии с уравнением: g'=a*g+b для всех g = 0..255.

Конечно, вы можете использовать разные значения для процентиля и фактических отображений. Посмотрите, что работает для вас.

...