diff --git a/Code/BasicFilters/otbSpectralAngleDistanceImageFilter.txx b/Code/BasicFilters/otbSpectralAngleDistanceImageFilter.txx
index c13d097ee0b4eba57eb86f561cfefd452f947ff9..4a8be991ead904acf5d52bd69d3992e1ec4fa4d9 100644
--- a/Code/BasicFilters/otbSpectralAngleDistanceImageFilter.txx
+++ b/Code/BasicFilters/otbSpectralAngleDistanceImageFilter.txx
@@ -94,8 +94,8 @@ SpectralAngleDistanceImageFilter<TInputImage,TOutputImage>
 	}
       // Spectral angle normalisation
       dist = dist/(M_PI/2);
-   //ponderation par un carre
-   dist = sqrt(dist)*255;
+   //square ponderation
+   dist = sqrt(dist);
    outputIt.Set(static_cast<OutputPixelType>(dist));
     ++inputIt;
     ++outputIt;
diff --git a/Code/Common/otbDrawPathListFilter.h b/Code/Common/otbDrawPathListFilter.h
index 055fe88c314f3e67c24f9eba451a187451dce76d..5e9a3c4cf4e285ff07e07c220bdec5809193b3dc 100644
--- a/Code/Common/otbDrawPathListFilter.h
+++ b/Code/Common/otbDrawPathListFilter.h
@@ -92,6 +92,9 @@ public:
   itkGetMacro(UseInternalPathValue,bool);
   itkSetMacro(UseInternalPathValue,bool);
   itkBooleanMacro(UseInternalPathValue);
