Настройте цветовой баланс изображения RGB с хроматической адаптацией
настраивает цветовой баланс изображения sRGB B
= chromadapt(A
,illuminant
)A
согласно освещенной сцене. Осветитель должен находиться в том же цветовом пространстве, что и входное изображение.
настраивает цветовой баланс B
= chromadapt(A
,illuminant
,Name,Value
)A
использование пар "имя-значение" для управления дополнительными опциями.
Чтение и отображение изображения с сильным желтым оттенком цвета.
A = imread('hallway.jpg'); imshow(A) title('Original Image')
Выберите пиксель на изображении, который должен выглядеть белым или серым цветом, например точку на стойке. Не выбирайте насыщенный пиксель, например точку на потолке. Отображение выбранной точки зеленого цвета.
x = 2800; y = 1000; gray_val = impixel(A,x,y); drawpoint('Position',[x y],'Color','g');
Используйте выбранный цвет в качестве опорного для освещения сцены и исправьте баланс белого изображения.
B = chromadapt(A,gray_val);
Отобразите исправленное изображение. Столбы теперь выглядят белыми, как и ожидалось, а остальная часть изображения не имеет желтого оттенка.
imshow(B)
title('White-Balanced Image')
Откройте файл изображения, содержащий минимально обработанную линейную интенсивность RGB.
A = imread('foosballraw.tiff');
Данные изображения являются данными необработанного датчика после коррекции уровня черного и масштабирования до 16 бит на пиксель. Интерполируйте интенсивность, чтобы восстановить цвет. Шаблон массива цветного фильтра RGGB.
A = demosaic(A,'rggb');
Отобразите изображение. Поскольку изображение находится в линейном цветовом пространстве RGB, примените гамма- коррекцию, чтобы изображение правильно появилось на экране.
A_sRGB = lin2rgb(A);
imshow(A_sRGB)
title('Original Image')
Изображение имеет график X-Rite ® ColorChecker ® в сцене. Чтобы получить цвет окружающего света, отобразите значения RGB пикселя в одном из нейтральных закрашенных фигур графика. Интенсивность красного канала ниже, чем интенсивность двух других каналов, что указывает на то, что свет синевато-зеленый.
x = 1510; y = 1250; light_color = [A(y,x,1) A(y,x,2) A(y,x,3)]
light_color = 1x3 uint16 row vector
7361 14968 10258
Сбалансировать цветовые каналы изображения. Используйте 'ColorSpace'
опция, чтобы указать, что изображение и подсветка выражены в линейном RGB.
B = chromadapt(A,light_color,'ColorSpace','linear-rgb');
Отобразите цветное изображение с гамма- коррекцией.
B_sRGB = lin2rgb(B);
imshow(B_sRGB)
title('Color-Balanced Image')
Подтвердите, что серая закрашенная фигура был сбалансированная по цвету. Три цветовых канала в сбалансированном по цвету серой закрашенной фигуре имеют аналогичную интенсивность, как и ожидалось.
patch_color = [B(y,x,1) B(y,x,2) B(y,x,3)]
patch_color = 1x3 uint16 row vector
13010 13010 13010
A
- изображение RGBИзображение RGB, заданное как числовой массив m -by- n -by-3.
Типы данных: single
| double
| uint8
| uint16
illuminant
- Освещение сценыОсвещение сцены, заданное как 3-элементный числовой вектор. Осветитель должен быть в том же цветовом пространстве, что и входе изображение A
.
Типы данных: single
| double
| uint8
| uint16
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
I2 = chromadapt(I,uint8([22 97 118]),'ColorSpace','linear-rgb')
настраивает цветовой баланс изображения, I
, в линейном цветовом пространстве RGB. 'ColorSpace'
- Цветовое пространство'srgb'
(по умолчанию) | 'adobe-rgb-1998'
| 'linear-rgb'
Цветовое пространство входного изображения и подсветчика, заданное как разделенная разделенными запятой парами, состоящая из 'ColorSpace'
и 'srgb'
, 'adobe-rgb-1998'
, или 'linear-rgb'
. Используйте 'linear-rgb'
опция баланса цвета изображения RGB, интенсивность которого является линейной.
Типы данных: char
| string
'Method'
- Метод хроматической адаптации'bradford'
(по умолчанию) | 'vonkries'
| 'simple'
Хроматический метод адаптации, используемый для масштабирования значений RGB в A
, заданная как разделенная разделенными запятой парами, состоящая из 'Method'
и один из:
'bradford'
- Шкала с использованием модели конуса Брэдфорда
'vonkries'
- Шкала с использованием модели конуса фон Киса
'simple'
- Шкала с использованием подсветки
Типы данных: char
| string
B
- Цветное изображение RGBЦветное изображение RGB, возвращаемое как m -by- n -by-3 числовой массив того же типа, что и A
.
[1] Линдблум, Брюс. Хроматическая адаптация. http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html.
colorangle
| illumgray
| illumpca
| illumwhite
| whitepoint
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
Вы щелкнули по ссылке, которая соответствует команде MATLAB:
Выполните эту команду, введя её в командном окне MATLAB.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.