From a409581c4b4cf341d213f2e54626d143a67a7987 Mon Sep 17 00:00:00 2001
From: Cyrille Valladeau <cyrille.valladeau@c-s.fr>
Date: Wed, 17 Nov 2010 19:51:39 +0100
Subject: [PATCH] ENH : change baseline for FineRagistration : process a aprt
 of the input image (timeout trouble on some plateform)

---
 Testing/Code/DisparityMap/CMakeLists.txt      |  4 ++
 .../otbFineRegistrationImageFilterTest.cxx    | 39 ++++++++++++++-----
 2 files changed, 34 insertions(+), 9 deletions(-)

diff --git a/Testing/Code/DisparityMap/CMakeLists.txt b/Testing/Code/DisparityMap/CMakeLists.txt
index 9e5764970e..199fd52546 100644
--- a/Testing/Code/DisparityMap/CMakeLists.txt
+++ b/Testing/Code/DisparityMap/CMakeLists.txt
@@ -336,6 +336,7 @@ ADD_TEST(feTvFineRegistrationImageFilterTestWithCorrelation ${DISPARITYMAP_TESTS
 	    1 # Grid step
 	    0 # Initial offset x
 	    0 # Initial offset y
+	    0 0 80 130 # region to proceed
 )
 
 ADD_TEST(feTvFineRegistrationImageFilterTestWithNormalizedCorrelation ${DISPARITYMAP_TESTS3}
@@ -356,6 +357,7 @@ ADD_TEST(feTvFineRegistrationImageFilterTestWithNormalizedCorrelation ${DISPARIT
 	    1 # Grid step
 	    0 # Initial offset x
 	    0 # Initial offset y
+	    0 0 80 130 # region to proceed
 )
 
 ADD_TEST(feTvFineRegistrationImageFilterTestWithMeanSquare ${DISPARITYMAP_TESTS3}
@@ -376,6 +378,7 @@ ADD_TEST(feTvFineRegistrationImageFilterTestWithMeanSquare ${DISPARITYMAP_TESTS3
 	    1 # Grid step
 	    0 # Initial offset x
 	    0 # Initial offset y
+	    0 0 80 130 # region to proceed
 )
 
 ADD_TEST(feTvFineRegistrationImageFilterTestWithMeanReciprocalDifference ${DISPARITYMAP_TESTS3}
@@ -396,6 +399,7 @@ ADD_TEST(feTvFineRegistrationImageFilterTestWithMeanReciprocalDifference ${DISPA
 	    1 # Grid step
 	    0 # Initial offset x
 	    0 # Initial offset y
+	    0 0 80 130 # region to proceed
 )
 
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/Testing/Code/DisparityMap/otbFineRegistrationImageFilterTest.cxx b/Testing/Code/DisparityMap/otbFineRegistrationImageFilterTest.cxx
index 6585c9cb3b..c9de4c1ce9 100644
--- a/Testing/Code/DisparityMap/otbFineRegistrationImageFilterTest.cxx
+++ b/Testing/Code/DisparityMap/otbFineRegistrationImageFilterTest.cxx
@@ -26,6 +26,8 @@
 #include "otbFineRegistrationImageFilter.h"
 #include "otbStandardFilterWatcher.h"
 #include "itkTimeProbe.h"
+#include "otbExtractROI.h"
+
 
 #include "itkNormalizedCorrelationImageToImageMetric.h"
 #include "itkMeanReciprocalSquareDifferenceImageToImageMetric.h"
@@ -33,11 +35,12 @@
 
 int otbFineRegistrationImageFilterTest( int argc, char * argv[] )
 {
-  if(argc!=12)
+  if(argc!=16)
     {
     std::cerr<<"Usage: "<<argv[0]<<" fixed_fname moving_fname output_correl output_field radius search_radius ";
     std::cerr<<"subpixPrecision metric(0=CC,1=NCC,2=MeanSquare,3=Mean reciprocal square difference) ";
     std::cerr<<"gridStep offsetX offsetY"<<std::endl;
+    std::cerr<<"ROI : indexX, indexY, startX, startY"<<std::endl;
     return EXIT_FAILURE;
     }
   const char * fixedFileName  = argv[1];
@@ -51,16 +54,21 @@ int otbFineRegistrationImageFilterTest( int argc, char * argv[] )
   const unsigned int gridStep = atoi(argv[9]);
   const double       offsetx  = atof(argv[10]);
   const double       offsety  = atof(argv[11]);
+  const unsigned int startX   = atoi(argv[12]);
+  const unsigned int startY   = atoi(argv[13]);
+  const unsigned int sizeX    = atoi(argv[14]);
+  const unsigned int sizeY    = atoi(argv[15]);
 
   typedef double      PixelType;
   const unsigned int  Dimension = 2;
 
-  typedef itk::FixedArray<PixelType,Dimension>                                DeformationValueType;
-  typedef otb::Image< PixelType,  Dimension >                                 ImageType;
-  typedef otb::Image<DeformationValueType,Dimension>                          FieldImageType;
-  typedef otb::ImageFileReader< ImageType >                                   ReaderType;
-  typedef otb::ImageFileWriter< ImageType >                                   CorrelWriterType;
-  typedef otb::ImageFileWriter< FieldImageType>                               FieldWriterType;
+  typedef itk::FixedArray<PixelType,Dimension>                                 DeformationValueType;
+  typedef otb::Image< PixelType,  Dimension >                                  ImageType;
+  typedef otb::Image<DeformationValueType,Dimension>                           FieldImageType;
+  typedef otb::ImageFileReader< ImageType >                                    ReaderType;
+  typedef otb::ImageFileWriter< ImageType >                                    CorrelWriterType;
+  typedef otb::ImageFileWriter< FieldImageType>                                FieldWriterType;
+  typedef otb::ExtractROI<PixelType, PixelType>                                ExtractFiltertype;
   typedef otb::FineRegistrationImageFilter<ImageType,ImageType,FieldImageType> RegistrationFilterType;
   
   ReaderType::Pointer freader = ReaderType::New();
@@ -71,9 +79,22 @@ int otbFineRegistrationImageFilterTest( int argc, char * argv[] )
   mreader->SetFileName(movingFileName);
   //mreader->Update();
 
+  ExtractFiltertype::Pointer fextract = ExtractFiltertype::New();
+  fextract->SetInput(freader->GetOutput());
+  fextract->SetStartX(startX);
+  fextract->SetStartY(startY);
+  fextract->SetSizeX(sizeX);
+  fextract->SetSizeY(sizeY);
+  ExtractFiltertype::Pointer mextract = ExtractFiltertype::New();
+  mextract->SetInput(mreader->GetOutput());
+  mextract->SetStartX(startX);
+  mextract->SetStartY(startY);
+  mextract->SetSizeX(sizeX);
+  mextract->SetSizeY(sizeY);
+
   RegistrationFilterType::Pointer registration = RegistrationFilterType::New();
-  registration->SetFixedInput(freader->GetOutput());
-  registration->SetMovingInput(mreader->GetOutput());
+  registration->SetFixedInput(/*freader*/fextract->GetOutput());
+  registration->SetMovingInput(/*mreader*/mextract->GetOutput());
   registration->SetRadius(radius);
   registration->SetSearchRadius(sradius);
   registration->SetSubPixelAccuracy(precision);
-- 
GitLab