Skip to content
Snippets Groups Projects
Commit dc784f1c authored by Otmane Lahlou's avatar Otmane Lahlou
Browse files

ENH: initialize the deformation field in the GenericRSResample instead in StreamingResamplefilter

parent ff7cd271
No related branches found
No related tags found
No related merge requests found
......@@ -19,8 +19,6 @@
#ifndef __otbStreamingResampleImageFilter_txx
#define __otbStreamingResampleImageFilter_txx
#include "itkNumericTraits.h"
namespace otb
{
......@@ -32,12 +30,6 @@ StreamingResampleImageFilter<TInputImage, TOutputImage, TInterpolatorPrecisionTy
m_DeformationFilter = DeformationFieldGeneratorType::New();
m_WarpFilter = WarpImageFilterType::New();
// Initialize the deformation field spacing to zero : inconsistant
// value
SpacingType nullDeformationFieldSpacing;
nullDeformationFieldSpacing.Fill(0.);
m_DeformationFilter->SetOutputSpacing(nullDeformationFieldSpacing);
// Wire minipipeline
m_WarpFilter->SetDeformationField(m_DeformationFilter->GetOutput());
}
......@@ -73,11 +65,6 @@ StreamingResampleImageFilter<TInputImage, TOutputImage, TInterpolatorPrecisionTy
region.SetIndex(this->GetOutputStartIndex() );
outputPtr->SetLargestPossibleRegion(region);
// check the output spacing of the deformation field
// if 0 put an initial value
if(m_DeformationFilter->GetOutputSpacing() == itk::NumericTraits<SpacingType>::Zero )
m_DeformationFilter->SetOutputSpacing(2.*this->GetOutputSpacing());
}
template <class TInputImage, class TOutputImage, class TInterpolatorPrecisionType>
......
......@@ -24,6 +24,7 @@
#include "projection/ossimUtmProjection.h"
#include "itkPoint.h"
#include "itkNumericTraits.h"
namespace otb
{
......@@ -42,6 +43,10 @@ GenericRSResampleImageFilter<TInputImage, TOutputImage>
m_InputRpcEstimator = InputRpcModelEstimatorType::New();
m_OutputRpcEstimator= OutputRpcModelEstimatorType::New();
m_Transform = GenericRSTransformType::New();
// Initialize the deformation field spacing to zero : inconsistant
// value
this->SetDeformationFieldSpacing(itk::NumericTraits<SpacingType>::Zero);
}
template <class TInputImage, class TOutputImage>
......@@ -49,6 +54,11 @@ void
GenericRSResampleImageFilter<TInputImage, TOutputImage>
::GenerateData()
{
// check the output spacing of the deformation field
// if 0 put an initial value
if(this->GetDeformationFieldSpacing() == itk::NumericTraits<SpacingType>::Zero )
this->SetDeformationFieldSpacing(2.*this->GetOutputSpacing());
m_Resampler->GraftOutput(this->GetOutput());
m_Resampler->Update();
this->GraftOutput(m_Resampler->GetOutput());
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment