diff --git a/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageBlackmanFunction.h b/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageBlackmanFunction.h
index 910908443fdc97c419798ce2423adb6b8a98e18f..4bad6a65ef34138eb623b6ea0b3e1310fd104583 100644
--- a/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageBlackmanFunction.h
+++ b/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageBlackmanFunction.h
@@ -41,6 +41,7 @@ template<class TInput = double, class TOutput = double>
 class BlackmanWindowFunction
 {
 public:
+  BlackmanWindowFunction(): m_Radius(1), m_Factor1(CONST_PI), m_Factor2(2.0 * CONST_PI) {} // default radius is 1 at construction
   void SetRadius(unsigned int radius)
   {
     m_Radius = radius;
@@ -95,8 +96,7 @@ template<class TInputImage, class TBoundaryCondition = itk::ConstantBoundaryCond
       double, class TInputInterpolator = double, class TOutputInterpolator = double>
 class ITK_EXPORT WindowedSincInterpolateImageBlackmanFunction :
   public WindowedSincInterpolateImageFunctionBase<TInputImage,
-      typename Function::BlackmanWindowFunction<TInputInterpolator,
-          TOutputInterpolator>,
+      typename Function::BlackmanWindowFunction<TInputInterpolator, TOutputInterpolator>,
       TBoundaryCondition,
       TCoordRep>
 {
diff --git a/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageCosineFunction.h b/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageCosineFunction.h
index 5f37e59be5177494d82108c153bb6573d6f20940..46a65cc60de9715b6b79840467666e9620f89336 100644
--- a/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageCosineFunction.h
+++ b/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageCosineFunction.h
@@ -41,6 +41,7 @@ template<class TInput = double, class TOutput = double>
 class CosineWindowFunction
 {
 public:
+  CosineWindowFunction(): m_Radius(1), m_Factor(CONST_PI / 2.0) {} // default radius is 1 at construction
   void SetRadius(unsigned int radius)
   {
     m_Radius = radius;
@@ -63,9 +64,9 @@ public:
     return (x == 0.0) ? static_cast<TOutput>(temp) : static_cast<TOutput>(temp * std::sin(px) / px);
   }
 private:
+  unsigned int m_Radius;
   // Equal to \f$ \frac{\pi}{2 m} \f$
   double       m_Factor;
-  unsigned int m_Radius;
 };
 } //namespace Function
 
diff --git a/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageGaussianFunction.h b/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageGaussianFunction.h
index 9d20a68c81157570f581e298fc48fb05072b2e73..b2a6bdc1bc0e18be51b28cce02508d960bfe1e9b 100644
--- a/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageGaussianFunction.h
+++ b/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageGaussianFunction.h
@@ -41,6 +41,7 @@ template<class TInput = double, class TOutput = double>
 class GaussianWindowFunction
 {
 public:
+  GaussianWindowFunction(): m_Radius(1), m_Factor(-2.0 / CONST_PI) {} // default radius is 1 at construction
   void SetRadius(unsigned int radius)
   {
     m_Radius = radius;
@@ -63,8 +64,8 @@ public:
     return (x == 0.0) ? static_cast<TOutput>(temp) : static_cast<TOutput>(temp * std::sin(px) / px);
   }
 private:
-  double       m_Factor;
   unsigned int m_Radius;
+  double       m_Factor;
 };
 
 } //namespace Function
diff --git a/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageHammingFunction.h b/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageHammingFunction.h
index 003bbdd2508a615eea5ab186762d922eec7579ce..2ea6af2790e9608479ea1ac09f7b2731b84506bb 100644
--- a/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageHammingFunction.h
+++ b/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageHammingFunction.h
@@ -41,6 +41,7 @@ template<class TInput = double, class TOutput = double>
 class HammingWindowFunction
 {
 public:
+  HammingWindowFunction(): m_Radius(1), m_Factor(CONST_PI) {} // default radius is 1 at construction
   void SetRadius(unsigned int radius)
   {
     m_Radius = radius;
@@ -63,9 +64,9 @@ public:
     return (x == 0.0) ? static_cast<TOutput>(temp) : static_cast<TOutput>(temp * std::sin(px) / px);
   }
 private:
+  unsigned int m_Radius;
   // Equal to \f$ \frac{\pi}{m} \f$
   double       m_Factor;
-  unsigned int m_Radius;
 };
 
 } //namespace Function
diff --git a/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageLanczosFunction.h b/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageLanczosFunction.h
index bfd9162671520e945d0c28c078a55775677a5d37..8e0e6355aea1385c6b47f84ab7f980576963c4aa 100644
--- a/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageLanczosFunction.h
+++ b/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageLanczosFunction.h
@@ -43,6 +43,7 @@ template<class TInput = double, class TOutput = double>
 class LanczosWindowFunction
 {
 public:
+  LanczosWindowFunction(): m_Radius(1), m_Factor(CONST_PI) {} // default factor is 1 at construction
   void SetRadius(unsigned int radius)
   {
     m_Radius = radius;
@@ -74,9 +75,9 @@ public:
     return (x == 0.0) ? static_cast<TOutput>(temp) : static_cast<TOutput>(temp * std::sin(px) / px);
   }
 private:
+  unsigned int m_Radius;
   // Equal to \f$ \frac{\pi}{m} \f$
   double       m_Factor;
-  unsigned int m_Radius;
 };
 } //namespace Function
 
diff --git a/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageWelchFunction.h b/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageWelchFunction.h
index 5625f2f41188490ce2536de72c88234ceae79743..03fa31a4a3540bc9bed73e21e71ff9862dccc606 100644
--- a/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageWelchFunction.h
+++ b/Modules/Core/Interpolation/include/otbWindowedSincInterpolateImageWelchFunction.h
@@ -41,6 +41,7 @@ template<class TInput = double, class TOutput = double>
 class WelchWindowFunction
 {
 public:
+  WelchWindowFunction() : m_Radius(1), m_Factor(1) {} // default radius is 1 at construction
   void SetRadius(unsigned int radius)
   {
     m_Radius = radius;
@@ -63,9 +64,9 @@ public:
     return (x == 0.0) ? static_cast<TOutput>(temp) : static_cast<TOutput>(temp * std::sin(px) / px);
   }
 private:
+  unsigned int m_Radius;
   // Equal to \f$ \frac{1}{m^2} \f$
   double       m_Factor;
-  unsigned int m_Radius;
 };
 } //namespace Function