colorangle

Угол между двумя векторами RGB

Описание

пример

angle = colorangle(rgb1,rgb2) вычисляет угол в градусах между двумя векторами RGB.

Примеры

свернуть все

Откройте тестовое изображение. Изображение является необработанными данными, собранными с EOS Canon 30D цифровой фотоаппарат после исправления уровня черного и масштабирования интенсивности к 16 битам на пиксель. Никакой demosaicing, балансировка белого, цветное улучшение, шумовая фильтрация или гамма-коррекция не были применены.

A = imread('foosballraw.tiff');

Интерполируйте использование demosaic функция, чтобы получить цветное изображение. Шаблон цветового фильтра массивов является RGGB.

A_demosaiced = demosaic(A,'rggb');

Изображение содержит график ColorChecker. Задайте источник света основной истины, который был вычислен заранее с помощью нейтральных закрашенных фигур графика.

illuminant_groundtruth = [0.0717 0.1472 0.0975];

Чтобы постараться не скашивать оценку источника света, исключите график ColorChecker путем создания маски.

mask = true(size(A_demosaiced,1), size(A_demosaiced,2));
mask(920:1330,1360:1900) = false;

Запустите три различных освещающих алгоритма оценки: illumwhite, illumgray, и illumpca.

illuminant_whitepatch = illumwhite(A_demosaiced,'Mask',mask);
illuminant_grayworld = illumgray(A_demosaiced,'Mask',mask);
illuminant_pca = illumpca(A_demosaiced,'Mask',mask);

Сравните каждую оценку с основной истиной путем вычисления угла между каждым предполагаемым источником света и основной истиной с помощью colorangle функция. Чем меньший угол, тем лучше оценка. Величина оценки не имеет значения, потому что только направление источника света используется к балансу белого изображение с цветной адаптацией.

angle_whitepatch = colorangle(illuminant_whitepatch, illuminant_groundtruth)
angle_whitepatch = 5.0921
angle_grayworld = colorangle(illuminant_grayworld, illuminant_groundtruth)
angle_grayworld = 5.1036
angle_pca = colorangle(illuminant_pca, illuminant_groundtruth)
angle_pca = 5.0134

Значение angle_pca является самым маленьким, указывая, что освещающий алгоритм оценки PCA является самым близким к освещению основной истины для этого изображения.

Входные параметры

свернуть все

Первый вектор RGB, заданный как числовой вектор с 3 элементами.

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

Второй вектор RGB, заданный как числовой вектор с 3 элементами.

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

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

свернуть все

Угол между векторами RGB, возвращенными в виде числа.

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

Больше о

свернуть все

Угловая погрешность

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

Смотрите также

| | | |

Введенный в R2017b