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 -by n логический или числовой массив. Маска указывает, какие пиксели входа изображения A использовать при оценке осветителя. Расчет исключает пиксели в A которые соответствуют значению маски 0. По умолчанию маска имеет все 1с, а все пиксели в 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] Cheng, Dongliang, Dilip K. Prasad, and Michael S. Brown. «Оценка освещенности для постоянства цвета: почему методы пространственной области работают и роль цветового распределения». Журнал Оптического общества Америки А. Т. 31, № 5, 2014, стр. 1049-1058.

Введенный в R2017b
Для просмотра документации необходимо авторизоваться на сайте