diff --git a/Modules/Filtering/ImageManipulation/include/otbConvertTypeFunctor.h b/Modules/Filtering/ImageManipulation/include/otbConvertTypeFunctor.h index f3cb4b0682e8a4f4315ba78f49ef202d5f0ad809..aa318c24ab6436af249239a448ce3f228250ca2e 100644 --- a/Modules/Filtering/ImageManipulation/include/otbConvertTypeFunctor.h +++ b/Modules/Filtering/ImageManipulation/include/otbConvertTypeFunctor.h @@ -57,11 +57,14 @@ public: m_Scal = 2 * m_CompIn; else m_Scal = m_CompIn; - if ( m_cOutPix || m_cOutInternalPix ) - m_CompOut = ( sizeIn + 1 ) / 2 ; + if ( m_cOutInternalPix ) + m_CompOut = ( m_Scal + 1 ) / 2 ; else - m_CompOut = sizeIn ; - + m_CompOut = m_Scal ; + + if ( m_sOutPix || m_cOutPix ) + m_CompOut = 1; + return m_CompOut ; } @@ -87,8 +90,10 @@ public: m_cInPix = boost::is_complex < InputPixelType > :: value ; m_cOutPix = boost::is_complex < OutputPixelType > :: value ; + m_sOutPix = std::is_arithmetic< OutputPixelType > :: value ; m_cInInternalPix = boost::is_complex < InputInternalPixelType > :: value ; m_cOutInternalPix = boost::is_complex < OutputInternalPixelType > :: value ; + } @@ -198,7 +203,7 @@ private: double m_LowestBD , m_HighestBD ; OutputPixelValueType m_LowestB , m_HighestB ; unsigned int m_CompIn , m_CompOut , m_Scal ; - bool m_cInPix , m_cInInternalPix , m_cOutPix , m_cOutInternalPix ; + bool m_cInPix , m_cInInternalPix , m_cOutPix , m_cOutInternalPix , m_sOutPix ; };