Как правильно применить гамму к линейным необработанным файлам с камеры машинного зрения? - Фотопедия
0 голосов
/

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

Перед любой гамма-коррекцией:

Example Of Raw Output

После применения гаммы 2,2:

Example Port 2.2 Gamma Application

В целом яркость изображения выглядит существенно лучше. Однако цвета в окне проверки цвета выглядят очень ненасыщенными. Является ли цветовая ненасыщенность естественным следствием применения гаммы, и если да, что можно сделать, чтобы компенсировать этот эффект?

Обновление : я использую IMX 265 из TheImagingSource вместе с предоставленным им программным обеспечением для захвата

Ответы [ 2 ]

3 голосов
/

Просто визуально это выглядит абсолютно правильно для меня. В вашем неотрегулированном изображении на моем мониторе с калибровкой цвета шаги между серыми пятнами выглядят неравномерно. На скорректированном изображении они даже более воспринимаемы.

Вы спрашиваете:

Является ли цветовая ненасыщенность естественным следствием применения гаммы, и если да, что можно сделать, чтобы компенсировать этот эффект?

Краткий ответ:

Нет. Это следствие неправильной настройки уровня черного и точки белого. Вы должны сделать это перед применением гамма-кривой.

Длинный ответ:

Гамма-кривая, которую вы применили, имеет следующую форму:

original with histogram from linear version with gamma curve to be applied

Светлая линия относится к значениям, показанным на гистограмме. Как только вы примените эту кривую, вы получите гистограмму, подобную этой:

curve applied

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

increase contrast

Что дает изображение, подобное этому:

much less washed out

... гораздо меньше вымыто.

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

Кстати, у этого результата есть гистограмма:

increased contrast

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

В любом случае, это все еще немного скучно. В визуальном мире мы можем захотеть применить s-кривую, например, чтобы увеличить удар:

s-curve

в результате

punchy!

... или что-то в этом роде.

1 голос
/

Гамма этой камеры:

IMX265 - это датчик Sony - я предполагаю, что камера DFK 33UX265?

Эта камера имеет функцию гаммы, которую вы можете использовать (простую гамму), она также позволяет использовать LUT, если вы хотите более точную кривую передачи для Rec709 (HDTV) или sRGB (монитор компьютера).

Для просмотра на мониторе компьютера применение гаммы 1 / 2,2 (то есть 0,4545) к линейным данным изображения является (по существу) инверсией или 2,4 гаммой монитора с включенным небольшим усилением). Как указал Mattdm, вы хотите установить черно-белую точку перед применением гаммы.

Цветовая насыщенность

Ненасыщенность цвета не является «неизбежным результатом гаммы», на воспринимаемое насыщение влияет ряд взаимозависимых факторов.

ЭКСПОЗИЦИЯ: при съемке на пленку, если переэкспонировать, а затем распечатать , вы получите более насыщенное и глубокое насыщение. Это справедливо и для цифровой фотографии, если вы не обрезаете верхний предел, экспозицию высокого и последующее понижение приведет к перцептивному увеличению насыщенности. (Таким образом, если вы недоэкспонируете и печатаете UP, вы уменьшаете насыщенность).

ОСВЕЩЕНИЕ и СЦЕНА / ОБЪЕМ: Освещение сцены и окружающие изображения будут влиять на местное восприятие цвета.

ДИНАМИЧ. ДИАПАЗОН / КОНТРАСТ: Это также влияет на кажущееся насыщение - как указал mattdm, повышение уровня черного и понижение уровня белого (что увеличивает контраст) также увеличивает насыщенность - фактически, вы можете из "рассмотреть насыщенность как функцию цвет контрастность.

Алгоритм затухания: Характер алгоритма, используемого для дебайера (демозаики) образцов RAW, может оказать заметное влияние на насыщенность. Среди прочего, спектральные весовые коэффициенты R, G и B составляют 0,21, 0,71, 0,07 - и, если используется другое весовое значение, насыщение может быть существенно затронуто.

Что такое Гамма?

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

В старых аналоговых системах, таких как широковещательное телевидение (NTSC / PAL), использование гаммы уменьшало видимый шум при передаче и всю широковещательную цепочку в этом отношении.

Для просмотра на компьютере используется стандарт «sRGB», в котором используется кривая передачи с гаммой, близкой к 0,4545 (1 / 2,2), предназначенная для отображения на мониторе с ~ 2,4 гаммой (при усилении системы 1,1 гамма).

Хотя применение показателя степени 2,2 к каждому цветному каналу ( после распад) обычно достаточно близко, если вы выполняете манипуляции с изображениями, тогда «официальная» кривая передачи имеет линеаризованный участок, который предотвращает математические проблемы, такие как бесконечный наклон в нуле. Для линейного RGB (диапазон 0,0 - 0,1):

Linear to sRGB

...