2011-11-17 156 views
6

假設對於顏色使用簡單的HSV模型拍攝5個色調樣本,其值爲355,5,5,5,5,就感知而言所有都是紅色的色調和「下一個」。但簡單的平均值是75,遠離0或360,接近黃綠色。如何計算從0到360的色調值的平均值和標準偏差?

什麼是更好的方式來計算這個均值和相關的std?

+0

經過相當多的谷歌挖掘後,發現一個鏈接回到從實際討論平均風向的帖子到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

相關問題