Как рассчитать среднее и стандартное отклонение для значений оттенка от 0 до 360? - PullRequest
6 голосов
/ 17 ноября 2011

Предположим, что 5 образцов оттенка были взяты с использованием простой модели HSV для цвета, имеющей значения 355, 5, 5, 5, 5, все оттенки красного и «рядом» друг с другом, что касается восприятия. Но простое среднее значение равно 75, что далеко от 0 или 360, близко к желто-зеленому.

Как лучше рассчитать это среднее и стандартное значение?

1 Ответ

10 голосов
/ 17 ноября 2011

Простое решение - преобразовать эти углы в набор векторов из полярных координат в декартовые координаты.

Поскольку вы работаете с цветами, воспринимайте это как преобразование в (a *, b*) самолет.Затем возьмите среднее значение этих координат, а затем снова вернитесь в полярную форму.Сделано в matlab,

theta = [355,5,5,5,5];
x = cosd(theta); % cosine in terms of degrees
y = sind(theta); % sine with a degree argument

Теперь возьмем среднее значение x и y, вычислите угол, а затем пересчитайте обратно из радианов в градусы.действителен только для среднего угла.Как вы можете видеть, он дает непротиворечивый результат со средним углом непосредственно, где я признаю, что 355 градусов действительно обертывают до -5 градусов.сделать это как

std([-5 5 5 5 5])
ans =
       4.4721

Да, это требует от меня явного переноса.

...