exponenta event banner

illumpca

Оценка освещенности с использованием анализа основных компонентов (PCA)

Описание

пример

illuminant = illumpca(A) оценивает освещенность сцены в изображении RGB A из больших цветовых различий с использованием анализа основных компонентов (PCA).

illuminant = illumpca(A,percentage) оценивает освещенность, используя указанный процент самых темных и самых ярких пикселей.

illuminant = illumpca(___,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.

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

A_lin = rgb2lin(A);

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

illuminant = illumpca(A_lin)
illuminant = 1×3

    0.4074    0.5547    0.7254

Третий коэффициент 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 Principal Component Analysis')

Figure contains an axes. The axes with title White-Balanced Image using Principal Component Analysis contains an object of type image.

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

свернуть все

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

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

Процент сохраняемых пикселов для оценки освещенности, определяемый как числовой скаляр в диапазоне (0, 50].

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

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

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

Пример: illuminant = illumpca(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

Совет

  • Алгоритм предполагает равномерное освещение и линейные значения RGB. При работе с нелинейными изображениями sRGB или Adobe RGB используйте rgb2lin функция для отмены гамма-коррекции перед использованием illumpca. Также обязательно преобразуйте хроматически адаптированное изображение обратно в sRGB или Adobe RGB с помощью lin2rgb функция.

Алгоритмы

Цвета пикселей представлены векторами в цветовом пространстве RGB. Алгоритм упорядочивает цвета по яркости, или норме, их проекции на средний цвет на изображении. Алгоритм сохраняет только самые темные и яркие цвета, согласно этому порядку. Затем выполняется анализ основных компонентов (PCA) для подмножества цветов. Первый компонент PCA указывает оценку освещенности.

Ссылки

[1] Чэн, Дунлян, Дилип К. Прасад и Майкл С. Браун. «Оценка освещенности для постоянства цвета: Почему работают методы пространственной области и роль распределения цветов». Журнал Оптического общества Америки A. Vol. 31, номер 5, 2014, стр. 1049-1058.

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