diff --git a/Applications/Classification/otbComputeConfusionMatrix.cxx b/Applications/Classification/otbComputeConfusionMatrix.cxx
index 3968684a82a06bd2b3f6475ce922f43c384b5a7a..1912f50acf32bb01a3b64692031f5c54c9c26242 100644
--- a/Applications/Classification/otbComputeConfusionMatrix.cxx
+++ b/Applications/Classification/otbComputeConfusionMatrix.cxx
@@ -216,7 +216,7 @@ private:
 
   void DoExecute()
   {
-    Int32ImageType* input = this->GetParameterImage<Int32ImageType> ("in");
+    Int32ImageType* input = this->GetParameterInt32Image("in");
 
     std::string field;
     int nodata = this->GetParameterInt("nodatalabel");
@@ -228,7 +228,7 @@ private:
 
     if (GetParameterString("ref") == "raster")
       {
-      reference = this->GetParameterImage<Int32ImageType> ("ref.raster.in");
+      reference = this->GetParameterInt32Image("ref.raster.in");
       }
     else
       {
diff --git a/Applications/Classification/otbSOMClassification.cxx b/Applications/Classification/otbSOMClassification.cxx
index 6260b48340f6ab8b07df48e31d271bc10ce52634..5f4bebfa4f88a5ff49a18dcc7f34a64e3cac20f7 100644
--- a/Applications/Classification/otbSOMClassification.cxx
+++ b/Applications/Classification/otbSOMClassification.cxx
@@ -188,7 +188,7 @@ private:
     m_UseMask = false;
     if (HasValue("vm"))
     {
-      mask = GetParameterImage<LabeledImageType>("vm");
+      mask = GetParameterUInt16Image("vm");
       if (input->GetLargestPossibleRegion()
         != mask->GetLargestPossibleRegion())
         {
diff --git a/Applications/DisparityMap/otbGeneratePlyFile.cxx b/Applications/DisparityMap/otbGeneratePlyFile.cxx
index e1a64b8111ae67150f9341e121abe40ccf8b28d1..0e3f7c339e56693db704aea7b2af1699e950349c 100644
--- a/Applications/DisparityMap/otbGeneratePlyFile.cxx
+++ b/Applications/DisparityMap/otbGeneratePlyFile.cxx
@@ -98,10 +98,10 @@ private:
   {
     std::string outfname = GetParameterString("out");
 
-    FloatVectorImageType::Pointer demPtr = this->GetParameterImage<FloatVectorImageType>("indem");
+    FloatVectorImageType::Pointer demPtr = this->GetParameterImage("indem");
     demPtr->Update();
 
-    FloatVectorImageType::Pointer colorPtr = this->GetParameterImage<FloatVectorImageType>("incolor");
+    FloatVectorImageType::Pointer colorPtr = this->GetParameterImage("incolor");
 
     // First, find the footprint in the color image
 
diff --git a/Applications/FeatureExtraction/otbDimensionalityReduction.cxx b/Applications/FeatureExtraction/otbDimensionalityReduction.cxx
index 87dd730c51e7e979b7b9b50268cad619b815fb0d..26a0c272159a34dc9ca4199e1aa2bec650bde818 100644
--- a/Applications/FeatureExtraction/otbDimensionalityReduction.cxx
+++ b/Applications/FeatureExtraction/otbDimensionalityReduction.cxx
@@ -182,7 +182,7 @@ private:
   {
               if (HasValue("in"))
               {
-                     FloatVectorImageType::Pointer inImage = this->GetParameterImage<FloatVectorImageType> ("in");
+                     FloatVectorImageType::Pointer inImage = this->GetParameterImage("in");
                      inImage->UpdateOutputInformation();
 
                      // Update the values of the channels to be selected
@@ -211,7 +211,7 @@ private:
                      }
                      this->DisableParameter("outmatrix");
 
-                     FloatVectorImageType::Pointer inImage = this->GetParameterImage<FloatVectorImageType> ("in");
+                     FloatVectorImageType::Pointer inImage = this->GetParameterImage("in");
                      inImage->UpdateOutputInformation();
 
                      // Update the values of the channels to be selected
diff --git a/Applications/Hyperspectral/otbHyperspectralUnmixing.cxx b/Applications/Hyperspectral/otbHyperspectralUnmixing.cxx
index 4dd933bdb22c396db066ca00a07b7b3191ba1ab5..d419b7e841dba9b88a37f5d5a7f5872463f0b521 100644
--- a/Applications/Hyperspectral/otbHyperspectralUnmixing.cxx
+++ b/Applications/Hyperspectral/otbHyperspectralUnmixing.cxx
@@ -150,8 +150,8 @@ private:
   {
     m_ProcessObjects.clear();
 
-    DoubleVectorImageType::Pointer inputImage = GetParameterImage<DoubleVectorImageType>("in");
-    DoubleVectorImageType::Pointer endmembersImage = GetParameterImage<DoubleVectorImageType>("ie");
+    DoubleVectorImageType::Pointer inputImage = GetParameterDoubleVectorImage("in");
+    DoubleVectorImageType::Pointer endmembersImage = GetParameterDoubleVectorImage("ie");
 
     /*
      * Transform Endmembers image to matrix representation
diff --git a/Applications/Hyperspectral/otbVertexComponentAnalysis.cxx b/Applications/Hyperspectral/otbVertexComponentAnalysis.cxx
index ef22ca2368d651650034868e188978c59b77d3f6..5cf08ee534fa59d91cd38cf3ca2cef4e451d4a0c 100644
--- a/Applications/Hyperspectral/otbVertexComponentAnalysis.cxx
+++ b/Applications/Hyperspectral/otbVertexComponentAnalysis.cxx
@@ -88,7 +88,7 @@ private:
 
   void DoExecute()
   {
-    DoubleVectorImageType::Pointer inputImage = GetParameterImage<DoubleVectorImageType>("in");
+    DoubleVectorImageType::Pointer inputImage = GetParameterDoubleVectorImage("in");
     DoubleVectorImageType::Pointer endmembersImage;
 
     const unsigned int nbEndmembers = GetParameterInt("ne");
diff --git a/Applications/Utils/otbExtractROI.cxx b/Applications/Utils/otbExtractROI.cxx
index ad4c319cdfd29a2e769736680e4a9e7d56971b7d..827e723251b6c09672f8dd8cb48bfdb2907773a0 100644
--- a/Applications/Utils/otbExtractROI.cxx
+++ b/Applications/Utils/otbExtractROI.cxx
@@ -224,7 +224,7 @@ private:
       // Setup the DEM Handler
       otb::Wrapper::ElevationParametersHandler::SetupDEMHandlerFromElevationParameters(this,"mode.fit.elev");
 
-      FloatVectorImageType::Pointer referencePtr = this->GetParameterImage<FloatVectorImageType>("mode.fit.ref");
+      FloatVectorImageType::Pointer referencePtr = this->GetParameterImage("mode.fit.ref");
       referencePtr->UpdateOutputInformation();
 
       RSTransformType::Pointer rsTransform = RSTransformType::New();