Почему результат Кривые Photoshop и Кривые Imagemagick отличаются? - Фотопедия
0 голосов
/ 21 мая 2016

При использовании imagemagick для применения кривых (convert -function) выходные данные отличаются от выходных данных, когда я использую корректирующий слой кривых в Photoshop. В чем причина такой разницы?

Я использую 16-битные изображения Tiff в ProphotoRGB в качестве базовых файлов. В Photoshop я создаю корректирующий слой кривых и применяю настройки «Увеличить контраст». Затем я прочитал координаты x, y из точек на графике (0,0; 37,16; ...) и преобразовал их в соответствие между 0 и 1, т.е. я разделил их на 255.

Далее я использовал im_fx_curves -c из документации imagemagick для получения коэффициентов функции: http://www.imagemagick.org/Usage/color_mods/#curves

Теперь, теоретически, я должен получить точно такое же изображение с функцией convert -function Polynomial coefficients, что и со слоем корректировки кривых в Photoshop. Однако результат весьма отличается, например тени заметно ярче. Что может быть причиной этого? И что еще более важно: Как я мог "исправить" эту разницу, чтобы получить те же результаты?

Один из подозреваемых - это цветовое пространство. Может ли быть еще один шаг из-за ProphotoRGB? (Обратите внимание, что в данный момент я не пытаюсь конвертировать в sRGB)

Редактировать: изменения в соответствии с запросом

  1. Вход ProphotoRGB, Выход ProphotoRGB, оба 16 бит, здесь не видна ошибка
  2. Точная командная строка: convert "%%G" -function Polynomial "-3.786,5.767,-1.543,0.562,0" "%ConvertTarget%\%%~nG.tif"
  3. Координаты в Фотошопе: 0,0 38,17 212,231 231,250 255,255
  4. Преобразование координат в коэффициенты: ./im_fx_curves -c 0,0 0.149019607843137,0.0666666666666667 0.831372549019608,0.905882352941176 0.905882352941176,0.980392156862745 1,1 > coefficients.txt
  5. Гистограммы:

До> Кривые Photoshop> Кривые IM

Histgrams

Ответы [ 2 ]

1 голос
/ 23 мая 2016

Когда я реализовал кривые в своем собственном просмотрщике изображений, я сначала просто сделал это для значений RGB. Меня раздражало, что, похоже, нарушается цветовой баланс, особенно при увеличении яркости с помощью кривой. Затем я решил решить, к чему должен применяться LUT. Например. Яркость преобразования YUV.

Я обнаружил, что яркость лучше для яркости, а яркость RGB лучше для затемнения. Смотрите примеры ниже. Цвета с высокой насыщенностью сохраняют свой цвет восприятия после наложения кривой в верхнем среднем и нижнем правом изображениях, в то время как верхний правый и нижний средний становится странным, перенасыщенным

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

lut decrease lut increase

Уменьшение яркости: Orig | RGB LUT | YUV lut

Увеличение яркости. : Ориг | RGB LUT | YUV lut

LUT compare

1 голос
/ 22 мая 2016

Вам определенно необходимо убедиться, что обработка кривых происходит в точно таких же цветовых пространствах. То, что вы описываете, может быть вызвано различными кривыми тонального отклика (например, с использованием Prophoto и sRGB)

Даже тогда могут быть различия:

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

  • Возможно, что, например, IM сначала линеаризует данные перед применением кривых, в то время как PS работает с существующей кривой тоновых характеристик, заданной профилем, выбранным для редактирования. Другими словами, реализации могут отличаться

...