diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputImageParameter.txx b/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputImageParameter.txx index ccec52397e7d4fc3e6ff6c7b9cf17c41bbce798f..8a385e0c1f87d77ff05ffa9cf3454ca3bd9e08da 100644 --- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputImageParameter.txx +++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperInputImageParameter.txx @@ -183,18 +183,25 @@ template <class TInputImage, class TOutputImage> TOutputImage* InputImageParameter::SimpleCastImage() { - TInputImage* realInputImage = dynamic_cast<TInputImage*>(m_Image.GetPointer()); + if ( dynamic_cast<TOutputImage*> (m_Image.GetPointer()) ) + { + return dynamic_cast<TOutputImage*> (m_Image.GetPointer()); + } + else + { + TInputImage* realInputImage = dynamic_cast<TInputImage*>(m_Image.GetPointer()); - typedef itk::CastImageFilter<TInputImage, TOutputImage> CasterType; - typename CasterType::Pointer caster = CasterType::New(); + typedef itk::CastImageFilter<TInputImage, TOutputImage> CasterType; + typename CasterType::Pointer caster = CasterType::New(); - caster->SetInput(realInputImage); - caster->UpdateOutputInformation(); + caster->SetInput(realInputImage); + caster->UpdateOutputInformation(); - m_Image = caster->GetOutput(); - m_Caster = caster; + m_Image = caster->GetOutput(); + m_Caster = caster; - return caster->GetOutput(); + return caster->GetOutput(); + } }