Как узнать, имеют ли изображения TIF гамма-коррекцию или нет?

У меня есть несколько файлов изображений DNG, записанных с помощью LGE Nexus 5X с использованием Open Camera для Android в качестве приложения для камеры. Для дальнейшей обработки изображения я преобразовал файлы DNG в файлы TIF с помощью Camera Raw 8 и Photoshop CC 2015. Я преобразовал изображения без изменения каких-либо настроек цвета или экспозиции.

Насколько я знаю, файлы DNG должны быть линейными (без гамма-коррекции). Мой вопрос заключается в том, является ли преобразованный файл TIF все еще линейным или нет. Делает ли Photoshop/Camera Raw гамма-коррекцию для файлов TIF?

Ответы (4)

Когда вы просматриваете изображение с помощью обычного средства просмотра изображений, оно в основном темное? Если нет, то применяется гамма-кривая. То есть это выглядит так?

тиф без гаммы

Это то, что вы получите с чистым дампом линейных значений в 16-битный TIFF-файл. Или, закодировав 8 бит, демозаики и с отрегулированным балансом белого, что-то вроде этого:

8-битный цвет

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

Я преобразовал изображения без изменения каких-либо настроек цвета или экспозиции.

Возможно, вы не изменили настройки по умолчанию , но ваше программное обеспечение для обмена RAW-сообщениями имеет значения по умолчанию, которые не являются «оставлять входные значения без изменений».

См. Как выглядит необработанный файл RAW? для большего. Если вы действительно хотите извлечь необработанные данные для собственной обработки, посмотрите на использование dcraw, как указано там.

Спасибо! Чтобы линеаризовать изображения, мне нужно знать значение гаммы, используемое для гамма-коррекции. Есть ли способ узнать это?
Почему бы просто не использовать dcraw? Зачем вам линейные изображения?
Проблема выходит за рамки гаммы, которая представляет собой просто метод кодирования/декодирования, указанный тегами, записанными в файл tiff. Фактическая проблема заключается в кривой тона, используемой для преобразования из RAW в TIFF, и это не связано с гамма-коррекцией. Хуже того, он не определяется, он также влияет на цветность и необратим. Похоже, вы хотите получить то, что называется изображением «Сцена». Это несколько специализированная область для тех, кто занимается высококачественной репродукцией.
@doug Да, я как бы упустил это из виду, но это абсолютно так. На втором изображении выше dcrawприменена корректировка баланса белого, считанная из метаданных, созданных камерой, вместе с цветовой матрицей для конкретной модели камеры.
@mattdm Я хочу преобразовать изображения в цветовое пространство CIEL a b *. Поэтому, насколько я знаю, изображения должны быть линейными. Может быть, есть способ напрямую вычислить изображения L a b * из данных RAW.
@HansMüller Но почему ты хочешь это сделать? Это похоже на промежуточную цель, а не на конечное состояние.
Ищу показатели, коррелирующие с «зеленостью» растений. Параметр b* цветового пространства CIEL*a*b* может быть таким индексом.
@HansMüller Может быть. Цветовое пространство CIELAB должно соответствовать человеческому восприятию; если это то, что вы подразумеваете под «зеленостью», это может быть подходящим выбором. Однако а) использование Photoshop и фотографических инструментов для этого не является правильным выбором — вместо этого вам следует взглянуть на dcraw или, возможно, Matlab, Octave или тому подобное, и вам нужно действительно понимать формат файла RAW и нормальный процесс преобразования, чтобы делать что-то другое; б) бытовая камера может не подойти для этого требования; и c) на самом деле это не проблема фотографии .
Я говорю «на самом деле это не проблема фотографии», потому что цель — это измерение , а не фотография, и на самом деле инструменты и процессы, используемые для создания фотографий, мешают вам , и вы хотите сделать что-то другое.

Гамма — это не то, что нужно «исправлять». Это масштабирование для размещения 8-битных изображений для настройки значений, представленных этими 8 битами, в более широком динамическом диапазоне. Файл RAW содержит данные датчика, которые являются чисто линейными (или гамма = 1). Если вы преобразуете необработанный файл в изображение 16x3 бит с гаммой, установленной на 1,0, он будет выглядеть так же в приложении с управлением цветом, как Photoshop, как и преобразование его в то же цветовое пространство с гаммой = 2,2 *. Но если вы конвертируете его в 8-битный файл изображения, он будет выглядеть в целом так же, но более темные части будут иметь значительные полосы, потому что человеческое зрение гораздо более чувствительно к небольшим изменениям при низком уровне освещенности, чем при высоком уровне освещенности.

