Простое решение - преобразовать эти углы в набор векторов из полярных координат в декартовые координаты.
Поскольку вы работаете с цветами, воспринимайте это как преобразование в (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
Да, это требует от меня явного переноса.