Примените гамма-коррекцию к линейным значениям RGB
применяет гамма-коррекцию с помощью пар "имя-значение", чтобы управлять дополнительными опциями.B
= lin2rgb(A
,Name,Value
)
Задайте область значений линейных значений. Этот вектор задает 257 равномерно распределенных точек между 0 и 1.
lin = linspace(0,1,257);
Примените гамма-коррекцию к линейным значениям на основе sRGB стандарта. Затем примените гамма-коррекцию к линейным значениям на основе стандарта Adobe RGB (1998).
sRGB = lin2rgb(lin); adobeRGB = lin2rgb(lin,'ColorSpace','adobe-rgb-1998');
Постройте откорректированные гаммой кривые.
figure plot(lin,sRGB,'b',lin,adobeRGB,'r') title('Gamma-Corrected vs. Linear Values') legend('sRGB','Adobe RGB (1998)','Location','southeast')
Для альтернативной визуализации постройте цветные полосы, представляющие каждое цветовое пространство.
cb_lin = ones(30,257) .* lin; cb_sRGB = ones(30,257) .* sRGB; cb_adobeRGB = ones(30,257) .* adobeRGB; figure subplot(3,1,1); imshow(cb_lin); title('Linear RGB') subplot(3,1,2); imshow(cb_sRGB); title('sRGB'); subplot(3,1,3); imshow(cb_adobeRGB); title('Adobe RGB (1998)');
Откорректированные гаммой цветовые пространства становятся более яркими более быстро, чем линейное цветовое пространство, как ожидалось.
Откройтесь файл изображения, содержащий минимально, обработал линейную интенсивность RGB.
A = imread('foosballraw.tiff');
Данные изображения являются необработанными данными о датчике после исправления уровня черного и масштабирования к 16 битам на пиксель. Интерполируйте интенсивность, чтобы восстановить цвет при помощи demosaic
функция. Диаграмма направленности антенной решетки цветового фильтра является RGGB.
A_demosaiced = demosaic(A,'rggb');
Отобразите изображение. Чтобы уменьшить изображение так, чтобы это появилось полностью на экране, устанавливает дополнительное начальное увеличение на значение меньше чем 100.
figure imshow(A_demosaiced,'InitialMagnification',25) title('Sensor Data Without sRGB Gamma Correction')
Изображение кажется темным, потому что это находится в линейном цветовом пространстве RGB. Примените гамма-коррекцию к изображению согласно sRGB стандарту, храня значения в двойной точности.
A_sRGB = lin2rgb(A_demosaiced,'OutputType','double');
Отобразите изображение со скорректированной гаммой, установив дополнительное увеличение.
figure imshow(A_sRGB,'InitialMagnification',25) title('Sensor Data With sRGB Gamma Correction');
Изображение со скорректированной гаммой выглядит более ярким, чем линейное изображение, как ожидалось.
A
— Линейные значения цвета RGBЛинейные значения цвета 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'
Цветовое пространство выходного изображения в виде разделенной запятой пары, состоящей из 'ColorSpace'
и 'srgb'
или 'adobe-rgb-1998'
.
Типы данных: char |
string
OutputType
— Тип данных значений выхода RGB'double'
| 'single'
| 'uint8'
| 'uint16'
Тип данных значений выхода RGB в виде разделенной запятой пары, состоящей из 'OutputType'
и 'double'
единственный
uint8
, или 'uint16'
. По умолчанию тип выходных данных совпадает с типом данных A
.
Типы данных: char |
string
B
— Откорректированное гаммой изображение RGBОткорректированное гаммой изображение RGB, возвращенное как числовой массив одного размера с входом A
.
Гамма-коррекция, чтобы преобразовать линейные трехцветные значения RGB в sRGB трехцветные значения задана следующей параметрической кривой:
f (u) =-f (-u), u < 0
f (u) = c ⋅ u, 0 ≤ u < d
f (u) = a ⋅ uɣ + b, u ≥ d,
где u представляет значение цвета этими параметрами:
a = 1.055
b = –0.055
c = 12.92
d = 0.0031308
ɣ = 1/2.4
Гамма-коррекция, чтобы преобразовать линейные трехцветные значения RGB в трехцветные значения Adobe RGB (1998) использует простую функцию степени:
v = uɣ, u ≥ 0
v = - (-u)ɣ, u <0,
с
ɣ = 1/2.19921875
[1] Ebner, Марк. "Гамма-коррекция". Цветное постоянство. Чичестер, Западный Сассекс: John Wiley & Sons, 2007.
[2] Adobe Systems Incorporated. "Инвертируя передаточную функцию компонента цвета". Кодирование Цветного изображения Adobe RGB (1998). Разделите 4.3.5.2, май 2005, p.12.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
Вы щелкнули по ссылке, которая соответствует команде MATLAB:
Выполните эту команду, введя её в командном окне MATLAB.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.