exponenta event banner

illumwhite

Оценка освещенности с помощью алгоритма White Patch Retinex

Описание

illuminant = illumwhite(A) оценивает освещенность сцены в изображении RGB A предполагая, что первые 1% самых ярких красных, зеленых и синих значений представляют белый цвет.

пример

illuminant = illumwhite(A,topPercentile) оценивает освещенность с помощью topPercentile в процентах от самых ярких значений красного, зеленого и синего цветов.

illuminant = illumwhite(___,Name,Value) оценивает освещенность, используя пары имя-значение для управления дополнительными опциями.

Примеры

свернуть все

Откройте изображение и отобразите его. Укажите дополнительное увеличение для уменьшения размера отображаемого изображения.

A = imread('foosball.jpg');
figure
imshow(A,'InitialMagnification',25)
title('Original Image')

Figure contains an axes. The axes with title Original Image contains an object of type image.

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

A_lin = rgb2lin(A);

Оцените освещенность сцены на основе 5% наиболее ярких пикселей. Поскольку входное изображение линеаризовано, illumwhite функция возвращает индикатор в линейном цветовом пространстве RGB.

topPercentile = 5;
illuminant = illumwhite(A,topPercentile)
illuminant = 1×3

    0.7333    0.8314    1.0000

Третий коэффициент illuminant является наибольшим, что согласуется с голубым оттенком изображения.

Исправьте цвета, предоставив предполагаемый световой сигнал chromadapt функция.

B_lin = chromadapt(A_lin,illuminant,'ColorSpace','linear-rgb');

Чтобы правильно отобразить белое сбалансированное изображение на экране, примените гамма-коррекцию с помощью lin2rgb функция.

B = lin2rgb(B_lin);

Отображение скорректированного изображения с установкой дополнительного увеличения.

figure
imshow(B,'InitialMagnification',25)
title(['White-Balanced Image using White Patch with topPercentile=' ...
    num2str(topPercentile)])

Figure contains an axes. The axes with title White-Balanced Image using White Patch with topPercentile=5 contains an object of type image.

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

свернуть все

RGB-образ, заданный как числовой массив m-by-n-by-3.

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

Процентиль самых ярких цветов для оценки освещенности, заданный как числовой скаляр в диапазоне [0, 100). Чтобы вернуть максимальное значение красного, зеленого и синего цветов, установите topPercentile в 0.

Изображение показывает красное, зеленое и синее значение, выбранное для оценки освещенности. Выбор осуществляется отдельно для каждого цветового канала.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

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

Пример: illuminant = illumwhite(I,'Mask',m) оценивает освещенность сцены, используя подмножество пикселей в изображении I, выбирается в соответствии с двоичной маской, m.

Маска изображения, заданная как разделенная запятыми пара, состоящая из 'Mask' и логический или числовой массив m-на-n. Маска указывает, какие пикселы входного изображения A для использования при оценке освещающего вещества. Вычисление исключает пикселы в A , которые соответствуют значению маски 0. По умолчанию маска имеет все 1s и все пикселы в A включены в оценку.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

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

свернуть все

Оценка освещенности сцены, возвращаемая в виде 3-элементного числового вектора строки. Три элемента соответствуют красному, зеленому и синему значениям светильника.

Типы данных: double

Ссылки

[1] Эбнер, Марк. «White Patch Retinex.» Постоянство цвета. Чичестер, Западный Суссекс: John Wiley & Sons, 2007.

Представлен в R2017b