私は自分の画像でいくつかの計算をしたいと思います。私はMatlabを使用しますが、間違った答えを返します。どうしてか分かりません。ここでなぜmatlabが間違った返答を返すのですか
は私のファイルです:
function [ newImage ] = Run(file)
info = geotiffinfo(file);
[bands,R1]=geotiffread(file);
imageSize=size(bands);
result=nan(imageSize(1),imageSize(2),7);
for i=100:105
for j=100:105
disp(strcat('Pixel ',sprintf('[%d,%d] of [%d,%d]',imageSize(1),imageSize(2), i,j)));
b7=bands(i,i,5);
b6=bands(i,i,4);
b5=bands(i,i,3);
b4=bands(i,i,2);
b3=bands(i,i,1);
%ndvi 7-4/7+4
result(i,j,1)= (b7-b4)/(b7+b4);
%NDI45 5-4/5+4
result(i,j,2)= (b5-b4)/(b5+b4);
%MTCI 6-5/5-4
result(i,j,3)= (b6-b5)/(b5-b4);
%MCARI [(B5 - B4) - 0.2(B5- B3)] * (B5 - B4)
result(i,j,4)= ((b5-b4)-(0.2*(b5-b3)))*(b5-b4);
%GNDVI 7-3/7+3
result(i,j,4)= (b7-b3)/(b7+b3);
%PSSR 7/4
result(i,j,5)= (b7)/(b4);
%S2REP 705 + 35 *((((B7 + B4)/2) - B5)/(B6 - B5))
result(i,j,6)= 705 + 35 *((((b7 + b4)/2) - b5)/(b6 - b5));
%IRECI 7-4/(5/6)
result(i,j,7)=(b7-b4)/(b5/b6);
end
end
geotiffwrite('D:\SazmanJangalha\ref\result.tif', result, R1, ...
'GeoKeyDirectoryTag', info.GeoTIFFTags.GeoKeyDirectoryTag);
end
私は単純にこれらのコマンドを実行し、それが間違った答えを返します。
result(i,j,7)
ans =
0
K>> b7-b4
ans =
0
K>> b7
b7 =
679
K>> b4
b4 =
1149
K>> b7-b4
ans =
0
結果が丸みを帯びているように思え。どうして?
「バンド」の種類は? – beaker
@beaker it unit16 –
より小さい* unsigned *整数から大きな* unsigned *整数を減算するとどうなると思いますか? – excaza