2012-11-16 78 views

回答

2

MATLAB中的圖像仍然只是矩陣。由於您想要獲取行的標準偏差,因此可以使用std(A,0,2)來獲取沿着行的標準偏差。然後,您可以再次使用std生成的矢量,以獲得我認爲您正在尋找的內容。

+0

我解釋OP要求平均行標準偏差,即'mean(std(A,0,2))' - 但我可能是錯的。我當然同意這個意圖不是很清楚:-) –

1

如果你有一個灰度圖像,使用

mean(std(img.')) 

如果你有一個彩色圖像(即ndims(img) == 3),你必須重複陣列的每一頁以上:

squeeze(mean(std(img,0,2))) 

這將導致每個顏色層的每一行的平均標準偏差。

1

不是計算每行的std然後取平均值,計算整個圖像的std(所有像素值)是不是更準確(更簡單)?那就是:

std(img(:)); 

以每行的std,然後取平均值是不完全的圖像的所有像素值的std ... 例如:

>> a=peaks(100); 
>> mean(std(a.')) 

ans = 

    1.4223 

>> std(a(:)) 

ans = 

    1.8882