2013-02-15 123 views
1

我一直在嘗試生成圖像。類型爲'uint8'的輸入參數的未定義函數'log'

C1 = imread(InputImage); 
NumberOfGrayLevels=32; 
I= 0.299*C1(:,:,1)+0.587*C1(:,:,2)+0.114*C1(:,:,3); 
C = 0; 
I=(C*log(I+1))'; 
new=uint8(mat2gray(I)*(NumberOfGrayLevels-1)); 
[m,n]= size(new); 
rgb = zeros(m,n,3); 
rgb(:,:,1) = new; 
rgb(:,:,2) = rgb(:,:,1); 
rgb(:,:,3) = rgb(:,:,2); 
new = rgb/256; 
imshow(new,[]); 

no9=figure; 
image(new); 

錯誤顯示在I =(C * log(I + 1))'; ..你能告訴我如何解決這個問題嗎?

+0

這是什麼語言?請用適當的語言標籤替換您的標籤之一。 – Barmar 2013-02-15 22:03:44

+0

這是matlab。 – sat 2013-02-15 22:16:26

回答

1

最有可能的C1uint8類型。你應該把它轉換,即:

C1 = imread(InputImage); 
C1 = double(C1); 
NumberOfGrayLevels = 32; 
I = 0.299*C1(:,:,1) + 0.587*C1(:,:,2) + 0.114*C1(:,:,3); 
..... 

如果不轉換C1double,則I也將是uint8類型 - 它不包含你想要什麼,log功能將無法使用它。

+0

謝謝。與日誌的錯誤現在是好的 – sat 2013-02-15 22:37:53

相關問題