From 5dc71c7b8beb23187ad77ca211f6987cc8b84ac6 Mon Sep 17 00:00:00 2001
From: Gregoire Mercier <gregoire.mercier@telecom-bretagne.eu>
Date: Mon, 7 Mar 2011 13:21:01 +0100
Subject: [PATCH] BUG in test Local gradient vector filter

---
 Code/BasicFilters/otbLocalGradientVectorImageFilter.h | 10 +++++++---
 Code/Hyperspectral/otbMNFImageFilter.txx              | 11 +++++++++++
 2 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/Code/BasicFilters/otbLocalGradientVectorImageFilter.h b/Code/BasicFilters/otbLocalGradientVectorImageFilter.h
index b04c61ecdd..f58e523bdf 100644
--- a/Code/BasicFilters/otbLocalGradientVectorImageFilter.h
+++ b/Code/BasicFilters/otbLocalGradientVectorImageFilter.h
@@ -48,8 +48,8 @@ public:
     {
       output[i] = static_cast<typename TOutput::ValueType>(
                   input.GetPixel(4)[i] 
-                  - input.GetPixel(5)[i] / 2.
-                  - input.GetPixel(7)[i] / 2. );
+                  - input.GetPixel(1)[i] / 2.
+                  - input.GetPixel(3)[i] / 2. );
     }
     return output;
   }
@@ -84,7 +84,11 @@ public:
   itkTypeMacro(LocalGradientVectorImageFilter, ImageToImageFilter);
 
 protected:
-  LocalGradientVectorImageFilter() { }
+  LocalGradientVectorImageFilter() 
+  {
+    typename Superclass::RadiusType radius = {{1,1}};
+    SetRadius( radius );  
+  }
   virtual ~LocalGradientVectorImageFilter() { }
 
 private:
diff --git a/Code/Hyperspectral/otbMNFImageFilter.txx b/Code/Hyperspectral/otbMNFImageFilter.txx
index 717482da84..8b250542a5 100644
--- a/Code/Hyperspectral/otbMNFImageFilter.txx
+++ b/Code/Hyperspectral/otbMNFImageFilter.txx
@@ -329,11 +329,22 @@ MNFImageFilter< TInputImage, TOutputImage, TNoiseImageFilter, TDirectionOfTransf
   InternalMatrixType An = m_NoiseCovarianceMatrix.GetVnlMatrix();
   InternalMatrixType W = An * Ax_inv;
 
+  std::cerr << "Matrice C \n";
+  W.print( std::cerr );
+
   InternalMatrixType transf;
   vnl_vector<double> vectValP;
 
   vnl_symmetric_eigensystem_compute( W, transf, vectValP );
 
+  std::cerr << "Matrice de transf\n";
+  transf.print( std::cerr );
+
+  std::cerr << "VectPropres\n";
+  for ( unsigned int i = 0; i < vectValP.size(); i++ )
+    std::cerr << vectValP[i] << "  ";
+  std::cerr << "\n";
+
   InternalMatrixType normMat //= transf.transpose() * An * transf;
     = transf.transpose() * Ax_inv * transf;
 
-- 
GitLab