Если вы используете 16-битные изображения, гамма не будет влиять на то, как они выглядят или печатаются, но, по соглашению, обычные цветовые пространства имеют гаммы, варьирующиеся от 1,8 (ProPhoto) до 3,0 (RGB, масштабированные на основе L*). 8-битное изображение будет выглядеть одинаково независимо от того, какую гамму имеет цветовое пространство, в которое оно преобразовано, поскольку гамма будет инвертирована при отображении или печати изображения.

* Кроме того, вы можете превратить стандартный профиль RGB, такой как ProPhoto RGB, в версию с гаммой = 1 с помощью Photoshop, создав собственный профиль и установив гамму = 1. Я считаю полезным делать такие вещи, как изменение размера изображений с гаммой = 1, чтобы уменьшить артефакты алиасинга и муар, которые могут возникнуть при стандартной гамме.

Гамму необходимо корректировать, и правильное название этого термина — «Гамма-коррекция». См. google.com/search?&q=gamma+correction . «Гамма» — это название проблемы, которую нужно исправить. Сегодня мы склонны забывать об ЭЛТ-мониторах, но коррекция ЭЛТ-мониторов является целью добавления гамма-коррекции. Наши стандарты по-прежнему делают это, чтобы предотвратить устаревание всех старых образов мира.
@WayneF Использование «Исправления» подразумевает, что что-то неправильное нужно исправить. Это, безусловно, применялось еще во времена аналоговых ЭЛТ, поскольку, как вы указываете, электронно-лучевые трубки по своей сути были нелинейными. Гамма — это просто метод кодирования/декодирования, который указывает, как кодируется/декодируется относительная яркость, но не яркость. Визуально ничего не меняется. Возьмите 8-битное изображение sRGB. Он закодирован как модифицированная гамма 2,4. Если изменить режим в фотошопе с 8 бит на 32 бит, визуально вообще ничего не меняется. Но какова гамма нового изображения? Это 1.0.
Не верно. Гамма-коррекция явно и резко изменяет тона изображения, в чем и заключается вся суть (для исправления неправильной нелинейной характеристики ЭЛТ, которая называется гаммой). Отсечения из-за гамма-коррекции нет, но яркость меняется КРАЙНЕ (для коррекции отклика ЭЛТ). 8-16-32 бита — это совсем другая концепция, никак не связанная с гамма-коррекцией. Типографии также нуждаются в больших объемах усиленных данных, и они знают, как с этим справиться. Мы должны понимать, что наши гистограммы показывают гамма-данные, а НЕ линейные данные. (продолжение далее из-за длины)
Photoshop показывает, что гамма 1.0 все еще остается НЕИЗМЕНЕННОЙ, ОТНОСИТЕЛЬНО какой бы то ни было исходной гаммы. Если исходная гамма была 2,2, а вы настроили ее на 1,2 в Photoshop, то это означает, что 2,2 x 1,2 = гамма 2,64 — это данные, которые увидит ЭЛТ. Тем не менее, светодиодные мониторы линейны и просто знают, что нужно сначала декодировать гамма-коррекцию (так сказать, отбрасывая ее), но светодиоды выполняют декодирование 2.2, ожидаемое от стандарта sRGB. Наши глаза видят только линейное декодирование, мы никогда не видим гамма-данных. Сначала он был декодирован в обратном порядке либо по ответу ЭЛТ, либо по таблицам поиска светодиодов.
@WayneF «Гамма-коррекция явно и радикально меняет тона изображения». Она изменяет значения изображения, а не цвета / яркость, которые представляют значения. Точно так же, как изменение 2.3 с одинарной точности на двойную точность изменяет закодированные биты, но они оба представляют одно и то же значение очень близкого, но не точно, 2.3. Кстати, у плавающей запятой есть функция, такая как гамма-кодирование, кодирование больших значений дальше друг от друга, чем малых значений. Поскольку это свойственно плавающей запятой, применение дополнительной гаммы не требуется.
@WayneF «Мы должны понимать, что наши гистограммы показывают гамма-данные, а НЕ линейные данные». Гистограммы различаются. В Photoshop гистограммы отображают значения RGB «линейно». То есть 127 находится посередине. Это верно независимо от гаммы рабочего пространства. Таким образом, если вы преобразуете изображение из гаммы = 2,2 в гамму = 1, изображение визуально не изменится, но гистограмма сильно сдвинется влево.
В PS Levels при изменении гаммы текущее визуальное изображение, безусловно, меняется, если у вас включен предварительный просмотр или если вы нажмете «ОК». Это также меняется в гистограмме, которая показывает единственные данные, которые у нас есть. Материал для начинающих показывает только линейные гистограммы (гамма их спутает), но линейный 127 абсолютно НЕ находится в середине любой гистограммы, которую мы видим. Я добавлю еще одно очевидное опровержение (как вы можете это видеть) о том, что данные гистограммы абсолютно и явно гамма-кодированы. Гамма-кодированные данные - единственные данные, которые у нас есть. И тогда я надеюсь уйти.
Сфотографируйте что-нибудь яркое, отрегулируйте до гистограммы около 255 (очень близко, но НЕ совсем обрезано). Затем также остановитесь на 1,0 шага для другого изображения. Одна стопа составляет 50% света. Ваше неправильное линейное представление предполагает, что этот пик сейчас будет на уровне 127 (50% от предыдущих 255). НО НЕТ. Это будет около 3/4 полной шкалы. Гамма 2.2, кодирующая 50% линейных вычислений, вычисляет 187 или 73%, но камера также изменяет баланс белого, контрастность и т. д., поэтому это нельзя точно предсказать. НО УВЕРЕН, ЧТО НЕ НА 50% ЛИНЕЙНО, КАК ВЫ ПРЕДСТАВЛЯЕТЕ. Данные гистограммы абсолютно закодированы с гамма-коррекцией. Это все, что есть.
@WayneF Возможно, мы говорим о разных вещах. Гамма цветового пространства представляет собой нелинейное экспоненциальное кодирование. При преобразовании из цветовых пространств с другой гаммой внешний вид изображения не меняется, если цвета находятся в пределах гаммы нового цветового пространства. Изображение с уменьшением на одну ступень смещает пики с правой стороны гистограммы к середине, когда цветовое пространство равно gamma=1. Если вы конвертируете цветовые пространства с разными гаммами, расположение пиков сместится, но яркость изображения не изменится. Но более типичное изображение с гаммой = 2,2 будет смещено примерно на 30% слева.
Гамма по-прежнему точно такая же, как и для ЭЛТ. Это не гамма 1, что в редакторах просто означает относительно исходного неизмененного значения, каким бы оно ни было (равно 2,2 в sRGB). Затем изменение на 1,2 означает 1,2 x 2,2. Уменьшение на одну ступень НЕ переходит в середину, в данных 2.2 255 падает примерно до 3/4 масштаба. Это нелинейно, но 3/4 не является абсолютным числом, потому что камеры заняты и другими сдвигами, такими как баланс белого, контрастность и цветовой профиль. Преобразование цветовых пространств может попытаться сохранить цвета изображения, но просто изменение гаммы абсолютно меняет тона, сдвиги цвета, называемые яркостью.
@Wayne, у вас есть или вы знаете, как получить цветовое пространство RGB ICC с гаммой = 1? Они весьма полезны для изменения размера без создания артефактов смешивания. Если вы посмотрите на изображение в цветовом пространстве gamma=1, оно сместится от правого края к середине с уменьшением экспозиции на одну ступень. Один из способов проверить это с помощью dcraw.c, который может выводить изображения с тегом ICC, цветовым пространством gamma=1. Вы можете увидеть это сами в фотошопе. Кроме того, dcraw.c имеет параметры для создания изображений, привязанных к сцене, которые являются колориметрически точными и не имеют разного. добавление кривой тона камеры добавить.
Дуг прав, @WayneF не в нескольких пунктах. Во-первых, все электронные лампы следуют закону Ленгмюра-Чайлда, но средства линеаризации, безусловно, были хорошо известны - это был выбор первых телевизионных инженеров для учета нелинейности ЭЛТ в начале цепочки вещания, поскольку системная гамма использовала преимущество. нелинейного зрительного восприятия человека, что позволило уменьшить видимый шум на изображении на 30 дБ. Конструкция ЭЛТ во многом связана с эффективной гаммой ЭЛТ, которая может варьироваться от 1,5 до более чем 3,5. Разработка ЭЛТ для целевой гаммы 2,2 имеет много преимуществ. (продолжение)...
Даже тогда было вполне возможно спроектировать схему драйвера ТВ/ЭЛТ для ЛИНЕЙНОЙ характеристики, но нелинейность ЭЛТ-дисплея была желательной характеристикой для снижения шума и по другим причинам, точно так же, как сегодня для уменьшения битовой глубины. Даже если бы ЭЛТ не имели нелинейного отклика, некоторая форма аналогичного предыскажения использовалась бы для шумоподавления, как это делается во многих других областях обработки сигналов для вещания/передачи. Гамма 2.2 была указана как часть цвета NTSC, поскольку было необходимо определить гамму для последовательного воспроизведения цвета.
Важное замечание: гамма по-прежнему требуется сегодня, даже если бы у нас были линейные дисплеи. Гамма необходима для наилучшего использования доступного пространства кода. Если бы изображения кодировались без гаммы, им потребовалось бы не менее 12 бит на цвет на пиксель (36 бит на пиксель), но с использованием кривой передачи, близкой к обратной человеческому восприятию, например, между 1/2 и 1. /2.5, мы можем обойтись всего 8 битами на цветовой канал (24 бита на пиксель). Некоторые редакторы изображений, такие как Photoslop, могут многое делать в рабочем пространстве с гамма-кодированием, но вы, безусловно, можете использовать PS в линейном режиме.
А AfterEffects упрощает работу в линейном пространстве. Многие операции лучше выполнять в линеаризованном рабочем пространстве, а не в гамма-рабочем пространстве. Тем не менее, DOUG прав, данные, отображаемые в гистограммах Adobe, представляют собой линейный разброс значений rgb, независимо от используемой кодировки изображения. Середина гистограммы — 127/128. Это академический подход, и как человек, постоянно работающий с линейным пространством, я могу сказать вам, что гистограммы Adobe совершенно не годятся для линейной работы отчасти по этой причине (еще одна причина заключается в том, что элементы управления в то время как линейные даже близко не соответствуют единообразию восприятия).
Гамма НЕ сделана, чтобы соответствовать 8 битам. Гамма делается для ИСПРАВЛЕНИЯ нелинейного отклика ЭЛТ. Без ЭЛТ сейчас, он по-прежнему обязательно продолжается для совместимости с мировыми данными изображения. Глаз НИКОГДА не видит какие-либо гамма-данные, они всегда ОБЯЗАТЕЛЬНО декодируются обратно в линейный вид для представления глазу. Декодирование, по сути, является ТОЧНЫМ ОБРАТНЫМ кодированием, которое должно соответствовать ЭЛТ, но для ГЛАЗА не менее важно, какой путь выбрала гамма, потому что идея состоит в том, что данные обязательно точно инвертируются обратно к линейному для глаза. Все остальное было бы искажением или, по крайней мере, модификацией.
«Гамма НЕ сделана, чтобы соответствовать 8 битам». В течение некоторого времени это является основной причиной > 1 гаммы после того, как мониторы перешли с аналоговых интерфейсов на цифровые. Большинство мониторов позволяют программировать свою гамму. Поскольку подавляющее большинство из них имеют 8 бит, а меньшее количество поддерживает 10 бит, гамма от 1,5 до 3 необходима, чтобы избежать полос на изображениях с низкой яркостью. Иногда я устанавливаю гамму своего монитора на 1,0, чтобы убедиться, что 10-битный путь работает, поскольку есть несколько причин, которые могут привести к тому, что моя настройка вернется к 8-битному. Драйвер, приложение и монитор должны быть правильно настроены.
@WayneF Хотя вы ошибаетесь в 8-битном обсуждении, как довольно подробно обсуждал Myndex, вы совершенно правы в том, что подавляющее большинство изображений, отображаемых людям, выглядело бы довольно ужасно, если бы мониторы не имели высокой гаммы. Первоначально это должно было приблизиться к отклику ЭЛТ. В наши дни это совместимость, когда люди не используют управление цветом. Но это также необходимо для предотвращения полос при низкой яркости, что является проблемой даже для высококачественных 10-битных дисплеев, хотя они довольно хорошо работают с 10-битными путями и гаммой = 1 для большинства изображений, потому что шум изображения сглаживает изображение.

