diff --git a/Modules/Filtering/DimensionalityReduction/include/otbPCAImageFilter.txx b/Modules/Filtering/DimensionalityReduction/include/otbPCAImageFilter.txx index 4ec65fd304c39753141f392068e6eab750cc000c..69d298cd1236a192455963754db86a79d4aaacf9 100644 --- a/Modules/Filtering/DimensionalityReduction/include/otbPCAImageFilter.txx +++ b/Modules/Filtering/DimensionalityReduction/include/otbPCAImageFilter.txx @@ -312,10 +312,20 @@ template < class TInputImage, class TOutputImage, void PCAImageFilter< TInputImage, TOutputImage, TDirectionOfTransformation > ::ReverseGenerateData () -{ - m_Normalizer->GraftOutput( this->GetOutput() ); +{ + + if ( m_GivenStdDevValues || m_GivenMeanValues ) + { + m_Normalizer->GraftOutput(this->GetOutput()); m_Normalizer->Update(); - this->GraftOutput( m_Normalizer->GetOutput() ); + this->GraftOutput(m_Normalizer->GetOutput()); + } + else + { + m_Transformer->GraftOutput( this->GetOutput() ); + m_Transformer->Update(); + this->GraftOutput( m_Transformer->GetOutput() ); + } } template < class TInputImage, class TOutputImage,