8

色相の5つのサンプルが、色の単純なHSVモデルを使用して取得され、値が355、5、5、5、5であり、知覚に関する限り、すべて赤で互いに「隣接」しているとします。しかし、単純な平均は75であり、0または360から遠く離れており、黄緑色に近いです。

この平均と関連する標準を計算するためのより良い方法は何ですか?

4

2 に答える 2

12

簡単な解決策は、これらの角度を極座標からデカルト座標への一連のベクトルに変換することです。

色を使用しているので、これを(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

はい、それは私が明示的にラップをすることを要求します。

于 2011-11-17T16:21:33.723 に答える
0

user85109によって提案された方法は、平均を計算するための良い方法だと思いますが、標準偏差は計算できません。180、180、181の3つの角度があると想像してください。

およそ180に等しい数として、平均は正しく計算されます

しかし、[180,180、-179]から、実際にはゼロに近いときに高い分散を計算します

一見すると、正の半分の角度[0から180]の平均と分散を別々に計算し、負の角度[0、-180]を計算し、後で結合された分散 https://www.emathzoneを計算します。 com / tutorials / basic-statistics / combined-variance.html

グローバル平均とそれとローカル平均の差を時計回りと反時計回りの両方向で計算する必要があり、正しいものを選択する必要があることを考慮に入れてください。

于 2020-08-14T06:28:56.063 に答える