diff --git a/Testing/Code/DisparityMap/CMakeLists.txt b/Testing/Code/DisparityMap/CMakeLists.txt index 9e5764970e0bda1aa5a4968ab740e1ce4b61bfc4..199fd525463a58da56a259081e42788c47910153 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 6585c9cb3b193a5464c65a41de188b64de841c7c..c9de4c1ce9637c9f0aaf8240cf3a92ae31c8df8a 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);