[otb] 03/06: Imported Upstream version 5.2.1+dfsg

Sebastiaan Couwenberg sebastic at moszumanska.debian.org
Thu Feb 11 22:15:55 UTC 2016


This is an automated email from the git hooks/post-receive script.

sebastic pushed a commit to branch master
in repository otb.

commit 7e4fb68522135b65cfacc0fe1be9db88223fbbe1
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Thu Feb 11 21:20:03 2016 +0100

    Imported Upstream version 5.2.1+dfsg
---
 CMake/FindOssim.cmake                              |  38 +++---
 CMake/MinGWPackage.cmake                           |  68 ++++++-----
 CMakeLists.txt                                     |   2 +-
 Copyright/ITKCopyright.txt                         |   2 +-
 Examples/BasicFilters/BandMathFilterExample.cxx    |   2 +-
 .../ChangeDetectionFrameworkExample.cxx            |   2 +-
 .../MultivariateAlterationDetector.cxx             |   4 +-
 .../DataRepresentation/Image/ImageListExample.cxx  |   4 +-
 Examples/DataRepresentation/Image/VectorImage.cxx  |   4 +-
 .../Mesh/PointSetWithVectors.cxx                   |   2 +-
 Examples/FeatureExtraction/AlignmentsExample.cxx   |   2 +-
 .../AssymmetricFusionOfLineDetectorExample.cxx     |   2 +-
 .../CorrelationLineDetectorExample.cxx             |   2 +-
 .../ExtractSegmentsByStepsExample.cxx              |   2 +-
 .../FeatureExtraction/ExtractSegmentsExample.cxx   |   2 +-
 .../FeatureExtraction/RatioLineDetectorExample.cxx |   2 +-
 Examples/Filtering/RasterizationExample.cxx        |   2 +-
 Examples/IO/DEMHandlerExample.cxx                  |   4 +-
 Examples/IO/HDFReaderExample.cxx                   |   6 +-
 Examples/IO/ImageReadRegionOfInterestWrite.cxx     |   4 +-
 Examples/IO/ImageToKmzAndMapFileProductExample.cxx |   4 +-
 .../TrainMachineLearningModelFromImagesExample.cxx |   2 +-
 Examples/OBIA/HooverMetricsEstimation.cxx          |   2 +-
 .../Projections/GeometriesProjectionExample.cxx    |   2 +-
 .../AtmosphericCorrectionSequencement.cxx          |   6 +-
 .../Segmentation/VectorConfidenceConnected.cxx     |   2 +-
 Examples/Simulation/ProsailModel.cxx               |   2 +-
 Examples/Tutorials/Multispectral.cxx               |   2 +-
 .../GdalAdapters/include/otbOGRLayerWrapper.h      |   2 +-
 .../Adapters/OSSIMAdapters/include/otbDEMHandler.h |  10 +-
 .../OSSIMAdapters/include/otbImageKeywordlist.h    |   2 +-
 .../OSSIMAdapters/src/otbDEMConvertAdapter.cxx     |   2 +-
 .../Adapters/OSSIMAdapters/src/otbDEMHandler.cxx   |   8 +-
 .../app/otbMultivariateAlterationDetector.cxx      |   4 +-
 .../app/otbClassificationMapRegularization.cxx     |   4 +-
 .../app/otbComputePolylineFeatureFromImage.cxx     |   4 +-
 .../app/otbDSFuzzyModelEstimation.cxx              |   2 +-
 .../app/otbFusionOfClassifications.cxx             |   4 +-
 .../AppClassification/app/otbImageClassifier.cxx   |   2 +-
 .../AppClassification/app/otbPredictRegression.cxx |   2 +-
 .../AppClassification/app/otbSOMClassification.cxx |   7 +-
 .../app/otbTrainImagesClassifier.cxx               |  18 +--
 .../AppClassification/app/otbTrainRegression.cxx   |  32 ++---
 .../AppClassification/include/otbTrainBoost.txx    |   2 +-
 .../include/otbTrainDecisionTree.txx               |   4 +-
 .../include/otbTrainGradientBoostedTree.txx        |   4 +-
 .../AppClassification/include/otbTrainKNN.txx      |   2 +-
 .../AppClassification/include/otbTrainLibSVM.txx   |   2 +-
 .../include/otbTrainNeuralNetwork.txx              |   2 +-
 .../include/otbTrainRandomForests.txx              |   4 +-
 .../AppClassification/include/otbTrainSVM.txx      |   2 +-
 .../app/otbHomologousPointsExtraction.cxx          |  20 +--
 .../app/otbDimensionalityReduction.cxx             |   2 +-
 .../AppEdge/app/otbLineSegmentDetection.cxx        |   2 +-
 .../AppFusion/app/otbBundleToPerfectSensor.cxx     |   2 +-
 .../app/otbHyperspectralUnmixing.cxx               |   4 +-
 .../AppImageUtils/app/otbColorMapping.cxx          |  12 +-
 .../AppImageUtils/app/otbDownloadSRTMTiles.cxx     |   4 +-
 .../AppImageUtils/app/otbManageNoData.cxx          |   4 +-
 .../app/otbMultiResolutionPyramid.cxx              |   2 +-
 .../AppImageUtils/app/otbPixelValue.cxx            |   2 +-
 .../AppImageUtils/app/otbReadImageInfo.cxx         |  12 +-
 .../AppMathParserX/app/otbBandMathX.cxx            |   6 +-
 .../app/otbOpticalCalibration.cxx                  |  40 +++---
 .../app/otbGenerateRPCSensorModel.cxx              |   2 +-
 .../app/otbGridBasedImageResampling.cxx            |  10 +-
 .../AppProjection/app/otbOrthoRectification.cxx    |  18 +--
 .../AppProjection/app/otbRefineSensorModel.cxx     |   2 +-
 .../app/otbRigidTransformResample.cxx              |   8 +-
 .../AppProjection/app/otbSuperimpose.cxx           |   4 +-
 .../app/otbVectorDataReprojection.cxx              |   4 +-
 .../app/otbSarRadiometricCalibration.cxx           |   2 +-
 .../app/otbSARDecompositions.cxx                   |   2 +-
 .../app/otbConnectedComponentSegmentation.cxx      |   2 +-
 .../AppSegmentation/app/otbLSMSSegmentation.cxx    |   4 +-
 .../AppSegmentation/app/otbSegmentation.cxx        |  14 +--
 .../AppStereo/app/otbBlockMatching.cxx             |  20 +--
 .../app/otbDisparityMapToElevationMap.cxx          |   2 +-
 .../AppStereo/app/otbStereoFramework.cxx           |  14 +--
 .../app/otbStereoRectificationGridGenerator.cxx    |  12 +-
 .../app/otbHaralickTextureExtraction.cxx           |   2 +-
 .../AppTextures/app/otbSFSTextureExtraction.cxx    |   2 +-
 .../app/otbRasterization.cxx                       |   2 +-
 .../AppVectorUtils/app/otbOSMDownloader.cxx        |   2 +-
 .../Core/Common/include/otbModelComponentBase.txx  |   2 +-
 .../otbSubsampledImageRegionConstIterator.h        |   2 +-
 Modules/Core/ImageBase/include/otbImage.h          |   2 +-
 .../Core/ImageBase/include/otbMetaImageFunction.h  |   2 +-
 .../ImageBase/include/otbMultiChannelExtractROI.h  |   2 +-
 .../include/otbMultiToMonoChannelExtractROI.h      |   2 +-
 .../ImageBase/include/otbRemoteSensingRegion.h     |   2 +-
 Modules/Core/ImageBase/include/otbVectorImage.h    |   2 +-
 .../LabelMap/include/otbAttributesMapLabelObject.h |   8 +-
 .../otbAttributesMapOpeningLabelMapFilter.h        |   2 +-
 .../otbBandsStatisticsAttributesLabelMapFilter.h   |   4 +-
 .../include/otbLabelMapToSampleListFilter.h        |   2 +-
 ...belMapWithClassLabelToLabeledSampleListFilter.h |   2 +-
 .../include/otbShapeAttributesLabelMapFilter.h     |   2 +-
 .../otbStatisticsAttributesLabelMapFilter.h        |   2 +-
 .../src/otbPleiadesImageMetadataInterface.cxx      |   2 +-
 Modules/Core/ObjectList/include/otbImageList.h     |   2 +-
 .../include/otbImageListToVectorImageFilter.h      |   2 +-
 .../include/otbPipelineMemoryPrintCalculator.h     |  10 +-
 .../include/otbStreamingImageVirtualWriter.h       |   2 +-
 .../Transform/include/otbGenericRSTransform.txx    |   2 +-
 .../include/otbImageToGenericRSOutputParameters.h  |   2 +-
 .../Core/Transform/include/otbSensorModelBase.h    |   2 +-
 .../include/otbVectorDataProperties.h              |   2 +-
 .../include/otbStandardMetaImageFunctionBuilder.h  |   2 +-
 .../include/otbRemoveWrongDirectionFilter.h        |   2 +-
 .../otbPersistentVectorizationImageFilter.h        |   8 +-
 .../otbPixelSuppressionByDirectionImageFilter.h    |   2 +-
 .../otbMultivariateAlterationDetectorImageFilter.h |   4 +-
 .../Convolution/include/otbGaborFilterGenerator.h  |   2 +-
 .../DEM/include/otbDEMToImageGenerator.txx         |   1 +
 .../otbEstimateInnerProductPCAImageFilter.h        |   2 +-
 .../otbMaximumAutocorrelationFactorImageFilter.h   |   4 +-
 .../DimensionalityReduction/otb-module.cmake       |   2 +-
 .../include/otbChangeInformationImageFilter.h      |   4 +-
 .../include/otbChangeLabelImageFilter.txx          |   1 +
 .../include/otbChangeNoDataValueFilter.h           |   2 +-
 .../include/otbPrintableImageFilter.h              |   2 +-
 .../otbSpectralAngleDistanceImageFilter.txx        |   2 +-
 .../otbStreamingInnerProductVectorImageFilter.h    |   2 +-
 .../otbStreamingMatrixTransposeMatrixImageFilter.h |   2 +-
 .../include/otbStreamingResampleImageFilter.h      |   6 +-
 .../include/otbStreamingShrinkImageFilter.txx      |   1 +
 .../ImageManipulation/include/otbTileImageFilter.h |   4 +-
 .../otbUnaryImageFunctorWithVectorImageFilter.txx  |   2 +-
 .../Path/include/otbImageToEdgePathFilter.txx      |   2 +-
 .../Polarimetry/include/otbPolarimetricData.h      |   2 +-
 .../include/otbGCPsToRPCSensorModelImageFilter.h   |   2 +-
 .../include/otbGenericRSResampleImageFilter.h      |   2 +-
 .../otbLeastSquareAffineTransformEstimator.h       |   2 +-
 .../otbPhysicalToRPCSensorModelImageFilter.h       |   2 +-
 .../include/otbVectorDataProjectionFilter.txx      |   2 +-
 .../test/otbGenericRSResampleImageFilter.cxx       |   2 +-
 .../include/otbMeanShiftSmoothingImageFilter.h     |   4 +-
 .../include/otbMeanShiftSmoothingImageFilter.txx   |   3 +-
 .../include/otbStreamingCompareImageFilter.h       |   4 +-
 .../otbStreamingHistogramVectorImageFilter.h       |   2 +-
 .../include/otbStreamingMinMaxImageFilter.h        |   2 +-
 .../include/otbStreamingMinMaxVectorImageFilter.h  |   2 +-
 .../include/otbStreamingStatisticsImageFilter.h    |   2 +-
 ...otbStreamingStatisticsMapFromLabelImageFilter.h |   2 +-
 .../otbStreamingStatisticsVectorImageFilter.h      |   2 +-
 .../include/otbVectorImageToMatrixImageFilter.h    |   2 +-
 .../Wavelet/include/otbWaveletFilterBank.h         |   4 +-
 .../Wavelet/include/otbWaveletPacketTransform.h    |   2 +-
 .../Wavelet/include/otbWaveletTransform.h          |   2 +-
 Modules/IO/Carto/include/otbMapFileProductWriter.h |   2 +-
 Modules/IO/Carto/include/otbWorldFile.h            |   2 +-
 .../Carto/src/otbOSMDataToVectorDataGenerator.cxx  |   2 +-
 .../include/otbExtendedFilenameToReaderOptions.h   |   4 +-
 Modules/IO/IOBSQ/include/otbBSQImageIO.h           |   2 +-
 Modules/IO/IOBSQ/src/otbBSQImageIO.cxx             |  12 +-
 Modules/IO/IOGDAL/src/otbGDALImageIO.cxx           |  13 +-
 .../test/otbGDALImageIOTestWriteMetadata.cxx       |   4 +-
 Modules/IO/IOGDAL/test/otbGDALReadPxlComplex.cxx   |   4 +-
 .../IO/IOGDAL/test/otbMultiDatasetReadingInfo.cxx  |   2 +-
 Modules/IO/IOLUM/include/otbLUMImageIO.h           |   2 +-
 Modules/IO/IOLUM/src/otbLUMImageIO.cxx             |   8 +-
 Modules/IO/IOMW/include/otbMWImageIO.h             |   2 +-
 Modules/IO/IOMW/src/otbMWImageIO.cxx               |   6 +-
 Modules/IO/IORAD/include/otbRADImageIO.h           |   2 +-
 Modules/IO/IORAD/src/otbRADImageIO.cxx             |   8 +-
 Modules/IO/IOTileMap/src/otbTileMapImageIO.cxx     |   2 +-
 Modules/IO/ImageIO/include/otbImageFileReader.h    |   2 +-
 Modules/IO/ImageIO/include/otbImageFileWriter.h    |   2 +-
 Modules/IO/ImageIO/include/otbImageFileWriter.txx  |   2 +-
 .../IO/ImageIO/include/otbImageSeriesFileReader.h  |   8 +-
 .../ImageIO/include/otbImageSeriesFileReaderBase.h |   2 +-
 .../ImageIO/test/otbMultiResolutionReadingInfo.cxx |   2 +-
 Modules/IO/KMZWriter/include/otbKmzProductWriter.h |   2 +-
 .../IO/KMZWriter/include/otbKmzProductWriter.txx   |   2 +-
 .../otbDSFusionOfClassifiersImageFilter.txx        |   2 +-
 .../DempsterShafer/include/otbMassOfBelief.h       |  14 +--
 .../otbVectorDataToDSValidatedVectorDataFilter.txx |   2 +
 .../LearningBase/include/otbDecisionTree.h         |   2 +-
 Modules/Learning/SOM/include/otbPeriodicSOM.h      |   2 +-
 Modules/Learning/SOM/include/otbPeriodicSOM.txx    |   2 +-
 Modules/Learning/SOM/include/otbSOM.h              |   2 +-
 Modules/Learning/SOM/include/otbSOMMap.h           |   2 +-
 .../Learning/SOM/include/otbSOMWithMissingValue.h  |   2 +-
 .../SOM/include/otbSOMWithMissingValue.txx         |   2 +-
 .../include/otbSVMCrossValidationCostFunction.h    |   2 +-
 .../otbSVMImageClassificationWithRuleFilter.h      |   2 +-
 .../include/otbConfusionMatrixCalculator.txx       |   6 +-
 .../include/otbDecisionTreeMachineLearningModel.h  |   2 +-
 .../otbGradientBoostedTreeMachineLearningModel.h   |   2 +-
 Modules/OBIA/RCC8/include/otbRCC8GraphFileReader.h |   6 +-
 .../OBIA/RCC8/include/otbRCC8GraphFileReader.txx   |   4 +-
 .../include/otbAeronetFileReader.h                 |   2 +-
 .../include/otbAtmosphericCorrectionParameters.h   |   2 +-
 ...bSurfaceAdjacencyEffectCorrectionSchemeFilter.h |   2 +-
 .../src/otbAeronetFileReader.cxx                   |   2 +-
 .../Simulation/include/otbSpectralResponse.txx     |   2 +-
 .../include/otbDisparityMapTo3DFilter.h            |   2 +-
 .../include/otbDisparityMapToDEMFilter.h           |   2 +-
 .../include/otbFineRegistrationImageFilter.h       |   4 +-
 .../include/otbMultiDisparityMapTo3DFilter.h       |   2 +-
 .../include/otbPixelWiseBlockMatchingImageFilter.h |   2 +-
 .../test/otbDisparityMapToDEMFilter.cxx            |   2 +-
 .../Stereo/include/otbMulti3DMapToDEMFilter.h      |   2 +-
 .../otbStereoSensorModelToElevationMapFilter.h     |  14 +--
 ...otbStereorectificationDisplacementFieldSource.h |  12 +-
 Modules/Remote/SertitObject.remote.cmake           |   9 +-
 Modules/Remote/otbGRM.remote.cmake                 |   2 +-
 .../include/otbLabelImageRegionMergingFilter.txx   |   3 +-
 .../include/otbLabelImageRegionPruningFilter.txx   |   1 +
 .../include/otbOGRDataSourceToLabelImageFilter.h   |   2 +-
 .../include/otbVectorDataToLabelImageFilter.h      |   2 +-
 .../include/otbMorphologicalClosingProfileFilter.h |   2 +-
 .../include/otbMorphologicalOpeningProfileFilter.h |   2 +-
 .../otbMorphologicalProfilesSegmentationFilter.h   |   8 +-
 .../otbMorphologicalProfilesSegmentationFilter.txx |  13 +-
 ...leDerivativeToMultiScaleCharacteristicsFilter.h |   2 +-
 .../include/otbOGRLayerStreamStitchingFilter.h     |   4 +-
 .../include/otbWatershedSegmentationFilter.h       |   2 +-
 Modules/ThirdParty/GDAL/otb-module-init.cmake      |  56 ++++-----
 Modules/ThirdParty/ITK/CMakeLists.txt              |   2 +-
 .../src/otbWrapperComplexInputImageParameter.cxx   |   2 +-
 .../src/otbWrapperDocExampleStructure.cxx          |   2 +-
 .../src/otbWrapperElevationParametersHandler.cxx   |   6 +-
 .../src/otbWrapperInputImageListParameter.cxx      |   2 +-
 .../src/otbWrapperInputImageParameter.cxx          |   2 +-
 .../src/otbWrapperInputVectorDataListParameter.cxx |   2 +-
 .../src/otbWrapperInputVectorDataParameter.cxx     |   2 +-
 .../otbWrapperMapProjectionParametersHandler.cxx   |   4 +-
 Modules/Wrappers/CommandLine/src/CMakeLists.txt    |  10 +-
 .../src/otbWrapperCommandLineParser.cxx            |   2 +-
 .../otbWrapperQtWidgetInputFilenameListParameter.h |   2 +-
 .../otbWrapperQtWidgetInputImageListParameter.h    |   2 +-
 ...tbWrapperQtWidgetInputVectorDataListParameter.h |   2 +-
 .../otbWrapperQtWidgetStringListParameter.h        |   2 +-
 Modules/Wrappers/QtWidget/src/CMakeLists.txt       |  10 +-
 ...tbWrapperQtWidgetInputFilenameListParameter.cxx |   8 +-
 .../otbWrapperQtWidgetInputImageListParameter.cxx  |   8 +-
 ...WrapperQtWidgetInputVectorDataListParameter.cxx |   8 +-
 .../src/otbWrapperQtWidgetStringListParameter.cxx  |   8 +-
 Modules/Wrappers/SWIG/src/numpy.i                  |   2 +-
 RELEASE_NOTES.txt                                  | 134 ++++++++++++---------
 Utilities/Doxygen/OTB/ImageSimilarityMetrics.dox   |   2 +-
 Utilities/Doxygen/OTB/Iterators.dox                |  77 ++++++------
 Utilities/Doxygen/OTB/Modules.dox                  |   9 +-
 Utilities/Doxygen/OTB/Registration.dox             |   4 +-
 246 files changed, 695 insertions(+), 647 deletions(-)

diff --git a/CMake/FindOssim.cmake b/CMake/FindOssim.cmake
index 5c431b3..cd28faf 100644
--- a/CMake/FindOssim.cmake
+++ b/CMake/FindOssim.cmake
@@ -14,6 +14,7 @@ endif()
 find_path( OSSIM_INCLUDE_DIR
            NAMES ossim/init/ossimInit.h )
 
+# Version checking
 if(EXISTS "${OSSIM_INCLUDE_DIR}/ossim/ossimVersion.h")
   file(READ "${OSSIM_INCLUDE_DIR}/ossim/ossimVersion.h" _ossim_version_h_CONTENTS)
   string(REGEX REPLACE ".*# *define OSSIM_VERSION *\"([0-9.]+)\".*" "\\1" OSSIM_VERSION "${_ossim_version_h_CONTENTS}")
@@ -22,26 +23,27 @@ if(EXISTS "${OSSIM_INCLUDE_DIR}/ossim/ossimVersion.h")
   string(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\3" OSSIM_PATCH_VERSION_NUMBER "${OSSIM_VERSION}")
   math(EXPR OSSIM_VERSION_NUMBER
     "((${OSSIM_MAJOR_VERSION_NUMBER})*100+${OSSIM_MINOR_VERSION_NUMBER})*100+${OSSIM_PATCH_VERSION_NUMBER}")
-else()
-  if(NOT Ossim_FIND_QUIETLY)
-  message(WARNING "ossimVersion.h not found !")
-  endif()
-endif()
-
-# Parse a certain header to check if SVN revision is 23537
-if(EXISTS "${OSSIM_INCLUDE_DIR}/ossim/imaging/ossimImageRenderer.h")
-  file(STRINGS "${OSSIM_INCLUDE_DIR}/ossim/imaging/ossimImageRenderer.h" _ossim_image_renderer_h_CONTENTS REGEX "^// \\$Id: ossimImageRenderer\\.h [0-9.]+ ")
-  string(REGEX REPLACE ".*ossimImageRenderer\\.h ([0-9.]+) .*" "\\1" _ossim_svn_revision_hint "${_ossim_image_renderer_h_CONTENTS}")
-  if(NOT "${_ossim_svn_revision_hint}" STREQUAL "23537")
-    message(WARNING "The OSSIM version found doesn't correspond to SVN revision 23537 (the recommended revision for OTB)."
-                      "There are known issues with version 1.8.16 (bugs in Sentinel1 "
-                      "calibration) and with official archive 1.8.20-1 (RpcModel returns "
-                      "nans outside the image extent)")
+  if("${OSSIM_VERSION}" VERSION_LESS "1.8.20")
+    message(WARNING "The OSSIM include directory detected by OTB is: '${OSSIM_INCLUDE_DIR}'."
+      "This version (${OSSIM_VERSION}) is not fully compatible with OTB."
+      "Please consider updating your Ossim to version 1.8.20-3 or above")
+  else()
+    if("${OSSIM_VERSION}" VERSION_EQUAL "1.8.20")
+      # special case to detect versions 1.8.20-1 and 1.8.20-2
+      if(EXISTS "${OSSIM_INCLUDE_DIR}/ossim/projection/ossimRpcProjection.h")
+        file(STRINGS "${OSSIM_INCLUDE_DIR}/ossim/projection/ossimRpcProjection.h" _ossim_rpc_proj_h_CONTENTS REGEX "^// \\$Id: ossimRpcProjection\\.h [0-9.]+ ")
+        string(REGEX REPLACE ".*ossimRpcProjection\\.h ([0-9.]+) .*" "\\1" _ossim_svn_revision_hint "${_ossim_rpc_proj_h_CONTENTS}")
+        if("${_ossim_svn_revision_hint}" LESS "23666")
+          message(WARNING "The OSSIM include directory detected by OTB is: '${OSSIM_INCLUDE_DIR}'."
+            "This version (${OSSIM_VERSION}, rev < r23666) is not fully compatible with OTB."
+            "Please consider updating your Ossim to version 1.8.20-3 or above")
+        endif()
+      endif()
+    endif()
   endif()
-  #message(STATUS "OSSIM SVN rev. hint : ${_ossim_svn_revision_hint}")
 else()
   if(NOT Ossim_FIND_QUIETLY)
-    message(WARNING "ossimImageRenderer.h not found !")
+    message(WARNING "ossimVersion.h not found !")
   endif()
 endif()
 
@@ -55,5 +57,5 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS( Ossim DEFAULT_MSG OSSIM_LIBRARY OSSIM_INCLUDE
 
 mark_as_advanced( OSSIM_INCLUDE_DIR OSSIM_LIBRARY )
 
-set(OSSIM_LIBRARIES ${OSSIM_LIBRARY})
+set(OSSIM_LIBRARIES "${OSSIM_LIBRARY};${OPENTHREADS_LIBRARY}")
 set(OSSIM_INCLUDE_DIRS ${OSSIM_INCLUDE_DIR})
diff --git a/CMake/MinGWPackage.cmake b/CMake/MinGWPackage.cmake
index ab4d361..0baac2d 100644
--- a/CMake/MinGWPackage.cmake
+++ b/CMake/MinGWPackage.cmake
@@ -15,6 +15,8 @@ macro(package_mingw)
     set(MXE_OBJDUMP "${PACKAGE_MXEROOT}/usr/bin/x86_64-w64-mingw32.shared-objdump")
   endif()
 
+  file(GLOB MXE_GCC_LIB_DIR "${MXE_BIN_DIR}/gcc*")
+  list(APPEND PACKAGE_SEARCHDIRS ${MXE_GCC_LIB_DIR})
   list(APPEND PACKAGE_SEARCHDIRS ${MXE_BIN_DIR})
   list(APPEND PACKAGE_SEARCHDIRS "${MXE_BIN_DIR}/../qt/bin") #Qt
   list(APPEND PACKAGE_SEARCHDIRS "${MXE_BIN_DIR}/../qt/lib") #Qwt
@@ -42,39 +44,35 @@ macro(package_mingw)
 
 endmacro(package_mingw)
 
-SET(SYSTEM_DLLS
+set(SYSTEM_DLLS
   msvc.*dll
-  USER32.dll
-  GDI32.dll
-  SHELL32.DLL
-  KERNEL32.dll
-  ADVAPI32.dll
-  CRYPT32.dll
-  WS2_32.dll
+  user32.dll
+  gdi32.dll
+  shell32.dll
+  kernel32.dll
+  advapi32.dll
+  crypt32.dll
+  ws2_32.dll
   wldap32.dll
   ole32.dll
-  OPENGL32.DLL
-  GLU32.DLL
-  COMDLG32.DLL
-  IMM32.DLL
-  OLEAUT32.dll
-  COMCTL32.DLL
-  WINMM.DLL
-
-  SHELL32.dll
-  WLDAP32.dll
-  OPENGL32.dll
-  GLU32.dll
+  opengl32.dll
+  glu32.dll
   comdlg32.dll
-  IMM32.dll
-  WINMM.dll
-  WINSPOOL.DRV)
-
-## http://www.cmake.org/Wiki/CMakeMacroListOperations
-macro(IS_SYSTEM_DLL matched value)
+  imm32.dll
+  oleaut32.dll
+  comctl32.dll
+  winmm.dll
+  shfolder.dll
+  secur32.dll
+  wsock32.dll
+  winspool.drv)
+
+macro(is_system_dll matched value)
   set(${matched})
+  string(TOLOWER ${value} value_)
   foreach (pattern ${SYSTEM_DLLS})
-    if(${value} MATCHES ${pattern})
+    string(TOLOWER ${pattern} pattern_)
+    if(${value_} MATCHES ${pattern_})
       set(${matched} TRUE)
     endif()
   endforeach()
@@ -90,9 +88,7 @@ macro(list_contains var value)
 endmacro()
 
 function(process_deps infile)
-
   get_filename_component(bn ${infile} NAME)
-
   list_contains(contains "${bn}" "${alldlls}")
   if(NOT contains)
     set(DLL_FOUND FALSE)
@@ -100,14 +96,20 @@ function(process_deps infile)
       if(NOT DLL_FOUND)
         if(EXISTS ${SEARCHDIR}/${infile})
           set(DLL_FOUND TRUE)
-
+        else()
+          string(TOLOWER ${infile} infile_lower)
+          if(EXISTS ${SEARCHDIR}/${infile_lower})
+            set(DLL_FOUND TRUE)
+            set(infile ${infile_lower})
+          endif()
+        endif()
+        if(DLL_FOUND)
           message(STATUS "Processing ${SEARCHDIR}/${infile}")
           if(NOT "${infile}" MATCHES "otbapp")
-            install(
-              FILES "${SEARCHDIR}/${infile}"
+            install(FILES "${SEARCHDIR}/${infile}"
               DESTINATION ${PACKAGE_PREFIX_DIR}/bin)
           else()
-
+            ##message(STATUS "skipping..${infile}")
           endif()
           if(NOT EXISTS ${MXE_OBJDUMP})
             message(FATAL_ERROR "objdump executable not found. please check MXE_OBJDUMP is set to correct cross compiled executable")
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e9c7cf3..822bd12 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -67,7 +67,7 @@ set(main_project_name ${_OTBModuleMacros_DEFAULT_LABEL})
 # OTB version number.
 set(OTB_VERSION_MAJOR "5")
 set(OTB_VERSION_MINOR "2")
-set(OTB_VERSION_PATCH "0")
+set(OTB_VERSION_PATCH "1")
 set(OTB_VERSION_STRING "${OTB_VERSION_MAJOR}.${OTB_VERSION_MINOR}.${OTB_VERSION_PATCH}")
 
 if(NOT OTB_INSTALL_RUNTIME_DIR)
diff --git a/Copyright/ITKCopyright.txt b/Copyright/ITKCopyright.txt
index 227a578..97f8889 100644
--- a/Copyright/ITKCopyright.txt
+++ b/Copyright/ITKCopyright.txt
@@ -17,7 +17,7 @@ of Health. ITK is partially derived from VTK and VXL, hence some code is
 copyrighted accordingly (see VTKCopyright.txt and VXLCopyright.txt).
 
 The copyright of most of the files in the "Utilities" subdirectory is held by
-third parties who allow to distribute this material under a license compatible
+third parties who allow distributing this material under a license compatible
 with the one used by ITK. Please read the content of the subdirectories for
 specific details on those third-party licenses. You will also find details in
 the README.txt file under the "Copyright" subdirectory.
diff --git a/Examples/BasicFilters/BandMathFilterExample.cxx b/Examples/BasicFilters/BandMathFilterExample.cxx
index 07d7a8d..e21f7dd 100644
--- a/Examples/BasicFilters/BandMathFilterExample.cxx
+++ b/Examples/BasicFilters/BandMathFilterExample.cxx
@@ -151,7 +151,7 @@ int main( int argc, char* argv[])
 //
 //  Now we can define the mathematical expression to perform on the layers (b1, b2, b3, b4).
 //  The filter takes advantage of the parsing capabilities of the muParser library and
-//  allows to set the expression as on a digital calculator.
+//  allows setting the expression as on a digital calculator.
 //
 //  The expression below returns 255 if the ratio $(NIR-RED)/(NIR+RED)$ is greater than 0.4 and 0 if not.
 //
diff --git a/Examples/ChangeDetection/ChangeDetectionFrameworkExample.cxx b/Examples/ChangeDetection/ChangeDetectionFrameworkExample.cxx
index 1f595b5..778497b 100644
--- a/Examples/ChangeDetection/ChangeDetectionFrameworkExample.cxx
+++ b/Examples/ChangeDetection/ChangeDetectionFrameworkExample.cxx
@@ -51,7 +51,7 @@
 // something accepting the syntax \code{foo()}. This can be
 // implemented using classical C/C++ functions, but it is preferable
 // to implement it using C++ functors. These are classical C++ classes
-// which overload the \code{()} operator. This allows to use them with
+// which overload the \code{()} operator. This allows using them with
 // the same syntax as C/C++ functions.
 //
 // Since change detectors operate on neighborhoods, the functor
diff --git a/Examples/ChangeDetection/MultivariateAlterationDetector.cxx b/Examples/ChangeDetection/MultivariateAlterationDetector.cxx
index dd855be..661ac40 100644
--- a/Examples/ChangeDetection/MultivariateAlterationDetector.cxx
+++ b/Examples/ChangeDetection/MultivariateAlterationDetector.cxx
@@ -32,8 +32,8 @@
 // This example illustrates the class
 // \doxygen{otb}{MultivariateAlterationChangeDetectorImageFilter},
 // which implements the Multivariate Alteration Change Detector
-// algorithm \cite{nielsen2007regularized}. This algorihtm allows to
-// perform change detection from a pair multi-band images, including
+// algorithm \cite{nielsen2007regularized}. This algorihtm allows
+// performing change detection from a pair multi-band images, including
 // images with different number of bands or modalities. Its output is
 // a a multi-band image of change maps, each one being unccorrelated
 // with the remaining. The number of bands of the output image is the
diff --git a/Examples/DataRepresentation/Image/ImageListExample.cxx b/Examples/DataRepresentation/Image/ImageListExample.cxx
index 18a4576..f956198 100644
--- a/Examples/DataRepresentation/Image/ImageListExample.cxx
+++ b/Examples/DataRepresentation/Image/ImageListExample.cxx
@@ -135,8 +135,8 @@ int main(int itkNotUsed(argc), char * argv[])
 //
 // Other useful methods are:
 // \begin{itemize}
-// \item \code{SetNthElement()} and \code{GetNthElement()} allow to
-// randomly access any element of the list.
+// \item \code{SetNthElement()} and \code{GetNthElement()} allow
+// randomly accessing any element of the list.
 // \item \code{Front()} to access to the first element of the list.
 // \item \code{Erase()} to remove an element.
 // \end{itemize}
diff --git a/Examples/DataRepresentation/Image/VectorImage.cxx b/Examples/DataRepresentation/Image/VectorImage.cxx
index aa01b34..0ec9144 100644
--- a/Examples/DataRepresentation/Image/VectorImage.cxx
+++ b/Examples/DataRepresentation/Image/VectorImage.cxx
@@ -40,7 +40,7 @@
 // However, the \doxygen{itk}{Vector} is a fixed size array and it
 // assumes that the number of channels of the image is known at
 // compile time. Therefore, we prefer to use the
-// \doxygen{otb}{VectorImage} class which allows to choose the number
+// \doxygen{otb}{VectorImage} class which allows choosing the number
 // of channels of the image at runtime. The pixels will be of type
 // \doxygen{itk}{VariableLengthVector}.
 //
@@ -91,7 +91,7 @@ int main(int, char *[])
   image->SetRegions(region);
 
   // Software Guide : BeginLatex
-  // Since the pixel dimensionality is choosen at runtime, one has to
+  // Since the pixel dimensionality is chosen at runtime, one has to
   // pass this parameter to the image before memory allocation.
   // Software Guide : EndLatex
 
diff --git a/Examples/DataRepresentation/Mesh/PointSetWithVectors.cxx b/Examples/DataRepresentation/Mesh/PointSetWithVectors.cxx
index f0641b0..19ab442 100644
--- a/Examples/DataRepresentation/Mesh/PointSetWithVectors.cxx
+++ b/Examples/DataRepresentation/Mesh/PointSetWithVectors.cxx
@@ -25,7 +25,7 @@
 //  This example illustrates how a point set can be parameterized to manage a
 //  particular pixel type. It is quite common to associate vector values with
 //  points for producing geometric representations or storing
-//  multi-band informations.  The following code shows
+//  multi-band information. The following code shows
 //  how vector values can be used as pixel type on the PointSet class.  The
 //  \doxygen{itk}{Vector} class is used here as the pixel type. This class is
 //  appropriate for representing the relative position between two points. It
diff --git a/Examples/FeatureExtraction/AlignmentsExample.cxx b/Examples/FeatureExtraction/AlignmentsExample.cxx
index 252666c..36bfffb 100644
--- a/Examples/FeatureExtraction/AlignmentsExample.cxx
+++ b/Examples/FeatureExtraction/AlignmentsExample.cxx
@@ -26,7 +26,7 @@
 // Software Guide : BeginLatex
 //
 // This example illustrates the use of the \doxygen{otb}{ImageToPathListAlignFilter}.
-// This filter allows to extract meaninful alignments. Alignments
+// This filter allows extracting meaninful alignments. Alignments
 // (that is edges and lines) are detected using the {\em Gestalt}
 // approach proposed by Desolneux et al. \cite{desolneux}. In this
 // context, an event is
diff --git a/Examples/FeatureExtraction/AssymmetricFusionOfLineDetectorExample.cxx b/Examples/FeatureExtraction/AssymmetricFusionOfLineDetectorExample.cxx
index d448324..8783b68 100644
--- a/Examples/FeatureExtraction/AssymmetricFusionOfLineDetectorExample.cxx
+++ b/Examples/FeatureExtraction/AssymmetricFusionOfLineDetectorExample.cxx
@@ -180,7 +180,7 @@ int main(int argc, char * argv[])
   //  Software Guide : BeginLatex
   //
   //  The methods \code{SetLengthLine()} and \code{SetWidthLine()}
-  //  allow to set the minimum length and the typical witdh of the
+  //  allow setting the minimum length and the typical witdh of the
   //  lines which are to be detected.
   //
   //  \index{otb::AssymetricFusionOfDetector!SetWidthLine()}
diff --git a/Examples/FeatureExtraction/CorrelationLineDetectorExample.cxx b/Examples/FeatureExtraction/CorrelationLineDetectorExample.cxx
index c6bcfba..2c13167 100644
--- a/Examples/FeatureExtraction/CorrelationLineDetectorExample.cxx
+++ b/Examples/FeatureExtraction/CorrelationLineDetectorExample.cxx
@@ -185,7 +185,7 @@ int main(int argc, char * argv[])
   //  Software Guide : BeginLatex
   //
   //  The methods \code{SetLengthLine()} and \code{SetWidthLine()}
-  //  allow to set the minimum length and the typical witdh of the
+  //  allow setting the minimum length and the typical witdh of the
   //  lines which are to be detected.
   //
   //  \index{otb::LineCorrelationDetector!SetWidthLine()}
diff --git a/Examples/FeatureExtraction/ExtractSegmentsByStepsExample.cxx b/Examples/FeatureExtraction/ExtractSegmentsByStepsExample.cxx
index bd2df95..ec7dab5 100644
--- a/Examples/FeatureExtraction/ExtractSegmentsByStepsExample.cxx
+++ b/Examples/FeatureExtraction/ExtractSegmentsByStepsExample.cxx
@@ -194,7 +194,7 @@ int main(int argc, char * argv[])
   //  Software Guide : BeginLatex
   //
   //  The methods \code{SetLengthLine()} and \code{SetWidthLine()}
-  //  allow to set the minimum length and the typical witdh of the
+  //  allow setting the minimum length and the typical witdh of the
   //  lines which are to be detected.
   //
   //
diff --git a/Examples/FeatureExtraction/ExtractSegmentsExample.cxx b/Examples/FeatureExtraction/ExtractSegmentsExample.cxx
index 542679b..d23bcba 100644
--- a/Examples/FeatureExtraction/ExtractSegmentsExample.cxx
+++ b/Examples/FeatureExtraction/ExtractSegmentsExample.cxx
@@ -191,7 +191,7 @@ int main(int argc, char * argv[])
   //  Software Guide : BeginLatex
   //
   //  The methods \code{SetLengthLine()} and \code{SetWidthLine()}
-  //  allow to set the minimum length and the typical witdh of the
+  //  allow setting the minimum length and the typical witdh of the
   //  lines which are to be detected.
   //
   //
diff --git a/Examples/FeatureExtraction/RatioLineDetectorExample.cxx b/Examples/FeatureExtraction/RatioLineDetectorExample.cxx
index 6acf079..c764a15 100644
--- a/Examples/FeatureExtraction/RatioLineDetectorExample.cxx
+++ b/Examples/FeatureExtraction/RatioLineDetectorExample.cxx
@@ -184,7 +184,7 @@ int main(int argc, char * argv[])
   //  Software Guide : BeginLatex
   //
   //  The methods \code{SetLengthLine()} and \code{SetWidthLine()}
-  //  allow to set the minimum length and the typical witdh of the
+  //  allow setting the minimum length and the typical witdh of the
   //  lines which are to be detected.
   //
   //  \index{otb::LineRatioDetector!SetWidthLine()}
diff --git a/Examples/Filtering/RasterizationExample.cxx b/Examples/Filtering/RasterizationExample.cxx
index a39a09e..9d5b8cf 100644
--- a/Examples/Filtering/RasterizationExample.cxx
+++ b/Examples/Filtering/RasterizationExample.cxx
@@ -24,7 +24,7 @@
 
 // Software Guide : BeginLatex
 //
-// The \doxygen{otb}{VectorDataToMapFilter} allows to perform
+// The \doxygen{otb}{VectorDataToMapFilter} allows performing
 // rasterization of a given vector data as a binary mask. This example
 // will demonstrate how to use this filter to perform rasterization of
 // the SRTM water body masks available here:
diff --git a/Examples/IO/DEMHandlerExample.cxx b/Examples/IO/DEMHandlerExample.cxx
index 34d2fe5..f3fbdca 100644
--- a/Examples/IO/DEMHandlerExample.cxx
+++ b/Examples/IO/DEMHandlerExample.cxx
@@ -68,9 +68,9 @@ if(argc!=8)
 
 // Software Guide : BeginLatex
 //
-// It allows to configure a directory containing DEM tiles (DTED or SRTM
+// It allows configuring a directory containing DEM tiles (DTED or SRTM
 // supported) using the \code{OpenDEMDirectory()} method. The \code{OpenGeoidFile()} method
-// allows to input a geoid file as well. Last, a default height above ellipsoid
+// allows inputting a geoid file as well. Last, a default height above ellipsoid
 // can be set using the \code{SetDefaultHeightAboveEllipsoid()} method.
 //
 // Software Guide : EndLatex
diff --git a/Examples/IO/HDFReaderExample.cxx b/Examples/IO/HDFReaderExample.cxx
index 652d890..f1bc0c6 100644
--- a/Examples/IO/HDFReaderExample.cxx
+++ b/Examples/IO/HDFReaderExample.cxx
@@ -36,7 +36,7 @@
 // OTB is using GDAL to support HDF. HDF4 and HDF5 supports in Gdal is
 // not activated by default. You need to download the HDF run-time
 // libraries and compile Gdal by adding the support of these formats. You can
-// find more informations here : \url{http://trac.osgeo.org/gdal/wiki/HDF}
+// find more information here : \url{http://trac.osgeo.org/gdal/wiki/HDF}
 //
 //
 // The first step toward the use of these filters is to include the proper header files.
@@ -87,9 +87,9 @@ int main(int itkNotUsed(argc), char * argv[])
 
 // Software Guide : BeginLatex
 //
-// You can access to subdatasets' informations available in the HDF file using
+// You can access to subdatasets' information available in the HDF file using
 // the \code{GetSubDatasetInfo} method of \doxygen{otb}{GDALImageIO}.
-// It allows to store HDF subdatasets names and descriptions in vector of string.
+// It allows storing HDF subdatasets names and descriptions in vector of string.
 // You can find below how to print the name and the decription
 // of all the subdatasets.
 //
diff --git a/Examples/IO/ImageReadRegionOfInterestWrite.cxx b/Examples/IO/ImageReadRegionOfInterestWrite.cxx
index 72afcfa..d089554 100644
--- a/Examples/IO/ImageReadRegionOfInterestWrite.cxx
+++ b/Examples/IO/ImageReadRegionOfInterestWrite.cxx
@@ -93,8 +93,8 @@ int main(int argc, char * argv[])
   //
   //  The ExtractROI type is instantiated using
   //  the input and output pixel types. Using the pixel types as
-  //  template parameters instead of the image types allows to
-  //  restrict the use of this class to \doxygen{otb}{Image}s which
+  //  template parameters instead of the image types allows
+  //  restricting the use of this class to \doxygen{otb}{Image}s which
   //  are used with scalar pixel types. See section
   //  \ref{sec:ExtractROI} for the extraction of ROIs on
   //  \doxygen{otb}{VectorImage}s. A filter object is created with the
diff --git a/Examples/IO/ImageToKmzAndMapFileProductExample.cxx b/Examples/IO/ImageToKmzAndMapFileProductExample.cxx
index a088e1a..d343441 100644
--- a/Examples/IO/ImageToKmzAndMapFileProductExample.cxx
+++ b/Examples/IO/ImageToKmzAndMapFileProductExample.cxx
@@ -30,7 +30,7 @@
 // and MapFile products.
 // Note that the \doxygen{otb}{KmzProductWriter} and the
 // \doxygen{otb}{MapFileProductWriter} can only process inputs with a
-// non empty geographical informations.
+// non empty geographical information.
 //
 // The first step toward the use of these filters is to include the
 // proper header files: the one for the rpc sensor estimation filter and
@@ -113,7 +113,7 @@ int main(int argc, char* argv[])
 // or its keywordlist is updated. In general, a dozen of GCPs are
 // needed to estimate an accurate sensor model. The points are added
 // via the method AddGCP(PointType2D, PointType3D). The outpput image
-// obtained have the needed meta-data informations for the rest of the
+// obtained have the needed meta-data information for the rest of the
 // process.
 //
 // Software Guide : EndLatex
diff --git a/Examples/Learning/TrainMachineLearningModelFromImagesExample.cxx b/Examples/Learning/TrainMachineLearningModelFromImagesExample.cxx
index 7392cfd..6e0e809 100644
--- a/Examples/Learning/TrainMachineLearningModelFromImagesExample.cxx
+++ b/Examples/Learning/TrainMachineLearningModelFromImagesExample.cxx
@@ -178,7 +178,7 @@ int main(int itkNotUsed(argc), char* argv[])
 // \subdoxygen{itk}{Statistics}{ListSample} as input and estimates the label of each
 // input sample using the model. Finally, the
 // \doxygen{otb}{ImageClassificationModel} inherits from the
-// \doxygen{itk}{ImageToImageFilter} and allows to classify pixels in the
+// \doxygen{itk}{ImageToImageFilter} and allows classifying pixels in the
 // input image by predicting their labels using a model.
 //
 // Software Guide : EndLatex
diff --git a/Examples/OBIA/HooverMetricsEstimation.cxx b/Examples/OBIA/HooverMetricsEstimation.cxx
index 019d7f8..179eda0 100644
--- a/Examples/OBIA/HooverMetricsEstimation.cxx
+++ b/Examples/OBIA/HooverMetricsEstimation.cxx
@@ -78,7 +78,7 @@ int main(int argc, char* argv[])
   // Software Guide : BeginLatex
   // The filters \doxygen{otb}{HooverMatrixFilter} and \doxygen{otb}{HooverInstanceFilter}
   // are designed to handle \doxygen{itk}{LabelMap} images, made with \doxygen{otb}{AttributesMapLabelObject}.
-  // This type of label object allows to store generic attributes. Each region can store
+  // This type of label object allows storing generic attributes. Each region can store
   // a set of attributes: in this case, Hoover instances and metrics will be stored.
   // Software Guide : EndLatex
 
diff --git a/Examples/Projections/GeometriesProjectionExample.cxx b/Examples/Projections/GeometriesProjectionExample.cxx
index ba930b3..0ce53d6 100644
--- a/Examples/Projections/GeometriesProjectionExample.cxx
+++ b/Examples/Projections/GeometriesProjectionExample.cxx
@@ -140,7 +140,7 @@ int main(int argc, char* argv[])
   // not stored in a file nor a data base.
   //
   // Then, the processing is started by calling \code{Update()}. The actual
-  // serialization of the results is guaranteed to be completed when the ouput
+  // serialization of the results is guaranteed to be completed when the output
   // geometries set object goes out of scope, or when \code{SyncToDisk} is
   // called.
   //
diff --git a/Examples/Radiometry/AtmosphericCorrectionSequencement.cxx b/Examples/Radiometry/AtmosphericCorrectionSequencement.cxx
index 8eccb45..98a1837 100644
--- a/Examples/Radiometry/AtmosphericCorrectionSequencement.cxx
+++ b/Examples/Radiometry/AtmosphericCorrectionSequencement.cxx
@@ -302,7 +302,7 @@ int main(int argc, char *argv[])
 // These {\em containers} will be given to the static function \texttt{Compute}
 // from \doxygen{otb}{RadiometryCorrectionParametersToAtmosphericRadiativeTerms}
 // class, which will call a 6S routine that will compute the needed
-// radiometric informations and store them in a
+// radiometric information and store them in a
 // \doxygen{otb}{AtmosphericRadiativeTerms} class instance.
 // For this,
 // \doxygen{otb}{RadiometryCorrectionParametersToAtmosphericRadiativeTerms},
@@ -461,7 +461,7 @@ int main(int argc, char *argv[])
   // Software Guide : BeginLatex
   //
   // Once those parameters are loaded, they are used by the 6S library
-  // to compute the needed radiometric informations. The
+  // to compute the needed radiometric information. The
   // RadiometryCorrectionParametersToAtmosphericRadiativeTerms class
   // provides a static function to perform this step\footnote{Before version
   // 4.2, it was done with the filter
@@ -548,7 +548,7 @@ int main(int argc, char *argv[])
 // Next (and last step) is the neighborhood correction.
 // For this, the SurfaceAdjacencyEffectCorrectionSchemeFilter class is used.
 // The previous surface reflectance inversion is performed under the assumption of a
-// homogeneous ground environment. The following step allows to correct the adjacency
+// homogeneous ground environment. The following step allows correcting the adjacency
 // effect on the radiometry of pixels. The method is based on the decomposition of
 // the observed signal as the summation of the own contribution of the target pixel and
 // of the contributions of neighbored pixels moderated by their distance to the target pixel.
diff --git a/Examples/Segmentation/VectorConfidenceConnected.cxx b/Examples/Segmentation/VectorConfidenceConnected.cxx
index 2369957..d4b8827 100644
--- a/Examples/Segmentation/VectorConfidenceConnected.cxx
+++ b/Examples/Segmentation/VectorConfidenceConnected.cxx
@@ -294,7 +294,7 @@ int main( int argc, char *argv[] )
   // The coloration of muscular tissue makes it easy to distinguish them from
   // the surrounding anatomical structures. The optic vitrea on the other hand
   // has a coloration that is not very homogeneous inside the eyeball and
-  // does not allow to generate a full segmentation based only on color.
+  // does not allow generating a full segmentation based only on color.
   //
   //  Software Guide : EndLatex
 
diff --git a/Examples/Simulation/ProsailModel.cxx b/Examples/Simulation/ProsailModel.cxx
index ec99e30..c864bcb 100644
--- a/Examples/Simulation/ProsailModel.cxx
+++ b/Examples/Simulation/ProsailModel.cxx
@@ -238,7 +238,7 @@ int main(int argc, char *argv[])
   //  \item PSI 0
   //  \end{itemize}
   //
-  //  More informations and data about leaf properties can be found at \emph{St\'{e}phane Jacquemoud} \href{http://teledetection.ipgp.jussieu.fr/opticleaf/}{OPTICLEAF} website.
+  //  More information and data about leaf properties can be found at \emph{St\'{e}phane Jacquemoud} \href{http://teledetection.ipgp.jussieu.fr/opticleaf/}{OPTICLEAF} website.
   //  Software Guide : EndLatex
 
   return EXIT_SUCCESS;
diff --git a/Examples/Tutorials/Multispectral.cxx b/Examples/Tutorials/Multispectral.cxx
index 2e4f6be..1da5a4a 100644
--- a/Examples/Tutorials/Multispectral.cxx
+++ b/Examples/Tutorials/Multispectral.cxx
@@ -91,7 +91,7 @@ int main(int argc, char * argv[])
   //  Software Guide : BeginLatex
   //
   //  We need to pass the parameters to the filter for the extraction. This
-  // filter also allow to extract only a spatial subset of the image. However,
+  // filter also allow extracting only a spatial subset of the image. However,
   // we will extract the whole channel in this case.
   //
   // To do that, we need to pass the desired region using the
diff --git a/Modules/Adapters/GdalAdapters/include/otbOGRLayerWrapper.h b/Modules/Adapters/GdalAdapters/include/otbOGRLayerWrapper.h
index d60c47d..5dcc3ec 100644
--- a/Modules/Adapters/GdalAdapters/include/otbOGRLayerWrapper.h
+++ b/Modules/Adapters/GdalAdapters/include/otbOGRLayerWrapper.h
@@ -522,7 +522,7 @@ private:
 
 #if 0
   /** Related DataSource.
-   * Needed to acces OTB meta informations.
+   * Needed to acces OTB meta information.
    */
   DataSourcePtr m_DataSource;
 #endif
diff --git a/Modules/Adapters/OSSIMAdapters/include/otbDEMHandler.h b/Modules/Adapters/OSSIMAdapters/include/otbDEMHandler.h
index 7e51a0c..c15b815 100644
--- a/Modules/Adapters/OSSIMAdapters/include/otbDEMHandler.h
+++ b/Modules/Adapters/OSSIMAdapters/include/otbDEMHandler.h
@@ -46,13 +46,13 @@ namespace otb
  * configured by this class and this will ensure consistency
  * throughout the library.
  *
- * The class allows to configure a directory containing DEM tiles
+ * The class allows configuring a directory containing DEM tiles
  * (DTED or SRTM supported) using the OpenDEMDirectory() method. The
- * OpenGeoidFile() method allows to input a geoid file as well. Last,
+ * OpenGeoidFile() method allows inputting a geoid file as well. Last,
  * a default height above ellipsoid can be set using the
  * SetDefaultHeightAboveEllipsoid() method.
  *
- * The class allows to retrieve either height above ellipsoid or
+ * The class allows retrieving either height above ellipsoid or
  * height above Mean Sea Level (MSL).
  *
  * Here is the complete description of both methods output depending
@@ -169,11 +169,11 @@ protected:
 
   void PrintSelf(std::ostream& os, itk::Indent indent) const;
 
-  // Ossim does not allow to retrieve the geoid file path
+  // Ossim does not allow retrieving the geoid file path
   // We therefore must keep it on our side
   std::string m_GeoidFile;
 
-  // Ossim does not allow to retrieve the default height above
+  // Ossim does not allow retrieving the default height above
   // ellipsoid We therefore must keep it on our side
   double m_DefaultHeightAboveEllipsoid;
 
diff --git a/Modules/Adapters/OSSIMAdapters/include/otbImageKeywordlist.h b/Modules/Adapters/OSSIMAdapters/include/otbImageKeywordlist.h
index 7f1c9f2..868a13a 100644
--- a/Modules/Adapters/OSSIMAdapters/include/otbImageKeywordlist.h
+++ b/Modules/Adapters/OSSIMAdapters/include/otbImageKeywordlist.h
@@ -137,7 +137,7 @@ protected:
   virtual void PrintSelf(std::ostream& os, itk::Indent indent) const;
 
 private:
-  /** Geo informations are in this map */
+  /** Geo information are in this map */
   KeywordlistMap m_Keywordlist;
 
 //  char m_Delimiter;
diff --git a/Modules/Adapters/OSSIMAdapters/src/otbDEMConvertAdapter.cxx b/Modules/Adapters/OSSIMAdapters/src/otbDEMConvertAdapter.cxx
index 0a60df2..c351930 100644
--- a/Modules/Adapters/OSSIMAdapters/src/otbDEMConvertAdapter.cxx
+++ b/Modules/Adapters/OSSIMAdapters/src/otbDEMConvertAdapter.cxx
@@ -140,7 +140,7 @@ int DEMConvertAdapter::Convert(std::string tempFilename, std::string output)
       {
       std::cerr << "std::exception  thrown:" << std::endl;
       std::cerr << e.what() <<  std::endl;
-      itkExceptionMacro("Error occurs writing the ouput image...");
+      itkExceptionMacro("Error occurs writing the output image...");
       return EXIT_FAILURE;
       }
     }
diff --git a/Modules/Adapters/OSSIMAdapters/src/otbDEMHandler.cxx b/Modules/Adapters/OSSIMAdapters/src/otbDEMHandler.cxx
index 0477ddc..e5dd39c 100644
--- a/Modules/Adapters/OSSIMAdapters/src/otbDEMHandler.cxx
+++ b/Modules/Adapters/OSSIMAdapters/src/otbDEMHandler.cxx
@@ -156,7 +156,7 @@ DEMHandler
     ossimRefPtr<ossimGeoid> geoidPtr = new ossimGeoidEgm96(geoid);
     if (geoidPtr->getErrorStatus() == ossimErrorCodes::OSSIM_OK)
       {
-      // Ossim does not allow to retrieve the geoid file path
+      // Ossim does not allow retrieving the geoid file path
       // We therefore must keep it on our side
       m_GeoidFile = geoidFile;
       otbMsgDevMacro(<< "Geoid successfully opened");
@@ -244,7 +244,7 @@ void
 DEMHandler
 ::SetDefaultHeightAboveEllipsoid(double h)
 {
-  // Ossim does not allow to retrieve the default height above
+  // Ossim does not allow retrieving the default height above
   // ellipsoid We therefore must keep it on our side
   m_DefaultHeightAboveEllipsoid = h;
 
@@ -257,7 +257,7 @@ double
 DEMHandler
 ::GetDefaultHeightAboveEllipsoid() const
 {
-  // Ossim does not allow to retrieve the default height above
+  // Ossim does not allow retrieving the default height above
   // ellipsoid We therefore must keep it on our side
   return m_DefaultHeightAboveEllipsoid;
 }
@@ -286,7 +286,7 @@ std::string DEMHandler::GetDEMDirectory(unsigned int idx) const
 
 std::string DEMHandler::GetGeoidFile() const
 {
-  // Ossim does not allow to retrieve the geoid file path
+  // Ossim does not allow retrieving the geoid file path
   // We therefore must keep it on our side
   return m_GeoidFile;
 }
diff --git a/Modules/Applications/AppChangeDetection/app/otbMultivariateAlterationDetector.cxx b/Modules/Applications/AppChangeDetection/app/otbMultivariateAlterationDetector.cxx
index 1d64388..cacfcc8 100644
--- a/Modules/Applications/AppChangeDetection/app/otbMultivariateAlterationDetector.cxx
+++ b/Modules/Applications/AppChangeDetection/app/otbMultivariateAlterationDetector.cxx
@@ -73,9 +73,9 @@ private:
                   " are sorted by increasing correlation. If number of bands is "
                   " different, the change maps are sorted by decreasing correlation. \n"
                   " \n"
-                  " The GetV1() and GetV2() methods allow to retrieve the linear "
+                  " The GetV1() and GetV2() methods allow retrieving the linear "
                   " combinations used to generate the Mad change maps as a vnl_matrix of "
-                  " double, and the GetRho() method allows to retrieve the correlation "
+                  " double, and the GetRho() method allows retrieving the correlation "
                   " associated to each Mad change maps as a vnl_vector. \n"
                   " \n"
                   " This filter has been implemented from the Matlab code kindly made "
diff --git a/Modules/Applications/AppClassification/app/otbClassificationMapRegularization.cxx b/Modules/Applications/AppClassification/app/otbClassificationMapRegularization.cxx
index 4e000cd..e535991 100644
--- a/Modules/Applications/AppClassification/app/otbClassificationMapRegularization.cxx
+++ b/Modules/Applications/AppClassification/app/otbClassificationMapRegularization.cxx
@@ -71,7 +71,7 @@ private:
 
     /** GROUP IO CLASSIFICATION */
     AddParameter(ParameterType_Group,"io","Input and output images");
-    SetParameterDescription("io","This group of parameters allows to set input and output images for classification map regularization by Majority Voting.");
+    SetParameterDescription("io","This group of parameters allows setting input and output images for classification map regularization by Majority Voting.");
 
     AddParameter(ParameterType_InputImage, "io.in",  "Input classification image");
     SetParameterDescription( "io.in", "The input labeled image to regularize.");
@@ -82,7 +82,7 @@ private:
 
 
     AddParameter(ParameterType_Group,"ip","Regularization parameters");
-    SetParameterDescription("ip","This group allows to set parameters for classification map regularization by Majority Voting.");
+    SetParameterDescription("ip","This group allows setting parameters for classification map regularization by Majority Voting.");
 
     AddParameter(ParameterType_Int, "ip.radius", "Structuring element radius (in pixels)");
     SetParameterDescription("ip.radius", "The radius of the ball shaped structuring element (expressed in pixels). By default, 'ip.radius = 1 pixel'.");
diff --git a/Modules/Applications/AppClassification/app/otbComputePolylineFeatureFromImage.cxx b/Modules/Applications/AppClassification/app/otbComputePolylineFeatureFromImage.cxx
index 20d88ae..8d588ae 100644
--- a/Modules/Applications/AppClassification/app/otbComputePolylineFeatureFromImage.cxx
+++ b/Modules/Applications/AppClassification/app/otbComputePolylineFeatureFromImage.cxx
@@ -76,10 +76,10 @@ private:
   void DoInit()
   {
     SetName("ComputePolylineFeatureFromImage");
-    SetDescription("This application compute for each studied polyline, contained in the input VectorData, the choosen descriptors.");
+    SetDescription("This application compute for each studied polyline, contained in the input VectorData, the chosen descriptors.");
 
     SetDocName("Compute Polyline Feature From Image");
-    SetDocLongDescription("The first step in the classifier fusion based validation is to compute, for each studied polyline, the choosen descriptors. ");
+    SetDocLongDescription("The first step in the classifier fusion based validation is to compute, for each studied polyline, the chosen descriptors. ");
     SetDocLimitations("Since it does not rely on streaming process, take care of the size of input image before launching application.");
     SetDocAuthors("OTB-Team");
     SetDocSeeAlso(" ");
diff --git a/Modules/Applications/AppClassification/app/otbDSFuzzyModelEstimation.cxx b/Modules/Applications/AppClassification/app/otbDSFuzzyModelEstimation.cxx
index 2f8a942..75a3edd 100644
--- a/Modules/Applications/AppClassification/app/otbDSFuzzyModelEstimation.cxx
+++ b/Modules/Applications/AppClassification/app/otbDSFuzzyModelEstimation.cxx
@@ -406,7 +406,7 @@ private:
       {
       // An error has occurred in the optimization.
       // Update the parameters
-      otbAppLogFATAL("ERROR: Exception Catched!" << std::endl);
+      otbAppLogFATAL("ERROR: Exception Caught!" << std::endl);
       otbAppLogFATAL(<< err.GetDescription() << std::endl);
       const unsigned int numberOfIterations = m_Optimizer->GetOptimizer()->get_num_evaluations();
       otbAppLogFATAL("numberOfIterations : " << numberOfIterations << std::endl);
diff --git a/Modules/Applications/AppClassification/app/otbFusionOfClassifications.cxx b/Modules/Applications/AppClassification/app/otbFusionOfClassifications.cxx
index f518994..3f3b0ba 100644
--- a/Modules/Applications/AppClassification/app/otbFusionOfClassifications.cxx
+++ b/Modules/Applications/AppClassification/app/otbFusionOfClassifications.cxx
@@ -95,7 +95,7 @@ private:
     SetName("FusionOfClassifications");
     SetDescription("Fuses several classifications maps of the same image on the basis of class labels.");
     SetDocName("Fusion of Classifications");
-    SetDocLongDescription("This application allows to fuse several classification maps and produces a single more robust classification map. "
+    SetDocLongDescription("This application allows you to fuse several classification maps and produces a single more robust classification map. "
         "Fusion is done either by mean of Majority Voting, or with the Dempster Shafer combination method on class labels.\n "
         "-MAJORITY VOTING: for each pixel, the class with the highest number of votes is selected.\n "
         "-DEMPSTER SHAFER: for each pixel, the class label for which the Belief Function is maximal is selected. This Belief Function is calculated "
@@ -346,7 +346,7 @@ private:
         std::vector<std::string> confusionMatricesFilenameList = GetParameterStringList("method.dempstershafer.cmfl");
 
         MassOfBeliefDefinitionMethod massOfBeliefDefMethod;
-        //setting default to supress warning
+        //setting default to suppress warning
         massOfBeliefDefMethod = ConfusionMatrixToMassOfBeliefType::PRECISION;
         switch (GetParameterInt("method.dempstershafer.mob"))
           {
diff --git a/Modules/Applications/AppClassification/app/otbImageClassifier.cxx b/Modules/Applications/AppClassification/app/otbImageClassifier.cxx
index ba23a0d..2a33fb6 100644
--- a/Modules/Applications/AppClassification/app/otbImageClassifier.cxx
+++ b/Modules/Applications/AppClassification/app/otbImageClassifier.cxx
@@ -81,7 +81,7 @@ private:
     SetParameterDescription( "in", "The input image to classify.");
 
     AddParameter(ParameterType_InputImage,  "mask",   "Input Mask");
-    SetParameterDescription( "mask", "The mask allows to restrict classification of the input image to the area where mask pixel values are greater than 0.");
+    SetParameterDescription( "mask", "The mask allows restricting classification of the input image to the area where mask pixel values are greater than 0.");
     MandatoryOff("mask");
 
     AddParameter(ParameterType_InputFilename, "model", "Model file");
diff --git a/Modules/Applications/AppClassification/app/otbPredictRegression.cxx b/Modules/Applications/AppClassification/app/otbPredictRegression.cxx
index 413d70f..80b1f2c 100644
--- a/Modules/Applications/AppClassification/app/otbPredictRegression.cxx
+++ b/Modules/Applications/AppClassification/app/otbPredictRegression.cxx
@@ -141,7 +141,7 @@ private:
     // TODO : use CSV input/output ?
 
     AddParameter(ParameterType_InputImage,  "mask",   "Input Mask");
-    SetParameterDescription( "mask", "The mask allows to restrict "
+    SetParameterDescription( "mask", "The mask allow restricting "
       "classification of the input image to the area where mask pixel values "
       "are greater than 0.");
     MandatoryOff("mask");
diff --git a/Modules/Applications/AppClassification/app/otbSOMClassification.cxx b/Modules/Applications/AppClassification/app/otbSOMClassification.cxx
index 5e3daf1..de5dc07 100644
--- a/Modules/Applications/AppClassification/app/otbSOMClassification.cxx
+++ b/Modules/Applications/AppClassification/app/otbSOMClassification.cxx
@@ -67,6 +67,12 @@ public:
 
 
 private:
+  SOMClassification()
+    {
+    m_UseMask = false;
+    m_Classifier = ClassificationFilterType::New();
+    }
+
   void DoInit()
   {
     SetName("SOMClassification");
@@ -367,7 +373,6 @@ private:
     /*******************************************/
     otbAppLogINFO("-- CLASSIFICATION --");
 
-    m_Classifier = ClassificationFilterType::New();
     m_Classifier->SetInput(input);
     m_Classifier->SetMap(m_SOMMap);
     if (m_UseMask) m_Classifier->SetInputMask(mask);
diff --git a/Modules/Applications/AppClassification/app/otbTrainImagesClassifier.cxx b/Modules/Applications/AppClassification/app/otbTrainImagesClassifier.cxx
index de1520d..02ec842 100644
--- a/Modules/Applications/AppClassification/app/otbTrainImagesClassifier.cxx
+++ b/Modules/Applications/AppClassification/app/otbTrainImagesClassifier.cxx
@@ -63,12 +63,12 @@ public:
   itkNewMacro(Self)
 
   itkTypeMacro(TrainImagesClassifier, otb::Wrapper::LearningApplicationBase)
-  
+
   typedef Superclass::SampleType              SampleType;
   typedef Superclass::ListSampleType          ListSampleType;
   typedef Superclass::TargetSampleType        TargetSampleType;
   typedef Superclass::TargetListSampleType    TargetListSampleType;
-  
+
   typedef Superclass::SampleImageType         SampleImageType;
   typedef SampleImageType::PixelType          PixelType;
 
@@ -83,7 +83,7 @@ public:
 
   // Enhance List Sample  typedef otb::Statistics::ListSampleToBalancedListSampleFilter<ListSampleType, LabelListSampleType>      BalancingListSampleFilterType;
   typedef otb::Statistics::ShiftScaleSampleListFilter<ListSampleType, ListSampleType> ShiftScaleFilterType;
- 
+
   // Estimate performance on validation sample
   typedef otb::ConfusionMatrixCalculator<TargetListSampleType, TargetListSampleType> ConfusionMatrixCalculatorType;
   typedef ConfusionMatrixCalculatorType::ConfusionMatrixType ConfusionMatrixType;
@@ -101,7 +101,7 @@ protected:
   //friend void InitSVMParams(TrainImagesClassifier & app);
 
 private:
-  
+
 void DoInit()
 {
   SetName("TrainImagesClassifier");
@@ -115,8 +115,8 @@ void DoInit()
     "Samples are composed of pixel values in each band optionally centered and reduced using an XML statistics file produced by "
     "the ComputeImagesStatistics application.\n The training vector data must contain polygons with a positive integer field "
     "representing the class label. The name of this field can be set using the \"Class label field\" parameter. Training and validation "
-    "sample lists are built such that each class is equally represented in both lists. One parameter allows to control the ratio "
-    "between the number of samples in training and validation sets. Two parameters allow to manage the size of the training and "
+    "sample lists are built such that each class is equally represented in both lists. One parameter allows controlling the ratio "
+    "between the number of samples in training and validation sets. Two parameters allow managing the size of the training and "
     "validation sets per class and per image.\n Several classifier parameters can be set depending on the chosen classifier. In the "
     "validation process, the confusion matrix is organized the following way: rows = reference labels, columns = produced labels. "
     "In the header of the optional confusion matrix output file, the validation (reference) and predicted (produced) class labels"
@@ -128,7 +128,7 @@ void DoInit()
 
   //Group IO
   AddParameter(ParameterType_Group, "io", "Input and output data");
-  SetParameterDescription("io", "This group of parameters allows to set input and output data.");
+  SetParameterDescription("io", "This group of parameters allows setting input and output data.");
   AddParameter(ParameterType_InputImageList, "io.il", "Input Image List");
   SetParameterDescription("io.il", "A list of input images.");
   AddParameter(ParameterType_InputVectorDataList, "io.vd", "Input Vector Data List");
@@ -149,7 +149,7 @@ void DoInit()
   //Group Sample list
   AddParameter(ParameterType_Group, "sample", "Training and validation samples parameters");
   SetParameterDescription("sample",
-                          "This group of parameters allows to set training and validation sample lists parameters.");
+                          "This group of parameters allows you to set training and validation sample lists parameters.");
 
   AddParameter(ParameterType_Int, "sample.mt", "Maximum training sample size per class");
   //MandatoryOff("mt");
@@ -197,7 +197,7 @@ void DoInit()
   SetDocExampleParameterValue("classifier.libsvm.opt", "false");
   SetDocExampleParameterValue("io.out", "svmModelQB1.txt");
   SetDocExampleParameterValue("io.confmatout", "svmConfusionMatrixQB1.csv");
-}  
+}
 
 void DoUpdateParameters()
 {
diff --git a/Modules/Applications/AppClassification/app/otbTrainRegression.cxx b/Modules/Applications/AppClassification/app/otbTrainRegression.cxx
index a7852ef..01a8398 100644
--- a/Modules/Applications/AppClassification/app/otbTrainRegression.cxx
+++ b/Modules/Applications/AppClassification/app/otbTrainRegression.cxx
@@ -60,12 +60,12 @@ public:
   itkNewMacro(Self)
 
   itkTypeMacro(TrainRegression, otb::Wrapper::LearningApplicationBase)
-  
+
   typedef Superclass::SampleType              SampleType;
   typedef Superclass::ListSampleType          ListSampleType;
   typedef Superclass::TargetSampleType        TargetSampleType;
   typedef Superclass::TargetListSampleType    TargetListSampleType;
-  
+
   typedef Superclass::SampleImageType         SampleImageType;
   typedef SampleImageType::PixelType          PixelType;
 
@@ -82,7 +82,7 @@ public:
   typedef otb::Statistics::ShiftScaleSampleListFilter<ListSampleType, ListSampleType> ShiftScaleFilterType;
 
   typedef otb::ImageToEnvelopeVectorDataFilter<SampleImageType,VectorDataType> EnvelopeFilterType;
-  
+
   typedef itk::PreOrderTreeIterator<VectorDataType::DataTreeType> TreeIteratorType;
 
   typedef itk::Statistics::MersenneTwisterRandomVariateGenerator RandomGeneratorType;
@@ -122,20 +122,20 @@ void DoInit()
 
   //Group IO
   AddParameter(ParameterType_Group, "io", "Input and output data");
-  SetParameterDescription("io", "This group of parameters allows to set input and output data.");
+  SetParameterDescription("io", "This group of parameters allows setting input and output data.");
   AddParameter(ParameterType_InputImageList, "io.il", "Input Image List");
   SetParameterDescription("io.il", "A list of input images. First (n-1) bands should contain the predictor. The last band should contain the output value to predict.");
   AddParameter(ParameterType_InputFilename, "io.csv", "Input CSV file");
   SetParameterDescription("io.csv","Input CSV file containing the predictors, and the output values in last column. Only used when no input image is given");
   MandatoryOff("io.csv");
-  
+
   AddParameter(ParameterType_InputFilename, "io.imstat", "Input XML image statistics file");
   MandatoryOff("io.imstat");
   SetParameterDescription("io.imstat",
                           "Input XML file containing the mean and the standard deviation of the input images.");
   AddParameter(ParameterType_OutputFilename, "io.out", "Output regression model");
   SetParameterDescription("io.out", "Output file containing the model estimated (.txt format).");
-  
+
   AddParameter(ParameterType_Float,"io.mse","Mean Square Error");
   SetParameterDescription("io.mse","Mean square error computed with the validation predictors");
   SetParameterRole("io.mse",Role_Output);
@@ -144,13 +144,13 @@ void DoInit()
   //Group Sample list
   AddParameter(ParameterType_Group, "sample", "Training and validation samples parameters");
   SetParameterDescription("sample",
-                          "This group of parameters allows to set training and validation sample lists parameters.");
+                          "This group of parameters allows you to set training and validation sample lists parameters.");
 
   AddParameter(ParameterType_Int, "sample.mt", "Maximum training predictors");
   //MandatoryOff("mt");
   SetDefaultParameterInt("sample.mt", 1000);
   SetParameterDescription("sample.mt", "Maximum number of training predictors (default = 1000) (no limit = -1).");
-  
+
   AddParameter(ParameterType_Int, "sample.mv", "Maximum validation predictors");
   // MandatoryOff("mv");
   SetDefaultParameterInt("sample.mv", 1000);
@@ -230,7 +230,7 @@ void ParseCSVPredictors(std::string path, ListSampleType* outputList)
           }
         if (words.size() < 2)
           {
-          otbAppLogFATAL(<< "Can't parse CSV file : less than 2 columns or unknonw separator (knowns ones are tab, space, comma and semi-colon)");
+          otbAppLogFATAL(<< "Can't parse CSV file : less than 2 columns or invalid separator (valid separators are tab, space, comma and semi-colon)");
           }
         nbCols = words.size();
         elem.SetSize(nbCols,false);
@@ -270,7 +270,7 @@ void DoExecute()
   //Iterate over all input images
 
   FloatVectorImageListType* imageList = GetParameterImageList("io.il");
-  
+
   //Iterate over all input images
   for (unsigned int imgIndex = 0; imgIndex < imageList->Size(); ++imgIndex)
     {
@@ -306,11 +306,11 @@ void DoExecute()
 
     // Setup the DEM Handler
     // otb::Wrapper::ElevationParametersHandler::SetupDEMHandlerFromElevationParameters(this,"elev");
-    
+
     envelopeFilter->Update();
-    
+
     VectorDataType::Pointer envelope = envelopeFilter->GetOutput();
-    
+
     TreeIteratorType itVector(envelope->GetDataTree());
     for (itVector.GoToBegin(); !itVector.IsAtEnd(); ++itVector)
       {
@@ -456,14 +456,14 @@ void DoExecute()
   TargetListSampleType::Pointer labelListSample = TargetListSampleType::New();
   labelListSample->SetMeasurementVectorSize(1);
   labelListSample->Resize(rawlistSample->Size());
-  
+
   ListSampleType::Pointer validationListSample = ListSampleType::New();
   validationListSample->SetMeasurementVectorSize(nbFeatures);
   validationListSample->Resize(rawValidationListSample->Size());
   TargetListSampleType::Pointer validationLabeledListSample = TargetListSampleType::New();
   validationLabeledListSample->SetMeasurementVectorSize(1);
   validationLabeledListSample->Resize(rawValidationListSample->Size());
-  
+
   ListSampleType::MeasurementVectorType elem;
   TargetListSampleType::MeasurementVectorType outElem;
   for (ListSampleType::InstanceIdentifier i=0; i<rawlistSample->Size() ; ++i)
@@ -482,7 +482,7 @@ void DoExecute()
     elem.SetSize(nbFeatures,false);
     validationListSample->SetMeasurementVector(i,elem);
     }
-  
+
 
   otbAppLogINFO("Number of training samples: " << concatenateTrainingSamples->GetOutput()->Size());
   //--------------------------
diff --git a/Modules/Applications/AppClassification/include/otbTrainBoost.txx b/Modules/Applications/AppClassification/include/otbTrainBoost.txx
index 23e666b..5e99db8 100644
--- a/Modules/Applications/AppClassification/include/otbTrainBoost.txx
+++ b/Modules/Applications/AppClassification/include/otbTrainBoost.txx
@@ -29,7 +29,7 @@ namespace Wrapper
   ::InitBoostParams()
   {
     AddChoice("classifier.boost", "Boost classifier");
-    SetParameterDescription("classifier.boost", "This group of parameters allows to set Boost classifier parameters. "
+    SetParameterDescription("classifier.boost", "This group of parameters allows setting Boost classifier parameters. "
         "See complete documentation here \\url{http://docs.opencv.org/modules/ml/doc/boosting.html}.");
     //BoostType
     AddParameter(ParameterType_Choice, "classifier.boost.t", "Boost Type");
diff --git a/Modules/Applications/AppClassification/include/otbTrainDecisionTree.txx b/Modules/Applications/AppClassification/include/otbTrainDecisionTree.txx
index 04df938..285ae19 100644
--- a/Modules/Applications/AppClassification/include/otbTrainDecisionTree.txx
+++ b/Modules/Applications/AppClassification/include/otbTrainDecisionTree.txx
@@ -30,7 +30,7 @@ LearningApplicationBase<TInputValue,TOutputValue>
 {
   AddChoice("classifier.dt", "Decision Tree classifier");
   SetParameterDescription("classifier.dt",
-                          "This group of parameters allows to set Decision Tree classifier parameters. "
+                          "This group of parameters allows setting Decision Tree classifier parameters. "
                           "See complete documentation here \\url{http://docs.opencv.org/modules/ml/doc/decision_trees.html}.");
   //MaxDepth
   AddParameter(ParameterType_Int, "classifier.dt.max", "Maximum depth of the tree");
@@ -55,7 +55,7 @@ LearningApplicationBase<TInputValue,TOutputValue>
 
   //UseSurrogates : don't need to be exposed !
   //AddParameter(ParameterType_Empty, "classifier.dt.sur", "Surrogate splits will be built");
-  //SetParameterDescription("classifier.dt.sur","These splits allow to work with missing data and compute variable importance correctly.");
+  //SetParameterDescription("classifier.dt.sur","These splits allow working with missing data and compute variable importance correctly.");
 
   //MaxCategories
   AddParameter(ParameterType_Int, "classifier.dt.cat",
diff --git a/Modules/Applications/AppClassification/include/otbTrainGradientBoostedTree.txx b/Modules/Applications/AppClassification/include/otbTrainGradientBoostedTree.txx
index b556125..9bc2bcd 100644
--- a/Modules/Applications/AppClassification/include/otbTrainGradientBoostedTree.txx
+++ b/Modules/Applications/AppClassification/include/otbTrainGradientBoostedTree.txx
@@ -31,7 +31,7 @@ LearningApplicationBase<TInputValue,TOutputValue>
   AddChoice("classifier.gbt", "Gradient Boosted Tree classifier");
   SetParameterDescription(
       "classifier.gbt",
-      "This group of parameters allows to set Gradient Boosted Tree classifier parameters. "
+      "This group of parameters allows setting Gradient Boosted Tree classifier parameters. "
       "See complete documentation here \\url{http://docs.opencv.org/modules/ml/doc/gradient_boosted_trees.html}.");
 
   if (m_RegressionFlag)
@@ -74,7 +74,7 @@ LearningApplicationBase<TInputValue,TOutputValue>
 
   //UseSurrogates : don't need to be exposed !
   //AddParameter(ParameterType_Empty, "classifier.gbt.sur", "Surrogate splits will be built");
-  //SetParameterDescription("classifier.gbt.sur","These splits allow to work with missing data and compute variable importance correctly.");
+  //SetParameterDescription("classifier.gbt.sur","These splits allow working with missing data and compute variable importance correctly.");
 
 }
 
diff --git a/Modules/Applications/AppClassification/include/otbTrainKNN.txx b/Modules/Applications/AppClassification/include/otbTrainKNN.txx
index 9365600..10ad858 100644
--- a/Modules/Applications/AppClassification/include/otbTrainKNN.txx
+++ b/Modules/Applications/AppClassification/include/otbTrainKNN.txx
@@ -29,7 +29,7 @@ namespace Wrapper
   ::InitKNNParams()
   {
     AddChoice("classifier.knn", "KNN classifier");
-    SetParameterDescription("classifier.knn", "This group of parameters allows to set KNN classifier parameters. "
+    SetParameterDescription("classifier.knn", "This group of parameters allows setting KNN classifier parameters. "
         "See complete documentation here \\url{http://docs.opencv.org/modules/ml/doc/k_nearest_neighbors.html}.");
 
     //K parameter
diff --git a/Modules/Applications/AppClassification/include/otbTrainLibSVM.txx b/Modules/Applications/AppClassification/include/otbTrainLibSVM.txx
index 9282456..7741214 100644
--- a/Modules/Applications/AppClassification/include/otbTrainLibSVM.txx
+++ b/Modules/Applications/AppClassification/include/otbTrainLibSVM.txx
@@ -29,7 +29,7 @@ namespace Wrapper
   ::InitLibSVMParams()
   {
     AddChoice("classifier.libsvm", "LibSVM classifier");
-    SetParameterDescription("classifier.libsvm", "This group of parameters allows to set SVM classifier parameters.");
+    SetParameterDescription("classifier.libsvm", "This group of parameters allows setting SVM classifier parameters.");
     AddParameter(ParameterType_Choice, "classifier.libsvm.k", "SVM Kernel Type");
     AddChoice("classifier.libsvm.k.linear", "Linear");
     AddChoice("classifier.libsvm.k.rbf", "Gaussian radial basis function");
diff --git a/Modules/Applications/AppClassification/include/otbTrainNeuralNetwork.txx b/Modules/Applications/AppClassification/include/otbTrainNeuralNetwork.txx
index 40f120f..559f30e 100644
--- a/Modules/Applications/AppClassification/include/otbTrainNeuralNetwork.txx
+++ b/Modules/Applications/AppClassification/include/otbTrainNeuralNetwork.txx
@@ -31,7 +31,7 @@ LearningApplicationBase<TInputValue,TOutputValue>
 {
   AddChoice("classifier.ann", "Artificial Neural Network classifier");
   SetParameterDescription("classifier.ann",
-                          "This group of parameters allows to set Artificial Neural Network classifier parameters. "
+                          "This group of parameters allows setting Artificial Neural Network classifier parameters. "
                           "See complete documentation here \\url{http://docs.opencv.org/modules/ml/doc/neural_networks.html}.");
 
   //TrainMethod
diff --git a/Modules/Applications/AppClassification/include/otbTrainRandomForests.txx b/Modules/Applications/AppClassification/include/otbTrainRandomForests.txx
index a856243..88f3b7c 100644
--- a/Modules/Applications/AppClassification/include/otbTrainRandomForests.txx
+++ b/Modules/Applications/AppClassification/include/otbTrainRandomForests.txx
@@ -30,7 +30,7 @@ LearningApplicationBase<TInputValue,TOutputValue>
 {
   AddChoice("classifier.rf", "Random forests classifier");
   SetParameterDescription("classifier.rf",
-                          "This group of parameters allows to set Random Forests classifier parameters. "
+                          "This group of parameters allows setting Random Forests classifier parameters. "
                           "See complete documentation here \\url{http://docs.opencv.org/modules/ml/doc/random_trees.html}.");
   //MaxDepth
   AddParameter(ParameterType_Int, "classifier.rf.max", "Maximum depth of the tree");
@@ -56,7 +56,7 @@ LearningApplicationBase<TInputValue,TOutputValue>
 
   //UseSurrogates : don't need to be exposed !
   //AddParameter(ParameterType_Empty, "classifier.rf.sur", "Surrogate splits will be built");
-  //SetParameterDescription("classifier.rf.sur","These splits allow to work with missing data and compute variable importance correctly.");
+  //SetParameterDescription("classifier.rf.sur","These splits allow working with missing data and compute variable importance correctly.");
 
   //MaxNumberOfCategories
   AddParameter(ParameterType_Int, "classifier.rf.cat",
diff --git a/Modules/Applications/AppClassification/include/otbTrainSVM.txx b/Modules/Applications/AppClassification/include/otbTrainSVM.txx
index ac0f153..58e2ee4 100644
--- a/Modules/Applications/AppClassification/include/otbTrainSVM.txx
+++ b/Modules/Applications/AppClassification/include/otbTrainSVM.txx
@@ -29,7 +29,7 @@ namespace Wrapper
   ::InitSVMParams()
   {
     AddChoice("classifier.svm", "SVM classifier (OpenCV)");
-    SetParameterDescription("classifier.svm", "This group of parameters allows to set SVM classifier parameters. "
+    SetParameterDescription("classifier.svm", "This group of parameters allows setting SVM classifier parameters. "
         "See complete documentation here \\url{http://docs.opencv.org/modules/ml/doc/support_vector_machines.html}.");
     AddParameter(ParameterType_Choice, "classifier.svm.m", "SVM Model Type");
     SetParameterDescription("classifier.svm.m", "Type of SVM formulation.");
diff --git a/Modules/Applications/AppDescriptors/app/otbHomologousPointsExtraction.cxx b/Modules/Applications/AppDescriptors/app/otbHomologousPointsExtraction.cxx
index 58be866..da550f0 100644
--- a/Modules/Applications/AppDescriptors/app/otbHomologousPointsExtraction.cxx
+++ b/Modules/Applications/AppDescriptors/app/otbHomologousPointsExtraction.cxx
@@ -81,19 +81,19 @@ private:
   {
     SetName("HomologousPointsExtraction");
     SetDocName("Homologous points extraction");
-    SetDescription("Allows to compute homologous points between images using keypoints");
-    SetDocLongDescription("This application allows to compute homologous points between images using keypoints. "
+    SetDescription("Compute homologous points between images using keypoints");
+    SetDocLongDescription("This application allows computing homologous points between images using keypoints. "
       " SIFT or SURF keypoints can be used and the band on which keypoints are computed can be set independantly for both images."
       " The application offers two modes :"
       " the first is the full mode where keypoints are extracted from the full extent of both images"
       " (please note that in this mode large image file are not supported). "
-      "The second mode, called geobins, allows to set-up spatial binning to get fewer points"
+      "The second mode, called geobins, allows one to set-up spatial binning to get fewer points"
       " spread accross the entire image. "
       "In this mode, the corresponding spatial bin in the second image is estimated using geographical"
       " transform or sensor modelling, and is padded according to the user defined precision. Last, in"
       " both modes the application can filter matches whose colocalisation in first image exceed this precision. "
       "The elevation parameters are to deal more precisely with sensor modelling in case of sensor geometry data. "
-      "The outvector option allows to create a vector file with segments corresponding to the localisation error between the matches."
+      "The outvector option allows creating a vector file with segments corresponding to the localisation error between the matches."
       " It can be useful to assess the precision of a registration for instance."
       " The vector file is always reprojected to EPSG:4326 to allow display in a GIS."
       " This is done via reprojection or by applying the image sensor models.");
@@ -143,8 +143,8 @@ private:
     SetParameterDescription("mode.full","Extract and match all keypoints, loading both images entirely into memory");
 
     AddChoice("mode.geobins","Search keypoints in small spatial bins regularly spread accross first image");
-    SetParameterDescription("mode.geobins","This method allows to retrieve a set of tie points regulary spread accross image 1. Corresponding bins in image 2 are retrieved using sensor and geographical information if available. The first bin position takes into account the margin parameter. Bins are cropped to the largest image region shrinked by the margin parameter for both in1 and in2 images.");
-    
+    SetParameterDescription("mode.geobins","This method allows retrieving a set of tie points regulary spread accross image 1. Corresponding bins in image 2 are retrieved using sensor and geographical information if available. The first bin position takes into account the margin parameter. Bins are cropped to the largest image region shrinked by the margin parameter for both in1 and in2 images.");
+
     AddParameter(ParameterType_Int,"mode.geobins.binsize","Size of bin");
     SetParameterDescription("mode.geobins.binsize","Radius of the spatial bin in pixels");
     SetDefaultParameterInt("mode.geobins.binsize",256);
@@ -154,7 +154,7 @@ private:
     SetParameterDescription("mode.geobins.binsizey","Radius of the spatial bin in pixels (y direction). If not set, the mode.geobins.binsize value is used.");
     SetMinimumParameterIntValue("mode.geobins.binsizey",1);
     MandatoryOff("mode.geobins.binsizey");
-    
+
     AddParameter(ParameterType_Int,"mode.geobins.binstep","Steps between bins");
     SetParameterDescription("mode.geobins.binstep","Steps between bins in pixels");
     SetDefaultParameterInt("mode.geobins.binstep",256);
@@ -175,7 +175,7 @@ private:
     SetDefaultParameterFloat("precision",0.);
 
     AddParameter(ParameterType_Empty,"mfilter","Filter points according to geographical or sensor based colocalisation");
-    SetParameterDescription("mfilter","If enabled, this option allows to filter matches according to colocalisation from sensor or geographical information, using the given tolerancy expressed in pixels");
+    SetParameterDescription("mfilter","If enabled, this option allows one to filter matches according to colocalisation from sensor or geographical information, using the given tolerancy expressed in pixels");
 
     AddParameter(ParameterType_Empty,"2wgs84","If enabled, points from second image will be exported in WGS84");
 
@@ -385,7 +385,7 @@ private:
         {
         bin_size_y = GetParameterInt("mode.geobins.binsizey");
         }
-      
+
       unsigned int bin_step_x = GetParameterInt("mode.geobins.binstep");
       unsigned int bin_step_y = bin_step_x;
 
@@ -393,7 +393,7 @@ private:
         {
         bin_step_y = GetParameterInt("mode.geobins.binstepy");
         }
-      
+
       unsigned int nb_bins_x = static_cast<unsigned int>(vcl_ceil(static_cast<float>(size[0]-2*image_border_margin)/(bin_size_x + bin_step_x)));
       unsigned int nb_bins_y = static_cast<unsigned int>(vcl_ceil(static_cast<float>(size[1]-2*image_border_margin)/(bin_size_y + bin_step_y)));
 
diff --git a/Modules/Applications/AppDimensionalityReduction/app/otbDimensionalityReduction.cxx b/Modules/Applications/AppDimensionalityReduction/app/otbDimensionalityReduction.cxx
index 396887d..9fcd0ed 100644
--- a/Modules/Applications/AppDimensionalityReduction/app/otbDimensionalityReduction.cxx
+++ b/Modules/Applications/AppDimensionalityReduction/app/otbDimensionalityReduction.cxx
@@ -139,7 +139,7 @@ private:
     AddChoice("method.maf", "MAF");
     SetParameterDescription("method.maf", "Maximum Autocorrelation Factor.");
     AddChoice("method.ica", "ICA");
-    SetParameterDescription("method.ica", "Independant Component Analysis.");
+    SetParameterDescription("method.ica", "Independent Component Analysis.");
     AddParameter(ParameterType_Int, "method.ica.iter", "number of iterations ");
     SetMinimumParameterIntValue("method.ica.iter", 1);
     SetDefaultParameterInt("method.ica.iter", 20);
diff --git a/Modules/Applications/AppEdge/app/otbLineSegmentDetection.cxx b/Modules/Applications/AppEdge/app/otbLineSegmentDetection.cxx
index 03a3360..230fe1a 100644
--- a/Modules/Applications/AppEdge/app/otbLineSegmentDetection.cxx
+++ b/Modules/Applications/AppEdge/app/otbLineSegmentDetection.cxx
@@ -57,7 +57,7 @@ private:
 
     // Documentation
     SetDocName("Line segment detection");
-    SetDocLongDescription("This application detects locally straight contours in a image. It is based on Burns, Hanson, and Riseman method and use an a contrario validation approach (Desolneux, Moisan, and Morel). The algorithm was published by Rafael Gromponevon Gioi, Jérémie Jakubowicz, Jean-Michel Morel and Gregory Randall.\n The given approach computes gradient and level lines of the image and detects aligned points in line support region. The application allows to export the detecte [...]
+    SetDocLongDescription("This application detects locally straight contours in a image. It is based on Burns, Hanson, and Riseman method and use an a contrario validation approach (Desolneux, Moisan, and Morel). The algorithm was published by Rafael Gromponevon Gioi, Jérémie Jakubowicz, Jean-Michel Morel and Gregory Randall.\n The given approach computes gradient and level lines of the image and detects aligned points in line support region. The application allows exporting the detecte [...]
     SetDocLimitations("None");
     SetDocAuthors("OTB-Team");
     SetDocSeeAlso("On Line demonstration of the LSD algorithm is available here: http://www.ipol.im/pub/algo/gjmr_line_segment_detector/\n");
diff --git a/Modules/Applications/AppFusion/app/otbBundleToPerfectSensor.cxx b/Modules/Applications/AppFusion/app/otbBundleToPerfectSensor.cxx
index 8084eba..7de9d58 100644
--- a/Modules/Applications/AppFusion/app/otbBundleToPerfectSensor.cxx
+++ b/Modules/Applications/AppFusion/app/otbBundleToPerfectSensor.cxx
@@ -154,7 +154,7 @@ private:
     // Setup the DEM Handler
     otb::Wrapper::ElevationParametersHandler::SetupDEMHandlerFromElevationParameters(this,"elev");
 
-    // Set up output image informations
+    // Set up output image information
     FloatVectorImageType::SpacingType spacing = panchro->GetSpacing();
     FloatVectorImageType::IndexType   start = panchro->GetLargestPossibleRegion().GetIndex();
     FloatVectorImageType::SizeType    size = panchro->GetLargestPossibleRegion().GetSize();
diff --git a/Modules/Applications/AppHyperspectral/app/otbHyperspectralUnmixing.cxx b/Modules/Applications/AppHyperspectral/app/otbHyperspectralUnmixing.cxx
index 3d941c9..a69c578 100644
--- a/Modules/Applications/AppHyperspectral/app/otbHyperspectralUnmixing.cxx
+++ b/Modules/Applications/AppHyperspectral/app/otbHyperspectralUnmixing.cxx
@@ -96,7 +96,7 @@ private:
 
     // Documentation
     SetDocName("Hyperspectral data unmixing");
-    SetDocLongDescription("The application applies a linear unmixing algorithm to an hyperspectral data cube. This method supposes that the mixture between materials in the scene is macroscopic and simulates a linear mixing model of spectra.\nThe Linear Mixing Model (LMM) acknowledges that reflectance spectrum associated with each pixel is a linear combination of pure materials in the recovery area, commonly known as endmembers. Endmembers can be estimated using the VertexComponentAnalys [...]
+    SetDocLongDescription("The application applies a linear unmixing algorithm to an hyperspectral data cube. This method supposes that the mixture between materials in the scene is macroscopic and simulates a linear mixing model of spectra.\nThe Linear Mixing Model (LMM) acknowledges that reflectance spectrum associated with each pixel is a linear combination of pure materials in the recovery area, commonly known as endmembers. Endmembers can be estimated using the VertexComponentAnalys [...]
     SetDocLimitations("None");
     SetDocAuthors("OTB-Team");
     SetDocSeeAlso("VertexComponentAnalysis");
@@ -128,7 +128,7 @@ private:
     SetParameterDescription("ua.isra", "Image Space Reconstruction Algorithm");
 
     AddChoice("ua.mdmdnmf", "MDMDNMF");
-    SetParameterDescription("ua.mdmdnmf", "Minimum Dispertion Constrained Non Negative Matrix Factorization");
+    SetParameterDescription("ua.mdmdnmf", "Minimum Dispersion Constrained Non Negative Matrix Factorization");
     SetParameterString("ua", "ucls");
     // Doc example parameter settings
     SetDocExampleParameterValue("in", "cupriteSubHsi.tif");
diff --git a/Modules/Applications/AppImageUtils/app/otbColorMapping.cxx b/Modules/Applications/AppImageUtils/app/otbColorMapping.cxx
index 432ba75..302d8ee 100644
--- a/Modules/Applications/AppImageUtils/app/otbColorMapping.cxx
+++ b/Modules/Applications/AppImageUtils/app/otbColorMapping.cxx
@@ -79,7 +79,7 @@ class VectorMapping
 public:
   typedef typename TOutput::ValueType ValueType;
 
-  VectorMapping() {}
+  VectorMapping() : m_OutputSize(0) {}
   virtual ~VectorMapping() {}
 
   typedef std::map<TInput, TOutput, VectorLexicographicCompare<TInput> > ChangeMapType;
@@ -250,10 +250,10 @@ private:
     SetDescription("Maps an input label image to 8-bits RGB using look-up tables.");
 
     SetDocName("Color Mapping");
-    SetDocLongDescription("This application allows to map a label image to a 8-bits RGB image (in both ways) using different methods.\n"
-                          " -The custom method allows to use a custom look-up table. The look-up table is loaded "
+    SetDocLongDescription("This application allows one to map a label image to a 8-bits RGB image (in both ways) using different methods.\n"
+                          " -The custom method allows one to use a custom look-up table. The look-up table is loaded "
                           "from a text file where each line describes an entry. The typical use of this method is to colorise a "
-                          "classification map.\n -The continuous method allows to map a range of values in a scalar input image "
+                          "classification map.\n -The continuous method allows mapping a range of values in a scalar input image "
                           "to a colored image using continuous look-up table, in order to enhance image interpretation. Several "
                           "look-up tables can been chosen with different color ranges.\n-The optimal method computes an optimal "
                           "look-up table. When processing a segmentation label image (label to color), the color difference between"
@@ -636,7 +636,7 @@ private:
         {
         LabelType clabel = mapIt->first;
         meanValue = mapIt->second; //meanValue.Size() is null if label is not present in label image
-        if (meanValue.Size()==0)
+        if (meanValue.Size() != supportImage->GetNumberOfComponentsPerPixel())
           {
           color.Fill(0.0);
           }
@@ -717,7 +717,7 @@ private:
       streamingManager->PrepareStreaming(input, largestRegion);
 
       unsigned long numberOfStreamDivisions = streamingManager->GetNumberOfSplits();
-     
+
       otbAppLogINFO("Number of divisions : "<<numberOfStreamDivisions);
 
       // iteration over stream divisions
diff --git a/Modules/Applications/AppImageUtils/app/otbDownloadSRTMTiles.cxx b/Modules/Applications/AppImageUtils/app/otbDownloadSRTMTiles.cxx
index 449aebf..8e06ba0 100644
--- a/Modules/Applications/AppImageUtils/app/otbDownloadSRTMTiles.cxx
+++ b/Modules/Applications/AppImageUtils/app/otbDownloadSRTMTiles.cxx
@@ -68,6 +68,8 @@ public:
 private:
 
   int m_Mode;
+  
+  DownloadSRTMTiles() : m_Mode(Mode_Download) {}
 
   bool SRTMTileExists(const std::string & url) const
   {
@@ -96,7 +98,7 @@ private:
 
     // Documentation
     SetDocName("Download or list SRTM tiles related to a set of images");
-    SetDocLongDescription("This application allows to select the appropriate SRTM tiles that covers a list of images. It builds a list of the required tiles. Two modes are available: the first one download those tiles from the USGS SRTM3 website (http://dds.cr.usgs.gov/srtm/version2_1/SRTM3/), the second one list those tiles in a local directory. In both cases, you need to indicate the directory in which directory  tiles will be download or the location of local SRTM files.");
+    SetDocLongDescription("This application allows selecting the appropriate SRTM tiles that covers a list of images. It builds a list of the required tiles. Two modes are available: the first one download those tiles from the USGS SRTM3 website (http://dds.cr.usgs.gov/srtm/version2_1/SRTM3/), the second one list those tiles in a local directory. In both cases, you need to indicate the directory in which directory  tiles will be download or the location of local SRTM files.");
     SetDocLimitations("None");
     SetDocAuthors("OTB-Team");
     SetDocSeeAlso(" ");
diff --git a/Modules/Applications/AppImageUtils/app/otbManageNoData.cxx b/Modules/Applications/AppImageUtils/app/otbManageNoData.cxx
index fa327c4..fc2e201 100644
--- a/Modules/Applications/AppImageUtils/app/otbManageNoData.cxx
+++ b/Modules/Applications/AppImageUtils/app/otbManageNoData.cxx
@@ -61,7 +61,7 @@ private:
     SetDescription("Manage No-Data");
     // Documentation
     SetDocName("No Data management");
-    SetDocLongDescription("This application has two modes. The first allows to build a mask of no-data pixels from the no-data flags read from the image file. The second allows to update the change the no-data value of an image (pixels value and metadata). This last mode also allows to replace NaN in images with a proper no-data value. To do so, one should activate the NaN is no-data option.");
+    SetDocLongDescription("This application has two modes. The first allows building a mask of no-data pixels from the no-data flags read from the image file. The second allows updating the change the no-data value of an image (pixels value and metadata). This last mode also allows replacing NaN in images with a proper no-data value. To do so, one should activate the NaN is no-data option.");
     SetDocLimitations("None");
     SetDocAuthors("OTB-Team");
     SetDocSeeAlso("BanMath");
@@ -81,7 +81,7 @@ private:
     DisableParameter("usenan");
    
     AddParameter(ParameterType_Choice,"mode","No-data handling mode");
-    SetParameterDescription("mode","Allows to choose between different no-data handling options");
+    SetParameterDescription("mode","Allows choosing between different no-data handling options");
 
     AddChoice("mode.buildmask","Build a no-data Mask");
     
diff --git a/Modules/Applications/AppImageUtils/app/otbMultiResolutionPyramid.cxx b/Modules/Applications/AppImageUtils/app/otbMultiResolutionPyramid.cxx
index 17b17c5..3a860c1 100644
--- a/Modules/Applications/AppImageUtils/app/otbMultiResolutionPyramid.cxx
+++ b/Modules/Applications/AppImageUtils/app/otbMultiResolutionPyramid.cxx
@@ -95,7 +95,7 @@ private:
     // Boolean Fast scheme
     AddParameter(ParameterType_Empty, "fast", "Use Fast Scheme");
     std::ostringstream desc;
-    desc<<"If used, this option allows to speed-up computation by iteratively"
+    desc<<"If used, this option allows one to speed-up computation by iteratively"
         <<" subsampling previous level of pyramid instead of processing the full input.";
     SetParameterDescription("fast", desc.str());
     MandatoryOff("fast");
diff --git a/Modules/Applications/AppImageUtils/app/otbPixelValue.cxx b/Modules/Applications/AppImageUtils/app/otbPixelValue.cxx
index 6610aaa..ee40c5c 100644
--- a/Modules/Applications/AppImageUtils/app/otbPixelValue.cxx
+++ b/Modules/Applications/AppImageUtils/app/otbPixelValue.cxx
@@ -148,7 +148,7 @@ private:
 
     SetParameterString("value", oss.str());
 
-    //Display image informations in the dedicated logger
+    //Display image information in the dedicated logger
     otbAppLogINFO( << oss.str() );
   }
 
diff --git a/Modules/Applications/AppImageUtils/app/otbReadImageInfo.cxx b/Modules/Applications/AppImageUtils/app/otbReadImageInfo.cxx
index 973103c..bba8905 100644
--- a/Modules/Applications/AppImageUtils/app/otbReadImageInfo.cxx
+++ b/Modules/Applications/AppImageUtils/app/otbReadImageInfo.cxx
@@ -70,7 +70,7 @@ private:
     MandatoryOff("keywordlist");
 
     AddParameter(ParameterType_OutputFilename, "outkwl", "Write the OSSIM keywordlist to a geom file");
-    SetParameterDescription("outkwl", "This option allows to extract the OSSIM keywordlist of the image into a geom file.");
+    SetParameterDescription("outkwl", "This option allows extracting the OSSIM keywordlist of the image into a geom file.");
     MandatoryOff("outkwl");
 
     //Create output parameters to store image informations
@@ -179,7 +179,7 @@ private:
     EnableParameter("country");
 
     AddParameter(ParameterType_Group, "rgb", "Default RGB Display");
-    SetParameterDescription("rgb","This group of parameters allows to access to the default rgb composition.");
+    SetParameterDescription("rgb","This group of parameters provide information about the default rgb composition.");
 
     AddParameter(ParameterType_Int, "rgb.r", "Red Band");
     SetParameterDescription("rgb.r","Red band Number");
@@ -207,7 +207,7 @@ private:
     EnableParameter("keyword");
 
     AddParameter(ParameterType_Group, "gcp", "Ground Control Points information");
-    SetParameterDescription("gcp","This group of parameters allows to access to the GCPs information.");
+    SetParameterDescription("gcp","This group of parameters provide information about all GCPs.");
     SetParameterRole("gcp", Role_Output);
 
     AddParameter(ParameterType_Int, "gcp.count", "GCPs Number");
@@ -275,7 +275,7 @@ private:
 
       if(ret)
         {
-    
+
         for(unsigned int b = 0;b< inImage->GetNumberOfComponentsPerPixel();++b)
           {
           ossOutput<<"\n\t\tBand "<<b+1<<": ";
@@ -283,7 +283,7 @@ private:
           if(noDataValueAvailable[b])
             ossOutput<<noDataValues[b];
           else
-            ossOutput<<"No";  
+            ossOutput<<"No";
           }
         }
       else
@@ -491,7 +491,7 @@ private:
       ossOutput << "\t" << GetParameterString("keyword") << std::endl;
       }
 
-    //Display image informations in the dedicated logger
+    //Display image information in the dedicated logger
     otbAppLogINFO( << ossOutput.str() );
 
     if(IsParameterEnabled("outkwl"))
diff --git a/Modules/Applications/AppMathParserX/app/otbBandMathX.cxx b/Modules/Applications/AppMathParserX/app/otbBandMathX.cxx
index 3f4884e..fd08225 100644
--- a/Modules/Applications/AppMathParserX/app/otbBandMathX.cxx
+++ b/Modules/Applications/AppMathParserX/app/otbBandMathX.cxx
@@ -108,7 +108,7 @@ private:
       "matrices (for instance cos, sin, ...). These new operators/ functions keep the original names to which we added the prefix 'v' for vector (vcos, vsin, ...).\n"
       "- mult, div and pow operators, that perform element-wise multiplication, division or exponentiation of vector/matrices (for instance im1 div im2)\n"
       "- mlt, dv and pw operators, that perform multiplication, division or exponentiation of vector/matrices by a scalar (for instance im1 dv 2.0)\n"
-      "- bands, which is a very usefull operator. It allows to select specific bands from an image, and/or to rearrange them in a new vector;\n"
+      "- bands, which is a very usefull operator. It allows selecting specific bands from an image, and/or to rearrange them in a new vector;\n"
       "for instance bands(im1,{1,2,1,1}) produces a vector of 4 components made of band 1, band 2, band 1 and band 1 values from the first input.\n"
       "Note that curly brackets must be used in order to select the desired band indices.\n"
       "... and so on.\n"
@@ -126,7 +126,7 @@ private:
       "In the latter case, elements of a row must be separated by commas, and rows must be separated by semicolons.\n"
       "It is also possible to define expressions within the same txt file, with the pattern #E expr. For instance (two expressions; see also limitations section below):\n\n"
       "#E $dotpr(kernel1,im1b1N3x5); im2b1^expo$\n"
-      "\n- The 'outcontext' parameter allows to save user's constants and expressions (context).\n"
+      "\n- The 'outcontext' parameter allows saving user's constants and expressions (context).\n"
       "- Setting the output image can be done with the 'out' parameter (multi-outputs is not implemented yet).\n"
       "\n\n"
       "Finally, we strongly recommend that the reader takes a look at the cookbook, where additional information can be found (http://www.orfeo-toolbox.org/packages/OTBCookBook.pdf).\n"
@@ -234,5 +234,3 @@ private:
 } // namespace otb
 
 OTB_APPLICATION_EXPORT(otb::Wrapper::BandMathX)
-
-
diff --git a/Modules/Applications/AppOpticalCalibration/app/otbOpticalCalibration.cxx b/Modules/Applications/AppOpticalCalibration/app/otbOpticalCalibration.cxx
index af2b478..9e26eca 100644
--- a/Modules/Applications/AppOpticalCalibration/app/otbOpticalCalibration.cxx
+++ b/Modules/Applications/AppOpticalCalibration/app/otbOpticalCalibration.cxx
@@ -124,10 +124,10 @@ private:
   void DoInit()
   {
     SetName("OpticalCalibration");
-    SetDescription("Perform optical calibration TOA/TOC (Top Of Atmosphere/Top Of Canopy). Supported sensors: QuickBird, Ikonos, WorldView2, Formosat, Spot5, Pleiades, Spot6. For other sensors the application also allows to provide calibration parameters manually.");
+    SetDescription("Perform optical calibration TOA/TOC (Top Of Atmosphere/Top Of Canopy). Supported sensors: QuickBird, Ikonos, WorldView2, Formosat, Spot5, Pleiades, Spot6. For other sensors the application also allows providing calibration parameters manually.");
     // Documentation
     SetDocName("Optical calibration");
-    SetDocLongDescription("The application allows to convert pixel values from DN (for Digital Numbers) to reflectance. Calibrated values are called surface reflectivity and its values lie in the range [0, 1].\nThe first level is called Top Of Atmosphere (TOA) reflectivity. It takes into account the sensor gain, sensor spectral response and the solar illuminations.\nThe second level is called Top Of Canopy (TOC) reflectivity. In addition to sensor gain and solar illuminations, it takes i [...]
+    SetDocLongDescription("The application allows converting pixel values from DN (for Digital Numbers) to reflectance. Calibrated values are called surface reflectivity and its values lie in the range [0, 1].\nThe first level is called Top Of Atmosphere (TOA) reflectivity. It takes into account the sensor gain, sensor spectral response and the solar illuminations.\nThe second level is called Top Of Canopy (TOC) reflectivity. In addition to sensor gain and solar illuminations, it takes i [...]
 "\n--------------------------\n\n"
 "If the sensor is not supported by the metadata interface factory of OTB, users still have the possibility to give the needed parameters to the application.\n"
 "For TOA conversion, these parameters are : \n"
@@ -175,7 +175,7 @@ private:
 "1540.494123 : 1826.087443 : 1982.671954 : 1094.747446\n\n"
 
 "Finally, the 'Logs' tab provides usefull messages that can help the user in knowing the process different status." );
-    
+
     SetDocLimitations("None");
     SetDocAuthors("OTB-Team");
     SetDocSeeAlso("The OTB CookBook");
@@ -198,7 +198,7 @@ private:
 
     AddParameter(ParameterType_Empty, "milli", "Convert to milli reflectance");
     SetParameterDescription("milli", "Flag to use milli-reflectance instead of reflectance.\n"
-                            "This allows to save the image with integer pixel type (in the range [0, 1000]  instead of floating point in the range [0, 1]. In order to do that, use this option and set the output pixel type (-out filename double for example)");
+                            "This allows saving the image with integer pixel type (in the range [0, 1000]  instead of floating point in the range [0, 1]. In order to do that, use this option and set the output pixel type (-out filename double for example)");
     DisableParameter("milli");
     MandatoryOff("milli");
 
@@ -209,7 +209,7 @@ private:
 
     //Acquisition parameters
     AddParameter(ParameterType_Group,"acqui","Acquisition parameters");
-    SetParameterDescription("acqui","This group allows to set the parameters related to the acquisition conditions.");
+    SetParameterDescription("acqui","This group allows setting the parameters related to the acquisition conditions.");
     //Minute
     AddParameter(ParameterType_Int, "acqui.minute",   "Minute");
     SetParameterDescription("acqui.minute", "Minute (0-59)");
@@ -285,7 +285,7 @@ private:
 
     //Atmospheric parameters (TOC)
     AddParameter(ParameterType_Group,"atmo","Atmospheric parameters (for TOC)");
-    SetParameterDescription("atmo","This group allows to set the atmospheric parameters.");
+    SetParameterDescription("atmo","This group allows setting the atmospheric parameters.");
     AddParameter(ParameterType_Choice,   "atmo.aerosol", "Aerosol Model");
     AddChoice("atmo.aerosol.noaersol",    "No Aerosol Model");
     AddChoice("atmo.aerosol.continental", "Continental");
@@ -318,7 +318,7 @@ private:
     AddParameter(ParameterType_InputFilename, "atmo.aeronet", "Aeronet File");
     SetParameterDescription("atmo.aeronet","Aeronet file containing atmospheric parameters");
     MandatoryOff("atmo.aeronet");
- 
+
     AddParameter(ParameterType_InputFilename, "atmo.rsr", "Relative Spectral Response File");
     std::ostringstream oss;
     oss << "Sensor relative spectral response file"<<std::endl;
@@ -375,7 +375,7 @@ private:
       if (newInputImage)
       {
         ossOutput << std::endl << "File: " << m_inImageName << std::endl;
-        
+
         //Check if valid metadata informations are available to compute ImageToLuminance and LuminanceToReflectance
         FloatVectorImageType::Pointer inImage = GetParameterFloatVectorImage("in");
         itk::MetaDataDictionary             dict = inImage->GetMetaDataDictionary();
@@ -397,7 +397,7 @@ private:
                      << "\tAcquisition Sun Azimuth Angle: " << lImageMetadataInterface->GetSunAzimuth() << std::endl
                      << "\tAcquisition Viewing Elevation Angle: " << lImageMetadataInterface->GetSatElevation() << std::endl
                      << "\tAcquisition Viewing Azimuth Angle: " << lImageMetadataInterface->GetSatAzimuth() << std::endl;
-         
+
            vlvector = lImageMetadataInterface->GetPhysicalGain();
            ossOutput << "\tAcquisition gain (per band): ";
            for(unsigned int k=0; k<vlvector.Size(); k++)
@@ -607,7 +607,7 @@ private:
     {
       // Try to retrieve information from file provided by user
       std::string filename(GetParameterString("acqui.gainbias"));
-      
+
       std::ifstream file(filename.c_str(), std::ios::in);
       if(file)
       {
@@ -643,13 +643,13 @@ private:
               m_LuminanceToImageFilter->SetAlpha(vlvector);
               GetLogger()->Info("Trying to get gains/biases information... OK (1/2)\n");
               break;
-              
+
               case 2 :
               m_ImageToLuminanceFilter->SetBeta(vlvector);
               m_LuminanceToImageFilter->SetBeta(vlvector);
               GetLogger()->Info("Trying to get gains/biases information... OK (2/2)\n");
               break;
-              
+
               default : itkExceptionMacro(<< "File : " << filename << " contains wrong number of lines (needs two, one for gains and one for biases)");
             }
           }
@@ -666,7 +666,7 @@ private:
       {
         m_ImageToLuminanceFilter->SetAlpha(lImageMetadataInterface->GetPhysicalGain());
         m_LuminanceToImageFilter->SetAlpha(lImageMetadataInterface->GetPhysicalGain());
-     
+
         m_ImageToLuminanceFilter->SetBeta(lImageMetadataInterface->GetPhysicalBias());
         m_LuminanceToImageFilter->SetBeta(lImageMetadataInterface->GetPhysicalBias());
       }
@@ -679,7 +679,7 @@ private:
     {
       // Try to retrieve information from file provided by user
       std::string filename(GetParameterString("acqui.solarilluminations"));
-      
+
       std::ifstream file(filename.c_str(), std::ios::in);
       if(file)
       {
@@ -741,7 +741,7 @@ private:
       case Level_IM_TOA:
       {
         GetLogger()->Info("Compute Top of Atmosphere reflectance\n");
-    
+
         //Pipeline
         m_ImageToLuminanceFilter->SetInput(inImage);
         m_LuminanceToReflectanceFilter->SetInput(m_ImageToLuminanceFilter->GetOutput());
@@ -759,7 +759,7 @@ private:
       case Level_TOA_IM:
       {
         GetLogger()->Info("Convert Top of Atmosphere reflectance to image DN\n");
-    
+
         //Pipeline
         m_ReflectanceToLuminanceFilter->SetInput(inImage);
         m_LuminanceToImageFilter->SetInput(m_ReflectanceToLuminanceFilter->GetOutput());
@@ -795,7 +795,7 @@ private:
           }
           break;
         }
-        
+
         // Set the atmospheric param
         m_paramAtmo->SetOzoneAmount(GetParameterFloat("atmo.oz"));
         m_paramAtmo->SetWaterVaporAmount(GetParameterFloat("atmo.wa"));
@@ -894,12 +894,12 @@ private:
         else
         {
           GetLogger()->Info("Clamp values between [0, 100]\n");
-          
+
           if (!adjComputation)
             m_ClampFilter->SetInput(m_ReflectanceToSurfaceReflectanceFilter->GetOutput());
           else
             m_ClampFilter->SetInput(m_SurfaceAdjacencyEffectCorrectionSchemeFilter->GetOutput());
-          
+
           m_ClampFilter->ClampOutside(0.0, 1.0);
           m_ScaleFilter->SetInput(m_ClampFilter->GetOutput());
         }
@@ -919,7 +919,7 @@ private:
         scale=1. / 1000.;
     }
     m_ScaleFilter->SetConstant(scale);
-    
+
     SetParameterOutputImage("out", m_ScaleFilter->GetOutput());
   }
 
diff --git a/Modules/Applications/AppProjection/app/otbGenerateRPCSensorModel.cxx b/Modules/Applications/AppProjection/app/otbGenerateRPCSensorModel.cxx
index f53308d..4d98fbf 100644
--- a/Modules/Applications/AppProjection/app/otbGenerateRPCSensorModel.cxx
+++ b/Modules/Applications/AppProjection/app/otbGenerateRPCSensorModel.cxx
@@ -60,7 +60,7 @@ private:
     SetDescription("Generate a RPC sensor model from a list of Ground Control Points.");
 
     SetDocName("Generate a RPC sensor model");
-    SetDocLongDescription("This application generates a RPC sensor model from a list of Ground Control Points. At least 20 points are required for estimation wihtout elevation support, and 40 points for estimation with elevation support. Elevation support will be automatically deactivated if an insufficient amount of points is provided. The application can optionnaly output a file containing accuracy statistics for each point, and a vector file containing segments represening points resi [...]
+    SetDocLongDescription("This application generates a RPC sensor model from a list of Ground Control Points. At least 20 points are required for estimation wihtout elevation support, and 40 points for estimation with elevation support. Elevation support will be automatically deactivated if an insufficient amount of points is provided. The application can optionnaly output a file containing accuracy statistics for each point, and a vector file containing segments represening points resi [...]
 
     AddDocTag(Tags::Geometry);
 
diff --git a/Modules/Applications/AppProjection/app/otbGridBasedImageResampling.cxx b/Modules/Applications/AppProjection/app/otbGridBasedImageResampling.cxx
index a15227d..dd2769e 100644
--- a/Modules/Applications/AppProjection/app/otbGridBasedImageResampling.cxx
+++ b/Modules/Applications/AppProjection/app/otbGridBasedImageResampling.cxx
@@ -107,7 +107,7 @@ private:
     SetDescription("Resamples an image according to a resampling grid");
 
     SetDocName("Grid Based Image Resampling");
-    SetDocLongDescription("This application allows to perform image resampling from an input resampling grid.");
+    SetDocLongDescription("This application allows performing image resampling from an input resampling grid.");
     SetDocLimitations("None");
     SetDocAuthors("OTB-Team");
 
@@ -116,7 +116,7 @@ private:
     SetDocSeeAlso("otbStereorecificationGridGeneration");
 
     AddParameter(ParameterType_Group,"io","Input and output data");
-    SetParameterDescription("io","This group of parameters allows to set the input and output images.");
+    SetParameterDescription("io","This group of parameters allows setting the input and output images.");
     AddParameter(ParameterType_InputImage,"io.in","Input image");
     SetParameterDescription("io.in","The input image to resample");
     AddParameter(ParameterType_OutputImage, "io.out", "Output Image");
@@ -126,7 +126,7 @@ private:
     AddParameter(ParameterType_InputImage,"grid.in","Input resampling grid");
     SetParameterDescription("grid.in","The resampling grid");
     AddParameter(ParameterType_Choice,   "grid.type", "Grid Type");
-    SetParameterDescription("grid.type","Allows to choose between two grid types");
+    SetParameterDescription("grid.type","allows one to choose between two grid types");
     AddChoice("grid.type.def","Displacement  grid: $G(x_out,y_out) = (x_in-x_out, y_in-y_out)$");
     SetParameterDescription("grid.type.def","A deformation grid contains at each grid position the offset to apply to this position in order to get to the corresponding point in the input image to resample");
     AddChoice("grid.type.loc","Localisation grid: $G(x_out,y_out) = (x_in, y_in)$");
@@ -161,14 +161,14 @@ private:
 
     // Interpolators
     AddParameter(ParameterType_Choice,   "interpolator", "Interpolation");
-    SetParameterDescription("interpolator","This group of parameters allows to define how the input image will be interpolated during resampling.");
+    SetParameterDescription("interpolator","This group of parameters allows one to define how the input image will be interpolated during resampling.");
     AddChoice("interpolator.nn",     "Nearest Neighbor interpolation");
     SetParameterDescription("interpolator.nn","Nearest neighbor interpolation leads to poor image quality, but it is very fast.");
     AddChoice("interpolator.linear", "Linear interpolation");
     SetParameterDescription("interpolator.linear","Linear interpolation leads to average image quality but is quite fast");
     AddChoice("interpolator.bco",    "Bicubic interpolation");
     AddParameter(ParameterType_Radius, "interpolator.bco.radius", "Radius for bicubic interpolation");
-    SetParameterDescription("interpolator.bco.radius","This parameter allows to control the size of the bicubic interpolation filter. If the target pixel size is higher than the input pixel size, increasing this parameter will reduce aliasing artefacts.");
+    SetParameterDescription("interpolator.bco.radius","This parameter allows controlling the size of the bicubic interpolation filter. If the target pixel size is higher than the input pixel size, increasing this parameter will reduce aliasing artefacts.");
     SetDefaultParameterInt("interpolator.bco.radius", 2);
     SetParameterString("interpolator","bco");
 
diff --git a/Modules/Applications/AppProjection/app/otbOrthoRectification.cxx b/Modules/Applications/AppProjection/app/otbOrthoRectification.cxx
index 7c2c997..aeaa067 100644
--- a/Modules/Applications/AppProjection/app/otbOrthoRectification.cxx
+++ b/Modules/Applications/AppProjection/app/otbOrthoRectification.cxx
@@ -88,7 +88,7 @@ private:
   {
     SetName("OrthoRectification");
     std::ostringstream oss;
-    oss << "This application allows to ortho-rectify optical images from supported sensors." << std::endl;
+    oss << "This application allows ortho-rectification of optical images from supported sensors." << std::endl;
     SetDescription(oss.str());
     // Documentation
     SetDocName("Ortho-rectification");
@@ -106,7 +106,7 @@ private:
 
     // Set the parameters
     AddParameter(ParameterType_Group,"io","Input and output data");
-    SetParameterDescription("io","This group of parameters allows to set the input and output images.");
+    SetParameterDescription("io","This group of parameters allows setting the input and output images.");
     AddParameter(ParameterType_InputImage, "io.in", "Input Image");
     SetParameterDescription("io.in","The input image to ortho-rectify");
     AddParameter(ParameterType_OutputImage, "io.out", "Output Image");
@@ -117,7 +117,7 @@ private:
 
     // Add the output paramters in a group
     AddParameter(ParameterType_Group, "outputs", "Output Image Grid");
-    SetParameterDescription("outputs","This group of parameters allows to define the grid on which the input image will be resampled.");
+    SetParameterDescription("outputs","This group of parameters allows one to define the grid on which the input image will be resampled.");
 
     // UserDefined values
     AddParameter(ParameterType_Choice, "outputs.mode", "Parameters estimation modes");
@@ -177,7 +177,7 @@ private:
     std::ostringstream isotropOss;
     isotropOss << "Default spacing (pixel size) values are estimated from the sensor modeling of the image. It can therefore result in a non-isotropic spacing. ";
     isotropOss << "This option allows you to force default values to be isotropic (in this case, the minimum of spacing in both direction is applied. ";
-    isotropOss << "Values overriden by user are not affected by this option.";
+    isotropOss << "Values overridden by user are not affected by this option.";
     SetParameterDescription("outputs.isotropic", isotropOss.str());
     EnableParameter("outputs.isotropic");
 
@@ -193,26 +193,26 @@ private:
     AddParameter(ParameterType_Choice,   "interpolator", "Interpolation");
     AddChoice("interpolator.bco",    "Bicubic interpolation");
     AddParameter(ParameterType_Radius, "interpolator.bco.radius", "Radius for bicubic interpolation");
-    SetParameterDescription("interpolator.bco.radius","This parameter allows to control the size of the bicubic interpolation filter. If the target pixel size is higher than the input pixel size, increasing this parameter will reduce aliasing artefacts.");
-    SetParameterDescription("interpolator","This group of parameters allows to define how the input image will be interpolated during resampling.");
+    SetParameterDescription("interpolator.bco.radius","This parameter allows one to control the size of the bicubic interpolation filter. If the target pixel size is higher than the input pixel size, increasing this parameter will reduce aliasing artefacts.");
+    SetParameterDescription("interpolator","This group of parameters allows one to define how the input image will be interpolated during resampling.");
     AddChoice("interpolator.nn",     "Nearest Neighbor interpolation");
     SetParameterDescription("interpolator.nn","Nearest neighbor interpolation leads to poor image quality, but it is very fast.");
     AddChoice("interpolator.linear", "Linear interpolation");
     SetParameterDescription("interpolator.linear","Linear interpolation leads to average image quality but is quite fast");
     SetDefaultParameterInt("interpolator.bco.radius", 2);
     AddParameter(ParameterType_Group,"opt","Speed optimization parameters");
-    SetParameterDescription("opt","This group of parameters allows to optimize processing time.");
+    SetParameterDescription("opt","This group of parameters allows optimization of processing time.");
 
     // Estimate a RPC model (for spot image for instance)
     AddParameter(ParameterType_Int, "opt.rpc", "RPC modeling (points per axis)");
     SetDefaultParameterInt("opt.rpc", 10);
-    SetParameterDescription("opt.rpc","Enabling RPC modeling allows to speed-up SPOT5 ortho-rectification. Value is the number of control points per axis for RPC estimation");
+    SetParameterDescription("opt.rpc","Enabling RPC modeling allows one to speed-up SPOT5 ortho-rectification. Value is the number of control points per axis for RPC estimation");
     DisableParameter("opt.rpc");
     MandatoryOff("opt.rpc");
 
     // RAM available
     AddRAMParameter("opt.ram");
-    SetParameterDescription("opt.ram","This allows to set the maximum amount of RAM available for processing. As the writing task is time consuming, it is better to write large pieces of data, which can be achieved by increasing this parameter (pay attention to your system capabilities)");
+    SetParameterDescription("opt.ram","This allows setting the maximum amount of RAM available for processing. As the writing task is time consuming, it is better to write large pieces of data, which can be achieved by increasing this parameter (pay attention to your system capabilities)");
 
     // Displacement Field Spacing
     AddParameter(ParameterType_Float, "opt.gridspacing", "Resampling grid spacing");
diff --git a/Modules/Applications/AppProjection/app/otbRefineSensorModel.cxx b/Modules/Applications/AppProjection/app/otbRefineSensorModel.cxx
index 08da67f..c296455 100644
--- a/Modules/Applications/AppProjection/app/otbRefineSensorModel.cxx
+++ b/Modules/Applications/AppProjection/app/otbRefineSensorModel.cxx
@@ -59,7 +59,7 @@ private:
     SetDescription("Perform least-square fit of a sensor model to a set of tie points");
 
     SetDocName("Refine Sensor Model");
-    SetDocLongDescription("This application reads a geom file containing a sensor model and a text file containing a list of ground control point, and performs a least-square fit of the sensor model adjustable parameters to these tie points. It produces an updated geom file as output, as well as an optional ground control points based statistics file and a vector file containing residues. The output geom file can then be used to ortho-rectify the data more accurately. Plaease note that f [...]
+    SetDocLongDescription("This application reads a geom file containing a sensor model and a text file containing a list of ground control point, and performs a least-square fit of the sensor model adjustable parameters to these tie points. It produces an updated geom file as output, as well as an optional ground control points based statistics file and a vector file containing residues. The output geom file can then be used to ortho-rectify the data more accurately. Plaease note that f [...]
 
     AddDocTag(Tags::Geometry);
 
diff --git a/Modules/Applications/AppProjection/app/otbRigidTransformResample.cxx b/Modules/Applications/AppProjection/app/otbRigidTransformResample.cxx
index ff58fc1..14f686b 100644
--- a/Modules/Applications/AppProjection/app/otbRigidTransformResample.cxx
+++ b/Modules/Applications/AppProjection/app/otbRigidTransformResample.cxx
@@ -100,7 +100,7 @@ private:
 
     //Transform
     AddParameter(ParameterType_Group,"transform","Transform parameters");
-    SetParameterDescription("transform","This group of parameters allows to set the transformation to apply.");
+    SetParameterDescription("transform","This group of parameters allows setting the transformation to apply.");
 
     AddParameter(ParameterType_Choice, "transform.type", "Type of transformation");
     SetParameterDescription("transform.type","Type of transformation. Available transformations are spatial scaling, translation and rotation with scaling factor");
@@ -148,20 +148,20 @@ private:
 
     // Interpolators
     AddParameter(ParameterType_Choice,   "interpolator", "Interpolation");
-    SetParameterDescription("interpolator","This group of parameters allows to define how the input image will be interpolated during resampling.");
+    SetParameterDescription("interpolator","This group of parameters allows one to define how the input image will be interpolated during resampling.");
     AddChoice("interpolator.nn",     "Nearest Neighbor interpolation");
     SetParameterDescription("interpolator.nn","Nearest neighbor interpolation leads to poor image quality, but it is very fast.");
     AddChoice("interpolator.linear", "Linear interpolation");
     SetParameterDescription("interpolator.linear","Linear interpolation leads to average image quality but is quite fast");
     AddChoice("interpolator.bco",    "Bicubic interpolation");
     AddParameter(ParameterType_Radius, "interpolator.bco.radius", "Radius for bicubic interpolation");
-    SetParameterDescription("interpolator.bco.radius","This parameter allows to control the size of the bicubic interpolation filter. If the target pixel size is higher than the input pixel size, increasing this parameter will reduce aliasing artefacts.");
+    SetParameterDescription("interpolator.bco.radius","This parameter allows controlling the size of the bicubic interpolation filter. If the target pixel size is higher than the input pixel size, increasing this parameter will reduce aliasing artefacts.");
     SetDefaultParameterInt("interpolator.bco.radius", 2);
     SetParameterString("interpolator","bco");
 
     // RAM available
     AddRAMParameter("ram");
-    SetParameterDescription("ram","This allows to set the maximum amount of RAM available for processing. As the writing task is time consuming, it is better to write large pieces of data, which can be achieved by increasing this parameter (pay attention to your system capabilities)");
+    SetParameterDescription("ram","This allows setting the maximum amount of RAM available for processing. As the writing task is time consuming, it is better to write large pieces of data, which can be achieved by increasing this parameter (pay attention to your system capabilities)");
 
     // Doc example parameter settings
     SetDocExampleParameterValue("in", "qb_toulouse_sub.tif");
diff --git a/Modules/Applications/AppProjection/app/otbSuperimpose.cxx b/Modules/Applications/AppProjection/app/otbSuperimpose.cxx
index f78c135..b44ce6d 100644
--- a/Modules/Applications/AppProjection/app/otbSuperimpose.cxx
+++ b/Modules/Applications/AppProjection/app/otbSuperimpose.cxx
@@ -121,13 +121,13 @@ private:
     
     // Interpolators
     AddParameter(ParameterType_Choice,   "interpolator", "Interpolation");
-    SetParameterDescription("interpolator","This group of parameters allows to define how the input image will be interpolated during resampling.");
+    SetParameterDescription("interpolator","This group of parameters allows defining how the input image will be interpolated during resampling.");
 
     AddChoice("interpolator.bco",    "Bicubic interpolation");
     SetParameterDescription("interpolator.bco", "Bicubic interpolation leads to very good image quality but is slow.");
 
     AddParameter(ParameterType_Radius, "interpolator.bco.radius", "Radius for bicubic interpolation");
-    SetParameterDescription("interpolator.bco.radius","This parameter allows to control the size of the bicubic interpolation filter. If the target pixel size is higher than the input pixel size, increasing this parameter will reduce aliasing artefacts.");
+    SetParameterDescription("interpolator.bco.radius","This parameter allows controling the size of the bicubic interpolation filter. If the target pixel size is higher than the input pixel size, increasing this parameter will reduce aliasing artefacts.");
     SetDefaultParameterInt("interpolator.bco.radius", 2);
 
     AddChoice("interpolator.nn",     "Nearest Neighbor interpolation");
diff --git a/Modules/Applications/AppProjection/app/otbVectorDataReprojection.cxx b/Modules/Applications/AppProjection/app/otbVectorDataReprojection.cxx
index 7e7a7d8..a055576 100644
--- a/Modules/Applications/AppProjection/app/otbVectorDataReprojection.cxx
+++ b/Modules/Applications/AppProjection/app/otbVectorDataReprojection.cxx
@@ -61,13 +61,13 @@ private:
   {
     SetName("VectorDataReprojection");
     std::ostringstream oss;
-    oss << "This application allows to reproject a vector data using support image projection reference"
+    oss << "Reproject a vector data using support image projection reference"
         ", or a user specified map projection" << std::endl;
     SetDescription(oss.str());
     // Documentation
     SetDocName("Vector Data reprojection");
     oss.str("");
-    oss <<" This application allows to reproject a vector data using support image projection reference"
+    oss <<" This application allows reprojecting a vector data using support image projection reference"
         ", or a user given map projection." << std::endl;
     oss <<" If given, image keywordlist can be added to reprojected vectordata.";
     SetDocLongDescription(oss.str());
diff --git a/Modules/Applications/AppSARCalibration/app/otbSarRadiometricCalibration.cxx b/Modules/Applications/AppSARCalibration/app/otbSarRadiometricCalibration.cxx
index 3aa03c2..e18bc6a 100644
--- a/Modules/Applications/AppSARCalibration/app/otbSarRadiometricCalibration.cxx
+++ b/Modules/Applications/AppSARCalibration/app/otbSarRadiometricCalibration.cxx
@@ -49,7 +49,7 @@ private:
 
     // Documentation
     SetDocName("SAR Radiometric calibration");
-    SetDocLongDescription("The objective of SAR calibration is to provide imagery in which the pixel values can be directly related to the radar backscatter of the scene. This application allows to compute Sigma Naught (Radiometric Calibration) for TerraSAR-X, Sentinel1 L1 and Radarsat-2 sensors. Metadata are automatically retrieved from image products.The application supports complex and non-complex images (SLC or detected products).\n");
+    SetDocLongDescription("The objective of SAR calibration is to provide imagery in which the pixel values can be directly related to the radar backscatter of the scene. This application allows computing Sigma Naught (Radiometric Calibration) for TerraSAR-X, Sentinel1 L1 and Radarsat-2 sensors. Metadata are automatically retrieved from image products.The application supports complex and non-complex images (SLC or detected products).\n");
     SetDocLimitations("None");
     SetDocAuthors("OTB-Team");
     SetDocSeeAlso(" ");
diff --git a/Modules/Applications/AppSARDecompositions/app/otbSARDecompositions.cxx b/Modules/Applications/AppSARDecompositions/app/otbSARDecompositions.cxx
index a159356..fdff656 100644
--- a/Modules/Applications/AppSARDecompositions/app/otbSARDecompositions.cxx
+++ b/Modules/Applications/AppSARDecompositions/app/otbSARDecompositions.cxx
@@ -111,7 +111,7 @@ private:
     SetParameterDescription("decomp.haa","H-alpha-A decomposition");
     
     AddParameter(ParameterType_Group,"inco","Incoherent decompositions");
-    SetParameterDescription("inco","This group allows to set parameters related to the incoherent decompositions.");
+    SetParameterDescription("inco","This group allows setting parameters related to the incoherent decompositions.");
     
     AddParameter(ParameterType_Int, "inco.kernelsize",   "Kernel size for spatial incoherent averaging.");
     SetParameterDescription("inco.kernelsize", "Minute (0-59)");
diff --git a/Modules/Applications/AppSegmentation/app/otbConnectedComponentSegmentation.cxx b/Modules/Applications/AppSegmentation/app/otbConnectedComponentSegmentation.cxx
index fc6a15c..ae569d6 100644
--- a/Modules/Applications/AppSegmentation/app/otbConnectedComponentSegmentation.cxx
+++ b/Modules/Applications/AppSegmentation/app/otbConnectedComponentSegmentation.cxx
@@ -71,7 +71,7 @@ private:
     SetName("ConnectedComponentSegmentation");
     SetDescription("Connected component segmentation and object based image filtering of the input image according to user-defined criterions.");
     SetDocName("Connected Component Segmentation");
-    SetDocLongDescription("This application allows to perform a masking, connected components segmentation and object based image filtering. First and optionally, a mask can be built based on user-defined criterions to select pixels of the image which will be segmented. Then a connected component segmentation is performed with a user defined criterion to decide whether two neighbouring pixels belong to the same segment or not. After this segmentation step, an object based image filtering [...]
+    SetDocLongDescription("This application allows one to perform a masking, connected components segmentation and object based image filtering. First and optionally, a mask can be built based on user-defined criterions to select pixels of the image which will be segmented. Then a connected component segmentation is performed with a user defined criterion to decide whether two neighbouring pixels belong to the same segment or not. After this segmentation step, an object based image filte [...]
     SetDocLimitations("Due to the tiling scheme in case of large images, some segments can be arbitrarily split across multiple tiles.");
     SetDocAuthors("OTB-Team");
     SetDocSeeAlso(" ");
diff --git a/Modules/Applications/AppSegmentation/app/otbLSMSSegmentation.cxx b/Modules/Applications/AppSegmentation/app/otbLSMSSegmentation.cxx
index 0f50064..f693b50 100644
--- a/Modules/Applications/AppSegmentation/app/otbLSMSSegmentation.cxx
+++ b/Modules/Applications/AppSegmentation/app/otbLSMSSegmentation.cxx
@@ -217,7 +217,7 @@ private:
     SetDescription("Second step of the exact Large-Scale Mean-Shift segmentation workflow.");
 
     SetDocName("Exact Large-Scale Mean-Shift segmentation, step 2");
-    SetDocLongDescription("This application performs the second step of the exact Large-Scale Mean-Shift segmentation workflow (LSMS). Filtered range image and spatial image should be created with the MeanShiftSmoothing application, with modesearch parameter disabled. If spatial image is not set, the application will only process the range image and spatial radius parameter will not be taken into account. This application will produce a labeled image where neighbor pixels whose range dis [...]
+    SetDocLongDescription("This application performs the second step of the exact Large-Scale Mean-Shift segmentation workflow (LSMS). Filtered range image and spatial image should be created with the MeanShiftSmoothing application, with modesearch parameter disabled. If spatial image is not set, the application will only process the range image and spatial radius parameter will not be taken into account. This application will produce a labeled image where neighbor pixels whose range dis [...]
     SetDocLimitations("This application is part of the Large-Scale Mean-Shift segmentation workflow (LSMS) and may not be suited for any other purpose.");
     SetDocAuthors("David Youssefi");
     SetDocSeeAlso("MeanShiftSmoothing, LSMSSmallRegionsMerging, LSMSVectorization");
@@ -713,5 +713,3 @@ private:
 }
 
 OTB_APPLICATION_EXPORT(otb::Wrapper::LSMSSegmentation)
-
-
diff --git a/Modules/Applications/AppSegmentation/app/otbSegmentation.cxx b/Modules/Applications/AppSegmentation/app/otbSegmentation.cxx
index 00515af..c726d12 100644
--- a/Modules/Applications/AppSegmentation/app/otbSegmentation.cxx
+++ b/Modules/Applications/AppSegmentation/app/otbSegmentation.cxx
@@ -138,7 +138,7 @@ private:
 
     // Documentation
     SetDocName("Segmentation");
-    SetDocLongDescription("This application allows to perform various segmentation algorithms on a multispectral image."
+    SetDocLongDescription("This application allows one to perform various segmentation algorithms on a multispectral image."
                           "Available segmentation algorithms are two different versions of Mean-Shift segmentation algorithm (one being multi-threaded),"
                           " simple pixel based connected components according to a user-defined criterion, and watershed from the gradient of the intensity"
                           " (norm of spectral bands vector). The application has two different modes that affects the nature of its output.\n\nIn raster mode,"
@@ -147,8 +147,8 @@ private:
                           " can not handle large images. \n\nTo segment large data, one can use the vector mode. In this case, the output of the application is a"
                           " vector file or database. The input image is split into tiles (whose size can be set using the tilesize parameter), and each tile is loaded, segmented"
                           " with the chosen algorithm, vectorized, and written into the output file or database. This piece-wise behavior ensure that memory will never get overloaded,"
-                          " and that images of any size can be processed. There are few more options in the vector mode. The simplify option allows to simplify the geometry"
-                          " (i.e. remove nodes in polygons) according to a user-defined tolerance. The stitch option allows to application to try to stitch together polygons corresponding"
+                          " and that images of any size can be processed. There are few more options in the vector mode. The simplify option allows simplifying the geometry"
+                          " (i.e. remove nodes in polygons) according to a user-defined tolerance. The stitch option tries to stitch together the polygons corresponding"
                           " to segmented region that may have been split by the tiling scheme. ");
 
     SetDocLimitations("In raster mode, the application can not handle large input images. Stitching step of vector mode might become slow with very large input images."
@@ -223,7 +223,7 @@ private:
     SetParameterDescription("mode", "Choice of processing mode, either raster or large-scale.");
 
     AddChoice("mode.vector", "Tile-based large-scale segmentation with vector output");
-    SetParameterDescription("mode.vector","In this mode, the application will output a vector file or database, and process the input image piecewise. This allows to perform segmentation of very large images.");
+    SetParameterDescription("mode.vector","In this mode, the application will output a vector file or database, and process the input image piecewise. This allows performing segmentation of very large images.");
 
     AddChoice("mode.raster", "Standard segmentation with labeled raster output");
     SetParameterDescription("mode.raster","In this mode, the application will output a standard labeled raster. This mode can not handle large data.");
@@ -258,9 +258,9 @@ private:
     SetParameterDescription("mode.vector.out", "The output vector file or database (name can be anything understood by OGR)");
 
     AddParameter(ParameterType_Choice,"mode.vector.outmode","Writing mode for the output vector file");
-    SetParameterDescription("mode.vector.outmode","This allows to set the writing behaviour for the output vector file. Please note that the actual behaviour depends on the file format.");
+    SetParameterDescription("mode.vector.outmode","This allows one to set the writing behaviour for the output vector file. Please note that the actual behaviour depends on the file format.");
 
-    AddChoice("mode.vector.outmode.ulco","Update output vector file, only allow to create new layers");
+    AddChoice("mode.vector.outmode.ulco","Update output vector file, only allow creating new layers");
     SetParameterDescription("mode.vector.outmode.ulco","The output vector file is opened in update mode if existing. If the output layer already exists, the application stops, leaving it untouched.");
 
     AddChoice("mode.vector.outmode.ovw","Overwrite output vector file if existing.");
@@ -298,7 +298,7 @@ private:
 
     AddParameter(ParameterType_Float, "mode.vector.simplify", "Simplify polygons");
     SetParameterDescription("mode.vector.simplify",
-                            "Simplify polygons according to a given tolerance (in pixel). This option allows to reduce the size of the output file or database.");
+                            "Simplify polygons according to a given tolerance (in pixel). This option allows reducing the size of the output file or database.");
     SetDefaultParameterFloat("mode.vector.simplify",0.1);
     MandatoryOff("mode.vector.simplify");
     DisableParameter("mode.vector.simplify");
diff --git a/Modules/Applications/AppStereo/app/otbBlockMatching.cxx b/Modules/Applications/AppStereo/app/otbBlockMatching.cxx
index 246fef0..7595b20 100644
--- a/Modules/Applications/AppStereo/app/otbBlockMatching.cxx
+++ b/Modules/Applications/AppStereo/app/otbBlockMatching.cxx
@@ -127,11 +127,11 @@ private:
     SetDescription("Performs block-matching to estimate pixel-wise disparities between two images");
 
     SetDocName("Pixel-wise Block-Matching");
-    SetDocLongDescription("This application allows to performs block-matching to estimate pixel-wise disparities "
-      "between two images. The application allows to choose the block-matching method to use. It also allows to input"
+    SetDocLongDescription("This application allows one to performs block-matching to estimate pixel-wise disparities "
+      "between two images. One must chose block-matching method and input"
       " masks (related to the left and right input image) of pixels for which the disparity should be investigated. "
       "Additionally, two criteria can be optionally used to disable disparity investigation for some pixel: a "
-      "no-data value, and a threshold on the local variance. This allows to speed-up computation by avoiding to "
+      "no-data value, and a threshold on the local variance. This allows one to speed-up computation by avoiding to "
       "investigate disparities that will not be reliable anyway. For efficiency reasons, if the optimal metric values"
       " image is desired, it will be concatenated to the output image (which will then have three bands : horizontal "
       "disparity, vertical disparity and metric value). One can split these images afterward.");
@@ -142,7 +142,7 @@ private:
     AddDocTag(Tags::Stereo);
 
     AddParameter(ParameterType_Group,"io","Input and output data");
-    SetParameterDescription("io","This group of parameters allows to set the input and output images.");
+    SetParameterDescription("io","This group of parameters allows setting the input and output images.");
 
     AddParameter(ParameterType_InputImage,"io.inleft","Left input image");
     SetParameterDescription("io.inleft","The left input image (reference)");
@@ -163,30 +163,30 @@ private:
     SetParameterDescription("io.outmetric","If used, the output image will have a second component with metric optimal values");
 
     AddParameter(ParameterType_Group,"mask","Image masking parameters");
-    SetParameterDescription("mask","This group of parameters allows to determine the masking parameters to prevent disparities estimation for some pixels of the left image");
+    SetParameterDescription("mask","This group of parameters allows determining the masking parameters to prevent disparities estimation for some pixels of the left image");
 
     AddParameter(ParameterType_InputImage,"mask.inleft","Discard left pixels from mask image");
-    SetParameterDescription("mask.inleft","This parameter allows to provide a custom mask for the left image.Block matching will be only perform on pixels inside the mask.");
+    SetParameterDescription("mask.inleft","This parameter allows providing a custom mask for the left image.Block matching will be only perform on pixels inside the mask.");
     MandatoryOff("mask.inleft");
 
     AddParameter(ParameterType_InputImage,"mask.inright","Discard right pixels from mask image");
-    SetParameterDescription("mask.inright","This parameter allows to provide a custom mask for the right image.Block matching will be perform only on pixels inside the mask.");
+    SetParameterDescription("mask.inright","This parameter allows providing a custom mask for the right image.Block matching will be perform only on pixels inside the mask.");
     MandatoryOff("mask.inright");
 
     AddParameter(ParameterType_Float,"mask.nodata","Discard pixels with no-data value");
-    SetParameterDescription("mask.nodata","This parameter allows to discard pixels whose value is equal to the user-defined no-data value.");
+    SetParameterDescription("mask.nodata","This parameter allows discarding pixels whose value is equal to the user-defined no-data value.");
     MandatoryOff("mask.nodata");
     SetDefaultParameterFloat("mask.nodata",0.);
     DisableParameter("mask.nodata");
 
     AddParameter(ParameterType_Float,"mask.variancet","Discard pixels with low local variance");
-    SetParameterDescription("mask.variancet","This parameter allows to discard pixels whose local variance is too small (the size of the neighborhood is given by the radius parameter)");
+    SetParameterDescription("mask.variancet","This parameter allows discarding pixels whose local variance is too small (the size of the neighborhood is given by the radius parameter)");
     MandatoryOff("mask.variancet");
     SetDefaultParameterFloat("mask.variancet",100.);
     DisableParameter("mask.variancet");
 
     AddParameter(ParameterType_Group,"bm","Block matching parameters");
-    SetParameterDescription("bm","This group of parameters allow to tune the block-matching behaviour");
+    SetParameterDescription("bm","This group of parameters allow tuning the block-matching behaviour");
 
     AddParameter(ParameterType_Choice,   "bm.metric", "Block-matching metric");
     AddChoice("bm.metric.ssd","Sum of Squared Distances");
diff --git a/Modules/Applications/AppStereo/app/otbDisparityMapToElevationMap.cxx b/Modules/Applications/AppStereo/app/otbDisparityMapToElevationMap.cxx
index 76d6e67..3f434a7 100644
--- a/Modules/Applications/AppStereo/app/otbDisparityMapToElevationMap.cxx
+++ b/Modules/Applications/AppStereo/app/otbDisparityMapToElevationMap.cxx
@@ -76,7 +76,7 @@ private:
     AddDocTag(Tags::Stereo);
 
     AddParameter(ParameterType_Group,"io","Input and output data");
-    SetParameterDescription("io","This group of parameters allows to set the input and output images and grids.");
+    SetParameterDescription("io","This group of parameters allows one to set input images, output images and grids.");
 
     AddParameter(ParameterType_InputImage,"io.in","Input disparity map");
     SetParameterDescription("io.in","The input disparity map (horizontal disparity in first band, vertical in second)");
diff --git a/Modules/Applications/AppStereo/app/otbStereoFramework.cxx b/Modules/Applications/AppStereo/app/otbStereoFramework.cxx
index bd9677a..04e76e9 100644
--- a/Modules/Applications/AppStereo/app/otbStereoFramework.cxx
+++ b/Modules/Applications/AppStereo/app/otbStereoFramework.cxx
@@ -341,7 +341,7 @@ private:
 
     // Add the output paramters in a group
     AddParameter(ParameterType_Group, "input", "Input parameters");
-    SetParameterDescription("input","This group of parameters allows to parametrize input data.");
+    SetParameterDescription("input","This group of parameters allows one to parametrize input data.");
 
     AddParameter(ParameterType_InputImageList,  "input.il",   "Input images list");
     SetParameterDescription("input.il", "The list of images.");
@@ -362,7 +362,7 @@ private:
 
     // Add the output paramters in a group
     AddParameter(ParameterType_Group, "output", "Output parameters");
-    SetParameterDescription("output","This group of parameters allows to choose the DSM resolution, nodata value, and projection parameters.");
+    SetParameterDescription("output","This group of parameters allows one to choose the DSM resolution, nodata value, and projection parameters.");
 
     // // Build the Output Map Projection
     // for custom map projection
@@ -380,7 +380,7 @@ private:
 
     // UserDefined values
     AddParameter(ParameterType_Choice, "output.fusionmethod", "Method to fuse measures in each DSM cell");
-    SetParameterDescription("output.fusionmethod","This parameter allows to choose the method used to fuse elevation measurements in each output DSM cell");
+    SetParameterDescription("output.fusionmethod","This parameter allows one to choose the method used to fuse elevation measurements in each output DSM cell");
     AddChoice("output.fusionmethod.max", "The cell is filled with the maximum measured elevation values");
     AddChoice("output.fusionmethod.min", "The cell is filled with the minimum measured elevation values");
     AddChoice("output.fusionmethod.mean","The cell is filled with the mean of measured elevation values");
@@ -419,7 +419,7 @@ private:
 
     // Add the output paramters in a group
     AddParameter(ParameterType_Group, "stereorect", "Stereorectification Grid parameters");
-    SetParameterDescription("stereorect","This group of parameters allows to choose direct and inverse grid subsampling. These parameters are very useful to tune time and memory consumption.");
+    SetParameterDescription("stereorect","This group of parameters allows one to choose direct and inverse grid subsampling. These parameters are very useful to tune time and memory consumption.");
 
     AddParameter(ParameterType_Int,"stereorect.fwdgridstep","Step of the displacement grid (in pixels)");
     SetParameterDescription("stereorect.fwdgridstep","Stereo-rectification displacement grid only varies slowly. Therefore, it is recommended to use a coarser grid (higher step value) in case of large images");
@@ -427,13 +427,13 @@ private:
     MandatoryOff("stereorect.fwdgridstep");
 
     AddParameter(ParameterType_Int, "stereorect.invgridssrate", "Sub-sampling rate for epipolar grid inversion");
-    SetParameterDescription("stereorect.invgridssrate","Grid inversion is an heavy process that implies spline regression on control points. To avoid eating to much memory, this parameter allows to first sub-sample the field to invert.");
+    SetParameterDescription("stereorect.invgridssrate","Grid inversion is an heavy process that implies spline regression on control points. To avoid eating to much memory, this parameter allows one to first sub-sample the field to invert.");
     SetDefaultParameterInt("stereorect.invgridssrate",10);
     SetMinimumParameterIntValue("stereorect.invgridssrate",1);
     MandatoryOff("stereorect.invgridssrate");
 
     AddParameter(ParameterType_Group,"bm","Block matching parameters");
-    SetParameterDescription("bm","This group of parameters allow to tune the block-matching behavior");
+    SetParameterDescription("bm","This group of parameters allow tuning the block-matching behavior");
 
     AddParameter(ParameterType_Choice,   "bm.metric", "Block-matching metric");
     //SetDefaultParameterInt("bm.metric",3);
@@ -506,7 +506,7 @@ private:
     DisableParameter("mask.right");
 
     AddParameter(ParameterType_Float,"mask.variancet","Discard pixels with low local variance");
-    SetParameterDescription("mask.variancet","This parameter allows to discard pixels whose local variance is too small (the size of the neighborhood is given by the radius parameter)");
+    SetParameterDescription("mask.variancet","This parameter allows one to discard pixels whose local variance is too small (the size of the neighborhood is given by the radius parameter)");
     MandatoryOff("mask.variancet");
     SetDefaultParameterFloat("mask.variancet",50.);
     //DisableParameter("mask.variancet");
diff --git a/Modules/Applications/AppStereo/app/otbStereoRectificationGridGenerator.cxx b/Modules/Applications/AppStereo/app/otbStereoRectificationGridGenerator.cxx
index 69d51c3..35a7879 100644
--- a/Modules/Applications/AppStereo/app/otbStereoRectificationGridGenerator.cxx
+++ b/Modules/Applications/AppStereo/app/otbStereoRectificationGridGenerator.cxx
@@ -111,7 +111,7 @@ private:
     SetDocSeeAlso("otbGridBasedImageResampling");
 
     AddParameter(ParameterType_Group,"io","Input and output data");
-    SetParameterDescription("io","This group of parameters allows to set the input and output images.");
+    SetParameterDescription("io","This group of parameters allows setting the input and output images.");
     AddParameter(ParameterType_InputImage,"io.inleft","Left input image");
     SetParameterDescription("io.inleft","The left input image to resample");
 
@@ -155,11 +155,11 @@ private:
     DisableParameter("epi.elevation.avgdem.maxdisp");
 
     AddParameter(ParameterType_Float,"epi.scale","Scale of epipolar images");
-    SetParameterDescription("epi.scale","The scale parameter allows to generated zoomed-in (scale < 1) or zoomed-out (scale > 1) epipolar images.");
+    SetParameterDescription("epi.scale","The scale parameter allows generating zoomed-in (scale < 1) or zoomed-out (scale > 1) epipolar images.");
     SetDefaultParameterFloat("epi.scale",1.);
 
     AddParameter(ParameterType_Int,"epi.step","Step of the deformation grid (in nb. of pixels)");
-    SetParameterDescription("epi.step","Stereo-rectification deformation grid only varies slowly. Therefore, it is recommanded to use a coarser grid (higher step value) in case of large images");
+    SetParameterDescription("epi.step","Stereo-rectification deformation grid only varies slowly. Therefore, it is recommended to use a coarser grid (higher step value) in case of large images");
     SetDefaultParameterInt("epi.step",1);
 
     AddParameter(ParameterType_Int,"epi.rectsizex","Rectified image size X");
@@ -175,7 +175,7 @@ private:
     SetParameterRole("epi.baseline", Role_Output);
 
     AddParameter(ParameterType_Group,"inverse","Write inverse fields");
-    SetParameterDescription("inverse","This group of parameter allows to generate the inverse fields as well");
+    SetParameterDescription("inverse","This group of parameter allows generating the inverse fields as well");
 
     AddParameter(ParameterType_OutputImage, "inverse.outleft", "Left inverse deformation grid");
     SetParameterDescription("inverse.outleft","The output deformation grid to be used to resample the epipolar left image");
@@ -186,7 +186,7 @@ private:
     MandatoryOff("inverse.outright");
 
     AddParameter(ParameterType_Int, "inverse.ssrate", "Sub-sampling rate for inversion");
-    SetParameterDescription("inverse.ssrate","Grid inversion is an heavy process that implies spline regression on control points. To avoid eating to much memory, this parameter allows to first sub-sample the field to invert.");
+    SetParameterDescription("inverse.ssrate","Grid inversion is an heavy process that implies spline regression on control points. To avoid eating to much memory, this parameter allows one to first sub-sample the field to invert.");
     SetDefaultParameterInt("inverse.ssrate",16);
     SetMinimumParameterIntValue("inverse.ssrate",1);
 
@@ -285,7 +285,7 @@ private:
       FloatVectorImageType::PointType lorigin = GetParameterImage("io.inleft")->GetOrigin();
       FloatVectorImageType::SpacingType lspacing = GetParameterImage("io.inleft")->GetSpacing();
       FloatVectorImageType::SizeType lsize = GetParameterImage("io.inleft")->GetLargestPossibleRegion().GetSize();
-  
+
       if (lsize[0]*lsize[1]>256*256)
         otbAppLogWARNING("Left image's size (" << lsize[0] << "x" << lsize[1] << ") may result in a too high computational demand. Please consider setting inverse.ssrate parameter correctly (actual value is " << GetParameterInt("inverse.ssrate") << ").");
 
diff --git a/Modules/Applications/AppTextures/app/otbHaralickTextureExtraction.cxx b/Modules/Applications/AppTextures/app/otbHaralickTextureExtraction.cxx
index d7664f2..7695115 100644
--- a/Modules/Applications/AppTextures/app/otbHaralickTextureExtraction.cxx
+++ b/Modules/Applications/AppTextures/app/otbHaralickTextureExtraction.cxx
@@ -90,7 +90,7 @@ SetMinimumParameterIntValue("channel", 1);
 AddRAMParameter();
 
 AddParameter(ParameterType_Group, "parameters", "Texture feature parameters");
-SetParameterDescription("parameters","This group of parameters allows to define texture parameters.");
+SetParameterDescription("parameters","This group of parameters allows one to define texture parameters.");
 
 AddParameter(ParameterType_Int,"parameters.xrad","X Radius");
 SetParameterDescription("parameters.xrad", "X Radius");
diff --git a/Modules/Applications/AppTextures/app/otbSFSTextureExtraction.cxx b/Modules/Applications/AppTextures/app/otbSFSTextureExtraction.cxx
index f987119..8369046 100644
--- a/Modules/Applications/AppTextures/app/otbSFSTextureExtraction.cxx
+++ b/Modules/Applications/AppTextures/app/otbSFSTextureExtraction.cxx
@@ -81,7 +81,7 @@ SetMinimumParameterIntValue("channel", 1);
 AddRAMParameter();
 
 AddParameter(ParameterType_Group, "parameters", "Texture feature parameters");
-SetParameterDescription("parameters","This group of parameters allows to define SFS texture parameters.\
+SetParameterDescription("parameters","This group of parameters allows one to define SFS texture parameters.\
     The available texture features are SFS'Length, SFS'Width, SFS'PSI, SFS'W-Mean, SFS'Ratio and SFS'SD.\
     They are provided in this exact order in the output image.");
 
diff --git a/Modules/Applications/AppVectorDataTranslation/app/otbRasterization.cxx b/Modules/Applications/AppVectorDataTranslation/app/otbRasterization.cxx
index 588940d..0428b2d 100644
--- a/Modules/Applications/AppVectorDataTranslation/app/otbRasterization.cxx
+++ b/Modules/Applications/AppVectorDataTranslation/app/otbRasterization.cxx
@@ -63,7 +63,7 @@ private:
     SetDescription("Rasterize a vector dataset.");
 
     SetDocName("Rasterization");
-    SetDocLongDescription("This application allows to reproject and rasterize a vector dataset. The grid of the rasterized output can be set by using a reference image, or by setting all parmeters (origin, size, spacing) by hand. In the latter case, at least the spacing (ground sampling distance) is needed (other parameters are computed automatically). The rasterized output can also be in a different projection reference system than the input dataset.\n There are two rasterize mode avail [...]
+    SetDocLongDescription("This application allows reprojecting and rasterize a vector dataset. The grid of the rasterized output can be set by using a reference image, or by setting all parmeters (origin, size, spacing) by hand. In the latter case, at least the spacing (ground sampling distance) is needed (other parameters are computed automatically). The rasterized output can also be in a different projection reference system than the input dataset.\n There are two rasterize mode avail [...]
     SetDocLimitations("None");
     SetDocAuthors("OTB-Team");
     SetDocSeeAlso("For now, support of input dataset with multiple layers having different projection reference system is limited.");
diff --git a/Modules/Applications/AppVectorUtils/app/otbOSMDownloader.cxx b/Modules/Applications/AppVectorUtils/app/otbOSMDownloader.cxx
index d0c8e11..e3ef0a1 100644
--- a/Modules/Applications/AppVectorUtils/app/otbOSMDownloader.cxx
+++ b/Modules/Applications/AppVectorUtils/app/otbOSMDownloader.cxx
@@ -53,7 +53,7 @@ private:
     SetDescription("Generate a vector data from OSM on the input image extend");
     // Documentation
     SetDocName("Open Street Map layers importations applications");
-    SetDocLongDescription("Generate a vector data from Open Street Map data. A DEM could be use. By default, the entire layer is downloaded, an image can be use as support for the OSM data. The application can provide also available classes in layers . This application required an Internet access. Informations about the OSM project : http://www.openstreetmap.fr/");
+    SetDocLongDescription("Generate a vector data from Open Street Map data. A DEM could be use. By default, the entire layer is downloaded, an image can be use as support for the OSM data. The application can provide also available classes in layers . This application required an Internet access. Information about the OSM project : http://www.openstreetmap.fr/");
     SetDocLimitations("None");
     SetDocAuthors("OTB-Team");
     SetDocSeeAlso("Convertion");
diff --git a/Modules/Core/Common/include/otbModelComponentBase.txx b/Modules/Core/Common/include/otbModelComponentBase.txx
index bfdb3c7..7c04686 100644
--- a/Modules/Core/Common/include/otbModelComponentBase.txx
+++ b/Modules/Core/Common/include/otbModelComponentBase.txx
@@ -187,7 +187,7 @@ ModelComponentBase<TSample>
 ::GenerateData()
 {
   /** subclasses should override this function to perform
-   *  parameter estimation. But it allows to switch m_SampleModified
+   *  parameter estimation. But it allows switching m_SampleModified
    *  when necessary.
    */
   m_SampleModified = 0;
diff --git a/Modules/Core/Common/include/otbSubsampledImageRegionConstIterator.h b/Modules/Core/Common/include/otbSubsampledImageRegionConstIterator.h
index ef49212..def95bc 100644
--- a/Modules/Core/Common/include/otbSubsampledImageRegionConstIterator.h
+++ b/Modules/Core/Common/include/otbSubsampledImageRegionConstIterator.h
@@ -71,7 +71,7 @@ public:
    * it needs to be redone here for this subclass to compile properly with gcc. */
   typedef typename Superclass::ImageType ImageType;
 
-  /** Offset typedef support. This explicit redefinition allows to Set/Get
+  /** Offset typedef support. This explicit redefinition allows Setting/Getting
    * the location of the iterator. */
   //typedef typename Superclass::OffsetType OffsetType;
   typedef unsigned long OffsetType;
diff --git a/Modules/Core/ImageBase/include/otbImage.h b/Modules/Core/ImageBase/include/otbImage.h
index 12081b0..2d8e30d 100644
--- a/Modules/Core/ImageBase/include/otbImage.h
+++ b/Modules/Core/ImageBase/include/otbImage.h
@@ -67,7 +67,7 @@ public:
   typedef typename Superclass::ValueType ValueType;
 
   /** Internal Pixel representation. Used to maintain a uniform API
-   * with Image Adaptors and allow to keep a particular internal
+   * with Image Adaptors and allow keeping a particular internal
    * representation of data while showing a different external
    * representation. */
   typedef typename Superclass::InternalPixelType InternalPixelType;
diff --git a/Modules/Core/ImageBase/include/otbMetaImageFunction.h b/Modules/Core/ImageBase/include/otbMetaImageFunction.h
index 59023a4..64b99d3 100644
--- a/Modules/Core/ImageBase/include/otbMetaImageFunction.h
+++ b/Modules/Core/ImageBase/include/otbMetaImageFunction.h
@@ -29,7 +29,7 @@ namespace otb
 /** \class MetaImageFunction
  *  \brief Concatenate results from multiple ImageFunction
  *
- *  The MetaImageFunction class allows to call multiple ImageFunction at the same location
+ *  The MetaImageFunction class allows calling multiple ImageFunction at the same location
  *  and to concatenate their result into a single VariableLengthVector.
  *
  *  In the case of ImageFunction which do not produce VariableLengthVector, one can wrap these
diff --git a/Modules/Core/ImageBase/include/otbMultiChannelExtractROI.h b/Modules/Core/ImageBase/include/otbMultiChannelExtractROI.h
index 1744295..ed692e1 100644
--- a/Modules/Core/ImageBase/include/otbMultiChannelExtractROI.h
+++ b/Modules/Core/ImageBase/include/otbMultiChannelExtractROI.h
@@ -31,7 +31,7 @@ namespace otb
  * \brief Extract a spatial or spectral subset of a multi-channel image.
  *
  * It is possible to extract all the channels from the input image or only those specified by the user.
- * The SetChannel() method allows to select one channel.
+ * The SetChannel() method allows selecting one channel.
  * The SetFirstChannel() and SetLastChannel() methods allow the user to define a list of channels.
  *
  * \note If no channels are specified, then all channels from the input image are selected.
diff --git a/Modules/Core/ImageBase/include/otbMultiToMonoChannelExtractROI.h b/Modules/Core/ImageBase/include/otbMultiToMonoChannelExtractROI.h
index f08cfa4..6214a99 100644
--- a/Modules/Core/ImageBase/include/otbMultiToMonoChannelExtractROI.h
+++ b/Modules/Core/ImageBase/include/otbMultiToMonoChannelExtractROI.h
@@ -31,7 +31,7 @@ namespace otb
  * \brief Extract a mono channel part of a multi-channel image.
  *
  * This filter extracts either all channels or only those specified by the user.
- * The SetChannel method allows to select the channels to process.
+ * The SetChannel method allows selecting the channels to process.
  * \note If nothing is specified, only the first channel is processed.
  * \note This class is templated over the pixel types of the input and output images.
  * The input image has to be an otb::VectorImage, whereas the output image has to be an otb::Image.
diff --git a/Modules/Core/ImageBase/include/otbRemoteSensingRegion.h b/Modules/Core/ImageBase/include/otbRemoteSensingRegion.h
index f845f48..8fb6381 100644
--- a/Modules/Core/ImageBase/include/otbRemoteSensingRegion.h
+++ b/Modules/Core/ImageBase/include/otbRemoteSensingRegion.h
@@ -116,7 +116,7 @@ public:
   }
 
   /** This method provides explicit conversion to itk::ImageRegion<2>,
-   * so as to allow to use RemoteSensingRegion to specify requested
+   * so as to allow using RemoteSensingRegion to specify requested
    * region for images or images iterators.
    */
   const ImageRegionType GetImageRegion()
diff --git a/Modules/Core/ImageBase/include/otbVectorImage.h b/Modules/Core/ImageBase/include/otbVectorImage.h
index 88efd5e..95b7f12 100644
--- a/Modules/Core/ImageBase/include/otbVectorImage.h
+++ b/Modules/Core/ImageBase/include/otbVectorImage.h
@@ -66,7 +66,7 @@ public:
   typedef typename Superclass::ValueType ValueType;
 
   /** Internal Pixel representation. Used to maintain a uniform API
-   * with Image Adaptors and allow to keep a particular internal
+   * with Image Adaptors and allow keeping a particular internal
    * representation of data while showing a different external
    * representation. */
   typedef typename Superclass::InternalPixelType InternalPixelType;
diff --git a/Modules/Core/LabelMap/include/otbAttributesMapLabelObject.h b/Modules/Core/LabelMap/include/otbAttributesMapLabelObject.h
index 966a7ad..abebf17 100644
--- a/Modules/Core/LabelMap/include/otbAttributesMapLabelObject.h
+++ b/Modules/Core/LabelMap/include/otbAttributesMapLabelObject.h
@@ -37,7 +37,7 @@ namespace Functor
 {
 
 /** \class AttributesMapLabelObjectAccessor
- *  \brief Allows to acces a given field of an AttributesMapLabelObject
+ *  \brief Allows accessing a given field of an AttributesMapLabelObject
  *
  * The name of the attribute to retrieve can be set by using the
  * SetAttributeName method.
@@ -88,9 +88,9 @@ private:
 
 
 /** \class AttributesMapMeasurementFunctor
-*   \brief This class allows to build a measurement vector from an AttributesMapLabelObject
+*   \brief This class allows building a measurement vector from an AttributesMapLabelObject
 *
-*    It Allows to select only a subset of the available attributes.
+*    It Allows selecting only a subset of the available attributes.
  *
  * \ingroup OTBLabelMap
 */
@@ -156,7 +156,7 @@ private:
  *  store pairs of key, value (of type TAttributesValue) in an internal
  *  map container.
  *
- * As such it allows to store any custom attributes as necessary.
+ * As such it allows storing any custom attributes as necessary.
  *
  * \sa LabelObject, ShapeLabelObject, StatisticsLabelObject
  *
diff --git a/Modules/Core/LabelMap/include/otbAttributesMapOpeningLabelMapFilter.h b/Modules/Core/LabelMap/include/otbAttributesMapOpeningLabelMapFilter.h
index 6b5a949..b804c3e 100644
--- a/Modules/Core/LabelMap/include/otbAttributesMapOpeningLabelMapFilter.h
+++ b/Modules/Core/LabelMap/include/otbAttributesMapOpeningLabelMapFilter.h
@@ -28,7 +28,7 @@ namespace otb
  * \brief Attributes opening for AttributesMapLabelObject
  *
  * This class extends the itk::AttributeOpeningLabelMapFilter to
- * handle AttributesMapLabelObject. Thus it allows to perform openings
+ * handle AttributesMapLabelObject. Thus it allows performing openings
  * for any kind of attributes in the attributes map.
  *
  * \sa AttributeLabelObject, AttributeOpeningLabelMapFilter
diff --git a/Modules/Core/LabelMap/include/otbBandsStatisticsAttributesLabelMapFilter.h b/Modules/Core/LabelMap/include/otbBandsStatisticsAttributesLabelMapFilter.h
index 242affc..82e020c 100644
--- a/Modules/Core/LabelMap/include/otbBandsStatisticsAttributesLabelMapFilter.h
+++ b/Modules/Core/LabelMap/include/otbBandsStatisticsAttributesLabelMapFilter.h
@@ -32,7 +32,7 @@ namespace Functor
 * StatisticsAttributesLabelObjectFunctor one each feature image
 * provided through AddFeature()
 *
-* As such, it allows to compute in one pass statistics related to
+* As such, it allows computing in one pass statistics related to
 * multiple features. It is used in the
 * BandsStatisticsAttributesLabelMapFilter.
 *
@@ -123,7 +123,7 @@ private:
  * The feature name is constructed as:
  * 'STATS' + '::' + 'Band' + band_index + '::' + statistic_name
  *
- * The ReducedAttributesSet flag allows to tell the internal
+ * The ReducedAttributesSet flag allows telling the internal
  * statistics filter to compute only the main attributes (mean, variance, skewness and kurtosis).
  *
  * \sa MultiStatsAttributesLabelObjectFunctor AttributesMapLabelObject
diff --git a/Modules/Core/LabelMap/include/otbLabelMapToSampleListFilter.h b/Modules/Core/LabelMap/include/otbLabelMapToSampleListFilter.h
index fa0cc7d..38c3c4e 100644
--- a/Modules/Core/LabelMap/include/otbLabelMapToSampleListFilter.h
+++ b/Modules/Core/LabelMap/include/otbLabelMapToSampleListFilter.h
@@ -31,7 +31,7 @@ namespace otb
  * learning and classification.
  *
  * The conversion from label object to measurement vector is made
- * through a functor. This allows to support any kind of LabelObject
+ * through a functor. This allows supporting any kind of LabelObject
  * via proper redefinition of the functor.
  *
  * \ingroup OTBLabelMap
diff --git a/Modules/Core/LabelMap/include/otbLabelMapWithClassLabelToLabeledSampleListFilter.h b/Modules/Core/LabelMap/include/otbLabelMapWithClassLabelToLabeledSampleListFilter.h
index 44247ea..daa2f0c 100644
--- a/Modules/Core/LabelMap/include/otbLabelMapWithClassLabelToLabeledSampleListFilter.h
+++ b/Modules/Core/LabelMap/include/otbLabelMapWithClassLabelToLabeledSampleListFilter.h
@@ -28,7 +28,7 @@ namespace otb
  * and compatible with otb::SVMSampleListModelEstimator
  *
  * The conversion from label object to measurement vector is made
- * through a functor. This allows to support any kind of LabelObject
+ * through a functor. This allows supporting any kind of LabelObject
  * via proper redefinition of the functor.
  *
  * \sa otb::SVMSampleListModelEstimator
diff --git a/Modules/Core/LabelMap/include/otbShapeAttributesLabelMapFilter.h b/Modules/Core/LabelMap/include/otbShapeAttributesLabelMapFilter.h
index 100eb6f..67465b9 100644
--- a/Modules/Core/LabelMap/include/otbShapeAttributesLabelMapFilter.h
+++ b/Modules/Core/LabelMap/include/otbShapeAttributesLabelMapFilter.h
@@ -187,7 +187,7 @@ private:
  * With respect to the original itk filter, this filter also compute
  * the Flusser moments for each LabelObject.
  *
- * The flag ReducedAttributesSet allows to compute only non-redundant
+ * The flag ReducedAttributesSet allows computing only non-redundant
  * statistics and statistics usefull for classification (not spatially
  * dependent statitistics). Reduced set contains only Flusser moments,
  * physical size, elongation, Feret diameter (if activated),
diff --git a/Modules/Core/LabelMap/include/otbStatisticsAttributesLabelMapFilter.h b/Modules/Core/LabelMap/include/otbStatisticsAttributesLabelMapFilter.h
index 25bce7d..37f3fbe 100644
--- a/Modules/Core/LabelMap/include/otbStatisticsAttributesLabelMapFilter.h
+++ b/Modules/Core/LabelMap/include/otbStatisticsAttributesLabelMapFilter.h
@@ -113,7 +113,7 @@ private:
  * set. The key of the statistics features in the attributes map will
  * be "STATS::FeatureName::StatisticName".
  *
- * The flag ReducedAttributesSet allows to compute only non-redundant
+ * The flag ReducedAttributesSet allows computing only non-redundant
  * statistics and statistics usefull for classification (not spatially
  * dependent statitistics). Reduced set contains only mean, variance,
  * skewness and kurtosis.
diff --git a/Modules/Core/Metadata/src/otbPleiadesImageMetadataInterface.cxx b/Modules/Core/Metadata/src/otbPleiadesImageMetadataInterface.cxx
index d1693a8..11fbe8b 100644
--- a/Modules/Core/Metadata/src/otbPleiadesImageMetadataInterface.cxx
+++ b/Modules/Core/Metadata/src/otbPleiadesImageMetadataInterface.cxx
@@ -730,7 +730,7 @@ PleiadesImageMetadataInterface::GetSatAzimuth() const
     }
   else
     {
-    //Got orientation and incidences angle which allow to compute satellite
+    //Got orientation and incidences angle which allow computing satellite
     // azimuthal angle
 
     // MSD: for the moment take only topCenter value
diff --git a/Modules/Core/ObjectList/include/otbImageList.h b/Modules/Core/ObjectList/include/otbImageList.h
index 760eea8..c828838 100644
--- a/Modules/Core/ObjectList/include/otbImageList.h
+++ b/Modules/Core/ObjectList/include/otbImageList.h
@@ -25,7 +25,7 @@ namespace otb
 /** \class ImageList
  *  \brief This class represent a list of images.
  *
- * It is derived from the otbObjectList class, which allows to manipulate an ITK/OTB
+ * It is derived from the otbObjectList class, which allows manipulating an ITK/OTB
  * object list with the appropriate formalism (iterators, accessors).
  * \sa ObjectList
  *
diff --git a/Modules/Core/ObjectList/include/otbImageListToVectorImageFilter.h b/Modules/Core/ObjectList/include/otbImageListToVectorImageFilter.h
index 5df80bd..5c37ea1 100644
--- a/Modules/Core/ObjectList/include/otbImageListToVectorImageFilter.h
+++ b/Modules/Core/ObjectList/include/otbImageListToVectorImageFilter.h
@@ -68,7 +68,7 @@ protected:
 
   /** GenerateOutputInformation
    * Set the number of bands of the output.
-   * Copy informations from the first image of the list if existing.
+   * Copy information from the first image of the list if existing.
    **/
   virtual void GenerateOutputInformation(void);
 
diff --git a/Modules/Core/Streaming/include/otbPipelineMemoryPrintCalculator.h b/Modules/Core/Streaming/include/otbPipelineMemoryPrintCalculator.h
index 02eb558..e06e226 100644
--- a/Modules/Core/Streaming/include/otbPipelineMemoryPrintCalculator.h
+++ b/Modules/Core/Streaming/include/otbPipelineMemoryPrintCalculator.h
@@ -27,18 +27,18 @@ namespace otb
 /** \class PipelineMemoryPrintCalculator
  *  \brief Estimate pipeline memory usage and optimal stream divisions
  *
- *  This class allows to estimate the memory usage of a given pipeline
+ *  This class allows estimating the memory usage of a given pipeline
  *  by tracing back pipeline from a given data (in general, this
  *  data should be set to the data to write) and
  *  examining each filter to determine its memory footprint. To do so,
  *  it performs a dry run of the requested region pipeline
  *  negotiation.
  *
- *  The SetDataToWrite() method allows to set the data candidate for
+ *  The SetDataToWrite() method allows setting the data candidate for
  *  writing, and for which memory usage estimation should be
  *  performed.
  *
- *  Additionally, this class allows to compute the optimal number of
+ *  Additionally, this class allows computing the optimal number of
  *  stream division to write the data. To do so, the available memory
  *  can be set via the SetAvailableMemory() method, and an optional
  *  bias correction factor can be applied to weight the estimate
@@ -55,7 +55,7 @@ namespace otb
  *  within composite filter (because there is no way to trace back to
  *  these internal filters). Therefore, memory usage can be highly
  *  biased depending on the filters in the upstream pipeline. The bias
- *  correction factor parameters allows to compensate this bias to the first
+ *  correction factor parameters allows compensating this bias to the first
  *  order.
  *
  * \ingroup OTBStreaming
@@ -88,7 +88,7 @@ public:
   itkGetMacro(MemoryPrint, MemoryPrintType);
 
   /** Set/Get the bias correction factor which will weight the
-   * estimated memory print (allows to compensate bias between
+   * estimated memory print (allows compensating bias between
    * estimated and real memory print, default is 1., i.e. no correction) */
   itkSetMacro(BiasCorrectionFactor, double);
   itkGetMacro(BiasCorrectionFactor, double);
diff --git a/Modules/Core/Streaming/include/otbStreamingImageVirtualWriter.h b/Modules/Core/Streaming/include/otbStreamingImageVirtualWriter.h
index df23e7c..c69fb3f 100644
--- a/Modules/Core/Streaming/include/otbStreamingImageVirtualWriter.h
+++ b/Modules/Core/Streaming/include/otbStreamingImageVirtualWriter.h
@@ -29,7 +29,7 @@ namespace otb
  *  \brief This class acts like a StreamingImageFileWriter, but without actually
  *  writing data to the disk.
  *
- *  This allows to stream the whole image through persistent filters such as
+ *  This allows streaming the whole image through persistent filters such as
  *  PersitentStatisticsImageFilter in order to get the global statistics of an image.
  *
  *  This filter is not intended to be used with classic ImageToImageFilter, though it
diff --git a/Modules/Core/Transform/include/otbGenericRSTransform.txx b/Modules/Core/Transform/include/otbGenericRSTransform.txx
index 2910dd6..58ca317 100644
--- a/Modules/Core/Transform/include/otbGenericRSTransform.txx
+++ b/Modules/Core/Transform/include/otbGenericRSTransform.txx
@@ -65,7 +65,7 @@ GenericRSTransform<TScalarType, NInputDimensions, NOutputDimensions>
 }
 
 /**
- * Instanciate the transformation according to informations
+ * Instanciate the transformation according to information
  */
 template<class TScalarType, unsigned int NInputDimensions, unsigned int NOutputDimensions>
 void
diff --git a/Modules/Core/Transform/include/otbImageToGenericRSOutputParameters.h b/Modules/Core/Transform/include/otbImageToGenericRSOutputParameters.h
index 3918474..d9956c7 100644
--- a/Modules/Core/Transform/include/otbImageToGenericRSOutputParameters.h
+++ b/Modules/Core/Transform/include/otbImageToGenericRSOutputParameters.h
@@ -32,7 +32,7 @@ namespace otb {
  * when projecting an image in a target SRS. The user can set the
  * target projectionRef via SetOutputProjectionRef(std::string).
  *
- * This class allow to force using a desired spacing. For
+ * This class allows forcing use of a desired spacing. For
  * instance, if one need to compute the output Size  of an
  * image in the UTM srs with a spacing of 5 m, it can be set via the
  * method ForceSpacingTo(spacing).
diff --git a/Modules/Core/Transform/include/otbSensorModelBase.h b/Modules/Core/Transform/include/otbSensorModelBase.h
index b74f239..429b08f 100644
--- a/Modules/Core/Transform/include/otbSensorModelBase.h
+++ b/Modules/Core/Transform/include/otbSensorModelBase.h
@@ -32,7 +32,7 @@ namespace otb
 /** \class SensorModelBase
  *  \brief Base class for the sensor model projection classes.
  *
- *  This class allows to transform a geographic point in (lat, long) to a point
+ *  This class allows transforming a geographic point in (lat, long) to a point
  *  in the sensor geometry.  (lat, lon) -> (i, j) ou (lat, lon, h) -> (i, j)
  *
  * \ingroup Projection
diff --git a/Modules/Core/VectorDataBase/include/otbVectorDataProperties.h b/Modules/Core/VectorDataBase/include/otbVectorDataProperties.h
index a1397fb..cdbddf7 100644
--- a/Modules/Core/VectorDataBase/include/otbVectorDataProperties.h
+++ b/Modules/Core/VectorDataBase/include/otbVectorDataProperties.h
@@ -81,7 +81,7 @@ public:
   void ComputeBoundingRegion();
 protected:
   /** Constructor */
-  VectorDataProperties(){};
+  VectorDataProperties() : m_VectorDataObject(NULL) {};
   /** Destructor */
   virtual ~VectorDataProperties() {}
   /**PrintSelf method */
diff --git a/Modules/Detection/ObjectDetection/include/otbStandardMetaImageFunctionBuilder.h b/Modules/Detection/ObjectDetection/include/otbStandardMetaImageFunctionBuilder.h
index 66bdb8a..5252070 100644
--- a/Modules/Detection/ObjectDetection/include/otbStandardMetaImageFunctionBuilder.h
+++ b/Modules/Detection/ObjectDetection/include/otbStandardMetaImageFunctionBuilder.h
@@ -35,7 +35,7 @@ namespace otb
 /** \class StandardMetaImageFunctionBuilder
  *  \brief Build a Standard MetaImageFunction
  *
- *  The StandardMetaImageFunctionBuilder class allows to call multiple
+ *  The StandardMetaImageFunctionBuilder class allows calling multiple
  *  ImageFunctions:
  *    - otbRadiometricMomentsImageFunction
  *    - otbFlusserMomentsImageFunction
diff --git a/Modules/Detection/RoadExtraction/include/otbRemoveWrongDirectionFilter.h b/Modules/Detection/RoadExtraction/include/otbRemoveWrongDirectionFilter.h
index 6feb264..297410b 100644
--- a/Modules/Detection/RoadExtraction/include/otbRemoveWrongDirectionFilter.h
+++ b/Modules/Detection/RoadExtraction/include/otbRemoveWrongDirectionFilter.h
@@ -63,7 +63,7 @@ public:
  *  we can assume that the direction of a road on our scalar product image is positive (greater
  *  than \f$ \pi/8 \f$).
  *  Therefore in the input modulus and direction images, pixels whose direction is lower than
- *  this threshold are supressed
+ *  this threshold are suppressed
  *  (in fact, their intensity is set to 0).
  *
  * \sa NeighborhoodScalarProductFilter
diff --git a/Modules/Feature/Edge/include/otbPersistentVectorizationImageFilter.h b/Modules/Feature/Edge/include/otbPersistentVectorizationImageFilter.h
index 2255ec2..08d394f 100644
--- a/Modules/Feature/Edge/include/otbPersistentVectorizationImageFilter.h
+++ b/Modules/Feature/Edge/include/otbPersistentVectorizationImageFilter.h
@@ -33,11 +33,11 @@ namespace otb
 /** \class PersistentVectorizationImageFilter
  *  \brief Perform vectorization in a persistent way.
  *
- * This filter allows to vectorize input labeled image while it is streamed
- * through it. The GetPathList() method allows to get the vectorized boundaries,
- * while the GetOutput() method allows to get the input image itself.
+ * This filter allows vectorizing input labeled image while it is streamed
+ * through it. The GetPathList() method allows getting the vectorized boundaries,
+ * while the GetOutput() method allows getting the input image itself.
  *
- * The Reset() method allows to clear the result  path list.
+ * The Reset() method allows clearing the result path list.
  *
  * \sa PersistentImageFilter
  *
diff --git a/Modules/Feature/Edge/include/otbPixelSuppressionByDirectionImageFilter.h b/Modules/Feature/Edge/include/otbPixelSuppressionByDirectionImageFilter.h
index 90130a6..f24598f 100644
--- a/Modules/Feature/Edge/include/otbPixelSuppressionByDirectionImageFilter.h
+++ b/Modules/Feature/Edge/include/otbPixelSuppressionByDirectionImageFilter.h
@@ -31,7 +31,7 @@ namespace otb
  *
  * This class implements an image filter which detects isolated pixels
  * that have little chance of belonging to a raod and performs a pixel
- * supression. For each pixel kept with direction \f$ \theta_{i} \f$, we look
+ * suppression. For each pixel kept with direction \f$ \theta_{i} \f$, we look
  * for other pixels with a direction close to \f$ \theta_i \f$ in an angular
  * beam around it. If none is found, the pixel is suppressed.
  *
diff --git a/Modules/Filtering/ChangeDetection/include/otbMultivariateAlterationDetectorImageFilter.h b/Modules/Filtering/ChangeDetection/include/otbMultivariateAlterationDetectorImageFilter.h
index 134cbe9..aa9b02c 100644
--- a/Modules/Filtering/ChangeDetection/include/otbMultivariateAlterationDetectorImageFilter.h
+++ b/Modules/Filtering/ChangeDetection/include/otbMultivariateAlterationDetectorImageFilter.h
@@ -56,9 +56,9 @@ namespace otb
  * are sorted by increasing correlation. If number of bands is
  * different, the change maps are sorted by decreasing correlation.
  *
- * The GetV1() and GetV2() methods allow to retrieve the linear
+ * The GetV1() and GetV2() methods allow retrieving the linear
  * combinations used to generate the Mad change maps as a vnl_matrix of
- * double, and the GetRho() method allows to retrieve the correlation
+ * double, and the GetRho() method allows retrieving the correlation
  * associated to each Mad change maps as a vnl_vector.
  *
  * This filter has been implemented from the Matlab code kindly made
diff --git a/Modules/Filtering/Convolution/include/otbGaborFilterGenerator.h b/Modules/Filtering/Convolution/include/otbGaborFilterGenerator.h
index 9978be7..e380ed5 100644
--- a/Modules/Filtering/Convolution/include/otbGaborFilterGenerator.h
+++ b/Modules/Filtering/Convolution/include/otbGaborFilterGenerator.h
@@ -31,7 +31,7 @@ namespace otb
 {
 
 /** \class GaborFilterGenerator
- * This class allows to generate gabor filter convolution mask. The mask is stored
+ * This class allows generating a gabor filter convolution mask. The mask is stored
  * in a linear buffer of type itk::Array returned by the GetFilter() method.
  *
  * When calling the GetFilter() method, if the filter has to be regenerated, it will be
diff --git a/Modules/Filtering/DEM/include/otbDEMToImageGenerator.txx b/Modules/Filtering/DEM/include/otbDEMToImageGenerator.txx
index 58a54fd..e07bdf6 100644
--- a/Modules/Filtering/DEM/include/otbDEMToImageGenerator.txx
+++ b/Modules/Filtering/DEM/include/otbDEMToImageGenerator.txx
@@ -36,6 +36,7 @@ DEMToImageGenerator<TDEMImage>
   m_OutputSize[1] = 1;
   m_OutputOrigin[0] = 0;
   m_OutputOrigin[1] = 0;
+  m_DefaultUnknownValue = itk::NumericTraits<PixelType>::ZeroValue();
   m_AboveEllipsoid = false;
 
   m_Transform         = GenericRSTransformType::New();
diff --git a/Modules/Filtering/DimensionalityReduction/include/otbEstimateInnerProductPCAImageFilter.h b/Modules/Filtering/DimensionalityReduction/include/otbEstimateInnerProductPCAImageFilter.h
index 06a40b2..518196e 100644
--- a/Modules/Filtering/DimensionalityReduction/include/otbEstimateInnerProductPCAImageFilter.h
+++ b/Modules/Filtering/DimensionalityReduction/include/otbEstimateInnerProductPCAImageFilter.h
@@ -79,7 +79,7 @@ protected:
 
   /** GenerateOutputInformation
    * Set the number of bands of the output.
-   * Copy informations from the first image of the list if existing.
+   * Copy information from the first image of the list if existing.
    **/
   virtual void GenerateOutputInformation(void);
 
diff --git a/Modules/Filtering/DimensionalityReduction/include/otbMaximumAutocorrelationFactorImageFilter.h b/Modules/Filtering/DimensionalityReduction/include/otbMaximumAutocorrelationFactorImageFilter.h
index 72d3caf..c5fb71c 100644
--- a/Modules/Filtering/DimensionalityReduction/include/otbMaximumAutocorrelationFactorImageFilter.h
+++ b/Modules/Filtering/DimensionalityReduction/include/otbMaximumAutocorrelationFactorImageFilter.h
@@ -45,9 +45,9 @@ namespace otb
  * variance. Though the inverse transform can be computed, this filter
  * only provides the forward transform for now.
  *
- * The GetV() method allows to retrieve the linear combinations used
+ * The GetV() method allows retrieving the linear combinations used
  * to generate new variates, and the GetAutoCorrelation() method
- * allows to retrieve the auto-correlation associated to each variate.
+ * allows retrieving the auto-correlation associated to each variate.
  *
  * This filter has been implemented from the Matlab code kindly made
  * available by the authors here:
diff --git a/Modules/Filtering/DimensionalityReduction/otb-module.cmake b/Modules/Filtering/DimensionalityReduction/otb-module.cmake
index b14b74a..368dc27 100644
--- a/Modules/Filtering/DimensionalityReduction/otb-module.cmake
+++ b/Modules/Filtering/DimensionalityReduction/otb-module.cmake
@@ -2,7 +2,7 @@ set(DOCUMENTATION "Dimension reduction is a statistical process, which
 concentrates the amount of information in multivariate data into a fewer number of
 variables (or dimensions). This module implements methods such as Principal Component
 Analysis (PCA), Noise-Adjusted Principal Components Analysis (NAPCA), Maximum
-Noise Fraction (MNF), Fast Independant Component Analysis (FICA), Maximum
+Noise Fraction (MNF), Fast Independent Component Analysis (FICA), Maximum
 Autocorrelation Factor (MAF), and so on.")
 
 otb_module(OTBDimensionalityReduction
diff --git a/Modules/Filtering/ImageManipulation/include/otbChangeInformationImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbChangeInformationImageFilter.h
index f92b2c2..b38b428 100644
--- a/Modules/Filtering/ImageManipulation/include/otbChangeInformationImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbChangeInformationImageFilter.h
@@ -28,8 +28,8 @@ namespace otb
  * \class ChangeInformationImageFilter
  * \brief Filter to modify image metadata
  *
- * The base class is itk::ChangeInformationImageFilter that allows to
- * modifiy origin, spacing, direction and buffered region. This deriving
+ * The base class is itk::ChangeInformationImageFilter that allows
+ * modifying origin, spacing, direction and buffered region. This deriving
  * filter adds the support of MetaDataDictionary.
  *
  * \ingroup OTBImageManipulation
diff --git a/Modules/Filtering/ImageManipulation/include/otbChangeLabelImageFilter.txx b/Modules/Filtering/ImageManipulation/include/otbChangeLabelImageFilter.txx
index 83ef21d..4d37003 100644
--- a/Modules/Filtering/ImageManipulation/include/otbChangeLabelImageFilter.txx
+++ b/Modules/Filtering/ImageManipulation/include/otbChangeLabelImageFilter.txx
@@ -29,6 +29,7 @@ namespace otb
 template <class TInputImage, class TOutputImage>
 ChangeLabelImageFilter<TInputImage, TOutputImage>
 ::ChangeLabelImageFilter()
+  : m_NumberOfComponentsPerPixel(0)
 {
 }
 
diff --git a/Modules/Filtering/ImageManipulation/include/otbChangeNoDataValueFilter.h b/Modules/Filtering/ImageManipulation/include/otbChangeNoDataValueFilter.h
index 59d4fca..2aea702 100644
--- a/Modules/Filtering/ImageManipulation/include/otbChangeNoDataValueFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbChangeNoDataValueFilter.h
@@ -64,7 +64,7 @@ public:
  *  This filter reads the no-data flags (a boolean vector indicating
  *  for each band if a no-data value exists) and values (the actual
  *  value to be used as no-data for each band) from
- *  MetaDataDictionary, and allows to change this value.
+ *  MetaDataDictionary, and allows changing this value.
  * 
  *  The algorithm is the following: for each pixel, for each channel
  *  in the pixel, if there is a no-data value for this channel
diff --git a/Modules/Filtering/ImageManipulation/include/otbPrintableImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbPrintableImageFilter.h
index 0f8fad7..edf9d12 100644
--- a/Modules/Filtering/ImageManipulation/include/otbPrintableImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbPrintableImageFilter.h
@@ -249,7 +249,7 @@ private:
   typename ChannelExtractorType::Pointer m_Extractor;
   // Foreground mask value
   FunctorFilterPointerType m_MaskFilter;
-  // Objects (of the mask) will be displayer with the choosen color.
+  // Objects (of the mask) will be displayer with the chosen color.
   OutputPixelType m_ObjectColor;
   // Use mask
   bool m_UseMask;
diff --git a/Modules/Filtering/ImageManipulation/include/otbSpectralAngleDistanceImageFilter.txx b/Modules/Filtering/ImageManipulation/include/otbSpectralAngleDistanceImageFilter.txx
index eaf37b6..edcc5e0 100644
--- a/Modules/Filtering/ImageManipulation/include/otbSpectralAngleDistanceImageFilter.txx
+++ b/Modules/Filtering/ImageManipulation/include/otbSpectralAngleDistanceImageFilter.txx
@@ -107,7 +107,7 @@ SpectralAngleDistanceImageFilter<TInputImage, TOutputImage>
       {
       dist = vcl_acos(scalarProd / vcl_sqrt(normProd));
       }
-    //------ This part was supressed since the filter must perform only the spectral angle computation ---
+    //------ This part was suppressed since the filter must perform only the spectral angle computation ---
     // Spectral angle normalization
     // dist = dist/(CONST_PI_2);
     //square ponderation
diff --git a/Modules/Filtering/ImageManipulation/include/otbStreamingInnerProductVectorImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbStreamingInnerProductVectorImageFilter.h
index eb90526..ddbfb1a 100644
--- a/Modules/Filtering/ImageManipulation/include/otbStreamingInnerProductVectorImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbStreamingInnerProductVectorImageFilter.h
@@ -140,7 +140,7 @@ private:
 /** \class StreamingInnerProductVectorImageFilter
  * \brief This class streams the whole input image through the PersistentStatisticsImageFilter.
  *
- * This way, it allows to compute the inner product of this image. It calls the
+ * This way, it allows computing the inner product of this image. It calls the
  * Reset() method of the PersistentStatisticsImageFilter before streaming the image and the
  * Synthetize() method of the PersistentStatisticsImageFilter after having streamed the image
  * to compute the statistics. The accessor on the results are wrapping the accessors of the
diff --git a/Modules/Filtering/ImageManipulation/include/otbStreamingMatrixTransposeMatrixImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbStreamingMatrixTransposeMatrixImageFilter.h
index 49de3dd..76d0da2 100644
--- a/Modules/Filtering/ImageManipulation/include/otbStreamingMatrixTransposeMatrixImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbStreamingMatrixTransposeMatrixImageFilter.h
@@ -187,7 +187,7 @@ private:
 /** \class StreamingMatrixTransposeMatrixImageFilter
  * \brief This class streams the whole input image through the PersistentMatrixTransposeMatrixImageFilter.
  *
- * This way, it allows to compute \f[X^T.Y \f] where \f[X\f] and \f[Y\f] are the input images.
+ * This way, it allows computing \f[X^T.Y \f] where \f[X\f] and \f[Y\f] are the input images.
  * first order global statistics of this image. It calls the Reset() method of the
  * PersistentMatrixTransposeMatrixImageFilter before streaming the image and the
  * Synthetize() method of the PersistentMatrixTransposeMatrixImageFilter after having streamed the image
diff --git a/Modules/Filtering/ImageManipulation/include/otbStreamingResampleImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbStreamingResampleImageFilter.h
index 71230c9..24038a5 100644
--- a/Modules/Filtering/ImageManipulation/include/otbStreamingResampleImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbStreamingResampleImageFilter.h
@@ -35,12 +35,12 @@ namespace otb
  *         by setting a transform. The filter computes a displacement
  *         grid using the transform set and used it to warp the input.
  *
- * The otb::StreamingResampleImageFilter allows to resample a
+ * The otb::StreamingResampleImageFilter allows resampling a
  * otb::VectorImage using a transformation set with SetTransform()
  * method. First, a displacement grid, with a spacing m_DisplacementGridSpacing
  * and a size relative to this spacing, is built. Then, the image is
- * wraped using this displacement grid. The size (SetOuputSize()), the
- * spacing (SetOuputSpacing()), the start index (SetOutputIndex()) and
+ * wraped using this displacement grid. The size (SetOutputSize()), the
+ * spacing (SetOutputSpacing()), the start index (SetOutputIndex()) and
  * the  interpolator (SetInterpolator()) and the origin (SetOrigin())
  * can be set using the method between brackets.
  *
diff --git a/Modules/Filtering/ImageManipulation/include/otbStreamingShrinkImageFilter.txx b/Modules/Filtering/ImageManipulation/include/otbStreamingShrinkImageFilter.txx
index ae38785..95761c9 100644
--- a/Modules/Filtering/ImageManipulation/include/otbStreamingShrinkImageFilter.txx
+++ b/Modules/Filtering/ImageManipulation/include/otbStreamingShrinkImageFilter.txx
@@ -28,6 +28,7 @@ namespace otb
 
 template <class TImage>
 StreamingShrinkStreamingManager<TImage>::StreamingShrinkStreamingManager()
+ : m_ShrinkFactor(10)
 {
 }
 
diff --git a/Modules/Filtering/ImageManipulation/include/otbTileImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbTileImageFilter.h
index dd37ff9..961936b 100644
--- a/Modules/Filtering/ImageManipulation/include/otbTileImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbTileImageFilter.h
@@ -23,11 +23,11 @@
 namespace otb
 {
 /** \class TileImageFilter
- *  \brief This filter allows to make a spatial mosaic from a set of images
+ *  \brief This filter allows making a spatial mosaic from a set of images
  *
  *  This filter produces a spatial mosaic from a set of images. It
  *  supports both otb::Image and otb::VectorImage. The layout
- *  parameter allows to set up of the images will be patched together:
+ *  parameter allows setting up of the images will be patched together:
  *  it is a 2D array containing the number of images in the horizontal
  *  direction and vertical direction respectively.
  *
diff --git a/Modules/Filtering/ImageManipulation/include/otbUnaryImageFunctorWithVectorImageFilter.txx b/Modules/Filtering/ImageManipulation/include/otbUnaryImageFunctorWithVectorImageFilter.txx
index 29a376c..9718f7d 100644
--- a/Modules/Filtering/ImageManipulation/include/otbUnaryImageFunctorWithVectorImageFilter.txx
+++ b/Modules/Filtering/ImageManipulation/include/otbUnaryImageFunctorWithVectorImageFilter.txx
@@ -103,7 +103,7 @@ UnaryImageFunctorWithVectorImageFilter<TInputImage, TOutputImage, TFunction>
     OutputPixelType outPixel;
     outPixel.SetSize(inputPtr->GetNumberOfComponentsPerPixel());
     outPixel.Fill(itk::NumericTraits<OutputInternalPixelType>::Zero);
-    // if the input pixel in null, the output is considered as null ( no sensor informations )
+    // if the input pixel in null, the output is considered as null ( no sensor information )
     if (inPixel != nullPixel)
       {
       for (unsigned int j = 0; j < inputPtr->GetNumberOfComponentsPerPixel(); ++j)
diff --git a/Modules/Filtering/Path/include/otbImageToEdgePathFilter.txx b/Modules/Filtering/Path/include/otbImageToEdgePathFilter.txx
index 4490b6f..fb34a16 100644
--- a/Modules/Filtering/Path/include/otbImageToEdgePathFilter.txx
+++ b/Modules/Filtering/Path/include/otbImageToEdgePathFilter.txx
@@ -108,7 +108,7 @@ ImageToEdgePathFilter<TInputImage, TOutputPath>
   it.ActivateOffset(RIGHTDOWN);
   it.ActivateOffset(LEFTUP);
   it.ActivateOffset(LEFTDOWN);
-  // The rotation vector allows to get the clock-wise next pixel
+  // The rotation vector allows getting the clock-wise next pixel
   std::vector<typename IteratorType::OffsetType> rotation;
   rotation.push_back(RIGHT);
   rotation.push_back(RIGHTDOWN);
diff --git a/Modules/Filtering/Polarimetry/include/otbPolarimetricData.h b/Modules/Filtering/Polarimetry/include/otbPolarimetricData.h
index f6c401b..1de47c3 100644
--- a/Modules/Filtering/Polarimetry/include/otbPolarimetricData.h
+++ b/Modules/Filtering/Polarimetry/include/otbPolarimetricData.h
@@ -39,7 +39,7 @@ typedef enum
   } ArchitectureType;
 
 /** \class PolarimetricData
-*  \brief This class allows to determine the type of architecture we get.
+*  \brief This class allows determining the type of architecture we get.
 *
 *  HH_HV_VH_VV (0), HH_HV_VV (1), HH_VH_VV (2), HH_HV(3), VH_VV (4), HH_VV (5).
 *
diff --git a/Modules/Filtering/Projection/include/otbGCPsToRPCSensorModelImageFilter.h b/Modules/Filtering/Projection/include/otbGCPsToRPCSensorModelImageFilter.h
index 15f8d95..47a8c50 100644
--- a/Modules/Filtering/Projection/include/otbGCPsToRPCSensorModelImageFilter.h
+++ b/Modules/Filtering/Projection/include/otbGCPsToRPCSensorModelImageFilter.h
@@ -33,7 +33,7 @@ namespace otb {
  * defined GCPs. Internally, it uses an ossimRpcSolver, which performs
  * the estimation using the well known least-square method.
  *
- * The UseImageGCPs flag allows to import GCPs from the image
+ * The UseImageGCPs flag allows importing GCPs from the image
  * metadata, if any.
  *
  * GCPs can be passed to the filter using one of the AddGCP method
diff --git a/Modules/Filtering/Projection/include/otbGenericRSResampleImageFilter.h b/Modules/Filtering/Projection/include/otbGenericRSResampleImageFilter.h
index 9442c16..9aa1e9e 100644
--- a/Modules/Filtering/Projection/include/otbGenericRSResampleImageFilter.h
+++ b/Modules/Filtering/Projection/include/otbGenericRSResampleImageFilter.h
@@ -32,7 +32,7 @@ namespace otb
  *
  *  This class uses the otb::StreamingResampleImageFilter. It defines
  *  and uses a otb::GenericRSTransform using the input/output coordinate
- *  system informations listed below. This class can resample the input to an
+ *  system information listed below. This class can resample the input to an
  *  output image with the Size/Origin/Spacing/StartIndex defined by
  *  the user. Note that there are no default values for all the
  *  parmeters, so it is mandatory to set correct parameters to have a
diff --git a/Modules/Filtering/Projection/include/otbLeastSquareAffineTransformEstimator.h b/Modules/Filtering/Projection/include/otbLeastSquareAffineTransformEstimator.h
index d512a1e..26effa3 100644
--- a/Modules/Filtering/Projection/include/otbLeastSquareAffineTransformEstimator.h
+++ b/Modules/Filtering/Projection/include/otbLeastSquareAffineTransformEstimator.h
@@ -36,7 +36,7 @@ namespace otb {
  *
  * Tie points can be added through the AddTiePoints() method.
  *
- * The ClearTiePoints() method allows to remove all the tie points
+ * The ClearTiePoints() method allows removing all the tie points
  * that has been previously set.
  *
  * Once all the tie points have been feeded into the estimator, the
diff --git a/Modules/Filtering/Projection/include/otbPhysicalToRPCSensorModelImageFilter.h b/Modules/Filtering/Projection/include/otbPhysicalToRPCSensorModelImageFilter.h
index 52ae8d1..0992f8e 100644
--- a/Modules/Filtering/Projection/include/otbPhysicalToRPCSensorModelImageFilter.h
+++ b/Modules/Filtering/Projection/include/otbPhysicalToRPCSensorModelImageFilter.h
@@ -36,7 +36,7 @@ namespace otb {
  * to estimate a proper RPC sensor model, there are no warning when
  * the model estimated is inaccurate.
  *
- * The UseImageGCPs flag allows to import GCPs from the image
+ * The UseImageGCPs flag allows importing GCPs from the image
  * metadata, if any.(TODO)
  *
  * GCPs can be passed to the filter using one of the AddGCP method
diff --git a/Modules/Filtering/Projection/include/otbVectorDataProjectionFilter.txx b/Modules/Filtering/Projection/include/otbVectorDataProjectionFilter.txx
index 822fe13..080a230 100644
--- a/Modules/Filtering/Projection/include/otbVectorDataProjectionFilter.txx
+++ b/Modules/Filtering/Projection/include/otbVectorDataProjectionFilter.txx
@@ -262,7 +262,7 @@ VectorDataProjectionFilter<TInputVectorData, TOutputVectorData>
 }
 
 /**
- * Instanciate the transformation according to informations
+ * Instanciate the transformation according to information
  */
 template <class TInputVectorData, class TOutputVectorData>
 void
diff --git a/Modules/Filtering/Projection/test/otbGenericRSResampleImageFilter.cxx b/Modules/Filtering/Projection/test/otbGenericRSResampleImageFilter.cxx
index 443dec3..2c529ae 100644
--- a/Modules/Filtering/Projection/test/otbGenericRSResampleImageFilter.cxx
+++ b/Modules/Filtering/Projection/test/otbGenericRSResampleImageFilter.cxx
@@ -81,7 +81,7 @@ int otbGenericRSResampleImageFilter(int itkNotUsed(argc), char* argv[])
   spacing[0] = 0.6;
   spacing[1] = -0.6;
 
-  // Build the ouput projection ref : UTM ref
+  // Build the output projection ref : UTM ref
   OGRSpatialReference    oSRS;
   oSRS.SetProjCS("UTM");
   oSRS.SetUTM(31, true);
diff --git a/Modules/Filtering/Smoothing/include/otbMeanShiftSmoothingImageFilter.h b/Modules/Filtering/Smoothing/include/otbMeanShiftSmoothingImageFilter.h
index e87aacf..03b0824 100644
--- a/Modules/Filtering/Smoothing/include/otbMeanShiftSmoothingImageFilter.h
+++ b/Modules/Filtering/Smoothing/include/otbMeanShiftSmoothingImageFilter.h
@@ -408,7 +408,7 @@ private:
  * SetSpatialBandwidth()) and within a spectral range (set using
  * SetRangeBandwidth()). The resulting filtered image can be retrieved by
  * GetOutput() or GetRangeOutput(). Parameter SetRangeBandwidthRamp()
- * allows to linearly adapt the range bandwidth to the intensity of
+ * allows linearly adapting the range bandwidth to the intensity of
  * each channel if set greater than 0 (default value is 0).
  *
  * There are additional output images, as explained below.
@@ -544,7 +544,7 @@ public:
   itkGetConstReferenceMacro(BucketOptimization, bool);
 #endif
 
-  /** Global shift allows to tackle down numerical instabilities by
+  /** Global shift allows tackling down numerical instabilities by
   aligning pixel indices when performing tile processing */
   itkSetMacro(GlobalShift,InputIndexType);
 
diff --git a/Modules/Filtering/Smoothing/include/otbMeanShiftSmoothingImageFilter.txx b/Modules/Filtering/Smoothing/include/otbMeanShiftSmoothingImageFilter.txx
index 55d75bb..77a5637 100644
--- a/Modules/Filtering/Smoothing/include/otbMeanShiftSmoothingImageFilter.txx
+++ b/Modules/Filtering/Smoothing/include/otbMeanShiftSmoothingImageFilter.txx
@@ -35,10 +35,11 @@ MeanShiftSmoothingImageFilter<TInputImage, TOutputImage, TKernel, TOutputIterati
   // , m_SpatialRadius(???)
       , m_Threshold(1e-3), m_MaxIterationNumber(10)
       // , m_Kernel(...)
-      // , m_NumberOfComponentsPerPixel(...)
+      , m_NumberOfComponentsPerPixel(0)
       // , m_JointImage(0)
       // , m_ModeTable(0)
       , m_ModeSearch(true)
+      , m_ThreadIdNumberOfBits(0)
 #if 0
       , m_BucketOptimization(false)
 #endif
diff --git a/Modules/Filtering/Statistics/include/otbStreamingCompareImageFilter.h b/Modules/Filtering/Statistics/include/otbStreamingCompareImageFilter.h
index 7d0f0c5..aa1792c 100644
--- a/Modules/Filtering/Statistics/include/otbStreamingCompareImageFilter.h
+++ b/Modules/Filtering/Statistics/include/otbStreamingCompareImageFilter.h
@@ -150,7 +150,7 @@ protected:
                              outputRegionForThread,
                              itk::ThreadIdType threadId);
 
-  /** Allows to skip the verification of physical space between
+  /** Allows skipping the verification of physical space between
    *  the two input images (see flag m_PhysicalSpaceCheck)
    */
   virtual void VerifyInputInformation();
@@ -172,7 +172,7 @@ private:
 /** \class StreamingCompareImageFilter
  * \brief This class streams the whole input image through the PersistentCompareImageFilter.
  *
- * This way, it allows to compute estimator on two images. It calls the
+ * This way, it allows computing estimator on two images. It calls the
  * Reset() method of the PersistentCompareImageFilter before streaming the image and the
  * Synthetize() method of the PersistentCompareImageFilter after having streamed the image
  * to compute the estimators. The accessor on the results are wrapping the accessors of the
diff --git a/Modules/Filtering/Statistics/include/otbStreamingHistogramVectorImageFilter.h b/Modules/Filtering/Statistics/include/otbStreamingHistogramVectorImageFilter.h
index 5627b29..f0c0dbe 100644
--- a/Modules/Filtering/Statistics/include/otbStreamingHistogramVectorImageFilter.h
+++ b/Modules/Filtering/Statistics/include/otbStreamingHistogramVectorImageFilter.h
@@ -207,7 +207,7 @@ private:
 /** \class StreamingHistogramVectorImageFilter
  * \brief This class streams the whole input image through the PersistentHistogramVectorImageFilter.
  *
- * This way, it allows to compute the min/max of this image. It calls the
+ * This way, it allows computing the min/max of this image. It calls the
  * Reset() method of the PersistentHistogramVectorImageFilter before streaming the image and the
  * Synthetize() method of the PersistentHistogramVectorImageFilter after having streamed the image
  * to compute the statistics. The accessor on the results are wrapping the accessors of the
diff --git a/Modules/Filtering/Statistics/include/otbStreamingMinMaxImageFilter.h b/Modules/Filtering/Statistics/include/otbStreamingMinMaxImageFilter.h
index 03e8cfa..750e0e5 100644
--- a/Modules/Filtering/Statistics/include/otbStreamingMinMaxImageFilter.h
+++ b/Modules/Filtering/Statistics/include/otbStreamingMinMaxImageFilter.h
@@ -158,7 +158,7 @@ private:
 /** \class StreamingMinMaxImageFilter
  * \brief This class streams the whole input image through the PersistentMinMaxImageFilter.
  *
- * This way, it allows to compute the minimum and maximum of this image.
+ * This way, it allows computing the minimum and maximum of this image.
  *
  * It calls the Reset() method of the PersistentMinMaxImageFilter before streaming
  * the image and the Synthetize() method of the PersistentMinMaxImageFilter after
diff --git a/Modules/Filtering/Statistics/include/otbStreamingMinMaxVectorImageFilter.h b/Modules/Filtering/Statistics/include/otbStreamingMinMaxVectorImageFilter.h
index e31d1c9..2382604 100644
--- a/Modules/Filtering/Statistics/include/otbStreamingMinMaxVectorImageFilter.h
+++ b/Modules/Filtering/Statistics/include/otbStreamingMinMaxVectorImageFilter.h
@@ -177,7 +177,7 @@ private:
 /** \class StreamingMinMaxVectorImageFilter
  * \brief This class streams the whole input image through the PersistentMinMaxVectorImageFilter.
  *
- * This way, it allows to compute the min/max of this image. It calls the
+ * This way, it allows computing the min/max of this image. It calls the
  * Reset() method of the PersistentMinMaxVectorImageFilter before streaming the image and the
  * Synthetize() method of the PersistentMinMaxVectorImageFilter after having streamed the image
  * to compute the statistics. The accessor on the results are wrapping the accessors of the
diff --git a/Modules/Filtering/Statistics/include/otbStreamingStatisticsImageFilter.h b/Modules/Filtering/Statistics/include/otbStreamingStatisticsImageFilter.h
index f98e4db..d81ec6e 100644
--- a/Modules/Filtering/Statistics/include/otbStreamingStatisticsImageFilter.h
+++ b/Modules/Filtering/Statistics/include/otbStreamingStatisticsImageFilter.h
@@ -196,7 +196,7 @@ private:
 /** \class StreamingStatisticsImageFilter
  * \brief This class streams the whole input image through the PersistentStatisticsImageFilter.
  *
- * This way, it allows to compute the first order global statistics of this image. It calls the
+ * This way, it allows computing the first order global statistics of this image. It calls the
  * Reset() method of the PersistentStatisticsImageFilter before streaming the image and the
  * Synthetize() method of the PersistentStatisticsImageFilter after having streamed the image
  * to compute the statistics. The accessor on the results are wrapping the accessors of the
diff --git a/Modules/Filtering/Statistics/include/otbStreamingStatisticsMapFromLabelImageFilter.h b/Modules/Filtering/Statistics/include/otbStreamingStatisticsMapFromLabelImageFilter.h
index 75323f8..0c95602 100644
--- a/Modules/Filtering/Statistics/include/otbStreamingStatisticsMapFromLabelImageFilter.h
+++ b/Modules/Filtering/Statistics/include/otbStreamingStatisticsMapFromLabelImageFilter.h
@@ -153,7 +153,7 @@ private:
  *
  * This class streams the whole input image through the PersistentStreamingStatisticsMapFromLabelImageFilter.
  *
- * This way, it allows to compute the first order global statistics of this image.
+ * This way, it allows computing the first order global statistics of this image.
  * It calls the Reset() method of the PersistentStatisticsImageFilter before streaming
  * the image and the Synthetize() method of the PersistentStatisticsImageFilter
  * after having streamed the image to compute the statistics.
diff --git a/Modules/Filtering/Statistics/include/otbStreamingStatisticsVectorImageFilter.h b/Modules/Filtering/Statistics/include/otbStreamingStatisticsVectorImageFilter.h
index 42bee49..c4ce0c9 100644
--- a/Modules/Filtering/Statistics/include/otbStreamingStatisticsVectorImageFilter.h
+++ b/Modules/Filtering/Statistics/include/otbStreamingStatisticsVectorImageFilter.h
@@ -252,7 +252,7 @@ private:
 /** \class StreamingStatisticsVectorImageFilter
  * \brief This class streams the whole input image through the PersistentStatisticsImageFilter.
  *
- * This way, it allows to compute the first and second order global statistics of this image. It calls the
+ * This way, it allows computing the first and second order global statistics of this image. It calls the
  * Reset() method of the PersistentStreamingStatisticsVectorImageFilter before streaming the image and the
  * Synthetize() method of the PersistentStreamingStatisticsVectorImageFilter after having streamed the image
  * to compute the statistics. The accessor on the results are wrapping the accessors of the
diff --git a/Modules/Filtering/Statistics/include/otbVectorImageToMatrixImageFilter.h b/Modules/Filtering/Statistics/include/otbVectorImageToMatrixImageFilter.h
index 4b6601b..b03c8ed 100644
--- a/Modules/Filtering/Statistics/include/otbVectorImageToMatrixImageFilter.h
+++ b/Modules/Filtering/Statistics/include/otbVectorImageToMatrixImageFilter.h
@@ -127,7 +127,7 @@ private:
 /** \class VectorImageToMatrixImageFilter
  * \brief This class streams the whole input image through the PersistentStatisticsImageFilter.
  *
- * This way, it allows to compute the first order global statistics of this image. It calls the
+ * This way, it allows computing the first order global statistics of this image. It calls the
  * Reset() method of the PersistentStatisticsImageFilter before streaming the image and the
  * Synthetize() method of the PersistentStatisticsImageFilter after having streamed the image
  * to compute the statistics. The accessor on the results are wrapping the accessors of the
diff --git a/Modules/Filtering/Wavelet/include/otbWaveletFilterBank.h b/Modules/Filtering/Wavelet/include/otbWaveletFilterBank.h
index c219f71..f4ca67b 100644
--- a/Modules/Filtering/Wavelet/include/otbWaveletFilterBank.h
+++ b/Modules/Filtering/Wavelet/include/otbWaveletFilterBank.h
@@ -216,7 +216,7 @@ protected:
 
   /** GenerateOutputInformation
     * Set the size of the output image depending on the decimation factor
-    * Copy informations from the input image if existing.
+    * Copy information from the input image if existing.
     **/
   virtual void GenerateOutputInformation();
 
@@ -401,7 +401,7 @@ protected:
 
   /** GenerateOutputInformation
     * Set the size of the output image depending on the decimation factor
-    * Copy informations from the input image if existing.
+    * Copy information from the input image if existing.
     **/
   virtual void GenerateOutputInformation();
 
diff --git a/Modules/Filtering/Wavelet/include/otbWaveletPacketTransform.h b/Modules/Filtering/Wavelet/include/otbWaveletPacketTransform.h
index 24e4028..38662c7 100644
--- a/Modules/Filtering/Wavelet/include/otbWaveletPacketTransform.h
+++ b/Modules/Filtering/Wavelet/include/otbWaveletPacketTransform.h
@@ -325,7 +325,7 @@ protected:
 
   /** GenerateOutputInformation
     * Set the size of the output image depending on the decimation factor
-    * Copy informations from the input image if existing.
+    * Copy information from the input image if existing.
     **/
   virtual void GenerateOutputInformation();
 
diff --git a/Modules/Filtering/Wavelet/include/otbWaveletTransform.h b/Modules/Filtering/Wavelet/include/otbWaveletTransform.h
index c80ea80..f6cf26a 100644
--- a/Modules/Filtering/Wavelet/include/otbWaveletTransform.h
+++ b/Modules/Filtering/Wavelet/include/otbWaveletTransform.h
@@ -308,7 +308,7 @@ protected:
 
   /** GenerateOutputInformation
     * Set the size of the output image depending on the decimation factor
-    * Copy informations from the input image if existing.
+    * Copy information from the input image if existing.
     **/
   virtual void GenerateOutputInformation();
 
diff --git a/Modules/IO/Carto/include/otbMapFileProductWriter.h b/Modules/IO/Carto/include/otbMapFileProductWriter.h
index 60d2802..4de59cb 100644
--- a/Modules/IO/Carto/include/otbMapFileProductWriter.h
+++ b/Modules/IO/Carto/include/otbMapFileProductWriter.h
@@ -46,7 +46,7 @@ namespace otb
  *        on the disk.
  *
  * This filter begins by tiling the input image. An accessor
- * SetTileSize allows to set the size of each tile. For each tile
+ * SetTileSize allows setting the size of each tile. For each tile
  * generated, an entry is added to the shapefile to store the location
  * where the file is saved on the disk.
  * The product generated are a mapfile wich is the configuration file
diff --git a/Modules/IO/Carto/include/otbWorldFile.h b/Modules/IO/Carto/include/otbWorldFile.h
index 18e7212..3510967 100644
--- a/Modules/IO/Carto/include/otbWorldFile.h
+++ b/Modules/IO/Carto/include/otbWorldFile.h
@@ -28,7 +28,7 @@ namespace otb {
 
 /**
  * \class WorldFile
- * \brief Handles the world file that associates geographic informations to png, jpg
+ * \brief Handles the world file that associates geographic information to png, jpg
  *
  *  The world file format is detailed at
  *  http://en.wikipedia.org/wiki/World_file
diff --git a/Modules/IO/Carto/src/otbOSMDataToVectorDataGenerator.cxx b/Modules/IO/Carto/src/otbOSMDataToVectorDataGenerator.cxx
index 1bceb81..6d16f6e 100644
--- a/Modules/IO/Carto/src/otbOSMDataToVectorDataGenerator.cxx
+++ b/Modules/IO/Carto/src/otbOSMDataToVectorDataGenerator.cxx
@@ -193,7 +193,7 @@ void OSMDataToVectorDataGenerator::ParseXmlFile()
           // Get the value of the key
           std::string resultValue = currentTag->Attribute("v");
 
-          // Fill the element informations
+          // Fill the element information
           elementPair.first  = result;
           elementPair.second = resultValue;
 
diff --git a/Modules/IO/ExtendedFilename/include/otbExtendedFilenameToReaderOptions.h b/Modules/IO/ExtendedFilename/include/otbExtendedFilenameToReaderOptions.h
index 131506a..d442a33 100644
--- a/Modules/IO/ExtendedFilename/include/otbExtendedFilenameToReaderOptions.h
+++ b/Modules/IO/ExtendedFilename/include/otbExtendedFilenameToReaderOptions.h
@@ -30,8 +30,8 @@ namespace otb
  * - &geom : to specify an external geom file
  * - &sdataidx : sub-dataset index for composite files
  * - &resol : resolution factor for jpeg200 files
- * - &skipcarto : switch to skip the cartographic informations
- * - &skipgeom  : switch to skip the geometric informations
+ * - &skipcarto : switch to skip the cartographic information
+ * - &skipgeom  : switch to skip the geometric information
  *
  *  \sa ImageFileReader
  *
diff --git a/Modules/IO/IOBSQ/include/otbBSQImageIO.h b/Modules/IO/IOBSQ/include/otbBSQImageIO.h
index d05d588..7c95558 100644
--- a/Modules/IO/IOBSQ/include/otbBSQImageIO.h
+++ b/Modules/IO/IOBSQ/include/otbBSQImageIO.h
@@ -139,7 +139,7 @@ private:
   BSQImageIO(const Self &); //purposely not implemented
   void operator =(const Self&); //purposely not implemented
 
-  /** Internal method to read header informations */
+  /** Internal method to read header information */
   bool InternalReadHeaderInformation(const std::string& file_name, std::fstream& file, const bool reportError);
 
 #define otbSwappFileOrderToSystemOrderMacro(StrongType, buffer, buffer_size) \
diff --git a/Modules/IO/IOBSQ/src/otbBSQImageIO.cxx b/Modules/IO/IOBSQ/src/otbBSQImageIO.cxx
index d4fcc39..9d1fa0e 100644
--- a/Modules/IO/IOBSQ/src/otbBSQImageIO.cxx
+++ b/Modules/IO/IOBSQ/src/otbBSQImageIO.cxx
@@ -108,7 +108,7 @@ bool BSQImageIO::CanReadFile(const char* filename)
     otbMsgDevMacro(<< "BSQImageIO::CanReadFile() failed header open ! ");
     return false;
     }
-  //Read header informations
+  //Read header information
   bool lResult = InternalReadHeaderInformation(lFileName, header_file, false);
   header_file.close();
   return (lResult);
@@ -231,7 +231,7 @@ void BSQImageIO::ReadImageInformation()
     itkExceptionMacro(<< "BSQImageIO::ReadImageInformation() failed header open ! ");
     }
 
-  //Read header informations
+  //Read header information
   InternalReadHeaderInformation(m_FileName, m_HeaderFile, true);
 
   otbMsgDebugMacro(<< "Driver to read: BSQ");
@@ -375,7 +375,7 @@ bool BSQImageIO::InternalReadHeaderInformation(const std::string& file_name, std
     }
   file >> m_Dimensions[0];
 
-  //Read "BITS PER PIXEL" informations
+  //Read "BITS PER PIXEL" information
   file >> lString;
   std::string lStrBitsPerPixels(lString);
   file >> lString;
@@ -397,7 +397,7 @@ bool BSQImageIO::InternalReadHeaderInformation(const std::string& file_name, std
   int lNbBitsPerPixels;
   file >> lNbBitsPerPixels;
 
-  //Read "SENSCODAGE" informations (optionnal)
+  //Read "SENSCODAGE" information (optionnal)
   file >> lString;
   if (lString.empty() == false)
     {
@@ -616,11 +616,11 @@ void BSQImageIO::WriteImageInformation()
   m_HeaderFile <<  "COLUMNS" << std::endl;
   m_HeaderFile << m_Dimensions[0] << std::endl;
 
-  //Write "BITS PER PIXEL" informations
+  //Write "BITS PER PIXEL" information
   m_HeaderFile <<  "BITS PER PIXEL" << std::endl;
   m_HeaderFile << this->GetComponentSize() * 8 << std::endl;
 
-  //Write "SENSCODAGE" informations
+  //Write "SENSCODAGE" information
   m_HeaderFile <<  "SENSCODAGE" << std::endl;
   if (m_ByteOrder == LittleEndian)
     {
diff --git a/Modules/IO/IOGDAL/src/otbGDALImageIO.cxx b/Modules/IO/IOGDAL/src/otbGDALImageIO.cxx
index ec881c3..02fdc67 100644
--- a/Modules/IO/IOGDAL/src/otbGDALImageIO.cxx
+++ b/Modules/IO/IOGDAL/src/otbGDALImageIO.cxx
@@ -960,7 +960,18 @@ void GDALImageIO::InternalReadImageInformation()
   gcpCount = dataset->GetGCPCount();
   if (gcpCount > 0)
     {
-    std::string gcpProjectionKey = static_cast<std::string>(dataset->GetGCPProjection());
+    std::string gcpProjectionKey;
+
+    {
+    // Declare gcpProj in local scope. So, it won't be available outside.
+    const char * gcpProj = dataset->GetGCPProjection();
+
+    // assert( gcpProj!=NULL );
+
+    if( gcpProj!=NULL )
+      gcpProjectionKey = gcpProj;
+    }
+
     itk::EncapsulateMetaData<std::string>(dict, MetaDataKey::GCPProjectionKey, gcpProjectionKey);
 
     if (gcpProjectionKey.empty())
diff --git a/Modules/IO/IOGDAL/test/otbGDALImageIOTestWriteMetadata.cxx b/Modules/IO/IOGDAL/test/otbGDALImageIOTestWriteMetadata.cxx
index 83fbfca..3259f72 100644
--- a/Modules/IO/IOGDAL/test/otbGDALImageIOTestWriteMetadata.cxx
+++ b/Modules/IO/IOGDAL/test/otbGDALImageIOTestWriteMetadata.cxx
@@ -564,7 +564,7 @@ bool writeReadDatasetMetadata(std::string filename, std::vector<std::string> opt
                     abyRaster, 128, 128, GDT_Byte, 0, 0 );
 
 
-  // Get some informations from dataset
+  // Get some information from dataset
   infoDatasetCreate->m_Name = "Create";
   infoDatasetCreate->m_ProjRef = static_cast<std::string>(poDstDS->GetProjectionRef());
 
@@ -593,7 +593,7 @@ bool writeReadDatasetMetadata(std::string filename, std::vector<std::string> opt
   if( poDataset == NULL )
      return false;
 
-  // Get some informations from file
+  // Get some information from file
   infoDatasetWR->m_Name = "WR";
   infoDatasetWR->m_ProjRef = static_cast<std::string>(poDataset->GetProjectionRef());
 
diff --git a/Modules/IO/IOGDAL/test/otbGDALReadPxlComplex.cxx b/Modules/IO/IOGDAL/test/otbGDALReadPxlComplex.cxx
index fe4ffcd..1b25985 100644
--- a/Modules/IO/IOGDAL/test/otbGDALReadPxlComplex.cxx
+++ b/Modules/IO/IOGDAL/test/otbGDALReadPxlComplex.cxx
@@ -38,7 +38,7 @@ int otbGDALReadPxlComplexGeneric(int argc, char * argv[])
   // Get Input parameters
   if (argc != 6)
     {
-    std::cout << "Invalid Parameters: " << argv[0] << "<filenameIn> <posX> <posY> <sizeX> <sizeY><ouput filename>" << std::endl;
+    std::cout << "Invalid Parameters: " << argv[0] << "<filenameIn> <posX> <posY> <sizeX> <sizeY><output filename>" << std::endl;
     return EXIT_FAILURE;
     }
   int posX = (int)atoi(argv[2]);
@@ -56,7 +56,7 @@ int otbGDALReadPxlComplexGeneric(int argc, char * argv[])
   if( poDataset == NULL )
      return EXIT_FAILURE;
 
-  // Get some informations from file
+  // Get some information from file
   int nbBand = poDataset->GetRasterCount();
 
   GDALDataType pxlTypeInFile = poDataset->GetRasterBand(1)->GetRasterDataType();
diff --git a/Modules/IO/IOGDAL/test/otbMultiDatasetReadingInfo.cxx b/Modules/IO/IOGDAL/test/otbMultiDatasetReadingInfo.cxx
index 52d0841..49d9e0c 100644
--- a/Modules/IO/IOGDAL/test/otbMultiDatasetReadingInfo.cxx
+++ b/Modules/IO/IOGDAL/test/otbMultiDatasetReadingInfo.cxx
@@ -27,7 +27,7 @@ int otbMultiDatasetReadingInfo(int argc, char* argv[])
 {
   if (argc != 3)
     {
-    std::cout << argv[0] << "<image HDF> <ouput filename>" << std::endl;
+    std::cout << argv[0] << "<image HDF> <output filename>" << std::endl;
     return EXIT_FAILURE;
     }
   const char * inputFilename  = argv[1];
diff --git a/Modules/IO/IOLUM/include/otbLUMImageIO.h b/Modules/IO/IOLUM/include/otbLUMImageIO.h
index 922dac6..cbb2677 100644
--- a/Modules/IO/IOLUM/include/otbLUMImageIO.h
+++ b/Modules/IO/IOLUM/include/otbLUMImageIO.h
@@ -137,7 +137,7 @@ private:
   LUMImageIO(const Self &); //purposely not implemented
   void operator =(const Self&); //purposely not implemented
 
-  /** Internal method to read header informations */
+  /** Internal method to read header information */
   bool InternalReadHeaderInformation(std::fstream& file, const bool reportError);
   /** This method get the LUM type */
   int CaiGetTypeLum(const char *          type_code,
diff --git a/Modules/IO/IOLUM/src/otbLUMImageIO.cxx b/Modules/IO/IOLUM/src/otbLUMImageIO.cxx
index 6c515cc..1e4378c 100644
--- a/Modules/IO/IOLUM/src/otbLUMImageIO.cxx
+++ b/Modules/IO/IOLUM/src/otbLUMImageIO.cxx
@@ -106,7 +106,7 @@ bool LUMImageIO::CanReadFile(const char* filename)
     return false;
     }
 
-  //Read header informations
+  //Read header information
   bool lResult = InternalReadHeaderInformation(header_file, false);
   header_file.close();
   return (lResult);
@@ -195,7 +195,7 @@ void LUMImageIO::ReadImageInformation()
     itkExceptionMacro(<< "LUMImageIO::ReadImageInformation() failed header open ! ");
     }
 
-  //Read header informations
+  //Read header information
   InternalReadHeaderInformation(m_File, true);
 
   otbMsgDebugMacro(<< "Driver to read: LUM");
@@ -227,7 +227,7 @@ bool LUMImageIO::InternalReadHeaderInformation(std::fstream& file, const bool re
     {
     if (reportError == true)
       {
-      itkExceptionMacro(<< "LUM : bad read of header informations");
+      itkExceptionMacro(<< "LUM : bad read of header information");
       }
     else
       {
@@ -300,7 +300,7 @@ bool LUMImageIO::InternalReadHeaderInformation(std::fstream& file, const bool re
   otbSwappFileOrderToSystemOrderMacro(int, &NbCol, 1);
   otbSwappFileOrderToSystemOrderMacro(int, &NbLig, 1);
 
-  //Initialization of image informations
+  //Initialization of image information
   m_Dimensions[0] = NbCol;
   m_Dimensions[1] = NbLig;
   this->SetNumberOfComponents(1);
diff --git a/Modules/IO/IOMW/include/otbMWImageIO.h b/Modules/IO/IOMW/include/otbMWImageIO.h
index 1331401..1343c4b 100644
--- a/Modules/IO/IOMW/include/otbMWImageIO.h
+++ b/Modules/IO/IOMW/include/otbMWImageIO.h
@@ -141,7 +141,7 @@ private:
 
   std::string GetExtension(const std::string& filename);
 
-  /** Internal method to read header informations */
+  /** Internal method to read header information */
   bool InternalReadHeaderInformation(std::fstream& file, const bool reportError);
   inline void ByteSplitting(unsigned short a, unsigned short& low, unsigned short& high)
   {
diff --git a/Modules/IO/IOMW/src/otbMWImageIO.cxx b/Modules/IO/IOMW/src/otbMWImageIO.cxx
index 141e767..72a803c 100644
--- a/Modules/IO/IOMW/src/otbMWImageIO.cxx
+++ b/Modules/IO/IOMW/src/otbMWImageIO.cxx
@@ -91,7 +91,7 @@ bool MWImageIO::CanReadFile(const char* filename)
     return false;
     }
 
-  //Read header informations
+  //Read header information
   bool lResult = InternalReadHeaderInformation(header_file, false);
   header_file.close();
   return (lResult);
@@ -172,7 +172,7 @@ void MWImageIO::ReadImageInformation()
     itkExceptionMacro(<< "MWImageIO::ReadImageInformation() failed header open ! ");
     }
 
-  //Read header informations
+  //Read header information
   InternalReadHeaderInformation(m_File, true);
 
   otbMsgDebugMacro(<< "Driver to read: MW");
@@ -227,7 +227,7 @@ bool MWImageIO::InternalReadHeaderInformation(std::fstream& file, const bool rep
 
   SetComponentType(FLOAT);
 
-  //Initialization of image informations
+  //Initialization of image information
   m_Dimensions[0] = NbCol;
   m_Dimensions[1] = NbLig;
   this->SetNumberOfComponents(1);
diff --git a/Modules/IO/IORAD/include/otbRADImageIO.h b/Modules/IO/IORAD/include/otbRADImageIO.h
index 6702ea7..1981630 100644
--- a/Modules/IO/IORAD/include/otbRADImageIO.h
+++ b/Modules/IO/IORAD/include/otbRADImageIO.h
@@ -139,7 +139,7 @@ private:
   RADImageIO(const Self &); //purposely not implemented
   void operator =(const Self&); //purposely not implemented
 
-  /** Internal method to read header informations */
+  /** Internal method to read header information */
   bool InternalReadHeaderInformation(const std::string& file_name, std::fstream& file, const bool reportError);
 
 #define otbSwappFileOrderToSystemOrderMacro(StrongType, buffer, buffer_size) \
diff --git a/Modules/IO/IORAD/src/otbRADImageIO.cxx b/Modules/IO/IORAD/src/otbRADImageIO.cxx
index 016a1ef..acea472 100644
--- a/Modules/IO/IORAD/src/otbRADImageIO.cxx
+++ b/Modules/IO/IORAD/src/otbRADImageIO.cxx
@@ -112,7 +112,7 @@ bool RADImageIO::CanReadFile(const char* filename)
     return false;
     }
 
-  //Read header informations
+  //Read header information
   bool lResult = InternalReadHeaderInformation(lFileName, header_file, false);
   header_file.close();
   return (lResult);
@@ -236,7 +236,7 @@ void RADImageIO::ReadImageInformation()
     itkExceptionMacro(<< "RADImageIO::ReadImageInformation() failed header open ! ");
     }
 
-  //Read header informations
+  //Read header information
   InternalReadHeaderInformation(m_FileName, m_HeaderFile, true);
 
   otbMsgDebugMacro(<< "Driver to read: RAD");
@@ -416,7 +416,7 @@ bool RADImageIO::InternalReadHeaderInformation(const std::string& file_name, std
       }
     }
 
-  // Read "SENSCODAGE" informations (optionnal)
+  // Read "SENSCODAGE" information (optionnal)
   file >> lString;
   if (lString.empty() == false)
     {
@@ -704,7 +704,7 @@ void RADImageIO::WriteImageInformation()
     }
   m_HeaderFile << m_TypeRAD << std::endl;
 
-  //Write "SENSCODAGE" informations
+  //Write "SENSCODAGE" information
   m_HeaderFile <<  "SENSCODAGE "; // << std::endl;
   if (m_ByteOrder == LittleEndian)
     {
diff --git a/Modules/IO/IOTileMap/src/otbTileMapImageIO.cxx b/Modules/IO/IOTileMap/src/otbTileMapImageIO.cxx
index 850858d..3820543 100644
--- a/Modules/IO/IOTileMap/src/otbTileMapImageIO.cxx
+++ b/Modules/IO/IOTileMap/src/otbTileMapImageIO.cxx
@@ -209,7 +209,7 @@ void TileMapImageIO::GenerateTileInfo(double x, double y, int numTileX, int numT
   std::ostringstream filename;
   BuildFileName(quad2, filename);
 
-  // Build tile informations
+  // Build tile information
   TileNameAndCoordType lTileInfos;
   lTileInfos.numTileX = numTileX;
   lTileInfos.numTileY = numTileY;
diff --git a/Modules/IO/ImageIO/include/otbImageFileReader.h b/Modules/IO/ImageIO/include/otbImageFileReader.h
index b24dd91..8ad06ee 100644
--- a/Modules/IO/ImageIO/include/otbImageFileReader.h
+++ b/Modules/IO/ImageIO/include/otbImageFileReader.h
@@ -73,7 +73,7 @@ public:
  * It interfaces with an ImageIO class to read in the data and
  * supports streaming (partial reading) if the source dataset does so.
  *
- * ImageFileReader supports extended filenames, which allow to control
+ * ImageFileReader supports extended filenames, which allow controling
  * how the source dataset is read. See
  * http://wiki.orfeo-toolbox.org/index.php/ExtendedFileName for more
  * information.
diff --git a/Modules/IO/ImageIO/include/otbImageFileWriter.h b/Modules/IO/ImageIO/include/otbImageFileWriter.h
index c9251be..17b4d35 100644
--- a/Modules/IO/ImageIO/include/otbImageFileWriter.h
+++ b/Modules/IO/ImageIO/include/otbImageFileWriter.h
@@ -43,7 +43,7 @@ namespace otb
  * ImageFileWriter will write directly the streaming buffer in the image file, so
  * that the output image never needs to be completely allocated
  *
- * ImageFileWriter supports extended filenames, which allow to control
+ * ImageFileWriter supports extended filenames, which allow controling
  * some properties of the output file. See
  * http://wiki.orfeo-toolbox.org/index.php/ExtendedFileName for more
  * information.
diff --git a/Modules/IO/ImageIO/include/otbImageFileWriter.txx b/Modules/IO/ImageIO/include/otbImageFileWriter.txx
index 29ad20d..053498e 100644
--- a/Modules/IO/ImageIO/include/otbImageFileWriter.txx
+++ b/Modules/IO/ImageIO/include/otbImageFileWriter.txx
@@ -682,7 +682,7 @@ ImageFileWriter<TInputImage>
   this->ReleaseInputs();
 
   //Reset global shift on input region (box parameter)
-  //It allows to call multiple update over the writer
+  //It allows calling multiple update over the writer
   m_ShiftOutputIndex.Fill(0);
 }
 
diff --git a/Modules/IO/ImageIO/include/otbImageSeriesFileReader.h b/Modules/IO/ImageIO/include/otbImageSeriesFileReader.h
index 75bee26..3d6eb56 100644
--- a/Modules/IO/ImageIO/include/otbImageSeriesFileReader.h
+++ b/Modules/IO/ImageIO/include/otbImageSeriesFileReader.h
@@ -57,7 +57,7 @@ public:
 
   /** Creation through object factory macro */
   itkNewMacro(Self);
-  /** Runtime informations macro */
+  /** Runtime information macro */
   itkTypeMacro(ImageSeriesFileReader, ImageSeriesFileReaderBase);
 
   typedef typename Superclass::OutputImageType        OutputImageType;
@@ -170,7 +170,7 @@ public:
 
   /** Creation through object factory macro */
   itkNewMacro(Self);
-  /** Runtime informations macro */
+  /** Runtime information macro */
   itkTypeMacro(ImageSeriesFileReader, ImageSeriesFileReaderBase);
 
   typedef typename Superclass::OutputImageType        OutputImageType;
@@ -276,7 +276,7 @@ public:
 
   /** Creation through object factory macro */
   itkNewMacro(Self);
-  /** Runtime informations macro */
+  /** Runtime information macro */
   itkTypeMacro(ImageSeriesFileReader, ImageSeriesFileReaderBase);
 
   typedef typename Superclass::OutputImageType        OutputImageType;
@@ -383,7 +383,7 @@ public:
 
   /** Creation through object factory macro */
   itkNewMacro(Self);
-  /** Runtime informations macro */
+  /** Runtime information macro */
   itkTypeMacro(ImageSeriesFileReader, ImageSeriesFileReaderBase);
 
   typedef typename Superclass::OutputImageType        OutputImageType;
diff --git a/Modules/IO/ImageIO/include/otbImageSeriesFileReaderBase.h b/Modules/IO/ImageIO/include/otbImageSeriesFileReaderBase.h
index 06ce1a6..dcbb7cc 100644
--- a/Modules/IO/ImageIO/include/otbImageSeriesFileReaderBase.h
+++ b/Modules/IO/ImageIO/include/otbImageSeriesFileReaderBase.h
@@ -71,7 +71,7 @@ public:
 
   /** Creation through object factory macro */
   itkNewMacro(Self);
-  /** Runtime informations macro */
+  /** Runtime information macro */
   itkTypeMacro(ImageSeriesFileReaderBase, ImageListSource);
 
   typedef TImage                                      OutputImageType;
diff --git a/Modules/IO/ImageIO/test/otbMultiResolutionReadingInfo.cxx b/Modules/IO/ImageIO/test/otbMultiResolutionReadingInfo.cxx
index acd4377..a927d15 100644
--- a/Modules/IO/ImageIO/test/otbMultiResolutionReadingInfo.cxx
+++ b/Modules/IO/ImageIO/test/otbMultiResolutionReadingInfo.cxx
@@ -29,7 +29,7 @@ int otbMultiResolutionReadingInfo(int argc, char* argv[])
 {
   if (argc != 3)
     {
-    std::cout << argv[0] << "<input filename> <ouput filename>" << std::endl;
+    std::cout << argv[0] << "<input filename> <output filename>" << std::endl;
     return EXIT_FAILURE;
     }
   const char * inputFilename  = argv[1];
diff --git a/Modules/IO/KMZWriter/include/otbKmzProductWriter.h b/Modules/IO/KMZWriter/include/otbKmzProductWriter.h
index e0f54fb..316abad 100644
--- a/Modules/IO/KMZWriter/include/otbKmzProductWriter.h
+++ b/Modules/IO/KMZWriter/include/otbKmzProductWriter.h
@@ -44,7 +44,7 @@ namespace otb
 
 /** \class KmzProductWriter
  * \brief This class generate a Kmz from one or several input
- * images. The inputs must have a non empty metadata informations.
+ * images. The inputs must have a non empty metadata information.
  *
  * This class writes kmz files, supported by Google Earth. The input
  * must have metadata (a non empty keywordlist)
diff --git a/Modules/IO/KMZWriter/include/otbKmzProductWriter.txx b/Modules/IO/KMZWriter/include/otbKmzProductWriter.txx
index 9bc9fb9..0e5622e 100644
--- a/Modules/IO/KMZWriter/include/otbKmzProductWriter.txx
+++ b/Modules/IO/KMZWriter/include/otbKmzProductWriter.txx
@@ -117,7 +117,7 @@ KmzProductWriter<TInputImage>
 
   if(emptyProjRef &&  emptyKWL)
     {
-    itkExceptionMacro(<<"The input image have empty keyword list, please use an image with metadata informations");
+    itkExceptionMacro(<<"The input image have empty keyword list, please use an image with metadata information");
     }
 
   // Continue processing
diff --git a/Modules/Learning/DempsterShafer/include/otbDSFusionOfClassifiersImageFilter.txx b/Modules/Learning/DempsterShafer/include/otbDSFusionOfClassifiersImageFilter.txx
index 5305fa3..bb71f77 100644
--- a/Modules/Learning/DempsterShafer/include/otbDSFusionOfClassifiersImageFilter.txx
+++ b/Modules/Learning/DempsterShafer/include/otbDSFusionOfClassifiersImageFilter.txx
@@ -307,7 +307,7 @@ DSFusionOfClassifiersImageFilter<TInputImage, TOutputImage, TMaskImage>
 
   // Calculation of the four constants A, B, C and K
   MassType A = 0, B = 1, C = 1, K;
-  K = 0; //supress warning. not sure about default value ??
+  K = 0; //suppress warning. not sure about default value ??
   for (itMapMOBClk = mapJointMassesStepI.begin(); itMapMOBClk != mapJointMassesStepI.end(); ++itMapMOBClk)
     {
     classLabelk = itMapMOBClk->first;
diff --git a/Modules/Learning/DempsterShafer/include/otbMassOfBelief.h b/Modules/Learning/DempsterShafer/include/otbMassOfBelief.h
index 1c68d7b..2f21fda 100644
--- a/Modules/Learning/DempsterShafer/include/otbMassOfBelief.h
+++ b/Modules/Learning/DempsterShafer/include/otbMassOfBelief.h
@@ -57,26 +57,26 @@ namespace otb
  *  retrieved using the GetMass method. If no mass has been associated
  *  with this element, null is returned.
  *
- *  The Normalize() method allows to normalize all masses so that they
- *  sum to 1. The EstimateUncertainty() method allows to associate to
+ *  The Normalize() method allows normalizing all masses so that they
+ *  sum to 1. The EstimateUncertainty() method allows associating to
  *  the uncertain set (i.e. the universe set) a mass so that all
  *  masses sum to 1.
  *
- *  The GetUniverse() method allows to retrieve the set of all symbols
- *  (i.e. the universal set), while the GetSupport() method allows to
- *  retrieve the set of all elements of the power-set for which a mass
+ *  The GetUniverse() method allows retrieving the set of all symbols
+ *  (i.e. the universal set), while the GetSupport() method allows
+ *  retrieving the set of all elements of the power-set for which a mass
  *  has been associated. This method returns a LabelSetOfSetType,
  *  which is a std::set<std::set<TLabel> >.
  *
  *  The mass function can be optionnaly initialized from a given
  *  universe set by building the power-set and associating a null mass
- *  with every elements of this power-set. This allows to ensure that
+ *  with every elements of this power-set. This allows ensuring that
  *  two mass functions will share the exact same universe and
  *  power-set, but is not mandatory, since mass is supposed to be null
  *  for any set if not stated otherwise.
  *
  *  Once masses are set, the GetPlausibility() and GetBelief()
- *  function allow to compute the belief and plausibility for an
+ *  function allow computing the belief and plausibility for an
  *  element of the power-set, or directly for a set of elements of the
  *  power-set intersecting (resp. contained in) a given hypothesis.
  *
diff --git a/Modules/Learning/DempsterShafer/include/otbVectorDataToDSValidatedVectorDataFilter.txx b/Modules/Learning/DempsterShafer/include/otbVectorDataToDSValidatedVectorDataFilter.txx
index 1dc7869..2054231 100644
--- a/Modules/Learning/DempsterShafer/include/otbVectorDataToDSValidatedVectorDataFilter.txx
+++ b/Modules/Learning/DempsterShafer/include/otbVectorDataToDSValidatedVectorDataFilter.txx
@@ -28,6 +28,8 @@ namespace otb
 template <class TVectorData, class TPrecision>
   VectorDataToDSValidatedVectorDataFilter<TVectorData, TPrecision>
 ::VectorDataToDSValidatedVectorDataFilter() :
+  m_Bel(0.0),
+  m_Plau(0.0),
   m_CriterionFormula("((Belief + Plausibility)/2.)"),
   m_CriterionThreshold(0.5),
   m_CurrentID(0)
diff --git a/Modules/Learning/LearningBase/include/otbDecisionTree.h b/Modules/Learning/LearningBase/include/otbDecisionTree.h
index fc166c1..e782ba0 100644
--- a/Modules/Learning/LearningBase/include/otbDecisionTree.h
+++ b/Modules/Learning/LearningBase/include/otbDecisionTree.h
@@ -68,7 +68,7 @@ public:
 
   /** Creation through object factory macro */
   itkNewMacro(Self);
-  /** Runtime informations macro */
+  /** Runtime information macro */
   itkTypeMacro(DecisionTree, DataObject);
 
   typedef typename std::pair< AttributeValueType, DecisionTreeTestType > KeyType;
diff --git a/Modules/Learning/SOM/include/otbPeriodicSOM.h b/Modules/Learning/SOM/include/otbPeriodicSOM.h
index 835aeff..f2c68b5 100644
--- a/Modules/Learning/SOM/include/otbPeriodicSOM.h
+++ b/Modules/Learning/SOM/include/otbPeriodicSOM.h
@@ -72,7 +72,7 @@ public:
   /** Creation through object factory macro */
   itkNewMacro(Self);
 
-  /** Runtime informations macro */
+  /** Runtime information macro */
   itkTypeMacro(PeriodicSOM, SOM);
 
   typedef TListSample                      ListSampleType;
diff --git a/Modules/Learning/SOM/include/otbPeriodicSOM.txx b/Modules/Learning/SOM/include/otbPeriodicSOM.txx
index 352817b..4876824 100644
--- a/Modules/Learning/SOM/include/otbPeriodicSOM.txx
+++ b/Modules/Learning/SOM/include/otbPeriodicSOM.txx
@@ -58,7 +58,7 @@ PeriodicSOM<TListSample, TMap, TSOMLearningBehaviorFunctor, TSOMNeighborhoodBeha
   NeighborhoodIteratorType it(radius, map, mapRegion);
 
   // Here, the periodic update is achieved 'by hand' since
-  // PeriodicBoundaryCondition does not allow to modifiy
+  // PeriodicBoundaryCondition does not allow modifying
   // VectorImage contents
   SizeType  mapSize = mapRegion.GetSize();
   IndexType positionToUpdate;
diff --git a/Modules/Learning/SOM/include/otbSOM.h b/Modules/Learning/SOM/include/otbSOM.h
index ff020cd..646488f 100644
--- a/Modules/Learning/SOM/include/otbSOM.h
+++ b/Modules/Learning/SOM/include/otbSOM.h
@@ -68,7 +68,7 @@ public:
 
   /** Creation through object factory macro */
   itkNewMacro(Self);
-  /** Runtime informations macro */
+  /** Runtime information macro */
   itkTypeMacro(SOM, ImageSource);
 
   typedef TListSample                      ListSampleType;
diff --git a/Modules/Learning/SOM/include/otbSOMMap.h b/Modules/Learning/SOM/include/otbSOMMap.h
index 9135f1c..886e2de 100644
--- a/Modules/Learning/SOM/include/otbSOMMap.h
+++ b/Modules/Learning/SOM/include/otbSOMMap.h
@@ -63,7 +63,7 @@ public:
   /** Creation through object factory macro */
   itkNewMacro(Self);
   /**
-   * There is no runtime informations macro since
+   * There is no runtime information macro since
    * this class has to be considered to as a simple VectorImage
    * // itkTypeMacro(SOMMap, VectorImage);
    * */
diff --git a/Modules/Learning/SOM/include/otbSOMWithMissingValue.h b/Modules/Learning/SOM/include/otbSOMWithMissingValue.h
index 51aef37..854bed6 100644
--- a/Modules/Learning/SOM/include/otbSOMWithMissingValue.h
+++ b/Modules/Learning/SOM/include/otbSOMWithMissingValue.h
@@ -72,7 +72,7 @@ public:
 
   /** Creation through object factory macro */
   itkNewMacro(Self);
-  /** Runtime informations macro */
+  /** Runtime information macro */
   itkTypeMacro(SOMWithMissingValue, PeriodicSOM);
 
 protected:
diff --git a/Modules/Learning/SOM/include/otbSOMWithMissingValue.txx b/Modules/Learning/SOM/include/otbSOMWithMissingValue.txx
index 2e316af..841dbda 100644
--- a/Modules/Learning/SOM/include/otbSOMWithMissingValue.txx
+++ b/Modules/Learning/SOM/include/otbSOMWithMissingValue.txx
@@ -70,7 +70,7 @@ SOMWithMissingValue<TListSample, TMap, TSOMLearningBehaviorFunctor, TSOMNeighbor
   NeighborhoodIteratorType it(radius, map, mapRegion);
 
   // Here, the periodic update is achieved 'by hand' since
-  // PeriodicBoundaryCondition does not allow to modifiy
+  // PeriodicBoundaryCondition does not allow modifying
   // VectorImage contents
   SizeType  mapSize = mapRegion.GetSize();
   IndexType positionToUpdate;
diff --git a/Modules/Learning/SVMLearning/include/otbSVMCrossValidationCostFunction.h b/Modules/Learning/SVMLearning/include/otbSVMCrossValidationCostFunction.h
index f679cf2..50ed015 100644
--- a/Modules/Learning/SVMLearning/include/otbSVMCrossValidationCostFunction.h
+++ b/Modules/Learning/SVMLearning/include/otbSVMCrossValidationCostFunction.h
@@ -27,7 +27,7 @@ namespace otb
 /** \class SVMCrossValidationCostFunction
  * \brief This function returns the cross validation accuracy of a SVM model.
  *
- * It allows to perform parameters selection to maximize the
+ * It allows performing parameters selection to maximize the
  * accuracy using ITK optimizers.
  *
  * Given an input SVM model, the number of parameters depends on the
diff --git a/Modules/Learning/SVMLearning/include/otbSVMImageClassificationWithRuleFilter.h b/Modules/Learning/SVMLearning/include/otbSVMImageClassificationWithRuleFilter.h
index e66afd9..87b9ced 100644
--- a/Modules/Learning/SVMLearning/include/otbSVMImageClassificationWithRuleFilter.h
+++ b/Modules/Learning/SVMLearning/include/otbSVMImageClassificationWithRuleFilter.h
@@ -95,7 +95,7 @@ protected:
 
   /** GenerateOutputInformation
         * Set the number of bands of the output rule image.
-        * Copy informations from the input image if existing.
+        * Copy information from the input image if existing.
         **/
   virtual void GenerateOutputInformation();
 
diff --git a/Modules/Learning/Supervised/include/otbConfusionMatrixCalculator.txx b/Modules/Learning/Supervised/include/otbConfusionMatrixCalculator.txx
index efe2189..305220a 100644
--- a/Modules/Learning/Supervised/include/otbConfusionMatrixCalculator.txx
+++ b/Modules/Learning/Supervised/include/otbConfusionMatrixCalculator.txx
@@ -30,7 +30,11 @@ ConfusionMatrixCalculator<TRefListLabel, TProdListLabel>
   m_TrueNegativeValue(0.0),
   m_FalsePositiveValue(0.0),
   m_TruePositiveValue(0.0),
-  m_NumberOfClasses(0)
+  m_Precision(0.0),
+  m_Recall(0.0),
+  m_FScore(0.0),
+  m_NumberOfClasses(0),
+  m_NumberOfSamples(0)
 
 {
   m_ConfusionMatrix = ConfusionMatrixType(m_NumberOfClasses, m_NumberOfClasses);
diff --git a/Modules/Learning/Supervised/include/otbDecisionTreeMachineLearningModel.h b/Modules/Learning/Supervised/include/otbDecisionTreeMachineLearningModel.h
index 651a48f..d7ce6d5 100644
--- a/Modules/Learning/Supervised/include/otbDecisionTreeMachineLearningModel.h
+++ b/Modules/Learning/Supervised/include/otbDecisionTreeMachineLearningModel.h
@@ -81,7 +81,7 @@ public:
   itkSetMacro(RegressionAccuracy, double);
 
   /** If true then surrogate splits will be built.
-   * These splits allow to work with missing data and compute variable importance correctly.
+   * These splits allow working with missing data and compute variable importance correctly.
    * Default is true
    * \see http://docs.opencv.org/modules/ml/doc/decision_trees.html#CvDTreeParams::CvDTreeParams%28%29
    */
diff --git a/Modules/Learning/Supervised/include/otbGradientBoostedTreeMachineLearningModel.h b/Modules/Learning/Supervised/include/otbGradientBoostedTreeMachineLearningModel.h
index f10a89c..30baf7a 100644
--- a/Modules/Learning/Supervised/include/otbGradientBoostedTreeMachineLearningModel.h
+++ b/Modules/Learning/Supervised/include/otbGradientBoostedTreeMachineLearningModel.h
@@ -93,7 +93,7 @@ public:
   itkSetMacro(MaxDepth, int);
 
   /** If true then surrogate splits will be built.
-   * These splits allow to work with missing data and compute variable importance correctly.
+   * These splits allow working with missing data and compute variable importance correctly.
    * Default is false
    * \see http://docs.opencv.org/modules/ml/doc/gradient_boosted_trees.html#cvgbtreesparams-cvgbtreesparams
    */
diff --git a/Modules/OBIA/RCC8/include/otbRCC8GraphFileReader.h b/Modules/OBIA/RCC8/include/otbRCC8GraphFileReader.h
index 0ebecc6..60b6652 100644
--- a/Modules/OBIA/RCC8/include/otbRCC8GraphFileReader.h
+++ b/Modules/OBIA/RCC8/include/otbRCC8GraphFileReader.h
@@ -71,7 +71,7 @@ public:
   typedef itk::SmartPointer<const Self> ConstPointer;
   /** Creation through the object factory */
   itkNewMacro(Self);
-  /** Runtime type informations */
+  /** Runtime type information */
   itkTypeMacro(RCC8GraphFileReader, RCC8GraphSource);
   /** Output related typedefs */
   typedef TOutputGraph                                OutputGraphType;
@@ -93,12 +93,12 @@ protected:
   /** Main computation method */
   virtual void GenerateData();
   /**
-   * Parse edge informations from a given line.
+   * Parse edge information from a given line.
    * \param line The line to parse.
    */
   void ParseEdge(const std::string& line);
   /**
-   * Parse vertex informations from a given line.
+   * Parse vertex information from a given line.
    * \param line The line to parse.
    */
   void  ParseVertex(const std::string& line);
diff --git a/Modules/OBIA/RCC8/include/otbRCC8GraphFileReader.txx b/Modules/OBIA/RCC8/include/otbRCC8GraphFileReader.txx
index bc0fc1f..8ab3514 100644
--- a/Modules/OBIA/RCC8/include/otbRCC8GraphFileReader.txx
+++ b/Modules/OBIA/RCC8/include/otbRCC8GraphFileReader.txx
@@ -45,7 +45,7 @@ RCC8GraphFileReader<TOutputGraph>
 {
 }
 /**
- * Parse edge informations from a given line.
+ * Parse edge information from a given line.
  * \param line The line to parse.
  */
 template <class TOutputGraph>
@@ -66,7 +66,7 @@ RCC8GraphFileReader<TOutputGraph>
   this->GetOutput()->AddEdge(source, target, value);
 }
 /**
- * Parse vertex informations from a given line.
+ * Parse vertex information from a given line.
  * \param line The line to parse.
  */
 template <class TOutputGraph>
diff --git a/Modules/Radiometry/OpticalCalibration/include/otbAeronetFileReader.h b/Modules/Radiometry/OpticalCalibration/include/otbAeronetFileReader.h
index 7957930..bb1798a 100644
--- a/Modules/Radiometry/OpticalCalibration/include/otbAeronetFileReader.h
+++ b/Modules/Radiometry/OpticalCalibration/include/otbAeronetFileReader.h
@@ -82,7 +82,7 @@ public:
   typedef itk::SmartPointer<const Self> ConstPointer;
   /** Creation through the object factory */
   itkNewMacro(Self);
-  /** Runtime type informations */
+  /** Runtime type information */
   itkTypeMacro(AeronetFileReader, itk::ProcessObject);
 
   /** Overiding of the GetOutput() method */
diff --git a/Modules/Radiometry/OpticalCalibration/include/otbAtmosphericCorrectionParameters.h b/Modules/Radiometry/OpticalCalibration/include/otbAtmosphericCorrectionParameters.h
index 8b62d64..7c67a42 100644
--- a/Modules/Radiometry/OpticalCalibration/include/otbAtmosphericCorrectionParameters.h
+++ b/Modules/Radiometry/OpticalCalibration/include/otbAtmosphericCorrectionParameters.h
@@ -143,7 +143,7 @@ protected:
 private:
   AtmosphericCorrectionParameters(const Self &); //purposely not implemented
   void operator =(const Self&); //purposely not implemented
-  /** Path to an Aeronet data file, allows to compute aerosol optical and water vapor amounts. */
+  /** Path to an Aeronet data file, allows computing aerosol optical and water vapor amounts. */
   std::string m_AeronetFileName;
   /** Day */
   int m_Day;
diff --git a/Modules/Radiometry/OpticalCalibration/include/otbSurfaceAdjacencyEffectCorrectionSchemeFilter.h b/Modules/Radiometry/OpticalCalibration/include/otbSurfaceAdjacencyEffectCorrectionSchemeFilter.h
index d1d104c..c73c10b 100644
--- a/Modules/Radiometry/OpticalCalibration/include/otbSurfaceAdjacencyEffectCorrectionSchemeFilter.h
+++ b/Modules/Radiometry/OpticalCalibration/include/otbSurfaceAdjacencyEffectCorrectionSchemeFilter.h
@@ -128,7 +128,7 @@ private:
 /** \class SurfaceAdjacencyEffectCorrectionSchemeFilter
  *  \brief Correct the scheme taking care of the surrounding pixels.
  *
- *   The SurfaceAdjacencyEffectCorrectionSchemeFilter class allows to introduce a neighbor correction to the
+ *   The SurfaceAdjacencyEffectCorrectionSchemeFilter class allows introducing a neighbor correction to the
  *   reflectance estimation. The satelite signal is considered as to be a combinaison of the signal coming from
  *   the target pixel and a weighting of the siganls coming from the neighbor pixels.
  *
diff --git a/Modules/Radiometry/OpticalCalibration/src/otbAeronetFileReader.cxx b/Modules/Radiometry/OpticalCalibration/src/otbAeronetFileReader.cxx
index e27f545..e212a89 100644
--- a/Modules/Radiometry/OpticalCalibration/src/otbAeronetFileReader.cxx
+++ b/Modules/Radiometry/OpticalCalibration/src/otbAeronetFileReader.cxx
@@ -237,7 +237,7 @@ AeronetFileReader
     return;
     }
 
-  // Read informations lines (5 lines)
+  // Read information lines (5 lines)
   std::getline(fin, line);
   std::getline(fin, line);
   std::getline(fin, line);
diff --git a/Modules/Radiometry/Simulation/include/otbSpectralResponse.txx b/Modules/Radiometry/Simulation/include/otbSpectralResponse.txx
index 281b579..95fd78e 100644
--- a/Modules/Radiometry/Simulation/include/otbSpectralResponse.txx
+++ b/Modules/Radiometry/Simulation/include/otbSpectralResponse.txx
@@ -49,7 +49,7 @@ void SpectralResponse<TPrecision, TValuePrecision>::Load(const std::string & fil
     }
 
   int NumLigne = 26; // Go to the line 27
-  //Ignore first 26th lines which are metadatas informations
+  //Ignore first 26th lines which are metadatas information
   for (int i = 0; i < NumLigne; ++i)
     fin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
 
diff --git a/Modules/Registration/DisparityMap/include/otbDisparityMapTo3DFilter.h b/Modules/Registration/DisparityMap/include/otbDisparityMapTo3DFilter.h
index 705032a..5bc25dd 100644
--- a/Modules/Registration/DisparityMap/include/otbDisparityMapTo3DFilter.h
+++ b/Modules/Registration/DisparityMap/include/otbDisparityMapTo3DFilter.h
@@ -74,7 +74,7 @@ public:
   typedef typename OutputImageType::PixelType          DEMPixelType;
 
   // 3D RS transform
-  // TODO: Allow to tune precision (i.e. double or float)
+  // TODO: Allow tuning precision (i.e. double or float)
   typedef double                                      PrecisionType;
   typedef otb::GenericRSTransform<PrecisionType,3,3>  RSTransformType;
 
diff --git a/Modules/Registration/DisparityMap/include/otbDisparityMapToDEMFilter.h b/Modules/Registration/DisparityMap/include/otbDisparityMapToDEMFilter.h
index f0929ab..fe28eaf 100644
--- a/Modules/Registration/DisparityMap/include/otbDisparityMapToDEMFilter.h
+++ b/Modules/Registration/DisparityMap/include/otbDisparityMapToDEMFilter.h
@@ -88,7 +88,7 @@ public:
   typedef itk::ImageRegionSplitter<2>   SplitterType;
 
   // 3D RS transform
-  // TODO: Allow to tune precision (i.e. double or float)
+  // TODO: Allow tuning precision (i.e. double or float)
   typedef otb::GenericRSTransform<double,3,3>       RSTransformType;
   //typedef typename RSTransformType::Pointer         RSTransformPointerType;
 
diff --git a/Modules/Registration/DisparityMap/include/otbFineRegistrationImageFilter.h b/Modules/Registration/DisparityMap/include/otbFineRegistrationImageFilter.h
index e6e866f..a9d5ca0 100644
--- a/Modules/Registration/DisparityMap/include/otbFineRegistrationImageFilter.h
+++ b/Modules/Registration/DisparityMap/include/otbFineRegistrationImageFilter.h
@@ -36,7 +36,7 @@ namespace otb
  * is defined by SetSearchRadius() method.
  *
  * To do so, it optimizes a metric set using the SetMetric() method, which accepts any itk metric
- * deriving from the itk::ImageToImageMetric. The MinimizeOn()/MinimizeOff() flag allow to search for
+ * deriving from the itk::ImageToImageMetric. The MinimizeOn()/MinimizeOff() flag allows searching for
  * minimum or maximum depending on the metric (default is On).
  *
  * Once a coarse (pixel wise) offset has been found, this match is further refined using dichotomic search
@@ -58,7 +58,7 @@ namespace otb
  * grid step to value higher than 1 (grid step is expressed in terms of number of fixed image pixels).
  * Default value is 1.
  *
- * The FineRegistrationImageFilter allows to use the full range of itk::ImageToImageMetric provided by itk.
+ * The FineRegistrationImageFilter allows using the full range of itk::ImageToImageMetric provided by itk.
  *
  * \example DisparityMap/FineRegistrationImageFilterExample.cxx
  *
diff --git a/Modules/Registration/DisparityMap/include/otbMultiDisparityMapTo3DFilter.h b/Modules/Registration/DisparityMap/include/otbMultiDisparityMapTo3DFilter.h
index 7486c60..7e50cc5 100644
--- a/Modules/Registration/DisparityMap/include/otbMultiDisparityMapTo3DFilter.h
+++ b/Modules/Registration/DisparityMap/include/otbMultiDisparityMapTo3DFilter.h
@@ -81,7 +81,7 @@ public:
   typedef typename OutputImageType::PixelType          DEMPixelType;
 
   // 3D RS transform
-  // TODO: Allow to tune precision (i.e. double or float)
+  // TODO: Allow tuning precision (i.e. double or float)
   typedef double                  PrecisionType;
   typedef otb::GenericRSTransform
     <PrecisionType,3,3>           RSTransformType;
diff --git a/Modules/Registration/DisparityMap/include/otbPixelWiseBlockMatchingImageFilter.h b/Modules/Registration/DisparityMap/include/otbPixelWiseBlockMatchingImageFilter.h
index e2a64f9..ffdf02c 100644
--- a/Modules/Registration/DisparityMap/include/otbPixelWiseBlockMatchingImageFilter.h
+++ b/Modules/Registration/DisparityMap/include/otbPixelWiseBlockMatchingImageFilter.h
@@ -268,7 +268,7 @@ private:
  *  between the two input images (displacement is given in pixels, from left
  *  image to right image).
  *
- *  Masks are not mandatory. A mask allows to indicate pixels validity in
+ *  Masks are not mandatory. A mask allows indicating pixels validity in
  *  either left or right image. Left and right masks can be used independently.
  *  If masks are used, only pixels whose mask values are strictly positive
  *  will be considered for disparity matching. The other will exhibit a null
diff --git a/Modules/Registration/DisparityMap/test/otbDisparityMapToDEMFilter.cxx b/Modules/Registration/DisparityMap/test/otbDisparityMapToDEMFilter.cxx
index 84e97be..68eb789 100644
--- a/Modules/Registration/DisparityMap/test/otbDisparityMapToDEMFilter.cxx
+++ b/Modules/Registration/DisparityMap/test/otbDisparityMapToDEMFilter.cxx
@@ -61,7 +61,7 @@ int otbDisparityMapToDEMFilter(int argc, char* argv[])
     std::cerr
         << " dispinput_fname sensorleftinput_fname sensorrighttinput_fname gridleftinput_fname gridrightinput_fname"
         << std::endl;
-    std::cerr << " ouputDEM_filename " << std::endl;
+    std::cerr << " outputDEM_filename " << std::endl;
     std::cerr << " elevmin elevmax avgelev DEMgridstep (maskinput_fname) " << std::endl;
     return EXIT_FAILURE;
     }
diff --git a/Modules/Registration/Stereo/include/otbMulti3DMapToDEMFilter.h b/Modules/Registration/Stereo/include/otbMulti3DMapToDEMFilter.h
index bc93b44..3773eca 100644
--- a/Modules/Registration/Stereo/include/otbMulti3DMapToDEMFilter.h
+++ b/Modules/Registration/Stereo/include/otbMulti3DMapToDEMFilter.h
@@ -111,7 +111,7 @@ public:
   typedef typename InputMapType::PixelType             MapPixelType;
   typedef typename InputMapType::InternalPixelType   InputInternalPixelType;
   // 3D RS transform
-  // TODO: Allow to tune precision (i.e. double or float)
+  // TODO: Allow tuning precision (i.e. double or float)
   typedef double                  PrecisionType;
   typedef otb::GenericRSTransform
     <PrecisionType,3,3>           RSTransformType;
diff --git a/Modules/Registration/Stereo/include/otbStereoSensorModelToElevationMapFilter.h b/Modules/Registration/Stereo/include/otbStereoSensorModelToElevationMapFilter.h
index 7273aaf..b2a7af7 100644
--- a/Modules/Registration/Stereo/include/otbStereoSensorModelToElevationMapFilter.h
+++ b/Modules/Registration/Stereo/include/otbStereoSensorModelToElevationMapFilter.h
@@ -43,23 +43,23 @@ namespace otb
  * map.
  *
  * Setting-up the elevation exploration range is simple : the
- * LowerElevation and HigherElevation parameters allows to set the
+ * LowerElevation and HigherElevation parameters allows setting the
  * exploration range offsets with respect to the local elevation, and
- * the ElevationStep parameter allows to set the step between
+ * the ElevationStep parameter allows setting the step between
  * candidate elevation. The local elevation can either be constant
  * over the whole scene, or interpolated in a Digital Elevation
- * Model. The latter allows to account for highly varying elevation in
- * large scene, and allows to reduce the elevation exploration
+ * Model. The latter allows accounting for highly varying elevation in
+ * large scene, and allows reducing the elevation exploration
  * range. Please note that one can also use a geoid file along with
  * the DEM.
  *
  * Correlation parameters are as follows :
- * - The radius allows to to tune patches size (default is 3),
- * - The CorrelationThreshold allows to set a threshold bellow which
+ * - The radius allows tuning patches size (default is 3),
+ * - The CorrelationThreshold allows setting a threshold bellow which
  *   correlation is considered to fail. If the correlation maxima is
  *   bellow this threshold, the estimated elevation is
  *   discarded (default is 0.7).
- * - The VarianceThreshold allows to discard master patches for which
+ * - The VarianceThreshold allows discarding master patches for which
  *   variance is too small to yeld reliable correlation. If the
  *   variance of the current master patch lies bellow this threshold, no
  *   elevation exploration is performed at this location (default is 4).
diff --git a/Modules/Registration/Stereo/include/otbStereorectificationDisplacementFieldSource.h b/Modules/Registration/Stereo/include/otbStereorectificationDisplacementFieldSource.h
index 2d06800..9cebbf5 100644
--- a/Modules/Registration/Stereo/include/otbStereorectificationDisplacementFieldSource.h
+++ b/Modules/Registration/Stereo/include/otbStereorectificationDisplacementFieldSource.h
@@ -43,8 +43,8 @@ namespace otb
  *  pairs so that the displacement related to the elevation only
  *  occurs in the horizontal direction (i.e. epipolar lines are
  *  horizontal). This operation is useful for mainly two reasons: it
- *  allows to search for disparities in one direction only, and it
- *  allows to derives anaglyph for 3D viewing with 3D glasses.
+ *  allows searching for disparities in one direction only, and it
+ *  allows deriving anaglyph for 3D viewing with 3D glasses.
  *
  *  This filter allows you to compute the deformation fields up to the
  *  sensor model precision needed to warp a pair of stereo images into
@@ -66,13 +66,13 @@ namespace otb
  *  hypothesis on which the epipolar geometry is built. It means that
  *  any pair of pixels in the stereo pair whose elevation is exactly
  *  equal to the average elevation will have a null disparity (no
- *  displacement). The SetElevationOffset() method allows to tune the
+ *  displacement). The SetElevationOffset() method allows tuning the
  *  elevation offset which is only used for local epipolar lines
  *  estimation. The default value of 50 meters should do.
  *
- *  Additionnaly, the SetScale() method allows to derive deformation
+ *  Additionnaly, the SetScale() method allows deriving deformation
  *  fields and images size at a coarser (scale > 1) or finer (scale <
- *  1) resolution. The SetGridStep() allows to tune the step of the
+ *  1) resolution. The SetGridStep() allows tuning the step of the
  *  resampling grid. Please keep in mind that the whole grid is loaded
  *  into memory, and that the epipolar lines direction may only vary
  *  smoothly. When working with large images, a coarse grid-step will
@@ -107,7 +107,7 @@ public:
   typedef typename OutputImageType::RegionType      RegionType;
 
   // 3D RS transform
-  // TODO: Allow to tune precision (i.e. double or float)
+  // TODO: Allow tuning precision (i.e. double or float)
   typedef otb::GenericRSTransform<double,3,3>       RSTransformType;
   typedef typename RSTransformType::Pointer         RSTransformPointerType;
 
diff --git a/Modules/Remote/SertitObject.remote.cmake b/Modules/Remote/SertitObject.remote.cmake
index 8bb9d48..e933f05 100644
--- a/Modules/Remote/SertitObject.remote.cmake
+++ b/Modules/Remote/SertitObject.remote.cmake
@@ -1,7 +1,10 @@
-#Contact: Rémi Cresson <remi.cresson at teledetection.fr>
+#Contact: arnaud.durand at sertit.u-strasbg.fr
+
+#SERTIT - University of Strasbourg http://sertit.u-strasbg.fr
+#Known issue with MSVC - https://github.com/sertit/SertitObject/issues/2
 otb_fetch_module(SertitObject
   "This module provides 2 applications dedicated to object-oriented image analysis.
-   
+
    Aggregate application:
 
 The aim of this application is to merge the result of a segmentation with a
@@ -11,7 +14,7 @@ provided by the OTB application LSMSSegmentation. The output is a vector dataset
 containing objects and the corresponding class in the attribute table. Connected
 regions belonging to the same class are merged. This application could be used
 at the last step of the LSMS pipeline in replacement of the application
-LSMSVectorization.  
+LSMSVectorization.
 
    ObjectsRadiometricStatistics application:
 
diff --git a/Modules/Remote/otbGRM.remote.cmake b/Modules/Remote/otbGRM.remote.cmake
index 5b04011..5c17e58 100644
--- a/Modules/Remote/otbGRM.remote.cmake
+++ b/Modules/Remote/otbGRM.remote.cmake
@@ -4,7 +4,7 @@ otb_fetch_module(otbGRM
 region-merging segmentation on satellite images. Three local homogeneity
 criteria are available: the Baatz & Schäpe criterion, the Full Lambda Schedule
 criterion and the simple Euclidean Distance criterion.  This application uses
-the GRM (Generic Region Merging) library which allows to add quickly a new local
+the GRM (Generic Region Merging) library which allows quickly adding a new local
 homogeneity criterion. Look at the template header file: GRMSegmenterTemplate.h
 to see which format you must respect to add a new criterion.
 
diff --git a/Modules/Segmentation/Conversion/include/otbLabelImageRegionMergingFilter.txx b/Modules/Segmentation/Conversion/include/otbLabelImageRegionMergingFilter.txx
index b202612..e4b0da7 100644
--- a/Modules/Segmentation/Conversion/include/otbLabelImageRegionMergingFilter.txx
+++ b/Modules/Segmentation/Conversion/include/otbLabelImageRegionMergingFilter.txx
@@ -31,7 +31,8 @@ template <class TInputLabelImage, class TInputSpectralImage, class TOutputLabelI
 LabelImageRegionMergingFilter<TInputLabelImage, TInputSpectralImage, TOutputLabelImage, TOutputClusteredImage>
 ::LabelImageRegionMergingFilter()
 {
-
+  m_RangeBandwidth=1.0;
+  m_NumberOfComponentsPerPixel=0;
   this->SetNumberOfRequiredInputs( 2 );
 
   this->SetNumberOfRequiredOutputs(2);
diff --git a/Modules/Segmentation/Conversion/include/otbLabelImageRegionPruningFilter.txx b/Modules/Segmentation/Conversion/include/otbLabelImageRegionPruningFilter.txx
index 5c91889..ed0adf9 100644
--- a/Modules/Segmentation/Conversion/include/otbLabelImageRegionPruningFilter.txx
+++ b/Modules/Segmentation/Conversion/include/otbLabelImageRegionPruningFilter.txx
@@ -31,6 +31,7 @@ template <class TInputLabelImage, class TInputSpectralImage, class TOutputLabelI
 LabelImageRegionPruningFilter<TInputLabelImage, TInputSpectralImage, TOutputLabelImage, TOutputClusteredImage>
 ::LabelImageRegionPruningFilter()
 {
+  m_NumberOfComponentsPerPixel=0;
   m_MinRegionSize=100;
 
   this->SetNumberOfRequiredInputs( 2 );
diff --git a/Modules/Segmentation/Conversion/include/otbOGRDataSourceToLabelImageFilter.h b/Modules/Segmentation/Conversion/include/otbOGRDataSourceToLabelImageFilter.h
index 997c3d4..0d258cd 100644
--- a/Modules/Segmentation/Conversion/include/otbOGRDataSourceToLabelImageFilter.h
+++ b/Modules/Segmentation/Conversion/include/otbOGRDataSourceToLabelImageFilter.h
@@ -43,7 +43,7 @@ namespace otb {
  *  Please note that the background value is also used in
  *  BurnAttributeModeOn() to fill areas where there are no geometries.
  *
- *  Setting the output raster informations can be done in two ways by:
+ *  Setting the output raster information can be done in two ways by:
  *    - Setting the Origin/Size/Spacing of the output image
  *    - Using an existing image as support via SetOutputParametersFromImage(ImageBase)
  *
diff --git a/Modules/Segmentation/Conversion/include/otbVectorDataToLabelImageFilter.h b/Modules/Segmentation/Conversion/include/otbVectorDataToLabelImageFilter.h
index 24aa6e7..85faf23 100644
--- a/Modules/Segmentation/Conversion/include/otbVectorDataToLabelImageFilter.h
+++ b/Modules/Segmentation/Conversion/include/otbVectorDataToLabelImageFilter.h
@@ -37,7 +37,7 @@ namespace otb {
  *  output raster.  The burn values are extracted from a field set by
  *  the user.If no burning field is set, the "FID" is used by default.
  *
- *  Setting the output raster informations can be done in two ways by:
+ *  Setting the output raster information can be done in two ways by:
  *    - Setting the Origin/Size/Spacing of the output image
  *    - Using an existing image as support via SetOutputParametersFromImage(ImageBase)
  *
diff --git a/Modules/Segmentation/MorphologicalProfiles/include/otbMorphologicalClosingProfileFilter.h b/Modules/Segmentation/MorphologicalProfiles/include/otbMorphologicalClosingProfileFilter.h
index 22624a9..c826c61 100644
--- a/Modules/Segmentation/MorphologicalProfiles/include/otbMorphologicalClosingProfileFilter.h
+++ b/Modules/Segmentation/MorphologicalProfiles/include/otbMorphologicalClosingProfileFilter.h
@@ -38,7 +38,7 @@ namespace otb
  * The opening profile is a set of images beeing the result of a geodesic morphological
  * closing by reconstruction with an increasing range of structuring element sizes.
  *
- * For more informations on profiles please refer to the documentation of the otb::ImageToProfileFilter
+ * For more information on profiles please refer to the documentation of the otb::ImageToProfileFilter
  * class.
  *
  * \sa ImageToProfileFilter
diff --git a/Modules/Segmentation/MorphologicalProfiles/include/otbMorphologicalOpeningProfileFilter.h b/Modules/Segmentation/MorphologicalProfiles/include/otbMorphologicalOpeningProfileFilter.h
index 08197bf..08330d8 100644
--- a/Modules/Segmentation/MorphologicalProfiles/include/otbMorphologicalOpeningProfileFilter.h
+++ b/Modules/Segmentation/MorphologicalProfiles/include/otbMorphologicalOpeningProfileFilter.h
@@ -38,7 +38,7 @@ namespace otb
  * The opening profile is a set of images beeing the result of a geodesic morphological
  * opening by reconstruction with an increasing range of structuring element sizes.
  *
- * For more informations on profiles please refer to the documentation of the otb::ImageToProfileFilter
+ * For more information on profiles please refer to the documentation of the otb::ImageToProfileFilter
  * class.
  *
  * \sa ImageToProfileFilter
diff --git a/Modules/Segmentation/MorphologicalProfiles/include/otbMorphologicalProfilesSegmentationFilter.h b/Modules/Segmentation/MorphologicalProfiles/include/otbMorphologicalProfilesSegmentationFilter.h
index 15c29e8..b6f6fc8 100644
--- a/Modules/Segmentation/MorphologicalProfiles/include/otbMorphologicalProfilesSegmentationFilter.h
+++ b/Modules/Segmentation/MorphologicalProfiles/include/otbMorphologicalProfilesSegmentationFilter.h
@@ -54,14 +54,14 @@ namespace otb
  *
  * \ingroup OTBMorphologicalProfiles
 */
-template <class TInputImage,  class TOuputImage, class TInternalPrecision = float, class TStructuringElement = itk::BinaryBallStructuringElement<typename TInputImage::PixelType, TInputImage::ImageDimension> >
+template <class TInputImage,  class TOutputImage, class TInternalPrecision = float, class TStructuringElement = itk::BinaryBallStructuringElement<typename TInputImage::PixelType, TInputImage::ImageDimension> >
 class ITK_EXPORT MorphologicalProfilesSegmentationFilter
-  : public itk::ImageToImageFilter<TInputImage, TOuputImage>
+  : public itk::ImageToImageFilter<TInputImage, TOutputImage>
 {
 public:
 /** Standard Self typedef */
 typedef MorphologicalProfilesSegmentationFilter Self;
-typedef itk::ImageToImageFilter<TInputImage, TOuputImage> Superclass;
+typedef itk::ImageToImageFilter<TInputImage, TOutputImage> Superclass;
 
 typedef itk::SmartPointer<Self>       Pointer;
 typedef itk::SmartPointer<const Self> ConstPointer;
@@ -69,7 +69,7 @@ typedef itk::SmartPointer<const Self> ConstPointer;
 /** Some convenient typedefs. */
 typedef TInputImage                        InputImageType;
 typedef typename InputImageType::PixelType InputPixelType;
-typedef TOuputImage                        OutputImageType;
+typedef TOutputImage                       OutputImageType;
 typedef otb::Image<TInternalPrecision>     InternalImageType;
 
 typedef TStructuringElement                StructuringElementType;
diff --git a/Modules/Segmentation/MorphologicalProfiles/include/otbMorphologicalProfilesSegmentationFilter.txx b/Modules/Segmentation/MorphologicalProfiles/include/otbMorphologicalProfilesSegmentationFilter.txx
index 4bc3f90..770ea76 100644
--- a/Modules/Segmentation/MorphologicalProfiles/include/otbMorphologicalProfilesSegmentationFilter.txx
+++ b/Modules/Segmentation/MorphologicalProfiles/include/otbMorphologicalProfilesSegmentationFilter.txx
@@ -23,13 +23,14 @@
 namespace otb
 {
 
-template <class TInputImage,  class TOuputImage, class TInternalPrecision, class TStructuringElement>
-MorphologicalProfilesSegmentationFilter<TInputImage,TOuputImage,TInternalPrecision,TStructuringElement>
+template <class TInputImage,  class TOutputImage, class TInternalPrecision, class TStructuringElement>
+MorphologicalProfilesSegmentationFilter<TInputImage,TOutputImage,TInternalPrecision,TStructuringElement>
 ::MorphologicalProfilesSegmentationFilter()
 {
   m_ProfileSize = 5;
   m_ProfileStart = 1;
   m_ProfileStep = 1;
+  m_Sigma = 0.0;
 
   m_ClassificationFilter = MultiScaleClassificationFilterType::New();
   m_ConnectedComponentsFilter = ConnectedComponentsFilterType::New();
@@ -54,14 +55,14 @@ MorphologicalProfilesSegmentationFilter<TInputImage,TOuputImage,TInternalPrecisi
 
 }
 
-template <class TInputImage,  class TOuputImage, class TInternalPrecision, class TStructuringElement>
-MorphologicalProfilesSegmentationFilter<TInputImage,TOuputImage,TInternalPrecision,TStructuringElement>
+template <class TInputImage,  class TOutputImage, class TInternalPrecision, class TStructuringElement>
+MorphologicalProfilesSegmentationFilter<TInputImage,TOutputImage,TInternalPrecision,TStructuringElement>
 ::~MorphologicalProfilesSegmentationFilter()
 {}
 
-template <class TInputImage,  class TOuputImage, class TInternalPrecision, class TStructuringElement>
+template <class TInputImage,  class TOutputImage, class TInternalPrecision, class TStructuringElement>
 void
-MorphologicalProfilesSegmentationFilter<TInputImage,TOuputImage,TInternalPrecision,TStructuringElement>
+MorphologicalProfilesSegmentationFilter<TInputImage,TOutputImage,TInternalPrecision,TStructuringElement>
 ::GenerateData()
 {
   m_OpeningProfile->SetInput(this->GetInput());
diff --git a/Modules/Segmentation/MorphologicalProfiles/include/otbProfileDerivativeToMultiScaleCharacteristicsFilter.h b/Modules/Segmentation/MorphologicalProfiles/include/otbProfileDerivativeToMultiScaleCharacteristicsFilter.h
index c83db8a..4280c2a 100644
--- a/Modules/Segmentation/MorphologicalProfiles/include/otbProfileDerivativeToMultiScaleCharacteristicsFilter.h
+++ b/Modules/Segmentation/MorphologicalProfiles/include/otbProfileDerivativeToMultiScaleCharacteristicsFilter.h
@@ -87,7 +87,7 @@ protected:
 
   /** GenerateOutputInformation
    * Set the number of bands of the output.
-   * Copy informations from the first image of the list if existing.
+   * Copy information from the first image of the list if existing.
    **/
   virtual void GenerateOutputInformation(void);
 
diff --git a/Modules/Segmentation/OGRProcessing/include/otbOGRLayerStreamStitchingFilter.h b/Modules/Segmentation/OGRProcessing/include/otbOGRLayerStreamStitchingFilter.h
index f44db8f..4f60646 100644
--- a/Modules/Segmentation/OGRProcessing/include/otbOGRLayerStreamStitchingFilter.h
+++ b/Modules/Segmentation/OGRProcessing/include/otbOGRLayerStreamStitchingFilter.h
@@ -39,7 +39,7 @@ namespace otb
  *  - P1 and P2 are on different side of the streaming line
  *  - P1 and P2 intersect each other.
  *  - P2 has the largest intersection with P1 among all other polygons Pi intersecting P1.
- *  The \c SetStreamSize() method allows to retrieve the number of streams in row and column,
+ *  The \c SetStreamSize() method allows retrieving the number of streams in row and column,
  *  and their pixel coordinates.
  *  The input image is used to transform pixel coordinates of the streaming lines into
  *  coordinate system of the image, which must be the same as the one in the OGR input file.
@@ -134,7 +134,7 @@ protected:
   void ProcessStreamingLine(bool line, itk::ProgressReporter &progress);
   /** get length in case of  OGRGeometryCollection.
    * This function recodes the get_lenght method available since gdal 1.8.0
-   * in the case of OGRGeometryCollection. The aim is allow to access polygon stiching
+   * in the case of OGRGeometryCollection. The aim is to allow accessing polygon stiching
    * functionalities with gdal 1.6.
    */
   double GetLengthOGRGeometryCollection(OGRGeometryCollection * intersection);
diff --git a/Modules/Segmentation/Watersheds/include/otbWatershedSegmentationFilter.h b/Modules/Segmentation/Watersheds/include/otbWatershedSegmentationFilter.h
index 0cc2c68..2f16a85 100644
--- a/Modules/Segmentation/Watersheds/include/otbWatershedSegmentationFilter.h
+++ b/Modules/Segmentation/Watersheds/include/otbWatershedSegmentationFilter.h
@@ -29,7 +29,7 @@ namespace otb {
 *   \brief Watershed composite filter allowing to set output type
 *
 *   This filter is a composite filter that encapsulates the
-*   itk::WatershedImageFilter and allows to set the type of the output
+*   itk::WatershedImageFilter and allows setting the type of the output
 *   image (which is not the case in the itk::WatershedImageFilter).
 *
 *   The composite filter internally casts the output from the
diff --git a/Modules/ThirdParty/GDAL/otb-module-init.cmake b/Modules/ThirdParty/GDAL/otb-module-init.cmake
index 47380a1..62810c0 100644
--- a/Modules/ThirdParty/GDAL/otb-module-init.cmake
+++ b/Modules/ThirdParty/GDAL/otb-module-init.cmake
@@ -8,7 +8,7 @@ if(NOT GDAL_FOUND)
  message(FATAL_ERROR "Cannot find GDAL. Set GDAL_INCLUDE_DIR and GDAL_LIBRARY")
 endif()
 
-#Allow to deactivate GDAL checking (done by default)
+#Check if GDAL is compatible with OTB using a bunch of cmake try_run and try_compile. (Default value is ON.)
 set(GDAL_CONFIG_CHECKING ON CACHE BOOL "Tests to check gdal config." FORCE)
 mark_as_advanced(GDAL_CONFIG_CHECKING)
 
@@ -25,22 +25,22 @@ if(GDAL_CONFIG_CHECKING)
 	endif()
 
 	#------------------- TESTS ---------------------
-	# Version of GDAL  
+	# Version of GDAL
 	try_run(RUN_RESULT_VERSION COMPILE_RESULT_VERSION ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalVersionTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS ${TEMP}/gdalVersion.txt ${MIN_MAJOR_VERSION} ${MIN_MINOR_VERSION})
-  
+
 	# Has OGR
 	try_compile(GDAL_HAS_OGR ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalOGRTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}")
 
 
 	# Has formats JPEG2000 & JPEG & GTIF
 	# Note : exact format names can be found here http://www.gdal.org/formats_list.html
-	try_run(GDAL_HAS_J2K_OPJG COMPILE_RESULT_FORMATS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalFormatsTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS JP2OpenJPEG ${TEMP}/gdalFormats.txt ) 
+	try_run(GDAL_HAS_J2K_OPJG COMPILE_RESULT_FORMATS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalFormatsTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS JP2OpenJPEG ${TEMP}/gdalFormats.txt )
 	try_run(GDAL_HAS_J2K_KAK COMPILE_RESULT_FORMATS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalFormatsTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS JP2KAK ) # No need to output ${TEMP}/gdalFormats.txt everytime
-	try_run(GDAL_HAS_J2K_ECW COMPILE_RESULT_FORMATS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalFormatsTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS JP2ECW ) 
-	try_run(GDAL_HAS_J2K_JG2000 COMPILE_RESULT_FORMATS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalFormatsTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS JPEG2000 ) 
-	try_run(GDAL_HAS_JPEG COMPILE_RESULT_FORMATS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalFormatsTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS JPEG ) 
-	try_run(GDAL_HAS_GTIF COMPILE_RESULT_FORMATS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalFormatsTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS GTiff ) 
-	try_run(GDAL_HAS_HDF5 COMPILE_RESULT_FORMATS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalFormatsTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS HDF5 ) 
+	try_run(GDAL_HAS_J2K_ECW COMPILE_RESULT_FORMATS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalFormatsTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS JP2ECW )
+	try_run(GDAL_HAS_J2K_JG2000 COMPILE_RESULT_FORMATS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalFormatsTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS JPEG2000 )
+	try_run(GDAL_HAS_JPEG COMPILE_RESULT_FORMATS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalFormatsTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS JPEG )
+	try_run(GDAL_HAS_GTIF COMPILE_RESULT_FORMATS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalFormatsTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS GTiff )
+	try_run(GDAL_HAS_HDF5 COMPILE_RESULT_FORMATS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalFormatsTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS HDF5 )
 
 	# Can create geotiff file
 	if (GDAL_HAS_GTIF)
@@ -50,29 +50,29 @@ if(GDAL_CONFIG_CHECKING)
 	#Can create other format file
 	if(COMPILE_RESULT_CREATE AND GDAL_CAN_CREATE_GEOTIFF) #Use the result of the previous try_run
 
-		# Can create bigtiff file 
+		# Can create bigtiff file
 		if (GDAL_HAS_GTIF)
 			try_run(GDAL_CAN_CREATE_BIGTIFF COMPILE_RESULT_CREATECOPY ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalCreateCopyTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS ${TEMP}/testImage.gtif ${TEMP}/testImage.bigtif GTiff "BIGTIFF=YES")
 		endif()
 
-		# Can create jpeg file 
+		# Can create jpeg file
 		if (GDAL_HAS_JPEG)
 			try_run(GDAL_CAN_CREATE_JPEG COMPILE_RESULT_CREATECOPY ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalCreateCopyTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS ${TEMP}/testImage.gtif ${TEMP}/testImage.jpeg JPEG)
 		endif()
-		
+
 		# Can create jpeg2000 file
 		if (GDAL_HAS_J2K_OPJG)
 			try_run(GDAL_CAN_CREATE_JPEG2000 COMPILE_RESULT_CREATECOPY ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalCreateCopyTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS ${TEMP}/testImage.gtif ${TEMP}/testImage.j2k JP2OpenJPEG)
 		endif()
-		
+
 		if (GDAL_HAS_J2K_KAK AND NOT GDAL_CAN_CREATE_JPEG2000)
 			try_run(GDAL_CAN_CREATE_JPEG2000 COMPILE_RESULT_CREATECOPY ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalCreateCopyTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS ${TEMP}/testImage.gtif ${TEMP}/testImage.j2k JP2KAK)
 		endif()
-		
+
 		if (GDAL_HAS_J2K_ECW AND NOT GDAL_CAN_CREATE_JPEG2000)
 			try_run(GDAL_CAN_CREATE_JPEG2000 COMPILE_RESULT_CREATECOPY ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalCreateCopyTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS ${TEMP}/testImage.gtif ${TEMP}/testImage.j2k JP2ECW)
 		endif()
-		
+
 		if (GDAL_HAS_J2K_JG2000 AND NOT GDAL_CAN_CREATE_JPEG2000)
 			try_run(GDAL_CAN_CREATE_JPEG2000 COMPILE_RESULT_CREATECOPY ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalCreateCopyTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS ${TEMP}/testImage.gtif ${TEMP}/testImage.j2k JPEG2000)
 		endif()
@@ -99,7 +99,7 @@ if(GDAL_CONFIG_CHECKING)
       set(OTB_USE_GDAL_20 false CACHE INTERNAL "True if GDAL >= 2.0.0 has been detected" FORCE )
     endif()
 	endif()
-		
+
 	if (NOT GDAL_HAS_OGR)
 		message(WARNING "GDAL doesn't expose OGR library symbols.")
 		set(GDAL_QUALIFIES FALSE)
@@ -114,23 +114,23 @@ if(GDAL_CONFIG_CHECKING)
 		message(STATUS "No Jpeg2000 driver found (compatible drivers are : OpenJpeg, Kakadu, ECW).")
 		#set(GDAL_QUALIFIES FALSE)
 		endif()
-			
+
 		if (NOT GDAL_HAS_JPEG)
 		message(WARNING "No jpeg driver found.")
 		set(GDAL_QUALIFIES FALSE)
 		endif()
-		
+
 		if (NOT GDAL_HAS_GTIF)
 		message(WARNING "No geotiff driver found.")
 		set(GDAL_QUALIFIES FALSE)
 		endif()
-		
+
 	endif()
 
   if (NOT GDAL_HAS_HDF5)
     message(STATUS "GDAL doesn't have HDF5 drivers. (HDF5 tests will be deactivated)")
   endif()
-  
+
 	if (NOT COMPILE_RESULT_CREATE)
 		message(WARNING "Modules/ThirdParty/GDAL/gdalCreateTest.cxx did not compile.")
 		set(COMPILE_ERRORS TRUE)
@@ -138,7 +138,7 @@ if(GDAL_CONFIG_CHECKING)
 			message(WARNING "GDAL can't create geotiff files.")
 			set(GDAL_QUALIFIES FALSE)
 	endif()
-		
+
 
 	if (NOT COMPILE_RESULT_CREATECOPY)
 		message(WARNING "Modules/ThirdParty/GDAL/gdalCreateCopyTest.cxx did not compile.")
@@ -153,12 +153,12 @@ if(GDAL_CONFIG_CHECKING)
 			message(WARNING "GDAL can't create jpeg files.")
 			set(GDAL_QUALIFIES FALSE)
 		endif()
-		
+
 		if (NOT GDAL_CAN_CREATE_JPEG2000)
 			message(WARNING "GDAL can't create jpeg2000 files.")
 			set(GDAL_QUALIFIES FALSE)
-		endif()	
-		
+		endif()
+
 	endif()
 
 
@@ -166,9 +166,9 @@ if(GDAL_CONFIG_CHECKING)
 
 	#FOR UNIX SYSTEMS ONLY
 	if(UNIX)
-	  
+
 	  if(GDAL_QUALIFIES)
-	  
+
 			# Prepare bash script
 			configure_file(${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalTest.sh.in ${CMAKE_CURRENT_BINARY_DIR}/gdalTest.sh @ONLY)
 			execute_process(COMMAND chmod u+x ${CMAKE_CURRENT_BINARY_DIR}/gdalTest.sh)
@@ -189,8 +189,8 @@ if(GDAL_CONFIG_CHECKING)
 				message(WARNING "Internal versions of libtiff/libgeotiff detected without symbol renaming (when configuring GDAL, if options --with-libtiff or --with-geotiff are set to 'internal', then options --with-rename-internal-libtiff-symbols and --with-rename-internal-libgeotiff-symbols should be set to 'yes').")
 				set(GDAL_QUALIFIES FALSE)
 			endif()
-			
-			
+
+
 		endif() #GDAL_QUALIFIES
 
 
diff --git a/Modules/ThirdParty/ITK/CMakeLists.txt b/Modules/ThirdParty/ITK/CMakeLists.txt
index 55b0eb8..c3d0f91 100644
--- a/Modules/ThirdParty/ITK/CMakeLists.txt
+++ b/Modules/ThirdParty/ITK/CMakeLists.txt
@@ -2,7 +2,7 @@ project(OTBITK)
 
 set(OTBITK_SYSTEM_INCLUDE_DIRS ${ITK_INCLUDE_DIRS})
 set(OTBITK_LIBRARIES "${ITK_LIBRARIES}")
-set(OTBITK_EXPORT_CODE_BUILD "find_package(ITK REQUIRED HINTS ${ITK_DIR})")
+set(OTBITK_EXPORT_CODE_BUILD "find_package(ITK REQUIRED COMPONENTS ${OTBITK_ITK_REQUIRED_MODULE_LIST} HINTS ${ITK_DIR})")
 set(OTBITK_EXPORT_CODE_INSTALL ${OTBITK_EXPORT_CODE_BUILD})
 
 otb_module_impl()
diff --git a/Modules/Wrappers/ApplicationEngine/src/otbWrapperComplexInputImageParameter.cxx b/Modules/Wrappers/ApplicationEngine/src/otbWrapperComplexInputImageParameter.cxx
index 392645e..dc96c73 100644
--- a/Modules/Wrappers/ApplicationEngine/src/otbWrapperComplexInputImageParameter.cxx
+++ b/Modules/Wrappers/ApplicationEngine/src/otbWrapperComplexInputImageParameter.cxx
@@ -42,7 +42,7 @@ ComplexInputImageParameter::~ComplexInputImageParameter()
 bool
 ComplexInputImageParameter::SetFromFileName(const std::string& filename)
 {
-  // First clear previous file choosen
+  // First clear previous file chosen
   this->ClearValue();
 
   // No file existence is done here :
diff --git a/Modules/Wrappers/ApplicationEngine/src/otbWrapperDocExampleStructure.cxx b/Modules/Wrappers/ApplicationEngine/src/otbWrapperDocExampleStructure.cxx
index 9c69aff..ac470c6 100644
--- a/Modules/Wrappers/ApplicationEngine/src/otbWrapperDocExampleStructure.cxx
+++ b/Modules/Wrappers/ApplicationEngine/src/otbWrapperDocExampleStructure.cxx
@@ -145,7 +145,7 @@ DocExampleStructure::GenerateCLExample( unsigned int exId )
 
   res = oss.str();
 
-  // Supress last added space
+  // Suppress last added space
   res.erase( res.size()-1, 1);
 
   return res.c_str();
diff --git a/Modules/Wrappers/ApplicationEngine/src/otbWrapperElevationParametersHandler.cxx b/Modules/Wrappers/ApplicationEngine/src/otbWrapperElevationParametersHandler.cxx
index 10693e9..e21733a 100644
--- a/Modules/Wrappers/ApplicationEngine/src/otbWrapperElevationParametersHandler.cxx
+++ b/Modules/Wrappers/ApplicationEngine/src/otbWrapperElevationParametersHandler.cxx
@@ -28,14 +28,14 @@ void ElevationParametersHandler::AddElevationParameters(Application::Pointer app
 {
   app->AddParameter(ParameterType_Group, key, "Elevation management");
   app->SetParameterDescription(key,
-                               "This group of parameters allows to manage elevation values. Supported formats are SRTM, DTED or any geotiff. DownloadSRTMTiles application could be a useful tool to list/download tiles related to a product.");
+                               "This group of parameters allows managing elevation values. Supported formats are SRTM, DTED or any geotiff. DownloadSRTMTiles application could be a useful tool to list/download tiles related to a product.");
 
   // DEM directory
   std::ostringstream oss;
   oss << key<<".dem";
   app->AddParameter(ParameterType_Directory, oss.str(), "DEM directory");
   app->SetParameterDescription(oss.str(),
-                               "This parameter allows to select a directory containing Digital Elevation Model tiles");
+                               "This parameter allows selecting a directory containing Digital Elevation Model tiles");
   app->MandatoryOff(oss.str());
 
   std::string demDirFromConfig = otb::ConfigurationManager::GetDEMDirectory();
@@ -73,7 +73,7 @@ void ElevationParametersHandler::AddElevationParameters(Application::Pointer app
   oss.str("");
   oss << key <<".default";
   app->AddParameter(ParameterType_Float, oss.str(), "Default elevation");
-  app->SetParameterDescription(oss.str(),"This parameter allows to set the default height above ellipsoid when there is no DEM available, no coverage for some points or pixels with no_data in the DEM tiles, and no geoid file has been set. This is also used by some application as an average elevation value.");
+  app->SetParameterDescription(oss.str(),"This parameter allows setting the default height above ellipsoid when there is no DEM available, no coverage for some points or pixels with no_data in the DEM tiles, and no geoid file has been set. This is also used by some application as an average elevation value.");
   app->SetDefaultParameterFloat(oss.str(), 0.);
 
  // TODO : not implemented yet
diff --git a/Modules/Wrappers/ApplicationEngine/src/otbWrapperInputImageListParameter.cxx b/Modules/Wrappers/ApplicationEngine/src/otbWrapperInputImageListParameter.cxx
index 2739fca..c873061 100644
--- a/Modules/Wrappers/ApplicationEngine/src/otbWrapperInputImageListParameter.cxx
+++ b/Modules/Wrappers/ApplicationEngine/src/otbWrapperInputImageListParameter.cxx
@@ -38,7 +38,7 @@ InputImageListParameter::~InputImageListParameter()
 bool
 InputImageListParameter::SetListFromFileName(const std::vector<std::string> & filenames)
 {
-  // First clear previous file choosen
+  // First clear previous file chosen
   this->ClearValue();
 
   bool isOk = true;
diff --git a/Modules/Wrappers/ApplicationEngine/src/otbWrapperInputImageParameter.cxx b/Modules/Wrappers/ApplicationEngine/src/otbWrapperInputImageParameter.cxx
index 15382be..76f3355 100644
--- a/Modules/Wrappers/ApplicationEngine/src/otbWrapperInputImageParameter.cxx
+++ b/Modules/Wrappers/ApplicationEngine/src/otbWrapperInputImageParameter.cxx
@@ -43,7 +43,7 @@ InputImageParameter::~InputImageParameter()
 bool
 InputImageParameter::SetFromFileName(const std::string& filename)
 {
-  // First clear previous file choosen
+  // First clear previous file chosen
   this->ClearValue();
 
   // No file existence is done here :
diff --git a/Modules/Wrappers/ApplicationEngine/src/otbWrapperInputVectorDataListParameter.cxx b/Modules/Wrappers/ApplicationEngine/src/otbWrapperInputVectorDataListParameter.cxx
index 6cadd10..207d2de 100644
--- a/Modules/Wrappers/ApplicationEngine/src/otbWrapperInputVectorDataListParameter.cxx
+++ b/Modules/Wrappers/ApplicationEngine/src/otbWrapperInputVectorDataListParameter.cxx
@@ -40,7 +40,7 @@ InputVectorDataListParameter::~InputVectorDataListParameter()
 bool
 InputVectorDataListParameter::SetListFromFileName(const std::vector<std::string> & filenames)
 {
-  // First clear previous file choosen
+  // First clear previous file chosen
   this->ClearValue();
 
   bool isOk = true;
diff --git a/Modules/Wrappers/ApplicationEngine/src/otbWrapperInputVectorDataParameter.cxx b/Modules/Wrappers/ApplicationEngine/src/otbWrapperInputVectorDataParameter.cxx
index a50cde3..f97db44 100644
--- a/Modules/Wrappers/ApplicationEngine/src/otbWrapperInputVectorDataParameter.cxx
+++ b/Modules/Wrappers/ApplicationEngine/src/otbWrapperInputVectorDataParameter.cxx
@@ -37,7 +37,7 @@ InputVectorDataParameter::~InputVectorDataParameter()
 bool
 InputVectorDataParameter::SetFromFileName(const std::string& filename)
 {
-  // First clear previous file choosen
+  // First clear previous file chosen
   this->ClearValue();
 
   // TODO : when the logger will be available, redirect the exception
diff --git a/Modules/Wrappers/ApplicationEngine/src/otbWrapperMapProjectionParametersHandler.cxx b/Modules/Wrappers/ApplicationEngine/src/otbWrapperMapProjectionParametersHandler.cxx
index 714377d..e96ab87 100644
--- a/Modules/Wrappers/ApplicationEngine/src/otbWrapperMapProjectionParametersHandler.cxx
+++ b/Modules/Wrappers/ApplicationEngine/src/otbWrapperMapProjectionParametersHandler.cxx
@@ -41,7 +41,7 @@ void MapProjectionParametersHandler::AddMapProjectionParameters( Application::Po
 
   oss << ".zone";
   app->AddParameter(ParameterType_Int, oss.str(), "Zone number");
-  app->SetParameterDescription(oss.str(),"The zone number ranges from 1 to 60 and allows to define the transverse mercator projection (along with the hemisphere)");
+  app->SetParameterDescription(oss.str(),"The zone number ranges from 1 to 60 and allows defining the transverse mercator projection (along with the hemisphere)");
   app->SetMinimumParameterIntValue(oss.str(), 1);
   app->SetDefaultParameterInt(oss.str(), 31);
 
@@ -99,7 +99,7 @@ void MapProjectionParametersHandler::AddMapProjectionParameters( Application::Po
   oss<<key<<".epsg";
   app->AddChoice(oss.str(),"EPSG Code");
   app->SetParameterDescription(oss.str(),
-                               "This code is a generic way of identifying map projections, and allows to specify a large amount of them. See www.spatialreference.org to find which EPSG code is associated to your projection;");
+                               "This code is a generic way of identifying map projections, and allows specifying a large amount of them. See www.spatialreference.org to find which EPSG code is associated to your projection;");
 
   oss <<".code";
   app->AddParameter(ParameterType_Int, oss.str(), "EPSG Code");
diff --git a/Modules/Wrappers/CommandLine/src/CMakeLists.txt b/Modules/Wrappers/CommandLine/src/CMakeLists.txt
index f47770d..3da3ad0 100644
--- a/Modules/Wrappers/CommandLine/src/CMakeLists.txt
+++ b/Modules/Wrappers/CommandLine/src/CMakeLists.txt
@@ -16,7 +16,7 @@ target_link_libraries(otbApplicationLauncherCommandLine OTBCommandLine)
 otb_module_target(otbApplicationLauncherCommandLine)
 
 # Where we will install the script in the build tree
-get_target_property(CLI_OUPUT_DIR otbApplicationLauncherCommandLine RUNTIME_OUTPUT_DIRECTORY)
+get_target_property(CLI_OUTPUT_DIR otbApplicationLauncherCommandLine RUNTIME_OUTPUT_DIRECTORY)
 
 # Generate a script in the build dir, next to the cli launcher
 # Need a two-step process since configure_file don't support permissions
@@ -27,11 +27,11 @@ configure_file( ${CMAKE_SOURCE_DIR}/CMake/otbcli.bat.in
                 ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/Scripts/otbcli.bat
                 @ONLY )
 file(COPY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/Scripts/otbcli.bat
-     DESTINATION ${CLI_OUPUT_DIR}
+     DESTINATION ${CLI_OUTPUT_DIR}
      FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
 
 # TODO : test if NO_INSTALL is set
-install(PROGRAMS ${CLI_OUPUT_DIR}/otbcli.bat
+install(PROGRAMS ${CLI_OUTPUT_DIR}/otbcli.bat
         DESTINATION ${OTBCommandLine_INSTALL_RUNTIME_DIR}
         COMPONENT Runtime)
 
@@ -40,11 +40,11 @@ configure_file( ${CMAKE_SOURCE_DIR}/CMake/otbcli.sh.in
                 ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/Scripts/otbcli
                 @ONLY )
 file(COPY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/Scripts/otbcli
-     DESTINATION ${CLI_OUPUT_DIR}
+     DESTINATION ${CLI_OUTPUT_DIR}
      FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
 
 # TODO : test if NO_INSTALL is set
-install(PROGRAMS ${CLI_OUPUT_DIR}/otbcli
+install(PROGRAMS ${CLI_OUTPUT_DIR}/otbcli
         DESTINATION ${OTBCommandLine_INSTALL_RUNTIME_DIR}
         COMPONENT Runtime)
 
diff --git a/Modules/Wrappers/CommandLine/src/otbWrapperCommandLineParser.cxx b/Modules/Wrappers/CommandLine/src/otbWrapperCommandLineParser.cxx
index 38a5ad5..b512327 100644
--- a/Modules/Wrappers/CommandLine/src/otbWrapperCommandLineParser.cxx
+++ b/Modules/Wrappers/CommandLine/src/otbWrapperCommandLineParser.cxx
@@ -496,7 +496,7 @@ CommandLineParser::GetKeyList( const std::string & exp  )
 
   while( found != std::string::npos )
     {
-    // Supress everything before the key
+    // Suppress everything before the key
     cutExp = cutExp.substr(found+2, exp.size());
     // Search the end of the key (a space)
     std::size_t foundSpace = cutExp.find(" ");
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputFilenameListParameter.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputFilenameListParameter.h
index 7bd945a..e47bb74 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputFilenameListParameter.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputFilenameListParameter.h
@@ -51,7 +51,7 @@ protected slots:
   virtual void UpFile();
   virtual void DownFile();
   virtual void AddFile();
-  virtual void SupressFile();
+  virtual void SuppressFile();
   virtual void EraseFile();
   virtual void UpdateFilenameList();
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputImageListParameter.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputImageListParameter.h
index c78d72b..b127e8b 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputImageListParameter.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputImageListParameter.h
@@ -51,7 +51,7 @@ protected slots:
   virtual void UpFile();
   virtual void DownFile();
   virtual void AddFile();
-  virtual void SupressFile();
+  virtual void SuppressFile();
   virtual void EraseFile();
   virtual void UpdateImageList();
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputVectorDataListParameter.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputVectorDataListParameter.h
index 988883b..1a4100b 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputVectorDataListParameter.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetInputVectorDataListParameter.h
@@ -52,7 +52,7 @@ protected slots:
   virtual void UpFile();
   virtual void DownFile();
   virtual void AddFile();
-  virtual void SupressFile();
+  virtual void SuppressFile();
   virtual void EraseFile();
   virtual void UpdateVectorDataList();
 
diff --git a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetStringListParameter.h b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetStringListParameter.h
index f978c55..9e7acdb 100644
--- a/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetStringListParameter.h
+++ b/Modules/Wrappers/QtWidget/include/otbWrapperQtWidgetStringListParameter.h
@@ -46,7 +46,7 @@ signals:
 protected slots:
   void SetString( const QString& value );
   virtual void AddString();
-  virtual void SupressString();
+  virtual void SuppressString();
   virtual void UpdateStringList();
 
 private:
diff --git a/Modules/Wrappers/QtWidget/src/CMakeLists.txt b/Modules/Wrappers/QtWidget/src/CMakeLists.txt
index 7b20830..ed62094 100644
--- a/Modules/Wrappers/QtWidget/src/CMakeLists.txt
+++ b/Modules/Wrappers/QtWidget/src/CMakeLists.txt
@@ -91,7 +91,7 @@ target_link_libraries(otbApplicationLauncherQt
 otb_module_target(otbApplicationLauncherQt)
 
 # Where we will install the script in the build tree
-get_target_property(GUI_OUPUT_DIR otbApplicationLauncherQt RUNTIME_OUTPUT_DIRECTORY)
+get_target_property(GUI_OUTPUT_DIR otbApplicationLauncherQt RUNTIME_OUTPUT_DIRECTORY)
 
 # Generate a script in the build dir, next to the gui launcher
 # Need a two-step process since configure_file don't support permissions
@@ -103,11 +103,11 @@ configure_file( ${CMAKE_SOURCE_DIR}/CMake/otbgui.bat.in
                 ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/Scripts/otbgui.bat
                 @ONLY )
 file(COPY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/Scripts/otbgui.bat
-     DESTINATION ${GUI_OUPUT_DIR}
+     DESTINATION ${GUI_OUTPUT_DIR}
      FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
 
 # TODO : test if NO_INSTALL is set
-install(PROGRAMS ${GUI_OUPUT_DIR}/otbgui.bat
+install(PROGRAMS ${GUI_OUTPUT_DIR}/otbgui.bat
         DESTINATION ${OTBQtWidget_INSTALL_RUNTIME_DIR}
         COMPONENT Runtime)
 
@@ -116,11 +116,11 @@ configure_file( ${CMAKE_SOURCE_DIR}/CMake/otbgui.sh.in
                 ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/Scripts/otbgui
                 @ONLY )
 file(COPY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/Scripts/otbgui
-     DESTINATION ${GUI_OUPUT_DIR}
+     DESTINATION ${GUI_OUTPUT_DIR}
      FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
 
 # TODO : test if NO_INSTALL is set
-install(PROGRAMS ${GUI_OUPUT_DIR}/otbgui
+install(PROGRAMS ${GUI_OUTPUT_DIR}/otbgui
         DESTINATION ${OTBQtWidget_INSTALL_RUNTIME_DIR}
         COMPONENT Runtime)
 
diff --git a/Modules/Wrappers/QtWidget/src/otbWrapperQtWidgetInputFilenameListParameter.cxx b/Modules/Wrappers/QtWidget/src/otbWrapperQtWidgetInputFilenameListParameter.cxx
index be107c3..b28d168 100644
--- a/Modules/Wrappers/QtWidget/src/otbWrapperQtWidgetInputFilenameListParameter.cxx
+++ b/Modules/Wrappers/QtWidget/src/otbWrapperQtWidgetInputFilenameListParameter.cxx
@@ -87,12 +87,12 @@ void QtWidgetInputFilenameListParameter::DoCreateWidget()
   connect(addButton, SIGNAL(clicked()), this, SLOT(AddFile()));
   addSupLayout->addWidget(addButton);
 
-  // Supress file button
+  // Suppress file button
   QPushButton * supButton = new QPushButton;
   supButton->setText("-");
   supButton->setFixedWidth(buttonSize);
-  supButton->setToolTip("Supress the selected file...");
-  connect(supButton, SIGNAL(clicked()), this, SLOT(SupressFile()));
+  supButton->setToolTip("Suppress the selected file...");
+  connect(supButton, SIGNAL(clicked()), this, SLOT(SuppressFile()));
   addSupLayout->addWidget(supButton);
   buttonLayout->addLayout(addSupLayout);
 
@@ -312,7 +312,7 @@ QtWidgetInputFilenameListParameter::AddFile()
 }
 
 void
-QtWidgetInputFilenameListParameter::SupressFile()
+QtWidgetInputFilenameListParameter::SuppressFile()
 {
   m_FileLayout = new QVBoxLayout();
   m_FileLayout->setSpacing(0);
diff --git a/Modules/Wrappers/QtWidget/src/otbWrapperQtWidgetInputImageListParameter.cxx b/Modules/Wrappers/QtWidget/src/otbWrapperQtWidgetInputImageListParameter.cxx
index e040b65..b44053d 100644
--- a/Modules/Wrappers/QtWidget/src/otbWrapperQtWidgetInputImageListParameter.cxx
+++ b/Modules/Wrappers/QtWidget/src/otbWrapperQtWidgetInputImageListParameter.cxx
@@ -89,12 +89,12 @@ void QtWidgetInputImageListParameter::DoCreateWidget()
   connect(addButton, SIGNAL(clicked()), this, SLOT(AddFile()));
   addSupLayout->addWidget(addButton);
 
-  // Supress file button
+  // Suppress file button
   QPushButton * supButton = new QPushButton;
   supButton->setText("-");
   supButton->setFixedWidth(buttonSize);
-  supButton->setToolTip("Supress the selected file...");
-  connect(supButton, SIGNAL(clicked()), this, SLOT(SupressFile()));
+  supButton->setToolTip("Suppress the selected file...");
+  connect(supButton, SIGNAL(clicked()), this, SLOT(SuppressFile()));
   addSupLayout->addWidget(supButton);
   buttonLayout->addLayout(addSupLayout);
 
@@ -332,7 +332,7 @@ QtWidgetInputImageListParameter::AddFile()
 }
 
 void
-QtWidgetInputImageListParameter::SupressFile()
+QtWidgetInputImageListParameter::SuppressFile()
 {
   m_FileLayout = new QVBoxLayout();
   m_FileLayout->setSpacing(0);
diff --git a/Modules/Wrappers/QtWidget/src/otbWrapperQtWidgetInputVectorDataListParameter.cxx b/Modules/Wrappers/QtWidget/src/otbWrapperQtWidgetInputVectorDataListParameter.cxx
index 21527cb..611be37 100644
--- a/Modules/Wrappers/QtWidget/src/otbWrapperQtWidgetInputVectorDataListParameter.cxx
+++ b/Modules/Wrappers/QtWidget/src/otbWrapperQtWidgetInputVectorDataListParameter.cxx
@@ -86,12 +86,12 @@ void QtWidgetInputVectorDataListParameter::DoCreateWidget()
   connect(addButton, SIGNAL(clicked()), this, SLOT(AddFile()));
   addSupLayout->addWidget(addButton);
 
-  // Supress file button
+  // Suppress file button
   QPushButton * supButton = new QPushButton;
   supButton->setText("-");
   supButton->setFixedWidth(buttonSize);
-  supButton->setToolTip("Supress the selected file...");
-  connect(supButton, SIGNAL(clicked()), this, SLOT(SupressFile()));
+  supButton->setToolTip("Suppress the selected file...");
+  connect(supButton, SIGNAL(clicked()), this, SLOT(SuppressFile()));
   addSupLayout->addWidget(supButton);
   buttonLayout->addLayout(addSupLayout);
 
@@ -311,7 +311,7 @@ QtWidgetInputVectorDataListParameter::AddFile()
 }
 
 void
-QtWidgetInputVectorDataListParameter::SupressFile()
+QtWidgetInputVectorDataListParameter::SuppressFile()
 {
   m_FileLayout = new QVBoxLayout();
   m_FileLayout->setSpacing(0);
diff --git a/Modules/Wrappers/QtWidget/src/otbWrapperQtWidgetStringListParameter.cxx b/Modules/Wrappers/QtWidget/src/otbWrapperQtWidgetStringListParameter.cxx
index 6419ab8..842ece5 100644
--- a/Modules/Wrappers/QtWidget/src/otbWrapperQtWidgetStringListParameter.cxx
+++ b/Modules/Wrappers/QtWidget/src/otbWrapperQtWidgetStringListParameter.cxx
@@ -88,12 +88,12 @@ void QtWidgetStringListParameter::DoCreateWidget()
     connect( addButton, SIGNAL(clicked()), this, SLOT(AddString()) );
     addSupLayout->addWidget(addButton);
 
-    // Supress file button
+    // Suppress file button
     QPushButton * supButton = new QPushButton;
     supButton->setText("-");
     supButton->setFixedWidth(buttonSize);
-    supButton->setToolTip("Supress the selected string...");
-    connect( supButton, SIGNAL(clicked()), this, SLOT(SupressString()) );
+    supButton->setToolTip("Suppress the selected string...");
+    connect( supButton, SIGNAL(clicked()), this, SLOT(SuppressString()) );
     addSupLayout->addWidget(supButton);
     buttonLayout->addLayout(addSupLayout);
 
@@ -177,7 +177,7 @@ QtWidgetStringListParameter::AddString()
 
 
 void
-QtWidgetStringListParameter::SupressString()
+QtWidgetStringListParameter::SuppressString()
 {
   m_StringLayout = new QVBoxLayout();
   m_StringLayout->setSpacing(0);
diff --git a/Modules/Wrappers/SWIG/src/numpy.i b/Modules/Wrappers/SWIG/src/numpy.i
index b9a7ce7..5a44f77 100644
--- a/Modules/Wrappers/SWIG/src/numpy.i
+++ b/Modules/Wrappers/SWIG/src/numpy.i
@@ -123,7 +123,7 @@
     if (PyInstance_Check(py_obj)) return "instance"    ;
 %#endif
 
-    return "unkown type";
+    return "unknown type";
   }
 
   /* Given a NumPy typecode, return a string describing the type.
diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt
index 67a236a..b7266f3 100644
--- a/RELEASE_NOTES.txt
+++ b/RELEASE_NOTES.txt
@@ -1,3 +1,21 @@
+OTB-v.5.2.1 - Changes since version 5.2.0 (2016/01/19)
+------------------------------------------
+* Bugs fixed:
+  * Mantis-1124: fix the use of Update_command and reorder the patch commands properly
+  * Fix some Coverity reports
+
+* Superbuild:
+  * Update OSSIM to latest stable and improve version checking during CMake configuration
+
+* Monteverdi:
+  * Mantis-1096: QuicklookView
+  * Mantis-1125: Use OTB_APPLICATION_PATH in startup files
+
+* Other:
+  * Apply spelling patch from DebianGIS
+  * Find only required itk components. Patch proposed by Debian.
+  * Fix mxe gcc dir and list of system dlls exceptions
+
 OTB-v.5.2.0 - Changes since version 5.0.0 (2015/12/22)
 ------------------------------------------
 * Library (the corresponding requests for changes are mentioned):
@@ -104,8 +122,8 @@ OTB-v.5.0.0 - Changes since version 4.4.0 (2015/05/28)
 
   * Remove deprecated code
      * MeanShiftVectorImageFilter  and MeanShiftImageFilter classes
-     * CommandLineLauncher(const char * exp) and Load( const std::string & exp ) methods in CommandLineLauncher class  
-       
+     * CommandLineLauncher(const char * exp) and Load( const std::string & exp ) methods in CommandLineLauncher class
+
   * ThirdParties
     * No more internal versions of most third parties (except 6S, siftfast, ossimplugins)
       * Removed openjpeg sources from OTB source
@@ -118,10 +136,10 @@ OTB-v.5.0.0 - Changes since version 4.4.0 (2015/05/28)
 
   * Superbuild
     * A separate superbuild project has been added in the Superbuild repository
-    * It allows to build all OTB dependencies from source, and then OTB (thus replaces the removed internal versions)
+    * This download, configure and build all OTB dependencies from source and then build OTB. It replaces the removed internal versions.
     * Sources are checked out at configuration time or can be downloaded beforehand
-    * Allow to build a complete OTB with a handful of prerequisites (gcc, cmake, curl)
-  
+    * Allow building a complete OTB with a handful of prerequisites (gcc, cmake, curl)
+
   * Doxygen
     * Classes are now organized by modules
     * Direct link to official ITK doxygen
@@ -169,7 +187,7 @@ OTB-v.5.0.0 - Changes since version 4.4.0 (2015/05/28)
     * 0001037: file and vector outputs need explicit relative paths
     * 0001036: TileFusion application crashes with SPOT-7 tiled images
     * 0000728: Inconsistent polygon number in concatenate vector data output
-    * 0001031: Wrong projection for ouput vector of segmentation application
+    * 0001031: Wrong projection for output vector of segmentation application
 
 
 OTB-v.4.4.0 - Changes since version 4.2.1 (2015/02/13)
@@ -178,8 +196,8 @@ OTB-v.4.4.0 - Changes since version 4.2.1 (2015/02/13)
 * Library:
 
   * Core:
-    * Add a BandMathXImageFilter, otbParserX, otbParserXPlugins filters based on MuParserX  
-    * Correct a lot of issues related to Coverity scan 
+    * Add a BandMathXImageFilter, otbParserX, otbParserXPlugins filters based on MuParserX
+    * Correct a lot of issues related to Coverity scan
     * Giving access to probability estimates mode in libSVMMachineLearningModel and RandomForestsMachineLearningModel
     * Clean and update the header include into OTB
     * Enhance p to xs registration formula
@@ -189,34 +207,34 @@ OTB-v.4.4.0 - Changes since version 4.2.1 (2015/02/13)
     * Add an option to limit the number of samples by class into otbListSampleGenerator
     * Fix BCO interpolation about coefficients normalization
     * Fix missing boost namespace
-    * Fix Production date issue in IkonosImageMetadataInterface 
+    * Fix Production date issue in IkonosImageMetadataInterface
     * Mark ancillary methods as deprecated otbWrapperCommandLineLauncher
-    * Add regression mode to Random Forests 
+    * Add regression mode to Random Forests
     * Add absorptances and fcover to SAIL code
     * Remove MeanShiftKernel file, duplicates of SVMKernel file, and not used anywhere
-    
+
   * CMake:
     * Improve compatibility with cmake 3.0
-     
+
   * Testing:
     * Avoid multiple declaration of same function over different compilation units
     * Add test to use SVM machine learning class in regression mode
     * Remove obsolete and not compiled anymore tests
     * Rewrite add_test declaration to have exe name on the first line. will help modularisation script
     * Use a single cmake var for referencing large inputs
-    
+
   * Documentation:
     * Enhance Doxygen Documentation
-   
+
 * Applications:
   * New:
     * New BandMathX application with awesome mathematical functions
-    * New applications for learning/classification of geometries in a shapefile: 
+    * New applications for learning/classification of geometries in a shapefile:
         * ComputeOGRLayersFeaturesStatistics
         * TrainOGRLayersClassifier
-        * OGRLayerClassifier 
+        * OGRLayerClassifier
   * Updated applications:
-    * Smoothing: add conductance parameter for anidifusion which was added recently in ITK filter 
+    * Smoothing: add conductance parameter for anidifusion which was added recently in ITK filter
     * Smoothing: keep the time step independant from the image spacing
     * HomologousPoint: proper computation of the opposite region
     * Rasterization: fix computation of output image extent
@@ -229,8 +247,8 @@ OTB-v.4.4.0 - Changes since version 4.2.1 (2015/02/13)
     * TrainImagesClassifier: add option to limit the min number of samples to the smallest class
     * MeanShiftSmoothing: add missing ram parameter
     * StereoRectificationGridGenerator: add warning message about image sizes when enabling inverse transformation estimations.
-    
-* Bugs fixed:    
+
+* Bugs fixed:
   * OTB-lib:
     * 0001003: logical bug in IkonosImageMetadataInterface ::GetPhysicalGain(),resolved,fixed,"In IkonosImageMetadataInterface::GetPhysicalGain()
     * 0001005: build error with otbUtilitiesTests
@@ -366,7 +384,7 @@ OTB-v.4.0.0 - Changes since version 3.20 (2014/03/13)
     * Correct multibaseline support
     * Move test related to amplitude and phase functor from visualization to basic filters
 
-  * CMake: 
+  * CMake:
     * Use modern CMake style: no block-end arguments and all CMake command to lower case format
 
   * ThirdParties:
@@ -386,7 +404,7 @@ OTB-v.4.0.0 - Changes since version 3.20 (2014/03/13)
     * Convert : Adding gamma correction method the convert application
     * HomologousPointsExtraction : add mode.geobins.binsizey and mode.geobins.binstepy to allow for anisotropic geobins mode
     * HomologousPointsExtraction : new mode.geobins.margin parameter to only search inside image center.
-    
+
   * Core framework:
     * Improve the support of XML parameters input/output file
     * Improve the input VectorData/Image/Filename parameter to give access to m_Input attribute
@@ -481,13 +499,13 @@ OTB-v.3.20 - Changes since version 3.18.1 (2013/11/13)
     * 0000770: Output parameter does not appear anymore in the command line helper
     * 0000798: All the OTB app parameters are not all saved into the xml output file
     * 0000779: [OTB]otbTrainImagesClassifier generates an output *.CSV confusion matrix with a wrong header
-    * 0000809: LSMS Vectorization application didn't support ouput file with "-" special character
+    * 0000809: LSMS Vectorization application didn't support output file with "-" special character
     * 0000807: otbKmzExport application generate weird kmz if the tilesize parameter is equal to zero
     * 0000808: otbDownloadSRTMTiles application seems to be broken
     * 0000803: otbApplicationLauncherCommandLine -inxml parameter does not retrieve pixel type for output image parameter
     * 0000794: Tiling mechanism didn't work into Large Scale MeanShift  application
     * 0000760: ClassificationMapRegularization output pixel values are always on 8 bits
-    * 0000809: LSMS Vectorization application didn't support ouput file with "-" special character
+    * 0000809: LSMS Vectorization application didn't support output file with "-" special character
     * 0000803: otbApplicationLauncherCommandLine -inxml parameter does not retrieve pixel type for output image parameter
     * 0000736: Error setting the index in RadiometricIndices application via python
     * 0000800: Watershed mode of segmentation application produce an image without CRS even if the input image has one
@@ -530,19 +548,19 @@ OTB-v.3.18.1 - Changes since version 3.18.0 (2013/07/22)
 
   * Examples
     * Update HelloWorld example CMakeLists
- 
+
   * Applications
     * Updated applications
       * Update Stereo application documentation example with new parameters
       * Add a log message about color mapping method used by application
     * Core Framework
       * Intialize properly QtWidgetChoiceParameter
-    * Increase minimun cmake version to 2.8.3 wwhen build applications  
+    * Increase minimun cmake version to 2.8.3 wwhen build applications
 
 OTB-v.3.18 - Changes since version 3.16 (2013/07/05)
 --------------------------------------------------------
 
-Among the classical improvements and bug fixes to exisiting functionnalities, this release provides 
+Among the classical improvements and bug fixes to exisiting functionnalities, this release provides
 the following main functionnalities :
  * Huge improvements in Stereo framework, to compute DEM from stereo pairs :
    check the StereoFramework application !
@@ -551,7 +569,7 @@ the following main functionnalities :
  * A classifiers fusion framework based on Dempster Shafer theory : check the FusionOfClassifications application !
 
 The full list of improvements comes here :
- 
+
 * Library
   * Core and Third Parties
     * Expose Curl timeout as parameter
@@ -560,7 +578,7 @@ The full list of improvements comes here :
     * Removal of old deprecated methods in all OTB classes
     * Fix mangling of internal OpenJPEG
     * Simpler and more automatic configuration and build on Windows based on OSGeo4W
-  
+
   * Basic filters
     * Add NoData value and flag for StreamingMinMaxVectorImageFilter
     * StreamingStatisticsImageFilter & StreamingStatisticsVectorImageFilter : support for skipping Nan and for a background value
@@ -570,7 +588,7 @@ The full list of improvements comes here :
       * DisparityMapTo3DFilter : convert disparity map in epipolar geometry to 3D image in epipolar geometry
       * MultiDisparityMapTo3DFilter : convert several disparity maps in sensor geometry to a 3D image in sensor geometry
       * LineOfSightOptimizer : algorithm to fuse several elevation values by line of sight optimisation
-      * BijectionCoherencyFilter : from 2 disparity maps, compute coherency left-right and right-left, and ouput a mask of coherent disparities
+      * BijectionCoherencyFilter : from 2 disparity maps, compute coherency left-right and right-left, and output a mask of coherent disparities
       * Multi3DToDEMFilter : fuse several 3D images to produce an elevation map
       * DisparityTranslateFilter : filter to translate epipolar disparities into sensor disparities
     * PixelWiseBlockMatchingImageFilter : fix initialisation of metric and disparities
@@ -581,7 +599,7 @@ The full list of improvements comes here :
   * IO
     * GDALImageIO : support reading overviews. "image.tif?&resol=3" is now supported as file name
     * Extended file names now supports the "box" key for writing only a subset of the image
-    
+
   * Learning
     * Generic framework of classification filters, integrating OpenCV classifiers and libSVM
       * New classes
@@ -592,31 +610,31 @@ The full list of improvements comes here :
             BoostMachineLearningModel DecisionTreeMachineLearningModel GradientBoostedTreeMachineLearningModel
             KNearestNeighborsMachineLearningModel NeuralNetworkMachineLearningModel
             NormalBayesMachineLearningModel RandomForestsMachineLearningModel SVMMachineLearningModel
-        
+
     * ConfusionMatrixCalculator : add correspondence between class label and indices
     * ConfusionMatrixMeasurements : add new class for computation of precision, recall and F-score
-    
+
   * Fuzzy
     * New Dempster Shafer based fusion of classifiers framework
       * Theory explained in http://wiki.orfeo-toolbox.org/index.php/Information_fusion_framework
       * New classes : DSFusionOfClassifiersImageFilter, ConfusionMatrixToMassOfBelief
-      
+
   * Segmentation
     * Fix some numerical instabilities in mean shift segmentation filter
-  
+
   * Radiometry
     * Fix spectral sensitivity reading of Pleiades images
     * Add PHR 1B averaged solar irradiance provided by CNES
-    
-  
+
+
   * Applications
     * New applications
       * Added new SRTM tiles downloader (DownloadSRTMTiles)
       * Added new PLY file generator (GeneratePlyFile)
-      * TrainImageClassifier and ImageClassifier : made TrainSVMImageClassifier & ImageSVMClassifier 
+      * TrainImageClassifier and ImageClassifier : made TrainSVMImageClassifier & ImageSVMClassifier
         more generic and expose OpenCV classifiers.
         Check the migration guide at : http://wiki.orfeo-toolbox.org/index.php/Classification_OTB_applications
-      
+
     * Updated applications
       * StereoFramework :
         * Handles several images in input by stereo couples
@@ -641,9 +659,9 @@ The full list of improvements comes here :
     * Core Framework
       * Manage UTF8 paths in GUI
       * Fix a crash in string list parameter widget in GUI
-       
+
 * Monteverdi
-      
+
 * Bug Fixes
   * OTB-lib
     * 0000707: Memory leaks in ApplicationWrappers
@@ -714,7 +732,7 @@ OTB-v.3.16 - Changes since version 3.14.1 (2013/02/04)
       * Made methods stick to what OSSIM does
     * Refactored RpcProjectionAdapter into RpcSolverAdapter
     * Updated ossim to r21971
-   
+
   * IO
     * Added support for GDAL driver creation options in GDALImageIO
     * Added support for external geom files in ImageFileReader
@@ -723,16 +741,16 @@ OTB-v.3.16 - Changes since version 3.14.1 (2013/02/04)
       * Added support for extended filenames in ImageFileReader
       * Added support for extended filenames in ImageFileWriter
     * Refactored StreamingImageFileWriter and ImageFileWriter
-      * ImageFileWriter is now the only class to use 
+      * ImageFileWriter is now the only class to use
       * StreamingImageFileWriter is a deprecated subclass provided for backward compatibility
       * Fixed a bug when the largest possible region could be asked in some cases
-       
+
   * Projections
-    * Refactored the GCPsToSensorModel filter 
+    * Refactored the GCPsToSensorModel filter
 
   * BasicFilters
     * Simplified computation of coefficients in Frost and Lee filters
-      
+
   * Fusion
     * Added the LMVM fusion algorithm (kindly contributed by A. Tzotsos)
 
@@ -750,12 +768,12 @@ OTB-v.3.16 - Changes since version 3.14.1 (2013/02/04)
     * Added segmentation algorithm based on multiscale morphological structures classification
 
   * OBIA
-    * Added a filter to compute mean radiometric values for each segment of a labeled image 
+    * Added a filter to compute mean radiometric values for each segment of a labeled image
 
   * Visualization
     * Added a method to change RegionGlComponent color in ImageView
     * Moved layer description in a single place
-    
+
   * Applications
     * Framework
       * Modified the elevation parameters handling to be consistent with refactoring
@@ -782,7 +800,7 @@ OTB-v.3.16 - Changes since version 3.14.1 (2013/02/04)
       * Added support for large image in image mode of ColorMapping application
       * Added support for histogram clamping settings and mask input in Convert application
       * Added support for UTM zone and hemisphere estimation by default in OrthoRectification application
-      
+
 * Monteverdi
   * Refactored to fit the new elevation configuration method
   * Added Support for extended filenames
@@ -818,7 +836,7 @@ OTB-v.3.14.1 - Changes since version 3.14.0 (2012/10/02)
   * Improve Pleiades support :
     * TOA optical calibration available
     * Improve support of mega tiles products
-  
+
 
 * Monteverdi
   * Support of MacOSX 10.8
@@ -998,7 +1016,7 @@ OTB-v.3.14.0 - Changes since version 3.12.0 (2012/07/09)
     * Add image origin to ReadImageInfoApplication
     * Use now InputFilenameParameter and OutputFilenameParameter instead
       of FilenameParameter
-    * Use InputFilename and OuputFilename instead of Filename
+    * Use InputFilename and OutputFilename instead of Filename
     * New option in SVMClassifier application: sample.edg (non mandatory)
       to manage special cases with small samples
     * In KMeansClassification, Changing the random intialisation method
@@ -1048,7 +1066,7 @@ OTB-v.3.14.0 - Changes since version 3.12.0 (2012/07/09)
 
 * Bug fixes :
   * OTB-lib
-    * 0000532: OTB_SHOW_ALL_MSG_DEBUG option changes 
+    * 0000532: OTB_SHOW_ALL_MSG_DEBUG option changes
                apTvClTrainSVMImagesClassifierQB456 test results
     * 0000568: Unable to compile OTB with a local version of the
                FFTW library
@@ -1089,7 +1107,7 @@ OTB-v.3.14.0 - Changes since version 3.12.0 (2012/07/09)
                are located in a directory with spaces in its name
 
   * OTB-Packaging
-    * 0000545: Issues with Monteverdi 1.10 binary 
+    * 0000545: Issues with Monteverdi 1.10 binary
                applications on Mac OSX 10.6  (SL)
     * 0000525: Python not found during ubuntu package build
     * 0000526: Fix input of bfTvPolygonizationRasterization_WGS84
@@ -2017,7 +2035,7 @@ OTB-v.2.6.0 - Changes since version 2.4.0 (2008/10/31)
 OTB-v.2.4.0 - Changes since version 2.2.0 (2008/07/24)
 --------------------------------------------------------
 
-    - Added OTB_DISABLE_CXX_EXAMPLES_TESTING : allows to generate or
+    - Added OTB_DISABLE_CXX_EXAMPLES_TESTING : allows generating or
       not only examples testing
     - Added OTB_USE_JPEG2000 : experimental support for jpeg2000
       files.
@@ -2354,7 +2372,7 @@ OTB-v.1.6.0 - Changes since version 1.4.0 (2007/10/25)
 
     - Added a new tiling streaming mode.
 
-    - Added the otb::ImageGeometryHandler, which allows to handle
+    - Added the otb::ImageGeometryHandler, which allows handling
       seamlessly
       the image geometry information.
 
@@ -2438,16 +2456,16 @@ OTB-v.1.6.0 - Changes since version 1.4.0 (2007/10/25)
 
 *Applications:
 
-    - Added the otbImageViewerManager application which allows to
-      open multiple images,
+    - Added the otbImageViewerManager application which allows
+      opening multiple images,
       configure viewers and link displays.
 
     - Added the otbRoadExtraction which demonstrates the road
       extraction algorithm
       implemented in the FeatureExtraction module.
 
-    - Added the otbOrthoRectifAppli application which allows to
-      ortho rectify images in
+    - Added the otbOrthoRectifAppli application which allows
+      ortho rectifying images in
       command line using the brand new Projections module of the Orfeo
       ToolBox. Old rigid
       orthoo rectification application has been moved to
diff --git a/Utilities/Doxygen/OTB/ImageSimilarityMetrics.dox b/Utilities/Doxygen/OTB/ImageSimilarityMetrics.dox
index 060d226..bb3ab4a 100644
--- a/Utilities/Doxygen/OTB/ImageSimilarityMetrics.dox
+++ b/Utilities/Doxygen/OTB/ImageSimilarityMetrics.dox
@@ -37,7 +37,7 @@ Unfortunately there are no clear rules about how to select a metric, other that
 Metrics are depend on the objects they compare. The toolkit currently offers <em> Image To Image </em> and <em> PointSet to Image </em> metrics as follows:
 
 \li <b> Mean Squares </b> Sum of squared differences between intensity values. It requires the two objects to have intensity values in the same range.
-\li <b> Normalized Correlation </b> Correlation between intensity values divided by the square rooted autocorrelation of both target and reference objects: \f$ \frac{\sum_i^n{a_i * b_i }}{\sum_i^n{a_i^2}\sum_i^n{b_i^2}} \f$. This metric allows to register objects whose intensity values are related by a linear transformation.
+\li <b> Normalized Correlation </b> Correlation between intensity values divided by the square rooted autocorrelation of both target and reference objects: \f$ \frac{\sum_i^n{a_i * b_i }}{\sum_i^n{a_i^2}\sum_i^n{b_i^2}} \f$. This metric allows registering objects whose intensity values are related by a linear transformation.
 \li <b> Pattern Intensity </b> Squared differences between intensity values transformed by a function of type  \f$ \frac{1}{1+x} \f$  and summed them up. This metric has the advantage of increase simultaneously when more samples are available and when intensity values are close.
 \li <b> Mutual Information </b> Mutual information is based in an information theory concept. Mutual information between two sets measures how much can be known from one set if only the other set is known. Given a set of values \f$ A=\{a_i\} \f$. Its entropy \f$ H(A) \f$  is defined by \f$ H(A) = \sum_i^n{- p(a_i) \log({p(a_i)})} \f$ where \f$ p(a_i) \f$ are the probabilities of the values in the set.  Entropy can be interpreted as a measure of the mean uncertainty reduction that is obta [...]
 
diff --git a/Utilities/Doxygen/OTB/Iterators.dox b/Utilities/Doxygen/OTB/Iterators.dox
index 130bba0..86884ba 100644
--- a/Utilities/Doxygen/OTB/Iterators.dox
+++ b/Utilities/Doxygen/OTB/Iterators.dox
@@ -1,15 +1,15 @@
 /**
 
   \page  ImageIteratorsPage Image Iterators
- 
+
   \section ImageIteratorsIntroduction Introduction
 
   ImageIterators are the mechanism used in ITK for walking through the image
-  data. 
+  data.
 
   You probably learned image processing with the classical access to the
   image data using <b>"for loops"</b> like:
-  
+
 
   \code
 
@@ -17,7 +17,7 @@
   const int ny = 100;
 
   ImageType image(nx,ny);
-  
+
   for(int x=0; x<nx; x++) // for all Columns
   {
     for(int y=0; y<ny; y++) // for all Rows
@@ -38,9 +38,9 @@
   \endcode
 
   ImageIterators gets you closer to this algorithmic abstraction.
-  They abstract the low-level processing of images from the particular 
+  They abstract the low-level processing of images from the particular
   implementation of the image class.
-  
+
   Here is how an image iterator is used in ITK:
 
   \code
@@ -48,7 +48,7 @@
   ImageType::Pointer im = GetAnImageSomeHow();
 
   ImageIterator  it( im, im->GetRequestedRegion() );
-  
+
   it.GoToBegin();
 
   while( !it.IsAtEnd() )
@@ -65,7 +65,7 @@
   ImageType::Pointer im = GetAnImageSomeHow();
 
   ImageIterator  it( im, im->GetRequestedRegion() );
-  
+
   for (it = it.Begin(); !it.IsAtEnd(); ++it)
   {
     it.Set( 10 );
@@ -74,15 +74,15 @@
   \endcode
 
   One important advantage of ImageIterators is that they provide support for
-  the N-Dimensional images in ITK. Otherwise it would be impossible (or at 
+  the N-Dimensional images in ITK. Otherwise it would be impossible (or at
   least very hard) to write algorithms that work independent of the image
   dimension.
 
   Another advantage of ImageIterators is that they support walking a region
-  of an image.  In fact, one argument of an ImageIterator's constructor 
+  of an image.  In fact, one argument of an ImageIterator's constructor
   defines the region or portion of an image to traverse.
 
-  Iterators know a lot about the internal composition of the image, 
+  Iterators know a lot about the internal composition of the image,
   relieving the user from these details. Your algorithm can go through
   all the pixels of an image without ever knowing the dimension of the image.
 
@@ -91,12 +91,12 @@
   The order in which the image pixels are visited can be quite important for
   some image processing algorithms and may be inconsequential to other
   algorithms as long as pixels are accessed as fast as possible.
-  
-  To address these diverse requirements, ITK implements a set 
+
+  To address these diverse requirements, ITK implements a set
   of ImageIterators, always following the "C" philosophy of :
-  
+
   "You only pay for what you use"
-  
+
   Here is a list of some of the different ImageIterators implemented in ITK:
 
   - itk::ImageRegionIterator
@@ -106,14 +106,14 @@
   the image. The user can be sure though, that all the pixels inside the region
   will be visited.
 
-  The following iterators allow to walk the image in specific directions 
+  The following iterators allows you to walk through the image in specific directions
 
   - itk::ImageLinearIteratorWithIndex   Along lines
   - itk::ImageSliceIteratorWithIndex    Along lines, then along planes
 
   Iterators in general can have <B>Read/Write</B> access to image pixels.
   A family of iterators provides <B>Read Only</B> access, in order to
-  preserve the image content. These iterators are equivalent to "C" 
+  preserve the image content. These iterators are equivalent to "C"
   const pointers :
 
   \code
@@ -125,7 +125,7 @@
   \code
   vector<PixelType>::const_iterator  it;
   \endcode
-  
+
   The class name of the iterator makes clears if it provides const access
   or not. Some of the <TT>const</TT> iterators available are
 
@@ -137,19 +137,19 @@
 
   \subsection NeighbohoodIteratorType  Other Types of Iterators
 
-  Another group of iterators support a moving neighborhood. Here the 
+  Another group of iterators support a moving neighborhood. Here the
   neighborhood can "iterate" over an image and a calculation can iterate
-  over the neighborhood.  This allows N-dimensional implementations of 
-  convolution and finite differences to be implemented succintly.  
-  This class of iterators is described in detail on the page 
+  over the neighborhood.  This allows N-dimensional implementations of
+  convolution and finite differences to be implemented succintly.
+  This class of iterators is described in detail on the page
   \ref NeighborhoodIteratorsPage.
 
-  
+
   \subsection STL ImageIterators vs. STL Iterators
 
-  Given the breadth and complexity of ImageIterators, they are designed to 
-  operate slightly differently than STL iterators.  In STL, you ask a 
-  container for an iterator that will traverse the container.  Furthermore, 
+  Given the breadth and complexity of ImageIterators, they are designed to
+  operate slightly differently than STL iterators.  In STL, you ask a
+  container for an iterator that will traverse the container.  Furthermore,
   in STL, you frequently compare an iterator against another iterator.
   Here is a loop to walk over an STL vector.
 
@@ -158,10 +158,10 @@
     {}
   \endcode
 
-  ImageIterators, unfortunately, are more complicated than STL iterators.  
+  ImageIterators, unfortunately, are more complicated than STL iterators.
   ImageIterators need to store more state information than STL iterators.
   As one example, ImageIterators can walk a region of an image and an
-  image can have multiple ImageIterators traversing different 
+  image can have multiple ImageIterators traversing different
   regions simultaneously. Thus, each ImageIterator must maintain which region
   it traverses. This results in a fairly heavyweight iterator, where
   comparing two ImageIterators and constructing iterators is an
@@ -170,7 +170,7 @@
 
   First, you do not ask the container (the image) for an iterator.  Instead,
   you construct an iterator and tell it which image to traverse.  Here
-  is a snippet of code to construct an iterator that will walk a region 
+  is a snippet of code to construct an iterator that will walk a region
   of an image:
 
   \code
@@ -180,10 +180,10 @@
   \endcode
 
   Second, since constructing and comparing ImageIterators is expensive,
-  ImageIterators know the beginning and end of the region.  So you ask the 
-  iterator rather than the container whether the iterator is at the end of 
+  ImageIterators know the beginning and end of the region.  So you ask the
+  iterator rather than the container whether the iterator is at the end of
   a region.
- 
+
   \code
   for (it = it.Begin(); !it.IsAtEnd(); ++it)
   {
@@ -214,19 +214,19 @@
 
   \subsection IteratorsDereferencing Dereferencing
 
-  In order to get access to the image data pointed by the iterator, 
+  In order to get access to the image data pointed by the iterator,
   dereferencing is required. This is equivalent to the classical
   "C" dereferencing code :
 
   \code
   PixelType * p;    // creation of the pointer
-  *p = 100;         // write access to a data 
+  *p = 100;         // write access to a data
   PixelType a = *p; // read access to data
   \endcode
 
   Iterators dereference data using <TT>Set()</TT> and <TT>Get()</TT>
 
-  \code 
+  \code
   imageIterator.Set( 100 );
   PixelType a = imageIterator.Get();
   \endcode
@@ -268,7 +268,7 @@
 
   \code
   if (it.IsAtBegin()) {}   // Fast
-  
+
   if (it == it.Begin()) {} // Slow
   \endcode
 
@@ -280,10 +280,10 @@
 
   \code
   if (it.IsAtEnd()) {}   // Fast
-  
+
   if (it == it.End()) {} // Slow
   \endcode
-  
+
 
   \section IteratorFinalComment Final Comments
 
@@ -298,4 +298,3 @@
 
 
 */
-
diff --git a/Utilities/Doxygen/OTB/Modules.dox b/Utilities/Doxygen/OTB/Modules.dox
index af3065e..0db0c88 100644
--- a/Utilities/Doxygen/OTB/Modules.dox
+++ b/Utilities/Doxygen/OTB/Modules.dox
@@ -99,13 +99,13 @@
 \defgroup Iterators Iterators
 \ingroup DataAccess
 Iterators are the mechanism used to walk over the content of a particular data object.
-They allow to define paths and directions along which the data should be walked through.
+They allow defining paths and directions along which the data should be walked through.
 */
 
 /**
 \defgroup ImageIterators Image Iterators
 \ingroup Iterators
-Image Iterators allow to go through the content of an image in a predefined way.
+Image Iterators allow going through the content of an image in a predefined way.
 For a detailed description of iterators rationale see \ref ImageIteratorsPage
 */
 
@@ -412,7 +412,7 @@ For example: you have an image whose pixels are of type <TT>unsigned char</TT> a
 need to feed this image in a process that expects pixels of type <TT>double</TT>.
 You have the option of using and ImageFilter that convert the input <TT>unsigned char </TT> image into another of pixel type <TT>double</TT>.
 However this filter will allocate memory for this second image and will need to be executed.
-Image Adaptors allow to simulate that you have made the conversion but will avoid the overhead in memory.
+Image Adaptors allows you to simulating that you have made the conversion but will avoid the overhead in memory.
 There is however a penalty in performance.
 
 The mechanism used by image adaptors is to provide a simple function that will be used by ImageIterator (see \ref ImageIteratorsPage) to convert the value of a pixel, in a pixel-by-pixel basis.
@@ -605,6 +605,3 @@ These objects are the basic system objects used in building ITK.
   their documentation and look in to their "Deprecated" section. This section should
   indicate what to do to replace this class in your code.
 */
-
-
-
diff --git a/Utilities/Doxygen/OTB/Registration.dox b/Utilities/Doxygen/OTB/Registration.dox
index 0adc872..bec99c7 100644
--- a/Utilities/Doxygen/OTB/Registration.dox
+++ b/Utilities/Doxygen/OTB/Registration.dox
@@ -10,7 +10,7 @@ particular transformation.
 A typical example of registration is to have two medical images
 from the same patient taken at different dates. It is very likely
 that the patient assume a different position during each acquisition.
-A registration procedure would allow to take both images and find
+A registration procedure would allow taking both images and find
 a spatial transformation to find the corresponding pixel from one
 image into the other.
 
@@ -75,7 +75,7 @@ Unfortunately there are no clear rules about how to select a metric, other that
 Metrics are depend on the objects they compare. The toolkit currently offers <em> Image To Image </em> and <em> PointSet to Image </em> metrics as follows:
 
 \li <b> Mean Squares </b> Sum of squared differences between intensity values. It requires the two objects to have intensity values in the same range.
-\li <b> Normalized Correlation </b> Correlation between intensity values divided by the square rooted autocorrelation of both target and reference objects: \f$ \frac{\sum_i^n{a_i * b_i }}{\sum_i^n{a_i^2}\sum_i^n{b_i^2}} \f$. This metric allows to register objects whose intensity values are related by a linear transformation.
+\li <b> Normalized Correlation </b> Correlation between intensity values divided by the square rooted autocorrelation of both target and reference objects: \f$ \frac{\sum_i^n{a_i * b_i }}{\sum_i^n{a_i^2}\sum_i^n{b_i^2}} \f$. This metric allows registering objects whose intensity values are related by a linear transformation.
 \li <b> Pattern Intensity </b> Squared differences between intensity values transformed by a function of type  \f$ \frac{1}{1+x} \f$  and summed them up. This metric has the advantage of increase simultaneously when more samples are available and when intensity values are close.
 \li <b> Mutual Information </b> Mutual information is based in an information theory concept. Mutual information between two sets measures how much can be known from one set if only the other set is known. Given a set of values \f$ A=\{a_i\} \f$. Its entropy \f$ H(A) \f$  is defined by \f$ H(A) = \sum_i^n{- p(a_i) \log({p(a_i)})} \f$ where \f$ p(a_i) \f$ are the probabilities of the values in the set.  Entropy can be interpreted as a measure of the mean uncertainty reduction that is obta [...]
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/otb.git



More information about the Pkg-grass-devel mailing list