rgb2lin

Линеаризуйте исправленные гаммой значения RGB

Синтаксис

B = rgb2lin(A)
B = rgb2lin(A,Name,Value)

Описание

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

пример

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

Примеры

свернуть все

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

A = imread('foosball.jpg');

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

figure
imshow(A,'InitialMagnification',25)
title('Scene With sRGB Gamma Correction')

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

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

Отобразите линеаризовавшее изображение, установив дополнительное увеличение.

figure
imshow(B,'InitialMagnification',25)
title('Scene Without sRGB Gamma Correction')

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

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

свернуть все

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

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

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

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

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (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 Стандарт

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

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

    f (u) = cu,                0 ≤ u <d

    f (u) = (au + b) ɣ,      ud,

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

    a = 1/1.055

    b = 0.055/1.055

    c = 1/12.92

    d = 0.04045

ɣ = 2.4    

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

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

    v = u ɣ,

с

ɣ = 2.19921875    

Ссылки

[1] Ebner, Марк. "Гамма-коррекция". Цветное постоянство. Чичестер, Западный Сассекс: John Wiley & Sons, 2007.

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

Смотрите также

Введенный в R2017b