2016-11-29 80 views
-4

的標準偏差首先,我想找到這個圖像的標準差:查找圖像

enter image description here

其次,我想找到圖像中的所有行的標準偏差。

但在第一步,有些事情走錯了,我看到:

>> A = imread('C:\Users\PC\Desktop\deneme.jpg'); 
>> std (A); 
Error using var (line 65) 
First argument must be single or double. 

Error in std (line 38) 
y = sqrt(var(varargin{:})); 

line 65: error(message('MATLAB:var:integerClass')); 
line 38: y = sqrt(var(varargin{:})); 

我怎樣才能解決這個問題,什麼是該圖像中找到的所有行的標準偏差的代碼?

回答

5

的錯誤是很明確的:

第一個輸入參數必須是單或雙。

發生這種情況是因爲A的類型爲uint8std的輸入必須是浮點數(singledouble)。

所以:轉換爲double,並且通過255任選除法正常化01之間的值,以該時間間隔:

std(double(A)/255) 

注意上面給出的每一列的標準偏差。如果想要將整個圖像的標準偏差視爲整體,則將線性化爲首先爲列向量:

std(double(A(:))/255)