+  
+  itkSetMacro(PathValue,OutputImagePixelType);
+  itkGetMacro(PathValue,OutputImagePixelType);
 
   /** ImageDimension constants */
   itkStaticConstMacro(InputImageDimension, unsigned int,
diff --git a/Testing/Code/BasicFilters/CMakeLists.txt b/Testing/Code/BasicFilters/CMakeLists.txt
index bb2a347c012c3989c23009b5027fc43ef2bb4306..c5484eb53872bb212c0a07eb0e8a4451036ed49e 100755
--- a/Testing/Code/BasicFilters/CMakeLists.txt
+++ b/Testing/Code/BasicFilters/CMakeLists.txt
@@ -209,9 +209,9 @@ ADD_TEST(bfTvStreamingShrinkImageFilterQBMUL ${BASICFILTERS_TESTS}
 		    ${BASELINE}/bfTvSpectralAngleDistanceOutput.hdr
 		    ${TEMP}/bfTvSpectralAngleDistanceOutput.hdr
 		    otbSpectralAngleDistanceImageFilter
-		    ${INPUTDATA}/poupees.jpg
+		    ${INPUTDATA}/InputForRoadDetection.tif
 	            ${TEMP}/bfTvSpectralAngleDistanceOutput.hdr
-		    210 432
+		    232 198
 )
 
 # A enrichir
diff --git a/Testing/Code/FeatureExtraction/CMakeLists.txt b/Testing/Code/FeatureExtraction/CMakeLists.txt
index 3eba3c1e715a474f0fb0a9ea48c167cd95984ce8..992e3b0e30fc5716095c4b141c6d757fcd94be6a 100755
--- a/Testing/Code/FeatureExtraction/CMakeLists.txt
+++ b/Testing/Code/FeatureExtraction/CMakeLists.txt
@@ -478,10 +478,10 @@ ADD_TEST(feTvNeighborhoodScalarProductFilter ${FEATUREEXTRACTION_TESTS}
 		      ${BASELINE}/feTvNeigborhoodScalarProductDirectionOutput.hdr
 		      ${TEMP}/feTvNeigborhoodScalarProductDirectionOutput.hdr
         otbNeighborhoodScalarProductFilter
-        ${INPUTDATA}/InputForRoadDetection.tif
+        ${BASELINE}/bfTvSpectralAngleDistanceOutput.hdr
         ${TEMP}/feTvNeigborhoodScalarProductModulusOutput.hdr
 	${TEMP}/feTvNeigborhoodScalarProductDirectionOutput.hdr
-        1.0
+        2.0
         )
 
 # -------            otb::RemoveIsolatedByDirectionFilter   -------------
@@ -509,7 +509,7 @@ ADD_TEST(feTvRemoveWrongDirectionFilter ${FEATUREEXTRACTION_TESTS}
 		      ${BASELINE}/feTvRemoveWrongDirectionOutput.hdr
 		      ${TEMP}/feTvRemoveWrongDirectionOutput.hdr
         otbRemoveWrongDirectionFilter
-       ${BASELINE}/feTvNeigborhoodScalarProductModulusOutput.hdr
+       ${BASELINE}/feTvRemoveIsolatedByDirectionOutput.hdr
        ${BASELINE}/feTvNeigborhoodScalarProductDirectionOutput.hdr
        ${TEMP}/feTvRemoveWrongDirectionOutput.hdr
         )
@@ -524,7 +524,7 @@ ADD_TEST(feTvNonMaxRemovalByDirectionFilter ${FEATUREEXTRACTION_TESTS}
 		      ${BASELINE}/feTvNonMaxRemovalByDirectionOutput.hdr
 		      ${TEMP}/feTvNonMaxRemovalByDirectionOutput.hdr
         otbNonMaxRemovalByDirectionFilter
-       ${BASELINE}/feTvNeigborhoodScalarProductModulusOutput.hdr
+       ${BASELINE}/feTvRemoveWrongDirectionOutput.hdr
        ${BASELINE}/feTvNeigborhoodScalarProductDirectionOutput.hdr
        ${TEMP}/feTvNonMaxRemovalByDirectionOutput.hdr
         )
@@ -534,7 +534,7 @@ ADD_TEST(feTvNonMaxRemovalByDirectionFilter ${FEATUREEXTRACTION_TESTS}
 ADD_TEST(feTuVectorizationPathListFilterNew ${FEATUREEXTRACTION_TESTS} 
          otbVectorizationPathListFilterNew) 
 
-ADD_TEST(feTvVectorizationPathListFilter ${FEATUREEXTRACTION_TESTS}  
+ADD_TEST(feTvVectorizationPathListFilterAsciiOutput ${FEATUREEXTRACTION_TESTS}  
 --compare-ascii ${EPS}  
 		${BASELINE_FILES}/feTvVectorizationPathListOutput.txt
 		${TEMP}/feTvVectorizationPathListOutput.txt
@@ -542,9 +542,21 @@ ADD_TEST(feTvVectorizationPathListFilter ${FEATUREEXTRACTION_TESTS}
        ${BASELINE}/feTvNonMaxRemovalByDirectionOutput.hdr
        ${BASELINE}/feTvNeigborhoodScalarProductDirectionOutput.hdr
        ${TEMP}/feTvVectorizationPathListOutput.txt
+       ${TEMP}/feTvVectorizationPathListOutput.png
+       0.0005
         )
 
-
+ADD_TEST(feTvVectorizationPathListFilterImageOutput ${FEATUREEXTRACTION_TESTS}  
+--compare-image ${EPSILON}
+		${BASELINE}/feTvVectorizationPathListOutput.png
+		${TEMP}/feTvVectorizationPathListOutput.png
+        otbVectorizationPathListFilter
+       ${BASELINE}/feTvNonMaxRemovalByDirectionOutput.hdr
+       ${BASELINE}/feTvNeigborhoodScalarProductDirectionOutput.hdr
+       ${TEMP}/feTvVectorizationPathListOutput.txt
+       ${TEMP}/feTvVectorizationPathListOutput.png
+       0.0005
+        )
 
 # A enrichir
 SET(BasicFeatureExtraction_SRCS
diff --git a/Testing/Code/FeatureExtraction/otbVectorizationPathListFilter.cxx b/Testing/Code/FeatureExtraction/otbVectorizationPathListFilter.cxx
index f6e14288ad089f6cb6667edb407bd25f9cc4f1dc..ff3ac475d53ba6cb890f45fe23defeeb88d1e75b 100644
--- a/Testing/Code/FeatureExtraction/otbVectorizationPathListFilter.cxx
+++ b/Testing/Code/FeatureExtraction/otbVectorizationPathListFilter.cxx
@@ -32,12 +32,18 @@ int otbVectorizationPathListFilter(int argc, char * argv[])
       const char * modfname = argv[1];
       const char * dirfname = argv[2];
       const char * outfname = argv[3];
+      const char * outImagefname = argv[4];
+      const double thresh = atof(argv[5]);
 
       const unsigned int Dimension = 2;
       typedef double PixelType;
+      typedef unsigned char OutputPixelType;
       typedef otb::Image<PixelType,Dimension> ImageType;
+      typedef otb::Image<OutputPixelType,Dimension> OutputImageType;
+      typedef otb::ImageFileWriter<OutputImageType> WriterType;
       typedef otb::ImageFileReader<ImageType> ReaderType;
       typedef itk::PolyLineParametricPath<Dimension> PathType;
+      typedef otb::DrawPathListFilter<OutputImageType,PathType,OutputImageType> DrawFilterType;
       typedef otb::VectorizationPathListFilter<ImageType,ImageType,PathType> VectorizationPathListFilterType;
       typedef VectorizationPathListFilterType::OutputPathListType PathListType;
       typedef PathListType::ConstIterator PathListIteratorType;
@@ -53,6 +59,7 @@ int otbVectorizationPathListFilter(int argc, char * argv[])
 
       filter->SetInput(modReader->GetOutput());
       filter->SetInputDirection(dirReader->GetOutput());
+      filter->SetAmplitudeThreshold(thresh);
       filter->Update();
       
       PathListType::Pointer pathList = filter->GetOutput();
@@ -80,6 +87,21 @@ int otbVectorizationPathListFilter(int argc, char * argv[])
 	  ++counter;
 	}
       file.close();
+
+      OutputImageType::Pointer output = OutputImageType::New();
+      output->SetRegions(modReader->GetOutput()->GetLargestPossibleRegion());
+      output->Allocate();
+      output->FillBuffer(255);
+
+      DrawFilterType::Pointer drawer = DrawFilterType::New();
+      drawer->SetInput(output);
+      drawer->SetInputPath(filter->GetOutput());
+      drawer->SetPathValue(0);
+      
+      WriterType::Pointer writer = WriterType::New();
+      writer->SetFileName(outImagefname);
+      writer->SetInput(drawer->GetOutput());
+      writer->Update();
     }
   catch( itk::ExceptionObject & err ) 
     {