В TIF должна быть гамма. Любое нормальное и видимое (пригодное для использования) тональное изображение включает гамма-коррекцию. Тональный включает цвет (RGB или индексированный) и оттенки серого, но не включает штриховой рисунок (двухуровневый, данные только 1 или 0).

Необработанных изображений нет (пока), гамма и баланс белого отложены для последующей обработки в RGB. Ваш файл TIF был той более поздней обработкой.

Краткий ответ: если вы смотрите на что-то большее, чем почти черное пятно небытия, к нему применена гамма-коррекция.

Слишком темный, но не должен быть полностью черным. 255 linear кодирует гамму 255 (в этой шкале 0..1 1 в любой степени все еще 1. Довольно умно, без отсечения из-за гаммы). Этот незакодированный линейный 255 будет декодирован обратно в 255 при просмотре (не темный). 70% линейных значений будут декодированы до 135 вместо 179, но все же выше средней точки. 50% linear кодирует до 187 gamma 2.2, но некодированные 50% декодируют до 22% при просмотре или до 55 на гистограмме. Темный, но не весь черный, за исключением темных тонов, которые действительно страдают. Но должны быть и более яркие тона, только не полностью яркие.
@WayneF «почти» не равно «все».
Не равняется черному пятну. :) Используя уровни Photoshop, чтобы умножить гамму на 0,45 (обратное значение 2,2), чтобы получить 1,0, что является линейным, это выглядит примерно как любая средняя или типичная недоэкспонированная фотография. Более чем легкий, он темный, но все же выглядит очень корректируемым, очень далеким от черного. Глядя на изображения фоновых обоев Windows, сделанные таким образом, на некоторых изображениях может не быть черного цвета. Спорный вопрос, однако, это неприятно темнее, и ожидается, что наши изображения будут иметь гамма-коррекцию, закодированную в них.