rgb2lin

Линеаризация значений RGB с гамма-поправкой

Описание

B = rgb2lin(A) отменяет гамма- коррекцию значений sRGB в изображении A так что B содержит линейные значения RGB.

пример

B = rgb2lin(A,Name,Value) отменяет гамма- коррекцию, используя пары "имя-значение" для управления дополнительными опциями.

Примеры

свернуть все

Откройте изображение. Формат файла JPEG сохраняет изображения в цветовом пространстве sRGB с гамма-поправкой.

A = imread('foosball.jpg');

Отобразите изображение.

imshow(A)
title('Scene With sRGB Gamma Correction')

Figure contains an axes. The axes with title Scene With sRGB Gamma Correction contains an object of type image.

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

B = rgb2lin(A,'OutputType','double');

Отобразите линеаризированное изображение. Тени в линеаризированном изображении темнее, чем в оригинальное изображение, как и ожидалось.

imshow(B)
title('Scene Without sRGB Gamma Correction')

Figure contains an axes. The axes with title Scene Without sRGB Gamma Correction contains an object of type image.

Входные параметры

свернуть все

Гамма-исправленные значения цвета RGB, заданные в виде числового массива в одном из следующих форматов.

  • c палитры -by-3. Каждая строка задает одно значение цвета RGB.

  • m -by- n -by-3 изображение

  • m -by- n -by-3-by- p стек изображений

Типы данных: single | double | uint8 | uint16

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: B = lin2rgb(I,'ColorSpace','adobe-rgb-1998') линеаризирует изображение с гамма-поправкой, I, по стандарту Adobe RGB (1998).

Цветовое пространство входного изображения, заданное как разделенная разделенными запятой парами, состоящая из 'ColorSpace' и 'srgb' или 'adobe-rgb-1998'.

Типы данных: char | string

Тип данных выходных значений RGB, заданный как разделенная разделенными запятой парами, состоящая из 'OutputType' и 'double', 'single', 'uint8', или 'uint16'. По умолчанию тип выходных данных совпадает с типом данных A.

Типы данных: char | string

Выходные аргументы

свернуть все

Линеаризированные значения цвета RGB, возвращенные в виде числового массива того же размера, что и входные A.

Алгоритмы

свернуть все

Линеаризация с использованием стандарта sRGB

Значения tristimulus sRGB линеаризируют с помощью следующей параметрической кривой:

    f (u) = - f (-  u ) ,  u  <  0      

    f (<reservedrangesplaceholder4>)                 = <reservedrangesplaceholder3> ⋅ <reservedrangesplaceholder2>, 0 ≤ <reservedrangesplaceholder1> <d

    f (<reservedrangesplaceholder3>) = (a ⋅ <reservedrangesplaceholder1> + b)ɣ,      <reservedrangesplaceholder1> ≥ <reservedrangesplaceholder0>,

где u представляет значение цвета с этими параметрами:

    a = 1/1.055

    b = 0.055/1.055

    c = 1/12.92

    d = 0.04045

    ɣ = 2.4

Линеаризация с использованием стандарта Adobe RGB (1998)

Значения tristimulus Adobe RGB (1998) линеаризируются с помощью простой функции степени:

    v = uɣ,

с

    ɣ = 2.19921875

Ссылки

[1] Эбнер, Марк. Гамма- Коррекция. Постоянство цвета. Chichester, West Sussex: John Wiley & Sons, 2007.

[2] Adobe Systems Incorporated. «Инвертирование передаточной функции цветового компонента». Кодировка цветных изображений Adobe RGB (1998). Раздел 4.3.5.2, май 2005 года, стр. 12.

См. также

Введенный в R2017b