2016-03-04 51 views
1

我想使用函數multibandread來計算圖像的CIR(標準色 - 紅外),但給我一個錯誤。 我正在嘗試這個數學教程: Mathworks用多帶讀數計算CIR

圖片是500x500x3 uint8。這是我的代碼:

G = imread ('nir.tif'); 
if size(G,3) == 4 %alpha 
G = G(:,:,1:3); %strip alpha 
end 
CIR = multibandread(G, [500, 500, 4], 'uint8=>uint8',... 
       128, 'bil', 'ieee-le', {'Band','Direct',[4 3 2]}); 
figure 
imshow(CIR); 

這是錯誤:Index exceeds matrix dimensions.

+0

您是否嘗試過Oguzhan的建議? –

+1

我試過了,但沒有奏效。同樣的錯誤 –

+0

你可以請你作爲你的示例圖片發送? –

回答

1

你沒有提到在哪一行發生錯誤,但它好像有大約大小參數multibandread功能的問題。

首先,您將圖像的條帶數限制爲3,然後嘗試從圖像中讀取4個條帶。

您的問題可能與以下變化來解決:

CIR = multibandread(G, [500, 500, 3], 'uint8=>uint8',... 
       128, 'bil', 'ieee-le', {'Band','Direct',[3 2 1]}); 

此外,multibandread第一個參數,,應該是字符串,而不是一個矩陣。