2013-08-01 54 views
0

讀取圖像時,考慮用於polyfit的輸入是不同的類型。一個是「uint8」,而另一個是「雙」(它們的大小是相同的,< 1x384>) 您能否給我一個提示,告訴我如何解決它?不同類型數據的matlab中的polyfit

其錯誤顯示在下面,而我還沒有使用倍polyfit:使用

錯誤* MTIMES不完全支持整數類。至少有一個輸入必須是標量。 要計算按照元素計算的TIMES,請改用TIMES(。*)。

polyfit中的錯誤 p = R(Q'* y); %與p = V \ y相同;

如何將它轉換爲unit8? (在其他情況下,其結果是不能滿足我的腳本)

+0

這個問題需要澄清。發佈更多關於錯誤消息和代碼的細節。 –

+0

您可以在數據類型之間進行轉換,例如使用'double'或'unit8'。 –

+0

可能要看看這個:http://stackoverflow.com/questions/17924743/problems-with-imshow-and-rgb2gray-in-matlab/17930485#17930485 –

回答

0

要轉換一個double類型來UINT8你可以做到以下幾點:

b = [1:10]; % <-- type double 
a = uint8(b); % <-- convert to uint8 

whos a 
    Name  Size     Bytes Class 

    a   1x1       1 uint8 array 

Grand total is 1 element using 1 bytes 

要反過來做:

a = uint8([1:10]); % <-- convert to uint8 
b = double(a); % <-- type double 

whos b 
    Name  Size     Bytes Class 

    b   1x10      80 double array 

Grand total is 10 elements using 80 bytes 

類型uint8變量是無符號整數(> = 0)。

某些操作不適用於它們,例如A\b

與輸入圖像嘗試你的操作之前,將它們轉換爲加倍如下:

im_double = double(im_uint8); 

其中im_uint8是原始圖像。