Настройте цветовой баланс изображения 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
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.