Верна ли эта статья об ошибке гаммы при масштабировании изображения в обычном программном обеспечении?

Это своего рода вопрос «пожалуйста, проверьте вывод статьи». Некоторое время назад я нашел эту страницу: Гамма-ошибка в масштабировании изображения .

Я понимаю, что кривая яркости нелинейна и что некоторые (большинство) программы предполагают линейный масштаб и, таким образом, плохо изменяют размеры.

Но поскольку у меня нет такого большого опыта в области обработки изображений/гаммы/и т. д. (только начинаю с тонкостей постобработки), позвольте спросить вас: прав ли этот парень насчет этой ошибки при изменении размера? Верен ли его метод определения ошибочного программного обеспечения?

Ссылка на высокотехнологичную статью, которая не столько о фотографии, сколько об алгоритмах, используемых в программном обеспечении для обработки фотографий. Я бы сказал, что это не по теме.
Возможно. Но изменение размера является частью моей обработки изображений. Я часто изменяю размер изображений в пакетном режиме, прежде чем отдать их, и задаюсь вопросом, оказывает ли эта гамма-ошибка негативное влияние на них, чего я действительно не замечал до сих пор. (редактировать: я даже изменяю размер для первой оценки, так как мой экран только 1920x1080, и я предпочитаю оценивать полное изображение вместо 100%-го увеличения. Таким образом, первая сортировка самих изображений влияет.) Если автор прав, я бы лучше поищите альтернативное ПО.
Да, статья правильная. Но на необдуманных изображениях ошибку очень трудно заметить - поэтому она так распространена в обычных программах.

Ответы (3)

Даже не взглянув на статью, я скажу, что при изменении размера изображения JPEG, безусловно, существует некоторый перекос уровней. Это связано с тем, что значения RGB получаются из RAW после применения гамма-коррекции (нелинейной экспоненциальной) к значениям пикселей RAW. Затем при масштабировании значения соседних пикселей усредняются каким-либо методом (линейным, кубическим, методом Ланцоша) способом, отличным от конкретной гамма-коррекции. Это усреднение по своей природе является линейной операцией, и его применение поверх нелинейной гамма-коррекции приводит к перекосам.

Тем не менее, я думаю, что если вы масштабируете сам RAW, при условии, что это сделано правильно до гамма-коррекции, все должно быть в порядке. Однако я не уверен, как различные программы делают это.

Кстати, сами плоскости RGB получаются путем интерполяции ближних пикселей на матрице RAW — это называется демозаикой по шаблону Байера.

Интересный вариант найти SW, который масштабирует (интерполирует) нескорректированный RAW (больше/снова) до размеров, которые я использую, и позже применяет гамму.
@Leonidas - похоже, в приведенной вами статье есть список (хотя и старый) "правильного" программного обеспечения: 4p8.com/eric.brasseur/gamma.html?#solutions
Да, есть. Сегодня я уже использовал первый доступный pamscale с Linux/cygwin. Я упустил из виду, что RawTherapee является частью списка - это может реализовать предлагаемое вами решение. Но: остается вопрос, действительно ли существует эта проблема при изменении масштаба в JPG. У меня нет фотографий, как его пример из глаз жуков легко доступны для проверки идеи.
@Leonidas - я думаю, вы можете загрузить образцы изображений из статьи и использовать их в любом процессоре, который вы используете, для проверки правильности. Также обратите внимание, что решение, которое я предложил, является одним из возможных подходов и актуально только тогда, когда у вас есть процессор RAW (LightRoom есть в списке, так что, может быть, это нормальное программное обеспечение?). То, что автор, кажется, делает (я еще не прочитал его полностью), сначала выполняет обратное гамма-преобразование (фактически возвращаясь к линейному пространству RAW), интерполирует и последнее гамма-преобразование снова.
Что значит "если он прав"? Математически? Конечно он! О настройке? Что ж, это зависит от вас, чтобы проверить.
Да, я использовал изображение Далай-ламы. И мой основной софт для быстрой сортировки (XnView) дает сбой и обратное гамма-преобразование работает не слишком хорошо. Но есть такие вещи, как плохие настройки - я бы очень хотел знать, действительно ли автор прав (и не только прав для незначительных частей изображений), прежде чем я брошу свой рабочий процесс :) [PS: Извините, я отредактировал свой комментарий слишком часто ...]

Эта статья технически верна. Самый простой способ проверить — попробовать изменить размер бело-черных шашек. Все программы, которые я пробовал, показывают резкое изменение яркости при уменьшении шашечного паттерна в 2 раза, и простая логика подсказывает, что изменения яркости быть не должно. И если вы попробуете скорректировать гамму с помощью 0,45, затем изменить размер, а затем скорректировать с помощью 2,2, вы получите ожидаемую яркость, как у исходного рисунка.

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

Все могло бы измениться, если бы кто-то использовал более широкую арифметику (16 бит на канал), но программное обеспечение имеет тенденцию использовать нелинейную передаточную функцию для больших глубин цвета, поэтому в этом случае гамма-коррекция верна. Я не проверял Photoshop на предмет этого, но я попытался собрать gimp 2.10 из git, и он правильно справился с высокой глубиной цвета.

Программное обеспечение для необработанной обработки, где это имеет смысл, также активно использует нелинейные кривые (начиная с профиля камеры и баланса белого) и, как правило, учитывает цветовой профиль. Например, darktable рано преобразуется в Lab и в основном работает в этом цветовом пространстве, поэтому указанная статья к нему вообще не применима.

Просто возьмите фотографию, которую он опубликовал, измените ее размер с помощью вашей программы и проверьте результат.

Photoshop представил гамма-коррекцию около 3 лет назад, другие приложения имеют опцию (IrfanView), другие приложения до сих пор вообще не используют гамму.

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