2011-11-17 16 views
6

5つの色相のサンプルが、色について355,5,5,5,5色のすべての色相を有する単純なHSVモデルを使用して撮影され、知覚に関する限り、赤色の色相と互いに "次の色相"の色相が得られたと仮定する。しかし、単純平均は75で、0または360から遠く、黄緑色に近い。0から360までの色相値の平均および標準偏差を計算する方法は?

この平均値と関連する標準偏差を計算するにはどうすればよいでしょうか?

+0

Googleでかなり掘り下げた後、平均的な風向を実際に議論している投稿からのstackoverflowへのリンクが見つかりました:http://stackoverflow.com/questions/491738/how-do-you-calculate-the-average-角度の設定/ 3651941#3651941しかし、標準偏差の問題は扱いません。 – drb

+0

あなたが満足しているということが得られれば、平均偏差から標準偏差を計算することができます。 – AakashM

+0

@AakashM、私はまだこれを理解しようとしています。私はコードを知っている。統計私は少しぼんやりしています。 – drb

答えて

10

単純な解法は、これらの角度を極座標からデカルト座標へのベクトルのセットに変換することです。

色を使って作業しているので、これを(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の平均を取ります。

meanangle = atan2(mean(y),mean(x))*180/pi 
meanangle = 
     3.0049 

もちろん、この解決策は平均角度に対してのみ有効です。あなたが見ることができるように、355度が実際に-5度にラップすることを認識している角度の平均値と一貫した結果が得られます。

mean([-5 5 5 5 5]) 
ans = 
    3 

標準偏差を計算するために、それははい、それは明示的にラップを行うために私を必要とし

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

としてそれを行うことが最も簡単です。

+1

+1、単純な解法、そして間違いなく最も正しい解。 – rcollyer

+2

http://en.wikipedia.org/wiki/Mean_of_circular_quantities – job

+0

ありがとうございます。はい、標準偏差の計算では、0、赤、度、またはPi、ラジアン単位の負のPi、青のいずれの場合でも、ラップを常に考慮する必要があります。 std以外の循環データを特徴付けるアプローチも存在します。上記のリンクを参照してください。 – drb

関連する問題