Browse Source

Corrected GARI and a missing free memory (NIRchan) condition

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@53063 15284696-431f-4ddb-bdfa-cd5b030d7da7
Yann Chemin 12 năm trước cách đây
mục cha
commit
403349ccb5
2 tập tin đã thay đổi với 5 bổ sung3 xóa
  1. 1 1
      imagery/i.vi/gari.c
  2. 4 2
      imagery/i.vi/main.c

+ 1 - 1
imagery/i.vi/gari.c

@@ -7,7 +7,7 @@ double ga_ri(double redchan,double nirchan,double bluechan,double greenchan)
 {
     double result;
     {
-        result = (nirchan - (greenchan - (bluechan - redchan)))/(nirchan - (greenchan - (bluechan - redchan)));
+        result = (nirchan - (greenchan - (bluechan - redchan)))/(nirchan - (greenchan - (bluechan + redchan)));
     }
     return result;
 }

+ 4 - 2
imagery/i.vi/main.c

@@ -486,8 +486,10 @@ int main(int argc, char *argv[])
 
     G_free(inrast_redchan);
     Rast_close(infd_redchan);
-    G_free(inrast_nirchan);
-    Rast_close(infd_nirchan);
+    if (nirchan) {
+    	G_free(inrast_nirchan);
+    	Rast_close(infd_nirchan);
+    }
     if (greenchan) {
 	G_free(inrast_greenchan);
 	Rast_close(infd_greenchan);