[med-svn] [simpleitk] 01/03: New upstream version 1.0.1

Ghislain Vaillant ghisvail-guest at moszumanska.debian.org
Tue Oct 31 19:00:07 UTC 2017


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

ghisvail-guest pushed a commit to branch master
in repository simpleitk.

commit 6930a7dcf8fdf42ae58b1d7e476d16276db9b49f
Author: Ghislain Antony Vaillant <ghisvail at gmail.com>
Date:   Fri Aug 4 16:56:09 2017 +0100

    New upstream version 1.0.1
---
 .travis.yml                                        |    33 +
 CMake/CTestCustom.cmake.in                         |    79 +
 CMake/ExternalData.cmake                           |  1153 +
 CMake/ExternalData_config.cmake.in                 |     6 +
 CMake/FindCSharp.cmake                             |    72 +
 CMake/FindDotNetFrameworkSdk.cmake                 |    92 +
 CMake/FindGTest.cmake                              |   214 +
 CMake/FindLuaInterp.cmake                          |    45 +
 CMake/FindMono.cmake                               |   162 +
 CMake/FindPythonVirtualEnv.cmake                   |    53 +
 CMake/FindR.cmake                                  |    48 +
 CMake/GetGitRevisionDescription.cmake              |   169 +
 CMake/GoogleTest.cmake                             |    73 +
 CMake/UseCSharp.cmake                              |   115 +
 CMake/UseDotNetFrameworkSdk.cmake                  |    12 +
 CMake/UseMono.cmake                                |    16 +
 CMake/VariableList.cmake                           |    61 +
 CMake/pre-commit                                   |     8 +
 CMake/same_uint64_ulong.cxx                        |    13 +
 CMake/sitkAddTest.cmake                            |   290 +
 CMake/sitkCheckCXX11.cmake                         |    93 +
 CMake/sitkCheckForITKModuleDependencies.cmake      |    37 +
 CMake/sitkCheckRequiredFlags.cmake                 |    98 +
 CMake/sitkCheckSourceTree.cmake                    |    15 +
 CMake/sitkCheckTemplateDisambiguation.cmake        |    12 +
 CMake/sitkCheckTemplateDisambiguation.cxx          |    25 +
 CMake/sitkCompilerWarningsSettings.cmake           |    86 +
 CMake/sitkConfigureFileBuildtime.cmake             |    61 +
 CMake/sitkExternalData.cmake                       |    61 +
 CMake/sitkForbidDownloadsOption.cmake              |    16 +
 CMake/sitkGenerateFilterSource.cmake               |   305 +
 CMake/sitkLanguageOptions.cmake                    |   247 +
 CMake/sitkPreventInBuildInstalls.cmake             |     9 +
 CMake/sitkPreventInSourceBuilds.cmake              |    18 +
 CMake/sitkProjectLanguageCommon.cmake              |   115 +
 CMake/sitkSITKLegacyNaming.cmake                   |    47 +
 CMake/sitkSourceVersion.cmake                      |   117 +
 CMake/sitkSourceVersionVars.cmake                  |    14 +
 CMake/sitkSourceVersionVars.cmake.in               |    14 +
 CMake/sitkStripOption.cmake                        |    30 +
 .../sitkTargetLinkLibrariesWithDynamicLookup.cmake |   580 +
 CMake/sitkTargetUseITK.cmake                       |    34 +
 CMake/sitkUseGTest.cmake                           |    86 +
 CMake/sitkUseSWIG.cmake                            |   278 +
 CMake/sitk_check_cxx11.cxx                         |   194 +
 CMake/sitk_check_cxx11_required.cxx                |    14 +
 CMakeLists.txt                                     |   493 +
 CTestConfig.cmake                                  |     7 +
 Code/BasicFilters/CMakeLists.txt                   |     9 +
 Code/BasicFilters/include/itkHashImageFilter.h     |   120 +
 Code/BasicFilters/include/itkHashImageFilter.hxx   |   185 +
 Code/BasicFilters/include/itkSliceImageFilter.h    |   166 +
 Code/BasicFilters/include/itkSliceImageFilter.hxx  |   363 +
 .../include/itkUnaryMinusImageFilter.h             |    52 +
 .../include/sitkAdditionalProcedures.h             |   105 +
 .../sitkBSplineTransformInitializerFilter.h        |   126 +
 Code/BasicFilters/include/sitkBasicFilters.h       |    56 +
 Code/BasicFilters/include/sitkCastImageFilter.h    |   179 +
 .../sitkCenteredTransformInitializerFilter.h       |   130 +
 .../sitkCenteredVersorTransformInitializerFilter.h |   117 +
 Code/BasicFilters/include/sitkHashImageFilter.h    |    80 +
 Code/BasicFilters/include/sitkImageFilter.h        |   100 +
 Code/BasicFilters/include/sitkImageOperators.h     |    99 +
 .../sitkLandmarkBasedTransformInitializerFilter.h  |   177 +
 Code/BasicFilters/json/AbsImageFilter.json         |    34 +
 .../json/AbsoluteValueDifferenceImageFilter.json   |    36 +
 Code/BasicFilters/json/AcosImageFilter.json        |    25 +
 .../AdaptiveHistogramEqualizationImageFilter.json  |    81 +
 Code/BasicFilters/json/AddImageFilter.json         |    46 +
 .../json/AdditiveGaussianNoiseImageFilter.json     |   100 +
 .../BasicFilters/json/AggregateLabelMapFilter.json |    37 +
 Code/BasicFilters/json/AndImageFilter.json         |    26 +
 .../json/AntiAliasBinaryImageFilter.json           |    63 +
 .../ApproximateSignedDistanceMapImageFilter.json   |    64 +
 Code/BasicFilters/json/AsinImageFilter.json        |    25 +
 Code/BasicFilters/json/Atan2ImageFilter.json       |    26 +
 Code/BasicFilters/json/AtanImageFilter.json        |    25 +
 Code/BasicFilters/json/BilateralImageFilter.json   |    72 +
 Code/BasicFilters/json/BinShrinkImageFilter.json   |    53 +
 .../BinaryClosingByReconstructionImageFilter.json  |    68 +
 .../json/BinaryContourImageFilter.json             |    81 +
 .../BasicFilters/json/BinaryDilateImageFilter.json |   101 +
 Code/BasicFilters/json/BinaryErodeImageFilter.json |    67 +
 .../json/BinaryFillholeImageFilter.json            |    72 +
 .../json/BinaryGrindPeakImageFilter.json           |    82 +
 .../json/BinaryImageToLabelMapFilter.json          |    80 +
 .../json/BinaryMagnitudeImageFilter.json           |    37 +
 .../BasicFilters/json/BinaryMedianImageFilter.json |    68 +
 .../json/BinaryMinMaxCurvatureFlowImageFilter.json |    70 +
 .../BinaryMorphologicalClosingImageFilter.json     |    99 +
 .../BinaryMorphologicalOpeningImageFilter.json     |    67 +
 Code/BasicFilters/json/BinaryNotImageFilter.json   |    60 +
 .../BinaryOpeningByReconstructionImageFilter.json  |    78 +
 .../json/BinaryProjectionImageFilter.json          |    68 +
 .../BinaryReconstructionByDilationImageFilter.json |    64 +
 .../BinaryReconstructionByErosionImageFilter.json  |    64 +
 .../json/BinaryThinningImageFilter.json            |    25 +
 .../json/BinaryThresholdImageFilter.json           |    94 +
 .../json/BinaryThresholdProjectionImageFilter.json |    84 +
 .../BasicFilters/json/BinomialBlurImageFilter.json |    36 +
 Code/BasicFilters/json/BitwiseNotImageFilter.json  |    29 +
 Code/BasicFilters/json/BlackTopHatImageFilter.json |    53 +
 .../json/BoundedReciprocalImageFilter.json         |    35 +
 Code/BasicFilters/json/BoxMeanImageFilter.json     |    74 +
 Code/BasicFilters/json/BoxSigmaImageFilter.json    |    74 +
 .../json/CannyEdgeDetectionImageFilter.json        |   101 +
 Code/BasicFilters/json/ChangeLabelImageFilter.json |    34 +
 .../json/ChangeLabelLabelMapFilter.json            |    39 +
 .../BasicFilters/json/CheckerBoardImageFilter.json |    59 +
 Code/BasicFilters/json/ClampImageFilter.json       |   118 +
 .../json/ClosingByReconstructionImageFilter.json   |    63 +
 .../json/CollidingFrontsImageFilter.json           |   106 +
 .../json/ComplexToImaginaryImageFilter.json        |    25 +
 .../json/ComplexToModulusImageFilter.json          |    25 +
 .../json/ComplexToPhaseImageFilter.json            |    25 +
 .../json/ComplexToRealImageFilter.json             |    25 +
 Code/BasicFilters/json/ComposeImageFilter.json     |    36 +
 .../json/ConfidenceConnectedImageFilter.json       |   131 +
 .../json/ConnectedComponentImageFilter.json        |    68 +
 .../json/ConnectedThresholdImageFilter.json        |   178 +
 Code/BasicFilters/json/ConstantPadImageFilter.json |    82 +
 Code/BasicFilters/json/ConvolutionImageFilter.json |    59 +
 Code/BasicFilters/json/CosImageFilter.json         |    34 +
 Code/BasicFilters/json/CropImageFilter.json        |    77 +
 .../CurvatureAnisotropicDiffusionImageFilter.json  |    90 +
 .../json/CurvatureFlowImageFilter.json             |    62 +
 Code/BasicFilters/json/CyclicShiftImageFilter.json |    56 +
 .../json/DanielssonDistanceMapImageFilter.json     |    53 +
 .../json/DemonsRegistrationFilter.json             |   197 +
 Code/BasicFilters/json/DerivativeImageFilter.json  |    73 +
 .../DiffeomorphicDemonsRegistrationFilter.json     |   222 +
 .../json/DilateObjectMorphologyImageFilter.json    |    75 +
 .../DiscreteGaussianDerivativeImageFilter.json     |   151 +
 .../json/DiscreteGaussianImageFilter.json          |    89 +
 ...DisplacementFieldJacobianDeterminantFilter.json |    72 +
 Code/BasicFilters/json/DivideFloorImageFilter.json |    31 +
 Code/BasicFilters/json/DivideImageFilter.json      |    26 +
 Code/BasicFilters/json/DivideRealImageFilter.json  |    32 +
 .../json/DoubleThresholdImageFilter.json           |   121 +
 .../json/EdgePotentialImageFilter.json             |    25 +
 Code/BasicFilters/json/EqualImageFilter.json       |    53 +
 .../json/ErodeObjectMorphologyImageFilter.json     |    85 +
 Code/BasicFilters/json/ExpImageFilter.json         |    25 +
 Code/BasicFilters/json/ExpNegativeImageFilter.json |    25 +
 Code/BasicFilters/json/ExpandImageFilter.json      |   196 +
 Code/BasicFilters/json/ExtractImageFilter.json     |   120 +
 .../json/FFTConvolutionImageFilter.json            |    59 +
 .../json/FFTNormalizedCorrelationImageFilter.json  |    60 +
 Code/BasicFilters/json/FFTPadImageFilter.json      |    71 +
 Code/BasicFilters/json/FFTShiftImageFilter.json    |    44 +
 .../json/FastApproximateRankImageFilter.json       |    77 +
 .../json/FastMarchingBaseImageFilter.json          |    90 +
 .../BasicFilters/json/FastMarchingImageFilter.json |    86 +
 .../FastMarchingUpwindGradientImageFilter.json     |   117 +
 ...astSymmetricForcesDemonsRegistrationFilter.json |   213 +
 Code/BasicFilters/json/FlipImageFilter.json        |    70 +
 Code/BasicFilters/json/ForwardFFTImageFilter.json  |    25 +
 Code/BasicFilters/json/GaborImageSource.json       |    93 +
 Code/BasicFilters/json/GaussianImageSource.json    |    92 +
 .../GeodesicActiveContourLevelSetImageFilter.json  |    90 +
 .../GradientAnisotropicDiffusionImageFilter.json   |    92 +
 Code/BasicFilters/json/GradientImageFilter.json    |    54 +
 .../json/GradientMagnitudeImageFilter.json         |    35 +
 ...dientMagnitudeRecursiveGaussianImageFilter.json |    46 +
 .../json/GradientRecursiveGaussianImageFilter.json |    69 +
 .../json/GrayscaleConnectedClosingImageFilter.json |    64 +
 .../json/GrayscaleConnectedOpeningImageFilter.json |    64 +
 .../json/GrayscaleDilateImageFilter.json           |    42 +
 .../json/GrayscaleErodeImageFilter.json            |    42 +
 .../json/GrayscaleFillholeImageFilter.json         |    46 +
 .../json/GrayscaleGeodesicDilateImageFilter.json   |    84 +
 .../json/GrayscaleGeodesicErodeImageFilter.json    |    61 +
 .../json/GrayscaleGrindPeakImageFilter.json        |    46 +
 .../GrayscaleMorphologicalClosingImageFilter.json  |    53 +
 .../GrayscaleMorphologicalOpeningImageFilter.json  |   115 +
 .../BasicFilters/json/GreaterEqualImageFilter.json |    63 +
 Code/BasicFilters/json/GreaterImageFilter.json     |    63 +
 Code/BasicFilters/json/GridImageSource.json        |   102 +
 Code/BasicFilters/json/HConcaveImageFilter.json    |    51 +
 Code/BasicFilters/json/HConvexImageFilter.json     |    51 +
 Code/BasicFilters/json/HMaximaImageFilter.json     |    41 +
 Code/BasicFilters/json/HMinimaImageFilter.json     |    51 +
 .../HalfHermitianToRealInverseFFTImageFilter.json  |    36 +
 .../json/HausdorffDistanceImageFilter.json         |    56 +
 .../json/HistogramMatchingImageFilter.json         |    76 +
 .../json/HuangThresholdImageFilter.json            |   132 +
 .../json/IntensityWindowingImageFilter.json        |    83 +
 .../json/IntermodesThresholdImageFilter.json       |   132 +
 .../json/InverseDeconvolutionImageFilter.json      |    75 +
 .../json/InverseDisplacementFieldImageFilter.json  |   100 +
 Code/BasicFilters/json/InverseFFTImageFilter.json  |    25 +
 .../json/InvertDisplacementFieldImageFilter.json   |    83 +
 .../json/InvertIntensityImageFilter.json           |    37 +
 .../json/IsoContourDistanceImageFilter.json        |    51 +
 .../json/IsoDataThresholdImageFilter.json          |   119 +
 .../json/IsolatedConnectedImageFilter.json         |   151 +
 .../json/IsolatedWatershedImageFilter.json         |   134 +
 Code/BasicFilters/json/JoinSeriesImageFilter.json  |   111 +
 .../KittlerIllingworthThresholdImageFilter.json    |   132 +
 .../BasicFilters/json/LabelContourImageFilter.json |    45 +
 .../json/LabelImageToLabelMapFilter.json           |    51 +
 .../json/LabelIntensityStatisticsImageFilter.json  |   737 +
 .../json/LabelMapContourOverlayImageFilter.json    |   119 +
 .../BasicFilters/json/LabelMapMaskImageFilter.json |   119 +
 .../json/LabelMapOverlayImageFilter.json           |    61 +
 .../json/LabelMapToBinaryImageFilter.json          |    49 +
 .../json/LabelMapToLabelImageFilter.json           |    26 +
 .../json/LabelMapToRGBImageFilter.json             |    36 +
 .../json/LabelOverlapMeasuresImageFilter.json      |   160 +
 .../BasicFilters/json/LabelOverlayImageFilter.json |    68 +
 .../json/LabelShapeStatisticsImageFilter.json      |   410 +
 .../json/LabelStatisticsImageFilter.json           |   262 +
 Code/BasicFilters/json/LabelToRGBImageFilter.json  |    72 +
 .../json/LabelUniqueLabelMapFilter.json            |    51 +
 Code/BasicFilters/json/LabelVotingImageFilter.json |    46 +
 .../json/LandweberDeconvolutionImageFilter.json    |    84 +
 Code/BasicFilters/json/LaplacianImageFilter.json   |    34 +
 .../LaplacianRecursiveGaussianImageFilter.json     |    46 +
 .../LaplacianSegmentationLevelSetImageFilter.json  |    88 +
 .../json/LaplacianSharpeningImageFilter.json       |    53 +
 Code/BasicFilters/json/LessEqualImageFilter.json   |    63 +
 Code/BasicFilters/json/LessImageFilter.json        |    63 +
 .../json/LevelSetMotionRegistrationFilter.json     |   176 +
 Code/BasicFilters/json/LiThresholdImageFilter.json |   132 +
 Code/BasicFilters/json/Log10ImageFilter.json       |    25 +
 Code/BasicFilters/json/LogImageFilter.json         |    25 +
 .../MagnitudeAndPhaseToComplexImageFilter.json     |    27 +
 Code/BasicFilters/json/MaskImageFilter.json        |    76 +
 Code/BasicFilters/json/MaskNegatedImageFilter.json |    36 +
 .../MaskedFFTNormalizedCorrelationImageFilter.json |    90 +
 .../json/MaximumEntropyThresholdImageFilter.json   |   132 +
 Code/BasicFilters/json/MaximumImageFilter.json     |    26 +
 .../json/MaximumProjectionImageFilter.json         |    68 +
 Code/BasicFilters/json/MeanImageFilter.json        |    54 +
 .../json/MeanProjectionImageFilter.json            |    37 +
 Code/BasicFilters/json/MedianImageFilter.json      |    54 +
 .../json/MedianProjectionImageFilter.json          |    68 +
 Code/BasicFilters/json/MergeLabelMapFilter.json    |   140 +
 .../json/MinMaxCurvatureFlowImageFilter.json       |    67 +
 Code/BasicFilters/json/MinimumImageFilter.json     |    26 +
 .../json/MinimumMaximumImageFilter.json            |    73 +
 .../json/MinimumProjectionImageFilter.json         |    68 +
 Code/BasicFilters/json/MirrorPadImageFilter.json   |    71 +
 Code/BasicFilters/json/ModulusImageFilter.json     |    25 +
 .../json/MomentsThresholdImageFilter.json          |   132 +
 .../json/MorphologicalGradientImageFilter.json     |    42 +
 ...rphologicalWatershedFromMarkersImageFilter.json |    58 +
 .../json/MorphologicalWatershedImageFilter.json    |    75 +
 .../json/MultiLabelSTAPLEImageFilter.json          |    82 +
 Code/BasicFilters/json/MultiplyImageFilter.json    |    26 +
 .../json/N4BiasFieldCorrectionImageFilter.json     |   111 +
 Code/BasicFilters/json/NaryAddImageFilter.json     |    60 +
 Code/BasicFilters/json/NaryMaximumImageFilter.json |    60 +
 .../json/NeighborhoodConnectedImageFilter.json     |   117 +
 Code/BasicFilters/json/NoiseImageFilter.json       |    74 +
 Code/BasicFilters/json/NormalizeImageFilter.json   |    35 +
 .../json/NormalizeToConstantImageFilter.json       |    50 +
 .../json/NormalizedCorrelationImageFilter.json     |    57 +
 Code/BasicFilters/json/NotEqualImageFilter.json    |    53 +
 Code/BasicFilters/json/NotImageFilter.json         |    24 +
 .../json/OpeningByReconstructionImageFilter.json   |    63 +
 Code/BasicFilters/json/OrImageFilter.json          |    26 +
 .../json/OtsuMultipleThresholdsImageFilter.json    |   130 +
 .../json/OtsuThresholdImageFilter.json             |   155 +
 Code/BasicFilters/json/PasteImageFilter.json       |   121 +
 .../json/PatchBasedDenoisingImageFilter.json       |   156 +
 Code/BasicFilters/json/PermuteAxesImageFilter.json |    81 +
 .../json/PhysicalPointImageSource.json             |    73 +
 Code/BasicFilters/json/PowImageFilter.json         |    26 +
 ...ProjectedLandweberDeconvolutionImageFilter.json |    84 +
 Code/BasicFilters/json/RankImageFilter.json        |    77 +
 .../json/RealAndImaginaryToComplexImageFilter.json |    28 +
 .../RealToHalfHermitianForwardFFTImageFilter.json  |    25 +
 .../json/ReconstructionByDilationImageFilter.json  |    39 +
 .../json/ReconstructionByErosionImageFilter.json   |    39 +
 .../json/RecursiveGaussianImageFilter.json         |    98 +
 .../json/RegionOfInterestImageFilter.json          |    77 +
 .../json/RegionalMaximaImageFilter.json            |    67 +
 .../json/RegionalMinimaImageFilter.json            |    67 +
 .../json/RelabelComponentImageFilter.json          |    35 +
 Code/BasicFilters/json/RelabelLabelMapFilter.json  |    51 +
 .../json/RenyiEntropyThresholdImageFilter.json     |   132 +
 Code/BasicFilters/json/ResampleImageFilter.json    |   219 +
 .../json/RescaleIntensityImageFilter.json          |    48 +
 .../RichardsonLucyDeconvolutionImageFilter.json    |    75 +
 Code/BasicFilters/json/STAPLEImageFilter.json      |    76 +
 .../json/SaltAndPepperNoiseImageFilter.json        |    79 +
 .../ScalarChanAndVeseDenseLevelSetImageFilter.json |   151 +
 .../json/ScalarConnectedComponentImageFilter.json  |    58 +
 .../json/ScalarImageKmeansImageFilter.json         |    62 +
 .../json/ScalarToRGBColormapImageFilter.json       |    81 +
 .../json/ShanbhagThresholdImageFilter.json         |   132 +
 .../json/ShapeDetectionLevelSetImageFilter.json    |    84 +
 Code/BasicFilters/json/ShiftScaleImageFilter.json  |    64 +
 Code/BasicFilters/json/ShotNoiseImageFilter.json   |    79 +
 Code/BasicFilters/json/ShrinkImageFilter.json      |    73 +
 Code/BasicFilters/json/SigmoidImageFilter.json     |    65 +
 .../SignedDanielssonDistanceMapImageFilter.json    |    53 +
 .../json/SignedMaurerDistanceMapImageFilter.json   |    53 +
 .../json/SimilarityIndexImageFilter.json           |    59 +
 .../json/SimpleContourExtractorImageFilter.json    |    94 +
 Code/BasicFilters/json/SinImageFilter.json         |    25 +
 Code/BasicFilters/json/SliceImageFilter.json       |    43 +
 .../SmoothingRecursiveGaussianImageFilter.json     |    60 +
 .../json/SobelEdgeDetectionImageFilter.json        |    24 +
 .../BasicFilters/json/SpeckleNoiseImageFilter.json |    79 +
 Code/BasicFilters/json/SqrtImageFilter.json        |    25 +
 Code/BasicFilters/json/SquareImageFilter.json      |    25 +
 .../json/SquaredDifferenceImageFilter.json         |    50 +
 .../StandardDeviationProjectionImageFilter.json    |    37 +
 Code/BasicFilters/json/StatisticsImageFilter.json  |    99 +
 Code/BasicFilters/json/SubtractImageFilter.json    |    46 +
 .../json/SumProjectionImageFilter.json             |    37 +
 .../SymmetricForcesDemonsRegistrationFilter.json   |   189 +
 Code/BasicFilters/json/TanImageFilter.json         |    25 +
 Code/BasicFilters/json/TernaryAddImageFilter.json  |    27 +
 .../json/TernaryMagnitudeImageFilter.json          |    38 +
 .../json/TernaryMagnitudeSquaredImageFilter.json   |    38 +
 Code/BasicFilters/json/ThresholdImageFilter.json   |    96 +
 ...sholdMaximumConnectedComponentsImageFilter.json |    95 +
 .../ThresholdSegmentationLevelSetImageFilter.json  |   112 +
 .../json/TikhonovDeconvolutionImageFilter.json     |    75 +
 Code/BasicFilters/json/TileImageFilter.json        |   115 +
 .../json/TransformToDisplacementFieldFilter.json   |    91 +
 .../json/TriangleThresholdImageFilter.json         |   132 +
 Code/BasicFilters/json/UnaryMinusImageFilter.json  |    52 +
 .../json/ValuedRegionalMaximaImageFilter.json      |    37 +
 .../json/ValuedRegionalMinimaImageFilter.json      |    37 +
 .../json/VectorConfidenceConnectedImageFilter.json |   107 +
 .../json/VectorConnectedComponentImageFilter.json  |    49 +
 .../json/VectorIndexSelectionCastImageFilter.json  |    52 +
 .../json/VectorMagnitudeImageFilter.json           |    25 +
 .../json/VotingBinaryHoleFillingImageFilter.json   |    65 +
 .../BasicFilters/json/VotingBinaryImageFilter.json |    95 +
 ...otingBinaryIterativeHoleFillingImageFilter.json |    87 +
 Code/BasicFilters/json/WarpImageFilter.json        |   165 +
 Code/BasicFilters/json/WhiteTopHatImageFilter.json |    53 +
 .../json/WienerDeconvolutionImageFilter.json       |    75 +
 Code/BasicFilters/json/WrapPadImageFilter.json     |    71 +
 Code/BasicFilters/json/XorImageFilter.json         |    26 +
 .../BasicFilters/json/YenThresholdImageFilter.json |   132 +
 .../ZeroCrossingBasedEdgeDetectionImageFilter.json |    63 +
 .../BasicFilters/json/ZeroCrossingImageFilter.json |    67 +
 .../json/ZeroFluxNeumannPadImageFilter.json        |    68 +
 Code/BasicFilters/src/CMakeLists.txt               |   197 +
 Code/BasicFilters/src/itkBitwiseNotFunctor.h       |    56 +
 Code/BasicFilters/src/itkDivideFloorFunctor.h      |    63 +
 Code/BasicFilters/src/itkDivideRealFunctor.h       |    63 +
 Code/BasicFilters/src/sitkAdditionalProcedures.cxx |   138 +
 .../src/sitkBSplineTransformInitializerFilter.cxx  |   194 +
 Code/BasicFilters/src/sitkBoundaryConditions.hxx   |    59 +
 Code/BasicFilters/src/sitkCastImageFilter-2.cxx    |    42 +
 Code/BasicFilters/src/sitkCastImageFilter-2l.cxx   |    38 +
 Code/BasicFilters/src/sitkCastImageFilter-2v.cxx   |    40 +
 Code/BasicFilters/src/sitkCastImageFilter-3.cxx    |    42 +
 Code/BasicFilters/src/sitkCastImageFilter-3l.cxx   |    39 +
 Code/BasicFilters/src/sitkCastImageFilter-3v.cxx   |    39 +
 Code/BasicFilters/src/sitkCastImageFilter.cxx      |   107 +
 Code/BasicFilters/src/sitkCastImageFilter.hxx      |   139 +
 .../src/sitkCenteredTransformInitializerFilter.cxx |   170 +
 ...itkCenteredVersorTransformInitializerFilter.cxx |   161 +
 Code/BasicFilters/src/sitkCreateInterpolator.hxx   |   153 +
 Code/BasicFilters/src/sitkCreateKernel.h           |    73 +
 Code/BasicFilters/src/sitkHashImageFilter.cxx      |   133 +
 Code/BasicFilters/src/sitkHeavisideFunction.hxx    |    48 +
 Code/BasicFilters/src/sitkImageFilter.cxx          |    54 +
 Code/BasicFilters/src/sitkImageToKernel.hxx        |    89 +
 Code/BasicFilters/src/sitkLabelFunctorUtils.hxx    |    52 +
 ...sitkLandmarkBasedTransformInitializerFilter.cxx |   219 +
 Code/BasicFilters/src/sitkPermuteAxis_Static.hxx   |    36 +
 Code/BasicFilters/src/sitkToPixelType.hxx          |    43 +
 .../sitkBinaryFunctorFilterTemplate.cxx.in         |   205 +
 .../templates/sitkBinaryFunctorFilterTemplate.h.in |    69 +
 .../templates/sitkDualImageFilterTemplate.cxx.in   |   268 +
 .../templates/sitkDualImageFilterTemplate.h.in     |    62 +
 .../sitkFastMarchingImageFilterTemplate.cxx.in     |   138 +
 .../sitkFastMarchingImageFilterTemplate.h.in       |    89 +
 .../templates/sitkImageFilterTemplate.cxx.in       |    89 +
 .../templates/sitkImageFilterTemplate.h.in         |    48 +
 .../templates/sitkImageSourceTemplate.cxx.in       |   145 +
 .../templates/sitkImageSourceTemplate.h.in         |    66 +
 .../templates/sitkKernelImageFilterTemplate.cxx.in |   170 +
 .../templates/sitkKernelImageFilterTemplate.h.in   |    98 +
 .../sitkMultiInputImageFilterTemplate.cxx.in       |   217 +
 .../sitkMultiInputImageFilterTemplate.h.in         |   136 +
 .../sitkRegionGrowingImageFilterTemplate.cxx.in    |   127 +
 .../sitkRegionGrowingImageFilterTemplate.h.in      |    99 +
 Code/CMakeLists.txt                                |     8 +
 Code/Common/CMakeLists.txt                         |    21 +
 Code/Common/include/Ancillary/FunctionTraits.h     |   110 +
 Code/Common/include/Ancillary/TypeList.h           |   479 +
 Code/Common/include/Ancillary/hl_md5.cxx           |   403 +
 Code/Common/include/Ancillary/hl_md5.h             |   209 +
 Code/Common/include/Ancillary/hl_sha1.cxx          |   388 +
 Code/Common/include/Ancillary/hl_sha1.h            |   225 +
 Code/Common/include/SimpleITK.h                    |    90 +
 Code/Common/include/nsstd/auto_ptr.h               |    41 +
 Code/Common/include/nsstd/functional.h             |    52 +
 Code/Common/include/nsstd/type_traits.h            |    55 +
 Code/Common/include/nsstd/unordered_map.h          |    50 +
 Code/Common/include/sitkAffineTransform.h          |   124 +
 Code/Common/include/sitkBSplineTransform.h         |   127 +
 Code/Common/include/sitkCommand.h                  |    95 +
 Code/Common/include/sitkCommon.h                   |    46 +
 Code/Common/include/sitkConditional.h              |    66 +
 Code/Common/include/sitkDetail.h                   |   105 +
 .../include/sitkDisplacementFieldTransform.h       |   173 +
 .../Common/include/sitkDualMemberFunctionFactory.h |   183 +
 .../include/sitkDualMemberFunctionFactory.hxx      |   228 +
 Code/Common/include/sitkEnableIf.h                 |    65 +
 Code/Common/include/sitkEuler2DTransform.h         |    99 +
 Code/Common/include/sitkEuler3DTransform.h         |   116 +
 Code/Common/include/sitkEvent.h                    |    72 +
 Code/Common/include/sitkExceptionObject.h          |    98 +
 Code/Common/include/sitkFunctionCommand.h          |    73 +
 Code/Common/include/sitkImage.h                    |   479 +
 Code/Common/include/sitkImageConvert.h             |   115 +
 Code/Common/include/sitkInterpolator.h             |   119 +
 Code/Common/include/sitkKernel.h                   |    51 +
 Code/Common/include/sitkMacro.h                    |   137 +
 Code/Common/include/sitkMemberFunctionFactory.h    |   165 +
 Code/Common/include/sitkMemberFunctionFactory.hxx  |   224 +
 .../Common/include/sitkMemberFunctionFactoryBase.h |   459 +
 Code/Common/include/sitkNonCopyable.h              |    76 +
 Code/Common/include/sitkPixelIDTokens.h            |   122 +
 Code/Common/include/sitkPixelIDTypeLists.h         |   212 +
 Code/Common/include/sitkPixelIDTypes.h             |   157 +
 Code/Common/include/sitkPixelIDValues.h            |   141 +
 Code/Common/include/sitkProcessObject.h            |   361 +
 Code/Common/include/sitkRandomSeed.h               |    38 +
 .../include/sitkScaleSkewVersor3DTransform.h       |   121 +
 Code/Common/include/sitkScaleTransform.h           |   105 +
 Code/Common/include/sitkScaleVersor3DTransform.h   |   115 +
 Code/Common/include/sitkSimilarity2DTransform.h    |   104 +
 Code/Common/include/sitkSimilarity3DTransform.h    |   113 +
 Code/Common/include/sitkTemplateFunctions.h        |   190 +
 Code/Common/include/sitkTransform.h                |   295 +
 Code/Common/include/sitkTranslationTransform.h     |    89 +
 Code/Common/include/sitkVersion.h                  |    55 +
 Code/Common/include/sitkVersorRigid3DTransform.h   |   106 +
 Code/Common/include/sitkVersorTransform.h          |    98 +
 Code/Common/src/CMakeLists.txt                     |    70 +
 Code/Common/src/sitkAffineTransform.cxx            |   202 +
 Code/Common/src/sitkBSplineTransform.cxx           |   250 +
 Code/Common/src/sitkCommand.cxx                    |    69 +
 Code/Common/src/sitkConfigure.h.in                 |    62 +
 Code/Common/src/sitkDisplacementFieldTransform.cxx |   435 +
 Code/Common/src/sitkEuler2DTransform.cxx           |   167 +
 Code/Common/src/sitkEuler3DTransform.cxx           |   198 +
 Code/Common/src/sitkEvent.cxx                      |    46 +
 Code/Common/src/sitkExceptionObject.cxx            |   178 +
 Code/Common/src/sitkFunctionCommand.cxx            |    51 +
 Code/Common/src/sitkImage.cxx                      |   737 +
 Code/Common/src/sitkImage.hxx                      |   214 +
 Code/Common/src/sitkImageExplicit.cxx              |   133 +
 Code/Common/src/sitkInterpolator.cxx               |    47 +
 Code/Common/src/sitkKernel.cxx                     |    48 +
 Code/Common/src/sitkPimpleImageBase.h              |   159 +
 Code/Common/src/sitkPimpleImageBase.hxx            |   812 +
 Code/Common/src/sitkPimpleTransform.hxx            |   384 +
 Code/Common/src/sitkPixelIDValues.cxx              |   278 +
 Code/Common/src/sitkProcessObject.cxx              |   546 +
 Code/Common/src/sitkScaleSkewVersor3DTransform.cxx |   261 +
 Code/Common/src/sitkScaleTransform.cxx             |   132 +
 Code/Common/src/sitkScaleVersor3DTransform.cxx     |   244 +
 Code/Common/src/sitkSimilarity2DTransform.cxx      |   185 +
 Code/Common/src/sitkSimilarity3DTransform.cxx      |   255 +
 Code/Common/src/sitkTransform.cxx                  |   784 +
 Code/Common/src/sitkTransformHelper.hxx            |    46 +
 Code/Common/src/sitkTranslationTransform.cxx       |   111 +
 Code/Common/src/sitkVersion.cxx                    |    92 +
 Code/Common/src/sitkVersionConfig.h.in             |    23 +
 Code/Common/src/sitkVersorRigid3DTransform.cxx     |   234 +
 Code/Common/src/sitkVersorTransform.cxx            |   206 +
 Code/Explicit/CMakeLists.txt                       |     2 +
 Code/Explicit/include/sitkExplicit.h               |    45 +
 Code/Explicit/include/sitkExplicitITK.h            |    55 +
 .../include/sitkExplicitITKComposeImageFilter.h    |    49 +
 .../include/sitkExplicitITKDefaultPixelAccessor.h  |    53 +
 .../sitkExplicitITKDefaultVectorPixelAccessor.h    |    37 +
 Code/Explicit/include/sitkExplicitITKImage.h       |    78 +
 Code/Explicit/include/sitkExplicitITKImageBase.h   |    28 +
 .../include/sitkExplicitITKImageConstIterator.h    |    87 +
 Code/Explicit/include/sitkExplicitITKImageRegion.h |    28 +
 .../sitkExplicitITKImageRegionConstIterator.h      |    85 +
 .../sitkExplicitITKImageScanlineConstIterator.h    |    82 +
 .../include/sitkExplicitITKImageScanlineIterator.h |    80 +
 Code/Explicit/include/sitkExplicitITKImageSource.h |   106 +
 .../include/sitkExplicitITKImageToImageFilter.h    |   645 +
 .../include/sitkExplicitITKImportImageContainer.h  |    57 +
 .../include/sitkExplicitITKInPlaceImageFilter.h    |   319 +
 Code/Explicit/include/sitkExplicitITKLabelMap.h    |    43 +
 Code/Explicit/include/sitkExplicitITKVectorImage.h |    49 +
 ...xplicitITKVectorIndexSelectionCastImageFilter.h |    49 +
 Code/Explicit/src/CMakeLists.txt                   |    50 +
 .../src/sitkExplicitITKComposeImageFilter.cxx      |    46 +
 .../src/sitkExplicitITKDefaultPixelAccessor.cxx    |    50 +
 .../sitkExplicitITKDefaultVectorPixelAccessor.cxx  |    34 +
 Code/Explicit/src/sitkExplicitITKImage.cxx         |    75 +
 Code/Explicit/src/sitkExplicitITKImageBase.cxx     |    25 +
 .../src/sitkExplicitITKImageConstIterator.cxx      |    84 +
 Code/Explicit/src/sitkExplicitITKImageRegion.cxx   |    25 +
 .../sitkExplicitITKImageRegionConstIterator.cxx    |    63 +
 .../sitkExplicitITKImageScanlineConstIterator.cxx  |    79 +
 .../src/sitkExplicitITKImageScanlineIterator.cxx   |    77 +
 Code/Explicit/src/sitkExplicitITKImageSource.cxx   |   103 +
 .../src/sitkExplicitITKImageToImageFilter.cxx      |   642 +
 .../src/sitkExplicitITKImportImageContainer.cxx    |    54 +
 .../src/sitkExplicitITKInPlaceImageFilter.cxx      |   316 +
 Code/Explicit/src/sitkExplicitITKLabelMap.cxx      |    40 +
 Code/Explicit/src/sitkExplicitITKVectorImage.cxx   |    46 +
 ...licitITKVectorIndexSelectionCastImageFilter.cxx |    46 +
 Code/IO/CMakeLists.txt                             |     2 +
 Code/IO/include/sitkIO.h                           |    40 +
 Code/IO/include/sitkImageFileReader.h              |    86 +
 Code/IO/include/sitkImageFileWriter.h              |   124 +
 Code/IO/include/sitkImageReaderBase.h              |   107 +
 Code/IO/include/sitkImageSeriesReader.h            |   118 +
 Code/IO/include/sitkImageSeriesWriter.h            |   106 +
 Code/IO/include/sitkImportImageFilter.h            |   214 +
 Code/IO/include/sitkShow.h                         |   101 +
 Code/IO/src/CMakeLists.txt                         |    54 +
 Code/IO/src/sitkImageFileReader.cxx                |   130 +
 Code/IO/src/sitkImageFileWriter.cxx                |   166 +
 Code/IO/src/sitkImageReaderBase.cxx                |   336 +
 Code/IO/src/sitkImageSeriesReader.cxx              |   184 +
 Code/IO/src/sitkImageSeriesWriter.cxx              |   164 +
 Code/IO/src/sitkImportImageFilter.cxx              |   540 +
 Code/IO/src/sitkShow.cxx                           |   668 +
 Code/Registration/CMakeLists.txt                   |     1 +
 .../include/sitkImageRegistrationMethod.h          |   741 +
 Code/Registration/include/sitkRegistration.h       |    37 +
 Code/Registration/src/CMakeLists.txt               |    27 +
 Code/Registration/src/sitkCreateInterpolator.hxx   |   153 +
 .../src/sitkImageRegistrationMethod.cxx            |  1156 +
 .../sitkImageRegistrationMethod_CreateMetric.cxx   |    61 +
 .../sitkImageRegistrationMethod_CreateMetric.hxx   |   110 +
 ...sitkImageRegistrationMethod_CreateOptimizer.cxx |   340 +
 ...eRegistrationMethod_CreateParametersAdaptor.hxx |   126 +
 Documentation/CMakeLists.txt                       |     1 +
 Documentation/Doxygen/CommandsAndEvents.dox        |    65 +
 Documentation/Doxygen/Conventions.dox              |    78 +
 Documentation/Doxygen/Developer.dox                |   228 +
 Documentation/Doxygen/FilterTemplates.dox          |   418 +
 Documentation/Doxygen/GitPhilosopy.dox             |    62 +
 Documentation/Doxygen/MainPage.dox                 |    43 +
 Documentation/Doxygen/PythonDownloads.dox          |   212 +
 Documentation/Images/simpleitk_logo.png            |   Bin 0 -> 9946 bytes
 Documentation/Tutorials/CMakeLists.txt             |     8 +
 Documentation/Tutorials/Medium/CMakeLists.txt      |    18 +
 .../Tutorials/Medium/SimpleITKMediumTutorial.tex   |    78 +
 Documentation/Tutorials/README                     |    10 +
 Documentation/Tutorials/Short/CMakeLists.txt       |    18 +
 .../Tutorials/Short/SimpleITKShortTutorial.tex     |    78 +
 Documentation/docs/Makefile                        |    20 +
 Documentation/docs/source/conf.py                  |   157 +
 Documentation/docs/source/index.rst                |    18 +
 Examples/BufferImportExport.cxx                    |    79 +
 Examples/CMakeLists.txt                            |    66 +
 Examples/CSharp/CMakeLists.txt                     |    14 +
 Examples/CSharp/ImageGetBuffer.cs                  |    85 +
 Examples/DemonsRegistration1/CMakeLists.txt        |    30 +
 .../DemonsRegistration1/DemonsRegistration1.cxx    |    99 +
 .../DemonsRegistration1/DemonsRegistration1.py     |    76 +
 Examples/DemonsRegistration2/CMakeLists.txt        |    20 +
 .../DemonsRegistration2/DemonsRegistration2.cxx    |   125 +
 .../DemonsRegistration2/DemonsRegistration2.py     |    91 +
 Examples/DicomImagePrintTags/CMakeLists.txt        |    23 +
 Examples/DicomImagePrintTags/DicomImagePrintTags.R |    39 +
 .../DicomImagePrintTags/DicomImagePrintTags.py     |    38 +
 Examples/DicomSeriesReadModifyWrite/CMakeLists.txt |    12 +
 .../DicomSeriesReadModifySeriesWrite.py            |    92 +
 Examples/DicomSeriesReader/CMakeLists.txt          |    46 +
 Examples/DicomSeriesReader/DicomSeriesReader.R     |    49 +
 Examples/DicomSeriesReader/DicomSeriesReader.cxx   |    53 +
 Examples/DicomSeriesReader/DicomSeriesReader.lua   |    38 +
 Examples/DicomSeriesReader/DicomSeriesReader.py    |    46 +
 Examples/FilterProgressReporting/CMakeLists.txt    |    74 +
 .../FilterProgressReporting.R                      |    57 +
 .../FilterProgressReporting.cs                     |    71 +
 .../FilterProgressReporting.cxx                    |    98 +
 .../FilterProgressReporting.java                   |    67 +
 .../FilterProgressReporting.py                     |    71 +
 .../FilterProgressReporting.rb                     |    67 +
 Examples/ITKIntegration/CMakeLists.txt             |     6 +
 Examples/ITKIntegration/ITKIntegration.cxx         |   181 +
 Examples/ImageRegistrationMethod1/CMakeLists.txt   |    76 +
 .../ImageRegistrationMethod1.R                     |    59 +
 .../ImageRegistrationMethod1.cs                    |    92 +
 .../ImageRegistrationMethod1.cxx                   |   101 +
 .../ImageRegistrationMethod1.java                  |    87 +
 .../ImageRegistrationMethod1.lua                   |    55 +
 .../ImageRegistrationMethod1.py                    |    71 +
 Examples/ImageRegistrationMethod2/CMakeLists.txt   |    32 +
 .../ImageRegistrationMethod2.cxx                   |   111 +
 .../ImageRegistrationMethod2.py                    |    91 +
 Examples/ImageRegistrationMethod3/CMakeLists.txt   |    26 +
 .../ImageRegistrationMethod3.py                    |    90 +
 Examples/ImageRegistrationMethod4/CMakeLists.txt   |    28 +
 .../ImageRegistrationMethod4.py                    |    82 +
 .../ImageRegistrationMethodBSpline1/CMakeLists.txt |    31 +
 .../ImageRegistrationMethodBSpline1.cxx            |   119 +
 .../ImageRegistrationMethodBSpline1.py             |    82 +
 .../ImageRegistrationMethodBSpline2/CMakeLists.txt |    15 +
 .../ImageRegistrationMethodBSpline2.py             |    90 +
 .../CMakeLists.txt                                 |    56 +
 .../ImageRegistrationMethodDisplacement1.cxx       |   224 +
 .../ImageRegistrationMethodDisplacement1.py        |   137 +
 .../CMakeLists.txt                                 |    15 +
 .../ImageRegistrationMethodExhaustive.py           |   115 +
 Examples/N4BiasFieldCorrection/CMakeLists.txt      |    10 +
 .../N4BiasFieldCorrection/N4BiasFieldCorrection.py |    67 +
 Examples/Python/BoarderSegmentation.py             |    62 +
 Examples/Python/CMakeLists.txt                     |   104 +
 Examples/Python/CannyEdge.py                       |    39 +
 Examples/Python/ConnectedThresholdImageFilter.py   |    75 +
 Examples/Python/DicomModifyTags.py                 |    68 +
 Examples/Python/DicomSeriesReader2.py              |    96 +
 Examples/Python/ExtractSlice.py                    |    47 +
 Examples/Python/FFTConvolution.py                  |   102 +
 .../Python/GeodesicActiceContourSegmentation.py    |    78 +
 Examples/Python/ImageCreateAndSet.py               |    43 +
 .../Python/NeighborhoodConnectedImageFilter.py     |    79 +
 Examples/Python/ReadAndShow.py                     |    34 +
 Examples/Python/SimpleGaussianProcedural.py        |    41 +
 Examples/Segmentation/CMakeLists.txt               |     7 +
 .../Segmentation/ConnectedThresholdImageFilter.cxx |   100 +
 .../NeighborhoodConnectedImageFilter.cxx           |   110 +
 Examples/SimpleGaussian/CMakeLists.txt             |    83 +
 Examples/SimpleGaussian/SimpleGaussian.R           |    44 +
 Examples/SimpleGaussian/SimpleGaussian.cs          |    56 +
 Examples/SimpleGaussian/SimpleGaussian.cxx         |    60 +
 Examples/SimpleGaussian/SimpleGaussian.java        |    52 +
 Examples/SimpleGaussian/SimpleGaussian.lua         |    44 +
 Examples/SimpleGaussian/SimpleGaussian.py          |    51 +
 Examples/SimpleGaussian/SimpleGaussian.rb          |    42 +
 Examples/SimpleGaussian/SimpleGaussian.tcl         |    47 +
 Examples/SimpleGaussianFunctional.cxx              |    48 +
 Examples/test/CMakeLists.txt                       |    74 +
 .../Components/AddExtraIncludes.cxx.in             |     5 +
 .../Components/ClassDeclaration.h.in               |    30 +
 ExpandTemplateGenerator/Components/ClassEnd.h.in   |     1 +
 .../Components/ClassNameAndPrint.h.in              |     5 +
 .../Components/ConstructorInitializeMembers.cxx.in |    22 +
 .../ConstructorMemberFunctionSetup.cxx.in          |    10 +
 .../Components/ConstructorSignature.cxx.in         |     1 +
 .../Components/ConstructorVectorPixels.cxx.in      |     6 +
 ExpandTemplateGenerator/Components/CustomCasts.cxx |    46 +
 .../Components/CustomMethods.cxx.in                |    25 +
 .../Components/CustomMethods.h.in                  |    19 +
 .../Components/DesctuctorDefinition.cxx.in         |    22 +
 .../Components/DoNotEditWarning.cxx.in             |     5 +
 .../Components/DoNotEditWarning.h.in               |     5 +
 .../ExecuteInternalGetImagePointers.cxx.in         |     9 +
 .../Components/ExecuteInternalITKFilter.cxx.in     |    18 +
 .../Components/ExecuteInternalMethod.h.in          |    15 +
 .../ExecuteInternalSetITKFilterInputs.cxx.in       |    37 +
 .../ExecuteInternalSetITKFilterParameters.cxx.in   |    16 +
 .../Components/ExecuteInternalSignature.cxx.in     |    23 +
 .../Components/ExecuteInternalTypedefs.cxx.in      |    17 +
 .../ExecuteInternalUpdateAndReturn.cxx.in          |    68 +
 .../Components/ExecuteInternalVectorImages.cxx.in  |    62 +
 .../Components/ExecuteMethodNoParameters.h.in      |    15 +
 .../Components/ExecuteMethodWithParameters.h.in    |    27 +
 .../Components/ExecuteNoParameters.cxx.in          |    68 +
 .../Components/ExecuteWithParameters.cxx.in        |    45 +
 .../Components/FunctionalAPI.cxx.in                |    49 +
 .../Components/FunctionalAPI.h.in                  |    24 +
 .../Components/ImageParameters.in                  |     6 +
 .../Components/InputParameters.in                  |    21 +
 .../Components/InputParametersInternal.in          |    17 +
 .../Components/MemberFunctionDispatch.h.in         |     5 +
 .../Components/MemberGetSetDeclarations.h.in       |   126 +
 .../Components/MemberParameters.in                 |    19 +
 .../Components/MemberParametersWithDefaults.in     |    23 +
 .../Components/MemberPointsGetSetDeclarations.h.in |     0
 .../Components/PrivateMemberDeclarations.h.in      |    53 +
 .../Components/PublicDeclarations.h.in             |     5 +
 .../Components/StandardIncludes.cxx.in             |    18 +
 .../Components/ToStringBody.cxx.in                 |    44 +
 .../Components/ToStringReturn.cxx.in               |     1 +
 .../Components/ToStringSignature.cxx.in            |     1 +
 ExpandTemplateGenerator/ExpandTemplate.lua         |   269 +
 ExpandTemplateGenerator/JSONQuery.lua              |    62 +
 ExpandTemplateGenerator/json.lua                   |   376 +
 LICENSE                                            |   202 +
 NOTICE                                             |     8 +
 Readme.md                                          |    30 +
 SimpleITKConfig.cmake.in                           |    86 +
 SimpleITKConfigVersion.cmake.in                    |     9 +
 SuperBuild/CMakeLists.txt                          |    40 +
 SuperBuild/CTestConfig.cmake                       |     7 +
 SuperBuild/External_GTest.cmake                    |    30 +
 SuperBuild/External_ITK.cmake                      |    98 +
 SuperBuild/External_Lua.cmake                      |    45 +
 SuperBuild/External_PCRE.cmake                     |    49 +
 SuperBuild/External_SimpleITKExamples.cmake        |    33 +
 SuperBuild/External_Swig.cmake                     |   121 +
 SuperBuild/External_virtualenv.cmake               |    40 +
 SuperBuild/SuperBuild.cmake                        |   474 +
 SuperBuild/lua.cmake                               |    85 +
 SuperBuild/pcre_configure_step.cmake.in            |    27 +
 SuperBuild/swig_configure_step.cmake.in            |    37 +
 Testing/CMakeLists.txt                             |     1 +
 .../BasicFilters_AbsImageFilter_float.nrrd.md5     |     1 +
 .../BasicFilters_AbsImageFilter_float.nrrd.sha512  |     1 +
 .../BasicFilters_AbsImageFilter_short.nrrd.md5     |     1 +
 .../BasicFilters_AbsImageFilter_short.nrrd.sha512  |     1 +
 .../BasicFilters_AbsImageFilter_vector.nrrd.md5    |     1 +
 .../BasicFilters_AbsImageFilter_vector.nrrd.sha512 |     1 +
 .../BasicFilters_AcosImageFilter_defaults.nrrd.md5 |     1 +
 ...sicFilters_AcosImageFilter_defaults.nrrd.sha512 |     1 +
 .../BasicFilters_AcosImageFilter_vector.nrrd.md5   |     1 +
 ...BasicFilters_AcosImageFilter_vector.nrrd.sha512 |     1 +
 ...gramEqualizationImageFilter_defaults.1.nrrd.md5 |     1 +
 ...mEqualizationImageFilter_defaults.1.nrrd.sha512 |     1 +
 ...togramEqualizationImageFilter_defaults.nrrd.md5 |     1 +
 ...ramEqualizationImageFilter_defaults.nrrd.sha512 |     1 +
 ...stogramEqualizationImageFilter_histo.1.nrrd.md5 |     1 +
 ...gramEqualizationImageFilter_histo.1.nrrd.sha512 |     1 +
 ...HistogramEqualizationImageFilter_histo.nrrd.md5 |     1 +
 ...togramEqualizationImageFilter_histo.nrrd.sha512 |     1 +
 ...rs_AdditiveGaussianNoiseImageFilter_2d.nrrd.md5 |     1 +
 ...AdditiveGaussianNoiseImageFilter_2d.nrrd.sha512 |     1 +
 ...rs_AdditiveGaussianNoiseImageFilter_3d.nrrd.md5 |     1 +
 ...AdditiveGaussianNoiseImageFilter_3d.nrrd.sha512 |     1 +
 ...s_AdditiveGaussianNoiseImageFilter_rgb.nrrd.md5 |     1 +
 ...dditiveGaussianNoiseImageFilter_rgb.nrrd.sha512 |     1 +
 ...ters_AntiAliasBinaryImageFilter_cthead.nrrd.md5 |     1 +
 ...s_AntiAliasBinaryImageFilter_cthead.nrrd.sha512 |     1 +
 ...SignedDistanceMapImageFilter_default.1.nrrd.md5 |     1 +
 ...teSignedDistanceMapImageFilter_default.nrrd.md5 |     1 +
 ...ignedDistanceMapImageFilter_default.nrrd.sha512 |     1 +
 ...dDistanceMapImageFilter_modified_parms.nrrd.md5 |     1 +
 ...stanceMapImageFilter_modified_parms.nrrd.sha512 |     1 +
 .../BasicFilters_AsinImageFilter_defaults.nrrd.md5 |     1 +
 ...sicFilters_AsinImageFilter_defaults.nrrd.sha512 |     1 +
 ...BasicFilters_Atan2ImageFilter_defaults.nrrd.md5 |     1 +
 ...icFilters_Atan2ImageFilter_defaults.nrrd.sha512 |     1 +
 .../BasicFilters_AtanImageFilter_defaults.nrrd.md5 |     1 +
 ...sicFilters_AtanImageFilter_defaults.nrrd.sha512 |     1 +
 .../BasicFilters_AtanImageFilter_vector.nrrd.md5   |     1 +
 ...BasicFilters_AtanImageFilter_vector.nrrd.sha512 |     1 +
 .../BasicFilters_BilateralImageFilter_3d.nrrd.md5  |     1 +
 ...asicFilters_BilateralImageFilter_3d.nrrd.sha512 |     1 +
 ...cFilters_BinaryMagnitudeImageFilter_3d.nrrd.md5 |     1 +
 ...lters_BinaryMagnitudeImageFilter_3d.nrrd.sha512 |     1 +
 ...inMaxCurvatureFlowImageFilter_defaults.nrrd.md5 |     1 +
 ...axCurvatureFlowImageFilter_defaults.nrrd.sha512 |     1 +
 ...yMinMaxCurvatureFlowImageFilter_longer.nrrd.md5 |     1 +
 ...nMaxCurvatureFlowImageFilter_longer.nrrd.sha512 |     1 +
 ..._BoundedReciprocalImageFilter_defaults.nrrd.md5 |     1 +
 ...undedReciprocalImageFilter_defaults.nrrd.sha512 |     1 +
 ...rs_BoundedReciprocalImageFilter_vector.nrrd.md5 |     1 +
 ...BoundedReciprocalImageFilter_vector.nrrd.sha512 |     1 +
 .../BasicFilters_ClampImageFilter_double.nrrd.md5  |     1 +
 ...asicFilters_ClampImageFilter_double.nrrd.sha512 |     1 +
 ...CollidingFrontsImageFilter_around_dots.nrrd.md5 |     1 +
 ...lidingFrontsImageFilter_around_dots.nrrd.sha512 |     1 +
 ...s_ComplexToModulusImageFilter_defaults.nrrd.md5 |     1 +
 ...omplexToModulusImageFilter_defaults.nrrd.sha512 |     1 +
 ...ers_ComplexToPhaseImageFilter_defaults.nrrd.md5 |     1 +
 ..._ComplexToPhaseImageFilter_defaults.nrrd.sha512 |     1 +
 ...ilters_ConvolutionImageFilter_defaults.nrrd.md5 |     1 +
 ...ers_ConvolutionImageFilter_defaults.nrrd.sha512 |     1 +
 .../BasicFilters_CosImageFilter_float.nrrd.md5     |     1 +
 .../BasicFilters_CosImageFilter_float.nrrd.sha512  |     1 +
 .../BasicFilters_CosImageFilter_short.nrrd.md5     |     1 +
 .../BasicFilters_CosImageFilter_short.nrrd.sha512  |     1 +
 .../BasicFilters_CosImageFilter_vector.nrrd.md5    |     1 +
 .../BasicFilters_CosImageFilter_vector.nrrd.sha512 |     1 +
 ...isotropicDiffusionImageFilter_defaults.nrrd.md5 |     1 +
 ...tropicDiffusionImageFilter_defaults.nrrd.sha512 |     1 +
 ...AnisotropicDiffusionImageFilter_longer.nrrd.md5 |     1 +
 ...sotropicDiffusionImageFilter_longer.nrrd.sha512 |     1 +
 ...ters_CurvatureFlowImageFilter_defaults.nrrd.md5 |     1 +
 ...s_CurvatureFlowImageFilter_defaults.nrrd.sha512 |     1 +
 ...ilters_CurvatureFlowImageFilter_longer.nrrd.md5 |     1 +
 ...ers_CurvatureFlowImageFilter_longer.nrrd.sha512 |     1 +
 ...nielssonDistanceMapImageFilter_default.nrrd.md5 |     1 +
 ...lssonDistanceMapImageFilter_default.nrrd.sha512 |     1 +
 ...sicFilters_DemonsRegistrationFilter_2d.nrrd.md5 |     1 +
 ...Filters_DemonsRegistrationFilter_2d.nrrd.sha512 |     1 +
 ...monsRegistrationFilter_2d_with_initial.nrrd.md5 |     1 +
 ...sRegistrationFilter_2d_with_initial.nrrd.sha512 |     1 +
 ...Filters_DerivativeImageFilter_defaults.nrrd.md5 |     1 +
 ...ters_DerivativeImageFilter_defaults.nrrd.sha512 |     1 +
 ...ers_DerivativeImageFilter_zsecondorder.nrrd.md5 |     1 +
 ..._DerivativeImageFilter_zsecondorder.nrrd.sha512 |     1 +
 ...ffeomorphicDemonsRegistrationFilter_2d.nrrd.md5 |     1 +
 ...omorphicDemonsRegistrationFilter_2d.nrrd.sha512 |     1 +
 ...monsRegistrationFilter_2d_with_initial.nrrd.md5 |     1 +
 ...sRegistrationFilter_2d_with_initial.nrrd.sha512 |     1 +
 ...ilateObjectMorphologyImageFilter_float.nrrd.md5 |     1 +
 ...teObjectMorphologyImageFilter_float.nrrd.sha512 |     1 +
 ...ilateObjectMorphologyImageFilter_short.nrrd.md5 |     1 +
 ...teObjectMorphologyImageFilter_short.nrrd.sha512 |     1 +
 ...teGaussianDerivativeImageFilter_float1.nrrd.md5 |     1 +
 ...aussianDerivativeImageFilter_float1.nrrd.sha512 |     1 +
 ...GaussianDerivativeImageFilter_float_10.nrrd.md5 |     1 +
 ...ssianDerivativeImageFilter_float_10.nrrd.sha512 |     1 +
 ...GaussianDerivativeImageFilter_float_dx.nrrd.md5 |     1 +
 ...ssianDerivativeImageFilter_float_dx.nrrd.sha512 |     1 +
 ...aussianDerivativeImageFilter_float_dy2.nrrd.md5 |     1 +
 ...sianDerivativeImageFilter_float_dy2.nrrd.sha512 |     1 +
 ...ters_DiscreteGaussianImageFilter_float.nrrd.md5 |     1 +
 ...s_DiscreteGaussianImageFilter_float.nrrd.sha512 |     1 +
 ...ters_DiscreteGaussianImageFilter_short.nrrd.md5 |     1 +
 ...s_DiscreteGaussianImageFilter_short.nrrd.sha512 |     1 +
 ...ementFieldJacobianDeterminantFilter_2d.nrrd.md5 |     1 +
 ...ntFieldJacobianDeterminantFilter_2d.nrrd.sha512 |     1 +
 ...ldJacobianDeterminantFilter_2d_weights.nrrd.md5 |     1 +
 ...acobianDeterminantFilter_2d_weights.nrrd.sha512 |     1 +
 ...Filters_DivideRealImageFilter_defaults.nrrd.md5 |     1 +
 ...ters_DivideRealImageFilter_defaults.nrrd.sha512 |     1 +
 ...ters_EdgePotentialImageFilter_defaults.nrrd.md5 |     1 +
 ...s_EdgePotentialImageFilter_defaults.nrrd.sha512 |     1 +
 ...ErodeObjectMorphologyImageFilter_float.nrrd.md5 |     1 +
 ...deObjectMorphologyImageFilter_float.nrrd.sha512 |     1 +
 ...ErodeObjectMorphologyImageFilter_short.nrrd.md5 |     1 +
 ...deObjectMorphologyImageFilter_short.nrrd.sha512 |     1 +
 .../BasicFilters_ExpImageFilter_defaults.nrrd.md5  |     1 +
 ...asicFilters_ExpImageFilter_defaults.nrrd.sha512 |     1 +
 .../BasicFilters_ExpImageFilter_vector.nrrd.md5    |     1 +
 .../BasicFilters_ExpImageFilter_vector.nrrd.sha512 |     1 +
 ...ilters_ExpNegativeImageFilter_defaults.nrrd.md5 |     1 +
 ...ers_ExpNegativeImageFilter_defaults.nrrd.sha512 |     1 +
 ...cFilters_ExpNegativeImageFilter_vector.nrrd.md5 |     1 +
 ...lters_ExpNegativeImageFilter_vector.nrrd.sha512 |     1 +
 ...sicFilters_ExpandImageFilter_Expand2x3.nrrd.md5 |     1 +
 ...Filters_ExpandImageFilter_Expand2x3.nrrd.sha512 |     1 +
 ...ExpandImageFilter_Interpolator_BSpline.nrrd.md5 |     1 +
 ...andImageFilter_Interpolator_BSpline.nrrd.sha512 |     1 +
 ...xpandImageFilter_Interpolator_Gaussian.nrrd.md5 |     1 +
 ...ndImageFilter_Interpolator_Gaussian.nrrd.sha512 |     1 +
 .../BasicFilters_ExpandImageFilter_Vector.nrrd.md5 |     1 +
 ...sicFilters_ExpandImageFilter_Vector.nrrd.sha512 |     1 +
 ...s_FFTConvolutionImageFilter_defaults.1.nrrd.md5 |     1 +
 ...FTConvolutionImageFilter_defaults.1.nrrd.sha512 |     1 +
 ...ers_FFTConvolutionImageFilter_defaults.nrrd.md5 |     1 +
 ..._FFTConvolutionImageFilter_defaults.nrrd.sha512 |     1 +
 ...TNormalizedCorrelationImageFilter_3D.1.nrrd.md5 |     1 +
 ...rmalizedCorrelationImageFilter_3D.1.nrrd.sha512 |     1 +
 ...FFTNormalizedCorrelationImageFilter_3D.nrrd.md5 |     1 +
 ...NormalizedCorrelationImageFilter_3D.nrrd.sha512 |     1 +
 ...zedCorrelationImageFilter_EvenKernel.1.nrrd.md5 |     1 +
 ...CorrelationImageFilter_EvenKernel.1.nrrd.sha512 |     1 +
 ...lizedCorrelationImageFilter_EvenKernel.nrrd.md5 |     1 +
 ...edCorrelationImageFilter_EvenKernel.nrrd.sha512 |     1 +
 ...lizedCorrelationImageFilter_defaults.1.nrrd.md5 |     1 +
 ...edCorrelationImageFilter_defaults.1.nrrd.sha512 |     1 +
 ...malizedCorrelationImageFilter_defaults.nrrd.md5 |     1 +
 ...izedCorrelationImageFilter_defaults.nrrd.sha512 |     1 +
 ...ilters_FastMarchingImageFilter_default.nrrd.md5 |     1 +
 ...ers_FastMarchingImageFilter_default.nrrd.sha512 |     1 +
 ...chingUpwindGradientImageFilter_default.nrrd.md5 |     1 +
 ...ngUpwindGradientImageFilter_default.nrrd.sha512 |     1 +
 ...etricForcesDemonsRegistrationFilter_2d.nrrd.md5 |     1 +
 ...icForcesDemonsRegistrationFilter_2d.nrrd.sha512 |     1 +
 ...monsRegistrationFilter_2d_with_initial.nrrd.md5 |     1 +
 ...sRegistrationFilter_2d_with_initial.nrrd.sha512 |     1 +
 ...Filters_ForwardFFTImageFilter_defaults.nrrd.md5 |     1 +
 ...ters_ForwardFFTImageFilter_defaults.nrrd.sha512 |     1 +
 .../BasicFilters_GaborImageSource_default.nrrd.md5 |     1 +
 ...sicFilters_GaborImageSource_default.nrrd.sha512 |     1 +
 ...Filters_GaborSourceImageFilter_default.nrrd.md5 |     1 +
 ...ters_GaborSourceImageFilter_default.nrrd.sha512 |     1 +
 ...sicFilters_GaussianImageSource_default.nrrd.md5 |     1 +
 ...Filters_GaussianImageSource_default.nrrd.sha512 |     1 +
 ...ters_GaussianSourceImageFilter_default.nrrd.md5 |     1 +
 ...s_GaussianSourceImageFilter_default.nrrd.sha512 |     1 +
 ...iveContourLevelSetImageFilter_defaults.nrrd.md5 |     1 +
 ...ContourLevelSetImageFilter_defaults.nrrd.sha512 |     1 +
 ...isotropicDiffusionImageFilter_defaults.nrrd.md5 |     1 +
 ...tropicDiffusionImageFilter_defaults.nrrd.sha512 |     1 +
 ...AnisotropicDiffusionImageFilter_longer.nrrd.md5 |     1 +
 ...sotropicDiffusionImageFilter_longer.nrrd.sha512 |     1 +
 ...sicFilters_GradientImageFilter_default.nrrd.md5 |     1 +
 ...Filters_GradientImageFilter_default.nrrd.sha512 |     1 +
 ...ters_GradientImageFilter_default_float.nrrd.md5 |     1 +
 ...s_GradientImageFilter_default_float.nrrd.sha512 |     1 +
 ...s_GradientMagnitudeImageFilter_default.nrrd.md5 |     1 +
 ...radientMagnitudeImageFilter_default.nrrd.sha512 |     1 +
 ...deRecursiveGaussianImageFilter_default.nrrd.md5 |     1 +
 ...ecursiveGaussianImageFilter_default.nrrd.sha512 |     1 +
 ...ntRecursiveGaussianImageFilter_default.nrrd.md5 |     1 +
 ...ecursiveGaussianImageFilter_default.nrrd.sha512 |     1 +
 ...entRecursiveGaussianImageFilter_vector.nrrd.md5 |     1 +
 ...RecursiveGaussianImageFilter_vector.nrrd.sha512 |     1 +
 .../BasicFilters_GridImageSource_default.nrrd.md5  |     1 +
 ...asicFilters_GridImageSource_default.nrrd.sha512 |     1 +
 ...cFilters_GridSourceImageFilter_default.nrrd.md5 |     1 +
 ...lters_GridSourceImageFilter_default.nrrd.sha512 |     1 +
 ...anToRealInverseFFTImageFilter_defaults.nrrd.md5 |     1 +
 ...oRealInverseFFTImageFilter_defaults.nrrd.sha512 |     1 +
 ..._HistogramMatchingImageFilter_defaults.nrrd.md5 |     1 +
 ...stogramMatchingImageFilter_defaults.nrrd.sha512 |     1 +
 ...rseDeconvolutionImageFilter_defaults.1.nrrd.md5 |     1 +
 ...DeconvolutionImageFilter_defaults.1.nrrd.sha512 |     1 +
 ...verseDeconvolutionImageFilter_defaults.nrrd.md5 |     1 +
 ...seDeconvolutionImageFilter_defaults.nrrd.sha512 |     1 +
 ...InverseDisplacementFieldImageFilter_2d.nrrd.md5 |     1 +
 ...erseDisplacementFieldImageFilter_2d.nrrd.sha512 |     1 +
 ...Filters_InverseFFTImageFilter_defaults.nrrd.md5 |     1 +
 ...ters_InverseFFTImageFilter_defaults.nrrd.sha512 |     1 +
 ..._InvertDisplacementFieldImageFilter_2d.nrrd.md5 |     1 +
 ...vertDisplacementFieldImageFilter_2d.nrrd.sha512 |     1 +
 ..._IsoContourDistanceImageFilter_default.nrrd.md5 |     1 +
 ...oContourDistanceImageFilter_default.nrrd.sha512 |     1 +
 ...berDeconvolutionImageFilter_defaults.1.nrrd.md5 |     1 +
 ...DeconvolutionImageFilter_defaults.1.nrrd.sha512 |     1 +
 ...weberDeconvolutionImageFilter_defaults.nrrd.md5 |     1 +
 ...erDeconvolutionImageFilter_defaults.nrrd.sha512 |     1 +
 ...icFilters_LaplacianImageFilter_default.nrrd.md5 |     1 +
 ...ilters_LaplacianImageFilter_default.nrrd.sha512 |     1 +
 ...anRecursiveGaussianImageFilter_default.nrrd.md5 |     1 +
 ...ecursiveGaussianImageFilter_default.nrrd.sha512 |     1 +
 ...SegmentationLevelSetImageFilter_cthead.nrrd.md5 |     1 +
 ...mentationLevelSetImageFilter_cthead.nrrd.sha512 |     1 +
 ...LaplacianSharpeningImageFilter_default.nrrd.md5 |     1 +
 ...lacianSharpeningImageFilter_default.nrrd.sha512 |     1 +
 ...rs_LevelSetMotionRegistrationFilter_2d.nrrd.md5 |     1 +
 ...LevelSetMotionRegistrationFilter_2d.nrrd.sha512 |     1 +
 ...BasicFilters_Log10ImageFilter_defaults.nrrd.md5 |     1 +
 ...icFilters_Log10ImageFilter_defaults.nrrd.sha512 |     1 +
 .../BasicFilters_LogImageFilter_defaults.nrrd.md5  |     1 +
 ...asicFilters_LogImageFilter_defaults.nrrd.sha512 |     1 +
 .../BasicFilters_LogImageFilter_vector.nrrd.md5    |     1 +
 .../BasicFilters_LogImageFilter_vector.nrrd.sha512 |     1 +
 ...eAndPhaseToComplexImageFilter_defaults.nrrd.md5 |     1 +
 ...dPhaseToComplexImageFilter_defaults.nrrd.sha512 |     1 +
 ...TNormalizedCorrelationImageFilter_3D.1.nrrd.md5 |     1 +
 ...rmalizedCorrelationImageFilter_3D.1.nrrd.sha512 |     1 +
 ...FFTNormalizedCorrelationImageFilter_3D.nrrd.md5 |     1 +
 ...NormalizedCorrelationImageFilter_3D.nrrd.sha512 |     1 +
 ...lizedCorrelationImageFilter_defaults.1.nrrd.md5 |     1 +
 ...edCorrelationImageFilter_defaults.1.nrrd.sha512 |     1 +
 ...malizedCorrelationImageFilter_defaults.nrrd.md5 |     1 +
 ...izedCorrelationImageFilter_defaults.nrrd.sha512 |     1 +
 ...MeanProjectionImageFilter_z_projection.nrrd.md5 |     1 +
 ...nProjectionImageFilter_z_projection.nrrd.sha512 |     1 +
 ...inMaxCurvatureFlowImageFilter_defaults.nrrd.md5 |     1 +
 ...axCurvatureFlowImageFilter_defaults.nrrd.sha512 |     1 +
 ..._MinMaxCurvatureFlowImageFilter_longer.nrrd.md5 |     1 +
 ...nMaxCurvatureFlowImageFilter_longer.nrrd.sha512 |     1 +
 ...iasFieldCorrectionImageFilter_defaults.nrrd.md5 |     1 +
 ...FieldCorrectionImageFilter_defaults.nrrd.sha512 |     1 +
 ...rs_NeighborhoodConnectedImageFilter_2d.nrrd.md5 |     1 +
 ...NeighborhoodConnectedImageFilter_2d.nrrd.sha512 |     1 +
 ...cFilters_NormalizeImageFilter_defaults.nrrd.md5 |     1 +
 ...lters_NormalizeImageFilter_defaults.nrrd.sha512 |     1 +
 ...sicFilters_NormalizeImageFilter_vector.nrrd.md5 |     1 +
 ...Filters_NormalizeImageFilter_vector.nrrd.sha512 |     1 +
 ...ormalizeToConstantImageFilter_defaults.nrrd.md5 |     1 +
 ...alizeToConstantImageFilter_defaults.nrrd.sha512 |     1 +
 ..._NormalizeToConstantImageFilter_vector.nrrd.md5 |     1 +
 ...rmalizeToConstantImageFilter_vector.nrrd.sha512 |     1 +
 ...lizedCorrelationImageFilter_EvenKernel.nrrd.md5 |     1 +
 ...edCorrelationImageFilter_EvenKernel.nrrd.sha512 |     1 +
 ...malizedCorrelationImageFilter_defaults.nrrd.md5 |     1 +
 ...izedCorrelationImageFilter_defaults.nrrd.sha512 |     1 +
 ...PatchBasedDenoisingImageFilter_default.nrrd.md5 |     1 +
 ...chBasedDenoisingImageFilter_default.nrrd.sha512 |     1 +
 .../BasicFilters_PowImageFilter_defaults.nrrd.md5  |     1 +
 ...asicFilters_PowImageFilter_defaults.nrrd.sha512 |     1 +
 ...ters_PowToConstantImageFilter_defaults.nrrd.md5 |     1 +
 ...s_PowToConstantImageFilter_defaults.nrrd.sha512 |     1 +
 ...ToConstantImageFilter_setting_constant.nrrd.md5 |     1 +
 ...onstantImageFilter_setting_constant.nrrd.sha512 |     1 +
 ...weberDeconvolutionImageFilter_defaults.nrrd.md5 |     1 +
 ...erDeconvolutionImageFilter_defaults.nrrd.sha512 |     1 +
 ...ermitianForwardFFTImageFilter_defaults.nrrd.md5 |     1 +
 ...itianForwardFFTImageFilter_defaults.nrrd.sha512 |     1 +
 ...s_RecursiveGaussianImageFilter_default.nrrd.md5 |     1 +
 ...ecursiveGaussianImageFilter_default.nrrd.sha512 |     1 +
 ...RecursiveGaussianImageFilter_rgb_image.nrrd.md5 |     1 +
 ...ursiveGaussianImageFilter_rgb_image.nrrd.sha512 |     1 +
 ...icFilters_ResampleImageFilter_defaults.nrrd.md5 |     1 +
 ...ilters_ResampleImageFilter_defaults.nrrd.sha512 |     1 +
 ...asicFilters_ResampleImageFilter_vector.nrrd.md5 |     1 +
 ...cFilters_ResampleImageFilter_vector.nrrd.sha512 |     1 +
 ...ResampleImageFilter_wCastwInterpolator.nrrd.md5 |     1 +
 ...ampleImageFilter_wCastwInterpolator.nrrd.sha512 |     1 +
 ...Filters_RescaleIntensityImageFilter_3d.nrrd.md5 |     1 +
 ...ters_RescaleIntensityImageFilter_3d.nrrd.sha512 |     1 +
 ...nLucyDeconvolutionImageFilter_defaults.nrrd.md5 |     1 +
 ...cyDeconvolutionImageFilter_defaults.nrrd.sha512 |     1 +
 .../BasicFilters_STAPLEImageFilter_basic.nrrd.md5  |     1 +
 ...asicFilters_STAPLEImageFilter_basic.nrrd.sha512 |     1 +
 ...lters_SaltAndPepperNoiseImageFilter_2d.nrrd.md5 |     1 +
 ...rs_SaltAndPepperNoiseImageFilter_2d.nrrd.sha512 |     1 +
 ...lters_SaltAndPepperNoiseImageFilter_3d.nrrd.md5 |     1 +
 ...rs_SaltAndPepperNoiseImageFilter_3d.nrrd.sha512 |     1 +
 ...ters_SaltAndPepperNoiseImageFilter_rgb.nrrd.md5 |     1 +
 ...s_SaltAndPepperNoiseImageFilter_rgb.nrrd.sha512 |     1 +
 ...AndVeseDenseLevelSetImageFilter_cthead.nrrd.md5 |     1 +
 ...VeseDenseLevelSetImageFilter_cthead.nrrd.sha512 |     1 +
 ...eDetectionLevelSetImageFilter_defaults.nrrd.md5 |     1 +
 ...tectionLevelSetImageFilter_defaults.nrrd.sha512 |     1 +
 .../BasicFilters_ShotNoiseImageFilter_2d.nrrd.md5  |     1 +
 ...asicFilters_ShotNoiseImageFilter_2d.nrrd.sha512 |     1 +
 .../BasicFilters_ShotNoiseImageFilter_3d.nrrd.md5  |     1 +
 ...asicFilters_ShotNoiseImageFilter_3d.nrrd.sha512 |     1 +
 .../BasicFilters_ShotNoiseImageFilter_rgb.nrrd.md5 |     1 +
 ...sicFilters_ShotNoiseImageFilter_rgb.nrrd.sha512 |     1 +
 ...nielssonDistanceMapImageFilter_default.nrrd.md5 |     1 +
 ...lssonDistanceMapImageFilter_default.nrrd.sha512 |     1 +
 ...edMaurerDistanceMapImageFilter_default.nrrd.md5 |     1 +
 ...aurerDistanceMapImageFilter_default.nrrd.sha512 |     1 +
 .../BasicFilters_SinImageFilter_defaults.nrrd.md5  |     1 +
 ...asicFilters_SinImageFilter_defaults.nrrd.sha512 |     1 +
 .../BasicFilters_SinImageFilter_vector.nrrd.md5    |     1 +
 .../BasicFilters_SinImageFilter_vector.nrrd.sha512 |     1 +
 ...ngRecursiveGaussianImageFilter_default.nrrd.md5 |     1 +
 ...ecursiveGaussianImageFilter_default.nrrd.sha512 |     1 +
 ...RecursiveGaussianImageFilter_rgb_image.nrrd.md5 |     1 +
 ...ursiveGaussianImageFilter_rgb_image.nrrd.sha512 |     1 +
 ...SobelEdgeDetectionImageFilter_defaults.nrrd.md5 |     1 +
 ...elEdgeDetectionImageFilter_defaults.nrrd.sha512 |     1 +
 ...asicFilters_SpeckleNoiseImageFilter_2d.nrrd.md5 |     1 +
 ...cFilters_SpeckleNoiseImageFilter_2d.nrrd.sha512 |     1 +
 ...asicFilters_SpeckleNoiseImageFilter_3d.nrrd.md5 |     1 +
 ...cFilters_SpeckleNoiseImageFilter_3d.nrrd.sha512 |     1 +
 ...sicFilters_SpeckleNoiseImageFilter_rgb.nrrd.md5 |     1 +
 ...Filters_SpeckleNoiseImageFilter_rgb.nrrd.sha512 |     1 +
 .../BasicFilters_SqrtImageFilter_defaults.nrrd.md5 |     1 +
 ...sicFilters_SqrtImageFilter_defaults.nrrd.sha512 |     1 +
 .../BasicFilters_SqrtImageFilter_vector.nrrd.md5   |     1 +
 ...BasicFilters_SqrtImageFilter_vector.nrrd.sha512 |     1 +
 ...edDifferenceImageFilter_2DStapleImages.nrrd.md5 |     1 +
 ...ifferenceImageFilter_2DStapleImages.nrrd.sha512 |     1 +
 ...uaredDifferenceImageFilter_Ramp_Short1.nrrd.md5 |     1 +
 ...edDifferenceImageFilter_Ramp_Short1.nrrd.sha512 |     1 +
 ...uaredDifferenceImageFilter_Ramp_Short2.nrrd.md5 |     1 +
 ...edDifferenceImageFilter_Ramp_Short2.nrrd.sha512 |     1 +
 ...tionProjectionImageFilter_z_projection.nrrd.md5 |     1 +
 ...nProjectionImageFilter_z_projection.nrrd.sha512 |     1 +
 ..._SumProjectionImageFilter_z_projection.nrrd.md5 |     1 +
 ...mProjectionImageFilter_z_projection.nrrd.sha512 |     1 +
 ...etricForcesDemonsRegistrationFilter_2d.nrrd.md5 |     1 +
 ...icForcesDemonsRegistrationFilter_2d.nrrd.sha512 |     1 +
 ...monsRegistrationFilter_2d_with_initial.nrrd.md5 |     1 +
 ...sRegistrationFilter_2d_with_initial.nrrd.sha512 |     1 +
 .../BasicFilters_TanImageFilter_defaults.nrrd.md5  |     1 +
 ...asicFilters_TanImageFilter_defaults.nrrd.sha512 |     1 +
 .../BasicFilters_TanImageFilter_vector.nrrd.md5    |     1 +
 .../BasicFilters_TanImageFilter_vector.nrrd.sha512 |     1 +
 ...Filters_TernaryMagnitudeImageFilter_3d.nrrd.md5 |     1 +
 ...ters_TernaryMagnitudeImageFilter_3d.nrrd.sha512 |     1 +
 ..._TernaryMagnitudeSquaredImageFilter_3d.nrrd.md5 |     1 +
 ...rnaryMagnitudeSquaredImageFilter_3d.nrrd.sha512 |     1 +
 ...SegmentationLevelSetImageFilter_cthead.nrrd.md5 |     1 +
 ...mentationLevelSetImageFilter_cthead.nrrd.sha512 |     1 +
 ...novDeconvolutionImageFilter_defaults.1.nrrd.md5 |     1 +
 ...DeconvolutionImageFilter_defaults.1.nrrd.sha512 |     1 +
 ...honovDeconvolutionImageFilter_defaults.nrrd.md5 |     1 +
 ...ovDeconvolutionImageFilter_defaults.nrrd.sha512 |     1 +
 ..._TransformToDisplacementFieldFilter_32.nrrd.md5 |     1 +
 ...ansformToDisplacementFieldFilter_32.nrrd.sha512 |     1 +
 ...formToDisplacementFieldFilter_defaults.nrrd.md5 |     1 +
 ...mToDisplacementFieldFilter_defaults.nrrd.sha512 |     1 +
 ...cFilters_VectorMagnitudeImageFilter_3d.nrrd.md5 |     1 +
 ...lters_VectorMagnitudeImageFilter_3d.nrrd.sha512 |     1 +
 .../BasicFilters_WarpImageFilter_cthead1.nrrd.md5  |     1 +
 ...asicFilters_WarpImageFilter_cthead1.nrrd.sha512 |     1 +
 .../BasicFilters_WarpImageFilter_vm.nrrd.md5       |     1 +
 .../BasicFilters_WarpImageFilter_vm.nrrd.sha512    |     1 +
 ...nerDeconvolutionImageFilter_defaults.1.nrrd.md5 |     1 +
 ...DeconvolutionImageFilter_defaults.1.nrrd.sha512 |     1 +
 ...ienerDeconvolutionImageFilter_defaults.nrrd.md5 |     1 +
 ...erDeconvolutionImageFilter_defaults.nrrd.sha512 |     1 +
 ...BasedEdgeDetectionImageFilter_defaults.nrrd.md5 |     1 +
 ...edEdgeDetectionImageFilter_defaults.nrrd.sha512 |     1 +
 .../DemonsRegistration1Test_displacement.mha.md5   |     1 +
 ...DemonsRegistration1Test_displacement.mha.sha512 |     1 +
 .../DemonsRegistration2Test_displacement.mha.md5   |     1 +
 ...DemonsRegistration2Test_displacement.mha.sha512 |     1 +
 .../Baseline/Example_SimpleDerivative.nrrd.md5     |     1 +
 .../Baseline/Example_SimpleDerivative.nrrd.sha512  |     1 +
 .../Baseline/Example_SimpleGaussian_2.0.nrrd.md5   |     1 +
 .../Example_SimpleGaussian_2.0.nrrd.sha512         |     1 +
 .../Baseline/ImageRegistrationMethod3Test1.mha.md5 |     1 +
 .../ImageRegistrationMethod3Test1.mha.sha512       |     1 +
 .../Baseline/ImageRegistrationMethod3Test2.mha.md5 |     1 +
 .../ImageRegistrationMethod3Test2.mha.sha512       |     1 +
 .../ImageRegistrationMethodBSpline1.1.mha.md5      |     1 +
 .../ImageRegistrationMethodBSpline1.1.mha.sha512   |     1 +
 .../ImageRegistrationMethodBSpline1.mha.md5        |     1 +
 .../ImageRegistrationMethodBSpline1.mha.sha512     |     1 +
 .../ImageRegistrationMethodBSpline2.1.mha.md5      |     1 +
 .../ImageRegistrationMethodBSpline2.1.mha.sha512   |     1 +
 .../ImageRegistrationMethodBSpline2.mha.md5        |     1 +
 .../ImageRegistrationMethodBSpline2.mha.sha512     |     1 +
 .../ImageRegistrationMethodDisplacement1.mha.md5   |     1 +
 ...ImageRegistrationMethodDisplacement1.mha.sha512 |     1 +
 ...ageRegistrationMethodDisplacement1Test2.mha.md5 |     1 +
 ...RegistrationMethodDisplacement1Test2.mha.sha512 |     1 +
 .../ImageRegistrationMethodExhaustiveTest1.mha.md5 |     1 +
 ...ageRegistrationMethodExhaustiveTest1.mha.sha512 |     1 +
 .../Registration_Resample_Resample.nrrd.md5        |     1 +
 .../Registration_Resample_Resample.nrrd.sha512     |     1 +
 .../Data/Baseline/displacement_-13x-17y.mha.md5    |     1 +
 .../Data/Baseline/displacement_-13x-17y.mha.sha512 |     1 +
 Testing/Data/Baseline/displacement_13x17y.mha.md5  |     1 +
 .../Data/Baseline/displacement_13x17y.mha.sha512   |     1 +
 Testing/Data/Input/2th_cthead1.mha.md5             |     1 +
 Testing/Data/Input/2th_cthead1.mha.sha512          |     1 +
 Testing/Data/Input/2th_cthead1.png.md5             |     1 +
 Testing/Data/Input/2th_cthead1.png.sha512          |     1 +
 Testing/Data/Input/2th_cthead1_distance.nrrd.md5   |     1 +
 .../Data/Input/2th_cthead1_distance.nrrd.sha512    |     1 +
 Testing/Data/Input/4D.nii.gz.md5                   |     1 +
 Testing/Data/Input/4D.nii.gz.sha512                |     1 +
 Testing/Data/Input/BlackDots.png.md5               |     1 +
 Testing/Data/Input/BlackDots.png.sha512            |     1 +
 Testing/Data/Input/BrainProtonDensitySlice.png.md5 |     1 +
 .../Data/Input/BrainProtonDensitySlice.png.sha512  |     1 +
 ...ProtonDensitySlice20InitialDisplacement.mha.md5 |     1 +
 ...tonDensitySlice20InitialDisplacement.mha.sha512 |     1 +
 .../BrainProtonDensitySliceBSplined10.png.md5      |     1 +
 .../BrainProtonDensitySliceBSplined10.png.sha512   |     1 +
 .../Input/BrainProtonDensitySliceBorder20.png.md5  |     1 +
 .../BrainProtonDensitySliceBorder20.png.sha512     |     1 +
 .../BrainProtonDensitySliceBorder20Mask.png.md5    |     1 +
 .../BrainProtonDensitySliceBorder20Mask.png.sha512 |     1 +
 .../Input/BrainProtonDensitySliceR10X13Y17.png.md5 |     1 +
 .../BrainProtonDensitySliceR10X13Y17.png.sha512    |     1 +
 .../BrainProtonDensitySliceR10X13Y17S12.png.md5    |     1 +
 .../BrainProtonDensitySliceR10X13Y17S12.png.sha512 |     1 +
 .../BrainProtonDensitySliceShifted13x17y.png.md5   |     1 +
 ...BrainProtonDensitySliceShifted13x17y.png.sha512 |     1 +
 Testing/Data/Input/BrainT1SliceBorder20.png.md5    |     1 +
 Testing/Data/Input/BrainT1SliceBorder20.png.sha512 |     1 +
 Testing/Data/Input/DeconvolutionInput.nrrd.md5     |     1 +
 Testing/Data/Input/DeconvolutionInput.nrrd.sha512  |     1 +
 Testing/Data/Input/DeconvolutionKernel.nrrd.md5    |     1 +
 Testing/Data/Input/DeconvolutionKernel.nrrd.sha512 |     1 +
 Testing/Data/Input/DicomSeries/Image0075.dcm.md5   |     1 +
 .../Data/Input/DicomSeries/Image0075.dcm.sha512    |     1 +
 Testing/Data/Input/DicomSeries/Image0076.dcm.md5   |     1 +
 .../Data/Input/DicomSeries/Image0076.dcm.sha512    |     1 +
 Testing/Data/Input/DicomSeries/Image0077.dcm.md5   |     1 +
 .../Data/Input/DicomSeries/Image0077.dcm.sha512    |     1 +
 Testing/Data/Input/Gaussian_1.5.nrrd.md5           |     1 +
 Testing/Data/Input/Gaussian_1.5.nrrd.sha512        |     1 +
 Testing/Data/Input/LargeWhiteCircle.nrrd.md5       |     1 +
 Testing/Data/Input/LargeWhiteCircle.nrrd.sha512    |     1 +
 Testing/Data/Input/LargeWhiteCircle_Float.nrrd.md5 |     1 +
 .../Data/Input/LargeWhiteCircle_Float.nrrd.sha512  |     1 +
 .../Data/Input/OAS1_0001_MR1_mpr-1_anon.nrrd.md5   |     1 +
 .../Input/OAS1_0001_MR1_mpr-1_anon.nrrd.sha512     |     1 +
 .../Data/Input/OAS1_0002_MR1_mpr-1_anon.nrrd.md5   |     1 +
 .../Input/OAS1_0002_MR1_mpr-1_anon.nrrd.sha512     |     1 +
 Testing/Data/Input/RA-FFT-Complex.nrrd.md5         |     1 +
 Testing/Data/Input/RA-FFT-Complex.nrrd.sha512      |     1 +
 Testing/Data/Input/RA-Float.nrrd.md5               |     1 +
 Testing/Data/Input/RA-Float.nrrd.sha512            |     1 +
 Testing/Data/Input/RA-Gradient.nrrd.md5            |     1 +
 Testing/Data/Input/RA-Gradient.nrrd.sha512         |     1 +
 Testing/Data/Input/RA-HalfFFT-Complex.nrrd.md5     |     1 +
 Testing/Data/Input/RA-HalfFFT-Complex.nrrd.sha512  |     1 +
 Testing/Data/Input/RA-Short.nrrd.md5               |     1 +
 Testing/Data/Input/RA-Short.nrrd.sha512            |     1 +
 Testing/Data/Input/RA-Slice-Float.nrrd.md5         |     1 +
 Testing/Data/Input/RA-Slice-Float.nrrd.sha512      |     1 +
 Testing/Data/Input/RA-Slice-Short.nrrd.md5         |     1 +
 Testing/Data/Input/RA-Slice-Short.nrrd.sha512      |     1 +
 Testing/Data/Input/RA-Slice-Short.png.md5          |     1 +
 Testing/Data/Input/RA-Slice-Short.png.sha512       |     1 +
 Testing/Data/Input/Ramp-Down-Short.nrrd.md5        |     1 +
 Testing/Data/Input/Ramp-Down-Short.nrrd.sha512     |     1 +
 Testing/Data/Input/Ramp-One-Zero-Float.nrrd.md5    |     1 +
 Testing/Data/Input/Ramp-One-Zero-Float.nrrd.sha512 |     1 +
 Testing/Data/Input/Ramp-Up-Short.nrrd.md5          |     1 +
 Testing/Data/Input/Ramp-Up-Short.nrrd.sha512       |     1 +
 Testing/Data/Input/Ramp-Zero-One-Float.nrrd.md5    |     1 +
 Testing/Data/Input/Ramp-Zero-One-Float.nrrd.sha512 |     1 +
 Testing/Data/Input/STAPLE1-binary.png.md5          |     1 +
 Testing/Data/Input/STAPLE1-binary.png.sha512       |     1 +
 Testing/Data/Input/STAPLE1.png.md5                 |     1 +
 Testing/Data/Input/STAPLE1.png.sha512              |     1 +
 Testing/Data/Input/STAPLE2-binary.png.md5          |     1 +
 Testing/Data/Input/STAPLE2-binary.png.sha512       |     1 +
 Testing/Data/Input/STAPLE2.png.md5                 |     1 +
 Testing/Data/Input/STAPLE2.png.sha512              |     1 +
 Testing/Data/Input/SmallWhiteCircle.nrrd.md5       |     1 +
 Testing/Data/Input/SmallWhiteCircle.nrrd.sha512    |     1 +
 Testing/Data/Input/SmallWhiteCircle_Float.nrrd.md5 |     1 +
 .../Data/Input/SmallWhiteCircle_Float.nrrd.sha512  |     1 +
 Testing/Data/Input/VM1111Shrink-RGB.png.md5        |     1 +
 Testing/Data/Input/VM1111Shrink-RGB.png.sha512     |     1 +
 Testing/Data/Input/VM1111Shrink-RGBFloat.nrrd.md5  |     1 +
 .../Data/Input/VM1111Shrink-RGBFloat.nrrd.sha512   |     1 +
 Testing/Data/Input/VM1111Shrink-RGBNorm.nrrd.md5   |     1 +
 .../Data/Input/VM1111Shrink-RGBNorm.nrrd.sha512    |     1 +
 Testing/Data/Input/VM1111Shrink-dis1.nrrd.md5      |     1 +
 Testing/Data/Input/VM1111Shrink-dis1.nrrd.sha512   |     1 +
 Testing/Data/Input/VM1111Shrink-mask.png.md5       |     1 +
 Testing/Data/Input/VM1111Shrink-mask.png.sha512    |     1 +
 Testing/Data/Input/WhiteDots.png.md5               |     1 +
 Testing/Data/Input/WhiteDots.png.sha512            |     1 +
 Testing/Data/Input/cthead1-Float.mha.md5           |     1 +
 Testing/Data/Input/cthead1-Float.mha.sha512        |     1 +
 Testing/Data/Input/cthead1-dis1.nrrd.md5           |     1 +
 Testing/Data/Input/cthead1-dis1.nrrd.sha512        |     1 +
 Testing/Data/Input/cthead1-grad-mag.nrrd.md5       |     1 +
 Testing/Data/Input/cthead1-grad-mag.nrrd.sha512    |     1 +
 Testing/Data/Input/cthead1-ls-seed.nrrd.md5        |     1 +
 Testing/Data/Input/cthead1-ls-seed.nrrd.sha512     |     1 +
 Testing/Data/Input/cthead1-marker.png.md5          |     1 +
 Testing/Data/Input/cthead1-marker.png.sha512       |     1 +
 Testing/Data/Input/cthead1-mask.png.md5            |     1 +
 Testing/Data/Input/cthead1-mask.png.sha512         |     1 +
 Testing/Data/Input/cthead1-seed.png.md5            |     1 +
 Testing/Data/Input/cthead1-seed.png.sha512         |     1 +
 Testing/Data/Input/cthead1.png.md5                 |     1 +
 Testing/Data/Input/cthead1.png.sha512              |     1 +
 Testing/Data/Input/displacement.mha.md5            |     1 +
 Testing/Data/Input/displacement.mha.sha512         |     1 +
 Testing/Data/Input/fruit.png.md5                   |     1 +
 Testing/Data/Input/fruit.png.sha512                |     1 +
 Testing/Data/Input/noisy-vector-grid.nrrd.md5      |     1 +
 Testing/Data/Input/noisy-vector-grid.nrrd.sha512   |     1 +
 Testing/Data/Input/r16slice.nii.gz                 |   Bin 0 -> 66655 bytes
 Testing/Data/Input/r16slice_rigid.nii.gz           |   Bin 0 -> 67944 bytes
 Testing/Data/Input/r64slice.nii.gz                 |   Bin 0 -> 65623 bytes
 Testing/Data/Input/simple-label-b.png.md5          |     1 +
 Testing/Data/Input/simple-label-b.png.sha512       |     1 +
 Testing/Data/Input/simple-label-c.png.md5          |     1 +
 Testing/Data/Input/simple-label-c.png.sha512       |     1 +
 Testing/Data/Input/simple-label-d.png.md5          |     1 +
 Testing/Data/Input/simple-label-d.png.sha512       |     1 +
 Testing/Data/Input/simple-label-e.png.md5          |     1 +
 Testing/Data/Input/simple-label-e.png.sha512       |     1 +
 Testing/Data/Input/xforms/affine_i_3.txt.md5       |     1 +
 Testing/Data/Input/xforms/affine_i_3.txt.sha512    |     1 +
 Testing/Data/Input/xforms/composite_i_3.txt.md5    |     1 +
 Testing/Data/Input/xforms/composite_i_3.txt.sha512 |     1 +
 .../Input/xforms/displacement_-13x-17y.txt.md5     |     1 +
 .../Input/xforms/displacement_-13x-17y.txt.sha512  |     1 +
 Testing/Data/Input/xforms/i_3.txt.md5              |     1 +
 Testing/Data/Input/xforms/i_3.txt.sha512           |     1 +
 .../Data/Input/xforms/quaternion_rigid_i_3.txt.md5 |     1 +
 .../Input/xforms/quaternion_rigid_i_3.txt.sha512   |     1 +
 Testing/Data/Input/xforms/scale_i_3.txt.md5        |     1 +
 Testing/Data/Input/xforms/scale_i_3.txt.sha512     |     1 +
 .../Input/xforms/scale_logarithmic_i_3.txt.md5     |     1 +
 .../Input/xforms/scale_logarithmic_i_3.txt.sha512  |     1 +
 .../Data/Input/xforms/translation_-13x-17y.txt.md5 |     1 +
 .../Input/xforms/translation_-13x-17y.txt.sha512   |     1 +
 Testing/Data/Input/xforms/translation_i_3.txt.md5  |     1 +
 .../Data/Input/xforms/translation_i_3.txt.sha512   |     1 +
 Testing/Data/Input/xforms/versor_i_3.txt.md5       |     1 +
 Testing/Data/Input/xforms/versor_i_3.txt.sha512    |     1 +
 Testing/Unit/AdditionalTests.cmake                 |    89 +
 Testing/Unit/CMakeLists.txt                        |   299 +
 Testing/Unit/CSharpImageFilterTestTemplate.cs.in   |   197 +
 Testing/Unit/CSharpImageTest.cs                    |    96 +
 Testing/Unit/ConcurrentImageRead.py                |    86 +
 Testing/Unit/IOTest.py                             |    36 +
 Testing/Unit/IOTests.cxx                           |   186 +
 Testing/Unit/ImageFilterCTestTemplate.cmake.in     |   144 +
 Testing/Unit/ImageIndexingTest.py                  |   198 +
 Testing/Unit/JavaImageFilterTestTemplate.java.in   |   247 +
 Testing/Unit/LuaImageFilterTestTemplate.lua.in     |   157 +
 Testing/Unit/PythonImageFilterTestTemplate.py.in   |   117 +
 Testing/Unit/RArithmeticTest.R                     |   442 +
 Testing/Unit/RImageFilterTestTemplate.R.in         |   126 +
 Testing/Unit/RImageListArguments.R                 |    18 +
 Testing/Unit/RImageSlicingTests.R                  |   245 +
 Testing/Unit/RPixelAccess.R                        |   103 +
 Testing/Unit/RSwigVectorConversionTests.R          |    56 +
 Testing/Unit/RTransformTests.R                     |    43 +
 Testing/Unit/RubyImageFilterTestTemplate.rb.in     |   152 +
 Testing/Unit/SimpleITKTestHarness.cxx              |   164 +
 Testing/Unit/SimpleITKTestHarness.h                |   224 +
 Testing/Unit/SimpleITKTestHarnessPaths.h.in        |    26 +
 Testing/Unit/SimpleITKUnitTestDriver.cxx           |    49 +
 Testing/Unit/TclImageFilterTestTemplate.tcl.in     |   118 +
 Testing/Unit/itkHashImageFilterTest.cxx            |   200 +
 Testing/Unit/itkSliceImageFilterTest.cxx           |   368 +
 Testing/Unit/sitkBasicFiltersTests.cxx             |   914 +
 Testing/Unit/sitkCommonTests.cxx                   |   668 +
 Testing/Unit/sitkCompareDriver.cxx                 |   326 +
 Testing/Unit/sitkExceptionsTests.cxx               |   108 +
 Testing/Unit/sitkGetArrayViewFromImageTest.py      |   156 +
 Testing/Unit/sitkImage4DTests.cxx                  |   582 +
 Testing/Unit/sitkImageCompare.cxx                  |   332 +
 Testing/Unit/sitkImageCompare.h                    |   114 +
 Testing/Unit/sitkImageFilterTestTemplate.cxx.in    |   404 +
 Testing/Unit/sitkImageIOTests.cxx                  |   452 +
 Testing/Unit/sitkImageRegistrationMethodTests.cxx  |  1035 +
 Testing/Unit/sitkImageTests.cxx                    |  1669 +
 Testing/Unit/sitkImageTests.java                   |   198 +
 Testing/Unit/sitkImageTests.py                     |    83 +
 Testing/Unit/sitkImportImageTest.cxx               |   449 +
 Testing/Unit/sitkLabelStatisticsTest.cxx           |   150 +
 Testing/Unit/sitkNumpyArrayConversionTest.py       |   178 +
 Testing/Unit/sitkOperatorTests.cxx                 |   162 +
 Testing/Unit/sitkProcessObjectTest.java            |    31 +
 Testing/Unit/sitkProcessObjectTest.py              |    98 +
 Testing/Unit/sitkShowTest.cxx                      |   118 +
 Testing/Unit/sitkSystemInformationTest.cxx         |   164 +
 Testing/Unit/sitkTransformCompare.cxx              |    79 +
 Testing/Unit/sitkTransformCompare.h                |    50 +
 Testing/Unit/sitkTransformTests.cxx                |  2174 +
 .../sitkTransformToDisplacementFieldFilterTest.cxx |   131 +
 Testing/Unit/sitkTypeListsTests.cxx                |    87 +
 UseSimpleITK.cmake.in                              |    12 +
 Utilities/ApplyApacheLicense.sh                    |   128 +
 Utilities/C99/CMakeLists.txt                       |     3 +
 Utilities/C99/inttypes.h                           |   305 +
 Utilities/C99/stdint.h                             |   247 +
 Utilities/CMakeLists.txt                           |     1 +
 Utilities/CSVtoTable.py                            |   191 +
 Utilities/CompareITKandSITKFilters.py              |   308 +
 Utilities/DevelopmentSetupScripts/GitTips.sh       |    63 +
 Utilities/DevelopmentSetupScripts/SetupGerrit.sh   |   116 +
 .../DevelopmentSetupScripts/SetupGitAliases.sh     |    49 +
 Utilities/DevelopmentSetupScripts/SetupHooks.sh    |    74 +
 .../DevelopmentSetupScripts/SetupTopicStage.sh     |   113 +
 Utilities/DevelopmentSetupScripts/SetupUser.sh     |    64 +
 Utilities/Distribution/manylinux/Dockerfile-i686   |    14 +
 Utilities/Distribution/manylinux/Dockerfile-x86_64 |    13 +
 Utilities/Distribution/manylinux/imagefiles/cmd.sh |    83 +
 .../Distribution/manylinux/imagefiles/install.sh   |    60 +
 Utilities/Distribution/manylinux/run.sh            |    23 +
 Utilities/Doxygen/Doxygen.cmake                    |    78 +
 Utilities/Doxygen/GenerateExamplesDox.cmake        |    35 +
 Utilities/Doxygen/ITKDoxygenTags.cmake             |    39 +
 Utilities/Doxygen/doxygen.config.in                |  2379 +
 Utilities/GenerateDocs/GenerateDoc.py              |   240 +
 Utilities/GenerateDocs/JSONDocUpdate.sh            |    33 +
 Utilities/GenerateDocs/README                      |    25 +
 Utilities/GenerateDocs/SwigDocUpdate.sh            |    35 +
 Utilities/GenerateDocs/config_vars.sh              |     9 +
 Utilities/GenerateDocs/doxy2swig.py                |   736 +
 Utilities/GenerateDocs/doxyall.py                  |   150 +
 Utilities/Git/git-gerrit-push                      |    79 +
 Utilities/Hooks/pre-commit                         |   107 +
 Utilities/Hooks/pre-commit-style.bash              |   266 +
 Utilities/Hooks/prepare-commit-msg                 |    47 +
 Utilities/JSON/JSONBeautify.py                     |    25 +
 Utilities/JSON/JSONInputAtoInputs.py               |    56 +
 Utilities/JSON/JSONUpdateITKModules.py             |   102 +
 Utilities/JSON/JSONValidate.py                     |    14 +
 Utilities/KWStyle/CMakeLists.txt                   |     0
 Utilities/KWStyle/KWStyle.cmake                    |   112 +
 Utilities/KWStyle/SITK.kws.xml.in                  |    17 +
 Utilities/KWStyle/SITKFiles.txt.in                 |    18 +
 Utilities/KWStyle/SITKOverwrite.txt                |     0
 .../Maintenance/ContentLinkSynchronization.sh      |   111 +
 Utilities/Maintenance/JIRAHTMLReleaseNoteToWiki.py |   112 +
 Utilities/Maintenance/SourceTarball.bash           |   239 +
 Utilities/ParseForExplicitInstantiation.py         |   254 +
 Utilities/SetupForDevelopment.sh                   |   148 +
 Utilities/UploadBinaryData.py                      |   206 +
 Utilities/filters.csv                              |   388 +
 Version.cmake                                      |    40 +
 Wrapping/CMakeLists.txt                            |    54 +
 Wrapping/CSharp/AssemblyInfo.cs.in                 |    33 +
 Wrapping/CSharp/CMakeLists.txt                     |   103 +
 Wrapping/CSharp/CSharp.i                           |   268 +
 Wrapping/CSharp/CSharpTypemapHelper.i              |    55 +
 Wrapping/CSharp/SimpleITK.i                        |     2 +
 Wrapping/CSharp/dist/CMakeLists.txt                |    66 +
 Wrapping/Common/SimpleITK_Common.i                 |   210 +
 Wrapping/Java/CMakeLists.txt                       |    83 +
 Wrapping/Java/Java.i                               |    47 +
 Wrapping/Java/JavaDoc.i                            | 50519 +++++++++++++++++++
 Wrapping/Java/SimpleITK.i                          |     1 +
 Wrapping/Java/dist/CMakeLists.txt                  |    75 +
 Wrapping/Lua/CMakeLists.txt                        |    50 +
 Wrapping/Lua/Lua.i                                 |    26 +
 Wrapping/Lua/SimpleITK.i                           |     1 +
 Wrapping/Lua/SimpleITKLuaMain.cxx                  |   429 +
 Wrapping/Python/CMakeLists.txt                     |   109 +
 Wrapping/Python/LegacyPackaging.cmake              |   104 +
 Wrapping/Python/Packaging/__init__.py              |     1 +
 Wrapping/Python/Packaging/setup.py.in              |   107 +
 Wrapping/Python/Packaging/setupegg.py              |    17 +
 Wrapping/Python/Python.i                           |   815 +
 Wrapping/Python/PythonDocstrings.i                 | 40210 +++++++++++++++
 Wrapping/Python/PythonVirtualEnvInstall.cmake.in   |   114 +
 Wrapping/Python/SimpleITK.i                        |     3 +
 Wrapping/Python/dist/CMakeLists.txt                |    40 +
 Wrapping/Python/dist/install_wheel.py              |     5 +
 Wrapping/Python/sitkNumpyArrayConversion.cxx       |   339 +
 Wrapping/Python/sitkPyCommand.cxx                  |   142 +
 Wrapping/Python/sitkPyCommand.h                    |    81 +
 Wrapping/Python/sitkPython.h                       |    82 +
 Wrapping/R/CMakeLists.txt                          |   134 +
 Wrapping/R/Packaging/SimpleITK/DESCRIPTION.in      |    17 +
 Wrapping/R/Packaging/SimpleITK/NAMESPACE           |     1 +
 Wrapping/R/Packaging/SimpleITK/R/zA.R              |   249 +
 Wrapping/R/Packaging/SimpleITK/R/zOps.R            |   192 +
 .../Packaging/SimpleITK/data/cthead1-Float.mha.md5 |     1 +
 .../SimpleITK/data/cthead1-Float.mha.sha512        |     1 +
 .../R/Packaging/SimpleITK/data/cthead1.png.md5     |     1 +
 .../R/Packaging/SimpleITK/data/cthead1.png.sha512  |     1 +
 .../SimpleITK/inst/doc/SimpleITK_tutorial.pdf      |   Bin 0 -> 515220 bytes
 .../SimpleITK/man/SimpleITK_Image-class.Rd         |   106 +
 .../Packaging/SimpleITK/man/sitkRdfiles.tar.gz.md5 |     1 +
 Wrapping/R/Packaging/SimpleITK/src/Makefile        |     6 +
 .../SimpleITK/vignettes/InsightArticle.cls         |   153 +
 .../SimpleITK/vignettes/InsightJournal.sty         |  1123 +
 .../SimpleITK/vignettes/SimpleITK_tutorial.Rnw     |   260 +
 .../R/Packaging/SimpleITK/vignettes/algorithm.sty  |    78 +
 .../Packaging/SimpleITK/vignettes/algorithmic.sty  |   143 +
 .../R/Packaging/SimpleITK/vignettes/amssymb.sty    |   285 +
 .../R/Packaging/SimpleITK/vignettes/fancyhdr.sty   |   329 +
 .../R/Packaging/SimpleITK/vignettes/floatflt.sty   |   348 +
 .../R/Packaging/SimpleITK/vignettes/fncychap.sty   |   431 +
 Wrapping/R/Packaging/SimpleITK/vignettes/jss.cls   |   467 +
 Wrapping/R/Packaging/SimpleITK/vignettes/times.sty |    32 +
 .../R/Packaging/SimpleITK/vignettes/upquote.sty    |    76 +
 Wrapping/R/R.i                                     |   273 +
 Wrapping/R/SimpleITK.i                             |     3 +
 Wrapping/R/rrun.swg                                |   376 +
 Wrapping/R/sitkRArray.cxx                          |   196 +
 Wrapping/R/sitkRCommand.cxx                        |   123 +
 Wrapping/R/sitkRCommand.h                          |    99 +
 Wrapping/Ruby/CMakeLists.txt                       |    25 +
 Wrapping/Ruby/Ruby.i                               |    30 +
 Wrapping/Ruby/SimpleITK.i                          |     1 +
 Wrapping/Tcl/CMakeLists.txt                        |    32 +
 Wrapping/Tcl/SimpleITK.i                           |     1 +
 Wrapping/Tcl/Tcl.i                                 |    27 +
 circle.yml                                         |    45 +
 .../MD5/0018a552a6a1f951943a6e7bbce24d04           |   Bin 0 -> 909029 bytes
 .../MD5/00da43039a19ec8777cd493efccb16d9           |   Bin 0 -> 16131 bytes
 .../MD5/013c84e2b924eb8ff658b75ba63b989c           |   Bin 0 -> 4807 bytes
 .../MD5/020ea32135e137235cb3031607fca59a           |   Bin 0 -> 39921 bytes
 .../MD5/023dc8f62b17cf627f55cfbb28fec730           |   Bin 0 -> 629 bytes
 .../MD5/02744de5f4990b6b61556b1447739263           |   Bin 0 -> 5475 bytes
 .../MD5/034e616e71ade1535cba4a77180ad79d           |   Bin 0 -> 708698 bytes
 .../MD5/03f553511c60c0f3d8aa7637e446a237           |   Bin 0 -> 563238 bytes
 .../MD5/05336a7e84d56f110741f46b38163a8c           |   Bin 0 -> 722 bytes
 .../MD5/059a97d1e6f0a9b05162b9b44a2fd786           |   Bin 0 -> 909058 bytes
 .../MD5/068f40a06b09350a7d019198165bf44c           |   Bin 0 -> 88743 bytes
 .../MD5/07106ed67d0da496856c7a2a8daf7125           |   Bin 0 -> 909058 bytes
 .../MD5/073df8eb397d1746d2343c78dd4bd964           |   Bin 0 -> 27797 bytes
 .../MD5/08059625205b2c39e14d636aa9d29520           |   Bin 0 -> 235193 bytes
 .../MD5/083918d2115d313927180b088e8147d4           |   Bin 0 -> 520515 bytes
 .../MD5/0866419dc414715fddc551d6a30fd423           |   Bin 0 -> 140308 bytes
 .../MD5/08a33cd9429e453c57eeb8ff242cc489           |     5 +
 .../MD5/095fd41dca46f9651e623c62aec8989e           |     5 +
 .../MD5/0ab6f55004ed273f0666b5d03cb4c95b           |     5 +
 .../MD5/0afc39fa47bc5582f6de48d3273c39e2           |   Bin 0 -> 909058 bytes
 .../MD5/0e8d3a203f0c1fc585b15717d5771cad           |   Bin 0 -> 262442 bytes
 .../MD5/1034591338d279a4904bb87a670943a2           |   Bin 0 -> 13572 bytes
 .../MD5/103bda839c77c0fafac2cc0ef3fc3a6e           |   Bin 0 -> 636 bytes
 .../MD5/11bda04eb63e37b655cd8a21bb2d01ac           |   Bin 0 -> 1950070 bytes
 .../MD5/1251f0509f87a61589353b2dc7cb4670           |   Bin 0 -> 909029 bytes
 .../MD5/146051c2bf30cf847f88fce59fba4ff7           |   Bin 0 -> 40262 bytes
 .../MD5/146277cf45f28feffc9e2a18b97ccbf3           |   Bin 0 -> 8595 bytes
 .../MD5/1473956c389899d311c837105532618e           |   Bin 0 -> 15493 bytes
 .../MD5/1517e9756dfcb07633b00b575edc3766           |   Bin 0 -> 15240 bytes
 .../MD5/15d4c05e69d3fb2e5bc879fd7190a440           |     5 +
 .../MD5/1682d737596d036a1d8d62755bdc0554           |   Bin 0 -> 65827 bytes
 .../MD5/19e2eefeaf79b3a1eeafed0f8e53abd1           |   Bin 0 -> 13636 bytes
 .../MD5/1b5092c4cb11f846977f1fc175accd3c           |   Bin 0 -> 9512 bytes
 .../MD5/1cbe1c6627fe6d1429e783a88756ebe4           |   Bin 0 -> 12939 bytes
 .../MD5/1dd7f6cc56938b1b1f3b06a2a5e45dbb           |   Bin 0 -> 12723 bytes
 .../MD5/1eff97fdb9d327928b7176d17f63782d           |   Bin 0 -> 12960 bytes
 .../MD5/1fc06256e3ad4d5f0f45a7e152f7021a           |   Bin 0 -> 412056 bytes
 .../MD5/20538107d92959f43c25d0d776974d2f           |   Bin 0 -> 191887 bytes
 .../MD5/231f8de5271265dbcc49bac754ae1ad8           |   Bin 0 -> 9512 bytes
 .../MD5/238556b8f784284b64aec7259b1568a5           |   Bin 0 -> 2359632 bytes
 .../MD5/2386d6ea4c8958e0b4f6b82d28a4fc00           |   Bin 0 -> 65840 bytes
 .../MD5/239d33db0b6f03fdceb9b4807460a81d           |   Bin 0 -> 45347 bytes
 .../MD5/25de5707b18c0c684fd5fa30351bf787           |   Bin 0 -> 51325 bytes
 .../MD5/282c1cc32168ee4c55e88c9006743277           |   Bin 0 -> 56280 bytes
 .../MD5/283531b2b58b124c0eefb8bac36347e1           |   Bin 0 -> 361633 bytes
 .../MD5/287c913079332c7d924143fd0601038e           |   Bin 0 -> 262442 bytes
 .../MD5/2a0f8ee9d1d0f30855771c49d868d8d4           |   Bin 0 -> 13675 bytes
 .../MD5/2b8f66caa1b6dd0b945e579357c0517f           |   Bin 0 -> 65833 bytes
 .../MD5/2bae98b0565eaaa7f6ccc49d3490ddda           |   Bin 0 -> 520525 bytes
 .../MD5/2bbf15c53a6e9d1e5d9b6912ebac7f2f           |   Bin 0 -> 52292 bytes
 .../MD5/2c7d2a654961d2b9d1d997d1f20e2ed2           |   Bin 0 -> 8594 bytes
 .../MD5/2d1218cbfb433ab0412b90ac26702136           |   Bin 0 -> 1596 bytes
 .../MD5/2de60c03217b0e6684b8a69bdfe48ec3           |   Bin 0 -> 120284 bytes
 .../MD5/2e0a58005a74a02147c5e0517615ce58           |    53 +
 .../MD5/2f2b1eb279357c2bdd75f70a865bdb40           |   Bin 0 -> 250262 bytes
 .../MD5/2f356fdb6b9229d3c14599e19b5d5bae           |   Bin 0 -> 936850 bytes
 .../MD5/2f9abc34f4ae45e2347f940df04b9ed6           |   Bin 0 -> 600875 bytes
 .../MD5/3050849aa59e82b6f1905fd7ebabf73a           |   Bin 0 -> 220054 bytes
 .../MD5/30e08f2e5cf9126e2a09707c25507a74           |   Bin 0 -> 1322520 bytes
 .../MD5/31995770b31eaeb212ebf59695e5f250           |   Bin 0 -> 60271 bytes
 .../MD5/324b302006c8897110167b794a1ff65e           |   Bin 0 -> 1931 bytes
 .../MD5/34592e2640fe5f18ec00c2e1792e2ed4           |   Bin 0 -> 1385 bytes
 .../MD5/35ab8690ee1e1ca4bfce40c7950770af           |   Bin 0 -> 12695 bytes
 .../MD5/35acd568f8ca9324e0e7346a77f255fc           |   Bin 0 -> 7414 bytes
 .../MD5/35c331f3f43dfe1dd5f3825b0d2707ef           |   Bin 0 -> 59803 bytes
 .../MD5/368b198113c8125237b7a1a3ffbf6c2f           |   Bin 0 -> 600875 bytes
 .../MD5/36ba9922bf82a81692198a126ead8cc4           |   Bin 0 -> 46761 bytes
 .../MD5/378c52e56aa415145da3dd085c97d881           |   Bin 0 -> 23415 bytes
 .../MD5/39b1d744b15679e43c40fb21c3057ff0           |   Bin 0 -> 262442 bytes
 .../MD5/3a1d580c01b3ac705fefc280f3947d3a           |   Bin 0 -> 16786 bytes
 .../MD5/3b6925c5797024cf3e433642f96caf05           |   Bin 0 -> 80276 bytes
 .../MD5/3b6e25b80225dafaacfdbf233f36b9b7           |   Bin 0 -> 348 bytes
 .../MD5/3b9bdb244fbf030c83a034f71ac46f8a           |   Bin 0 -> 43011 bytes
 .../MD5/3bd4fa6ee34378b2318dd9bf55a2b8df           |   Bin 0 -> 457 bytes
 .../MD5/3c2ba33cff5fd6e7ba9d9a396d55ecb1           |   Bin 0 -> 909058 bytes
 .../MD5/3cade3f7b90d71d1020ee024a01ce15f           |   Bin 0 -> 52162 bytes
 .../MD5/3dc1d9ebe8e603598bf2f55b996e7f3e           |    14 +
 .../MD5/3e15c3bc5d5ccdb290dce33e03a42644           |   Bin 0 -> 53524 bytes
 .../MD5/3ef93ff5e8a4eb690d487aeb8fca7e5d           |   Bin 0 -> 422316 bytes
 .../MD5/404c49e9e4caec16efea719d8d061b02           |   Bin 0 -> 11786 bytes
 .../MD5/40a0feefdbb30c6f852f5c6f0d1814b9           |   Bin 0 -> 3572 bytes
 .../MD5/434dabc647640c80c239440b49e8ee13           |     7 +
 .../MD5/44b4327d5dfb341dfda56391d1a9d261           |   Bin 0 -> 114187 bytes
 .../MD5/46b46ab71376789e5e998d0591f08818           |   Bin 0 -> 200 bytes
 .../MD5/46c83ad189ea2e0800e7df0f1d4c0025           |   Bin 0 -> 8497 bytes
 .../MD5/49129770e7152ea5d203a519ac17be43           |   Bin 0 -> 616600 bytes
 .../MD5/4a91cbab8f591cb6a7799136de3f39b6           |   Bin 0 -> 2556 bytes
 .../MD5/4b3eeb33cfe1f4e2a8e3df5cbe185c7e           |   Bin 0 -> 13173 bytes
 .../MD5/4cec8cbcd795d40d7be1c3d920e1e024           |   Bin 0 -> 169 bytes
 .../MD5/4ced84b250c6799a472f569779022044           |   Bin 0 -> 27311 bytes
 .../MD5/4fab0a2cf4b9c8805dee5076be1829f8           |   Bin 0 -> 629 bytes
 .../MD5/504b5fe9ee6273fa5e40d7f31ae50ff7           |   Bin 0 -> 412930 bytes
 .../MD5/50e6c855fcee80a195980421bdd71140           |   Bin 0 -> 16786 bytes
 .../MD5/50feae81e860de04a3d7fa29b74442cb           |   Bin 0 -> 399 bytes
 .../MD5/53b68a3bc02def098ac1cd38b28b494a           |   Bin 0 -> 520515 bytes
 .../MD5/55d916b5b65201c6e9c5d362899bc808           |   Bin 0 -> 2538 bytes
 .../MD5/55dacdce3013e4e086cb5a3e3bdfd2f9           |   Bin 0 -> 15351 bytes
 .../MD5/573fda07c579e017396b4e6ff0e53f42           |   Bin 0 -> 98615 bytes
 .../MD5/58a3778027be2dc4471258a6da94b7b2           |   Bin 0 -> 56111 bytes
 .../MD5/58e10b6898a5d5271a890eecf25093c2           |   Bin 0 -> 146139 bytes
 .../MD5/591eeda7a3b79c067532360bf069ee3e           |   Bin 0 -> 1418 bytes
 .../MD5/5a9cdc76f66bb911460cb99f14955a6f           |   Bin 0 -> 446358 bytes
 .../MD5/5cefe54ac1a93a84be84480875e7c6de           |   Bin 0 -> 10898 bytes
 .../MD5/5df678da0f93c87e7d1db59f2a3ad3cb           |   Bin 0 -> 52134 bytes
 .../MD5/607fda60a271c0963ecba199a546d439           |   Bin 0 -> 262406 bytes
 .../MD5/610392a128986d934dfc0a1b0dc27e91           |   Bin 0 -> 32560 bytes
 .../MD5/62f8f57ba22917a9ad2aa4d120d12fa9           |   Bin 0 -> 909058 bytes
 .../MD5/646be5659d98e7cef40b63b3dff86726           |   Bin 0 -> 973 bytes
 .../MD5/64bdbe959708265931c62b9b90df3e61           |   Bin 0 -> 524587 bytes
 .../MD5/6579847e807d468278a56c289eb28288           |   Bin 0 -> 232276 bytes
 .../MD5/6672c754701745de1f6aced9cb16e31b           |   Bin 0 -> 16214 bytes
 .../MD5/66ee861a199ef23e7a6392ca162b3da1           |   Bin 0 -> 909029 bytes
 .../MD5/67a71e63921eb2f08f816a51983e3ef2           |   Bin 0 -> 29773 bytes
 .../MD5/67ff0f7e48928916bdec4f7afd5e4574           |   Bin 0 -> 2359632 bytes
 .../MD5/68d9fb40ae60af52190f347dbecbbab7           |   Bin 0 -> 808036 bytes
 .../MD5/6ab6025929136899d3e3f91fe62fae15           |   Bin 0 -> 250262 bytes
 .../MD5/6aff753cb0e5e8c56ad170fa4bcdc1e8           |   Bin 0 -> 739207 bytes
 .../MD5/6ce23a65b0e176d3d1bf2ea68c2f7033           |     5 +
 .../MD5/6d5d80a2ea307fa15d41aaabad466751           |   Bin 0 -> 2726 bytes
 .../MD5/6d7b447232907ddf7b898b94b688416a           |   Bin 0 -> 7533 bytes
 .../MD5/6e882edcffbc57024eedd35334c0142f           |   Bin 0 -> 12101 bytes
 .../MD5/6f397b22835e552c14d762e5ff73c288           |   Bin 0 -> 543296 bytes
 .../MD5/736f80072fcc908bacd2b9f640f6d5a0           |   Bin 0 -> 16793 bytes
 .../MD5/73f7d156b10ce68e871f05fab2dc6de2           |   Bin 0 -> 909029 bytes
 .../MD5/744f66e30e2f58b4909a583a9594becf           |    15 +
 .../MD5/74e30f08e9cd6d28a9dcf26533b57aef           |   Bin 0 -> 2874 bytes
 .../MD5/757eefaf9501ba4b43c64459d705891f           |   Bin 0 -> 13675 bytes
 .../MD5/75c41e20d6af0ec74e407348fabf8724           |   Bin 0 -> 160306 bytes
 .../MD5/76eef439e0eb023945d94c1bb656948e           |   Bin 0 -> 250262 bytes
 .../MD5/779451803d29db0bf6e342010bf1b0b5           |   Bin 0 -> 52122 bytes
 .../MD5/788099cb89927e7a5039313cc8476388           |   Bin 0 -> 250262 bytes
 .../MD5/79670de66f750e0b67432f80faf020ff           |   Bin 0 -> 909058 bytes
 .../MD5/79987be0aa720216d2adb8c896c59a05           |   Bin 0 -> 30517 bytes
 .../MD5/7a86f3b164dae7684d2e5c40399028fe           |   Bin 0 -> 15316 bytes
 .../MD5/7a985895c1f926118dee50aef12856ef           |   Bin 0 -> 15131 bytes
 .../MD5/7ad00981b969c430ad7247c95eaefb95           |   Bin 0 -> 962191 bytes
 .../MD5/7b2072f5318f1e8022e6253ffc65404e           |   Bin 0 -> 909058 bytes
 .../MD5/7c29e6e4ecf6135edd6a2170f6e98a5f           |   Bin 0 -> 51962 bytes
 .../MD5/7d88b6fe5235d1d27ade4bde1f67710d           |   748 +
 .../MD5/7dd22432002df480c761923405e82097           |   Bin 0 -> 909058 bytes
 .../MD5/81865a31269864cb5aad15b42de57549           |   Bin 0 -> 366435 bytes
 .../MD5/838e98cdf86af069ff66c078ac3e0dd9           |   Bin 0 -> 205173 bytes
 .../MD5/8484d918ce9f99837e96d7efeba7e848           |   Bin 0 -> 16787 bytes
 .../MD5/8521ac77f502bfe853eafc59570140b3           |   Bin 0 -> 15850 bytes
 .../MD5/85f1400b374d38312d03dc8acb874b7c           |   Bin 0 -> 909029 bytes
 .../MD5/862d9806e7d6fced2ac0c06d52925b72           |   Bin 0 -> 234 bytes
 .../MD5/887994459da44cf9fb4f3f0db2987d29           |   Bin 0 -> 1899 bytes
 .../MD5/8997bfcb80a429e089709b291e5b4ba2           |    13 +
 .../MD5/8d6e12a750d16132a397bdcd1d0dee01           |   Bin 0 -> 365282 bytes
 .../MD5/93de39d24dd71864c1afee13f9418d40           |   Bin 0 -> 22545 bytes
 .../MD5/9413fa5d446c05593a53f810e3ddc241           |   Bin 0 -> 32766 bytes
 .../MD5/94241ced01d7cff864c6371b9f68bf72           |   Bin 0 -> 140308 bytes
 .../MD5/95c844603b837c1f84805e4b5acf5241           |   Bin 0 -> 447 bytes
 .../MD5/96718455b11636c22aeb2c208dd2006d           |   Bin 0 -> 14529 bytes
 .../MD5/970cd3c90e677e4422923cef5cdf61b3           |   Bin 0 -> 51064 bytes
 .../MD5/977d220e392168a93607c4d0e88347a5           |   Bin 0 -> 49462 bytes
 .../MD5/97e5a051efb6d8691f867958da58baa4           |   Bin 0 -> 191 bytes
 .../MD5/9967b9c9bae3af9c3aac9676663ee05d           |   Bin 0 -> 21249 bytes
 .../MD5/9a10eeacd4f926ea94bbe00c45448136           |   Bin 0 -> 1165461 bytes
 .../MD5/9b4b931636f25786ee9e13436f26a5b7           |   Bin 0 -> 36553 bytes
 .../MD5/9d7295e53861e4fa19b5abf9cda5df5e           |   Bin 0 -> 250262 bytes
 .../MD5/9dd64abe00b86a82b88bf46a9d3f3e9c           |   Bin 0 -> 250262 bytes
 .../MD5/a0afe9d9aaf61b334a8635bd08ec65ba           |   Bin 0 -> 104525 bytes
 .../MD5/a0cf117c18fcfed8431636dfb3a8c7aa           |   Bin 0 -> 1048896 bytes
 .../MD5/a4a7aac9f929f9e19f8b78c7f0cc82d7           |   Bin 0 -> 360836 bytes
 .../MD5/a53598c8213ff83630739e1ab1621b2f           |     5 +
 .../MD5/a53e9c3e966e96cdb71ca93ffac8f621           |   Bin 0 -> 131370 bytes
 .../MD5/a55260196088347b84534faeed9d8233           |     5 +
 .../MD5/a5f3879544aa56e12bfa2d3f7fdf155b           |   Bin 0 -> 1456 bytes
 .../MD5/a64bdaa642e3d5bd40ef15a27c73d4f4           |   Bin 0 -> 188915 bytes
 .../MD5/a6659d27180f14085a5f4db3563c0557           |   Bin 0 -> 12164 bytes
 .../MD5/a69e5de3e1082e4ab8a02adf3b4e41f9           |   Bin 0 -> 65827 bytes
 .../MD5/a7dc892acf626377065878b38b99ca54           |   Bin 0 -> 2095349 bytes
 .../MD5/a838f534dd1645e01e85cd813994c456           |   Bin 0 -> 262406 bytes
 .../MD5/a96ab975b6dcca318a554ae586e77bcc           |   Bin 0 -> 59796 bytes
 .../MD5/ac3b7df50e79bdbb67ff8b89263f03f3           |   Bin 0 -> 13647 bytes
 .../MD5/ac608d7f74d0574a7a43f53104cef7c5           |   Bin 0 -> 506 bytes
 .../MD5/acad12ef7a397be141336e872a74aa72           |   Bin 0 -> 75828 bytes
 .../MD5/ade10e95c97fdc72399e210bc77e1a27           |   Bin 0 -> 250262 bytes
 .../MD5/aef2e096cc43fb1e19147936b01722fa           |   Bin 0 -> 362099 bytes
 .../MD5/aefe3f464f648d6c51d8b46fe8e67cad           |   Bin 0 -> 12411 bytes
 .../MD5/b040816b6e4da7984bf0187944789163           |   Bin 0 -> 39844 bytes
 .../MD5/b1d283e9edf5ff174f6e61a5cec6a1d8           |   Bin 0 -> 95443 bytes
 .../MD5/b23198c9e44a48edfd5b83f075eb455c           |   Bin 0 -> 29351 bytes
 .../MD5/b5019ba71afd28fb7424ed39e850ef23           |   Bin 0 -> 393542 bytes
 .../MD5/b513a975094f16472f5c9b6713a72c60           |   Bin 0 -> 1123 bytes
 .../MD5/b5c69b60a6feccda5b65773ae3ddee58           |   Bin 0 -> 1239672 bytes
 .../MD5/b6ad0c0c35458afeb93dd0b1d46679dc           |     5 +
 .../MD5/b7634fc4ab8598e937f2245d15f4155c           |   Bin 0 -> 375105 bytes
 .../MD5/b76b61c345883fc9870a1ec9839bdf08           |   Bin 0 -> 524600 bytes
 .../MD5/b7bd29a3ad27c03d22bb1877e51b5922           |   Bin 0 -> 14134 bytes
 .../MD5/b8467e10c1f01ca47ab25324f95a1a00           |   Bin 0 -> 881772 bytes
 .../MD5/baff8620519e23330f77c65b0fe5bc01           |   Bin 0 -> 181889 bytes
 .../MD5/bbe245e3cbf925edcf5d023203bd6b82           |   Bin 0 -> 7533 bytes
 .../MD5/bcae996a3cce0bf203c7a737297991df           |   Bin 0 -> 457726 bytes
 .../MD5/bdd72f979216f08500f7356cc3c6b4a2           |   Bin 0 -> 13387 bytes
 .../MD5/bfa527fe87f6938731546a2323955ba2           |   Bin 0 -> 53616 bytes
 .../MD5/c049894935864bd2fef8e5d254d3b242           |   Bin 0 -> 89799 bytes
 .../MD5/c152ebd08f40d65ddb9214fe2acc721e           |   Bin 0 -> 109512 bytes
 .../MD5/c17e5e3e68062a94a9785e2fe603bd39           |   Bin 0 -> 40262 bytes
 .../MD5/c1fedbb3a9c8093fcb0d0c4e74da3239           |   Bin 0 -> 8594 bytes
 .../MD5/c24561fcdefaa7af0e650f55994fb96d           |   Bin 0 -> 362357 bytes
 .../MD5/c2e73eb99072452592ad9ab566d6c5d5           |   Bin 0 -> 12037 bytes
 .../MD5/c480d7f2e7659c12e42895af1593084d           |   Bin 0 -> 7555 bytes
 .../MD5/c4abe94c3c280f5074fcfd9bcc402330           |   Bin 0 -> 13175 bytes
 .../MD5/c4d636321830bfbf1a623d315a45cb2d           |   Bin 0 -> 672 bytes
 .../MD5/c5a88626e8461cf03934ea67f2532b87           |   Bin 0 -> 22513 bytes
 .../MD5/c6032ffd5d006e092204d195d5bd7f66           |   Bin 0 -> 7790 bytes
 .../MD5/c62ce79035715645be603a8bd7e19eb5           |   Bin 0 -> 909029 bytes
 .../MD5/c72fda16dbac9167962b871a539def78           |   Bin 0 -> 8327 bytes
 .../MD5/c7c25f7ac51ca4634858303986832dea           |   Bin 0 -> 39534 bytes
 .../MD5/c9516efe9e3167ae67ee3d015c9a3d0e           |   Bin 0 -> 467876 bytes
 .../MD5/caee43bdb17214e9ad9e3b64c16dfb70           |   Bin 0 -> 909029 bytes
 .../MD5/cb1101685e7d817ee6be4eeb948a76dd           |   Bin 0 -> 111380 bytes
 .../MD5/ccc05a53f8c4a7f74b75a07b2cfba7b1           |   Bin 0 -> 140308 bytes
 .../MD5/cf18602654ef1943c877bd9ccf3de40b           |   Bin 0 -> 97905 bytes
 .../MD5/cfdad459f24d9d60ec490206fc8478f6           |   Bin 0 -> 13088 bytes
 .../MD5/d34537916d8ca912bf7632d2353b595f           |   Bin 0 -> 54599 bytes
 .../MD5/d3568c0d5c44afedb78305f620c0a79b           |   Bin 0 -> 21152 bytes
 .../MD5/d3713fc4b100da700ff3c0d90b9af229           |   Bin 0 -> 29995 bytes
 .../MD5/d3e41fb89c9fd36d0c55e51450794d25           |   Bin 0 -> 250262 bytes
 .../MD5/d4ca7f23ff5fc72c52ef3ad37d10f2cb           |   Bin 0 -> 198 bytes
 .../MD5/d924c8865957a8b9be899ed66dd438de           |   Bin 0 -> 80305 bytes
 .../MD5/dc36e35d7b966829f3a6ec4d870a3a9a           |   Bin 0 -> 65834 bytes
 .../MD5/dc79562f168bdda5fd3743c6adf997e9           |   Bin 0 -> 16786 bytes
 .../MD5/df1d5f49dfcf581cbcd866709840c1e8           |   Bin 0 -> 442569 bytes
 .../MD5/df7e6ed58e1c53243307c34a909cb1f5           |   Bin 0 -> 250262 bytes
 .../MD5/e06d0a2bdb16ac6ed5ceb5618e88d5e6           |   Bin 0 -> 202 bytes
 .../MD5/e1dfe637c7781e1022488e884c516148           |   Bin 0 -> 13603 bytes
 .../MD5/e25c66ea26dce2141c7857ee05392857           |   Bin 0 -> 632 bytes
 .../MD5/e26a86d2559079cdc629ba67864598f2           |   Bin 0 -> 515801 bytes
 .../MD5/e4d82f1b622fb34fbfe17cffbb3b3af2           |   Bin 0 -> 10250 bytes
 .../MD5/ecc217e9396303e2bf0fcba322d6ef28           |   Bin 0 -> 117337 bytes
 .../MD5/eefa617b3220c1cea47bdc4672541b2d           |   Bin 0 -> 26004 bytes
 .../MD5/ef7843afe869fa10a70e6a431976d9aa           |   Bin 0 -> 909029 bytes
 .../MD5/efae3d661dd824cf11d6233e0c00889f           |     5 +
 .../MD5/efd7cf9f6ce3b3e7e235413092371873           |   Bin 0 -> 857963 bytes
 .../MD5/efdb1c71a617fbfea06d2f748417b9de           |   Bin 0 -> 1105 bytes
 .../MD5/f0998498df32e1321a045082a0e5000c           |   Bin 0 -> 909058 bytes
 .../MD5/f1c92a79d9ef24a6fdaa8f43bd4bb3c5           |   Bin 0 -> 5229 bytes
 .../MD5/f218d9b9ffff761bb35fffe099237ca7           |   Bin 0 -> 80276 bytes
 .../MD5/f535d9da1587b8e3546118f54513b10b           |   Bin 0 -> 15449 bytes
 .../MD5/f6725d2a11a1d934b1a22f7cfec8a215           |   Bin 0 -> 13686 bytes
 .../MD5/f7305c52c69b75f737eb6364497024ff           |   Bin 0 -> 16786 bytes
 .../MD5/fa5962abbcfb984aaf42774a81457fed           |   Bin 0 -> 30288 bytes
 .../MD5/fb9b000917392dc835a7c45f686f7a23           |   Bin 0 -> 51184 bytes
 .../MD5/fc0ec7b3808f1c906b9c3450852fb68e           |   Bin 0 -> 31178 bytes
 .../MD5/fd0136d5fd3f708d8d9712fe796385be           |   Bin 0 -> 29883 bytes
 .../MD5/fd4e809e6b2529292e15e3e02773be37           |   Bin 0 -> 615 bytes
 .../MD5/fda191030c45a5f88166c98ba6fc0d90           |   Bin 0 -> 379118 bytes
 .../MD5/fe1150a03de8937341b470a52ab6fd28           |   Bin 0 -> 120284 bytes
 .../MD5/fe2ea78da192cf9dc2eb1826063e761b           |   Bin 0 -> 262442 bytes
 .../MD5/fe9a10248552ef1f122ef76ee2fc081e           |   Bin 0 -> 909029 bytes
 .../MD5/ff9e33e423f9ff38944cc05982b9eea9           |   Bin 0 -> 3146156 bytes
 .../MD5/fff3603333662de0b5344531810017d8           |   Bin 0 -> 109085 bytes
 data/.ExternalData/README.rst                      |     6 +
 1685 files changed, 193455 insertions(+)

diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..36a1f4a
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,33 @@
+
+language: cpp
+
+env:
+  global:
+    ExternalData_OBJECT_STORES=${HOME}/.ExternalData
+    SIMPLEITK_SRC_DIR=${TRAVIS_BUILD_DIR}
+    SIMPLEITK_BUILD_DIR=${SIMPLEITK_SRC_DIR}/bld
+    CMAKE_DOWNLOAD_FILE=cmake-3.6.0-Linux-x86_64.sh
+
+cache:
+  directories:
+    - ${ExternalData_OBJECT_STORES}
+
+matrix:
+  include:
+    - os: linux
+      dist: trusty
+      sudo: required
+
+before_script:
+  - sudo apt-get remove cmake && sudo apt-get install swig lua5.1 libinsighttoolkit4-dev doxygen graphviz
+  - cd ${ExternalData_OBJECT_STORES} && if [[ ! -e ${CMAKE_DOWNLOAD_FILE} ]]; then curl -sSO https://cmake.org/files/v3.6/${CMAKE_DOWNLOAD_FILE}; fi
+  - echo "y\n" | sudo bash "${ExternalData_OBJECT_STORES}/${CMAKE_DOWNLOAD_FILE}" --prefix=/usr/local --exclude-subdir
+  - cmake --version
+  - mkdir -p ${SIMPLEITK_BUILD_DIR}
+
+script:
+  - cd ${SIMPLEITK_BUILD_DIR}
+  - sed -iBAK -e "s/ITKImageNoise/#ITKImageNoise/" ${SIMPLEITK_SRC_DIR}/CMake/sitkCheckForITKModuleDependencies.cmake ${SIMPLEITK_SRC_DIR}/Code/BasicFilters/src/CMakeLists.txt
+  - cmake -DWRAP_LUA:BOOL=OFF -DWRAP_PYTHON:BOOL=OFF -DWRAP_JAVA:BOOL=OFF -DWRAP_CSHARP:BOOL=OFF -DWRAP_TCL:BOOL=OFF -DWRAP_R:BOOL=OFF -DWRAP_RUBY:BOOL=OFF -DBUILD_EXAMPLES:BOOL=OFF -DBUILD_TESTING:BOOL=OFF -DBUILD_DOXYGEN:BOOL=ON -DCMAKE_BUILD_TYPE=Release "${SIMPLEITK_SRC_DIR}"
+  - make Documentation
+  - tar czf ~/Documentation.tgz Documentation
diff --git a/CMake/CTestCustom.cmake.in b/CMake/CTestCustom.cmake.in
new file mode 100644
index 0000000..9d2e63a
--- /dev/null
+++ b/CMake/CTestCustom.cmake.in
@@ -0,0 +1,79 @@
+SET (CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS   99)
+SET (CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS 999)
+
+# test to ignore for memcheck
+SET (CTEST_CUSTOM_MEMCHECK_IGNORE
+  "ProcessObjectDeathTest.DeleteCommandActiveProcess"
+  )
+
+SET(CTEST_CUSTOM_COVERAGE_EXCLUDE
+ ${CTEST_CUSTOM_COVERAGE_EXCLUDE}
+
+ # Exclude try_compile sources from coverage results:
+ "/CMakeFiles/CMakeTmp/"
+
+ # Exclude files from the Testing directories
+ ".*/Testing/.*"
+
+ # Exclude files from the Utilities directories
+ ".*/Utilities/.*"
+
+ # exclude certain wrapping files
+ "/Wrapping/SimpleITKLuaMain.cxx"
+ "/Wrapping/.*_wrap.cxx"
+ )
+
+SET(CTEST_CUSTOM_WARNING_EXCEPTION
+  ${CTEST_CUSTOM_WARNING_EXCEPTION}
+
+  # Ignore warning for files with no symbols
+  "warning LNK4221.*not define any previously undefined public symbols"
+  "warning LNK4221.*no public symbols found"
+  ".*ranlib:.*file:.*has no symbols"
+  "libtool:.*file:.*has no symbols"
+
+  # Ignore warning building SWIG
+  "Swig-prefix/src/Swig"
+  "parser.y.*warning"
+
+  # Ignore warning building PCRE
+  "PCRE-prefix/src/PCRE"
+
+  # Ignore apple warning
+  "ld.*warning.*duplicate dylib.*"
+
+  # Ignore warning from the SWIG wrapped file ( not much we can do about those )
+  ".*_wrap.cxx"
+
+  # Ignore warning in lua about the use of `tmpnam' is dangerous
+  "loslib"
+
+  # RH5 GCC 4.1 is producing warnings internally for functional headers
+  "mu_iterate.h.*warning? unused parameter '__tuple'"
+
+  # Ignore CSharp invalid version warning for dev
+  "warning CS1607.*The version number.*dev.*is invalid"
+  "warning CS1607.*The version.*dev.*is not in the normal"
+
+  # Warning when building R, issue related to make file
+  "warning: jobserver unavailable:"
+
+  # Warning when compiling ITK v4.5.1 with clang
+  "clang: warning: argument unused during.*-fno-ipa-cp-clone"
+
+  # Warning from RHEL5 GCC 4.1 about visibility change
+  "warning: lowering visibility of .* to match its type"
+
+  # Warning from SWIG with self member type
+  "sitkCommand.* [wW]arning 314.*self.*is a python keyword"
+
+  # Warning from RH5 gcc 4.1.2
+  "tr1/mu_iterate.h.* warning: unused parameter '__tuple'"
+)
+
+SET(CTEST_CUSTOM_ERROR_EXCEPTION
+  ${CTEST_CUSTOM_ERROR_EXCEPTION}
+
+ # Error to ignore on Windows during wheel production
+ "pep425tags.*RuntimeWarning.*ABI tag may be incorrect"
+)
diff --git a/CMake/ExternalData.cmake b/CMake/ExternalData.cmake
new file mode 100644
index 0000000..3ff848b
--- /dev/null
+++ b/CMake/ExternalData.cmake
@@ -0,0 +1,1153 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+ExternalData
+------------
+
+.. only:: html
+
+   .. contents::
+
+Manage data files stored outside source tree
+
+Introduction
+^^^^^^^^^^^^
+
+Use this module to unambiguously reference data files stored outside
+the source tree and fetch them at build time from arbitrary local and
+remote content-addressed locations.  Functions provided by this module
+recognize arguments with the syntax ``DATA{<name>}`` as references to
+external data, replace them with full paths to local copies of those
+data, and create build rules to fetch and update the local copies.
+
+For example:
+
+.. code-block:: cmake
+
+ include(ExternalData)
+ set(ExternalData_URL_TEMPLATES "file:///local/%(algo)/%(hash)"
+                                "file:////host/share/%(algo)/%(hash)"
+                                "http://data.org/%(algo)/%(hash)")
+ ExternalData_Add_Test(MyData
+   NAME MyTest
+   COMMAND MyExe DATA{MyInput.png}
+   )
+ ExternalData_Add_Target(MyData)
+
+When test ``MyTest`` runs the ``DATA{MyInput.png}`` argument will be
+replaced by the full path to a real instance of the data file
+``MyInput.png`` on disk.  If the source tree contains a content link
+such as ``MyInput.png.md5`` then the ``MyData`` target creates a real
+``MyInput.png`` in the build tree.
+
+Module Functions
+^^^^^^^^^^^^^^^^
+
+.. command:: ExternalData_Expand_Arguments
+
+  The ``ExternalData_Expand_Arguments`` function evaluates ``DATA{}``
+  references in its arguments and constructs a new list of arguments::
+
+    ExternalData_Expand_Arguments(
+      <target>   # Name of data management target
+      <outVar>   # Output variable
+      [args...]  # Input arguments, DATA{} allowed
+      )
+
+  It replaces each ``DATA{}`` reference in an argument with the full path of
+  a real data file on disk that will exist after the ``<target>`` builds.
+
+.. command:: ExternalData_Add_Test
+
+  The ``ExternalData_Add_Test`` function wraps around the CMake
+  :command:`add_test` command but supports ``DATA{}`` references in
+  its arguments::
+
+    ExternalData_Add_Test(
+      <target>   # Name of data management target
+      ...        # Arguments of add_test(), DATA{} allowed
+      )
+
+  It passes its arguments through ``ExternalData_Expand_Arguments`` and then
+  invokes the :command:`add_test` command using the results.
+
+.. command:: ExternalData_Add_Target
+
+  The ``ExternalData_Add_Target`` function creates a custom target to
+  manage local instances of data files stored externally::
+
+    ExternalData_Add_Target(
+      <target>   # Name of data management target
+      )
+
+  It creates custom commands in the target as necessary to make data
+  files available for each ``DATA{}`` reference previously evaluated by
+  other functions provided by this module.
+  Data files may be fetched from one of the URL templates specified in
+  the ``ExternalData_URL_TEMPLATES`` variable, or may be found locally
+  in one of the paths specified in the ``ExternalData_OBJECT_STORES``
+  variable.
+
+  Typically only one target is needed to manage all external data within
+  a project.  Call this function once at the end of configuration after
+  all data references have been processed.
+
+Module Variables
+^^^^^^^^^^^^^^^^
+
+The following variables configure behavior.  They should be set before
+calling any of the functions provided by this module.
+
+.. variable:: ExternalData_BINARY_ROOT
+
+  The ``ExternalData_BINARY_ROOT`` variable may be set to the directory to
+  hold the real data files named by expanded ``DATA{}`` references.  The
+  default is ``CMAKE_BINARY_DIR``.  The directory layout will mirror that of
+  content links under ``ExternalData_SOURCE_ROOT``.
+
+.. variable:: ExternalData_CUSTOM_SCRIPT_<key>
+
+  Specify a full path to a ``.cmake`` custom fetch script identified by
+  ``<key>`` in entries of the ``ExternalData_URL_TEMPLATES`` list.
+  See `Custom Fetch Scripts`_.
+
+.. variable:: ExternalData_LINK_CONTENT
+
+  The ``ExternalData_LINK_CONTENT`` variable may be set to the name of a
+  supported hash algorithm to enable automatic conversion of real data
+  files referenced by the ``DATA{}`` syntax into content links.  For each
+  such ``<file>`` a content link named ``<file><ext>`` is created.  The
+  original file is renamed to the form ``.ExternalData_<algo>_<hash>`` to
+  stage it for future transmission to one of the locations in the list
+  of URL templates (by means outside the scope of this module).  The
+  data fetch rule created for the content link will use the staged
+  object if it cannot be found using any URL template.
+
+.. variable:: ExternalData_NO_SYMLINKS
+
+  The real data files named by expanded ``DATA{}`` references may be made
+  available under ``ExternalData_BINARY_ROOT`` using symbolic links on
+  some platforms.  The ``ExternalData_NO_SYMLINKS`` variable may be set
+  to disable use of symbolic links and enable use of copies instead.
+
+.. variable:: ExternalData_OBJECT_STORES
+
+  The ``ExternalData_OBJECT_STORES`` variable may be set to a list of local
+  directories that store objects using the layout ``<dir>/%(algo)/%(hash)``.
+  These directories will be searched first for a needed object.  If the
+  object is not available in any store then it will be fetched remotely
+  using the URL templates and added to the first local store listed.  If
+  no stores are specified the default is a location inside the build
+  tree.
+
+.. variable:: ExternalData_SERIES_PARSE
+              ExternalData_SERIES_PARSE_PREFIX
+              ExternalData_SERIES_PARSE_NUMBER
+              ExternalData_SERIES_PARSE_SUFFIX
+              ExternalData_SERIES_MATCH
+
+  See `Referencing File Series`_.
+
+.. variable:: ExternalData_SOURCE_ROOT
+
+  The ``ExternalData_SOURCE_ROOT`` variable may be set to the highest source
+  directory containing any path named by a ``DATA{}`` reference.  The
+  default is ``CMAKE_SOURCE_DIR``.  ``ExternalData_SOURCE_ROOT`` and
+  ``CMAKE_SOURCE_DIR`` must refer to directories within a single source
+  distribution (e.g.  they come together in one tarball).
+
+.. variable:: ExternalData_TIMEOUT_ABSOLUTE
+
+  The ``ExternalData_TIMEOUT_ABSOLUTE`` variable sets the download
+  absolute timeout, in seconds, with a default of ``300`` seconds.
+  Set to ``0`` to disable enforcement.
+
+.. variable:: ExternalData_TIMEOUT_INACTIVITY
+
+  The ``ExternalData_TIMEOUT_INACTIVITY`` variable sets the download
+  inactivity timeout, in seconds, with a default of ``60`` seconds.
+  Set to ``0`` to disable enforcement.
+
+.. variable:: ExternalData_URL_ALGO_<algo>_<key>
+
+  Specify a custom URL component to be substituted for URL template
+  placeholders of the form ``%(algo:<key>)``, where ``<key>`` is a
+  valid C identifier, when fetching an object referenced via hash
+  algorithm ``<algo>``.  If not defined, the default URL component
+  is just ``<algo>`` for any ``<key>``.
+
+.. variable:: ExternalData_URL_TEMPLATES
+
+  The ``ExternalData_URL_TEMPLATES`` may be set to provide a list of
+  of URL templates using the placeholders ``%(algo)`` and ``%(hash)``
+  in each template.  Data fetch rules try each URL template in order
+  by substituting the hash algorithm name for ``%(algo)`` and the hash
+  value for ``%(hash)``.  Alternatively one may use ``%(algo:<key>)``
+  with ``ExternalData_URL_ALGO_<algo>_<key>`` variables to gain more
+  flexibility in remote URLs.
+
+Referencing Files
+^^^^^^^^^^^^^^^^^
+
+Referencing Single Files
+""""""""""""""""""""""""
+
+The ``DATA{}`` syntax is literal and the ``<name>`` is a full or relative path
+within the source tree.  The source tree must contain either a real
+data file at ``<name>`` or a "content link" at ``<name><ext>`` containing a
+hash of the real file using a hash algorithm corresponding to ``<ext>``.
+For example, the argument ``DATA{img.png}`` may be satisfied by either a
+real ``img.png`` file in the current source directory or a ``img.png.md5``
+file containing its MD5 sum.
+
+Multiple content links of the same name with different hash algorithms
+are supported (e.g. ``img.png.sha256`` and ``img.png.sha1``) so long as
+they all correspond to the same real file.  This allows objects to be
+fetched from sources indexed by different hash algorithms.
+
+Referencing File Series
+"""""""""""""""""""""""
+
+The ``DATA{}`` syntax can be told to fetch a file series using the form
+``DATA{<name>,:}``, where the ``:`` is literal.  If the source tree
+contains a group of files or content links named like a series then a
+reference to one member adds rules to fetch all of them.  Although all
+members of a series are fetched, only the file originally named by the
+``DATA{}`` argument is substituted for it.  The default configuration
+recognizes file series names ending with ``#.ext``, ``_#.ext``, ``.#.ext``,
+or ``-#.ext`` where ``#`` is a sequence of decimal digits and ``.ext`` is
+any single extension.  Configure it with a regex that parses ``<number>``
+and ``<suffix>`` parts from the end of ``<name>``::
+
+ ExternalData_SERIES_PARSE = regex of the form (<number>)(<suffix>)$
+
+For more complicated cases set::
+
+ ExternalData_SERIES_PARSE = regex with at least two () groups
+ ExternalData_SERIES_PARSE_PREFIX = <prefix> regex group number, if any
+ ExternalData_SERIES_PARSE_NUMBER = <number> regex group number
+ ExternalData_SERIES_PARSE_SUFFIX = <suffix> regex group number
+
+Configure series number matching with a regex that matches the
+``<number>`` part of series members named ``<prefix><number><suffix>``::
+
+ ExternalData_SERIES_MATCH = regex matching <number> in all series members
+
+Note that the ``<suffix>`` of a series does not include a hash-algorithm
+extension.
+
+Referencing Associated Files
+""""""""""""""""""""""""""""
+
+The ``DATA{}`` syntax can alternatively match files associated with the
+named file and contained in the same directory.  Associated files may
+be specified by options using the syntax
+``DATA{<name>,<opt1>,<opt2>,...}``.  Each option may specify one file by
+name or specify a regular expression to match file names using the
+syntax ``REGEX:<regex>``.  For example, the arguments::
+
+ DATA{MyData/MyInput.mhd,MyInput.img}                   # File pair
+ DATA{MyData/MyFrames00.png,REGEX:MyFrames[0-9]+\\.png} # Series
+
+will pass ``MyInput.mha`` and ``MyFrames00.png`` on the command line but
+ensure that the associated files are present next to them.
+
+Referencing Directories
+"""""""""""""""""""""""
+
+The ``DATA{}`` syntax may reference a directory using a trailing slash and
+a list of associated files.  The form ``DATA{<name>/,<opt1>,<opt2>,...}``
+adds rules to fetch any files in the directory that match one of the
+associated file options.  For example, the argument
+``DATA{MyDataDir/,REGEX:.*}`` will pass the full path to a ``MyDataDir``
+directory on the command line and ensure that the directory contains
+files corresponding to every file or content link in the ``MyDataDir``
+source directory.  In order to match associated files in subdirectories,
+specify a ``RECURSE:`` option, e.g. ``DATA{MyDataDir/,RECURSE:,REGEX:.*}``.
+
+Hash Algorithms
+^^^^^^^^^^^^^^^
+
+The following hash algorithms are supported::
+
+ %(algo)     <ext>     Description
+ -------     -----     -----------
+ MD5         .md5      Message-Digest Algorithm 5, RFC 1321
+ SHA1        .sha1     US Secure Hash Algorithm 1, RFC 3174
+ SHA224      .sha224   US Secure Hash Algorithms, RFC 4634
+ SHA256      .sha256   US Secure Hash Algorithms, RFC 4634
+ SHA384      .sha384   US Secure Hash Algorithms, RFC 4634
+ SHA512      .sha512   US Secure Hash Algorithms, RFC 4634
+ SHA3_224    .sha3-224 Keccak SHA-3
+ SHA3_256    .sha3-256 Keccak SHA-3
+ SHA3_384    .sha3-384 Keccak SHA-3
+ SHA3_512    .sha3-512 Keccak SHA-3
+
+Note that the hashes are used only for unique data identification and
+download verification.
+
+.. _`ExternalData Custom Fetch Scripts`:
+
+Custom Fetch Scripts
+^^^^^^^^^^^^^^^^^^^^
+
+When a data file must be fetched from one of the URL templates
+specified in the ``ExternalData_URL_TEMPLATES`` variable, it is
+normally downloaded using the :command:`file(DOWNLOAD)` command.
+One may specify usage of a custom fetch script by using a URL
+template of the form ``ExternalDataCustomScript://<key>/<loc>``.
+The ``<key>`` must be a C identifier, and the ``<loc>`` must
+contain the ``%(algo)`` and ``%(hash)`` placeholders.
+A variable corresponding to the key, ``ExternalData_CUSTOM_SCRIPT_<key>``,
+must be set to the full path to a ``.cmake`` script file.  The script
+will be included to perform the actual fetch, and provided with
+the following variables:
+
+.. variable:: ExternalData_CUSTOM_LOCATION
+
+  When a custom fetch script is loaded, this variable is set to the
+  location part of the URL, which will contain the substituted hash
+  algorithm name and content hash value.
+
+.. variable:: ExternalData_CUSTOM_FILE
+
+  When a custom fetch script is loaded, this variable is set to the
+  full path to a file in which the script must store the fetched
+  content.  The name of the file is unspecified and should not be
+  interpreted in any way.
+
+The custom fetch script is expected to store fetched content in the
+file or set a variable:
+
+.. variable:: ExternalData_CUSTOM_ERROR
+
+  When a custom fetch script fails to fetch the requested content,
+  it must set this variable to a short one-line message describing
+  the reason for failure.
+
+#]=======================================================================]
+
+function(ExternalData_add_test target)
+  # Expand all arguments as a single string to preserve escaped semicolons.
+  ExternalData_expand_arguments("${target}" testArgs "${ARGN}")
+  add_test(${testArgs})
+endfunction()
+
+function(ExternalData_add_target target)
+  if(NOT ExternalData_URL_TEMPLATES AND NOT ExternalData_OBJECT_STORES)
+    message(FATAL_ERROR
+      "Neither ExternalData_URL_TEMPLATES nor ExternalData_OBJECT_STORES is set!")
+  endif()
+  if(NOT ExternalData_OBJECT_STORES)
+    set(ExternalData_OBJECT_STORES ${CMAKE_BINARY_DIR}/ExternalData/Objects)
+  endif()
+  set(_ExternalData_CONFIG_CODE "")
+
+  # Store custom script configuration.
+  foreach(url_template IN LISTS ExternalData_URL_TEMPLATES)
+    if("${url_template}" MATCHES "^ExternalDataCustomScript://([^/]*)/(.*)$")
+      set(key "${CMAKE_MATCH_1}")
+      if(key MATCHES "^[A-Za-z_][A-Za-z0-9_]*$")
+        if(ExternalData_CUSTOM_SCRIPT_${key})
+          if(IS_ABSOLUTE "${ExternalData_CUSTOM_SCRIPT_${key}}")
+            string(CONCAT _ExternalData_CONFIG_CODE "${_ExternalData_CONFIG_CODE}\n"
+              "set(ExternalData_CUSTOM_SCRIPT_${key} \"${ExternalData_CUSTOM_SCRIPT_${key}}\")")
+          else()
+            message(FATAL_ERROR
+              "No ExternalData_CUSTOM_SCRIPT_${key} is not set to a full path:\n"
+              " ${ExternalData_CUSTOM_SCRIPT_${key}}")
+          endif()
+        else()
+          message(FATAL_ERROR
+            "No ExternalData_CUSTOM_SCRIPT_${key} is set for URL template:\n"
+            " ${url_template}")
+        endif()
+      else()
+        message(FATAL_ERROR
+          "Bad ExternalDataCustomScript key '${key}' in URL template:\n"
+          " ${url_template}\n"
+          "The key must be a valid C identifier.")
+      endif()
+    endif()
+
+    # Store custom algorithm name to URL component maps.
+    if("${url_template}" MATCHES "%\\(algo:([^)]*)\\)")
+      set(key "${CMAKE_MATCH_1}")
+      if(key MATCHES "^[A-Za-z_][A-Za-z0-9_]*$")
+        string(REPLACE "|" ";" _algos "${_ExternalData_REGEX_ALGO}")
+        foreach(algo ${_algos})
+          if(DEFINED ExternalData_URL_ALGO_${algo}_${key})
+            string(CONCAT _ExternalData_CONFIG_CODE "${_ExternalData_CONFIG_CODE}\n"
+              "set(ExternalData_URL_ALGO_${algo}_${key} \"${ExternalData_URL_ALGO_${algo}_${key}}\")")
+          endif()
+        endforeach()
+      else()
+        message(FATAL_ERROR
+          "Bad %(algo:${key}) in URL template:\n"
+          " ${url_template}\n"
+          "The transform name must be a valid C identifier.")
+      endif()
+    endif()
+  endforeach()
+
+  # Store configuration for use by build-time script.
+  set(config ${CMAKE_CURRENT_BINARY_DIR}/${target}_config.cmake)
+  configure_file(${_ExternalData_SELF_DIR}/ExternalData_config.cmake.in ${config} @ONLY)
+
+  set(files "")
+
+  # Set a "_ExternalData_FILE_${file}" variable for each output file to avoid
+  # duplicate entries within this target.  Set a directory property of the same
+  # name to avoid repeating custom commands with the same output in this directory.
+  # Repeating custom commands with the same output across directories or across
+  # targets in the same directory may be a race, but this is likely okay because
+  # we use atomic replacement of output files.
+  #
+  # Use local data first to prefer real files over content links.
+
+  # Custom commands to copy or link local data.
+  get_property(data_local GLOBAL PROPERTY _ExternalData_${target}_LOCAL)
+  foreach(entry IN LISTS data_local)
+    string(REPLACE "|" ";" tuple "${entry}")
+    list(GET tuple 0 file)
+    list(GET tuple 1 name)
+    if(NOT DEFINED "_ExternalData_FILE_${file}")
+      set("_ExternalData_FILE_${file}" 1)
+      get_property(added DIRECTORY PROPERTY "_ExternalData_FILE_${file}")
+      if(NOT added)
+        set_property(DIRECTORY PROPERTY "_ExternalData_FILE_${file}" 1)
+        add_custom_command(
+          COMMENT "Generating ${file}"
+          OUTPUT "${file}"
+          COMMAND ${CMAKE_COMMAND} -Drelative_top=${CMAKE_BINARY_DIR}
+                                   -Dfile=${file} -Dname=${name}
+                                   -DExternalData_ACTION=local
+                                   -DExternalData_CONFIG=${config}
+                                   -P ${_ExternalData_SELF}
+          MAIN_DEPENDENCY "${name}"
+          )
+      endif()
+      list(APPEND files "${file}")
+    endif()
+  endforeach()
+
+  # Custom commands to fetch remote data.
+  get_property(data_fetch GLOBAL PROPERTY _ExternalData_${target}_FETCH)
+  foreach(entry IN LISTS data_fetch)
+    string(REPLACE "|" ";" tuple "${entry}")
+    list(GET tuple 0 file)
+    list(GET tuple 1 name)
+    list(GET tuple 2 exts)
+    string(REPLACE "+" ";" exts_list "${exts}")
+    list(GET exts_list 0 first_ext)
+    set(stamp "-hash-stamp")
+    if(NOT DEFINED "_ExternalData_FILE_${file}")
+      set("_ExternalData_FILE_${file}" 1)
+      get_property(added DIRECTORY PROPERTY "_ExternalData_FILE_${file}")
+      if(NOT added)
+        set_property(DIRECTORY PROPERTY "_ExternalData_FILE_${file}" 1)
+        add_custom_command(
+          # Users care about the data file, so hide the hash/timestamp file.
+          COMMENT "Generating ${file}"
+          # The hash/timestamp file is the output from the build perspective.
+          # List the real file as a second output in case it is a broken link.
+          # The files must be listed in this order so CMake can hide from the
+          # make tool that a symlink target may not be newer than the input.
+          OUTPUT "${file}${stamp}" "${file}"
+          # Run the data fetch/update script.
+          COMMAND ${CMAKE_COMMAND} -Drelative_top=${CMAKE_BINARY_DIR}
+                                   -Dfile=${file} -Dname=${name} -Dexts=${exts}
+                                   -DExternalData_ACTION=fetch
+                                   -DExternalData_CONFIG=${config}
+                                   -P ${_ExternalData_SELF}
+          # Update whenever the object hash changes.
+          MAIN_DEPENDENCY "${name}${first_ext}"
+          )
+      endif()
+      list(APPEND files "${file}${stamp}")
+    endif()
+  endforeach()
+
+  # Custom target to drive all update commands.
+  add_custom_target(${target} ALL DEPENDS ${files})
+endfunction()
+
+function(ExternalData_expand_arguments target outArgsVar)
+  # Replace DATA{} references with real arguments.
+  set(data_regex "DATA{([^;{}\r\n]*)}")
+  set(other_regex "([^D]|D[^A]|DA[^T]|DAT[^A]|DATA[^{])+|.")
+  set(outArgs "")
+  # This list expansion un-escapes semicolons in list element values so we
+  # must re-escape them below anywhere a new list expansion will occur.
+  foreach(arg IN LISTS ARGN)
+    if("x${arg}" MATCHES "${data_regex}")
+      # Re-escape in-value semicolons before expansion in foreach below.
+      string(REPLACE ";" "\\;" tmp "${arg}")
+      # Split argument into DATA{}-pieces and other pieces.
+      string(REGEX MATCHALL "${data_regex}|${other_regex}" pieces "${tmp}")
+      # Compose output argument with DATA{}-pieces replaced.
+      set(outArg "")
+      foreach(piece IN LISTS pieces)
+        if("x${piece}" MATCHES "^x${data_regex}$")
+          # Replace this DATA{}-piece with a file path.
+          _ExternalData_arg("${target}" "${piece}" "${CMAKE_MATCH_1}" file)
+          set(outArg "${outArg}${file}")
+        else()
+          # No replacement needed for this piece.
+          set(outArg "${outArg}${piece}")
+        endif()
+      endforeach()
+    else()
+      # No replacements needed in this argument.
+      set(outArg "${arg}")
+    endif()
+    # Re-escape in-value semicolons in resulting list.
+    string(REPLACE ";" "\\;" outArg "${outArg}")
+    list(APPEND outArgs "${outArg}")
+  endforeach()
+  set("${outArgsVar}" "${outArgs}" PARENT_SCOPE)
+endfunction()
+
+#-----------------------------------------------------------------------------
+# Private helper interface
+
+set(_ExternalData_REGEX_ALGO "MD5|SHA1|SHA224|SHA256|SHA384|SHA512|SHA3_224|SHA3_256|SHA3_384|SHA3_512")
+set(_ExternalData_REGEX_EXT "md5|sha1|sha224|sha256|sha384|sha512|sha3-224|sha3-256|sha3-384|sha3-512")
+set(_ExternalData_SELF "${CMAKE_CURRENT_LIST_FILE}")
+get_filename_component(_ExternalData_SELF_DIR "${_ExternalData_SELF}" PATH)
+
+function(_ExternalData_compute_hash var_hash algo file)
+  if("${algo}" MATCHES "^${_ExternalData_REGEX_ALGO}$")
+    file("${algo}" "${file}" hash)
+    set("${var_hash}" "${hash}" PARENT_SCOPE)
+  else()
+    message(FATAL_ERROR "Hash algorithm ${algo} unimplemented.")
+  endif()
+endfunction()
+
+function(_ExternalData_random var)
+  string(RANDOM LENGTH 6 random)
+  set("${var}" "${random}" PARENT_SCOPE)
+endfunction()
+
+function(_ExternalData_exact_regex regex_var string)
+  string(REGEX REPLACE "([][+.*()^])" "\\\\\\1" regex "${string}")
+  set("${regex_var}" "${regex}" PARENT_SCOPE)
+endfunction()
+
+function(_ExternalData_atomic_write file content)
+  _ExternalData_random(random)
+  set(tmp "${file}.tmp${random}")
+  file(WRITE "${tmp}" "${content}")
+  file(RENAME "${tmp}" "${file}")
+endfunction()
+
+function(_ExternalData_link_content name var_ext)
+  if("${ExternalData_LINK_CONTENT}" MATCHES "^(${_ExternalData_REGEX_ALGO})$")
+    set(algo "${ExternalData_LINK_CONTENT}")
+  else()
+    message(FATAL_ERROR
+      "Unknown hash algorithm specified by ExternalData_LINK_CONTENT:\n"
+      "  ${ExternalData_LINK_CONTENT}")
+  endif()
+  _ExternalData_compute_hash(hash "${algo}" "${name}")
+  get_filename_component(dir "${name}" PATH)
+  set(staged "${dir}/.ExternalData_${algo}_${hash}")
+  string(TOLOWER ".${algo}" ext)
+  _ExternalData_atomic_write("${name}${ext}" "${hash}\n")
+  file(RENAME "${name}" "${staged}")
+  set("${var_ext}" "${ext}" PARENT_SCOPE)
+
+  file(RELATIVE_PATH relname "${ExternalData_SOURCE_ROOT}" "${name}${ext}")
+  message(STATUS "Linked ${relname} to ExternalData ${algo}/${hash}")
+endfunction()
+
+function(_ExternalData_arg target arg options var_file)
+  # Separate data path from the options.
+  string(REPLACE "," ";" options "${options}")
+  list(GET options 0 data)
+  list(REMOVE_AT options 0)
+
+  # Interpret trailing slashes as directories.
+  set(data_is_directory 0)
+  if("x${data}" MATCHES "^x(.*)([/\\])$")
+    set(data_is_directory 1)
+    set(data "${CMAKE_MATCH_1}")
+  endif()
+
+  # Convert to full path.
+  if(IS_ABSOLUTE "${data}")
+    set(absdata "${data}")
+  else()
+    set(absdata "${CMAKE_CURRENT_SOURCE_DIR}/${data}")
+  endif()
+  get_filename_component(absdata "${absdata}" ABSOLUTE)
+
+  # Convert to relative path under the source tree.
+  if(NOT ExternalData_SOURCE_ROOT)
+    set(ExternalData_SOURCE_ROOT "${CMAKE_SOURCE_DIR}")
+  endif()
+  set(top_src "${ExternalData_SOURCE_ROOT}")
+  file(RELATIVE_PATH reldata "${top_src}" "${absdata}")
+  if(IS_ABSOLUTE "${reldata}" OR "${reldata}" MATCHES "^\\.\\./")
+    message(FATAL_ERROR "Data file referenced by argument\n"
+      "  ${arg}\n"
+      "does not lie under the top-level source directory\n"
+      "  ${top_src}\n")
+  endif()
+  if(data_is_directory AND NOT IS_DIRECTORY "${top_src}/${reldata}")
+    message(FATAL_ERROR "Data directory referenced by argument\n"
+      "  ${arg}\n"
+      "corresponds to source tree path\n"
+      "  ${reldata}\n"
+      "that does not exist as a directory!")
+  endif()
+  if(NOT ExternalData_BINARY_ROOT)
+    set(ExternalData_BINARY_ROOT "${CMAKE_BINARY_DIR}")
+  endif()
+  set(top_bin "${ExternalData_BINARY_ROOT}")
+
+  # Handle in-source builds gracefully.
+  if("${top_src}" STREQUAL "${top_bin}")
+    if(ExternalData_LINK_CONTENT)
+      message(WARNING "ExternalData_LINK_CONTENT cannot be used in-source")
+      set(ExternalData_LINK_CONTENT 0)
+    endif()
+    set(top_same 1)
+  endif()
+
+  set(external "") # Entries external to the source tree.
+  set(internal "") # Entries internal to the source tree.
+  set(have_original ${data_is_directory})
+  set(have_original_as_dir 0)
+
+  # Process options.
+  set(series_option "")
+  set(recurse_option "")
+  set(associated_files "")
+  set(associated_regex "")
+  foreach(opt ${options})
+    # Regular expression to match associated files.
+    if("x${opt}" MATCHES "^xREGEX:([^:/]+)$")
+      list(APPEND associated_regex "${CMAKE_MATCH_1}")
+    elseif(opt STREQUAL ":")
+      # Activate series matching.
+      set(series_option "${opt}")
+    elseif(opt STREQUAL "RECURSE:")
+      # Activate recursive matching in directories.
+      set(recurse_option "${opt}")
+    elseif("x${opt}" MATCHES "^[^][:/*?]+$")
+      # Specific associated file.
+      list(APPEND associated_files "${opt}")
+    else()
+      message(FATAL_ERROR "Unknown option \"${opt}\" in argument\n"
+        "  ${arg}\n")
+    endif()
+  endforeach()
+
+  if(series_option)
+    if(data_is_directory)
+      message(FATAL_ERROR "Series option \"${series_option}\" not allowed with directories.")
+    endif()
+    if(associated_files OR associated_regex)
+      message(FATAL_ERROR "Series option \"${series_option}\" not allowed with associated files.")
+    endif()
+    if(recurse_option)
+      message(FATAL_ERROR "Recurse option \"${recurse_option}\" allowed only with directories.")
+    endif()
+    # Load a whole file series.
+    _ExternalData_arg_series()
+  elseif(data_is_directory)
+    if(associated_files OR associated_regex)
+      # Load listed/matching associated files in the directory.
+      _ExternalData_arg_associated()
+    else()
+      message(FATAL_ERROR "Data directory referenced by argument\n"
+        "  ${arg}\n"
+        "must list associated files.")
+    endif()
+  else()
+    if(recurse_option)
+      message(FATAL_ERROR "Recurse option \"${recurse_option}\" allowed only with directories.")
+    endif()
+    # Load the named data file.
+    _ExternalData_arg_single()
+    if(associated_files OR associated_regex)
+      # Load listed/matching associated files.
+      _ExternalData_arg_associated()
+    endif()
+  endif()
+
+  if(NOT have_original)
+    if(have_original_as_dir)
+      set(msg_kind FATAL_ERROR)
+      set(msg "that is directory instead of a file!")
+    else()
+      set(msg_kind AUTHOR_WARNING)
+      set(msg "that does not exist as a file (with or without an extension)!")
+    endif()
+    message(${msg_kind} "Data file referenced by argument\n"
+      "  ${arg}\n"
+      "corresponds to source tree path\n"
+      "  ${reldata}\n"
+      "${msg}")
+  endif()
+
+  if(external)
+    # Make the series available in the build tree.
+    set_property(GLOBAL APPEND PROPERTY
+      _ExternalData_${target}_FETCH "${external}")
+    set_property(GLOBAL APPEND PROPERTY
+      _ExternalData_${target}_LOCAL "${internal}")
+    set("${var_file}" "${top_bin}/${reldata}" PARENT_SCOPE)
+  else()
+    # The whole series is in the source tree.
+    set("${var_file}" "${top_src}/${reldata}" PARENT_SCOPE)
+  endif()
+endfunction()
+
+macro(_ExternalData_arg_associated)
+  # Associated files lie in the same directory.
+  if(data_is_directory)
+    set(reldir "${reldata}")
+  else()
+    get_filename_component(reldir "${reldata}" PATH)
+  endif()
+  if(reldir)
+    set(reldir "${reldir}/")
+  endif()
+  _ExternalData_exact_regex(reldir_regex "${reldir}")
+  if(recurse_option)
+    set(glob GLOB_RECURSE)
+    set(reldir_regex "${reldir_regex}(.+/)?")
+  else()
+    set(glob GLOB)
+  endif()
+
+  # Find files named explicitly.
+  foreach(file ${associated_files})
+    _ExternalData_exact_regex(file_regex "${file}")
+    _ExternalData_arg_find_files(${glob} "${reldir}${file}"
+      "${reldir_regex}${file_regex}")
+  endforeach()
+
+  # Find files matching the given regular expressions.
+  set(all "")
+  set(sep "")
+  foreach(regex ${associated_regex})
+    set(all "${all}${sep}${reldir_regex}${regex}")
+    set(sep "|")
+  endforeach()
+  _ExternalData_arg_find_files(${glob} "${reldir}" "${all}")
+endmacro()
+
+macro(_ExternalData_arg_single)
+  # Match only the named data by itself.
+  _ExternalData_exact_regex(data_regex "${reldata}")
+  _ExternalData_arg_find_files(GLOB "${reldata}" "${data_regex}")
+endmacro()
+
+macro(_ExternalData_arg_series)
+  # Configure series parsing and matching.
+  set(series_parse_prefix "")
+  set(series_parse_number "\\1")
+  set(series_parse_suffix "\\2")
+  if(ExternalData_SERIES_PARSE)
+    if(ExternalData_SERIES_PARSE_NUMBER AND ExternalData_SERIES_PARSE_SUFFIX)
+      if(ExternalData_SERIES_PARSE_PREFIX)
+        set(series_parse_prefix "\\${ExternalData_SERIES_PARSE_PREFIX}")
+      endif()
+      set(series_parse_number "\\${ExternalData_SERIES_PARSE_NUMBER}")
+      set(series_parse_suffix "\\${ExternalData_SERIES_PARSE_SUFFIX}")
+    elseif(NOT "x${ExternalData_SERIES_PARSE}" MATCHES "^x\\([^()]*\\)\\([^()]*\\)\\$$")
+      message(FATAL_ERROR
+        "ExternalData_SERIES_PARSE is set to\n"
+        "  ${ExternalData_SERIES_PARSE}\n"
+        "which is not of the form\n"
+        "  (<number>)(<suffix>)$\n"
+        "Fix the regular expression or set variables\n"
+        "  ExternalData_SERIES_PARSE_PREFIX = <prefix> regex group number, if any\n"
+        "  ExternalData_SERIES_PARSE_NUMBER = <number> regex group number\n"
+        "  ExternalData_SERIES_PARSE_SUFFIX = <suffix> regex group number\n"
+        )
+    endif()
+    set(series_parse "${ExternalData_SERIES_PARSE}")
+  else()
+    set(series_parse "([0-9]*)(\\.[^./]*)$")
+  endif()
+  if(ExternalData_SERIES_MATCH)
+    set(series_match "${ExternalData_SERIES_MATCH}")
+  else()
+    set(series_match "[_.-]?[0-9]*")
+  endif()
+
+  # Parse the base, number, and extension components of the series.
+  string(REGEX REPLACE "${series_parse}" "${series_parse_prefix};${series_parse_number};${series_parse_suffix}" tuple "${reldata}")
+  list(LENGTH tuple len)
+  if(NOT "${len}" EQUAL 3)
+    message(FATAL_ERROR "Data file referenced by argument\n"
+      "  ${arg}\n"
+      "corresponds to path\n"
+      "  ${reldata}\n"
+      "that does not match regular expression\n"
+      "  ${series_parse}")
+  endif()
+  list(GET tuple 0 relbase)
+  list(GET tuple 2 ext)
+
+  # Glob files that might match the series.
+  # Then match base, number, and extension.
+  _ExternalData_exact_regex(series_base "${relbase}")
+  _ExternalData_exact_regex(series_ext "${ext}")
+  _ExternalData_arg_find_files(GLOB "${relbase}*${ext}"
+    "${series_base}${series_match}${series_ext}")
+endmacro()
+
+function(_ExternalData_arg_find_files glob pattern regex)
+  cmake_policy(PUSH)
+  cmake_policy(SET CMP0009 NEW)
+  file(${glob} globbed RELATIVE "${top_src}" "${top_src}/${pattern}*")
+  cmake_policy(POP)
+  set(externals_count -1)
+  foreach(entry IN LISTS globbed)
+    if("x${entry}" MATCHES "^x(.*)(\\.(${_ExternalData_REGEX_EXT}))$")
+      set(relname "${CMAKE_MATCH_1}")
+      set(alg "${CMAKE_MATCH_2}")
+    else()
+      set(relname "${entry}")
+      set(alg "")
+    endif()
+    if("x${relname}" MATCHES "^x${regex}$" # matches
+        AND NOT "x${relname}" MATCHES "(^x|/)\\.ExternalData_" # not staged obj
+        )
+      if(IS_DIRECTORY "${top_src}/${entry}")
+        if("${relname}" STREQUAL "${reldata}")
+          set(have_original_as_dir 1)
+        endif()
+      else()
+        set(name "${top_src}/${relname}")
+        set(file "${top_bin}/${relname}")
+        if(alg)
+          if(NOT "${external_${externals_count}_file_name}" STREQUAL "${file}|${name}")
+            # 0 works around negative number bug in older CMake
+            math(EXPR externals_count "0${externals_count} + 1")
+            set(external_${externals_count}_file_name "${file}|${name}")
+          endif()
+          list(APPEND external_${externals_count}_algs "${alg}")
+        elseif(ExternalData_LINK_CONTENT)
+          _ExternalData_link_content("${name}" alg)
+          list(APPEND external "${file}|${name}|${alg}")
+        elseif(NOT top_same)
+          list(APPEND internal "${file}|${name}")
+        endif()
+        if("${relname}" STREQUAL "${reldata}")
+          set(have_original 1)
+        endif()
+      endif()
+    endif()
+  endforeach()
+  if(${externals_count} GREATER -1)
+    foreach(ii RANGE ${externals_count})
+      string(REPLACE ";" "+" algs_delim "${external_${ii}_algs}")
+      list(APPEND external "${external_${ii}_file_name}|${algs_delim}")
+      unset(external_${ii}_algs)
+      unset(external_${ii}_file_name)
+    endforeach()
+  endif()
+  set(external "${external}" PARENT_SCOPE)
+  set(internal "${internal}" PARENT_SCOPE)
+  set(have_original "${have_original}" PARENT_SCOPE)
+  set(have_original_as_dir "${have_original_as_dir}" PARENT_SCOPE)
+endfunction()
+
+#-----------------------------------------------------------------------------
+# Private script mode interface
+
+if(CMAKE_GENERATOR OR NOT ExternalData_ACTION)
+  return()
+endif()
+
+if(ExternalData_CONFIG)
+  include(${ExternalData_CONFIG})
+endif()
+if(NOT ExternalData_URL_TEMPLATES AND NOT ExternalData_OBJECT_STORES)
+  message(FATAL_ERROR
+    "Neither ExternalData_URL_TEMPLATES nor ExternalData_OBJECT_STORES is set!")
+endif()
+
+function(_ExternalData_link_or_copy src dst)
+  # Create a temporary file first.
+  get_filename_component(dst_dir "${dst}" PATH)
+  file(MAKE_DIRECTORY "${dst_dir}")
+  _ExternalData_random(random)
+  set(tmp "${dst}.tmp${random}")
+  if(UNIX AND NOT ExternalData_NO_SYMLINKS)
+    # Create a symbolic link.
+    set(tgt "${src}")
+    if(relative_top)
+      # Use relative path if files are close enough.
+      file(RELATIVE_PATH relsrc "${relative_top}" "${src}")
+      file(RELATIVE_PATH relfile "${relative_top}" "${dst}")
+      if(NOT IS_ABSOLUTE "${relsrc}" AND NOT "${relsrc}" MATCHES "^\\.\\./" AND
+          NOT IS_ABSOLUTE "${reldst}" AND NOT "${reldst}" MATCHES "^\\.\\./")
+        file(RELATIVE_PATH tgt "${dst_dir}" "${src}")
+      endif()
+    endif()
+    execute_process(COMMAND "${CMAKE_COMMAND}" -E create_symlink "${tgt}" "${tmp}" RESULT_VARIABLE result)
+  else()
+    # Create a copy.
+    execute_process(COMMAND "${CMAKE_COMMAND}" -E copy "${src}" "${tmp}" RESULT_VARIABLE result)
+  endif()
+  if(result)
+    file(REMOVE "${tmp}")
+    message(FATAL_ERROR "Failed to create\n  ${tmp}\nfrom\n  ${obj}")
+  endif()
+
+  # Atomically create/replace the real destination.
+  file(RENAME "${tmp}" "${dst}")
+endfunction()
+
+function(_ExternalData_download_file url file err_var msg_var)
+  set(retry 3)
+  while(retry)
+    math(EXPR retry "${retry} - 1")
+    if(ExternalData_TIMEOUT_INACTIVITY)
+      set(inactivity_timeout INACTIVITY_TIMEOUT ${ExternalData_TIMEOUT_INACTIVITY})
+    elseif(NOT "${ExternalData_TIMEOUT_INACTIVITY}" EQUAL 0)
+      set(inactivity_timeout INACTIVITY_TIMEOUT 60)
+    else()
+      set(inactivity_timeout "")
+    endif()
+    if(ExternalData_TIMEOUT_ABSOLUTE)
+      set(absolute_timeout TIMEOUT ${ExternalData_TIMEOUT_ABSOLUTE})
+    elseif(NOT "${ExternalData_TIMEOUT_ABSOLUTE}" EQUAL 0)
+      set(absolute_timeout TIMEOUT 300)
+    else()
+      set(absolute_timeout "")
+    endif()
+    file(DOWNLOAD "${url}" "${file}" STATUS status LOG log ${inactivity_timeout} ${absolute_timeout} SHOW_PROGRESS)
+    list(GET status 0 err)
+    list(GET status 1 msg)
+    if(err)
+      if("${msg}" MATCHES "HTTP response code said error" AND
+          "${log}" MATCHES "error: 503")
+        set(msg "temporarily unavailable")
+      endif()
+    elseif("${log}" MATCHES "\nHTTP[^\n]* 503")
+      set(err TRUE)
+      set(msg "temporarily unavailable")
+    endif()
+    if(NOT err OR NOT "${msg}" MATCHES "partial|timeout|temporarily")
+      break()
+    elseif(retry)
+      message(STATUS "[download terminated: ${msg}, retries left: ${retry}]")
+    endif()
+  endwhile()
+  set("${err_var}" "${err}" PARENT_SCOPE)
+  set("${msg_var}" "${msg}" PARENT_SCOPE)
+endfunction()
+
+function(_ExternalData_custom_fetch key loc file err_var msg_var)
+  if(NOT ExternalData_CUSTOM_SCRIPT_${key})
+    set(err 1)
+    set(msg "No ExternalData_CUSTOM_SCRIPT_${key} set!")
+  elseif(NOT EXISTS "${ExternalData_CUSTOM_SCRIPT_${key}}")
+    set(err 1)
+    set(msg "No '${ExternalData_CUSTOM_SCRIPT_${key}}' exists!")
+  else()
+    set(ExternalData_CUSTOM_LOCATION "${loc}")
+    set(ExternalData_CUSTOM_FILE "${file}")
+    unset(ExternalData_CUSTOM_ERROR)
+    include("${ExternalData_CUSTOM_SCRIPT_${key}}")
+    if(DEFINED ExternalData_CUSTOM_ERROR)
+      set(err 1)
+      set(msg "${ExternalData_CUSTOM_ERROR}")
+    else()
+      set(err 0)
+      set(msg "no error")
+    endif()
+  endif()
+  set("${err_var}" "${err}" PARENT_SCOPE)
+  set("${msg_var}" "${msg}" PARENT_SCOPE)
+endfunction()
+
+function(_ExternalData_get_from_object_store hash algo var_obj var_success)
+  # Search all object stores for an existing object.
+  foreach(dir ${ExternalData_OBJECT_STORES})
+    set(obj "${dir}/${algo}/${hash}")
+    if(EXISTS "${obj}")
+      message(STATUS "Found object: \"${obj}\"")
+      set("${var_obj}" "${obj}" PARENT_SCOPE)
+      set("${var_success}" 1 PARENT_SCOPE)
+      return()
+    endif()
+  endforeach()
+endfunction()
+
+function(_ExternalData_download_object name hash algo var_obj var_success var_errorMsg)
+  # Search all object stores for an existing object.
+  set(success 1)
+  foreach(dir ${ExternalData_OBJECT_STORES})
+    set(obj "${dir}/${algo}/${hash}")
+    if(EXISTS "${obj}")
+      message(STATUS "Found object: \"${obj}\"")
+      set("${var_obj}" "${obj}" PARENT_SCOPE)
+      set("${var_success}" "${success}" PARENT_SCOPE)
+      return()
+    endif()
+  endforeach()
+
+  # Download object to the first store.
+  list(GET ExternalData_OBJECT_STORES 0 store)
+  set(obj "${store}/${algo}/${hash}")
+
+  _ExternalData_random(random)
+  set(tmp "${obj}.tmp${random}")
+  set(found 0)
+  set(tried "")
+  foreach(url_template IN LISTS ExternalData_URL_TEMPLATES)
+    string(REPLACE "%(hash)" "${hash}" url_tmp "${url_template}")
+    string(REPLACE "%(algo)" "${algo}" url "${url_tmp}")
+    if(url MATCHES "^(.*)%\\(algo:([A-Za-z_][A-Za-z0-9_]*)\\)(.*)$")
+      set(lhs "${CMAKE_MATCH_1}")
+      set(key "${CMAKE_MATCH_2}")
+      set(rhs "${CMAKE_MATCH_3}")
+      if(DEFINED ExternalData_URL_ALGO_${algo}_${key})
+        set(url "${lhs}${ExternalData_URL_ALGO_${algo}_${key}}${rhs}")
+      else()
+        set(url "${lhs}${algo}${rhs}")
+      endif()
+    endif()
+    string(REGEX REPLACE "((https?|ftp)://)([^@]+@)?(.*)" "\\1\\4" secured_url "${url}")
+    message(STATUS "Fetching \"${secured_url}\"")
+    if(url MATCHES "^ExternalDataCustomScript://([A-Za-z_][A-Za-z0-9_]*)/(.*)$")
+      _ExternalData_custom_fetch("${CMAKE_MATCH_1}" "${CMAKE_MATCH_2}" "${tmp}" err errMsg)
+    else()
+      _ExternalData_download_file("${url}" "${tmp}" err errMsg)
+    endif()
+    set(tried "${tried}\n  ${url}")
+    if(err)
+      set(tried "${tried} (${errMsg})")
+    else()
+      # Verify downloaded object.
+      _ExternalData_compute_hash(dl_hash "${algo}" "${tmp}")
+      if("${dl_hash}" STREQUAL "${hash}")
+        set(found 1)
+        break()
+      else()
+        set(tried "${tried} (wrong hash ${algo}=${dl_hash})")
+        if("$ENV{ExternalData_DEBUG_DOWNLOAD}" MATCHES ".")
+          file(RENAME "${tmp}" "${store}/${algo}/${dl_hash}")
+        endif()
+      endif()
+    endif()
+    file(REMOVE "${tmp}")
+  endforeach()
+
+  get_filename_component(dir "${name}" PATH)
+  set(staged "${dir}/.ExternalData_${algo}_${hash}")
+
+  set(success 1)
+  if(found)
+    file(RENAME "${tmp}" "${obj}")
+    message(STATUS "Downloaded object: \"${obj}\"")
+  elseif(EXISTS "${staged}")
+    set(obj "${staged}")
+    message(STATUS "Staged object: \"${obj}\"")
+  else()
+    if(NOT tried)
+      set(tried "\n  (No ExternalData_URL_TEMPLATES given)")
+    endif()
+    set(success 0)
+    set("${var_errorMsg}" "Object ${algo}=${hash} not found at:${tried}" PARENT_SCOPE)
+  endif()
+
+  set("${var_obj}" "${obj}" PARENT_SCOPE)
+  set("${var_success}" "${success}" PARENT_SCOPE)
+endfunction()
+
+if("${ExternalData_ACTION}" STREQUAL "fetch")
+  foreach(v ExternalData_OBJECT_STORES file name exts)
+    if(NOT DEFINED "${v}")
+      message(FATAL_ERROR "No \"-D${v}=\" value provided!")
+    endif()
+  endforeach()
+
+  string(REPLACE "+" ";" exts_list "${exts}")
+  set(succeeded 0)
+  set(errorMsg "")
+  set(hash_list )
+  set(algo_list )
+  set(hash )
+  set(algo )
+  foreach(ext ${exts_list})
+    file(READ "${name}${ext}" hash)
+    string(STRIP "${hash}" hash)
+
+    if("${ext}" MATCHES "^\\.(${_ExternalData_REGEX_EXT})$")
+      string(TOUPPER "${CMAKE_MATCH_1}" algo)
+      string(REPLACE "-" "_" algo "${algo}")
+    else()
+      message(FATAL_ERROR "Unknown hash algorithm extension \"${ext}\"")
+    endif()
+
+    list(APPEND hash_list ${hash})
+    list(APPEND algo_list ${algo})
+  endforeach()
+
+  list(LENGTH exts_list num_extensions)
+  math(EXPR exts_range "${num_extensions} - 1")
+  foreach(ii RANGE 0 ${exts_range})
+    list(GET hash_list ${ii} hash)
+    list(GET algo_list ${ii} algo)
+    _ExternalData_get_from_object_store("${hash}" "${algo}" obj succeeded)
+    if(succeeded)
+      break()
+    endif()
+  endforeach()
+  if(NOT succeeded)
+    foreach(ii RANGE 0 ${exts_range})
+      list(GET hash_list ${ii} hash)
+      list(GET algo_list ${ii} algo)
+      _ExternalData_download_object("${name}" "${hash}" "${algo}"
+        obj succeeded algoErrorMsg)
+      set(errorMsg "${errorMsg}\n${algoErrorMsg}")
+      if(succeeded)
+        break()
+      endif()
+    endforeach()
+  endif()
+  if(NOT succeeded)
+    message(FATAL_ERROR "${errorMsg}")
+  endif()
+  # Check if file already corresponds to the object.
+  set(stamp "-hash-stamp")
+  set(file_up_to_date 0)
+  if(EXISTS "${file}" AND EXISTS "${file}${stamp}")
+    file(READ "${file}${stamp}" f_hash)
+    string(STRIP "${f_hash}" f_hash)
+    if("${f_hash}" STREQUAL "${hash}")
+      set(file_up_to_date 1)
+    endif()
+  endif()
+
+  if(file_up_to_date)
+    # Touch the file to convince the build system it is up to date.
+    execute_process(COMMAND "${CMAKE_COMMAND}" -E touch "${file}")
+  else()
+    _ExternalData_link_or_copy("${obj}" "${file}")
+  endif()
+
+  # Atomically update the hash/timestamp file to record the object referenced.
+  _ExternalData_atomic_write("${file}${stamp}" "${hash}\n")
+elseif("${ExternalData_ACTION}" STREQUAL "local")
+  foreach(v file name)
+    if(NOT DEFINED "${v}")
+      message(FATAL_ERROR "No \"-D${v}=\" value provided!")
+    endif()
+  endforeach()
+  _ExternalData_link_or_copy("${name}" "${file}")
+else()
+  message(FATAL_ERROR "Unknown ExternalData_ACTION=[${ExternalData_ACTION}]")
+endif()
diff --git a/CMake/ExternalData_config.cmake.in b/CMake/ExternalData_config.cmake.in
new file mode 100644
index 0000000..18be6b3
--- /dev/null
+++ b/CMake/ExternalData_config.cmake.in
@@ -0,0 +1,6 @@
+set(ExternalData_OBJECT_STORES "@ExternalData_OBJECT_STORES@")
+set(ExternalData_URL_TEMPLATES "@ExternalData_URL_TEMPLATES@")
+set(ExternalData_TIMEOUT_INACTIVITY "@ExternalData_TIMEOUT_INACTIVITY@")
+set(ExternalData_TIMEOUT_ABSOLUTE "@ExternalData_TIMEOUT_ABSOLUTE@")
+set(ExternalData_NO_SYMLINKS "@ExternalData_NO_SYMLINKS@")
+ at _ExternalData_CONFIG_CODE@
diff --git a/CMake/FindCSharp.cmake b/CMake/FindCSharp.cmake
new file mode 100644
index 0000000..ba15f68
--- /dev/null
+++ b/CMake/FindCSharp.cmake
@@ -0,0 +1,72 @@
+#
+# A CMake Module for finding and using C# (.NET and Mono).
+#
+# The following variables are set:
+#   CSHARP_FOUND - set to ON if C# is found
+#   CSHARP_USE_FILE - the path to the C# use file
+#   CSHARP_TYPE - the type of the C# compiler (eg. ".NET" or "Mono")
+#   CSHARP_VERSION - the version of the C# compiler (eg. "v4.0" or "2.10.2")
+#   CSHARP_COMPILER - the path to the C# compiler executable (eg. "C:/Windows/Microsoft.NET/Framework/v4.0.30319/csc.exe" or "/usr/bin/gmcs")
+#   CSHARP_INTERPRETER - the path to interpreter needed to run CSharp executables
+#   CSHARP_PLATFORM - the C# target platform
+#   CSHARP_SDK - the SDK commandline switch (empty for .NET, for Mono eg. "/sdk:2" or "/sdk:4")
+#
+# This file is based on the work of GDCM:
+#   http://gdcm.svn.sf.net/viewvc/gdcm/trunk/CMake/FindCSharp.cmake
+# Copyright (c) 2006-2010 Mathieu Malaterre <mathieu.malaterre at gmail.com>
+#
+
+# TODO: ADD ABILITY TO SELECT WHICH C# COMPILER eg. .NET or Mono (if both exist). For the moment, .NET is selected above Mono.
+
+# Make sure find package macros are included
+include( FindPackageHandleStandardArgs )
+
+unset( CSHARP_COMPILER CACHE )
+unset( CSHARP_INTERPRETER CACHE )
+unset( CSHARP_TYPE CACHE )
+unset( CSHARP_VERSION CACHE )
+unset( CSHARP_FOUND CACHE )
+
+# By default use anycpu platform, allow the user to override
+set( CSHARP_PLATFORM "anycpu" CACHE STRING "C# target platform: x86, x64, anycpu, or itanium" )
+if( NOT ${CSHARP_PLATFORM} MATCHES "x86|x64|anycpu|itanium" )
+  message( FATAL_ERROR "The C# target platform '${CSHARP_PLATFORM}' is not valid. Please enter one of the following: x86, x64, anycpu, or itanium" )
+endif( )
+
+if( WIN32 )
+  find_package( DotNetFrameworkSdk )
+  if( NOT CSHARP_DOTNET_FOUND )
+    find_package( Mono )
+  endif( )
+else( UNIX )
+  find_package( Mono )
+endif( )
+
+if( CSHARP_DOTNET_FOUND )
+  set( CSHARP_TYPE ".NET" CACHE STRING "Using the .NET compiler" )
+  set( CSHARP_VERSION ${CSHARP_DOTNET_VERSION} CACHE STRING "C# .NET compiler version" FORCE )
+  set( CSHARP_COMPILER ${CSHARP_DOTNET_COMPILER_${CSHARP_DOTNET_VERSION}} CACHE STRING "Full path to .NET compiler" FORCE )
+  set( CSHARP_INTERPRETER "" CACHE INTERNAL "Interpretor not required for .NET" FORCE )
+elseif( CSHARP_MONO_FOUND )
+  set( CSHARP_TYPE "Mono" CACHE STRING "Using the Mono compiler" )
+  set( CSHARP_VERSION ${CSHARP_MONO_VERSION} CACHE STRING "C# Mono compiler version" FORCE )
+  set( CSHARP_COMPILER ${CSHARP_MONO_COMPILER_${CSHARP_MONO_VERSION}} CACHE STRING "Full path to Mono compiler" FORCE )
+  set( CSHARP_INTERPRETER ${CSHARP_MONO_INTERPRETER_${CSHARP_MONO_VERSION}} CACHE STRING "Full path to Mono interpretor" FORCE )
+  set( CSHARP_SDK "/sdk:2" CACHE STRING "C# Mono SDK commandline switch (e.g. /sdk:2, /sdk:4, /sdk:5)" )
+endif( )
+
+# Handle WIN32 specific issues
+if ( WIN32 )
+  if ( CSHARP_COMPILER MATCHES "bat" )
+    set( CSHARP_COMPILER "call ${CSHARP_COMPILER}" )
+  endif ( )
+endif( )
+
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(CSharp DEFAULT_MSG CSHARP_TYPE CSHARP_VERSION CSHARP_COMPILER)
+
+mark_as_advanced( CSHARP_TYPE CSHARP_VERSION CSHARP_COMPILER CSHARP_INTERPRETER CSHARP_PLATFORM CSHARP_SDK )
+
+# Set the USE_FILE path
+# http://public.kitware.com/Bug/view.php?id=7757
+get_filename_component( current_list_path ${CMAKE_CURRENT_LIST_FILE} PATH )
+set( CSHARP_USE_FILE ${current_list_path}/UseCSharp.cmake )
diff --git a/CMake/FindDotNetFrameworkSdk.cmake b/CMake/FindDotNetFrameworkSdk.cmake
new file mode 100644
index 0000000..3d84a53
--- /dev/null
+++ b/CMake/FindDotNetFrameworkSdk.cmake
@@ -0,0 +1,92 @@
+#
+# A CMake Module for finding C# .NET.
+#
+# The following variables are set:
+#   CSHARP_DOTNET_FOUND
+#   CSHARP_DOTNET_COMPILER_${version} eg. "CSHARP_DOTNET_COMPILER_v4.0.30319"
+#   CSHARP_DOTNET_VERSION eg. "v4.0.30319"
+#   CSHARP_DOTNET_VERSIONS eg. "v2.0.50727, v3.5, v4.0.30319"
+#   DotNetFrameworkSdk_USE_FILE
+#
+# Additional references can be found here:
+#   .NET SDK 1.1: http://www.microsoft.com/downloads/details.aspx?FamilyID=9b3a2ca6-3647-4070-9f41-a333c6b9181d&displaylang=en
+#   .NET SDK 2.0: http://www.microsoft.com/downloads/details.aspx?FamilyID=fe6f2099-b7b4-4f47-a244-c96d69c35dec&displaylang=en
+#   .NET SDK 3.5: http://www.microsoft.com/downloads/details.aspx?familyid=333325fd-ae52-4e35-b531-508d977d32a6&displaylang=en
+#   C# Compiler options: http://msdn.microsoft.com/en-us/library/2fdbz5xd(v=VS.71).aspx
+#
+# This file is based on the work of GDCM:
+#   http://gdcm.svn.sf.net/viewvc/gdcm/trunk/CMake/FindDotNETFrameworkSDK.cmake
+# Copyright (c) 2006-2010 Mathieu Malaterre <mathieu.malaterre at gmail.com>
+#
+
+set( csharp_dotnet_valid 1 )
+if( DEFINED CSHARP_DOTNET_FOUND )
+  # The .NET compiler has already been found
+  # It may have been reset by the user, verify it is correct
+  if( NOT DEFINED CSHARP_DOTNET_COMPILER_${CSHARP_DOTNET_VERSION} )
+    set( csharp_dotnet_version_user ${CSHARP_DOTNET_VERSION} )
+    set( csharp_dotnet_valid 0 )
+    set( CSHARP_DOTNET_FOUND 0 )
+    set( CSHARP_DOTNET_VERSION "CSHARP_DOTNET_VERSION-NOTVALID" CACHE STRING "C# .NET compiler version, choices: ${CSHARP_DOTNET_VERSIONS}" FORCE )
+    message( FATAL_ERROR "The C# .NET version '${csharp_dotnet_version_user}' is not valid. Please enter one of the following: ${CSHARP_DOTNET_VERSIONS}" )
+  endif( )
+endif( )
+
+unset( CSHARP_DOTNET_VERSIONS CACHE ) # Clear versions
+
+# Get the framework directory based on platform
+if( ${CSHARP_PLATFORM} MATCHES "x64|itanium" )
+  set( csharp_dotnet_framework_dir "$ENV{windir}/Microsoft.NET/Framework64" )
+else( )
+  set( csharp_dotnet_framework_dir "$ENV{windir}/Microsoft.NET/Framework" )
+endif( )
+
+# Search for .NET versions
+string( REPLACE "\\" "/" csharp_dotnet_framework_dir ${csharp_dotnet_framework_dir} )
+file( GLOB_RECURSE csharp_dotnet_executables "${csharp_dotnet_framework_dir}/csc.exe" )
+list( SORT csharp_dotnet_executables )
+list( REVERSE csharp_dotnet_executables )
+foreach ( csharp_dotnet_executable ${csharp_dotnet_executables} )
+  if( csharp_dotnet_valid )
+    # Extract version number (eg. v4.0.30319)
+    # TODO: Consider using REGEX
+    string( REPLACE "${csharp_dotnet_framework_dir}/" "" csharp_dotnet_version_temp ${csharp_dotnet_executable} )
+    string( REPLACE "/csc.exe" "" csharp_dotnet_version_temp ${csharp_dotnet_version_temp} )
+
+    # Add variable holding executable
+    set( CSHARP_DOTNET_COMPILER_${csharp_dotnet_version_temp} ${csharp_dotnet_executable} CACHE STRING "C# .NET compiler ${csharp_dotnet_version}" FORCE )
+    mark_as_advanced( CSHARP_DOTNET_COMPILER_${csharp_dotnet_version_temp} )
+  endif( )
+  
+  # Create a list of supported compiler versions
+  if( NOT DEFINED CSHARP_DOTNET_VERSIONS )
+    set( CSHARP_DOTNET_VERSIONS "${csharp_dotnet_version_temp}" CACHE STRING "Available C# .NET compiler versions" FORCE )
+  else( )
+    set( CSHARP_DOTNET_VERSIONS "${CSHARP_DOTNET_VERSIONS}, ${csharp_dotnet_version_temp}"  CACHE STRING "Available C# .NET compiler versions" FORCE )
+  endif( )
+  mark_as_advanced( CSHARP_DOTNET_VERSIONS )
+
+  # We found at least one .NET compiler version
+  set( CSHARP_DOTNET_FOUND 1 CACHE INTERNAL "Boolean indicating if C# .NET was found" )
+endforeach( csharp_dotnet_executable )
+
+if( CSHARP_DOTNET_FOUND )
+  # Report the found versions
+  message( STATUS "Found the following C# .NET versions: ${CSHARP_DOTNET_VERSIONS}" )
+
+  # Set the compiler version
+  # Do not force, so that the user can manually select their own version if they wish
+  if ( DEFINED CSHARP_DOTNET_COMPILER_v2.0.50727 )
+    # If available, select .NET v2.0.50727 (this is the minimal version as it supports generics, and allows use of VS2008)
+    set( CSHARP_DOTNET_VERSION "v2.0.50727" CACHE STRING "C# .NET compiler version" )
+  else( )
+    # Select the highest version (first in reverse sorted list)
+    list( GET CSHARP_DOTNET_VERSIONS 0 csharp_dotnet_version_temp )
+    set( CSHARP_DOTNET_VERSION ${csharp_dotnet_version_temp} CACHE STRING "C# .NET compiler version" )
+  endif( )
+  mark_as_advanced( CSHARP_DOTNET_VERSION )
+endif( )
+
+# Set USE_FILE
+get_filename_component( current_list_path ${CMAKE_CURRENT_LIST_FILE} PATH )
+set( DotNetFrameworkSdk_USE_FILE ${current_list_path}/UseDotNetFrameworkSdk.cmake )
diff --git a/CMake/FindGTest.cmake b/CMake/FindGTest.cmake
new file mode 100644
index 0000000..2ae6a9a
--- /dev/null
+++ b/CMake/FindGTest.cmake
@@ -0,0 +1,214 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#.rst:
+# FindGTest
+# ---------
+#
+# Locate the Google C++ Testing Framework.
+#
+# Imported targets
+# ^^^^^^^^^^^^^^^^
+#
+# This module defines the following :prop_tgt:`IMPORTED` targets:
+#
+# ``GTest::GTest``
+#   The Google Test ``gtest`` library, if found; adds Thread::Thread
+#   automatically
+# ``GTest::Main``
+#   The Google Test ``gtest_main`` library, if found
+#
+#
+# Result variables
+# ^^^^^^^^^^^^^^^^
+#
+# This module will set the following variables in your project:
+#
+# ``GTEST_FOUND``
+#   Found the Google Testing framework
+# ``GTEST_INCLUDE_DIRS``
+#   the directory containing the Google Test headers
+#
+# The library variables below are set as normal variables.  These
+# variables may contain debug/optimized keywords when a debugging
+# library is found, or may be the name of targets if Google Test
+# source directory is found.
+#
+# ``GTEST_LIBRARIES``
+#   The Google Test ``gtest`` library; note it may also requires
+#   linking  with an appropriate thread library
+# ``GTEST_MAIN_LIBRARIES``
+#   The Google Test ``gtest_main`` library
+# ``GTEST_BOTH_LIBRARIES``
+#   Both ``gtest`` and ``gtest_main``
+#
+# Cache variables
+# ^^^^^^^^^^^^^^^
+#
+# The following cache variables may also be set:
+#
+# ``GTEST_ROOT``
+#   The root directory of the Google Test installation or installed
+#   source directory (may also be set as an environment variable).
+# ``GTEST_MSVC_SEARCH``
+#   If compiling with MSVC, this variable can be set to ``MT`` or
+#   ``MD`` (the default) to enable searching a GTest build tree
+#
+#
+# Example usage
+# ^^^^^^^^^^^^^
+#
+# ::
+#
+#     enable_testing()
+#     find_package(GTest REQUIRED)
+#
+#     add_executable(foo foo.cc)
+#     target_link_libraries(foo GTest::GTest GTest::Main)
+#
+#     add_test(AllTestsInFoo foo)
+#
+#
+# Deeper integration with CTest
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+#
+# See :module:GoogleTest for information on `GTEST_ADD_TESTS`.
+#
+
+include(GoogleTest)
+
+function(_gtest_append_debugs _endvar _library)
+    if(${_library} AND ${_library}_DEBUG)
+        set(_output optimized ${${_library}} debug ${${_library}_DEBUG})
+    else()
+        set(_output ${${_library}})
+    endif()
+    set(${_endvar} ${_output} PARENT_SCOPE)
+endfunction()
+
+function(_gtest_find_library _name)
+    find_library(${_name}
+        NAMES ${ARGN}
+        HINTS
+            ENV GTEST_ROOT
+            ${GTEST_ROOT}
+        PATH_SUFFIXES ${_gtest_libpath_suffixes}
+    )
+    mark_as_advanced(${_name})
+endfunction()
+
+if(NOT DEFINED GTEST_MSVC_SEARCH)
+    set(GTEST_MSVC_SEARCH MD)
+endif()
+
+set(_gtest_libpath_suffixes lib)
+if(MSVC)
+    if(GTEST_MSVC_SEARCH STREQUAL "MD")
+        list(APPEND _gtest_libpath_suffixes
+            msvc/gtest-md/Debug
+            msvc/gtest-md/Release
+            msvc/x64/Debug
+            msvc/x64/Release
+            )
+    elseif(GTEST_MSVC_SEARCH STREQUAL "MT")
+        list(APPEND _gtest_libpath_suffixes
+            msvc/gtest/Debug
+            msvc/gtest/Release
+            msvc/x64/Debug
+            msvc/x64/Release
+            )
+    endif()
+endif()
+
+
+find_path(GTEST_INCLUDE_DIR gtest/gtest.h
+    HINTS
+        $ENV{GTEST_ROOT}/include
+        ${GTEST_ROOT}/include
+)
+mark_as_advanced(GTEST_INCLUDE_DIR)
+
+if(MSVC AND GTEST_MSVC_SEARCH STREQUAL "MD")
+    # The provided /MD project files for Google Test add -md suffixes to the
+    # library names.
+    _gtest_find_library(GTEST_LIBRARY            gtest-md  gtest)
+    _gtest_find_library(GTEST_LIBRARY_DEBUG      gtest-mdd gtestd)
+    _gtest_find_library(GTEST_MAIN_LIBRARY       gtest_main-md  gtest_main)
+    _gtest_find_library(GTEST_MAIN_LIBRARY_DEBUG gtest_main-mdd gtest_maind)
+else()
+    _gtest_find_library(GTEST_LIBRARY            gtest)
+    _gtest_find_library(GTEST_LIBRARY_DEBUG      gtestd)
+    _gtest_find_library(GTEST_MAIN_LIBRARY       gtest_main)
+    _gtest_find_library(GTEST_MAIN_LIBRARY_DEBUG gtest_maind)
+endif()
+
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTest DEFAULT_MSG GTEST_LIBRARY GTEST_INCLUDE_DIR GTEST_MAIN_LIBRARY)
+
+if(GTEST_FOUND)
+    set(GTEST_INCLUDE_DIRS ${GTEST_INCLUDE_DIR})
+    _gtest_append_debugs(GTEST_LIBRARIES      GTEST_LIBRARY)
+    _gtest_append_debugs(GTEST_MAIN_LIBRARIES GTEST_MAIN_LIBRARY)
+    set(GTEST_BOTH_LIBRARIES ${GTEST_LIBRARIES} ${GTEST_MAIN_LIBRARIES})
+
+    include(CMakeFindDependencyMacro)
+    find_dependency(Threads)
+
+    if(NOT TARGET GTest::GTest)
+        add_library(GTest::GTest UNKNOWN IMPORTED)
+        if(TARGET Threads::Threads)
+          set_target_properties(GTest::GTest PROPERTIES
+            INTERFACE_LINK_LIBRARIES "Threads::Threads")
+        else()
+          set_target_properties(GTest::GTest PROPERTIES
+            INTERFACE_LINK_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}" )
+        endif()
+        if(GTEST_INCLUDE_DIRS)
+            set_target_properties(GTest::GTest PROPERTIES
+                INTERFACE_INCLUDE_DIRECTORIES "${GTEST_INCLUDE_DIRS}")
+        endif()
+        if(EXISTS "${GTEST_LIBRARY}")
+            set_target_properties(GTest::GTest PROPERTIES
+                IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
+                IMPORTED_LOCATION "${GTEST_LIBRARY}")
+        endif()
+        if(EXISTS "${GTEST_LIBRARY_RELEASE}")
+            set_property(TARGET GTest::GTest APPEND PROPERTY
+                IMPORTED_CONFIGURATIONS RELEASE)
+            set_target_properties(GTest::GTest PROPERTIES
+                IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
+                IMPORTED_LOCATION_RELEASE "${GTEST_LIBRARY_RELEASE}")
+        endif()
+        if(EXISTS "${GTEST_LIBRARY_DEBUG}")
+            set_property(TARGET GTest::GTest APPEND PROPERTY
+                IMPORTED_CONFIGURATIONS DEBUG)
+            set_target_properties(GTest::GTest PROPERTIES
+                IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX"
+                IMPORTED_LOCATION_DEBUG "${GTEST_LIBRARY_DEBUG}")
+        endif()
+      endif()
+      if(NOT TARGET GTest::Main)
+          add_library(GTest::Main UNKNOWN IMPORTED)
+          set_target_properties(GTest::Main PROPERTIES
+              INTERFACE_LINK_LIBRARIES "GTest::GTest")
+          if(EXISTS "${GTEST_MAIN_LIBRARY}")
+              set_target_properties(GTest::Main PROPERTIES
+                  IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
+                  IMPORTED_LOCATION "${GTEST_MAIN_LIBRARY}")
+          endif()
+          if(EXISTS "${GTEST_MAIN_LIBRARY_RELEASE}")
+            set_property(TARGET GTest::Main APPEND PROPERTY
+                IMPORTED_CONFIGURATIONS RELEASE)
+            set_target_properties(GTest::Main PROPERTIES
+                IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
+                IMPORTED_LOCATION_RELEASE "${GTEST_MAIN_LIBRARY_RELEASE}")
+          endif()
+          if(EXISTS "${GTEST_MAIN_LIBRARY_DEBUG}")
+            set_property(TARGET GTest::Main APPEND PROPERTY
+                IMPORTED_CONFIGURATIONS DEBUG)
+            set_target_properties(GTest::Main PROPERTIES
+                IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX"
+                IMPORTED_LOCATION_DEBUG "${GTEST_MAIN_LIBRARY_DEBUG}")
+          endif()
+    endif()
+endif()
diff --git a/CMake/FindLuaInterp.cmake b/CMake/FindLuaInterp.cmake
new file mode 100644
index 0000000..ddb610d
--- /dev/null
+++ b/CMake/FindLuaInterp.cmake
@@ -0,0 +1,45 @@
+#.rst:
+# FindLuaInterp
+# --------
+#
+# Find Lua Interpreter
+#
+# ::
+#
+#   LUA_EXECUTABLE     - the full path to lua
+#   LUA_EXECUTABLE_FOUND          - If false, don't attempt to use lua
+#   LUA_EXECUTABLE_VERSION_STRING - version of lua found
+
+find_program(LUA_EXECUTABLE
+  NAMES lua
+  )
+
+if(LUA_EXECUTABLE)
+  ### LUA_VERSION
+  execute_process(
+    COMMAND ${LUA_EXECUTABLE} -v
+    OUTPUT_VARIABLE
+      LUA_EXECUTABLE_VERSION_STRING
+    ERROR_VARIABLE
+      LUA_EXECUTABLE_VERSION_STRING
+    RESULT_VARIABLE
+      LUA_VERSION_RESULT_VARIABLE
+    OUTPUT_STRIP_TRAILING_WHITESPACE
+    ERROR_STRIP_TRAILING_WHITESPACE
+    )
+  if (NOT LUA_VERSION_RESULT_VARIABLE)
+    string( REGEX MATCH "([0-9]*)([.])([0-9]*)([.]*)([0-9]*)"
+      LUA_EXECUTABLE_VERSION
+      ${LUA_EXECUTABLE_VERSION_STRING} )
+  endif()
+endif()
+
+
+# handle the QUIETLY and REQUIRED arguments and set LUA_FOUND to TRUE if
+# all listed variables are TRUE
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(Lua
+                                  REQUIRED_VARS LUA_EXECUTABLE
+                                  VERSION_VAR LUA_VERSION_STRING)
+
+mark_as_advanced(LUA_EXECUTABLE)
diff --git a/CMake/FindMono.cmake b/CMake/FindMono.cmake
new file mode 100644
index 0000000..ed2d1f4
--- /dev/null
+++ b/CMake/FindMono.cmake
@@ -0,0 +1,162 @@
+#
+# A CMake Module for finding Mono.
+#
+# The following variables are set:
+#   CSHARP_MONO_FOUND
+#   CSHARP_MONO_COMPILER_${version} eg. "CSHARP_MONO_COMPILER_2.10.2"
+#   CSHARP_MONO_INTERPRETOR_${version} eg. "CSHARP_MONO_INTERPRETOR_2.10.2"
+#   CSHARP_MONO_VERSION eg. "2.10.2"
+#   CSHARP_MONO_VERSIONS eg. "2.10.2, 2.6.7"
+#
+# Additional references can be found here:
+#   http://www.mono-project.com/Main_Page
+#   http://www.mono-project.com/CSharp_Compiler
+#   http://mono-project.com/FAQ:_Technical (How can I tell where the Mono runtime is installed)
+#
+# This file is based on the work of GDCM:
+#   http://gdcm.svn.sf.net/viewvc/gdcm/trunk/CMake/FindMono.cmake
+# Copyright (c) 2006-2010 Mathieu Malaterre <mathieu.malaterre at gmail.com>
+#
+
+set( csharp_mono_valid 1 )
+if( DEFINED CSHARP_MONO_FOUND )
+  # The Mono compiler has already been found
+  # It may have been reset by the user, verify it is correct
+  if( NOT DEFINED CSHARP_MONO_COMPILER_${CSHARP_MONO_VERSION} )
+    set( csharp_mono_version_user ${CSHARP_MONO_VERSION} )
+    set( csharp_mono_valid 0 )
+    set( CSHARP_MONO_FOUND 0 )
+    set( CSHARP_MONO_VERSION "CSHARP_MONO_VERSION-NOTVALID" CACHE STRING "C# Mono compiler version, choices: ${CSHARP_MONO_VERSIONS}" FORCE )
+    message( FATAL_ERROR "The C# Mono version '${csharp_mono_version_user}' is not valid. Please enter one of the following: ${CSHARP_MONO_VERSIONS}" )
+  endif( NOT DEFINED CSHARP_MONO_COMPILER_${CSHARP_MONO_VERSION} )
+endif( DEFINED CSHARP_MONO_FOUND )
+
+unset( CSHARP_MONO_VERSIONS CACHE ) # Clear versions
+if( WIN32 )
+  # Search for Mono on Win32 systems
+  # See http://mono-project.com/OldReleases and http://www.go-mono.com/mono-downloads/download.html
+  set( csharp_mono_bin_dirs )
+  set( csharp_mono_search_hints
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Novell\\Mono\\2.11.2;SdkInstallRoot]/bin"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Novell\\Mono\\2.10.9;SdkInstallRoot]/bin"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Novell\\Mono\\2.10.8;SdkInstallRoot]/bin"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Novell\\Mono\\2.10.7;SdkInstallRoot]/bin"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Novell\\Mono\\2.10.6;SdkInstallRoot]/bin"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Novell\\Mono\\2.10.5;SdkInstallRoot]/bin"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Novell\\Mono\\2.10.4;SdkInstallRoot]/bin"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Novell\\Mono\\2.10.3;SdkInstallRoot]/bin"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Novell\\Mono\\2.10.2;SdkInstallRoot]/bin"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Novell\\Mono\\2.10.1;SdkInstallRoot]/bin"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Novell\\Mono\\2.10;SdkInstallRoot]/bin"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Novell\\Mono\\2.8;SdkInstallRoot]/bin"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Novell\\Mono\\2.6.7;SdkInstallRoot]/bin"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Novell\\Mono\\2.6.4;SdkInstallRoot]/bin"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Novell\\Mono\\2.6.3;SdkInstallRoot]/bin"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Novell\\Mono\\2.6.1;SdkInstallRoot]/bin"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Novell\\Mono\\2.6;SdkInstallRoot]/bin"
+  )
+  foreach( csharp_mono_search_hint ${csharp_mono_search_hints} )
+    get_filename_component( csharp_mono_bin_dir "${csharp_mono_search_hint}" ABSOLUTE )
+    if ( EXISTS "${csharp_mono_bin_dir}" )
+      set( csharp_mono_bin_dirs ${csharp_mono_bin_dirs} ${csharp_mono_bin_dir} )
+    endif ( EXISTS "${csharp_mono_bin_dir}" )
+  endforeach( csharp_mono_search_hint )
+  # TODO: Use HKLM_LOCAL_MACHINE\Software\Novell\Mono\DefaultCLR to specify default version
+  # get_filename_component( test "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Novell\\Mono;DefaultCLR]" NAME )
+
+  foreach ( csharp_mono_bin_dir ${csharp_mono_bin_dirs} )
+    string( REPLACE "\\" "/" csharp_mono_bin_dir ${csharp_mono_bin_dir} )
+    if (EXISTS "${csharp_mono_bin_dir}/dmcs.bat")
+      set( csharp_mono_executable "${csharp_mono_bin_dir}/dmcs.bat")
+    elseif (EXISTS "${csharp_mono_bin_dir}/gmcs.bat")
+      set( csharp_mono_executable "${csharp_mono_bin_dir}/gmcs.bat")
+    elseif (EXISTS "${csharp_mono_bin_dir}/mcs.bat")
+      set( csharp_mono_executable "${csharp_mono_bin_dir}/mcs.bat")
+    endif (EXISTS "${csharp_mono_bin_dir}/dmcs.bat")
+
+    if( csharp_mono_valid )
+      # Extract version number (eg. 2.10.2)
+      string(REGEX MATCH "([0-9]*)([.])([0-9]*)([.]*)([0-9]*)" csharp_mono_version_temp ${csharp_mono_bin_dir})
+      set( CSHARP_MONO_VERSION ${csharp_mono_version_temp} CACHE STRING "C# Mono compiler version" )
+      mark_as_advanced( CSHARP_MONO_VERSION )
+
+      # Add variable holding executable
+      set( CSHARP_MONO_COMPILER_${csharp_mono_version_temp} ${csharp_mono_executable} CACHE STRING "C# Mono compiler ${csharp_mono_version_temp}" FORCE )
+      mark_as_advanced( CSHARP_MONO_COMPILER_${csharp_mono_version_temp} )
+
+      # Set interpreter
+      if (EXISTS "${csharp_mono_bin_dir}/mono.exe")
+        set( CSHARP_MONO_INTERPRETER_${csharp_mono_version_temp} "${csharp_mono_bin_dir}/mono.exe" CACHE STRING "C# Mono interpreter ${csharp_mono_version_temp}" FORCE )
+        mark_as_advanced( CSHARP_MONO_INTERPRETER_${csharp_mono_version_temp} )
+      endif (EXISTS "${csharp_mono_bin_dir}/mono.exe")
+    endif( csharp_mono_valid )
+
+    # Create a list of supported compiler versions
+    if( NOT DEFINED CSHARP_MONO_VERSIONS )
+      set( CSHARP_MONO_VERSIONS "${csharp_mono_version_temp}" CACHE STRING "Available C# Mono compiler versions" FORCE )
+    else( NOT DEFINED CSHARP_MONO_VERSIONS )
+      set( CSHARP_MONO_VERSIONS "${CSHARP_MONO_VERSIONS}, ${csharp_mono_version_temp}"  CACHE STRING "Available C# Mono versions" FORCE )
+    endif( NOT DEFINED CSHARP_MONO_VERSIONS )
+    mark_as_advanced( CSHARP_MONO_VERSIONS )
+
+    # We found at least one Mono compiler version
+    set( CSHARP_MONO_FOUND 1 CACHE INTERNAL "Boolean indicating if C# Mono was found" )
+  endforeach( csharp_mono_bin_dir )
+
+else( UNIX )
+  # Search for Mono on non-Win32 systems
+  set( chsarp_mono_names "mcs" "mcs.exe" "dmcs" "dmcs.exe" "smcs" "smcs.exe" "gmcs" "gmcs.exe" )
+  set(
+    csharp_mono_paths
+    "/usr/bin/"
+    "/usr/local/bin/"
+    "/usr/lib/mono/2.0"
+    "/opt/novell/mono/bin"
+  )
+  find_program(
+    csharp_mono_compiler # variable is added to the cache, we removed it below
+    NAMES ${chsarp_mono_names}
+    PATHS ${csharp_mono_paths}
+  )
+
+  if( EXISTS ${csharp_mono_compiler} )
+    # Determine version
+    find_program(
+      csharp_mono_interpreter # variable is added to the cache, we removed it below
+      NAMES mono
+      PATHS ${csharp_mono_paths}
+    )
+    if ( EXISTS ${csharp_mono_interpreter} )
+      execute_process(
+        COMMAND ${csharp_mono_interpreter} -V
+        OUTPUT_VARIABLE csharp_mono_version_string
+      )
+      string( REGEX MATCH "([0-9]*)([.])([0-9]*)([.]*)([0-9]*)" csharp_mono_version_temp ${csharp_mono_version_string} )
+      set( CSHARP_MONO_INTERPRETER_${CSHARP_MONO_VERSION} ${csharp_mono_interpreter} CACHE STRING "C# Mono interpreter ${csharp_mono_version_temp}" FORCE )
+      mark_as_advanced( CSHARP_MONO_INTERPRETER_${CSHARP_MONO_VERSION} )
+    endif ( EXISTS ${csharp_mono_interpreter} )
+    unset( csharp_mono_interpreter CACHE )
+
+    # We found Mono compiler
+    set( CSHARP_MONO_VERSION ${csharp_mono_version_temp} CACHE STRING "C# Mono compiler version" )
+    mark_as_advanced( CSHARP_MONO_VERSION )
+    set( CSHARP_MONO_COMPILER_${CSHARP_MONO_VERSION} ${csharp_mono_compiler} CACHE STRING "C# Mono compiler ${CSHARP_MONO_VERSION}" FORCE )
+    mark_as_advanced( CSHARP_MONO_COMPILER_${CSHARP_MONO_VERSION} )
+    set( CSHARP_MONO_VERSIONS ${CSHARP_MONO_VERSION} CACHE STRING "Available C# Mono compiler versions" FORCE )
+    mark_as_advanced( CSHARP_MONO_VERSIONS )
+    set( CSHARP_MONO_FOUND 1 CACHE INTERNAL "Boolean indicating if C# Mono was found" )
+  endif( EXISTS ${csharp_mono_compiler} )
+
+  # Remove temp variable from cache
+  unset( csharp_mono_compiler CACHE )
+
+endif( WIN32 )
+
+if( CSHARP_MONO_FOUND )
+  # Report the found versions
+  message( STATUS "Found the following C# Mono versions: ${CSHARP_MONO_VERSIONS}" )
+endif( CSHARP_MONO_FOUND )
+
+# Set USE_FILE
+get_filename_component( current_list_path ${CMAKE_CURRENT_LIST_FILE} PATH )
+set( Mono_USE_FILE ${current_list_path}/UseMono.cmake )
diff --git a/CMake/FindPythonVirtualEnv.cmake b/CMake/FindPythonVirtualEnv.cmake
new file mode 100644
index 0000000..03df794
--- /dev/null
+++ b/CMake/FindPythonVirtualEnv.cmake
@@ -0,0 +1,53 @@
+#.rst:
+# FindPythonVirtualEnv
+# --------
+#
+# Find Python's VirtualEnv Utility
+#
+# ::
+#
+#   PYTHON_VIRTUALENV_SCRIPT           - the full path to virtualenv
+#   PYTHON_VIRTUALENV_SCRIPT_FOUND     - If false, don't attempt to use lua
+#   PYTHON_VIRTUALENV_VERSION_STRING   - version of lua found
+
+find_program(PYTHON_VIRTUALENV_SCRIPT
+  NAMES virtualenv.py virtualenv
+  )
+
+if(PYTHON_VIRTUALENV_SCRIPT)
+
+  if ("${PYTHON_EXECUTABLE}" STREQUAL "")
+    find_package(PythonInterp REQUIRED)
+  endif()
+
+  ### PYTHON_VIRTUALENV_VERSION
+  execute_process(
+    COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_VIRTUALENV_SCRIPT} --version
+    OUTPUT_VARIABLE
+      PYTHON_VIRTUALENV_VERSION_STRING
+    ERROR_VARIABLE
+      PYTHON_VIRTUALENV_VERSION_STRING
+    RESULT_VARIABLE
+      PYTHON_VIRTUALENV_VERSION_RESULT_VARIABLE
+    OUTPUT_STRIP_TRAILING_WHITESPACE
+    ERROR_STRIP_TRAILING_WHITESPACE
+    )
+  if (PYTHON_VIRTUALENV_VERSION_RESULT_VARIABLE)
+    message(ERROR "Unable to determing PythonVirtualEnv version!\n${PYTHON_VIRTUALENV_VERSION_STRING}")
+    set(PYTHON_VIRTUALENV_VERSION_STRING "")
+  else()
+    string( REGEX MATCH "([0-9]*)([.])([0-9]*)([.]*)([0-9]*)"
+      PYTHON_VIRTUALENV_VERSION
+      ${PYTHON_VIRTUALENV_VERSION_STRING} )
+  endif()
+endif()
+
+
+# handle the QUIETLY and REQUIRED arguments and set PYTHON_VIRTUALENV_FOUND to TRUE if
+# all listed variables are TRUE
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(PythonVirtualEnv
+                                  REQUIRED_VARS PYTHON_VIRTUALENV_SCRIPT
+                                  VERSION_VAR PYTHON_VIRTUALENV_VERSION_STRING)
+
+mark_as_advanced(PYTHON_VIRTUALENV_SCRIPT)
diff --git a/CMake/FindR.cmake b/CMake/FindR.cmake
new file mode 100644
index 0000000..63f37c5
--- /dev/null
+++ b/CMake/FindR.cmake
@@ -0,0 +1,48 @@
+
+#
+# - This module locates an installed R distribution.
+#
+# Defines the following:
+#
+# R_INCLUDE_DIR      - Path to R include directory
+# R_LIBRARIES        - Path to R library
+# R_LIBRARY_BASE     -
+# R_COMMAND          - Path to R command
+# RSCRIPT_EXECUTABLE - Path to Rscript command
+#
+
+
+# Make sure find package macros are included
+include( FindPackageHandleStandardArgs )
+
+set(TEMP_CMAKE_FIND_APPBUNDLE ${CMAKE_FIND_APPBUNDLE})
+set(CMAKE_FIND_APPBUNDLE "NEVER")
+find_program(R_COMMAND R DOC "R executable.")
+if(R_COMMAND)
+  execute_process(WORKING_DIRECTORY . COMMAND ${R_COMMAND} RHOME OUTPUT_VARIABLE R_BASE_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
+  set(R_HOME ${R_BASE_DIR} CACHE PATH "R home directory obtained from R RHOME")
+  mark_as_advanced(R_HOME)
+endif(R_COMMAND)
+
+find_program(RSCRIPT_EXECUTABLE Rscript DOC "Rscript executable.")
+
+set(CMAKE_FIND_APPBUNDLE ${TEMP_CMAKE_FIND_APPBUNDLE})
+
+# R.h gets installed in all sorts of places -
+# ubuntu: /usr/share/R/include, RHEL/Fedora: /usr/include/R/R.h
+find_path(R_INCLUDE_DIR R.h PATHS /usr/local/lib /usr/local/lib64 /usr/share /usr/include ${R_BASE_DIR} PATH_SUFFIXES include R R/include DOC "Path to file R.h")
+find_library(R_LIBRARY_BASE R PATHS ${R_BASE_DIR} PATH_SUFFIXES /lib DOC "R library (example libR.a, libR.dylib, etc.).")
+
+set(R_LIBRARIES ${R_LIBRARY_BASE})
+mark_as_advanced(RSCRIPT_EXECUTABLE R_LIBRARIES R_INCLUDE_DIR R_COMMAND R_LIBRARY_BASE)
+
+
+set( _REQUIRED_R_VARIABLES R_INCLUDE_DIR R_COMMAND )
+
+if( APPLE )
+  # On linux platform some times the libR.so is not available, however
+  # on apple a link error results if the library is linked.
+  list(  APPEND _REQUIRED_R_VARIABLES R_LIBRARIES R_LIBRARY_BASE )
+endif()
+
+find_package_handle_standard_args(R DEFAULT_MSG ${_REQUIRED_R_VARIABLES} )
diff --git a/CMake/GetGitRevisionDescription.cmake b/CMake/GetGitRevisionDescription.cmake
new file mode 100644
index 0000000..0b7a630
--- /dev/null
+++ b/CMake/GetGitRevisionDescription.cmake
@@ -0,0 +1,169 @@
+# - Returns a version string from Git
+#
+# These functions force a re-configure on each git commit so that you can
+# trust the values of the variables in your build system.
+#
+#  get_git_head_revision(<refvar> <hashvar> [<additonal arguments to git describe> ...])
+#
+# Returns the ref and sha hash of the current head revision
+#
+#  git_describe(<var> [<additonal arguments to git describe> ...])
+#
+# Returns the results of git describe on the source tree, and adjusting
+# the output so that it tests false if an error occurs.
+#
+#  git_get_exact_tag(<var> [<additonal arguments to git describe> ...])
+#
+# Returns the results of git describe --exact-match on the source tree,
+# and adjusting the output so that it tests false if there was no exact
+# matching tag.
+#
+# Requires CMake 2.6 or newer (uses the 'function' command)
+#
+# Original Author:
+# 2009-2010 Ryan Pavlik <rpavlik at iastate.edu> <abiryan at ryand.net>
+# http://academic.cleardefinition.com
+# Iowa State University HCI Graduate Program/VRAC
+#
+# Copyright Iowa State University 2009-2010.
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt)
+
+if(__get_git_revision_description)
+  return()
+endif()
+set(__get_git_revision_description YES)
+
+# We must run the following at "include" time, not at function call time,
+# to find the path to this module rather than the path to a calling list file
+get_filename_component(_gitdescmoddir ${CMAKE_CURRENT_LIST_FILE} PATH)
+
+find_package(Git QUIET)
+
+function(get_git_head_revision _refvar _hashvar)
+  if(NOT GIT_EXECUTABLE)
+    set(${_refvar} "GIT-NOTFOUND" PARENT_SCOPE)
+    set(${_hashvar} "GIT-NOTFOUND" PARENT_SCOPE)
+    return()
+  endif()
+
+  set(src_dir ${PROJECT_SOURCE_DIR})
+  set(bin_dir ${PROJECT_BINARY_DIR})
+
+  execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --git-dir
+    WORKING_DIRECTORY ${src_dir}
+    OUTPUT_VARIABLE GIT_DIR
+    ERROR_VARIABLE error
+    RESULT_VARIABLE failed
+    OUTPUT_STRIP_TRAILING_WHITESPACE
+    )
+  if(NOT IS_ABSOLUTE "${GIT_DIR}")
+    set(GIT_DIR "${src_dir}/${GIT_DIR}")
+  endif()
+  if(failed OR NOT EXISTS "${GIT_DIR}/HEAD")
+    # not in git
+    set(${_refvar} "GITDIR-NOTFOUND" PARENT_SCOPE)
+    set(${_hashvar} "GITDIR-NOTFOUND" PARENT_SCOPE)
+    return()
+  endif()
+  set(GIT_DATA "${bin_dir}/CMakeFiles/git-data")
+  if(NOT EXISTS "${GIT_DATA}")
+    file(MAKE_DIRECTORY "${GIT_DATA}")
+  endif()
+  configure_file("${GIT_DIR}/HEAD" "${GIT_DATA}/HEAD" COPYONLY)
+
+  file(STRINGS "${GIT_DIR}/HEAD" head LIMIT_COUNT 1 LIMIT_INPUT 1024)
+  if("${head}" MATCHES "^ref: (.*)$")
+    set(HEAD_REF "${CMAKE_MATCH_1}")
+    if(EXISTS "${GIT_DIR}/${HEAD_REF}")
+      configure_file("${GIT_DIR}/${HEAD_REF}" "${GIT_DATA}/HEAD-REF" COPYONLY)
+    endif()
+  else()
+    set(HEAD_REF "")
+  endif()
+  execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
+    WORKING_DIRECTORY ${src_dir}
+    OUTPUT_VARIABLE HEAD_HASH OUTPUT_STRIP_TRAILING_WHITESPACE
+    ERROR_VARIABLE error
+    RESULT_VARIABLE failed)
+  if(failed)
+    set(HEAD_HASH "HEAD-HASH-NOTFOUND")
+  endif()
+  set(${_refvar} "${HEAD_REF}" PARENT_SCOPE)
+  set(${_hashvar} "${HEAD_HASH}" PARENT_SCOPE)
+endfunction()
+
+# get the number of commits since the file has last been modified
+function(git_commits_since file _commits )
+  get_git_head_revision(ref head)
+
+  set(src_dir ${PROJECT_SOURCE_DIR})
+
+  execute_process(COMMAND ${GIT_EXECUTABLE} rev-list ${head} -n 1 -- ${file}
+    WORKING_DIRECTORY ${src_dir}
+    OUTPUT_VARIABLE tag OUTPUT_STRIP_TRAILING_WHITESPACE
+    ERROR_VARIABLE error
+    RESULT_VARIABLE failed
+    )
+  if(failed)
+    set( tag "")
+  endif()
+
+  execute_process(COMMAND ${GIT_EXECUTABLE} rev-list ${tag}..${head}
+    WORKING_DIRECTORY ${src_dir}
+    OUTPUT_VARIABLE rev_list OUTPUT_STRIP_TRAILING_WHITESPACE
+    ERROR_VARIABLE error
+    RESULT_VARIABLE failed
+    )
+
+  if(failed)
+    set( rev_list "")
+  endif()
+
+  string( REGEX MATCHALL "[a-fA-F0-9]+" rev_list "${rev_list}")
+  list( LENGTH rev_list COUNT)
+
+  set(${_commits} "${COUNT}" PARENT_SCOPE)
+endfunction()
+
+function(git_describe _var)
+  get_git_head_revision(refspec hash)
+  if(NOT GIT_FOUND)
+    set(${_var} "GIT-NOTFOUND"  PARENT_SCOPE)
+    return()
+  endif()
+  if(NOT hash)
+    set(${_var} "HEAD-HASH-NOTFOUND"  PARENT_SCOPE)
+    return()
+  endif()
+
+  set(src_dir ${PROJECT_SOURCE_DIR})
+
+  # TODO sanitize
+  #if((${ARGN}" MATCHES "&&") OR
+  #	(ARGN MATCHES "||") OR
+  #	(ARGN MATCHES "\\;"))
+  #	message("Please report the following error to the project!")
+  #	message(FATAL_ERROR "Looks like someone's doing something nefarious with git_describe! Passed arguments ${ARGN}")
+  #endif()
+
+  #message(STATUS "Arguments to execute_process: ${ARGN}")
+
+  execute_process(COMMAND "${GIT_EXECUTABLE}" describe ${hash} ${ARGN}
+    WORKING_DIRECTORY "${src_dir}"
+    RESULT_VARIABLE res
+    OUTPUT_VARIABLE out
+    ERROR_QUIET
+    OUTPUT_STRIP_TRAILING_WHITESPACE)
+  if(NOT res EQUAL 0)
+    set(out "${out}-${res}-NOTFOUND")
+  endif()
+
+  set(${_var} "${out}" PARENT_SCOPE)
+endfunction()
+
+function(git_get_exact_tag _var)
+  git_describe(out --exact-match ${ARGN})
+  set(${_var} "${out}" PARENT_SCOPE)
+endfunction()
diff --git a/CMake/GoogleTest.cmake b/CMake/GoogleTest.cmake
new file mode 100644
index 0000000..91a3a25
--- /dev/null
+++ b/CMake/GoogleTest.cmake
@@ -0,0 +1,73 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+GoogleTest
+----------
+
+This module defines functions to help use the Google Test infrastructure.
+
+.. command:: gtest_add_tests
+
+  Automatically add tests with CTest by scanning source code for Google test
+  macros.
+
+  ::
+
+    gtest_add_tests(<exe> <args> <files>...)
+
+  ``<exe>``
+    The path to the test executable.
+  ``<args>``
+    A ;-list of extra arguments to be passed to executable.  The entire
+    list must be passed as a single argument.  Enclose it in quotes,
+    or pass ``""`` for no arguments.
+  ``<files>...``
+    A list of source files to search for tests and test fixtures.
+    Alternatively, use ``AUTO`` to specify that ``<exe>`` is the name
+    of a CMake executable target whose sources should be scanned.
+
+Example
+^^^^^^^
+
+.. code-block:: cmake
+
+  include(GoogleTest)
+  set(FooTestArgs --foo 1 --bar 2)
+  add_executable(FooTest FooUnitTest.cc)
+  gtest_add_tests(FooTest "${FooTestArgs}" AUTO)
+
+#]=======================================================================]
+
+function(gtest_add_tests executable extra_args)
+  if(NOT ARGN)
+    message(FATAL_ERROR "Missing ARGN: Read the documentation for GTEST_ADD_TESTS")
+  endif()
+  if(ARGN STREQUAL "AUTO")
+    # obtain sources used for building that executable
+    get_property(ARGN TARGET ${executable} PROPERTY SOURCES)
+  endif()
+  set(gtest_case_name_regex ".*\\( *([A-Za-z_0-9]+) *, *([A-Za-z_0-9]+) *\\).*")
+  set(gtest_test_type_regex "(TYPED_TEST|TEST_?[FP]?)")
+  foreach(source ${ARGN})
+    set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${source})
+    file(READ "${source}" contents)
+    string(REGEX MATCHALL "${gtest_test_type_regex} *\\(([A-Za-z_0-9 ,]+)\\)" found_tests ${contents})
+    foreach(hit ${found_tests})
+      string(REGEX MATCH "${gtest_test_type_regex}" test_type ${hit})
+
+      # Parameterized tests have a different signature for the filter
+      if("x${test_type}" STREQUAL "xTEST_P")
+        string(REGEX REPLACE ${gtest_case_name_regex}  "*/\\1.\\2/*" test_name ${hit})
+      elseif("x${test_type}" STREQUAL "xTEST_F" OR "x${test_type}" STREQUAL "xTEST")
+        string(REGEX REPLACE ${gtest_case_name_regex} "\\1.\\2" test_name ${hit})
+      elseif("x${test_type}" STREQUAL "xTYPED_TEST")
+        string(REGEX REPLACE ${gtest_case_name_regex} "\\1/*.\\2" test_name ${hit})
+      else()
+        message(WARNING "Could not parse GTest ${hit} for adding to CTest.")
+        continue()
+      endif()
+      add_test(NAME ${test_name} COMMAND ${executable} --gtest_filter=${test_name} ${extra_args})
+    endforeach()
+  endforeach()
+endfunction()
diff --git a/CMake/UseCSharp.cmake b/CMake/UseCSharp.cmake
new file mode 100644
index 0000000..bb0e7ee
--- /dev/null
+++ b/CMake/UseCSharp.cmake
@@ -0,0 +1,115 @@
+#
+# A CMake Module for finding and using C# (.NET and Mono).
+#
+# The following global variables are assumed to exist:
+#   CSHARP_SOURCE_DIRECTORY - path to C# sources
+#   CSHARP_BINARY_DIRECTORY - path to place resultant C# binary files
+#
+# The following variables are set:
+#   CSHARP_TYPE - the type of the C# compiler (eg. ".NET" or "Mono")
+#   CSHARP_COMPILER - the path to the C# compiler executable (eg. "C:/Windows/Microsoft.NET/Framework/v4.0.30319/csc.exe")
+#   CSHARP_VERSION - the version number of the C# compiler (eg. "v4.0.30319")
+#
+# The following macros are defined:
+#   CSHARP_ADD_EXECUTABLE( name references [files] [output_dir] ) - Define C# executable with the given name
+#   CSHARP_ADD_LIBRARY( name references [files] [output_dir] ) - Define C# library with the given name
+#
+# Examples:
+#   CSHARP_ADD_EXECUTABLE( MyExecutable "" "Program.cs" )
+#   CSHARP_ADD_EXECUTABLE( MyExecutable "ref1.dll ref2.dll" "Program.cs File1.cs" )
+#   CSHARP_ADD_EXECUTABLE( MyExecutable "ref1.dll;ref2.dll" "Program.cs;File1.cs" )
+#
+# This file is based on the work of GDCM:
+#   http://gdcm.svn.sf.net/viewvc/gdcm/trunk/CMake/UseCSharp.cmake
+# Copyright (c) 2006-2010 Mathieu Malaterre <mathieu.malaterre at gmail.com>
+#
+
+# TODO: ADD SUPPORT FOR LINK LIBRARIES
+
+# Check something was found
+if( NOT CSHARP_COMPILER )
+  message( WARNING "A C# compiler executable was not found on your system" )
+endif( NOT CSHARP_COMPILER )
+
+# Include type-based USE_FILE
+if( CSHARP_TYPE MATCHES ".NET" )
+  include( ${DotNetFrameworkSdk_USE_FILE} )
+elseif ( CSHARP_TYPE MATCHES "Mono" )
+  include( ${Mono_USE_FILE} )
+endif ( CSHARP_TYPE MATCHES ".NET" )
+
+macro( CSHARP_ADD_LIBRARY name )
+  CSHARP_ADD_PROJECT( "library" ${name} ${ARGN} )
+endmacro( CSHARP_ADD_LIBRARY )
+
+macro( CSHARP_ADD_EXECUTABLE name )
+  CSHARP_ADD_PROJECT( "exe" ${name} ${ARGN} )
+endmacro( CSHARP_ADD_EXECUTABLE )
+
+# Private macro
+macro( CSHARP_ADD_PROJECT type name )
+  set( refs "/reference:System.dll" )
+  set( sources )
+  set( sources_dep )
+
+  if( ${type} MATCHES "library" )
+    set( output "dll" )
+  elseif( ${type} MATCHES "exe" )
+    set( output "exe" )
+  endif( ${type} MATCHES "library" )
+
+  # Step through each argument
+  foreach( it ${ARGN} )
+    if( ${it} MATCHES "(.*)(dll)" )
+       # Argument is a dll, add reference
+       list( APPEND refs /reference:${it} )
+    else( )
+      # Argument is a source file
+      if( EXISTS ${it} )
+        list( APPEND sources ${it} )
+        list( APPEND sources_dep ${it} )
+      elseif( EXISTS ${CSHARP_SOURCE_DIRECTORY}/${it} )
+        list( APPEND sources ${CSHARP_SOURCE_DIRECTORY}/${it} )
+        list( APPEND sources_dep ${CSHARP_SOURCE_DIRECTORY}/${it} )
+      elseif( ${it} MATCHES "[*]" )
+        # For dependencies, we need to expand wildcards
+        FILE( GLOB it_glob ${it} )
+        list( APPEND sources ${it} )
+        list( APPEND sources_dep ${it_glob} )
+      elseif( IS_ABSOLUTE ${it} )
+        list( APPEND sources ${it} )
+        list( APPEND sources_dep ${it} )
+      endif( )
+    endif ( )
+  endforeach( )
+
+  # Check we have at least one source
+  list( LENGTH sources_dep sources_length )
+  if ( ${sources_length} LESS 1 )
+    MESSAGE( SEND_ERROR "No C# sources were specified for ${type} ${name}" )
+  endif ()
+  list( SORT sources_dep )
+
+  # Perform platform specific actions
+  if (WIN32)
+    string( REPLACE "/" "\\" sources ${sources} )
+  else (UNIX)
+    string( REPLACE "\\" "/" sources ${sources} )
+  endif (WIN32)
+
+  # Add custom target and command
+  # MESSAGE( STATUS "Adding C# ${type} ${name}: '${CSHARP_COMPILER} /t:${type} /out:${name}.${output} /platform:${CSHARP_PLATFORM} ${CSHARP_SDK} ${refs} ${sources}'" )
+  add_custom_command(
+    COMMENT "Compiling C# ${type} ${name}: '${CSHARP_COMPILER} /t:${type} /out:${name}.${output} /platform:${CSHARP_PLATFORM} ${CSHARP_SDK} ${refs} ${sources}'"
+    OUTPUT ${CSHARP_BINARY_DIRECTORY}/${name}.${output}
+    COMMAND ${CSHARP_COMPILER}
+    ARGS /t:${type} /out:${name}.${output} /platform:${CSHARP_PLATFORM} ${CSHARP_SDK} ${refs} ${sources}
+    WORKING_DIRECTORY ${CSHARP_BINARY_DIRECTORY}
+    DEPENDS ${sources_dep}
+  )
+  add_custom_target(
+    ${name} ALL
+    DEPENDS ${CSHARP_BINARY_DIRECTORY}/${name}.${output}
+    SOURCES ${sources_dep}
+  )
+endmacro( CSHARP_ADD_PROJECT )
diff --git a/CMake/UseDotNetFrameworkSdk.cmake b/CMake/UseDotNetFrameworkSdk.cmake
new file mode 100644
index 0000000..bf3cb52
--- /dev/null
+++ b/CMake/UseDotNetFrameworkSdk.cmake
@@ -0,0 +1,12 @@
+#
+# A CMake Module for using C# .NET.
+#
+# The following variables are set:
+#   (none)
+#
+# This file is based on the work of GDCM:
+#   http://gdcm.svn.sf.net/viewvc/gdcm/trunk/CMake/UseDotNETFrameworkSDK.cmake
+# Copyright (c) 2006-2010 Mathieu Malaterre <mathieu.malaterre at gmail.com>
+#
+
+message( STATUS "Using .NET compiler version ${CSHARP_DOTNET_VERSION}" )
diff --git a/CMake/UseMono.cmake b/CMake/UseMono.cmake
new file mode 100644
index 0000000..7d1ad7f
--- /dev/null
+++ b/CMake/UseMono.cmake
@@ -0,0 +1,16 @@
+#
+# A CMake Module for using Mono.
+#
+# The following variables are set:
+#   (none)
+#
+# Additional references can be found here:
+#   http://www.mono-project.com/Main_Page
+#   http://www.mono-project.com/CSharp_Compiler
+#
+# This file is based on the work of GDCM:
+#   http://gdcm.svn.sf.net/viewvc/gdcm/trunk/CMake/FindMono.cmake
+# Copyright (c) 2006-2010 Mathieu Malaterre <mathieu.malaterre at gmail.com>
+#
+
+message( STATUS "Using Mono compiler version ${CSHARP_MONO_VERSION}" )
\ No newline at end of file
diff --git a/CMake/VariableList.cmake b/CMake/VariableList.cmake
new file mode 100644
index 0000000..e33f156
--- /dev/null
+++ b/CMake/VariableList.cmake
@@ -0,0 +1,61 @@
+
+#
+# Function converts a list of cmake cache varibles to a string of
+# cmake code which set each cmake cache variable. The output in cache
+# is suitable to be writen to a file for "-C file" command line
+# argument for cmake.
+#
+function( VariableListToCache var_list cache )
+  foreach( var IN LISTS ${var_list} )
+    if( DEFINED ${var} )
+      set( value "${${var}}" )
+      get_property( type CACHE ${var} PROPERTY TYPE )
+      get_property( advanced CACHE ${var} PROPERTY ADVANCED )
+      get_property( helpstring CACHE ${var} PROPERTY HELPSTRING )
+      get_property( strings CACHE ${var} PROPERTY STRINGS )
+
+      # apply escape sequences
+      foreach( e "\\" "(" ")" "#" "$" "^" "@" )
+        STRING( REPLACE "${e}" "\\${e}" value "${value}" )
+      endforeach()
+
+      if ( "${type}" STREQUAL "" )
+        set( type STRING )
+      endif()
+
+      set( _cache "${_cache}
+set( ${var} \"${value}\" CACHE \"${type}\" \"${helpstring}\" FORCE )")
+
+      if( "${advanced}" )
+              set( _cache "${_cache}
+  mark_as_advanced( ${var} )")
+       endif()
+       if( NOT "${strings}" STREQUAL "" )
+              set( _cache "${_cache}
+  set_property(CACHE ${var} PROPERTY STRINGS \"${strings}\")")
+       endif()
+    endif()
+  endforeach()
+  set( ${cache} "${_cache}" PARENT_SCOPE)
+endfunction( )
+
+#
+# Function which converts a list a cmake cache variable into a list of
+# "-Dvar:type=value;" suitable for command line initialization.
+#
+function( VariableListToArgs var_list args )
+  foreach( var IN LISTS ${var_list} )
+    if( DEFINED ${var} AND NOT ${var} STREQUAL "" ) # if variable has been set
+      get_property( type CACHE ${var} PROPERTY TYPE )
+      if (NOT "${type}" STREQUAL "")
+        set(type ":${type}")
+      else()
+        set(type ":UNINITIALIZED")
+      endif()
+      set(value ${${var}})
+      STRING( REPLACE ";" "$<SEMICOLON>" value "${value}" )
+      list( APPEND _args "-D${var}:${type}=${value}" )
+    endif()
+  endforeach()
+  set( ${args} "${_args}" PARENT_SCOPE)
+endfunction( )
diff --git a/CMake/pre-commit b/CMake/pre-commit
new file mode 100755
index 0000000..139e6ad
--- /dev/null
+++ b/CMake/pre-commit
@@ -0,0 +1,8 @@
+#!/bin/sh
+echo 'Your work tree has not been configured for SimpleITK development.
+Paste the following commands into a shell:
+
+ ./Utilities/SetupForDevelopment.sh
+
+See https://www.itk.org/Wiki/ITK/Git/Develop for more details.'
+exit 1
diff --git a/CMake/same_uint64_ulong.cxx b/CMake/same_uint64_ulong.cxx
new file mode 100644
index 0000000..23c575a
--- /dev/null
+++ b/CMake/same_uint64_ulong.cxx
@@ -0,0 +1,13 @@
+#include <stdint.h>
+
+// This program compiles when unsignedlong and uint64_t are the same type
+
+template <typename T, typename U > struct IsSame;
+template< typename T >
+struct IsSame<T, T> { };
+
+int main( void )
+{
+  IsSame<unsigned long, uint64_t> FailsWhenNotSameTypes;
+  return 0;
+}
diff --git a/CMake/sitkAddTest.cmake b/CMake/sitkAddTest.cmake
new file mode 100644
index 0000000..b7260f0
--- /dev/null
+++ b/CMake/sitkAddTest.cmake
@@ -0,0 +1,290 @@
+include(sitkExternalData)
+include(CMakeParseArguments)
+
+set(SimpleITK_DATA_ROOT ${SimpleITK_SOURCE_DIR}/Testing/Data)
+
+#-----------------------------------------------------------------------------
+# SimpleITK wrapper for add_test that adds support for external data,
+# and post comparison processes.
+#
+# ARGUMENTS
+#
+# [ADD_TEST ARGUMENTS...]
+#   The first arguments are passed to cmake's add_test function with
+#   support for the DATA{} references to external data
+# TRANSFORM_COMPARE <test transform> <baseline displacement> [tolerance]
+function(sitk_add_test)
+  set(options "")
+  set(oneValueArgs "NAME")
+  set(multiValueArgs COMMAND TRANSFORM_COMPARE)
+  cmake_parse_arguments("_" "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
+
+  if ( NOT "${__TRANSFORM_COMPARE}" STREQUAL "" )
+    set(COMPARE_ARGS ${COMPARE_ARGS} --compareTransform ${__TRANSFORM_COMPARE})
+  endif()
+
+  if (COMPARE_ARGS)
+    set(__COMMAND $<TARGET_FILE:sitkCompareDriver> ${COMPARE_ARGS} -- ${__COMMAND})
+  endif()
+
+   # Add test with data in the SimpleITKData group.
+  ExternalData_add_test(SimpleITKData NAME ${__NAME} COMMAND ${__COMMAND} ${__UNPARSED_ARGUMENTS})
+
+
+endfunction()
+
+
+#
+# This is a function which set up the environment for executing python examples and tests
+#
+function(sitk_add_python_test name)
+
+  if ( NOT WRAP_PYTHON )
+    return()
+  endif()
+
+  set(command "${SimpleITK_PYTHON_TEST_EXECUTABLE}")
+
+  # add extra command which may be needed on some systems
+  if(CMAKE_OSX_ARCHITECTURES)
+    list(GET CMAKE_OSX_ARCHITECTURES 0 test_arch)
+    set(command arch -${test_arch} ${command})
+  endif()
+
+  sitk_add_test(NAME Python.${name}
+    COMMAND "${ITK_TEST_DRIVER}"
+    ${command}
+    ${ARGN}
+    )
+  set_property(TEST Python.${name}
+      PROPERTY ENVIRONMENT SITK_NOSHOW=YES
+      )
+  if (NOT SimpleITK_PYTHON_USE_VIRTUALENV)
+    set_property(TEST Python.${name}
+      APPEND PROPERTY ENVIRONMENT PYTHONPATH=${SimpleITK_BINARY_DIR}/Wrapping/Python
+      )
+  endif()
+
+endfunction()
+
+
+#
+# This is a function which set up the enviroment for executing lua examples and tests
+#
+function(sitk_add_lua_test name)
+
+  if ( NOT WRAP_LUA )
+    return()
+  endif()
+
+  set(command "${LUA_EXECUTABLE}")
+
+  # add extra command which may be needed on some systems
+  if(CMAKE_OSX_ARCHITECTURES)
+    list(GET CMAKE_OSX_ARCHITECTURES 0 test_arch)
+    set(command arch -${test_arch} ${command})
+  endif()
+
+  sitk_add_test(NAME Lua.${name}
+    COMMAND "${ITK_TEST_DRIVER}"
+    ${command}
+    ${ARGN}
+    )
+  set_property(TEST Lua.${name}
+    PROPERTY ENVIRONMENT LUA_CPATH=$<TARGET_FILE:SimpleITKLuaModule_LUA>
+    )
+  set_property(TEST Lua.${name}
+    APPEND PROPERTY ENVIRONMENT SITK_NOSHOW=YES
+    )
+endfunction()
+
+
+#
+# This is a function which set up the enviroment for executing ruby examples and tests
+#
+function(sitk_add_ruby_test name)
+
+  if ( NOT WRAP_RUBY )
+    return()
+  endif()
+
+  set(command "${RUBY_EXECUTABLE}")
+
+  # add extra command which may be needed on some systems
+  if(CMAKE_OSX_ARCHITECTURES)
+    list(GET CMAKE_OSX_ARCHITECTURES 0 test_arch)
+    set(command arch -${test_arch} ${command})
+  endif()
+
+  sitk_add_test(NAME Ruby.${name}
+    COMMAND "${ITK_TEST_DRIVER}"
+    ${command}
+    ${ARGN}
+    )
+
+  set_property(TEST Ruby.${name}
+    PROPERTY ENVIRONMENT RUBYLIB=$<TARGET_FILE_DIR:simpleitk_RUBY>
+    )
+endfunction()
+
+
+#
+# This is a function which set up the enviroment for executing TCL examples and tests
+#
+function(sitk_add_tcl_test name)
+
+  if ( NOT WRAP_TCL )
+    return()
+  endif()
+
+  set(command "$<TARGET_FILE:SimpleITKTclsh>")
+
+  # add extra command which may be needed on some systems
+  if(CMAKE_OSX_ARCHITECTURES)
+    list(GET CMAKE_OSX_ARCHITECTURES 0 test_arch)
+    set(command arch -${test_arch} ${command})
+  endif()
+
+  sitk_add_test(NAME Tcl.${name}
+    COMMAND "${ITK_TEST_DRIVER}"
+    ${command}
+    ${ARGN}
+    )
+endfunction()
+
+
+#
+# This is a function which set up the enviroment for executing JAVA examples and tests
+#
+function(sitk_add_java_test name java_file)
+
+  if ( NOT WRAP_JAVA )
+    return()
+  endif()
+
+  # the root is with out extension or path, it is also assumed to the the name of the main class
+  get_filename_component( _java_class ${java_file} NAME_WE )
+  set( _java_file_class "${_java_class}.class" )
+  set( _class_path "${CMAKE_CURRENT_BINARY_DIR}" )
+  set(JAR_FILE "simpleitk-${SimpleITK_VERSION}.jar")  # from target?
+
+  set( _JAVA_LIBRARY_PATH  "$<TARGET_FILE_DIR:SimpleITKJava_JAVA>")
+  if(WIN32)
+    set( _JAVA_CLASSPATH "${SimpleITK_BINARY_DIR}/Wrapping/Java/${JAR_FILE}$<SEMICOLON>${_class_path}" )
+  else()
+    set( _JAVA_CLASSPATH "${SimpleITK_BINARY_DIR}/Wrapping/Java/${JAR_FILE}:${_class_path}" )
+  endif()
+
+  if (NOT TARGET ${_java_class}Java)
+
+    add_custom_command(
+      OUTPUT "${_class_path}/${_java_file_class}"
+      COMMAND "${CMAKE_COMMAND}"
+        ARGS -E remove -f "${_class_path}/${_java_file_class}"
+      COMMAND "${Java_JAVAC_EXECUTABLE}"
+        ARGS -classpath "${_JAVA_CLASSPATH}"
+          -d "${_class_path}"
+          "${java_file}"
+      DEPENDS ${java_file} ${SWIG_MODULE_SimpleITKJava_TARGET_NAME} org_itk_simple_jar
+      COMMENT "Building ${_class_path}/${_java_file_class}"
+      )
+    add_custom_target( ${_java_class}Java ALL
+      DEPENDS "${_class_path}/${_java_file_class}"
+      SOURCES ${java_file}
+      )
+  endif()
+
+
+  sitk_add_test(NAME Java.${name}
+    COMMAND "${ITK_TEST_DRIVER}"
+    "${Java_JAVA_EXECUTABLE}"
+    "-Djava.library.path=${_JAVA_LIBRARY_PATH}"
+    "-classpath" "${_JAVA_CLASSPATH}"
+    "${_java_class}"
+    ${ARGN}
+    )
+endfunction()
+
+
+#
+# This is a function which set up the enviroment for executing R examples and tests
+#
+function(sitk_add_r_test name)
+
+  if ( NOT WRAP_R )
+    return()
+  endif()
+
+  set(command "${R_COMMAND}")
+
+  # add extra command which may be needed on some systems
+  if(CMAKE_OSX_ARCHITECTURES)
+    list(GET CMAKE_OSX_ARCHITECTURES 0 test_arch)
+    set(command arch -${test_arch} ${command})
+  endif()
+
+  sitk_add_test(NAME R.${name}
+    COMMAND "${ITK_TEST_DRIVER}"
+    ${command}
+    ${ARGN}
+    )
+
+  file(TO_NATIVE_PATH "${SimpleITK_BINARY_DIR}/Wrapping/R/R_libs" _native_path)
+  set_property(TEST R.${name}
+    PROPERTY ENVIRONMENT R_LIBS=${_native_path}
+    )
+endfunction()
+
+
+#
+# This is a function which compiles the program and set up the
+# enviroment for executing CSharp examples and tests.
+#
+function(sitk_add_csharp_test name csharp_file)
+
+  if ( NOT WRAP_CSHARP )
+    return()
+  endif()
+
+  # the root is with out extension or path
+  get_filename_component( CSHARP_EXECUTABLE ${csharp_file} NAME_WE )
+
+  # make sure the executable has CSharp in it
+  if ( NOT CSHARP_EXECUTABLE MATCHES "CSharp" )
+    set( CSHARP_EXECUTABLE "CSharp${CSHARP_EXECUTABLE}" )
+  endif()
+
+
+  if (NOT TARGET "${CSHARP_EXECUTABLE}")
+
+    # add the target to compile the test
+    csharp_add_executable(
+      "${CSHARP_EXECUTABLE}"
+      SimpleITKCSharpManaged.dll
+      ${csharp_file}
+      )
+  endif()
+
+  # because each executable is it's own target we actually don't
+  # need to make a target depend on this list
+  list( APPEND compiled_csharp_tests "${CSHARP_BINARY_DIRECTORY}/${CSHARP_EXECUTABLE}.exe")
+
+  add_dependencies("${CSHARP_EXECUTABLE}" SimpleITKCSharpManaged)
+
+  # the interpreter is set to "" when none is needed
+  if( CSHARP_INTERPRETER )
+    sitk_add_test(NAME CSharp.${name}
+      COMMAND "${ITK_TEST_DRIVER}"
+      "${CSHARP_INTERPRETER}"
+      "${CSHARP_BINARY_DIRECTORY}/${CSHARP_EXECUTABLE}.exe"
+      ${ARGN}
+      )
+  else ()
+    sitk_add_test(NAME CSharp.${name}
+      COMMAND "${ITK_TEST_DRIVER}"
+      "${CSHARP_BINARY_DIRECTORY}/${CSHARP_EXECUTABLE}.exe"
+      ${ARGN}
+      )
+  endif()
+
+endfunction()
diff --git a/CMake/sitkCheckCXX11.cmake b/CMake/sitkCheckCXX11.cmake
new file mode 100644
index 0000000..e873e1d
--- /dev/null
+++ b/CMake/sitkCheckCXX11.cmake
@@ -0,0 +1,93 @@
+#
+# CMake Module to check for TR1 and C++11 features
+#
+# SITK_HAS_CXX11_STATIC_ASSERT    - True if "static_assert" keyword is supported
+# SITK_HAS_CXX11_FUNCTIONAL       - True if functional header has C++11 features
+# SITK_HAS_CXX11_TYPE_TRAITS
+# SITK_HAS_CXX11_UNORDERED_MAP
+# SITK_HAS_CXX11_NULLPTR          - True if "nullptr" keyword is supported
+# SITK_HAS_CXX11_UNIQUE_PTR
+# SITK_HAS_CXX11_ALIAS_TEMPLATE   - Able to use alias templates
+#
+# SITK_HAS_TR1_SUB_INCLUDE
+#
+# SITK_HAS_TR1_FUNCTIONAL
+# SITK_HAS_TR1_TYPE_TRAITS
+# SITK_HAS_TR1_UNORDERED_MAP
+
+#
+# Function to wrap try compiles on the aggregate cxx test file1
+#
+function(sitkCXX11Test VARIABLE)
+  # use the hash of the dependent cxx flags in the variable name to
+  # cache the results.
+  string(MD5 cmake_cxx_flags_hash "#${CMAKE_CXX_FLAGS}")
+  set(cache_var "${VARIABLE}_${cmake_cxx_flags_hash}")
+
+  if(DEFINED "${cache_var}")
+    set(${VARIABLE} "${${cache_var}}"  CACHE INTERNAL "Using hashed value from TRY_COMPILE")
+  else()
+    message(STATUS "Performing Test ${VARIABLE}")
+    set(requred_definitions "${CMAKE_REQUIRED_DEFINITIONS} -D${VARIABLE}")
+    try_compile(${VARIABLE}
+      "${PROJECT_BINARY_DIR}/CMakeTmp"
+      "${CMAKE_CURRENT_LIST_DIR}/sitk_check_cxx11.cxx"
+      CMAKE_FLAGS
+      -DCOMPILE_DEFINITIONS:STRING=${requred_definitions}
+      OUTPUT_VARIABLE output)
+
+    set(${cache_var} ${${VARIABLE}} CACHE INTERNAL "hashed flags with  try_compile results")
+
+    if(${VARIABLE})
+      message(STATUS "Performing Test ${VARIABLE} - Success")
+    else()
+      message(STATUS "Performing Test ${VARIABLE} - Failed")
+      file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+                 "Performing Test ${VARIABLE} failed with the following output:\n"
+                 "${OUTPUT}\n")
+    endif()
+   endif()
+endfunction()
+
+#
+# Check for CXX11 Features
+#
+sitkCXX11Test(SITK_HAS_CXX11_STATIC_ASSERT)
+sitkCXX11Test(SITK_HAS_CXX11_FUNCTIONAL)
+sitkCXX11Test(SITK_HAS_CXX11_TYPE_TRAITS)
+sitkCXX11Test(SITK_HAS_CXX11_UNORDERED_MAP)
+sitkCXX11Test(SITK_HAS_CXX11_NULLPTR)
+sitkCXX11Test(SITK_HAS_CXX11_UNIQUE_PTR)
+sitkCXX11Test(SITK_HAS_CXX11_ALIAS_TEMPLATE)
+
+
+
+# Microsoft Visual Studio 2008sp1,2010,2012 don't need tr1 as a path
+# prefix to tr1 headers, while libc++
+sitkCXX11Test(SITK_HAS_TR1_SUB_INCLUDE)
+
+set(CMAKE_REQUIRED_DEFINITIONS_SAVE ${CMAKE_REQUIRED_DEFINITIONS})
+if (SITK_HAS_TR1_SUB_INCLUDE)
+  list(APPEND CMAKE_REQUIRED_DEFINITIONS "-DHAS_TR1_SUB_INCLUDE")
+endif()
+
+#
+# Check for TR1 features
+#
+sitkCXX11Test(SITK_HAS_TR1_FUNCTIONAL)
+sitkCXX11Test(SITK_HAS_TR1_TYPE_TRAITS)
+sitkCXX11Test(SITK_HAS_TR1_UNORDERED_MAP)
+
+# restore varaible
+set(CMAKE_REQUIRED_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS_SAVE})
+
+
+if ( (NOT SITK_HAS_TR1_FUNCTIONAL AND NOT SITK_HAS_CXX11_FUNCTIONAL)
+    OR
+    (NOT SITK_HAS_TR1_TYPE_TRAITS AND NOT SITK_HAS_CXX11_TYPE_TRAITS) )
+  message( FATAL_ERROR
+    "SimpleITK requires usage of C++11 or C++ Technical Report 1 (TR1).\n"
+    "It may be available as an optional download for your compiler or difference CXX_FLAGS."
+    "Please see the FAQs for details."
+    "https://www.itk.org/Wiki/SimpleITK/FAQ#Do_I_need_to_download_an_option_package_for_TR1_support.3F\n" )
+endif ( )
diff --git a/CMake/sitkCheckForITKModuleDependencies.cmake b/CMake/sitkCheckForITKModuleDependencies.cmake
new file mode 100644
index 0000000..e7eeb79
--- /dev/null
+++ b/CMake/sitkCheckForITKModuleDependencies.cmake
@@ -0,0 +1,37 @@
+#
+# The list of ITK modules on which SimpleITK is dependent. Dependencies
+# were obtained using the WhatModulesITK.py script
+# (see itk_source_directory/Utilities/Maintenance):
+# WhatModulesITK.py itk_source_directory \
+# $(find simpleitk_binary_directory/SimpleITK-build/Code \
+# -name '*.h' -o -name '*.hxx' -o -name '*.cxx')
+#
+# Don't do "find simpleitk_binary_directory/SimpleITK-build/Code type -f"
+# as this will attempt to analyze all of the object files too.
+#
+# The script does not list the IO modules as they are indirectly included.
+# SimpleITK requires that the ITKReview module be turned on, and ITKReview
+# is dependent on most of the IO modules so we only need to force 'review on' to
+# ensure that we have the 'IO on' too.
+#
+list(APPEND _SITK_REQUIRED_ITK_MODULES
+  ITKCommon
+  ITKDisplacementField
+  ITKIOGDCM
+  ITKIOImageBase
+  ITKIOTransformBase
+  ITKImageCompose
+  ITKImageIntensity
+  ITKLabelMap
+  ITKMetricsv4
+  ITKOptimizersv4
+  ITKRegistrationMethodsv4
+  ITKTransform
+)
+
+foreach(itkDependency ${_SITK_REQUIRED_ITK_MODULES})
+  list(FIND ITK_MODULES_ENABLED ${itkDependency} ITKDependency_FOUND)
+  if(ITKDependency_FOUND EQUAL -1)
+    message(FATAL_ERROR "SimpleITK requires that the ${itkDependency} module be turned on in ITK")
+  endif()
+endforeach()
diff --git a/CMake/sitkCheckRequiredFlags.cmake b/CMake/sitkCheckRequiredFlags.cmake
new file mode 100644
index 0000000..69a53c2
--- /dev/null
+++ b/CMake/sitkCheckRequiredFlags.cmake
@@ -0,0 +1,98 @@
+#
+# Sets the following variables:
+#   SimpleITK_PRIVATE_COMPILE_OPTIONS
+#   SimpleITK_PUBLIC_COMPILE_OPTIONS
+#
+# In particular, this marks the "-std=", and the "-stdlib=" as
+# required, if present and check if c++11 is needed.
+
+set( SimpleITK_PUBLIC_COMPILE_OPTIONS "")
+set( SimpleITK_PRIVATE_COMPILE_OPTIONS "")
+
+include(CheckCXXCompilerFlag)
+
+if(MSVC)
+  # /bigobj is required for windows builds because of the size of
+  # some object files (CastImage for instance)
+  # Also supress the pesky warning about std::vector not being marked
+  # for export in the dll
+  list(APPEND SimpleITK_PRIVATE_COMPILE_OPTIONS /bigobj /wd4251 )
+
+  # Avoid some warnings
+  add_definitions ( -D_SCL_SECURE_NO_WARNINGS )
+
+
+  # force debug linking not to be incremental
+  foreach( _varName
+      CMAKE_EXE_LINKER_FLAGS_DEBUG
+      CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
+      CMAKE_MODULE_LINKER_FLAGS_DEBUG
+      CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
+      CMAKE_SHARED_LINKER_FLAGS_DEBUG
+      CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO )
+    if(DEFINED ${_varName})
+      STRING(REGEX REPLACE "INCREMENTAL(:[a-zA-Z]+)?" "INCREMENTAL:NO" ${_varName} ${${_varName}})
+    endif()
+  endforeach()
+
+endif()
+
+if(MINGW)
+  list(APPEND SimpleITK_PRIVATE_COMPILE_OPTIONS "-Wa,-mbig-obj" )
+endif()
+
+
+#
+# Search CMAKE_CXX_FLAGS for flags that should be considered required,
+# and propagated to other projects, via the
+# SimpleITK_PUBLIC_COMPILE_OPTIONS variable.
+#
+
+string(REPLACE " " ";" cmake_cxx_flags_list "${CMAKE_CXX_FLAGS}")
+
+# list of regular expressions flags that are to be required flags for SimpleITK
+set(required_flags_regex_to_test
+  "^-stdlib="
+  "^-std=" # required to be last
+)
+
+foreach(f ${cmake_cxx_flags_list})
+  foreach( _r ${required_flags_regex_to_test} )
+    string(REGEX MATCH  ${_r} _HAS_FLAG ${f} )
+    if (_HAS_FLAG )
+      list(APPEND SimpleITK_PUBLIC_COMPILE_OPTIONS ${f})
+    endif()
+  endforeach()
+endforeach()
+
+#
+# Check if we need to enable C++11 with a compiler flag
+#
+
+if(NOT _HAS_FLAG)
+
+  check_cxx_compiler_flag( "-std=c++11" CXX_HAS_stdcxx11)
+  if (CXX_HAS_stdcxx11)
+
+    message(STATUS "Checking if c++11 is required...")
+    try_compile(SITK_CHECK_CXX11
+      "${PROJECT_BINARY_DIR}/CMakeTmp"
+      "${CMAKE_CURRENT_LIST_DIR}/sitk_check_cxx11_required.cxx"
+      OUTPUT_VARIABLE OUTPUT)
+    if(${SITK_CHECK_CXX11})
+      message(STATUS "Checking if c++11 is required... NO" )
+    else()
+      message(STATUS "Checking if c++11 is required... YES" )
+      file(APPEND ${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/CMakeError.log
+        "Checking if C++11 required try_compile failed with the following output:\n"
+        "${OUTPUT}\n")
+      list(APPEND SimpleITK_PUBLIC_COMPILE_OPTIONS "-std=c++11")
+      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+    endif()
+
+  endif()
+
+endif()
+
+list(REMOVE_DUPLICATES SimpleITK_PUBLIC_COMPILE_OPTIONS)
+list(REMOVE_DUPLICATES SimpleITK_PRIVATE_COMPILE_OPTIONS)
diff --git a/CMake/sitkCheckSourceTree.cmake b/CMake/sitkCheckSourceTree.cmake
new file mode 100644
index 0000000..eba856c
--- /dev/null
+++ b/CMake/sitkCheckSourceTree.cmake
@@ -0,0 +1,15 @@
+# Install a pre-commit hook to bootstrap commit hooks.
+if(EXISTS "${SimpleITK_SOURCE_DIR}/.git/config" AND
+    NOT EXISTS "${SimpleITK_SOURCE_DIR}/.git/hooks/pre-commit")
+  # Silently ignore the error if the hooks directory is read-only.
+  execute_process(
+    COMMAND ${CMAKE_COMMAND} -E copy ${ITK_SOURCE_DIR}/CMake/pre-commit
+                                     ${ITK_SOURCE_DIR}/.git/hooks/pre-commit
+    OUTPUT_VARIABLE _output
+    ERROR_VARIABLE  _output
+    RESULT_VARIABLE _result
+    )
+  if(_result AND NOT "${_output}" MATCHES "Error copying file")
+    message("${_output}")
+  endif()
+endif()
diff --git a/CMake/sitkCheckTemplateDisambiguation.cmake b/CMake/sitkCheckTemplateDisambiguation.cmake
new file mode 100644
index 0000000..5db1729
--- /dev/null
+++ b/CMake/sitkCheckTemplateDisambiguation.cmake
@@ -0,0 +1,12 @@
+# CMake Module to check for usage of the `template` keyword to
+# disambiguate dependent name look ups.
+#
+# More information can be found about this usage case here:
+#  http://en.cppreference.com/w/cpp/language/dependent_name Under the
+# heading "The typename disambiguator for dependent names".
+
+
+
+try_compile(SITK_HAS_TEMPLATE_DISAMBIGUATOR_DEPENDENT_NAME
+  "${PROJECT_BINARY_DIR}/CMakeTmp"
+  "${CMAKE_CURRENT_LIST_DIR}/sitkCheckTemplateDisambiguation.cxx")
diff --git a/CMake/sitkCheckTemplateDisambiguation.cxx b/CMake/sitkCheckTemplateDisambiguation.cxx
new file mode 100644
index 0000000..e110e8d
--- /dev/null
+++ b/CMake/sitkCheckTemplateDisambiguation.cxx
@@ -0,0 +1,25 @@
+template<typename T>
+struct A
+{
+  template <typename U>
+  void operator()( ) {};
+};
+
+
+template<typename T>
+void g( )
+{
+  A<T> obj;
+
+  // The following `template` keyword is required by C++. But with
+  // MSVC <VS15 appears to have a bug when used with operator()
+  obj.template operator()<T>();
+}
+
+
+int main(void)
+{
+  g<int>();
+
+  return 0;
+}
diff --git a/CMake/sitkCompilerWarningsSettings.cmake b/CMake/sitkCompilerWarningsSettings.cmake
new file mode 100644
index 0000000..421332a
--- /dev/null
+++ b/CMake/sitkCompilerWarningsSettings.cmake
@@ -0,0 +1,86 @@
+# trict-null-sentinel Check the set of common warning flags supported by C and C++ compilers
+# check_compiler_warning_flags(<c_flags_var> <cxx_flags_var>)
+#  <c_flags_var> - variable to store valid C warning flags
+#  <cxx_flags_var> - variable to store valid CXX warning flags
+# This internally calls the check_c_compiler_flag and check_cxx_compiler_flag macros.
+
+# To create a portable build system, it is best to not
+# test for platforms, but to test for features.
+#
+# Instead of testing "if Windows then do this", test for
+# "if the -Wno-invalid-offsetof flag works then use it".
+# You can do that with the CheckCCompilerFlag module,
+# for example:
+
+include(CheckCCompilerFlag)
+include(CheckCXXCompilerFlag)
+
+#
+# this functions loops through the list to add the flags
+# supported by the current compiler
+function(test_cc_flags c_flag_var flag_list)
+  set(local_c_flags "")
+  foreach(flag IN LISTS ${flag_list})
+    string(REPLACE "=" "_" flag_var ${flag} )
+    check_c_compiler_flag(${flag} C_HAS${flag_var})
+    if(${C_HAS${flag_var}})
+      list(APPEND local_c_flags ${flag})
+    endif()
+  endforeach(flag)
+  set(${c_flag_var} "${local_c_flags}" PARENT_SCOPE)
+endfunction(test_cc_flags)
+
+#
+# this functions loops through the list to add the flags
+# supported by the current compiler
+function(test_cxx_flags cxx_flag_var flag_list)
+  set(local_cxx_flags "")
+  foreach(flag IN LISTS ${flag_list})
+    string(REPLACE "=" "_" flag_var ${flag} )
+    check_cxx_compiler_flag(${flag} CXX_HAS${flag_var})
+    if(${CXX_HAS${flag_var}})
+      list(APPEND local_cxx_flags ${flag})
+    endif()
+  endforeach(flag)
+  set(${cxx_flag_var} "${local_cxx_flags}" PARENT_SCOPE)
+endfunction(test_cxx_flags)
+
+
+# On windows, the most verbose compiler options
+# is reporting 1000's of wanings in windows
+# header files, for now, limit the number of
+# warnings to level 3
+if( WIN32 )
+  set(VerboseWarningsFlag -W3 )
+  # A better solution would be to use -Wall,
+  # and then disable warnings one by one
+  # set(VerboseWarningsFlag -Wall -wd4820 -wd4682 )
+else()
+  set(VerboseWarningsFlag -Wall )
+endif()
+
+set(warning_flags_to_test
+  ${VerboseWarningsFlag}
+  -Wno-long-double           # needed on APPLE
+  -Wno-long-long             # needed on gcc 4.5.2
+  -Wno-unused-local-typedefs # needed with gcc 4.8
+  -Wno-strict-overflow       # needed with gcc 4.8
+  -Wextra
+  -Wformat=2
+  -Wno-format-nonliteral
+  -Wunused
+  -Wpointer-arith
+  -Winvalid-pch
+  -Wcast-align
+  -Wdisabled-optimization
+  -Woverloaded-virtual
+  -Wshadow
+  -Wwrite-strings
+  -Wstrict-null-sentinel
+)
+
+# add C++ only flag
+set(cxx_flags_to_test ${warning_flags_to_test} -Wno-invalid-offsetof )
+
+test_cxx_flags(CXX_ADDITIONAL_WARNING_FLAGS cxx_flags_to_test)
+
diff --git a/CMake/sitkConfigureFileBuildtime.cmake b/CMake/sitkConfigureFileBuildtime.cmake
new file mode 100644
index 0000000..6f42c7e
--- /dev/null
+++ b/CMake/sitkConfigureFileBuildtime.cmake
@@ -0,0 +1,61 @@
+
+include(VariableList)
+
+function( configure_file_buildtime filename out_filename )
+
+
+set( regex_1 "^[^@]*(@[^@]+@[^@]*)+[^@]*$")
+
+file ( STRINGS "${filename}" results REGEX "${regex_1}" )
+set( vars "" )
+
+foreach( line ${results})
+
+  set( regex_2 "^[^@]*@([^@]+)@(.*)$" )
+
+  string( REGEX MATCH "${regex_2}" line_match "${line}" )
+  list( APPEND vars ${CMAKE_MATCH_1} )
+  while( CMAKE_MATCH_1 )
+    string( REGEX MATCH "${regex_2}" line_match  "${CMAKE_MATCH_2}" )
+    list( APPEND vars ${CMAKE_MATCH_1} )
+  endwhile()
+    
+  list( SORT vars )
+  list( REMOVE_DUPLICATES vars )
+
+
+
+  
+endforeach()
+
+set( CONFIGUREBUILDTIME_filename ${filename} )
+set( CONFIGUREBUILDTIME_out_filename ${out_filename} )
+
+list( APPEND vars CONFIGUREBUILDTIME_filename CONFIGUREBUILDTIME_out_filename )
+
+VariableListToArgs( vars configure_vars )
+
+file( WRITE "${CMAKE_BINARY_DIR}/CMake/configure_file_buildtime.cmake"
+  "configure_file( \"\${CONFIGUREBUILDTIME_filename}\" \"\${CONFIGUREBUILDTIME_out_filename}\" )" )
+
+set( cmd ${CMAKE_COMMAND} "${configure_vars}"  -P "${CMAKE_BINARY_DIR}/CMake/configure_file_buildtime.cmake")
+
+if( TARGET ConfigureFileBuildtime )
+  add_custom_command( TARGET ConfigureFileBuildtime
+    PRE_BUILD
+    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+    COMMENT "BuildTime Configuration of ${filename} to ${out_filename}"
+    COMMAND  ${cmd}
+    )
+else()
+  add_custom_command(
+    OUTPUT "${out_filename}"
+    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+    DEPENDS "${filename}"
+    COMMENT "BuildTime Configuration of ${filename} to ${out_filename}"
+    COMMAND  ${cmd}
+    )
+  add_custom_target(ConfigureFileBuildtime ALL DEPENDS "${out_filename}" )
+endif()
+
+endfunction()
diff --git a/CMake/sitkExternalData.cmake b/CMake/sitkExternalData.cmake
new file mode 100644
index 0000000..c8aef58
--- /dev/null
+++ b/CMake/sitkExternalData.cmake
@@ -0,0 +1,61 @@
+get_filename_component(_SimpleITKExternalData_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+# Fetch testing data.
+# 2.8.11 required for ExternalData.cmake.
+if( CMAKE_VERSION VERSION_LESS 2.8.11 )
+  message( FATAL_ERROR "BUILD_TESTING ON requires CMake 2.8.11 or newer." )
+endif()
+
+include(ExternalData)
+
+if(NOT ExternalData_OBJECT_STORES)
+  # Use ExternalData_OBJECT_STORES from environment as default.
+  set(ExternalData_OBJECT_STORES_DEFAULT "")
+  if(DEFINED "ENV{ExternalData_OBJECT_STORES}")
+    file(TO_CMAKE_PATH "$ENV{ExternalData_OBJECT_STORES}" ExternalData_OBJECT_STORES_DEFAULT)
+  endif()
+endif()
+
+set(ExternalData_OBJECT_STORES "${ExternalData_OBJECT_STORES_DEFAULT}" CACHE STRING
+  "Semicolon-separated list of local directories holding data objects in the layout %(algo)/%(hash).")
+mark_as_advanced(ExternalData_OBJECT_STORES)
+if(NOT ExternalData_OBJECT_STORES)
+  set(ExternalData_OBJECT_STORES "${CMAKE_BINARY_DIR}/ExternalData/Objects")
+  file(MAKE_DIRECTORY "${ExternalData_OBJECT_STORES}")
+endif()
+list(APPEND ExternalData_OBJECT_STORES
+  # Local data store populated by the ITK pre-commit hook
+  "${CMAKE_CURRENT_SOURCE_DIR}/../.ExternalData"
+  )
+
+set(ExternalData_BINARY_ROOT ${CMAKE_BINARY_DIR}/ExternalData)
+
+set(ExternalData_URL_TEMPLATES "" CACHE STRING
+  "Additional URL templates for the ExternalData CMake script to look for testing data. E.g.
+file:///var/bigharddrive/%(algo)/%(hash)")
+mark_as_advanced(ExternalData_URL_TEMPLATES)
+if(NOT SimpleITK_FORBID_DOWNLOADS)
+  list(APPEND ExternalData_URL_TEMPLATES
+    # Data published by MIDAS
+    "https://placid.nlm.nih.gov/api/rest?method=midas.bitstream.download&checksum=%(hash)&algorithm=%(algo)"
+
+    # Data published on GitHub Pages
+    "https://simpleitk.github.io/SimpleITKExternalData/%(algo)/%(hash)"
+
+    # Data published on Girder
+    "https://data.kitware.com:443/api/v1/file/hashsum/%(algo)/%(hash)/download"
+
+    # Data published by MIDAS
+    "https://midas3.kitware.com/midas/api/rest?method=midas.bitstream.download&checksum=%(hash)&algorithm=%(algo)"
+
+    # Data published by developers using git-gerrit-push.
+    "https://insightsoftwareconsortium.github.io/ITKTestingData/%(algo)/%(hash)"
+    "https://itk.org/files/ExternalData/%(algo)/%(hash)"
+    )
+endif()
+# Tell ExternalData commands not to transform raw files to content links.
+#set(ExternalData_LINK_CONTENT MD5)
+
+# Match series of the form <base>.<ext>, <base>.<n>.<ext> such that <base> may
+# end in a (test) number that is not part of any series numbering.
+set(ExternalData_SERIES_PARSE "()(\\.[^./]*)$")
+set(ExternalData_SERIES_MATCH "(\\.[0-9]+)?")
diff --git a/CMake/sitkForbidDownloadsOption.cmake b/CMake/sitkForbidDownloadsOption.cmake
new file mode 100644
index 0000000..5789783
--- /dev/null
+++ b/CMake/sitkForbidDownloadsOption.cmake
@@ -0,0 +1,16 @@
+
+include(sitkSITKLegacyNaming)
+
+#-----------------------------------------------------------------------------
+# Forbid downloading resources from the network during a build. This helps
+# when building on systems without network connectivity to determine which
+# resources much be obtained manually and made available to the build.
+option(SimpleITK_FORBID_DOWNLOADS "Do not download source code or data from the network" OFF)
+mark_as_advanced(SimpleITK_FORBID_DOWNLOADS)
+sitk_legacy_naming(SimpleITK_FORBID_DOWNLOADS)
+
+macro(sitk_enforce_forbid_downloads _name)
+  if(SimpleITK_FORBID_DOWNLOADS)
+    message(SEND_ERROR "Attempted to download ${_name} when SimpleITK_FORBID_DOWNLOADS is ON")
+  endif()
+endmacro()
diff --git a/CMake/sitkGenerateFilterSource.cmake b/CMake/sitkGenerateFilterSource.cmake
new file mode 100644
index 0000000..48b0c33
--- /dev/null
+++ b/CMake/sitkGenerateFilterSource.cmake
@@ -0,0 +1,305 @@
+
+# Find a Lua executable
+#
+if ( NOT SimpleITK_LUA_EXECUTABLE )
+  set ( SAVE_LUA_EXECUTABLE ${LUA_EXECUTABLE} )
+  get_property( SAVE_LUA_EXECUTABLE_TYPE CACHE LUA_EXECUTABLE PROPERTY TYPE )
+  get_property( SAVE_LUA_EXECUTABLE_DOCSTRING CACHE LUA_EXECUTABLE PROPERTY HELPSTRING )
+
+  find_package( LuaInterp REQUIRED 5.1 )
+  set( SimpleITK_LUA_EXECUTABLE ${LUA_EXECUTABLE} CACHE PATH "Lua executable used for code generation." )
+
+  if (DEFINED SAVE_LUA_EXECUTABLE)
+    set( LUA_EXECUTABLE ${SAVE_LUA_EXECUTABLE}
+      CACHE
+       ${SAVE_LUA_EXECUTABLE_TYPE}
+       ${SAVE_LUA_EXECUTABLE_DOCSTRING}
+       FORCE
+       )
+  else()
+    unset( LUA_EXECUTABLE CACHE )
+  endif()
+endif()
+
+# Get the Lua version
+#
+execute_process(
+  COMMAND ${SimpleITK_LUA_EXECUTABLE} -v
+  OUTPUT_VARIABLE
+    SimpleITK_LUA_EXECUTABLE_VERSION_STRING
+  ERROR_VARIABLE
+    SimpleITK_LUA_EXECUTABLE_VERSION_STRING
+  RESULT_VARIABLE
+    SITK_LUA_VERSION_RESULT_VARIABLE
+  OUTPUT_STRIP_TRAILING_WHITESPACE
+  ERROR_STRIP_TRAILING_WHITESPACE
+  )
+
+# Check that the Lua version is acceptable
+#
+if( NOT SITK_LUA_VERSION_RESULT_VARIABLE )
+  string( REGEX MATCH "([0-9]*)([.])([0-9]*)([.]*)([0-9]*)"
+    SimpleITK_LUA_EXECUTABLE_VERSION
+    ${SimpleITK_LUA_EXECUTABLE_VERSION_STRING} )
+endif()
+
+if( SITK_LUA_VERSION_RESULT_VARIABLE
+      OR
+    NOT ${SimpleITK_LUA_EXECUTABLE_VERSION} VERSION_GREATER "5.1"
+      OR
+    NOT ${SimpleITK_LUA_EXECUTABLE_VERSION} VERSION_LESS "5.2" )
+  message(SEND_ERROR "Lua version 5.1 is required for SimpleITK_LUA_EXECUTABLE_VERSION.")
+endif()
+
+# Sets "out_var" variable name to the value in the json path specified
+# to the json file name. If an error is encountered than the variable
+# is not updated.
+#
+function( get_json_path out_var json_file path )
+
+  execute_process(COMMAND ${SimpleITK_LUA_EXECUTABLE}
+     ${SimpleITK_SOURCE_DIR}/ExpandTemplateGenerator/JSONQuery.lua
+     ${json_file}
+     ${path}
+     OUTPUT_VARIABLE value
+     RESULT_VARIABLE ret
+     ERROR_VARIABLE error_var)
+
+
+   if ( NOT ${ret} )
+     string(REGEX MATCH ":.*\"([^\"]+)\"" _out "${value}" )
+
+     if(_out)
+       set(${out_var} "${CMAKE_MATCH_1}" PARENT_SCOPE)
+     endif()
+
+   else()
+     message( WARNING ${error_var} )
+   endif()
+
+endfunction()
+
+
+###############################################################################
+# This macro returns the list of template components used by a specific
+# template file
+#
+macro( get_dependent_template_components out_var_name json_file input_dir )
+
+  set(${out_var_name})
+
+  ######
+  # Figure out which template file gets used
+  ######
+
+  get_json_path( template_code_filename ${json_file} "template_code_filename")
+
+  if(template_code_filename)
+
+    set(template_file_h "${input_dir}/templates/sitk${template_code_filename}Template.h.in")
+    set(template_file_cxx "${input_dir}/templates/sitk${template_code_filename}Template.cxx.in")
+
+    ######
+    # Get dependencies template files
+    ######
+
+    set(cache_var "_${template_file_h}_${template_file_cxx}_components_cache")
+    if ( NOT ${cache_var} )
+
+      # Get the contents of the file
+      file(READ ${template_file_h} h_contents)
+      file(READ ${template_file_cxx} cxx_contents)
+
+      # For each component, see if it appears in the body of the template file
+      foreach(component ${template_components})
+
+        # Get the filename without the path
+        get_filename_component( filename ${component} NAME )
+
+        if("${h_contents}" MATCHES ".*${filename}.*" OR
+            "${cxx_contents}" MATCHES ".*${filename}.*")
+          set(${cache_var} ${${cache_var}} ${component})
+        endif()
+
+      endforeach(component)
+    endif()
+    set (${out_var_name} ${${cache_var}} )
+
+  else()
+    message(WARNING "Error processing ${json_file}, unable to locate template_code_filename")
+  endif()
+
+endmacro()
+
+
+###############################################################################
+# This macro expands the .h and .cxx files for a given input template
+#
+function( expand_template FILENAME input_dir output_dir library_name )
+
+
+  # Set common variables
+  set ( expand_template_script ${SimpleITK_SOURCE_DIR}/ExpandTemplateGenerator/ExpandTemplate.lua )
+  set ( template_include_dir ${SimpleITK_SOURCE_DIR}/ExpandTemplateGenerator/Components )
+  set ( output_h "${output_dir}/include/sitk${FILENAME}.h" )
+  set ( output_cxx "${output_dir}/src/sitk${FILENAME}.cxx" )
+
+  set ( input_json_file ${input_dir}/json/${FILENAME}.json )
+  set ( template_file_h ${input_dir}/templates/sitkImageFilterTemplate.h.in )
+  set ( template_file_cxx ${input_dir}/templates/sitkImageFilterTemplate.cxx.in )
+
+  get_json_path( itk_module ${input_json_file} itk_module)
+
+  list (FIND ITK_MODULES_ENABLED "${itk_module}" _index)
+
+  if("${itk_module}" STREQUAL "")
+    message(WARNING "Missing \"itk_module\" field in ")
+  elseif (NOT "${itk_module}" STREQUAL "" AND ${_index} EQUAL -1)
+    # required module is not enabled, don't process
+    return()
+  endif()
+
+  # Get the list of template component files for this template
+  get_dependent_template_components(template_deps ${input_json_file} ${input_dir})
+
+  # Make a global list of ImageFilter template filters
+  set ( IMAGE_FILTER_LIST ${IMAGE_FILTER_LIST} ${FILENAME} CACHE INTERNAL "" )
+
+  # validate json files if python is available
+  if ( PYTHON_EXECUTABLE AND NOT PYTHON_VERSION_STRING VERSION_LESS 2.6 )
+    set ( JSON_VALIDATE_COMMAND COMMAND "${PYTHON_EXECUTABLE}" "${SimpleITK_SOURCE_DIR}/Utilities/JSON/JSONValidate.py" "${input_json_file}" )
+  endif ()
+
+  # header
+  add_custom_command (
+    OUTPUT "${output_h}"
+    ${JSON_VALIDATE_COMMAND}
+    COMMAND ${CMAKE_COMMAND} -E remove -f ${output_h}
+    COMMAND ${SimpleITK_LUA_EXECUTABLE} ${expand_template_script} code ${input_json_file} ${input_dir}/templates/sitk ${template_include_dir} Template.h.in ${output_h}
+    DEPENDS ${input_json_file} ${template_deps} ${template_file_h}
+    )
+  # impl
+  add_custom_command (
+    OUTPUT "${output_cxx}"
+    COMMAND ${CMAKE_COMMAND} -E remove -f ${output_cxx}
+    COMMAND ${SimpleITK_LUA_EXECUTABLE} ${expand_template_script} code ${input_json_file} ${input_dir}/templates/sitk ${template_include_dir} Template.cxx.in ${output_cxx}
+    DEPENDS ${input_json_file} ${template_deps} ${template_file_cxx}
+    )
+
+  set ( ${library_name}GeneratedHeader ${${library_name}GeneratedHeader}
+    "${output_h}" CACHE INTERNAL "" )
+
+  set ( ${library_name}GeneratedSource ${${library_name}GeneratedSource}
+    "${output_cxx}" CACHE INTERNAL "" )
+
+  if (NOT "${itk_module}" STREQUAL "")
+    list(APPEND ${library_name}GeneratedSource_${itk_module}  ${output_cxx} )
+    set(${library_name}GeneratedSource_${itk_module} ${${library_name}GeneratedSource_${itk_module}} CACHE INTERNAL "")
+  endif()
+
+
+  # Make the list visible at the global scope
+  set ( GENERATED_FILTER_LIST ${GENERATED_FILTER_LIST} ${FILENAME} CACHE INTERNAL "" )
+endfunction()
+
+
+
+###############################################################################
+# Macro to do all code generation for a given directory
+#
+macro(generate_filter_source)
+
+  # Get the name of the current directory
+  get_filename_component(directory_name ${CMAKE_CURRENT_SOURCE_DIR} NAME)
+
+  # Clear out the GeneratedSource list in the cache
+  set (SimpleITK${directory_name}GeneratedSource "" CACHE INTERNAL "")
+  set (SimpleITK${directory_name}GeneratedHeader "" CACHE INTERNAL "")
+  get_cmake_property( _varNames VARIABLES )
+  foreach (_varName ${_varNames})
+    if(_varName MATCHES "^SimpleITKBasicFiltersGeneratedSource_")
+      unset(${varName} CACHE)
+    endif()
+  endforeach()
+
+  ######
+  # Perform template expansion
+  ######
+
+  # Set input and output directories corresponding to this Code directory
+  set(generated_code_input_path ${CMAKE_CURRENT_SOURCE_DIR})
+  set(generated_code_output_path ${SimpleITK_BINARY_DIR}/Code/${directory_name})
+
+  # Make sure include and src directories exist
+  if (NOT EXISTS ${generated_code_output_path}/include)
+    file(MAKE_DIRECTORY ${generated_code_output_path}/include)
+  endif()
+  if (NOT EXISTS ${generated_code_output_path}/src)
+    file(MAKE_DIRECTORY ${generated_code_output_path}/src)
+  endif()
+
+
+  message( STATUS "Processing json files..." )
+
+  # Glob all json files in the current directory
+  file ( GLOB json_config_files ${generated_code_input_path}/json/[a-zA-Z]*.json)
+
+  # Loop through json files and expand each one
+  foreach ( f ${json_config_files} )
+    get_filename_component ( class ${f} NAME_WE )
+    expand_template ( ${class}
+                      ${generated_code_input_path}
+                      ${generated_code_output_path}
+                      SimpleITK${directory_name} )
+
+  endforeach()
+
+  message( STATUS "Processing json files...done" )
+
+  ######
+  # Make target for generated source and headers
+  ######
+  add_custom_target(${directory_name}SourceCode ALL DEPENDS
+    ${SimpleITK${directory_name}GeneratedHeader}
+    ${SimpleITK${directory_name}GeneratedSource} )
+  if (BUILD_DOXYGEN)
+    add_dependencies(Documentation ${directory_name}SourceCode)
+  endif (BUILD_DOXYGEN)
+
+
+
+
+  ######
+  # Create list of generated headers
+  ######
+
+  set(generated_headers_h ${generated_code_output_path}/include/SimpleITK${directory_name}GeneratedHeaders.h)
+  set(generated_headers_i ${generated_code_output_path}/include/SimpleITK${directory_name}GeneratedHeaders.i)
+  set(tmp_generated_headers_h ${CMAKE_CURRENT_BINARY_DIR}/CMakeTmp/SimpleITK${directory_name}GeneratedHeaders.h)
+  set(tmp_generated_headers_i ${CMAKE_CURRENT_BINARY_DIR}/CMakeTmp/include/SimpleITK${directory_name}GeneratedHeaders.i)
+
+  file ( WRITE ${generated_headers_i} "")
+
+  # Add ifndefs
+  file ( WRITE "${tmp_generated_headers_h}" "#ifndef __SimpleITK${directory_name}GeneratedHeaders_h\n")
+  file ( APPEND "${tmp_generated_headers_h}" "#define __SimpleITK${directory_name}GeneratedHeaders_h\n")
+
+  foreach ( filter ${GENERATED_FILTER_LIST} )
+    file ( APPEND "${tmp_generated_headers_h}" "#include \"sitk${filter}.h\"\n" )
+    file ( APPEND "${tmp_generated_headers_i}" "%include \"sitk${filter}.h\"\n" )
+  endforeach()
+
+  file ( APPEND "${tmp_generated_headers_h}" "#endif\n")
+
+  configure_file( "${tmp_generated_headers_h}" "${generated_headers_h}" COPYONLY )
+  configure_file( "${tmp_generated_headers_i}" "${generated_headers_i}" COPYONLY )
+
+  install(FILES
+    ${SimpleITK${directory_name}GeneratedHeader}
+    ${generated_headers_h}
+    ${generated_headers_i}
+  DESTINATION ${SimpleITK_INSTALL_INCLUDE_DIR}
+  COMPONENT Development)
+
+
+endmacro()
diff --git a/CMake/sitkLanguageOptions.cmake b/CMake/sitkLanguageOptions.cmake
new file mode 100644
index 0000000..dec6e58
--- /dev/null
+++ b/CMake/sitkLanguageOptions.cmake
@@ -0,0 +1,247 @@
+#
+# - This module finds the languages supported by SimpleITK, and
+#present the option to enable support
+#
+
+#
+# Currently this will search for Python, Java, TCL, Ruby, C#, R
+# Additionally it give the option to wrap LUA.
+#
+
+include(sitkTargetLinkLibrariesWithDynamicLookup)
+
+sitk_check_dynamic_lookup(MODULE
+  SHARED
+  SITK_UNDEFINED_SYMBOLS_ALLOWED
+  )
+
+option(WRAP_DEFAULT "The default initial value for wrapping a language when it is detected on the system." ON)
+mark_as_advanced(WRAP_DEFAULT)
+
+#
+# Macro to set "_QUIET" and "_QUIET_LIBRARY" based on the first
+# argument being defined and true, to either REQUIRED or QUIET.
+#
+macro(set_QUIET var)
+  if ( DEFINED  ${var} AND ${var} )
+    set( _QUIET "REQUIRED" )
+  else()
+    set( _QUIET "QUIET" )
+  endif()
+  if ( SITK_UNDEFINED_SYMBOLS_ALLOWED )
+    set( _QUIET_LIBRARY "QUIET" )
+  else()
+    set( _QUIET_LIBRARY ${_QUIET} )
+  endif()
+endmacro()
+
+#
+# Setup the option for each language
+#
+set_QUIET( WRAP_LUA )
+find_package ( Lua ${_QUIET} )
+
+if ( LUA_FOUND )
+  set( WRAP_LUA_DEFAULT ${WRAP_DEFAULT} )
+else()
+  set( WRAP_LUA_DEFAULT OFF )
+endif()
+
+set( LUA_ADDITIONAL_LIBRARIES "" CACHE STRING "Additional libraries which may be needed for lua such as readline.")
+mark_as_advanced( LUA_ADDITIONAL_LIBRARIES )
+
+option ( WRAP_LUA "Wrap Lua" ${WRAP_LUA_DEFAULT} )
+
+if ( WRAP_LUA )
+  find_package( LuaInterp REQUIRED )
+  list( APPEND SITK_LANGUAGES_VARS
+    LUA_EXECUTABLE
+    LUA_LIBRARIES
+    LUA_INCLUDE_DIR
+    LUA_VERSION_STRING
+    LUA_MATH_LIBRARY
+    LUA_ADDITIONAL_LIBRARIES
+    )
+endif()
+
+
+
+# If you're not using python or it's the first time, be quiet
+
+set_QUIET( WRAP_PYTHON )
+find_package ( PythonInterp ${_QUIET})
+if ( PYTHONINTERP_FOUND )
+  find_package ( PythonLibs ${PYTHON_VERSION_STRING} EXACT ${_QUIET_LIBRARY} )
+else ()
+  find_package ( PythonLibs ${_QUIET_LIBRARY} )
+endif()
+
+if ( PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND
+    AND PYTHON_VERSION_STRING VERSION_LESS 2.7 )
+  message( WARNING "Python version less that 2.7: \"${PYTHON_VERSION_STRING}\"." )
+endif()
+
+if ( PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND
+    AND (PYTHON_VERSION_STRING VERSION_EQUAL PYTHONLIBS_VERSION_STRING) )
+  set( WRAP_PYTHON_DEFAULT ${WRAP_DEFAULT} )
+else()
+  set( WRAP_PYTHON_DEFAULT OFF )
+endif()
+
+option( WRAP_PYTHON "Wrap Python" ${WRAP_PYTHON_DEFAULT} )
+
+if ( WRAP_PYTHON )
+  list( APPEND SITK_LANGUAGES_VARS
+    PYTHON_DEBUG_LIBRARY
+    PYTHON_EXECUTABLE
+    PYTHON_LIBRARY
+    PYTHON_INCLUDE_DIR
+    #  PYTHON_INCLUDE_PATH ( deprecated )
+    )
+# Debian "jessie" has this additional variable required to match
+# python versions.
+  if(PYTHON_INCLUDE_DIR2)
+    list( APPEND SITK_LANGUAGES_VARS
+      PYTHON_INCLUDE_DIR2
+      )
+  endif()
+endif ()
+
+
+
+set_QUIET( WRAP_JAVA )
+find_package ( Java COMPONENTS Development Runtime ${_QUIET} )
+find_package ( JNI ${_QUIET} )
+if ( ${JAVA_FOUND} AND ${JNI_FOUND} )
+  set( WRAP_JAVA_DEFAULT ${WRAP_DEFAULT} )
+else ( ${JAVA_FOUND} AND ${JNI_FOUND} )
+  set( WRAP_JAVA_DEFAULT OFF )
+endif ( ${JAVA_FOUND} AND ${JNI_FOUND} )
+
+option ( WRAP_JAVA "Wrap Java" ${WRAP_JAVA_DEFAULT} )
+
+if ( WRAP_JAVA )
+  list( APPEND SITK_LANGUAGES_VARS
+    Java_JAVA_EXECUTABLE
+    Java_JAVAC_EXECUTABLE
+    Java_JAR_EXECUTABLE
+    Java_JAVADOC_EXECUTABLE
+    Java_JAVAH_EXECUTABLE
+    Java_VERSION_STRING
+    Java_VERSION_MAJOR
+    Java_VERSION_MINOR
+    Java_VERSION_PATCH
+    Java_VERSION_TWEAK
+    Java_VERSION
+    Java_INCLUDE_DIRS
+    Java_LIBRARIES
+    JNI_INCLUDE_DIRS
+    JNI_LIBRARIES
+    JAVA_AWT_LIBRARY
+    JAVA_JVM_LIBRARY
+    JAVA_INCLUDE_PATH
+    JAVA_INCLUDE_PATH2
+    JAVA_AWT_INCLUDE_PATH
+    )
+endif()
+
+
+set_QUIET(WRAP_TCL)
+
+find_package ( TCL ${_QUIET} )
+
+if ( ${TCL_FOUND} )
+  set ( WRAP_TCL_DEFAULT ${WRAP_DEFAULT} )
+else ( ${TCL_FOUND} )
+  set ( WRAP_TCL_DEFAULT OFF )
+endif ( ${TCL_FOUND} )
+
+option ( WRAP_TCL "Wrap Tcl" ${WRAP_TCL_DEFAULT} )
+
+if ( WRAP_TCL )
+  list( APPEND SITK_LANGUAGES_VARS
+    TCL_LIBRARY
+    TCL_INCLUDE_PATH
+    TCL_TCLSH
+    TK_LIBRARY
+    TK_INCLUDE_PATH
+    TK_WISH
+    )
+endif()
+
+
+set_QUIET( WRAP_RUBY )
+
+find_package ( Ruby ${_QUIET} )
+if ( ${RUBY_FOUND} )
+  set ( WRAP_RUBY_DEFAULT ${WRAP_DEFAULT} )
+else ( ${RUBY_FOUND} )
+  set ( WRAP_RUBY_DEFAULT OFF )
+endif ( ${RUBY_FOUND} )
+
+option ( WRAP_RUBY "Wrap Ruby" ${WRAP_RUBY_DEFAULT} )
+
+if ( WRAP_RUBY )
+  list( APPEND SITK_LANGUAGES_VARS
+    RUBY_EXECUTABLE
+    RUBY_INCLUDE_DIRS
+    RUBY_LIBRARY
+    RUBY_VERSION
+    RUBY_FOUND
+    RUBY_INCLUDE_PATH
+    )
+endif()
+
+
+if (DEFINED  WRAP_CSHARP AND WRAP_CSHARP)
+  set(_QUIET "REQUIRED")
+else()
+  set(_QUIET "QUIET")
+endif()
+
+find_package( CSharp ${_QUIET} )
+if ( ${CSHARP_FOUND} AND NOT MINGW )
+  set ( WRAP_CSHARP_DEFAULT ${WRAP_DEFAULT} )
+else ()
+  set ( WRAP_CSHARP_DEFAULT OFF )
+endif ()
+
+option ( WRAP_CSHARP "Wrap C#" ${WRAP_CSHARP_DEFAULT} )
+
+if ( WRAP_CSHARP )
+  list( APPEND SITK_LANGUAGES_VARS
+    CSHARP_COMPILER
+    CSHARP_INTERPRETER
+    CSHARP_PLATFORM
+    )
+endif()
+
+
+set_QUIET( WRAP_R )
+
+find_package(R ${_QUIET})
+if ( ${R_FOUND} AND NOT WIN32 )
+  set ( WRAP_R_DEFAULT ${WRAP_DEFAULT} )
+else( )
+  set ( WRAP_R_DEFAULT OFF )
+endif( )
+
+option ( WRAP_R "Wrap R" ${WRAP_R_DEFAULT} )
+
+if ( WRAP_R )
+  list( APPEND SITK_LANGUAGES_VARS
+    R_INCLUDE_DIR
+    R_LIBRARIES
+    R_LIBRARY_BASE
+    R_COMMAND
+    RSCRIPT_EXECUTABLE )
+endif()
+
+
+if( WIN32 )
+  mark_as_advanced( WRAP_R )
+endif()
+
+#
+# Below here are the 2nd tier languages they are not enabled automatically if detected
+#
diff --git a/CMake/sitkPreventInBuildInstalls.cmake b/CMake/sitkPreventInBuildInstalls.cmake
new file mode 100644
index 0000000..accfea6
--- /dev/null
+++ b/CMake/sitkPreventInBuildInstalls.cmake
@@ -0,0 +1,9 @@
+string(TOLOWER "${CMAKE_INSTALL_PREFIX}" _PREFIX)
+string(TOLOWER "${ITK_BINARY_DIR}" _BUILD)
+if("${_PREFIX}" STREQUAL "${_BUILD}")
+  message(FATAL_ERROR
+    "The current CMAKE_INSTALL_PREFIX points at the build tree:\n"
+    "  ${CMAKE_INSTALL_PREFIX}\n"
+    "This is not supported."
+    )
+endif()
diff --git a/CMake/sitkPreventInSourceBuilds.cmake b/CMake/sitkPreventInSourceBuilds.cmake
new file mode 100644
index 0000000..a9cfdbb
--- /dev/null
+++ b/CMake/sitkPreventInSourceBuilds.cmake
@@ -0,0 +1,18 @@
+#
+# This function will prevent in-source builds
+function(AssureOutOfSourceBuilds)
+  # make sure the user doesn't play dirty with symlinks
+  get_filename_component(srcdir "${CMAKE_SOURCE_DIR}" REALPATH)
+  get_filename_component(bindir "${CMAKE_BINARY_DIR}" REALPATH)
+
+  # disallow in-source builds
+  if("${srcdir}" STREQUAL "${bindir}")
+    message("######################################################")
+    message("# SimpleITK should not be configured & built in the SimpleITK source directory")
+    message("# You must run cmake in a build directory.")
+    message("######################################################")
+    message(FATAL_ERROR "Quitting configuration")
+  endif()
+endfunction()
+
+AssureOutOfSourceBuilds()
diff --git a/CMake/sitkProjectLanguageCommon.cmake b/CMake/sitkProjectLanguageCommon.cmake
new file mode 100644
index 0000000..8498a00
--- /dev/null
+++ b/CMake/sitkProjectLanguageCommon.cmake
@@ -0,0 +1,115 @@
+
+foreach(p
+    CMP0042 # CMake 3.0
+    CMP0063 # CMake 3.3.2
+    )
+  if(POLICY ${p})
+    cmake_policy(SET ${p} NEW)
+  endif()
+endforeach()
+
+
+#
+# Project setup
+#
+
+if (NOT CMAKE_PROJECT_NAME STREQUAL "SimpleITK" )
+
+  set( SimpleITK_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../.." )
+  list(INSERT CMAKE_MODULE_PATH 0 "${CMAKE_CURRENT_LIST_DIR}")
+
+  find_package(SimpleITK REQUIRED)
+  include(${SimpleITK_USE_FILE})
+
+  if(MSVC)
+     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj")
+  endif()
+else()
+  set(SimpleITK_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+endif()
+
+
+# Setup build locations to the wrapping language sub directories
+if(NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY OR CMAKE_PROJECT_NAME STREQUAL "SimpleITK" )
+  set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
+endif()
+if(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY OR CMAKE_PROJECT_NAME STREQUAL "SimpleITK" )
+  set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
+endif()
+if(NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY OR CMAKE_PROJECT_NAME STREQUAL "SimpleITK" )
+  set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
+endif()
+
+
+# Since most language libraries are not installed with CMake, the
+# RPATH does not get fixed up during installation. So skip the RPATH
+if(NOT DEFINED CMAKE_SKIP_BUILD_RPATH)
+  set(CMAKE_SKIP_BUILD_RPATH 1)
+endif()
+
+if(NOT TARGET dist)
+  add_custom_target( dist ${CMAKE_COMMAND} -E echo "Finished generating wrapped package for distribution..." )
+endif()
+
+# TODO these should be moved into UseSimpleITK
+if(NOT SimpleITK_DOC_FILES)
+  set ( SimpleITK_DOC_FILES
+    "${SimpleITK_SOURCE_DIR}/LICENSE"
+    "${SimpleITK_SOURCE_DIR}/NOTICE"
+    "${SimpleITK_SOURCE_DIR}/Readme.md"
+  )
+endif()
+
+#
+# General SWIG configuration
+#
+
+find_package ( SWIG 3 REQUIRED )
+
+include (sitkUseSWIG)
+
+set(SimpleITK_WRAPPING_COMMON_DIR
+  ${SimpleITK_SOURCE_DIR}/Wrapping/Common)
+
+if ( CMAKE_PROJECT_NAME STREQUAL "SimpleITK" )
+  file(GLOB SWIG_EXTRA_DEPS
+    "${SimpleITK_SOURCE_DIR}/Code/Common/include/*.h"
+    "${SimpleITK_SOURCE_DIR}/Code/Registration/include/*.h"
+    "${SimpleITK_SOURCE_DIR}/Code/IO/include/*.h")
+  list( APPEND SWIG_EXTRA_DEPS
+    "${SimpleITK_BINARY_DIR}/Code/BasicFilters/include/SimpleITKBasicFiltersGeneratedHeaders.h"
+    ${SimpleITKBasicFiltersGeneratedHeader} )
+else()
+  find_file( _file
+    NAMES SimpleITKBasicFiltersGeneratedHeaders.h
+    PATHS ${SimpleITK_INCLUDE_DIRS}
+    NO_DEFAULT_PATH )
+  list( APPEND SWIG_EXTRA_DEPS ${_file} )
+endif()
+
+# make a manual list of dependencies for the Swig.i files
+list( APPEND SWIG_EXTRA_DEPS
+  "${SimpleITK_WRAPPING_COMMON_DIR}/SimpleITK_Common.i"
+  )
+
+# check if uint64_t is the same as unsigned long
+try_compile(SITK_ULONG_SAME_AS_UINT64
+  ${PROJECT_BINARY_DIR}/CMakeTmp
+  ${SimpleITK_SOURCE_DIR}/CMake/same_uint64_ulong.cxx )
+
+# when "-DSWIGWORDSIZE64" is defined SWIG used unsigned long for uint64_t types
+if(${SITK_ULONG_SAME_AS_UINT64} )
+  set ( CMAKE_SWIG_GLOBAL_FLAGS "-DSWIGWORDSIZE64" )
+endif()
+
+set ( CMAKE_SWIG_GLOBAL_FLAGS -I${SimpleITK_WRAPPING_COMMON_DIR} ${CMAKE_SWIG_GLOBAL_FLAGS} )
+
+include(sitkTargetLinkLibrariesWithDynamicLookup)
+sitk_check_dynamic_lookup(MODULE
+  SHARED
+  SITK_UNDEFINED_SYMBOLS_ALLOWED
+  )
+
+include(sitkStripOption)
+include(sitkForbidDownloadsOption)
+include(sitkSITKLegacyNaming)
diff --git a/CMake/sitkSITKLegacyNaming.cmake b/CMake/sitkSITKLegacyNaming.cmake
new file mode 100644
index 0000000..54e85f2
--- /dev/null
+++ b/CMake/sitkSITKLegacyNaming.cmake
@@ -0,0 +1,47 @@
+#
+# Migrate SITK prefixed CMake options to SimpleITK
+#
+# sitk_legacy_naming( new_var_name [old_var_name] )
+#   new_var_name - a variable name which has the prefix migrated from
+# "SITK" to SimpleITK.
+#
+# This macro will print a warning if the old variable is set. Then
+# sets the new variable value to the value of the old variable and
+# delete the old variable from the cache.
+#
+
+# force set a value into the cache, but keep the properties
+function(_force_cache_set var value)
+  get_property( type CACHE ${var} PROPERTY TYPE )
+  get_property( helpstring CACHE ${var} PROPERTY HELPSTRING )
+  get_property( strings CACHE ${var} PROPERTY STRINGS )
+
+  set( ${var} "${value}" CACHE "${type}" "${helpstring}" FORCE )
+
+endfunction()
+
+macro(sitk_legacy_naming new_var_name )
+
+
+  if(NOT "${ARGV1}" STREQUAL "")
+    set( old_var_name ${ARGV1} )
+  else()
+    string( REGEX REPLACE  "^SimpleITK_" "SITK_" old_var_name "${new_var_name}" )
+  endif()
+
+  if (DEFINED "${old_var_name}")
+    message(WARNING "SimpleITK variable \"${old_var_name}\" is \
+      deprecated use \"${new_var_name}\" instead.")
+
+    _force_cache_set( ${new_var_name} ${${old_var_name}} )
+
+    unset(${old_var_name} CACHE)
+
+    list(LENGTH extra_macro_args num_extra_args)
+    if (${num_extra_args} GREATER 0)
+        list(GET extra_macro_args 0 optional_arg)
+        message ("Got an optional arg: ${optional_arg}")
+    endif ()
+  endif()
+
+endmacro()
diff --git a/CMake/sitkSourceVersion.cmake b/CMake/sitkSourceVersion.cmake
new file mode 100644
index 0000000..78f1402
--- /dev/null
+++ b/CMake/sitkSourceVersion.cmake
@@ -0,0 +1,117 @@
+#
+# This CMake code extracts the information from the git repository,
+# and automatically causes a reconfigure if the git HEAD changes. The
+# following variable may be defined after execution:
+#
+# _GIT_VERSION_HASH - the SHA1 hash of the current HEAD
+#
+# Based on the most recent tag starting with the letter "v" for
+# version, which is expected to be of the form
+# vN.N[.N[.N][(a|b|c|rc[N])] the following is extracted or undefined:
+#
+# _GIT_VERSION_MAJOR
+# _GIT_VERSION_MINOR
+# _GIT_VERSION_PATCH
+# _GIT_VERSION_TWEAK
+# _GIT_VERSION_RC
+#
+# If the current project's version ( defiend by
+# ${CMAKE_PROJECT_NAME}_VERSION_MAJOR and MINOR and PATCH and TWEAK
+# match that of the tag, then it'll be considered that the project is
+# in post release mode otherwise it's considered underdevelopment.
+#
+# Only one of the following variables will be defined.
+# _GIT_VERSION_DEV is defined as number of commits
+# since the projects Version.cmake file has been modified. While
+# _GIT_VERSION_POST is defined as the number of commits since the tag.
+#
+
+
+include(GetGitRevisionDescription)
+
+get_git_head_revision(GIT_REFVAR _GIT_VERSION_HASH)
+
+# if there is not git directory we should be in a distributed package
+# which should contain this additional cmake file with the
+# _GIT_VERSION variables
+if(_GIT_VERSION_HASH STREQUAL "GITDIR-NOTFOUND")
+  include( "${CMAKE_CURRENT_LIST_DIR}/sitkSourceVersionVars.cmake" )
+  return()
+endif()
+
+if(_GIT_VERSION_HASH MATCHES "[a-fA-F0-9]+")
+  string(SUBSTRING "${_GIT_VERSION_HASH}" 0 5 _GIT_VERSION_HASH)
+endif()
+
+# find the closest anotated tag with the v prefix for version
+git_describe(_GIT_TAG "--match=v*")
+
+git_commits_since("${PROJECT_SOURCE_DIR}/Version.cmake" _GIT_VERSION_COUNT)
+
+set(VERSION_REGEX "^v([0-9]+)\\.([0-9]+)+(\\.([0-9]+))?(\\.([0-9]+))?((a|b|c|rc)[0-9]*)?(-[0-9]+)?")
+
+string(REGEX MATCH "${VERSION_REGEX}" _out "${_GIT_TAG}")
+
+if("${_out}" STREQUAL "")
+  message(WARNING "git tag: \"${_GIT_TAG}\" does not match expected version format!")
+  return()
+endif()
+
+set(_GIT_VERSION_MAJOR "${CMAKE_MATCH_1}")
+set(_GIT_VERSION_MINOR "${CMAKE_MATCH_2}")
+if(NOT "${CMAKE_MATCH_4}" STREQUAL "")
+  set(_GIT_VERSION_PATCH "${CMAKE_MATCH_4}")
+endif()
+if(NOT "${CMAKE_MATCH_6}" STREQUAL "")
+  set(_GIT_VERSION_TWEAK "${CMAKE_MATCH_6}")
+endif()
+if(NOT "${CMAKE_MATCH_7}" STREQUAL "")
+  set(_GIT_VERSION_RC "${CMAKE_MATCH_7}" ) # a,b,rc01 etc
+endif()
+
+if(NOT "${CMAKE_MATCH_9}" STREQUAL "")
+  #trim leading '-'
+  string(SUBSTRING "${CMAKE_MATCH_9}" 1 -1 CMAKE_MATCH_9)
+
+  set(_GIT_TAG_COUNT "${CMAKE_MATCH_9}")
+endif()
+
+
+set(_GIT_VERSION "${_GIT_VERSION_MAJOR}.${_GIT_VERSION_MINOR}")
+if(DEFINED _GIT_VERSION_PATCH)
+  set(_GIT_VERSION "${_GIT_VERSION}.${_GIT_VERSION_PATCH}")
+  if(DEFINED _GIT_VERSION_TWEAK)
+    set(_GIT_VERSION "${_GIT_VERSION}.${_GIT_VERSION_TWEAK}")
+  elseif(DEFINED ${CMAKE_PROJECT_NAME}_VERSION_TWEAK)
+    set(_GIT_VERSION "${_GIT_VERSION}.0")
+  endif()
+elseif(DEFINED ${CMAKE_PROJECT_NAME}_VERSION_PATCH)
+  set(_GIT_VERSION "${_GIT_VERSION}.0")
+  if(DEFINED ${CMAKE_PROJECT_NAME}_VERSION_TWEAK)
+    set(_GIT_VERSION "${_GIT_VERSION}.0")
+  endif()
+endif()
+
+set(_${CMAKE_PROJECT_NAME}_VERSION "${${CMAKE_PROJECT_NAME}_VERSION_MAJOR}.${${CMAKE_PROJECT_NAME}_VERSION_MINOR}")
+if(DEFINED ${CMAKE_PROJECT_NAME}_VERSION_PATCH)
+  set(_${CMAKE_PROJECT_NAME}_VERSION "${_${CMAKE_PROJECT_NAME}_VERSION}.${${CMAKE_PROJECT_NAME}_VERSION_PATCH}")
+  if(DEFINED ${CMAKE_PROJECT_NAME}_VERSION_TWEAK)
+    set(_${CMAKE_PROJECT_NAME}_VERSION "${_${CMAKE_PROJECT_NAME}_VERSION}.${${CMAKE_PROJECT_NAME}_VERSION_TWEAK}")
+  endif()
+endif()
+
+
+if(_GIT_VERSION VERSION_EQUAL _${CMAKE_PROJECT_NAME}_VERSION)
+  if(_GIT_TAG_COUNT) #ignore if 0
+    set(_GIT_VERSION_POST "${_GIT_TAG_COUNT}")
+  endif()
+else()
+  # The first commit after a tag should increase the project version
+  # number in Version.cmake and be "dev1"
+  MATH(EXPR _GIT_VERSION_COUNT "${_GIT_VERSION_COUNT}+1")
+  set(_GIT_VERSION_DEV "${_GIT_VERSION_COUNT}")
+endif()
+
+# save variable in a configuration file in case we have no git directory
+configure_file("${CMAKE_CURRENT_LIST_DIR}/sitkSourceVersionVars.cmake.in"
+  "${CMAKE_CURRENT_BINARY_DIR}/sitkSourceVersionVars.cmake"  @ONLY)
diff --git a/CMake/sitkSourceVersionVars.cmake b/CMake/sitkSourceVersionVars.cmake
new file mode 100644
index 0000000..1ec151b
--- /dev/null
+++ b/CMake/sitkSourceVersionVars.cmake
@@ -0,0 +1,14 @@
+macro( _set_if_not_empty var value )
+  if( NOT "${value}" STREQUAL "" )
+    set( ${var} "${value}" )
+  endif()
+endmacro()
+
+set( _GIT_VERSION_MAJOR "1" )
+set( _GIT_VERSION_MINOR "0" )
+_set_if_not_empty( _GIT_VERSION_PATCH "1" )
+_set_if_not_empty( _GIT_VERSION_TWEAK "" )
+_set_if_not_empty( _GIT_VERSION_RC "" )
+_set_if_not_empty( _GIT_VERSION_POST "" )
+_set_if_not_empty( _GIT_VERSION_DEV "" )
+_set_if_not_empty( _GIT_VERSION_HASH "52bae" )
diff --git a/CMake/sitkSourceVersionVars.cmake.in b/CMake/sitkSourceVersionVars.cmake.in
new file mode 100644
index 0000000..8f331e1
--- /dev/null
+++ b/CMake/sitkSourceVersionVars.cmake.in
@@ -0,0 +1,14 @@
+macro( _set_if_not_empty var value )
+  if( NOT "${value}" STREQUAL "" )
+    set( ${var} "${value}" )
+  endif()
+endmacro()
+
+set( _GIT_VERSION_MAJOR "@_GIT_VERSION_MAJOR@" )
+set( _GIT_VERSION_MINOR "@_GIT_VERSION_MINOR@" )
+_set_if_not_empty( _GIT_VERSION_PATCH "@_GIT_VERSION_PATCH@" )
+_set_if_not_empty( _GIT_VERSION_TWEAK "@_GIT_VERSION_TWEAK@" )
+_set_if_not_empty( _GIT_VERSION_RC "@_GIT_VERSION_RC@" )
+_set_if_not_empty( _GIT_VERSION_POST "@_GIT_VERSION_POST@" )
+_set_if_not_empty( _GIT_VERSION_DEV "@_GIT_VERSION_DEV@" )
+_set_if_not_empty( _GIT_VERSION_HASH "@_GIT_VERSION_HASH@" )
diff --git a/CMake/sitkStripOption.cmake b/CMake/sitkStripOption.cmake
new file mode 100644
index 0000000..8a0a935
--- /dev/null
+++ b/CMake/sitkStripOption.cmake
@@ -0,0 +1,30 @@
+
+#------------------------------------------------------------------------------
+# Strip Option
+
+# Add option to strip wrapping libraries.
+# Since the wrapping libraries don't get installed by the normal cmake
+# installation process, this option enables stripping of the libraries
+# as part of the build process. It should be used on the laguage
+# targets and the the SimpleITK iterface, as those can be installed
+# into the system.
+option(SimpleITK_BUILD_STRIP "Strip executables and libraries after building." OFF)
+mark_as_advanced(SimpleITK_BUILD_STRIP)
+set(CMAKE_STRIP_FLAGS "-x" CACHE STRING "Flags used by strip in the post_build.")
+mark_as_advanced(CMAKE_STRIP_FLAGS)
+separate_arguments(CMAKE_STRIP_FLAGS)
+
+function(sitk_strip_target tgt)
+  if(NOT SimpleITK_BUILD_STRIP OR "${CMAKE_STRIP}" STREQUAL "" )
+    return()
+  endif()
+  get_property(type TARGET ${tgt} PROPERTY TYPE)
+  if(NOT type STREQUAL STATIC_LIBRARY)
+    add_custom_command(
+      TARGET ${tgt}
+      POST_BUILD
+      COMMAND ${CMAKE_STRIP} ${CMAKE_STRIP_FLAGS} "$<TARGET_FILE:${tgt}>"
+      )
+  endif()
+
+endfunction()
diff --git a/CMake/sitkTargetLinkLibrariesWithDynamicLookup.cmake b/CMake/sitkTargetLinkLibrariesWithDynamicLookup.cmake
new file mode 100644
index 0000000..579b8d1
--- /dev/null
+++ b/CMake/sitkTargetLinkLibrariesWithDynamicLookup.cmake
@@ -0,0 +1,580 @@
+#.rst:
+#
+# Public Functions
+# ^^^^^^^^^^^^^^^^
+#
+# The following functions are defined:
+#
+# .. cmake:command:: sitk_target_link_libraries_with_dynamic_lookup
+#
+# ::
+#
+#     sitk_target_link_libraries_with_dynamic_lookup(<Target> [<Libraries>])
+#
+#
+# Useful to "weakly" link a loadable module. For example, it should be used
+# when compiling a loadable module when the symbols should be resolve from
+# the run-time environment where the module is loaded, and not a specific
+# system library.
+#
+# Like proper linking, except that the given ``<Libraries>`` are not necessarily
+# linked. Instead, the ``<Target>`` is produced in a manner that allows for
+# symbols unresolved within it to be resolved at runtime, presumably by the
+# given ``<Libraries>``.  If such a target can be produced, the provided
+# ``<Libraries>`` are not actually linked.
+#
+# It links a library to a target such that the symbols are resolved at
+# run-time not link-time.
+#
+# The linker is checked to see if it supports undefined
+# symbols when linking a shared library. If it does then the library
+# is not linked when specified with this function.
+#
+# On platforms that do not support weak-linking, this function works just
+# like ``sitk_target_link_libraries``.
+#
+# .. note::
+#
+#     For OSX it uses ``undefined dynamic_lookup``. This is similar to using
+#     ``-shared`` on Linux where undefined symbols are ignored.
+#
+#     For more details, see `blog <http://blog.tim-smith.us/2015/09/python-extension-modules-os-x/>`_
+#     from Tim D. Smith.
+#
+#
+# .. cmake:command:: sitk_check_dynamic_lookup
+#
+# Check if the linker requires a command line flag to allow leaving symbols
+# unresolved when producing a target of type ``<TargetType>`` that is
+# weakly-linked against a dependency of type ``<LibType>``.
+#
+# ``<TargetType>``
+#   can be one of "STATIC", "SHARED", "MODULE", or "EXE".
+#
+# ``<LibType>``
+#   can be one of "STATIC", "SHARED", or "MODULE".
+#
+# Long signature:
+#
+# ::
+#
+#     sitk_check_dynamic_lookup(<TargetType>
+#                          <LibType>
+#                          <ResultVar>
+#                          [<LinkFlagsVar>])
+#
+#
+# Short signature:
+#
+# ::
+#
+#     sitk_check_dynamic_lookup(<ResultVar>) # <TargetType> set to "MODULE"
+#                                       # <LibType> set to "SHARED"
+#
+#
+# The result is cached between invocations and recomputed only when the value
+# of CMake's linker flag list changes; ``CMAKE_STATIC_LINKER_FLAGS`` if
+# ``<TargetType>`` is "STATIC", and ``CMAKE_SHARED_LINKER_FLAGS`` otherwise.
+#
+#
+# Defined variables:
+#
+# ``<ResultVar>``
+#   Whether the current C toolchain supports weak-linking for target binaries of
+#   type ``<TargetType>`` that are weakly-linked against a dependency target of
+#   type ``<LibType>``.
+#
+# ``<LinkFlagsVar>``
+#   List of flags to add to the linker command to produce a working target
+#   binary of type ``<TargetType>`` that is weakly-linked against a dependency
+#   target of type ``<LibType>``.
+#
+# ``HAS_DYNAMIC_LOOKUP_<TargetType>_<LibType>``
+#   Cached, global alias for ``<ResultVar>``
+#
+# ``DYNAMIC_LOOKUP_FLAGS_<TargetType>_<LibType>``
+#   Cached, global alias for ``<LinkFlagsVar>``
+#
+#
+# Private Functions
+# ^^^^^^^^^^^^^^^^^
+#
+# The following private functions are defined:
+#
+# .. warning:: These functions are not part of the scikit-build API. They
+#     exist purely as an implementation detail and may change from version
+#     to version without notice, or even be removed.
+#
+#     We mean it.
+#
+#
+# .. cmake:command:: _get_target_type
+#
+# ::
+#
+#     _get_target_type(<ResultVar> <Target>)
+#
+#
+# Shorthand for querying an abbreviated version of the target type
+# of the given ``<Target>``.
+#
+# ``<ResultVar>`` is set to:
+#
+# - "STATIC" for a STATIC_LIBRARY,
+# - "SHARED" for a SHARED_LIBRARY,
+# - "MODULE" for a MODULE_LIBRARY,
+# - and "EXE" for an EXECUTABLE.
+#
+# Defined variables:
+#
+# ``<ResultVar>``
+#   The abbreviated version of the ``<Target>``'s type.
+#
+#
+# .. cmake:command:: _test_weak_link_project
+#
+# ::
+#
+#     _test_weak_link_project(<TargetType>
+#                             <LibType>
+#                             <ResultVar>
+#                             <LinkFlagsVar>)
+#
+#
+# Attempt to compile and run a test project where a target of type
+# ``<TargetType>`` is weakly-linked against a dependency of type ``<LibType>``:
+#
+# - ``<TargetType>`` can be one of "STATIC", "SHARED", "MODULE", or "EXE".
+# - ``<LibType>`` can be one of "STATIC", "SHARED", or "MODULE".
+#
+# Defined variables:
+#
+# ``<ResultVar>``
+#   Whether the current C toolchain can produce a working target binary of type
+#   ``<TargetType>`` that is weakly-linked against a dependency target of type
+#   ``<LibType>``.
+#
+# ``<LinkFlagsVar>``
+#   List of flags to add to the linker command to produce a working target
+#   binary of type ``<TargetType>`` that is weakly-linked against a dependency
+#   target of type ``<LibType>``.
+#
+
+function(_get_target_type result_var target)
+  set(target_type "SHARED_LIBRARY")
+  if(TARGET ${target})
+    get_property(target_type TARGET ${target} PROPERTY TYPE)
+  endif()
+
+  set(result "STATIC")
+
+  if(target_type STREQUAL "STATIC_LIBRARY")
+    set(result "STATIC")
+  endif()
+
+  if(target_type STREQUAL "SHARED_LIBRARY")
+    set(result "SHARED")
+  endif()
+
+  if(target_type STREQUAL "MODULE_LIBRARY")
+    set(result "MODULE")
+  endif()
+
+  if(target_type STREQUAL "EXECUTABLE")
+    set(result "EXE")
+  endif()
+
+  set(${result_var} ${result} PARENT_SCOPE)
+endfunction()
+
+
+function(_test_weak_link_project
+         target_type
+         lib_type
+         can_weak_link_var
+         project_name)
+
+  set(gnu_ld_ignore      "-Wl,--unresolved-symbols=ignore-all")
+  set(osx_dynamic_lookup           "-undefined dynamic_lookup")
+  set(no_flag                                               "")
+
+  foreach(link_flag_spec gnu_ld_ignore osx_dynamic_lookup no_flag)
+    set(link_flag "${${link_flag_spec}}")
+
+    set(test_project_dir "${PROJECT_BINARY_DIR}/CMakeTmp")
+    set(test_project_dir "${test_project_dir}/${project_name}")
+    set(test_project_dir "${test_project_dir}/${link_flag_spec}")
+    set(test_project_dir "${test_project_dir}/${target_type}")
+    set(test_project_dir "${test_project_dir}/${lib_type}")
+
+    set(test_project_src_dir "${test_project_dir}/src")
+    set(test_project_bin_dir "${test_project_dir}/build")
+
+    file(MAKE_DIRECTORY ${test_project_src_dir})
+    file(MAKE_DIRECTORY ${test_project_bin_dir})
+
+    set(mod_type "STATIC")
+    set(link_mod_lib TRUE)
+    set(link_exe_lib TRUE)
+    set(link_exe_mod FALSE)
+
+    if("${target_type}" STREQUAL "EXE")
+      set(link_exe_lib FALSE)
+      set(link_exe_mod TRUE)
+    else()
+      set(mod_type "${target_type}")
+    endif()
+
+    if("${mod_type}" STREQUAL "MODULE")
+      set(link_mod_lib FALSE)
+    endif()
+
+
+    file(WRITE "${test_project_src_dir}/CMakeLists.txt" "
+      cmake_minimum_required(VERSION ${CMAKE_VERSION})
+      project(${project_name} C)
+
+      include_directories(${test_project_src_dir})
+
+      add_library(number ${lib_type} number.c)
+      add_library(counter ${mod_type} counter.c)
+    ")
+
+    if("${mod_type}" STREQUAL "MODULE")
+      file(APPEND "${test_project_src_dir}/CMakeLists.txt" "
+        set_target_properties(counter PROPERTIES PREFIX \"\")
+      ")
+    endif()
+
+    if(link_mod_lib)
+      file(APPEND "${test_project_src_dir}/CMakeLists.txt" "
+        target_link_libraries(counter number)
+      ")
+    elseif(NOT link_flag STREQUAL "")
+      file(APPEND "${test_project_src_dir}/CMakeLists.txt" "
+        set_target_properties(counter PROPERTIES LINK_FLAGS \"${link_flag}\")
+      ")
+    endif()
+
+    file(APPEND "${test_project_src_dir}/CMakeLists.txt" "
+      add_executable(main main.c)
+    ")
+
+    if(link_exe_lib)
+      file(APPEND "${test_project_src_dir}/CMakeLists.txt" "
+        target_link_libraries(main number)
+      ")
+    elseif(NOT link_flag STREQUAL "")
+      file(APPEND "${test_project_src_dir}/CMakeLists.txt" "
+        target_link_libraries(main \"${link_flag}\")
+      ")
+    endif()
+
+    if(link_exe_mod)
+      file(APPEND "${test_project_src_dir}/CMakeLists.txt" "
+        target_link_libraries(main counter)
+      ")
+    else()
+      file(APPEND "${test_project_src_dir}/CMakeLists.txt" "
+        target_link_libraries(main \"${CMAKE_DL_LIBS}\")
+      ")
+    endif()
+
+    file(WRITE "${test_project_src_dir}/number.c" "
+      #include <number.h>
+
+      static int _number;
+      void set_number(int number) { _number = number; }
+      int get_number() { return _number; }
+    ")
+
+    file(WRITE "${test_project_src_dir}/number.h" "
+      #ifndef _NUMBER_H
+      #define _NUMBER_H
+      extern void set_number(int);
+      extern int get_number(void);
+      #endif
+    ")
+
+    file(WRITE "${test_project_src_dir}/counter.c" "
+      #include <number.h>
+      int count() {
+        int result = get_number();
+        set_number(result + 1);
+        return result;
+      }
+    ")
+
+    file(WRITE "${test_project_src_dir}/counter.h" "
+      #ifndef _COUNTER_H
+      #define _COUNTER_H
+      extern int count(void);
+      #endif
+    ")
+
+    file(WRITE "${test_project_src_dir}/main.c" "
+      #include <stdlib.h>
+      #include <stdio.h>
+      #include <number.h>
+    ")
+
+    if(NOT link_exe_mod)
+      file(APPEND "${test_project_src_dir}/main.c" "
+        #include <dlfcn.h>
+      ")
+    endif()
+
+    file(APPEND "${test_project_src_dir}/main.c" "
+      int my_count() {
+        int result = get_number();
+        set_number(result + 1);
+        return result;
+      }
+
+      int main(int argc, char **argv) {
+        int result;
+    ")
+
+    if(NOT link_exe_mod)
+      file(APPEND "${test_project_src_dir}/main.c" "
+        void *counter_module;
+        int (*count)(void);
+
+        counter_module = dlopen(\"./counter.so\", RTLD_LAZY | RTLD_GLOBAL);
+        if(!counter_module) goto error;
+
+        count = dlsym(counter_module, \"count\");
+        if(!count) goto error;
+      ")
+    endif()
+
+    file(APPEND "${test_project_src_dir}/main.c" "
+        result = count()    != 0 ? EXIT_FAILURE :
+                 my_count() != 1 ? EXIT_FAILURE :
+                 my_count() != 2 ? EXIT_FAILURE :
+                 count()    != 3 ? EXIT_FAILURE :
+                 count()    != 4 ? EXIT_FAILURE :
+                 count()    != 5 ? EXIT_FAILURE :
+                 my_count() != 6 ? EXIT_FAILURE : EXIT_SUCCESS;
+    ")
+
+    if(NOT link_exe_mod)
+      file(APPEND "${test_project_src_dir}/main.c" "
+        goto done;
+        error:
+          fprintf(stderr, \"Error occured:\\n    %s\\n\", dlerror());
+          result = 1;
+
+        done:
+          if(counter_module) dlclose(counter_module);
+      ")
+    endif()
+
+    file(APPEND "${test_project_src_dir}/main.c" "
+          return result;
+      }
+    ")
+
+    set(_rpath_arg)
+    if(APPLE AND ${CMAKE_VERSION} VERSION_GREATER 2.8.11)
+      set(_rpath_arg "-DCMAKE_MACOSX_RPATH='${CMAKE_MACOSX_RPATH}'")
+    endif()
+
+    try_compile(project_compiles
+                "${test_project_bin_dir}"
+                "${test_project_src_dir}"
+                "${project_name}"
+                CMAKE_FLAGS
+                  "-DCMAKE_SHARED_LINKER_FLAGS='${CMAKE_SHARED_LINKER_FLAGS}'"
+                  "-DCMAKE_ENABLE_EXPORTS=ON"
+                  ${_rpath_arg}
+                OUTPUT_VARIABLE compile_output)
+
+    set(project_works 1)
+    set(run_output)
+
+    if(project_compiles)
+      execute_process(COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR}
+                              "${test_project_bin_dir}/main"
+                      WORKING_DIRECTORY "${test_project_bin_dir}"
+                      RESULT_VARIABLE project_works
+                      OUTPUT_VARIABLE run_output
+                      ERROR_VARIABLE run_output)
+    endif()
+
+    set(test_description
+        "Weak Link ${target_type} -> ${lib_type} (${link_flag_spec})")
+
+    if(project_works EQUAL 0)
+      set(project_works TRUE)
+      message(STATUS "Performing Test ${test_description} - Success")
+    else()
+      set(project_works FALSE)
+      message(STATUS "Performing Test ${test_description} - Failed")
+      file(APPEND ${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/CMakeError.log
+           "Performing Test ${test_description} failed with the "
+           "following output:\n"
+           "BUILD\n-----\n${compile_output}\nRUN\n---\n${run_output}\n")
+    endif()
+
+    set(${can_weak_link_var} ${project_works} PARENT_SCOPE)
+    if(project_works)
+      set(${project_name} ${link_flag} PARENT_SCOPE)
+      break()
+    endif()
+  endforeach()
+endfunction()
+
+function(sitk_check_dynamic_lookup)
+  # Two signatures are supported:
+
+  if(ARGC EQUAL "1")
+    #
+    # sitk_check_dynamic_lookup(<ResultVar>)
+    #
+    set(target_type "MODULE")
+    set(lib_type "SHARED")
+    set(has_dynamic_lookup_var "${ARGV0}")
+    set(link_flags_var "unused")
+
+  elseif(ARGC GREATER "2")
+    #
+    # sitk_check_dynamic_lookup(<TargetType>
+    #                      <LibType>
+    #                      <ResultVar>
+    #                      [<LinkFlagsVar>])
+    #
+    set(target_type "${ARGV0}")
+    set(lib_type "${ARGV1}")
+    set(has_dynamic_lookup_var "${ARGV2}")
+    if(ARGC EQUAL "3")
+      set(link_flags_var "unused")
+    else()
+      set(link_flags_var "${ARGV3}")
+    endif()
+  else()
+    message(FATAL_ERROR "missing arguments")
+  endif()
+
+  _check_dynamic_lookup(
+    ${target_type}
+    ${lib_type}
+    ${has_dynamic_lookup_var}
+    ${link_flags_var}
+    )
+  set(${has_dynamic_lookup_var} ${${has_dynamic_lookup_var}} PARENT_SCOPE)
+  if(NOT "x${link_flags_var}x" MATCHES "^xunusedx$")
+    set(${link_flags_var} ${${link_flags_var}} PARENT_SCOPE)
+  endif()
+endfunction()
+
+function(_check_dynamic_lookup
+         target_type
+         lib_type
+         has_dynamic_lookup_var
+         link_flags_var
+         )
+
+  # hash the CMAKE_FLAGS passed and check cache to know if we need to rerun
+  if("${target_type}" STREQUAL "STATIC")
+    string(MD5 cmake_flags_hash "${CMAKE_STATIC_LINKER_FLAGS}")
+  else()
+    string(MD5 cmake_flags_hash "${CMAKE_SHARED_LINKER_FLAGS}")
+  endif()
+
+  set(cache_var "HAS_DYNAMIC_LOOKUP_${target_type}_${lib_type}")
+  set(cache_hash_var "HAS_DYNAMIC_LOOKUP_${target_type}_${lib_type}_hash")
+  set(result_var "DYNAMIC_LOOKUP_FLAGS_${target_type}_${lib_type}")
+
+  if(     NOT DEFINED ${cache_hash_var}
+       OR NOT "${${cache_hash_var}}" STREQUAL "${cmake_flags_hash}")
+    unset(${cache_var} CACHE)
+  endif()
+
+  if(NOT DEFINED ${cache_var})
+    set(skip_test FALSE)
+
+   if(CMAKE_CROSSCOMPILING AND NOT CMAKE_CROSSCOMPILING_EMULATOR)
+      set(skip_test TRUE)
+    endif()
+
+    if(skip_test)
+      set(has_dynamic_lookup FALSE)
+      set(link_flags)
+    else()
+      _test_weak_link_project(${target_type}
+                              ${lib_type}
+                              has_dynamic_lookup
+                              link_flags)
+    endif()
+
+    set(caveat " (when linking ${target_type} against ${lib_type})")
+
+    set(${cache_var} "${has_dynamic_lookup}"
+        CACHE BOOL
+        "linker supports dynamic lookup for undefined symbols${caveat}")
+    mark_as_advanced(${cache_var})
+
+    set(${result_var} "${link_flags}"
+        CACHE STRING
+        "linker flags for dynamic lookup${caveat}")
+    mark_as_advanced(${result_var})
+
+    set(${cache_hash_var} "${cmake_flags_hash}"
+        CACHE INTERNAL "hashed flags for ${cache_var} check")
+  endif()
+
+  set(${has_dynamic_lookup_var} "${${cache_var}}" PARENT_SCOPE)
+  set(${link_flags_var} "${${result_var}}" PARENT_SCOPE)
+endfunction()
+
+function(sitk_target_link_libraries_with_dynamic_lookup target)
+  _get_target_type(target_type ${target})
+
+  set(link_props)
+  set(link_items)
+  set(link_libs)
+
+  foreach(lib ${ARGN})
+    _get_target_type(lib_type ${lib})
+    sitk_check_dynamic_lookup(${target_type}
+                         ${lib_type}
+                         has_dynamic_lookup
+                         dynamic_lookup_flags)
+
+    if(has_dynamic_lookup)
+      if(dynamic_lookup_flags)
+        if("${target_type}" STREQUAL "EXE")
+          list(APPEND link_items "${dynamic_lookup_flags}")
+        else()
+          list(APPEND link_props "${dynamic_lookup_flags}")
+        endif()
+      endif()
+    else()
+      list(APPEND link_libs "${lib}")
+    endif()
+  endforeach()
+
+  if(link_props)
+    list(REMOVE_DUPLICATES link_props)
+  endif()
+
+  if(link_items)
+    list(REMOVE_DUPLICATES link_items)
+  endif()
+
+  if(link_libs)
+    list(REMOVE_DUPLICATES link_libs)
+  endif()
+
+  if(link_props)
+    set_target_properties(${target}
+                          PROPERTIES LINK_FLAGS "${link_props}")
+  endif()
+
+  set(links "${link_items}" "${link_libs}")
+  if(links)
+    target_link_libraries(${target} "${links}")
+  endif()
+endfunction()
+
diff --git a/CMake/sitkTargetUseITK.cmake b/CMake/sitkTargetUseITK.cmake
new file mode 100644
index 0000000..fd38988
--- /dev/null
+++ b/CMake/sitkTargetUseITK.cmake
@@ -0,0 +1,34 @@
+# target_use_itk
+#
+# This function has the following form:
+#   sitk_target_use_itk(<target>
+#                       <PRIVATE|PUBLIC|INTERFACE>
+#                       [itk_module [itk_module [...]]])
+#
+#   It configures the target, with the require include directories and
+# link libraries to use the list of itk modules provided. The keyword
+# to indicate interface of the library is also required.
+
+function(sitk_target_use_itk target_name interface_keyword)
+
+  set(itk_modules ${ARGV})
+  list(REMOVE_AT itk_modules 0 1)
+
+  itk_module_config(_itk ${itk_modules})
+
+  if(_itk_LIBRARY_DIRS)
+    link_libraries(${_itk_LIBRARY_DIRS})
+  endif()
+
+  if(_itk_LIBRARIES)
+    target_link_libraries( ${target_name}
+      ${interface_keyword}
+      ${_itk_LIBRARIES} )
+  endif()
+  if(_itk_INCLUDE_DIRS)
+    target_include_directories( ${target_name}
+      ${interface_keyword}
+      ${_itk_INCLUDE_DIRS} )
+  endif()
+
+endfunction()
diff --git a/CMake/sitkUseGTest.cmake b/CMake/sitkUseGTest.cmake
new file mode 100644
index 0000000..32b5642
--- /dev/null
+++ b/CMake/sitkUseGTest.cmake
@@ -0,0 +1,86 @@
+#
+# sitkUseGTest
+#
+#  This file is a wrapper of CMake's FindGTest and GoogleTest's
+# recommendation to add the Google Test source tree as a subdirectory
+# of the project.
+#
+# This file is designed to provide the "GTest::GTest" target.
+#
+# The follow cache variable is used to find GTest:
+#
+# ``GTEST_ROOT``
+#   The root directory of the Google Test installation or a source
+# directory.
+
+
+set(GTEST_ROOT "" CACHE PATH "Path to the root of a binary gtest \
+installation where GTEST_ROOT/include/gtest/gtest.h can be found OR \
+path to a Google Test source tree.")
+
+include(GoogleTest)
+
+function(_sitk_gtest_use_gtest_source)
+
+  # Prevent overriding the parent project's compiler/linker
+  # settings on Windows
+  set(gtest_force_shared_crt ON CACHE INTERNAL "")
+
+  # Avoid CMP0063 warning
+  set(CMAKE_C_VISIBILITY_PRESET)
+  set(CMAKE_CXX_VISIBILITY_PRESET)
+  set(CMAKE_VISIBILITY_INLINES_HIDDEN)
+
+  set(BUILD_GTEST                 ON )
+  set(BUILD_GMOCK                 OFF)
+
+
+  # google test does not properly use pthreads on mingw
+  if (MINGW)
+    set(gtest_disable_pthreads  ON CACHE INTERNAL "" FORCE)
+  endif()
+
+  # Must build GTest as static since EXCLUDE_FROM_ALL, would exclude
+  # needed GTest shared libraries from being installed.
+  set(BUILD_SHARED_LIBS OFF)
+
+  # Add googletest directly to our build but exclude from using it's
+  # target's and installation unless referenced by other dependencies.
+  add_subdirectory("${GTEST_ROOT}"
+    "${CMAKE_CURRENT_BINARY_DIR}/GTest-build" EXCLUDE_FROM_ALL)
+
+endfunction()
+
+#
+
+
+if( DEFINED GTEST_ROOT AND EXISTS "${GTEST_ROOT}/CMakeLists.txt")
+
+  find_path(GTEST_INCLUDE_DIRS gtest/gtest.h
+    PATHS "${GTEST_ROOT}"
+    NO_DEFAULT_PATH)
+
+  if(NOT "${GTEST_INCLUDE_DIRS}" STREQUAL "")
+
+    message(STATUS "Adding Google Test source directory as subdirectory.")
+    set(GTEST_FOUND 1)
+    set(GTEST_LIBRARIES gtest)
+    set(GTEST_MAIN_LIBRARIES gtest_main)
+    set(GTEST_BOTH_LIBRARIES ${GTEST_LIBRARIES} ${GTEST_MAIN_LIBRARIES})
+
+    _sitk_gtest_use_gtest_source()
+
+    add_library(GTest::GTest ALIAS ${GTEST_LIBRARIES})
+    add_library(GTest::Main ALIAS ${GTEST_MAIN_LIBRARIES})
+
+  else()
+    message(WARNING "CTEST_ROOT appears to be a source directory \
+    but \"gtest/gtest.h\"  can not be found in source directory: \
+    ${GTEST_ROOT}")
+  endif()
+
+else()
+
+  find_package( GTest REQUIRED )
+
+endif ()
diff --git a/CMake/sitkUseSWIG.cmake b/CMake/sitkUseSWIG.cmake
new file mode 100644
index 0000000..f8a613b
--- /dev/null
+++ b/CMake/sitkUseSWIG.cmake
@@ -0,0 +1,278 @@
+# - SWIG module for CMake
+# Defines the following macros:
+#   SWIG_ADD_MODULE(name language [ files ])
+#     - Define swig module with given name and specified language
+#   SWIG_LINK_LIBRARIES(name [ libraries ])
+#     - Link libraries to swig module
+# All other macros are for internal use only.
+# To get the actual target name of the swig moduel,
+# use:  ${SWIG_MODULE_${name}_TARGET_NAME}.
+# The target name can be used to set dependecies between targets.
+# Set Source files properties such as CPLUSPLUS and SWIG_FLAGS to specify
+# special behavior of SWIG. Also global CMAKE_SWIG_FLAGS can be used to add
+# special flags to all swig calls.
+# Another special variable is CMAKE_SWIG_OUTDIR, it allows one to specify
+# where to write all the swig generated module (swig -outdir option)
+# The name-specific variable SWIG_MODULE_<name>_EXTRA_DEPS may be used
+# to specify extra dependencies for the generated modules.
+# If the source file generated by swig need some special flag you can use
+# SET_SOURCE_FILES_PROPERTIES( ${swig_generated_file_fullname}
+#        PROPERTIES COMPILE_FLAGS "-bla")
+
+
+#=============================================================================
+# Copyright 2004-2009 Kitware, Inc.
+# Copyright 2009 Mathieu Malaterre <mathieu.malaterre at gmail.com>
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distributed this file outside of CMake, substitute the full
+#  License text for the above reference.)
+
+SET(SWIG_CXX_EXTENSION "cxx")
+SET(SWIG_EXTRA_LIBRARIES "")
+
+SET(SWIG_PYTHON_EXTRA_FILE_EXTENSION "py")
+
+#
+# For given swig module initialize variables associated with it
+#
+MACRO(SWIG_MODULE_INITIALIZE name language)
+  STRING(TOUPPER "${language}" swig_uppercase_language)
+  STRING(TOLOWER "${language}" swig_lowercase_language)
+  SET(SWIG_MODULE_${name}_LANGUAGE "${swig_uppercase_language}")
+  SET(SWIG_MODULE_${name}_SWIG_LANGUAGE_FLAG "${swig_lowercase_language}")
+
+  IF("x${SWIG_MODULE_${name}_LANGUAGE}x" MATCHES "^xUNKNOWNx$")
+    MESSAGE(FATAL_ERROR "SWIG Error: Language \"${language}\" not found")
+  ENDIF("x${SWIG_MODULE_${name}_LANGUAGE}x" MATCHES "^xUNKNOWNx$")
+
+  IF("x${SWIG_MODULE_${name}_LANGUAGE}x" MATCHES "^xRUBYx$")
+    STRING(TOLOWER "${name}" ruby_module_name)
+  ENDIF("x${SWIG_MODULE_${name}_LANGUAGE}x" MATCHES "^xRUBYx$")
+
+  IF("x${SWIG_MODULE_${name}_LANGUAGE}x" MATCHES "^xPERLx$")
+    SET(SWIG_MODULE_${name}_EXTRA_FLAGS "-shadow")
+  ENDIF("x${SWIG_MODULE_${name}_LANGUAGE}x" MATCHES "^xPERLx$")
+
+  SET( SWIG_MODULE_${name}_TARGET_NAME "${name}_${SWIG_MODULE_${name}_LANGUAGE}" )
+
+ENDMACRO(SWIG_MODULE_INITIALIZE)
+
+#
+# For a given language, input file, and output file, determine extra files that
+# will be generated. This is internal swig macro.
+#
+
+MACRO(SWIG_GET_EXTRA_OUTPUT_FILES language outfiles generatedpath infile)
+  GET_SOURCE_FILE_PROPERTY(SWIG_GET_EXTRA_OUTPUT_FILES_module_basename
+    ${infile} SWIG_MODULE_NAME)
+  IF(SWIG_GET_EXTRA_OUTPUT_FILES_module_basename STREQUAL "NOTFOUND")
+    GET_FILENAME_COMPONENT(SWIG_GET_EXTRA_OUTPUT_FILES_module_basename "${infile}" NAME_WE)
+  ENDIF(SWIG_GET_EXTRA_OUTPUT_FILES_module_basename STREQUAL "NOTFOUND")
+ SET(${outfiles})
+  FOREACH(it ${SWIG_${language}_EXTRA_FILE_EXTENSION})
+    SET(${outfiles} ${${outfiles}}
+      "${generatedpath}/${SWIG_GET_EXTRA_OUTPUT_FILES_module_basename}.${it}")
+  ENDFOREACH(it)
+ENDMACRO(SWIG_GET_EXTRA_OUTPUT_FILES)
+
+#
+# Take swig (*.i) file and add proper custom commands for it
+#
+MACRO(SWIG_ADD_SOURCE_TO_MODULE name outfiles infile)
+  SET(swig_full_infile ${infile})
+  GET_FILENAME_COMPONENT(swig_source_file_path "${infile}" PATH)
+  GET_FILENAME_COMPONENT(swig_source_file_name_we "${infile}" NAME_WE)
+  GET_SOURCE_FILE_PROPERTY(swig_source_file_generated ${infile} GENERATED)
+  GET_SOURCE_FILE_PROPERTY(swig_source_file_cplusplus ${infile} CPLUSPLUS)
+  GET_SOURCE_FILE_PROPERTY(swig_source_file_flags ${infile} SWIG_FLAGS)
+  IF("${swig_source_file_flags}" STREQUAL "NOTFOUND")
+    SET(swig_source_file_flags "")
+  ENDIF("${swig_source_file_flags}" STREQUAL "NOTFOUND")
+  SET(swig_source_file_fullname "${infile}")
+  IF(${swig_source_file_path} MATCHES "^${CMAKE_CURRENT_SOURCE_DIR}")
+    STRING(REGEX REPLACE
+      "^${CMAKE_CURRENT_SOURCE_DIR}" ""
+      swig_source_file_relative_path
+      "${swig_source_file_path}")
+  ELSE(${swig_source_file_path} MATCHES "^${CMAKE_CURRENT_SOURCE_DIR}")
+    IF(${swig_source_file_path} MATCHES "^${CMAKE_CURRENT_BINARY_DIR}")
+      STRING(REGEX REPLACE
+        "^${CMAKE_CURRENT_BINARY_DIR}" ""
+        swig_source_file_relative_path
+        "${swig_source_file_path}")
+      SET(swig_source_file_generated 1)
+    ELSE(${swig_source_file_path} MATCHES "^${CMAKE_CURRENT_BINARY_DIR}")
+      SET(swig_source_file_relative_path "${swig_source_file_path}")
+      IF(swig_source_file_generated)
+        SET(swig_source_file_fullname "${CMAKE_CURRENT_BINARY_DIR}/${infile}")
+      ELSE(swig_source_file_generated)
+        SET(swig_source_file_fullname "${CMAKE_CURRENT_SOURCE_DIR}/${infile}")
+      ENDIF(swig_source_file_generated)
+    ENDIF(${swig_source_file_path} MATCHES "^${CMAKE_CURRENT_BINARY_DIR}")
+  ENDIF(${swig_source_file_path} MATCHES "^${CMAKE_CURRENT_SOURCE_DIR}")
+
+  SET(swig_generated_file_fullname
+    "${CMAKE_CURRENT_BINARY_DIR}")
+  IF(swig_source_file_relative_path)
+    SET(swig_generated_file_fullname
+      "${swig_generated_file_fullname}/${swig_source_file_relative_path}")
+  ENDIF(swig_source_file_relative_path)
+  # If CMAKE_SWIG_OUTDIR was specified then pass it to -outdir
+  IF(CMAKE_SWIG_OUTDIR)
+    SET(swig_outdir ${CMAKE_SWIG_OUTDIR})
+    # it may not exist, so create it:
+    file(MAKE_DIRECTORY ${CMAKE_SWIG_OUTDIR})
+  ELSE(CMAKE_SWIG_OUTDIR)
+    SET(swig_outdir ${CMAKE_CURRENT_BINARY_DIR})
+  ENDIF(CMAKE_SWIG_OUTDIR)
+  SWIG_GET_EXTRA_OUTPUT_FILES(${SWIG_MODULE_${name}_LANGUAGE}
+    swig_extra_generated_files
+    "${swig_outdir}"
+    "${infile}")
+  SET(swig_generated_file_fullname
+    "${swig_generated_file_fullname}/${swig_source_file_name_we}")
+  # add the language into the name of the file (i.e. TCL_wrap)
+  # this allows for the same .i file to be wrapped into different languages
+  SET(swig_generated_file_fullname
+    "${swig_generated_file_fullname}${SWIG_MODULE_${name}_LANGUAGE}_wrap")
+
+  IF(swig_source_file_cplusplus)
+    SET(swig_generated_file_fullname
+      "${swig_generated_file_fullname}.${SWIG_CXX_EXTENSION}")
+  ELSE(swig_source_file_cplusplus)
+    SET(swig_generated_file_fullname
+      "${swig_generated_file_fullname}.c")
+  ENDIF(swig_source_file_cplusplus)
+
+  #MESSAGE("Full path to source file: ${swig_source_file_fullname}")
+  #MESSAGE("Full path to the output file: ${swig_generated_file_fullname}")
+  GET_DIRECTORY_PROPERTY(cmake_include_directories INCLUDE_DIRECTORIES)
+  SET(swig_include_dirs)
+  FOREACH(it ${cmake_include_directories})
+    SET(swig_include_dirs ${swig_include_dirs} "-I${it}")
+  ENDFOREACH(it)
+
+  SET(swig_special_flags)
+  # default is c, so add c++ flag if it is c++
+  IF(swig_source_file_cplusplus)
+    SET(swig_special_flags ${swig_special_flags} "-c++")
+  ENDIF(swig_source_file_cplusplus)
+  SET(swig_extra_flags)
+  IF(SWIG_MODULE_${name}_EXTRA_FLAGS)
+    SET(swig_extra_flags ${swig_extra_flags} ${SWIG_MODULE_${name}_EXTRA_FLAGS})
+  ENDIF(SWIG_MODULE_${name}_EXTRA_FLAGS)
+  if(NOT CMAKE_VERSION VERSION_LESS 3.2 )
+    set(USES_TERMINAL "USES_TERMINAL")
+  endif()
+  ADD_CUSTOM_COMMAND(
+    OUTPUT "${swig_generated_file_fullname}" ${swig_extra_generated_files}
+    COMMAND "${SWIG_EXECUTABLE}"
+    ARGS "-${SWIG_MODULE_${name}_SWIG_LANGUAGE_FLAG}"
+    ${swig_source_file_flags}
+    ${CMAKE_SWIG_FLAGS}
+    -outdir ${swig_outdir}
+    ${swig_special_flags}
+    ${swig_extra_flags}
+    ${swig_include_dirs}
+    -o "${swig_generated_file_fullname}"
+    "${swig_source_file_fullname}"
+    MAIN_DEPENDENCY "${swig_source_file_fullname}"
+    ${USES_TERMINAL}
+    DEPENDS ${SWIG_MODULE_${name}_EXTRA_DEPS}
+    COMMENT "Swig source to generate ${SWIG_MODULE_${name}_LANGUAGE} wrapping")
+  SET_SOURCE_FILES_PROPERTIES("${swig_generated_file_fullname}" ${swig_extra_generated_files}
+    PROPERTIES GENERATED 1)
+  SET(${outfiles} "${swig_generated_file_fullname}" ${swig_extra_generated_files})
+ENDMACRO(SWIG_ADD_SOURCE_TO_MODULE)
+
+#
+# Create Swig module
+#
+MACRO(SWIG_ADD_MODULE name language)
+  SWIG_MODULE_INITIALIZE(${name} ${language})
+  SET(swig_dot_i_sources)
+  SET(swig_other_sources)
+  FOREACH(it ${ARGN})
+    IF(${it} MATCHES ".*\\.i$")
+      SET(swig_dot_i_sources ${swig_dot_i_sources} "${it}")
+    ELSE(${it} MATCHES ".*\\.i$")
+      SET(swig_other_sources ${swig_other_sources} "${it}")
+    ENDIF(${it} MATCHES ".*\\.i$")
+  ENDFOREACH(it)
+
+  SET(swig_generated_sources)
+  FOREACH(it ${swig_dot_i_sources})
+    SWIG_ADD_SOURCE_TO_MODULE(${name} swig_generated_source ${it})
+    SET(swig_generated_sources ${swig_generated_sources} "${swig_generated_source}")
+  ENDFOREACH(it)
+  GET_DIRECTORY_PROPERTY(swig_extra_clean_files ADDITIONAL_MAKE_CLEAN_FILES)
+  SET_DIRECTORY_PROPERTIES(PROPERTIES
+    ADDITIONAL_MAKE_CLEAN_FILES "${swig_extra_clean_files};${swig_generated_sources}")
+  ADD_LIBRARY( ${SWIG_MODULE_${name}_TARGET_NAME}
+    MODULE
+    ${swig_generated_sources}
+    ${swig_other_sources})
+  SET_TARGET_PROPERTIES( ${SWIG_MODULE_${name}_TARGET_NAME} PROPERTIES OUTPUT_NAME "${name}" )
+  STRING(TOLOWER "${language}" swig_lowercase_language)
+  IF ("${swig_lowercase_language}" STREQUAL "java")
+    IF (APPLE)
+        # In java you want:
+        #      System.loadLibrary("LIBRARY");
+        # then JNI will look for a library whose name is platform dependent, namely
+        #   MacOS  : libLIBRARY.jnilib
+        #   Windows: LIBRARY.dll
+        #   Linux  : libLIBRARY.so
+        SET_TARGET_PROPERTIES (${SWIG_MODULE_${name}_TARGET_NAME} PROPERTIES SUFFIX ".jnilib")
+      ENDIF (APPLE)
+  ENDIF ("${swig_lowercase_language}" STREQUAL "java")
+  IF ("${swig_lowercase_language}" STREQUAL "python")
+
+    # when swig is used without the -interface it will produce in the module.py
+    # a 'import _modulename' statement, which implies having a corresponding
+    # _modulename.so (*NIX), _modulename.pyd (Win32).
+    SET_TARGET_PROPERTIES( ${SWIG_MODULE_${name}_TARGET_NAME} PROPERTIES OUTPUT_NAME "_${name}" )
+
+    # this is only needed for the python case where a _modulename.so is generated
+    SET_TARGET_PROPERTIES(${SWIG_MODULE_${name}_TARGET_NAME} PROPERTIES PREFIX "")
+
+    # Python extension modules on Windows must have the extension ".pyd"
+    # instead of ".dll" as of Python 2.5.  Older python versions do support
+    # this suffix.
+    # http://docs.python.org/whatsnew/ports.html#SECTION0001510000000000000000
+    # <quote>
+    # Windows: .dll is no longer supported as a filename extension for extension modules.
+    # .pyd is now the only filename extension that will be searched for.
+    # </quote>
+    IF(WIN32 AND NOT CYGWIN)
+      SET_TARGET_PROPERTIES(${SWIG_MODULE_${name}_TARGET_NAME} PROPERTIES SUFFIX ".pyd")
+    ENDIF(WIN32 AND NOT CYGWIN)
+  ENDIF ("${swig_lowercase_language}" STREQUAL "python")
+  IF ("${swig_lowercase_language}" STREQUAL "ruby")
+    SET_TARGET_PROPERTIES(${SWIG_MODULE_${name}_TARGET_NAME} PROPERTIES PREFIX "")
+    IF(APPLE)
+      SET_TARGET_PROPERTIES(${SWIG_MODULE_${name}_TARGET_NAME} PROPERTIES SUFFIX ".bundle")
+      SET_TARGET_PROPERTIES(${SWIG_MODULE_${name}_TARGET_NAME} PROPERTIES COMPILE_FLAGS "-bundle")
+    ENDIF(APPLE)
+  ENDIF ("${swig_lowercase_language}" STREQUAL "ruby")
+  IF ("${swig_lowercase_language}" STREQUAL "r")
+    SET_TARGET_PROPERTIES(${SWIG_MODULE_${name}_TARGET_NAME} PROPERTIES PREFIX "")
+  ENDIF ()
+ENDMACRO(SWIG_ADD_MODULE)
+
+#
+# Like TARGET_LINK_LIBRARIES but for swig modules
+#
+MACRO(SWIG_LINK_LIBRARIES name)
+  IF(SWIG_MODULE_${name}_TARGET_NAME)
+    TARGET_LINK_LIBRARIES(${SWIG_MODULE_${name}_TARGET_NAME} ${ARGN})
+  ELSE(SWIG_MODULE_${name}_TARGET_NAME)
+    MESSAGE(SEND_ERROR "Cannot find Swig library \"${name}\".")
+  ENDIF(SWIG_MODULE_${name}_TARGET_NAME)
+ENDMACRO(SWIG_LINK_LIBRARIES name)
diff --git a/CMake/sitk_check_cxx11.cxx b/CMake/sitk_check_cxx11.cxx
new file mode 100644
index 0000000..950e416
--- /dev/null
+++ b/CMake/sitk_check_cxx11.cxx
@@ -0,0 +1,194 @@
+
+//-------------------------------------
+
+#ifdef SITK_HAS_CXX11_STATIC_ASSERT
+
+int main(void)
+{
+  static_assert( true, "this should compile with C++0x static_assert keyword support");
+  return 0;
+}
+
+#endif
+
+
+//-------------------------------------
+
+#ifdef SITK_HAS_CXX11_NULLPTR
+
+struct C {
+  void func();
+};
+
+int main(void)
+{
+  int *x = nullptr;
+  char *c = nullptr;
+  void (C::*pmf)() = nullptr;
+  if (nullptr==c) {}
+  if (nullptr==pmf) {}
+  return 0;
+}
+
+#endif
+
+//-------------------------------------
+
+#ifdef SITK_HAS_CXX11_FUNCTIONAL
+
+#include <functional>
+
+void f(int,int) {}
+
+int main(void)
+{
+std::function<void(int,int)> g(f);
+using namespace std::placeholders;
+std::function<void(int)> h = std::bind(g,0,_1);
+return 0;
+}
+
+#endif
+
+//-------------------------------------
+
+#ifdef SITK_HAS_CXX11_ALIAS_TEMPLATE
+
+template<class T>
+using ptr = T*;
+
+int main(void)
+{
+ptr<int> x;
+return 0;
+}
+
+#endif
+
+//-------------------------------------
+
+#ifdef SITK_HAS_CXX11_UNIQUE_PTR
+
+#include <memory>
+
+int main(void) {
+  std::unique_ptr<int> p1(new int);
+  return 0;
+}
+
+#endif
+
+
+
+//-------------------------------------
+
+#ifdef SITK_HAS_TR1_FUNCTIONAL
+
+#ifdef HAS_TR1_SUB_INCLUDE
+#include <tr1/functional>
+#else
+#include <functional>
+#endif
+
+void f(int,int) {}
+
+int main(void)
+{
+  std::tr1::function<void(int,int)> g(f);
+  using namespace std::tr1::placeholders;
+  std::tr1::function<void(int)> h = std::tr1::bind(g,0,_1);
+  return 0;
+}
+
+#endif
+
+//-------------------------------------
+
+#ifdef SITK_HAS_CXX11_TYPE_TRAITS
+
+#include <type_traits>
+
+int main(void)
+{
+  std::integral_constant<int, 0> a;
+  std::true_type b;
+  std::false_type c;
+  std::is_same<int,int>::type d;
+  return 0;
+}
+
+#endif
+
+//-------------------------------------
+
+#ifdef SITK_HAS_TR1_TYPE_TRAITS
+
+#ifdef HAS_TR1_SUB_INCLUDE
+#include <tr1/type_traits>
+#else
+#include <type_traits>
+#endif
+
+int main(void)
+{
+  std::tr1::integral_constant<int, 0> a;
+  std::tr1::true_type b;
+  std::tr1::false_type c;
+  std::tr1::is_same<int,int>::type d;
+  return 0;
+}
+
+#endif
+
+//-------------------------------------
+
+#ifdef SITK_HAS_CXX11_UNORDERED_MAP
+
+#include <unordered_map>
+
+int main(void)
+{
+  // On OSX with gcc 4.0, there is an internal const correctness issue
+  // in the following.
+  std::unordered_map<int,int> s;
+  const std::unordered_map<int, int> &c_ref = s;
+  c_ref.find(1); // Problem is here.
+  return 0;
+}
+
+#endif
+
+//-------------------------------------
+
+#ifdef SITK_HAS_TR1_UNORDERED_MAP
+
+
+#ifdef HAS_TR1_SUB_INCLUDE
+#include <tr1/unordered_map>
+#else
+#include <unordered_map>
+#endif
+
+int main(void)
+{
+  // On OSX with gcc 4.0, there is an internal const correctness issue
+  // in the following.
+  std::tr1::unordered_map<int,int> s;
+  const std::tr1::unordered_map<int, int> &c_ref = s;
+  c_ref.find(1); // Problem is here.
+  return 0;
+}
+
+#endif
+
+//-------------------------------------
+
+#ifdef SITK_HAS_TR1_SUB_INCLUDE
+
+#include <tr1/functional>
+#include <tr1/type_traits>
+#include <tr1/unordered_map>
+
+int main(void) { return 0; }
+
+#endif
diff --git a/CMake/sitk_check_cxx11_required.cxx b/CMake/sitk_check_cxx11_required.cxx
new file mode 100644
index 0000000..7727d82
--- /dev/null
+++ b/CMake/sitk_check_cxx11_required.cxx
@@ -0,0 +1,14 @@
+#include <iostream>
+#if __cplusplus >= 201103L
+#else
+#if defined _LIBCPP_VERSION
+#error "libc++ is not supported without C++11"
+#endif
+#endif
+
+
+int main(void)
+{
+std::cout << "__cplusplus:" << __cplusplus << std::endl;
+return 0;
+}
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..c22ecc9
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,493 @@
+cmake_minimum_required ( VERSION 3.0 FATAL_ERROR )
+
+# Explicitly add INCREMENTAL linking option to command lines.
+# http://www.cmake.org/pipermail/cmake/2010-February/035174.html
+SET(MSVC_INCREMENTAL_DEFAULT ON)
+
+project ( SimpleITK )
+
+cmake_policy( VERSION 3.0 )
+
+foreach(p
+    CMP0042 # CMake 3.0
+    CMP0063 # CMake 3.3.2
+    )
+  if(POLICY ${p})
+    cmake_policy(SET ${p} NEW)
+  endif()
+endforeach()
+
+# Include extra CMake files
+list(INSERT CMAKE_MODULE_PATH 0 "${CMAKE_CURRENT_SOURCE_DIR}/CMake")
+
+#-----------------------------------------------------------------------------
+# Version information
+include(Version.cmake)
+
+set(SimpleITK_VERSION "${SimpleITK_VERSION_MAJOR}.${SimpleITK_VERSION_MINOR}")
+if(DEFINED SimpleITK_VERSION_PATCH)
+  set(SimpleITK_VERSION "${SimpleITK_VERSION}.${SimpleITK_VERSION_PATCH}")
+  if(DEFINED SimpleITK_VERSION_TWEAK)
+    set(SimpleITK_VERSION "${SimpleITK_VERSION}.${SimpleITK_VERSION_TWEAK}")
+  endif()
+endif()
+
+if(DEFINED SimpleITK_VERSION_RC)
+  set(SimpleITK_VERSION "${SimpleITK_VERSION}${SimpleITK_VERSION_RC}")
+endif()
+if(DEFINED SimpleITK_VERSION_POST)
+  set(SimpleITK_VERSION "${SimpleITK_VERSION}.post${SimpleITK_VERSION_POST}")
+elseif(DEFINED SimpleITK_VERSION_DEV)
+  set(SimpleITK_VERSION "${SimpleITK_VERSION}.dev${SimpleITK_VERSION_DEV}")
+endif()
+
+option( SimpleITK_BUILD_DISTRIBUTE "Remove '-g#####' from version. ( for official distribution only )" OFF )
+mark_as_advanced( SimpleITK_BUILD_DISTRIBUTE )
+if( NOT SimpleITK_BUILD_DISTRIBUTE )
+  set(SimpleITK_VERSION "${SimpleITK_VERSION}-g${SimpleITK_VERSION_HASH}")
+endif()
+
+message(STATUS "Building SimpleITK version \"${SimpleITK_VERSION}\"")
+
+
+#-----------------------------------------------------------
+# Check and set required flags for compilation
+# This must be done before any other try compiles based tests are
+# done.
+include(sitkCheckRequiredFlags)
+include(sitkCompilerWarningsSettings)
+
+include( sitkSITKLegacyNaming )
+include( sitkForbidDownloadsOption )
+include( sitkTargetUseITK )
+
+find_package(ITK REQUIRED )
+#we require certain packages be turned on in ITK
+include(sitkCheckForITKModuleDependencies)
+
+if(ITK_FOUND)
+
+  # NOTE: We are purposely not calling UseITK yet. However, we must make
+  # sure the requred compilation and linker flags are set. Since, we
+  # are trying to encapsulate ITK, we need to very carefully control
+  # in access to the headers and libraries, hence each SimpleITK
+  # library will call UseITK.
+
+  # Add compiler flags needed to use ITK.
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ITK_REQUIRED_C_FLAGS}")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ITK_REQUIRED_CXX_FLAGS}")
+  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${ITK_REQUIRED_LINK_FLAGS}")
+  set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${ITK_REQUIRED_LINK_FLAGS}")
+  set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${ITK_REQUIRED_LINK_FLAGS}")
+
+  link_directories( "${ITK_LIBRARY_DIRS}")
+
+
+endif()
+
+
+list(APPEND SimpleITK_PRIVATE_COMPILE_OPTIONS ${CXX_ADDITIONAL_WARNING_FLAGS})
+
+#----------------------------------------------------------
+# Place all options to go into sitkConfigure.h here
+option(BUILD_SHARED_LIBS "Build SimpleITK ITK with shared libraries. This does not effect wrapped languages." OFF)
+set(SITK_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS})
+
+
+option(SimpleITK_EXPLICIT_INSTANTIATION "Enable an ITK static library of explicitly instantiated templates." ON)
+sitk_legacy_naming(SimpleITK_EXPLICIT_INSTANTIATION)
+
+if ( MSVC AND SITK_BUILD_SHARED_LIBS )
+  set( SITK_SimpleITKExplit_STATIC 1 )
+endif()
+
+set( SimpleITK_INT64_PIXELIDS_DEFAULT ON )
+if( MSVC )
+  # See http://www.cmake.org/cmake/help/v2.8.10/cmake.html#variable:MSVC_VERSION
+  # and https://en.wikipedia.org/wiki/Microsoft_Visual_Studio#Version_history
+  #   1500 = VS  9.0 (Visual Studio 2008)
+  #   1600 = VS 10.0 (Visual Studio 2010)
+  #   1700 = VS 11.0 (Visual Studio 2012)
+  if(MSVC_VERSION VERSION_LESS 1600)
+    # with this option on the linker runs out of memory
+    set( SimpleITK_INT64_PIXELIDS_DEFAULT OFF )
+  endif()
+endif()
+option( SimpleITK_INT64_PIXELIDS "Instantiate 64-bit integer pixels, including unsigned, vector and label maps."
+  ${SimpleITK_INT64_PIXELIDS_DEFAULT} )
+sitk_legacy_naming(SimpleITK_INT64_PIXELIDS)
+
+
+option( SimpleITK_4D_IMAGES "Add Image and I/O support for four spatial dimensions." OFF )
+mark_as_advanced( SimpleITK_4D_IMAGES )
+sitk_legacy_naming(SimpleITK_4D_IMAGES)
+
+
+# Setup build locations.
+if(NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY)
+  set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
+endif()
+if(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY)
+  set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
+endif()
+if(NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
+  set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
+endif()
+
+set ( SimpleITK_INCLUDE_DIRS
+      ${CMAKE_SOURCE_DIR}/Code/Common/include
+      ${CMAKE_SOURCE_DIR}/Code/Registration/include
+      ${CMAKE_SOURCE_DIR}/Code/BasicFilters/include
+      ${CMAKE_SOURCE_DIR}/Code/IO/include
+      ${CMAKE_BINARY_DIR}/Code/BasicFilters/include
+      ${CMAKE_BINARY_DIR}/Code/Common/include
+      )
+
+set ( SimpleITK_LIBRARIES SimpleITKCommon SimpleITKIO SimpleITKRegistration )
+
+if (SimpleITK_EXPLICIT_INSTANTIATION)
+  list ( APPEND SimpleITK_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/Code/Explicit/include )
+  # This library is linked privately to SimpleITK libraries and is not
+  # part of the public link interface
+  #list ( APPEND SimpleITK_LIBRARIES  SimpleITKExplicit )
+endif()
+
+set( SimpleITK_LIBRARIES ${SimpleITK_LIBRARIES}  CACHE INTERNAL "" )
+
+# Be sure to clear these each time
+set ( GENERATED_TEST_LIST "" CACHE INTERNAL "" )
+set ( GENERATED_FILTER_LIST "" CACHE INTERNAL "" )
+set ( GENERATED_TEST_SOURCE_LIST "" CACHE INTERNAL "" )
+
+# Create cached list of all template components
+file( GLOB template_components
+      ${SimpleITK_SOURCE_DIR}/ExpandTemplateGenerator/Components/*.h.in
+      ${SimpleITK_SOURCE_DIR}/ExpandTemplateGenerator/Components/*.cxx.in
+    )
+set ( template_components ${template_components} CACHE INTERNAL "" )
+
+
+#------------------------------------------------------------------------------
+# Variables for use in install rules:
+
+if(NOT SimpleITK_INSTALL_RUNTIME_DIR)
+  set(SimpleITK_INSTALL_RUNTIME_DIR "bin")
+endif()
+if(NOT SimpleITK_INSTALL_LIBRARY_DIR)
+  set(SimpleITK_INSTALL_LIBRARY_DIR "lib")
+endif()
+if(NOT SimpleITK_INSTALL_ARCHIVE_DIR)
+  set(SimpleITK_INSTALL_ARCHIVE_DIR "lib")
+endif()
+if(NOT SimpleITK_INSTALL_INCLUDE_DIR)
+  set(SimpleITK_INSTALL_INCLUDE_DIR "include/SimpleITK-${SimpleITK_VERSION_MAJOR}.${SimpleITK_VERSION_MINOR}")
+endif()
+if(NOT SimpleITK_INSTALL_DOC_DIR)
+  set(SimpleITK_INSTALL_DOC_DIR share/doc/SimpleITK-${SimpleITK_VERSION_MAJOR}.${SimpleITK_VERSION_MINOR})
+endif()
+if(NOT SimpleITK_INSTALL_PACKAGE_DIR)
+  set(SimpleITK_INSTALL_PACKAGE_DIR "${SimpleITK_INSTALL_LIBRARY_DIR}/cmake/SimpleITK-${SimpleITK_VERSION_MAJOR}.${SimpleITK_VERSION_MINOR}")
+endif()
+
+function(sitk_install_exported_target tgt)
+  # Remove the build tree's SimpleITKTargets file if this is the first call:
+  get_property(first_time GLOBAL PROPERTY SimpleITK_FIRST_EXPORTED_TARGET)
+  if(NOT first_time)
+    file(REMOVE ${CMAKE_BINARY_DIR}/SimpleITKTargets.cmake)
+    set_property(GLOBAL PROPERTY SimpleITK_FIRST_EXPORTED_TARGET 1)
+  endif()
+
+  get_target_property( type ${tgt} TYPE )
+  if (type STREQUAL "STATIC_LIBRARY" OR
+      type STREQUAL "MODULE_LIBRARY" OR
+      type STREQUAL "SHARED_LIBRARY")
+    set_property(TARGET ${tgt} PROPERTY VERSION 1)
+    set_property(TARGET ${tgt} PROPERTY SOVERSION 1)
+    set_property(TARGET ${tgt} PROPERTY
+      OUTPUT_NAME ${tgt}-${SimpleITK_VERSION_MAJOR}.${SimpleITK_VERSION_MINOR})
+  endif()
+
+  export(TARGETS ${tgt}
+    APPEND FILE "${CMAKE_BINARY_DIR}/SimpleITKTargets.cmake"
+    )
+
+  install(TARGETS ${tgt}
+    EXPORT SimpleITKTargets
+    RUNTIME DESTINATION ${SimpleITK_INSTALL_RUNTIME_DIR}
+    LIBRARY DESTINATION ${SimpleITK_INSTALL_LIBRARY_DIR}
+    ARCHIVE DESTINATION ${SimpleITK_INSTALL_ARCHIVE_DIR}
+    )
+endfunction()
+
+include(sitkStripOption)
+
+#------------------------------------------------------------------------------
+# These are some system specific compiler options needed to build SimpleITK
+
+include(CheckCXXCompilerFlag)
+
+if( NOT DEFINED CMAKE_POSITION_INDEPENDENT_CODE )
+  set( CMAKE_POSITION_INDEPENDENT_CODE 1 )
+endif()
+
+
+if( NOT DEFINED CMAKE_C_VISIBILITY_PRESET )
+  set(CMAKE_C_VISIBILITY_PRESET hidden)
+endif()
+
+if( NOT DEFINED CMAKE_CXX_VISIBILITY_PRESET )
+  set(CMAKE_CXX_VISIBILITY_PRESET hidden)
+endif()
+
+if( NOT DEFINED CMAKE_VISIBILITY_INLINES_HIDDEN )
+  set( CMAKE_VISIBILITY_INLINES_HIDDEN 1 )
+endif()
+
+
+#-----------------------------------------------------------
+# Place all checks and try compile variable for sitkConfigure.h here
+
+include(sitkCheckCXX11)
+
+
+include(CheckIncludeFileCXX)
+
+
+# check for stdint
+# This generates a configuration error if the compiler is not supported
+check_include_file_cxx( stdint.h SITK_HAS_STDINT_H )
+if(NOT SITK_HAS_STDINT_H)
+    if(MSVC)
+      add_subdirectory("${SimpleITK_SOURCE_DIR}/Utilities/C99")
+    else()
+      message(FATAL_ERROR "Unable to find require \"stdint.h\" header file.")
+    endif()
+endif()
+
+#------------------------------------------------------------------------------
+# assemble a list of important documentation from Simple ITK and ITK
+
+set ( SimpleITK_DOC_FILES
+  "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE"
+  "${CMAKE_CURRENT_SOURCE_DIR}/NOTICE"
+  "${CMAKE_CURRENT_SOURCE_DIR}/Readme.md"
+  )
+
+# add important files from ITK
+
+# if using from build tree then ITK_USE_FILE will be
+# ITK_SOURCE_DIR/CMake/UseITK.cmake. The needed docs should be in the
+# root of the source tree
+get_filename_component( _itk_root "${ITK_USE_FILE}" PATH )
+get_filename_component( _itk_root "${_itk_root}" PATH )
+set( _itk_source_path "${_itk_root}" )
+
+get_filename_component( _itk_root "${_itk_root}" PATH )
+get_filename_component( _itk_root "${_itk_root}" PATH )
+set( _itk_doc_path "${_itk_root}/share/doc/ITK-${ITK_VERSION_MAJOR}.${ITK_VERSION_MINOR}" )
+
+if( EXISTS "${_itk_source_path}/NOTICE" )
+  set( ITK_DOC_FILES
+    # "${_itk_source_path}/LICENSE" SimpleITK has same license file
+    "${_itk_source_path}/NOTICE"
+    "${_itk_source_path}/README.txt"
+    )
+elseif( EXISTS "${_itk_doc_path}/NOTICE" )
+  set( ITK_DOC_FILES
+    # "${_itk_doc_path}/LICENSE" SimpleITK has same license file
+    "${_itk_doc_path}/NOTICE"
+    "${_itk_doc_path}/README.txt"
+    )
+else()
+  message( "doc_path: ${_itk_doc_path}" )
+  message( WARNING "Unable to file ITK's NOTICE File!\n This file will not be included in SimpleITK packaging!" )
+endif()
+
+
+foreach(_f IN LISTS ITK_DOC_FILES)
+  get_filename_component( _name "${_f}" NAME )
+  set( _o "${CMAKE_CURRENT_BINARY_DIR}/ITK-${ITK_VERSION_MAJOR}.${ITK_VERSION_MINOR}-${_name}" )
+  configure_file( "${_f}"  "${_o}" )
+  list( APPEND SimpleITK_DOC_FILES "${_o}" )
+endforeach()
+
+
+#------------------------------------------------------------------------------
+# Set up Documentation
+include(${SimpleITK_SOURCE_DIR}/Utilities/Doxygen/Doxygen.cmake)
+
+#------------------------------------------------------------------------------
+# Set up wrapping.
+#
+# Use CMake file which present options for wrapped languages, and finds languages as needed
+#
+include(sitkLanguageOptions)
+
+#------------------------------------------------------------------------------
+# Ensure that development strips have been setup
+include(sitkCheckSourceTree)
+
+#-----------------------------------------------------------------------------
+if(NOT EXISTS "${SimpleITK_SOURCE_DIR}/.ExternalData/README.rst")
+  # This file is always present in version-controlled source trees
+  # so we must have been extracted from a source tarball with no
+  # data objects needed for testing.  Turn off tests by default
+  # since enabling them requires network access or manual data
+  # store configuration.
+  option(BUILD_TESTING "Build the testing tree." OFF)
+endif()
+
+#------------------------------------------------------------------------------
+# set things up for testing, this configuration needs to occour before
+# we enter the sub-directories
+include(CTest)
+
+
+#------------------------------------------------------------------------------
+# Go to subdirectories
+add_subdirectory ( Utilities )
+add_subdirectory ( Code )
+add_subdirectory ( Wrapping )
+
+#------------------------------------------------------------------------------
+# ITK uses KWStyle for checking the coding style
+include(${SimpleITK_SOURCE_DIR}/Utilities/KWStyle/KWStyle.cmake)
+
+#------------------------------------------------------------------------------
+# set things up for testing, if enabled
+
+if ( BUILD_TESTING )
+
+  include( sitkAddTest )
+
+  file( GLOB_RECURSE content_links
+    RELATIVE "${SimpleITK_SOURCE_DIR}" "Testing/Data/*.md5" )
+  foreach(link ${content_links})
+    string( REGEX REPLACE "\\.md5$" "" link ${link} )
+    ExternalData_Expand_Arguments( SimpleITKData
+      link_location
+      DATA{${link}}
+      )
+  endforeach()
+
+  enable_testing()
+  add_subdirectory ( Testing )
+
+  option ( RUN_LONG_TESTS "Run long tests.  Some tests have been identified as long running, should these be run?" OFF )
+  mark_as_advanced(RUN_LONG_TESTS)
+  set(BUILDNAME "${BUILDNAME}" CACHE STRING "Name of build on the dashboard")
+  configure_file(CMake/CTestCustom.cmake.in CTestCustom.cmake)
+endif()
+
+# optional examples directory with testing
+option(BUILD_EXAMPLES "Build the Examples directory." ON)
+
+if(BUILD_EXAMPLES)
+  add_subdirectory ( Examples )
+endif()
+
+
+#------------------------------------------------------------------------------
+# Options for documentation
+option ( BUILD_DOCUMENTS "Build the Documentation subdirectory" OFF )
+
+if ( BUILD_DOCUMENTS )
+  add_subdirectory ( Documentation )
+endif()
+
+
+#------------------------------------------------------------------------------
+# Configure SimpleITKConfig.cmake for the build tree.
+set(SimpleITKConfig_TREE "build")
+set(SimpleITKConfig_CODE "")
+set(SimpleITKConfig_INCLUDE_DIRS ${SimpleITK_INCLUDE_DIRS})
+
+configure_file(SimpleITKConfig.cmake.in
+               SimpleITKConfig.cmake @ONLY IMMEDIATE)
+
+#------------------------------------------------------------------------------
+# Configure SimpleITKConfig.cmake for the install tree.
+set(SimpleITKConfig_TREE "install")
+
+set(SimpleITKConfig_CODE "set(SimpleITK_INSTALL_PREFIX \"\${_SimpleITKConfig_DIR}\")")
+# Construct the proper number of get_filename_component(... PATH)
+# calls to compute the installation prefix.
+string(REGEX REPLACE "/" ";" _count "${SimpleITK_INSTALL_PACKAGE_DIR}")
+foreach(p ${_count})
+  set(SimpleITKConfig_CODE "${SimpleITKConfig_CODE}
+get_filename_component(SimpleITK_INSTALL_PREFIX \"\${SimpleITK_INSTALL_PREFIX}\" PATH)")
+endforeach(p)
+set(SimpleITKConfig_CODE "${SimpleITKConfig_CODE}\n")
+
+set(SimpleITKConfig_INCLUDE_DIRS
+  "\${SimpleITK_INSTALL_PREFIX}/${SimpleITK_INSTALL_INCLUDE_DIR}")
+
+configure_file(SimpleITKConfig.cmake.in
+               CMakeFiles/SimpleITKConfig.cmake @ONLY IMMEDIATE)
+
+#------------------------------------------------------------------------------
+# Help other projects use SimpleITK
+configure_file(UseSimpleITK.cmake.in
+               UseSimpleITK.cmake COPYONLY IMMEDIATE)
+
+configure_file(SimpleITKConfigVersion.cmake.in
+               SimpleITKConfigVersion.cmake @ONLY IMMEDIATE)
+
+
+#------------------------------------------------------------------------------
+# INSTALLATION
+
+install(FILES ${SimpleITK_BINARY_DIR}/CMakeFiles/SimpleITKConfig.cmake
+              ${SimpleITK_BINARY_DIR}/SimpleITKConfigVersion.cmake
+              ${SimpleITK_BINARY_DIR}/UseSimpleITK.cmake
+  DESTINATION ${SimpleITK_INSTALL_PACKAGE_DIR}
+  COMPONENT Development)
+
+install(EXPORT SimpleITKTargets
+  DESTINATION ${SimpleITK_INSTALL_PACKAGE_DIR}
+  COMPONENT Development)
+
+file( GLOB __files
+  ${CMAKE_SOURCE_DIR}/Code/BasicFilters/include/*.h
+  ${CMAKE_SOURCE_DIR}/Code/BasicFilters/include/*.hxx
+  ${CMAKE_SOURCE_DIR}/Code/Common/include/*.h
+  ${CMAKE_SOURCE_DIR}/Code/Common/include/*.hxx
+  ${CMAKE_SOURCE_DIR}/Code/IO/include/*.h
+  ${CMAKE_SOURCE_DIR}/Code/IO/include/*.hxx
+  ${CMAKE_SOURCE_DIR}/Code/Registration/include/*.h
+  ${CMAKE_SOURCE_DIR}/Code/Registration/include/*.hxx
+  )
+
+install(FILES ${__files}
+  DESTINATION ${SimpleITK_INSTALL_INCLUDE_DIR}
+  COMPONENT Development)
+
+install(
+  DIRECTORY
+    ${CMAKE_SOURCE_DIR}/Code/Common/include/Ancillary
+    ${CMAKE_SOURCE_DIR}/Code/Common/include/nsstd
+  DESTINATION
+    ${SimpleITK_INSTALL_INCLUDE_DIR}/
+  COMPONENT Development
+  FILES_MATCHING PATTERN "*.h"
+)
+
+install(FILES ${SimpleITK_DOC_FILES} DESTINATION "${SimpleITK_INSTALL_DOC_DIR}" COMPONENT Runtime)
+
+
+#------------------------------------------------------------------------------
+# CPack
+
+set(CPACK_SOURCE_IGNORE_FILES  "${ITK_MODULES_DISABLED_CPACK};/\\\\.git")
+set(CPACK_PACKAGE_VERSION_MAJOR "${SimpleITK_VERSION_MAJOR}")
+set(CPACK_PACKAGE_VERSION_MINOR "${SimpleITK_VERSION_MINOR}")
+set(CPACK_PACKAGE_VERSION_PATCH "${SimpleITK_VERSION_PATCH}")
+
+
+include( CPack )
+
+if(BUILD_TESTING)
+  if(COMMAND ExternalData_Add_Target )
+    ExternalData_Add_Target( SimpleITKData )
+  endif()
+endif()
diff --git a/CTestConfig.cmake b/CTestConfig.cmake
new file mode 100644
index 0000000..0230638
--- /dev/null
+++ b/CTestConfig.cmake
@@ -0,0 +1,7 @@
+set(CTEST_PROJECT_NAME "SimpleITK")
+set(CTEST_NIGHTLY_START_TIME "1:00:00 UTC")
+
+set(CTEST_DROP_METHOD "http")
+set(CTEST_DROP_SITE "open.cdash.org")
+set(CTEST_DROP_LOCATION "/submit.php?project=SimpleITK")
+set(CTEST_DROP_SITE_CDASH TRUE)
diff --git a/Code/BasicFilters/CMakeLists.txt b/Code/BasicFilters/CMakeLists.txt
new file mode 100644
index 0000000..2790677
--- /dev/null
+++ b/Code/BasicFilters/CMakeLists.txt
@@ -0,0 +1,9 @@
+
+
+# Set up code generation
+include(sitkGenerateFilterSource)
+generate_filter_source()
+
+add_subdirectory( src )
+
+
diff --git a/Code/BasicFilters/include/itkHashImageFilter.h b/Code/BasicFilters/include/itkHashImageFilter.h
new file mode 100644
index 0000000..4371131
--- /dev/null
+++ b/Code/BasicFilters/include/itkHashImageFilter.h
@@ -0,0 +1,120 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef itkHashImageFilter_h
+#define itkHashImageFilter_h
+
+
+#include "itkSimpleDataObjectDecorator.h"
+#include "itkImageLinearConstIteratorWithIndex.h"
+#include "itkCastImageFilter.h"
+#include "itkByteSwapper.h"
+
+
+#include "Ancillary/hl_md5.h"
+#include "Ancillary/hl_sha1.h"
+
+namespace itk {
+
+/** \class HashImageFilter
+ * \brief Generates a hash string from an image.
+ *
+ * \note This class utlizes low level buffer pointer access, to work
+ * with itk::Image and itk::VectorImage. It is modeled after the access
+ * an ImageFileWriter provides to an ImageIO.
+ *
+ * \todo Update in-place on to default after fixing bug in InPlaceImageFilter
+ */
+template < class TImageType >
+class HashImageFilter:
+    public CastImageFilter< TImageType, TImageType >
+{
+public:
+  /** Standard Self typedef */
+  typedef HashImageFilter                           Self;
+  typedef CastImageFilter< TImageType, TImageType > Superclass;
+  typedef SmartPointer< Self >                      Pointer;
+  typedef SmartPointer< const Self >                ConstPointer;
+
+  typedef typename TImageType::RegionType RegionType;
+
+  /** Method for creation through the object factory. */
+  itkNewMacro(Self);
+
+  /** Runtime information support. */
+  itkTypeMacro(HashImageFilter, CastImageFilter);
+
+  /** Smart Pointer type to a DataObject. */
+  typedef typename DataObject::Pointer DataObjectPointer;
+
+  /** Type of DataObjects used for scalar outputs */
+  typedef SimpleDataObjectDecorator< std::string >  HashObjectType;
+
+  /** Get the computed Hash values */
+  std::string GetHash() const
+  { return this->GetHashOutput()->Get(); }
+  HashObjectType* GetHashOutput()
+  { return static_cast< HashObjectType *>( this->ProcessObject::GetOutput(1) ); }
+  const HashObjectType* GetHashOutput() const
+  { return static_cast<const HashObjectType *>( this->ProcessObject::GetOutput(1) ); }
+
+  enum  HashFunction { SHA1, MD5 };
+
+  /** Set/Get hashing function as enumerated type */
+  itkSetMacro( HashFunction, HashFunction );
+  itkGetMacro( HashFunction, HashFunction );
+
+/** Make a DataObject of the correct type to be used as the specified
+   * output. */
+  typedef ProcessObject::DataObjectPointerArraySizeType DataObjectPointerArraySizeType;
+  using Superclass::MakeOutput;
+  virtual DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx) ITK_OVERRIDE;
+
+protected:
+
+  HashImageFilter();
+
+  // virtual ~HashImageFilter(); // implementation not needed
+
+  virtual void PrintSelf(std::ostream & os, Indent indent) const ITK_OVERRIDE;
+
+  // See superclass for doxygen documentation
+  //
+  // This method is to do work after the superclass potential threaded
+  // copy.
+  void AfterThreadedGenerateData() ITK_OVERRIDE;
+
+  // See superclass for doxygen documentation
+  //
+  // Override since the filter produces all of its output
+  void EnlargeOutputRequestedRegion(DataObject *data) ITK_OVERRIDE;
+
+private:
+  HashImageFilter(const Self &); //purposely not implemented
+  void operator=(const Self &);  //purposely not implemented
+
+
+  HashFunction m_HashFunction;
+};
+
+
+} // end namespace itk
+
+
+#include "itkHashImageFilter.hxx"
+
+#endif // itkHashImageFilter_h
diff --git a/Code/BasicFilters/include/itkHashImageFilter.hxx b/Code/BasicFilters/include/itkHashImageFilter.hxx
new file mode 100644
index 0000000..b999442
--- /dev/null
+++ b/Code/BasicFilters/include/itkHashImageFilter.hxx
@@ -0,0 +1,185 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef itkHashImageFilter_hxx
+#define itkHashImageFilter_hxx
+
+#include "itkHashImageFilter.h"
+
+namespace itk {
+
+//
+// Constructor
+//
+template<class TImageType>
+HashImageFilter<TImageType>::HashImageFilter()
+{
+  this->m_HashFunction = MD5;
+
+  // create data object
+  this->ProcessObject::SetNthOutput( 1, this->MakeOutput(1).GetPointer() );
+
+  // NOTE: Turning this on causes a crash due to a bug is InPlaceImageFilter
+  this->InPlaceOff();
+}
+
+//
+// MakeOutput
+//
+template<class TImageType>
+typename HashImageFilter<TImageType>::DataObjectPointer
+HashImageFilter<TImageType>::MakeOutput(DataObjectPointerArraySizeType idx)
+{
+  if ( idx == 1 )
+    {
+    return static_cast< DataObject * >( HashObjectType::New().GetPointer() );
+    }
+  return Superclass::MakeOutput(idx);
+}
+
+//
+// AfterThreadedGenerateData
+//
+template<class TImageType>
+void
+HashImageFilter<TImageType>::AfterThreadedGenerateData()
+{
+  // NOTE: We have choose our super class to be the
+  // CastImageFilter. The filter is derived from the
+  // InPlaceFilter. The CastImageFilter will copy its input, in the
+  // best fashion based on the InPlace setting. We want the
+  // behavior. This methods is called after the caster has done it's
+  // work.
+
+  Superclass::AfterThreadedGenerateData();
+
+  typedef TImageType                                   ImageType;
+  typedef typename ImageType::PixelType                PixelType;
+  typedef typename NumericTraits<PixelType>::ValueType ValueType;
+  typedef itk::ByteSwapper<ValueType>                  Swapper;
+
+  ::MD5 md5;
+  ::HL_MD5_CTX md5Context;
+  md5.MD5Init ( &md5Context );
+  ::SHA1 sha1;
+  ::HL_SHA1_CTX sha1Context;
+  sha1.SHA1Reset ( &sha1Context );
+
+  typename ImageType::ConstPointer input = this->GetInput();
+
+
+  // make a good guess about the number of components in each pixel
+  size_t numberOfComponent =   sizeof(PixelType) / sizeof(ValueType );
+
+  if ( strcmp(input->GetNameOfClass(), "VectorImage") == 0 )
+    {
+    // spacial case for VectorImages
+    numberOfComponent = ImageType::AccessorFunctorType::GetVectorLength(input);
+    }
+  else if ( sizeof(PixelType) % sizeof(ValueType) != 0 )
+    {
+    itkExceptionMacro("Unsupported data type for hashing!");
+    }
+
+  // we feel bad about accessing the data this way
+  ValueType *buffer = static_cast<ValueType*>( (void *)input->GetBufferPointer() );
+
+  typename ImageType::RegionType largestRegion = input->GetBufferedRegion();
+  const size_t numberOfValues = largestRegion.GetNumberOfPixels()*numberOfComponent;
+
+
+  // Possibly byte swap so we always calculate on little endian data
+  Swapper::SwapRangeFromSystemToLittleEndian ( buffer, numberOfValues );
+
+  // Update the hash
+  switch ( this->m_HashFunction )
+    {
+    case SHA1:
+      sha1.SHA1Input ( &sha1Context, (unsigned char*)buffer, numberOfValues*sizeof(ValueType) );
+      break;
+    case MD5:
+      md5.MD5Update ( &md5Context, (unsigned char*)buffer, numberOfValues*sizeof(ValueType) );
+      break;
+    }
+
+  // Calculate and return the hash value
+  std::string hash;
+  int HashSize = SHA1HashSize;
+  unsigned char Digest[1024];
+  switch ( this->m_HashFunction )
+    {
+    case SHA1:
+    {
+    HashSize = SHA1HashSize;
+    sha1.SHA1Result ( &sha1Context, Digest );
+    break;
+    }
+    case MD5:
+    {
+    HashSize = 16;
+    md5.MD5Final ( Digest, &md5Context );
+    break;
+    }
+    }
+
+  // Should we really covert the binary representation to a hex ASCII here
+  //
+  // Print to a string
+  std::ostringstream os;
+  for(int i=0; i<HashSize; ++i)
+    {
+    // set the width to 2, fill with 0, and convert to hex
+    os.width(2);
+    os.fill('0');
+    os << std::hex << static_cast<unsigned int>(Digest[i]);
+    }
+
+  this->GetHashOutput()->Set( os.str() );
+}
+
+
+//
+// EnlargeOutputRequestedRegion
+//
+template<class TImageType>
+void
+HashImageFilter<TImageType>::EnlargeOutputRequestedRegion(DataObject *data)
+{
+  Superclass::EnlargeOutputRequestedRegion(data);
+
+  // set the output region to the largest and let the pipeline
+  // propagate the requested region to the input
+  data->SetRequestedRegionToLargestPossibleRegion();
+}
+
+
+//
+// PrintSelf
+//
+template<class TImageType>
+void
+HashImageFilter<TImageType>::PrintSelf(std::ostream & os, Indent indent) const
+{
+  Superclass::PrintSelf(os, indent);
+
+  os << indent << "HashFunction: " << m_HashFunction << std::endl;
+}
+
+
+} // end namespace itk
+
+#endif // itkHashImageFilter_hxx
diff --git a/Code/BasicFilters/include/itkSliceImageFilter.h b/Code/BasicFilters/include/itkSliceImageFilter.h
new file mode 100644
index 0000000..cbb2c5e
--- /dev/null
+++ b/Code/BasicFilters/include/itkSliceImageFilter.h
@@ -0,0 +1,166 @@
+/*=========================================================================
+ *
+ *  Copyright Insight Software Consortium
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *         http://www.apache.org/licenses/LICENSE-2.0.txt
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ *=========================================================================*/
+#ifndef itkSliceImageFilter_h
+#define itkSliceImageFilter_h
+
+#include "itkImageToImageFilter.h"
+
+namespace itk
+{
+/** \class SliceImageFilter
+ * \brief Slices an image based on a starting index and a stopping
+ * index, and a step size.
+ *
+ * This class is designed to facilitate the implementation of extended
+ * sliced based indexing into images.
+ *
+ * The input and output image must be of the same dimension.
+ *
+ * The input parameters are a starting and stopping index as well as a
+ * stepping size. The staring index indicates the first pixels to
+ * used and for each dimension the index is incremented by the step
+ * until the index is equal to or "beyond" the stopping index. If the
+ * step is negative then the image will be revered in the dimension,
+ * and the stopping index is expected to be less then the starting
+ * index. If the stopping index is already beyond the starting then a
+ * image of zero size will be returned.
+ *
+ * The output image's starting index is always zero. The origin is the
+ * physical location of the starting index. The output directions
+ * cosine matrix is that of the input but with sign changes matching
+ * that of the step's sign.
+ *
+ * \note In certain combination such as with start=1, and step>1 while
+ * the physical location of the center of the pixel remains the same,
+ * the extent (edge to edge space) of the pixel will beyond the extent
+ * of the original image.
+ *
+ * \ingroup GeometricTransform Streamed
+ */
+template< class TInputImage, class TOutputImage >
+class ITK_EXPORT SliceImageFilter:
+  public ImageToImageFilter< TInputImage, TOutputImage >
+{
+public:
+  /** Standard class typedefs. */
+  typedef SliceImageFilter                               Self;
+  typedef ImageToImageFilter< TInputImage, TOutputImage > Superclass;
+  typedef SmartPointer< Self >                            Pointer;
+  typedef SmartPointer< const Self >                      ConstPointer;
+
+  /** Method for creation through the object factory. */
+  itkNewMacro(Self);
+
+  /** Run-time type information (and related methods). */
+  itkTypeMacro(SliceImageFilter, ImageToImageFilter);
+
+  /** Typedef to images */
+  typedef TOutputImage                          OutputImageType;
+  typedef TInputImage                           InputImageType;
+  typedef typename OutputImageType::Pointer     OutputImagePointer;
+  typedef typename InputImageType::Pointer      InputImagePointer;
+  typedef typename InputImageType::ConstPointer InputImageConstPointer;
+
+  typedef typename TOutputImage::IndexType  OutputIndexType;
+  typedef typename TInputImage::IndexType   InputIndexType;
+  typedef typename TOutputImage::OffsetType OutputOffsetType;
+
+  /** Typedef to describe the output image region type. */
+  typedef typename TOutputImage::RegionType OutputImageRegionType;
+
+  /** ImageDimension enumeration. */
+  itkStaticConstMacro(ImageDimension, unsigned int,
+                      TInputImage::ImageDimension);
+  itkStaticConstMacro(OutputImageDimension, unsigned int,
+                      TOutputImage::ImageDimension);
+
+
+  typedef typename InputImageType::IndexType      IndexType;
+  typedef typename InputIndexType::IndexValueType IndexValueType;
+  typedef FixedArray< int, ImageDimension >       ArrayType;
+
+  /** Set/Get the first index extracted from the input image */
+  itkSetMacro(Start, IndexType);
+  itkGetConstReferenceMacro(Start, IndexType);
+  void SetStart(IndexValueType start);
+
+  /** Set/Get the excluded end of the range */
+  itkSetMacro(Stop, IndexType);
+  itkGetConstReferenceMacro(Stop, IndexType);
+  void SetStop(IndexValueType stop);
+
+  /** Set/Get the stride of indexes extracted
+   *
+   * An exception will be generated if 0.
+   */
+  itkSetMacro(Step, ArrayType);
+  itkGetConstReferenceMacro(Step, ArrayType);
+  void SetStep( int step);
+
+  /** SliceImageFilter produces an image which is a different
+   * resolution and with a different pixel spacing than its input
+   * image.
+   * \sa ProcessObject::GenerateOutputInformaton() */
+  virtual void GenerateOutputInformation() ITK_OVERRIDE;
+
+  virtual void GenerateInputRequestedRegion() ITK_OVERRIDE;
+
+#ifdef ITK_USE_CONCEPT_CHECKING
+  /** Begin concept checking */
+  itkConceptMacro( InputConvertibleToOutputCheck,
+                   ( Concept::Convertible< typename TInputImage::PixelType, typename TOutputImage::PixelType > ) );
+  itkConceptMacro( SameDimensionCheck,
+                   ( Concept::SameDimension< ImageDimension, OutputImageDimension > ) );
+  /** End concept checking */
+#endif
+
+protected:
+  SliceImageFilter();
+  // ~SliceImageFilter() {} default ok
+  void PrintSelf(std::ostream & os, Indent indent) const ITK_OVERRIDE;
+
+  /** SliceImageFilter can be implemented as a multithreaded filter.
+   * Therefore, this implementation provides a ThreadedGenerateData() routine
+   * which is called for each processing thread. The output image data is
+   * allocated automatically by the superclass prior to calling
+   * ThreadedGenerateData().  ThreadedGenerateData can only write to the
+   * portion of the output image specified by the parameter
+   * "outputRegionForThread"
+   *
+   * \sa ImageToImageFilter::ThreadedGenerateData(),
+   *     ImageToImageFilter::GenerateData() */
+  void ThreadedGenerateData(const OutputImageRegionType & outputRegionForThread,
+                            ThreadIdType threadId) ITK_OVERRIDE;
+
+  void VerifyInputInformation() ITK_OVERRIDE;
+
+private:
+  SliceImageFilter(const Self &); //purposely not implemented
+  void operator=(const Self &);    //purposely not implemented
+
+  IndexType m_Start;
+  IndexType m_Stop;
+  ArrayType m_Step;
+};
+} // end namespace itk
+
+#ifndef ITK_MANUAL_INSTANTIATION
+#include "itkSliceImageFilter.hxx"
+#endif
+
+#endif
diff --git a/Code/BasicFilters/include/itkSliceImageFilter.hxx b/Code/BasicFilters/include/itkSliceImageFilter.hxx
new file mode 100644
index 0000000..9d1a3b1
--- /dev/null
+++ b/Code/BasicFilters/include/itkSliceImageFilter.hxx
@@ -0,0 +1,363 @@
+/*=========================================================================
+ *
+ *  Copyright Insight Software Consortium
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *         http://www.apache.org/licenses/LICENSE-2.0.txt
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ *=========================================================================*/
+/*=========================================================================
+ *
+ *  Portions of this file are subject to the VTK Toolkit Version 3 copyright.
+ *
+ *  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
+ *
+ *  For complete copyright, license and disclaimer of warranty information
+ *  please refer to the NOTICE file at the top of the ITK source tree.
+ *
+ *=========================================================================*/
+#ifndef itkSliceImageFilter_hxx
+#define itkSliceImageFilter_hxx
+
+#include "itkSliceImageFilter.h"
+#include "itkImageRegionIteratorWithIndex.h"
+#include "itkContinuousIndex.h"
+#include "itkObjectFactory.h"
+#include "itkProgressReporter.h"
+
+namespace itk
+{
+/**
+ *
+ */
+template< class TInputImage, class TOutputImage >
+SliceImageFilter< TInputImage, TOutputImage >
+::SliceImageFilter()
+{
+  m_Start.Fill(NumericTraits<IndexValueType>::min());
+  m_Stop.Fill(NumericTraits<IndexValueType>::max());
+  m_Step.Fill(1);
+}
+
+/**
+ *
+ */
+template< class TInputImage, class TOutputImage >
+void
+SliceImageFilter< TInputImage, TOutputImage >
+::PrintSelf(std::ostream & os, Indent indent) const
+{
+  Superclass::PrintSelf(os, indent);
+
+  os << indent << "Start: " << m_Start << std::endl;
+  os << indent << "Stop: " << m_Stop << std::endl;
+  os << indent << "Step: " << m_Step << std::endl;
+
+}
+
+/**
+ *
+ */
+template< class TInputImage, class TOutputImage >
+void
+SliceImageFilter< TInputImage, TOutputImage >
+::SetStart( typename TInputImage::IndexType::IndexValueType start)
+{
+  unsigned int j;
+
+  for ( j = 0; j < ImageDimension; j++ )
+    {
+    if ( start != m_Start[j] )
+      {
+      this->Modified();
+      m_Start.Fill( start );
+      return;
+      }
+    }
+}
+
+
+/**
+ *
+ */
+template< class TInputImage, class TOutputImage >
+void
+SliceImageFilter< TInputImage, TOutputImage >
+::SetStop(typename TInputImage::IndexType::IndexValueType  stop)
+{
+  unsigned int j;
+
+  for ( j = 0; j < ImageDimension; j++ )
+    {
+    if ( stop != m_Stop[j] )
+      {
+      this->Modified();
+      m_Stop.Fill( stop );
+      return;
+      }
+    }
+}
+
+
+/**
+ *
+ */
+template< class TInputImage, class TOutputImage >
+void
+SliceImageFilter< TInputImage, TOutputImage >
+::SetStep(int step)
+{
+  unsigned int j;
+
+  for ( j = 0; j < ImageDimension; j++ )
+    {
+    if ( step != m_Step[j] )
+      {
+      this->Modified();
+      m_Step.Fill( step );
+      return;
+      }
+    }
+
+}
+
+/**
+ *
+ */
+template< class TInputImage, class TOutputImage >
+void
+SliceImageFilter< TInputImage, TOutputImage >
+::ThreadedGenerateData(const OutputImageRegionType & outputRegionForThread,
+                       ThreadIdType threadId)
+{
+  // Get the input and output pointers
+  InputImageConstPointer inputPtr = this->GetInput();
+  OutputImagePointer     outputPtr = this->GetOutput();
+
+  // Support progress methods/callbacks
+  ProgressReporter progress( this, threadId, outputRegionForThread.GetNumberOfPixels() );
+
+  const typename TInputImage::SizeType &inputSize = inputPtr->GetLargestPossibleRegion().GetSize();
+  const typename TInputImage::IndexType &inputIndex = inputPtr->GetLargestPossibleRegion().GetIndex();
+
+  // clamp start
+  InputIndexType start;
+  for ( unsigned int i = 0; i < TOutputImage::ImageDimension; i++ )
+    {
+    start[i] = std::max( m_Start[i], inputIndex[i] );
+    start[i] = std::min( start[i], static_cast<IndexValueType>(inputIndex[i] + inputSize[i]-1) );
+    }
+
+  // Define/declare an iterator that will walk the output region for this
+  // thread.
+  typedef ImageRegionIteratorWithIndex< TOutputImage > OutputIterator;
+  OutputIterator outIt(outputPtr, outputRegionForThread);
+
+  OutputIndexType destIndex;
+  InputIndexType srcIndex;
+
+  while ( !outIt.IsAtEnd() )
+    {
+    // Determine the index and physical location of the output pixel
+    destIndex = outIt.GetIndex();
+
+
+    for( unsigned int i = 0; i < TOutputImage::ImageDimension; ++i )
+      {
+      srcIndex[i] = destIndex[i]*m_Step[i] + start[i];
+      }
+
+    // Copy the input pixel to the output
+    outIt.Set( inputPtr->GetPixel(srcIndex) );
+    ++outIt;
+
+    progress.CompletedPixel();
+    }
+}
+
+/**
+ *
+ */
+template< class TInputImage, class TOutputImage >
+void
+SliceImageFilter< TInputImage, TOutputImage >
+::GenerateInputRequestedRegion()
+{
+
+
+  // Get pointers to the input and output
+  InputImagePointer  inputPtr = const_cast< TInputImage * >( this->GetInput() );
+  OutputImagePointer outputPtr = this->GetOutput();
+
+  const typename TOutputImage::SizeType & outputRequestedRegionSize = outputPtr->GetRequestedRegion().GetSize();
+  const typename TOutputImage::IndexType & outputRequestedRegionStartIndex = outputPtr->GetRequestedRegion().GetIndex();
+
+  const typename TInputImage::SizeType  &inputSize = inputPtr->GetLargestPossibleRegion().GetSize();
+  const typename TInputImage::IndexType &inputIndex = inputPtr->GetLargestPossibleRegion().GetIndex();
+
+  // clamp start
+  InputIndexType start;
+  for ( unsigned int i = 0; i < TOutputImage::ImageDimension; i++ )
+    {
+    // clamp to valid index range and don't include one past end, so
+    // that a zero size RR would be valid
+    start[i] = std::max( m_Start[i], inputIndex[i] );
+    start[i] = std::min( start[i], static_cast<IndexValueType>(inputIndex[i] + inputSize[i] -1) );
+    }
+
+
+  typename TInputImage::SizeType inputRequestedRegionSize;
+  inputRequestedRegionSize.Fill(0);
+  for ( unsigned int i=0; i < TInputImage::ImageDimension; ++i )
+    {
+    if ( outputRequestedRegionSize[i] > 0 )
+      {
+      inputRequestedRegionSize[i] = (outputRequestedRegionSize[i] - 1 ) * vnl_math_abs(m_Step[i]) + 1;
+      }
+    }
+
+  InputIndexType  inputRequestedRegionIndex;
+  for ( unsigned int i=0; i < TOutputImage::ImageDimension; ++i )
+    {
+    inputRequestedRegionIndex[i] = outputRequestedRegionStartIndex[i] * m_Step[i] + start[i];
+
+    // if reversing, go to the lower ending index - 1
+    if (m_Step[i] < 0)
+      {
+      inputRequestedRegionIndex[i] -= inputRequestedRegionSize[i] - 1;
+      }
+    }
+
+
+  typename TInputImage::RegionType inputRequestedRegion;
+  inputRequestedRegion.SetIndex(inputRequestedRegionIndex);
+  inputRequestedRegion.SetSize(inputRequestedRegionSize);
+
+  // test if input RR is completely inside input largest region
+  if ( inputRequestedRegion.GetNumberOfPixels() > 0 &&
+       !inputPtr->GetLargestPossibleRegion().IsInside( inputRequestedRegion ) )
+    {
+    itkExceptionMacro( "Logic Error: incorrect computation of RequestedRegion" );
+    }
+
+  inputPtr->SetRequestedRegion(inputRequestedRegion);
+  return;
+
+}
+
+/**
+ *
+ */
+template< class TInputImage, class TOutputImage >
+void
+SliceImageFilter< TInputImage, TOutputImage >
+::GenerateOutputInformation()
+{
+  // Call the superclass' implementation of this method
+  Superclass::GenerateOutputInformation();
+
+  // Get pointers to the input and output
+  InputImageConstPointer inputPtr  = this->GetInput();
+  OutputImagePointer     outputPtr = this->GetOutput();
+
+  // Compute the output spacing, the output image size, and the
+  // output image start index
+  const typename TInputImage::SpacingType &inputSpacing = inputPtr->GetSpacing();
+  const typename TInputImage::SizeType &inputSize = inputPtr->GetLargestPossibleRegion().GetSize();
+  const typename TInputImage::IndexType &inputIndex = inputPtr->GetLargestPossibleRegion().GetIndex();
+  typename TInputImage::IndexType inputStartIndex;
+
+  typename TOutputImage::SpacingType outputSpacing;
+  typename TOutputImage::SizeType outputSize;
+
+  typename TOutputImage::IndexType outputStartIndex;
+  outputStartIndex.Fill(0);
+
+  for ( unsigned int i = 0; i < TOutputImage::ImageDimension; i++ )
+    {
+    outputSpacing[i] = inputSpacing[i] * vnl_math_abs(m_Step[i]);
+
+    // clamp start
+    // Based on the sign of the step include 1 after the end.
+    IndexValueType start = std::max( m_Start[i], inputIndex[i] - int(m_Step[i]<0));
+    start = std::min( start,  static_cast<IndexValueType>(inputIndex[i] + inputSize[i]) - int(m_Step[i]<0) );
+
+    // clamp stop
+    // Based on the sign of the step include 1 after the end.
+    IndexValueType stop = std::max( m_Stop[i], inputIndex[i] - int(m_Step[i]<0) );
+    stop = std::min( stop,  static_cast<IndexValueType>(inputIndex[i] + inputSize[i]) - int(m_Step[i]<0));
+
+    // If both the numerator and the denominator have the same sign,
+    // then the range is a valid and non-zero sized. Truncation is the
+    // correct rounding for these positive values.
+    if ( (m_Step[i] > 0 && stop > start) ||
+         ( m_Step[i] < 0 && stop < start ) )
+      {
+      outputSize[i] = (stop-start)/m_Step[i];
+      }
+    else
+      {
+      outputSize[i] = 0u;
+      }
+
+    // If the step is negative, then the start is still the index of
+    // the output origin
+    inputStartIndex[i] = start;
+
+    }
+
+  const typename TInputImage::DirectionType & inputDirection = inputPtr->GetDirection();
+  typename TInputImage::DirectionType flipMatrix;
+
+  // Need a matrix to model the reversing of directions, this should
+  // maintain the physical location of the pixels
+  for ( unsigned int j = 0; j < ImageDimension; j++ )
+    {
+    flipMatrix[j][j] = (m_Step[j]>0) ? 1.0 : -1.0;
+    }
+
+  outputPtr->SetDirection(inputDirection * flipMatrix);
+  outputPtr->SetSpacing(outputSpacing);
+
+  typename TOutputImage::PointType outputOrigin;
+  inputPtr->TransformIndexToPhysicalPoint(inputStartIndex, outputOrigin);
+  outputPtr->SetOrigin(outputOrigin);
+
+  // Set region
+  typename TOutputImage::RegionType outputLargestPossibleRegion;
+  outputLargestPossibleRegion.SetSize(outputSize);
+  outputLargestPossibleRegion.SetIndex(outputStartIndex);
+
+  outputPtr->SetLargestPossibleRegion(outputLargestPossibleRegion);
+}
+
+template< class TInputImage, class TOutputImage >
+void
+SliceImageFilter< TInputImage, TOutputImage >
+::VerifyInputInformation()
+{
+
+  Superclass::VerifyInputInformation();
+
+  for ( unsigned int i = 0; i < ImageDimension; ++i )
+    {
+    if ( m_Step[i] == 0 )
+      {
+      itkExceptionMacro( "Step size is zero " << m_Step << "!" );
+      }
+    }
+
+}
+
+} // end namespace itk
+
+#endif
diff --git a/Code/BasicFilters/include/itkUnaryMinusImageFilter.h b/Code/BasicFilters/include/itkUnaryMinusImageFilter.h
new file mode 100644
index 0000000..aefc804
--- /dev/null
+++ b/Code/BasicFilters/include/itkUnaryMinusImageFilter.h
@@ -0,0 +1,52 @@
+/*=========================================================================
+ *
+ *  Copyright Insight Software Consortium
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *         http://www.apache.org/licenses/LICENSE-2.0.txt
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ *=========================================================================*/
+#ifndef itkUnaryMinusFunctor_h
+#define itkUnaryMinusFunctor_h
+
+namespace itk
+{
+namespace Functor
+{
+/**
+ * \class UnaryMinus
+ * \brief
+ * \ingroup ITKImageIntensity
+ */
+template< class TInput1, class TOutput = TInput1 >
+class UnaryMinus
+{
+public:
+  UnaryMinus() {}
+  ~UnaryMinus() {}
+  bool operator!=(const UnaryMinus &) const
+  {
+    return false;
+  }
+
+  bool operator==(const UnaryMinus & other) const
+  {
+    return !( *this != other );
+  }
+
+  inline TOutput operator()(const TInput1 & A ) const
+  { return (TOutput)( -A ); }
+};
+}
+}
+
+#endif // itkUnaryMinusFunctor_h
diff --git a/Code/BasicFilters/include/sitkAdditionalProcedures.h b/Code/BasicFilters/include/sitkAdditionalProcedures.h
new file mode 100644
index 0000000..068e44d
--- /dev/null
+++ b/Code/BasicFilters/include/sitkAdditionalProcedures.h
@@ -0,0 +1,105 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkAdditionalProcedures_h
+#define sitkAdditionalProcedures_h
+
+
+#include "sitkBasicFilters.h"
+#include "sitkImage.h"
+#include "sitkTransform.h"
+#include "sitkInterpolator.h"
+#include "sitkPatchBasedDenoisingImageFilter.h"
+
+namespace itk {
+namespace simple {
+
+
+/**
+ * \brief itk::simple::ResampleImageFilter Procedural Interface
+ *
+ * These functions call the execute method of ResampleImageFilter
+ * in order to support a procedual API.
+ *
+ * The difference between the three functions is in the way the output
+ * image's domain parameters are specified (origin, spacing,
+ * direction). The first function uses the parameters from the input image,
+ * the second uses the parameters of a reference image, and the third uses
+ * explicitly specified parameters.
+ *
+ * \sa itk::simple::ResampleImageFilter for the object oriented interface
+* @{
+ */
+SITKBasicFilters_EXPORT Image Resample ( const Image& image1,
+                                         Transform transform = itk::simple::Transform(),
+                                         InterpolatorEnum interpolator = itk::simple::sitkLinear,
+                                         double defaultPixelValue = 0.0,
+                                         PixelIDValueEnum outputPixelType = sitkUnknown );
+
+SITKBasicFilters_EXPORT Image Resample ( const Image& image1,
+                                         const Image& referenceImage,
+                                         Transform transform = itk::simple::Transform(),
+                                         InterpolatorEnum interpolator = itk::simple::sitkLinear,
+                                         double defaultPixelValue = 0.0,
+                                         PixelIDValueEnum outputPixelType = sitkUnknown );
+
+SITKBasicFilters_EXPORT Image Resample ( const Image& image1,
+                                         std::vector<uint32_t> size,
+                                         Transform transform = itk::simple::Transform(),
+                                         InterpolatorEnum interpolator = itk::simple::sitkLinear,
+                                         std::vector<double> outputOrigin = std::vector<double>(3, 0.0),
+                                         std::vector<double> outputSpacing = std::vector<double>(3, 1.0),
+                                         std::vector<double> outputDirection = std::vector<double>(),
+                                         double defaultPixelValue = 0.0,
+                                         PixelIDValueEnum outputPixelType = sitkUnknown );
+    /**@}*/
+
+
+
+/**
+ * \brief itk::simple::PatchBasedDenoisingImageFilter Procedural Interface
+ *
+ * This function directly calls the execute method of PatchBasedDenoisingImageFilter
+ * in order to support a procedural API
+ *
+ * \sa itk::simple::PatchBasedDenoisingImageFilter for the object oriented interface
+ */
+SITKBasicFilters_EXPORT Image PatchBasedDenoising (const Image& image1,
+                                                   itk::simple::PatchBasedDenoisingImageFilter::NoiseModelType noiseModel,
+                                                   double kernelBandwidthSigma = 400.0,
+                                                   uint32_t patchRadius = 4u,
+                                                   uint32_t numberOfIterations = 1u,
+                                                   uint32_t numberOfSamplePatches = 200u,
+                                                   double sampleVariance = 400.0,
+                                                   double noiseSigma = 0.0,
+                                                   double noiseModelFidelityWeight = 0.0 );
+
+// Disable for certain wrapped languages due to overload shadowing
+#if !defined(SWIGLUA)
+
+SITKBasicFilters_EXPORT Image PatchBasedDenoising (const Image& image1,
+                                                   double kernelBandwidthSigma = 400.0,
+                                                   uint32_t patchRadius = 4u,
+                                                   uint32_t numberOfIterations = 1u,
+                                                   uint32_t numberOfSamplePatches = 200u,
+                                                   double sampleVariance = 400.0);
+#endif
+
+
+}
+}
+#endif
diff --git a/Code/BasicFilters/include/sitkBSplineTransformInitializerFilter.h b/Code/BasicFilters/include/sitkBSplineTransformInitializerFilter.h
new file mode 100644
index 0000000..93e77b7
--- /dev/null
+++ b/Code/BasicFilters/include/sitkBSplineTransformInitializerFilter.h
@@ -0,0 +1,126 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkBSplineTransformInitializerFilter_h
+#define sitkBSplineTransformInitializerFilter_h
+
+/*
+ * WARNING: DO NOT EDIT THIS FILE!
+ * THIS FILE IS AUTOMATICALLY GENERATED BY THE SIMPLEITK BUILD PROCESS.
+ * Please look at sitkImageFilterTemplate.h.in to make changes.
+ */
+
+#include <memory>
+
+#include "sitkBasicFilters.h"
+#include "sitkImageFilter.h"
+#include "sitkBSplineTransform.h"
+
+namespace itk {
+  namespace simple {
+
+    /**\class BSplineTransformInitializerFilter
+\brief BSplineTransformInitializerFilter is a helper class intended to initialize the control point grid such that it has a physically consistent definition. It sets the transform domain origin, physical dimensions and direction from information obtained from the image. It also sets the mesh size if asked to do so by calling SetTransformDomainMeshSize()before calling InitializeTransform().
+
+\author Luis Ibanez
+
+Nick Tustison
+\sa itk::simple::BSplineTransformInitializer for the procedural interface
+\sa itk::BSplineTransformInitializer for the Doxygen on the original ITK class.
+     */
+    class SITKBasicFilters_EXPORT BSplineTransformInitializerFilter : public ProcessObject {
+    public:
+      typedef BSplineTransformInitializerFilter Self;
+
+      /** Default Constructor that takes no arguments and initializes
+       * default parameters */
+      BSplineTransformInitializerFilter();
+
+      /** Destructor */
+      ~BSplineTransformInitializerFilter();
+
+      /** Define the pixels types supported by this filter */
+      typedef AllPixelIDTypeList  PixelIDTypeList;
+
+
+
+      /**
+       * Allow the user to set the mesh size of the transform via the initializer even though the initializer does not do anything with that information. Defeault = 1^ImageDimension.
+       */
+      SITK_RETURN_SELF_TYPE_HEADER SetTransformDomainMeshSize ( const std::vector<uint32_t> & TransformDomainMeshSize ) { this->m_TransformDomainMeshSize = TransformDomainMeshSize; return *this; }
+
+      /**
+       */
+      std::vector<uint32_t> GetTransformDomainMeshSize() const { return this->m_TransformDomainMeshSize; }
+
+      /**
+       * The order of the bspline in the output BSplineTransform. This
+       * value effects the number of control points.
+       */
+      SITK_RETURN_SELF_TYPE_HEADER SetOrder(unsigned int order) { this->m_Order = order; return *this; }
+      unsigned int GetOrder() const {return this->m_Order;}
+
+      /** Name of this class */
+      std::string GetName() const { return std::string ("BSplineTransformInitializerFilter"); }
+
+      /** Print ourselves out */
+      std::string ToString() const;
+
+
+      /** Execute the filter on the input image */
+      BSplineTransform Execute ( const Image& image1 );
+
+
+      /** Execute the filter on the input image with the given parameters */
+      BSplineTransform Execute ( const Image& image1, const std::vector<uint32_t> & transformDomainMeshSize, unsigned int order );
+
+
+    private:
+
+      /** Setup for member function dispatching */
+
+      typedef BSplineTransform (Self::*MemberFunctionType)( const Image& image1 );
+      template <class TImageType> BSplineTransform ExecuteInternal ( const Image& image1 );
+      template <unsigned int NDimension,unsigned int NOrder>
+        BSplineTransform ExecuteInternalWithOrder ( const Image& image1 );
+
+
+
+      friend struct detail::MemberFunctionAddressor<MemberFunctionType>;
+
+      nsstd::auto_ptr<detail::MemberFunctionFactory<MemberFunctionType> > m_MemberFactory;
+
+
+      std::vector<uint32_t>  m_TransformDomainMeshSize;
+      unsigned int m_Order;
+    };
+
+
+
+    /**
+     * \brief BSplineTransformInitializerFilter is a helper class intended to initialize the control point grid such that it has a physically consistent definition. It sets the transform domain origin, physical dimensions and direction from information obtained from the image. It also sets the mesh size if asked to do so by calling SetTransformDomainMeshSize()before calling InitializeTransform().
+     *
+     * This function directly calls the execute method of BSplineTransformInitializerFilter
+     * in order to support a procedural API
+     *
+     * \sa itk::simple::BSplineTransformInitializerFilter for the object oriented interface
+     */
+     SITKBasicFilters_EXPORT BSplineTransform BSplineTransformInitializer ( const Image& image1, const std::vector<uint32_t> & transformDomainMeshSize = std::vector<uint32_t>(3, 1u), unsigned int order=3u );
+
+  }
+}
+#endif
diff --git a/Code/BasicFilters/include/sitkBasicFilters.h b/Code/BasicFilters/include/sitkBasicFilters.h
new file mode 100644
index 0000000..61f0526
--- /dev/null
+++ b/Code/BasicFilters/include/sitkBasicFilters.h
@@ -0,0 +1,56 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkBasicFilters_h
+#define sitkBasicFilters_h
+
+#include "sitkMacro.h"
+
+#include "sitkInterpolator.h"
+#include "sitkRandomSeed.h"
+
+// todo this should be moved to a more local place
+#include "sitkTransform.h"
+
+#if defined( SITKDLL )
+  #ifdef SimpleITKBasicFilters0_EXPORTS
+    #define SITKBasicFilters0_EXPORT SITK_ABI_EXPORT
+  #else
+    #define SITKBasicFilters0_EXPORT SITK_ABI_IMPORT
+  #endif  /* SimpleITKBasicFilters0_EXPORTS */
+#else
+  // Don't hide symbols in the static SimpleITKBasicFilters library in case
+  // -fvisibility=hidden is used
+  #define SITKBasicFilters0_EXPORT
+#endif
+
+#if defined( SITKDLL )
+  #ifdef SimpleITKBasicFilters_EXPORTS
+    #define SITKBasicFilters_EXPORT SITK_ABI_EXPORT
+  #else
+    #define SITKBasicFilters_EXPORT SITK_ABI_IMPORT
+  #endif  /* SimpleITKBasicFilters_EXPORTS */
+#else
+  // Don't hide symbols in the static SimpleITKBasicFilters library in case
+  // -fvisibility=hidden is used
+  #define SITKBasicFilters_EXPORT
+#endif
+
+#define SITKBasicFilters0_HIDDEN SITK_ABI_HIDDEN
+#define SITKBasicFilters_HIDDEN SITK_ABI_HIDDEN
+
+#endif // sitkBasicFilters_h
diff --git a/Code/BasicFilters/include/sitkCastImageFilter.h b/Code/BasicFilters/include/sitkCastImageFilter.h
new file mode 100644
index 0000000..9b9f34d
--- /dev/null
+++ b/Code/BasicFilters/include/sitkCastImageFilter.h
@@ -0,0 +1,179 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkCastImageFilter_h
+#define sitkCastImageFilter_h
+
+#include "sitkImageFilter.h"
+#include "sitkPixelIDTokens.h"
+#include "sitkDualMemberFunctionFactory.h"
+
+#include <memory>
+
+namespace itk
+{
+namespace simple
+{
+
+/** \class CastImageFilter
+ * \brief A hybrid cast image filter to convert images to other types
+ * of images.
+ *
+ * Several different ITK classes are implemented under the hood, to
+ * convert between different image types.
+ *
+ * \sa itk::simple::Cast for the procedural interface
+ */
+class SITKBasicFilters_EXPORT CastImageFilter
+  : public ImageFilter<1>
+{
+public:
+  typedef CastImageFilter      Self;
+
+  /** Set/Get the output pixel type */
+  SITK_RETURN_SELF_TYPE_HEADER SetOutputPixelType( PixelIDValueEnum pixelID );
+  PixelIDValueEnum GetOutputPixelType( void ) const;
+
+  /**
+   * Default Constructor that takes no arguments and initializes
+   * default parameters
+    */
+  CastImageFilter();
+
+  /** Name of this class */
+  std::string GetName() const { return std::string ("CastImageFilter"); }
+
+  // See super class for doxygen
+  std::string ToString() const;
+
+  // See super class for doxygen
+  Image Execute ( const Image & );
+
+private:
+
+  PixelIDValueEnum m_OutputPixelType;
+
+  /** Methods to actually implement conversion from one image type
+   * to another.
+   *
+   * These methods implement CastImageFilter,
+   * ComposeImageFilter, and LabelImageToLabelMapImageFilter
+   * respectively.
+   *
+   * @{
+   */
+  template<typename TImageType, typename TOutputImageType>
+  Image ExecuteInternalCast( const Image& inImage );
+
+  template<typename TImageType, typename TOutputImageType>
+  Image ExecuteInternalToVector( const Image& inImage );
+
+  template<typename TImageType, typename TOutputImageType>
+  Image ExecuteInternalToLabel( const Image& inImage );
+
+  template<typename TImageType, typename TOutputImageType>
+  Image ExecuteInternalLabelToImage( const Image& inImage );
+  /** @} */
+
+// SWIG does not appear to process private classes correctly
+#ifndef SWIG
+
+  /** An addressor of ExecuteInternalCast to be utilized with
+   * registering member functions with the factory.
+   */
+  template < class TMemberFunctionPointer >
+  struct CastAddressor
+  {
+    typedef typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType ObjectType;
+
+    template< typename TImageType1, typename TImageType2 >
+    TMemberFunctionPointer operator() ( void ) const
+    {
+      return &ObjectType::template ExecuteInternalCast< TImageType1, TImageType2 >;
+    }
+  };
+
+  /** An addressor of ExecuteInternalToVector to be utilized with
+   * registering member functions with the factory.
+   */
+  template < class TMemberFunctionPointer >
+  struct ToVectorAddressor
+  {
+    typedef typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType ObjectType;
+
+    template< typename TImageType1, typename TImageType2 >
+    TMemberFunctionPointer operator() ( void ) const
+    {
+      return &ObjectType::template ExecuteInternalToVector< TImageType1, TImageType2 >;
+    }
+  };
+
+  /** An addressor of ExecuteInternalToLabel to be utilized with
+   * registering member functions with the factory.
+   */
+  template < class TMemberFunctionPointer >
+  struct ToLabelAddressor
+  {
+    typedef typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType ObjectType;
+
+    template< typename TImageType1, typename TImageType2 >
+    TMemberFunctionPointer operator() ( void ) const
+    {
+      return &ObjectType::template ExecuteInternalToLabel< TImageType1, TImageType2 >;
+    }
+  };
+
+ /** An addressor of ExecuteInternalToLabel to be utilized with
+   * registering member functions with the factory.
+   */
+  template < class TMemberFunctionPointer >
+  struct LabelToAddressor
+  {
+    typedef typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType ObjectType;
+
+    template< typename TImageType1, typename TImageType2 >
+    TMemberFunctionPointer operator() ( void ) const
+    {
+      return &ObjectType::template ExecuteInternalLabelToImage< TImageType1, TImageType2 >;
+    }
+  };
+#endif
+
+  /**
+  * These methods are used to instantiate and register member functions
+  * with the factory. Each function is split into a separate file to
+  * make the compilation units smaller, and take less time to compile.
+  * @{
+  */
+  void RegisterMemberFactory2();
+  void RegisterMemberFactory2v();
+  void RegisterMemberFactory2l();
+  void RegisterMemberFactory3();
+  void RegisterMemberFactory3v();
+  void RegisterMemberFactory3l();
+  /** @} */
+
+  typedef Image (Self::*MemberFunctionType)( const Image& );
+  nsstd::auto_ptr<detail::DualMemberFunctionFactory<MemberFunctionType> > m_DualMemberFactory;
+
+};
+
+  SITKBasicFilters_EXPORT Image Cast ( const Image& image, PixelIDValueEnum pixelID );
+
+}
+}
+#endif
diff --git a/Code/BasicFilters/include/sitkCenteredTransformInitializerFilter.h b/Code/BasicFilters/include/sitkCenteredTransformInitializerFilter.h
new file mode 100644
index 0000000..c831c70
--- /dev/null
+++ b/Code/BasicFilters/include/sitkCenteredTransformInitializerFilter.h
@@ -0,0 +1,130 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkCenteredTransformInitializerFilter_h
+#define sitkCenteredTransformInitializerFilter_h
+
+/*
+ * WARNING: DO NOT EDIT THIS FILE!
+ * THIS FILE IS AUTOMATICALLY GENERATED BY THE SIMPLEITK BUILD PROCESS.
+ * Please look at sitkImageFilterTemplate.h.in to make changes.
+ */
+
+#include <memory>
+
+#include "sitkBasicFilters.h"
+#include "sitkProcessObject.h"
+#include "sitkMemberFunctionFactory.h"
+
+namespace itk {
+  namespace simple {
+
+    /**\class  CenteredTransformInitializerFilter
+\brief  CenteredTransformInitializerFilter is a helper class intended to initialize the center of rotation and the translation of Transforms having the center of rotation among their parameters.
+
+This class is connected to the fixed image, moving image and transform involved in the registration. Two modes of operation are possible:
+
+
+\li Geometrical,
+
+\li Center of mass
+
+
+
+In the first mode, the geometrical center of the moving image is passed as initial center of rotation to the transform and the vector from the center of the fixed image to the center of the moving image is passed as the initial translation. This mode basically assumes that the anatomical objects to be registered are centered in their respective images. Hence the best initial guess for the registration is the one that superimposes those two centers.
+
+In the second mode, the moments of gray level values are computed for both images. The center of mass of the moving image is then used as center of rotation. The vector between the two centers of mass is passes as the initial translation to the transform. This second approach assumes that the moments of the anatomical objects are similar for both images and hence the best initial guess for registration is to superimpose both mass centers. Note that this assumption will probably not hold  [...]
+
+     * \sa itk::CenteredTransformInitializer
+     */
+    class SITKBasicFilters_EXPORT  CenteredTransformInitializerFilter : public ProcessObject {
+    public:
+      typedef  CenteredTransformInitializerFilter Self;
+
+      /** Default Constructor that takes no arguments and initializes
+       * default parameters */
+       CenteredTransformInitializerFilter();
+
+      /** Destructor */
+      ~ CenteredTransformInitializerFilter();
+
+      /** Define the pixels types supported by this filter */
+      typedef BasicPixelIDTypeList  PixelIDTypeList;
+
+
+
+      typedef enum {GEOMETRY,MOMENTS} OperationModeType;
+
+      /**
+       */
+      SITK_RETURN_SELF_TYPE_HEADER SetOperationMode ( OperationModeType OperationMode ) { this->m_OperationMode = OperationMode; return *this; }
+
+      /**
+       */
+        OperationModeType GetOperationMode() const { return this->m_OperationMode; }
+      /** Name of this class */
+      std::string GetName() const { return std::string ("CenteredTransformInitializerFilter"); }
+
+      /** Print ourselves out */
+      std::string ToString() const;
+
+
+      /** Execute the filter on the input image */
+      Transform Execute ( const Image & fixedImage, const Image & movingImage, const Transform & transform );
+
+
+      /** Execute the filter on the input image with the given parameters */
+      Transform Execute ( const Image & fixedImage, const Image & movingImage, const Transform & transform,  CenteredTransformInitializerFilter::OperationModeType operationMode );
+
+
+      /** Select between using the geometrical center of the images or using the center of mass given by the image intensities. */
+      SITK_RETURN_SELF_TYPE_HEADER MomentsOn( ) { this->SetOperationMode( MOMENTS ); return *this; }
+
+      /** Select between using the geometrical center of the images or using the center of mass given by the image intensities. */
+      SITK_RETURN_SELF_TYPE_HEADER GeometryOn( ) { this->SetOperationMode( GEOMETRY ); return *this; }
+
+
+    private:
+
+      /** Setup for member function dispatching */
+
+      typedef Transform (Self::*MemberFunctionType)( const Image * fixedImage, const Image * movingImage, const itk::simple::Transform * transform );
+      template <class TImageType> Transform ExecuteInternal ( const Image * fixedImage, const Image * movingImage, const itk::simple::Transform * transform );
+
+
+
+      friend struct detail::MemberFunctionAddressor<MemberFunctionType>;
+
+      nsstd::auto_ptr<detail::MemberFunctionFactory<MemberFunctionType> > m_MemberFactory;
+
+
+      OperationModeType  m_OperationMode;
+    };
+
+    /**
+     * \brief CenteredTransformInitializer is a helper class intended to initialize the center of rotation and the translation of Transforms having the center of rotation among their parameters.
+     *
+     * This function directly calls the execute method of CenteredTransformInitializerFilter
+     * in order to support a procedural API
+     *
+     * \sa itk::simple::CenteredTransformInitializerFilter for the object oriented interface
+     */
+     SITKBasicFilters_EXPORT Transform CenteredTransformInitializer ( const Image & fixedImage, const Image & movingImage, const Transform & transform, CenteredTransformInitializerFilter::OperationModeType operationMode = itk::simple::CenteredTransformInitializerFilter::MOMENTS );
+
+  }
+}
+#endif
diff --git a/Code/BasicFilters/include/sitkCenteredVersorTransformInitializerFilter.h b/Code/BasicFilters/include/sitkCenteredVersorTransformInitializerFilter.h
new file mode 100644
index 0000000..95822e8
--- /dev/null
+++ b/Code/BasicFilters/include/sitkCenteredVersorTransformInitializerFilter.h
@@ -0,0 +1,117 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkCenteredVersorTransformInitializerFilter_h
+#define sitkCenteredVersorTransformInitializerFilter_h
+
+/*
+ * WARNING: DO NOT EDIT THIS FILE!
+ * THIS FILE IS AUTOMATICALLY GENERATED BY THE SIMPLEITK BUILD PROCESS.
+ * Please look at sitkImageFilterTemplate.h.in to make changes.
+ */
+
+#include <memory>
+
+#include "sitkBasicFilters.h"
+#include "sitkProcessObject.h"
+#include "sitkMemberFunctionFactory.h"
+
+namespace itk {
+  namespace simple {
+
+    /**\class CenteredVersorTransformInitializerFilter
+\brief CenteredVersorTransformInitializerFilter is a helper class intended to initialize the center of rotation, versor, and translation of the VersorRigid3DTransform.
+
+This class derived from the CenteredTransformInitializerand uses it in a more constrained context. It always uses the Moments mode, and also takes advantage of the second order moments in order to initialize the Versorrepresenting rotation.
+
+\sa itk::CenteredVersorTransformInitializer for the Doxygen on the original ITK class.
+     */
+    class SITKBasicFilters_EXPORT CenteredVersorTransformInitializerFilter : public ProcessObject {
+    public:
+      typedef CenteredVersorTransformInitializerFilter Self;
+
+      /** Default Constructor that takes no arguments and initializes
+       * default parameters */
+      CenteredVersorTransformInitializerFilter();
+
+      /** Destructor */
+      ~CenteredVersorTransformInitializerFilter();
+
+      /** Define the pixels types supported by this filter */
+      typedef BasicPixelIDTypeList  PixelIDTypeList;
+
+
+
+      /**
+       * Enable the use of the principal axes of each image to compute an initial rotation that will align them.
+       */
+      SITK_RETURN_SELF_TYPE_HEADER SetComputeRotation ( bool ComputeRotation ) { this->m_ComputeRotation = ComputeRotation; return *this; }
+
+      /** Set the value of ComputeRotation to true or false respectfully. */
+      SITK_RETURN_SELF_TYPE_HEADER ComputeRotationOn() { return this->SetComputeRotation(true); }
+      SITK_RETURN_SELF_TYPE_HEADER ComputeRotationOff() { return this->SetComputeRotation(false); }
+
+      /**
+       * Enable the use of the principal axes of each image to compute an initial rotation that will align them.
+       */
+        bool GetComputeRotation() const { return this->m_ComputeRotation; }
+      /** Name of this class */
+      std::string GetName() const { return std::string ("CenteredVersorTransformInitializerFilter"); }
+
+      /** Print ourselves out */
+      std::string ToString() const;
+
+
+      /** Execute the filter on the input image */
+      Transform Execute ( const Image & fixedImage, const Image & movingImage, const Transform & transform );
+
+
+      /** Execute the filter on the input image with the given parameters */
+      Transform Execute ( const Image & fixedImage, const Image & movingImage, const Transform & transform, bool computeRotation );
+
+
+    private:
+
+      /** Setup for member function dispatching */
+
+      typedef Transform (Self::*MemberFunctionType)( const Image * fixedImage, const Image * movingImage, const itk::simple::Transform * transform );
+      template <class TImageType> Transform ExecuteInternal ( const Image * fixedImage, const Image * movingImage, const itk::simple::Transform * transform );
+
+
+
+      friend struct detail::MemberFunctionAddressor<MemberFunctionType>;
+
+      nsstd::auto_ptr<detail::MemberFunctionFactory<MemberFunctionType> > m_MemberFactory;
+
+
+      bool  m_ComputeRotation;
+    };
+
+
+    /**
+     * \brief CenteredVersorTransformInitializer is a helper class intended to initialize the center of rotation, versor, and translation of the VersorRigid3DTransform.
+     *
+     * This function directly calls the execute method of CenteredVectorTransformInitializerFilter
+     * in order to support a procedural API.
+     *
+     * \sa itk::simple::CenteredVersorTransformInitializerFilter for the object oriented interface
+     */
+  SITKBasicFilters_EXPORT Transform CenteredVersorTransformInitializer ( const Image & fixedImage, const Image & movingImage, const Transform & transform, bool computeRotation = false );
+
+  }
+}
+#endif
diff --git a/Code/BasicFilters/include/sitkHashImageFilter.h b/Code/BasicFilters/include/sitkHashImageFilter.h
new file mode 100644
index 0000000..c8e8955
--- /dev/null
+++ b/Code/BasicFilters/include/sitkHashImageFilter.h
@@ -0,0 +1,80 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkHashImageFilter_h
+#define sitkHashImageFilter_h
+
+#include "sitkMacro.h"
+#include "sitkMemberFunctionFactory.h"
+#include "sitkImage.h"
+#include "sitkBasicFilters.h"
+#include "sitkImageFilter.h"
+#include "sitkProcessObject.h"
+
+namespace itk {
+  namespace simple {
+
+    /** \class HashImageFilter
+     * \brief Compute the sha1 or md5 hash of an image
+     *
+     * \sa itk::simple::Hash for the procedural interface
+     */
+    class SITKBasicFilters_EXPORT HashImageFilter
+      : public ProcessObject {
+    public:
+      typedef HashImageFilter Self;
+
+      // function pointer type
+      typedef std::string (Self::*MemberFunctionType)( const Image& );
+
+      // this filter works with all itk::Image and itk::VectorImage types.
+      typedef typelist::Append<
+        typelist::Append< BasicPixelIDTypeList, ComplexPixelIDTypeList>::Type,
+        VectorPixelIDTypeList >::Type PixelIDTypeList;
+
+      HashImageFilter();
+
+      enum HashFunction { SHA1, MD5 };
+      SITK_RETURN_SELF_TYPE_HEADER SetHashFunction ( HashFunction hashFunction );
+      HashFunction GetHashFunction () const;
+
+      /** Name of this class */
+      std::string GetName() const { return std::string ( "Hash"); }
+
+      // Print ourselves out
+      std::string ToString() const;
+
+      std::string Execute ( const Image& );
+
+
+    private:
+      HashFunction m_HashFunction;
+
+      template <class TImageType> std::string ExecuteInternal ( const Image& image );
+      template <class TImageType> std::string ExecuteInternalLabelImage ( const Image& image );
+
+      // friend to get access to executeInternal member
+      friend struct detail::MemberFunctionAddressor<MemberFunctionType>;
+      friend struct detail::ExecuteInternalLabelImageAddressor<MemberFunctionType>;
+
+      nsstd::auto_ptr<detail::MemberFunctionFactory<MemberFunctionType> > m_MemberFactory;
+    };
+
+    SITKBasicFilters_EXPORT std::string Hash ( const Image& image, HashImageFilter::HashFunction function = HashImageFilter::SHA1 );
+  }
+}
+#endif
diff --git a/Code/BasicFilters/include/sitkImageFilter.h b/Code/BasicFilters/include/sitkImageFilter.h
new file mode 100644
index 0000000..a830717
--- /dev/null
+++ b/Code/BasicFilters/include/sitkImageFilter.h
@@ -0,0 +1,100 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkImageFilter_h
+#define sitkImageFilter_h
+
+#include "sitkMacro.h"
+#include "sitkMemberFunctionFactory.h"
+#include "sitkBasicFilters.h"
+#include "sitkProcessObject.h"
+
+namespace itk {
+
+  namespace simple {
+
+  /** \class ImageFilter
+   * \brief The base interface for SimpleITK filters that take one input image
+   *
+   * All SimpleITK filters which take one input image should inherit from this
+   * class
+   */
+  template < unsigned int N>
+  class SITKBasicFilters0_EXPORT ImageFilter:
+      public ProcessObject
+  {
+    public:
+      typedef ImageFilter Self;
+
+      //
+      // Type List Setup
+      //
+
+      //
+      // Filter Setup
+      //
+
+      /**
+       * Default Constructor that takes no arguments and initializes
+       * default parameters
+       */
+      ImageFilter();
+
+      /**
+       * Default Destructor
+       */
+      virtual ~ImageFilter() = 0;
+
+    protected:
+
+      // Simple ITK must use a zero based index
+      template< class TImageType>
+      static void FixNonZeroIndex( TImageType * img )
+      {
+        assert( img != NULL );
+
+        typename TImageType::RegionType r = img->GetLargestPossibleRegion();
+        typename TImageType::IndexType idx = r.GetIndex();
+
+        for( unsigned int i = 0; i < TImageType::ImageDimension; ++i )
+          {
+
+          if ( idx[i] != 0 )
+            {
+            // if any of the indcies are non-zero, then just fix it
+            typename TImageType::PointType o;
+            img->TransformIndexToPhysicalPoint( idx, o );
+            img->SetOrigin( o );
+
+            idx.Fill( 0 );
+            r.SetIndex( idx );
+
+            // Need to set the buffered region to match largest
+            img->SetRegions( r );
+
+            return;
+            }
+          }
+
+      }
+
+    };
+
+
+  }
+}
+#endif
diff --git a/Code/BasicFilters/include/sitkImageOperators.h b/Code/BasicFilters/include/sitkImageOperators.h
new file mode 100644
index 0000000..481463a
--- /dev/null
+++ b/Code/BasicFilters/include/sitkImageOperators.h
@@ -0,0 +1,99 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkImageOperators_h
+#define sitkImageOperators_h
+
+#include "sitkAddImageFilter.h"
+#include "sitkSubtractImageFilter.h"
+#include "sitkMultiplyImageFilter.h"
+#include "sitkDivideImageFilter.h"
+#include "sitkModulusImageFilter.h"
+#include "sitkUnaryMinusImageFilter.h"
+#include "sitkBitwiseNotImageFilter.h"
+#include "sitkAndImageFilter.h"
+#include "sitkOrImageFilter.h"
+#include "sitkXorImageFilter.h"
+
+namespace itk {
+namespace simple {
+
+/**
+* \brief Performs the operator on a per pixel basis.
+*
+* All overloaded simpleITK operators are performed on a per-pixel
+* basis, and implemented with the coresponding image filters. These
+* operators gernerally don't work with label images, and the logical
+* operators don't work with images of real components or vector images.
+* @{
+*/
+inline Image operator+( const Image &img1, const Image &img2 ) { return Add(img1, img2 ); }
+inline Image operator+( const Image &img, double s ) { return  Add(img, s ); }
+inline Image operator+( double s,  const Image &img ) { return  Add(s, img ); }
+inline Image operator-( const Image &img1, const Image &img2 ) { return Subtract(img1, img2 ); }
+inline Image operator-( const Image &img, double s ) { return  Subtract(img, s ); }
+inline Image operator-(double s, const Image &img ) { return  Subtract(s, img ); }
+inline Image operator*( const Image &img1, const Image &img2 ) { return Multiply(img1, img2 ); }
+inline Image operator*( const Image &img, double s  ) { return Multiply(img, s ); }
+inline Image operator*( double s,  const Image &img ) { return Multiply(s, img ); }
+inline Image operator/( const Image &img1, const Image &img2 ) { return Divide(img1, img2 ); }
+inline Image operator/( const Image &img, double s  ) { return Divide(img, s ); }
+inline Image operator/( double s,  const Image &img  ) { return Divide(s, img ); }
+inline Image operator%( const Image &img1, const Image &img2 ) { return Modulus(img1, img2 ); }
+inline Image operator%( const Image &img, uint32_t s  ) { return Modulus(img, s ); }
+inline Image operator%( uint32_t s,  const Image &img  ) { return Modulus(s, img ); }
+
+
+// Modoulo does not appear to be defined?
+// Image operator%( Image &img1, Image &img2 )
+// Image &operator%=( Image &img1, double s )
+
+inline Image operator-( const Image &img ) { return UnaryMinus( img ); }
+
+inline Image operator~( const Image &img ) { return BitwiseNot( img ); }
+inline Image operator&( const Image &img1, const Image &img2 ) { return And(img1, img2 ); }
+inline Image operator&( const Image &img,  int s ) { return And(img, s ); }
+inline Image operator&( int s, const Image &img ) { return And(s, img ); }
+inline Image operator|( const Image &img1, const Image &img2 ) { return Or(img1, img2 ); }
+inline Image operator|( const Image &img, int s ) { return Or(img, s ); }
+inline Image operator|( int s, const Image &img ) { return Or(s, img ); }
+inline Image operator^( const Image &img1, const Image &img2 ) { return Xor(img1, img2 ); }
+inline Image operator^( const Image &img, int s ) { return Xor(img, s ); }
+inline Image operator^( int s, const Image &img ) { return Xor(s, img ); }
+
+/** \todo these operators should some how be done "in-place" */
+inline Image operator+=( Image &img1, const Image &img2 ) { return img1 = Add(img1, img2 ); }
+inline Image operator+=( Image &img1, double s ) { return img1 = Add(img1, s ); }
+inline Image operator-=( Image &img1, const Image &img2 ) { return img1 = Subtract(img1, img2 ); }
+inline Image operator-=( Image &img1, double s ) { return img1 = Subtract(img1, s ); }
+inline Image operator*=( Image &img1, const Image &img2 ) { return img1 = Multiply(img1, img2 ); }
+inline Image operator*=( Image &img1, double s ) { return img1 = Multiply(img1, s ); }
+inline Image operator/=( Image &img1, const Image &img2 ) { return img1 = Divide(img1, img2 ); }
+inline Image operator/=( Image &img1, double s ) { return img1 = Divide(img1, s ); }
+inline Image operator%=( Image &img1, const Image &img2 ) { return img1 = Modulus(img1, img2 ); }
+inline Image operator%=( Image &img1, uint32_t s ) { return img1 = Modulus(img1, s ); }
+inline Image operator&=( Image &img1, const Image &img2 ) { return img1 = And(img1, img2 ); }
+inline Image operator&=( Image &img1, int s ) { return img1 = And(img1, s ); }
+inline Image operator|=( Image &img1, const Image &img2 ) { return img1 = Or(img1, img2 ); }
+inline Image operator|=( Image &img1, int s ) { return img1 = Or(img1, s ); }
+inline Image operator^=( Image &img1, const Image &img2 ) { return img1 = Xor(img1, img2 ); }
+inline Image operator^=( Image &img1, int s ) { return img1 = Xor(img1, s ); }
+/**@} */
+}
+}
+
+#endif // sitkImageOperators_h
diff --git a/Code/BasicFilters/include/sitkLandmarkBasedTransformInitializerFilter.h b/Code/BasicFilters/include/sitkLandmarkBasedTransformInitializerFilter.h
new file mode 100644
index 0000000..c808a00
--- /dev/null
+++ b/Code/BasicFilters/include/sitkLandmarkBasedTransformInitializerFilter.h
@@ -0,0 +1,177 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkLandmarkBasedTransformInitializerFilter_h
+#define sitkLandmarkBasedTransformInitializerFilter_h
+
+/*
+ * WARNING: DO NOT EDIT THIS FILE!
+ * THIS FILE IS AUTOMATICALLY GENERATED BY THE SIMPLEITK BUILD PROCESS.
+ * Please look at sitkImageFilterTemplate.h.in to make changes.
+ */
+
+#include <memory>
+
+#include "sitkBasicFilters.h"
+#include "sitkImageFilter.h"
+
+namespace itk {
+  namespace simple {
+
+    /**\class LandmarkBasedTransformInitializerFilter
+
+
+This class computes the transform that aligns the fixed and moving images given a set of pair landmarks. The class is templated over the Transform type as well as fixed image and moving image types. The transform computed gives the best fit transform that maps the fixed and moving images in a least squares sense. The indices are taken to correspond, so point 1 in the first set will get mapped close to point 1 in the second set, etc.
+
+Currently, the following transforms are supported by the class: VersorRigid3DTransform Rigid2DTransform AffineTransform BSplineTransform 
+
+An equal number of fixed and moving landmarks need to be specified using SetFixedLandmarks() and SetMovingLandmarks() . Any number of landmarks may be specified. In the case of using Affine or BSpline transforms, each landmark pair can contribute in the final transform based on its defined weight. Number of weights should be equal to the number of landmarks and can be specified using SetLandmarkWeight() . By defaults are weights are set to one. Call InitializeTransform() to initialize th [...]
+
+The class is based in part on Hybrid/vtkLandmarkTransform originally implemented in python by David G. Gobbi.
+
+The solution is based on Berthold K. P. Horn (1987), "Closed-form solution of absolute orientation
+using unit quaternions," http://people.csail.mit.edu/bkph/papers/Absolute_Orientation.pdf 
+
+The Affine Transform initializer is based on an algorithm by H Spaeth, and is described in the Insight Journal Article "Affine Transformation for Landmark Based Registration Initializer
+in ITK" by Kim E.Y., Johnson H., Williams N. available at http://midasjournal.com/browse/publication/825 
+
+\par Wiki Examples:
+
+\li All Examples 
+
+\li Rigidly register one image to another using manually specified landmarks
+\sa itk::simple::LandmarkBasedTransformInitializerFilter for the procedural interface
+\sa itk::LandmarkBasedTransformInitializer for the Doxygen on the original ITK class.
+     */
+    class SITKBasicFilters_EXPORT LandmarkBasedTransformInitializerFilter : public ImageFilter<0> {
+    public:
+      typedef LandmarkBasedTransformInitializerFilter Self;
+
+      /** Default Constructor that takes no arguments and initializes
+       * default parameters */
+      LandmarkBasedTransformInitializerFilter();
+
+      /** Destructor */
+      ~LandmarkBasedTransformInitializerFilter();
+
+      /** Define the pixels types supported by this filter */
+      typedef typelist::MakeTypeList<BasicPixelID<float> >::Type PixelIDTypeList;
+
+
+
+      /**
+       * Set the Fixed landmark point containers
+       */
+      SITK_RETURN_SELF_TYPE_HEADER SetFixedLandmarks ( const std::vector<double> & FixedLandmarks ) { this->m_FixedLandmarks = FixedLandmarks; return *this; }
+
+      /**
+       *
+       */
+        std::vector<double> GetFixedLandmarks() const { return this->m_FixedLandmarks; }
+
+      /**
+       * Set the Moving landmark point containers
+       */
+      SITK_RETURN_SELF_TYPE_HEADER SetMovingLandmarks ( const std::vector<double> & MovingLandmarks ) { this->m_MovingLandmarks = MovingLandmarks; return *this; }
+
+      /**
+       * Get the shrink factors.
+       */
+        std::vector<double> GetMovingLandmarks() const { return this->m_MovingLandmarks; }
+
+      /**
+       * Set the landmark weight point containers Weight includes diagonal elements of weight matrix
+       */
+      SITK_RETURN_SELF_TYPE_HEADER SetLandmarkWeight ( const std::vector<double> & LandmarkWeight ) { this->m_LandmarkWeight = LandmarkWeight; return *this; }
+
+      /**
+       *
+       */
+        std::vector<double> GetLandmarkWeight() const { return this->m_LandmarkWeight; }
+
+      /**
+       * Set the reference image to define the parametric domain for the BSpline transform
+       */
+      SITK_RETURN_SELF_TYPE_HEADER SetReferenceImage ( const Image & ReferenceImage ) { this->m_ReferenceImage = ReferenceImage; return *this; }
+
+      /**
+       */
+        Image GetReferenceImage() const { return this->m_ReferenceImage; }
+
+      /**
+       * Set/Get the number of control points
+       */
+      SITK_RETURN_SELF_TYPE_HEADER SetBSplineNumberOfControlPoints ( unsigned int BSplineNumberOfControlPoints ) { this->m_BSplineNumberOfControlPoints = BSplineNumberOfControlPoints; return *this; }
+
+      /**
+       * Set/Get the number of control points
+       */
+        unsigned int GetBSplineNumberOfControlPoints() const { return this->m_BSplineNumberOfControlPoints; }
+      /** Name of this class */
+      std::string GetName() const { return std::string ("LandmarkBasedTransformInitializerFilter"); }
+
+      /** Print ourselves out */
+      std::string ToString() const;
+
+
+      /** Execute the filter on the input image */
+      Transform Execute ( const Transform & transform );
+
+
+      /** Execute the filter on the input image with the given parameters */
+      Transform Execute ( const Transform & transform, const std::vector<double> & fixedLandmarks, const std::vector<double> & movingLandmarks, const std::vector<double> & landmarkWeight, const Image & referenceImage, unsigned int numberOfControlPoints );
+
+
+    private:
+
+      /** Setup for member function dispatching */
+
+      typedef Transform (Self::*MemberFunctionType)( const Transform * transform );
+      template <class TImageType> Transform ExecuteInternal ( const Transform * transform );
+
+
+
+      friend struct detail::MemberFunctionAddressor<MemberFunctionType>;
+
+      nsstd::auto_ptr<detail::MemberFunctionFactory<MemberFunctionType> > m_MemberFactory;
+
+
+      /*  */
+      std::vector<double>  m_FixedLandmarks;
+      /*  */
+      std::vector<double>  m_MovingLandmarks;
+      /*  */
+      std::vector<double>  m_LandmarkWeight;
+      Image  m_ReferenceImage;
+      unsigned int  m_BSplineNumberOfControlPoints;
+    };
+
+
+
+    /**
+     * \brief itk::simple::LandmarkBasedTransformInitializerFilter Procedural Interface
+     *
+     * This function directly calls the execute method of LandmarkBasedTransformInitializerFilter
+     * in order to support a procedural API
+     *
+     * \sa itk::simple::LandmarkBasedTransformInitializerFilter for the object oriented interface
+     */
+     SITKBasicFilters_EXPORT Transform LandmarkBasedTransformInitializer ( const Transform & transform, const std::vector<double> & fixedLandmarks = std::vector<double>(), const std::vector<double> & movingLandmarks = std::vector<double>(), const std::vector<double> & landmarkWeight = std::vector<double>(), const Image & referenceImage = Image(), unsigned int numberOfControlPoints = 4u );
+
+  }
+}
+#endif
diff --git a/Code/BasicFilters/json/AbsImageFilter.json b/Code/BasicFilters/json/AbsImageFilter.json
new file mode 100644
index 0000000..597ce0c
--- /dev/null
+++ b/Code/BasicFilters/json/AbsImageFilter.json
@@ -0,0 +1,34 @@
+{
+  "name" : "AbsImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Compute the voxel-wise absolute value of an image",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "float",
+      "description" : "Abs of a float image",
+      "tolerance" : 0.01,
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-Slice-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "short",
+      "description" : "Abs of a short image",
+      "tolerance" : 0.01,
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-Slice-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the absolute value of each pixel.",
+  "detaileddescription" : "itk::Math::abs() is used to perform the computation.\n\n\\par Wiki Examples:\n\n\\li All Examples \n\n\\li Compute the absolute value of an image",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/AbsoluteValueDifferenceImageFilter.json b/Code/BasicFilters/json/AbsoluteValueDifferenceImageFilter.json
new file mode 100644
index 0000000..aa5b810
--- /dev/null
+++ b/Code/BasicFilters/json/AbsoluteValueDifferenceImageFilter.json
@@ -0,0 +1,36 @@
+{
+  "name" : "AbsoluteValueDifferenceImageFilter",
+  "template_code_filename" : "BinaryFunctorFilter",
+  "template_test_filename" : "ImageFilter",
+  "constant_type" : "double",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "checker board with default parameters",
+      "settings" : [],
+      "md5hash" : "ecb99e6ffea7be1e5419350f725da86b",
+      "inputs" : [
+        "Input/BlackDots.png",
+        "Input/WhiteDots.png"
+      ]
+    },
+    {
+      "tag" : "another",
+      "description" : "checker board with default parameters",
+      "settings" : [],
+      "md5hash" : "ecb99e6ffea7be1e5419350f725da86b",
+      "inputs" : [
+        "Input/WhiteDots.png",
+        "Input/BlackDots.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Implements pixel-wise the computation of absolute value difference.",
+  "detaileddescription" : "This filter is parametrized over the types of the two input images and the type of the output image.\n\nNumeric conversions (castings) are done by the C++ defaults.\n\nThe filter will walk over all the pixels in the two input images, and for each one of them it will do the following:\n\n\n\\li Cast the input 1 pixel value to double . \n\n\\li Cast the input 2 pixel value to double . \n\n\\li Compute the difference of the two pixel values. \n\n\\li Compute the a [...]
+  "itk_module" : "ITKImageCompare",
+  "itk_group" : "ImageCompare"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/AcosImageFilter.json b/Code/BasicFilters/json/AcosImageFilter.json
new file mode 100644
index 0000000..160920a
--- /dev/null
+++ b/Code/BasicFilters/json/AcosImageFilter.json
@@ -0,0 +1,25 @@
+{
+  "name" : "AcosImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0.01,
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the inverse cosine of each pixel.",
+  "detaileddescription" : "This filter is templated over the pixel type of the input image and the pixel type of the output image.\n\nThe filter walks over all the pixels in the input image, and for each pixel does do the following:\n\n\n\\li cast the pixel value to double , \n\n\\li apply the std::acos() function to the double value \n\n\\li cast the double value resulting from std::acos() to the pixel type of the output image \n\n\\li store the casted value into the output image.\n\n\n [...]
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/AdaptiveHistogramEqualizationImageFilter.json b/Code/BasicFilters/json/AdaptiveHistogramEqualizationImageFilter.json
new file mode 100644
index 0000000..191a781
--- /dev/null
+++ b/Code/BasicFilters/json/AdaptiveHistogramEqualizationImageFilter.json
@@ -0,0 +1,81 @@
+{
+  "name" : "AdaptiveHistogramEqualizationImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "filter_type" : "itk::AdaptiveHistogramEqualizationImageFilter<InputImageType>",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Radius",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 5)",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "no_print" : 1,
+      "itk_type" : "typename FilterType::RadiusType"
+    },
+    {
+      "name" : "Alpha",
+      "type" : "float",
+      "default" : "0.3f",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value of alpha. Alpha = 0 produces the adaptive histogram equalization (provided beta=0). Alpha = 1 produces an unsharp mask. Default is 0.3.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value of alpha. Alpha = 0 produces the adaptive histogram equalization (provided beta=0). Alpha = 1 produces an unsharp mask. Default is 0.3."
+    },
+    {
+      "name" : "Beta",
+      "type" : "float",
+      "default" : "0.3f",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value of beta. If beta = 1 (and alpha = 1), then the output image matches the input image. As beta approaches 0, the filter behaves as an unsharp mask. Default is 0.3.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value of beta. If beta = 1 (and alpha = 1), then the output image matches the input image. As beta approaches 0, the filter behaves as an unsharp mask. Default is 0.3."
+    },
+    {
+      "name" : "UseLookupTable",
+      "type" : "bool",
+      "default" : "false",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether an optimized lookup table for the intensity mapping function is used. Default is off. Deprecated",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether an optimized lookup table for the intensity mapping function is used. Default is off. Deprecated"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : "2e-3",
+      "inputs" : [
+        "Input/RA-Slice-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "histo",
+      "description" : "values set for classical histogram qualization",
+      "settings" : [
+        {
+          "parameter" : "Alpha",
+          "value" : 0.0
+        },
+        {
+          "parameter" : "Beta",
+          "value" : 0.0
+        }
+      ],
+      "tolerance" : "1e-5",
+      "inputA_cast" : "sitkFloat32",
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Power Law Adaptive Histogram Equalization.",
+  "detaileddescription" : "Histogram equalization modifies the contrast in an image. The AdaptiveHistogramEqualizationImageFilter is a superset of many contrast enhancing filters. By modifying its parameters (alpha, beta, and window), the AdaptiveHistogramEqualizationImageFilter can produce an adaptively equalized histogram or a version of unsharp mask (local mean subtraction). Instead of applying a strict histogram equalization in a window about a pixel, this filter prescribes a mapping [...]
+  "itk_module" : "ITKImageStatistics",
+  "itk_group" : "ImageStatistics"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/AddImageFilter.json b/Code/BasicFilters/json/AddImageFilter.json
new file mode 100644
index 0000000..17d2a5f
--- /dev/null
+++ b/Code/BasicFilters/json/AddImageFilter.json
@@ -0,0 +1,46 @@
+{
+  "name" : "AddImageFilter",
+  "template_code_filename" : "BinaryFunctorFilter",
+  "template_test_filename" : "ImageFilter",
+  "constant_type" : "double",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "NonLabelPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "2d",
+      "description" : "2D",
+      "settings" : [],
+      "md5hash" : "bc458a17e18c79ae767e8be47451d1b4",
+      "inputs" : [
+        "Input/STAPLE1.png",
+        "Input/STAPLE2.png"
+      ]
+    },
+    {
+      "tag" : "3d",
+      "description" : "3D",
+      "settings" : [],
+      "md5hash" : "dfc0af11e8c30a0bd6dedd560486f419",
+      "inputs" : [
+        "Input/RA-Short.nrrd",
+        "Input/RA-Short.nrrd"
+      ]
+    },
+    {
+      "tag" : "2d_rgb",
+      "description" : "2D-RGB",
+      "settings" : [],
+      "md5hash" : "5f00ee8a03437b4e421eb761dc340bc8",
+      "inputs" : [
+        "Input/VM1111Shrink-RGBFloat.nrrd",
+        "Input/VM1111Shrink-RGBFloat.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Pixel-wise addition of two images.",
+  "detaileddescription" : "This class is templated over the types of the two input images and the type of the output image. Numeric conversions (castings) are done by the C++ defaults.\n\nThe pixel type of the input 1 image must have a valid definition of the operator+ with a pixel type of the image 2. This condition is required because internally this filter will perform the operation\n\n\\code\n* pixel_from_image_1 + pixel_from_image_2\n\n* \n\n\\endcode\n\nAdditionally the type result [...]
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/AdditiveGaussianNoiseImageFilter.json b/Code/BasicFilters/json/AdditiveGaussianNoiseImageFilter.json
new file mode 100644
index 0000000..a1c6a05
--- /dev/null
+++ b/Code/BasicFilters/json/AdditiveGaussianNoiseImageFilter.json
@@ -0,0 +1,100 @@
+{
+  "name" : "AdditiveGaussianNoiseImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "StandardDeviation",
+      "type" : "double",
+      "default" : "1.0",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the standard deviation of the Gaussian distribution. Defaults to 1.0.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the standard deviation of the Gaussian distribution. Defaults to 1.0."
+    },
+    {
+      "name" : "Mean",
+      "type" : "double",
+      "default" : "0.0",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the mean of the Gaussian distribution. Defaults to 0.0.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the mean of the Gaussian distribution. Defaults to 0.0."
+    },
+    {
+      "name" : "Seed",
+      "type" : "uint32_t",
+      "default" : "(uint32_t) itk::simple::sitkWallClock",
+      "custom_itk_cast" : "if (m_Seed) filter->SetSeed(m_Seed);"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "2d",
+      "description" : "2D - baseline as zero noise",
+      "no_procedure" : 1,
+      "settings" : [
+        {
+          "parameter" : "Seed",
+          "cxx_value" : "123u",
+          "value" : "123"
+        },
+        {
+          "parameter" : "StandardDeviation",
+          "value" : 10.0
+        }
+      ],
+      "tolerance" : 20,
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    },
+    {
+      "tag" : "3d",
+      "description" : "3D - baseline as zero noise",
+      "no_procedure" : 1,
+      "settings" : [
+        {
+          "parameter" : "Seed",
+          "cxx_value" : "123u",
+          "value" : "123"
+        },
+        {
+          "parameter" : "StandardDeviation",
+          "value" : 10.0
+        }
+      ],
+      "tolerance" : 20,
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    },
+    {
+      "tag" : "rgb",
+      "description" : "vector image - baseline as zero noise",
+      "no_procedure" : 1,
+      "settings" : [
+        {
+          "parameter" : "Seed",
+          "cxx_value" : "123u",
+          "value" : "123"
+        },
+        {
+          "parameter" : "StandardDeviation",
+          "value" : 10.0
+        }
+      ],
+      "tolerance" : 20,
+      "inputs" : [
+        "Input/VM1111Shrink-RGB.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Alter an image with additive Gaussian white noise.",
+  "detaileddescription" : "Additive Gaussian white noise can be modeled as:\n\n\\par \n\\f$ I = I_0 + N \\f$ \n\n\\par \nwhere \\f$ I \\f$ is the observed image, \\f$ I_0 \\f$ is the noise-free image and \\f$ N \\f$ is a normally distributed random variable of mean \\f$ \\mu \\f$ and variance \\f$ \\sigma^2 \\f$ :\n\n\\par \n\\f$ N \\sim \\mathcal{N}(\\mu, \\sigma^2) \\f$ \n\nThe noise is independent of the pixel intensities.\n\n\\author Gaetan Lehmann\n\nThis code was contributed in the [...]
+  "itk_module" : "ITKImageNoise",
+  "itk_group" : "ImageNoise"
+}
diff --git a/Code/BasicFilters/json/AggregateLabelMapFilter.json b/Code/BasicFilters/json/AggregateLabelMapFilter.json
new file mode 100644
index 0000000..2ace685
--- /dev/null
+++ b/Code/BasicFilters/json/AggregateLabelMapFilter.json
@@ -0,0 +1,37 @@
+{
+  "name" : "AggregateLabelMapFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Docs",
+  "pixel_types" : "LabelPixelIDTypeList",
+  "filter_type" : "itk::AggregateLabelMapFilter<InputImageType>",
+  "custom_set_input" : "filter->SetInput(image1);\n  filter->InPlaceOff();",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings",
+      "inputA_cast" : "sitkLabelUInt8",
+      "md5hash" : "2072c0c6fa50f19951edbb8b8674e6a3",
+      "settings" : [],
+      "inputs" : [
+        "Input/2th_cthead1.png"
+      ]
+    },
+    {
+      "tag" : "default2",
+      "description" : "Simply run with default settings",
+      "inputA_cast" : "sitkLabelUInt16",
+      "md5hash" : "920910cc9a6c3cfccda7ad1b5e3b22ce",
+      "settings" : [],
+      "inputs" : [
+        "Input/simple-label-b.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Collapses all labels into the first label.",
+  "detaileddescription" : "This filter takes a label map as input and visits the pixels of all labels and assigns them to the first label of the label map. At the end of the execution of this filter, the map will contain a single filter.\n\nThis implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176 \n\n\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, [...]
+  "itk_module" : "ITKLabelMap",
+  "itk_group" : "LabelMap"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/AndImageFilter.json b/Code/BasicFilters/json/AndImageFilter.json
new file mode 100644
index 0000000..44571d8
--- /dev/null
+++ b/Code/BasicFilters/json/AndImageFilter.json
@@ -0,0 +1,26 @@
+{
+  "name" : "AndImageFilter",
+  "template_code_filename" : "BinaryFunctorFilter",
+  "template_test_filename" : "ImageFilter",
+  "constant_type" : "int",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "md5hash" : "a216e4eac5235a2c9e4fd473bd9b3947",
+      "inputs" : [
+        "Input/STAPLE1.png",
+        "Input/STAPLE2.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Implements the AND bitwise operator pixel-wise between two images.",
+  "detaileddescription" : "This class is templated over the types of the two input images and the type of the output image. Numeric conversions (castings) are done by the C++ defaults.\n\nSince the bitwise AND operation is only defined in C++ for integer types, the images passed to this filter must comply with the requirement of using integer pixel type.\n\nThe total operation over one pixel will be \\code\n* output_pixel = static_cast<OutputPixelType>( input1_pixel & input2_pixel )\n\n* [...]
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/AntiAliasBinaryImageFilter.json b/Code/BasicFilters/json/AntiAliasBinaryImageFilter.json
new file mode 100644
index 0000000..aac0f05
--- /dev/null
+++ b/Code/BasicFilters/json/AntiAliasBinaryImageFilter.json
@@ -0,0 +1,63 @@
+{
+  "name" : "AntiAliasBinaryImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "output_pixel_type" : "typename itk::NumericTraits<typename InputImageType::PixelType>::RealType",
+  "members" : [
+    {
+      "name" : "MaximumRMSError",
+      "type" : "double",
+      "default" : 0.07,
+      "doc" : "Value of RMS change below which the filter should stop. This is a convergence criterion."
+    },
+    {
+      "name" : "NumberOfIterations",
+      "type" : "uint32_t",
+      "default" : "1000u",
+      "doc" : "Number of iterations to run"
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "ElapsedIterations",
+      "type" : "uint32_t",
+      "default" : 0,
+      "briefdescriptionGet" : "Number of iterations run."
+    },
+    {
+      "name" : "RMSChange",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "The Root Mean Square of the levelset upon termination."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "cthead",
+      "description" : "Segmentation of brain in CT",
+      "settings" : [],
+      "tolerance" : 1000000.0,
+      "measurements_results" : [
+        {
+          "name" : "ElapsedIterations",
+          "value" : 3,
+          "tolerance" : 3
+        },
+        {
+          "name" : "RMSChange",
+          "value" : 0.015,
+          "tolerance" : 0.006
+        }
+      ],
+      "inputs" : [
+        "Input/2th_cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "A method for estimation of a surface from a binary volume.",
+  "detaileddescription" : "\\par \nThis filter implements a surface-fitting method for estimation of a surface from a binary volume. This process can be used to reduce aliasing artifacts which result in visualization of binary partitioned surfaces.\n\n\\par \nThe binary volume (filter input) is used as a set of constraints in an iterative relaxation process of an estimated ND surface. The surface is described implicitly as the zero level set of a volume \\f$ \\phi \\f$ and allowed to def [...]
+  "itk_module" : "ITKAntiAlias",
+  "itk_group" : "AntiAlias"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ApproximateSignedDistanceMapImageFilter.json b/Code/BasicFilters/json/ApproximateSignedDistanceMapImageFilter.json
new file mode 100644
index 0000000..aff0cf6
--- /dev/null
+++ b/Code/BasicFilters/json/ApproximateSignedDistanceMapImageFilter.json
@@ -0,0 +1,64 @@
+{
+  "name" : "ApproximateSignedDistanceMapImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "Docs",
+  "number_of_inputs" : 1,
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "output_pixel_type" : "float",
+  "members" : [
+    {
+      "name" : "InsideValue",
+      "type" : "double",
+      "default" : "1u",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get intensity value representing the interior of objects in the mask.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get intensity value representing the interior of objects in the mask."
+    },
+    {
+      "name" : "OutsideValue",
+      "type" : "double",
+      "default" : "0u",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get intensity value representing non-objects in the mask.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get intensity value representing non-objects in the mask."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Default parameter settings",
+      "tolerance" : "0.01",
+      "settings" : [],
+      "inputs" : [
+        "Input/2th_cthead1.png"
+      ]
+    },
+    {
+      "tag" : "modified_parms",
+      "description" : "Setting InsideValue and OutsideValuew",
+      "tolerance" : "0.01",
+      "settings" : [
+        {
+          "parameter" : "InsideValue",
+          "value" : "100"
+        },
+        {
+          "parameter" : "OutsideValue",
+          "value" : "0"
+        }
+      ],
+      "inputs" : [
+        "Input/2th_cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Create a map of the approximate signed distance from the boundaries of a binary image.",
+  "detaileddescription" : "The ApproximateSignedDistanceMapImageFilter takes as input a binary image and produces a signed distance map. Each pixel value in the output contains the approximate distance from that pixel to the nearest \"object\" in the binary image. This filter differs from the DanielssonDistanceMapImageFilter in that it calculates the distance to the \"object edge\" for pixels within the object.\n\nNegative values in the output indicate that the pixel at that position is  [...]
+  "itk_module" : "ITKDistanceMap",
+  "itk_group" : "DistanceMap"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/AsinImageFilter.json b/Code/BasicFilters/json/AsinImageFilter.json
new file mode 100644
index 0000000..460f7f0
--- /dev/null
+++ b/Code/BasicFilters/json/AsinImageFilter.json
@@ -0,0 +1,25 @@
+{
+  "name" : "AsinImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0.01,
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the sine of each pixel.",
+  "detaileddescription" : "This filter is templated over the pixel type of the input image and the pixel type of the output image.\n\nThe filter walks over all the pixels in the input image, and for each pixel does the following:\n\n\n\\li cast the pixel value to double , \n\n\\li apply the std::asin() function to the double value, \n\n\\li cast the double value resulting from std::asin() to the pixel type of the output image, \n\n\\li store the casted value into the output image.\n\n\nT [...]
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/Atan2ImageFilter.json b/Code/BasicFilters/json/Atan2ImageFilter.json
new file mode 100644
index 0000000..0c4bd8d
--- /dev/null
+++ b/Code/BasicFilters/json/Atan2ImageFilter.json
@@ -0,0 +1,26 @@
+{
+  "name" : "Atan2ImageFilter",
+  "template_code_filename" : "BinaryFunctorFilter",
+  "template_test_filename" : "ImageFilter",
+  "constant_type" : "double",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0.01,
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes two argument inverse tangent.",
+  "detaileddescription" : "The first argument to the atan function is provided by a pixel in the first input image (SetInput1() ) and the corresponding pixel in the second input image (SetInput2() ) is used as the second argument.\n\nThis class is templated over the types of the two input images and the type of the output image. Numeric conversions (castings) are done by the C++ defaults.\n\nBoth pixel input types are cast to double in order to be used as parameters of std::atan2() . The [...]
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/AtanImageFilter.json b/Code/BasicFilters/json/AtanImageFilter.json
new file mode 100644
index 0000000..a5a46f6
--- /dev/null
+++ b/Code/BasicFilters/json/AtanImageFilter.json
@@ -0,0 +1,25 @@
+{
+  "name" : "AtanImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0.01,
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the one-argument inverse tangent of each pixel.",
+  "detaileddescription" : "This filter is templated over the pixel type of the input image and the pixel type of the output image.\n\nThe filter walks over all the pixels in the input image, and for each pixel does the following:\n\n\n\\li cast the pixel value to double , \n\n\\li apply the std::atan() function to the double value, \n\n\\li cast the double value resulting from std::atan() to the pixel type of the output image, \n\n\\li store the cast value into the output image.",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/BilateralImageFilter.json b/Code/BasicFilters/json/BilateralImageFilter.json
new file mode 100644
index 0000000..0d42ade
--- /dev/null
+++ b/Code/BasicFilters/json/BilateralImageFilter.json
@@ -0,0 +1,72 @@
+{
+  "name" : "BilateralImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "",
+  "number_of_inputs" : 1,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "DomainSigma",
+      "type" : "double",
+      "default" : "4.0",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Convenience get/set methods for setting all domain parameters to the same values.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Standard get/set macros for filter parameters. DomainSigma is specified in the same units as the Image spacing. RangeSigma is specified in the units of intensity."
+    },
+    {
+      "name" : "RangeSigma",
+      "type" : "double",
+      "default" : "50.0",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Standard get/set macros for filter parameters. DomainSigma is specified in the same units as the Image spacing. RangeSigma is specified in the units of intensity.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Standard get/set macros for filter parameters. DomainSigma is specified in the same units as the Image spacing. RangeSigma is specified in the units of intensity."
+    },
+    {
+      "name" : "NumberOfRangeGaussianSamples",
+      "type" : "unsigned int",
+      "default" : "100u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the number of samples in the approximation to the Gaussian used for the range smoothing. Samples are only generated in the range of [0, 4*m_RangeSigma]. Default is 100.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the number of samples in the approximation to the Gaussian used for the range smoothing. Samples are only generated in the range of [0, 4*m_RangeSigma]. Default is 100."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings on rgb",
+      "settings" : [],
+      "md5hash" : "40d02c04323fc303a8a28261c6d4eb23",
+      "inputs" : [
+        "Input/fruit.png"
+      ]
+    },
+    {
+      "tag" : "3d",
+      "description" : "small kernel in 3d",
+      "no_procedure" : 1,
+      "settings" : [
+        {
+          "parameter" : "DomainSigma",
+          "value" : "2.0"
+        },
+        {
+          "parameter" : "RangeSigma",
+          "value" : "500"
+        }
+      ],
+      "tolerance" : "1e-8",
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Blurs an image while preserving edges.",
+  "detaileddescription" : "This filter uses bilateral filtering to blur an image using both domain and range \"neighborhoods\". Pixels that are close to a pixel in the image domain and similar to a pixel in the image range are used to calculate the filtered value. Two gaussian kernels (one in the image domain and one in the image range) are used to smooth the image. The result is an image that is smoothed in homogeneous regions yet has edges preserved. The result is similar to anisotropi [...]
+  "itk_module" : "ITKImageFeature",
+  "itk_group" : "ImageFeature"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/BinShrinkImageFilter.json b/Code/BasicFilters/json/BinShrinkImageFilter.json
new file mode 100644
index 0000000..0680e2b
--- /dev/null
+++ b/Code/BasicFilters/json/BinShrinkImageFilter.json
@@ -0,0 +1,53 @@
+{
+  "name" : "BinShrinkImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "NonLabelPixelIDTypeList",
+  "public_declarations" : "Self &SetShrinkFactor( unsigned int s ) { this->m_ShrinkFactors = std::vector<unsigned int>(3, s ); return *this; }",
+  "members" : [
+    {
+      "name" : "ShrinkFactors",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 1)",
+      "dim_vec" : 1,
+      "doc" : "",
+      "itk_type" : "typename FilterType::ShrinkFactorsType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the shrink factors. Values are clamped to a minimum value of 1. Default is 1 for all dimensions.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the shrink factors."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Test Shirnk with default parameters",
+      "md5hash" : "45a85203a8972250b0e0226b64312eef",
+      "settings" : [],
+      "inputs" : [
+        "Input/VM1111Shrink-RGBFloat.nrrd"
+      ]
+    },
+    {
+      "tag" : "by4",
+      "description" : "Test BinShink by 4",
+      "md5hash" : "31e1303e610e4ab5393c173a91dcc77b",
+      "settings" : [
+        {
+          "parameter" : "ShrinkFactor",
+          "type" : "unsigned int",
+          "no_get_method" : 1,
+          "value" : "4"
+        }
+      ],
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Reduce the size of an image by an integer factor in each dimension while performing averaging of an input neighborhood.",
+  "detaileddescription" : "The output image size in each dimension is given by:\n\noutputSize[j] = max( std::floor(inputSize[j]/shrinkFactor[j]), 1 );\n\nThe algorithm implemented can be describe with the following equation for 2D: \\f[ \\mathsf{I}_{out}(x_o,x_1) = \\frac{\\sum_{i=0}^{f_0}\\sum_{j=0}^{f_1}\\mathsf{I}_{in}(f_0 x_o+i,f_1 x_1+j)}{f_0 f_1} \\f] \n\nThis filter is implemented so that the starting extent of the first pixel of the output matches that of the input.\n\nThe change [...]
+  "itk_module" : "ITKImageGrid",
+  "itk_group" : "ImageGrid"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/BinaryClosingByReconstructionImageFilter.json b/Code/BasicFilters/json/BinaryClosingByReconstructionImageFilter.json
new file mode 100644
index 0000000..13cc590
--- /dev/null
+++ b/Code/BasicFilters/json/BinaryClosingByReconstructionImageFilter.json
@@ -0,0 +1,68 @@
+{
+  "name" : "BinaryClosingByReconstructionImageFilter",
+  "template_code_filename" : "KernelImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "no_output_type" : 1,
+  "members" : [
+    {
+      "name" : "ForegroundValue",
+      "type" : "double",
+      "default" : "1.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the value in the image to consider as \"foreground\". Defaults to maximum value of InputPixelType.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the value in the image considered as \"foreground\". Defaults to maximum value of InputPixelType."
+    },
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn."
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "BinaryClosingByReconstruction",
+      "description" : "Test binary closing by reconstruction",
+      "md5hash" : "02dc78be92850eff775783073dbdd47d",
+      "settings" : [
+        {
+          "parameter" : "KernelRadius",
+          "no_get_method" : 1,
+          "value" : 10
+        },
+        {
+          "parameter" : "KernelType",
+          "value" : "itk::simple::sitkBall",
+          "lua_value" : "SimpleITK.sitkBall",
+          "python_value" : "SimpleITK.sitkBall",
+          "ruby_value" : "Simpleitk::SitkBall",
+          "java_value" : "KernelEnum.sitkBall",
+          "tcl_value" : "$$sitkBall",
+          "csharp_value" : "KernelEnum.sitkBall",
+          "R_value" : "'sitkBall'"
+        },
+        {
+          "parameter" : "ForegroundValue",
+          "value" : "200"
+        }
+      ],
+      "inputs" : [
+        "Input/2th_cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "binary closing by reconstruction of an image.",
+  "detaileddescription" : "This filter removes small (i.e., smaller than the structuring element) holes in the image. It is defined as: Closing(f) = ReconstructionByErosion(Dilation(f)).\n\nThe structuring element is assumed to be composed of binary values (zero or one). Only elements of the structuring element having values > 0 are candidates for affecting the center pixel.\n\n\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\nThi [...]
+  "itk_module" : "ITKBinaryMathematicalMorphology",
+  "itk_group" : "BinaryMathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/BinaryContourImageFilter.json b/Code/BasicFilters/json/BinaryContourImageFilter.json
new file mode 100644
index 0000000..4efd082
--- /dev/null
+++ b/Code/BasicFilters/json/BinaryContourImageFilter.json
@@ -0,0 +1,81 @@
+{
+  "name" : "BinaryContourImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn."
+    },
+    {
+      "name" : "BackgroundValue",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the background value used to mark the pixels not on the border of the objects.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the background value used to mark the pixels not on the border of the objects."
+    },
+    {
+      "name" : "ForegroundValue",
+      "type" : "double",
+      "default" : "1.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the foreground value used to identify the objects in the input and output images.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the foreground value used to identify the objects in the input and output images."
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings",
+      "md5hash" : "3921141f21fcb41e6d4af197e48ffbb5",
+      "settings" : [
+        {
+          "parameter" : "ForegroundValue",
+          "value" : "255.0"
+        }
+      ],
+      "inputs" : [
+        "Input/WhiteDots.png"
+      ]
+    },
+    {
+      "tag" : "custom",
+      "description" : "Run binary mask on a single label",
+      "md5hash" : "09212e4d204a0ed90a445dc832047b22",
+      "settings" : [
+        {
+          "parameter" : "ForegroundValue",
+          "value" : "100"
+        },
+        {
+          "parameter" : "FullyConnected",
+          "value" : "true",
+          "python_value" : "True",
+          "R_value" : "TRUE"
+        }
+      ],
+      "inputs" : [
+        "Input/2th_cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Labels the pixels on the border of the objects in a binary image.",
+  "detaileddescription" : "BinaryContourImageFilter takes a binary image as input, where the pixels in the objects are the pixels with a value equal to ForegroundValue. Only the pixels on the contours of the objects are kept. The pixels not on the border are changed to BackgroundValue.\n\nThe connectivity can be changed to minimum or maximum connectivity with SetFullyConnected() . Full connectivity produces thicker contours.\n\nhttps://hdl.handle.net/1926/1352 \n\n\\author Gaetan Lehmann [...]
+  "itk_module" : "ITKImageLabel",
+  "itk_group" : "ImageLabel"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/BinaryDilateImageFilter.json b/Code/BasicFilters/json/BinaryDilateImageFilter.json
new file mode 100644
index 0000000..f24e738
--- /dev/null
+++ b/Code/BasicFilters/json/BinaryDilateImageFilter.json
@@ -0,0 +1,101 @@
+{
+  "name" : "BinaryDilateImageFilter",
+  "template_code_filename" : "KernelImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Performs Dilation in a binary image.",
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "BackgroundValue",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Input",
+      "doc" : ""
+    },
+    {
+      "name" : "ForegroundValue",
+      "type" : "double",
+      "default" : "1.0",
+      "pixeltype" : "Input",
+      "doc" : ""
+    },
+    {
+      "name" : "BoundaryToForeground",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : ""
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "BinaryDilate",
+      "description" : "Test binary dilation",
+      "settings" : [
+        {
+          "parameter" : "KernelRadius",
+          "no_get_method" : 1,
+          "value" : 1
+        },
+        {
+          "parameter" : "KernelType",
+          "value" : "itk::simple::sitkBall",
+          "lua_value" : "SimpleITK.sitkBall",
+          "python_value" : "SimpleITK.sitkBall",
+          "ruby_value" : "Simpleitk::SitkBall",
+          "java_value" : "KernelEnum.sitkBall",
+          "tcl_value" : "$$sitkBall",
+          "csharp_value" : "KernelEnum.sitkBall",
+          "R_value" : "'sitkBall'"
+        },
+        {
+          "parameter" : "ForegroundValue",
+          "value" : "255.0"
+        }
+      ],
+      "md5hash" : "9eef659f21dab5eb49e0f715a5d9a21b",
+      "inputs" : [
+        "Input/STAPLE1.png"
+      ]
+    },
+    {
+      "tag" : "BinaryDilateVectorRadius",
+      "description" : "Test binary dilation with vector radius",
+      "settings" : [
+        {
+          "parameter" : "KernelRadius",
+          "type" : "uint32_t",
+          "dim_vec" : 1,
+          "value" : [
+            20,
+            1
+          ]
+        },
+        {
+          "parameter" : "KernelType",
+          "value" : "itk::simple::sitkBox",
+          "lua_value" : "SimpleITK.sitkBox",
+          "python_value" : "SimpleITK.sitkBox",
+          "ruby_value" : "Simpleitk::SitkBox",
+          "java_value" : "KernelEnum.sitkBox",
+          "tcl_value" : "$$sitkBox",
+          "csharp_value" : "KernelEnum.sitkBox",
+          "R_value" : "'sitkBox'"
+        },
+        {
+          "parameter" : "ForegroundValue",
+          "value" : "255"
+        }
+      ],
+      "md5hash" : "99108c735fe9727bca09ca28a42827d3",
+      "inputs" : [
+        "Input/STAPLE1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Fast binary dilation.",
+  "detaileddescription" : "BinaryDilateImageFilter is a binary dilation morphologic operation. This implementation is based on the papers:\n\nL.Vincent \"Morphological transformations of binary images with\narbitrary structuring elements\", and\n\nN.Nikopoulos et al. \"An efficient algorithm for 3d binary morphological transformations with 3d structuring elements for arbitrary size and shape\". IEEE Transactions on Image Processing. Vol. 9. No. 3. 2000. pp. 283-286.\n\nGray scale images  [...]
+  "itk_module" : "ITKBinaryMathematicalMorphology",
+  "itk_group" : "BinaryMathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/BinaryErodeImageFilter.json b/Code/BasicFilters/json/BinaryErodeImageFilter.json
new file mode 100644
index 0000000..51b455e
--- /dev/null
+++ b/Code/BasicFilters/json/BinaryErodeImageFilter.json
@@ -0,0 +1,67 @@
+{
+  "name" : "BinaryErodeImageFilter",
+  "template_code_filename" : "KernelImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Performs Erosion in a binary image.",
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "BackgroundValue",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Input",
+      "doc" : ""
+    },
+    {
+      "name" : "ForegroundValue",
+      "type" : "double",
+      "default" : "1.0",
+      "pixeltype" : "Input",
+      "doc" : ""
+    },
+    {
+      "name" : "BoundaryToForeground",
+      "type" : "bool",
+      "default" : "true",
+      "doc" : ""
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "BinaryErode",
+      "description" : "Test binary erosion",
+      "md5hash" : "9e37516c795d7f25847851666ef53ef9",
+      "settings" : [
+        {
+          "parameter" : "KernelRadius",
+          "no_get_method" : 1,
+          "value" : 1
+        },
+        {
+          "parameter" : "KernelType",
+          "value" : "itk::simple::sitkBall",
+          "lua_value" : "SimpleITK.sitkBall",
+          "python_value" : "SimpleITK.sitkBall",
+          "ruby_value" : "Simpleitk::SitkBall",
+          "java_value" : "KernelEnum.sitkBall",
+          "tcl_value" : "$$sitkBall",
+          "csharp_value" : "KernelEnum.sitkBall",
+          "R_value" : "'sitkBall'"
+        },
+        {
+          "parameter" : "ForegroundValue",
+          "value" : "255"
+        }
+      ],
+      "inputs" : [
+        "Input/STAPLE1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Fast binary erosion.",
+  "detaileddescription" : "BinaryErodeImageFilter is a binary erosion morphologic operation. This implementation is based on the papers:\n\nL.Vincent \"Morphological transformations of binary images with\narbitrary structuring elements\", and\n\nN.Nikopoulos et al. \"An efficient algorithm for 3d binary morphological transformations with 3d structuring elements for arbitrary size and shape\". IEEE Transactions on Image Processing. Vol. 9. No. 3. 2000. pp. 283-286.\n\nGray scale images ca [...]
+  "itk_module" : "ITKBinaryMathematicalMorphology",
+  "itk_group" : "BinaryMathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/BinaryFillholeImageFilter.json b/Code/BasicFilters/json/BinaryFillholeImageFilter.json
new file mode 100644
index 0000000..88105e6
--- /dev/null
+++ b/Code/BasicFilters/json/BinaryFillholeImageFilter.json
@@ -0,0 +1,72 @@
+{
+  "name" : "BinaryFillholeImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "filter_type" : "itk::BinaryFillholeImageFilter<InputImageType>",
+  "members" : [
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn."
+    },
+    {
+      "name" : "ForegroundValue",
+      "type" : "double",
+      "default" : "1.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the value in the image to consider as \"foreground\". Defaults to maximum value of InputPixelType.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the value in the image considered as \"foreground\". Defaults to maximum value of InputPixelType."
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "BinaryFillhole1",
+      "description" : "Test binary fillhole with default not fully connected",
+      "md5hash" : "fc79dc09164291c76b95aaa066633f67",
+      "settings" : [
+        {
+          "parameter" : "ForegroundValue",
+          "value" : "255"
+        }
+      ],
+      "inputs" : [
+        "Input/BlackDots.png"
+      ]
+    },
+    {
+      "tag" : "BinaryFillhole2",
+      "description" : "Test binary fillhole fully connected",
+      "md5hash" : "96d14091c7466129e61848889b7fe89c",
+      "settings" : [
+        {
+          "parameter" : "FullyConnected",
+          "value" : "true",
+          "python_value" : "True",
+          "R_value" : "TRUE"
+        },
+        {
+          "parameter" : "ForegroundValue",
+          "value" : "255"
+        }
+      ],
+      "inputs" : [
+        "Input/BlackDots.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Remove holes not connected to the boundary of the image.",
+  "detaileddescription" : "BinaryFillholeImageFilter fills holes in a binary image.\n\nGeodesic morphology and the Fillhole algorithm is described in Chapter 6 of Pierre Soille's book \"Morphological Image Analysis:\nPrinciples and Applications\", Second Edition, Springer, 2003.\n\n\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\nThis implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http [...]
+  "itk_module" : "ITKLabelMap",
+  "itk_group" : "LabelMap"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/BinaryGrindPeakImageFilter.json b/Code/BasicFilters/json/BinaryGrindPeakImageFilter.json
new file mode 100644
index 0000000..2927714
--- /dev/null
+++ b/Code/BasicFilters/json/BinaryGrindPeakImageFilter.json
@@ -0,0 +1,82 @@
+{
+  "name" : "BinaryGrindPeakImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "filter_type" : "itk::BinaryGrindPeakImageFilter<InputImageType>",
+  "members" : [
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn."
+    },
+    {
+      "name" : "ForegroundValue",
+      "type" : "double",
+      "default" : "1.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the value in the image to consider as \"foreground\". Defaults to maximum value of InputPixelType.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the value in the image considered as \"foreground\". Defaults to maximum value of InputPixelType."
+    },
+    {
+      "name" : "BackgroundValue",
+      "type" : "double",
+      "default" : "0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the value in eroded part of the image. Defaults to zero",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set the value in eroded part of the image. Defaults to zero"
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "BinaryGrindPeak1",
+      "description" : "Test binary grind peak with default not fully connected",
+      "md5hash" : "5e9804e71397b0edc52bd5bc4f75f64a",
+      "settings" : [
+        {
+          "parameter" : "ForegroundValue",
+          "value" : "255"
+        }
+      ],
+      "inputs" : [
+        "Input/WhiteDots.png"
+      ]
+    },
+    {
+      "tag" : "BinaryGrindPeak2",
+      "description" : "Test binary grind peak fully connected",
+      "md5hash" : "57c1ca7489d2ce0be262087e035f4c9e",
+      "settings" : [
+        {
+          "parameter" : "FullyConnected",
+          "value" : "true",
+          "python_value" : "True",
+          "R_value" : "TRUE"
+        },
+        {
+          "parameter" : "ForegroundValue",
+          "value" : "255"
+        }
+      ],
+      "inputs" : [
+        "Input/WhiteDots.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Remove the objects not connected to the boundary of the image.",
+  "detaileddescription" : "BinaryGrindPeakImageFilter ginds peaks in a grayscale image.\n\nGeodesic morphology and the grind peak algorithm is described in Chapter 6 of Pierre Soille's book \"Morphological Image Analysis:\nPrinciples and Applications\", Second Edition, Springer, 2003.\n\n\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\nThis implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 o [...]
+  "itk_module" : "ITKLabelMap",
+  "itk_group" : "LabelMap"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/BinaryImageToLabelMapFilter.json b/Code/BasicFilters/json/BinaryImageToLabelMapFilter.json
new file mode 100644
index 0000000..fb0a82a
--- /dev/null
+++ b/Code/BasicFilters/json/BinaryImageToLabelMapFilter.json
@@ -0,0 +1,80 @@
+{
+  "name" : "BinaryImageToLabelMapFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Docs",
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "filter_type" : "itk::BinaryImageToLabelMapFilter<InputImageType, itk::LabelMap<  itk::LabelObject< uint32_t, InputImageType::ImageDimension > > >",
+  "members" : [
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn."
+    },
+    {
+      "name" : "InputForegroundValue",
+      "type" : "double",
+      "default" : "1.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value to be consider \"foreground\" in the input image. Defaults to NumericTraits<InputPixelType>::max() .",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value to be consider \"foreground\" in the input image. Defaults to NumericTraits<InputPixelType>::max() ."
+    },
+    {
+      "name" : "OutputBackgroundValue",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value used as \"background\" in the output image. Defaults to NumericTraits<OutputPixelType>::NonpositiveMin() .",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value used as \"background\" in the output image. Defaults to NumericTraits<OutputPixelType>::NonpositiveMin() ."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "white_dots",
+      "description" : "with foreground some white dots",
+      "md5hash" : "548f5184428db10d93e3bf377dee5253",
+      "settings" : [
+        {
+          "parameter" : "InputForegroundValue",
+          "value" : "255"
+        }
+      ],
+      "inputs" : [
+        "Input/WhiteDots.png"
+      ]
+    },
+    {
+      "tag" : "white_dots_full",
+      "description" : "with foreground some white dots",
+      "md5hash" : "e40b7cdfc1b34ae2e6b13660d626cc29",
+      "settings" : [
+        {
+          "parameter" : "InputForegroundValue",
+          "value" : "255"
+        },
+        {
+          "parameter" : "FullyConnected",
+          "value" : "true",
+          "python_value" : "True",
+          "R_value" : "TRUE"
+        }
+      ],
+      "inputs" : [
+        "Input/WhiteDots.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Label the connected components in a binary image and produce a collection of label objects.",
+  "detaileddescription" : "BinaryImageToLabelMapFilter labels the objects in a binary image. Each distinct object is assigned a unique label. The final object labels start with 1 and are consecutive. Objects that are reached earlier by a raster order scan have a lower label.\n\nThe GetOutput() function of this class returns an itk::LabelMap .\n\nThis implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publicati [...]
+  "itk_module" : "ITKLabelMap",
+  "itk_group" : "LabelMap"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/BinaryMagnitudeImageFilter.json b/Code/BasicFilters/json/BinaryMagnitudeImageFilter.json
new file mode 100644
index 0000000..df92c52
--- /dev/null
+++ b/Code/BasicFilters/json/BinaryMagnitudeImageFilter.json
@@ -0,0 +1,37 @@
+{
+  "name" : "BinaryMagnitudeImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "2d",
+      "description" : "2D",
+      "settings" : [],
+      "md5hash" : "ac40268d90c25dd631b54024ae84bffe",
+      "inputs" : [
+        "Input/STAPLE1.png",
+        "Input/STAPLE2.png"
+      ]
+    },
+    {
+      "tag" : "3d",
+      "description" : "3D",
+      "settings" : [],
+      "tolerance" : "1e-8",
+      "inputA_cast" : "sitkUInt32",
+      "inputB_cast" : "sitkUInt32",
+      "inputs" : [
+        "Input/RA-Short.nrrd",
+        "Input/RA-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the square root of the sum of squares of corresponding input pixels.",
+  "detaileddescription" : "This filter is templated over the types of the two input images and the type of the output image.\n\nNumeric conversions (castings) are done by the C++ defaults.\n\nThe filter walks over all of the pixels in the two input images, and for each pixel does the following:\n\n\n\\li cast the input 1 pixel value to double \n\n\\li cast the input 2 pixel value to double \n\n\\li compute the sum of squares of the two pixel values \n\n\\li compute the square root of the [...]
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/BinaryMedianImageFilter.json b/Code/BasicFilters/json/BinaryMedianImageFilter.json
new file mode 100644
index 0000000..967a88e
--- /dev/null
+++ b/Code/BasicFilters/json/BinaryMedianImageFilter.json
@@ -0,0 +1,68 @@
+{
+  "name" : "BinaryMedianImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Radius",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 1)",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "doc" : "",
+      "itk_type" : "typename FilterType::InputSizeType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the radius of the neighborhood used to compute the median.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the radius of the neighborhood used to compute the median"
+    },
+    {
+      "name" : "ForegroundValue",
+      "type" : "double",
+      "default" : "1.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the value associated with the Foreground (or the object) on the binary input image and the Background .",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the value associated with the Foreground (or the object) on the binary input image and the Background ."
+    },
+    {
+      "name" : "BackgroundValue",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the value associated with the Foreground (or the object) on the binary input image and the Background .",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the value associated with the Foreground (or the object) on the binary input image and the Background ."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Basic voting",
+      "settings" : [
+        {
+          "parameter" : "Radius",
+          "no_get_method" : 1,
+          "value" : 3
+        },
+        {
+          "parameter" : "ForegroundValue",
+          "value" : "255.0"
+        }
+      ],
+      "md5hash" : "55dd7a167222849c7afb0c5c4f6e096b",
+      "inputs" : [
+        "Input/BlackDots.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Applies a version of the median filter optimized for binary images.",
+  "detaileddescription" : "This filter was contributed by Bjorn Hanch Sollie after identifying that the generic Median filter performed unnecessary operations when the input image is binary.\n\nThis filter computes an image where a given pixel is the median value of the pixels in a neighborhood about the corresponding input pixel. For the case of binary images the median can be obtained by simply counting the neighbors that are foreground.\n\nA median filter is one of the family of nonli [...]
+  "itk_module" : "ITKLabelVoting",
+  "itk_group" : "LabelVoting"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/BinaryMinMaxCurvatureFlowImageFilter.json b/Code/BasicFilters/json/BinaryMinMaxCurvatureFlowImageFilter.json
new file mode 100644
index 0000000..3ef35cd
--- /dev/null
+++ b/Code/BasicFilters/json/BinaryMinMaxCurvatureFlowImageFilter.json
@@ -0,0 +1,70 @@
+{
+  "name" : "BinaryMinMaxCurvatureFlowImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "RealPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "TimeStep",
+      "type" : "double",
+      "default" : 0.05,
+      "doc" : "Time step for PDE solver"
+    },
+    {
+      "name" : "NumberOfIterations",
+      "type" : "uint32_t",
+      "default" : "5u",
+      "doc" : "Number of iterations to run"
+    },
+    {
+      "name" : "StencilRadius",
+      "type" : "int",
+      "default" : 2
+    },
+    {
+      "name" : "Threshold",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the threshold value.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the threshold value."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0.1,
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "longer",
+      "description" : "Change number of iterations and timestep",
+      "settings" : [
+        {
+          "parameter" : "TimeStep",
+          "value" : 0.1
+        },
+        {
+          "parameter" : "NumberOfIterations",
+          "cxx_value" : "10u",
+          "value" : "10"
+        }
+      ],
+      "tolerance" : 0.1,
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Denoise a binary image using min/max curvature flow.",
+  "detaileddescription" : "BinaryMinMaxCurvatureFlowImageFilter implements a curvature driven image denosing algorithm. This filter assumes that the image is essentially binary: consisting of two classes. Iso-brightness contours in the input image are viewed as a level set. The level set is then evolved using a curvature-based speed function:\n\n \\f[ I_t = F_{\\mbox{minmax}} |\\nabla I| \\f] \n\nwhere \\f$ F_{\\mbox{minmax}} = \\min(\\kappa,0) \\f$ if \\f$ \\mbox{Avg}_{\\mbox{stencil}}( [...]
+  "itk_module" : "ITKCurvatureFlow",
+  "itk_group" : "CurvatureFlow"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/BinaryMorphologicalClosingImageFilter.json b/Code/BasicFilters/json/BinaryMorphologicalClosingImageFilter.json
new file mode 100644
index 0000000..7352f41
--- /dev/null
+++ b/Code/BasicFilters/json/BinaryMorphologicalClosingImageFilter.json
@@ -0,0 +1,99 @@
+{
+  "name" : "BinaryMorphologicalClosingImageFilter",
+  "template_code_filename" : "KernelImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "ForegroundValue",
+      "type" : "double",
+      "default" : "1.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the value in the image to consider as \"foreground\". Defaults to maximum value of InputPixelType.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the value in the image considered as \"foreground\". Defaults to maximum value of InputPixelType."
+    },
+    {
+      "name" : "SafeBorder",
+      "type" : "bool",
+      "default" : "true",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "A safe border is added to input image to avoid borders effects and remove it once the closing is done",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "A safe border is added to input image to avoid borders effects and remove it once the closing is done"
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "BinaryMorphologicalClosing",
+      "description" : "Test binary morphological closing",
+      "md5hash" : "095f00a68a84df4396914fa758f34dcc",
+      "settings" : [
+        {
+          "parameter" : "KernelRadius",
+          "no_get_method" : 1,
+          "value" : 1
+        },
+        {
+          "parameter" : "KernelType",
+          "value" : "itk::simple::sitkBall",
+          "lua_value" : "SimpleITK.sitkBall",
+          "python_value" : "SimpleITK.sitkBall",
+          "ruby_value" : "Simpleitk::SitkBall",
+          "java_value" : "KernelEnum.sitkBall",
+          "tcl_value" : "$$sitkBall",
+          "csharp_value" : "KernelEnum.sitkBall",
+          "R_value" : "'sitkBall'"
+        }
+      ],
+      "inputs" : [
+        "Input/STAPLE1.png"
+      ]
+    },
+    {
+      "tag" : "BinaryMorphologicalClosingWithBorder",
+      "description" : "Test binary morphological closing with unsafe boarder",
+      "md5hash" : "506d365dd92db16c2ade264fca46890c",
+      "settings" : [
+        {
+          "parameter" : "KernelRadius",
+          "no_get_method" : 1,
+          "value" : 5
+        },
+        {
+          "parameter" : "SafeBorder",
+          "value" : "false",
+          "python_value" : "False",
+          "R_value" : "FALSE"
+        },
+        {
+          "parameter" : "ForegroundValue",
+          "value" : "255"
+        },
+        {
+          "parameter" : "KernelType",
+          "value" : "itk::simple::sitkBall",
+          "lua_value" : "SimpleITK.sitkBall",
+          "python_value" : "SimpleITK.sitkBall",
+          "ruby_value" : "Simpleitk::SitkBall",
+          "java_value" : "KernelEnum.sitkBall",
+          "tcl_value" : "$$sitkBall",
+          "csharp_value" : "KernelEnum.sitkBall",
+          "R_value" : "'sitkBall'"
+        }
+      ],
+      "inputs" : [
+        "Input/WhiteDots.png"
+      ]
+    }
+  ],
+  "briefdescription" : "binary morphological closing of an image.",
+  "detaileddescription" : "This filter removes small (i.e., smaller than the structuring element) holes and tube like structures in the interior or at the boundaries of the image. The morphological closing of an image \"f\" is defined as: Closing(f) = Erosion(Dilation(f)).\n\nThe structuring element is assumed to be composed of binary values (zero or one). Only elements of the structuring element having values > 0 are candidates for affecting the center pixel.\n\nThis code was contribute [...]
+  "itk_module" : "ITKBinaryMathematicalMorphology",
+  "itk_group" : "BinaryMathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/BinaryMorphologicalOpeningImageFilter.json b/Code/BasicFilters/json/BinaryMorphologicalOpeningImageFilter.json
new file mode 100644
index 0000000..9881645
--- /dev/null
+++ b/Code/BasicFilters/json/BinaryMorphologicalOpeningImageFilter.json
@@ -0,0 +1,67 @@
+{
+  "name" : "BinaryMorphologicalOpeningImageFilter",
+  "template_code_filename" : "KernelImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "BackgroundValue",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the value in eroded part of the image. Defaults to zero",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set the value in eroded part of the image. Defaults to zero"
+    },
+    {
+      "name" : "ForegroundValue",
+      "type" : "double",
+      "default" : "1.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the value in the image to consider as \"foreground\". Defaults to maximum value of PixelType.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the value in the image considered as \"foreground\". Defaults to maximum value of PixelType."
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "BinaryMorphologicalOpening",
+      "description" : "Test binary morphological opening",
+      "md5hash" : "bc97d7cbf9d3779070373f7a28b932a2",
+      "settings" : [
+        {
+          "parameter" : "KernelRadius",
+          "no_get_method" : 1,
+          "value" : 1
+        },
+        {
+          "parameter" : "KernelType",
+          "value" : "itk::simple::sitkBall",
+          "lua_value" : "SimpleITK.sitkBall",
+          "python_value" : "SimpleITK.sitkBall",
+          "ruby_value" : "Simpleitk::SitkBall",
+          "java_value" : "KernelEnum.sitkBall",
+          "tcl_value" : "$$sitkBall",
+          "csharp_value" : "KernelEnum.sitkBall",
+          "R_value" : "'sitkBall'"
+        },
+        {
+          "parameter" : "ForegroundValue",
+          "value" : "255"
+        }
+      ],
+      "inputs" : [
+        "Input/STAPLE1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "binary morphological opening of an image.",
+  "detaileddescription" : "This filter removes small (i.e., smaller than the structuring element) structures in the interior or at the boundaries of the image. The morphological opening of an image \"f\" is defined as: Opening(f) = Dilatation(Erosion(f)).\n\nThe structuring element is assumed to be composed of binary values (zero or one). Only elements of the structuring element having values > 0 are candidates for affecting the center pixel.\n\nThis code was contributed in the Insight J [...]
+  "itk_module" : "ITKBinaryMathematicalMorphology",
+  "itk_group" : "BinaryMathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/BinaryNotImageFilter.json b/Code/BasicFilters/json/BinaryNotImageFilter.json
new file mode 100644
index 0000000..e0cdb8f
--- /dev/null
+++ b/Code/BasicFilters/json/BinaryNotImageFilter.json
@@ -0,0 +1,60 @@
+{
+  "name" : "BinaryNotImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "filter_type" : "itk::BinaryNotImageFilter< InputImageType >",
+  "members" : [
+    {
+      "name" : "ForegroundValue",
+      "type" : "double",
+      "default" : "1.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value in the image considered as \"foreground\". Defaults to maximum value of PixelType.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value in the image considered as \"foreground\". Defaults to maximum value of PixelType."
+    },
+    {
+      "name" : "BackgroundValue",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the value used as \"background\". Defaults to NumericTraits<PixelType>::NonpositiveMin() .",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the value used as \"background\". Defaults to NumericTraits<PixelType>::NonpositiveMin() ."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "md5hash" : "ae5c932ab2e19291dd20c2c4ac382428",
+      "inputs" : [
+        "Input/2th_cthead1.png"
+      ]
+    },
+    {
+      "tag" : "withFG",
+      "description" : "with foreground value",
+      "settings" : [
+        {
+          "parameter" : "ForegroundValue",
+          "value" : "100.0"
+        }
+      ],
+      "md5hash" : "0cea51dbae361d6727688d79f33c27d0",
+      "inputs" : [
+        "Input/2th_cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Implements the BinaryNot logical operator pixel-wise between two images.",
+  "detaileddescription" : "This class is parametrized over the types of the two input images and the type of the output image. Numeric conversions (castings) are done by the C++ defaults.\n\nThe total operation over one pixel will be\n\noutput_pixel = static_cast<PixelType>( input1_pixel != input2_pixel )\n\nWhere \"!=\" is the equality operator in C++.\n\n\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\nThis implementation was t [...]
+  "itk_module" : "ITKLabelMap",
+  "itk_group" : "LabelMap"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/BinaryOpeningByReconstructionImageFilter.json b/Code/BasicFilters/json/BinaryOpeningByReconstructionImageFilter.json
new file mode 100644
index 0000000..4ec8925
--- /dev/null
+++ b/Code/BasicFilters/json/BinaryOpeningByReconstructionImageFilter.json
@@ -0,0 +1,78 @@
+{
+  "name" : "BinaryOpeningByReconstructionImageFilter",
+  "template_code_filename" : "KernelImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "no_output_type" : 1,
+  "members" : [
+    {
+      "name" : "ForegroundValue",
+      "type" : "double",
+      "default" : "1.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the value in the image to consider as \"foreground\". Defaults to maximum value of PixelType.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the value in the image considered as \"foreground\". Defaults to maximum value of PixelType."
+    },
+    {
+      "name" : "BackgroundValue",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the value in eroded part of the image. Defaults to zero",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set the value in eroded part of the image. Defaults to zero"
+    },
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn."
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "BinaryOpeningByReconstruction",
+      "description" : "Test binary closing by reconstruction",
+      "md5hash" : "2dff38c9c5d2f516e7435f3e2291d6c1",
+      "settings" : [
+        {
+          "parameter" : "KernelRadius",
+          "no_get_method" : 1,
+          "value" : 5
+        },
+        {
+          "parameter" : "KernelType",
+          "value" : "itk::simple::sitkBall",
+          "lua_value" : "SimpleITK.sitkBall",
+          "python_value" : "SimpleITK.sitkBall",
+          "ruby_value" : "Simpleitk::SitkBall",
+          "java_value" : "KernelEnum.sitkBall",
+          "tcl_value" : "$$sitkBall",
+          "csharp_value" : "KernelEnum.sitkBall",
+          "R_value" : "'sitkBall'"
+        },
+        {
+          "parameter" : "ForegroundValue",
+          "value" : "200"
+        }
+      ],
+      "inputs" : [
+        "Input/2th_cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "binary morphological closing of an image.",
+  "detaileddescription" : "This filter removes small (i.e., smaller than the structuring element) objects in the image. It is defined as: Opening(f) = ReconstructionByDilatation(Erosion(f)).\n\nThe structuring element is assumed to be composed of binary values (zero or one). Only elements of the structuring element having values > 0 are candidates for affecting the center pixel.\n\n\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\ [...]
+  "itk_module" : "ITKBinaryMathematicalMorphology",
+  "itk_group" : "BinaryMathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/BinaryProjectionImageFilter.json b/Code/BasicFilters/json/BinaryProjectionImageFilter.json
new file mode 100644
index 0000000..3bb7f42
--- /dev/null
+++ b/Code/BasicFilters/json/BinaryProjectionImageFilter.json
@@ -0,0 +1,68 @@
+{
+  "name" : "BinaryProjectionImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "ProjectionDimension",
+      "type" : "unsigned int",
+      "default" : "0u"
+    },
+    {
+      "name" : "ForegroundValue",
+      "type" : "double",
+      "default" : "1.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the value in the image to consider as \"foreground\". Defaults to maximum value of PixelType. Subclasses may alias this to DilateValue or ErodeValue.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the value in the image considered as \"foreground\". Defaults to maximum value of PixelType."
+    },
+    {
+      "name" : "BackgroundValue",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the value used as \"background\". Any pixel value which is not DilateValue is considered background. BackgroundValue is used for defining boundary conditions. Defaults to NumericTraits<PixelType>::NonpositiveMin() .",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the value used as \"background\". Any pixel value which is not DilateValue is considered background. BackgroundValue is used for defining boundary conditions. Defaults to NumericTraits<PixelType>::NonpositiveMin() ."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "run with some defaults",
+      "md5hash" : "3fc3603b27bf51df592190227d6cd6ed",
+      "inputs" : [
+        "Input/2th_cthead1.mha"
+      ]
+    },
+    {
+      "tag" : "another_dimension",
+      "description" : "project in the 2rd dimension",
+      "settings" : [
+        {
+          "parameter" : "ProjectionDimension",
+          "cxx_value" : "1u",
+          "value" : "1"
+        },
+        {
+          "parameter" : "ForegroundValue",
+          "value" : "255"
+        }
+      ],
+      "md5hash" : "827f263ef9fb63d05499d14fcef32f60",
+      "inputs" : [
+        "Input/WhiteDots.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Binary projection.",
+  "detaileddescription" : "This class was contributed to the Insight Journal by Gaetan Lehmann. The original paper can be found at https://hdl.handle.net/1926/164 \n\n\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\n\\see ProjectionImageFilter \n\n\\see MedianProjectionImageFilter \n\n\\see MeanProjectionImageFilter \n\n\\see MeanProjectionImageFilter \n\n\\see MaximumProjectionImageFilter \n\n\\see MinimumProjectionImageFilter \ [...]
+  "itk_module" : "ITKImageStatistics",
+  "itk_group" : "ImageStatistics"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/BinaryReconstructionByDilationImageFilter.json b/Code/BasicFilters/json/BinaryReconstructionByDilationImageFilter.json
new file mode 100644
index 0000000..2693a73
--- /dev/null
+++ b/Code/BasicFilters/json/BinaryReconstructionByDilationImageFilter.json
@@ -0,0 +1,64 @@
+{
+  "name" : "BinaryReconstructionByDilationImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 2,
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "filter_type" : "itk::BinaryReconstructionByDilationImageFilter<InputImageType>",
+  "members" : [
+    {
+      "name" : "BackgroundValue",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Input",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value used as \"background\" in the output image. Defaults to NumericTraits<PixelType>::NonpositiveMin() .",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value used as \"background\" in the output image. Defaults to NumericTraits<PixelType>::NonpositiveMin() ."
+    },
+    {
+      "name" : "ForegroundValue",
+      "type" : "double",
+      "default" : "1.0",
+      "pixeltype" : "Input",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value used as \"foreground\" in the output image. Defaults to NumericTraits<PixelType>::max() .",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value used as \"foreground\" in the output image. Defaults to NumericTraits<PixelType>::max() ."
+    },
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn."
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "basic",
+      "description" : "Test binary reconstruction by dilation",
+      "md5hash" : "3b2130efcaa3b406a89070b22eb70b82",
+      "settings" : [
+        {
+          "parameter" : "ForegroundValue",
+          "value" : "100"
+        }
+      ],
+      "inputs" : [
+        "Input/cthead1-seed.png",
+        "Input/2th_cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "binary reconstruction by dilation of an image",
+  "detaileddescription" : "Reconstruction by dilation operates on a \"marker\" image and a \"mask\" image, and is defined as the dilation of the marker image with respect to the mask image iterated until stability.\n\nGeodesic morphology is described in Chapter 6.2 of Pierre Soille's book \"Morphological Image Analysis: Principles and Applications\", Second Edition, Springer, 2003.\n\n\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France. [...]
+  "itk_module" : "ITKLabelMap",
+  "itk_group" : "LabelMap"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/BinaryReconstructionByErosionImageFilter.json b/Code/BasicFilters/json/BinaryReconstructionByErosionImageFilter.json
new file mode 100644
index 0000000..40de4b6
--- /dev/null
+++ b/Code/BasicFilters/json/BinaryReconstructionByErosionImageFilter.json
@@ -0,0 +1,64 @@
+{
+  "name" : "BinaryReconstructionByErosionImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 2,
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "filter_type" : "itk::BinaryReconstructionByErosionImageFilter<InputImageType>",
+  "members" : [
+    {
+      "name" : "BackgroundValue",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Input",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value used as \"background\" in the output image. Defaults to NumericTraits<PixelType>::NonpositiveMin() .",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value used as \"background\" in the output image. Defaults to NumericTraits<PixelType>::NonpositiveMin() ."
+    },
+    {
+      "name" : "ForegroundValue",
+      "type" : "double",
+      "default" : "1.0",
+      "pixeltype" : "Input",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value used as \"foreground\" in the output image. Defaults to NumericTraits<PixelType>::max() .",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value used as \"foreground\" in the output image. Defaults to NumericTraits<PixelType>::max() ."
+    },
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn."
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "basic",
+      "description" : "Test binary reconstruction by erosion",
+      "md5hash" : "9e52bcf554ad8e9c5391280a18f186f7",
+      "settings" : [
+        {
+          "parameter" : "ForegroundValue",
+          "value" : "100"
+        }
+      ],
+      "inputs" : [
+        "Input/2th_cthead1.png",
+        "Input/cthead1-seed.png"
+      ]
+    }
+  ],
+  "briefdescription" : "binary reconstruction by erosion of an image",
+  "detaileddescription" : "Reconstruction by erosion operates on a \"marker\" image and a \"mask\" image, and is defined as the erosion of the marker image with respect to the mask image iterated until stability.\n\nGeodesic morphology is described in Chapter 6.2 of Pierre Soille's book \"Morphological Image Analysis: Principles and Applications\", Second Edition, Springer, 2003.\n\n\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n [...]
+  "itk_module" : "ITKLabelMap",
+  "itk_group" : "LabelMap"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/BinaryThinningImageFilter.json b/Code/BasicFilters/json/BinaryThinningImageFilter.json
new file mode 100644
index 0000000..f953a0d
--- /dev/null
+++ b/Code/BasicFilters/json/BinaryThinningImageFilter.json
@@ -0,0 +1,25 @@
+{
+  "name" : "BinaryThinningImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "\\todo this filter may not work in 3D\n \\note the output of this filter is still the same as the input type eventhought the output is 0 or 1.",
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "members" : [],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "BinaryThinning",
+      "description" : "Test binnary thinning",
+      "md5hash" : "153ad0b2f3658dee3b14ad93d0cfe550",
+      "settings" : [],
+      "inputs" : [
+        "Input/BlackDots.png"
+      ]
+    }
+  ],
+  "briefdescription" : "This filter computes one-pixel-wide edges of the input image.",
+  "detaileddescription" : "This class is parametrized over the type of the input image and the type of the output image.\n\nThe input is assumed to be a binary image. If the foreground pixels of the input image do not have a value of 1, they are rescaled to 1 internally to simplify the computation.\n\nThe filter will produce a skeleton of the object. The output background values are 0, and the foreground values are 1.\n\nThis filter is a sequential thinning algorithm and known to be comp [...]
+  "itk_module" : "ITKBinaryMathematicalMorphology",
+  "itk_group" : "BinaryMathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/BinaryThresholdImageFilter.json b/Code/BasicFilters/json/BinaryThresholdImageFilter.json
new file mode 100644
index 0000000..a73b68d
--- /dev/null
+++ b/Code/BasicFilters/json/BinaryThresholdImageFilter.json
@@ -0,0 +1,94 @@
+{
+  "name" : "BinaryThresholdImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "Docs",
+  "number_of_inputs" : 1,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_pixel_type" : "uint8_t",
+  "members" : [
+    {
+      "name" : "LowerThreshold",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "UpperThreshold",
+      "type" : "double",
+      "default" : "255.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the thresholds. The default lower threshold is NumericTraits<InputPixelType>::NonpositiveMin() . The default upper threshold is NumericTraits<InputPixelType>::max . An execption is thrown if the lower threshold is greater than the upper threshold.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the threshold values."
+    },
+    {
+      "name" : "InsideValue",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the \"inside\" pixel value. The default value NumericTraits<OutputPixelType>::max()",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"inside\" pixel value."
+    },
+    {
+      "name" : "OutsideValue",
+      "type" : "uint8_t",
+      "default" : "0u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::ZeroValue() .",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"outside\" pixel value."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "dbd0ea7d6f16bb93e9c688cb0f1bfd85",
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    },
+    {
+      "tag" : "NarrowThreshold",
+      "description" : "Default parameter settings",
+      "settings" : [
+        {
+          "parameter" : "LowerThreshold",
+          "value" : 10
+        },
+        {
+          "parameter" : "UpperThreshold",
+          "value" : 100
+        },
+        {
+          "parameter" : "InsideValue",
+          "value" : 255,
+          "java_value" : "(short) 255"
+        },
+        {
+          "parameter" : "OutsideValue",
+          "value" : 0,
+          "java_value" : "(short) 0"
+        }
+      ],
+      "md5hash" : "fc4ce029c088096a69d033ccc5bc1ae2",
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Binarize an input image by thresholding.",
+  "detaileddescription" : "This filter produces an output image whose pixels are either one of two values ( OutsideValue or InsideValue ), depending on whether the corresponding input image pixels lie between the two thresholds ( LowerThreshold and UpperThreshold ). Values equal to either threshold is considered to be between the thresholds.\n\nMore precisely \\f[ Output(x_i) = \\begin{cases} InsideValue & \\text{if \\f$LowerThreshold \\leq x_i \\leq UpperThreshold\\f$} \\\\ OutsideValue [...]
+  "itk_module" : "ITKThresholding",
+  "itk_group" : "Thresholding"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/BinaryThresholdProjectionImageFilter.json b/Code/BasicFilters/json/BinaryThresholdProjectionImageFilter.json
new file mode 100644
index 0000000..e8c7103
--- /dev/null
+++ b/Code/BasicFilters/json/BinaryThresholdProjectionImageFilter.json
@@ -0,0 +1,84 @@
+{
+  "name" : "BinaryThresholdProjectionImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "\todo this filter should work with VectorImages too.",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_pixel_type" : "uint8_t",
+  "members" : [
+    {
+      "name" : "ProjectionDimension",
+      "type" : "unsigned int",
+      "default" : "0u"
+    },
+    {
+      "name" : "ThresholdValue",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the input value consider as \"threshold\". Defaults to NumericTraits<InputPixelType>::max()",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the input value consider as \"threshold\". Defaults to NumericTraits<InputPixelType>::max()"
+    },
+    {
+      "name" : "ForegroundValue",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the output value used as \"foreground\". Defaults to maximum value of PixelType.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the output value used as \"foreground\". Defaults to maximum value of PixelType."
+    },
+    {
+      "name" : "BackgroundValue",
+      "type" : "uint8_t",
+      "default" : "0u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the output value used as \"background\". Defaults to NumericTraits<PixelType>::NonpositiveMin() .",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the output value used as \"background\". Defaults to NumericTraits<PixelType>::NonpositiveMin() ."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "run with some defaults",
+      "md5hash" : "25e29eca666fc2836841f42fce5f3cc2",
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    },
+    {
+      "tag" : "another_dimension",
+      "description" : "project in the 2rd dimension",
+      "settings" : [
+        {
+          "parameter" : "ThresholdValue",
+          "value" : "28326"
+        },
+        {
+          "parameter" : "ProjectionDimension",
+          "cxx_value" : "2u",
+          "value" : "2"
+        },
+        {
+          "parameter" : "ForegroundValue",
+          "value" : "255",
+          "java_value" : "(short) 255"
+        }
+      ],
+      "md5hash" : "a81279c72a568a62749b2f79692ce15a",
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "BinaryThreshold projection.",
+  "detaileddescription" : "This class was contributed to the Insight Journal by Gaetan Lehmann. the original paper can be found at https://hdl.handle.net/1926/164 \n\n\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\n\\see ProjectionImageFilter \n\n\\see MedianProjectionImageFilter \n\n\\see MeanProjectionImageFilter \n\n\\see MeanProjectionImageFilter \n\n\\see MaximumProjectionImageFilter \n\n\\see MinimumProjectionImageFilter \ [...]
+  "itk_module" : "ITKThresholding",
+  "itk_group" : "Thresholding"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/BinomialBlurImageFilter.json b/Code/BasicFilters/json/BinomialBlurImageFilter.json
new file mode 100644
index 0000000..789a244
--- /dev/null
+++ b/Code/BasicFilters/json/BinomialBlurImageFilter.json
@@ -0,0 +1,36 @@
+{
+  "name" : "BinomialBlurImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Repetitions",
+      "type" : "unsigned int",
+      "default" : "1u",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Get and set the number of times to repeat the filter.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get and set the number of times to repeat the filter."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Test BinomialBlurImageFilter with default parametrs",
+      "md5hash" : "ccd2e6e83817056f586e37f59e43bfff",
+      "settings" : [],
+      "inputs" : [
+        "Input/VM1111Shrink-RGBFloat.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Performs a separable blur on each dimension of an image.",
+  "detaileddescription" : "The binomial blur consists of a nearest neighbor average along each image dimension. The net result after n-iterations approaches convultion with a gaussian.\n\n\\par Wiki Examples:\n\n\\li All Examples \n\n\\li Blur an image",
+  "itk_module" : "ITKSmoothing",
+  "itk_group" : "Smoothing"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/BitwiseNotImageFilter.json b/Code/BasicFilters/json/BitwiseNotImageFilter.json
new file mode 100644
index 0000000..8a7acf5
--- /dev/null
+++ b/Code/BasicFilters/json/BitwiseNotImageFilter.json
@@ -0,0 +1,29 @@
+{
+  "name" : "BitwiseNotImageFilter",
+  "itk_name" : "UnaryFunctorImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "include_files" : [
+    "itkBitwiseNotFunctor.h"
+  ],
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "filter_type" : "itk::UnaryFunctorImageFilter< InputImageType, InputImageType, Functor::BitwiseNot< typename InputImageType::PixelType,typename OutputImageType::PixelType> >",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "md5hash" : "d63a9f2add11cd86fc3c5cb297222107",
+      "inputs" : [
+        "Input/2th_cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Implements pixel-wise generic operation on one image.",
+  "detaileddescription" : "This class is parameterized over the type of the input image and the type of the output image. It is also parameterized by the operation to be applied, using a Functor style.\n\nUnaryFunctorImageFilter allows the output dimension of the filter to be larger than the input dimension. Thus subclasses of the UnaryFunctorImageFilter (like the CastImageFilter ) can be used to promote a 2D image to a 3D image, etc.\n\n\\see BinaryFunctorImageFilter TernaryFunctorImage [...]
+  "itk_module" : "ITKCommon",
+  "itk_group" : "Common"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/BlackTopHatImageFilter.json b/Code/BasicFilters/json/BlackTopHatImageFilter.json
new file mode 100644
index 0000000..48e21de
--- /dev/null
+++ b/Code/BasicFilters/json/BlackTopHatImageFilter.json
@@ -0,0 +1,53 @@
+{
+  "name" : "BlackTopHatImageFilter",
+  "template_code_filename" : "KernelImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "SafeBorder",
+      "type" : "bool",
+      "default" : "true",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "A safe border is added to input image to avoid borders effects and remove it once the closing is done",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "A safe border is added to input image to avoid borders effects and remove it once the closing is done"
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "BlackTopHapErode",
+      "description" : "Test black top hat",
+      "md5hash" : "445a5da6221f6d976d169b70c5538614",
+      "settings" : [
+        {
+          "parameter" : "KernelRadius",
+          "no_get_method" : 1,
+          "value" : 1
+        },
+        {
+          "parameter" : "KernelType",
+          "value" : "itk::simple::sitkBall",
+          "lua_value" : "SimpleITK.sitkBall",
+          "python_value" : "SimpleITK.sitkBall",
+          "ruby_value" : "Simpleitk::SitkBall",
+          "java_value" : "KernelEnum.sitkBall",
+          "tcl_value" : "$$sitkBall",
+          "csharp_value" : "KernelEnum.sitkBall",
+          "R_value" : "'sitkBall'"
+        }
+      ],
+      "inputs" : [
+        "Input/STAPLE1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Black top hat extracts local minima that are smaller than the structuring element.",
+  "detaileddescription" : "Black top hat extracts local minima that are smaller than the structuring element. It subtracts the background from the input image. The output of the filter transforms the black valleys into white peaks.\n\nTop-hats are described in Chapter 4.5 of Pierre Soille's book \"Morphological Image Analysis: Principles and Applications\", Second Edition, Springer, 2003.\n\n\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas,  [...]
+  "itk_module" : "ITKMathematicalMorphology",
+  "itk_group" : "MathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/BoundedReciprocalImageFilter.json b/Code/BasicFilters/json/BoundedReciprocalImageFilter.json
new file mode 100644
index 0000000..90914ef
--- /dev/null
+++ b/Code/BasicFilters/json/BoundedReciprocalImageFilter.json
@@ -0,0 +1,35 @@
+{
+  "name" : "BoundedReciprocalImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_pixel_type" : "typename itk::NumericTraits<typename InputImageType::PixelType>::RealType",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0.01,
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "vector",
+      "description" : "Simply run with default settings for a vector image",
+      "settings" : [],
+      "tolerance" : "0.0001",
+      "inputs" : [
+        "Input/VM1111Shrink-RGB.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes 1/(1+x) for each pixel in the image.",
+  "detaileddescription" : "The filter expect both the input and output images to have the same number of dimensions, and both of a scalar image type.",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/BoxMeanImageFilter.json b/Code/BasicFilters/json/BoxMeanImageFilter.json
new file mode 100644
index 0000000..7b16e89
--- /dev/null
+++ b/Code/BasicFilters/json/BoxMeanImageFilter.json
@@ -0,0 +1,74 @@
+{
+  "name" : "BoxMeanImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Radius",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 1)",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "doc" : "",
+      "itk_type" : "typename FilterType::RadiusType"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Test MeanImageFilter with default parametrs",
+      "md5hash" : "dc71425a437766b9566cb13bd4139a91",
+      "settings" : [],
+      "inputs" : [
+        "Input/VM1111Shrink-RGBFloat.nrrd"
+      ]
+    },
+    {
+      "tag" : "by23",
+      "description" : "Test by 23",
+      "md5hash" : "23c2a0d1f7816366aa55b90c0b86f6e6",
+      "settings" : [
+        {
+          "parameter" : "Radius",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            2,
+            3
+          ]
+        }
+      ],
+      "inputs" : [
+        "Input/VM1111Shrink-RGB.png"
+      ]
+    },
+    {
+      "tag" : "by333",
+      "description" : "Test by 333",
+      "md5hash" : "c6a8c4774f59ac92eefcaea18bd0f514",
+      "settings" : [
+        {
+          "parameter" : "Radius",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            3,
+            3,
+            3
+          ]
+        }
+      ],
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Implements a fast rectangular mean filter using the accumulator approach.",
+  "detaileddescription" : "This code was contributed in the Insight Journal paper: \"Efficient implementation of kernel filtering\" by Beare R., Lehmann G https://hdl.handle.net/1926/555 http://www.insight-journal.org/browse/publication/160 \n\n\\author Richard Beare",
+  "itk_module" : "ITKSmoothing",
+  "itk_group" : "Smoothing"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/BoxSigmaImageFilter.json b/Code/BasicFilters/json/BoxSigmaImageFilter.json
new file mode 100644
index 0000000..5f941f4
--- /dev/null
+++ b/Code/BasicFilters/json/BoxSigmaImageFilter.json
@@ -0,0 +1,74 @@
+{
+  "name" : "BoxSigmaImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Radius",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 1)",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "doc" : "",
+      "itk_type" : "typename FilterType::RadiusType"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Test MeanImageFilter with default parametrs",
+      "md5hash" : "500013c78f4508052b63c072e261b329",
+      "settings" : [],
+      "inputs" : [
+        "Input/VM1111Shrink-RGBFloat.nrrd"
+      ]
+    },
+    {
+      "tag" : "by23",
+      "description" : "Test by 23",
+      "md5hash" : "e0a8cfe245c47b73047c1c5292beb719",
+      "settings" : [
+        {
+          "parameter" : "Radius",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            2,
+            3
+          ]
+        }
+      ],
+      "inputs" : [
+        "Input/VM1111Shrink-RGB.png"
+      ]
+    },
+    {
+      "tag" : "by333",
+      "description" : "Test by 333",
+      "md5hash" : "aa7be2354551dd5310c9d75ac026400d",
+      "settings" : [
+        {
+          "parameter" : "Radius",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            3,
+            3,
+            3
+          ]
+        }
+      ],
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Implements a fast rectangular sigma filter using the accumulator approach.",
+  "detaileddescription" : "This code was contributed in the Insight Journal paper: \"Efficient implementation of kernel filtering\" by Beare R., Lehmann G https://hdl.handle.net/1926/555 http://www.insight-journal.org/browse/publication/160 \n\n\\author Gaetan Lehmann",
+  "itk_module" : "ITKSmoothing",
+  "itk_group" : "Smoothing"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/CannyEdgeDetectionImageFilter.json b/Code/BasicFilters/json/CannyEdgeDetectionImageFilter.json
new file mode 100644
index 0000000..7a3e3e4
--- /dev/null
+++ b/Code/BasicFilters/json/CannyEdgeDetectionImageFilter.json
@@ -0,0 +1,101 @@
+{
+  "name" : "CannyEdgeDetectionImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "RealPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "LowerThreshold",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "UpperThreshold",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "Set the Threshold value for detected edges.",
+      "detaileddescriptionSet" : "TODO: Document in the ITKv4 migration guide that the SetThreshold member function was removed from the CannyEdgeDetectionImageFilter , and that both UpperThreshold and LowerThreshold need to be set. To get the same results as with the SetThreshold method change \"myfilter->SetThrehsold\" to \"myfilter->SetUpperThreshold\", and add \"myfilter->SetLowerThreshold(GetUpperThreshold()/2.0)\"",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "Variance",
+      "type" : "double",
+      "default" : "std::vector<double>(3, 0.0)",
+      "doc" : "",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "itk_type" : "typename FilterType::ArrayType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the variance of the Gaussian smoothing filter.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the variance of the Gaussian smoothing filter."
+    },
+    {
+      "name" : "MaximumError",
+      "type" : "double",
+      "default" : "std::vector<double>(3, 0.01)",
+      "doc" : "",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "itk_type" : "typename FilterType::ArrayType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the MaximumError parameter used by the Gaussian smoothing filter in this algorithm",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the maximum error of the Gaussian smoothing kernel in each dimensional direction."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "md5hash" : "bbeb419fbdf05cbd93c7905b235b52ae",
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "forresults",
+      "description" : "make a good output image by setting paramters",
+      "settings" : [
+        {
+          "parameter" : "LowerThreshold",
+          "type" : "double",
+          "value" : 500
+        },
+        {
+          "parameter" : "UpperThreshold",
+          "type" : "double",
+          "value" : 3000
+        },
+        {
+          "parameter" : "Variance",
+          "type" : "double",
+          "dim_vec" : 1,
+          "value" : [
+            1.0,
+            1.0,
+            1.0
+          ]
+        }
+      ],
+      "md5hash" : "a9f58b23223cdbcd5baead53dd8f75d8",
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "This filter is an implementation of a Canny edge detector for scalar-valued images.",
+  "detaileddescription" : "Based on John Canny's paper \"A Computational Approach\nto Edge Detection\"(IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. PAMI-8, No.6, November 1986), there are four major steps used in the edge-detection scheme: (1) Smooth the input image with Gaussian filter. (2) Calculate the second directional derivatives of the smoothed image. (3) Non-Maximum Suppression: the zero-crossings of 2nd derivative are found, and the sign of third derivati [...]
+  "itk_module" : "ITKImageFeature",
+  "itk_group" : "ImageFeature"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ChangeLabelImageFilter.json b/Code/BasicFilters/json/ChangeLabelImageFilter.json
new file mode 100644
index 0000000..48af34f
--- /dev/null
+++ b/Code/BasicFilters/json/ChangeLabelImageFilter.json
@@ -0,0 +1,34 @@
+{
+  "name" : "ChangeLabelImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Docs",
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "ChangeMap",
+      "type" : "std::map<double,double>",
+      "default" : "std::map<double,double>()",
+      "no_print" : 1,
+      "custom_itk_cast" : "typename FilterType::ChangeMapType cmap; for( std::map<double,double>::const_iterator i = m_ChangeMap.begin(); i != m_ChangeMap.end(); ++i ) { cmap[static_cast<typename FilterType::InputPixelType>(i->first)] = static_cast<typename FilterType::OutputPixelType>(i->second); } filter->SetChangeMap( cmap );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the entire change map"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Just running the filter with no change map.",
+      "settings" : [],
+      "md5hash" : "ce4de7d926155a70b234bd05181a5c3e",
+      "inputs" : [
+        "Input/2th_cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Change Sets of Labels.",
+  "detaileddescription" : "This filter produces an output image whose pixels are either copied from the input if they are not being changed or are rewritten based on the change parameters\n\nThis filter is templated over the input image type and the output image type.\n\nThe filter expect both images to have the same number of dimensions.\n\n\\author Tim Kelliher. GE Research, Niskayuna, NY. \n\n\\note This work was supported by a grant from DARPA, executed by the U.S. Army Medical Resea [...]
+  "itk_module" : "ITKImageLabel",
+  "itk_group" : "ImageLabel"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ChangeLabelLabelMapFilter.json b/Code/BasicFilters/json/ChangeLabelLabelMapFilter.json
new file mode 100644
index 0000000..23d13d2
--- /dev/null
+++ b/Code/BasicFilters/json/ChangeLabelLabelMapFilter.json
@@ -0,0 +1,39 @@
+{
+  "name" : "ChangeLabelLabelMapFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Docs",
+  "pixel_types" : "LabelPixelIDTypeList",
+  "filter_type" : "itk::ChangeLabelLabelMapFilter<InputImageType>",
+  "custom_set_input" : "filter->SetInput(image1);\n  filter->InPlaceOff();",
+  "members" : [
+    {
+      "name" : "ChangeMap",
+      "type" : "std::map<double,double>",
+      "default" : "std::map<double,double>()",
+      "no_print" : 1,
+      "custom_itk_cast" : "typename FilterType::ChangeMapType cmap; for( std::map<double,double>::const_iterator i = m_ChangeMap.begin(); i != m_ChangeMap.end(); ++i ) { cmap[static_cast<typename FilterType::PixelType>(i->first)] = static_cast<typename FilterType::PixelType>(i->second); } filter->SetChangeMap( cmap );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Just running the filter with no change map.",
+      "settings" : [],
+      "md5hash" : "ce4de7d926155a70b234bd05181a5c3e",
+      "inputA_cast" : "sitkLabelUInt8",
+      "inputs" : [
+        "Input/2th_cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Replace the label Ids of selected LabelObjects with new label Ids.",
+  "detaileddescription" : "This filter takes as input a label map and a list of pairs of Label Ids, to produce as output a new label map where the label Ids have been replaced according to the pairs in the list.\n\nThis implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176 \n\n\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\n\\see ShapeLab [...]
+  "itk_module" : "ITKLabelMap",
+  "itk_group" : "LabelMap"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/CheckerBoardImageFilter.json b/Code/BasicFilters/json/CheckerBoardImageFilter.json
new file mode 100644
index 0000000..a17f121
--- /dev/null
+++ b/Code/BasicFilters/json/CheckerBoardImageFilter.json
@@ -0,0 +1,59 @@
+{
+  "name" : "CheckerBoardImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "filter_type" : "itk::CheckerBoardImageFilter<InputImageType>",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "NonLabelPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "CheckerPattern",
+      "type" : "uint32_t",
+      "default" : "std::vector<uint32_t>(3, 4)",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "itk_type" : "typename FilterType::PatternArrayType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the checker pattern array, i.e. the number of checker boxes per image dimension.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the checker pattern array, i.e. the number of checker boxes per image dimension."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "checker board with default parameters",
+      "settings" : [],
+      "md5hash" : "f84fcf68e702d715a4de52821cfa0f5e",
+      "inputs" : [
+        "Input/BlackDots.png",
+        "Input/WhiteDots.png"
+      ]
+    },
+    {
+      "tag" : "2d_with_pattern",
+      "description" : "checker board with pattern",
+      "settings" : [
+        {
+          "parameter" : "CheckerPattern",
+          "type" : "uint32_t",
+          "dim_vec" : 1,
+          "value" : [
+            20,
+            4
+          ]
+        }
+      ],
+      "md5hash" : "379bd66a18b7ae029c101ebdcb20a8b3",
+      "inputs" : [
+        "Input/BlackDots.png",
+        "Input/WhiteDots.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Combines two images in a checkerboard pattern.",
+  "detaileddescription" : "CheckerBoardImageFilter takes two input images that must have the same dimension, size, origin and spacing and produces an output image of the same size by combinining the pixels from the two input images in a checkerboard pattern. This filter is commonly used for visually comparing two images, in particular for evaluating the results of an image registration process.\n\nThis filter is implemented as a multithreaded filter. It provides a ThreadedGenerateData()  [...]
+  "itk_module" : "ITKImageCompare",
+  "itk_group" : "ImageCompare"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ClampImageFilter.json b/Code/BasicFilters/json/ClampImageFilter.json
new file mode 100644
index 0000000..a99ac0b
--- /dev/null
+++ b/Code/BasicFilters/json/ClampImageFilter.json
@@ -0,0 +1,118 @@
+{
+  "name" : "ClampImageFilter",
+  "template_code_filename" : "DualImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "",
+  "number_of_inputs" : 1,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "pixel_types2" : "BasicPixelIDTypeList",
+  "custom_type2" : "const PixelIDValueEnum type2 = m_OutputPixelType;",
+  "output_image_type" : "InputImageType2",
+  "filter_type" : "itk::ClampImageFilter<InputImageType,OutputImageType>",
+  "members" : [
+    {
+      "name" : "OutputPixelType",
+      "type" : "PixelIDValueEnum",
+      "default" : "itk::simple::sitkFloat32",
+      "custom_itk_cast" : ""
+    },
+    {
+      "name" : "LowerBound",
+      "type" : "double",
+      "default" : "-std::numeric_limits<double>::max()",
+      "pixeltype" : "Output",
+      "custom_itk_cast" : "typename OutputImageType::PixelType lower = itk::NumericTraits<typename OutputImageType::PixelType>::NonpositiveMin();\n  if ( lower <  this->m_LowerBound ) lower = static_cast<typename OutputImageType::PixelType>(this->m_LowerBound);",
+      "briefdescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "UpperBound",
+      "type" : "double",
+      "default" : "std::numeric_limits<double>::max()",
+      "pixeltype" : "Output",
+      "custom_itk_cast" : "typename OutputImageType::PixelType upper = itk::NumericTraits<typename OutputImageType::PixelType>::max();\n  if ( upper >  this->m_UpperBound ) upper = static_cast<typename OutputImageType::PixelType>(this->m_UpperBound);\n  filter->SetBounds(lower,upper);",
+      "briefdescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "3d",
+      "description" : "3D short to uint8",
+      "md5hash" : "ef10c1f04b076750f91774505c5b4161",
+      "settings" : [
+        {
+          "parameter" : "OutputPixelType",
+          "value" : "itk::simple::sitkUInt8",
+          "lua_value" : "SimpleITK.sitkUInt8",
+          "python_value" : "SimpleITK.sitkUInt8",
+          "ruby_value" : "Simpleitk::SitkUInt8",
+          "java_value" : "PixelIDValueEnum.sitkUInt8",
+          "tcl_value" : "$$sitkUInt8",
+          "csharp_value" : "PixelIDValueEnum.sitkUInt8",
+          "R_value" : "'sitkUInt8'"
+        }
+      ],
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    },
+    {
+      "tag" : "3d_float",
+      "description" : "3D float to short",
+      "md5hash" : "22cdc0af7d51934a744b9c4fd4748cd1",
+      "settings" : [
+        {
+          "parameter" : "OutputPixelType",
+          "value" : "itk::simple::sitkInt16",
+          "lua_value" : "SimpleITK.sitkInt16",
+          "python_value" : "SimpleITK.sitkInt16",
+          "ruby_value" : "Simpleitk::SitkInt16",
+          "java_value" : "PixelIDValueEnum.sitkInt16",
+          "tcl_value" : "$$sitkInt16",
+          "csharp_value" : "PixelIDValueEnum.sitkInt16",
+          "R_value" : "'sitkInt16'"
+        }
+      ],
+      "inputs" : [
+        "Input/RA-Slice-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "double",
+      "description" : "ramp to clampe double",
+      "tolerance" : 1e-06,
+      "settings" : [
+        {
+          "parameter" : "OutputPixelType",
+          "value" : "itk::simple::sitkFloat64",
+          "lua_value" : "SimpleITK.sitkFloat64",
+          "python_value" : "SimpleITK.sitkFloat64",
+          "ruby_value" : "Simpleitk::SitkFloat64",
+          "java_value" : "PixelIDValueEnum.sitkFloat64",
+          "tcl_value" : "$$sitkFloat64",
+          "csharp_value" : "PixelIDValueEnum.sitkFloat64",
+          "R_value" : "'sitkFloat64'"
+        },
+        {
+          "parameter" : "LowerBound",
+          "value" : 0.25
+        },
+        {
+          "parameter" : "UpperBound",
+          "value" : 0.75
+        }
+      ],
+      "inputs" : [
+        "Input/Ramp-One-Zero-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Casts input pixels to output pixel type and clamps the output pixel values to a specified range.",
+  "detaileddescription" : "Default range corresponds to the range supported by the pixel type of the output image.\n\nThis filter is templated over the input image type and the output image type.\n\n\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\n\\see UnaryFunctorImageFilter \n\n\\see CastImageFilter \n\n\\par Wiki Examples:\n\n\\li All Examples \n\n\\li Cast an image from one type to another but clamp to the output value range",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ClosingByReconstructionImageFilter.json b/Code/BasicFilters/json/ClosingByReconstructionImageFilter.json
new file mode 100644
index 0000000..1c1775f
--- /dev/null
+++ b/Code/BasicFilters/json/ClosingByReconstructionImageFilter.json
@@ -0,0 +1,63 @@
+{
+  "name" : "ClosingByReconstructionImageFilter",
+  "template_code_filename" : "KernelImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn."
+    },
+    {
+      "name" : "PreserveIntensities",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the original intensities of the image retained for those pixels unaffected by the opening by reconstrcution. If Off, the output pixel contrast will be reduced.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the original intensities of the image retained for those pixels unaffected by the opening by reconstrcution. If Off, the output pixel contrast will be reduced."
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "ClosingByReconstruction",
+      "description" : "Test grayscale closing by reconstruction",
+      "md5hash" : "095f00a68a84df4396914fa758f34dcc",
+      "settings" : [
+        {
+          "parameter" : "KernelRadius",
+          "no_get_method" : 1,
+          "value" : 1
+        },
+        {
+          "parameter" : "KernelType",
+          "value" : "itk::simple::sitkBall",
+          "lua_value" : "SimpleITK.sitkBall",
+          "python_value" : "SimpleITK.sitkBall",
+          "ruby_value" : "Simpleitk::SitkBall",
+          "java_value" : "KernelEnum.sitkBall",
+          "tcl_value" : "$$sitkBall",
+          "csharp_value" : "KernelEnum.sitkBall",
+          "R_value" : "'sitkBall'"
+        }
+      ],
+      "inputs" : [
+        "Input/STAPLE1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Closing by reconstruction of an image.",
+  "detaileddescription" : "This filter is similar to the morphological closing, but contrary to the mophological closing, the closing by reconstruction preserves the shape of the components. The closing by reconstruction of an image \"f\" is defined as:\n\nClosingByReconstruction(f) = ErosionByReconstruction(f, Dilation(f)).\n\nClosing by reconstruction not only preserves structures preserved by the dilation, but also levels raises the contrast of the darkest regions. If PreserveIntensit [...]
+  "itk_module" : "ITKMathematicalMorphology",
+  "itk_group" : "MathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/CollidingFrontsImageFilter.json b/Code/BasicFilters/json/CollidingFrontsImageFilter.json
new file mode 100644
index 0000000..ba8fc22
--- /dev/null
+++ b/Code/BasicFilters/json/CollidingFrontsImageFilter.json
@@ -0,0 +1,106 @@
+{
+  "name" : "CollidingFrontsImageFilter",
+  "itk_name" : "CollidingFrontsImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "output_pixel_type" : "float",
+  "doc" : "Docs",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "SeedPoints1",
+      "type" : "unsigned int",
+      "point_vec" : 1,
+      "default" : "std::vector< std::vector<unsigned int > >()",
+      "custom_itk_cast" : "  typedef typename FilterType::NodeType      NodeType;\n  typedef typename FilterType::NodeContainer NodeContainerType;\n\n  typename NodeContainerType::Pointer seed1Nodes = NodeContainerType::New();\n  seed1Nodes->reserve( m_SeedPoints1.size() );\n\n  for (unsigned int i = 0; i < m_SeedPoints1.size(); ++i)\n    {\n    NodeType node;\n\n    typename NodeType::IndexType index = sitkSTLVectorToITK<typename NodeType::IndexType>( m_SeedPoints1[i] );\n    node.SetIn [...]
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the container of Seed Points representing the first initial front. Seed points are represented as a VectorContainer of LevelSetNodes.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the container of Seed Points representing the first initial front."
+    },
+    {
+      "name" : "SeedPoints2",
+      "type" : "unsigned int",
+      "point_vec" : 1,
+      "default" : "std::vector< std::vector<unsigned int > >()",
+      "custom_itk_cast" : "  typedef typename FilterType::NodeType      NodeType;\n  typedef typename FilterType::NodeContainer NodeContainerType;\n\n  typename NodeContainerType::Pointer seed2Nodes = NodeContainerType::New();\n  seed2Nodes->reserve( m_SeedPoints2.size() );\n\n  for (unsigned int i = 0; i < m_SeedPoints2.size(); ++i)\n    {\n    NodeType node;\n\n    typename NodeType::IndexType index = sitkSTLVectorToITK<typename NodeType::IndexType>( m_SeedPoints2[i] );\n    node.SetIn [...]
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the container of Seed Points representing the second initial front. Seed points are represented as a VectorContainer of LevelSetNodes.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the container of Seed Points representing the second initial front."
+    },
+    {
+      "name" : "ApplyConnectivity",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "NegativeEpsilon",
+      "type" : "double",
+      "default" : "-1e-6",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "StopOnTargets",
+      "type" : "bool",
+      "default" : "false",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "around_dots",
+      "description" : "just a couple points",
+      "tolerance" : 1e-06,
+      "settings" : [
+        {
+          "parameter" : "SeedPoints1",
+          "point_vec" : 1,
+          "type" : "unsigned int",
+          "value" : [
+            "{30,30}"
+          ],
+          "tcl_value" : [
+            "30 30"
+          ],
+          "lua_value" : "{ {30,30} }",
+          "python_value" : "[ [30,30] ]",
+          "ruby_value" : "[ [30,30] ]",
+          "R_value" : "list(c(30,30))"
+        },
+        {
+          "parameter" : "SeedPoints2",
+          "point_vec" : 1,
+          "type" : "unsigned int",
+          "value" : [
+            "{255,105}"
+          ],
+          "tcl_value" : [
+            "255 105"
+          ],
+          "python_value" : "[ [255,105] ]",
+          "ruby_value" : "[ [255,105] ]",
+          "R_value" : "list(c(255,105))"
+        }
+      ],
+      "inputs" : [
+        "Input/BlackDots.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Selects a region of space where two independent fronts run towards each other.",
+  "detaileddescription" : "The filter can be used to quickly segment anatomical structures (e.g. for level set initialization).\n\nThe filter uses two instances of FastMarchingUpwindGradientImageFilter to compute the gradients of arrival times of two wavefronts propagating from two sets of seeds. The input of the filter is used as the speed of the two wavefronts. The output is the dot product between the two gradient vector fields.\n\nThe filter works on the following basic idea. In the  [...]
+  "itk_module" : "ITKLevelSets",
+  "itk_group" : "LevelSets"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ComplexToImaginaryImageFilter.json b/Code/BasicFilters/json/ComplexToImaginaryImageFilter.json
new file mode 100644
index 0000000..b211e0d
--- /dev/null
+++ b/Code/BasicFilters/json/ComplexToImaginaryImageFilter.json
@@ -0,0 +1,25 @@
+{
+  "name" : "ComplexToImaginaryImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "ComplexPixelIDTypeList",
+  "output_pixel_type" : "typename InputImageType::PixelType::value_type",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Test Complex to imaginary",
+      "md5hash" : "3be155009ce0f99e56293002c4ba1b2a",
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-FFT-Complex.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes pixel-wise the imaginary part of a complex image.",
+  "detaileddescription" : "",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ComplexToModulusImageFilter.json b/Code/BasicFilters/json/ComplexToModulusImageFilter.json
new file mode 100644
index 0000000..806bee6
--- /dev/null
+++ b/Code/BasicFilters/json/ComplexToModulusImageFilter.json
@@ -0,0 +1,25 @@
+{
+  "name" : "ComplexToModulusImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "ComplexPixelIDTypeList",
+  "output_pixel_type" : "typename InputImageType::PixelType::value_type",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Test Complex to modulus",
+      "tolerance" : "0.01",
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-FFT-Complex.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes pixel-wise the Modulus of a complex image.",
+  "detaileddescription" : "",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ComplexToPhaseImageFilter.json b/Code/BasicFilters/json/ComplexToPhaseImageFilter.json
new file mode 100644
index 0000000..f42316d
--- /dev/null
+++ b/Code/BasicFilters/json/ComplexToPhaseImageFilter.json
@@ -0,0 +1,25 @@
+{
+  "name" : "ComplexToPhaseImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "ComplexPixelIDTypeList",
+  "output_pixel_type" : "typename InputImageType::PixelType::value_type",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Test Complex to Phase",
+      "tolerance" : "0.0001",
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-FFT-Complex.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes pixel-wise the modulus of a complex image.",
+  "detaileddescription" : "",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ComplexToRealImageFilter.json b/Code/BasicFilters/json/ComplexToRealImageFilter.json
new file mode 100644
index 0000000..7c987b4
--- /dev/null
+++ b/Code/BasicFilters/json/ComplexToRealImageFilter.json
@@ -0,0 +1,25 @@
+{
+  "name" : "ComplexToRealImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "ComplexPixelIDTypeList",
+  "output_pixel_type" : "typename InputImageType::PixelType::value_type",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Test Complex to real",
+      "md5hash" : "3278e36babb23c17fecc09d2e1b3f575",
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-FFT-Complex.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes pixel-wise the real(x) part of a complex image.",
+  "detaileddescription" : "",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ComposeImageFilter.json b/Code/BasicFilters/json/ComposeImageFilter.json
new file mode 100644
index 0000000..1321509
--- /dev/null
+++ b/Code/BasicFilters/json/ComposeImageFilter.json
@@ -0,0 +1,36 @@
+{
+  "name" : "ComposeImageFilter",
+  "template_code_filename" : "MultiInputImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_image_type" : "itk::VectorImage< typename InputImageType::PixelType,  InputImageType::ImageDimension >",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "default_2D",
+      "description" : "default composition on 2D",
+      "settings" : [],
+      "md5hash" : "c0a5d977f0a9d983831dca858d842087",
+      "inputs" : [
+        "Input/STAPLE1.png",
+        "Input/STAPLE2.png"
+      ]
+    },
+    {
+      "tag" : "default_3D",
+      "description" : "default composition on 3D",
+      "settings" : [],
+      "md5hash" : "b7bce6e5d5f5a65f16e14aed20a664e7",
+      "inputs" : [
+        "Input/Ramp-One-Zero-Float.nrrd",
+        "Input/Ramp-Zero-One-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "ComposeImageFilter combine several scalar images into a multicomponent image.",
+  "detaileddescription" : "ComposeImageFilter combine several scalar images into an itk::Image of vector pixel (itk::Vector , itk::RGBPixel , ...), of std::complex pixel, or in an itk::VectorImage .\n\n\\par Inputs and Usage\n\\code\n* filter->SetInput( 0, image0 );\n\n* filter->SetInput( 1, image1 );\n\n* ...\n\n* filter->Update();\n\n* itk::VectorImage< PixelType, dimension >::Pointer = filter->GetOutput();\n\n* \n\n\\endcode\n All input images are expected to have the same template pa [...]
+  "itk_module" : "ITKImageCompose",
+  "itk_group" : "ImageCompose"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ConfidenceConnectedImageFilter.json b/Code/BasicFilters/json/ConfidenceConnectedImageFilter.json
new file mode 100644
index 0000000..98d6bf5
--- /dev/null
+++ b/Code/BasicFilters/json/ConfidenceConnectedImageFilter.json
@@ -0,0 +1,131 @@
+{
+  "name" : "ConfidenceConnectedImageFilter",
+  "template_code_filename" : "RegionGrowingImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "template_type" : "RegionGrowing",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_pixel_type" : "uint8_t",
+  "members" : [
+    {
+      "name" : "NumberOfIterations",
+      "type" : "unsigned int",
+      "default" : "4u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the number of iterations",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the number of iterations"
+    },
+    {
+      "name" : "Multiplier",
+      "type" : "double",
+      "default" : "4.5",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the multiplier to define the confidence interval. Multiplier can be anything greater than zero. A typical value is 2.5",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the multiplier to define the confidence interval. Multiplier can be anything greater than zero. A typical value is 2.5"
+    },
+    {
+      "name" : "InitialNeighborhoodRadius",
+      "type" : "unsigned int",
+      "default" : "1u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Get/Set the radius of the neighborhood over which the statistics are evaluated",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get/Set the radius of the neighborhood over which the statistics are evaluated"
+    },
+    {
+      "name" : "ReplaceValue",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get value to replace thresholded pixels",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get value to replace thresholded pixels"
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "Mean",
+      "type" : "double",
+      "default" : "0.0",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Method to get access to the mean of the pixels accepted in the output region. This method should only be invoked after the filter has been executed using the Update() method."
+    },
+    {
+      "name" : "Variance",
+      "type" : "double",
+      "default" : "0.0",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Method to get access to the variance of the pixels accepted in the output region. This method should only be invoked after the filter has been executed using the Update() method."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "md5hash" : "ec87a838931d4d5d2e94a04644788a55",
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "3d",
+      "description" : "Run with 2d sample settings",
+      "settings" : [
+        {
+          "parameter" : "NumberOfIterations",
+          "cxx_value" : "1u",
+          "value" : "1"
+        },
+        {
+          "parameter" : "SeedList",
+          "dim" : 2,
+          "value" : [
+            "{10,10,10}"
+          ],
+          "tcl_value" : [
+            "10 10 10"
+          ],
+          "python_value" : [
+            "[10,10,10]"
+          ],
+          "ruby_value" : [
+            "[10,10,10]"
+          ],
+          "R_value" : [
+            "c(10,10,10)"
+          ]
+        },
+        {
+          "parameter" : "InitialNeighborhoodRadius",
+          "cxx_value" : "10u",
+          "value" : "10"
+        }
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Mean",
+          "value" : 25902,
+          "tolerance" : 1.0
+        },
+        {
+          "name" : "Variance",
+          "value" : 14123418.0,
+          "tolerance" : 10.0
+        }
+      ],
+      "md5hash" : "e849e1f4740387b3eeedb3a285bc7630",
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Segment pixels with similar statistics using connectivity.",
+  "detaileddescription" : "This filter extracts a connected set of pixels whose pixel intensities are consistent with the pixel statistics of a seed point. The mean and variance across a neighborhood (8-connected, 26-connected, etc.) are calculated for a seed point. Then pixels connected to this seed point whose values are within the confidence interval for the seed point are grouped. The width of the confidence interval is controlled by the \"Multiplier\" variable (the confidence interv [...]
+  "itk_module" : "ITKRegionGrowing",
+  "itk_group" : "RegionGrowing"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ConnectedComponentImageFilter.json b/Code/BasicFilters/json/ConnectedComponentImageFilter.json
new file mode 100644
index 0000000..fbc11ee
--- /dev/null
+++ b/Code/BasicFilters/json/ConnectedComponentImageFilter.json
@@ -0,0 +1,68 @@
+{
+  "name" : "ConnectedComponentImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "output_pixel_type" : "uint32_t",
+  "members" : [
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn."
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "ObjectCount",
+      "type" : "uint32_t",
+      "default" : "0u",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "2D",
+      "settings" : [],
+      "measurements_results" : [
+        {
+          "name" : "ObjectCount",
+          "value" : "23u"
+        }
+      ],
+      "md5hash" : "548f5184428db10d93e3bf377dee5253",
+      "inputs" : [
+        "Input/WhiteDots.png"
+      ]
+    },
+    {
+      "tag" : "fullyconnected",
+      "description" : "2D",
+      "settings" : [
+        {
+          "parameter" : "FullyConnected",
+          "value" : "true",
+          "python_value" : "True",
+          "R_value" : "TRUE"
+        }
+      ],
+      "md5hash" : "e40b7cdfc1b34ae2e6b13660d626cc29",
+      "inputs" : [
+        "Input/WhiteDots.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Label the objects in a binary image.",
+  "detaileddescription" : "ConnectedComponentImageFilter labels the objects in a binary image (non-zero pixels are considered to be objects, zero-valued pixels are considered to be background). Each distinct object is assigned a unique label. The filter experiments with some improvements to the existing implementation, and is based on run length encoding along raster lines. The final object labels start with 1 and are consecutive. Objects that are reached earlier by a raster order scan h [...]
+  "itk_module" : "ITKConnectedComponents",
+  "itk_group" : "ConnectedComponents"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ConnectedThresholdImageFilter.json b/Code/BasicFilters/json/ConnectedThresholdImageFilter.json
new file mode 100644
index 0000000..fdcd534
--- /dev/null
+++ b/Code/BasicFilters/json/ConnectedThresholdImageFilter.json
@@ -0,0 +1,178 @@
+{
+  "name" : "ConnectedThresholdImageFilter",
+  "template_code_filename" : "RegionGrowingImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "template_type" : "RegionGrowing",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_pixel_type" : "uint8_t",
+  "members" : [
+    {
+      "name" : "Lower",
+      "type" : "double",
+      "default" : 0,
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set Upper and Lower Threshold inputs as values",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get Upper and Lower Threshold inputs as values."
+    },
+    {
+      "name" : "Upper",
+      "type" : "double",
+      "default" : 1,
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set Upper and Lower Threshold inputs as values",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get Upper and Lower Threshold inputs as values."
+    },
+    {
+      "name" : "ReplaceValue",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "pixeltype" : "Output",
+      "doc" : "Pixels that lie within Lower and Upper (inclusive)\nwill be replaced with this value. The default is 1.",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get value to replace thresholded pixels. Pixels that lie * within Lower and Upper (inclusive) will be replaced with this value. The default is 1.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get value to replace thresholded pixels. Pixels that lie * within Lower and Upper (inclusive) will be replaced with this value. The default is 1."
+    },
+    {
+      "name" : "Connectivity",
+      "enum" : [
+        "FaceConnectivity",
+        "FullConnectivity"
+      ],
+      "default" : "itk::simple::ConnectedThresholdImageFilter::FaceConnectivity",
+      "itk_type" : "typename FilterType::ConnectivityEnumType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Type of connectivity to use (fully connected OR 4(2D), 6(3D), 2*N(ND) connectivity).",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Type of connectivity to use (fully connected OR 4(2D), 6(3D), 2*N(ND) connectivity)."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "md5hash" : "ec87a838931d4d5d2e94a04644788a55",
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "2d",
+      "description" : "Run with 2d sample settings",
+      "settings" : [
+        {
+          "parameter" : "SeedList",
+          "dim" : 2,
+          "value" : [
+            "{100,100}",
+            "{95,85}"
+          ],
+          "tcl_value" : [
+            "100 100",
+            "95 85"
+          ],
+          "python_value" : [
+            "[100,100]",
+            "[95,85]"
+          ],
+          "ruby_value" : [
+            "[100,100]",
+            "[95,85]"
+          ],
+          "R_value" : [
+            "c(100,100)",
+            "c(95,85)"
+          ]
+        },
+        {
+          "parameter" : "Upper",
+          "value" : 255
+        },
+        {
+          "parameter" : "Lower",
+          "value" : 150
+        },
+        {
+          "parameter" : "ReplaceValue",
+          "value" : "255",
+          "java_value" : "(short) 255",
+          "comment" : "/* JAVA does not implicitly cast ints to short */"
+        }
+      ],
+      "md5hash" : "5119a1fef13206c4a28fcfa0c55b5c13",
+      "inputs" : [
+        "Input/STAPLE1.png"
+      ]
+    },
+    {
+      "tag" : "2dwconnectivity",
+      "description" : "Run with 2d sample settings and connectivity",
+      "settings" : [
+        {
+          "parameter" : "SeedList",
+          "dim" : 2,
+          "value" : [
+            "{100,100}",
+            "{95,85}"
+          ],
+          "tcl_value" : [
+            "100 100",
+            "95 85"
+          ],
+          "python_value" : [
+            "[100,100]",
+            "[95,85]"
+          ],
+          "ruby_value" : [
+            "[100,100]",
+            "[95,85]"
+          ],
+          "R_value" : [
+            "c(100,100)",
+            "c(95,85)"
+          ]
+        },
+        {
+          "parameter" : "Upper",
+          "value" : 255
+        },
+        {
+          "parameter" : "Lower",
+          "value" : 150
+        },
+        {
+          "parameter" : "ReplaceValue",
+          "value" : "255",
+          "java_value" : "(short) 255",
+          "comment" : "/* JAVA does not implicitly cast ints to short */"
+        },
+        {
+          "parameter" : "Connectivity",
+          "value" : "itk::simple::${name}::FullConnectivity",
+          "lua_value" : "SimpleITK.${name}_FullConnectivity",
+          "python_value" : "SimpleITK.${name}.FullConnectivity",
+          "ruby_value" : "Simpleitk::${name}::FullConnectivity",
+          "java_value" : "${name}.ConnectivityType.FullConnectivity",
+          "tcl_value" : "$$${name}_FullConnectivity",
+          "csharp_value" : "${name}.ConnectivityType.FullConnectivity",
+          "R_value" : "'FullConnectivity'"
+        }
+      ],
+      "md5hash" : "5119a1fef13206c4a28fcfa0c55b5c13",
+      "inputs" : [
+        "Input/STAPLE1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Label pixels that are connected to a seed and lie within a range of values.",
+  "detaileddescription" : "ConnectedThresholdImageFilter labels pixels with ReplaceValue that are connected to an initial Seed AND lie within a Lower and Upper threshold range.",
+  "itk_module" : "ITKRegionGrowing",
+  "itk_group" : "RegionGrowing"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ConstantPadImageFilter.json b/Code/BasicFilters/json/ConstantPadImageFilter.json
new file mode 100644
index 0000000..11e7729
--- /dev/null
+++ b/Code/BasicFilters/json/ConstantPadImageFilter.json
@@ -0,0 +1,82 @@
+{
+  "name" : "ConstantPadImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "\todo add SetBound member function to set both properties",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "PadLowerBound",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 0)",
+      "doc" : "\todo what does this itk_type attribute do?",
+      "dim_vec" : 1,
+      "itk_type" : "typename InputImageType::SizeType"
+    },
+    {
+      "name" : "PadUpperBound",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 0)",
+      "doc" : "\todo what does this itk_type attribute do?",
+      "dim_vec" : 1,
+      "itk_type" : "typename InputImageType::SizeType"
+    },
+    {
+      "name" : "Constant",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Output",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the pad value. Default is Zero.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the pad value. Default is Zero."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Test ConstantPad with default parameters",
+      "md5hash" : "a9a0207c759cb8d9e0507414992905d6",
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-Slice-Short.png"
+      ]
+    },
+    {
+      "tag" : "more",
+      "description" : "Test ConstantPad reasonable padding",
+      "md5hash" : "be236e84f51bd6342588548e92b99aaa",
+      "settings" : [
+        {
+          "parameter" : "PadLowerBound",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            5,
+            10,
+            15
+          ]
+        },
+        {
+          "parameter" : "PadUpperBound",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            3,
+            6,
+            9
+          ]
+        }
+      ],
+      "inputs" : [
+        "Input/Ramp-Down-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Increase the image size by padding with a constant value.",
+  "detaileddescription" : "ConstantPadImageFilter changes the output image region. If the output image region is larger than the input image region, the extra pixels are filled in by a constant value. The output image region must be specified.\n\nVisual explanation of padding regions.\n This filter is implemented as a multithreaded filter. It provides a ThreadedGenerateData() method for its implementation.\n\n\\see WrapPadImageFilter , MirrorPadImageFilter \n\n\\par Wiki Examples:\n\n\\l [...]
+  "itk_module" : "ITKImageGrid",
+  "itk_group" : "ImageGrid"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ConvolutionImageFilter.json b/Code/BasicFilters/json/ConvolutionImageFilter.json
new file mode 100644
index 0000000..621c0d0
--- /dev/null
+++ b/Code/BasicFilters/json/ConvolutionImageFilter.json
@@ -0,0 +1,59 @@
+{
+  "name" : "ConvolutionImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "include_files" : [
+    "sitkBoundaryConditions.hxx"
+  ],
+  "custom_set_input" : "filter->SetInput( image1 ); filter->SetKernelImage( image2 );",
+  "members" : [
+    {
+      "name" : "Normalize",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Normalize the output image by the sum of the kernel components\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "BoundaryCondition",
+      "enum" : [
+        "ZERO_PAD",
+        "ZERO_FLUX_NEUMANN_PAD",
+        "PERIODIC_PAD"
+      ],
+      "default" : "itk::simple::ConvolutionImageFilter::ZERO_FLUX_NEUMANN_PAD",
+      "custom_itk_cast" : "nsstd::auto_ptr< ImageBoundaryCondition< InputImageType > > bc( CreateNewBoundaryConditionInstance< Self, FilterType >( m_BoundaryCondition ) ); filter->SetBoundaryCondition( bc.get() );\n"
+    },
+    {
+      "name" : "OutputRegionMode",
+      "enum" : [
+        "SAME",
+        "VALID"
+      ],
+      "default" : "itk::simple::ConvolutionImageFilter::SAME",
+      "custom_itk_cast" : "filter->SetOutputRegionMode( typename FilterType::OutputRegionModeType( int( this->m_OutputRegionMode ) ) );"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Basic convolution with gaussian",
+      "settings" : [],
+      "tolerance" : "0.0001",
+      "inputs" : [
+        "Input/cthead1-Float.mha",
+        "Input/Gaussian_1.5.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Convolve a given image with an arbitrary image kernel.",
+  "detaileddescription" : "This filter operates by centering the flipped kernel at each pixel in the image and computing the inner product between pixel values in the image and pixel values in the kernel. The center of the kernel is defined as \\f$ \\lfloor (2*i+s-1)/2 \\rfloor \\f$ where \\f$i\\f$ is the index and \\f$s\\f$ is the size of the largest possible region of the kernel image. For kernels with odd sizes in all dimensions, this corresponds to the center pixel. If a dimension of [...]
+  "itk_module" : "ITKConvolution",
+  "itk_group" : "Convolution"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/CosImageFilter.json b/Code/BasicFilters/json/CosImageFilter.json
new file mode 100644
index 0000000..6de12b4
--- /dev/null
+++ b/Code/BasicFilters/json/CosImageFilter.json
@@ -0,0 +1,34 @@
+{
+  "name" : "CosImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "float",
+      "description" : "Cosine of an image",
+      "tolerance" : 0.01,
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-Slice-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "short",
+      "description" : "Cosine of an image",
+      "tolerance" : 0.01,
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-Slice-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the cosine of each pixel.",
+  "detaileddescription" : "This filter is templated over the pixel type of the input image and the pixel type of the output image.\n\nThe filter walks over all of the pixels in the input image, and for each pixel does the following:\n\n\n\\li cast the pixel value to double , \n\n\\li apply the std::cos() function to the double value, \n\n\\li cast the double value resulting from std::cos() to the pixel type of the output image, \n\n\\li store the cast value into the output image.\n\n\nTh [...]
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/CropImageFilter.json b/Code/BasicFilters/json/CropImageFilter.json
new file mode 100644
index 0000000..3f05ebe
--- /dev/null
+++ b/Code/BasicFilters/json/CropImageFilter.json
@@ -0,0 +1,77 @@
+{
+  "name" : "CropImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "NonLabelPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "LowerBoundaryCropSize",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 0)",
+      "doc" : "\todo what does this itk_type attribute do?",
+      "dim_vec" : 1,
+      "itk_type" : "typename InputImageType::SizeType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the cropping sizes for the upper and lower boundaries.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the cropping sizes for the upper and lower boundaries."
+    },
+    {
+      "name" : "UpperBoundaryCropSize",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 0)",
+      "doc" : "\todo what does this itk_type attribute do?",
+      "dim_vec" : 1,
+      "itk_type" : "typename InputImageType::SizeType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the cropping sizes for the upper and lower boundaries.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the cropping sizes for the upper and lower boundaries."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "use the defaults which sets a 0 size image",
+      "md5hash" : "3ccccde44efaa3d688a86e94335c1f16",
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "more",
+      "description" : "croping",
+      "md5hash" : "75a7d1202971ddd01497a4d7b61e655e",
+      "settings" : [
+        {
+          "parameter" : "LowerBoundaryCropSize",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            100,
+            100
+          ]
+        },
+        {
+          "parameter" : "UpperBoundaryCropSize",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            167,
+            151
+          ]
+        }
+      ],
+      "inputs" : [
+        "Input/VM1111Shrink-RGB.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Decrease the image size by cropping the image by an itk::Size at both the upper and lower bounds of the largest possible region.",
+  "detaileddescription" : "CropImageFilter changes the image boundary of an image by removing pixels outside the target region. The target region is not specified in advance, but calculated in BeforeThreadedGenerateData() .\n\nThis filter uses ExtractImageFilter to perform the cropping.\n\n\\par Wiki Examples:\n\n\\li All Examples \n\n\\li Crop an image by specifying the region to throw away",
+  "itk_module" : "ITKImageGrid",
+  "itk_group" : "ImageGrid"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/CurvatureAnisotropicDiffusionImageFilter.json b/Code/BasicFilters/json/CurvatureAnisotropicDiffusionImageFilter.json
new file mode 100644
index 0000000..e337c0c
--- /dev/null
+++ b/Code/BasicFilters/json/CurvatureAnisotropicDiffusionImageFilter.json
@@ -0,0 +1,90 @@
+{
+  "name" : "CurvatureAnisotropicDiffusionImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "RealPixelIDTypeList",
+  "include_files" : [
+    "algorithm"
+  ],
+  "members" : [
+    {
+      "name" : "TimeStep",
+      "type" : "double",
+      "default" : 0.0625,
+      "doc" : "Time step for PDE solver"
+    },
+    {
+      "name" : "ConductanceParameter",
+      "type" : "double",
+      "default" : 3.0,
+      "doc" : "Conductance parameter governing sensitivity of the conductance equation."
+    },
+    {
+      "name" : "ConductanceScalingUpdateInterval",
+      "type" : "unsigned int",
+      "default" : "1u",
+      "doc" : "Interval at which a new scaling for the conductance term is calculated."
+    },
+    {
+      "name" : "NumberOfIterations",
+      "type" : "uint32_t",
+      "default" : "5u",
+      "doc" : "Number of iterations to run"
+    }
+  ],
+  "custom_methods" : [
+    {
+      "name" : "EstimateOptimalTimeStep",
+      "doc" : "This method autmatically sets the optimal timestep for an image given its spacing.",
+      "return_type" : "double",
+      "parameters" : [
+        {
+          "type" : "Image &",
+          "var_name" : "inImage"
+        }
+      ],
+      "body" : "std::vector<double> spacing = inImage.GetSpacing();\ndouble minSpacing = *std::min_element( spacing.begin(), spacing.end()); this->m_TimeStep = minSpacing / std::pow(2.0, static_cast< double >( inImage.GetDimension() ) + 1.0 ); return this->m_TimeStep;"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [
+        {
+          "parameter" : "TimeStep",
+          "value" : 0.01
+        }
+      ],
+      "tolerance" : 0.1,
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "longer",
+      "description" : "Change number of iterations and timestep",
+      "settings" : [
+        {
+          "parameter" : "TimeStep",
+          "value" : 0.01
+        },
+        {
+          "parameter" : "NumberOfIterations",
+          "cxx_value" : "10u",
+          "value" : "10"
+        }
+      ],
+      "tolerance" : 0.1,
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "",
+  "detaileddescription" : "This filter performs anisotropic diffusion on a scalar itk::Image using the modified curvature diffusion equation (MCDE) implemented in itkCurvatureNDAnisotropicDiffusionFunction. For detailed information on anisotropic diffusion and the MCDE see itkAnisotropicDiffusionFunction and itkCurvatureNDAnisotropicDiffusionFunction.\n\n\\par Inputs and Outputs\nThe input and output to this filter must be a scalar itk::Image with numerical pixel types (float or double). [...]
+  "itk_module" : "ITKAnisotropicSmoothing",
+  "itk_group" : "AnisotropicSmoothing"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/CurvatureFlowImageFilter.json b/Code/BasicFilters/json/CurvatureFlowImageFilter.json
new file mode 100644
index 0000000..51987d3
--- /dev/null
+++ b/Code/BasicFilters/json/CurvatureFlowImageFilter.json
@@ -0,0 +1,62 @@
+{
+  "name" : "CurvatureFlowImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "output_pixel_type" : "typename itk::NumericTraits<typename InputImageType::PixelType>::RealType",
+  "long" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "TimeStep",
+      "type" : "double",
+      "default" : 0.05,
+      "doc" : "Time step for curvature flow",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the timestep parameter.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the timestep parameter."
+    },
+    {
+      "name" : "NumberOfIterations",
+      "type" : "uint32_t",
+      "default" : "5u",
+      "doc" : "Number of iterations to run"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : "0.0001",
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "longer",
+      "description" : "Change number of iterations and timestep",
+      "settings" : [
+        {
+          "parameter" : "TimeStep",
+          "value" : 0.1
+        },
+        {
+          "parameter" : "NumberOfIterations",
+          "cxx_value" : "10u",
+          "value" : "10"
+        }
+      ],
+      "tolerance" : "0.0001",
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Denoise an image using curvature driven flow.",
+  "detaileddescription" : "CurvatureFlowImageFilter implements a curvature driven image denoising algorithm. Iso-brightness contours in the grayscale input image are viewed as a level set. The level set is then evolved using a curvature-based speed function:\n\n \\f[ I_t = \\kappa |\\nabla I| \\f] where \\f$ \\kappa \\f$ is the curvature.\n\nThe advantage of this approach is that sharp boundaries are preserved with smoothing occurring only within a region. However, it should be noted tha [...]
+  "itk_module" : "ITKCurvatureFlow",
+  "itk_group" : "CurvatureFlow"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/CyclicShiftImageFilter.json b/Code/BasicFilters/json/CyclicShiftImageFilter.json
new file mode 100644
index 0000000..cfaaf36
--- /dev/null
+++ b/Code/BasicFilters/json/CyclicShiftImageFilter.json
@@ -0,0 +1,56 @@
+{
+  "name" : "CyclicShiftImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "NonLabelPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Shift",
+      "type" : "int",
+      "default" : "std::vector<int>(3, 0)",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "itk_type" : "typename FilterType::OffsetType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/get the shift. Shifts may be positive or negative.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/get the shift. Shifts may be positive or negative."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Test CyclicShift with default paramters",
+      "md5hash" : "a9a0207c759cb8d9e0507414992905d6",
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-Slice-Short.png"
+      ]
+    },
+    {
+      "tag" : "more",
+      "description" : "Test shift with some numbers",
+      "md5hash" : "5add8d77a8aec9d1880bcb32f72134fc",
+      "settings" : [
+        {
+          "parameter" : "Shift",
+          "type" : "int",
+          "dim_vec" : 1,
+          "value" : [
+            5,
+            -10,
+            0
+          ]
+        }
+      ],
+      "inputs" : [
+        "Input/Ramp-Down-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Perform a cyclic spatial shift of image intensities on the image grid.",
+  "detaileddescription" : "This filter supports arbitrary cyclic shifts of pixel values on the image grid. If the Shift is set to [xOff, yOff], the value of the pixel at [0, 0] in the input image will be the value of the pixel in the output image at index [xOff modulo xSize, yOff modulo ySize] where xSize and ySize are the sizes of the image in the x and y dimensions, respectively. If a pixel value is moved across a boundary, the pixel value is wrapped around that boundary. For example,  [...]
+  "itk_module" : "ITKImageGrid",
+  "itk_group" : "ImageGrid"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/DanielssonDistanceMapImageFilter.json b/Code/BasicFilters/json/DanielssonDistanceMapImageFilter.json
new file mode 100644
index 0000000..90f317a
--- /dev/null
+++ b/Code/BasicFilters/json/DanielssonDistanceMapImageFilter.json
@@ -0,0 +1,53 @@
+{
+  "name" : "DanielssonDistanceMapImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "Docs",
+  "number_of_inputs" : 1,
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "output_pixel_type" : "float",
+  "members" : [
+    {
+      "name" : "InputIsBinary",
+      "type" : "bool",
+      "default" : "false",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set if the input is binary. If this variable is set, each nonzero pixel in the input image will be given a unique numeric code to be used by the Voronoi partition. If the image is binary but you are not interested in the Voronoi regions of the different nonzero pixels, then you need not set this.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get if the input is binary. See SetInputIsBinary() ."
+    },
+    {
+      "name" : "SquaredDistance",
+      "type" : "bool",
+      "default" : "false",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set if the distance should be squared.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the distance squared."
+    },
+    {
+      "name" : "UseImageSpacing",
+      "type" : "bool",
+      "default" : "false",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set if image spacing should be used in computing distances.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get whether spacing is used."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Default parameter settings",
+      "tolerance" : "0.01",
+      "settings" : [],
+      "inputs" : [
+        "Input/2th_cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "This filter computes the distance map of the input image as an approximation with pixel accuracy to the Euclidean distance.",
+  "detaileddescription" : "TInputImage\n\nInput Image Type \n\n\n\nTOutputImage\n\nOutput Image Type \n\n\n\nTVoronoiImage\n\nVoronoi Image Type. Note the default value is TInputImage.\n\n\n\nThe input is assumed to contain numeric codes defining objects. The filter will produce as output the following images:\n\n\n\\li A Voronoi partition using the same numeric codes as the input. \n\n\\li A distance map with the approximation to the euclidean distance. from a particular pixel to the ne [...]
+  "itk_module" : "ITKDistanceMap",
+  "itk_group" : "DistanceMap"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/DemonsRegistrationFilter.json b/Code/BasicFilters/json/DemonsRegistrationFilter.json
new file mode 100644
index 0000000..488dd15
--- /dev/null
+++ b/Code/BasicFilters/json/DemonsRegistrationFilter.json
@@ -0,0 +1,197 @@
+{
+  "name" : "DemonsRegistrationFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "no_procedure" : "1",
+  "number_of_inputs" : 0,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_image_type" : "itk::Image< Vector<double, TImageType::ImageDimension>, TImageType::ImageDimension >",
+  "filter_type" : "itk::DemonsRegistrationFilter<TImageType, TImageType, OutputImageType>",
+  "include_files" : [
+    "sitkImageConvert.h"
+  ],
+  "inputs" : [
+    {
+      "name" : "FixedImage",
+      "type" : "Image",
+      "custom_itk_cast" : "filter->SetFixedImage( this->CastImageToITK<typename FilterType::FixedImageType>(*inFixedImage) );"
+    },
+    {
+      "name" : "MovingImage",
+      "type" : "Image"
+    },
+    {
+      "name" : "InitialDisplacementField",
+      "type" : "Image",
+      "optional" : true,
+      "custom_itk_cast" : "  typedef itk::VectorImage<double, FilterType::DisplacementFieldType::ImageDimension> VectorImageType;\n      filter->SetInitialDisplacementField( GetImageFromVectorImage(const_cast<VectorImageType*>(CastImageToITK<VectorImageType>(*inInitialDisplacementField).GetPointer()) ) );"
+    }
+  ],
+  "members" : [
+    {
+      "name" : "StandardDeviations",
+      "type" : "double",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "default" : "std::vector<double>(3, 1.0)",
+      "itk_type" : "typename FilterType::StandardDeviationsType",
+      "detaileddescriptionSet" : "Set/Get the Gaussian smoothing standard deviations for the displacement field. The values are set with respect to pixel coordinates.",
+      "detaileddescriptionGet" : "Set/Get the Gaussian smoothing standard deviations for the displacement field. The values are set with respect to pixel coordinates."
+    },
+    {
+      "name" : "NumberOfIterations",
+      "type" : "uint32_t",
+      "default" : "10u",
+      "doc" : "Number of iterations to run"
+    },
+    {
+      "name" : "MaximumRMSError",
+      "type" : "double",
+      "default" : 0.02,
+      "doc" : "Value of RMS change below which the filter should stop. This is a convergence criterion."
+    },
+    {
+      "name" : "UseMovingImageGradient",
+      "type" : "bool",
+      "default" : false,
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Switch between using the fixed image and moving image gradient for computing the displacement field updates.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Switch between using the fixed image and moving image gradient for computing the displacement field updates."
+    },
+    {
+      "name" : "SmoothDisplacementField",
+      "type" : "bool",
+      "default" : true,
+      "detaileddescriptionSet" : "Set/Get whether the displacement field is smoothed (regularized). Smoothing the displacement yields a solution elastic in nature. If SmoothDisplacementField is on, then the displacement field is smoothed with a Gaussian whose standard deviations are specified with SetStandardDeviations()",
+      "detaileddescriptionGet" : "Set/Get whether the displacement field is smoothed (regularized). Smoothing the displacement yields a solution elastic in nature. If SmoothDisplacementField is on, then the displacement field is smoothed with a Gaussian whose standard deviations are specified with SetStandardDeviations()"
+    },
+    {
+      "name" : "SmoothUpdateField",
+      "type" : "bool",
+      "default" : false,
+      "detaileddescriptionSet" : "Set/Get whether the update field is smoothed (regularized). Smoothing the update field yields a solution viscous in nature. If SmoothUpdateField is on, then the update field is smoothed with a Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()",
+      "detaileddescriptionGet" : "Set/Get whether the update field is smoothed (regularized). Smoothing the update field yields a solution viscous in nature. If SmoothUpdateField is on, then the update field is smoothed with a Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()"
+    },
+    {
+      "name" : "UpdateFieldStandardDeviations",
+      "type" : "double",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "default" : "std::vector<double>(3, 1.0)",
+      "itk_type" : "typename FilterType::StandardDeviationsType",
+      "detaileddescriptionSet" : "Set the Gaussian smoothing standard deviations for the update field. The values are set with respect to pixel coordinates.",
+      "detaileddescriptionGet" : "Set the Gaussian smoothing standard deviations for the update field. The values are set with respect to pixel coordinates."
+    },
+    {
+      "name" : "MaximumKernelWidth",
+      "type" : "unsigned int",
+      "default" : "30u",
+      "detaileddescriptionSet" : "Set/Get the desired limits of the Gaussian kernel width.",
+      "detaileddescriptionGet" : "Set/Get the desired limits of the Gaussian kernel width."
+    },
+    {
+      "name" : "MaximumError",
+      "type" : "double",
+      "default" : "0.1",
+      "detaileddescriptionSet" : "Set/Get the desired maximum error of the Guassian kernel approximate.",
+      "detaileddescriptionGet" : "Set/Get the desired maximum error of the Guassian kernel approximate."
+    },
+    {
+      "name" : "IntensityDifferenceThreshold",
+      "type" : "double",
+      "default" : "0.001",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the threshold below which the absolute difference of intensity yields a match. When the intensities match between a moving and fixed image pixel, the update vector (for that iteration) will be the zero vector. Default is 0.001.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "UseImageSpacing",
+      "type" : "bool",
+      "default" : true
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "ElapsedIterations",
+      "type" : "uint32_t",
+      "active" : true,
+      "default" : 0,
+      "briefdescriptionGet" : "Number of iterations run."
+    },
+    {
+      "name" : "RMSChange",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "The Root Mean Square of the levelset upon termination."
+    },
+    {
+      "name" : "Metric",
+      "type" : "double",
+      "active" : true,
+      "default" : 0.0,
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the metric value. The metric value is the mean square difference in intensity between the fixed image and transforming moving image computed over the the overlapping region between the two images. This is value is only available for the previous iteration and NOT the current iteration."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "2d",
+      "description" : "2D",
+      "settings" : [],
+      "tolerance" : "1e-3",
+      "inputs" : [
+        "Input/BrainProtonDensitySliceBorder20.png",
+        "Input/BrainProtonDensitySliceBSplined10.png"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "ElapsedIterations",
+          "value" : "10u"
+        },
+        {
+          "name" : "RMSChange",
+          "value" : 0.28376284179066474,
+          "tolerance" : 1e-06
+        },
+        {
+          "name" : "Metric",
+          "value" : 771.7528659105926,
+          "tolerance" : 0.0001
+        }
+      ]
+    },
+    {
+      "tag" : "2d_with_initial",
+      "description" : "2D With Initial Displacement",
+      "settings" : [],
+      "tolerance" : "1e-8",
+      "inputs" : [
+        "Input/BrainProtonDensitySliceBorder20.png",
+        "Input/BrainProtonDensitySliceBSplined10.png",
+        "Input/BrainProtonDensitySlice20InitialDisplacement.mha"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "ElapsedIterations",
+          "value" : "10u"
+        },
+        {
+          "name" : "RMSChange",
+          "value" : 0.2829118,
+          "tolerance" : 1e-06
+        },
+        {
+          "name" : "Metric",
+          "value" : 565.08109,
+          "tolerance" : 0.0001
+        }
+      ]
+    }
+  ],
+  "briefdescription" : "Deformably register two images using the demons algorithm.",
+  "detaileddescription" : "DemonsRegistrationFilter implements the demons deformable algorithm that register two images by computing the displacement field which will map a moving image onto a fixed image.\n\nA displacement field is represented as a image whose pixel type is some vector type with at least N elements, where N is the dimension of the fixed image. The vector type must support element access via operator []. It is assumed that the vector elements behave like floating point s [...]
+  "itk_module" : "ITKPDEDeformableRegistration",
+  "itk_group" : "PDEDeformable"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/DerivativeImageFilter.json b/Code/BasicFilters/json/DerivativeImageFilter.json
new file mode 100644
index 0000000..a825780
--- /dev/null
+++ b/Code/BasicFilters/json/DerivativeImageFilter.json
@@ -0,0 +1,73 @@
+{
+  "name" : "DerivativeImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "RealPixelIDTypeList",
+  "vector_pixel_types_by_component" : "RealVectorPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Direction",
+      "type" : "unsigned int",
+      "default" : "0u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "The output pixel type must be signed. Standard get/set macros for filter parameters.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "The output pixel type must be signed. Standard get/set macros for filter parameters."
+    },
+    {
+      "name" : "Order",
+      "type" : "unsigned int",
+      "default" : "1u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "The output pixel type must be signed. Standard get/set macros for filter parameters.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "The output pixel type must be signed. Standard get/set macros for filter parameters."
+    },
+    {
+      "name" : "UseImageSpacing",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether or not the filter will use the spacing of the input image in its calculations",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether or not the filter will use the spacing of the input image in its calculations"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0.0001,
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "zsecondorder",
+      "description" : "Run with direction and order set",
+      "tolerance" : 0.0001,
+      "settings" : [
+        {
+          "parameter" : "Direction",
+          "cxx_value" : "2u",
+          "value" : "2"
+        },
+        {
+          "parameter" : "Order",
+          "cxx_value" : "2u",
+          "value" : "2"
+        }
+      ],
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the directional derivative of an image. The directional derivative at each pixel location is computed by convolution with a derivative operator of user-specified order.",
+  "detaileddescription" : "SetOrder specifies the order of the derivative.\n\nSetDirection specifies the direction of the derivative with respect to the coordinate axes of the image.\n\n\\see Image \n\n\\see Neighborhood \n\n\\see NeighborhoodOperator \n\n\\see NeighborhoodIterator \n\n\\par Wiki Examples:\n\n\\li All Examples \n\n\\li Compute the derivative of an image in a particular direction",
+  "itk_module" : "ITKImageFeature",
+  "itk_group" : "ImageFeature"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/DiffeomorphicDemonsRegistrationFilter.json b/Code/BasicFilters/json/DiffeomorphicDemonsRegistrationFilter.json
new file mode 100644
index 0000000..ec68d33
--- /dev/null
+++ b/Code/BasicFilters/json/DiffeomorphicDemonsRegistrationFilter.json
@@ -0,0 +1,222 @@
+{
+  "name" : "DiffeomorphicDemonsRegistrationFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "no_procedure" : "1",
+  "number_of_inputs" : 0,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_image_type" : "itk::Image< Vector<double, TImageType::ImageDimension>, TImageType::ImageDimension >",
+  "filter_type" : "itk::DiffeomorphicDemonsRegistrationFilter<TImageType, TImageType, OutputImageType>",
+  "include_files" : [
+    "sitkImageConvert.h"
+  ],
+  "inputs" : [
+    {
+      "name" : "FixedImage",
+      "type" : "Image",
+      "custom_itk_cast" : "filter->SetFixedImage( this->CastImageToITK<typename FilterType::FixedImageType>(*inFixedImage) );"
+    },
+    {
+      "name" : "MovingImage",
+      "type" : "Image"
+    },
+    {
+      "name" : "InitialDisplacementField",
+      "type" : "Image",
+      "optional" : true,
+      "custom_itk_cast" : "  typedef itk::VectorImage<double, FilterType::DisplacementFieldType::ImageDimension> VectorImageType;\n      filter->SetInitialDisplacementField( GetImageFromVectorImage(const_cast<VectorImageType*>(CastImageToITK<VectorImageType>(*inInitialDisplacementField).GetPointer()) ) );"
+    }
+  ],
+  "members" : [
+    {
+      "name" : "StandardDeviations",
+      "type" : "double",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "default" : "std::vector<double>(3, 1.0)",
+      "itk_type" : "typename FilterType::StandardDeviationsType",
+      "detaileddescriptionSet" : "Set/Get the Gaussian smoothing standard deviations for the displacement field. The values are set with respect to pixel coordinates.",
+      "detaileddescriptionGet" : "Set/Get the Gaussian smoothing standard deviations for the displacement field. The values are set with respect to pixel coordinates."
+    },
+    {
+      "name" : "NumberOfIterations",
+      "type" : "uint32_t",
+      "default" : "10u",
+      "doc" : "Number of iterations to run"
+    },
+    {
+      "name" : "MaximumRMSError",
+      "type" : "double",
+      "default" : 0.02,
+      "doc" : "Value of RMS change below which the filter should stop. This is a convergence criterion."
+    },
+    {
+      "name" : "UseGradientType",
+      "enum" : [
+        "Symmetric",
+        "Fixed",
+        "WarpedMoving",
+        "MappedMoving"
+      ],
+      "default" : "itk::simple::DiffeomorphicDemonsRegistrationFilter::Symmetric",
+      "custom_itk_cast" : "filter->SetUseGradientType( static_cast<typename FilterType::GradientType>( this->GetUseGradientType()) );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "UseFirstOrderExp",
+      "type" : "bool",
+      "default" : false,
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Use a first-order approximation of the exponential. This amounts to using an update rule of the type s <- s o (Id + u) instead of s <- s o exp(u)",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Use a first-order approximation of the exponential. This amounts to using an update rule of the type s <- s o (Id + u) instead of s <- s o exp(u)"
+    },
+    {
+      "name" : "MaximumUpdateStepLength",
+      "type" : "double",
+      "default" : 0.5,
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the maximum length in terms of pixels of the vectors in the update buffer.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "SmoothDisplacementField",
+      "type" : "bool",
+      "default" : true,
+      "detaileddescriptionSet" : "Set/Get whether the displacement field is smoothed (regularized). Smoothing the displacement yields a solution elastic in nature. If SmoothDisplacementField is on, then the displacement field is smoothed with a Gaussian whose standard deviations are specified with SetStandardDeviations()",
+      "detaileddescriptionGet" : "Set/Get whether the displacement field is smoothed (regularized). Smoothing the displacement yields a solution elastic in nature. If SmoothDisplacementField is on, then the displacement field is smoothed with a Gaussian whose standard deviations are specified with SetStandardDeviations()"
+    },
+    {
+      "name" : "SmoothUpdateField",
+      "type" : "bool",
+      "default" : false,
+      "detaileddescriptionSet" : "Set/Get whether the update field is smoothed (regularized). Smoothing the update field yields a solution viscous in nature. If SmoothUpdateField is on, then the update field is smoothed with a Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()",
+      "detaileddescriptionGet" : "Set/Get whether the update field is smoothed (regularized). Smoothing the update field yields a solution viscous in nature. If SmoothUpdateField is on, then the update field is smoothed with a Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()"
+    },
+    {
+      "name" : "UpdateFieldStandardDeviations",
+      "type" : "double",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "default" : "std::vector<double>(3, 1.0)",
+      "itk_type" : "typename FilterType::StandardDeviationsType",
+      "detaileddescriptionSet" : "Set the Gaussian smoothing standard deviations for the update field. The values are set with respect to pixel coordinates.",
+      "detaileddescriptionGet" : "Set the Gaussian smoothing standard deviations for the update field. The values are set with respect to pixel coordinates."
+    },
+    {
+      "name" : "MaximumKernelWidth",
+      "type" : "unsigned int",
+      "default" : "30u",
+      "detaileddescriptionSet" : "Set/Get the desired limits of the Gaussian kernel width.",
+      "detaileddescriptionGet" : "Set/Get the desired limits of the Gaussian kernel width."
+    },
+    {
+      "name" : "MaximumError",
+      "type" : "double",
+      "default" : "0.1",
+      "detaileddescriptionSet" : "Set/Get the desired maximum error of the Guassian kernel approximate.",
+      "detaileddescriptionGet" : "Set/Get the desired maximum error of the Guassian kernel approximate."
+    },
+    {
+      "name" : "IntensityDifferenceThreshold",
+      "type" : "double",
+      "default" : "0.001",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the threshold below which the absolute difference of intensity yields a match. When the intensities match between a moving and fixed image pixel, the update vector (for that iteration) will be the zero vector. Default is 0.001.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "UseImageSpacing",
+      "type" : "bool",
+      "default" : true
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "ElapsedIterations",
+      "active" : true,
+      "type" : "uint32_t",
+      "default" : 0,
+      "briefdescriptionGet" : "Number of iterations run."
+    },
+    {
+      "name" : "RMSChange",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the root mean squared change of the previous iteration. May not be used by all solvers."
+    },
+    {
+      "name" : "Metric",
+      "type" : "double",
+      "active" : true,
+      "default" : 0.0,
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the metric value. The metric value is the mean square difference in intensity between the fixed image and transforming moving image computed over the the overlapping region between the two images. This value is calculated for the current iteration"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "2d",
+      "description" : "2D",
+      "settings" : [],
+      "tolerance" : "1e-3",
+      "inputs" : [
+        "Input/BrainProtonDensitySliceBorder20.png",
+        "Input/BrainProtonDensitySliceBSplined10.png"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "ElapsedIterations",
+          "value" : "10u"
+        },
+        {
+          "name" : "RMSChange",
+          "value" : 0.28976,
+          "tolerance" : 2e-05
+        },
+        {
+          "name" : "Metric",
+          "value" : 516.5746958466116,
+          "tolerance" : 0.0001
+        }
+      ]
+    },
+    {
+      "tag" : "2d_with_initial",
+      "description" : "2D With Initial Displacement",
+      "settings" : [],
+      "tolerance" : "1e-8",
+      "inputs" : [
+        "Input/BrainProtonDensitySliceBorder20.png",
+        "Input/BrainProtonDensitySliceBSplined10.png",
+        "Input/BrainProtonDensitySlice20InitialDisplacement.mha"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "ElapsedIterations",
+          "value" : "10u"
+        },
+        {
+          "name" : "RMSChange",
+          "value" : 0.2895611,
+          "tolerance" : 1e-06
+        },
+        {
+          "name" : "Metric",
+          "value" : 378.38936,
+          "tolerance" : 0.0001
+        }
+      ]
+    }
+  ],
+  "briefdescription" : "Deformably register two images using a diffeomorphic demons algorithm.",
+  "detaileddescription" : "This class was contributed by Tom Vercauteren, INRIA & Mauna Kea Technologies, based on a variation of the DemonsRegistrationFilter . The basic modification is to use diffeomorphism exponentials.\n\nSee T. Vercauteren, X. Pennec, A. Perchant and N. Ayache, \"Non-parametric Diffeomorphic Image Registration with the Demons Algorithm\", Proc. of MICCAI 2007.\n\nDiffeomorphicDemonsRegistrationFilter implements the demons deformable algorithm that register two image [...]
+  "itk_module" : "ITKReview",
+  "itk_group" : "Review"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/DilateObjectMorphologyImageFilter.json b/Code/BasicFilters/json/DilateObjectMorphologyImageFilter.json
new file mode 100644
index 0000000..19d77e0
--- /dev/null
+++ b/Code/BasicFilters/json/DilateObjectMorphologyImageFilter.json
@@ -0,0 +1,75 @@
+{
+  "name" : "DilateObjectMorphologyImageFilter",
+  "template_code_filename" : "KernelImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Performs Erosion of an object.\n\\todo This filter is redundent with binary erode and fg/bg options",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "ObjectValue",
+      "type" : "double",
+      "default" : 1,
+      "doc" : "Value to assign to object pixels",
+      "custom_itk_cast" : "filter->SetObjectValue(static_cast<typename FilterType::PixelType>(this->GetObjectValue()) );"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "float",
+      "description" : "Dilate a float image",
+      "tolerance" : 0.01,
+      "settings" : [
+        {
+          "parameter" : "KernelRadius",
+          "no_get_method" : 1,
+          "value" : 1
+        },
+        {
+          "parameter" : "KernelType",
+          "value" : "itk::simple::sitkBall",
+          "lua_value" : "SimpleITK.sitkBall",
+          "python_value" : "SimpleITK.sitkBall",
+          "ruby_value" : "Simpleitk::SitkBall",
+          "java_value" : "KernelEnum.sitkBall",
+          "tcl_value" : "$$sitkBall",
+          "csharp_value" : "KernelEnum.sitkBall",
+          "R_value" : "'sitkBall'"
+        }
+      ],
+      "inputs" : [
+        "Input/RA-Slice-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "short",
+      "description" : "Dilate a short image",
+      "tolerance" : 0.01,
+      "settings" : [
+        {
+          "parameter" : "KernelRadius",
+          "no_get_method" : 1,
+          "value" : 1
+        },
+        {
+          "parameter" : "KernelType",
+          "value" : "itk::simple::sitkBall",
+          "lua_value" : "SimpleITK.sitkBall",
+          "python_value" : "SimpleITK.sitkBall",
+          "ruby_value" : "Simpleitk::SitkBall",
+          "java_value" : "KernelEnum.sitkBall",
+          "tcl_value" : "$$sitkBall",
+          "csharp_value" : "KernelEnum.sitkBall",
+          "R_value" : "'sitkBall'"
+        }
+      ],
+      "inputs" : [
+        "Input/RA-Slice-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "dilation of an object in an image",
+  "detaileddescription" : "Dilate an image using binary morphology. Pixel values matching the object value are considered the \"foreground\" and all other pixels are \"background\". This is useful in processing mask images containing only one object.\n\nIf a pixel's value is equal to the object value and the pixel is adjacent to a non-object valued pixel, then the kernel is centered on the object-value pixel and neighboring pixels covered by the kernel are assigned the object value. The  [...]
+  "itk_module" : "ITKBinaryMathematicalMorphology",
+  "itk_group" : "BinaryMathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/DiscreteGaussianDerivativeImageFilter.json b/Code/BasicFilters/json/DiscreteGaussianDerivativeImageFilter.json
new file mode 100644
index 0000000..9aa2a76
--- /dev/null
+++ b/Code/BasicFilters/json/DiscreteGaussianDerivativeImageFilter.json
@@ -0,0 +1,151 @@
+{
+  "name" : "DiscreteGaussianDerivativeImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "",
+  "number_of_inputs" : 1,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Variance",
+      "type" : "double",
+      "set_as_scalar" : 1,
+      "default" : "std::vector<double>(3, 0.0)",
+      "dim_vec" : 1,
+      "itk_type" : "typename FilterType::ArrayType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Convenience Set methods for setting all dimensional parameters to the same values.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "The variance for the discrete Gaussian kernel. Sets the variance independently for each dimension, but see also SetVariance(const double v) . The default is 0.0 in each dimension. If UseImageSpacing is true, the units are the physical units of your image. If UseImageSpacing is false then the units are pixels."
+    },
+    {
+      "name" : "Order",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 1)",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "itk_type" : "typename FilterType::OrderArrayType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Convenience Set methods for setting all dimensional parameters to the same values.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Order of derivatives in each dimension. Sets the derivative order independently for each dimension, but see also SetOrder(const unsigned int v) . The default is 1 in each dimension."
+    },
+    {
+      "name" : "MaximumKernelWidth",
+      "type" : "unsigned int",
+      "default" : "32u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the kernel to be no wider than MaximumKernelWidth pixels, even if MaximumError demands it. The default is 32 pixels.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set the kernel to be no wider than MaximumKernelWidth pixels, even if MaximumError demands it. The default is 32 pixels."
+    },
+    {
+      "name" : "MaximumError",
+      "type" : "double",
+      "default" : "0.01",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Convenience Set methods for setting all dimensional parameters to the same values.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "The algorithm will size the discrete kernel so that the error resulting from truncation of the kernel is no greater than MaximumError. The default is 0.01 in each dimension."
+    },
+    {
+      "name" : "UseImageSpacing",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether or not the filter will use the spacing of the input image in its calculations. Default is ImageSpacingOn.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether or not the filter will use the spacing of the input image in its calculations. Default is ImageSpacingOn."
+    },
+    {
+      "name" : "NormalizeAcrossScale",
+      "type" : "bool",
+      "default" : "false",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the flag for calculating scale-space normalized derivatives. Normalized derivatives are obtained multiplying by the scale parameter t.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the flag for calculating scale-space normalized derivatives. Normalized derivatives are obtained multiplying by the scale parameter t."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "float1",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0.0001,
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "float_10",
+      "description" : "variance as scalar",
+      "settings" : [
+        {
+          "parameter" : "Variance",
+          "type" : "double",
+          "dim_vec" : 1,
+          "value" : [
+            10,
+            10,
+            10
+          ]
+        },
+        {
+          "parameter" : "UseImageSpacing",
+          "value" : "true",
+          "python_value" : "True",
+          "R_value" : "TRUE"
+        }
+      ],
+      "tolerance" : 0.0001,
+      "inputs" : [
+        "Input/cthead1-Float.mha"
+      ]
+    },
+    {
+      "tag" : "float_dx",
+      "description" : "derivative in x",
+      "settings" : [
+        {
+          "parameter" : "Order",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            1,
+            0,
+            0
+          ]
+        }
+      ],
+      "tolerance" : 0.0001,
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "float_dy2",
+      "description" : "2nd derivative",
+      "settings" : [
+        {
+          "parameter" : "Order",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            0,
+            2,
+            0
+          ]
+        }
+      ],
+      "tolerance" : 0.0001,
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Calculates image derivatives using discrete derivative gaussian kernels. This filter calculates Gaussian derivative by separable convolution of an image and a discrete Gaussian derivative operator (kernel).",
+  "detaileddescription" : "The Gaussian operators used here were described by Tony Lindeberg (Discrete Scale-Space Theory and the Scale-Space Primal Sketch. Dissertation. Royal Institute of Technology, Stockholm, Sweden. May 1991.)\n\nThe variance or standard deviation (sigma) will be evaluated as pixel units if SetUseImageSpacing is off (false) or as physical units if SetUseImageSpacing is on (true, default). The variance can be set independently in each dimension.\n\nWhen the Gaussian  [...]
+  "itk_module" : "ITKReview",
+  "itk_group" : "Review"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/DiscreteGaussianImageFilter.json b/Code/BasicFilters/json/DiscreteGaussianImageFilter.json
new file mode 100644
index 0000000..ee9f677
--- /dev/null
+++ b/Code/BasicFilters/json/DiscreteGaussianImageFilter.json
@@ -0,0 +1,89 @@
+{
+  "name" : "DiscreteGaussianImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "",
+  "number_of_inputs" : 1,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Variance",
+      "type" : "double",
+      "default" : "1.0",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "The variance for the discrete Gaussian kernel. Sets the variance independently for each dimension, but see also SetVariance(const double v) . The default is 0.0 in each dimension. If UseImageSpacing is true, the units are the physical units of your image. If UseImageSpacing is false then the units are pixels."
+    },
+    {
+      "name" : "MaximumKernelWidth",
+      "type" : "unsigned int",
+      "default" : "32u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the kernel to be no wider than MaximumKernelWidth pixels, even if MaximumError demands it. The default is 32 pixels.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set the kernel to be no wider than MaximumKernelWidth pixels, even if MaximumError demands it. The default is 32 pixels."
+    },
+    {
+      "name" : "MaximumError",
+      "type" : "double",
+      "default" : "0.01",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "The algorithm will size the discrete kernel so that the error resulting from truncation of the kernel is no greater than MaximumError. The default is 0.01 in each dimension."
+    },
+    {
+      "name" : "UseImageSpacing",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether or not the filter will use the spacing of the input image in its calculations",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether or not the filter will use the spacing of the input image in its calculations"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "float",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0.0001,
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "short",
+      "description" : "Simply run with a short image with default settings",
+      "settings" : [],
+      "tolerance" : "0.5",
+      "inputs" : [
+        "Input/RA-Slice-Short.nrrd"
+      ]
+    },
+    {
+      "tag" : "bigG",
+      "description" : "use a big gaussian",
+      "settings" : [
+        {
+          "parameter" : "Variance",
+          "value" : "100.0"
+        },
+        {
+          "parameter" : "MaximumKernelWidth",
+          "cxx_value" : "64u",
+          "value" : "64"
+        }
+      ],
+      "md5hash" : "f2f002ec76313284a4cff24c3e5eb577",
+      "inputs" : [
+        "Input/WhiteDots.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Blurs an image by separable convolution with discrete gaussian kernels. This filter performs Gaussian blurring by separable convolution of an image and a discrete Gaussian operator (kernel).",
+  "detaileddescription" : "The Gaussian operator used here was described by Tony Lindeberg (Discrete Scale-Space Theory and the Scale-Space Primal Sketch. Dissertation. Royal Institute of Technology, Stockholm, Sweden. May 1991.) The Gaussian kernel used here was designed so that smoothing and derivative operations commute after discretization.\n\nThe variance or standard deviation (sigma) will be evaluated as pixel units if SetUseImageSpacing is off (false) or as physical units if SetUs [...]
+  "itk_module" : "ITKSmoothing",
+  "itk_group" : "Smoothing"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/DisplacementFieldJacobianDeterminantFilter.json b/Code/BasicFilters/json/DisplacementFieldJacobianDeterminantFilter.json
new file mode 100644
index 0000000..edcbf42
--- /dev/null
+++ b/Code/BasicFilters/json/DisplacementFieldJacobianDeterminantFilter.json
@@ -0,0 +1,72 @@
+{
+  "name" : "DisplacementFieldJacobianDeterminantFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "RealVectorPixelIDTypeList",
+  "filter_type" : "itk::DisplacementFieldJacobianDeterminantFilter< itk::Image< itk::Vector<typename InputImageType::InternalPixelType, InputImageType::ImageDimension>, InputImageType::ImageDimension >, typename InputImageType::InternalPixelType >",
+  "custom_set_input" : "filter->SetInput( GetImageFromVectorImage(const_cast< InputImageType * >(image1.GetPointer())) );",
+  "include_files" : [
+    "itkVector.h",
+    "sitkImageConvert.h"
+  ],
+  "members" : [
+    {
+      "name" : "UseImageSpacing",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether or not the filter will use the spacing of the input image in its calculations",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "DerivativeWeights",
+      "type" : "double",
+      "dim_vec" : 1,
+      "default" : "std::vector<double>()",
+      "itk_type" : "typename FilterType::WeightsType",
+      "custom_itk_cast" : "if (!this->m_DerivativeWeights.empty()) filter->SetDerivativeWeights( sitkSTLVectorToITK<typename FilterType::WeightsType>( this->m_DerivativeWeights ) );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Directly Set/Get the array of weights used in the gradient calculations. Note that calling UseImageSpacingOn will clobber these values.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Directly Set/Get the array of weights used in the gradient calculations. Note that calling UseImageSpacingOn will clobber these values."
+    }
+  ],
+  "measurements" : [],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "2d",
+      "description" : "2D",
+      "settings" : [],
+      "tolerance" : "1e-7",
+      "inputs" : [
+        "Input/displacement.mha"
+      ]
+    },
+    {
+      "tag" : "2d_weights",
+      "description" : "2D with derivative weights",
+      "settings" : [
+        {
+          "parameter" : "DerivativeWeights",
+          "type" : "double",
+          "dim_vec" : 1,
+          "value" : [
+            0.1,
+            10.0
+          ]
+        }
+      ],
+      "tolerance" : "1e-7",
+      "inputs" : [
+        "Input/displacement.mha"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes a scalar image from a vector image (e.g., deformation field) input, where each output scalar at each pixel is the Jacobian determinant of the vector field at that location. This calculation is correct in the case where the vector image is a \"displacement\" from the current location. The computation for the jacobian determinant is: det[ dT/dx ] = det[ I + du/dx ].",
+  "detaileddescription" : "\\par Overview\nThis filter is based on itkVectorGradientMagnitudeImageFilter and supports the m_DerivativeWeights weights for partial derivatives.\n\nNote that the determinant of a zero vector field is also zero, whereas the Jacobian determinant of the corresponding identity warp transformation is 1.0. In order to compute the effective deformation Jacobian determinant 1.0 must be added to the diagonal elements of Jacobian prior to taking the derivative. i.e. d [...]
+  "itk_module" : "ITKDisplacementField",
+  "itk_group" : "DisplacementField"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/DivideFloorImageFilter.json b/Code/BasicFilters/json/DivideFloorImageFilter.json
new file mode 100644
index 0000000..3a01b90
--- /dev/null
+++ b/Code/BasicFilters/json/DivideFloorImageFilter.json
@@ -0,0 +1,31 @@
+{
+  "name" : "DivideFloorImageFilter",
+  "itk_name" : "BinaryFunctorImageFilter",
+  "template_code_filename" : "BinaryFunctorFilter",
+  "template_test_filename" : "ImageFilter",
+  "constant_type" : "double",
+  "include_files" : [
+    "itkDivideFloorFunctor.h"
+  ],
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "filter_type" : "itk::BinaryFunctorImageFilter< InputImageType, InputImageType2, InputImageType, Functor::DivFloor< typename InputImageType::PixelType, typename InputImageType2::PixelType, typename OutputImageType::PixelType> >",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "md5hash" : "af2d18b65fdfa4f9cb1e84c777b4a72b",
+      "inputs" : [
+        "Input/Ramp-Up-Short.nrrd",
+        "Input/Ramp-Down-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Implements pixel-wise generic operation of two images, or of an image and a constant.",
+  "detaileddescription" : "This class is parameterized over the types of the two input images and the type of the output image. It is also parameterized by the operation to be applied. A Functor style is used.\n\nThe constant must be of the same type than the pixel type of the corresponding image. It is wrapped in a SimpleDataObjectDecorator so it can be updated through the pipeline. The SetConstant() and GetConstant() methods are provided as shortcuts to set or get the constant value wi [...]
+  "itk_module" : "ITKImageFilterBase",
+  "itk_group" : "ImageFilterBase"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/DivideImageFilter.json b/Code/BasicFilters/json/DivideImageFilter.json
new file mode 100644
index 0000000..0020f43
--- /dev/null
+++ b/Code/BasicFilters/json/DivideImageFilter.json
@@ -0,0 +1,26 @@
+{
+  "name" : "DivideImageFilter",
+  "template_code_filename" : "BinaryFunctorFilter",
+  "template_test_filename" : "ImageFilter",
+  "constant_type" : "double",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "typelist::Append<BasicPixelIDTypeList, ComplexPixelIDTypeList>::Type",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "md5hash" : "af2d18b65fdfa4f9cb1e84c777b4a72b",
+      "inputs" : [
+        "Input/Ramp-Up-Short.nrrd",
+        "Input/Ramp-Down-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Pixel-wise division of two images.",
+  "detaileddescription" : "This class is templated over the types of the two input images and the type of the output image. When the divisor is zero, the division result is set to the maximum number that can be represented by default to avoid exception. Numeric conversions (castings) are done by the C++ defaults.\n\n\\par Wiki Examples:\n\n\\li All Examples \n\n\\li Pixel-wise division of two images",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/DivideRealImageFilter.json b/Code/BasicFilters/json/DivideRealImageFilter.json
new file mode 100644
index 0000000..066f8a6
--- /dev/null
+++ b/Code/BasicFilters/json/DivideRealImageFilter.json
@@ -0,0 +1,32 @@
+{
+  "name" : "DivideRealImageFilter",
+  "itk_name" : "BinaryFunctorImageFilter",
+  "template_code_filename" : "BinaryFunctorFilter",
+  "template_test_filename" : "ImageFilter",
+  "constant_type" : "double",
+  "output_pixel_type" : "typename itk::NumericTraits<typename InputImageType::PixelType>::RealType",
+  "include_files" : [
+    "itkDivideRealFunctor.h"
+  ],
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "filter_type" : "itk::BinaryFunctorImageFilter< InputImageType, InputImageType2, OutputImageType, Functor::DivReal< typename InputImageType::PixelType, typename InputImageType2::PixelType, typename OutputImageType::PixelType> >",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : "1e-8",
+      "inputs" : [
+        "Input/Ramp-Up-Short.nrrd",
+        "Input/Ramp-Down-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Implements pixel-wise generic operation of two images, or of an image and a constant.",
+  "detaileddescription" : "This class is parameterized over the types of the two input images and the type of the output image. It is also parameterized by the operation to be applied. A Functor style is used.\n\nThe constant must be of the same type than the pixel type of the corresponding image. It is wrapped in a SimpleDataObjectDecorator so it can be updated through the pipeline. The SetConstant() and GetConstant() methods are provided as shortcuts to set or get the constant value wi [...]
+  "itk_module" : "ITKImageFilterBase",
+  "itk_group" : "ImageFilterBase"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/DoubleThresholdImageFilter.json b/Code/BasicFilters/json/DoubleThresholdImageFilter.json
new file mode 100644
index 0000000..6c3588c
--- /dev/null
+++ b/Code/BasicFilters/json/DoubleThresholdImageFilter.json
@@ -0,0 +1,121 @@
+{
+  "name" : "DoubleThresholdImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "number_of_inputs" : 1,
+  "output_pixel_type" : "uint8_t",
+  "doc" : "",
+  "members" : [
+    {
+      "name" : "Threshold1",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the thresholds. Four thresholds should be specified. The two lower thresholds default to NumericTraits<InputPixelType>::NonpositiveMin() . The two upper thresholds default NumericTraits<InputPixelType>::max . Threshold1 <= Threshold2 <= Threshold3 <= Threshold4.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the threshold values."
+    },
+    {
+      "name" : "Threshold2",
+      "type" : "double",
+      "default" : "1.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the thresholds. Four thresholds should be specified. The two lower thresholds default to NumericTraits<InputPixelType>::NonpositiveMin() . The two upper thresholds default NumericTraits<InputPixelType>::max . Threshold1 <= Threshold2 <= Threshold3 <= Threshold4.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the threshold values."
+    },
+    {
+      "name" : "Threshold3",
+      "type" : "double",
+      "default" : "254.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the thresholds. Four thresholds should be specified. The two lower thresholds default to NumericTraits<InputPixelType>::NonpositiveMin() . The two upper thresholds default NumericTraits<InputPixelType>::max . Threshold1 <= Threshold2 <= Threshold3 <= Threshold4.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the threshold values."
+    },
+    {
+      "name" : "Threshold4",
+      "type" : "double",
+      "default" : "255.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the thresholds. Four thresholds should be specified. The two lower thresholds default to NumericTraits<InputPixelType>::NonpositiveMin() . The two upper thresholds default NumericTraits<InputPixelType>::max . Threshold1 <= Threshold2 <= Threshold3 <= Threshold4.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the threshold values."
+    },
+    {
+      "name" : "InsideValue",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the \"inside\" pixel value. The default value NumericTraits<OutputPixelType>::max()",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"inside\" pixel value."
+    },
+    {
+      "name" : "OutsideValue",
+      "type" : "uint8_t",
+      "default" : "0u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::ZeroValue() .",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"outside\" pixel value."
+    },
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "DoubleThreshold1",
+      "description" : "Default parameter settings",
+      "md5hash" : "dbd0ea7d6f16bb93e9c688cb0f1bfd85",
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    },
+    {
+      "tag" : "DoubleThreshold2",
+      "description" : "double threshold 2D",
+      "md5hash" : "2c8fc2345ccfa980ef42aef5910efaa3",
+      "settings" : [
+        {
+          "parameter" : "Threshold1",
+          "value" : "0"
+        },
+        {
+          "parameter" : "Threshold2",
+          "value" : "0"
+        },
+        {
+          "parameter" : "Threshold3",
+          "value" : "3000"
+        },
+        {
+          "parameter" : "Threshold4",
+          "value" : "2700"
+        }
+      ],
+      "inputs" : [
+        "Input/RA-Slice-Short.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Binarize an input image using double thresholding.",
+  "detaileddescription" : "Double threshold addresses the difficulty in selecting a threshold that will select the objects of interest without selecting extraneous objects. Double threshold considers two threshold ranges: a narrow range and a wide range (where the wide range encompasses the narrow range). If the wide range was used for a traditional threshold (where values inside the range map to the foreground and values outside the range map to the background), many extraneous pixels m [...]
+  "itk_module" : "ITKMathematicalMorphology",
+  "itk_group" : "MathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/EdgePotentialImageFilter.json b/Code/BasicFilters/json/EdgePotentialImageFilter.json
new file mode 100644
index 0000000..76f180f
--- /dev/null
+++ b/Code/BasicFilters/json/EdgePotentialImageFilter.json
@@ -0,0 +1,25 @@
+{
+  "name" : "EdgePotentialImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "VectorPixelIDTypeList",
+  "output_pixel_type" : "typename itk::NumericTraits<typename itk::NumericTraits<typename InputImageType::PixelType>::ValueType>::RealType",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : "0.0001",
+      "inputs" : [
+        "Input/RA-Gradient.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the edge potential of an image from the image gradient.",
+  "detaileddescription" : "Input to this filter should be a CovariantVector image representing the image gradient.\n\nThe filter expect both the input and output images to have the same number of dimensions, and the output to be of a scalar image type.",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/EqualImageFilter.json b/Code/BasicFilters/json/EqualImageFilter.json
new file mode 100644
index 0000000..79b1a2e
--- /dev/null
+++ b/Code/BasicFilters/json/EqualImageFilter.json
@@ -0,0 +1,53 @@
+{
+  "name" : "EqualImageFilter",
+  "itk_name" : "BinaryFunctorImageFilter",
+  "template_code_filename" : "BinaryFunctorFilter",
+  "template_test_filename" : "ImageFilter",
+  "constant_type" : "double",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_pixel_type" : "uint8_t",
+  "filter_type" : "itk::BinaryFunctorImageFilter<InputImageType,InputImageType2,OutputImageType, itk::Functor::Equal< typename InputImageType::PixelType, typename InputImageType2::PixelType, typename OutputImageType::PixelType> >",
+  "include_files" : [
+    "itkLogicOpsFunctors.h"
+  ],
+  "members" : [
+    {
+      "name" : "BackgroundValue",
+      "type" : "uint8_t",
+      "default" : "0u",
+      "custom_itk_cast" : "filter->GetFunctor().SetBackgroundValue( static_cast<typename OutputImageType::PixelType>( this->m_BackgroundValue ) );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value used to mark the false pixels of the operator.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value used to mark the false pixels of the operator.\n"
+    },
+    {
+      "name" : "ForegroundValue",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "custom_itk_cast" : "filter->GetFunctor().SetForegroundValue( static_cast<typename OutputImageType::PixelType>( this->m_ForegroundValue ) );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value used to mark the true pixels of the operator.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value used to mark the true pixels of the operator.\n"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "same images",
+      "settings" : [],
+      "md5hash" : "ae5c932ab2e19291dd20c2c4ac382428",
+      "inputs" : [
+        "Input/cthead1.png",
+        "Input/cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Implements pixel-wise generic operation of two images, or of an image and a constant.",
+  "detaileddescription" : "This class is parameterized over the types of the two input images and the type of the output image. It is also parameterized by the operation to be applied. A Functor style is used.\n\nThe constant must be of the same type than the pixel type of the corresponding image. It is wrapped in a SimpleDataObjectDecorator so it can be updated through the pipeline. The SetConstant() and GetConstant() methods are provided as shortcuts to set or get the constant value wi [...]
+  "itk_module" : "ITKImageFilterBase",
+  "itk_group" : "ImageFilterBase"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ErodeObjectMorphologyImageFilter.json b/Code/BasicFilters/json/ErodeObjectMorphologyImageFilter.json
new file mode 100644
index 0000000..2ec12ee
--- /dev/null
+++ b/Code/BasicFilters/json/ErodeObjectMorphologyImageFilter.json
@@ -0,0 +1,85 @@
+{
+  "name" : "ErodeObjectMorphologyImageFilter",
+  "template_code_filename" : "KernelImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Performs Erosion of an object.\n\\todo This filter is redundent with binary erode and fg/bg options",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "ObjectValue",
+      "type" : "double",
+      "default" : 1,
+      "doc" : "Value to assign to object pixels",
+      "custom_itk_cast" : "filter->SetObjectValue(static_cast<typename FilterType::PixelType>(this->GetObjectValue()) );"
+    },
+    {
+      "name" : "BackgroundValue",
+      "type" : "double",
+      "default" : "0",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the value to be assigned to eroded pixels",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the value to be assigned to eroded pixels"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "float",
+      "description" : "Erode a float image",
+      "tolerance" : 0.01,
+      "settings" : [
+        {
+          "parameter" : "KernelRadius",
+          "no_get_method" : 1,
+          "value" : 1
+        },
+        {
+          "parameter" : "KernelType",
+          "value" : "itk::simple::sitkBall",
+          "lua_value" : "SimpleITK.sitkBall",
+          "python_value" : "SimpleITK.sitkBall",
+          "ruby_value" : "Simpleitk::SitkBall",
+          "java_value" : "KernelEnum.sitkBall",
+          "tcl_value" : "$$sitkBall",
+          "csharp_value" : "KernelEnum.sitkBall",
+          "R_value" : "'sitkBall'"
+        }
+      ],
+      "inputs" : [
+        "Input/RA-Slice-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "short",
+      "description" : "Erode a short image",
+      "tolerance" : 0.01,
+      "settings" : [
+        {
+          "parameter" : "KernelRadius",
+          "no_get_method" : 1,
+          "value" : 1
+        },
+        {
+          "parameter" : "KernelType",
+          "value" : "itk::simple::sitkBall",
+          "lua_value" : "SimpleITK.sitkBall",
+          "python_value" : "SimpleITK.sitkBall",
+          "ruby_value" : "Simpleitk::SitkBall",
+          "java_value" : "KernelEnum.sitkBall",
+          "tcl_value" : "$$sitkBall",
+          "csharp_value" : "KernelEnum.sitkBall",
+          "R_value" : "'sitkBall'"
+        }
+      ],
+      "inputs" : [
+        "Input/RA-Slice-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Erosion of an object in an image.",
+  "detaileddescription" : "Erosion of an image using binary morphology. Pixel values matching the object value are considered the \"object\" and all other pixels are \"background\". This is useful in processing mask images containing only one object.\n\nIf the pixel covered by the center of the kernel has the pixel value ObjectValue and the pixel is adjacent to a non-object valued pixel, then the kernel is centered on the object-value pixel and neighboring pixels covered by the kernel ar [...]
+  "itk_module" : "ITKBinaryMathematicalMorphology",
+  "itk_group" : "BinaryMathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ExpImageFilter.json b/Code/BasicFilters/json/ExpImageFilter.json
new file mode 100644
index 0000000..16e8f89
--- /dev/null
+++ b/Code/BasicFilters/json/ExpImageFilter.json
@@ -0,0 +1,25 @@
+{
+  "name" : "ExpImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0.01,
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the exponential function of each pixel.",
+  "detaileddescription" : "The computation is performed using std::exp(x).",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ExpNegativeImageFilter.json b/Code/BasicFilters/json/ExpNegativeImageFilter.json
new file mode 100644
index 0000000..d63791b
--- /dev/null
+++ b/Code/BasicFilters/json/ExpNegativeImageFilter.json
@@ -0,0 +1,25 @@
+{
+  "name" : "ExpNegativeImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0.01,
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the function exp(-K.x) for each input pixel.",
+  "detaileddescription" : "Every output pixel is equal to std::exp(-K.x ). where x is the intensity of the homologous input pixel, and K is a user-provided constant.",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ExpandImageFilter.json b/Code/BasicFilters/json/ExpandImageFilter.json
new file mode 100644
index 0000000..89cde13
--- /dev/null
+++ b/Code/BasicFilters/json/ExpandImageFilter.json
@@ -0,0 +1,196 @@
+{
+  "name" : "ExpandImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "public_declarations" : "Self &SetExpandFactor( unsigned int e ) { this->m_ExpandFactors = std::vector<unsigned int>(3, e ); return *this; }",
+  "include_files" : [
+    "sitkCreateInterpolator.hxx"
+  ],
+  "members" : [
+    {
+      "name" : "ExpandFactors",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 1)",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "doc" : "",
+      "itk_type" : "typename FilterType::ExpandFactorsType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the expand factors. Values are clamped to a minimum value of 1. Default is 1 for all dimensions.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the expand factors."
+    },
+    {
+      "name" : "Interpolator",
+      "type" : "InterpolatorEnum",
+      "default" : "itk::simple::sitkLinear",
+      "doc" : "",
+      "custom_itk_cast" : "filter->SetInterpolator( CreateInterpolator( image1.GetPointer(), m_Interpolator ) );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Get/Set the interpolator function.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get/Set the interpolator function."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "default",
+      "md5hash" : "3eb703113d03f38e7b8db4b180079a39",
+      "settings" : [],
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    },
+    {
+      "tag" : "Expand2x3",
+      "description" : "expand image 2 x 3",
+      "tolerance" : "0.08",
+      "settings" : [
+        {
+          "parameter" : "ExpandFactors",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            2,
+            3
+          ]
+        }
+      ],
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    },
+    {
+      "tag" : "Vector",
+      "description" : "Vector image",
+      "tolerance" : "1e-6",
+      "settings" : [
+        {
+          "parameter" : "ExpandFactor",
+          "type" : "unsigned int",
+          "no_get_method" : 1,
+          "value" : "2"
+        }
+      ],
+      "inputs" : [
+        "Input/fruit.png"
+      ]
+    },
+    {
+      "tag" : "Interpolator_Nearest",
+      "description" : "default",
+      "md5hash" : "2b3d11c7390f732c8a7e1034b936543e",
+      "settings" : [
+        {
+          "parameter" : "ExpandFactor",
+          "type" : "unsigned int",
+          "no_get_method" : 1,
+          "value" : "4"
+        },
+        {
+          "parameter" : "Interpolator",
+          "value" : "itk::simple::sitkNearestNeighbor",
+          "lua_value" : "SimpleITK.sitkNearestNeighbor",
+          "python_value" : "SimpleITK.sitkNearestNeighbor",
+          "ruby_value" : "Simpleitk::SitkNearestNeighbor",
+          "java_value" : "InterpolatorEnum.sitkNearestNeighbor",
+          "tcl_value" : "$$sitkNearestNeighbor",
+          "csharp_value" : "InterpolatorEnum.sitkNearestNeighbor",
+          "R_value" : "'sitkNearestNeighbor'"
+        }
+      ],
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    },
+    {
+      "tag" : "Interpolator_BSpline",
+      "description" : "default",
+      "tolerance" : "1e-8",
+      "settings" : [
+        {
+          "parameter" : "ExpandFactor",
+          "type" : "unsigned int",
+          "no_get_method" : 1,
+          "value" : "3"
+        },
+        {
+          "parameter" : "Interpolator",
+          "value" : "itk::simple::sitkBSpline",
+          "lua_value" : "SimpleITK.sitkBSpline",
+          "python_value" : "SimpleITK.sitkBSpline",
+          "ruby_value" : "Simpleitk::SitkBSpline",
+          "java_value" : "InterpolatorEnum.sitkBSpline",
+          "tcl_value" : "$$sitkBSpline",
+          "csharp_value" : "InterpolatorEnum.sitkBSpline",
+          "R_value" : "'sitkBSpline'"
+        }
+      ],
+      "inputs" : [
+        "Input/cthead1-Float.mha"
+      ]
+    },
+    {
+      "tag" : "Interpolator_Gaussian",
+      "description" : "default",
+      "tolerance" : "1e-8",
+      "settings" : [
+        {
+          "parameter" : "ExpandFactor",
+          "type" : "unsigned int",
+          "no_get_method" : 1,
+          "value" : "3"
+        },
+        {
+          "parameter" : "Interpolator",
+          "value" : "itk::simple::sitkGaussian",
+          "lua_value" : "SimpleITK.sitkGaussian",
+          "python_value" : "SimpleITK.sitkGaussian",
+          "ruby_value" : "Simpleitk::SitkGaussian",
+          "java_value" : "InterpolatorEnum.sitkGaussian",
+          "tcl_value" : "$$sitkGaussian",
+          "csharp_value" : "InterpolatorEnum.sitkGaussian",
+          "R_value" : "'sitkGaussian'"
+        }
+      ],
+      "inputs" : [
+        "Input/cthead1-Float.mha"
+      ]
+    },
+    {
+      "tag" : "Interpolator_LabelGaussian",
+      "description" : "default",
+      "md5hash" : "71b8af9e6617446ce60e89f588b352e0",
+      "settings" : [
+        {
+          "parameter" : "ExpandFactor",
+          "type" : "unsigned int",
+          "no_get_method" : 1,
+          "value" : "4"
+        },
+        {
+          "parameter" : "Interpolator",
+          "value" : "itk::simple::sitkLabelGaussian",
+          "lua_value" : "SimpleITK.sitkLabelGaussian",
+          "python_value" : "SimpleITK.sitkLabelGaussian",
+          "ruby_value" : "Simpleitk::SitkLabelGaussian",
+          "java_value" : "InterpolatorEnum.sitkLabelGaussian",
+          "tcl_value" : "$$sitkLabelGaussian",
+          "csharp_value" : "InterpolatorEnum.sitkLabelGaussian",
+          "R_value" : "'sitkLabelGaussian'"
+        }
+      ],
+      "inputs" : [
+        "Input/2th_cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Expand the size of an image by an integer factor in each dimension.",
+  "detaileddescription" : "ExpandImageFilter increases the size of an image by an integer factor in each dimension using a interpolation method. The output image size in each dimension is given by:\n\nOutputSize[j] = InputSize[j] * ExpandFactors[j]\n\nThe output values are obtained by interpolating the input image. The default interpolation type used is the LinearInterpolateImageFunction . The user can specify a particular interpolation function via SetInterpolator() . Note that the inpu [...]
+  "itk_module" : "ITKImageGrid",
+  "itk_group" : "ImageGrid"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ExtractImageFilter.json b/Code/BasicFilters/json/ExtractImageFilter.json
new file mode 100644
index 0000000..adcee5f
--- /dev/null
+++ b/Code/BasicFilters/json/ExtractImageFilter.json
@@ -0,0 +1,120 @@
+{
+  "name" : "ExtractImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Extract image filter extracts a 2D image from a 2D or 3D image and a 3D image from a 4D image. If the same dimension output is required then the RegionOfInterestFilter should be used.",
+  "pixel_types" : "NonLabelPixelIDTypeList",
+  "filter_type" : "itk::ExtractImageFilter<InputImageType, typename InputImageType::template Rebind<typename InputImageType::PixelType, (InputImageType::ImageDimension-1<2?2:InputImageType::ImageDimension-1)>::Type >",
+  "custom_register" : " this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 4 > ();\n  this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 3 > ();\n  this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 2 > ();",
+  "members" : [
+    {
+      "name" : "Size",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(4, 1)",
+      "dim_vec" : 1,
+      "itk_type" : "typename InputImageType::SizeType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "",
+      "custom_itk_cast" : ""
+    },
+    {
+      "name" : "Index",
+      "type" : "int",
+      "default" : "std::vector<int>(4, 0)",
+      "dim_vec" : 1,
+      "itk_type" : "typename InputImageType::IndexType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "\todo the internal setting of the method needs work!!!",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "",
+      "custom_itk_cast" : " typename InputImageType::RegionType itkRegion;\n  for( unsigned int i = 0; i < inImage1.GetDimension(); ++i )\n    {\n    itkRegion.SetIndex( i, m_Index[i] );\n    itkRegion.SetSize( i, m_Size[i] );\n    }\n  filter->SetExtractionRegion( itkRegion );"
+    },
+    {
+      "name" : "DirectionCollapseToStrategy",
+      "enum" : [
+        "DIRECTIONCOLLAPSETOUNKOWN",
+        "DIRECTIONCOLLAPSETOIDENTITY",
+        "DIRECTIONCOLLAPSETOSUBMATRIX",
+        "DIRECTIONCOLLAPSETOGUESS"
+      ],
+      "default" : "itk::simple::ExtractImageFilter::DIRECTIONCOLLAPSETOGUESS",
+      "itk_type" : "typename FilterType::DirectionCollapseStrategyEnum",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the strategy to be used to collapse physical space dimensions.\n\nitk::itkExtractImageFilter::DIRECTIONCOLLAPSETOIDENTITY Set the strategy so that all collapsed images have an identity direction. Use this strategy when you know that retention of the physical space orientation of the collapsed image is not important.\n\nitk::itkExtractImageFilter::DIRECTIONCOLLAPSETOGUESS Set the strategy so that all collapsed images where output direction is the sub- [...]
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "NOTE: The SetDirectionCollapseToUknown is explicitly not defined. It is a state that a filter can be in only when it is first instantiate prior to being initialized. Get the currently set strategy for collapsing directions of physical space."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "use the defaults on a 2D image",
+      "md5hash" : "93b885adfe0da089cdf634904fd59f71",
+      "settings" : [
+        {
+          "parameter" : "DirectionCollapseToStrategy",
+          "value" : "itk::simple::${name}::DIRECTIONCOLLAPSETOIDENTITY",
+          "lua_value" : "SimpleITK.${name}_DIRECTIONCOLLAPSETOIDENTITY",
+          "python_value" : "SimpleITK.${name}.DIRECTIONCOLLAPSETOIDENTITY",
+          "ruby_value" : "Simpleitk::${name}::DIRECTIONCOLLAPSETOIDENTITY",
+          "java_value" : "${name}.DirectionCollapseToStrategyType.DIRECTIONCOLLAPSETOIDENTITY",
+          "tcl_value" : "$$${name}_DIRECTIONCOLLAPSETOIDENTITY",
+          "csharp_value" : "itk.simple.${name}.DirectionCollapseToStrategyType.DIRECTIONCOLLAPSETOIDENTITY",
+          "R_value" : "'DIRECTIONCOLLAPSETOIDENTITY'"
+        }
+      ],
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    },
+    {
+      "tag" : "more",
+      "description" : "croping",
+      "md5hash" : "01bae0803fe74512dbd9d00fc8da4879",
+      "no_procedure" : 1,
+      "settings" : [
+        {
+          "parameter" : "Size",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            10,
+            0,
+            10
+          ]
+        },
+        {
+          "parameter" : "Index",
+          "type" : "int",
+          "dim_vec" : 1,
+          "value" : [
+            16,
+            20,
+            51
+          ]
+        },
+        {
+          "parameter" : "DirectionCollapseToStrategy",
+          "value" : "itk::simple::${name}::DIRECTIONCOLLAPSETOIDENTITY",
+          "lua_value" : "SimpleITK.${name}_DIRECTIONCOLLAPSETOIDENTITY",
+          "python_value" : "SimpleITK.${name}.DIRECTIONCOLLAPSETOIDENTITY",
+          "ruby_value" : "Simpleitk::${name}::DIRECTIONCOLLAPSETOIDENTITY",
+          "java_value" : "${name}.DirectionCollapseToStrategyType.DIRECTIONCOLLAPSETOIDENTITY",
+          "tcl_value" : "$$${name}_DIRECTIONCOLLAPSETOIDENTITY",
+          "csharp_value" : "itk.simple.${name}.DirectionCollapseToStrategyType.DIRECTIONCOLLAPSETOIDENTITY",
+          "R_value" : "'DIRECTIONCOLLAPSETOIDENTITY'"
+        }
+      ],
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Decrease the image size by cropping the image to the selected region bounds.",
+  "detaileddescription" : "ExtractImageFilter changes the image boundary of an image by removing pixels outside the target region. The target region must be specified.\n\nExtractImageFilter also collapses dimensions so that the input image may have more dimensions than the output image (i.e. 4-D input image to a 3-D output image). To specify what dimensions to collapse, the ExtractionRegion must be specified. For any dimension dim where ExtractionRegion.Size[dim] = 0, that dimension is c [...]
+  "itk_module" : "ITKCommon",
+  "itk_group" : "Common"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/FFTConvolutionImageFilter.json b/Code/BasicFilters/json/FFTConvolutionImageFilter.json
new file mode 100644
index 0000000..b5998fc
--- /dev/null
+++ b/Code/BasicFilters/json/FFTConvolutionImageFilter.json
@@ -0,0 +1,59 @@
+{
+  "name" : "FFTConvolutionImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "include_files" : [
+    "sitkBoundaryConditions.hxx"
+  ],
+  "custom_set_input" : "filter->SetInput( image1 ); filter->SetKernelImage( image2 );",
+  "members" : [
+    {
+      "name" : "Normalize",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Normalize the output image by the sum of the kernel components\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "BoundaryCondition",
+      "enum" : [
+        "ZERO_PAD",
+        "ZERO_FLUX_NEUMANN_PAD",
+        "PERIODIC_PAD"
+      ],
+      "default" : "itk::simple::FFTConvolutionImageFilter::ZERO_FLUX_NEUMANN_PAD",
+      "custom_itk_cast" : "nsstd::auto_ptr< ImageBoundaryCondition< InputImageType > > bc( CreateNewBoundaryConditionInstance< Self, FilterType >( m_BoundaryCondition ) ); filter->SetBoundaryCondition( bc.get() );\n"
+    },
+    {
+      "name" : "OutputRegionMode",
+      "enum" : [
+        "SAME",
+        "VALID"
+      ],
+      "default" : "itk::simple::FFTConvolutionImageFilter::SAME",
+      "itk_type" : "typename FilterType::OutputRegionModeType"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Basic convolution with gaussian",
+      "settings" : [],
+      "tolerance" : "0.0001",
+      "inputs" : [
+        "Input/cthead1-Float.mha",
+        "Input/Gaussian_1.5.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Convolve a given image with an arbitrary image kernel using multiplication in the Fourier domain.",
+  "detaileddescription" : "This filter produces output equivalent to the output of the ConvolutionImageFilter . However, it takes advantage of the convolution theorem to accelerate the convolution computation when the kernel is large.\n\n\\warning This filter ignores the spacing, origin, and orientation of the kernel image and treats them as identical to those in the input image.\n\nThis code was adapted from the Insight Journal contribution:\n\n\"FFT Based Convolution\" by Gaetan Lehman [...]
+  "itk_module" : "ITKConvolution",
+  "itk_group" : "Convolution"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/FFTNormalizedCorrelationImageFilter.json b/Code/BasicFilters/json/FFTNormalizedCorrelationImageFilter.json
new file mode 100644
index 0000000..09bdb18
--- /dev/null
+++ b/Code/BasicFilters/json/FFTNormalizedCorrelationImageFilter.json
@@ -0,0 +1,60 @@
+{
+  "name" : "FFTNormalizedCorrelationImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 2,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_pixel_type" : "typename itk::NumericTraits<typename InputImageType::PixelType>::RealType",
+  "filter_type" : "itk::FFTNormalizedCorrelationImageFilter<InputImageType, OutputImageType>",
+  "custom_set_input" : "filter->SetFixedImage( image1 ); filter->SetMovingImage(image2 );",
+  "members" : [
+    {
+      "name" : "RequiredNumberOfOverlappingPixels",
+      "type" : "uint64_t",
+      "default" : "0u"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Basic xcorr with and odd kernel",
+      "settings" : [],
+      "tolerance" : "0.0002",
+      "inputs" : [
+        "Input/DeconvolutionInput.nrrd",
+        "Input/Gaussian_1.5.nrrd"
+      ]
+    },
+    {
+      "tag" : "EvenKernel",
+      "description" : "Basic xcorr with an even kernel",
+      "settings" : [],
+      "tolerance" : "0.0001",
+      "inputs" : [
+        "Input/DeconvolutionInput.nrrd",
+        "Input/DeconvolutionKernel.nrrd"
+      ]
+    },
+    {
+      "tag" : "3D",
+      "description" : "Basic xcorr with an even kernel",
+      "settings" : [
+        {
+          "parameter" : "RequiredNumberOfOverlappingPixels",
+          "type" : "uint64_t",
+          "cxx_value" : "15000u",
+          "value" : "15000"
+        }
+      ],
+      "tolerance" : "0.0001",
+      "inputs" : [
+        "Input/OAS1_0001_MR1_mpr-1_anon.nrrd",
+        "Input/OAS1_0002_MR1_mpr-1_anon.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Calculate normalized cross correlation using FFTs.",
+  "detaileddescription" : "This filter calculates the normalized cross correlation (NCC) of two images using FFTs instead of spatial correlation. It is much faster than spatial correlation for reasonably large structuring elements. This filter is a subclass of the more general MaskedFFTNormalizedCorrelationImageFilter and operates by essentially setting the masks in that algorithm to images of ones. As described in detail in the references below, there is no computational overhead to uti [...]
+  "itk_module" : "ITKConvolution",
+  "itk_group" : "Convolution"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/FFTPadImageFilter.json b/Code/BasicFilters/json/FFTPadImageFilter.json
new file mode 100644
index 0000000..b89f234
--- /dev/null
+++ b/Code/BasicFilters/json/FFTPadImageFilter.json
@@ -0,0 +1,71 @@
+{
+  "name" : "FFTPadImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "include_files" : [
+    "sitkBoundaryConditions.hxx"
+  ],
+  "members" : [
+    {
+      "name" : "BoundaryCondition",
+      "enum" : [
+        "ZERO_PAD",
+        "ZERO_FLUX_NEUMANN_PAD",
+        "PERIODIC_PAD"
+      ],
+      "default" : "itk::simple::FFTPadImageFilter::ZERO_FLUX_NEUMANN_PAD",
+      "custom_itk_cast" : "nsstd::auto_ptr< ImageBoundaryCondition< InputImageType > > bc( CreateNewBoundaryConditionInstance< Self, FilterType >( m_BoundaryCondition ) ); filter->SetBoundaryCondition( bc.get() );\n"
+    },
+    {
+      "name" : "SizeGreatestPrimeFactor",
+      "type" : "int",
+      "default" : "5",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the greatest prime factor allowed on the size of the padded image. The filter increase the size of the image to reach a size with the greatest prime factor smaller or equal to the specified value. The default value is 13, which is the greatest prime number for which the FFT are precomputed in FFTW, and thus gives very good performance. A greatest prime factor of 2 produce a size which is a power of 2, and thus is suitable for vnl base fft filters [...]
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the greatest prime factor allowed on the size of the padded image. The filter increase the size of the image to reach a size with the greatest prime factor smaller or equal to the specified value. The default value is 13, which is the greatest prime number for which the FFT are precomputed in FFTW, and thus gives very good performance. A greatest prime factor of 2 produce a size which is a power of 2, and thus is suitable for vnl base fft filters [...]
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Test with default parameters",
+      "md5hash" : "7a033cbc1d72c7806a7be37c0a60932b",
+      "settings" : [],
+      "inputs" : [
+        "Input/BrainProtonDensitySlice.png"
+      ]
+    },
+    {
+      "tag" : "more",
+      "description" : "Test Periodic Pad",
+      "md5hash" : "5c4bebbdfb8a340cdb5347dac3d87046",
+      "settings" : [
+        {
+          "parameter" : "BoundaryCondition",
+          "value" : "itk::simple::${name}::PERIODIC_PAD",
+          "lua_value" : "SimpleITK.${name}_PERIODIC_PAD",
+          "python_value" : "SimpleITK.${name}.PERIODIC_PAD",
+          "ruby_value" : "Simpleitk::${name}::PERIODIC_PAD",
+          "java_value" : "${name}.BoundaryConditionType.PERIODIC_PAD",
+          "tcl_value" : "$$${name}_PERIODIC_PAD",
+          "csharp_value" : "${name}.BoundaryConditionType.PERIODIC_PAD",
+          "R_value" : "'PERIODIC_PAD'"
+        },
+        {
+          "parameter" : "SizeGreatestPrimeFactor",
+          "value" : "2"
+        }
+      ],
+      "inputs" : [
+        "Input/BrainProtonDensitySlice.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Pad an image to make it suitable for an FFT transformation.",
+  "detaileddescription" : "FFT filters usually requires a specific image size. The size is decomposed in several prime factors, and the filter only supports prime factors up to a maximum value. This filter automatically finds the greatest prime factor required by the available implementation and pads the input appropriately.\n\nThis code was adapted from the Insight Journal contribution:\n\n\"FFT Based Convolution\" by Gaetan Lehmann https://hdl.handle.net/10380/3154 \n\n\\author Gaetan  [...]
+  "itk_module" : "ITKFFT",
+  "itk_group" : "FFT"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/FFTShiftImageFilter.json b/Code/BasicFilters/json/FFTShiftImageFilter.json
new file mode 100644
index 0000000..937f23c
--- /dev/null
+++ b/Code/BasicFilters/json/FFTShiftImageFilter.json
@@ -0,0 +1,44 @@
+{
+  "name" : "FFTShiftImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "NonLabelPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Inverse",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the filter must invert the transform or not. This option has no effect if none of the size of the input image is even, but is required to restore the original image if at least one of the dimensions has an odd size.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the filter must invert the transform or not. This option has no effect if none of the size of the input image is even, but is required to restore the original image if at least one of the dimensions has an odd size."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults_complex",
+      "description" : "Test FFTShift complex",
+      "md5hash" : "9b4b0f11dd58a03d94d0e246e14cf63d",
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-FFT-Complex.nrrd"
+      ]
+    },
+    {
+      "tag" : "defaults_float",
+      "description" : "Test FFTShift float",
+      "md5hash" : "94409cf6d85e17a3dba2f2aba214d4ac",
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-Slice-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Shift the zero-frequency components of a Fourier transform to the center of the image.",
+  "detaileddescription" : "The Fourier transform produces an image where the zero frequency components are in the corner of the image, making it difficult to understand. This filter shifts the component to the center of the image.\n\n\\note For images with an odd-sized dimension, applying this filter twice will not produce the same image as the original one without using SetInverse(true) on one (and only one) of the two filters.\n\nhttps://hdl.handle.net/1926/321 \n\n\\author Gaetan Lehm [...]
+  "itk_module" : "ITKFFT",
+  "itk_group" : "FFT"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/FastApproximateRankImageFilter.json b/Code/BasicFilters/json/FastApproximateRankImageFilter.json
new file mode 100644
index 0000000..1e34bde
--- /dev/null
+++ b/Code/BasicFilters/json/FastApproximateRankImageFilter.json
@@ -0,0 +1,77 @@
+{
+  "name" : "FastApproximateRankImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Rank",
+      "type" : "double",
+      "default" : "0.5",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "Radius",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 1)",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "doc" : "",
+      "itk_type" : "typename FilterType::RadiusType"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "default",
+      "md5hash" : "8b86ebe8c8eb3ea42c7838f3d66155aa",
+      "settings" : [],
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    },
+    {
+      "tag" : "by23",
+      "description" : "Test by 23",
+      "md5hash" : "67615832b6f0e0bb877ce03418d3328c",
+      "settings" : [
+        {
+          "parameter" : "Rank",
+          "type" : "double",
+          "value" : "1.0"
+        },
+        {
+          "parameter" : "Radius",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            2,
+            3
+          ]
+        }
+      ],
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    },
+    {
+      "tag" : "Vector",
+      "description" : "Vector image",
+      "md5hash" : "ab252b5b4214aa0653de26e33ea2c822",
+      "settings" : [],
+      "inputs" : [
+        "Input/VM1111Shrink-RGBFloat.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "A separable rank filter.",
+  "detaileddescription" : "Medians aren't separable, but if you want a large robust smoother to be relatively quick then it is worthwhile pretending that they are.\n\nThis code was contributed in the Insight Journal paper: \"Efficient implementation of kernel filtering\" by Beare R., Lehmann G https://hdl.handle.net/1926/555 http://www.insight-journal.org/browse/publication/160 \n\n\\author Richard Beare",
+  "itk_module" : "ITKReview",
+  "itk_group" : "Review"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/FastMarchingBaseImageFilter.json b/Code/BasicFilters/json/FastMarchingBaseImageFilter.json
new file mode 100644
index 0000000..23d3cdf
--- /dev/null
+++ b/Code/BasicFilters/json/FastMarchingBaseImageFilter.json
@@ -0,0 +1,90 @@
+{
+  "name" : "FastMarchingBaseImageFilter",
+  "itk_name" : "FastMarchingImageFilterBase",
+  "include_files" : [
+    "itkFastMarchingThresholdStoppingCriterion.h"
+  ],
+  "template_code_filename" : "FastMarchingImageFilter",
+  "number_of_inputs" : 1,
+  "template_test_filename" : "ImageFilter",
+  "output_pixel_type" : "float",
+  "doc" : "Docs",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "NormalizationFactor",
+      "type" : "double",
+      "default" : "1.0",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the Normalization Factor for the Speed Image . The values in the Speed Image is divided by this factor. This allows the use of images with integer pixel types to represent the speed.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the Normalization Factor for the Speed Image . The values in the Speed Image is divided by this factor. This allows the use of images with integer pixel types to represent the speed."
+    },
+    {
+      "name" : "StoppingValue",
+      "type" : "double",
+      "default" : "std::numeric_limits<float>::max()/2.0",
+      "custom_itk_cast" : "typedef itk::FastMarchingThresholdStoppingCriterion< InputImageType, OutputImageType > CriterionType;\ntypename CriterionType::Pointer criterion = CriterionType::New();\ncriterion->SetThreshold( m_StoppingValue );\nfilter->SetStoppingCriterion( criterion );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the Fast Marching algorithm Stopping Value. The Fast Marching algorithm is terminated when the value of the smallest trial point is greater than the stopping value.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the Fast Marching algorithm Stopping Value."
+    },
+    {
+      "name" : "TopologyCheck",
+      "enum" : [
+        "Nothing",
+        "NoHandles",
+        "Strict"
+      ],
+      "default" : "itk::simple::FastMarchingBaseImageFilter::Nothing",
+      "doc" : "",
+      "itk_type" : "typename FilterType::TopologyCheckType"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Default parameter settings",
+      "md5hash" : "b4b628f078fdfd7c14c55b1aed24e72a",
+      "settings" : [
+        {
+          "parameter" : "TrialPoints",
+          "dim" : 2,
+          "value" : [
+            "{70,70}",
+            "{200,180}"
+          ],
+          "tcl_value" : [
+            "70 70",
+            "200 180"
+          ],
+          "python_value" : [
+            "[70,70]",
+            "[200,180]"
+          ],
+          "ruby_value" : [
+            "[70,70]",
+            "[200,180]"
+          ],
+          "R_value" : "list(c(70,70), c(200,180))"
+        },
+        {
+          "parameter" : "NormalizationFactor",
+          "value" : 255.0
+        },
+        {
+          "parameter" : "StoppingValue",
+          "value" : 50.0
+        }
+      ],
+      "inputs" : [
+        "Input/cthead1-Float.mha"
+      ]
+    }
+  ],
+  "briefdescription" : "Fast Marching Method on Image .",
+  "detaileddescription" : "The speed function can be specified as a speed image or a speed constant. The speed image is set using the method SetInput(). If the speed image is ITK_NULLPTR, a constant speed function is used and is specified using method the SetSpeedConstant() .\n\nIf the speed function is constant and of value one, fast marching results is an approximate distance function from the initial alive points.\n\nThere are two ways to specify the output image information ( Largest [...]
+  "itk_module" : "ITKFastMarching",
+  "itk_group" : "FastMarching"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/FastMarchingImageFilter.json b/Code/BasicFilters/json/FastMarchingImageFilter.json
new file mode 100644
index 0000000..6060681
--- /dev/null
+++ b/Code/BasicFilters/json/FastMarchingImageFilter.json
@@ -0,0 +1,86 @@
+{
+  "name" : "FastMarchingImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "output_pixel_type" : "typename itk::NumericTraits<typename InputImageType::PixelType>::RealType",
+  "filter_type" : "itk::FastMarchingImageFilter<OutputImageType,InputImageType>",
+  "doc" : "Docs",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "TrialPoints",
+      "type" : "unsigned int",
+      "point_vec" : 1,
+      "default" : "std::vector< std::vector<unsigned int > >()",
+      "custom_itk_cast" : "  typedef typename FilterType::NodeType      NodeType;\n  typedef typename FilterType::NodeContainer NodeContainerType;\n\n  typename NodeContainerType::Pointer trialPoints = NodeContainerType::New();\n  trialPoints->reserve( m_TrialPoints.size() );\n\n  for (unsigned int i = 0; i < m_TrialPoints.size(); ++i)\n    {\n    NodeType node;\n\n    typename NodeType::IndexType index = sitkSTLVectorToITK<typename NodeType::IndexType>( m_TrialPoints[i] );\n    node.Set [...]
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the container of Trial Points representing the initial front. Trial points are represented as a VectorContainer of LevelSetNodes.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the container of Trial Points representing the initial front."
+    },
+    {
+      "name" : "NormalizationFactor",
+      "type" : "double",
+      "default" : "1.0",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the Normalization Factor for the Speed Image . The values in the Speed Image is divided by this factor. This allows the use of images with integer pixel types to represent the speed.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the Normalization Factor for the Speed Image . The values in the Speed Image is divided by this factor. This allows the use of images with integer pixel types to represent the speed."
+    },
+    {
+      "name" : "StoppingValue",
+      "type" : "double",
+      "default" : "std::numeric_limits<double>::max()/2.0",
+      "detaileddescriptionSet" : "Set the Fast Marching algorithm Stopping Value. The Fast Marching algorithm is terminated when the value of the smallest trial point is greater than the stopping value.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the Fast Marching algorithm Stopping Value.",
+      "briefdescriptionSet" : ""
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Default parameter settings",
+      "tolerance" : 1e-10,
+      "settings" : [
+        {
+          "parameter" : "TrialPoints",
+          "dim" : 2,
+          "value" : [
+            "{70,70}",
+            "{200,180}"
+          ],
+          "tcl_value" : [
+            "70 70",
+            "200 180"
+          ],
+          "python_value" : [
+            "[70,70]",
+            "[200,180]"
+          ],
+          "ruby_value" : [
+            "[70,70]",
+            "[200,180]"
+          ],
+          "R_value" : "list(c(70,70), c(200,180))"
+        },
+        {
+          "parameter" : "NormalizationFactor",
+          "value" : 255.0
+        },
+        {
+          "parameter" : "StoppingValue",
+          "value" : 50.0
+        }
+      ],
+      "inputs" : [
+        "Input/cthead1-Float.mha"
+      ]
+    }
+  ],
+  "briefdescription" : "Solve an Eikonal equation using Fast Marching.",
+  "detaileddescription" : "Fast marching solves an Eikonal equation where the speed is always non-negative and depends on the position only. Starting from an initial position on the front, fast marching systematically moves the front forward one grid point at a time.\n\nUpdates are preformed using an entropy satisfy scheme where only \"upwind\" neighborhoods are used. This implementation of Fast Marching uses a std::priority_queue to locate the next proper grid position to update.\n\nFas [...]
+  "itk_module" : "ITKFastMarching",
+  "itk_group" : "FastMarching"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/FastMarchingUpwindGradientImageFilter.json b/Code/BasicFilters/json/FastMarchingUpwindGradientImageFilter.json
new file mode 100644
index 0000000..f80ad99
--- /dev/null
+++ b/Code/BasicFilters/json/FastMarchingUpwindGradientImageFilter.json
@@ -0,0 +1,117 @@
+{
+  "name" : "FastMarchingUpwindGradientImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "output_pixel_type" : "typename itk::NumericTraits<typename InputImageType::PixelType>::RealType",
+  "filter_type" : "itk::FastMarchingUpwindGradientImageFilter<OutputImageType,InputImageType>",
+  "doc" : "Docs",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "TrialPoints",
+      "type" : "unsigned int",
+      "point_vec" : 1,
+      "default" : "std::vector< std::vector<unsigned int > >()",
+      "custom_itk_cast" : "  typedef typename FilterType::NodeType      NodeType;\n  typedef typename FilterType::NodeContainer NodeContainerType;\n\n  typename NodeContainerType::Pointer trialPoints = NodeContainerType::New();\n  trialPoints->reserve( m_TrialPoints.size() );\n\n  for (unsigned int i = 0; i < m_TrialPoints.size(); ++i)\n    {\n    NodeType node;\n\n    typename NodeType::IndexType index = sitkSTLVectorToITK<typename NodeType::IndexType>( m_TrialPoints[i] );\n    node.Set [...]
+    },
+    {
+      "name" : "NumberOfTargets",
+      "type" : "unsigned int",
+      "default" : "0u",
+      "custom_itk_cast" : "if (this->m_NumberOfTargets==0) {filter->SetTargetReachedModeToNoTargets();}\n    else if (this->m_NumberOfTargets==1) {filter->SetTargetReachedModeToOneTarget();} else {filter->SetTargetReachedModeToSomeTargets(std::min<size_t>(this->m_TargetPoints.size(), this->m_NumberOfTargets));}",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the number of targets."
+    },
+    {
+      "name" : "TargetPoints",
+      "type" : "unsigned int",
+      "point_vec" : 1,
+      "default" : "std::vector< std::vector<unsigned int > >()",
+      "custom_itk_cast" : "  typedef typename FilterType::NodeType      NodeType;\n  typedef typename FilterType::NodeContainer NodeContainerType;\n\n  typename NodeContainerType::Pointer targetPoints = NodeContainerType::New();\n  targetPoints->reserve( m_TargetPoints.size() );\n\n  for (unsigned int i = 0; i < m_TargetPoints.size(); ++i)\n    {\n    NodeType node;\n\n    typename NodeType::IndexType index = sitkSTLVectorToITK<typename NodeType::IndexType>( m_TargetPoints[i] );\n    nod [...]
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the container of Target Points. If a target point is reached, the propagation stops. Trial points are represented as a VectorContainer of LevelSetNodes.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the container of Target Points."
+    },
+    {
+      "name" : "TargetOffset",
+      "type" : "double",
+      "default" : 1.0,
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set how long (in terms of arrival times) after targets are reached the front must stop. This is useful to ensure that the level set of target arrival time is smooth.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the TargetOffset ivar."
+    },
+    {
+      "name" : "NormalizationFactor",
+      "type" : "double",
+      "default" : "1.0",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the Normalization Factor for the Speed Image . The values in the Speed Image is divided by this factor. This allows the use of images with integer pixel types to represent the speed.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the Normalization Factor for the Speed Image . The values in the Speed Image is divided by this factor. This allows the use of images with integer pixel types to represent the speed."
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "GradientImage",
+      "type" : "Image",
+      "default" : "Image()",
+      "custom_itk_cast" : "this->CastITKToImage(filter->GetGradientImage().GetPointer());",
+      "briefdescriptionGet" : "",
+      "no_print" : true,
+      "detaileddescriptionGet" : "Get the gradient image."
+    },
+    {
+      "name" : "TargetValue",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the arrival time corresponding to the last reached target. If TargetReachedMode is set to NoTargets, TargetValue contains the last (aka largest) Eikonal solution value generated."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Default parameter settings",
+      "tolerance" : 1e-06,
+      "settings" : [
+        {
+          "parameter" : "TrialPoints",
+          "dim" : 2,
+          "value" : [
+            "{70,70}",
+            "{200,180}"
+          ],
+          "tcl_value" : [
+            "70 70",
+            "200 180"
+          ],
+          "python_value" : [
+            "[70,70]",
+            "[200,180]"
+          ],
+          "ruby_value" : [
+            "[70,70]",
+            "[200,180]"
+          ],
+          "R_value" : "list(c(70,70), c(200,180))"
+        },
+        {
+          "parameter" : "NormalizationFactor",
+          "value" : 255.0
+        }
+      ],
+      "inputs" : [
+        "Input/cthead1-Float.mha"
+      ]
+    }
+  ],
+  "briefdescription" : "Generates the upwind gradient field of fast marching arrival times.",
+  "detaileddescription" : "This filter adds some extra functionality to its base class. While the solution T(x) of the Eikonal equation is being generated by the base class with the fast marching method, the filter generates the upwind gradient vectors of T(x), storing them in an image.\n\nSince the Eikonal equation generates the arrival times of a wave travelling at a given speed, the generated gradient vectors can be interpreted as the slowness (1/velocity) vectors of the front (the qu [...]
+  "itk_module" : "ITKFastMarching",
+  "itk_group" : "FastMarching"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/FastSymmetricForcesDemonsRegistrationFilter.json b/Code/BasicFilters/json/FastSymmetricForcesDemonsRegistrationFilter.json
new file mode 100644
index 0000000..af239e8
--- /dev/null
+++ b/Code/BasicFilters/json/FastSymmetricForcesDemonsRegistrationFilter.json
@@ -0,0 +1,213 @@
+{
+  "name" : "FastSymmetricForcesDemonsRegistrationFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "no_procedure" : "1",
+  "number_of_inputs" : 0,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_image_type" : "itk::Image< Vector<double, TImageType::ImageDimension>, TImageType::ImageDimension >",
+  "filter_type" : "itk::FastSymmetricForcesDemonsRegistrationFilter<TImageType, TImageType, OutputImageType>",
+  "include_files" : [
+    "sitkImageConvert.h"
+  ],
+  "inputs" : [
+    {
+      "name" : "FixedImage",
+      "type" : "Image",
+      "custom_itk_cast" : "filter->SetFixedImage( this->CastImageToITK<typename FilterType::FixedImageType>(*inFixedImage) );"
+    },
+    {
+      "name" : "MovingImage",
+      "type" : "Image"
+    },
+    {
+      "name" : "InitialDisplacementField",
+      "type" : "Image",
+      "optional" : true,
+      "custom_itk_cast" : "  typedef itk::VectorImage<double, FilterType::DisplacementFieldType::ImageDimension> VectorImageType;\n      filter->SetInitialDisplacementField( GetImageFromVectorImage(const_cast<VectorImageType*>(CastImageToITK<VectorImageType>(*inInitialDisplacementField).GetPointer()) ) );"
+    }
+  ],
+  "members" : [
+    {
+      "name" : "StandardDeviations",
+      "type" : "double",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "default" : "std::vector<double>(3, 1.0)",
+      "itk_type" : "typename FilterType::StandardDeviationsType",
+      "detaileddescriptionSet" : "Set/Get the Gaussian smoothing standard deviations for the displacement field. The values are set with respect to pixel coordinates.",
+      "detaileddescriptionGet" : "Set/Get the Gaussian smoothing standard deviations for the displacement field. The values are set with respect to pixel coordinates."
+    },
+    {
+      "name" : "NumberOfIterations",
+      "type" : "uint32_t",
+      "default" : "10u",
+      "doc" : "Number of iterations to run"
+    },
+    {
+      "name" : "MaximumRMSError",
+      "type" : "double",
+      "default" : 0.02,
+      "doc" : "Value of RMS change below which the filter should stop. This is a convergence criterion."
+    },
+    {
+      "name" : "UseGradientType",
+      "enum" : [
+        "Symmetric",
+        "Fixed",
+        "WarpedMoving",
+        "MappedMoving"
+      ],
+      "default" : "itk::simple::FastSymmetricForcesDemonsRegistrationFilter::Symmetric",
+      "custom_itk_cast" : "filter->SetUseGradientType( static_cast<typename FilterType::GradientType>( this->GetUseGradientType()) );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MaximumUpdateStepLength",
+      "type" : "double",
+      "default" : 0.5,
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "SmoothDisplacementField",
+      "type" : "bool",
+      "default" : true,
+      "detaileddescriptionSet" : "Set/Get whether the displacement field is smoothed (regularized). Smoothing the displacement yields a solution elastic in nature. If SmoothDisplacementField is on, then the displacement field is smoothed with a Gaussian whose standard deviations are specified with SetStandardDeviations()",
+      "detaileddescriptionGet" : "Set/Get whether the displacement field is smoothed (regularized). Smoothing the displacement yields a solution elastic in nature. If SmoothDisplacementField is on, then the displacement field is smoothed with a Gaussian whose standard deviations are specified with SetStandardDeviations()"
+    },
+    {
+      "name" : "SmoothUpdateField",
+      "type" : "bool",
+      "default" : false,
+      "detaileddescriptionSet" : "Set/Get whether the update field is smoothed (regularized). Smoothing the update field yields a solution viscous in nature. If SmoothUpdateField is on, then the update field is smoothed with a Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()",
+      "detaileddescriptionGet" : "Set/Get whether the update field is smoothed (regularized). Smoothing the update field yields a solution viscous in nature. If SmoothUpdateField is on, then the update field is smoothed with a Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()"
+    },
+    {
+      "name" : "UpdateFieldStandardDeviations",
+      "type" : "double",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "default" : "std::vector<double>(3, 1.0)",
+      "itk_type" : "typename FilterType::StandardDeviationsType",
+      "detaileddescriptionSet" : "Set the Gaussian smoothing standard deviations for the update field. The values are set with respect to pixel coordinates.",
+      "detaileddescriptionGet" : "Set the Gaussian smoothing standard deviations for the update field. The values are set with respect to pixel coordinates."
+    },
+    {
+      "name" : "MaximumKernelWidth",
+      "type" : "unsigned int",
+      "default" : "30u",
+      "detaileddescriptionSet" : "Set/Get the desired limits of the Gaussian kernel width.",
+      "detaileddescriptionGet" : "Set/Get the desired limits of the Gaussian kernel width."
+    },
+    {
+      "name" : "MaximumError",
+      "type" : "double",
+      "default" : "0.1",
+      "detaileddescriptionSet" : "Set/Get the desired maximum error of the Guassian kernel approximate.",
+      "detaileddescriptionGet" : "Set/Get the desired maximum error of the Guassian kernel approximate."
+    },
+    {
+      "name" : "IntensityDifferenceThreshold",
+      "type" : "double",
+      "default" : "0.001",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the threshold below which the absolute difference of intensity yields a match. When the intensities match between a moving and fixed image pixel, the update vector (for that iteration) will be the zero vector. Default is 0.001.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "UseImageSpacing",
+      "type" : "bool",
+      "default" : true
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "ElapsedIterations",
+      "active" : true,
+      "type" : "uint32_t",
+      "default" : 0,
+      "briefdescriptionGet" : "Number of iterations run."
+    },
+    {
+      "name" : "RMSChange",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the root mean squared change of the previous iteration. May not be used by all solvers."
+    },
+    {
+      "name" : "Metric",
+      "type" : "double",
+      "active" : true,
+      "default" : 0.0,
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the metric value. The metric value is the mean square difference in intensity between the fixed image and transforming moving image computed over the the overlapping region between the two images. This value is calculated for the current iteration"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "2d",
+      "description" : "2D",
+      "settings" : [],
+      "tolerance" : "1e-3",
+      "inputs" : [
+        "Input/BrainProtonDensitySliceBorder20.png",
+        "Input/BrainProtonDensitySliceBSplined10.png"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "ElapsedIterations",
+          "value" : "10u"
+        },
+        {
+          "name" : "RMSChange",
+          "value" : 0.288325,
+          "tolerance" : 1e-05
+        },
+        {
+          "name" : "Metric",
+          "value" : 492.46166170748455,
+          "tolerance" : 0.0001
+        }
+      ]
+    },
+    {
+      "tag" : "2d_with_initial",
+      "description" : "2D With Initial Displacement",
+      "settings" : [],
+      "tolerance" : "1e-8",
+      "inputs" : [
+        "Input/BrainProtonDensitySliceBorder20.png",
+        "Input/BrainProtonDensitySliceBSplined10.png",
+        "Input/BrainProtonDensitySlice20InitialDisplacement.mha"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "ElapsedIterations",
+          "value" : "10u"
+        },
+        {
+          "name" : "RMSChange",
+          "value" : 0.2879341,
+          "tolerance" : 1e-06
+        },
+        {
+          "name" : "Metric",
+          "value" : 365.72938,
+          "tolerance" : 0.0001
+        }
+      ]
+    }
+  ],
+  "briefdescription" : "Deformably register two images using a symmetric forces demons algorithm.",
+  "detaileddescription" : "This class was contributed by Tom Vercauteren, INRIA & Mauna Kea Technologies based on a variation of the DemonsRegistrationFilter .\n\nFastSymmetricForcesDemonsRegistrationFilter implements the demons deformable algorithm that register two images by computing the deformation field which will map a moving image onto a fixed image.\n\nA deformation field is represented as a image whose pixel type is some vector type with at least N elements, where N is the dimen [...]
+  "itk_module" : "ITKReview",
+  "itk_group" : "Review"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/FlipImageFilter.json b/Code/BasicFilters/json/FlipImageFilter.json
new file mode 100644
index 0000000..6ad1131
--- /dev/null
+++ b/Code/BasicFilters/json/FlipImageFilter.json
@@ -0,0 +1,70 @@
+{
+  "name" : "FlipImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "NonLabelPixelIDTypeList",
+  "filter_type" : "itk::FlipImageFilter< InputImageType >",
+  "members" : [
+    {
+      "dim_vec" : 1,
+      "name" : "FlipAxes",
+      "type" : "bool",
+      "default" : "std::vector<bool>(3, false)",
+      "doc" : "",
+      "itk_type" : "typename FilterType::FlipAxesArrayType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the axis to be flipped. The image is flipped along axes for which array[i] is true. Default is false.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the axis to be flipped. The image is flipped along axes for which array[i] is true. Default is false."
+    },
+    {
+      "name" : "FlipAboutOrigin",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Controls how the output origin is computed. If FlipAboutOrigin is \"On\", the flip will occur about the origin of the axis, otherwise, the flip will occur about the center of the axis. Default is \"On\".",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Controls how the output origin is computed. If FlipAboutOrigin is \"On\", the flip will occur about the origin of the axis, otherwise, the flip will occur about the center of the axis. Default is \"On\"."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Test Flip with default, should be the same as input image",
+      "md5hash" : "a963bd6a755b853103a2d195e01a50d3",
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    },
+    {
+      "tag" : "more",
+      "description" : "Another test",
+      "md5hash" : "4cb0ddf2b3ac01d997f38e581635cb65",
+      "settings" : [
+        {
+          "parameter" : "FlipAxes",
+          "type" : "bool",
+          "dim_vec" : 1,
+          "value" : [
+            "true",
+            "false",
+            "true"
+          ],
+          "python_value" : "( True, False, True )",
+          "R_value" : "c( TRUE, FALSE, TRUE )"
+        }
+      ],
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Flips an image across user specified axes.",
+  "detaileddescription" : "FlipImageFilter flips an image across user specified axes. The flip axes are set via method SetFlipAxes( array ) where the input is a FixedArray<bool,ImageDimension>. The image is flipped across axes for which array[i] is true.\n\nIn terms of grid coordinates the image is flipped within the LargestPossibleRegion of the input image. As such, the LargestPossibleRegion of the output image is the same as the input.\n\nIn terms of geometric coordinates, the output o [...]
+  "itk_module" : "ITKImageGrid",
+  "itk_group" : "ImageGrid"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ForwardFFTImageFilter.json b/Code/BasicFilters/json/ForwardFFTImageFilter.json
new file mode 100644
index 0000000..87bd4f2
--- /dev/null
+++ b/Code/BasicFilters/json/ForwardFFTImageFilter.json
@@ -0,0 +1,25 @@
+{
+  "name" : "ForwardFFTImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "RealPixelIDTypeList",
+  "filter_type" : "itk::ForwardFFTImageFilter<InputImageType>",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Test ForwardFFT",
+      "tolerance" : "0.09",
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-Slice-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Base class for forward Fast Fourier Transform .",
+  "detaileddescription" : "This is a base class for the \"forward\" or \"direct\" discrete Fourier Transform . This is an abstract base class: the actual implementation is provided by the best child class available on the system when the object is created via the object factory system.\n\nThis class transforms a real input image into its full complex Fourier transform. The Fourier transform of a real input image has Hermitian symmetry: \\f$ f(\\mathbf{x}) = f^*(-\\mathbf{x}) \\f$ . That  [...]
+  "itk_module" : "ITKFFT",
+  "itk_group" : "FFT"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/GaborImageSource.json b/Code/BasicFilters/json/GaborImageSource.json
new file mode 100644
index 0000000..7522faa
--- /dev/null
+++ b/Code/BasicFilters/json/GaborImageSource.json
@@ -0,0 +1,93 @@
+{
+  "name" : "GaborImageSource",
+  "template_code_filename" : "ImageSource",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "",
+  "number_of_inputs" : 0,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_image_type" : "TImageType",
+  "filter_type" : "itk::GaborImageSource<OutputImageType>",
+  "members" : [
+    {
+      "name" : "OutputPixelType",
+      "type" : "PixelIDValueEnum",
+      "default" : "itk::simple::sitkFloat32",
+      "custom_itk_cast" : ""
+    },
+    {
+      "name" : "Size",
+      "type" : "unsigned int",
+      "dim_vec" : 1,
+      "default" : "std::vector<unsigned int>(3, 64)",
+      "itk_type" : "typename FilterType::SizeType"
+    },
+    {
+      "name" : "Sigma",
+      "type" : "double",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "default" : "std::vector<double>(3, 16.0)",
+      "itk_type" : "typename FilterType::ArrayType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the the standard deviation in each direction.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the the standard deviation in each direction."
+    },
+    {
+      "name" : "Mean",
+      "type" : "double",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "default" : "std::vector<double>(3, 32.0)",
+      "itk_type" : "typename FilterType::ArrayType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the mean in each direction.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the mean in each direction."
+    },
+    {
+      "name" : "Frequency",
+      "type" : "double",
+      "default" : "0.4",
+      "itk_type" : "typename FilterType::ArrayType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the modulation frequency of the sine or cosine component.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the modulation frequency of the sine or cosine component."
+    },
+    {
+      "name" : "Origin",
+      "type" : "double",
+      "dim_vec" : 1,
+      "default" : "std::vector<double>(3, 0.0)",
+      "itk_type" : "typename FilterType::PointType"
+    },
+    {
+      "name" : "Spacing",
+      "type" : "double",
+      "dim_vec" : 1,
+      "default" : "std::vector<double>(3, 1.0)",
+      "itk_type" : "typename FilterType::SpacingType"
+    },
+    {
+      "name" : "Direction",
+      "type" : "std::vector<double>",
+      "default" : "std::vector<double>()",
+      "doc" : "Passing a zero sized array, defaults to identiy matrix. The size of the array must exactly match the direction matrix for the dimension of the image.",
+      "custom_itk_cast" : "filter->SetDirection( sitkSTLToITKDirection<typename FilterType::DirectionType>( this->m_Direction ) );"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : "1e-5",
+      "inputs" : []
+    }
+  ],
+  "briefdescription" : "Generate an n-dimensional image of a Gabor filter.",
+  "detaileddescription" : "GaborImageSource generates an image of either the real (i.e. symmetric) or complex (i.e. antisymmetric) part of the Gabor filter with the orientation directed along the x-axis. The GaborKernelFunction is used to evaluate the contribution along the x-axis whereas a non-normalized 1-D Gaussian envelope provides the contribution in each of the remaining N dimensions. Orientation can be manipulated via the Transform classes of the toolkit.\n\nThe output image may b [...]
+  "itk_module" : "ITKImageSources",
+  "itk_group" : "ImageSources"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/GaussianImageSource.json b/Code/BasicFilters/json/GaussianImageSource.json
new file mode 100644
index 0000000..4c4d3f4
--- /dev/null
+++ b/Code/BasicFilters/json/GaussianImageSource.json
@@ -0,0 +1,92 @@
+{
+  "name" : "GaussianImageSource",
+  "template_code_filename" : "ImageSource",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "",
+  "number_of_inputs" : 0,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_image_type" : "TImageType",
+  "filter_type" : "itk::GaussianImageSource<OutputImageType>",
+  "members" : [
+    {
+      "name" : "OutputPixelType",
+      "type" : "PixelIDValueEnum",
+      "default" : "itk::simple::sitkFloat32",
+      "custom_itk_cast" : ""
+    },
+    {
+      "name" : "Size",
+      "type" : "unsigned int",
+      "dim_vec" : 1,
+      "default" : "std::vector<unsigned int>(3, 64)",
+      "itk_type" : "typename FilterType::SizeType"
+    },
+    {
+      "name" : "Sigma",
+      "type" : "double",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "default" : "std::vector<double>(3, 16.0)",
+      "itk_type" : "typename FilterType::ArrayType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the standard deviation in each direction.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the standard deviation in each direction."
+    },
+    {
+      "name" : "Mean",
+      "type" : "double",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "default" : "std::vector<double>(3, 32.0)",
+      "itk_type" : "typename FilterType::ArrayType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the mean in each direction.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the mean in each direction."
+    },
+    {
+      "name" : "Scale",
+      "type" : "double",
+      "default" : "255",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Gets and sets for Gaussian parameters Set/Get the scale factor to multiply the true value of the Gaussian.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Gets and sets for Gaussian parameters Set/Get the scale factor to multiply the true value of the Gaussian."
+    },
+    {
+      "name" : "Origin",
+      "type" : "double",
+      "dim_vec" : 1,
+      "default" : "std::vector<double>(3, 0.0)",
+      "itk_type" : "typename FilterType::PointType"
+    },
+    {
+      "name" : "Spacing",
+      "type" : "double",
+      "dim_vec" : 1,
+      "default" : "std::vector<double>(3, 1.0)",
+      "itk_type" : "typename FilterType::SpacingType"
+    },
+    {
+      "name" : "Direction",
+      "type" : "std::vector<double>",
+      "default" : "std::vector<double>()",
+      "doc" : "Passing a zero sized array, defaults to identiy matrix. The size of the array must exactly match the direction matrix for the dimension of the image.",
+      "custom_itk_cast" : "filter->SetDirection( sitkSTLToITKDirection<typename FilterType::DirectionType>( this->m_Direction ) );"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : "1e-5",
+      "inputs" : []
+    }
+  ],
+  "briefdescription" : "Generate an n-dimensional image of a Gaussian.",
+  "detaileddescription" : "GaussianImageSource generates an image of a Gaussian. m_Normalized determines whether or not the Gaussian is normalized (whether or not the sum over infinite space is 1.0) When creating an image, it is preferable to not normalize the Gaussian m_Scale scales the output of the Gaussian to span a range larger than 0->1, and is typically set to the maximum value of the output data type (for instance, 255 for uchars)\n\nThe output image may be of any dimension.",
+  "itk_module" : "ITKImageSources",
+  "itk_group" : "ImageSources"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/GeodesicActiveContourLevelSetImageFilter.json b/Code/BasicFilters/json/GeodesicActiveContourLevelSetImageFilter.json
new file mode 100644
index 0000000..d474504
--- /dev/null
+++ b/Code/BasicFilters/json/GeodesicActiveContourLevelSetImageFilter.json
@@ -0,0 +1,90 @@
+{
+  "name" : "GeodesicActiveContourLevelSetImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 2,
+  "doc" : "Level Set filter that uses propagation, curvature and advection terms.",
+  "pixel_types" : "RealPixelIDTypeList",
+  "filter_type" : "itk::GeodesicActiveContourLevelSetImageFilter<InputImageType, InputImageType>",
+  "custom_set_input" : "filter->SetInput( image1 ); filter->SetFeatureImage( image2 );",
+  "members" : [
+    {
+      "name" : "MaximumRMSError",
+      "type" : "double",
+      "default" : 0.01,
+      "doc" : "Value of RMS change below which the filter should stop. This is a convergence criterion."
+    },
+    {
+      "name" : "PropagationScaling",
+      "type" : "double",
+      "default" : "1.0",
+      "doc" : "Weight of direct propagation contribution to the speed term"
+    },
+    {
+      "name" : "CurvatureScaling",
+      "type" : "double",
+      "default" : "1.0",
+      "doc" : "Weight of the curvature contribution to the speed term"
+    },
+    {
+      "name" : "AdvectionScaling",
+      "type" : "double",
+      "default" : "1.0",
+      "doc" : "Weight of the advection contribution to the speed term"
+    },
+    {
+      "name" : "NumberOfIterations",
+      "type" : "uint32_t",
+      "default" : "1000u",
+      "doc" : "Number of iterations to run"
+    },
+    {
+      "name" : "ReverseExpansionDirection",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "Turn On/Off the flag which determines whether Positive or Negative speed terms will cause surface expansion.  If set to TRUE then negative speed terms will cause the surface to expand and positive speed terms will cause the surface to contract.  If set to FALSE (default) then positive speed terms will cause the surface to expand and negative speed terms will cause the surface to contract.  This method can be safely used to reverse the expansion/contraction as appropriate t [...]
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "ElapsedIterations",
+      "type" : "uint32_t",
+      "default" : 0,
+      "briefdescriptionGet" : "Number of iterations run."
+    },
+    {
+      "name" : "RMSChange",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "The Root Mean Square of the levelset upon termination."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0.1,
+      "measurements_results" : [
+        {
+          "name" : "ElapsedIterations",
+          "value" : 20,
+          "tolerance" : 5
+        },
+        {
+          "name" : "RMSChange",
+          "value" : 0.0,
+          "tolerance" : 0.01
+        }
+      ],
+      "inputs" : [
+        "Input/SmallWhiteCircle_Float.nrrd",
+        "Input/LargeWhiteCircle_Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Segments structures in images based on a user supplied edge potential map.",
+  "detaileddescription" : "\\par IMPORTANT\nThe SegmentationLevelSetImageFilter class and the GeodesicActiveContourLevelSetFunction class contain additional information necessary to gain full understanding of how to use this filter.\n\n\\par OVERVIEW\nThis class is a level set method segmentation filter. An initial contour is propagated outwards (or inwards) until it ''sticks'' to the shape boundaries. This is done by using a level set speed function based on a user supplied edge potenti [...]
+  "itk_module" : "ITKLevelSets",
+  "itk_group" : "LevelSets"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/GradientAnisotropicDiffusionImageFilter.json b/Code/BasicFilters/json/GradientAnisotropicDiffusionImageFilter.json
new file mode 100644
index 0000000..04c5de3
--- /dev/null
+++ b/Code/BasicFilters/json/GradientAnisotropicDiffusionImageFilter.json
@@ -0,0 +1,92 @@
+{
+  "name" : "GradientAnisotropicDiffusionImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "RealPixelIDTypeList",
+  "include_files" : [
+    "algorithm"
+  ],
+  "members" : [
+    {
+      "name" : "TimeStep",
+      "type" : "double",
+      "default" : 0.125,
+      "doc" : "Time step for PDE solver"
+    },
+    {
+      "name" : "ConductanceParameter",
+      "type" : "double",
+      "default" : 3,
+      "doc" : "Conductance parameter governing sensitivity of the conductance equation."
+    },
+    {
+      "name" : "ConductanceScalingUpdateInterval",
+      "type" : "unsigned int",
+      "default" : "1u",
+      "doc" : "Interval at which a new scaling for the conductance term is calculated."
+    },
+    {
+      "name" : "NumberOfIterations",
+      "type" : "uint32_t",
+      "default" : "5u",
+      "doc" : "Number of iterations to run"
+    }
+  ],
+  "custom_methods" : [
+    {
+      "name" : "EstimateOptimalTimeStep",
+      "doc" : "This method autmatically  sets the optimal timestep for an image given its spacing.",
+      "return_type" : "double",
+      "parameters" : [
+        {
+          "type" : "Image &",
+          "var_name" : "inImage"
+        }
+      ],
+      "body" : "std::vector<double> spacing = inImage.GetSpacing();\ndouble minSpacing = *std::min_element( spacing.begin(), spacing.end()); this->m_TimeStep = minSpacing / std::pow(2.0, static_cast< double >( inImage.GetDimension() ) ); return this->m_TimeStep;"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [
+        {
+          "parameter" : "TimeStep",
+          "value" : 0.01
+        }
+      ],
+      "tolerance" : 0,
+      "md5hash" : null,
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "longer",
+      "description" : "Change number of iterations and timestep",
+      "settings" : [
+        {
+          "parameter" : "TimeStep",
+          "value" : 0.01
+        },
+        {
+          "parameter" : "NumberOfIterations",
+          "cxx_value" : "10u",
+          "value" : "10"
+        }
+      ],
+      "tolerance" : 0,
+      "md5hash" : null,
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "",
+  "detaileddescription" : "This filter performs anisotropic diffusion on a scalar itk::Image using the classic Perona-Malik, gradient magnitude based equation implemented in itkGradientNDAnisotropicDiffusionFunction. For detailed information on anisotropic diffusion, see itkAnisotropicDiffusionFunction and itkGradientNDAnisotropicDiffusionFunction.\n\n\\par Inputs and Outputs\nThe input to this filter should be a scalar itk::Image of any dimensionality. The output image will be a diffuse [...]
+  "itk_module" : "ITKAnisotropicSmoothing",
+  "itk_group" : "AnisotropicSmoothing"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/GradientImageFilter.json b/Code/BasicFilters/json/GradientImageFilter.json
new file mode 100644
index 0000000..3d8b63b
--- /dev/null
+++ b/Code/BasicFilters/json/GradientImageFilter.json
@@ -0,0 +1,54 @@
+{
+  "name" : "GradientImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_image_type" : "itk::VectorImage<float, InputImageType::ImageDimension>",
+  "filter_type" : "itk::GradientImageFilter<InputImageType, float, float, OutputImageType>",
+  "members" : [
+    {
+      "name" : "UseImageSpacing",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether or not the filter will use the spacing of the input image in its calculations",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "UseImageDirection",
+      "type" : "bool",
+      "default" : "false",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "The UseImageDirection flag determines whether image derivatives are computed with respect to the image grid or with respect to the physical space. When this flag is ON the derivatives are computed with respect to the coordinate system of physical space. The difference is whether we take into account the image Direction or not. The flag ON will take into account the image direction and will result in an extra matrix multiplication compared to the amount o [...]
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "The UseImageDirection flag determines whether image derivatives are computed with respect to the image grid or with respect to the physical space. When this flag is ON the derivatives are computed with respect to the coordinate system of physical space. The difference is whether we take into account the image Direction or not. The flag ON will take into account the image direction and will result in an extra matrix multiplication compared to the amount o [...]
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings from 2d image",
+      "settings" : [],
+      "tolerance" : 1e-05,
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    },
+    {
+      "tag" : "default_float",
+      "description" : "Simply run with default settings from float image",
+      "settings" : [],
+      "tolerance" : 1e-05,
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the gradient of an image using directional derivatives.",
+  "detaileddescription" : "Computes the gradient of an image using directional derivatives. The directional derivative at each pixel location is computed by convolution with a first-order derivative operator.\n\nThe second template parameter defines the value type used in the derivative operator (defaults to float). The third template parameter defines the value type used for output image (defaults to float). The output image is defined as a covariant vector image whose value type is spe [...]
+  "itk_module" : "ITKImageGradient",
+  "itk_group" : "ImageGradient"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/GradientMagnitudeImageFilter.json b/Code/BasicFilters/json/GradientMagnitudeImageFilter.json
new file mode 100644
index 0000000..94a3af4
--- /dev/null
+++ b/Code/BasicFilters/json/GradientMagnitudeImageFilter.json
@@ -0,0 +1,35 @@
+{
+  "name" : "GradientMagnitudeImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "",
+  "number_of_inputs" : 1,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_pixel_type" : "float",
+  "members" : [
+    {
+      "name" : "UseImageSpacing",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether or not the filter will use the spacing of the input image in its calculations",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether or not the filter will use the spacing of the input image in its calculations"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 1e-05,
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the gradient magnitude of an image region at each pixel.",
+  "detaileddescription" : "\\see Image \n\n\\see Neighborhood \n\n\\see NeighborhoodOperator \n\n\\see NeighborhoodIterator \n\n\\par Wiki Examples:\n\n\\li All Examples \n\n\\li Compute the gradient magnitude image",
+  "itk_module" : "ITKImageGradient",
+  "itk_group" : "ImageGradient"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/GradientMagnitudeRecursiveGaussianImageFilter.json b/Code/BasicFilters/json/GradientMagnitudeRecursiveGaussianImageFilter.json
new file mode 100644
index 0000000..d32dade
--- /dev/null
+++ b/Code/BasicFilters/json/GradientMagnitudeRecursiveGaussianImageFilter.json
@@ -0,0 +1,46 @@
+{
+  "name" : "GradientMagnitudeRecursiveGaussianImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "",
+  "number_of_inputs" : 1,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_pixel_type" : "float",
+  "members" : [
+    {
+      "name" : "Sigma",
+      "type" : "double",
+      "default" : "1.0",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set Sigma value. Sigma is measured in the units of image spacing.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set Sigma value. Sigma is measured in the units of image spacing."
+    },
+    {
+      "name" : "NormalizeAcrossScale",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Define which normalization factor will be used for the Gaussian \\see RecursiveGaussianImageFilter::SetNormalizeAcrossScale",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Define which normalization factor will be used for the Gaussian \\see RecursiveGaussianImageFilter::SetNormalizeAcrossScale"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0.0001,
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the Magnitude of the Gradient of an image by convolution with the first derivative of a Gaussian.",
+  "detaileddescription" : "This filter is implemented using the recursive gaussian filters\n\n\\par Wiki Examples:\n\n\\li All Examples \n\n\\li Find the gradient magnitude of the image first smoothed with a Gaussian kernel",
+  "itk_module" : "ITKImageGradient",
+  "itk_group" : "ImageGradient"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/GradientRecursiveGaussianImageFilter.json b/Code/BasicFilters/json/GradientRecursiveGaussianImageFilter.json
new file mode 100644
index 0000000..207b95a
--- /dev/null
+++ b/Code/BasicFilters/json/GradientRecursiveGaussianImageFilter.json
@@ -0,0 +1,69 @@
+{
+  "name" : "GradientRecursiveGaussianImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "",
+  "number_of_inputs" : 1,
+  "pixel_types" : "typelist::Append<BasicPixelIDTypeList, VectorPixelIDTypeList>::Type",
+  "output_image_type" : "itk::VectorImage< float,  InputImageType::ImageDimension >",
+  "members" : [
+    {
+      "name" : "Sigma",
+      "type" : "double",
+      "default" : "1.0",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set Sigma value. Sigma is measured in the units of image spacing.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "NormalizeAcrossScale",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Define which normalization factor will be used for the Gaussian \\see RecursiveGaussianImageFilter::SetNormalizeAcrossScale",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Define which normalization factor will be used for the Gaussian \\see RecursiveGaussianImageFilter::SetNormalizeAcrossScale"
+    },
+    {
+      "name" : "UseImageDirection",
+      "type" : "bool",
+      "default" : "false",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "The UseImageDirection flag determines whether the gradients are computed with respect to the image grid or with respect to the physical space. When this flag is ON the gradients are computed with respect to the coordinate system of physical space. The difference is whether we take into account the image Direction or not. The flag ON will take into account the image direction and will result in an extra matrix multiplication compared to the amount of comp [...]
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "The UseImageDirection flag determines whether the gradients are computed with respect to the image grid or with respect to the physical space. When this flag is ON the gradients are computed with respect to the coordinate system of physical space. The difference is whether we take into account the image Direction or not. The flag ON will take into account the image direction and will result in an extra matrix multiplication compared to the amount of comp [...]
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0.0001,
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "vector",
+      "description" : "running on a vector image",
+      "settings" : [
+        {
+          "parameter" : "Sigma",
+          "value" : "3.0"
+        }
+      ],
+      "tolerance" : 0.0001,
+      "inputs" : [
+        "Input/fruit.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the gradient of an image by convolution with the first derivative of a Gaussian.",
+  "detaileddescription" : "This filter is implemented using the recursive gaussian filters.\n\nThis filter supports both scalar and vector pixel types within the input image, including VectorImage type.\n\n\\par Wiki Examples:\n\n\\li All Examples \n\n\\li Compute the gradient of an image by convolution with the first derivative of a Gaussian",
+  "itk_module" : "ITKImageGradient",
+  "itk_group" : "ImageGradient"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/GrayscaleConnectedClosingImageFilter.json b/Code/BasicFilters/json/GrayscaleConnectedClosingImageFilter.json
new file mode 100644
index 0000000..13bd88d
--- /dev/null
+++ b/Code/BasicFilters/json/GrayscaleConnectedClosingImageFilter.json
@@ -0,0 +1,64 @@
+{
+  "name" : "GrayscaleConnectedClosingImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "template_type" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Seed",
+      "type" : "uint32_t",
+      "default" : "std::vector<uint32_t>(3, 0)",
+      "dim_vec" : 1,
+      "itk_type" : "typename FilterType::InputImageIndexType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the seed pixel for the segmentation",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the seed pixel for the segmentation"
+    },
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "b78f55409af9d474c831d79496dedf55",
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    },
+    {
+      "tag" : "seed",
+      "description" : "with seed parameter set",
+      "settings" : [
+        {
+          "parameter" : "Seed",
+          "type" : "uint32_t",
+          "dim_vec" : 1,
+          "value" : [
+            142,
+            170
+          ]
+        }
+      ],
+      "md5hash" : "86e55f748ca0719fda1ee360b823dd67",
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Enhance pixels associated with a dark object (identified by a seed pixel) where the dark object is surrounded by a brigher object.",
+  "detaileddescription" : "GrayscaleConnectedClosingImagefilter is useful for enhancing dark objects that are surrounded by bright borders. This filter makes it easier to threshold the image and extract just the object of interest.\n\nGeodesic morphology and the connected closing algorithm are described in Chapter 6 of Pierre Soille's book \"Morphological Image\nAnalysis: Principles and Applications\", Second Edition, Springer, 2003.\n\n\\see GrayscaleGeodesicDilateImageFilter \n\n\\see  [...]
+  "itk_module" : "ITKMathematicalMorphology",
+  "itk_group" : "MathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/GrayscaleConnectedOpeningImageFilter.json b/Code/BasicFilters/json/GrayscaleConnectedOpeningImageFilter.json
new file mode 100644
index 0000000..a00b309
--- /dev/null
+++ b/Code/BasicFilters/json/GrayscaleConnectedOpeningImageFilter.json
@@ -0,0 +1,64 @@
+{
+  "name" : "GrayscaleConnectedOpeningImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "template_type" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Seed",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 0)",
+      "dim_vec" : 1,
+      "itk_type" : "typename FilterType::InputImageIndexType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the seed pixel for the segmentation",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the seed pixel for the segmentation"
+    },
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "fcd6bcb56c1689fcef28b57c22475bad",
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    },
+    {
+      "tag" : "seed",
+      "description" : "with seed parameter set",
+      "settings" : [
+        {
+          "parameter" : "Seed",
+          "type" : "uint32_t",
+          "dim_vec" : 1,
+          "value" : [
+            142,
+            170
+          ]
+        }
+      ],
+      "md5hash" : "941071ff8cfdb338c553bab6f9e511e5",
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Enhance pixels associated with a bright object (identified by a seed pixel) where the bright object is surrounded by a darker object.",
+  "detaileddescription" : "GrayscaleConnectedOpeningImagefilter is useful for enhancing bright objects that are surrounded by dark borders. This filter makes it easier to threshold the image and extract just the object of interest.\n\nGeodesic morphology and the connected opening algorithm is described in Chapter 6 of Pierre Soille's book \"Morphological Image\nAnalysis: Principles and Applications\", Second Edition, Springer, 2003.\n\n\\see GrayscaleGeodesicDilateImageFilter \n\n\\see M [...]
+  "itk_module" : "ITKMathematicalMorphology",
+  "itk_group" : "MathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/GrayscaleDilateImageFilter.json b/Code/BasicFilters/json/GrayscaleDilateImageFilter.json
new file mode 100644
index 0000000..ca6fe44
--- /dev/null
+++ b/Code/BasicFilters/json/GrayscaleDilateImageFilter.json
@@ -0,0 +1,42 @@
+{
+  "name" : "GrayscaleDilateImageFilter",
+  "template_code_filename" : "KernelImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Performs Dilation in a grayscale image.",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "GrayscaleDilate",
+      "description" : "Test grayscale dilation",
+      "settings" : [
+        {
+          "parameter" : "KernelRadius",
+          "no_get_method" : 1,
+          "value" : 1
+        },
+        {
+          "parameter" : "KernelType",
+          "value" : "itk::simple::sitkBall",
+          "lua_value" : "SimpleITK.sitkBall",
+          "python_value" : "SimpleITK.sitkBall",
+          "ruby_value" : "Simpleitk::SitkBall",
+          "java_value" : "KernelEnum.sitkBall",
+          "tcl_value" : "$$sitkBall",
+          "csharp_value" : "KernelEnum.sitkBall",
+          "R_value" : "'sitkBall'"
+        }
+      ],
+      "md5hash" : "cb692559f1eb21e4c932f6bbb3850ad3",
+      "inputs" : [
+        "Input/STAPLE1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Grayscale dilation of an image.",
+  "detaileddescription" : "Dilate an image using grayscale morphology. Dilation takes the maximum of all the pixels identified by the structuring element.\n\nThe structuring element is assumed to be composed of binary values (zero or one). Only elements of the structuring element having values > 0 are candidates for affecting the center pixel.\n\n\\see MorphologyImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter \n\n\\par Wiki Examples:\n\n\\li All Examples \n\n\\ [...]
+  "itk_module" : "ITKMathematicalMorphology",
+  "itk_group" : "MathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/GrayscaleErodeImageFilter.json b/Code/BasicFilters/json/GrayscaleErodeImageFilter.json
new file mode 100644
index 0000000..78135b7
--- /dev/null
+++ b/Code/BasicFilters/json/GrayscaleErodeImageFilter.json
@@ -0,0 +1,42 @@
+{
+  "name" : "GrayscaleErodeImageFilter",
+  "template_code_filename" : "KernelImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Performs Erode in a grayscale image.",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "GrayscaleErode",
+      "description" : "Test grayscale erode",
+      "md5hash" : "cb0f49738a99f3467b575bc95a0ace44",
+      "settings" : [
+        {
+          "parameter" : "KernelRadius",
+          "no_get_method" : 1,
+          "value" : 1
+        },
+        {
+          "parameter" : "KernelType",
+          "value" : "itk::simple::sitkBall",
+          "lua_value" : "SimpleITK.sitkBall",
+          "python_value" : "SimpleITK.sitkBall",
+          "ruby_value" : "Simpleitk::SitkBall",
+          "java_value" : "KernelEnum.sitkBall",
+          "tcl_value" : "$$sitkBall",
+          "csharp_value" : "KernelEnum.sitkBall",
+          "R_value" : "'sitkBall'"
+        }
+      ],
+      "inputs" : [
+        "Input/STAPLE1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Grayscale erosion of an image.",
+  "detaileddescription" : "Erode an image using grayscale morphology. Erosion takes the maximum of all the pixels identified by the structuring element.\n\nThe structuring element is assumed to be composed of binary values (zero or one). Only elements of the structuring element having values > 0 are candidates for affecting the center pixel.\n\n\\see MorphologyImageFilter , GrayscaleFunctionErodeImageFilter , BinaryErodeImageFilter \n\n\\par Wiki Examples:\n\n\\li All Examples \n\n\\li E [...]
+  "itk_module" : "ITKMathematicalMorphology",
+  "itk_group" : "MathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/GrayscaleFillholeImageFilter.json b/Code/BasicFilters/json/GrayscaleFillholeImageFilter.json
new file mode 100644
index 0000000..708651f
--- /dev/null
+++ b/Code/BasicFilters/json/GrayscaleFillholeImageFilter.json
@@ -0,0 +1,46 @@
+{
+  "name" : "GrayscaleFillholeImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "filter_type" : "itk::GrayscaleFillholeImageFilter<InputImageType, OutputImageType>",
+  "members" : [
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn."
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "GrayscaleFillhole1",
+      "description" : "Test grayscale fillhole",
+      "md5hash" : "e2c49e979bd4c64f0efff67b196b1950",
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    },
+    {
+      "tag" : "GrayscaleFillhole2",
+      "description" : "Test grayscale fillhole 2D",
+      "md5hash" : "e3cd61348a7824d191e83632bf92baae",
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-Slice-Short.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Remove local minima not connected to the boundary of the image.",
+  "detaileddescription" : "GrayscaleFillholeImageFilter fills holes in a grayscale image. Holes are local minima in the grayscale topography that are not connected to boundaries of the image. Gray level values adjacent to a hole are extrapolated across the hole.\n\nThis filter is used to smooth over local minima without affecting the values of local maxima. If you take the difference between the output of this filter and the original image (and perhaps threshold the difference above a sm [...]
+  "itk_module" : "ITKMathematicalMorphology",
+  "itk_group" : "MathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/GrayscaleGeodesicDilateImageFilter.json b/Code/BasicFilters/json/GrayscaleGeodesicDilateImageFilter.json
new file mode 100644
index 0000000..c886a05
--- /dev/null
+++ b/Code/BasicFilters/json/GrayscaleGeodesicDilateImageFilter.json
@@ -0,0 +1,84 @@
+{
+  "name" : "GrayscaleGeodesicDilateImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 2,
+  "doc" : "Input1 is input, Input2 is marker image",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "filter_type" : "itk::GrayscaleGeodesicDilateImageFilter<InputImageType, OutputImageType>",
+  "members" : [
+    {
+      "name" : "RunOneIteration",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the filter should run one iteration or until convergence. When run to convergence, this filter is equivalent to \"reconstruction by dilation\". Default is off.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the filter should run one iteration or until convergence. When run to convergence, this filter is equivalent to \"reconstruction by dilation\". Default is off."
+    },
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn."
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "GrayscaleGeodesicDilate1",
+      "description" : "Test grayscale geodesic dilate",
+      "md5hash" : "301858f5eee39b092d28d9837f008fb8",
+      "settings" : [
+        {
+          "parameter" : "RunOneIteration",
+          "value" : "false",
+          "python_value" : "False",
+          "R_value" : "FALSE"
+        },
+        {
+          "parameter" : "FullyConnected",
+          "value" : "true",
+          "python_value" : "True",
+          "R_value" : "TRUE"
+        }
+      ],
+      "inputs" : [
+        "Input/STAPLE1.png",
+        "Input/STAPLE2.png"
+      ]
+    },
+    {
+      "tag" : "GrayscaleGeodesicDilate2",
+      "description" : "Test grayscale geodesic dilate, one iteration",
+      "md5hash" : "512b043be99c423638db7cb7bc6fb2df",
+      "settings" : [
+        {
+          "parameter" : "RunOneIteration",
+          "value" : "true",
+          "python_value" : "True",
+          "R_value" : "TRUE"
+        },
+        {
+          "parameter" : "FullyConnected",
+          "value" : "true",
+          "python_value" : "True",
+          "R_value" : "TRUE"
+        }
+      ],
+      "inputs" : [
+        "Input/STAPLE1.png",
+        "Input/STAPLE2.png"
+      ]
+    }
+  ],
+  "briefdescription" : "geodesic gray scale dilation of an image",
+  "detaileddescription" : "Geodesic dilation operates on a \"marker\" image and a \"mask\" image. The marker image is dilated using an elementary structuring element (neighborhood of radius one using only the face connected neighbors). The resulting image is then compared with the mask image. The output image is the pixelwise minimum of the dilated marker image and the mask image.\n\nGeodesic dilation is run either one iteration or until convergence. In the convergence case, the filter i [...]
+  "itk_module" : "ITKMathematicalMorphology",
+  "itk_group" : "MathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/GrayscaleGeodesicErodeImageFilter.json b/Code/BasicFilters/json/GrayscaleGeodesicErodeImageFilter.json
new file mode 100644
index 0000000..535c4ee
--- /dev/null
+++ b/Code/BasicFilters/json/GrayscaleGeodesicErodeImageFilter.json
@@ -0,0 +1,61 @@
+{
+  "name" : "GrayscaleGeodesicErodeImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 2,
+  "doc" : "Input1 is input, Input2 is marker image",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "filter_type" : "itk::GrayscaleGeodesicErodeImageFilter<InputImageType, OutputImageType>",
+  "members" : [
+    {
+      "name" : "RunOneIteration",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the filter should run one iteration or until convergence. When run to convergence, this filter is equivalent to \"reconstruction by erosion\". Default is off.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the filter should run one iteration or until convergence. When run to convergence, this filter is equivalent to \"reconstruction by erosion\". Default is off."
+    },
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn."
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "GrayscaleGeodesicDilate",
+      "description" : "Test grayscale geodesic erode",
+      "md5hash" : "095f00a68a84df4396914fa758f34dcc",
+      "settings" : [
+        {
+          "parameter" : "RunOneIteration",
+          "value" : "false",
+          "python_value" : "False",
+          "R_value" : "FALSE"
+        },
+        {
+          "parameter" : "FullyConnected",
+          "value" : "true",
+          "python_value" : "True",
+          "R_value" : "TRUE"
+        }
+      ],
+      "inputs" : [
+        "Input/STAPLE2.png",
+        "Input/STAPLE1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "geodesic gray scale erosion of an image",
+  "detaileddescription" : "Geodesic erosion operates on a \"marker\" image and a \"mask\" image. The marker image is eroded using an elementary structuring element (neighborhood of radius one using only the face connected neighbors). The resulting image is then compared with the mask image. The output image is the pixelwise maximum of the eroded marker image and the mask image.\n\nGeodesic erosion is run either one iteration or until convergence. In the convergence case, the filter is eq [...]
+  "itk_module" : "ITKMathematicalMorphology",
+  "itk_group" : "MathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/GrayscaleGrindPeakImageFilter.json b/Code/BasicFilters/json/GrayscaleGrindPeakImageFilter.json
new file mode 100644
index 0000000..9ea055f
--- /dev/null
+++ b/Code/BasicFilters/json/GrayscaleGrindPeakImageFilter.json
@@ -0,0 +1,46 @@
+{
+  "name" : "GrayscaleGrindPeakImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "filter_type" : "itk::GrayscaleGrindPeakImageFilter<InputImageType, OutputImageType>",
+  "members" : [
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn."
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "GrayscaleGrindPeak1",
+      "description" : "Test grayscale grind peak",
+      "md5hash" : "084cdd1d64664ebfab26c2e0ed382e14",
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    },
+    {
+      "tag" : "GrayscaleGrindPeak2",
+      "description" : "Test grayscale grind peak 2D",
+      "md5hash" : "b18d75cccb9361c65b40bb5c0d3c6e0d",
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-Slice-Short.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Remove local maxima not connected to the boundary of the image.",
+  "detaileddescription" : "GrayscaleGrindPeakImageFilter removes peaks in a grayscale image. Peaks are local maxima in the grayscale topography that are not connected to boundaries of the image. Gray level values adjacent to a peak are extrapolated through the peak.\n\nThis filter is used to smooth over local maxima without affecting the values of local minima. If you take the difference between the output of this filter and the original image (and perhaps threshold the difference above  [...]
+  "itk_module" : "ITKMathematicalMorphology",
+  "itk_group" : "MathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/GrayscaleMorphologicalClosingImageFilter.json b/Code/BasicFilters/json/GrayscaleMorphologicalClosingImageFilter.json
new file mode 100644
index 0000000..b89b035
--- /dev/null
+++ b/Code/BasicFilters/json/GrayscaleMorphologicalClosingImageFilter.json
@@ -0,0 +1,53 @@
+{
+  "name" : "GrayscaleMorphologicalClosingImageFilter",
+  "template_code_filename" : "KernelImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Performs morphological closing in a grayscale image.",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "SafeBorder",
+      "type" : "bool",
+      "default" : "true",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "A safe border is added to input image to avoid borders effects and remove it once the closing is done",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "A safe border is added to input image to avoid borders effects and remove it once the closing is done"
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "GrayscaleMorphologicalClosing",
+      "description" : "Test grayscale morphological closing",
+      "md5hash" : "103130cc4caf40d9fb252fbabc531e15",
+      "settings" : [
+        {
+          "parameter" : "KernelRadius",
+          "no_get_method" : 1,
+          "value" : 1
+        },
+        {
+          "parameter" : "KernelType",
+          "value" : "itk::simple::sitkBall",
+          "lua_value" : "SimpleITK.sitkBall",
+          "python_value" : "SimpleITK.sitkBall",
+          "ruby_value" : "Simpleitk::SitkBall",
+          "java_value" : "KernelEnum.sitkBall",
+          "tcl_value" : "$$sitkBall",
+          "csharp_value" : "KernelEnum.sitkBall",
+          "R_value" : "'sitkBall'"
+        }
+      ],
+      "inputs" : [
+        "Input/STAPLE1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "gray scale dilation of an image",
+  "detaileddescription" : "Erode an image using grayscale morphology. Dilation takes the maximum of all the pixels identified by the structuring element.\n\nThe structuring element is assumed to be composed of binary values (zero or one). Only elements of the structuring element having values > 0 are candidates for affecting the center pixel.\n\n\\see MorphologyImageFilter , GrayscaleFunctionErodeImageFilter , BinaryErodeImageFilter",
+  "itk_module" : "ITKMathematicalMorphology",
+  "itk_group" : "MathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/GrayscaleMorphologicalOpeningImageFilter.json b/Code/BasicFilters/json/GrayscaleMorphologicalOpeningImageFilter.json
new file mode 100644
index 0000000..b6b3a2c
--- /dev/null
+++ b/Code/BasicFilters/json/GrayscaleMorphologicalOpeningImageFilter.json
@@ -0,0 +1,115 @@
+{
+  "name" : "GrayscaleMorphologicalOpeningImageFilter",
+  "template_code_filename" : "KernelImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Performs morphological opening in a grayscale image.",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "SafeBorder",
+      "type" : "bool",
+      "default" : "true",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "A safe border is added to input image to avoid borders effects and remove it once the closing is done",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "A safe border is added to input image to avoid borders effects and remove it once the closing is done"
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "GrayscaleMorphologicalOpening",
+      "description" : "Test grayscale morphological opening",
+      "md5hash" : "867de5ed8cf49c4657e1545bd57f2c23",
+      "settings" : [
+        {
+          "parameter" : "KernelRadius",
+          "no_get_method" : 1,
+          "value" : 1
+        },
+        {
+          "parameter" : "KernelType",
+          "value" : "itk::simple::sitkBall",
+          "lua_value" : "SimpleITK.sitkBall",
+          "python_value" : "SimpleITK.sitkBall",
+          "ruby_value" : "Simpleitk::SitkBall",
+          "java_value" : "KernelEnum.sitkBall",
+          "tcl_value" : "$$sitkBall",
+          "csharp_value" : "KernelEnum.sitkBall",
+          "R_value" : "'sitkBall'"
+        }
+      ],
+      "inputs" : [
+        "Input/STAPLE1.png"
+      ]
+    },
+    {
+      "tag" : "GrayscaleMorphologicalOpeningVectorRadius1",
+      "description" : "Test grayscale morphological opening with vector 3D radius",
+      "md5hash" : "5651a92320cfd9f01be4463131a4e573",
+      "settings" : [
+        {
+          "parameter" : "KernelRadius",
+          "type" : "uint32_t",
+          "dim_vec" : 1,
+          "value" : [
+            20,
+            5,
+            2
+          ],
+          "python_value" : "[ 20, 5, 2 ]"
+        },
+        {
+          "parameter" : "KernelType",
+          "value" : "itk::simple::sitkCross",
+          "lua_value" : "SimpleITK.sitkCross",
+          "python_value" : "SimpleITK.sitkCross",
+          "ruby_value" : "Simpleitk::SitkCross",
+          "java_value" : "KernelEnum.sitkCross",
+          "tcl_value" : "$$sitkCross",
+          "csharp_value" : "KernelEnum.sitkCross",
+          "R_value" : "'sitkCross'"
+        }
+      ],
+      "inputs" : [
+        "Input/STAPLE1.png"
+      ]
+    },
+    {
+      "tag" : "GrayscaleMorphologicalOpeningVectorRadius2",
+      "description" : "Test grayscale morphological opening with vector 2D radius expecting padding of 1",
+      "md5hash" : "0a5ac0dbca31e1b92eb6d48e990582a7",
+      "settings" : [
+        {
+          "parameter" : "KernelRadius",
+          "type" : "uint32_t",
+          "dim_vec" : 1,
+          "value" : [
+            20,
+            5
+          ]
+        },
+        {
+          "parameter" : "KernelType",
+          "value" : "itk::simple::sitkBox",
+          "lua_value" : "SimpleITK.sitkBox",
+          "python_value" : "SimpleITK.sitkBox",
+          "ruby_value" : "Simpleitk::SitkBox",
+          "java_value" : "KernelEnum.sitkBox",
+          "tcl_value" : "$$sitkBox",
+          "csharp_value" : "KernelEnum.sitkBox",
+          "R_value" : "'sitkBox'"
+        }
+      ],
+      "inputs" : [
+        "Input/STAPLE1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "gray scale dilation of an image",
+  "detaileddescription" : "Dilate an image using grayscale morphology. Dilation takes the maximum of all the pixels identified by the structuring element.\n\nThe structuring element is assumed to be composed of binary values (zero or one). Only elements of the structuring element having values > 0 are candidates for affecting the center pixel.\n\n\\see MorphologyImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter",
+  "itk_module" : "ITKMathematicalMorphology",
+  "itk_group" : "MathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/GreaterEqualImageFilter.json b/Code/BasicFilters/json/GreaterEqualImageFilter.json
new file mode 100644
index 0000000..35ca17a
--- /dev/null
+++ b/Code/BasicFilters/json/GreaterEqualImageFilter.json
@@ -0,0 +1,63 @@
+{
+  "name" : "GreaterEqualImageFilter",
+  "itk_name" : "BinaryFunctorImageFilter",
+  "template_code_filename" : "BinaryFunctorFilter",
+  "template_test_filename" : "ImageFilter",
+  "constant_type" : "double",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_pixel_type" : "uint8_t",
+  "filter_type" : "itk::BinaryFunctorImageFilter<InputImageType,InputImageType2,OutputImageType, itk::Functor::GreaterEqual< typename InputImageType::PixelType, typename InputImageType2::PixelType, typename OutputImageType::PixelType> >",
+  "include_files" : [
+    "itkLogicOpsFunctors.h"
+  ],
+  "members" : [
+    {
+      "name" : "BackgroundValue",
+      "type" : "uint8_t",
+      "default" : "0u",
+      "custom_itk_cast" : "filter->GetFunctor().SetBackgroundValue( static_cast<typename OutputImageType::PixelType>( this->m_BackgroundValue ) );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value used to mark the false pixels of the operator.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value used to mark the false pixels of the operator.\n"
+    },
+    {
+      "name" : "ForegroundValue",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "custom_itk_cast" : "filter->GetFunctor().SetForegroundValue( static_cast<typename OutputImageType::PixelType>( this->m_ForegroundValue ) );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value used to mark the true pixels of the operator.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value used to mark the true pixels of the operator.\n"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "same images",
+      "settings" : [],
+      "md5hash" : "ae5c932ab2e19291dd20c2c4ac382428",
+      "inputs" : [
+        "Input/cthead1.png",
+        "Input/cthead1.png"
+      ]
+    },
+    {
+      "tag" : "rampVramp",
+      "description" : "2D",
+      "settings" : [],
+      "md5hash" : "0093595133424e1a4abab849a9375eb5",
+      "inputs" : [
+        "Input/Ramp-Up-Short.nrrd",
+        "Input/Ramp-Down-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Implements pixel-wise generic operation of two images, or of an image and a constant.",
+  "detaileddescription" : "This class is parameterized over the types of the two input images and the type of the output image. It is also parameterized by the operation to be applied. A Functor style is used.\n\nThe constant must be of the same type than the pixel type of the corresponding image. It is wrapped in a SimpleDataObjectDecorator so it can be updated through the pipeline. The SetConstant() and GetConstant() methods are provided as shortcuts to set or get the constant value wi [...]
+  "itk_module" : "ITKImageFilterBase",
+  "itk_group" : "ImageFilterBase"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/GreaterImageFilter.json b/Code/BasicFilters/json/GreaterImageFilter.json
new file mode 100644
index 0000000..78f0c33
--- /dev/null
+++ b/Code/BasicFilters/json/GreaterImageFilter.json
@@ -0,0 +1,63 @@
+{
+  "name" : "GreaterImageFilter",
+  "itk_name" : "BinaryFunctorImageFilter",
+  "template_code_filename" : "BinaryFunctorFilter",
+  "template_test_filename" : "ImageFilter",
+  "constant_type" : "double",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_pixel_type" : "uint8_t",
+  "filter_type" : "itk::BinaryFunctorImageFilter<InputImageType,InputImageType2,OutputImageType, itk::Functor::Greater< typename InputImageType::PixelType, typename InputImageType2::PixelType, typename OutputImageType::PixelType> >",
+  "include_files" : [
+    "itkLogicOpsFunctors.h"
+  ],
+  "members" : [
+    {
+      "name" : "BackgroundValue",
+      "type" : "uint8_t",
+      "default" : "0u",
+      "custom_itk_cast" : "filter->GetFunctor().SetBackgroundValue( static_cast<typename OutputImageType::PixelType>( this->m_BackgroundValue ) );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value used to mark the false pixels of the operator.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value used to mark the false pixels of the operator.\n"
+    },
+    {
+      "name" : "ForegroundValue",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "custom_itk_cast" : "filter->GetFunctor().SetForegroundValue( static_cast<typename OutputImageType::PixelType>( this->m_ForegroundValue ) );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value used to mark the true pixels of the operator.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value used to mark the true pixels of the operator.\n"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "same images",
+      "settings" : [],
+      "md5hash" : "fcd6bcb56c1689fcef28b57c22475bad",
+      "inputs" : [
+        "Input/cthead1.png",
+        "Input/cthead1.png"
+      ]
+    },
+    {
+      "tag" : "rampVramp",
+      "description" : "2D",
+      "settings" : [],
+      "md5hash" : "0093595133424e1a4abab849a9375eb5",
+      "inputs" : [
+        "Input/Ramp-Up-Short.nrrd",
+        "Input/Ramp-Down-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Implements pixel-wise generic operation of two images, or of an image and a constant.",
+  "detaileddescription" : "This class is parameterized over the types of the two input images and the type of the output image. It is also parameterized by the operation to be applied. A Functor style is used.\n\nThe constant must be of the same type than the pixel type of the corresponding image. It is wrapped in a SimpleDataObjectDecorator so it can be updated through the pipeline. The SetConstant() and GetConstant() methods are provided as shortcuts to set or get the constant value wi [...]
+  "itk_module" : "ITKImageFilterBase",
+  "itk_group" : "ImageFilterBase"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/GridImageSource.json b/Code/BasicFilters/json/GridImageSource.json
new file mode 100644
index 0000000..b5d5b2a
--- /dev/null
+++ b/Code/BasicFilters/json/GridImageSource.json
@@ -0,0 +1,102 @@
+{
+  "name" : "GridImageSource",
+  "template_code_filename" : "ImageSource",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "",
+  "number_of_inputs" : 0,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_image_type" : "TImageType",
+  "filter_type" : "itk::GridImageSource<OutputImageType>",
+  "members" : [
+    {
+      "name" : "OutputPixelType",
+      "type" : "PixelIDValueEnum",
+      "default" : "itk::simple::sitkFloat32",
+      "custom_itk_cast" : ""
+    },
+    {
+      "name" : "Size",
+      "type" : "unsigned int",
+      "dim_vec" : 1,
+      "default" : "std::vector<unsigned int>(3, 64)",
+      "itk_type" : "typename FilterType::SizeType"
+    },
+    {
+      "name" : "Sigma",
+      "type" : "double",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "default" : "std::vector<double>(3, 0.5)",
+      "itk_type" : "typename FilterType::ArrayType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the standard deviation of the Gaussians or width of the box functions.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the standard deviation of the Gaussians or width of the box functions."
+    },
+    {
+      "name" : "GridSpacing",
+      "type" : "double",
+      "dim_vec" : 1,
+      "default" : "std::vector<double>(3, 4.0)",
+      "itk_type" : "typename FilterType::ArrayType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the grid spacing of the peaks.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the grid spacing of the peaks."
+    },
+    {
+      "name" : "GridOffset",
+      "type" : "double",
+      "dim_vec" : 1,
+      "default" : "std::vector<double>(3, 0.0)",
+      "itk_type" : "typename FilterType::ArrayType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the grid offset.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the grid offset."
+    },
+    {
+      "name" : "Scale",
+      "type" : "double",
+      "default" : "255.0",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the scale factor to multiply the true value of the grid.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the scale factor to multiply the true value of the grid."
+    },
+    {
+      "name" : "Origin",
+      "type" : "double",
+      "dim_vec" : 1,
+      "default" : "std::vector<double>(3, 0.0)",
+      "itk_type" : "typename FilterType::PointType"
+    },
+    {
+      "name" : "Spacing",
+      "type" : "double",
+      "dim_vec" : 1,
+      "default" : "std::vector<double>(3, 1.0)",
+      "itk_type" : "typename FilterType::SpacingType"
+    },
+    {
+      "name" : "Direction",
+      "type" : "std::vector<double>",
+      "default" : "std::vector<double>()",
+      "doc" : "Passing a zero sized array, defaults to identiy matrix. The size of the array must exactly match the direction matrix for the dimension of the image.",
+      "custom_itk_cast" : "filter->SetDirection( sitkSTLToITKDirection<typename FilterType::DirectionType>( this->m_Direction ) );"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 1e-05,
+      "inputs" : []
+    }
+  ],
+  "briefdescription" : "Generate an n-dimensional image of a grid.",
+  "detaileddescription" : "GridImageSource generates an image of a grid. From the abstract... \"Certain classes of images find disparate use amongst members of the ITK community for such purposes as visualization, simulation, testing, etc. Currently there exists two derived classes from the ImageSource class used for generating specific images for various applications, viz. RandomImageSource and GaussianImageSource . We propose to add to this set with the class GridImageSource which, obv [...]
+  "itk_module" : "ITKImageSources",
+  "itk_group" : "ImageSources"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/HConcaveImageFilter.json b/Code/BasicFilters/json/HConcaveImageFilter.json
new file mode 100644
index 0000000..36f8fea
--- /dev/null
+++ b/Code/BasicFilters/json/HConcaveImageFilter.json
@@ -0,0 +1,51 @@
+{
+  "name" : "HConcaveImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Height",
+      "type" : "double",
+      "default" : "2.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the height that a local maximum must be above the local background (local contrast) in order to survive the processing. Local maxima below this value are replaced with an estimate of the local background.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the height that a local maximum must be above the local background (local contrast) in order to survive the processing. Local maxima below this value are replaced with an estimate of the local background."
+    },
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn."
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "HConcave",
+      "description" : "Test HConcave",
+      "md5hash" : "f5eabe457bc96f0b284c324c7d6387a6",
+      "settings" : [
+        {
+          "parameter" : "Height",
+          "value" : 10000
+        }
+      ],
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Identify local minima whose depth below the baseline is greater than h.",
+  "detaileddescription" : "HConcaveImageFilter extract local minima that are more than h intensity units below the (local) background. This has the effect of extracting objects that are darker than the background by at least h intensity units.\n\nThis filter uses the HMinimaImageFilter .\n\nGeodesic morphology and the H-Convex algorithm is described in Chapter 6 of Pierre Soille's book \"Morphological Image Analysis:\nPrinciples and Applications\", Second Edition, Springer, 2003.\n\n\\se [...]
+  "itk_module" : "ITKMathematicalMorphology",
+  "itk_group" : "MathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/HConvexImageFilter.json b/Code/BasicFilters/json/HConvexImageFilter.json
new file mode 100644
index 0000000..83f9a8f
--- /dev/null
+++ b/Code/BasicFilters/json/HConvexImageFilter.json
@@ -0,0 +1,51 @@
+{
+  "name" : "HConvexImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Height",
+      "type" : "double",
+      "default" : "2.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the height that a local maximum must be above the local background (local contrast) in order to survive the processing. Local maxima below this value are replaced with an estimate of the local background.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the height that a local maximum must be above the local background (local contrast) in order to survive the processing. Local maxima below this value are replaced with an estimate of the local background."
+    },
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn."
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "HConvex",
+      "description" : "Test HConvex",
+      "md5hash" : "f3a7b95a51710d51b3b73e0eb77eb1eb",
+      "settings" : [
+        {
+          "parameter" : "Height",
+          "value" : 10000
+        }
+      ],
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Identify local maxima whose height above the baseline is greater than h.",
+  "detaileddescription" : "HConvexImageFilter extract local maxima that are more than h intensity units above the (local) background. This has the effect of extracting objects that are brighter than background by at least h intensity units.\n\nThis filter uses the HMaximaImageFilter .\n\nGeodesic morphology and the H-Convex algorithm is described in Chapter 6 of Pierre Soille's book \"Morphological Image Analysis:\nPrinciples and Applications\", Second Edition, Springer, 2003.\n\n\\see G [...]
+  "itk_module" : "ITKMathematicalMorphology",
+  "itk_group" : "MathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/HMaximaImageFilter.json b/Code/BasicFilters/json/HMaximaImageFilter.json
new file mode 100644
index 0000000..3ad3616
--- /dev/null
+++ b/Code/BasicFilters/json/HMaximaImageFilter.json
@@ -0,0 +1,41 @@
+{
+  "name" : "HMaximaImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Height",
+      "type" : "double",
+      "default" : "2.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the height that a local maximum must be above the local background (local contrast) in order to survive the processing. Local maxima below this value are replaced with an estimate of the local background.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the height that a local maximum must be above the local background (local contrast) in order to survive the processing. Local maxima below this value are replaced with an estimate of the local background."
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "HMaxima",
+      "description" : "Test HMaxima",
+      "md5hash" : "b30d403fb1c5948abfb17fa9c346cecd",
+      "settings" : [
+        {
+          "parameter" : "Height",
+          "value" : 2000
+        }
+      ],
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Suppress local maxima whose height above the baseline is less than h.",
+  "detaileddescription" : "HMaximaImageFilter suppresses local maxima that are less than h intensity units above the (local) background. This has the effect of smoothing over the \"high\" parts of the noise in the image without smoothing over large changes in intensity (region boundaries). See the HMinimaImageFilter to suppress the local minima whose depth is less than h intensity units below the (local) background.\n\nIf the output of HMaximaImageFilter is subtracted from the original i [...]
+  "itk_module" : "ITKMathematicalMorphology",
+  "itk_group" : "MathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/HMinimaImageFilter.json b/Code/BasicFilters/json/HMinimaImageFilter.json
new file mode 100644
index 0000000..4e97d0b
--- /dev/null
+++ b/Code/BasicFilters/json/HMinimaImageFilter.json
@@ -0,0 +1,51 @@
+{
+  "name" : "HMinimaImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Height",
+      "type" : "double",
+      "default" : "2.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the height that a local maximum must be above the local background (local contrast) in order to survive the processing. Local maxima below this value are replaced with an estimate of the local background.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the height that a local maximum must be above the local background (local contrast) in order to survive the processing. Local maxima below this value are replaced with an estimate of the local background."
+    },
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn."
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "HMinima",
+      "description" : "Test HMinima",
+      "md5hash" : "7778067eeb752b6ac396dd9e362e8346",
+      "settings" : [
+        {
+          "parameter" : "Height",
+          "value" : 2000
+        }
+      ],
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Suppress local minima whose depth below the baseline is less than h.",
+  "detaileddescription" : "HMinimaImageFilter suppresses local minima that are less than h intensity units below the (local) background. This has the effect of smoothing over the \"low\" parts of the noise in the image without smoothing over large changes in intensity (region boundaries). See the HMaximaImageFilter to suppress the local maxima whose height is less than h intensity units above the (local) background.\n\nIf original image is subtracted from the output of HMinimaImageFilter [...]
+  "itk_module" : "ITKMathematicalMorphology",
+  "itk_group" : "MathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/HalfHermitianToRealInverseFFTImageFilter.json b/Code/BasicFilters/json/HalfHermitianToRealInverseFFTImageFilter.json
new file mode 100644
index 0000000..5e790ed
--- /dev/null
+++ b/Code/BasicFilters/json/HalfHermitianToRealInverseFFTImageFilter.json
@@ -0,0 +1,36 @@
+{
+  "name" : "HalfHermitianToRealInverseFFTImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "ComplexPixelIDTypeList",
+  "filter_type" : "itk::HalfHermitianToRealInverseFFTImageFilter<InputImageType>",
+  "members" : [
+    {
+      "name" : "ActualXDimensionIsOdd",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Was the original truncated dimension size odd?",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Was the original truncated dimension size odd?"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Test half inverse FFT",
+      "tolerance" : "0.01",
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-HalfFFT-Complex.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Base class for specialized complex-to-real inverse Fast Fourier Transform .",
+  "detaileddescription" : "This is a base class for the \"inverse\" or \"reverse\" Discrete Fourier Transform . This is an abstract base class: the actual implementation is provided by the best child class available on the system when the object is created via the object factory system.\n\nThe input to this filter is assumed to have the same format as the output of the RealToHalfHermitianForwardFFTImageFilter . That is, the input is assumed to consist of roughly half the full complex ima [...]
+  "itk_module" : "ITKFFT",
+  "itk_group" : "FFT"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/HausdorffDistanceImageFilter.json b/Code/BasicFilters/json/HausdorffDistanceImageFilter.json
new file mode 100644
index 0000000..80ff1f3
--- /dev/null
+++ b/Code/BasicFilters/json/HausdorffDistanceImageFilter.json
@@ -0,0 +1,56 @@
+{
+  "name" : "HausdorffDistanceImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "pixel_types2" : "BasicPixelIDTypeList",
+  "filter_type" : "itk::HausdorffDistanceImageFilter<InputImageType, InputImageType2 >",
+  "no_procedure" : true,
+  "no_return_image" : true,
+  "members" : [],
+  "measurements" : [
+    {
+      "name" : "HausdorffDistance",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Return the computed Hausdorff distance."
+    },
+    {
+      "name" : "AverageHausdorffDistance",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Return the computed Hausdorff distance."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "2d",
+      "description" : "2d",
+      "settings" : [],
+      "measurements_results" : [
+        {
+          "name" : "AverageHausdorffDistance",
+          "value" : 10.25,
+          "tolerance" : 0.1
+        },
+        {
+          "name" : "HausdorffDistance",
+          "value" : 49.04,
+          "tolerance" : 0.1
+        }
+      ],
+      "inputs" : [
+        "Input/SmallWhiteCircle.nrrd",
+        "Input/LargeWhiteCircle.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the Hausdorff distance between the set of non-zero pixels of two images.",
+  "detaileddescription" : "HausdorffDistanceImageFilter computes the distance between the set non-zero pixels of two images using the following formula: \\f[ H(A,B) = \\max(h(A,B),h(B,A)) \\f] where \\f[ h(A,B) = \\max_{a \\in A} \\min_{b \\in B} \\| a - b\\| \\f] is the directed Hausdorff distance and \\f$A\\f$ and \\f$B\\f$ are respectively the set of non-zero pixels in the first and second input images.\n\nIn particular, this filter uses the DirectedHausdorffImageFilter inside to comp [...]
+  "itk_module" : "ITKDistanceMap",
+  "itk_group" : "DistanceMap"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/HistogramMatchingImageFilter.json b/Code/BasicFilters/json/HistogramMatchingImageFilter.json
new file mode 100644
index 0000000..26363cf
--- /dev/null
+++ b/Code/BasicFilters/json/HistogramMatchingImageFilter.json
@@ -0,0 +1,76 @@
+{
+  "name" : "HistogramMatchingImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "filter_type" : "itk::HistogramMatchingImageFilter<InputImageType, OutputImageType>",
+  "number_of_inputs" : 2,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "NumberOfHistogramLevels",
+      "type" : "uint32_t",
+      "default" : "256u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the number of histogram levels used.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the number of histogram levels used."
+    },
+    {
+      "name" : "NumberOfMatchPoints",
+      "type" : "uint32_t",
+      "default" : "1u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the number of match points used.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the number of match points used."
+    },
+    {
+      "name" : "ThresholdAtMeanIntensity",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the threshold at mean intensity flag. If true, only source (reference) pixels which are greater than the mean source (reference) intensity is used in the histogram matching. If false, all pixels are used.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the threshold at mean intensity flag. If true, only source (reference) pixels which are greater than the mean source (reference) intensity is used in the histogram matching. If false, all pixels are used."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : "0.0001",
+      "inputs" : [
+        "Input/Ramp-One-Zero-Float.nrrd",
+        "Input/RA-Slice-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "near_identity",
+      "description" : "same image in input and match should be same output",
+      "settings" : [
+        {
+          "parameter" : "NumberOfHistogramLevels",
+          "cxx_value" : "65536u",
+          "value" : "65536"
+        },
+        {
+          "parameter" : "ThresholdAtMeanIntensity",
+          "value" : "false",
+          "python_value" : "False",
+          "R_value" : "FALSE"
+        }
+      ],
+      "md5hash" : "a963bd6a755b853103a2d195e01a50d3",
+      "inputs" : [
+        "Input/RA-Short.nrrd",
+        "Input/RA-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Normalize the grayscale values between two images by histogram matching.",
+  "detaileddescription" : "HistogramMatchingImageFilter normalizes the grayscale values of a source image based on the grayscale values of a reference image. This filter uses a histogram matching technique where the histograms of the two images are matched only at a specified number of quantile values.\n\nThis filter was originally designed to normalize MR images of the same MR protocol and same body part. The algorithm works best if background pixels are excluded from both the source an [...]
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/HuangThresholdImageFilter.json b/Code/BasicFilters/json/HuangThresholdImageFilter.json
new file mode 100644
index 0000000..8fb9df0
--- /dev/null
+++ b/Code/BasicFilters/json/HuangThresholdImageFilter.json
@@ -0,0 +1,132 @@
+{
+  "name" : "HuangThresholdImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "Docs",
+  "number_of_inputs" : 0,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_image_type" : "itk::Image< uint8_t, TImageType::ImageDimension>",
+  "filter_type" : "itk::HuangThresholdImageFilter< TImageType, OutputImageType, OutputImageType >",
+  "inputs" : [
+    {
+      "name" : "Image",
+      "type" : "Image"
+    },
+    {
+      "name" : "MaskImage",
+      "type" : "Image",
+      "optional" : true
+    }
+  ],
+  "members" : [
+    {
+      "name" : "InsideValue",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the \"inside\" pixel value. The default value NumericTraits<OutputPixelType>::max()\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"inside\" pixel value.\n"
+    },
+    {
+      "name" : "OutsideValue",
+      "type" : "uint8_t",
+      "default" : "0u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"outside\" pixel value.\n"
+    },
+    {
+      "name" : "NumberOfHistogramBins",
+      "type" : "uint32_t",
+      "default" : "128u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the number of histogram bins. Defaults is 128.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MaskOutput",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Do you want the output to be masked by the mask used in histogram construction. Only relevant if masking is in use.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MaskValue",
+      "type" : "uint8_t",
+      "default" : "255u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "The value in the mask image, if used, indicating voxels that should be included. Default is the max of pixel type, as in the MaskedImageToHistogramFilter",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "Threshold",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "Get the computed threshold."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "ddf5ed860d650763c54f36628bd9fa35",
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 27602
+        }
+      ]
+    },
+    {
+      "tag" : "cthead1_with_mask",
+      "description" : "CT Head with mask",
+      "settings" : [],
+      "md5hash" : "9c6129361c2a33742aed18e82c86c854",
+      "inputs" : [
+        "Input/cthead1.png",
+        "Input/cthead1-mask.png"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 192.0
+        }
+      ]
+    },
+    {
+      "tag" : "default_on_float",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "fcd8ca1be3f4d7561f81e06b3c570af0",
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 0.496117,
+          "tolerance" : 1e-05
+        }
+      ]
+    }
+  ],
+  "briefdescription" : "Threshold an image using the Huang Threshold.",
+  "detaileddescription" : "This filter creates a binary thresholded image that separates an image into foreground and background components. The filter computes the threshold using the HuangThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .\n\n\\author Richard Beare. Department of Medicine, Monash University, Melbourne, Australia. \n\nGaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\nTh [...]
+  "itk_module" : "ITKThresholding",
+  "itk_group" : "Thresholding"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/IntensityWindowingImageFilter.json b/Code/BasicFilters/json/IntensityWindowingImageFilter.json
new file mode 100644
index 0000000..5626f09
--- /dev/null
+++ b/Code/BasicFilters/json/IntensityWindowingImageFilter.json
@@ -0,0 +1,83 @@
+{
+  "name" : "IntensityWindowingImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "doc" : "",
+  "members" : [
+    {
+      "name" : "WindowMinimum",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the values of the maximum and minimum intensities of the input intensity window.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the values of the maximum and minimum intensities of the input intensity window."
+    },
+    {
+      "name" : "WindowMaximum",
+      "type" : "double",
+      "default" : 255.0,
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the values of the maximum and minimum intensities of the input intensity window.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the values of the maximum and minimum intensities of the input intensity window."
+    },
+    {
+      "name" : "OutputMinimum",
+      "type" : "double",
+      "default" : 0.0,
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the values of the maximum and minimum intensities of the output image.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the values of the maximum and minimum intensities of the output image."
+    },
+    {
+      "name" : "OutputMaximum",
+      "type" : "double",
+      "default" : 255.0,
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the values of the maximum and minimum intensities of the output image.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the values of the maximum and minimum intensities of the output image."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "2d",
+      "description" : "2D",
+      "settings" : [],
+      "md5hash" : "095f00a68a84df4396914fa758f34dcc",
+      "inputs" : [
+        "Input/STAPLE1.png"
+      ]
+    },
+    {
+      "tag" : "3dFloat",
+      "description" : "3D",
+      "settings" : [],
+      "md5hash" : "199c966fabac791c758766e14df9974c",
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "3dShort",
+      "description" : "3D",
+      "settings" : [],
+      "md5hash" : "2790c2bdfeb8610821e9ec8751f95516",
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Applies a linear transformation to the intensity levels of the input Image that are inside a user-defined interval. Values below this interval are mapped to a constant. Values over the interval are mapped to another constant.",
+  "detaileddescription" : "IntensityWindowingImageFilter applies pixel-wise a linear transformation to the intensity values of input image pixels. The linear transformation is defined by the user in terms of the minimum and maximum values that the output image should have and the lower and upper limits of the intensity window of the input image. This operation is very common in visualization, and can also be applied as a convenient preprocessing operation for image segmentation.\n\nAll c [...]
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/IntermodesThresholdImageFilter.json b/Code/BasicFilters/json/IntermodesThresholdImageFilter.json
new file mode 100644
index 0000000..21eb51c
--- /dev/null
+++ b/Code/BasicFilters/json/IntermodesThresholdImageFilter.json
@@ -0,0 +1,132 @@
+{
+  "name" : "IntermodesThresholdImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "Docs",
+  "number_of_inputs" : 0,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_image_type" : "itk::Image< uint8_t, TImageType::ImageDimension>",
+  "filter_type" : "itk::IntermodesThresholdImageFilter< TImageType, OutputImageType, OutputImageType >",
+  "inputs" : [
+    {
+      "name" : "Image",
+      "type" : "Image"
+    },
+    {
+      "name" : "MaskImage",
+      "type" : "Image",
+      "optional" : true
+    }
+  ],
+  "members" : [
+    {
+      "name" : "InsideValue",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the \"inside\" pixel value. \n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"inside\" pixel value.\n"
+    },
+    {
+      "name" : "OutsideValue",
+      "type" : "uint8_t",
+      "default" : "0u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"outside\" pixel value.\n"
+    },
+    {
+      "name" : "NumberOfHistogramBins",
+      "type" : "uint32_t",
+      "default" : "256u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the number of histogram bins.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MaskOutput",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Do you want the output to be masked by the mask used in histogram construction. Only relevant if masking is in use.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MaskValue",
+      "type" : "uint8_t",
+      "default" : "255u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "The value in the mask image, if used, indicating voxels that should be included. Default is the max of pixel type, as in the MaskedImageToHistogramFilter",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "Threshold",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "Get the computed threshold."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "b6ffed53246b990f01edf80b1f2e27ff",
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 14287
+        }
+      ]
+    },
+    {
+      "tag" : "cthead1_with_mask",
+      "description" : "CT Head with mask",
+      "settings" : [],
+      "md5hash" : "341a3dc161e1ed1856470f9f69e5b9ff",
+      "inputs" : [
+        "Input/cthead1.png",
+        "Input/cthead1-mask.png"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 193.0
+        }
+      ]
+    },
+    {
+      "tag" : "default_on_float",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "b6ffed53246b990f01edf80b1f2e27ff",
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 14287.7,
+          "tolerance" : 0.1
+        }
+      ]
+    }
+  ],
+  "briefdescription" : "Threshold an image using the Intermodes Threshold.",
+  "detaileddescription" : "This filter creates a binary thresholded image that separates an image into foreground and background components. The filter computes the threshold using the IntermodesThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .\n\n\\author Richard Beare. Department of Medicine, Monash University, Melbourne, Australia. \n\nGaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\ [...]
+  "itk_module" : "ITKThresholding",
+  "itk_group" : "Thresholding"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/InverseDeconvolutionImageFilter.json b/Code/BasicFilters/json/InverseDeconvolutionImageFilter.json
new file mode 100644
index 0000000..9e937ee
--- /dev/null
+++ b/Code/BasicFilters/json/InverseDeconvolutionImageFilter.json
@@ -0,0 +1,75 @@
+{
+  "name" : "InverseDeconvolutionImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "include_files" : [
+    "sitkBoundaryConditions.hxx"
+  ],
+  "custom_set_input" : "filter->SetInput( image1 ); filter->SetKernelImage( image2 );",
+  "members" : [
+    {
+      "name" : "KernelZeroMagnitudeThreshold",
+      "type" : "double",
+      "default" : "1.0e-4",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/get the threshold value uused to determine whether a frequency of the Fourier transform of the blurring kernel is considered to be zero. Default value is 1.0e-4.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/get the threshold value uused to determine whether a frequency of the Fourier transform of the blurring kernel is considered to be zero. Default value is 1.0e-4."
+    },
+    {
+      "name" : "Normalize",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Normalize the output image by the sum of the kernel components\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "BoundaryCondition",
+      "enum" : [
+        "ZERO_PAD",
+        "ZERO_FLUX_NEUMANN_PAD",
+        "PERIODIC_PAD"
+      ],
+      "default" : "itk::simple::InverseDeconvolutionImageFilter::ZERO_FLUX_NEUMANN_PAD",
+      "custom_itk_cast" : "nsstd::auto_ptr< ImageBoundaryCondition< InputImageType > > bc( CreateNewBoundaryConditionInstance< Self, FilterType >( m_BoundaryCondition ) ); filter->SetBoundaryCondition( bc.get() );\n"
+    },
+    {
+      "name" : "OutputRegionMode",
+      "enum" : [
+        "SAME",
+        "VALID"
+      ],
+      "default" : "itk::simple::InverseDeconvolutionImageFilter::SAME",
+      "itk_type" : "typename FilterType::OutputRegionModeType"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Inverse deconvolution of image blurred with a Gaussian kernel",
+      "settings" : [
+        {
+          "parameter" : "Normalize",
+          "value" : "true",
+          "python_value" : "True",
+          "R_value" : "TRUE"
+        }
+      ],
+      "tolerance" : "0.0001",
+      "inputs" : [
+        "Input/DeconvolutionInput.nrrd",
+        "Input/DeconvolutionKernel.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "The direct linear inverse deconvolution filter.",
+  "detaileddescription" : "The inverse filter is the most straightforward deconvolution method. Considering that convolution of two images in the spatial domain is equivalent to multiplying the Fourier transform of the two images, the inverse filter consists of inverting the multiplication. In other words, this filter computes the following: \\f[ hat{F}(\\omega) = \\begin{cases} G(\\omega) / H(\\omega) & \\text{if \\f$|H(\\omega)| \\geq \\epsilon\\f$} \\\\ 0 & \\text{otherwise} \\end{cas [...]
+  "itk_module" : "ITKDeconvolution",
+  "itk_group" : "Deconvolution"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/InverseDisplacementFieldImageFilter.json b/Code/BasicFilters/json/InverseDisplacementFieldImageFilter.json
new file mode 100644
index 0000000..ff4441a
--- /dev/null
+++ b/Code/BasicFilters/json/InverseDisplacementFieldImageFilter.json
@@ -0,0 +1,100 @@
+{
+  "name" : "InverseDisplacementFieldImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "RealVectorPixelIDTypeList",
+  "filter_type" : "itk::InverseDisplacementFieldImageFilter< itk::Image< itk::Vector<typename InputImageType::InternalPixelType, InputImageType::ImageDimension>, InputImageType::ImageDimension >, itk::Image< itk::Vector< typename InputImageType::InternalPixelType, InputImageType::ImageDimension>, InputImageType::ImageDimension > >",
+  "custom_set_input" : "filter->SetInput( GetImageFromVectorImage(const_cast< InputImageType * >(image1.GetPointer())) );",
+  "include_files" : [
+    "itkVector.h",
+    "sitkImageConvert.h"
+  ],
+  "members" : [
+    {
+      "name" : "Size",
+      "type" : "uint32_t",
+      "default" : "std::vector<uint32_t>(3, 0)",
+      "dim_vec" : 1,
+      "doc" : "",
+      "itk_type" : "typename FilterType::SizeType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the size of the output image.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the size of the output image."
+    },
+    {
+      "name" : "OutputOrigin",
+      "type" : "double",
+      "default" : "std::vector<double>(3, 0.0)",
+      "dim_vec" : 1,
+      "doc" : "",
+      "itk_type" : "typename FilterType::OriginPointType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the output image origin.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the output image origin."
+    },
+    {
+      "name" : "OutputSpacing",
+      "type" : "double",
+      "default" : "std::vector<double>(3, 1.0)",
+      "dim_vec" : 1,
+      "doc" : "",
+      "itk_type" : "typename FilterType::SpacingType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the output image spacing.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the output image spacing."
+    },
+    {
+      "name" : "SubsamplingFactor",
+      "type" : "unsigned int",
+      "default" : "16u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the factor used for subsampling the input displacement field. A large value in this factor will produce a fast computation of the inverse field but with low precision. A small value of this factor will produce a precise computation of the inverse field at the price of large memory consumption and long computational time.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the factor used for subsampling the input displacement field. A large value in this factor will produce a fast computation of the inverse field but with low precision. A small value of this factor will produce a precise computation of the inverse field at the price of large memory consumption and long computational time."
+    }
+  ],
+  "measurements" : [],
+  "custom_methods" : [
+    {
+      "name" : "SetReferenceImage",
+      "doc" : "This methods sets the output size, origin, and direction to that of the provided image",
+      "return_type" : "void",
+      "parameters" : [
+        {
+          "type" : "const Image &",
+          "var_name" : "refImage"
+        }
+      ],
+      "body" : "this->SetSize( refImage.GetSize() ); this->SetOutputOrigin( refImage.GetOrigin() ); this->SetOutputSpacing( refImage.GetSpacing() );"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "2d",
+      "description" : "2D",
+      "settings" : [
+        {
+          "parameter" : "Size",
+          "type" : "uint32_t",
+          "dim_vec" : 1,
+          "value" : [
+            100,
+            100
+          ]
+        }
+      ],
+      "tolerance" : "0.001",
+      "inputs" : [
+        "Input/displacement.mha"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the inverse of a displacement field.",
+  "detaileddescription" : "InverseDisplacementFieldImageFilter takes a displacement field as input and computes the displacement field that is its inverse. If the input displacement field was mapping coordinates from a space A into a space B, the output of this filter will map coordinates from the space B into the space A.\n\nGiven that both the input and output displacement field are represented as discrete images with pixel type vector, the inverse will be only an estimation and will p [...]
+  "itk_module" : "ITKDisplacementField",
+  "itk_group" : "DisplacementField"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/InverseFFTImageFilter.json b/Code/BasicFilters/json/InverseFFTImageFilter.json
new file mode 100644
index 0000000..c16575e
--- /dev/null
+++ b/Code/BasicFilters/json/InverseFFTImageFilter.json
@@ -0,0 +1,25 @@
+{
+  "name" : "InverseFFTImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "ComplexPixelIDTypeList",
+  "filter_type" : "itk::InverseFFTImageFilter<InputImageType>",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Test Inverse FFT",
+      "tolerance" : "0.01",
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-FFT-Complex.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Base class for inverse Fast Fourier Transform .",
+  "detaileddescription" : "This is a base class for the \"inverse\" or \"reverse\" Discrete Fourier Transform . This is an abstract base class: the actual implementation is provided by the best child available on the system when the object is created via the object factory system.\n\nThis class transforms a full complex image with Hermitian symmetry into its real spatial domain representation. If the input does not have Hermitian symmetry, the imaginary component is discarded.\n\n\\see F [...]
+  "itk_module" : "ITKFFT",
+  "itk_group" : "FFT"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/InvertDisplacementFieldImageFilter.json b/Code/BasicFilters/json/InvertDisplacementFieldImageFilter.json
new file mode 100644
index 0000000..04a368f
--- /dev/null
+++ b/Code/BasicFilters/json/InvertDisplacementFieldImageFilter.json
@@ -0,0 +1,83 @@
+{
+  "name" : "InvertDisplacementFieldImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "RealVectorPixelIDTypeList",
+  "filter_type" : "itk::InvertDisplacementFieldImageFilter< itk::Image< itk::Vector< typename InputImageType::InternalPixelType, InputImageType::ImageDimension>, InputImageType::ImageDimension > >",
+  "custom_set_input" : "filter->SetDisplacementField( GetImageFromVectorImage(const_cast< InputImageType * >(image1.GetPointer())) );",
+  "include_files" : [
+    "itkVector.h",
+    "sitkImageConvert.h"
+  ],
+  "members" : [
+    {
+      "name" : "MaximumNumberOfIterations",
+      "type" : "uint32_t",
+      "default" : "10u",
+      "doc" : "Number of iterations to run",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MaxErrorToleranceThreshold",
+      "type" : "double",
+      "default" : "0.1",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MeanErrorToleranceThreshold",
+      "type" : "double",
+      "default" : "0.001",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "EnforceBoundaryCondition",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "MaxErrorNorm",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MeanErrorNorm",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "2d",
+      "description" : "2D",
+      "settings" : [],
+      "tolerance" : "0.001",
+      "inputs" : [
+        "Input/displacement.mha"
+      ]
+    }
+  ],
+  "briefdescription" : "Iteratively estimate the inverse field of a displacement field.",
+  "detaileddescription" : "\\author Nick Tustison \n\nBrian Avants",
+  "itk_module" : "ITKDisplacementField",
+  "itk_group" : "DisplacementField"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/InvertIntensityImageFilter.json b/Code/BasicFilters/json/InvertIntensityImageFilter.json
new file mode 100644
index 0000000..6fda0ec
--- /dev/null
+++ b/Code/BasicFilters/json/InvertIntensityImageFilter.json
@@ -0,0 +1,37 @@
+{
+  "name" : "InvertIntensityImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Maximum",
+      "type" : "double",
+      "default" : 255,
+      "pixeltype" : "Input",
+      "doc" : "Maximum output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the maximum intensity value for the inversion.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the maximum intensity value for the inversion."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "3d",
+      "description" : "3D",
+      "settings" : [],
+      "md5hash" : "76765a57f26a7979f33efc8ed9801a55",
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Invert the intensity of an image.",
+  "detaileddescription" : "InvertIntensityImageFilter inverts intensity of pixels by subtracting pixel value to a maximum value. The maximum value can be set with SetMaximum and defaults the maximum of input pixel type. This filter can be used to invert, for example, a binary image, a distance map, etc.\n\n\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\n\\see IntensityWindowingImageFilter ShiftScaleImageFilter \n\n\\par Wiki Exa [...]
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/IsoContourDistanceImageFilter.json b/Code/BasicFilters/json/IsoContourDistanceImageFilter.json
new file mode 100644
index 0000000..435bd61
--- /dev/null
+++ b/Code/BasicFilters/json/IsoContourDistanceImageFilter.json
@@ -0,0 +1,51 @@
+{
+  "name" : "IsoContourDistanceImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "Docs",
+  "number_of_inputs" : 1,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_pixel_type" : "float",
+  "members" : [
+    {
+      "name" : "LevelSetValue",
+      "type" : "double",
+      "default" : "0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value of the level set to be located. The default value is 0.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value of the level set to be located. The default value is 0."
+    },
+    {
+      "name" : "FarValue",
+      "type" : "double",
+      "default" : "10",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value of the level set to be located. The default value is 0.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value of the level set to be located. The default value is 0."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Default parameter settings",
+      "tolerance" : "0.0001",
+      "settings" : [
+        {
+          "parameter" : "LevelSetValue",
+          "value" : "50.0"
+        }
+      ],
+      "inputs" : [
+        "Input/2th_cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Compute an approximate distance from an interpolated isocontour to the close grid points.",
+  "detaileddescription" : "For standard level set algorithms, it is useful to periodically reinitialize the evolving image to prevent numerical accuracy problems in computing derivatives. This reinitialization is done by computing a signed distance map to the current level set. This class provides the first step in this reinitialization by computing an estimate of the distance from the interpolated isocontour to the pixels (or voxels) that are close to it, i.e. for which the isocontour c [...]
+  "itk_module" : "ITKDistanceMap",
+  "itk_group" : "DistanceMap"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/IsoDataThresholdImageFilter.json b/Code/BasicFilters/json/IsoDataThresholdImageFilter.json
new file mode 100644
index 0000000..1f2c83b
--- /dev/null
+++ b/Code/BasicFilters/json/IsoDataThresholdImageFilter.json
@@ -0,0 +1,119 @@
+{
+  "name" : "IsoDataThresholdImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "Docs",
+  "number_of_inputs" : 0,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_image_type" : "itk::Image< uint8_t, TImageType::ImageDimension>",
+  "filter_type" : "itk::IsoDataThresholdImageFilter< TImageType, OutputImageType, OutputImageType >",
+  "inputs" : [
+    {
+      "name" : "Image",
+      "type" : "Image"
+    },
+    {
+      "name" : "MaskImage",
+      "type" : "Image",
+      "optional" : true
+    }
+  ],
+  "members" : [
+    {
+      "name" : "InsideValue",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the \"inside\" pixel value.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"inside\" pixel value.\n"
+    },
+    {
+      "name" : "OutsideValue",
+      "type" : "uint8_t",
+      "default" : "0u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"outside\" pixel value.\n"
+    },
+    {
+      "name" : "NumberOfHistogramBins",
+      "type" : "uint32_t",
+      "default" : "256u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the number of histogram bins.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MaskOutput",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Do you want the output to be masked by the mask used in histogram construction. Only relevant if masking is in use.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MaskValue",
+      "type" : "uint8_t",
+      "default" : "255u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "The value in the mask image, if used, indicating voxels that should be included. Default is the max of pixel type, as in the MaskedImageToHistogramFilter",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "Threshold",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "Get the computed threshold."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "4625f98dba6ef667a9010ad1a2ad7b60",
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    },
+    {
+      "tag" : "cthead1_with_mask",
+      "description" : "CT Head with mask",
+      "settings" : [],
+      "md5hash" : "f3454cb70331d2ea8ea9420d41f018bc",
+      "inputs" : [
+        "Input/cthead1.png",
+        "Input/cthead1-mask.png"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 189.0
+        }
+      ]
+    },
+    {
+      "tag" : "default_on_float",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "53a4323fdc64f95df1ff8b58ea8f499e",
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Threshold an image using the IsoData Threshold.",
+  "detaileddescription" : "This filter creates a binary thresholded image that separates an image into foreground and background components. The filter computes the threshold using the IsoDataThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .\n\n\\author Richard Beare. Department of Medicine, Monash University, Melbourne, Australia. \n\nGaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\n [...]
+  "itk_module" : "ITKThresholding",
+  "itk_group" : "Thresholding"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/IsolatedConnectedImageFilter.json b/Code/BasicFilters/json/IsolatedConnectedImageFilter.json
new file mode 100644
index 0000000..da09adf
--- /dev/null
+++ b/Code/BasicFilters/json/IsolatedConnectedImageFilter.json
@@ -0,0 +1,151 @@
+{
+  "name" : "IsolatedConnectedImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "template_type" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_pixel_type" : "uint8_t",
+  "members" : [
+    {
+      "name" : "Seed1",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 0)",
+      "dim_vec" : 1,
+      "itk_type" : "typename FilterType::IndexType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "DeprecatedSet seed point 1. This seed will be isolated from Seed2 (if possible). All pixels connected to this seed will be replaced with ReplaceValue. This method is deprecated, please use AddSeed1() ."
+    },
+    {
+      "name" : "Seed2",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 0)",
+      "dim_vec" : 1,
+      "itk_type" : "typename FilterType::IndexType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "DeprecatedSet seed point 2. This seed will be isolated from Seed1 (if possible). This method is deprecated, please use AddSeed2() ."
+    },
+    {
+      "name" : "Lower",
+      "type" : "double",
+      "default" : 0,
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the limit on the lower threshold value. The default is the NonpositiveMin() for the InputPixelType.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the limit on the lower threshold value. The default is the NonpositiveMin() for the InputPixelType."
+    },
+    {
+      "name" : "Upper",
+      "type" : "double",
+      "default" : 1,
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the limit on the upper threshold value. The default is the max() for the InputPixelType.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the limit on the upper threshold value. The default is the max() for the InputPixelType."
+    },
+    {
+      "name" : "ReplaceValue",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get value to replace thresholded pixels. Pixels that lie within the thresholds will be replaced with this value. The default is 1.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get value to replace thresholded pixels. Pixels that lie within the thresholds will be replaced with this value. The default is 1."
+    },
+    {
+      "name" : "IsolatedValueTolerance",
+      "type" : "double",
+      "default" : "1.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the precision required for the intensity threshold value. The default is 1.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the precision required for the intensity threshold value. The default is 1."
+    },
+    {
+      "name" : "FindUpperThreshold",
+      "type" : "bool",
+      "default" : "true",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether to find an upper threshold (separating two dark regions) or a lower threshold (separating two bright regions).",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether to find an upper threshold (separating two dark regions) or a lower threshold (separating two bright regions)."
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "ThresholdingFailed",
+      "type" : "bool",
+      "default" : "false",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the flag that tells whether the algorithm failed to find a threshold."
+    },
+    {
+      "name" : "IsolatedValue",
+      "type" : "double",
+      "default" : "0.0",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get value that isolates the two seeds."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "cthead",
+      "description" : "cthead segmentation",
+      "md5hash" : "0c332a386d0e62411f375627e3958feb",
+      "settings" : [
+        {
+          "parameter" : "Seed1",
+          "type" : "uint32_t",
+          "dim_vec" : 1,
+          "value" : [
+            150,
+            150
+          ]
+        },
+        {
+          "parameter" : "Seed2",
+          "type" : "uint32_t",
+          "dim_vec" : 1,
+          "value" : [
+            201,
+            132
+          ]
+        },
+        {
+          "parameter" : "Lower",
+          "value" : "0"
+        },
+        {
+          "parameter" : "Upper",
+          "value" : "255",
+          "java_value" : "(short) 255"
+        }
+      ],
+      "measurements_results" : [
+        {
+          "name" : "ThresholdingFailed",
+          "value" : "false",
+          "python_value" : "False",
+          "r_value" : "FALSE"
+        },
+        {
+          "name" : "IsolatedValue",
+          "value" : 173,
+          "tolerance" : 0
+        }
+      ],
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Label pixels that are connected to one set of seeds but not another.",
+  "detaileddescription" : "IsolatedConnectedImageFilter finds the optimal threshold to separate two regions. It has two modes, one to separate dark regions surrounded by bright regions by automatically finding a minimum isolating upper threshold, and another to separate bright regions surrounded by dark regions by automatically finding a maximum lower isolating threshold. The mode can be chosen by setting FindUpperThresholdOn() /Off(). In both cases, the isolating threshold is retrieved  [...]
+  "itk_module" : "ITKRegionGrowing",
+  "itk_group" : "RegionGrowing"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/IsolatedWatershedImageFilter.json b/Code/BasicFilters/json/IsolatedWatershedImageFilter.json
new file mode 100644
index 0000000..25ad9c2
--- /dev/null
+++ b/Code/BasicFilters/json/IsolatedWatershedImageFilter.json
@@ -0,0 +1,134 @@
+{
+  "name" : "IsolatedWatershedImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Docs",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_pixel_type" : "uint8_t",
+  "members" : [
+    {
+      "name" : "Seed1",
+      "type" : "uint32_t",
+      "default" : "std::vector<uint32_t>(3, 0)",
+      "dim_vec" : 1,
+      "doc" : "",
+      "itk_type" : "typename FilterType::IndexType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set seed point 1. This seed will be isolated from Seed2 (if possible). All pixels connected to this seed will be replaced with ReplaceValue1.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set seed point 1. This seed will be isolated from Seed2 (if possible). All pixels connected to this seed will be replaced with ReplaceValue1."
+    },
+    {
+      "name" : "Seed2",
+      "type" : "uint32_t",
+      "default" : "std::vector<uint32_t>(3, 0)",
+      "dim_vec" : 1,
+      "doc" : "",
+      "itk_type" : "typename FilterType::IndexType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set seed point 2. This seed will be isolated from Seed1 (if possible). All pixels connected to this seed will be replaced with ReplaceValue2.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set seed point 2. This seed will be isolated from Seed1 (if possible). All pixels connected to this seed will be replaced with ReplaceValue2."
+    },
+    {
+      "name" : "Threshold",
+      "type" : "double",
+      "default" : "0.0",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the Watershed threshold. The default is 0.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the Watershed threshold. The default is 0."
+    },
+    {
+      "name" : "UpperValueLimit",
+      "type" : "double",
+      "default" : "1.0",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the limit on the upper waterlevel value. The default is 1.0.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the limit on the upper waterlevel value. The default is 1.0."
+    },
+    {
+      "name" : "IsolatedValueTolerance",
+      "type" : "double",
+      "default" : "0.001",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the precision required for the intensity threshold value. The default is .001.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the precision required for the intensity threshold value. The default is .001."
+    },
+    {
+      "name" : "ReplaceValue1",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get value to replace Seed1(Seed2) pixels, pixels that are within the basin that contains Seed1(Seed2) this value. The default is 1(0).",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get value to replace Seed1(Seed2) pixels, pixels that are within the basin that contains Seed1(Seed2) this value. The default is 1(0)."
+    },
+    {
+      "name" : "ReplaceValue2",
+      "type" : "uint8_t",
+      "default" : "2u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get value to replace Seed1(Seed2) pixels, pixels that are within the basin that contains Seed1(Seed2) this value. The default is 1(0).",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get value to replace Seed1(Seed2) pixels, pixels that are within the basin that contains Seed1(Seed2) this value. The default is 1(0)."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "cthead",
+      "description" : "from_itk",
+      "md5hash" : "109b745628d27453620aa19874e752ae",
+      "settings" : [
+        {
+          "parameter" : "Seed1",
+          "type" : "uint32_t",
+          "dim_vec" : 1,
+          "value" : [
+            113,
+            84
+          ]
+        },
+        {
+          "parameter" : "Seed2",
+          "type" : "uint32_t",
+          "dim_vec" : 1,
+          "value" : [
+            120,
+            99
+          ]
+        },
+        {
+          "parameter" : "Threshold",
+          "value" : "0.001"
+        },
+        {
+          "parameter" : "ReplaceValue1",
+          "value" : "255",
+          "java_value" : "(short) 255"
+        },
+        {
+          "parameter" : "ReplaceValue2",
+          "value" : "127",
+          "java_value" : "(short) 127"
+        },
+        {
+          "parameter" : "UpperValueLimit",
+          "value" : "1.0"
+        }
+      ],
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Isolate watershed basins using two seeds.",
+  "detaileddescription" : "IsolatedWatershedImageFilter labels pixels with ReplaceValue1 that are in the same watershed basin as Seed1 AND NOT the same as Seed2. The filter adjusts the waterlevel until the two seeds are not in different basins. The user supplies a Watershed threshold. The algorithm uses a binary search to adjust the upper waterlevel, starting at UpperValueLimit. UpperValueLimit defaults to the 1.0.",
+  "itk_module" : "ITKWatersheds",
+  "itk_group" : "Watersheds"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/JoinSeriesImageFilter.json b/Code/BasicFilters/json/JoinSeriesImageFilter.json
new file mode 100644
index 0000000..1970d93
--- /dev/null
+++ b/Code/BasicFilters/json/JoinSeriesImageFilter.json
@@ -0,0 +1,111 @@
+{
+  "name" : "JoinSeriesImageFilter",
+  "template_code_filename" : "MultiInputImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "NonLabelPixelIDTypeList",
+  "output_image_type" : "typename InputImageType::template Rebind<typename InputImageType::PixelType, InputImageType::ImageDimension+1>::Type",
+  "custom_register" : "this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 2 > ();\n  #ifdef SITK_4D_IMAGES\n    this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 3 > ();\n  #endif",
+  "members" : [
+    {
+      "name" : "Origin",
+      "type" : "double",
+      "default" : "0.0",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get origin of the new dimension",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get origin of the new dimension"
+    },
+    {
+      "name" : "Spacing",
+      "type" : "double",
+      "default" : "1.0",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get spacing of the new dimension",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get spacing of the new dimension"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default1",
+      "description" : "default join seriees on 2D",
+      "settings" : [],
+      "md5hash" : "095f00a68a84df4396914fa758f34dcc",
+      "inputs" : [
+        "Input/STAPLE1.png"
+      ]
+    },
+    {
+      "tag" : "default2",
+      "description" : "default join series on 2D",
+      "settings" : [],
+      "md5hash" : "fbb1e5d9a3b88fae4ea7c07414fffed5",
+      "inputs" : [
+        "Input/STAPLE1.png",
+        "Input/STAPLE2.png"
+      ]
+    },
+    {
+      "tag" : "default3",
+      "description" : "default join seriees on 2D",
+      "settings" : [],
+      "md5hash" : "6a4bf01b139ed17f802fbdfb7e6b761b",
+      "inputs" : [
+        "Input/STAPLE1.png",
+        "Input/STAPLE2.png",
+        "Input/STAPLE2.png"
+      ]
+    },
+    {
+      "tag" : "default4",
+      "description" : "default join series on 2D",
+      "settings" : [],
+      "md5hash" : "64a44a24d6828741c9585a9e972f2e8a",
+      "inputs" : [
+        "Input/STAPLE1.png",
+        "Input/STAPLE2.png",
+        "Input/STAPLE2.png",
+        "Input/STAPLE2.png"
+      ]
+    },
+    {
+      "tag" : "default5",
+      "description" : "default join series on 2D",
+      "settings" : [],
+      "md5hash" : "64a44a24d6828741c9585a9e972f2e8a",
+      "inputs" : [
+        "Input/STAPLE1.png",
+        "Input/STAPLE2.png",
+        "Input/STAPLE2.png",
+        "Input/STAPLE2.png"
+      ]
+    },
+    {
+      "tag" : "another",
+      "description" : "More 2d image with paramters set",
+      "settings" : [
+        {
+          "parameter" : "Origin",
+          "value" : "1.234"
+        },
+        {
+          "parameter" : "Spacing",
+          "value" : "0.0123"
+        }
+      ],
+      "md5hash" : "f571cec13d5db25aa3337bb72b93e2f2",
+      "inputs" : [
+        "Input/STAPLE1.png",
+        "Input/STAPLE2.png",
+        "Input/STAPLE2.png",
+        "Input/STAPLE1.png",
+        "Input/STAPLE2.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Join N-D images into an (N+1)-D image.",
+  "detaileddescription" : "This filter is templated over the input image type and the output image type. The pixel type of them must be the same and the input dimension must be less than the output dimension. When the input images are N-dimensinal, they are joined in order and the size of the N+1'th dimension of the output is same as the number of the inputs. The spacing and the origin (where the first input is placed) for the N+1'th dimension is specified in this filter. The output imag [...]
+  "itk_module" : "ITKImageCompose",
+  "itk_group" : "ImageCompose"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/KittlerIllingworthThresholdImageFilter.json b/Code/BasicFilters/json/KittlerIllingworthThresholdImageFilter.json
new file mode 100644
index 0000000..4c4d899
--- /dev/null
+++ b/Code/BasicFilters/json/KittlerIllingworthThresholdImageFilter.json
@@ -0,0 +1,132 @@
+{
+  "name" : "KittlerIllingworthThresholdImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "Docs",
+  "number_of_inputs" : 0,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_image_type" : "itk::Image< uint8_t, TImageType::ImageDimension>",
+  "filter_type" : "itk::KittlerIllingworthThresholdImageFilter< TImageType, OutputImageType, OutputImageType >",
+  "inputs" : [
+    {
+      "name" : "Image",
+      "type" : "Image"
+    },
+    {
+      "name" : "MaskImage",
+      "type" : "Image",
+      "optional" : true
+    }
+  ],
+  "members" : [
+    {
+      "name" : "InsideValue",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the \"inside\" pixel value.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"inside\" pixel value.\n"
+    },
+    {
+      "name" : "OutsideValue",
+      "type" : "uint8_t",
+      "default" : "0u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"outside\" pixel value.\n"
+    },
+    {
+      "name" : "NumberOfHistogramBins",
+      "type" : "uint32_t",
+      "default" : "256u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the number of histogram bins.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MaskOutput",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Do you want the output to be masked by the mask used in histogram construction. Only relevant if masking is in use.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MaskValue",
+      "type" : "uint8_t",
+      "default" : "255u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "The value in the mask image, if used, indicating voxels that should be included. Default is the max of pixel type, as in the MaskedImageToHistogramFilter",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "Threshold",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "Get the computed threshold."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "51ea657ca5662a4fd365d7b3b37161c2",
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 28727.0
+        }
+      ]
+    },
+    {
+      "tag" : "cthead1_with_mask",
+      "description" : "CT Head with mask",
+      "settings" : [],
+      "md5hash" : "ccdb8aeb4e80e7bdb3a632610f0dc046",
+      "inputs" : [
+        "Input/cthead1.png",
+        "Input/cthead1-mask.png"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 159.0
+        }
+      ]
+    },
+    {
+      "tag" : "default_on_float",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "d749a8ef5a2049837518618938945cce",
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 0.498051,
+          "tolerance" : 1e-05
+        }
+      ]
+    }
+  ],
+  "briefdescription" : "Threshold an image using the KittlerIllingworth Threshold.",
+  "detaileddescription" : "This filter creates a binary thresholded image that separates an image into foreground and background components. The filter computes the threshold using the KittlerIllingworthThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .\n\n\\author Richard Beare. Department of Medicine, Monash University, Melbourne, Australia. \n\nGaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas,  [...]
+  "itk_module" : "ITKThresholding",
+  "itk_group" : "Thresholding"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/LabelContourImageFilter.json b/Code/BasicFilters/json/LabelContourImageFilter.json
new file mode 100644
index 0000000..a0b47ec
--- /dev/null
+++ b/Code/BasicFilters/json/LabelContourImageFilter.json
@@ -0,0 +1,45 @@
+{
+  "name" : "LabelContourImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. \\note For objects that are 1 pixel wide, use FullyConnectedOn.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. \\note For objects that are 1 pixel wide, use FullyConnectedOn."
+    },
+    {
+      "name" : "BackgroundValue",
+      "type" : "double",
+      "default" : "0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the background value used to identify the objects and mark the pixels not on the border of the objects.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the background value used to identify the objects and mark the pixels not on the border of the objects."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings",
+      "md5hash" : "d742c05a8d8aa9b41f58b8d2aad6b5d0",
+      "settings" : [],
+      "inputs" : [
+        "Input/2th_cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Labels the pixels on the border of the objects in a labeled image.",
+  "detaileddescription" : "LabelContourImageFilter takes a labeled image as input, where the pixels in the objects are the pixels with a value different of the BackgroundValue. Only the pixels on the contours of the objects are kept. The pixels not on the border are changed to BackgroundValue. The labels of the object are the same in the input and in the output image.\n\nThe connectivity can be changed to minimum or maximum connectivity with SetFullyConnected() . Full connectivity produc [...]
+  "itk_module" : "ITKImageLabel",
+  "itk_group" : "ImageLabel"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/LabelImageToLabelMapFilter.json b/Code/BasicFilters/json/LabelImageToLabelMapFilter.json
new file mode 100644
index 0000000..5b7f734
--- /dev/null
+++ b/Code/BasicFilters/json/LabelImageToLabelMapFilter.json
@@ -0,0 +1,51 @@
+{
+  "name" : "LabelImageToLabelMapFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Docs",
+  "pixel_types" : "UnsignedIntegerPixelIDTypeList",
+  "filter_type" : "itk::LabelImageToLabelMapFilter<InputImageType, itk::LabelMap< itk::LabelObject< typename InputImageType::PixelType, InputImageType::ImageDimension > > >",
+  "members" : [
+    {
+      "name" : "BackgroundValue",
+      "type" : "double",
+      "default" : "0",
+      "doc" : "",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value used as \"background\" in the output image. Defaults to NumericTraits<PixelType>::NonpositiveMin() .",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value used as \"background\" in the output image. Defaults to NumericTraits<PixelType>::NonpositiveMin() ."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings",
+      "md5hash" : "12d50e2d291cf91b0384bd1eb123b0f0",
+      "settings" : [],
+      "inputs" : [
+        "Input/2th_cthead1.mha"
+      ]
+    },
+    {
+      "tag" : "black_dots",
+      "description" : "background is white",
+      "md5hash" : "12d50e2d291cf91b0384bd1eb123b0f0",
+      "settings" : [
+        {
+          "parameter" : "BackgroundValue",
+          "value" : "255.0"
+        }
+      ],
+      "inputs" : [
+        "Input/2th_cthead1.mha"
+      ]
+    }
+  ],
+  "briefdescription" : "convert a labeled image to a label collection image",
+  "detaileddescription" : "LabelImageToLabelMapFilter converts a label image to a label collection image. The labels are the same in the input and the output image.\n\n\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\nThis implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176 \n\n\\see BinaryImageToLabelMapFilter , LabelMapToLabelImageFilte [...]
+  "itk_module" : "ITKLabelMap",
+  "itk_group" : "LabelMap"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/LabelIntensityStatisticsImageFilter.json b/Code/BasicFilters/json/LabelIntensityStatisticsImageFilter.json
new file mode 100644
index 0000000..44c8b91
--- /dev/null
+++ b/Code/BasicFilters/json/LabelIntensityStatisticsImageFilter.json
@@ -0,0 +1,737 @@
+{
+  "name" : "LabelIntensityStatisticsImageFilter",
+  "itk_name" : "LabelImageToStatisticsLabelMapFilter",
+  "template_code_filename" : "DualImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 0,
+  "doc" : "Docs",
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "pixel_types2" : "BasicPixelIDTypeList",
+  "filter_type" : "itk::LabelImageToStatisticsLabelMapFilter<InputImageType,InputImageType2, itk::LabelMap< itk::StatisticsLabelObject< int64_t, InputImageType::ImageDimension > > >",
+  "no_procedure" : true,
+  "no_return_image" : true,
+  "include_files" : [],
+  "inputs" : [
+    {
+      "name" : "Image",
+      "type" : "Image"
+    },
+    {
+      "name" : "FeatureImage",
+      "type" : "Image",
+      "custom_itk_cast" : "filter->SetFeatureImage( this->CastImageToITK<typename FilterType::FeatureImageType>(*inFeatureImage) );"
+    }
+  ],
+  "members" : [
+    {
+      "name" : "BackgroundValue",
+      "type" : "double",
+      "default" : "0",
+      "doc" : "",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value used as \"background\" in the output image. Defaults to NumericTraits<PixelType>::NonpositiveMin() .",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value used as \"background\" in the output image. Defaults to NumericTraits<PixelType>::NonpositiveMin() ."
+    },
+    {
+      "name" : "ComputeFeretDiameter",
+      "type" : "bool",
+      "default" : "false",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the maximum Feret diameter should be computed or not. The defaut value is false, because of the high computation time required.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the maximum Feret diameter should be computed or not. The defaut value is false, because of the high computation time required."
+    },
+    {
+      "name" : "ComputePerimeter",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the perimeter should be computed or not. The defaut value is false, because of the high computation time required.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the perimeter should be computed or not. The defaut value is false, because of the high computation time required."
+    },
+    {
+      "name" : "NumberOfBins",
+      "type" : "uint32_t",
+      "default" : "128u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the number of bins in the histogram. Note that the histogram is used to compute the median value, and that this option may have an effect on the value of the median.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the number of bins in the histogram. Note that the histogram is used to compute the median value, and that this option may have an effect on the value of the median."
+    }
+  ],
+  "custom_methods" : [
+    {
+      "name" : "HasLabel",
+      "doc" : "Does the specified label exist? Can only be called after a call a call to Update().",
+      "return_type" : "double",
+      "parameters" : [
+        {
+          "type" : "int64_t",
+          "var_name" : "label"
+        }
+      ],
+      "body" : "return std::find(m_Labels.begin(),m_Labels.end(), label) != m_Labels.end();"
+    },
+    {
+      "name" : "GetNumberOfLabels",
+      "doc" : "Return the number of labels after execution.",
+      "return_type" : "uint64_t",
+      "body" : "return m_Labels.size();"
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "BoundingBox",
+      "type" : "std::vector<unsigned int>",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "custom_cast" : "sitkITKImageRegionToSTL(value)",
+      "label_map" : true
+    },
+    {
+      "name" : "Centroid",
+      "type" : "std::vector<double>",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "custom_cast" : "sitkITKVectorToSTL<double>(value)",
+      "label_map" : true
+    },
+    {
+      "name" : "Elongation",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "EquivalentEllipsoidDiameter",
+      "type" : "std::vector<double>",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "custom_cast" : "sitkITKVectorToSTL<double>(value)",
+      "label_map" : true
+    },
+    {
+      "name" : "EquivalentSphericalPerimeter",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "EquivalentSphericalRadius",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "FeretDiameter",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "Flatness",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "Labels",
+      "type" : "std::vector<int64_t>",
+      "custom_itk_cast" : "const std::vector<typename FilterType::OutputImageType::LabelType> tempLabels = filter->GetOutput()->GetLabels();\n  this->m_Labels = std::vector<int64_t>(tempLabels.begin(), tempLabels.end());",
+      "default" : "std::vector<int64_t>()"
+    },
+    {
+      "name" : "NumberOfPixels",
+      "type" : "uint64_t",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "NumberOfPixelsOnBorder",
+      "type" : "uint64_t",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "Perimeter",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "PerimeterOnBorder",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "PerimeterOnBorderRatio",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "PhysicalSize",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "PrincipalAxes",
+      "type" : "std::vector<double>",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "custom_cast" : "std::vector<double>(value[0], value[T::RowDimensions-1]+T::ColumnDimensions)",
+      "label_map" : true
+    },
+    {
+      "name" : "PrincipalMoments",
+      "type" : "std::vector<double>",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "custom_cast" : "sitkITKVectorToSTL<double>(value)",
+      "label_map" : true
+    },
+    {
+      "name" : "Roundness",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "CenterOfGravity",
+      "type" : "std::vector<double>",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "custom_cast" : "sitkITKVectorToSTL<double>(value)",
+      "label_map" : true
+    },
+    {
+      "name" : "Kurtosis",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "Maximum",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "MaximumIndex",
+      "type" : "std::vector<uint32_t>",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "custom_cast" : "sitkITKVectorToSTL<uint32_t>(value)",
+      "label_map" : true
+    },
+    {
+      "name" : "Mean",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "Median",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "Minimum",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "MinimumIndex",
+      "type" : "std::vector<uint32_t>",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "custom_cast" : "sitkITKVectorToSTL<uint32_t>(value)",
+      "label_map" : true
+    },
+    {
+      "name" : "Skewness",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "StandardDeviation",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "Sum",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "Variance",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "WeightedElongation",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "WeightedFlatness",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "WeightedPrincipalAxes",
+      "type" : "std::vector<double>",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "custom_cast" : "std::vector<double>(value[0], value[T::RowDimensions-1]+T::ColumnDimensions)",
+      "label_map" : true
+    },
+    {
+      "name" : "WeightedPrincipalMoments",
+      "type" : "std::vector<double>",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "custom_cast" : "sitkITKVectorToSTL<double>(value)",
+      "label_map" : true
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "cthead1",
+      "description" : "cthead1 with defaults",
+      "settings" : [],
+      "inputs" : [
+        "Input/2th_cthead1.mha",
+        "Input/cthead1.png"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Elongation",
+          "value" : 1.1422985238962327,
+          "tolerance" : 1e-08,
+          "parameters" : [
+            "1"
+          ]
+        },
+        {
+          "name" : "EquivalentSphericalPerimeter",
+          "value" : 194.29697897008242,
+          "tolerance" : 1e-08,
+          "parameters" : [
+            "1"
+          ]
+        },
+        {
+          "name" : "EquivalentSphericalRadius",
+          "value" : 30.923324630910653,
+          "tolerance" : 1e-08,
+          "parameters" : [
+            "1"
+          ]
+        },
+        {
+          "name" : "FeretDiameter",
+          "value" : 0,
+          "parameters" : [
+            "1"
+          ]
+        },
+        {
+          "name" : "Flatness",
+          "value" : 1.1422985238962327,
+          "tolerance" : 1e-08,
+          "parameters" : [
+            "1"
+          ]
+        },
+        {
+          "name" : "NumberOfLabels",
+          "value" : "2u"
+        },
+        {
+          "name" : "NumberOfPixels",
+          "value" : "24139u",
+          "parameters" : [
+            "1"
+          ]
+        },
+        {
+          "name" : "NumberOfPixelsOnBorder",
+          "value" : "0u",
+          "parameters" : [
+            "1"
+          ]
+        },
+        {
+          "name" : "Perimeter",
+          "value" : 1254.360759871071,
+          "tolerance" : 1e-08,
+          "parameters" : [
+            "1"
+          ]
+        },
+        {
+          "name" : "PerimeterOnBorder",
+          "value" : 0,
+          "parameters" : [
+            "1"
+          ]
+        },
+        {
+          "name" : "PerimeterOnBorderRatio",
+          "value" : 0,
+          "parameters" : [
+            "1"
+          ]
+        },
+        {
+          "name" : "PhysicalSize",
+          "value" : 3004.1542777485397,
+          "tolerance" : 1e-08,
+          "parameters" : [
+            "1"
+          ]
+        },
+        {
+          "name" : "Roundness",
+          "value" : 0.15489720755458994,
+          "tolerance" : 1e-08,
+          "parameters" : [
+            "1"
+          ]
+        },
+        {
+          "name" : "Kurtosis",
+          "value" : 5.491040986144835,
+          "tolerance" : 1e-08,
+          "parameters" : [
+            "1"
+          ]
+        },
+        {
+          "name" : "Maximum",
+          "value" : 199,
+          "parameters" : [
+            "1"
+          ]
+        },
+        {
+          "name" : "Mean",
+          "value" : 138.56282364638136,
+          "tolerance" : 1e-08,
+          "parameters" : [
+            "1"
+          ]
+        },
+        {
+          "name" : "Mean",
+          "value" : 244.31961722488037,
+          "tolerance" : 1e-08,
+          "parameters" : [
+            "2"
+          ]
+        },
+        {
+          "name" : "Median",
+          "value" : 136.46484375,
+          "tolerance" : 1e-08,
+          "parameters" : [
+            "1"
+          ]
+        },
+        {
+          "name" : "Minimum",
+          "value" : 100,
+          "parameters" : [
+            "1"
+          ]
+        },
+        {
+          "name" : "Skewness",
+          "value" : 1,
+          "tolerance" : 1.8728484943852783,
+          "parameters" : [
+            "1"
+          ]
+        },
+        {
+          "name" : "StandardDeviation",
+          "value" : 14.051474145970603,
+          "tolerance" : 1e-08,
+          "parameters" : [
+            "1"
+          ]
+        },
+        {
+          "name" : "Sum",
+          "value" : 3344768,
+          "parameters" : [
+            "1"
+          ]
+        },
+        {
+          "name" : "Variance",
+          "value" : 197.44392567488032,
+          "tolerance" : 1e-08,
+          "parameters" : [
+            "1"
+          ]
+        },
+        {
+          "name" : "WeightedElongation",
+          "value" : 1.1454453590786724,
+          "tolerance" : 1e-08,
+          "parameters" : [
+            "1"
+          ]
+        },
+        {
+          "name" : "WeightedFlatness",
+          "value" : 1.1454453590786724,
+          "tolerance" : 1e-08,
+          "parameters" : [
+            "1"
+          ]
+        }
+      ]
+    }
+  ],
+  "briefdescription" : "a convenient class to convert a label image to a label map and valuate the statistics attributes at once",
+  "detaileddescription" : "\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\nThis implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176 \n\n\\see StatisticsLabelObject , LabelStatisticsOpeningImageFilter , LabelStatisticsOpeningImageFilter",
+  "itk_module" : "ITKLabelMap",
+  "itk_group" : "LabelMap"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/LabelMapContourOverlayImageFilter.json b/Code/BasicFilters/json/LabelMapContourOverlayImageFilter.json
new file mode 100644
index 0000000..9905b3f
--- /dev/null
+++ b/Code/BasicFilters/json/LabelMapContourOverlayImageFilter.json
@@ -0,0 +1,119 @@
+{
+  "name" : "LabelMapContourOverlayImageFilter",
+  "template_code_filename" : "DualImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "include_files" : [
+    "sitkLabelFunctorUtils.hxx"
+  ],
+  "number_of_inputs" : 0,
+  "doc" : "",
+  "pixel_types" : "LabelPixelIDTypeList",
+  "pixel_types2" : "BasicPixelIDTypeList",
+  "output_image_type" : "itk::VectorImage< typename InputImageType2::PixelType, InputImageType::ImageDimension >",
+  "filter_type" : "itk::LabelMapContourOverlayImageFilter<InputImageType, InputImageType2, OutputImageType>",
+  "inputs" : [
+    {
+      "name" : "LabelMapImage",
+      "type" : "Image",
+      "custom_itk_cast" : "filter->SetInput( this->CastImageToITK<typename FilterType::LabelMapType>(*inLabelMapImage) );"
+    },
+    {
+      "name" : "FeatureImage",
+      "type" : "Image",
+      "custom_itk_cast" : "filter->SetFeatureImage( const_cast<typename FilterType::FeatureImageType*>( this->CastImageToITK<typename FilterType::FeatureImageType>(*inFeatureImage).GetPointer() ) );"
+    }
+  ],
+  "members" : [
+    {
+      "name" : "Opacity",
+      "type" : "double",
+      "default" : 0.5,
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the opacity of the colored label image. The value must be between 0 and 1",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the opacity of the colored label image. The value must be between 0 and 1"
+    },
+    {
+      "name" : "DilationRadius",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 1)",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "itk_type" : "typename InputImageType::SizeType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the object dilation radius - 0 by default.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the object dilation radius - 0 by default."
+    },
+    {
+      "name" : "ContourThickness",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 1)",
+      "dim_vec" : 1,
+      "itk_type" : "typename InputImageType::SizeType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the contour thickness - 1 by default.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the contour thickness - 1 by default."
+    },
+    {
+      "name" : "SliceDimension",
+      "type" : "unsigned int",
+      "default" : "0u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the slice dimension - defaults to image dimension - 1.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the slice dimension - defaults to image dimension - 1."
+    },
+    {
+      "name" : "ContourType",
+      "enum" : [
+        "PLAIN",
+        "CONTOUR",
+        "SLICE_CONTOUR"
+      ],
+      "default" : "itk::simple::LabelMapContourOverlayImageFilter::CONTOUR",
+      "custom_itk_cast" : "filter->SetType( int( m_ContourType ) );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the overlay type - CONTOUR is used by default.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the overlay type - CONTOUR is used by default.\n"
+    },
+    {
+      "name" : "Priority",
+      "enum" : [
+        "HIGH_LABEL_ON_TOP",
+        "LOW_LABEL_ON_TOP"
+      ],
+      "default" : "itk::simple::LabelMapContourOverlayImageFilter::HIGH_LABEL_ON_TOP",
+      "custom_itk_cast" : "filter->SetPriority( int( m_Priority ) );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the object priority - HIGH_LABEL_ON_TOP by default.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the object priority - HIGH_LABEL_ON_TOP by default."
+    },
+    {
+      "name" : "Colormap",
+      "type" : "std::vector<uint8_t>",
+      "default" : "std::vector<uint8_t>()",
+      "custom_itk_cast" : "SetLabelFunctorFromColormap(filter->GetFunctor(),this->m_Colormap);"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings",
+      "inputA_cast" : "sitkLabelUInt8",
+      "md5hash" : "5d547351bbab8db03fc92e4e860afc8f",
+      "settings" : [],
+      "inputs" : [
+        "Input/2th_cthead1.mha",
+        "Input/cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Apply a colormap to the contours (outlines) of each object in a label map and superimpose it on top of the feature image.",
+  "detaileddescription" : "The feature image is typically the image from which the labeling was produced. Use the SetInput function to set the LabelMap , and the SetFeatureImage function to set the feature image.\n\nApply a colormap to a label map and put it on top of the input image. The set of colors is a good selection of distinct colors. The opacity of the label map can be defined by the user. A background label produce a gray pixel with the same intensity than the input one.\n\n\\au [...]
+  "itk_module" : "ITKImageFusion",
+  "itk_group" : "ImageFusion"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/LabelMapMaskImageFilter.json b/Code/BasicFilters/json/LabelMapMaskImageFilter.json
new file mode 100644
index 0000000..8867e14
--- /dev/null
+++ b/Code/BasicFilters/json/LabelMapMaskImageFilter.json
@@ -0,0 +1,119 @@
+{
+  "name" : "LabelMapMaskImageFilter",
+  "template_code_filename" : "DualImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 0,
+  "doc" : "",
+  "pixel_types" : "LabelPixelIDTypeList",
+  "pixel_types2" : "typelist::Append<BasicPixelIDTypeList, ComplexPixelIDTypeList>::Type",
+  "filter_type" : "itk::LabelMapMaskImageFilter<InputImageType, InputImageType2>",
+  "inputs" : [
+    {
+      "name" : "LabelMapImage",
+      "type" : "Image"
+    },
+    {
+      "name" : "FeatureImage",
+      "type" : "Image",
+      "custom_itk_cast" : "filter->SetFeatureImage( this->CastImageToITK<typename FilterType::OutputImageType>(*inFeatureImage) );"
+    }
+  ],
+  "members" : [
+    {
+      "name" : "Label",
+      "type" : "uint64_t",
+      "default" : "1u",
+      "doc" : "",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "The label to mask or to not mask, depending on the value of the Negated ivar.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "The label to mask or to not mask, depending on the value of the Negated ivar."
+    },
+    {
+      "name" : "BackgroundValue",
+      "type" : "double",
+      "default" : "0",
+      "doc" : "",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value used as \"background\" in the output image. Defaults to NumericTraits<PixelType>::ZeroValue() .",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value used as \"background\" in the output image. Defaults to NumericTraits<PixelType>::ZeroValue() ."
+    },
+    {
+      "name" : "Negated",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the Label should be masked or not.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the Label should be masked or not."
+    },
+    {
+      "name" : "Crop",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the image size should be adjusted to the masked image or not.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the image size should be adjusted to the masked image or not."
+    },
+    {
+      "name" : "CropBorder",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 0)",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "itk_type" : "typename FilterType::SizeType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the boder added to the mask before the crop. The default is 0 on all the axes.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the boder added to the mask before the crop. The default is 0 on all the axes."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Running with just setting correct label",
+      "inputA_cast" : "sitkLabelUInt8",
+      "md5hash" : "35705eb42bda4024218a0b789564d72e",
+      "settings" : [],
+      "inputs" : [
+        "Input/2th_cthead1.mha",
+        "Input/cthead1.png"
+      ]
+    },
+    {
+      "tag" : "withCrop",
+      "description" : "Adding in a crop",
+      "inputA_cast" : "sitkLabelUInt8",
+      "md5hash" : "484d72f9485b51792a3da338973da7d1",
+      "no_procedure" : true,
+      "settings" : [
+        {
+          "parameter" : "Label",
+          "type" : "uint64_t",
+          "value" : 255,
+          "cxx_value" : "255u"
+        },
+        {
+          "parameter" : "Crop",
+          "value" : "true",
+          "python_value" : "True",
+          "R_value" : "TRUE"
+        }
+      ],
+      "inputs" : [
+        "Input/cthead1-mask.png",
+        "Input/cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Mask and image with a LabelMap .",
+  "detaileddescription" : "LabelMapMaskImageFilter mask the content of an input image according to the content of the input LabelMap . The masked pixel of the input image are set to the BackgroundValue. LabelMapMaskImageFilter can keep the input image for one label only, with Negated = false (the default) or it can mask the input image for a single label, when Negated equals true. In Both cases, the label is set with SetLabel() .\n\n\\author Gaetan Lehmann. Biologie du Developpement et d [...]
+  "itk_module" : "ITKLabelMap",
+  "itk_group" : "LabelMap"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/LabelMapOverlayImageFilter.json b/Code/BasicFilters/json/LabelMapOverlayImageFilter.json
new file mode 100644
index 0000000..fc7da9a
--- /dev/null
+++ b/Code/BasicFilters/json/LabelMapOverlayImageFilter.json
@@ -0,0 +1,61 @@
+{
+  "name" : "LabelMapOverlayImageFilter",
+  "template_code_filename" : "DualImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "include_files" : [
+    "sitkLabelFunctorUtils.hxx"
+  ],
+  "number_of_inputs" : 0,
+  "doc" : "",
+  "pixel_types" : "LabelPixelIDTypeList",
+  "pixel_types2" : "BasicPixelIDTypeList",
+  "output_image_type" : "itk::VectorImage< typename InputImageType2::PixelType, InputImageType::ImageDimension >",
+  "filter_type" : "itk::LabelMapOverlayImageFilter<InputImageType, InputImageType2, OutputImageType>",
+  "inputs" : [
+    {
+      "name" : "LabelMapImage",
+      "type" : "Image",
+      "custom_itk_cast" : "filter->SetInput1( this->CastImageToITK<typename FilterType::LabelMapType>(*inLabelMapImage) );"
+    },
+    {
+      "name" : "FeatureImage",
+      "type" : "Image",
+      "custom_itk_cast" : "filter->SetFeatureImage( this->CastImageToITK<typename FilterType::FeatureImageType>(*inFeatureImage) );"
+    }
+  ],
+  "members" : [
+    {
+      "name" : "Opacity",
+      "type" : "double",
+      "default" : 0.5,
+      "doc" : "Value assigned to pixels outside of the mask",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the opacity of the colored label image. The value must be between 0 and 1",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the opacity of the colored label image. The value must be between 0 and 1"
+    },
+    {
+      "name" : "Colormap",
+      "type" : "std::vector<unsigned char>",
+      "default" : "std::vector<unsigned char>()",
+      "custom_itk_cast" : "SetLabelFunctorFromColormap(filter->GetFunctor(),this->m_Colormap);"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings",
+      "inputA_cast" : "sitkLabelUInt8",
+      "md5hash" : "299b2f5dbf018c868d65d9d5511fe470",
+      "settings" : [],
+      "inputs" : [
+        "Input/2th_cthead1.mha",
+        "Input/cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Apply a colormap to a label map and superimpose it on an image.",
+  "detaileddescription" : "Apply a colormap to a label map and put it on top of the feature image. The feature image is typically the image from which the labeling was produced. Use the SetInput function to set the LabelMap , and the SetFeatureImage function to set the feature image.\n\nThe set of colors is a good selection of distinct colors. The opacity of the label map can be defined by the user. A background label produce a gray pixel with the same intensity than the input one.\n\n\\ [...]
+  "itk_module" : "ITKImageFusion",
+  "itk_group" : "ImageFusion"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/LabelMapToBinaryImageFilter.json b/Code/BasicFilters/json/LabelMapToBinaryImageFilter.json
new file mode 100644
index 0000000..408b576
--- /dev/null
+++ b/Code/BasicFilters/json/LabelMapToBinaryImageFilter.json
@@ -0,0 +1,49 @@
+{
+  "name" : "LabelMapToBinaryImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "output_image_type" : "itk::Image<uint8_t, InputImageType::ImageDimension>",
+  "number_of_inputs" : 1,
+  "doc" : "Docs",
+  "pixel_types" : "LabelPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "BackgroundValue",
+      "type" : "double",
+      "default" : "0",
+      "doc" : "",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value used as \"background\" in the output image. Defaults to NumericTraits<PixelType>::NonpositiveMin() .",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value used as \"background\" in the output image. Defaults to NumericTraits<PixelType>::NonpositiveMin() ."
+    },
+    {
+      "name" : "ForegroundValue",
+      "type" : "double",
+      "default" : "1.0",
+      "doc" : "",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value used as \"foreground\" in the output image. Defaults to NumericTraits<PixelType>::max() .",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value used as \"foreground\" in the output image. Defaults to NumericTraits<PixelType>::max() ."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings",
+      "inputA_cast" : "sitkLabelUInt8",
+      "md5hash" : "5c1d8fbca877e6b9aba8ad58b03a6cd5",
+      "settings" : [],
+      "inputs" : [
+        "Input/2th_cthead1.mha"
+      ]
+    }
+  ],
+  "briefdescription" : "Convert a LabelMap to a binary image.",
+  "detaileddescription" : "LabelMapToBinaryImageFilter to a binary image. All the objects in the image are used as foreground. The background values of the original binary image can be restored by passing this image to the filter with the SetBackgroundImage() method.\n\nThis implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176 \n\n\\author Gaetan Lehmann. Biologie du Developpement et de la Reprod [...]
+  "itk_module" : "ITKLabelMap",
+  "itk_group" : "LabelMap"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/LabelMapToLabelImageFilter.json b/Code/BasicFilters/json/LabelMapToLabelImageFilter.json
new file mode 100644
index 0000000..79a1e29
--- /dev/null
+++ b/Code/BasicFilters/json/LabelMapToLabelImageFilter.json
@@ -0,0 +1,26 @@
+{
+  "name" : "LabelMapToLabelImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "output_image_type" : "itk::Image<typename InputImageType::LabelType , InputImageType::ImageDimension>",
+  "number_of_inputs" : 1,
+  "doc" : "Docs",
+  "pixel_types" : "LabelPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings",
+      "inputA_cast" : "sitkLabelUInt8",
+      "md5hash" : "12d50e2d291cf91b0384bd1eb123b0f0",
+      "settings" : [],
+      "inputs" : [
+        "Input/2th_cthead1.mha"
+      ]
+    }
+  ],
+  "briefdescription" : "Converts a LabelMap to a labeled image.",
+  "detaileddescription" : "LabelMapToBinaryImageFilter to a label image.\n\n\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\nThis implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176 \n\n\\see LabelMapToBinaryImageFilter , LabelMapMaskImageFilter \n\n\\par Wiki Examples:\n\n\\li All Examples \n\n\\li Convert a LabelMap to a normal image w [...]
+  "itk_module" : "ITKLabelMap",
+  "itk_group" : "LabelMap"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/LabelMapToRGBImageFilter.json b/Code/BasicFilters/json/LabelMapToRGBImageFilter.json
new file mode 100644
index 0000000..1d48ac7
--- /dev/null
+++ b/Code/BasicFilters/json/LabelMapToRGBImageFilter.json
@@ -0,0 +1,36 @@
+{
+  "name" : "LabelMapToRGBImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "include_files" : [
+    "sitkLabelFunctorUtils.hxx"
+  ],
+  "output_image_type" : "itk::VectorImage< unsigned char, InputImageType::ImageDimension>",
+  "number_of_inputs" : 1,
+  "doc" : "Docs",
+  "pixel_types" : "LabelPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Colormap",
+      "type" : "std::vector<uint8_t>",
+      "default" : "std::vector<uint8_t>()",
+      "custom_itk_cast" : "SetLabelFunctorFromColormap(filter->GetFunctor(),this->m_Colormap);"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings",
+      "inputA_cast" : "sitkLabelUInt8",
+      "md5hash" : "850e04c66180956c8a19471309fa2391",
+      "settings" : [],
+      "inputs" : [
+        "Input/2th_cthead1.mha"
+      ]
+    }
+  ],
+  "briefdescription" : "Convert a LabelMap to a colored image.",
+  "detaileddescription" : "\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\nThis implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176 \n\n\\see LabelToRGBImageFilter , LabelToRGBFunctor \n\n\\see LabelMapOverlayImageFilter , LabelMapToBinaryImageFilter , LabelMapMaskImageFilter",
+  "itk_module" : "ITKImageFusion",
+  "itk_group" : "ImageFusion"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/LabelOverlapMeasuresImageFilter.json b/Code/BasicFilters/json/LabelOverlapMeasuresImageFilter.json
new file mode 100644
index 0000000..ca02d34
--- /dev/null
+++ b/Code/BasicFilters/json/LabelOverlapMeasuresImageFilter.json
@@ -0,0 +1,160 @@
+{
+  "name" : "LabelOverlapMeasuresImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 2,
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "filter_type" : "itk::LabelOverlapMeasuresImageFilter<InputImageType>",
+  "no_procedure" : true,
+  "no_return_image" : true,
+  "members" : [],
+  "measurements" : [
+    {
+      "name" : "FalseNegativeError",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the false negative error for the specified individual label."
+    },
+    {
+      "name" : "FalsePositiveError",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the false positive error for the specified individual label."
+    },
+    {
+      "name" : "MeanOverlap",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the mean overlap (Dice coefficient) for the specified individual label."
+    },
+    {
+      "name" : "UnionOverlap",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the union overlap (Jaccard coefficient) for the specified individual label."
+    },
+    {
+      "name" : "VolumeSimilarity",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the volume similarity for the specified individual label."
+    },
+    {
+      "name" : "JaccardCoefficient",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the union overlap (Jaccard coefficient) for the specified individual label."
+    },
+    {
+      "name" : "DiceCoefficient",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the mean overlap (Dice coefficient) for the specified individual label."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "2d",
+      "description" : "2d",
+      "settings" : [],
+      "measurements_results" : [
+        {
+          "name" : "FalseNegativeError",
+          "value" : 0.22181,
+          "tolerance" : 1e-05
+        },
+        {
+          "name" : "FalsePositiveError",
+          "value" : 0.12807,
+          "tolerance" : 1e-05
+        },
+        {
+          "name" : "MeanOverlap",
+          "value" : 0.82239,
+          "tolerance" : 1e-05
+        },
+        {
+          "name" : "UnionOverlap",
+          "value" : 0.69836,
+          "tolerance" : 1e-05
+        },
+        {
+          "name" : "VolumeSimilarity",
+          "value" : -0.11361,
+          "tolerance" : 1e-05
+        },
+        {
+          "name" : "JaccardCoefficient",
+          "value" : 0.69836,
+          "tolerance" : 1e-05
+        },
+        {
+          "name" : "DiceCoefficient",
+          "value" : 0.82239,
+          "tolerance" : 1e-05
+        }
+      ],
+      "inputs" : [
+        "Input/STAPLE1.png",
+        "Input/STAPLE2.png"
+      ]
+    },
+    {
+      "tag" : "2d_binary",
+      "description" : "2d with binary images",
+      "settings" : [],
+      "measurements_results" : [
+        {
+          "name" : "FalseNegativeError",
+          "value" : 0.1632896305125149,
+          "tolerance" : 1e-05
+        },
+        {
+          "name" : "FalsePositiveError",
+          "value" : 0.0625,
+          "tolerance" : 1e-05
+        },
+        {
+          "name" : "MeanOverlap",
+          "value" : 0.8842423479027586,
+          "tolerance" : 1e-05
+        },
+        {
+          "name" : "UnionOverlap",
+          "value" : 0.7925039512305261,
+          "tolerance" : 1e-05
+        },
+        {
+          "name" : "VolumeSimilarity",
+          "value" : -0.11361,
+          "tolerance" : 1e-05
+        },
+        {
+          "name" : "JaccardCoefficient",
+          "value" : 0.7925039512305261,
+          "tolerance" : 1e-05
+        },
+        {
+          "name" : "DiceCoefficient",
+          "value" : 0.8842423479027586,
+          "tolerance" : 1e-05
+        }
+      ],
+      "inputs" : [
+        "Input/STAPLE1-binary.png",
+        "Input/STAPLE2-binary.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes overlap measures between the set same set of labels of pixels of two images. Background is assumed to be 0.",
+  "detaileddescription" : "This code was contributed in the Insight Journal paper: \"Introducing Dice, Jaccard, and Other Label Overlap Measures To ITK\" by Nicholas J. Tustison, James C. Gee https://hdl.handle.net/10380/3141 http://www.insight-journal.org/browse/publication/707 \n\n\\author Nicholas J. Tustison \n\n\\see LabelOverlapMeasuresImageFilter",
+  "itk_module" : "ITKImageStatistics",
+  "itk_group" : "ImageStatistics"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/LabelOverlayImageFilter.json b/Code/BasicFilters/json/LabelOverlayImageFilter.json
new file mode 100644
index 0000000..fdf9434
--- /dev/null
+++ b/Code/BasicFilters/json/LabelOverlayImageFilter.json
@@ -0,0 +1,68 @@
+{
+  "name" : "LabelOverlayImageFilter",
+  "template_code_filename" : "DualImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "include_files" : [
+    "sitkLabelFunctorUtils.hxx"
+  ],
+  "number_of_inputs" : 0,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "pixel_types2" : "IntegerPixelIDTypeList",
+  "output_image_type" : "itk::VectorImage< typename InputImageType::PixelType, InputImageType::ImageDimension >",
+  "filter_type" : "itk::LabelOverlayImageFilter<InputImageType, InputImageType2, OutputImageType>",
+  "inputs" : [
+    {
+      "name" : "Image",
+      "type" : "Image"
+    },
+    {
+      "name" : "LabelImage",
+      "type" : "Image"
+    }
+  ],
+  "members" : [
+    {
+      "name" : "Opacity",
+      "type" : "double",
+      "default" : 0.5,
+      "doc" : "Value assigned to pixels outside of the mask",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the opacity of the colored label image. The value must be between 0 and 1",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the opacity of the colored label image. The value must be between 0 and 1"
+    },
+    {
+      "name" : "BackgroundValue",
+      "type" : "double",
+      "default" : "0.0",
+      "custom_itk_cast" : "filter->SetBackgroundValue(static_cast< typename InputImageType2::PixelType>( m_BackgroundValue ) );",
+      "briefdescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the background value",
+      "detaileddescriptionSet" : "Set/Get the background value"
+    },
+    {
+      "name" : "Colormap",
+      "type" : "std::vector<uint8_t>",
+      "default" : "std::vector<uint8_t>()",
+      "custom_itk_cast" : "SetLabelFunctorFromColormap(filter->GetFunctor(),this->m_Colormap);"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings",
+      "md5hash" : "299b2f5dbf018c868d65d9d5511fe470",
+      "settings" : [],
+      "inputs" : [
+        "Input/cthead1.png",
+        "Input/2th_cthead1.mha"
+      ]
+    }
+  ],
+  "briefdescription" : "Apply a colormap to a label image and put it on top of the input image.",
+  "detaileddescription" : "Apply a colormap to a label image and put it on top of the input image. The set of colors is a good selection of distinct colors. The opacity of the label image can be defined by the user. The user can also choose if the want to use a background and which label value is the background. A background label produce a gray pixel with the same intensity than the input one.\n\n\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-J [...]
+  "itk_module" : "ITKImageFusion",
+  "itk_group" : "ImageFusion"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/LabelShapeStatisticsImageFilter.json b/Code/BasicFilters/json/LabelShapeStatisticsImageFilter.json
new file mode 100644
index 0000000..580de49
--- /dev/null
+++ b/Code/BasicFilters/json/LabelShapeStatisticsImageFilter.json
@@ -0,0 +1,410 @@
+{
+  "name" : "LabelShapeStatisticsImageFilter",
+  "itk_name" : "LabelImageToShapeLabelMapFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Docs",
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "filter_type" : "itk::LabelImageToShapeLabelMapFilter<InputImageType, itk::LabelMap< itk::ShapeLabelObject< int64_t, InputImageType::ImageDimension > > >",
+  "no_procedure" : true,
+  "no_return_image" : true,
+  "include_files" : [
+    "itkShapeLabelObject.h"
+  ],
+  "members" : [
+    {
+      "name" : "BackgroundValue",
+      "type" : "double",
+      "default" : "0",
+      "doc" : "",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value used as \"background\" in the output image. Defaults to NumericTraits<PixelType>::NonpositiveMin() .",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value used as \"background\" in the output image. Defaults to NumericTraits<PixelType>::NonpositiveMin() ."
+    },
+    {
+      "name" : "ComputeFeretDiameter",
+      "type" : "bool",
+      "default" : "false",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the maximum Feret diameter should be computed or not. Default value is false, because of the high computation time required.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the maximum Feret diameter should be computed or not. Default value is false, because of the high computation time required."
+    },
+    {
+      "name" : "ComputePerimeter",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the perimeter should be computed or not. Default value is false, because of the high computation time required.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the perimeter should be computed or not. Default value is false, because of the high computation time required."
+    }
+  ],
+  "custom_methods" : [
+    {
+      "name" : "HasLabel",
+      "doc" : "Does the specified label exist? Can only be called after a call a call to Update().",
+      "return_type" : "double",
+      "parameters" : [
+        {
+          "type" : "int64_t",
+          "var_name" : "label"
+        }
+      ],
+      "body" : "return std::find(m_Labels.begin(),m_Labels.end(), label) != m_Labels.end();"
+    },
+    {
+      "name" : "GetNumberOfLabels",
+      "doc" : "Return the number of labels after execution.",
+      "return_type" : "uint64_t",
+      "body" : "return m_Labels.size();"
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "BoundingBox",
+      "type" : "std::vector<unsigned int>",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "custom_cast" : "sitkITKImageRegionToSTL(value)",
+      "label_map" : true
+    },
+    {
+      "name" : "Centroid",
+      "type" : "std::vector<double>",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "custom_cast" : "sitkITKVectorToSTL<double>(value)",
+      "label_map" : true
+    },
+    {
+      "name" : "Elongation",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "EquivalentEllipsoidDiameter",
+      "type" : "std::vector<double>",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "custom_cast" : "sitkITKVectorToSTL<double>(value)",
+      "label_map" : true
+    },
+    {
+      "name" : "EquivalentSphericalPerimeter",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "EquivalentSphericalRadius",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "FeretDiameter",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "Flatness",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "Labels",
+      "type" : "std::vector<int64_t>",
+      "custom_itk_cast" : "const std::vector<typename FilterType::OutputImageType::LabelType> tempLabels = filter->GetOutput()->GetLabels();\n  this->m_Labels = std::vector<int64_t>(tempLabels.begin(), tempLabels.end());",
+      "default" : "std::vector<int64_t>()"
+    },
+    {
+      "name" : "NumberOfPixels",
+      "type" : "uint64_t",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "NumberOfPixelsOnBorder",
+      "type" : "uint64_t",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "Perimeter",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "PerimeterOnBorder",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "PerimeterOnBorderRatio",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "PhysicalSize",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    },
+    {
+      "name" : "PrincipalAxes",
+      "type" : "std::vector<double>",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "custom_cast" : "std::vector<double>(value[0], value[T::RowDimensions-1]+T::ColumnDimensions)",
+      "label_map" : true
+    },
+    {
+      "name" : "PrincipalMoments",
+      "type" : "std::vector<double>",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "custom_cast" : "sitkITKVectorToSTL<double>(value)",
+      "label_map" : true
+    },
+    {
+      "name" : "Roundness",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "label_map" : true
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "SimpleLabelB",
+      "description" : "with defaults ",
+      "settings" : [],
+      "measurements_results" : [
+        {
+          "name" : "Elongation",
+          "value" : 1.8257418583505538,
+          "tolerance" : 1e-08,
+          "parameters" : [
+            "50"
+          ]
+        },
+        {
+          "name" : "EquivalentSphericalPerimeter",
+          "value" : 81.37860476665404,
+          "tolerance" : 1e-08,
+          "parameters" : [
+            "50"
+          ]
+        },
+        {
+          "name" : "EquivalentSphericalRadius",
+          "value" : 12.951807210534664,
+          "tolerance" : 1e-08,
+          "parameters" : [
+            "50"
+          ]
+        },
+        {
+          "name" : "FeretDiameter",
+          "value" : 0,
+          "parameters" : [
+            "50"
+          ]
+        },
+        {
+          "name" : "Flatness",
+          "value" : 1.8257418583505538,
+          "tolerance" : 1e-08,
+          "parameters" : [
+            "50"
+          ]
+        },
+        {
+          "name" : "NumberOfLabels",
+          "value" : "2u"
+        },
+        {
+          "name" : "NumberOfPixels",
+          "value" : "527u",
+          "parameters" : [
+            "50"
+          ]
+        },
+        {
+          "name" : "NumberOfPixelsOnBorder",
+          "value" : "0u",
+          "parameters" : [
+            "50"
+          ]
+        },
+        {
+          "name" : "Perimeter",
+          "value" : 89.90298636643831,
+          "tolerance" : 1e-08,
+          "parameters" : [
+            "50"
+          ]
+        },
+        {
+          "name" : "PerimeterOnBorder",
+          "value" : 0,
+          "parameters" : [
+            "50"
+          ]
+        },
+        {
+          "name" : "PerimeterOnBorderRatio",
+          "value" : 0,
+          "parameters" : [
+            "50"
+          ]
+        },
+        {
+          "name" : "PhysicalSize",
+          "value" : 527,
+          "parameters" : [
+            "50"
+          ]
+        },
+        {
+          "name" : "Roundness",
+          "value" : 0.905182442271278,
+          "tolerance" : 1e-08,
+          "parameters" : [
+            "50"
+          ]
+        }
+      ],
+      "inputs" : [
+        "Input/simple-label-b.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Converts a label image to a label map and valuates the shape attributes.",
+  "detaileddescription" : "A convenient class that converts a label image to a label map and valuates the shape attribute at once.\n\nThis implementation was taken from the Insight Journal paper:\n\nhttps://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176 \n\n\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\n\\see ShapeLabelObject , LabelShapeOpeningImageFilter , LabelStatisticsOpeningImageFilter \n [...]
+  "itk_module" : "ITKLabelMap",
+  "itk_group" : "LabelMap"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/LabelStatisticsImageFilter.json b/Code/BasicFilters/json/LabelStatisticsImageFilter.json
new file mode 100644
index 0000000..f9976bf
--- /dev/null
+++ b/Code/BasicFilters/json/LabelStatisticsImageFilter.json
@@ -0,0 +1,262 @@
+{
+  "name" : "LabelStatisticsImageFilter",
+  "template_code_filename" : "DualImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 0,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "pixel_types2" : "IntegerPixelIDTypeList",
+  "filter_type" : "itk::LabelStatisticsImageFilter<InputImageType,InputImageType2>",
+  "no_procedure" : true,
+  "no_return_image" : true,
+  "include_files" : [
+    "sitkMinimumMaximumImageFilter.h",
+    "algorithm"
+  ],
+  "inputs" : [
+    {
+      "name" : "Image",
+      "type" : "Image"
+    },
+    {
+      "name" : "LabelImage",
+      "type" : "Image",
+      "custom_itk_cast" : "filter->SetLabelInput( this->CastImageToITK<typename FilterType::LabelImageType>(*inLabelImage) );"
+    }
+  ],
+  "members" : [
+    {
+      "name" : "UseHistograms",
+      "type" : "bool",
+      "default" : "true",
+      "custom_itk_cast" : "if( m_UseHistograms)\n    {\n    typedef typename TImageType::PixelType PixelType;\n    if( nsstd::is_same< PixelType, uint8_t >::value || nsstd::is_same< PixelType, int8_t >::value )\n      {\n      //NOTE:  This is a heuristic that works exact median only for\n      //(unsigned) char images.\n      filter->SetHistogramParameters(256,std::numeric_limits<PixelType>::min()-0.5,std::numeric_limits<PixelType>::max()+0.5 );\n      }\n    else\n      {\n      itk::s [...]
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    }
+  ],
+  "custom_methods" : [
+    {
+      "name" : "HasLabel",
+      "doc" : "Does the specified label exist? Can only be called after a call a call to Update().",
+      "return_type" : "double",
+      "parameters" : [
+        {
+          "type" : "int64_t",
+          "var_name" : "label"
+        }
+      ],
+      "body" : "return std::find(m_Labels.begin(),m_Labels.end(), label) != m_Labels.end();"
+    },
+    {
+      "name" : "GetNumberOfLabels",
+      "doc" : "Return the number of labels after execution .",
+      "return_type" : "uint64_t",
+      "body" : "return m_Labels.size();"
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "Minimum",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Return the computed Minimum for a label."
+    },
+    {
+      "name" : "Maximum",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Return the computed Maximum for a label."
+    },
+    {
+      "name" : "Mean",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Return the computed Mean for a label."
+    },
+    {
+      "name" : "Median",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Return the computed Median for a label. Requires histograms to be enabled!"
+    },
+    {
+      "name" : "Sigma",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Return the computed Standard Deviation for a label."
+    },
+    {
+      "name" : "Variance",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Return the computed Variance for a label."
+    },
+    {
+      "name" : "Sum",
+      "type" : "double",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Return the compute Sum for a label."
+    },
+    {
+      "name" : "Count",
+      "type" : "uint64_t",
+      "no_print" : true,
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Return the number of pixels for a label."
+    },
+    {
+      "name" : "BoundingBox",
+      "type" : "std::vector<int>",
+      "no_print" : true,
+      "custom_cast" : "std::vector<int>(value.begin(), value.end())",
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "label",
+          "type" : "int64_t"
+        }
+      ],
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Return the computed bounding box for a label."
+    },
+    {
+      "name" : "Labels",
+      "type" : "std::vector<int64_t>",
+      "custom_itk_cast" : "const std::vector<typename FilterType::LabelPixelType> tempLabels = filter->GetValidLabelValues();\n  this->m_Labels = std::vector<int64_t>(tempLabels.begin(), tempLabels.end());",
+      "default" : "std::vector<int64_t>()"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "cthead1",
+      "description" : "cthead1 with defaults",
+      "settings" : [],
+      "inputs" : [
+        "Input/cthead1.png",
+        "Input/2th_cthead1.mha"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Minimum",
+          "value" : 100,
+          "parameters" : [
+            1
+          ]
+        },
+        {
+          "name" : "Maximum",
+          "value" : 199,
+          "parameters" : [
+            1
+          ]
+        },
+        {
+          "name" : "Mean",
+          "value" : 138.56282364638136,
+          "tolerance" : 1e-08,
+          "parameters" : [
+            1
+          ]
+        },
+        {
+          "name" : "Median",
+          "value" : 137,
+          "parameters" : [
+            1
+          ]
+        },
+        {
+          "name" : "Sigma",
+          "value" : 14.051474145970603,
+          "tolerance" : 1e-08,
+          "parameters" : [
+            1
+          ]
+        },
+        {
+          "name" : "Sum",
+          "value" : 3344768,
+          "parameters" : [
+            1
+          ]
+        },
+        {
+          "name" : "Variance",
+          "value" : 197.44392567488032,
+          "tolerance" : 1e-06,
+          "parameters" : [
+            1
+          ]
+        }
+      ]
+    }
+  ],
+  "briefdescription" : "Given an intensity image and a label map, compute min, max, variance and mean of the pixels associated with each label or segment.",
+  "detaileddescription" : "LabelStatisticsImageFilter computes the minimum, maximum, sum, mean, median, variance and sigma of regions of an intensity image, where the regions are defined via a label map (a second input). The label image should be integral type. The filter needs all of its input image. It behaves as a filter with an input and output. Thus it can be inserted in a pipline with other filters and the statistics will only be recomputed if a downstream filter changes.\n\nOption [...]
+  "itk_module" : "ITKImageStatistics",
+  "itk_group" : "ImageStatistics"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/LabelToRGBImageFilter.json b/Code/BasicFilters/json/LabelToRGBImageFilter.json
new file mode 100644
index 0000000..68a9b92
--- /dev/null
+++ b/Code/BasicFilters/json/LabelToRGBImageFilter.json
@@ -0,0 +1,72 @@
+{
+  "name" : "LabelToRGBImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "include_files" : [
+    "sitkLabelFunctorUtils.hxx"
+  ],
+  "number_of_inputs" : 1,
+  "output_image_type" : "itk::VectorImage< uint8_t, InputImageType::ImageDimension>",
+  "doc" : "Docs",
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "BackgroundValue",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Input",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the background value",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the background value"
+    },
+    {
+      "name" : "Colormap",
+      "type" : "std::vector<uint8_t>",
+      "default" : "std::vector<uint8_t>()",
+      "custom_itk_cast" : "SetLabelFunctorFromColormap(filter->GetFunctor(),this->m_Colormap);"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings",
+      "md5hash" : "850e04c66180956c8a19471309fa2391",
+      "settings" : [],
+      "inputs" : [
+        "Input/2th_cthead1.mha"
+      ]
+    },
+    {
+      "tag" : "custom_color",
+      "description" : "Setting custom color map",
+      "md5hash" : "af9bc977b86bfdf2e87d989958f6771f",
+      "settings" : [
+        {
+          "parameter" : "Colormap",
+          "type" : "uint8_t",
+          "dim_vec" : 1,
+          "value" : [
+            255,
+            0,
+            0,
+            255,
+            255,
+            255,
+            0,
+            0,
+            255
+          ]
+        }
+      ],
+      "inputs" : [
+        "Input/2th_cthead1.mha"
+      ]
+    }
+  ],
+  "briefdescription" : "Apply a colormap to a label image.",
+  "detaileddescription" : "Apply a colormap to a label image. The set of colors is a good selection of distinct colors. The user can choose to use a background value. In that case, a gray pixel with the same intensity than the background label is produced.\n\nThis code was contributed in the Insight Journal paper: \"The watershed transform in ITK - discussion and new developments\" by Beare R., Lehmann G. https://hdl.handle.net/1926/202 http://www.insight-journal.org/browse/publication/9 [...]
+  "itk_module" : "ITKImageFusion",
+  "itk_group" : "ImageFusion"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/LabelUniqueLabelMapFilter.json b/Code/BasicFilters/json/LabelUniqueLabelMapFilter.json
new file mode 100644
index 0000000..0eb7854
--- /dev/null
+++ b/Code/BasicFilters/json/LabelUniqueLabelMapFilter.json
@@ -0,0 +1,51 @@
+{
+  "name" : "LabelUniqueLabelMapFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Docs",
+  "pixel_types" : "LabelPixelIDTypeList",
+  "filter_type" : "itk::LabelUniqueLabelMapFilter<InputImageType>",
+  "custom_set_input" : "filter->SetInput(image1);\n  filter->InPlaceOff();",
+  "members" : [
+    {
+      "name" : "ReverseOrdering",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : ""
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings",
+      "inputA_cast" : "sitkLabelUInt8",
+      "md5hash" : "ce4de7d926155a70b234bd05181a5c3e",
+      "settings" : [],
+      "inputs" : [
+        "Input/2th_cthead1.png"
+      ]
+    },
+    {
+      "tag" : "reverse",
+      "description" : "with background reverse setting",
+      "inputA_cast" : "sitkLabelUInt8",
+      "md5hash" : "ce4de7d926155a70b234bd05181a5c3e",
+      "settings" : [
+        {
+          "parameter" : "ReverseOrdering",
+          "value" : "true",
+          "python_value" : "True",
+          "R_value" : "TRUE"
+        }
+      ],
+      "inputs" : [
+        "Input/2th_cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Make sure that the objects are not overlapping.",
+  "detaileddescription" : "AttributeUniqueLabelMapFilter search the overlapping zones in the overlapping objects and keeps only a single object on all the pixels of the image. The object to keep is selected according to their label.\n\n\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\nThis implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/1 [...]
+  "itk_module" : "ITKLabelMap",
+  "itk_group" : "LabelMap"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/LabelVotingImageFilter.json b/Code/BasicFilters/json/LabelVotingImageFilter.json
new file mode 100644
index 0000000..a373c8f
--- /dev/null
+++ b/Code/BasicFilters/json/LabelVotingImageFilter.json
@@ -0,0 +1,46 @@
+{
+  "name" : "LabelVotingImageFilter",
+  "template_code_filename" : "MultiInputImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "typelist::MakeTypeList< BasicPixelID<uint8_t>, BasicPixelID<uint16_t>, BasicPixelID<uint32_t>, BasicPixelID<uint64_t> >::Type",
+  "members" : [
+    {
+      "name" : "LabelForUndecidedPixels",
+      "type" : "uint64_t",
+      "default" : "std::numeric_limits<uint64_t>::max()",
+      "pixeltype" : "Output",
+      "custom_itk_cast" : "if (m_LabelForUndecidedPixels!=std::numeric_limits<uint64_t>::max()) filter->SetLabelForUndecidedPixels(this->m_LabelForUndecidedPixels);",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set label value for undecided pixels.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get label value used for undecided pixels. After updating the filter, this function returns the actual label value used for undecided pixels in the current output. Note that this value is overwritten when SetLabelForUndecidedPixels is called and the new value only becomes effective upon the next filter update."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "uint8_case",
+      "description" : "Test for a case where the undecided value may overflow",
+      "inputs" : [
+        "Input/STAPLE1.png",
+        "Input/STAPLE2.png"
+      ],
+      "md5hash" : "a5f7ea84f72b82971f3f7476475dfdf2"
+    },
+    {
+      "tag" : "basic",
+      "description" : "Basic usage with required parameters",
+      "inputA_cast" : "sitkUInt16",
+      "inputB_cast" : "sitkUInt16",
+      "inputs" : [
+        "Input/STAPLE1.png",
+        "Input/STAPLE2.png"
+      ],
+      "md5hash" : "f54bc205c5041adc279ac58e3eb22f85"
+    }
+  ],
+  "briefdescription" : "This filter performs pixelwise voting among an arbitrary number of input images, where each of them represents a segmentation of the same scene (i.e., image).",
+  "detaileddescription" : "Label voting is a simple method of classifier combination applied to image segmentation. Typically, the accuracy of the combined segmentation exceeds the accuracy of any of the input segmentations. Voting is therefore commonly used as a way of boosting segmentation performance.\n\nThe use of label voting for combination of multiple segmentations is described in\n\nT. Rohlfing and C. R. Maurer, Jr., \"Multi-classifier framework for\natlas-based image segmentatio [...]
+  "itk_module" : "ITKLabelVoting",
+  "itk_group" : "LabelVoting"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/LandweberDeconvolutionImageFilter.json b/Code/BasicFilters/json/LandweberDeconvolutionImageFilter.json
new file mode 100644
index 0000000..700e7da
--- /dev/null
+++ b/Code/BasicFilters/json/LandweberDeconvolutionImageFilter.json
@@ -0,0 +1,84 @@
+{
+  "name" : "LandweberDeconvolutionImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "include_files" : [
+    "sitkBoundaryConditions.hxx"
+  ],
+  "custom_set_input" : "filter->SetInput( image1 ); filter->SetKernelImage( image2 );",
+  "members" : [
+    {
+      "name" : "Alpha",
+      "type" : "double",
+      "default" : "0.1",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/get relaxation factor.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/get relaxation factor."
+    },
+    {
+      "name" : "NumberOfIterations",
+      "type" : "int",
+      "default" : "1",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the number of iterations.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the number of iterations."
+    },
+    {
+      "name" : "Normalize",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Normalize the output image by the sum of the kernel components\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "BoundaryCondition",
+      "enum" : [
+        "ZERO_PAD",
+        "ZERO_FLUX_NEUMANN_PAD",
+        "PERIODIC_PAD"
+      ],
+      "default" : "itk::simple::LandweberDeconvolutionImageFilter::ZERO_FLUX_NEUMANN_PAD",
+      "custom_itk_cast" : "nsstd::auto_ptr< ImageBoundaryCondition< InputImageType > > bc( CreateNewBoundaryConditionInstance< Self, FilterType >( m_BoundaryCondition ) ); filter->SetBoundaryCondition( bc.get() );\n"
+    },
+    {
+      "name" : "OutputRegionMode",
+      "enum" : [
+        "SAME",
+        "VALID"
+      ],
+      "default" : "itk::simple::LandweberDeconvolutionImageFilter::SAME",
+      "itk_type" : "typename FilterType::OutputRegionModeType"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Landweber deconvolution of image blurred with a Gaussian kernel",
+      "settings" : [
+        {
+          "parameter" : "Normalize",
+          "value" : "true",
+          "python_value" : "True",
+          "R_value" : "TRUE"
+        }
+      ],
+      "tolerance" : "0.0001",
+      "inputs" : [
+        "Input/DeconvolutionInput.nrrd",
+        "Input/DeconvolutionKernel.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Deconvolve an image using the Landweber deconvolution algorithm.",
+  "detaileddescription" : "This filter implements the Landweber deconvolution algorthm as defined in Bertero M and Boccacci P, \"Introduction to Inverse\nProblems in Imaging\", 1998. The algorithm assumes that the input image has been formed by a linear shift-invariant system with a known kernel.\n\nThe Landweber algorithm converges to a solution that minimizes the sum of squared errors \\f$||f \\otimes h - g||\\f$ where \\f$f\\f$ is the estimate of the unblurred image, \\f$\\otimes\\f$  [...]
+  "itk_module" : "ITKDeconvolution",
+  "itk_group" : "Deconvolution"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/LaplacianImageFilter.json b/Code/BasicFilters/json/LaplacianImageFilter.json
new file mode 100644
index 0000000..29d684d
--- /dev/null
+++ b/Code/BasicFilters/json/LaplacianImageFilter.json
@@ -0,0 +1,34 @@
+{
+  "name" : "LaplacianImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "",
+  "number_of_inputs" : 1,
+  "pixel_types" : "RealPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "UseImageSpacing",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether or not the filter will use the spacing of the input image in its calculations",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether or not the filter will use the spacing of the input image in its calculations"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0.0001,
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "",
+  "detaileddescription" : "This filter computes the Laplacian of a scalar-valued image. The Laplacian is an isotropic measure of the 2nd spatial derivative of an image. The Laplacian of an image highlights regions of rapid intensity change and is therefore often used for edge detection. Often, the Laplacian is applied to an image that has first been smoothed with a Gaussian filter in order to reduce its sensitivity to noise.\n\n\\par \nThe Laplacian at each pixel location is computed by  [...]
+  "itk_module" : "ITKImageFeature",
+  "itk_group" : "ImageFeature"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/LaplacianRecursiveGaussianImageFilter.json b/Code/BasicFilters/json/LaplacianRecursiveGaussianImageFilter.json
new file mode 100644
index 0000000..dae2b55
--- /dev/null
+++ b/Code/BasicFilters/json/LaplacianRecursiveGaussianImageFilter.json
@@ -0,0 +1,46 @@
+{
+  "name" : "LaplacianRecursiveGaussianImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "",
+  "number_of_inputs" : 1,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_pixel_type" : "float",
+  "members" : [
+    {
+      "name" : "Sigma",
+      "type" : "double",
+      "default" : "1.0",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set Sigma value. Sigma is measured in the units of image spacing.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set Sigma value. Sigma is measured in the units of image spacing."
+    },
+    {
+      "name" : "NormalizeAcrossScale",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Define which normalization factor will be used for the Gaussian \\see RecursiveGaussianImageFilter::SetNormalizeAcrossScale",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Define which normalization factor will be used for the Gaussian \\see RecursiveGaussianImageFilter::SetNormalizeAcrossScale"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0.0001,
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the Laplacian of Gaussian (LoG) of an image.",
+  "detaileddescription" : "Computes the Laplacian of Gaussian (LoG) of an image by convolution with the second derivative of a Gaussian. This filter is implemented using the recursive gaussian filters.\n\n\\par Wiki Examples:\n\n\\li All Examples \n\n\\li Compute the Laplacian of Gaussian (LoG) of an image",
+  "itk_module" : "ITKImageFeature",
+  "itk_group" : "ImageFeature"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/LaplacianSegmentationLevelSetImageFilter.json b/Code/BasicFilters/json/LaplacianSegmentationLevelSetImageFilter.json
new file mode 100644
index 0000000..b629c45
--- /dev/null
+++ b/Code/BasicFilters/json/LaplacianSegmentationLevelSetImageFilter.json
@@ -0,0 +1,88 @@
+{
+  "name" : "LaplacianSegmentationLevelSetImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 2,
+  "pixel_types" : "RealPixelIDTypeList",
+  "filter_type" : "itk::LaplacianSegmentationLevelSetImageFilter<InputImageType, InputImageType>",
+  "custom_set_input" : "filter->SetInput( image1 ); filter->SetFeatureImage( image2 );",
+  "members" : [
+    {
+      "name" : "MaximumRMSError",
+      "type" : "double",
+      "default" : 0.02,
+      "doc" : "Value of RMS change below which the filter should stop. This is a convergence criterion."
+    },
+    {
+      "name" : "PropagationScaling",
+      "type" : "double",
+      "default" : "1.0",
+      "doc" : "Weight of direct propagation contribution to the speed term"
+    },
+    {
+      "name" : "CurvatureScaling",
+      "type" : "double",
+      "default" : "1.0",
+      "doc" : "Weight of the curvature contribution to the speed term"
+    },
+    {
+      "name" : "NumberOfIterations",
+      "type" : "uint32_t",
+      "default" : "1000u",
+      "doc" : "Number of iterations to run"
+    },
+    {
+      "name" : "ReverseExpansionDirection",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "Turn On/Off the flag which determines whether Positive or Negative speed terms will cause surface expansion.  If set to TRUE then negative speed terms will cause the surface to expand and positive speed terms will cause the surface to contract.  If set to FALSE (default) then positive speed terms will cause the surface to expand and negative speed terms will cause the surface to contract.  This method can be safely used to reverse the expansion/contraction as appropriate t [...]
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "ElapsedIterations",
+      "type" : "uint32_t",
+      "default" : 0,
+      "briefdescriptionGet" : "Number of iterations run."
+    },
+    {
+      "name" : "RMSChange",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "The Root Mean Square of the levelset upon termination."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "cthead",
+      "description" : "Segmentation of brain in CT",
+      "settings" : [
+        {
+          "parameter" : "PropagationScaling",
+          "value" : "0.0"
+        }
+      ],
+      "tolerance" : 0.1,
+      "measurements_results" : [
+        {
+          "name" : "ElapsedIterations",
+          "value" : 3,
+          "tolerance" : 3
+        },
+        {
+          "name" : "RMSChange",
+          "value" : 0.015,
+          "tolerance" : 0.006
+        }
+      ],
+      "inputs" : [
+        "Input/2th_cthead1_distance.nrrd",
+        "Input/cthead1-Float.mha"
+      ]
+    }
+  ],
+  "briefdescription" : "Segments structures in images based on a second derivative image features.",
+  "detaileddescription" : "\\par IMPORTANT\nThe SegmentationLevelSetImageFilter class and the LaplacianSegmentationLevelSetFunction class contain additional information necessary to the full understanding of how to use this filter.\n\n\\par OVERVIEW\nThis class is a level set method segmentation filter. It constructs a speed function which is zero at image edges as detected by a Laplacian filter. The evolving level set front will therefore tend to lock onto zero crossings in the image. T [...]
+  "itk_module" : "ITKLevelSets",
+  "itk_group" : "LevelSets"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/LaplacianSharpeningImageFilter.json b/Code/BasicFilters/json/LaplacianSharpeningImageFilter.json
new file mode 100644
index 0000000..5a4c30c
--- /dev/null
+++ b/Code/BasicFilters/json/LaplacianSharpeningImageFilter.json
@@ -0,0 +1,53 @@
+{
+  "name" : "LaplacianSharpeningImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "",
+  "number_of_inputs" : 1,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "UseImageSpacing",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether or not the filter will use the spacing of the input image in its calculations",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether or not the filter will use the spacing of the input image in its calculations"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings with a floating point image",
+      "settings" : [],
+      "tolerance" : 0.0001,
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "shortdefault",
+      "description" : "Simply run with default settings on a short image",
+      "settings" : [],
+      "md5hash" : "93a629b9dfad6814c5acbabd42f10c4c",
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    },
+    {
+      "tag" : "vectordefault",
+      "description" : "Run with defaults setting on an RGB image",
+      "settings" : [],
+      "md5hash" : "f3ad8145d54e583b3e2354b24769df58",
+      "inputs" : [
+        "Input/fruit.png"
+      ]
+    }
+  ],
+  "briefdescription" : "This filter sharpens an image using a Laplacian. LaplacianSharpening highlights regions of rapid intensity change and therefore highlights or enhances the edges. The result is an image that appears more in focus.",
+  "detaileddescription" : "\\par The LaplacianSharpening at each pixel location is computed by\nconvolution with the itk::LaplacianOperator .\n\n\\par Inputs and Outputs\nThe input to this filter is a scalar-valued itk::Image of arbitrary dimension. The output is a scalar-valued itk::Image . \n\n\\see Image \n\n\\see Neighborhood \n\n\\see NeighborhoodOperator \n\n\\see NeighborhoodIterator \n\n\\see LaplacianOperator \n\n\\par Wiki Examples:\n\n\\li All Examples \n\n\\li Sharpen an image",
+  "itk_module" : "ITKImageFeature",
+  "itk_group" : "ImageFeature"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/LessEqualImageFilter.json b/Code/BasicFilters/json/LessEqualImageFilter.json
new file mode 100644
index 0000000..04712bb
--- /dev/null
+++ b/Code/BasicFilters/json/LessEqualImageFilter.json
@@ -0,0 +1,63 @@
+{
+  "name" : "LessEqualImageFilter",
+  "itk_name" : "BinaryFunctorImageFilter",
+  "template_code_filename" : "BinaryFunctorFilter",
+  "template_test_filename" : "ImageFilter",
+  "constant_type" : "double",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_pixel_type" : "uint8_t",
+  "filter_type" : "itk::BinaryFunctorImageFilter<InputImageType,InputImageType2,OutputImageType, itk::Functor::LessEqual< typename InputImageType::PixelType, typename InputImageType2::PixelType, typename OutputImageType::PixelType> >",
+  "include_files" : [
+    "itkLogicOpsFunctors.h"
+  ],
+  "members" : [
+    {
+      "name" : "BackgroundValue",
+      "type" : "uint8_t",
+      "default" : "0u",
+      "custom_itk_cast" : "filter->GetFunctor().SetBackgroundValue( static_cast<typename OutputImageType::PixelType>( this->m_BackgroundValue ) );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value used to mark the false pixels of the operator.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value used to mark the false pixels of the operator.\n"
+    },
+    {
+      "name" : "ForegroundValue",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "custom_itk_cast" : "filter->GetFunctor().SetForegroundValue( static_cast<typename OutputImageType::PixelType>( this->m_ForegroundValue ) );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value used to mark the true pixels of the operator.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value used to mark the true pixels of the operator.\n"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "same images",
+      "settings" : [],
+      "md5hash" : "ae5c932ab2e19291dd20c2c4ac382428",
+      "inputs" : [
+        "Input/cthead1.png",
+        "Input/cthead1.png"
+      ]
+    },
+    {
+      "tag" : "rampVramp",
+      "description" : "2D",
+      "settings" : [],
+      "md5hash" : "c23ac004a9de8cfc66224a9a7ddb9b25",
+      "inputs" : [
+        "Input/Ramp-Up-Short.nrrd",
+        "Input/Ramp-Down-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Implements pixel-wise generic operation of two images, or of an image and a constant.",
+  "detaileddescription" : "This class is parameterized over the types of the two input images and the type of the output image. It is also parameterized by the operation to be applied. A Functor style is used.\n\nThe constant must be of the same type than the pixel type of the corresponding image. It is wrapped in a SimpleDataObjectDecorator so it can be updated through the pipeline. The SetConstant() and GetConstant() methods are provided as shortcuts to set or get the constant value wi [...]
+  "itk_module" : "ITKImageFilterBase",
+  "itk_group" : "ImageFilterBase"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/LessImageFilter.json b/Code/BasicFilters/json/LessImageFilter.json
new file mode 100644
index 0000000..c31eec5
--- /dev/null
+++ b/Code/BasicFilters/json/LessImageFilter.json
@@ -0,0 +1,63 @@
+{
+  "name" : "LessImageFilter",
+  "itk_name" : "BinaryFunctorImageFilter",
+  "template_code_filename" : "BinaryFunctorFilter",
+  "template_test_filename" : "ImageFilter",
+  "constant_type" : "double",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_pixel_type" : "uint8_t",
+  "filter_type" : "itk::BinaryFunctorImageFilter<InputImageType,InputImageType2,OutputImageType, itk::Functor::Less< typename InputImageType::PixelType, typename InputImageType2::PixelType, typename OutputImageType::PixelType> >",
+  "include_files" : [
+    "itkLogicOpsFunctors.h"
+  ],
+  "members" : [
+    {
+      "name" : "BackgroundValue",
+      "type" : "uint8_t",
+      "default" : "0u",
+      "custom_itk_cast" : "filter->GetFunctor().SetBackgroundValue( static_cast<typename OutputImageType::PixelType>( this->m_BackgroundValue ) );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value used to mark the false pixels of the operator.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value used to mark the false pixels of the operator.\n"
+    },
+    {
+      "name" : "ForegroundValue",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "custom_itk_cast" : "filter->GetFunctor().SetForegroundValue( static_cast<typename OutputImageType::PixelType>( this->m_ForegroundValue ) );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value used to mark the true pixels of the operator.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value used to mark the true pixels of the operator.\n"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "same images",
+      "settings" : [],
+      "md5hash" : "fcd6bcb56c1689fcef28b57c22475bad",
+      "inputs" : [
+        "Input/cthead1.png",
+        "Input/cthead1.png"
+      ]
+    },
+    {
+      "tag" : "rampVramp",
+      "description" : "2D",
+      "settings" : [],
+      "md5hash" : "c23ac004a9de8cfc66224a9a7ddb9b25",
+      "inputs" : [
+        "Input/Ramp-Up-Short.nrrd",
+        "Input/Ramp-Down-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Implements pixel-wise generic operation of two images, or of an image and a constant.",
+  "detaileddescription" : "This class is parameterized over the types of the two input images and the type of the output image. It is also parameterized by the operation to be applied. A Functor style is used.\n\nThe constant must be of the same type than the pixel type of the corresponding image. It is wrapped in a SimpleDataObjectDecorator so it can be updated through the pipeline. The SetConstant() and GetConstant() methods are provided as shortcuts to set or get the constant value wi [...]
+  "itk_module" : "ITKImageFilterBase",
+  "itk_group" : "ImageFilterBase"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/LevelSetMotionRegistrationFilter.json b/Code/BasicFilters/json/LevelSetMotionRegistrationFilter.json
new file mode 100644
index 0000000..10df172
--- /dev/null
+++ b/Code/BasicFilters/json/LevelSetMotionRegistrationFilter.json
@@ -0,0 +1,176 @@
+{
+  "name" : "LevelSetMotionRegistrationFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "no_procedure" : "1",
+  "number_of_inputs" : 0,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "filter_type" : "itk::LevelSetMotionRegistrationFilter<InputImageType, InputImageType, itk::Image< Vector<double, InputImageType::ImageDimension>, InputImageType::ImageDimension > >",
+  "inputs" : [
+    {
+      "name" : "FixedImage",
+      "type" : "Image",
+      "custom_itk_cast" : "filter->SetFixedImage( this->CastImageToITK<typename FilterType::FixedImageType>(*inFixedImage) );"
+    },
+    {
+      "name" : "MovingImage",
+      "type" : "Image"
+    }
+  ],
+  "members" : [
+    {
+      "name" : "GradientSmoothingStandardDeviations",
+      "type" : "double",
+      "default" : "1.0",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the standard deviation used for smoothing the moving image prior to calculating gradients. The standard deviation is measured in physical units (for instance mm). Note that this smoothing value is not to be confused with the PDEDeformableRegistrationFilter::SetStandardDeviations() method. The method in PDEDeformableRegistrationFilter is for setting the smoothing parameters for regularizing the deformation field between interations. Those smoothin [...]
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "NumberOfIterations",
+      "type" : "uint32_t",
+      "default" : "10u",
+      "doc" : "Number of iterations to run"
+    },
+    {
+      "name" : "MaximumRMSError",
+      "type" : "double",
+      "default" : 0.02,
+      "doc" : "Value of RMS change below which the filter should stop. This is a convergence criterion."
+    },
+    {
+      "name" : "StandardDeviations",
+      "type" : "double",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "default" : "std::vector<double>(3, 1.0)",
+      "itk_type" : "typename FilterType::StandardDeviationsType",
+      "detaileddescriptionSet" : "Set/Get the Gaussian smoothing standard deviations for the displacement field. The values are set with respect to pixel coordinates.",
+      "detaileddescriptionGet" : "Set/Get the Gaussian smoothing standard deviations for the displacement field. The values are set with respect to pixel coordinates."
+    },
+    {
+      "name" : "SmoothDisplacementField",
+      "type" : "bool",
+      "default" : false,
+      "detaileddescriptionSet" : "Set/Get whether the displacement field is smoothed (regularized). Smoothing the displacement yields a solution elastic in nature. If SmoothDisplacementField is on, then the displacement field is smoothed with a Gaussian whose standard deviations are specified with SetStandardDeviations()",
+      "detaileddescriptionGet" : "Set/Get whether the displacement field is smoothed (regularized). Smoothing the displacement yields a solution elastic in nature. If SmoothDisplacementField is on, then the displacement field is smoothed with a Gaussian whose standard deviations are specified with SetStandardDeviations()"
+    },
+    {
+      "name" : "UpdateFieldStandardDeviations",
+      "type" : "double",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "default" : "std::vector<double>(3, 1.0)",
+      "itk_type" : "typename FilterType::StandardDeviationsType",
+      "detaileddescriptionSet" : "Set the Gaussian smoothing standard deviations for the update field. The values are set with respect to pixel coordinates.",
+      "detaileddescriptionGet" : "Set the Gaussian smoothing standard deviations for the update field. The values are set with respect to pixel coordinates."
+    },
+    {
+      "name" : "SmoothUpdateField",
+      "type" : "bool",
+      "default" : false,
+      "detaileddescriptionSet" : "Set/Get whether the update field is smoothed (regularized). Smoothing the update field yields a solution viscous in nature. If SmoothUpdateField is on, then the update field is smoothed with a Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()",
+      "detaileddescriptionGet" : "Set/Get whether the update field is smoothed (regularized). Smoothing the update field yields a solution viscous in nature. If SmoothUpdateField is on, then the update field is smoothed with a Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()"
+    },
+    {
+      "name" : "MaximumKernelWidth",
+      "type" : "unsigned int",
+      "default" : "30u",
+      "detaileddescriptionSet" : "Set/Get the desired limits of the Gaussian kernel width.",
+      "detaileddescriptionGet" : "Set/Get the desired limits of the Gaussian kernel width."
+    },
+    {
+      "name" : "MaximumError",
+      "type" : "double",
+      "default" : "0.1",
+      "detaileddescriptionSet" : "Set/Get the desired maximum error of the Guassian kernel approximate.",
+      "detaileddescriptionGet" : "Set/Get the desired maximum error of the Guassian kernel approximate."
+    },
+    {
+      "name" : "Alpha",
+      "type" : "double",
+      "default" : "0.1",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the parameter alpha. Alpha is added to the calculated gradient magnitude prior to normalizing the gradient to protect against numerical instability as the gradient magnitude approaches zero. This should be set as a small fraction of the intensity dynamic range, for instance 0.04%. Default is the absolute (not percentage) value of 0.1.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "IntensityDifferenceThreshold",
+      "type" : "double",
+      "default" : "0.001",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the threshold below which the absolute difference of intensity yields a match. When the intensities match between a moving and fixed image pixel, the update vector (for that iteration) will be the zero vector. Default is 0.001.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "GradientMagnitudeThreshold",
+      "type" : "double",
+      "default" : "1e-9",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the threshold below which the gradient magnitude is considered the zero vector. Default is 1e-9.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "UseImageSpacing",
+      "type" : "bool",
+      "default" : true
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "ElapsedIterations",
+      "type" : "uint32_t",
+      "default" : 0,
+      "briefdescriptionGet" : "Number of iterations run."
+    },
+    {
+      "name" : "RMSChange",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "The Root Mean Square of the levelset upon termination."
+    },
+    {
+      "name" : "Metric",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the metric value. The metric value is the mean square difference in intensity between the fixed image and transforming moving image computed over the the overlapping region between the two images. This is value is only available for the previous iteration and NOT the current iteration."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "2d",
+      "description" : "2D",
+      "settings" : [],
+      "tolerance" : "1e-8",
+      "inputs" : [
+        "Input/BrainProtonDensitySliceBorder20.png",
+        "Input/BrainProtonDensitySliceBSplined10.png"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "ElapsedIterations",
+          "value" : "10u"
+        },
+        {
+          "name" : "RMSChange",
+          "value" : 10.422647280222545,
+          "tolerance" : 1e-06
+        },
+        {
+          "name" : "Metric",
+          "value" : 298.5606776524018,
+          "tolerance" : 0.0001
+        }
+      ]
+    }
+  ],
+  "briefdescription" : "Deformably register two images using level set motion.",
+  "detaileddescription" : "LevelSetMotionFilter implements a deformable registration algorithm that aligns a fixed and a moving image under level set motion. The equations of motion are similar to those of the DemonsRegistrationFilter . The main differences are: (1) Gradients of the moving image are calculated on a smoothed image while intensity difference are measured on the original images (2) Magnitude of the motion vector is a function of the differences in intensity between the fixe [...]
+  "itk_module" : "ITKPDEDeformableRegistration",
+  "itk_group" : "PDEDeformable"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/LiThresholdImageFilter.json b/Code/BasicFilters/json/LiThresholdImageFilter.json
new file mode 100644
index 0000000..1c09a80
--- /dev/null
+++ b/Code/BasicFilters/json/LiThresholdImageFilter.json
@@ -0,0 +1,132 @@
+{
+  "name" : "LiThresholdImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "Docs",
+  "number_of_inputs" : 0,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_image_type" : "itk::Image< uint8_t, TImageType::ImageDimension>",
+  "filter_type" : "itk::LiThresholdImageFilter< TImageType, OutputImageType, OutputImageType >",
+  "inputs" : [
+    {
+      "name" : "Image",
+      "type" : "Image"
+    },
+    {
+      "name" : "MaskImage",
+      "type" : "Image",
+      "optional" : true
+    }
+  ],
+  "members" : [
+    {
+      "name" : "InsideValue",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the \"inside\" pixel value.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"inside\" pixel value.\n"
+    },
+    {
+      "name" : "OutsideValue",
+      "type" : "uint8_t",
+      "default" : "0u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"outside\" pixel value.\n"
+    },
+    {
+      "name" : "NumberOfHistogramBins",
+      "type" : "uint32_t",
+      "default" : "256u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the number of histogram bins.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MaskOutput",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Do you want the output to be masked by the mask used in histogram construction. Only relevant if masking is in use.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MaskValue",
+      "type" : "uint8_t",
+      "default" : "255u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "The value in the mask image, if used, indicating voxels that should be included. Default is the max of pixel type, as in the MaskedImageToHistogramFilter",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "Threshold",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "Get the computed threshold."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "6ab8967612e2637bec64dc5ef14023f1",
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 27402
+        }
+      ]
+    },
+    {
+      "tag" : "cthead1_with_mask",
+      "description" : "CT Head with mask",
+      "settings" : [],
+      "md5hash" : "1264c8ec6e23856e5e752cb87712f886",
+      "inputs" : [
+        "Input/cthead1.png",
+        "Input/cthead1-mask.png"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 182.0
+        }
+      ]
+    },
+    {
+      "tag" : "default_on_float",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "b70af4accd73d3733b799968eba651e2",
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 0.00195314,
+          "tolerance" : 1e-05
+        }
+      ]
+    }
+  ],
+  "briefdescription" : "Threshold an image using the Li Threshold.",
+  "detaileddescription" : "This filter creates a binary thresholded image that separates an image into foreground and background components. The filter computes the threshold using the LiThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .\n\n\\author Richard Beare. Department of Medicine, Monash University, Melbourne, Australia. \n\nGaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\nThis  [...]
+  "itk_module" : "ITKThresholding",
+  "itk_group" : "Thresholding"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/Log10ImageFilter.json b/Code/BasicFilters/json/Log10ImageFilter.json
new file mode 100644
index 0000000..2661bd9
--- /dev/null
+++ b/Code/BasicFilters/json/Log10ImageFilter.json
@@ -0,0 +1,25 @@
+{
+  "name" : "Log10ImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0.01,
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the log10 of each pixel.",
+  "detaileddescription" : "The computation is performed using std::log10(x).",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/LogImageFilter.json b/Code/BasicFilters/json/LogImageFilter.json
new file mode 100644
index 0000000..5ba61ff
--- /dev/null
+++ b/Code/BasicFilters/json/LogImageFilter.json
@@ -0,0 +1,25 @@
+{
+  "name" : "LogImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0.01,
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the log() of each pixel.",
+  "detaileddescription" : "",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/MagnitudeAndPhaseToComplexImageFilter.json b/Code/BasicFilters/json/MagnitudeAndPhaseToComplexImageFilter.json
new file mode 100644
index 0000000..1364a8c
--- /dev/null
+++ b/Code/BasicFilters/json/MagnitudeAndPhaseToComplexImageFilter.json
@@ -0,0 +1,27 @@
+{
+  "name" : "MagnitudeAndPhaseToComplexImageFilter",
+  "template_code_filename" : "BinaryFunctorFilter",
+  "template_test_filename" : "ImageFilter",
+  "constant_type" : "double",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "RealPixelIDTypeList",
+  "output_pixel_type" : "std::complex<typename InputImageType::PixelType>",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Test defaults",
+      "tolerance" : "0.0015",
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-Slice-Float.nrrd",
+        "Input/RA-Slice-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Implements pixel-wise conversion of magnitude and phase data into complex voxels.",
+  "detaileddescription" : "This filter is parametrized over the types of the two input images and the type of the output image.\n\nThe filter expect all images to have the same dimension (e.g. all 2D, or all 3D, or all ND)",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/MaskImageFilter.json b/Code/BasicFilters/json/MaskImageFilter.json
new file mode 100644
index 0000000..2500144
--- /dev/null
+++ b/Code/BasicFilters/json/MaskImageFilter.json
@@ -0,0 +1,76 @@
+{
+  "name" : "MaskImageFilter",
+  "template_code_filename" : "DualImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 0,
+  "doc" : "Some global documentation\n\\todo MaskImageFilter will support VectorImages shortly",
+  "include_files" : [
+    "sitkToPixelType.hxx"
+  ],
+  "pixel_types" : "NonLabelPixelIDTypeList",
+  "pixel_types2" : "IntegerPixelIDTypeList",
+  "inputs" : [
+    {
+      "name" : "Image",
+      "type" : "Image"
+    },
+    {
+      "name" : "MaskImage",
+      "type" : "Image"
+    }
+  ],
+  "members" : [
+    {
+      "name" : "OutsideValue",
+      "type" : "double",
+      "default" : 0,
+      "custom_itk_cast" : "typename OutputImageType::PixelType v;  NumericTraits<typename OutputImageType::PixelType>::SetLength( v, image1->GetNumberOfComponentsPerPixel() );  ToPixelType( this->m_OutsideValue, v );  filter->SetOutsideValue( v );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Method to explicitly set the outside value of the mask. Defaults to 0",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "2d",
+      "description" : "2d",
+      "settings" : [],
+      "md5hash" : "c57d7fda3e42374881c3c3181d15bf90",
+      "inputs" : [
+        "Input/STAPLE1.png",
+        "Input/STAPLE2.png"
+      ]
+    },
+    {
+      "tag" : "cthead1",
+      "description" : "cthead with different types",
+      "settings" : [],
+      "md5hash" : "0ef8943803bb4a21b2015b53f0164f1c",
+      "inputs" : [
+        "Input/cthead1-Float.mha",
+        "Input/cthead1-mask.png"
+      ]
+    },
+    {
+      "tag" : "rgb",
+      "description" : "rgb",
+      "settings" : [
+        {
+          "parameter" : "OutsideValue",
+          "type" : "double",
+          "value" : "10.0"
+        }
+      ],
+      "md5hash" : "3dad4a416a7b6a198a4a916d65d7654f",
+      "inputs" : [
+        "Input/VM1111Shrink-RGB.png",
+        "Input/VM1111Shrink-mask.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Mask an image with a mask.",
+  "detaileddescription" : "This class is templated over the types of the input image type, the mask image type and the type of the output image. Numeric conversions (castings) are done by the C++ defaults.\n\nThe pixel type of the input 2 image must have a valid definition of the operator != with zero. This condition is required because internally this filter will perform the operation\n\n\\code\n* if pixel_from_mask_image != masking_value\n\n* pixel_output_image = pixel_input_image\n\n* [...]
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/MaskNegatedImageFilter.json b/Code/BasicFilters/json/MaskNegatedImageFilter.json
new file mode 100644
index 0000000..d45dda5
--- /dev/null
+++ b/Code/BasicFilters/json/MaskNegatedImageFilter.json
@@ -0,0 +1,36 @@
+{
+  "name" : "MaskNegatedImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 0,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "filter_type" : "itk::MaskNegatedImageFilter<InputImageType, InputImageType,  OutputImageType>",
+  "inputs" : [
+    {
+      "name" : "Image",
+      "type" : "Image"
+    },
+    {
+      "name" : "MaskImage",
+      "type" : "Image"
+    }
+  ],
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "2d",
+      "description" : "2d",
+      "settings" : [],
+      "md5hash" : "164809eb3ac508dd12c91c82ad8ee20c",
+      "inputs" : [
+        "Input/STAPLE1.png",
+        "Input/STAPLE2.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Mask an image with the negative of a mask.\n",
+  "detaileddescription" : "This class is templated over the types of the input image type, the mask image type and the type of the output image. Numeric conversions (castings) are done by the C++ defaults.\nThe pixel type of the input 2 image must have a valid definition of the operator != with zero. This condition is required because internally this filter will perform the operation\nifpixel_from_mask_image!=0pixel_output_image=output_valueelsepixel_output_image=pixel_input_image\nThe p [...]
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/MaskedFFTNormalizedCorrelationImageFilter.json b/Code/BasicFilters/json/MaskedFFTNormalizedCorrelationImageFilter.json
new file mode 100644
index 0000000..9bcccc1
--- /dev/null
+++ b/Code/BasicFilters/json/MaskedFFTNormalizedCorrelationImageFilter.json
@@ -0,0 +1,90 @@
+{
+  "name" : "MaskedFFTNormalizedCorrelationImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 0,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_pixel_type" : "typename itk::NumericTraits<typename InputImageType::PixelType>::RealType",
+  "filter_type" : "itk::MaskedFFTNormalizedCorrelationImageFilter<InputImageType, OutputImageType>",
+  "inputs" : [
+    {
+      "name" : "FixedImage",
+      "type" : "Image",
+      "custom_itk_cast" : "filter->SetFixedImage( this->CastImageToITK<typename FilterType::InputImageType>(*inFixedImage) );"
+    },
+    {
+      "name" : "MovingImage",
+      "type" : "Image",
+      "no_size_check" : 0,
+      "custom_itk_cast" : "filter->SetMovingImage( this->CastImageToITK<typename FilterType::InputImageType>(*inMovingImage) );"
+    },
+    {
+      "name" : "FixedImageMask",
+      "type" : "Image",
+      "custom_itk_cast" : "filter->SetFixedImageMask( this->CastImageToITK<typename FilterType::MaskImageType>(*inFixedImageMask) );"
+    },
+    {
+      "name" : "MovingImageMask",
+      "type" : "Image",
+      "no_size_check" : 0,
+      "custom_itk_cast" : "filter->SetMovingImageMask( this->CastImageToITK<typename FilterType::MaskImageType>(*inMovingImageMask) );"
+    }
+  ],
+  "members" : [
+    {
+      "name" : "RequiredNumberOfOverlappingPixels",
+      "type" : "uint64_t",
+      "default" : "0u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set and get the required number of overlapping pixels",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set and get the required number of overlapping pixels"
+    },
+    {
+      "name" : "RequiredFractionOfOverlappingPixels",
+      "type" : "float",
+      "default" : "0.0",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set and get the required fraction of overlapping pixels",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set and get the required fraction of overlapping pixels"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Basic xcorr with and odd kernel",
+      "settings" : [],
+      "tolerance" : "0.02",
+      "inputs" : [
+        "Input/DeconvolutionInput.nrrd",
+        "Input/Gaussian_1.5.nrrd",
+        "Input/DeconvolutionInput.nrrd",
+        "Input/Gaussian_1.5.nrrd"
+      ]
+    },
+    {
+      "tag" : "3D",
+      "description" : "Basic xcorr with an even kernel",
+      "settings" : [
+        {
+          "parameter" : "RequiredNumberOfOverlappingPixels",
+          "type" : "uint64_t",
+          "cxx_value" : "75000u",
+          "value" : "75000"
+        }
+      ],
+      "tolerance" : "0.0001",
+      "inputs" : [
+        "Input/OAS1_0001_MR1_mpr-1_anon.nrrd",
+        "Input/OAS1_0002_MR1_mpr-1_anon.nrrd",
+        "Input/OAS1_0001_MR1_mpr-1_anon.nrrd",
+        "Input/OAS1_0002_MR1_mpr-1_anon.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Calculate masked normalized cross correlation using FFTs.",
+  "detaileddescription" : "This filter calculates the masked normalized cross correlation (NCC) of two images under masks using FFTs instead of spatial correlation. It is much faster than spatial correlation for reasonably large structuring elements. This filter is not equivalent to simply masking the images first and then correlating them; the latter approach yields incorrect results because the zeros in the images still affect the metric in the correlation process. This filter implemen [...]
+  "itk_module" : "ITKConvolution",
+  "itk_group" : "Convolution"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/MaximumEntropyThresholdImageFilter.json b/Code/BasicFilters/json/MaximumEntropyThresholdImageFilter.json
new file mode 100644
index 0000000..f663d50
--- /dev/null
+++ b/Code/BasicFilters/json/MaximumEntropyThresholdImageFilter.json
@@ -0,0 +1,132 @@
+{
+  "name" : "MaximumEntropyThresholdImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "Docs",
+  "number_of_inputs" : 0,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_image_type" : "itk::Image< uint8_t, TImageType::ImageDimension>",
+  "filter_type" : "itk::MaximumEntropyThresholdImageFilter< TImageType, OutputImageType, OutputImageType >",
+  "inputs" : [
+    {
+      "name" : "Image",
+      "type" : "Image"
+    },
+    {
+      "name" : "MaskImage",
+      "type" : "Image",
+      "optional" : true
+    }
+  ],
+  "members" : [
+    {
+      "name" : "InsideValue",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the \"inside\" pixel value.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"inside\" pixel value.\n"
+    },
+    {
+      "name" : "OutsideValue",
+      "type" : "uint8_t",
+      "default" : "0u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"outside\" pixel value.\n"
+    },
+    {
+      "name" : "NumberOfHistogramBins",
+      "type" : "uint32_t",
+      "default" : "256u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the number of histogram bins.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MaskOutput",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Do you want the output to be masked by the mask used in histogram construction. Only relevant if masking is in use.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MaskValue",
+      "type" : "uint8_t",
+      "default" : "255u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "The value in the mask image, if used, indicating voxels that should be included. Default is the max of pixel type, as in the MaskedImageToHistogramFilter",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "Threshold",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "Get the computed threshold."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "b3a9d15b0065800592149925da59ea65",
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 18924
+        }
+      ]
+    },
+    {
+      "tag" : "cthead1_with_mask",
+      "description" : "CT Head with mask",
+      "settings" : [],
+      "md5hash" : "6721fa49ee21734fd31e178b6dd16555",
+      "inputs" : [
+        "Input/cthead1.png",
+        "Input/cthead1-mask.png"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 119.0
+        }
+      ]
+    },
+    {
+      "tag" : "default_on_float",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "d749a8ef5a2049837518618938945cce",
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 0.498051,
+          "tolerance" : 1e-05
+        }
+      ]
+    }
+  ],
+  "briefdescription" : "Threshold an image using the MaximumEntropy Threshold.",
+  "detaileddescription" : "This filter creates a binary thresholded image that separates an image into foreground and background components. The filter computes the threshold using the MaximumEntropyThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .\n\n\\author Richard Beare. Department of Medicine, Monash University, Melbourne, Australia. \n\nGaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, Fran [...]
+  "itk_module" : "ITKThresholding",
+  "itk_group" : "Thresholding"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/MaximumImageFilter.json b/Code/BasicFilters/json/MaximumImageFilter.json
new file mode 100644
index 0000000..0aff34c
--- /dev/null
+++ b/Code/BasicFilters/json/MaximumImageFilter.json
@@ -0,0 +1,26 @@
+{
+  "name" : "MaximumImageFilter",
+  "template_code_filename" : "BinaryFunctorFilter",
+  "template_test_filename" : "ImageFilter",
+  "constant_type" : "double",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "md5hash" : "00c5a06c3a1b3be415732bd5073450ef",
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Implements a pixel-wise operator Max(a,b) between two images.",
+  "detaileddescription" : "The pixel values of the output image are the maximum between the corresponding pixels of the two input images.\n\nThis class is templated over the types of the two input images and the type of the output image. Numeric conversions (castings) are done by the C++ defaults.\n\n\\par Wiki Examples:\n\n\\li All Examples \n\n\\li Pixel wise compare two input images and set the output pixel to their max",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/MaximumProjectionImageFilter.json b/Code/BasicFilters/json/MaximumProjectionImageFilter.json
new file mode 100644
index 0000000..dcd41dc
--- /dev/null
+++ b/Code/BasicFilters/json/MaximumProjectionImageFilter.json
@@ -0,0 +1,68 @@
+{
+  "name" : "MaximumProjectionImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "ProjectionDimension",
+      "type" : "unsigned int",
+      "default" : "0u"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "run with some defaults",
+      "md5hash" : "fb78c55635b17fc9ff38ef0ef14f0948",
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "another_dimension",
+      "description" : "project in the 3rd dimension",
+      "settings" : [
+        {
+          "parameter" : "ProjectionDimension",
+          "cxx_value" : "2u",
+          "value" : "2"
+        }
+      ],
+      "md5hash" : "f3f0d97c83c6b0d92df10c28e2481520",
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "short_image",
+      "description" : "project with a short image",
+      "settings" : [
+        {
+          "parameter" : "ProjectionDimension",
+          "cxx_value" : "1u",
+          "value" : "1"
+        }
+      ],
+      "md5hash" : "5390344262c91e83bc9208b0991a2fc9",
+      "inputs" : [
+        "Input/Ramp-Up-Short.nrrd"
+      ]
+    },
+    {
+      "tag" : "rgb_image",
+      "description" : "project with a rgb image in 2D",
+      "md5hash" : "92134e0dd38fccdf054ff23e67a72e75",
+      "inputs" : [
+        "Input/VM1111Shrink-RGB.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Maximum projection.",
+  "detaileddescription" : "This class was contributed to the insight journal by Gaetan Lehmann. The original paper can be found at https://hdl.handle.net/1926/164 \n\n\\author Gaetan Lehmann. Biologie du Developpement et de la reproduction, inra de jouy-en-josas, France.\n\n\\see ProjectionImageFilter \n\n\\see MedianProjectionImageFilter \n\n\\see MeanProjectionImageFilter \n\n\\see MinimumProjectionImageFilter \n\n\\see StandardDeviationProjectionImageFilter \n\n\\see SumProjectionImag [...]
+  "itk_module" : "ITKImageStatistics",
+  "itk_group" : "ImageStatistics"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/MeanImageFilter.json b/Code/BasicFilters/json/MeanImageFilter.json
new file mode 100644
index 0000000..4ec12b9
--- /dev/null
+++ b/Code/BasicFilters/json/MeanImageFilter.json
@@ -0,0 +1,54 @@
+{
+  "name" : "MeanImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Radius",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 1)",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "doc" : "",
+      "itk_type" : "typename FilterType::RadiusType"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Test MeanImageFilter with default parametrs",
+      "md5hash" : "4abff9cea3d1bfdd10bceb8893a35d3a",
+      "settings" : [],
+      "inputs" : [
+        "Input/VM1111Shrink-RGBFloat.nrrd"
+      ]
+    },
+    {
+      "tag" : "by23",
+      "description" : "Test by 23",
+      "md5hash" : "4feffebe7656f267b2bc27b966f00a63",
+      "settings" : [
+        {
+          "parameter" : "Radius",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            2,
+            3
+          ]
+        }
+      ],
+      "inputs" : [
+        "Input/VM1111Shrink-RGB.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Applies an averaging filter to an image.",
+  "detaileddescription" : "Computes an image where a given pixel is the mean value of the the pixels in a neighborhood about the corresponding input pixel.\n\nA mean filter is one of the family of linear filters.\n\n\\see Image \n\n\\see Neighborhood \n\n\\see NeighborhoodOperator \n\n\\see NeighborhoodIterator \n\n\\par Wiki Examples:\n\n\\li All Examples \n\n\\li Mean filter an image",
+  "itk_module" : "ITKSmoothing",
+  "itk_group" : "Smoothing"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/MeanProjectionImageFilter.json b/Code/BasicFilters/json/MeanProjectionImageFilter.json
new file mode 100644
index 0000000..f2d43d5
--- /dev/null
+++ b/Code/BasicFilters/json/MeanProjectionImageFilter.json
@@ -0,0 +1,37 @@
+{
+  "name" : "MeanProjectionImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "\todo this filter should work with VectorImages too.",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_pixel_type" : "typename itk::NumericTraits<typename InputImageType::PixelType>::RealType",
+  "members" : [
+    {
+      "name" : "ProjectionDimension",
+      "type" : "unsigned int",
+      "default" : "0u"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "z_projection",
+      "description" : "project in the 2nd dimension",
+      "settings" : [
+        {
+          "parameter" : "ProjectionDimension",
+          "cxx_value" : "2u",
+          "value" : "2"
+        }
+      ],
+      "tolerance" : "0.0001",
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Mean projection.",
+  "detaileddescription" : "This class was contributed to the Insight Journal by Gaetan Lehmann. The original paper can be found at https://hdl.handle.net/1926/164 \n\n\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\n\\see ProjectionImageFilter \n\n\\see MedianProjectionImageFilter \n\n\\see MinimumProjectionImageFilter \n\n\\see StandardDeviationProjectionImageFilter \n\n\\see SumProjectionImageFilter \n\n\\see BinaryProjectionIm [...]
+  "itk_module" : "ITKImageStatistics",
+  "itk_group" : "ImageStatistics"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/MedianImageFilter.json b/Code/BasicFilters/json/MedianImageFilter.json
new file mode 100644
index 0000000..3b421c6
--- /dev/null
+++ b/Code/BasicFilters/json/MedianImageFilter.json
@@ -0,0 +1,54 @@
+{
+  "name" : "MedianImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Radius",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 1)",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "doc" : "",
+      "itk_type" : "typename FilterType::RadiusType"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Test MeanImageFilter with default parametrs",
+      "md5hash" : "3d91602f6080b45a5431b80d1f78c0a0",
+      "settings" : [],
+      "inputs" : [
+        "Input/VM1111Shrink-RGBFloat.nrrd"
+      ]
+    },
+    {
+      "tag" : "by23",
+      "description" : "Test by 23",
+      "md5hash" : "03610a1cb421d145fe985478d4eb9c0a",
+      "settings" : [
+        {
+          "parameter" : "Radius",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            2,
+            3
+          ]
+        }
+      ],
+      "inputs" : [
+        "Input/VM1111Shrink-RGB.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Applies a median filter to an image.",
+  "detaileddescription" : "Computes an image where a given pixel is the median value of the the pixels in a neighborhood about the corresponding input pixel.\n\nA median filter is one of the family of nonlinear filters. It is used to smooth an image without being biased by outliers or shot noise.\n\nThis filter requires that the input pixel type provides an operator<() (LessThan Comparable).\n\n\\see Image \n\n\\see Neighborhood \n\n\\see NeighborhoodOperator \n\n\\see NeighborhoodIterat [...]
+  "itk_module" : "ITKSmoothing",
+  "itk_group" : "Smoothing"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/MedianProjectionImageFilter.json b/Code/BasicFilters/json/MedianProjectionImageFilter.json
new file mode 100644
index 0000000..4e2c01a
--- /dev/null
+++ b/Code/BasicFilters/json/MedianProjectionImageFilter.json
@@ -0,0 +1,68 @@
+{
+  "name" : "MedianProjectionImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "ProjectionDimension",
+      "type" : "unsigned int",
+      "default" : "0u"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "run with some defaults",
+      "md5hash" : "86de48c070480cb9809e28715f6e70e1",
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "another_dimension",
+      "description" : "project in the 3rd dimension",
+      "settings" : [
+        {
+          "parameter" : "ProjectionDimension",
+          "cxx_value" : "2u",
+          "value" : "2"
+        }
+      ],
+      "md5hash" : "0990f0f6c63ea9d63b701ed7c2467de7",
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "short_image",
+      "description" : "project with a short image",
+      "settings" : [
+        {
+          "parameter" : "ProjectionDimension",
+          "cxx_value" : "1u",
+          "value" : "1"
+        }
+      ],
+      "md5hash" : "9fcc7164f3294811cbf2d875b0e494d1",
+      "inputs" : [
+        "Input/Ramp-Up-Short.nrrd"
+      ]
+    },
+    {
+      "tag" : "rgb_image",
+      "description" : "project with a rgb image in 2D",
+      "md5hash" : "b66bc7e92a21a33c46d9a334d2292845",
+      "inputs" : [
+        "Input/VM1111Shrink-RGB.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Median projection.",
+  "detaileddescription" : "This class was contributed to the Insight Journal by Gaetan Lehmann. The original paper can be found at https://hdl.handle.net/1926/164 \n\n\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\n\\see ProjectionImageFilter \n\n\\see StandardDeviationProjectionImageFilter \n\n\\see SumProjectionImageFilter \n\n\\see BinaryProjectionImageFilter \n\n\\see MaximumProjectionImageFilter \n\n\\see MinimumProjectionI [...]
+  "itk_module" : "ITKImageStatistics",
+  "itk_group" : "ImageStatistics"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/MergeLabelMapFilter.json b/Code/BasicFilters/json/MergeLabelMapFilter.json
new file mode 100644
index 0000000..f60a092
--- /dev/null
+++ b/Code/BasicFilters/json/MergeLabelMapFilter.json
@@ -0,0 +1,140 @@
+{
+  "name" : "MergeLabelMapFilter",
+  "template_code_filename" : "MultiInputImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "LabelPixelIDTypeList",
+  "filter_type" : "itk::MergeLabelMapFilter<InputImageType>",
+  "members" : [
+    {
+      "name" : "Method",
+      "enum" : [
+        "Keep",
+        "Aggregate",
+        "Pack",
+        "Strict"
+      ],
+      "itk_type" : "typename FilterType::MethodChoice",
+      "default" : "itk::simple::MergeLabelMapFilter::Keep",
+      "custom_itk_cast" : "filter->SetMethod ( typename FilterType::MethodChoice ( int( this->m_Method ) ) );\n  filter->InPlaceOff();",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the method used to merge the label maps",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the method used to merge the label maps"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : " default parameters",
+      "settings" : [],
+      "md5hash" : "76cff1a87fc608eb7de7de3dfa450371",
+      "inputA_cast" : "sitkLabelUInt32",
+      "inputB_cast" : "sitkLabelUInt32",
+      "inputs" : [
+        "Input/simple-label-c.png",
+        "Input/simple-label-d.png"
+      ]
+    },
+    {
+      "tag" : "keep",
+      "description" : "keep choice",
+      "settings" : [
+        {
+          "parameter" : "Method",
+          "value" : "itk::simple::${name}::Keep",
+          "lua_value" : "SimpleITK.${name}_Keep",
+          "python_value" : "SimpleITK.${name}.Keep",
+          "ruby_value" : "Simpleitk::${name}::Keep",
+          "java_value" : "${name}.MethodType.Keep",
+          "tcl_value" : "$$${name}_Keep",
+          "csharp_value" : "itk.simple.${name}.MethodType.Keep",
+          "R_value" : "'Keep'"
+        }
+      ],
+      "md5hash" : "b187de2f27b849a2dffdf8259ccf2e1d",
+      "inputA_cast" : "sitkLabelUInt16",
+      "inputB_cast" : "sitkLabelUInt16",
+      "inputs" : [
+        "Input/simple-label-c.png",
+        "Input/simple-label-d.png"
+      ]
+    },
+    {
+      "tag" : "aggregate",
+      "description" : "aggregate choice",
+      "settings" : [
+        {
+          "parameter" : "Method",
+          "value" : "itk::simple::${name}::Aggregate",
+          "lua_value" : "SimpleITK.${name}_Aggregate",
+          "python_value" : "SimpleITK.${name}.Aggregate",
+          "ruby_value" : "Simpleitk::${name}::Aggregate",
+          "java_value" : "${name}.MethodType.Aggregate",
+          "tcl_value" : "$$${name}_Aggregate",
+          "csharp_value" : "itk.simple.${name}.MethodType.Aggregate",
+          "R_value" : "'Aggregate'"
+        }
+      ],
+      "md5hash" : "5cc14523f8ec8e7fc33c23937cbd5839",
+      "inputA_cast" : "sitkLabelUInt16",
+      "inputB_cast" : "sitkLabelUInt16",
+      "inputs" : [
+        "Input/simple-label-c.png",
+        "Input/simple-label-d.png"
+      ]
+    },
+    {
+      "tag" : "pack",
+      "description" : " default parameters",
+      "settings" : [
+        {
+          "parameter" : "Method",
+          "value" : "itk::simple::${name}::Pack",
+          "lua_value" : "SimpleITK.${name}_Pack",
+          "python_value" : "SimpleITK.${name}.Pack",
+          "ruby_value" : "Simpleitk::${name}::Pack",
+          "java_value" : "${name}.MethodType.Pack",
+          "tcl_value" : "$$${name}_Pack",
+          "csharp_value" : "itk.simple.${name}.MethodType.Pack",
+          "R_value" : "'Pack'"
+        }
+      ],
+      "md5hash" : "0ca936ce321e43884053c8464197cdda",
+      "inputA_cast" : "sitkLabelUInt8",
+      "inputB_cast" : "sitkLabelUInt8",
+      "inputs" : [
+        "Input/simple-label-c.png",
+        "Input/simple-label-d.png"
+      ]
+    },
+    {
+      "tag" : "strict",
+      "description" : "with strict choice",
+      "settings" : [
+        {
+          "parameter" : "Method",
+          "value" : "itk::simple::${name}::Strict",
+          "lua_value" : "SimpleITK.${name}_Strict",
+          "python_value" : "SimpleITK.${name}.Strict",
+          "ruby_value" : "Simpleitk::${name}::Strict",
+          "java_value" : "${name}.MethodType.Strict",
+          "tcl_value" : "$$${name}_Strict",
+          "csharp_value" : "itk.simple.${name}.MethodType.Strict",
+          "R_value" : "'Strict'"
+        }
+      ],
+      "md5hash" : "678ac95f8379073e4c747952dc7abf7c",
+      "inputA_cast" : "sitkLabelUInt16",
+      "inputB_cast" : "sitkLabelUInt16",
+      "inputs" : [
+        "Input/simple-label-d.png",
+        "Input/simple-label-e.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Merges several Label Maps.",
+  "detaileddescription" : "This filter takes one or more input Label Map and merges them.\n\nSetMethod() can be used to change how the filter manage the labels from the different label maps. KEEP (0): MergeLabelMapFilter do its best to keep the label unchanged, but if a label is already used in a previous label map, a new label is assigned. AGGREGATE (1): If the same label is found several times in the label maps, the label objects with the same label are merged. PACK (2): MergeLabelMapF [...]
+  "itk_module" : "ITKLabelMap",
+  "itk_group" : "LabelMap"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/MinMaxCurvatureFlowImageFilter.json b/Code/BasicFilters/json/MinMaxCurvatureFlowImageFilter.json
new file mode 100644
index 0000000..6b5b963
--- /dev/null
+++ b/Code/BasicFilters/json/MinMaxCurvatureFlowImageFilter.json
@@ -0,0 +1,67 @@
+{
+  "name" : "MinMaxCurvatureFlowImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "RealPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "TimeStep",
+      "type" : "double",
+      "default" : 0.05,
+      "doc" : "Time step for PDE solver"
+    },
+    {
+      "name" : "NumberOfIterations",
+      "type" : "uint32_t",
+      "default" : "5u",
+      "doc" : "Number of iterations to run"
+    },
+    {
+      "name" : "StencilRadius",
+      "type" : "int",
+      "default" : 2,
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the stencil radius.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the stencil radius."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0.01,
+      "md5hash" : null,
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "longer",
+      "description" : "Change number of iterations and timestep",
+      "settings" : [
+        {
+          "parameter" : "TimeStep",
+          "value" : 0.1
+        },
+        {
+          "parameter" : "NumberOfIterations",
+          "cxx_value" : "10u",
+          "value" : "10"
+        }
+      ],
+      "tolerance" : 0.01,
+      "md5hash" : null,
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Denoise an image using min/max curvature flow.",
+  "detaileddescription" : "MinMaxCurvatureFlowImageFilter implements a curvature driven image denoising algorithm. Iso-brightness contours in the grayscale input image are viewed as a level set. The level set is then evolved using a curvature-based speed function:\n\n \\f[ I_t = F_{\\mbox{minmax}} |\\nabla I| \\f] \n\nwhere \\f$ F_{\\mbox{minmax}} = \\max(\\kappa,0) \\f$ if \\f$ \\mbox{Avg}_{\\mbox{stencil}}(x) \\f$ is less than or equal to \\f$ T_{thresold} \\f$ and \\f$ \\min(\\kappa,0 [...]
+  "itk_module" : "ITKCurvatureFlow",
+  "itk_group" : "CurvatureFlow"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/MinimumImageFilter.json b/Code/BasicFilters/json/MinimumImageFilter.json
new file mode 100644
index 0000000..cc675e1
--- /dev/null
+++ b/Code/BasicFilters/json/MinimumImageFilter.json
@@ -0,0 +1,26 @@
+{
+  "name" : "MinimumImageFilter",
+  "template_code_filename" : "BinaryFunctorFilter",
+  "template_test_filename" : "ImageFilter",
+  "constant_type" : "double",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "md5hash" : "35088a16227bda50ff5c93baa2199a17",
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Implements a pixel-wise operator Min(a,b) between two images.",
+  "detaileddescription" : "The pixel values of the output image are the minimum between the corresponding pixels of the two input images.\n\nThis class is templated over the types of the two input images and the type of the output image. Numeric conversions (castings) are done by the C++ defaults.\n\n\\par Wiki Examples:\n\n\\li All Examples \n\n\\li Pixel wise compare two input images and set the output pixel to their min",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/MinimumMaximumImageFilter.json b/Code/BasicFilters/json/MinimumMaximumImageFilter.json
new file mode 100644
index 0000000..e4cc239
--- /dev/null
+++ b/Code/BasicFilters/json/MinimumMaximumImageFilter.json
@@ -0,0 +1,73 @@
+{
+  "name" : "MinimumMaximumImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "filter_type" : "itk::MinimumMaximumImageFilter<InputImageType>",
+  "no_procedure" : true,
+  "no_return_image" : true,
+  "members" : [],
+  "measurements" : [
+    {
+      "name" : "Minimum",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Return the computed Minimum."
+    },
+    {
+      "name" : "Maximum",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Return the computed Maximum."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "2d",
+      "description" : "2d with unsigned char",
+      "settings" : [],
+      "measurements_results" : [
+        {
+          "name" : "Minimum",
+          "value" : 0,
+          "tolerance" : 0
+        },
+        {
+          "name" : "Maximum",
+          "value" : 255,
+          "tolerance" : 0
+        }
+      ],
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    },
+    {
+      "tag" : "float",
+      "description" : "3d float image",
+      "settings" : [],
+      "measurements_results" : [
+        {
+          "name" : "Minimum",
+          "value" : -1146,
+          "tolerance" : 0
+        },
+        {
+          "name" : "Maximum",
+          "value" : 32767,
+          "tolerance" : 0
+        }
+      ],
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the minimum and the maximum intensity values of an image.",
+  "detaileddescription" : "It is templated over input image type only. This filter just copies the input image through this output to be included within the pipeline. The implementation uses the StatisticsImageFilter .\n\n\\see StatisticsImageFilter",
+  "itk_module" : "ITKImageStatistics",
+  "itk_group" : "ImageStatistics"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/MinimumProjectionImageFilter.json b/Code/BasicFilters/json/MinimumProjectionImageFilter.json
new file mode 100644
index 0000000..2406461
--- /dev/null
+++ b/Code/BasicFilters/json/MinimumProjectionImageFilter.json
@@ -0,0 +1,68 @@
+{
+  "name" : "MinimumProjectionImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "ProjectionDimension",
+      "type" : "unsigned int",
+      "default" : "0u"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "run with some defaults",
+      "md5hash" : "5591e0307db733396e8cc8143e7f29f7",
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "another_dimension",
+      "description" : "project in the 3rd dimension",
+      "settings" : [
+        {
+          "parameter" : "ProjectionDimension",
+          "cxx_value" : "2u",
+          "value" : "2"
+        }
+      ],
+      "md5hash" : "6c16b87a823ca190294ac8b678ba4300",
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "short_image",
+      "description" : "project with a short image",
+      "settings" : [
+        {
+          "parameter" : "ProjectionDimension",
+          "cxx_value" : "1u",
+          "value" : "1"
+        }
+      ],
+      "md5hash" : "c4d83f61ffd5cc3a163155bb5d6a0698",
+      "inputs" : [
+        "Input/Ramp-Up-Short.nrrd"
+      ]
+    },
+    {
+      "tag" : "rgb_image",
+      "description" : "project with a rgb image in 2D",
+      "md5hash" : "344c2d7cf14b5e8b30b266b77a0548c2",
+      "inputs" : [
+        "Input/VM1111Shrink-RGB.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Minimum projection.",
+  "detaileddescription" : "This class was contributed to the Insight Journal by Gaetan Lehmann. The original paper can be found at https://hdl.handle.net/1926/164 \n\n\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\n\\see ProjectionImageFilter \n\n\\see StandardDeviationProjectionImageFilter \n\n\\see SumProjectionImageFilter \n\n\\see BinaryProjectionImageFilter \n\n\\see MaximumProjectionImageFilter \n\n\\see MeanProjectionImag [...]
+  "itk_module" : "ITKImageStatistics",
+  "itk_group" : "ImageStatistics"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/MirrorPadImageFilter.json b/Code/BasicFilters/json/MirrorPadImageFilter.json
new file mode 100644
index 0000000..272b35c
--- /dev/null
+++ b/Code/BasicFilters/json/MirrorPadImageFilter.json
@@ -0,0 +1,71 @@
+{
+  "name" : "MirrorPadImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "\todo add SetBound member function to set both properties",
+  "pixel_types" : "NonLabelPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "PadLowerBound",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 0)",
+      "doc" : "\todo what does this itk_type attribute do?",
+      "dim_vec" : 1,
+      "itk_type" : "typename InputImageType::SizeType"
+    },
+    {
+      "name" : "PadUpperBound",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 0)",
+      "doc" : "\todo what does this itk_type attribute do?",
+      "dim_vec" : 1,
+      "itk_type" : "typename InputImageType::SizeType"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Test MirrorPad with default parameters",
+      "md5hash" : "a9a0207c759cb8d9e0507414992905d6",
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-Slice-Short.png"
+      ]
+    },
+    {
+      "tag" : "more",
+      "description" : "Test MirrorPad reasonable padding",
+      "md5hash" : "e08b5df5d43b6f3704ab48e8291928cd",
+      "settings" : [
+        {
+          "parameter" : "PadLowerBound",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            5,
+            10,
+            15
+          ]
+        },
+        {
+          "parameter" : "PadUpperBound",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            3,
+            6,
+            9
+          ]
+        }
+      ],
+      "inputs" : [
+        "Input/Ramp-Down-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Increase the image size by padding with replicants of the input image value.",
+  "detaileddescription" : "MirrorPadImageFilter changes the image bounds of an image. Any added pixels are filled in with a mirrored replica of the input image. For instance, if the output image needs a pixel that is two pixels to the left of the LargestPossibleRegion of the input image, the value assigned will be from the pixel two pixels inside the left boundary of the LargestPossibleRegion. The image bounds of the output must be specified.\n\nVisual explanation of padding regions.\n T [...]
+  "itk_module" : "ITKImageGrid",
+  "itk_group" : "ImageGrid"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ModulusImageFilter.json b/Code/BasicFilters/json/ModulusImageFilter.json
new file mode 100644
index 0000000..41a1d18
--- /dev/null
+++ b/Code/BasicFilters/json/ModulusImageFilter.json
@@ -0,0 +1,25 @@
+{
+  "name" : "ModulusImageFilter",
+  "template_code_filename" : "BinaryFunctorFilter",
+  "template_test_filename" : "ImageFilter",
+  "constant_type" : "uint32_t",
+  "number_of_inputs" : 2,
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "md5hash" : "12fd4fb023059d4659d30ee449bb6599",
+      "inputs" : [
+        "Input/STAPLE1.png",
+        "Input/STAPLE2.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the modulus (x % dividend) pixel-wise.",
+  "detaileddescription" : "The input pixel type must support the c++ modulus operator (%).\n\nIf the dividend is zero, the maximum value will be returned.\n\n\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/MomentsThresholdImageFilter.json b/Code/BasicFilters/json/MomentsThresholdImageFilter.json
new file mode 100644
index 0000000..92a187b
--- /dev/null
+++ b/Code/BasicFilters/json/MomentsThresholdImageFilter.json
@@ -0,0 +1,132 @@
+{
+  "name" : "MomentsThresholdImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "Docs",
+  "number_of_inputs" : 0,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_image_type" : "itk::Image< uint8_t, TImageType::ImageDimension>",
+  "filter_type" : "itk::MomentsThresholdImageFilter< TImageType, OutputImageType, OutputImageType >",
+  "inputs" : [
+    {
+      "name" : "Image",
+      "type" : "Image"
+    },
+    {
+      "name" : "MaskImage",
+      "type" : "Image",
+      "optional" : true
+    }
+  ],
+  "members" : [
+    {
+      "name" : "InsideValue",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the \"inside\" pixel value.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"inside\" pixel value.\n"
+    },
+    {
+      "name" : "OutsideValue",
+      "type" : "uint8_t",
+      "default" : "0u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"outside\" pixel value.\n"
+    },
+    {
+      "name" : "NumberOfHistogramBins",
+      "type" : "uint32_t",
+      "default" : "256u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the number of histogram bins.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MaskOutput",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Do you want the output to be masked by the mask used in histogram construction. Only relevant if masking is in use.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MaskValue",
+      "type" : "uint8_t",
+      "default" : "255u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "The value in the mask image, if used, indicating voxels that should be included. Default is the max of pixel type, as in the MaskedImageToHistogramFilter",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "Threshold",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "Get the computed threshold."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "e800753bd5e4085c102bc66b3f39bf85",
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 24488
+        }
+      ]
+    },
+    {
+      "tag" : "cthead1_with_mask",
+      "description" : "CT Head with mask",
+      "settings" : [],
+      "md5hash" : "bb89987314895cdcd5ceb95a1f71f682",
+      "inputs" : [
+        "Input/cthead1.png",
+        "Input/cthead1-mask.png"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 176.0
+        }
+      ]
+    },
+    {
+      "tag" : "default_on_float",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "d749a8ef5a2049837518618938945cce",
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 0.498051,
+          "tolerance" : 1e-05
+        }
+      ]
+    }
+  ],
+  "briefdescription" : "Threshold an image using the Moments Threshold.",
+  "detaileddescription" : "This filter creates a binary thresholded image that separates an image into foreground and background components. The filter computes the threshold using the MomentsThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .\n\n\\author Richard Beare. Department of Medicine, Monash University, Melbourne, Australia. \n\nGaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\n [...]
+  "itk_module" : "ITKThresholding",
+  "itk_group" : "Thresholding"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/MorphologicalGradientImageFilter.json b/Code/BasicFilters/json/MorphologicalGradientImageFilter.json
new file mode 100644
index 0000000..9fa1e11
--- /dev/null
+++ b/Code/BasicFilters/json/MorphologicalGradientImageFilter.json
@@ -0,0 +1,42 @@
+{
+  "name" : "MorphologicalGradientImageFilter",
+  "template_code_filename" : "KernelImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "MorphologicalGradient",
+      "description" : "Test morhological gradient",
+      "md5hash" : "57167a1d86b60fbf9e040d9441676876",
+      "settings" : [
+        {
+          "parameter" : "KernelRadius",
+          "no_get_method" : 1,
+          "value" : 1
+        },
+        {
+          "parameter" : "KernelType",
+          "value" : "itk::simple::sitkBall",
+          "lua_value" : "SimpleITK.sitkBall",
+          "python_value" : "SimpleITK.sitkBall",
+          "ruby_value" : "Simpleitk::SitkBall",
+          "java_value" : "KernelEnum.sitkBall",
+          "tcl_value" : "$$sitkBall",
+          "csharp_value" : "KernelEnum.sitkBall",
+          "R_value" : "'sitkBall'"
+        }
+      ],
+      "inputs" : [
+        "Input/STAPLE1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "gray scale dilation of an image",
+  "detaileddescription" : "Dilate an image using grayscale morphology. Dilation takes the maximum of all the pixels identified by the structuring element.\n\nThe structuring element is assumed to be composed of binary values (zero or one). Only elements of the structuring element having values > 0 are candidates for affecting the center pixel.\n\n\\see MorphologyImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter",
+  "itk_module" : "ITKMathematicalMorphology",
+  "itk_group" : "MathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/MorphologicalWatershedFromMarkersImageFilter.json b/Code/BasicFilters/json/MorphologicalWatershedFromMarkersImageFilter.json
new file mode 100644
index 0000000..95361cc
--- /dev/null
+++ b/Code/BasicFilters/json/MorphologicalWatershedFromMarkersImageFilter.json
@@ -0,0 +1,58 @@
+{
+  "name" : "MorphologicalWatershedFromMarkersImageFilter",
+  "template_code_filename" : "DualImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 0,
+  "pixel_types" : "ScalarPixelIDTypeList",
+  "pixel_types2" : "IntegerPixelIDTypeList",
+  "filter_type" : "itk::MorphologicalWatershedFromMarkersImageFilter<InputImageType, InputImageType2>",
+  "doc" : "",
+  "inputs" : [
+    {
+      "name" : "Image",
+      "type" : "Image"
+    },
+    {
+      "name" : "MarkerImage",
+      "type" : "Image",
+      "custom_itk_cast" : "filter->SetMarkerImage( this->CastImageToITK<typename FilterType::LabelImageType>(*inMarkerImage) );"
+    }
+  ],
+  "members" : [
+    {
+      "name" : "MarkWatershedLine",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the watershed pixel must be marked or not. Default is true. Set it to false do not only avoid writing watershed pixels, it also decrease algorithm complexity.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the watershed pixel must be marked or not. Default is true. Set it to false do not only avoid writing watershed pixels, it also decrease algorithm complexity."
+    },
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn."
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "md5hash" : "c32759ecb10cbff555c750b8b7a8d32e",
+      "inputs" : [
+        "Input/cthead1-grad-mag.nrrd",
+        "Input/cthead1-marker.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Morphological watershed transform from markers.",
+  "detaileddescription" : "The watershed transform is a tool for image segmentation that is fast and flexible and potentially fairly parameter free. It was originally derived from a geophysical model of rain falling on a terrain and a variety of more formal definitions have been devised to allow development of practical algorithms. If an image is considered as a terrain and divided into catchment basins then the hope is that each catchment basin would contain an object of interest.\n\nTh [...]
+  "itk_module" : "ITKReview",
+  "itk_group" : "Review"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/MorphologicalWatershedImageFilter.json b/Code/BasicFilters/json/MorphologicalWatershedImageFilter.json
new file mode 100644
index 0000000..1c693bf
--- /dev/null
+++ b/Code/BasicFilters/json/MorphologicalWatershedImageFilter.json
@@ -0,0 +1,75 @@
+{
+  "name" : "MorphologicalWatershedImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "ScalarPixelIDTypeList",
+  "output_pixel_type" : "uint32_t",
+  "members" : [
+    {
+      "name" : "Level",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MarkWatershedLine",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the watershed pixel must be marked or not. Default is true. Set it to false do not only avoid writing watershed pixels, it also decrease algorithm complexity.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the watershed pixel must be marked or not. Default is true. Set it to false do not only avoid writing watershed pixels, it also decrease algorithm complexity."
+    },
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn."
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "md5hash" : "406079d7904d4e9ab0b5f29f7a3a1ea8",
+      "inputs" : [
+        "Input/cthead1-grad-mag.nrrd"
+      ]
+    },
+    {
+      "tag" : "level_1",
+      "description" : "Set some parameters",
+      "settings" : [
+        {
+          "parameter" : "Level",
+          "value" : "1.0"
+        },
+        {
+          "parameter" : "MarkWatershedLine",
+          "value" : "false",
+          "python_value" : "False",
+          "R_value" : "FALSE"
+        }
+      ],
+      "md5hash" : "a204ce7cf8ec4e7bc6538f0515a8910e",
+      "inputs" : [
+        "Input/cthead1-grad-mag.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Watershed segmentation implementation with morphogical operators.",
+  "detaileddescription" : "Watershed pixel are labeled 0. TOutputImage should be an integer type. Labels of output image are in no particular order. You can reorder the labels such that object labels are consecutive and sorted based on object size by passing the output of this filter to a RelabelComponentImageFilter .\n\nThe morphological watershed transform algorithm is described in Chapter 9.2 of Pierre Soille's book \"Morphological Image Analysis:\nPrinciples and Applications\", Secon [...]
+  "itk_module" : "ITKReview",
+  "itk_group" : "Review"
+}
diff --git a/Code/BasicFilters/json/MultiLabelSTAPLEImageFilter.json b/Code/BasicFilters/json/MultiLabelSTAPLEImageFilter.json
new file mode 100644
index 0000000..e3a2056
--- /dev/null
+++ b/Code/BasicFilters/json/MultiLabelSTAPLEImageFilter.json
@@ -0,0 +1,82 @@
+{
+  "name" : "MultiLabelSTAPLEImageFilter",
+  "template_code_filename" : "MultiInputImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "UnsignedIntegerPixelIDTypeList",
+  "filter_type" : "itk::MultiLabelSTAPLEImageFilter<InputImageType, OutputImageType, float>",
+  "members" : [
+    {
+      "name" : "LabelForUndecidedPixels",
+      "type" : "uint64_t",
+      "default" : "std::numeric_limits<uint64_t>::max()",
+      "pixeltype" : "Output",
+      "custom_itk_cast" : "if (m_LabelForUndecidedPixels!=std::numeric_limits<uint64_t>::max()) filter->SetLabelForUndecidedPixels(this->m_LabelForUndecidedPixels);",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set label value for undecided pixels.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get label value used for undecided pixels.\n\nAfter updating the filter, this function returns the actual label value used for undecided pixels in the current output. Note that this value is overwritten when SetLabelForUndecidedPixels is called and the new value only becomes effective upon the next filter update."
+    },
+    {
+      "name" : "TerminationUpdateThreshold",
+      "type" : "float",
+      "default" : "1e-5f",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set termination threshold based on confusion matrix parameter updates.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set termination threshold based on confusion matrix parameter updates."
+    },
+    {
+      "name" : "MaximumNumberOfIterations",
+      "type" : "unsigned int",
+      "default" : "std::numeric_limits<unsigned int>::max()",
+      "custom_itk_cast" : "if (m_MaximumNumberOfIterations!=std::numeric_limits<unsigned int>::max()) filter->SetMaximumNumberOfIterations(this->m_MaximumNumberOfIterations);",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set maximum number of iterations.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set maximum number of iterations."
+    },
+    {
+      "name" : "PriorProbabilities",
+      "type" : "std::vector<float>",
+      "default" : "std::vector<float>()",
+      "briefdescriptionSet" : "",
+      "custom_itk_cast" : "if (!m_PriorProbabilities.empty()) filter->SetPriorProbabilities(typename FilterType::PriorProbabilitiesType(&this->m_PriorProbabilities[0],this->m_PriorProbabilities.size()));",
+      "detaileddescriptionSet" : "Set manual estimates for the a priori class probabilities. The size of the array must be greater than the value of the\n largest label. The index into the array corresponds to the label\n value in the segmented image for the class.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get prior class probabilities.\n\nAfter updating the filter, this function returns the actual prior class probabilities. If these were not previously set by a call to SetPriorProbabilities, then they are estimated from the input segmentations and the result is available through this function."
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "ConfusionMatrix",
+      "type" : "std::vector<float>",
+      "no_print" : true,
+      "custom_cast" : "std::vector<float>(value.begin(), value.end())",
+      "active" : true,
+      "parameters" : [
+        {
+          "name" : "input",
+          "type" : "unsigned int"
+        }
+      ],
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get confusion matrix for the i-th input segmentation."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "basic",
+      "description" : "Basic usage",
+      "md5hash" : "77ac8604a252c5130602645a5f02cc36",
+      "inputs" : [
+        "Input/STAPLE1-binary.png",
+        "Input/STAPLE2-binary.png"
+      ]
+    }
+  ],
+  "briefdescription" : "This filter performs a pixelwise combination of an arbitrary number of input images, where each of them represents a segmentation of the same scene (i.e., image).",
+  "detaileddescription" : "The labelings in the images are weighted relative to each other based on their \"performance\" as estimated by an expectation-maximization algorithm. In the process, a ground truth segmentation is estimated, and the estimated performances of the individual segmentations are relative to this estimated ground truth.\n\nThe algorithm is based on the binary STAPLE algorithm by Warfield et al. as published originally in\n\nS. Warfield, K. Zou, W. Wells, \"Validation [...]
+  "itk_module" : "ITKLabelVoting",
+  "itk_group" : "LabelVoting"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/MultiplyImageFilter.json b/Code/BasicFilters/json/MultiplyImageFilter.json
new file mode 100644
index 0000000..e4776e0
--- /dev/null
+++ b/Code/BasicFilters/json/MultiplyImageFilter.json
@@ -0,0 +1,26 @@
+{
+  "name" : "MultiplyImageFilter",
+  "template_code_filename" : "BinaryFunctorFilter",
+  "template_test_filename" : "ImageFilter",
+  "constant_type" : "double",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "typelist::Append<BasicPixelIDTypeList, ComplexPixelIDTypeList>::Type",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "md5hash" : "1f733047e37adf9589c695500820110b",
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Pixel-wise multiplication of two images.",
+  "detaileddescription" : "This class is templated over the types of the two input images and the type of the output image. Numeric conversions (castings) are done by the C++ defaults.\n\n\\par Wiki Examples:\n\n\\li All Examples \n\n\\li Multiply two images together \n\n\\li Multiply every pixel in an image by a constant",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/N4BiasFieldCorrectionImageFilter.json b/Code/BasicFilters/json/N4BiasFieldCorrectionImageFilter.json
new file mode 100644
index 0000000..e61e0a2
--- /dev/null
+++ b/Code/BasicFilters/json/N4BiasFieldCorrectionImageFilter.json
@@ -0,0 +1,111 @@
+{
+  "name" : "N4BiasFieldCorrectionImageFilter",
+  "template_code_filename" : "DualImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 0,
+  "doc" : "Some global documentation",
+  "pixel_types" : "RealPixelIDTypeList",
+  "pixel_types2" : "IntegerPixelIDTypeList",
+  "inputs" : [
+    {
+      "name" : "Image",
+      "type" : "Image"
+    },
+    {
+      "name" : "MaskImage",
+      "type" : "Image"
+    }
+  ],
+  "members" : [
+    {
+      "name" : "ConvergenceThreshold",
+      "type" : "double",
+      "default" : "0.001",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the convergence threshold. Convergence is determined by the coefficient of variation of the difference image between the current bias field estimate and the previous estimate. If this value is less than the specified threshold, the algorithm proceeds to the next fitting level or terminates if it is at the last level.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the convergence threshold. Convergence is determined by the coefficient of variation of the difference image between the current bias field estimate and the previous estimate. If this value is less than the specified threshold, the algorithm proceeds to the next fitting level or terminates if it is at the last level."
+    },
+    {
+      "name" : "MaximumNumberOfIterations",
+      "type" : "std::vector<uint32_t>",
+      "default" : "std::vector<uint32_t>(4,50)",
+      "custom_itk_cast" : "typename FilterType::VariableSizeArrayType maximumNumberOfIterations( this->m_MaximumNumberOfIterations.size() );\n  for( unsigned int i = 0; i < this->m_MaximumNumberOfIterations.size(); ++i)\n    maximumNumberOfIterations[i] = this->m_MaximumNumberOfIterations[i];\n  filter->SetMaximumNumberOfIterations( maximumNumberOfIterations );\n  filter->SetNumberOfFittingLevels( this->m_MaximumNumberOfIterations.size() );",
+      "doc" : "\todo this variable needs to be printed",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the maximum number of iterations specified at each fitting level. Default = 50.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the maximum number of iterations specified at each fitting level. Default = 50."
+    },
+    {
+      "name" : "BiasFieldFullWidthAtHalfMaximum",
+      "type" : "double",
+      "default" : "0.15",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the full width at half maximum parameter characterizing the width of the Gaussian deconvolution. Default = 0.15.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the full width at half maximum parameter characterizing the width of the Gaussian deconvolution. Default = 0.15."
+    },
+    {
+      "name" : "WienerFilterNoise",
+      "type" : "double",
+      "default" : "0.01",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the noise estimate defining the Wiener filter. Default = 0.01.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the noise estimate defining the Wiener filter. Default = 0.01."
+    },
+    {
+      "name" : "NumberOfHistogramBins",
+      "type" : "uint32_t",
+      "default" : "200u",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set number of bins defining the log input intensity histogram. Default = 200.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get number of bins defining the log input intensity histogram. Default = 200."
+    },
+    {
+      "name" : "NumberOfControlPoints",
+      "type" : "uint32_t",
+      "default" : "std::vector<uint32_t>(3, 4)",
+      "doc" : "",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "itk_type" : "typename FilterType::ArrayType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the control point grid size defining the B-spline estimate of the scalar bias field. In each dimension, the B-spline mesh size is equal to the number of control points in that dimension minus the spline order. Default = 4 control points in each dimension for a mesh size of 1 in each dimension.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the control point grid size defining the B-spline estimate of the scalar bias field. In each dimension, the B-spline mesh size is equal to the number of control points in that dimension minus the spline order. Default = 4 control points in each dimension for a mesh size of 1 in each dimension."
+    },
+    {
+      "name" : "SplineOrder",
+      "type" : "uint32_t",
+      "default" : "3u",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the spline order defining the bias field estimate. Default = 3.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the spline order defining the bias field estimate. Default = 3."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "using default parameters in 2D",
+      "settings" : [],
+      "tolerance" : "0.01",
+      "inputs" : [
+        "Input/cthead1-Float.mha",
+        "Input/2th_cthead1.mha"
+      ]
+    }
+  ],
+  "briefdescription" : "Implementation of the N4 bias field correction algorithm.",
+  "detaileddescription" : "The nonparametric nonuniform intensity normalization (N3) algorithm, as introduced by Sled et al. in 1998 is a method for correcting nonuniformity associated with MR images. The algorithm assumes a simple parametric model (Gaussian) for the bias field and does not require tissue class segmentation. In addition, there are only a couple of parameters to tune with the default values performing quite well. N3 has been publicly available as a set of perl scripts (ht [...]
+  "itk_module" : "ITKBiasCorrection",
+  "itk_group" : "BiasCorrection"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/NaryAddImageFilter.json b/Code/BasicFilters/json/NaryAddImageFilter.json
new file mode 100644
index 0000000..29478fb
--- /dev/null
+++ b/Code/BasicFilters/json/NaryAddImageFilter.json
@@ -0,0 +1,60 @@
+{
+  "name" : "NaryAddImageFilter",
+  "template_code_filename" : "MultiInputImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "typelist::Append<BasicPixelIDTypeList, ComplexPixelIDTypeList>::Type",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "default2",
+      "description" : "adding of 2 images",
+      "settings" : [],
+      "md5hash" : "d83255b0121596228f3c23a312d9af69",
+      "inputs" : [
+        "Input/Ramp-One-Zero-Float.nrrd",
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "default3",
+      "description" : "adding of 3 images",
+      "settings" : [],
+      "md5hash" : "4628b3b09af910ac432e2a740b20c742",
+      "inputs" : [
+        "Input/Ramp-One-Zero-Float.nrrd",
+        "Input/Ramp-Zero-One-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "default4",
+      "description" : "adding of 4 images",
+      "settings" : [],
+      "md5hash" : "64140d8b2b8826dbfa6f3bb1d3fbe3eb",
+      "inputs" : [
+        "Input/Ramp-One-Zero-Float.nrrd",
+        "Input/Ramp-Zero-One-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "default5",
+      "description" : "adding of 5 images",
+      "settings" : [],
+      "md5hash" : "c0b3778cf51f4311678a2c9e0561daed",
+      "inputs" : [
+        "Input/Ramp-One-Zero-Float.nrrd",
+        "Input/Ramp-Zero-One-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Pixel-wise addition of N images.",
+  "detaileddescription" : "This class is templated over the types of the input images and the type of the output image. Numeric conversions (castings) are done by the C++ defaults.\n\nThe pixel type of the input images must have a valid definition of the operator+ with each other. This condition is required because internally this filter will perform the operation\n\n\\code\n* pixel_from_image_N + pixel_from_image_(N+1)\n\n* \n\n\\endcode\n\nAdditionally the type resulting from the sum,  [...]
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/NaryMaximumImageFilter.json b/Code/BasicFilters/json/NaryMaximumImageFilter.json
new file mode 100644
index 0000000..a46cba3
--- /dev/null
+++ b/Code/BasicFilters/json/NaryMaximumImageFilter.json
@@ -0,0 +1,60 @@
+{
+  "name" : "NaryMaximumImageFilter",
+  "template_code_filename" : "MultiInputImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "default2",
+      "description" : "max of 2 images",
+      "settings" : [],
+      "md5hash" : "00c5a06c3a1b3be415732bd5073450ef",
+      "inputs" : [
+        "Input/Ramp-One-Zero-Float.nrrd",
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "default3",
+      "description" : "max of 3 images",
+      "settings" : [],
+      "md5hash" : "00c5a06c3a1b3be415732bd5073450ef",
+      "inputs" : [
+        "Input/Ramp-One-Zero-Float.nrrd",
+        "Input/Ramp-Zero-One-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "default4",
+      "description" : "max of 4 images",
+      "settings" : [],
+      "md5hash" : "00c5a06c3a1b3be415732bd5073450ef",
+      "inputs" : [
+        "Input/Ramp-One-Zero-Float.nrrd",
+        "Input/Ramp-Zero-One-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "default5",
+      "description" : "max of 4 images",
+      "settings" : [],
+      "md5hash" : "00c5a06c3a1b3be415732bd5073450ef",
+      "inputs" : [
+        "Input/Ramp-One-Zero-Float.nrrd",
+        "Input/Ramp-Zero-One-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the pixel-wise maximum of several images.",
+  "detaileddescription" : "This class is templated over the types of the input images and the type of the output image. Numeric conversions (castings) are done by the C++ defaults.\n\nThe pixel type of the output images must have a valid definition of the operator<. This condition is required because internally this filter will perform an operation similar to:\n\n\\code\n* const OutputPixelType query_value = static_cast<OutputPixelType>(pixel_from_input_n);\n\n* if(current_maximum < quer [...]
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/NeighborhoodConnectedImageFilter.json b/Code/BasicFilters/json/NeighborhoodConnectedImageFilter.json
new file mode 100644
index 0000000..cf2b2f6
--- /dev/null
+++ b/Code/BasicFilters/json/NeighborhoodConnectedImageFilter.json
@@ -0,0 +1,117 @@
+{
+  "name" : "NeighborhoodConnectedImageFilter",
+  "template_code_filename" : "RegionGrowingImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "template_type" : "RegionGrowing",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_pixel_type" : "uint8_t",
+  "members" : [
+    {
+      "name" : "Lower",
+      "type" : "double",
+      "default" : 0,
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the lower threshold. The default is 0.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the lower threshold. The default is 0."
+    },
+    {
+      "name" : "Upper",
+      "type" : "double",
+      "default" : 1,
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the upper threshold. The default is the largest possible value for the InputPixelType.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the upper threshold. The default is the largest possible value for the InputPixelType."
+    },
+    {
+      "name" : "Radius",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 1)",
+      "doc" : "Radius of the neighborhood used to compute the median",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "itk_type" : "typename InputImageType::SizeType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the radius of the neighborhood used for a mask.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the radius of the neighborhood used to compute the median"
+    },
+    {
+      "name" : "ReplaceValue",
+      "type" : "double",
+      "default" : 1,
+      "pixeltype" : "Output",
+      "doc" : "Pixels that lie within Lower and Upper (inclusive)\n       will be replaced with this value. The default is 1.",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get value to replace thresholded pixels. Pixels that lie * within Lower and Upper (inclusive) will be replaced with this value. The default is 1.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get value to replace thresholded pixels. Pixels that lie * within Lower and Upper (inclusive) will be replaced with this value. The default is 1."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "2d",
+      "description" : "Run with 2d sample settings",
+      "md5hash" : "52670ac422db7416c4020c8fbd58c254",
+      "settings" : [
+        {
+          "parameter" : "SeedList",
+          "dim" : 2,
+          "value" : [
+            "{100,100}",
+            "{95,85}"
+          ],
+          "tcl_value" : [
+            "100 100",
+            "95 85"
+          ],
+          "python_value" : [
+            "[100,100]",
+            "[95,85]"
+          ],
+          "ruby_value" : [
+            "[100,100]",
+            "[95,85]"
+          ],
+          "R_value" : [
+            "c(100,100)",
+            "c(95,85)"
+          ]
+        },
+        {
+          "parameter" : "Upper",
+          "value" : 255
+        },
+        {
+          "parameter" : "Lower",
+          "value" : 150
+        },
+        {
+          "parameter" : "ReplaceValue",
+          "value" : 255
+        },
+        {
+          "parameter" : "Radius",
+          "dim_vec" : 1,
+          "type" : "unsigned int",
+          "value" : [
+            5,
+            5
+          ]
+        }
+      ],
+      "inputs" : [
+        "Input/STAPLE1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Label pixels that are connected to a seed and lie within a neighborhood.",
+  "detaileddescription" : "NeighborhoodConnectedImageFilter labels pixels with ReplaceValue that are connected to an initial Seed AND whose neighbors all lie within a Lower and Upper threshold range.",
+  "itk_module" : "ITKRegionGrowing",
+  "itk_group" : "RegionGrowing"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/NoiseImageFilter.json b/Code/BasicFilters/json/NoiseImageFilter.json
new file mode 100644
index 0000000..24a3440
--- /dev/null
+++ b/Code/BasicFilters/json/NoiseImageFilter.json
@@ -0,0 +1,74 @@
+{
+  "name" : "NoiseImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Radius",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 1)",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "doc" : "",
+      "itk_type" : "typename FilterType::RadiusType"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Test MeanImageFilter with default parametrs",
+      "md5hash" : "76b7e9b810eb9396b7bb636b4f8b5d23",
+      "settings" : [],
+      "inputs" : [
+        "Input/VM1111Shrink-RGBFloat.nrrd"
+      ]
+    },
+    {
+      "tag" : "by23",
+      "description" : "Test by 23",
+      "md5hash" : "4d05e86ba6a96eeaf6217e317c85dbfa",
+      "settings" : [
+        {
+          "parameter" : "Radius",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            2,
+            3
+          ]
+        }
+      ],
+      "inputs" : [
+        "Input/VM1111Shrink-RGB.png"
+      ]
+    },
+    {
+      "tag" : "by333",
+      "description" : "Test by 333",
+      "md5hash" : "fc4975287b204ba91dd4d85523b91a06",
+      "settings" : [
+        {
+          "parameter" : "Radius",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            3,
+            3,
+            3
+          ]
+        }
+      ],
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Calculate the local noise in an image.",
+  "detaileddescription" : "Computes an image where a given pixel is the standard deviation of the pixels in a neighborhood about the corresponding input pixel. This serves as an estimate of the local noise (or texture) in an image. Currently, this noise estimate assume a piecewise constant image. This filter should be extended to fitting a (hyper) plane to the neighborhood and calculating the standard deviation of the residuals to this (hyper) plane.\n\n\\see Image \n\n\\see Neighborhood [...]
+  "itk_module" : "ITKImageFilterBase",
+  "itk_group" : "ImageFilterBase"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/NormalizeImageFilter.json b/Code/BasicFilters/json/NormalizeImageFilter.json
new file mode 100644
index 0000000..4c5165a
--- /dev/null
+++ b/Code/BasicFilters/json/NormalizeImageFilter.json
@@ -0,0 +1,35 @@
+{
+  "name" : "NormalizeImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "output_pixel_type" : "typename itk::NumericTraits<typename InputImageType::PixelType>::RealType",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : "0.0001",
+      "inputs" : [
+        "Input/Ramp-Up-Short.nrrd"
+      ]
+    },
+    {
+      "tag" : "vector",
+      "description" : "Simply run with default settings for a vector image",
+      "settings" : [],
+      "tolerance" : "0.0001",
+      "inputs" : [
+        "Input/VM1111Shrink-RGB.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Normalize an image by setting its mean to zero and variance to one.",
+  "detaileddescription" : "NormalizeImageFilter shifts and scales an image so that the pixels in the image have a zero mean and unit variance. This filter uses StatisticsImageFilter to compute the mean and variance of the input and then applies ShiftScaleImageFilter to shift and scale the pixels.\n\nNB: since this filter normalizes the data to lie within -1 to 1, integral types will produce an image that DOES NOT HAVE a unit variance.\n\n\\see NormalizeToConstantImageFilter \n\n\\par Wik [...]
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/NormalizeToConstantImageFilter.json b/Code/BasicFilters/json/NormalizeToConstantImageFilter.json
new file mode 100644
index 0000000..6d7d069
--- /dev/null
+++ b/Code/BasicFilters/json/NormalizeToConstantImageFilter.json
@@ -0,0 +1,50 @@
+{
+  "name" : "NormalizeToConstantImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "output_pixel_type" : "typename itk::NumericTraits<typename InputImageType::PixelType>::RealType",
+  "members" : [
+    {
+      "name" : "Constant",
+      "type" : "double",
+      "default" : "1.0",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/get the normalization constant.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/get the normalization constant."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : "0.0001",
+      "inputs" : [
+        "Input/Ramp-Up-Short.nrrd"
+      ]
+    },
+    {
+      "tag" : "vector",
+      "description" : "Running with vector image to normalize to 0",
+      "settings" : [
+        {
+          "parameter" : "Constant",
+          "value" : "0.0"
+        }
+      ],
+      "tolerance" : "0.0001",
+      "inputs" : [
+        "Input/VM1111Shrink-RGB.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Scales image pixel intensities to make the sum of all pixels equal a user-defined constant.",
+  "detaileddescription" : "The default value of the constant is 1. It can be changed with SetConstant() .\n\nThis transform is especially useful for normalizing a convolution kernel.\n\nThis code was contributed in the Insight Journal paper: \"FFT based\nconvolution\" by Lehmann G. https://hdl.handle.net/10380/3154 \n\n\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\n\\see NormalizeImageFilter \n\n\\see StatisticsImageFilter \n\n [...]
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/NormalizedCorrelationImageFilter.json b/Code/BasicFilters/json/NormalizedCorrelationImageFilter.json
new file mode 100644
index 0000000..318754e
--- /dev/null
+++ b/Code/BasicFilters/json/NormalizedCorrelationImageFilter.json
@@ -0,0 +1,57 @@
+{
+  "name" : "NormalizedCorrelationImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 0,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "include_files" : [
+    "sitkImageToKernel.hxx"
+  ],
+  "inputs" : [
+    {
+      "name" : "Image",
+      "type" : "Image"
+    },
+    {
+      "name" : "MaskImage",
+      "type" : "Image"
+    },
+    {
+      "name" : "TemplateImage",
+      "type" : "Image",
+      "no_size_check" : 0,
+      "custom_itk_cast" : "filter->SetTemplate( *CreateOperatorFromImage( this->CastImageToITK<typename FilterType::InputImageType>(*inTemplateImage).GetPointer() ).get() );"
+    }
+  ],
+  "output_pixel_type" : "typename itk::NumericTraits<typename InputImageType::PixelType>::RealType",
+  "filter_type" : "itk::NormalizedCorrelationImageFilter<InputImageType, InputImageType, OutputImageType, typename InputImageType::PixelType >",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Basic xcorr with and odd kernel",
+      "settings" : [],
+      "tolerance" : "0.0001",
+      "inputs" : [
+        "Input/cthead1-Float.mha",
+        "Input/cthead1-Float.mha",
+        "Input/Gaussian_1.5.nrrd"
+      ]
+    },
+    {
+      "tag" : "EvenKernel",
+      "description" : "Basic xcorr with an even kernel",
+      "settings" : [],
+      "tolerance" : "0.0001",
+      "inputs" : [
+        "Input/cthead1-Float.mha",
+        "Input/cthead1-Float.mha",
+        "Input/DeconvolutionKernel.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the normalized correlation of an image and a template.",
+  "detaileddescription" : "This filter calculates the normalized correlation between an image and the template. Normalized correlation is frequently use in feature detection because it is invariant to local changes in contrast.\n\nThe filter can be given a mask. When presented with an input image and a mask, the normalized correlation is only calculated at those pixels under the mask.\n\n\\see Image \n\n\\see Neighborhood \n\n\\see NeighborhoodOperator \n\n\\see NeighborhoodIterator \n\n [...]
+  "itk_module" : "ITKConvolution",
+  "itk_group" : "Convolution"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/NotEqualImageFilter.json b/Code/BasicFilters/json/NotEqualImageFilter.json
new file mode 100644
index 0000000..22d9c98
--- /dev/null
+++ b/Code/BasicFilters/json/NotEqualImageFilter.json
@@ -0,0 +1,53 @@
+{
+  "name" : "NotEqualImageFilter",
+  "itk_name" : "BinaryFunctorImageFilter",
+  "template_code_filename" : "BinaryFunctorFilter",
+  "template_test_filename" : "ImageFilter",
+  "constant_type" : "double",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_pixel_type" : "uint8_t",
+  "filter_type" : "itk::BinaryFunctorImageFilter<InputImageType,InputImageType2,OutputImageType, itk::Functor::NotEqual< typename InputImageType::PixelType, typename InputImageType2::PixelType, typename OutputImageType::PixelType> >",
+  "include_files" : [
+    "itkLogicOpsFunctors.h"
+  ],
+  "members" : [
+    {
+      "name" : "BackgroundValue",
+      "type" : "uint8_t",
+      "default" : "0u",
+      "custom_itk_cast" : "filter->GetFunctor().SetBackgroundValue( static_cast<typename OutputImageType::PixelType>( this->m_BackgroundValue ) );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value used to mark the false pixels of the operator.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value used to mark the false pixels of the operator.\n"
+    },
+    {
+      "name" : "ForegroundValue",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "custom_itk_cast" : "filter->GetFunctor().SetForegroundValue( static_cast<typename OutputImageType::PixelType>( this->m_ForegroundValue ) );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value used to mark the true pixels of the operator.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value used to mark the true pixels of the operator.\n"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "same images",
+      "settings" : [],
+      "md5hash" : "fcd6bcb56c1689fcef28b57c22475bad",
+      "inputs" : [
+        "Input/cthead1.png",
+        "Input/cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Implements pixel-wise generic operation of two images, or of an image and a constant.",
+  "detaileddescription" : "This class is parameterized over the types of the two input images and the type of the output image. It is also parameterized by the operation to be applied. A Functor style is used.\n\nThe constant must be of the same type than the pixel type of the corresponding image. It is wrapped in a SimpleDataObjectDecorator so it can be updated through the pipeline. The SetConstant() and GetConstant() methods are provided as shortcuts to set or get the constant value wi [...]
+  "itk_module" : "ITKImageFilterBase",
+  "itk_group" : "ImageFilterBase"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/NotImageFilter.json b/Code/BasicFilters/json/NotImageFilter.json
new file mode 100644
index 0000000..bae1ed5
--- /dev/null
+++ b/Code/BasicFilters/json/NotImageFilter.json
@@ -0,0 +1,24 @@
+{
+  "name" : "NotImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "md5hash" : "2004dccdb2d68b953fd858a5b6a37d35",
+      "inputs" : [
+        "Input/STAPLE1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Implements the NOT logical operator pixel-wise on an image.",
+  "detaileddescription" : "This class is templated over the type of an input image and the type of the output image. Numeric conversions (castings) are done by the C++ defaults.\n\nSince the logical NOT operation operates only on boolean types, the input type must be implicitly convertible to bool, which is only defined in C++ for integer types, the images passed to this filter must comply with the requirement of using integer pixel type.\n\nThe total operation over one pixel will be\n\n [...]
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/OpeningByReconstructionImageFilter.json b/Code/BasicFilters/json/OpeningByReconstructionImageFilter.json
new file mode 100644
index 0000000..8e2a8a1
--- /dev/null
+++ b/Code/BasicFilters/json/OpeningByReconstructionImageFilter.json
@@ -0,0 +1,63 @@
+{
+  "name" : "OpeningByReconstructionImageFilter",
+  "template_code_filename" : "KernelImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn."
+    },
+    {
+      "name" : "PreserveIntensities",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the original intensities of the image retained for those pixels unaffected by the opening by reconstrcution. If Off, the output pixel contrast will be reduced.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the original intensities of the image retained for those pixels unaffected by the opening by reconstrcution. If Off, the output pixel contrast will be reduced."
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "OpeningByReconstruction",
+      "description" : "Test grayscale opening by reconstruction",
+      "md5hash" : "095f00a68a84df4396914fa758f34dcc",
+      "settings" : [
+        {
+          "parameter" : "KernelRadius",
+          "no_get_method" : 1,
+          "value" : 1
+        },
+        {
+          "parameter" : "KernelType",
+          "value" : "itk::simple::sitkBall",
+          "lua_value" : "SimpleITK.sitkBall",
+          "python_value" : "SimpleITK.sitkBall",
+          "ruby_value" : "Simpleitk::SitkBall",
+          "java_value" : "KernelEnum.sitkBall",
+          "tcl_value" : "$$sitkBall",
+          "csharp_value" : "KernelEnum.sitkBall",
+          "R_value" : "'sitkBall'"
+        }
+      ],
+      "inputs" : [
+        "Input/STAPLE1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Opening by reconstruction of an image.",
+  "detaileddescription" : "This filter preserves regions, in the foreground, that can completely contain the structuring element. At the same time, this filter eliminates all other regions of foreground pixels. Contrary to the mophological opening, the opening by reconstruction preserves the shape of the components that are not removed by erosion. The opening by reconstruction of an image \"f\" is defined as:\n\nOpeningByReconstruction(f) = DilationByRecontruction(f, Erosion(f)).\n\nOpen [...]
+  "itk_module" : "ITKMathematicalMorphology",
+  "itk_group" : "MathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/OrImageFilter.json b/Code/BasicFilters/json/OrImageFilter.json
new file mode 100644
index 0000000..7a01c19
--- /dev/null
+++ b/Code/BasicFilters/json/OrImageFilter.json
@@ -0,0 +1,26 @@
+{
+  "name" : "OrImageFilter",
+  "template_code_filename" : "BinaryFunctorFilter",
+  "template_test_filename" : "ImageFilter",
+  "constant_type" : "int",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "md5hash" : "5cd4b5af0cdc5935e8ee76a9b5e39669",
+      "inputs" : [
+        "Input/STAPLE1.png",
+        "Input/STAPLE2.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Implements the OR bitwise operator pixel-wise between two images.",
+  "detaileddescription" : "This class is templated over the types of the two input images and the type of the output image. Numeric conversions (castings) are done by the C++ defaults.\n\nSince the bitwise OR operation is only defined in C++ for integer types, the images passed to this filter must comply with the requirement of using integer pixel type.\n\nThe total operation over one pixel will be\n\n\\code\n* output_pixel = static_cast<OutputPixelType>( input1_pixel | input2_pixel )\n\ [...]
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/OtsuMultipleThresholdsImageFilter.json b/Code/BasicFilters/json/OtsuMultipleThresholdsImageFilter.json
new file mode 100644
index 0000000..5bd5573
--- /dev/null
+++ b/Code/BasicFilters/json/OtsuMultipleThresholdsImageFilter.json
@@ -0,0 +1,130 @@
+{
+  "name" : "OtsuMultipleThresholdsImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_pixel_type" : "uint8_t",
+  "members" : [
+    {
+      "name" : "NumberOfThresholds",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the number of thresholds. Default is 1.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the number of thresholds. Default is 1."
+    },
+    {
+      "name" : "LabelOffset",
+      "type" : "uint8_t",
+      "default" : "0u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the offset which labels have to start from. Default is 0.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the offset which labels have to start from. Default is 0."
+    },
+    {
+      "name" : "NumberOfHistogramBins",
+      "type" : "uint32_t",
+      "default" : "128u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the number of histogram bins. Default is 128.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the number of histogram bins. Default is 128."
+    },
+    {
+      "name" : "ValleyEmphasis",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the use of valley emphasis. Default is false.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the use of valley emphasis. Default is false."
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "Thresholds",
+      "type" : "std::vector<double>",
+      "default" : "std::vector<double>()",
+      "custom_itk_cast" : "this->m_Thresholds = std::vector<double>( filter->GetThresholds().begin(), filter->GetThresholds().end() );",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the computed threshold."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "94d62a813f969dadf22b7e3ae0b20178",
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    },
+    {
+      "tag" : "two_on_float",
+      "description" : "Default parameter settings",
+      "settings" : [
+        {
+          "parameter" : "NumberOfThresholds",
+          "value" : 2,
+          "java_value" : "(short) 2"
+        }
+      ],
+      "md5hash" : "1ab20d3cd9a354b45ac07ec59c0413b3",
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "three_on",
+      "description" : "Default parameter settings",
+      "settings" : [
+        {
+          "parameter" : "NumberOfThresholds",
+          "value" : "3",
+          "java_value" : "(short) 3"
+        },
+        {
+          "parameter" : "NumberOfHistogramBins",
+          "cxx_value" : "256u",
+          "value" : "256"
+        }
+      ],
+      "md5hash" : "b61c3f4e063fcdd24dba76227129ae34",
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    },
+    {
+      "tag" : "valley_emphasis",
+      "description" : "Default parameter settings",
+      "settings" : [
+        {
+          "parameter" : "NumberOfThresholds",
+          "value" : "3",
+          "java_value" : "(short) 3"
+        },
+        {
+          "parameter" : "ValleyEmphasis",
+          "value" : "true",
+          "python_value" : "True",
+          "R_value" : "TRUE"
+        }
+      ],
+      "md5hash" : "fb65e730472c8001185f355fb626ca3f",
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Threshold an image using multiple Otsu Thresholds.",
+  "detaileddescription" : "This filter creates a labeled image that separates the input image into various classes. The filter computes the thresholds using the OtsuMultipleThresholdsCalculator and applies those thresholds to the input image using the ThresholdLabelerImageFilter . The NumberOfHistogramBins and NumberOfThresholds can be set for the Calculator. The LabelOffset can be set for the ThresholdLabelerImageFilter .\n\nThis filter also includes an option to use the valley emphasis [...]
+  "itk_module" : "ITKThresholding",
+  "itk_group" : "Thresholding"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/OtsuThresholdImageFilter.json b/Code/BasicFilters/json/OtsuThresholdImageFilter.json
new file mode 100644
index 0000000..af1b395
--- /dev/null
+++ b/Code/BasicFilters/json/OtsuThresholdImageFilter.json
@@ -0,0 +1,155 @@
+{
+  "name" : "OtsuThresholdImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "Docs",
+  "number_of_inputs" : 0,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_image_type" : "itk::Image< uint8_t, TImageType::ImageDimension>",
+  "filter_type" : "itk::OtsuThresholdImageFilter< TImageType, OutputImageType, OutputImageType >",
+  "inputs" : [
+    {
+      "name" : "Image",
+      "type" : "Image"
+    },
+    {
+      "name" : "MaskImage",
+      "type" : "Image",
+      "optional" : true
+    }
+  ],
+  "members" : [
+    {
+      "name" : "InsideValue",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the \"inside\" pixel value. The default value NumericTraits<OutputPixelType>::max()\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"inside\" pixel value.\n"
+    },
+    {
+      "name" : "OutsideValue",
+      "type" : "uint8_t",
+      "default" : "0u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"outside\" pixel value.\n"
+    },
+    {
+      "name" : "NumberOfHistogramBins",
+      "type" : "uint32_t",
+      "default" : "128u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the number of histogram bins. Defaults is 128.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MaskOutput",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Do you want the output to be masked by the mask used in histogram construction. Only relevant if masking is in use.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MaskValue",
+      "type" : "uint8_t",
+      "default" : "255u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "The value in the mask image, if used, indicating voxels that should be included. Default is the max of pixel type, as in the MaskedImageToHistogramFilter",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "Threshold",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "Get the computed threshold."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "ddf5ed860d650763c54f36628bd9fa35",
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 27602.0
+        }
+      ]
+    },
+    {
+      "tag" : "cthead1_with_mask",
+      "description" : "CT Head with mask",
+      "settings" : [],
+      "md5hash" : "65b36b85ce17ca4458c30a51eada3d47",
+      "inputs" : [
+        "Input/cthead1.png",
+        "Input/cthead1-mask.png"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 186.0
+        }
+      ]
+    },
+    {
+      "tag" : "cthead1_with_unmask",
+      "description" : "CT Head with unmask",
+      "settings" : [
+        {
+          "parameter" : "MaskOutput",
+          "value" : "false",
+          "python_value" : "False",
+          "R_value" : "FALSE"
+        }
+      ],
+      "md5hash" : "bfaba8593ac8ace80316c9e17f378f08",
+      "inputs" : [
+        "Input/cthead1.png",
+        "Input/cthead1-mask.png"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 186.0
+        }
+      ]
+    },
+    {
+      "tag" : "default_on_float",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "fcd8ca1be3f4d7561f81e06b3c570af0",
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 0.496117,
+          "tolerance" : 1e-05
+        }
+      ]
+    }
+  ],
+  "briefdescription" : "Threshold an image using the Otsu Threshold.",
+  "detaileddescription" : "This filter creates a binary thresholded image that separates an image into foreground and background components. The filter computes the threshold using the OtsuThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .\n\n\\author Richard Beare \n\nGaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\nThis implementation was taken from the Insight Journal paper: https:/ [...]
+  "itk_module" : "ITKThresholding",
+  "itk_group" : "Thresholding"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/PasteImageFilter.json b/Code/BasicFilters/json/PasteImageFilter.json
new file mode 100644
index 0000000..2577773
--- /dev/null
+++ b/Code/BasicFilters/json/PasteImageFilter.json
@@ -0,0 +1,121 @@
+{
+  "name" : "PasteImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 2,
+  "doc" : "",
+  "pixel_types" : "NonLabelPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "SourceSize",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 1)",
+      "dim_vec" : 1,
+      "itk_type" : "typename InputImageType::SizeType",
+      "custom_itk_cast" : ""
+    },
+    {
+      "name" : "SourceIndex",
+      "type" : "int",
+      "default" : "std::vector<int>(3, 0)",
+      "dim_vec" : 1,
+      "itk_type" : "typename InputImageType::IndexType",
+      "custom_itk_cast" : " typename InputImageType::RegionType itkRegion;\n  for( unsigned int i = 0; i < inImage1.GetDimension(); ++i )\n    {\n    itkRegion.SetIndex( i, m_SourceIndex[i] );\n    itkRegion.SetSize( i, m_SourceSize[i] );\n    }\n  filter->SetSourceRegion( itkRegion );"
+    },
+    {
+      "name" : "DestinationIndex",
+      "type" : "int",
+      "default" : "std::vector<int>(3, 0)",
+      "dim_vec" : 1,
+      "itk_type" : "typename InputImageType::IndexType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the destination index (where in the first input the second input will be pasted.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the destination index (where in the first input the second input will be pasted."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "use the defaults on a 2D rgb image",
+      "md5hash" : "096471143edf7ce5903613fb58ed77c8",
+      "settings" : [
+        {
+          "parameter" : "SourceSize",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            200,
+            150
+          ]
+        }
+      ],
+      "inputs" : [
+        "Input/BlackDots.png",
+        "Input/SmallWhiteCircle.nrrd"
+      ]
+    },
+    {
+      "tag" : "defaults_rgb",
+      "description" : "use the defaults on a 2D rgb image",
+      "md5hash" : "0a2187d07bbb19c84836a78a6e0ba16c",
+      "settings" : [
+        {
+          "parameter" : "SourceSize",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            179,
+            240
+          ]
+        }
+      ],
+      "inputs" : [
+        "Input/VM1111Shrink-RGB.png",
+        "Input/fruit.png"
+      ]
+    },
+    {
+      "tag" : "set_parameters",
+      "description" : "Set a ROI paste region",
+      "md5hash" : "b8858dd3926df1e23dc06157b4decd82",
+      "settings" : [
+        {
+          "parameter" : "SourceSize",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            20,
+            15
+          ]
+        },
+        {
+          "parameter" : "SourceIndex",
+          "type" : "int",
+          "dim_vec" : 1,
+          "value" : [
+            100,
+            100
+          ]
+        },
+        {
+          "parameter" : "DestinationIndex",
+          "type" : "int",
+          "dim_vec" : 1,
+          "value" : [
+            100,
+            100
+          ]
+        }
+      ],
+      "inputs" : [
+        "Input/BlackDots.png",
+        "Input/SmallWhiteCircle.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Paste an image into another image.",
+  "detaileddescription" : "PasteImageFilter allows you to take a section of one image and paste into another image. The SetDestinationIndex() method prescribes where in the first input to start pasting data from the second input. The SetSourceRegion method prescribes the section of the second image to paste into the first. If the output requested region does not include the SourceRegion after it has been repositioned to DestinationIndex, then the output will just be a copy of the input.\ [...]
+  "itk_module" : "ITKImageGrid",
+  "itk_group" : "ImageGrid"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/PatchBasedDenoisingImageFilter.json b/Code/BasicFilters/json/PatchBasedDenoisingImageFilter.json
new file mode 100644
index 0000000..8fc09fc
--- /dev/null
+++ b/Code/BasicFilters/json/PatchBasedDenoisingImageFilter.json
@@ -0,0 +1,156 @@
+{
+  "name" : "PatchBasedDenoisingImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "no_procedure" : "1",
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "include_files" : [
+    "itkGaussianRandomSpatialNeighborSubsampler.h"
+  ],
+  "custom_set_input" : "filter->SetInput( image1 );\n  typedef itk::Statistics::GaussianRandomSpatialNeighborSubsampler< typename FilterType::PatchSampleType, typename InputImageType::RegionType> SamplerType;\n  typename SamplerType::Pointer sampler = SamplerType::New();\n  sampler->SetVariance(m_SampleVariance);\n  sampler->SetRadius(itk::Math::Floor<unsigned int>(std::sqrt(m_SampleVariance)*2.5));\n  sampler->SetNumberOfResultsRequested(m_NumberOfSamplePatches);\n  filter->SetSampler(s [...]
+  "members" : [
+    {
+      "name" : "KernelBandwidthSigma",
+      "type" : "double",
+      "default" : "400.0",
+      "doc" : "KernelBandwidthSigma",
+      "custom_itk_cast" : "typename FilterType::RealArrayType a(image1->GetNumberOfComponentsPerPixel());\n  a.Fill(m_KernelBandwidthSigma);\n  filter->SetKernelBandwidthSigma(a);",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get initial kernel bandwidth estimate. To prevent the class from automatically modifying this estimate, set KernelBandwidthEstimation to false in the base class.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get initial kernel bandwidth estimate. To prevent the class from automatically modifying this estimate, set KernelBandwidthEstimation to false in the base class."
+    },
+    {
+      "name" : "PatchRadius",
+      "type" : "uint32_t",
+      "default" : "4u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the patch radius specified in physical coordinates. Patch radius is preferably set to an even number. Currently, only isotropic patches in physical space are allowed; patches can be anisotropic in voxel space.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the patch radius specified in physical coordinates. Patch radius is preferably set to an even number. Currently, only isotropic patches in physical space are allowed; patches can be anisotropic in voxel space.\n"
+    },
+    {
+      "name" : "NumberOfIterations",
+      "type" : "uint32_t",
+      "default" : "1u",
+      "doc" : "Number of iterations to run",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the number of denoising iterations to perform. Must be a positive integer. Defaults to 1.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the number of denoising iterations to perform. Must be a positive integer. Defaults to 1.\n"
+    },
+    {
+      "name" : "NumberOfSamplePatches",
+      "type" : "uint32_t",
+      "default" : "200u",
+      "custom_itk_cast" : "",
+      "detaileddescriptionSet" : "Set/Get the number of patches to sample for each pixel.\n"
+    },
+    {
+      "name" : "SampleVariance",
+      "type" : "double",
+      "default" : "400.0",
+      "custom_itk_cast" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the variance of the domain where patches are sampled.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the variance of the domain where patches are sampled.\n"
+    },
+    {
+      "enum" : [
+        "NOMODEL",
+        "GAUSSIAN",
+        "RICIAN",
+        "POISSON"
+      ],
+      "name" : "NoiseModel",
+      "default" : "itk::simple::PatchBasedDenoisingImageFilter::NOMODEL",
+      "itk_type" : "typename FilterType::NoiseModelType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the noise model type. Defaults to GAUSSIAN. To use the noise model during denoising, FidelityWeight must be positive.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the noise model type. Defaults to GAUSSIAN. To use the noise model during denoising, FidelityWeight must be positive.\n"
+    },
+    {
+      "name" : "NoiseSigma",
+      "type" : "double",
+      "default" : "0.0",
+      "custom_itk_cast" : "if (this->m_NoiseSigma != 0.0) filter->SetNoiseSigma(this->m_NoiseSigma);",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the noise sigma. Used by the noise model where appropriate, defaults to 5% of the image intensity range",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "NoiseModelFidelityWeight",
+      "type" : "double",
+      "default" : "0.0",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the weight on the fidelity term (penalizes deviations from the noisy data). This option is used when a noise model is specified. This weight controls the balance between the smoothing and the closeness to the noisy data.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the weight on the fidelity term (penalizes deviations from the noisy data). This option is used when a noise model is specified. This weight controls the balance between the smoothing and the closeness to the noisy data.\n"
+    },
+    {
+      "name" : "AlwaysTreatComponentsAsEuclidean",
+      "type" : "bool",
+      "default" : "false",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get flag indicating whether all components should always be treated as if they are in euclidean space regardless of pixel type. Defaults to false.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get flag indicating whether all components should always be treated as if they are in euclidean space regardless of pixel type. Defaults to false.\n"
+    },
+    {
+      "name" : "KernelBandwidthEstimation",
+      "type" : "bool",
+      "default" : "false",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get flag indicating whether kernel-bandwidth should be estimated automatically from the image data. Defaults to true.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get flag indicating whether kernel-bandwidth should be estimated automatically from the image data. Defaults to true.\n"
+    },
+    {
+      "name" : "KernelBandwidthMultiplicationFactor",
+      "type" : "double",
+      "default" : "1.0",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the kernel bandwidth sigma multiplication factor used to modify the automatically-estimated kernel bandwidth sigma. At times, it may be desirable to modify the value of the automatically-estimated sigma. Typically, this number isn't very far from 1. Note: This is used only when KernelBandwidthEstimation is True/On.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the kernel bandwidth sigma multiplication factor used to modify the automatically-estimated kernel bandwidth sigma. At times, it may be desirable to modify the value of the automatically-estimated sigma. Typically, this number isn't very far from 1. Note: This is used only when KernelBandwidthEstimation is True/On."
+    },
+    {
+      "name" : "KernelBandwidthUpdateFrequency",
+      "type" : "uint32_t",
+      "default" : "3u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the update frequency for the kernel bandwidth estimation. An optimal bandwidth will be re-estimated based on the denoised image after every 'n' iterations. Must be a positive integer. Defaults to 3, i.e. bandwidth updated after every 3 denoising iteration.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the update frequency for the kernel bandwidth estimation. An optimal bandwidth will be re-estimated based on the denoised image after every 'n' iterations. Must be a positive integer. Defaults to 3, i.e. bandwidth updated after every 3 denoising iteration.\n"
+    },
+    {
+      "name" : "KernelBandwidthFractionPixelsForEstimation",
+      "type" : "double",
+      "default" : "0.2",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the fraction of the image to use for kernel bandwidth sigma estimation. To reduce the computational burden for computing sigma, a small random fraction of the image pixels can be used.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the fraction of the image to use for kernel bandwidth sigma estimation. To reduce the computational burden for computing sigma, a small random fraction of the image pixels can be used."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0.9,
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Derived class implementing a specific patch-based denoising algorithm, as detailed below.",
+  "detaileddescription" : "This class is derived from the base class PatchBasedDenoisingBaseImageFilter ; please refer to the documentation of the base class first. This class implements a denoising filter that uses iterative non-local, or semi-local, weighted averaging of image patches for image denoising. The intensity at each pixel 'p' gets updated as a weighted average of intensities of a chosen subset of pixels from the image.\n\nThis class implements the denoising algorithm using a [...]
+  "itk_module" : "ITKDenoising",
+  "itk_group" : "Denoising"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/PermuteAxesImageFilter.json b/Code/BasicFilters/json/PermuteAxesImageFilter.json
new file mode 100644
index 0000000..258ebc5
--- /dev/null
+++ b/Code/BasicFilters/json/PermuteAxesImageFilter.json
@@ -0,0 +1,81 @@
+{
+  "name" : "PermuteAxesImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "NonLabelPixelIDTypeList",
+  "filter_type" : "itk::PermuteAxesImageFilter< InputImageType >",
+  "public_declarations" : "static const unsigned int DefaultOrder[3];",
+  "include_files" : [
+    "sitkPermuteAxis_Static.hxx"
+  ],
+  "members" : [
+    {
+      "name" : "Order",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(&itk::simple::PermuteAxesImageFilter::DefaultOrder[0], &itk::simple::PermuteAxesImageFilter::DefaultOrder[3])",
+      "doc" : "",
+      "dim_vec" : 1,
+      "itk_type" : "typename FilterType::PermuteOrderArrayType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the permutation order. The elements of order must be a rearrangement of the numbers from 0 to ImageDimension - 1.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the permutation order."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Test PermiteAxes with default",
+      "md5hash" : "a963bd6a755b853103a2d195e01a50d3",
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    },
+    {
+      "tag" : "identity",
+      "description" : "Test PermiteAxes with identity",
+      "md5hash" : "a9a0207c759cb8d9e0507414992905d6",
+      "settings" : [
+        {
+          "parameter" : "Order",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            0,
+            1
+          ]
+        }
+      ],
+      "inputs" : [
+        "Input/RA-Slice-Short.png"
+      ]
+    },
+    {
+      "tag" : "more",
+      "description" : "Another test",
+      "md5hash" : "f6c4c8a6165e9f1d761114344eb05068",
+      "settings" : [
+        {
+          "parameter" : "Order",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            1,
+            2,
+            0
+          ]
+        }
+      ],
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Permutes the image axes according to a user specified order.",
+  "detaileddescription" : "PermuateAxesImageFilter permutes the image axes according to a user specified order. The permutation order is set via method SetOrder( order ) where the input is an array of ImageDimension number of unsigned int. The elements of the array must be a rearrangment of the numbers from 0 to ImageDimension - 1.\n\nThe i-th axis of the output image corresponds with the order[i]-th axis of the input image.\n\nThe output meta image information (LargestPossibleRegion, sp [...]
+  "itk_module" : "ITKImageGrid",
+  "itk_group" : "ImageGrid"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/PhysicalPointImageSource.json b/Code/BasicFilters/json/PhysicalPointImageSource.json
new file mode 100644
index 0000000..7aabb22
--- /dev/null
+++ b/Code/BasicFilters/json/PhysicalPointImageSource.json
@@ -0,0 +1,73 @@
+{
+  "name" : "PhysicalPointImageSource",
+  "template_code_filename" : "ImageSource",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "",
+  "number_of_inputs" : 0,
+  "pixel_types" : "VectorPixelIDTypeList",
+  "output_image_type" : "TImageType",
+  "filter_type" : "itk::PhysicalPointImageSource<OutputImageType>",
+  "members" : [
+    {
+      "name" : "OutputPixelType",
+      "type" : "PixelIDValueEnum",
+      "default" : "itk::simple::sitkVectorFloat32",
+      "custom_itk_cast" : ""
+    },
+    {
+      "name" : "Size",
+      "type" : "unsigned int",
+      "dim_vec" : 1,
+      "default" : "std::vector<unsigned int>(3, 64)",
+      "itk_type" : "typename FilterType::SizeType"
+    },
+    {
+      "name" : "Origin",
+      "type" : "double",
+      "dim_vec" : 1,
+      "default" : "std::vector<double>(3, 0.0)",
+      "itk_type" : "typename FilterType::PointType"
+    },
+    {
+      "name" : "Spacing",
+      "type" : "double",
+      "dim_vec" : 1,
+      "default" : "std::vector<double>(3, 1.0)",
+      "itk_type" : "typename FilterType::SpacingType"
+    },
+    {
+      "name" : "Direction",
+      "type" : "std::vector<double>",
+      "default" : "std::vector<double>()",
+      "doc" : "Passing a zero sized array, defaults to identiy matrix. The size of the array must exactly match the direction matrix for the dimension of the image.",
+      "custom_itk_cast" : "filter->SetDirection( sitkSTLToITKDirection<typename FilterType::DirectionType>( this->m_Direction ) );"
+    }
+  ],
+  "custom_methods" : [
+    {
+      "name" : "SetReferenceImage",
+      "doc" : "This methods sets the size, origin, spacing and direction to that of the provided image",
+      "return_type" : "void",
+      "parameters" : [
+        {
+          "type" : "const Image &",
+          "var_name" : "refImage"
+        }
+      ],
+      "body" : "this->SetSize( refImage.GetSize() ); this->SetOrigin( refImage.GetOrigin() ); this->SetSpacing( refImage.GetSpacing() );this->SetDirection( refImage.GetDirection() );"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "md5hash" : "d0857811f2d6f37882341c858000911d",
+      "inputs" : []
+    }
+  ],
+  "briefdescription" : "Generate an image of the physical locations of each pixel.",
+  "detaileddescription" : "This image source supports image which have a multi-component pixel equal to the image dimension, and variable length VectorImages. It is recommended that the component type be a real valued type.",
+  "itk_module" : "ITKImageSources",
+  "itk_group" : "ImageSources"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/PowImageFilter.json b/Code/BasicFilters/json/PowImageFilter.json
new file mode 100644
index 0000000..525bc0e
--- /dev/null
+++ b/Code/BasicFilters/json/PowImageFilter.json
@@ -0,0 +1,26 @@
+{
+  "name" : "PowImageFilter",
+  "template_code_filename" : "BinaryFunctorFilter",
+  "template_test_filename" : "ImageFilter",
+  "constant_type" : "double",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "typelist::Append<BasicPixelIDTypeList, ComplexPixelIDTypeList>::Type",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0.001,
+      "inputs" : [
+        "Input/RA-Float.nrrd",
+        "Input/RA-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the powers of 2 images.",
+  "detaileddescription" : "This class is templated over the types of the two input images and the type of the output image. Numeric conversions (castings) are done by the C++ defaults.\n\nThe output of the pow function will be cast to the pixel type of the output image.\n\nThe total operation over one pixel will be \\code\n* output_pixel = static_cast< TOutput >( std::pow(static_cast<RealType>(A),static_cast<RealType>(B)) );\n\n* \n\n\\endcode\n\nThe pow function can be applied to two im [...]
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ProjectedLandweberDeconvolutionImageFilter.json b/Code/BasicFilters/json/ProjectedLandweberDeconvolutionImageFilter.json
new file mode 100644
index 0000000..691adbb
--- /dev/null
+++ b/Code/BasicFilters/json/ProjectedLandweberDeconvolutionImageFilter.json
@@ -0,0 +1,84 @@
+{
+  "name" : "ProjectedLandweberDeconvolutionImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "include_files" : [
+    "sitkBoundaryConditions.hxx"
+  ],
+  "custom_set_input" : "filter->SetInput( image1 ); filter->SetKernelImage( image2 );",
+  "members" : [
+    {
+      "name" : "Alpha",
+      "type" : "double",
+      "default" : "0.1",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the relaxation factor.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the relaxation factor."
+    },
+    {
+      "name" : "NumberOfIterations",
+      "type" : "int",
+      "default" : "1",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the number of iterations.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the number of iterations."
+    },
+    {
+      "name" : "Normalize",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Normalize the output image by the sum of the kernel components\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "BoundaryCondition",
+      "enum" : [
+        "ZERO_PAD",
+        "ZERO_FLUX_NEUMANN_PAD",
+        "PERIODIC_PAD"
+      ],
+      "default" : "itk::simple::ProjectedLandweberDeconvolutionImageFilter::ZERO_FLUX_NEUMANN_PAD",
+      "custom_itk_cast" : "nsstd::auto_ptr< ImageBoundaryCondition< InputImageType > > bc( CreateNewBoundaryConditionInstance< Self, FilterType >( m_BoundaryCondition ) ); filter->SetBoundaryCondition( bc.get() );\n"
+    },
+    {
+      "name" : "OutputRegionMode",
+      "enum" : [
+        "SAME",
+        "VALID"
+      ],
+      "default" : "itk::simple::ProjectedLandweberDeconvolutionImageFilter::SAME",
+      "itk_type" : "typename FilterType::OutputRegionModeType"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Projected Landweber deconvolution of image blurred with a Gaussian kernel",
+      "settings" : [
+        {
+          "parameter" : "Normalize",
+          "value" : "true",
+          "python_value" : "True",
+          "R_value" : "TRUE"
+        }
+      ],
+      "tolerance" : "0.0001",
+      "inputs" : [
+        "Input/DeconvolutionInput.nrrd",
+        "Input/DeconvolutionKernel.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Deconvolve an image using the projected Landweber deconvolution algorithm.",
+  "detaileddescription" : "This filter performs the same calculation per iteration as the LandweberDeconvolutionImageFilter . However, at each iteration, negative pixels in the intermediate result are projected (set) to zero. This is useful if the solution is assumed to always be non-negative, which is the case when dealing with images formed by counting photons, for example.\n\nThis code was adapted from the Insight Journal contribution:\n\n\"Deconvolution: infrastructure and reference  [...]
+  "itk_module" : "ITKDeconvolution",
+  "itk_group" : "Deconvolution"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/RankImageFilter.json b/Code/BasicFilters/json/RankImageFilter.json
new file mode 100644
index 0000000..f377071
--- /dev/null
+++ b/Code/BasicFilters/json/RankImageFilter.json
@@ -0,0 +1,77 @@
+{
+  "name" : "RankImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Rank",
+      "type" : "double",
+      "default" : "0.5",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "Radius",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 1)",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "doc" : "",
+      "itk_type" : "typename FilterType::RadiusType"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "default",
+      "md5hash" : "022ee55a25b7fff9ac09a3cb64b31042",
+      "settings" : [],
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    },
+    {
+      "tag" : "by23",
+      "description" : "Test by 23",
+      "md5hash" : "b8a6f4f77a7df4b1e5d5dba0297945bb",
+      "settings" : [
+        {
+          "parameter" : "Rank",
+          "type" : "double",
+          "value" : "1.0"
+        },
+        {
+          "parameter" : "Radius",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            2,
+            3
+          ]
+        }
+      ],
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    },
+    {
+      "tag" : "Vector",
+      "description" : "Vector image",
+      "md5hash" : "7e1e22bd55e8048ae0a0d3296be973ca",
+      "settings" : [],
+      "inputs" : [
+        "Input/VM1111Shrink-RGBFloat.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Rank filter of a greyscale image.",
+  "detaileddescription" : "Nonlinear filter in which each output pixel is a user defined rank of input pixels in a user defined neighborhood. The default rank is 0.5 (median). The boundary conditions are different to the standard itkMedianImageFilter. In this filter the neighborhood is cropped at the boundary, and is therefore smaller.\n\nThis filter uses a recursive implementation - essentially the one by Huang 1979, I believe, to compute the rank, and is therefore usually a lot faster  [...]
+  "itk_module" : "ITKReview",
+  "itk_group" : "Review"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/RealAndImaginaryToComplexImageFilter.json b/Code/BasicFilters/json/RealAndImaginaryToComplexImageFilter.json
new file mode 100644
index 0000000..9e22277
--- /dev/null
+++ b/Code/BasicFilters/json/RealAndImaginaryToComplexImageFilter.json
@@ -0,0 +1,28 @@
+{
+  "name" : "RealAndImaginaryToComplexImageFilter",
+  "itk_name" : "ComposeImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "RealPixelIDTypeList",
+  "filter_type" : "itk::ComposeImageFilter<InputImageType, OutputImageType>",
+  "output_pixel_type" : "std::complex<typename InputImageType::PixelType>",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Test defaults",
+      "md5hash" : "1129328e636444d9df8000a1bdebddce",
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-Slice-Float.nrrd",
+        "Input/RA-Slice-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "ComposeImageFilter combine several scalar images into a multicomponent image.",
+  "detaileddescription" : "ComposeImageFilter combine several scalar images into an itk::Image of vector pixel (itk::Vector , itk::RGBPixel , ...), of std::complex pixel, or in an itk::VectorImage .\n\n\\par Inputs and Usage\n\\code\n* filter->SetInput( 0, image0 );\n\n* filter->SetInput( 1, image1 );\n\n* ...\n\n* filter->Update();\n\n* itk::VectorImage< PixelType, dimension >::Pointer = filter->GetOutput();\n\n* \n\n\\endcode\n All input images are expected to have the same template pa [...]
+  "itk_module" : "ITKImageCompose",
+  "itk_group" : "ImageCompose"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/RealToHalfHermitianForwardFFTImageFilter.json b/Code/BasicFilters/json/RealToHalfHermitianForwardFFTImageFilter.json
new file mode 100644
index 0000000..ef40635
--- /dev/null
+++ b/Code/BasicFilters/json/RealToHalfHermitianForwardFFTImageFilter.json
@@ -0,0 +1,25 @@
+{
+  "name" : "RealToHalfHermitianForwardFFTImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "RealPixelIDTypeList",
+  "filter_type" : "itk::RealToHalfHermitianForwardFFTImageFilter<InputImageType>",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Test real to half FFT",
+      "tolerance" : "0.11",
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-Slice-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Base class for specialized real-to-complex forward Fast Fourier Transform .",
+  "detaileddescription" : "This is a base class for the \"forward\" or \"direct\" discrete Fourier Transform . This is an abstract base class: the actual implementation is provided by the best child class available on the system when the object is created via the object factory system.\n\nThis class transforms a real input image into its complex Fourier transform. The Fourier transform of a real input image has Hermitian symmetry: \\f$ f(\\mathbf{x}) = f^*(-\\mathbf{x}) \\f$ . That is, w [...]
+  "itk_module" : "ITKFFT",
+  "itk_group" : "FFT"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ReconstructionByDilationImageFilter.json b/Code/BasicFilters/json/ReconstructionByDilationImageFilter.json
new file mode 100644
index 0000000..75762ad
--- /dev/null
+++ b/Code/BasicFilters/json/ReconstructionByDilationImageFilter.json
@@ -0,0 +1,39 @@
+{
+  "name" : "ReconstructionByDilationImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 2,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "filter_type" : "itk::ReconstructionByDilationImageFilter<InputImageType,OutputImageType>",
+  "members" : [
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : ""
+    },
+    {
+      "name" : "UseInternalCopy",
+      "type" : "bool",
+      "default" : "true"
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "basic",
+      "description" : "Test reconstruction by dilation",
+      "md5hash" : "14e37b9098df480dfe83775a94fdc2c3",
+      "settings" : [],
+      "inputs" : [
+        "Input/cthead1-seed.png",
+        "Input/2th_cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "grayscale reconstruction by dilation of an image",
+  "detaileddescription" : "Reconstruction by dilation operates on a \"marker\" image and a \"mask\" image, and is defined as the dilation of the marker image with respect to the mask image iterated until stability.\n\nThe marker image must be less than or equal to the mask image (on a pixel by pixel basis).\n\nGeodesic morphology is described in Chapter 6.2 of Pierre Soille's book \"Morphological Image Analysis: Principles and Applications\", Second Edition, Springer, 2003.\n\nAlgorithm  [...]
+  "itk_module" : "ITKMathematicalMorphology",
+  "itk_group" : "MathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ReconstructionByErosionImageFilter.json b/Code/BasicFilters/json/ReconstructionByErosionImageFilter.json
new file mode 100644
index 0000000..9a33a0d
--- /dev/null
+++ b/Code/BasicFilters/json/ReconstructionByErosionImageFilter.json
@@ -0,0 +1,39 @@
+{
+  "name" : "ReconstructionByErosionImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 2,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "filter_type" : "itk::ReconstructionByErosionImageFilter<InputImageType,OutputImageType>",
+  "members" : [
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : ""
+    },
+    {
+      "name" : "UseInternalCopy",
+      "type" : "bool",
+      "default" : "true"
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "basic",
+      "description" : "Test binary reconstruction by erosion",
+      "md5hash" : "9e52bcf554ad8e9c5391280a18f186f7",
+      "settings" : [],
+      "inputs" : [
+        "Input/2th_cthead1.png",
+        "Input/cthead1-seed.png"
+      ]
+    }
+  ],
+  "briefdescription" : "grayscale reconstruction by erosion of an image",
+  "detaileddescription" : "Reconstruction by erosion operates on a \"marker\" image and a \"mask\" image, and is defined as the erosion of the marker image with respect to the mask image iterated until stability.\n\nThe marker image must be less than or equal to the mask image (on a pixel by pixel basis).\n\nGeodesic morphology is described in Chapter 6.2 of Pierre Soille's book \"Morphological Image Analysis: Principles and Applications\", Second Edition, Springer, 2003.\n\nAlgorithm im [...]
+  "itk_module" : "ITKMathematicalMorphology",
+  "itk_group" : "MathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/RecursiveGaussianImageFilter.json b/Code/BasicFilters/json/RecursiveGaussianImageFilter.json
new file mode 100644
index 0000000..95b4140
--- /dev/null
+++ b/Code/BasicFilters/json/RecursiveGaussianImageFilter.json
@@ -0,0 +1,98 @@
+{
+  "name" : "RecursiveGaussianImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "",
+  "number_of_inputs" : 1,
+  "pixel_types" : "typelist::Append<BasicPixelIDTypeList, VectorPixelIDTypeList>::Type",
+  "output_image_type" : "typename InputImageType::template Rebind<float>::Type",
+  "members" : [
+    {
+      "name" : "Sigma",
+      "type" : "double",
+      "default" : "1.0",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the Sigma, measured in world coordinates, of the Gaussian kernel. The default is 1.0. An exception will be generated if the Sigma value is less than or equal to zero.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the Sigma, measured in world coordinates, of the Gaussian kernel. The default is 1.0. An exception will be generated if the Sigma value is less than or equal to zero."
+    },
+    {
+      "name" : "NormalizeAcrossScale",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the flag for normalizing the gaussian over scale-space.\n\nThis flag enables the analysis of the differential shape of features independent of their size ( both pixels and physical size ). Following the notation of Tony Lindeberg:\n\nLet \\f[ L(x; t) = g(x; t) \\ast f(x) \\f] be the scale-space representation of image \\f[ f(x) \\f] where \\f[ g(x; t) = \\frac{1}{ \\sqrt{ 2 \\pi t} } \\exp{ \\left( -\\frac{x^2}{ 2 t } \\right) } \\f] is the Gauss [...]
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "Order",
+      "enum" : [
+        "ZeroOrder",
+        "FirstOrder",
+        "SecondOrder"
+      ],
+      "default" : "itk::simple::RecursiveGaussianImageFilter::ZeroOrder",
+      "itk_type" : "typename FilterType::OrderEnumType",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the Order of the Gaussian to convolve with. \n\n\\li ZeroOrder is equivalent to convolving with a Gaussian. This is the default. \n\n\\li FirstOrder is equivalent to convolving with the first derivative of a Gaussian. \n\n\\li SecondOrder is equivalent to convolving with the second derivative of a Gaussian.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the Order of the Gaussian to convolve with. \n\n\\li ZeroOrder is equivalent to convolving with a Gaussian. This is the default. \n\n\\li FirstOrder is equivalent to convolving with the first derivative of a Gaussian. \n\n\\li SecondOrder is equivalent to convolving with the second derivative of a Gaussian."
+    },
+    {
+      "name" : "Direction",
+      "type" : "unsigned int",
+      "default" : "0u",
+      "doc" : ""
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0,
+      "md5hash" : null,
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "rgb_image",
+      "description" : "First derivative on a vector image",
+      "settings" : [
+        {
+          "parameter" : "Sigma",
+          "value" : "3.0"
+        },
+        {
+          "parameter" : "Direction",
+          "cxx_value" : "1u",
+          "value" : "1"
+        },
+        {
+          "parameter" : "Order",
+          "value" : "itk::simple::${name}::FirstOrder",
+          "lua_value" : "SimpleITK.${name}_FirstOrder",
+          "python_value" : "SimpleITK.${name}.FirstOrder",
+          "ruby_value" : "Simpleitk::${name}::FirstOrder",
+          "java_value" : "${name}.OrderType.FirstOrder",
+          "tcl_value" : "$$${name}_FirstOrder",
+          "csharp_value" : "${name}.OrderType.FirstOrder",
+          "R_value" : "'FirstOrder'"
+        }
+      ],
+      "tolerance" : 1e-10,
+      "inputs" : [
+        "Input/VM1111Shrink-RGB.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Base class for computing IIR convolution with an approximation of a Gaussian kernel.",
+  "detaileddescription" : "\\f[ \\frac{ 1 }{ \\sigma \\sqrt{ 2 \\pi } } \\exp{ \\left( - \\frac{x^2}{ 2 \\sigma^2 } \\right) } \\f] \n\nRecursiveGaussianImageFilter is the base class for recursive filters that approximate convolution with the Gaussian kernel. This class implements the recursive filtering method proposed by R.Deriche in IEEE-PAMI Vol.12, No.1, January 1990, pp 78-87, \"Fast Algorithms for Low-Level Vision\"\n\nDetails of the implementation are described in the technical r [...]
+  "itk_module" : "ITKSmoothing",
+  "itk_group" : "Smoothing"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/RegionOfInterestImageFilter.json b/Code/BasicFilters/json/RegionOfInterestImageFilter.json
new file mode 100644
index 0000000..cbdebeb
--- /dev/null
+++ b/Code/BasicFilters/json/RegionOfInterestImageFilter.json
@@ -0,0 +1,77 @@
+{
+  "name" : "RegionOfInterestImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "The RegionOfInterest filter extract an N-D image from an N-D image. If a 2-D image is desired then the Extract image filter should be used.",
+  "pixel_types" : "NonLabelPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Size",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 1)",
+      "dim_vec" : 1,
+      "itk_type" : "typename InputImageType::SizeType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "",
+      "custom_itk_cast" : ""
+    },
+    {
+      "name" : "Index",
+      "type" : "int",
+      "default" : "std::vector<int>(3, 0)",
+      "dim_vec" : 1,
+      "itk_type" : "typename InputImageType::IndexType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "\todo the internal setting of the method need work!!!",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "",
+      "custom_itk_cast" : " typename InputImageType::RegionType itkRegion;\n  for( unsigned int i = 0; i < inImage1.GetDimension(); ++i )\n    {\n    itkRegion.SetIndex( i, m_Index[i] );\n    itkRegion.SetSize( i, m_Size[i] );\n    }\n  filter->SetRegionOfInterest( itkRegion );"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "use the defaults which sets a 0 size image",
+      "md5hash" : "f1d3ff8443297732862df21dc4e57262",
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "more",
+      "description" : "croping",
+      "md5hash" : "1b6e2f0bfb379619334f3c25e0e408a1",
+      "settings" : [
+        {
+          "parameter" : "Size",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            10,
+            10
+          ]
+        },
+        {
+          "parameter" : "Index",
+          "type" : "int",
+          "dim_vec" : 1,
+          "value" : [
+            167,
+            151
+          ]
+        }
+      ],
+      "inputs" : [
+        "Input/VM1111Shrink-RGB.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Extract a region of interest from the input image.",
+  "detaileddescription" : "Extract a region of interest from the input image or convert between itk::Image and RLEImage (a custom region can be used).\n\nThis filter produces an output image of the same dimension as the input image. The user specifies the region of the input image that will be contained in the output image. The origin coordinates of the output images will be computed in such a way that if mapped to physical space, the output image will overlay the input image with perfec [...]
+  "itk_module" : "ITKImageGrid",
+  "itk_group" : "ImageGrid"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/RegionalMaximaImageFilter.json b/Code/BasicFilters/json/RegionalMaximaImageFilter.json
new file mode 100644
index 0000000..9b960ad
--- /dev/null
+++ b/Code/BasicFilters/json/RegionalMaximaImageFilter.json
@@ -0,0 +1,67 @@
+{
+  "name" : "RegionalMaximaImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "ScalarPixelIDTypeList",
+  "output_pixel_type" : "uint32_t",
+  "members" : [
+    {
+      "name" : "BackgroundValue",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Output",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value used as \"background\" in the output image. Defaults to NumericTraits<PixelType>::NonpositiveMin() .",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value used as \"background\" in the output image. Defaults to NumericTraits<PixelType>::NonpositiveMin() ."
+    },
+    {
+      "name" : "ForegroundValue",
+      "type" : "double",
+      "default" : "1.0",
+      "pixeltype" : "Output",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value in the output image to consider as \"foreground\". Defaults to maximum value of PixelType.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value in the output image to consider as \"foreground\". Defaults to maximum value of PixelType."
+    },
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn."
+    },
+    {
+      "name" : "FlatIsMaxima",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get wether a flat image must be considered as a maxima or not. Defaults to true.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get wether a flat image must be considered as a maxima or not. Defaults to true."
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "md5hash" : "6839f3d9dc5b95e9513d723a3b7430f2",
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Produce a binary image where foreground is the regional maxima of the input image.",
+  "detaileddescription" : "Regional maxima are flat zones surrounded by pixels of lower value.\n\nIf the input image is constant, the entire image can be considered as a maxima or not. The desired behavior can be selected with the SetFlatIsMaxima() method.\n\n\\author Gaetan Lehmann\n\nThis class was contributed to the Insight Journal by author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France. The paper can be found at https://hdl.handle.net/ [...]
+  "itk_module" : "ITKReview",
+  "itk_group" : "Review"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/RegionalMinimaImageFilter.json b/Code/BasicFilters/json/RegionalMinimaImageFilter.json
new file mode 100644
index 0000000..d56a050
--- /dev/null
+++ b/Code/BasicFilters/json/RegionalMinimaImageFilter.json
@@ -0,0 +1,67 @@
+{
+  "name" : "RegionalMinimaImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "ScalarPixelIDTypeList",
+  "output_pixel_type" : "uint32_t",
+  "members" : [
+    {
+      "name" : "BackgroundValue",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Output",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value used as \"background\" in the output image. Defaults to NumericTraits<PixelType>::NonpositiveMin() .",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value used as \"background\" in the output image. Defaults to NumericTraits<PixelType>::NonpositiveMin() ."
+    },
+    {
+      "name" : "ForegroundValue",
+      "type" : "double",
+      "default" : "1.0",
+      "pixeltype" : "Output",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value in the output image to consider as \"foreground\". Defaults to maximum value of PixelType.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value in the output image to consider as \"foreground\". Defaults to maximum value of PixelType."
+    },
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get whether the connected components are defined strictly by face connectivity or by face+edge+vertex connectivity. Default is FullyConnectedOff. For objects that are 1 pixel wide, use FullyConnectedOn."
+    },
+    {
+      "name" : "FlatIsMinima",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get wether a flat image must be considered as a minima or not. Defaults to true.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get wether a flat image must be considered as a minima or not. Defaults to true."
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "md5hash" : "3be99cf6b3116f16f6663cd2c4edb5b4",
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Produce a binary image where foreground is the regional minima of the input image.",
+  "detaileddescription" : "Regional minima are flat zones surrounded by pixels of greater value.\n\nIf the input image is constant, the entire image can be considered as a minima or not. The SetFlatIsMinima() method let the user choose which behavior to use.\n\nThis class was contribtued to the Insight Journal by \\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France. https://hdl.handle.net/1926/153 \n\n\\see RegionalMaximaImageFilter \n\n [...]
+  "itk_module" : "ITKReview",
+  "itk_group" : "Review"
+}
diff --git a/Code/BasicFilters/json/RelabelComponentImageFilter.json b/Code/BasicFilters/json/RelabelComponentImageFilter.json
new file mode 100644
index 0000000..141b8a7
--- /dev/null
+++ b/Code/BasicFilters/json/RelabelComponentImageFilter.json
@@ -0,0 +1,35 @@
+{
+  "name" : "RelabelComponentImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "MinimumObjectSize",
+      "type" : "uint64_t",
+      "default" : "0u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the minimum size in pixels for an object. All objects smaller than this size will be discarded and will not appear in the output label map. NumberOfObjects will count only the objects whose pixel counts are greater than or equal to the minimum size. Call GetOriginalNumberOfObjects to find out how many objects were present in the original label map.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the caller-defined minimum size of an object in pixels. If the caller has not set the minimum, 0 will be returned, which is to be interpreted as meaning that no minimum exists, and all objects in the original label map will be passed through to the output."
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "2D",
+      "settings" : [],
+      "md5hash" : "58af064e929f08f9d5bacc8be44ed92e",
+      "inputs" : [
+        "Input/2th_cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Relabel the components in an image such that consecutive labels are used.",
+  "detaileddescription" : "RelabelComponentImageFilter remaps the labels associated with the objects in an image (as from the output of ConnectedComponentImageFilter ) such that the label numbers are consecutive with no gaps between the label numbers used. By default, the relabeling will also sort the labels based on the size of the object: the largest object will have label #1, the second largest will have label #2, etc. If two labels have the same size their initial order is kept. The  [...]
+  "itk_module" : "ITKConnectedComponents",
+  "itk_group" : "ConnectedComponents"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/RelabelLabelMapFilter.json b/Code/BasicFilters/json/RelabelLabelMapFilter.json
new file mode 100644
index 0000000..7dec68a
--- /dev/null
+++ b/Code/BasicFilters/json/RelabelLabelMapFilter.json
@@ -0,0 +1,51 @@
+{
+  "name" : "RelabelLabelMapFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Docs",
+  "pixel_types" : "LabelPixelIDTypeList",
+  "filter_type" : "itk::RelabelLabelMapFilter<InputImageType>",
+  "custom_set_input" : "filter->SetInput(image1);\n  filter->InPlaceOff();",
+  "members" : [
+    {
+      "name" : "ReverseOrdering",
+      "type" : "bool",
+      "default" : "true",
+      "doc" : ""
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings",
+      "inputA_cast" : "sitkLabelUInt8",
+      "md5hash" : "12d50e2d291cf91b0384bd1eb123b0f0",
+      "settings" : [],
+      "inputs" : [
+        "Input/2th_cthead1.mha"
+      ]
+    },
+    {
+      "tag" : "reverse",
+      "description" : "with background reverse setting",
+      "inputA_cast" : "sitkLabelUInt8",
+      "md5hash" : "99c078cadf61455fb5bf17771e36ae0c",
+      "settings" : [
+        {
+          "parameter" : "ReverseOrdering",
+          "value" : "false",
+          "python_value" : "False",
+          "R_value" : "FALSE"
+        }
+      ],
+      "inputs" : [
+        "Input/2th_cthead1.mha"
+      ]
+    }
+  ],
+  "briefdescription" : "This filter relabels the LabelObjects; the new labels are arranged consecutively with consideration for the background value.",
+  "detaileddescription" : "This filter takes the LabelObjects from the input and reassigns them to the output by calling the PushLabelObject method, which by default, attempts to reorganize the labels consecutively. The user can assign an arbitrary value to the background; the filter will assign the labels consecutively by skipping the background value.\n\nThis implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/brows [...]
+  "itk_module" : "ITKLabelMap",
+  "itk_group" : "LabelMap"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/RenyiEntropyThresholdImageFilter.json b/Code/BasicFilters/json/RenyiEntropyThresholdImageFilter.json
new file mode 100644
index 0000000..6f3de93
--- /dev/null
+++ b/Code/BasicFilters/json/RenyiEntropyThresholdImageFilter.json
@@ -0,0 +1,132 @@
+{
+  "name" : "RenyiEntropyThresholdImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "Docs",
+  "number_of_inputs" : 0,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_image_type" : "itk::Image< uint8_t, TImageType::ImageDimension>",
+  "filter_type" : "itk::RenyiEntropyThresholdImageFilter< TImageType, OutputImageType, OutputImageType >",
+  "inputs" : [
+    {
+      "name" : "Image",
+      "type" : "Image"
+    },
+    {
+      "name" : "MaskImage",
+      "type" : "Image",
+      "optional" : true
+    }
+  ],
+  "members" : [
+    {
+      "name" : "InsideValue",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the \"inside\" pixel value.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"inside\" pixel value.\n"
+    },
+    {
+      "name" : "OutsideValue",
+      "type" : "uint8_t",
+      "default" : "0u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"outside\" pixel value.\n"
+    },
+    {
+      "name" : "NumberOfHistogramBins",
+      "type" : "uint32_t",
+      "default" : "256u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the number of histogram bins.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MaskOutput",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Do you want the output to be masked by the mask used in histogram construction. Only relevant if masking is in use.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MaskValue",
+      "type" : "uint8_t",
+      "default" : "255u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "The value in the mask image, if used, indicating voxels that should be included. Default is the max of pixel type, as in the MaskedImageToHistogramFilter",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "Threshold",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "Get the computed threshold."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "b3a9d15b0065800592149925da59ea65",
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 18924
+        }
+      ]
+    },
+    {
+      "tag" : "cthead1_with_mask",
+      "description" : "CT Head with mask",
+      "settings" : [],
+      "md5hash" : "b959d4480d7bd88f8486a021679da4a9",
+      "inputs" : [
+        "Input/cthead1.png",
+        "Input/cthead1-mask.png"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 146.0
+        }
+      ]
+    },
+    {
+      "tag" : "default_on_float",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "d749a8ef5a2049837518618938945cce",
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 0.498051,
+          "tolerance" : 1e-05
+        }
+      ]
+    }
+  ],
+  "briefdescription" : "Threshold an image using the RenyiEntropy Threshold.",
+  "detaileddescription" : "This filter creates a binary thresholded image that separates an image into foreground and background components. The filter computes the threshold using the RenyiEntropyThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .\n\n\\author Richard Beare. Department of Medicine, Monash University, Melbourne, Australia. \n\nGaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France [...]
+  "itk_module" : "ITKThresholding",
+  "itk_group" : "Thresholding"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ResampleImageFilter.json b/Code/BasicFilters/json/ResampleImageFilter.json
new file mode 100644
index 0000000..706bf1f
--- /dev/null
+++ b/Code/BasicFilters/json/ResampleImageFilter.json
@@ -0,0 +1,219 @@
+{
+  "name" : "ResampleImageFilter",
+  "template_code_filename" : "DualImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "pixel_types2" : "BasicPixelIDTypeList",
+  "custom_type2" : "PixelIDValueEnum type2 = (m_OutputPixelType != sitkUnknown) ? m_OutputPixelType : type1;",
+  "output_image_type" : "InputImageType2",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "vector_pixel_types_by_component2" : "VectorPixelIDTypeList",
+  "filter_type" : "itk::ResampleImageFilter<InputImageType, OutputImageType, double>",
+  "no_procedure" : "1",
+  "include_files" : [
+    "sitkCreateInterpolator.hxx",
+    "sitkTransform.h"
+  ],
+  "members" : [
+    {
+      "name" : "Size",
+      "type" : "uint32_t",
+      "default" : "std::vector<uint32_t>(3, 0)",
+      "dim_vec" : 1,
+      "doc" : "",
+      "itk_type" : "typename FilterType::SizeType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Get/Set the size of the output image.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get/Set the size of the output image."
+    },
+    {
+      "name" : "Transform",
+      "type" : "Transform",
+      "default" : "itk::simple::Transform()",
+      "custom_itk_cast" : "const typename FilterType::TransformType *itkTx;\n    if ( !(itkTx = dynamic_cast<const typename FilterType::TransformType *>(this->m_Transform.GetITKBase() )) ) {\n      if( this->m_Transform.GetITKBase()->GetNameOfClass() != std::string(\"IdentityTransform\") )\n      sitkExceptionMacro( \"Unexpected error converting transform! Possible miss matching dimensions!\" );\n     }\n    else { filter->SetTransform( itkTx ); }",
+      "no_print" : "1",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Get/Set the coordinate transformation. Set the coordinate transform to use for resampling. Note that this must be in physical coordinates and it is the output-to-input transform, NOT the input-to-output transform that you might naively expect. By default the filter uses an Identity transform. You must provide a different transform here, before attempting to run the filter, if you do not want to use the default Identity transform.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get/Set the coordinate transformation. Set the coordinate transform to use for resampling. Note that this must be in physical coordinates and it is the output-to-input transform, NOT the input-to-output transform that you might naively expect. By default the filter uses an Identity transform. You must provide a different transform here, before attempting to run the filter, if you do not want to use the default Identity transform."
+    },
+    {
+      "name" : "Interpolator",
+      "type" : "InterpolatorEnum",
+      "default" : "itk::simple::sitkLinear",
+      "doc" : "",
+      "custom_itk_cast" : "filter->SetInterpolator( CreateInterpolator( image1.GetPointer(), m_Interpolator ) );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Get/Set the interpolator function. The default is LinearInterpolateImageFunction <InputImageType, TInterpolatorPrecisionType>. Some other options are NearestNeighborInterpolateImageFunction (useful for binary masks and other images with a small number of possible pixel values), and BSplineInterpolateImageFunction (which provides a higher order of interpolation).",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get/Set the interpolator function. The default is LinearInterpolateImageFunction <InputImageType, TInterpolatorPrecisionType>. Some other options are NearestNeighborInterpolateImageFunction (useful for binary masks and other images with a small number of possible pixel values), and BSplineInterpolateImageFunction (which provides a higher order of interpolation)."
+    },
+    {
+      "name" : "OutputOrigin",
+      "type" : "double",
+      "default" : "std::vector<double>(3, 0.0)",
+      "dim_vec" : 1,
+      "doc" : "",
+      "itk_type" : "typename FilterType::OriginPointType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the output image origin.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the output image origin."
+    },
+    {
+      "name" : "OutputSpacing",
+      "type" : "double",
+      "default" : "std::vector<double>(3, 1.0)",
+      "dim_vec" : 1,
+      "doc" : "",
+      "itk_type" : "typename FilterType::SpacingType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the output image spacing.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the output image spacing."
+    },
+    {
+      "name" : "OutputDirection",
+      "type" : "std::vector<double>",
+      "default" : "std::vector<double>()",
+      "doc" : "Passing a zero sized array, defaults to identiy matrix. The size of the array must exactly match the direction matrix for the dimension of the image.",
+      "custom_itk_cast" : "filter->SetOutputDirection( sitkSTLToITKDirection<typename FilterType::DirectionType>( this->m_OutputDirection ) );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the output direciton cosine matrix.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set the output direciton cosine matrix."
+    },
+    {
+      "name" : "DefaultPixelValue",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Get/Set the pixel value when a transformed pixel is outside of the image. The default default pixel value is 0.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get/Set the pixel value when a transformed pixel is outside of the image. The default default pixel value is 0."
+    },
+    {
+      "name" : "OutputPixelType",
+      "type" : "PixelIDValueEnum",
+      "default" : "itk::simple::sitkUnknown",
+      "custom_itk_cast" : "",
+      "briefdescriptionSet" : "Set the output pixel type, if sitkUnknown then the input type is used.",
+      "briefdescriptionGet" : "Get the ouput pixel type."
+    }
+  ],
+  "custom_methods" : [
+    {
+      "name" : "SetReferenceImage",
+      "doc" : "This methods sets the output size, origin, spacing and direction to that of the provided image",
+      "return_type" : "void",
+      "parameters" : [
+        {
+          "type" : "const Image &",
+          "var_name" : "refImage"
+        }
+      ],
+      "body" : "this->SetSize( refImage.GetSize() ); this->SetOutputOrigin( refImage.GetOrigin() ); this->SetOutputSpacing( refImage.GetSpacing() );this->SetOutputDirection( refImage.GetDirection() );"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "run with some defaults",
+      "settings" : [
+        {
+          "parameter" : "Size",
+          "type" : "uint32_t",
+          "dim_vec" : 1,
+          "value" : [
+            64,
+            64,
+            64
+          ]
+        }
+      ],
+      "tolerance" : "0.001",
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "wCastwInterpolator",
+      "description" : "Resample With Cast and Interpolator",
+      "settings" : [
+        {
+          "parameter" : "Size",
+          "type" : "uint32_t",
+          "dim_vec" : 1,
+          "value" : [
+            64,
+            64,
+            64
+          ]
+        },
+        {
+          "parameter" : "OutputPixelType",
+          "value" : "itk::simple::sitkUInt16",
+          "lua_value" : "SimpleITK.sitkUInt16",
+          "python_value" : "SimpleITK.sitkUInt16",
+          "ruby_value" : "Simpleitk::SitkUInt16",
+          "java_value" : "PixelIDValueEnum.sitkUInt16",
+          "tcl_value" : "$$sitkUInt16",
+          "csharp_value" : "PixelIDValueEnum.sitkUInt16",
+          "R_value" : "'sitkUInt16'"
+        },
+        {
+          "parameter" : "Interpolator",
+          "value" : "itk::simple::sitkGaussian",
+          "lua_value" : "SimpleITK.sitkGaussian",
+          "python_value" : "SimpleITK.sitkGaussian",
+          "ruby_value" : "Simpleitk::SitkGaussian",
+          "java_value" : "InterpolatorEnum.sitkGaussian",
+          "tcl_value" : "$$sitkGaussian",
+          "csharp_value" : "InterpolatorEnum.sitkGaussian",
+          "R_value" : "'sitkGaussian'"
+        }
+      ],
+      "tolerance" : "0.001",
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "vector",
+      "description" : "resample a vector image",
+      "settings" : [
+        {
+          "parameter" : "Size",
+          "type" : "uint32_t",
+          "dim_vec" : 1,
+          "value" : [
+            512,
+            512
+          ],
+          "tcl_value" : "[list 512 512 ]"
+        },
+        {
+          "parameter" : "OutputSpacing",
+          "type" : "double",
+          "dim_vec" : 1,
+          "value" : [
+            0.73,
+            0.73
+          ]
+        }
+      ],
+      "tolerance" : "0.001",
+      "inputs" : [
+        "Input/VM1111Shrink-RGBFloat.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Resample an image via a coordinate transform.",
+  "detaileddescription" : "ResampleImageFilter resamples an existing image through some coordinate transform, interpolating via some image function. The class is templated over the types of the input and output images.\n\nNote that the choice of interpolator function can be important. This function is set via SetInterpolator() . The default is LinearInterpolateImageFunction <InputImageType, TInterpolatorPrecisionType>, which is reasonable for ordinary medical images. However, some synthe [...]
+  "itk_module" : "ITKImageGrid",
+  "itk_group" : "ImageGrid"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/RescaleIntensityImageFilter.json b/Code/BasicFilters/json/RescaleIntensityImageFilter.json
new file mode 100644
index 0000000..a130283
--- /dev/null
+++ b/Code/BasicFilters/json/RescaleIntensityImageFilter.json
@@ -0,0 +1,48 @@
+{
+  "name" : "RescaleIntensityImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "OutputMinimum",
+      "type" : "double",
+      "pixeltype" : "Output",
+      "default" : 0,
+      "doc" : "Output minimum",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "OutputMaximum",
+      "type" : "double",
+      "pixeltype" : "Output",
+      "default" : 255,
+      "doc" : "Output maximum",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "3d",
+      "description" : "3D",
+      "settings" : [],
+      "tolerance" : "1e-8",
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Applies a linear transformation to the intensity levels of the input Image .",
+  "detaileddescription" : "RescaleIntensityImageFilter applies pixel-wise a linear transformation to the intensity values of input image pixels. The linear transformation is defined by the user in terms of the minimum and maximum values that the output image should have.\n\nThe following equation gives the mapping of the intensity values\n\n\\par \n \\f[ outputPixel = ( inputPixel - inputMin) \\cdot \\frac{(outputMax - outputMin )}{(inputMax - inputMin)} + outputMin \\f] \n\nAll computat [...]
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/RichardsonLucyDeconvolutionImageFilter.json b/Code/BasicFilters/json/RichardsonLucyDeconvolutionImageFilter.json
new file mode 100644
index 0000000..2eb97be
--- /dev/null
+++ b/Code/BasicFilters/json/RichardsonLucyDeconvolutionImageFilter.json
@@ -0,0 +1,75 @@
+{
+  "name" : "RichardsonLucyDeconvolutionImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "include_files" : [
+    "sitkBoundaryConditions.hxx"
+  ],
+  "custom_set_input" : "filter->SetInput( image1 ); filter->SetKernelImage( image2 );",
+  "members" : [
+    {
+      "name" : "NumberOfIterations",
+      "type" : "int",
+      "default" : "1",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the number of iterations.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the number of iterations."
+    },
+    {
+      "name" : "Normalize",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Normalize the output image by the sum of the kernel components\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "BoundaryCondition",
+      "enum" : [
+        "ZERO_PAD",
+        "ZERO_FLUX_NEUMANN_PAD",
+        "PERIODIC_PAD"
+      ],
+      "default" : "itk::simple::RichardsonLucyDeconvolutionImageFilter::ZERO_FLUX_NEUMANN_PAD",
+      "custom_itk_cast" : "nsstd::auto_ptr< ImageBoundaryCondition< InputImageType > > bc( CreateNewBoundaryConditionInstance< Self, FilterType >( m_BoundaryCondition ) ); filter->SetBoundaryCondition( bc.get() );\n"
+    },
+    {
+      "name" : "OutputRegionMode",
+      "enum" : [
+        "SAME",
+        "VALID"
+      ],
+      "default" : "itk::simple::RichardsonLucyDeconvolutionImageFilter::SAME",
+      "itk_type" : "typename FilterType::OutputRegionModeType"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Richardson-Lucy deconvolution of image blurred with a Gaussian kernel",
+      "settings" : [
+        {
+          "parameter" : "Normalize",
+          "value" : "true",
+          "python_value" : "True",
+          "R_value" : "TRUE"
+        }
+      ],
+      "tolerance" : "0.0001",
+      "inputs" : [
+        "Input/DeconvolutionInput.nrrd",
+        "Input/DeconvolutionKernel.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Deconvolve an image using the Richardson-Lucy deconvolution algorithm.",
+  "detaileddescription" : "This filter implements the Richardson-Lucy deconvolution algorithm as defined in Bertero M and Boccacci P, \"Introduction to Inverse\nProblems in Imaging\", 1998. The algorithm assumes that the input image has been formed by a linear shift-invariant system with a known kernel.\n\nThe Richardson-Lucy algorithm assumes that noise in the image follows a Poisson distribution and that the distribution for each pixel is independent of the other pixels.\n\nThis code w [...]
+  "itk_module" : "ITKDeconvolution",
+  "itk_group" : "Deconvolution"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/STAPLEImageFilter.json b/Code/BasicFilters/json/STAPLEImageFilter.json
new file mode 100644
index 0000000..b05f467
--- /dev/null
+++ b/Code/BasicFilters/json/STAPLEImageFilter.json
@@ -0,0 +1,76 @@
+{
+  "name" : "STAPLEImageFilter",
+  "template_code_filename" : "MultiInputImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "output_pixel_type" : "typename itk::NumericTraits<typename InputImageType::PixelType>::RealType",
+  "filter_type" : "itk::STAPLEImageFilter<InputImageType, OutputImageType>",
+  "members" : [
+    {
+      "name" : "ConfidenceWeight",
+      "type" : "double",
+      "default" : "1.0",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Scales the estimated prior probability that a pixel will be inside the targeted object of segmentation. The default prior probability g_t is calculated automatically as the average fraction of positively classified pixels to the total size of the volume (across all input volumes). ConfidenceWeight will scale this default value as g_t = g_t * ConfidenceWeight. In general, ConfidenceWeight should be left to the default of 1.0.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Scales the estimated prior probability that a pixel will be inside the targeted object of segmentation. The default prior probability g_t is calculated automatically as the average fraction of positively classified pixels to the total size of the volume (across all input volumes). ConfidenceWeight will scale this default value as g_t = g_t * ConfidenceWeight. In general, ConfidenceWeight should be left to the default of 1.0."
+    },
+    {
+      "name" : "ForegroundValue",
+      "type" : "double",
+      "default" : "1.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set get the binary ON value of the input image.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set get the binary ON value of the input image."
+    },
+    {
+      "name" : "MaximumIterations",
+      "type" : "unsigned int",
+      "default" : "std::numeric_limits<unsigned int>::max()",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the maximum number of iterations after which the STAPLE algorithm will be considered to have converged. In general this SHOULD NOT be set and the algorithm should be allowed to converge on its own.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the maximum number of iterations after which the STAPLE algorithm will be considered to have converged. In general this SHOULD NOT be set and the algorithm should be allowed to converge on its own."
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "ElapsedIterations",
+      "type" : "uint32_t",
+      "default" : 0,
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the number of elapsed iterations of the iterative E-M algorithm."
+    },
+    {
+      "name" : "Sensitivity",
+      "type" : "std::vector<double>",
+      "default" : "std::vector<double>()",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "After the filter is updated, this method returns a std::vector<double> of all Sensitivity (true positive fraction, p) values for the expert input volumes."
+    },
+    {
+      "name" : "Specificity ",
+      "type" : "std::vector<double>",
+      "default" : "std::vector<double>()",
+      "briefdescriptionGet" : "After the filter is updated, this method returns the Specificity (true negative fraction, q) value for the i-th expert input volume."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "basic",
+      "description" : "Basic usage",
+      "tolerance" : "1e-5",
+      "inputs" : [
+        "Input/STAPLE1-binary.png",
+        "Input/STAPLE2-binary.png"
+      ]
+    }
+  ],
+  "briefdescription" : "The STAPLE filter implements the Simultaneous Truth and Performance Level Estimation algorithm for generating ground truth volumes from a set of binary expert segmentations.",
+  "detaileddescription" : "The STAPLE algorithm treats segmentation as a pixelwise classification, which leads to an averaging scheme that accounts for systematic biases in the behavior of experts in order to generate a fuzzy ground truth volume and simultaneous accuracy assessment of each expert. The ground truth volumes produced by this filter are floating point volumes of values between zero and one that indicate probability of each pixel being in the object targeted by the segmentati [...]
+  "itk_module" : "ITKImageCompare",
+  "itk_group" : "ImageCompare"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/SaltAndPepperNoiseImageFilter.json b/Code/BasicFilters/json/SaltAndPepperNoiseImageFilter.json
new file mode 100644
index 0000000..006fda6
--- /dev/null
+++ b/Code/BasicFilters/json/SaltAndPepperNoiseImageFilter.json
@@ -0,0 +1,79 @@
+{
+  "name" : "SaltAndPepperNoiseImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Probability",
+      "type" : "double",
+      "default" : "0.01",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "Seed",
+      "type" : "uint32_t",
+      "default" : "(uint32_t) itk::simple::sitkWallClock",
+      "custom_itk_cast" : "if (m_Seed) filter->SetSeed(m_Seed);"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "2d",
+      "description" : "2D - baseline as zero noise",
+      "no_procedure" : 1,
+      "settings" : [
+        {
+          "parameter" : "Seed",
+          "cxx_value" : "123u",
+          "value" : "123"
+        }
+      ],
+      "tolerance" : 20,
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    },
+    {
+      "tag" : "3d",
+      "description" : "3D - baseline as zero noise",
+      "no_procedure" : 1,
+      "settings" : [
+        {
+          "parameter" : "Seed",
+          "cxx_value" : "123u",
+          "value" : "123"
+        }
+      ],
+      "tolerance" : 10000.0,
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    },
+    {
+      "tag" : "rgb",
+      "description" : "vector image - baseline as zero noise",
+      "no_procedure" : 1,
+      "settings" : [
+        {
+          "parameter" : "Seed",
+          "cxx_value" : "123u",
+          "value" : "123"
+        }
+      ],
+      "tolerance" : 20,
+      "inputs" : [
+        "Input/VM1111Shrink-RGB.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Alter an image with fixed value impulse noise, often called salt and pepper noise.",
+  "detaileddescription" : "Pixel alteration occurs at a user defined probability. Salt and pepper pixel are equally distributed.\n\n\\author Gaetan Lehmann\n\nThis code was contributed in the Insight Journal paper \"Noise\nSimulation\". https://hdl.handle.net/10380/3158",
+  "itk_module" : "ITKImageNoise",
+  "itk_group" : "ImageNoise"
+}
diff --git a/Code/BasicFilters/json/ScalarChanAndVeseDenseLevelSetImageFilter.json b/Code/BasicFilters/json/ScalarChanAndVeseDenseLevelSetImageFilter.json
new file mode 100644
index 0000000..3a20bc6
--- /dev/null
+++ b/Code/BasicFilters/json/ScalarChanAndVeseDenseLevelSetImageFilter.json
@@ -0,0 +1,151 @@
+{
+  "name" : "ScalarChanAndVeseDenseLevelSetImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 2,
+  "pixel_types" : "RealPixelIDTypeList",
+  "filter_type" : "itk::ScalarChanAndVeseDenseLevelSetImageFilter<InputImageType, InputImageType, InputImageType, itk::ScalarChanAndVeseLevelSetFunction< InputImageType, InputImageType > >",
+  "include_files" : [
+    "itkAtanRegularizedHeavisideStepFunction.h",
+    "itkHeavisideStepFunction.h"
+  ],
+  "custom_set_input" : "filter->SetFunctionCount( 1 );\n  filter->SetLevelSet( 0, image1 );\n  filter->SetInput( image2 );",
+  "members" : [
+    {
+      "name" : "MaximumRMSError",
+      "type" : "double",
+      "default" : 0.02,
+      "doc" : "Value of RMS change below which the filter should stop. This is a convergence criterion."
+    },
+    {
+      "name" : "NumberOfIterations",
+      "type" : "uint32_t",
+      "default" : "1000u",
+      "doc" : "Number of iterations to run"
+    },
+    {
+      "name" : "Lambda1",
+      "type" : "double",
+      "default" : "1.0",
+      "doc" : "Lambda1. Internal intensity difference weight",
+      "custom_itk_cast" : "filter->GetDifferenceFunction(0)->SetLambda1(m_Lambda1);"
+    },
+    {
+      "name" : "Lambda2",
+      "type" : "double",
+      "default" : "1.0",
+      "doc" : "Lambda2. External intensity difference weight",
+      "custom_itk_cast" : "filter->GetDifferenceFunction(0)->SetLambda2(m_Lambda2);"
+    },
+    {
+      "name" : "Epsilon",
+      "type" : "double",
+      "default" : "1.0",
+      "doc" : "Width of regularization of Heaviside function.",
+      "custom_itk_cast" : ""
+    },
+    {
+      "name" : "CurvatureWeight",
+      "type" : "double",
+      "default" : "1.0",
+      "doc" : "Gamma. Scales all curvature weight values ",
+      "custom_itk_cast" : "filter->GetDifferenceFunction(0)->SetCurvatureWeight(m_CurvatureWeight);"
+    },
+    {
+      "name" : "AreaWeight",
+      "type" : "double",
+      "default" : "0.0",
+      "doc" : "Nu. Area regularization values",
+      "custom_itk_cast" : "filter->GetDifferenceFunction(0)->SetAreaWeight(m_AreaWeight);"
+    },
+    {
+      "name" : "ReinitializationSmoothingWeight",
+      "type" : "double",
+      "default" : "0.0",
+      "doc" : "Weight of the laplacian smoothing term",
+      "custom_itk_cast" : "filter->GetDifferenceFunction(0)->SetReinitializationSmoothingWeight(m_ReinitializationSmoothingWeight);"
+    },
+    {
+      "name" : "Volume",
+      "type" : "double",
+      "default" : "0.0",
+      "doc" : " Pixel Volume = Number of pixels inside the level-set",
+      "custom_itk_cast" : "filter->GetDifferenceFunction(0)->SetVolume(m_Volume);"
+    },
+    {
+      "name" : "VolumeMatchingWeight",
+      "type" : "double",
+      "default" : "0.0",
+      "doc" : "Volume matching weight.",
+      "custom_itk_cast" : "filter->GetDifferenceFunction(0)->SetVolumeMatchingWeight(m_VolumeMatchingWeight);"
+    },
+    {
+      "name" : "HeavisideStepFunction",
+      "enum" : [
+        "AtanRegularizedHeaviside",
+        "SinRegularizedHeaviside",
+        "Heaviside"
+      ],
+      "default" : "itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::AtanRegularizedHeaviside",
+      "doc" : "Step functions",
+      "custom_itk_cast" : "if (m_HeavisideStepFunction == AtanRegularizedHeaviside) {\n    typedef itk::AtanRegularizedHeavisideStepFunction< typename InputImageType::PixelType, typename InputImageType::PixelType >  DomainFunctionType;\n    typename DomainFunctionType::Pointer domainFunction = DomainFunctionType::New();\n    domainFunction->SetEpsilon(m_Epsilon);\n    filter->GetDifferenceFunction(0)->SetDomainFunction( domainFunction );\n  } else if ( m_HeavisideStepFunction == SinRegul [...]
+    },
+    {
+      "name" : "UseImageSpacing",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Use the image spacing information in calculations. Use this option if you want derivatives in physical space. Default is UseImageSpacingOn.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Use the image spacing information in calculations. Use this option if you want derivatives in physical space. Default is UseImageSpacingOn.\n"
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "ElapsedIterations",
+      "type" : "uint32_t",
+      "default" : 0,
+      "briefdescriptionGet" : "Number of iterations run."
+    },
+    {
+      "name" : "RMSChange",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "The Root Mean Square of the levelset upon termination."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "cthead",
+      "description" : "Segmentation of head in CT",
+      "no_procedure" : 1,
+      "settings" : [
+        {
+          "parameter" : "NumberOfIterations",
+          "cxx_value" : "2u",
+          "value" : "2"
+        }
+      ],
+      "tolerance" : 0.001,
+      "measurements_results" : [
+        {
+          "name" : "ElapsedIterations",
+          "value" : "2u"
+        },
+        {
+          "name" : "RMSChange",
+          "value" : 721.33,
+          "tolerance" : 0.5
+        }
+      ],
+      "inputs" : [
+        "Input/cthead1-ls-seed.nrrd",
+        "Input/cthead1-Float.mha"
+      ]
+    }
+  ],
+  "briefdescription" : "Dense implementation of the Chan and Vese multiphase level set image filter.",
+  "detaileddescription" : "This code was adapted from the paper: \"An active contour model without edges\"\n T. Chan and L. Vese.\n In Scale-Space Theories in Computer Vision, pages 141-151, 1999.\n\n\\author Mosaliganti K., Smith B., Gelas A., Gouaillard A., Megason S.\n\nThis code was taken from the Insight Journal paper: \"Cell Tracking using Coupled Active Surfaces for Nuclei and Membranes\"\nhttp://www.insight-journal.org/browse/publication/642\nhttps://hdl.handle.net/10380/3055\n\n [...]
+  "itk_module" : "ITKReview",
+  "itk_group" : "Review"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ScalarConnectedComponentImageFilter.json b/Code/BasicFilters/json/ScalarConnectedComponentImageFilter.json
new file mode 100644
index 0000000..8826912
--- /dev/null
+++ b/Code/BasicFilters/json/ScalarConnectedComponentImageFilter.json
@@ -0,0 +1,58 @@
+{
+  "name" : "ScalarConnectedComponentImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "\todo Add support for mask image input",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "filter_type" : "itk::ScalarConnectedComponentImageFilter<InputImageType, OutputImageType, itk::Image<uint8_t, InputImageType::ImageDimension> >",
+  "output_pixel_type" : "uint32_t",
+  "members" : [
+    {
+      "name" : "DistanceThreshold",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : ""
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "2D",
+      "settings" : [],
+      "md5hash" : "3a73df13adc18671b6981494fd337750",
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    },
+    {
+      "tag" : "wDistance",
+      "description" : "3D",
+      "settings" : [
+        {
+          "parameter" : "DistanceThreshold",
+          "value" : "500.0"
+        }
+      ],
+      "md5hash" : "d119778b306a4f744899f917c8f10814",
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "A connected components filter that labels the objects in an arbitrary image. Two pixels are similar if they are within threshold of each other. Uses ConnectedComponentFunctorImageFilter .",
+  "detaileddescription" : "\\par Wiki Examples:\n\n\\li All Examples \n\n\\li Label connected components in a grayscale image",
+  "itk_module" : "ITKConnectedComponents",
+  "itk_group" : "ConnectedComponents"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ScalarImageKmeansImageFilter.json b/Code/BasicFilters/json/ScalarImageKmeansImageFilter.json
new file mode 100644
index 0000000..a18a407
--- /dev/null
+++ b/Code/BasicFilters/json/ScalarImageKmeansImageFilter.json
@@ -0,0 +1,62 @@
+{
+  "name" : "ScalarImageKmeansImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Docs",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_pixel_type" : "uint8_t",
+  "members" : [
+    {
+      "name" : "ClassWithInitialMean",
+      "type" : "std::vector<double>",
+      "default" : "std::vector<double>()",
+      "custom_itk_cast" : "if( this->m_ClassWithInitialMean.size() == 0 ) {\n     filter->AddClassWithInitialMean( NumericTraits<typename InputImageType::PixelType>::ZeroValue() );\n     filter->AddClassWithInitialMean( NumericTraits<typename InputImageType::PixelType>::OneValue() );\n   }\n   else\n   {\n     for( unsigned int i = 0; i < this->m_ClassWithInitialMean.size(); ++i )\n       filter->AddClassWithInitialMean( this->m_ClassWithInitialMean[i] );\n    }"
+    },
+    {
+      "name" : "UseNonContiguousLabels",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the UseNonContiguousLabels flag. When this is set to false the labels are numbered contiguously, like in {0,1,3..N}. When the flag is set to true, the labels are selected in order to span the dynamic range of the output image. This last option is useful when the output image is intended only for display. The default value is false.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the UseNonContiguousLabels flag. When this is set to false the labels are numbered contiguously, like in {0,1,3..N}. When the flag is set to true, the labels are selected in order to span the dynamic range of the output image. This last option is useful when the output image is intended only for display. The default value is false."
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "FinalMeans",
+      "type" : "std::vector<double>",
+      "default" : "std::vector<double>()",
+      "custom_itk_cast" : "this->m_FinalMeans = std::vector<double>( filter->GetFinalMeans().begin(), filter->GetFinalMeans().end() );",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Return the array of Means found after the classification."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "basic",
+      "description" : "basic segmentation",
+      "settings" : [
+        {
+          "parameter" : "ClassWithInitialMean",
+          "type" : "double",
+          "dim_vec" : 1,
+          "value" : [
+            25000,
+            30000
+          ]
+        }
+      ],
+      "md5hash" : "6eb61d9e67f6d5d37e201f486bbf2bd4",
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Classifies the intensity values of a scalar image using the K-Means algorithm.",
+  "detaileddescription" : "Given an input image with scalar values, it uses the K-Means statistical classifier in order to define labels for every pixel in the image. The filter is templated over the type of the input image. The output image is predefined as having the same dimension of the input image and pixel type unsigned char, under the assumption that the classifier will generate less than 256 classes.\n\nYou may want to look also at the RelabelImageFilter that may be used as a pos [...]
+  "itk_module" : "ITKClassifiers",
+  "itk_group" : "Classifiers"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ScalarToRGBColormapImageFilter.json b/Code/BasicFilters/json/ScalarToRGBColormapImageFilter.json
new file mode 100644
index 0000000..f3f7c74
--- /dev/null
+++ b/Code/BasicFilters/json/ScalarToRGBColormapImageFilter.json
@@ -0,0 +1,81 @@
+{
+  "name" : "ScalarToRGBColormapImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_image_type" : "itk::VectorImage< unsigned char, InputImageType::ImageDimension>",
+  "members" : [
+    {
+      "name" : "Colormap",
+      "enum" : [
+        "Red",
+        "Green",
+        "Blue",
+        "Grey",
+        "Hot",
+        "Cool",
+        "Spring",
+        "Summer",
+        "Autumn",
+        "Winter",
+        "Copper",
+        "Jet",
+        "HSV",
+        "OverUnder"
+      ],
+      "default" : "itk::simple::ScalarToRGBColormapImageFilter::Grey",
+      "itk_type" : "typename FilterType::ColormapEnumType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the colormap object."
+    },
+    {
+      "name" : "UseInputImageExtremaForScaling",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get UseInputImageExtremaForScaling. If true, the colormap uses the min and max values from the image to scale appropriately. Otherwise, these values can be set in the colormap manually.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get UseInputImageExtremaForScaling. If true, the colormap uses the min and max values from the image to scale appropriately. Otherwise, these values can be set in the colormap manually."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "md5hash" : "e8c3b4bd5c14125f23899d57c6d38381",
+      "inputs" : [
+        "Input/2th_cthead1.mha"
+      ]
+    },
+    {
+      "tag" : "Hot",
+      "description" : "use hot color map",
+      "settings" : [
+        {
+          "parameter" : "Colormap",
+          "value" : "itk::simple::${name}::Hot",
+          "lua_value" : "SimpleITK.${name}_Hot",
+          "python_value" : "SimpleITK.${name}.Hot",
+          "ruby_value" : "Simpleitk::${name}::Hot",
+          "java_value" : "${name}.ColormapType.Hot",
+          "tcl_value" : "$$${name}_Hot",
+          "csharp_value" : "itk.simple.${name}.ColormapType.Hot",
+          "R_value" : "'Hot'"
+        }
+      ],
+      "md5hash" : "f9cc87e42c0d4f6f4222b6dab1dd5d7c",
+      "inputs" : [
+        "Input/Ramp-Up-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Implements pixel-wise intensity->rgb mapping operation on one image.",
+  "detaileddescription" : "This class is parameterized over the type of the input image and the type of the output image.\n\nThe input image's scalar pixel values are mapped into a color map. The color map is specified by passing the SetColormap function one of the predefined maps. The following selects the \"Hot\" colormap: \\code\n* RGBFilterType::Pointer colormapImageFilter = RGBFilterType::New();\n\n* colormapImageFilter->SetColormap( RGBFilterType::Hot );\n\n* \n\n\\endcode\n\nYou c [...]
+  "itk_module" : "ITKColormap",
+  "itk_group" : "Colormap"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ShanbhagThresholdImageFilter.json b/Code/BasicFilters/json/ShanbhagThresholdImageFilter.json
new file mode 100644
index 0000000..e394bad
--- /dev/null
+++ b/Code/BasicFilters/json/ShanbhagThresholdImageFilter.json
@@ -0,0 +1,132 @@
+{
+  "name" : "ShanbhagThresholdImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "Docs",
+  "number_of_inputs" : 0,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_image_type" : "itk::Image< uint8_t, TImageType::ImageDimension>",
+  "filter_type" : "itk::ShanbhagThresholdImageFilter< TImageType, OutputImageType, OutputImageType  >",
+  "inputs" : [
+    {
+      "name" : "Image",
+      "type" : "Image"
+    },
+    {
+      "name" : "MaskImage",
+      "type" : "Image",
+      "optional" : true
+    }
+  ],
+  "members" : [
+    {
+      "name" : "InsideValue",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the \"inside\" pixel value.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"inside\" pixel value.\n"
+    },
+    {
+      "name" : "OutsideValue",
+      "type" : "uint8_t",
+      "default" : "0u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"outside\" pixel value.\n"
+    },
+    {
+      "name" : "NumberOfHistogramBins",
+      "type" : "uint32_t",
+      "default" : "256u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the number of histogram bins.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MaskOutput",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Do you want the output to be masked by the mask used in histogram construction. Only relevant if masking is in use.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MaskValue",
+      "type" : "uint8_t",
+      "default" : "255u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "The value in the mask image, if used, indicating voxels that should be included. Default is the max of pixel type, as in the MaskedImageToHistogramFilter",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "Threshold",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "Get the computed threshold."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "3ef85bbfa185afb51f265fe34402328e",
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 26210
+        }
+      ]
+    },
+    {
+      "tag" : "cthead1_with_mask",
+      "description" : "CT Head with mask",
+      "settings" : [],
+      "md5hash" : "4a06d3dedb1b423f7775ca01c1ca4f31",
+      "inputs" : [
+        "Input/cthead1.png",
+        "Input/cthead1-mask.png"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 106.0
+        }
+      ]
+    },
+    {
+      "tag" : "default_on_float",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "d749a8ef5a2049837518618938945cce",
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 0.498051,
+          "tolerance" : 1e-05
+        }
+      ]
+    }
+  ],
+  "briefdescription" : "Threshold an image using the Shanbhag Threshold.",
+  "detaileddescription" : "This filter creates a binary thresholded image that separates an image into foreground and background components. The filter computes the threshold using the ShanbhagThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .\n\n\\author Richard Beare. Department of Medicine, Monash University, Melbourne, Australia. \n\nGaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\ [...]
+  "itk_module" : "ITKThresholding",
+  "itk_group" : "Thresholding"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ShapeDetectionLevelSetImageFilter.json b/Code/BasicFilters/json/ShapeDetectionLevelSetImageFilter.json
new file mode 100644
index 0000000..aff4864
--- /dev/null
+++ b/Code/BasicFilters/json/ShapeDetectionLevelSetImageFilter.json
@@ -0,0 +1,84 @@
+{
+  "name" : "ShapeDetectionLevelSetImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 2,
+  "doc" : "Level Set filter that uses propagation and curvature terms.",
+  "pixel_types" : "RealPixelIDTypeList",
+  "filter_type" : "itk::ShapeDetectionLevelSetImageFilter<InputImageType, InputImageType>",
+  "custom_set_input" : "filter->SetInput( image1 ); filter->SetFeatureImage( image2 );",
+  "members" : [
+    {
+      "name" : "MaximumRMSError",
+      "type" : "double",
+      "default" : 0.02,
+      "doc" : "Value of RMS change below which the filter should stop. This is a convergence criterion."
+    },
+    {
+      "name" : "PropagationScaling",
+      "type" : "double",
+      "default" : "1.0",
+      "doc" : "Weight of direct propagation contribution to the speed term"
+    },
+    {
+      "name" : "CurvatureScaling",
+      "type" : "double",
+      "default" : "1.0",
+      "doc" : "Weight of the curvature contribution to the speed term"
+    },
+    {
+      "name" : "NumberOfIterations",
+      "type" : "uint32_t",
+      "default" : "1000u",
+      "doc" : "Number of iterations to run"
+    },
+    {
+      "name" : "ReverseExpansionDirection",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "Turn On/Off the flag which determines whether Positive or Negative speed terms will cause surface expansion.  If set to TRUE then negative speed terms will cause the surface to expand and positive speed terms will cause the surface to contract.  If set to FALSE (default) then positive speed terms will cause the surface to expand and negative speed terms will cause the surface to contract.  This method can be safely used to reverse the expansion/contraction as appropriate t [...]
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "ElapsedIterations",
+      "type" : "uint32_t",
+      "default" : 0,
+      "briefdescriptionGet" : "Number of iterations run."
+    },
+    {
+      "name" : "RMSChange",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "The Root Mean Square of the levelset upon termination."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0.1,
+      "measurements" : [
+        {
+          "name" : "ElapsedIterations",
+          "value" : 100,
+          "tolerance" : 10
+        },
+        {
+          "name" : "RMSChange",
+          "value" : 0.02,
+          "tolerance" : 0.002
+        }
+      ],
+      "inputs" : [
+        "Input/SmallWhiteCircle_Float.nrrd",
+        "Input/LargeWhiteCircle_Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Segments structures in images based on a user supplied edge potential map.",
+  "detaileddescription" : "\\par IMPORTANT\nThe SegmentationLevelSetImageFilter class and the ShapeDetectionLevelSetFunction class contain additional information necessary to gain full understanding of how to use this filter.\n\n\\par OVERVIEW\nThis class is a level set method segmentation filter. An initial contour is propagated outwards (or inwards) until it ''sticks'' to the shape boundaries. This is done by using a level set speed function based on a user supplied edge potential map. [...]
+  "itk_module" : "ITKLevelSets",
+  "itk_group" : "LevelSets"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ShiftScaleImageFilter.json b/Code/BasicFilters/json/ShiftScaleImageFilter.json
new file mode 100644
index 0000000..cd3de63
--- /dev/null
+++ b/Code/BasicFilters/json/ShiftScaleImageFilter.json
@@ -0,0 +1,64 @@
+{
+  "name" : "ShiftScaleImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Shift",
+      "type" : "double",
+      "default" : 0,
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the amount to Shift each Pixel. The shift is followed by a Scale.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the amount to Shift each Pixel. The shift is followed by a Scale."
+    },
+    {
+      "name" : "Scale",
+      "type" : "double",
+      "default" : "1.0",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the amount to Scale each Pixel. The Scale is applied after the Shift.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the amount to Scale each Pixel. The Scale is applied after the Shift."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : " default parameters",
+      "settings" : [],
+      "md5hash" : "a963bd6a755b853103a2d195e01a50d3",
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    },
+    {
+      "tag" : "params",
+      "description" : " default parameters",
+      "settings" : [
+        {
+          "parameter" : "Shift",
+          "type" : "double",
+          "value" : "100"
+        },
+        {
+          "parameter" : "Scale",
+          "type" : "double",
+          "value" : "0.5"
+        }
+      ],
+      "md5hash" : "e3bee902dc9339d28359ebfb96a70186",
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Shift and scale the pixels in an image.",
+  "detaileddescription" : "ShiftScaleImageFilter shifts the input pixel by Shift (default 0.0) and then scales the pixel by Scale (default 1.0). All computattions are performed in the precision of the input pixel's RealType. Before assigning the computed value to the output pixel, the value is clamped at the NonpositiveMin and max of the pixel type.",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ShotNoiseImageFilter.json b/Code/BasicFilters/json/ShotNoiseImageFilter.json
new file mode 100644
index 0000000..8bc756f
--- /dev/null
+++ b/Code/BasicFilters/json/ShotNoiseImageFilter.json
@@ -0,0 +1,79 @@
+{
+  "name" : "ShotNoiseImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Scale",
+      "type" : "double",
+      "default" : "1.0",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the value to map the pixel value to the actual particle counting. The scaling can be seen as the inverse of the gain used during the acquisition. The noisy signal is then scaled back to its input intensity range. Defaults to 1.0.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the value to map the pixel value to the actual particle counting. The scaling can be seen as the inverse of the gain used during the acquisition. The noisy signal is then scaled back to its input intensity range. Defaults to 1.0."
+    },
+    {
+      "name" : "Seed",
+      "type" : "uint32_t",
+      "default" : "(uint32_t) itk::simple::sitkWallClock",
+      "custom_itk_cast" : "if (m_Seed) filter->SetSeed(m_Seed);"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "2d",
+      "description" : "2D - baseline as zero noise",
+      "no_procedure" : 1,
+      "settings" : [
+        {
+          "parameter" : "Seed",
+          "cxx_value" : "123u",
+          "value" : "123"
+        }
+      ],
+      "tolerance" : 500.0,
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    },
+    {
+      "tag" : "3d",
+      "description" : "3D - baseline as zero noise",
+      "no_procedure" : 1,
+      "settings" : [
+        {
+          "parameter" : "Seed",
+          "cxx_value" : "123u",
+          "value" : "123"
+        }
+      ],
+      "tolerance" : 500.0,
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    },
+    {
+      "tag" : "rgb",
+      "description" : "vector image - baseline as zero noise",
+      "no_procedure" : 1,
+      "settings" : [
+        {
+          "parameter" : "Seed",
+          "cxx_value" : "123u",
+          "value" : "123"
+        }
+      ],
+      "tolerance" : 500.0,
+      "inputs" : [
+        "Input/VM1111Shrink-RGB.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Alter an image with shot noise.",
+  "detaileddescription" : "The shot noise follows a Poisson distribution:\n\n\\par \n\\f$ I = N(I_0) \\f$ \n\n\\par \nwhere \\f$ N(I_0) \\f$ is a Poisson-distributed random variable of mean \\f$ I_0 \\f$ . The noise is thus dependent on the pixel intensities in the image.\n\nThe intensities in the image can be scaled by a user provided value to map pixel values to the actual number of particles. The scaling can be seen as the inverse of the gain used during the acquisition. The noisy sig [...]
+  "itk_module" : "ITKImageNoise",
+  "itk_group" : "ImageNoise"
+}
diff --git a/Code/BasicFilters/json/ShrinkImageFilter.json b/Code/BasicFilters/json/ShrinkImageFilter.json
new file mode 100644
index 0000000..fe8e7c6
--- /dev/null
+++ b/Code/BasicFilters/json/ShrinkImageFilter.json
@@ -0,0 +1,73 @@
+{
+  "name" : "ShrinkImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "\todo need single method to set all dims",
+  "pixel_types" : "NonLabelPixelIDTypeList",
+  "public_declarations" : "Self &SetShrinkFactor( unsigned int s ) { this->m_ShrinkFactors = std::vector<unsigned int>(3, s ); return *this; }",
+  "members" : [
+    {
+      "name" : "ShrinkFactors",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 1)",
+      "dim_vec" : 1,
+      "doc" : "",
+      "itk_type" : "typename FilterType::ShrinkFactorsType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the shrink factors. Values are clamped to a minimum value of 1. Default is 1 for all dimensions.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the shrink factors."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Test Shirnk with default parameters",
+      "md5hash" : "45a85203a8972250b0e0226b64312eef",
+      "settings" : [],
+      "inputs" : [
+        "Input/VM1111Shrink-RGBFloat.nrrd"
+      ]
+    },
+    {
+      "tag" : "by23",
+      "description" : "Test Shink by 23",
+      "md5hash" : "9d32115482a8d143520fff8ab423f73a",
+      "settings" : [
+        {
+          "parameter" : "ShrinkFactors",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            2,
+            3
+          ]
+        }
+      ],
+      "inputs" : [
+        "Input/VM1111Shrink-RGB.png"
+      ]
+    },
+    {
+      "tag" : "by4",
+      "description" : "Test Shink by 4",
+      "md5hash" : "06ef0d7d001245107721dee64feedf0e",
+      "settings" : [
+        {
+          "parameter" : "ShrinkFactor",
+          "type" : "unsigned int",
+          "no_get_method" : 1,
+          "value" : "4"
+        }
+      ],
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Reduce the size of an image by an integer factor in each dimension.",
+  "detaileddescription" : "ShrinkImageFilter reduces the size of an image by an integer factor in each dimension. The algorithm implemented is a simple subsample. The output image size in each dimension is given by:\n\noutputSize[j] = max( std::floor(inputSize[j]/shrinkFactor[j]), 1 );\n\nNOTE: The physical centers of the input and output will be the same. Because of this, the Origin of the output may not be the same as the Origin of the input. Since this filter produces an image which i [...]
+  "itk_module" : "ITKImageGrid",
+  "itk_group" : "ImageGrid"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/SigmoidImageFilter.json b/Code/BasicFilters/json/SigmoidImageFilter.json
new file mode 100644
index 0000000..cbb235f
--- /dev/null
+++ b/Code/BasicFilters/json/SigmoidImageFilter.json
@@ -0,0 +1,65 @@
+{
+  "name" : "SigmoidImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Alpha",
+      "type" : "double",
+      "default" : 1,
+      "doc" : "Alpha",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "Beta",
+      "type" : "double",
+      "default" : 0,
+      "doc" : "Alpha",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "OutputMaximum",
+      "type" : "double",
+      "default" : 255,
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "OutputMinimum",
+      "type" : "double",
+      "default" : 0,
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "md5hash" : "c9222b9c9150e0d7a07e9de184c10167",
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the sigmoid function pixel-wise.",
+  "detaileddescription" : "A linear transformation is applied first on the argument of the sigmoid function. The resulting total transform is given by\n\n \\f[ f(x) = (Max-Min) \\cdot \\frac{1}{\\left(1+e^{- \\frac{ x - \\beta }{\\alpha}}\\right)} + Min \\f] \n\nEvery output pixel is equal to f(x). Where x is the intensity of the homologous input pixel, and alpha and beta are user-provided constants.\n\n\\par Wiki Examples:\n\n\\li All Examples \n\n\\li Pass image pixels through a sigmoi [...]
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/SignedDanielssonDistanceMapImageFilter.json b/Code/BasicFilters/json/SignedDanielssonDistanceMapImageFilter.json
new file mode 100644
index 0000000..02978f0
--- /dev/null
+++ b/Code/BasicFilters/json/SignedDanielssonDistanceMapImageFilter.json
@@ -0,0 +1,53 @@
+{
+  "name" : "SignedDanielssonDistanceMapImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "Docs",
+  "number_of_inputs" : 1,
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "output_pixel_type" : "float",
+  "members" : [
+    {
+      "name" : "InsideIsPositive",
+      "type" : "bool",
+      "default" : "false",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set if the inside represents positive values in the signed distance map. By convention ON pixels are treated as inside pixels.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get if the inside represents positive values in the signed distance map. See GetInsideIsPositive()"
+    },
+    {
+      "name" : "SquaredDistance",
+      "type" : "bool",
+      "default" : "false",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set if the distance should be squared.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the distance squared."
+    },
+    {
+      "name" : "UseImageSpacing",
+      "type" : "bool",
+      "default" : "false",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set if image spacing should be used in computing distances.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get whether spacing is used."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Default parameter settings",
+      "tolerance" : "0.01",
+      "settings" : [],
+      "inputs" : [
+        "Input/2th_cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "",
+  "detaileddescription" : "This class is parametrized over the type of the input image and the type of the output image.\n\nThis filter computes the distance map of the input image as an approximation with pixel accuracy to the Euclidean distance.\n\nFor purposes of evaluating the signed distance map, the input is assumed to be binary composed of pixels with value 0 and non-zero.\n\nThe inside is considered as having negative distances. Outside is treated as having positive distances. To [...]
+  "itk_module" : "ITKDistanceMap",
+  "itk_group" : "DistanceMap"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/SignedMaurerDistanceMapImageFilter.json b/Code/BasicFilters/json/SignedMaurerDistanceMapImageFilter.json
new file mode 100644
index 0000000..956276b
--- /dev/null
+++ b/Code/BasicFilters/json/SignedMaurerDistanceMapImageFilter.json
@@ -0,0 +1,53 @@
+{
+  "name" : "SignedMaurerDistanceMapImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "Docs",
+  "number_of_inputs" : 1,
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "output_pixel_type" : "float",
+  "members" : [
+    {
+      "name" : "InsideIsPositive",
+      "type" : "bool",
+      "default" : "false",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set if the inside represents positive values in the signed distance map. By convention ON pixels are treated as inside pixels.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get if the inside represents positive values in the signed distance map. \\see GetInsideIsPositive()"
+    },
+    {
+      "name" : "SquaredDistance",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set if the distance should be squared.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the distance squared."
+    },
+    {
+      "name" : "UseImageSpacing",
+      "type" : "bool",
+      "default" : "false",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set if image spacing should be used in computing distances.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get whether spacing is used."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Default parameter settings",
+      "tolerance" : "0.01",
+      "settings" : [],
+      "inputs" : [
+        "Input/2th_cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "This filter calculates the Euclidean distance transform of a binary image in linear time for arbitrary dimensions.",
+  "detaileddescription" : "\\par Inputs and Outputs\nThis is an image-to-image filter. The dimensionality is arbitrary. The only dimensionality constraint is that the input and output images be of the same dimensions and size. To maintain integer arithmetic within the filter, the default output is the signed squared distance. This implies that the input image should be of type \"unsigned int\" or \"int\" whereas the output image is of type \"int\". Obviously, if the user wishes to utiliz [...]
+  "itk_module" : "ITKDistanceMap",
+  "itk_group" : "DistanceMap"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/SimilarityIndexImageFilter.json b/Code/BasicFilters/json/SimilarityIndexImageFilter.json
new file mode 100644
index 0000000..b9d0afc
--- /dev/null
+++ b/Code/BasicFilters/json/SimilarityIndexImageFilter.json
@@ -0,0 +1,59 @@
+{
+  "name" : "SimilarityIndexImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "filter_type" : "itk::SimilarityIndexImageFilter<InputImageType, InputImageType2 >",
+  "no_procedure" : true,
+  "no_return_image" : true,
+  "members" : [],
+  "measurements" : [
+    {
+      "name" : "SimilarityIndex",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Return the computed similarity index."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "2d",
+      "description" : "2d",
+      "settings" : [],
+      "measurements_results" : [
+        {
+          "name" : "SimilarityIndex",
+          "value" : 0.88424,
+          "tolerance" : 1e-05
+        }
+      ],
+      "inputs" : [
+        "Input/STAPLE1.png",
+        "Input/STAPLE2.png"
+      ]
+    },
+    {
+      "tag" : "3d",
+      "description" : "3d",
+      "settings" : [],
+      "measurements_results" : [
+        {
+          "name" : "SimilarityIndex",
+          "value" : 0.8120552,
+          "tolerance" : 1e-06
+        }
+      ],
+      "inputs" : [
+        "Input/OAS1_0001_MR1_mpr-1_anon.nrrd",
+        "Input/OAS1_0002_MR1_mpr-1_anon.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Measures the similarity between the set of non-zero pixels of two images.",
+  "detaileddescription" : "SimilarityIndexImageFilter measures the similarity between the set non-zero pixels of two images using the following formula: \\f[ S = \\frac{2 | A \\cap B |}{|A| + |B|} \\f] where \\f$A\\f$ and \\f$B\\f$ are respectively the set of non-zero pixels in the first and second input images. Operator \\f$|\\cdot|\\f$ represents the size of a set and \\f$\\cap\\f$ represents the intersection of two sets.\n\nThe measure is derived from a reliability measure known as th [...]
+  "itk_module" : "ITKImageCompare",
+  "itk_group" : "ImageCompare"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/SimpleContourExtractorImageFilter.json b/Code/BasicFilters/json/SimpleContourExtractorImageFilter.json
new file mode 100644
index 0000000..21556cb
--- /dev/null
+++ b/Code/BasicFilters/json/SimpleContourExtractorImageFilter.json
@@ -0,0 +1,94 @@
+{
+  "name" : "SimpleContourExtractorImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_pixel_type" : "uint8_t",
+  "members" : [
+    {
+      "name" : "InputForegroundValue",
+      "type" : "double",
+      "default" : "1.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the foreground value used in order to identify a foreground pixel in the input image.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the foreground value used in order to identify a foreground pixel in the input image."
+    },
+    {
+      "name" : "InputBackgroundValue",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the background value used in order to identify a background pixel in the input image.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the background value used in order to identify a background pixel in the input image."
+    },
+    {
+      "name" : "Radius",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 1)",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "doc" : "",
+      "itk_type" : "typename FilterType::RadiusType"
+    },
+    {
+      "name" : "OutputForegroundValue",
+      "type" : "double",
+      "default" : "1.0",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the foreground value used in order to identify a foreground pixel in the output image.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the foreground value used in order to identify a foreground pixel in the output image."
+    },
+    {
+      "name" : "OutputBackgroundValue",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the background value used in order to identify a background pixel in the output image.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the background value used in order to identify a background pixel in the output image."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings",
+      "md5hash" : "adea3837e7c950b32855e99769d4d04a",
+      "settings" : [
+        {
+          "parameter" : "InputForegroundValue",
+          "value" : "255.0"
+        }
+      ],
+      "inputs" : [
+        "Input/WhiteDots.png"
+      ]
+    },
+    {
+      "tag" : "custom",
+      "description" : "Run binary mask on a single label",
+      "md5hash" : "0694f4cc0e85cba1f0b954f521caae2e",
+      "settings" : [
+        {
+          "parameter" : "InputForegroundValue",
+          "value" : "100"
+        }
+      ],
+      "inputs" : [
+        "Input/2th_cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes an image of contours which will be the contour of the first image.",
+  "detaileddescription" : "A pixel of the source image is considered to belong to the contour if its pixel value is equal to the input foreground value and it has in its neighborhood at least one pixel which its pixel value is equal to the input background value. The output image will have pixels which will be set to the output foreground value if they belong to the contour, otherwise they will be set to the output background value.\n\nThe neighborhood \"radius\" is set thanks to the rad [...]
+  "itk_module" : "ITKImageFeature",
+  "itk_group" : "ImageFeature"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/SinImageFilter.json b/Code/BasicFilters/json/SinImageFilter.json
new file mode 100644
index 0000000..99e63cd
--- /dev/null
+++ b/Code/BasicFilters/json/SinImageFilter.json
@@ -0,0 +1,25 @@
+{
+  "name" : "SinImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0.01,
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the sine of each pixel.",
+  "detaileddescription" : "The computations are performed using std::sin(x).\n\n\\par Wiki Examples:\n\n\\li All Examples \n\n\\li Compute the sine of each pixel.",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/SliceImageFilter.json b/Code/BasicFilters/json/SliceImageFilter.json
new file mode 100644
index 0000000..2d7b6d1
--- /dev/null
+++ b/Code/BasicFilters/json/SliceImageFilter.json
@@ -0,0 +1,43 @@
+{
+  "name" : "SliceImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "NonLabelPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Start",
+      "type" : "int32_t",
+      "default" : "std::vector<int32_t>(3, 0)",
+      "dim_vec" : 1,
+      "itk_type" : "typename FilterType::IndexType"
+    },
+    {
+      "name" : "Stop",
+      "type" : "int32_t",
+      "default" : "std::vector<int32_t>(3, std::numeric_limits<int32_t>::max())",
+      "dim_vec" : 1,
+      "itk_type" : "typename FilterType::IndexType"
+    },
+    {
+      "name" : "Step",
+      "type" : "int",
+      "default" : "std::vector<int>(3, 1)",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "itk_type" : "typename FilterType::ArrayType"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "defaults",
+      "md5hash" : "45a85203a8972250b0e0226b64312eef",
+      "settings" : [],
+      "inputs" : [
+        "Input/VM1111Shrink-RGBFloat.nrrd"
+      ]
+    }
+  ],
+  "itk_module" : "ITKCommon"
+}
diff --git a/Code/BasicFilters/json/SmoothingRecursiveGaussianImageFilter.json b/Code/BasicFilters/json/SmoothingRecursiveGaussianImageFilter.json
new file mode 100644
index 0000000..e18da40
--- /dev/null
+++ b/Code/BasicFilters/json/SmoothingRecursiveGaussianImageFilter.json
@@ -0,0 +1,60 @@
+{
+  "name" : "SmoothingRecursiveGaussianImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "",
+  "number_of_inputs" : 1,
+  "pixel_types" : "typelist::Append<BasicPixelIDTypeList, VectorPixelIDTypeList>::Type",
+  "output_image_type" : "typename InputImageType::template Rebind<float>::Type",
+  "members" : [
+    {
+      "name" : "Sigma",
+      "type" : "double",
+      "default" : "1.0",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set Sigma value. Sigma is measured in the units of image spacing. You may use the method SetSigma to set the same value across each axis or use the method SetSigmaArray if you need different values along each axis.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "NormalizeAcrossScale",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "This method does not effect the output of this filter. \\sa RecursiveGaussianImageFilter::SetNormalizeAcrossScale",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "This method does not effect the output of this filter. \\sa RecursiveGaussianImageFilter::SetNormalizeAcrossScale"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0.0001,
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "rgb_image",
+      "description" : "Smooth a vector image",
+      "settings" : [
+        {
+          "parameter" : "Sigma",
+          "value" : "5.0"
+        }
+      ],
+      "tolerance" : 1e-05,
+      "inputs" : [
+        "Input/VM1111Shrink-RGB.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the smoothing of an image by convolution with the Gaussian kernels implemented as IIR filters.",
+  "detaileddescription" : "This filter is implemented using the recursive gaussian filters. For multi-component images, the filter works on each component independently.\n\nFor this filter to be able to run in-place the input and output image types need to be the same and/or the same type as the RealImageType.\n\n\\par Wiki Examples:\n\n\\li All Examples \n\n\\li Gaussian smoothing that works with image adaptors",
+  "itk_module" : "ITKSmoothing",
+  "itk_group" : "Smoothing"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/SobelEdgeDetectionImageFilter.json b/Code/BasicFilters/json/SobelEdgeDetectionImageFilter.json
new file mode 100644
index 0000000..e05528f
--- /dev/null
+++ b/Code/BasicFilters/json/SobelEdgeDetectionImageFilter.json
@@ -0,0 +1,24 @@
+{
+  "name" : "SobelEdgeDetectionImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "RealPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0.01,
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "A 2D or 3D edge detection using the Sobel operator.",
+  "detaileddescription" : "This filter uses the Sobel operator to calculate the image gradient and then finds the magnitude of this gradient vector. The Sobel gradient magnitude (square-root sum of squares) is an indication of edge strength.\n\n\\see ImageToImageFilter \n\n\\see SobelOperator \n\n\\see Neighborhood \n\n\\see NeighborhoodOperator \n\n\\see NeighborhoodIterator \n\n\\par Wiki Examples:\n\n\\li All Examples \n\n\\li SobelEdgeDetectionImageFilter",
+  "itk_module" : "ITKImageFeature",
+  "itk_group" : "ImageFeature"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/SpeckleNoiseImageFilter.json b/Code/BasicFilters/json/SpeckleNoiseImageFilter.json
new file mode 100644
index 0000000..0c02b8c
--- /dev/null
+++ b/Code/BasicFilters/json/SpeckleNoiseImageFilter.json
@@ -0,0 +1,79 @@
+{
+  "name" : "SpeckleNoiseImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "StandardDeviation",
+      "type" : "double",
+      "default" : "1.0",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "Seed",
+      "type" : "uint32_t",
+      "default" : "(uint32_t) itk::simple::sitkWallClock",
+      "custom_itk_cast" : "if (m_Seed) filter->SetSeed(m_Seed);"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "2d",
+      "description" : "2D - baseline as zero noise",
+      "no_procedure" : 1,
+      "settings" : [
+        {
+          "parameter" : "Seed",
+          "cxx_value" : "123u",
+          "value" : "123"
+        }
+      ],
+      "tolerance" : 100.0,
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    },
+    {
+      "tag" : "3d",
+      "description" : "3D - baseline as zero noise",
+      "no_procedure" : 1,
+      "settings" : [
+        {
+          "parameter" : "Seed",
+          "cxx_value" : "123u",
+          "value" : "123"
+        }
+      ],
+      "tolerance" : 200000.0,
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    },
+    {
+      "tag" : "rgb",
+      "description" : "vector image - baseline as zero noise",
+      "no_procedure" : 1,
+      "settings" : [
+        {
+          "parameter" : "Seed",
+          "cxx_value" : "123u",
+          "value" : "123"
+        }
+      ],
+      "tolerance" : 100.0,
+      "inputs" : [
+        "Input/VM1111Shrink-RGB.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Alter an image with speckle (multiplicative) noise.",
+  "detaileddescription" : "The speckle noise follows a Gamma distribution of mean 1 and standard deviation provided by the user. The noise is proportional to the pixel intensity.\n\n\\author Gaetan Lehmann\n\nThis code was contributed in the Insight Journal paper \"Noise\nSimulation\". https://hdl.handle.net/10380/3158",
+  "itk_module" : "ITKImageNoise",
+  "itk_group" : "ImageNoise"
+}
diff --git a/Code/BasicFilters/json/SqrtImageFilter.json b/Code/BasicFilters/json/SqrtImageFilter.json
new file mode 100644
index 0000000..68566a3
--- /dev/null
+++ b/Code/BasicFilters/json/SqrtImageFilter.json
@@ -0,0 +1,25 @@
+{
+  "name" : "SqrtImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0.01,
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the square root of each pixel.",
+  "detaileddescription" : "The computations are performed using std::sqrt(x).",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/SquareImageFilter.json b/Code/BasicFilters/json/SquareImageFilter.json
new file mode 100644
index 0000000..5ce6221
--- /dev/null
+++ b/Code/BasicFilters/json/SquareImageFilter.json
@@ -0,0 +1,25 @@
+{
+  "name" : "SquareImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "md5hash" : "314065b457b66e102b9cafd7c49be6b3",
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the square of the intensity values pixel-wise.",
+  "detaileddescription" : "\\par Wiki Examples:\n\n\\li All Examples \n\n\\li Square every pixel in an image",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/SquaredDifferenceImageFilter.json b/Code/BasicFilters/json/SquaredDifferenceImageFilter.json
new file mode 100644
index 0000000..0e5f819
--- /dev/null
+++ b/Code/BasicFilters/json/SquaredDifferenceImageFilter.json
@@ -0,0 +1,50 @@
+{
+  "name" : "SquaredDifferenceImageFilter",
+  "template_code_filename" : "BinaryFunctorFilter",
+  "template_test_filename" : "ImageFilter",
+  "constant_type" : "double",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "2DStapleImages",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "tolerance" : "1e-8",
+      "inputA_cast" : "sitkUInt16",
+      "inputB_cast" : "sitkUInt16",
+      "inputs" : [
+        "Input/STAPLE1.png",
+        "Input/STAPLE2.png"
+      ]
+    },
+    {
+      "tag" : "Ramp_Short1",
+      "description" : "Ramp",
+      "settings" : [],
+      "tolerance" : "1e-8",
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "Ramp_Short2",
+      "description" : "Ramp",
+      "settings" : [],
+      "tolerance" : "1e-8",
+      "inputA_cast" : "sitkUInt32",
+      "inputB_cast" : "sitkUInt32",
+      "inputs" : [
+        "Input/Ramp-Up-Short.nrrd",
+        "Input/Ramp-Down-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Implements pixel-wise the computation of squared difference.",
+  "detaileddescription" : "This filter is parametrized over the types of the two input images and the type of the output image.\n\nNumeric conversions (castings) are done by the C++ defaults.\n\nThe filter will walk over all the pixels in the two input images, and for each one of them it will do the following:\n\n\n\\li cast the input 1 pixel value to double \n\n\\li cast the input 2 pixel value to double \n\n\\li compute the difference of the two pixel values\n\n\\li compute the square  [...]
+  "itk_module" : "ITKImageCompare",
+  "itk_group" : "ImageCompare"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/StandardDeviationProjectionImageFilter.json b/Code/BasicFilters/json/StandardDeviationProjectionImageFilter.json
new file mode 100644
index 0000000..8193c86
--- /dev/null
+++ b/Code/BasicFilters/json/StandardDeviationProjectionImageFilter.json
@@ -0,0 +1,37 @@
+{
+  "name" : "StandardDeviationProjectionImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_pixel_type" : "typename itk::NumericTraits<typename InputImageType::PixelType>::RealType",
+  "members" : [
+    {
+      "name" : "ProjectionDimension",
+      "type" : "unsigned int",
+      "default" : "0u"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "z_projection",
+      "description" : "project in the 2nd dimension",
+      "settings" : [
+        {
+          "parameter" : "ProjectionDimension",
+          "cxx_value" : "2u",
+          "value" : "2"
+        }
+      ],
+      "tolerance" : "0.0001",
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Mean projection.",
+  "detaileddescription" : "This class was contributed to the Insight Journal by Gaetan Lehmann. The original paper can be found at https://hdl.handle.net/1926/164 \n\n\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\n\\see ProjectionImageFilter \n\n\\see MedianProjectionImageFilter \n\n\\see MeanProjectionImageFilter \n\n\\see SumProjectionImageFilter \n\n\\see MeanProjectionImageFilter \n\n\\see MaximumProjectionImageFilter \n\n\ [...]
+  "itk_module" : "ITKImageStatistics",
+  "itk_group" : "ImageStatistics"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/StatisticsImageFilter.json b/Code/BasicFilters/json/StatisticsImageFilter.json
new file mode 100644
index 0000000..4083729
--- /dev/null
+++ b/Code/BasicFilters/json/StatisticsImageFilter.json
@@ -0,0 +1,99 @@
+{
+  "name" : "StatisticsImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Docs",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "filter_type" : "itk::StatisticsImageFilter<InputImageType>",
+  "no_procedure" : true,
+  "no_return_image" : true,
+  "members" : [],
+  "measurements" : [
+    {
+      "name" : "Minimum",
+      "type" : "double",
+      "default" : "0.0",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Return the computed Minimum."
+    },
+    {
+      "name" : "Maximum",
+      "type" : "double",
+      "default" : "0.0",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Return the computed Maximum."
+    },
+    {
+      "name" : "Mean",
+      "type" : "double",
+      "default" : "0.0",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Return the computed Mean."
+    },
+    {
+      "name" : "Sigma",
+      "type" : "double",
+      "default" : "0.0",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Return the computed Standard Deviation."
+    },
+    {
+      "name" : "Variance",
+      "type" : "double",
+      "default" : "0.0",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Return the computed Variance."
+    },
+    {
+      "name" : "Sum",
+      "type" : "double",
+      "default" : "0.0",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Return the compute Sum."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "2d",
+      "description" : "statistics on cthead1",
+      "settings" : [],
+      "measurements_results" : [
+        {
+          "name" : "Minimum",
+          "value" : 0
+        },
+        {
+          "name" : "Maximum",
+          "value" : 255
+        },
+        {
+          "name" : "Mean",
+          "value" : "77.7415618",
+          "tolerance" : 1e-06
+        },
+        {
+          "name" : "Sigma",
+          "value" : "78.2619",
+          "tolerance" : 1000.0
+        },
+        {
+          "name" : "Variance",
+          "value" : "6124.9260064656282",
+          "tolerance" : 1e-06
+        },
+        {
+          "name" : "Sum",
+          "value" : "5094871"
+        }
+      ],
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Compute min. max, variance and mean of an Image .",
+  "detaileddescription" : "StatisticsImageFilter computes the minimum, maximum, sum, mean, variance sigma of an image. The filter needs all of its input image. It behaves as a filter with an input and output. Thus it can be inserted in a pipline with other filters and the statistics will only be recomputed if a downstream filter changes.\n\nThe filter passes its input through unmodified. The filter is threaded. It computes statistics in each thread then combines them in its AfterThreaded [...]
+  "itk_module" : "ITKImageStatistics",
+  "itk_group" : "ImageStatistics"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/SubtractImageFilter.json b/Code/BasicFilters/json/SubtractImageFilter.json
new file mode 100644
index 0000000..5b653a1
--- /dev/null
+++ b/Code/BasicFilters/json/SubtractImageFilter.json
@@ -0,0 +1,46 @@
+{
+  "name" : "SubtractImageFilter",
+  "template_code_filename" : "BinaryFunctorFilter",
+  "template_test_filename" : "ImageFilter",
+  "constant_type" : "double",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "NonLabelPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "2D",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "ce338fe6899778aacfc28414f2d9498b",
+      "inputs" : [
+        "Input/RA-Slice-Float.nrrd",
+        "Input/RA-Slice-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "3D",
+      "description" : "Subtract a volume from a volume",
+      "settings" : [],
+      "md5hash" : "59071590099d21dd439896592338bf95",
+      "inputs" : [
+        "Input/RA-Short.nrrd",
+        "Input/RA-Short.nrrd"
+      ]
+    },
+    {
+      "tag" : "2d_rgb",
+      "description" : "2D-RGB",
+      "settings" : [],
+      "md5hash" : "30d54bcc6106abcac387cf9da95fe514",
+      "inputs" : [
+        "Input/VM1111Shrink-RGBFloat.nrrd",
+        "Input/VM1111Shrink-RGBFloat.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Pixel-wise subtraction of two images.",
+  "detaileddescription" : "Subtract each pixel from image2 from its corresponding pixel in image1:\n\n\\code\n* Output = Input1 - Input2.\n\n* \n\n\\endcode\n\nThis is done using\n\n\\code\n* SetInput1 ( image1 );\n\n* SetInput2 ( image2 );\n\n* \n\n\\endcode\n\nThis class is templated over the types of the two input images and the type of the output image. Numeric conversions (castings) are done by the C++ defaults.\n\nAdditionally, a constant can be subtracted from every pixel in an im [...]
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/SumProjectionImageFilter.json b/Code/BasicFilters/json/SumProjectionImageFilter.json
new file mode 100644
index 0000000..9f51f0e
--- /dev/null
+++ b/Code/BasicFilters/json/SumProjectionImageFilter.json
@@ -0,0 +1,37 @@
+{
+  "name" : "SumProjectionImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "\todo this filter should work with VectorImages too. \todo output type should be AccumulateType",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_pixel_type" : "typename itk::NumericTraits<typename InputImageType::PixelType>::RealType",
+  "members" : [
+    {
+      "name" : "ProjectionDimension",
+      "type" : "unsigned int",
+      "default" : "0u"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "z_projection",
+      "description" : "project in the 2nd dimension",
+      "settings" : [
+        {
+          "parameter" : "ProjectionDimension",
+          "cxx_value" : "2u",
+          "value" : "2"
+        }
+      ],
+      "tolerance" : "0.0001",
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Sum projection.",
+  "detaileddescription" : "This class was contributed to the Insight Journal by Gaetan Lehmann. The original paper can be found at https://hdl.handle.net/1926/164 \n\n\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\n\\see ProjectionImageFilter \n\n\\see MedianProjectionImageFilter \n\n\\see MeanProjectionImageFilter \n\n\\see MeanProjectionImageFilter \n\n\\see MaximumProjectionImageFilter \n\n\\see MinimumProjectionImageFilter \ [...]
+  "itk_module" : "ITKImageStatistics",
+  "itk_group" : "ImageStatistics"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/SymmetricForcesDemonsRegistrationFilter.json b/Code/BasicFilters/json/SymmetricForcesDemonsRegistrationFilter.json
new file mode 100644
index 0000000..2373931
--- /dev/null
+++ b/Code/BasicFilters/json/SymmetricForcesDemonsRegistrationFilter.json
@@ -0,0 +1,189 @@
+{
+  "name" : "SymmetricForcesDemonsRegistrationFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "no_procedure" : "1",
+  "number_of_inputs" : 0,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_image_type" : "itk::Image< Vector<double, TImageType::ImageDimension>, TImageType::ImageDimension >",
+  "filter_type" : "itk::SymmetricForcesDemonsRegistrationFilter<TImageType, TImageType, OutputImageType>",
+  "include_files" : [
+    "sitkImageConvert.h"
+  ],
+  "inputs" : [
+    {
+      "name" : "FixedImage",
+      "type" : "Image",
+      "custom_itk_cast" : "filter->SetFixedImage( this->CastImageToITK<typename FilterType::FixedImageType>(*inFixedImage) );"
+    },
+    {
+      "name" : "MovingImage",
+      "type" : "Image"
+    },
+    {
+      "name" : "InitialDisplacementField",
+      "type" : "Image",
+      "optional" : true,
+      "custom_itk_cast" : "  typedef itk::VectorImage<double, FilterType::DisplacementFieldType::ImageDimension> VectorImageType;\n      filter->SetInitialDisplacementField( GetImageFromVectorImage(const_cast<VectorImageType*>(CastImageToITK<VectorImageType>(*inInitialDisplacementField).GetPointer()) ) );"
+    }
+  ],
+  "members" : [
+    {
+      "name" : "StandardDeviations",
+      "type" : "double",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "default" : "std::vector<double>(3, 1.0)",
+      "itk_type" : "typename FilterType::StandardDeviationsType",
+      "detaileddescriptionSet" : "Set/Get the Gaussian smoothing standard deviations for the displacement field. The values are set with respect to pixel coordinates.",
+      "detaileddescriptionGet" : "Set/Get the Gaussian smoothing standard deviations for the displacement field. The values are set with respect to pixel coordinates."
+    },
+    {
+      "name" : "NumberOfIterations",
+      "type" : "uint32_t",
+      "default" : "10u",
+      "doc" : "Number of iterations to run"
+    },
+    {
+      "name" : "MaximumRMSError",
+      "type" : "double",
+      "default" : 0.02,
+      "doc" : "Value of RMS change below which the filter should stop. This is a convergence criterion."
+    },
+    {
+      "name" : "SmoothDisplacementField",
+      "type" : "bool",
+      "default" : true,
+      "detaileddescriptionSet" : "Set/Get whether the displacement field is smoothed (regularized). Smoothing the displacement yields a solution elastic in nature. If SmoothDisplacementField is on, then the displacement field is smoothed with a Gaussian whose standard deviations are specified with SetStandardDeviations()",
+      "detaileddescriptionGet" : "Set/Get whether the displacement field is smoothed (regularized). Smoothing the displacement yields a solution elastic in nature. If SmoothDisplacementField is on, then the displacement field is smoothed with a Gaussian whose standard deviations are specified with SetStandardDeviations()"
+    },
+    {
+      "name" : "SmoothUpdateField",
+      "type" : "bool",
+      "default" : false,
+      "detaileddescriptionSet" : "Set/Get whether the update field is smoothed (regularized). Smoothing the update field yields a solution viscous in nature. If SmoothUpdateField is on, then the update field is smoothed with a Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()",
+      "detaileddescriptionGet" : "Set/Get whether the update field is smoothed (regularized). Smoothing the update field yields a solution viscous in nature. If SmoothUpdateField is on, then the update field is smoothed with a Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()"
+    },
+    {
+      "name" : "UpdateFieldStandardDeviations",
+      "type" : "double",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "default" : "std::vector<double>(3, 1.0)",
+      "itk_type" : "typename FilterType::StandardDeviationsType",
+      "detaileddescriptionSet" : "Set the Gaussian smoothing standard deviations for the update field. The values are set with respect to pixel coordinates.",
+      "detaileddescriptionGet" : "Set the Gaussian smoothing standard deviations for the update field. The values are set with respect to pixel coordinates."
+    },
+    {
+      "name" : "MaximumKernelWidth",
+      "type" : "unsigned int",
+      "default" : "30u",
+      "detaileddescriptionSet" : "Set/Get the desired limits of the Gaussian kernel width.",
+      "detaileddescriptionGet" : "Set/Get the desired limits of the Gaussian kernel width."
+    },
+    {
+      "name" : "MaximumError",
+      "type" : "double",
+      "default" : "0.1",
+      "detaileddescriptionSet" : "Set/Get the desired maximum error of the Guassian kernel approximate.",
+      "detaileddescriptionGet" : "Set/Get the desired maximum error of the Guassian kernel approximate."
+    },
+    {
+      "name" : "IntensityDifferenceThreshold",
+      "type" : "double",
+      "default" : "0.001",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the threshold below which the absolute difference of intensity yields a match. When the intensities match between a moving and fixed image pixel, the update vector (for that iteration) will be the zero vector. Default is 0.001.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "UseImageSpacing",
+      "type" : "bool",
+      "default" : true
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "ElapsedIterations",
+      "type" : "uint32_t",
+      "active" : true,
+      "default" : 0,
+      "briefdescriptionGet" : "Number of iterations run."
+    },
+    {
+      "name" : "RMSChange",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the root mean squared change of the previous iteration. May not be used by all solvers."
+    },
+    {
+      "name" : "Metric",
+      "type" : "double",
+      "active" : true,
+      "default" : 0.0,
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the metric value. The metric value is the mean square difference in intensity between the fixed image and transforming moving image computed over the the overlapping region between the two images. This value is calculated for the current iteration"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "2d",
+      "description" : "2D",
+      "settings" : [],
+      "tolerance" : "1e-3",
+      "inputs" : [
+        "Input/BrainProtonDensitySliceBorder20.png",
+        "Input/BrainProtonDensitySliceBSplined10.png"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "ElapsedIterations",
+          "value" : "10u"
+        },
+        {
+          "name" : "RMSChange",
+          "value" : 0.5697702538367385,
+          "tolerance" : 1e-06
+        },
+        {
+          "name" : "Metric",
+          "value" : 215.26827844077448,
+          "tolerance" : 0.0001
+        }
+      ]
+    },
+    {
+      "tag" : "2d_with_initial",
+      "description" : "2D With Initial Displacement",
+      "settings" : [],
+      "tolerance" : "1e-8",
+      "inputs" : [
+        "Input/BrainProtonDensitySliceBorder20.png",
+        "Input/BrainProtonDensitySliceBSplined10.png",
+        "Input/BrainProtonDensitySlice20InitialDisplacement.mha"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "ElapsedIterations",
+          "value" : "10u"
+        },
+        {
+          "name" : "RMSChange",
+          "value" : 0.5598269,
+          "tolerance" : 1e-06
+        },
+        {
+          "name" : "Metric",
+          "value" : 172.48536,
+          "tolerance" : 0.0001
+        }
+      ]
+    }
+  ],
+  "briefdescription" : "Deformably register two images using the demons algorithm.",
+  "detaileddescription" : "This class was contributed by Corinne Mattmann, ETH Zurich, Switzerland. based on a variation of the DemonsRegistrationFilter . The basic modification is to use equation (5) from Thirion's paper along with the modification for avoiding large deformations when gradients have small values.\n\nSymmetricForcesDemonsRegistrationFilter implements the demons deformable algorithm that register two images by computing the deformation field which will map a moving image  [...]
+  "itk_module" : "ITKPDEDeformableRegistration",
+  "itk_group" : "PDEDeformable"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/TanImageFilter.json b/Code/BasicFilters/json/TanImageFilter.json
new file mode 100644
index 0000000..68ca924
--- /dev/null
+++ b/Code/BasicFilters/json/TanImageFilter.json
@@ -0,0 +1,25 @@
+{
+  "name" : "TanImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0.01,
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the tangent of each input pixel.",
+  "detaileddescription" : "The computations are performed using std::tan(x).",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/TernaryAddImageFilter.json b/Code/BasicFilters/json/TernaryAddImageFilter.json
new file mode 100644
index 0000000..db06176
--- /dev/null
+++ b/Code/BasicFilters/json/TernaryAddImageFilter.json
@@ -0,0 +1,27 @@
+{
+  "name" : "TernaryAddImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 3,
+  "doc" : "",
+  "filter_type" : "itk::TernaryAddImageFilter<InputImageType, InputImageType2, InputImageType3, OutputImageType >",
+  "pixel_types" : "NonLabelPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "2d",
+      "description" : "2D",
+      "inputs" : [
+        "Input/STAPLE1.png",
+        "Input/STAPLE2.png",
+        "Input/STAPLE1.png"
+      ],
+      "settings" : [],
+      "md5hash" : "dbe269ea2abf0fbe16e9e5d633afea51"
+    }
+  ],
+  "briefdescription" : "Pixel-wise addition of three images.",
+  "detaileddescription" : "This class is templated over the types of the three input images and the type of the output image. Numeric conversions (castings) are done by the C++ defaults.",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/TernaryMagnitudeImageFilter.json b/Code/BasicFilters/json/TernaryMagnitudeImageFilter.json
new file mode 100644
index 0000000..9413be3
--- /dev/null
+++ b/Code/BasicFilters/json/TernaryMagnitudeImageFilter.json
@@ -0,0 +1,38 @@
+{
+  "name" : "TernaryMagnitudeImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 3,
+  "doc" : "",
+  "filter_type" : "itk::TernaryMagnitudeImageFilter<InputImageType, InputImageType2, InputImageType3, OutputImageType >",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "2d",
+      "description" : "2D",
+      "inputs" : [
+        "Input/STAPLE1.png",
+        "Input/STAPLE2.png",
+        "Input/STAPLE1.png"
+      ],
+      "settings" : [],
+      "md5hash" : "eca4bb7103117968b758a3f24f60a01a"
+    },
+    {
+      "tag" : "3d",
+      "description" : "3D",
+      "inputs" : [
+        "Input/RA-Float.nrrd",
+        "Input/RA-Float.nrrd",
+        "Input/RA-Float.nrrd"
+      ],
+      "settings" : [],
+      "tolerance" : 0.002
+    }
+  ],
+  "briefdescription" : "Compute the pixel-wise magnitude of three images.",
+  "detaileddescription" : "This class is templated over the types of the three input images and the type of the output image. Numeric conversions (castings) are done by the C++ defaults.",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/TernaryMagnitudeSquaredImageFilter.json b/Code/BasicFilters/json/TernaryMagnitudeSquaredImageFilter.json
new file mode 100644
index 0000000..941802d
--- /dev/null
+++ b/Code/BasicFilters/json/TernaryMagnitudeSquaredImageFilter.json
@@ -0,0 +1,38 @@
+{
+  "name" : "TernaryMagnitudeSquaredImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 3,
+  "doc" : "",
+  "filter_type" : "itk::TernaryMagnitudeSquaredImageFilter<InputImageType, InputImageType2, InputImageType3, OutputImageType >",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "2d",
+      "description" : "2D",
+      "inputs" : [
+        "Input/STAPLE1.png",
+        "Input/STAPLE2.png",
+        "Input/STAPLE1.png"
+      ],
+      "settings" : [],
+      "md5hash" : "b095bd511398c8d902bf27566760c6dd"
+    },
+    {
+      "tag" : "3d",
+      "description" : "3D",
+      "inputs" : [
+        "Input/RA-Float.nrrd",
+        "Input/RA-Float.nrrd",
+        "Input/RA-Float.nrrd"
+      ],
+      "settings" : [],
+      "tolerance" : 100.0
+    }
+  ],
+  "briefdescription" : "Compute the pixel-wise squared magnitude of three images.",
+  "detaileddescription" : "This class is templated over the types of the three input images and the type of the output image. Numeric conversions (castings) are done by the C++ defaults.",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ThresholdImageFilter.json b/Code/BasicFilters/json/ThresholdImageFilter.json
new file mode 100644
index 0000000..368ea60
--- /dev/null
+++ b/Code/BasicFilters/json/ThresholdImageFilter.json
@@ -0,0 +1,96 @@
+{
+  "name" : "ThresholdImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "filter_type" : "itk::ThresholdImageFilter<InputImageType>",
+  "number_of_inputs" : 1,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "doc" : "",
+  "members" : [
+    {
+      "name" : "Lower",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get methods to set the lower threshold.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get methods to set the lower threshold."
+    },
+    {
+      "name" : "Upper",
+      "type" : "double",
+      "default" : "1.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get methods to set the upper threshold.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get methods to set the upper threshold."
+    },
+    {
+      "name" : "OutsideValue",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "The pixel type must support comparison operators. Set the \"outside\" pixel value. The default value NumericTraits<PixelType>::ZeroValue() .",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"outside\" pixel value."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "Default",
+      "description" : "Default",
+      "md5hash" : "59071590099d21dd439896592338bf95",
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ]
+    },
+    {
+      "tag" : "Threshold1",
+      "description" : "Threshold settings 1",
+      "md5hash" : "f70a31938657e0163b82521af4f8e3b0",
+      "settings" : [
+        {
+          "parameter" : "Lower",
+          "value" : "25000"
+        },
+        {
+          "parameter" : "Upper",
+          "value" : "65535"
+        }
+      ],
+      "inputs" : [
+        "Input/RA-Slice-Short.png"
+      ]
+    },
+    {
+      "tag" : "Threshold2",
+      "description" : "Threshold settings 2",
+      "md5hash" : "898743e4ec2e75c0169d025fb29b7ead",
+      "settings" : [
+        {
+          "parameter" : "Lower",
+          "value" : "0"
+        },
+        {
+          "parameter" : "Upper",
+          "value" : "25000"
+        },
+        {
+          "parameter" : "OutsideValue",
+          "value" : "25000"
+        }
+      ],
+      "inputs" : [
+        "Input/RA-Slice-Short.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Set image values to a user-specified value if they are below, above, or between simple threshold values.",
+  "detaileddescription" : "ThresholdImageFilter sets image values to a user-specified \"outside\" value (by default, \"black\") if the image values are below, above, or between simple threshold values.\n\nThe available methods are:\n\nThresholdAbove() : The values greater than the threshold value are set to OutsideValue\n\nThresholdBelow() : The values less than the threshold value are set to OutsideValue\n\nThresholdOutside() : The values outside the threshold range (less than lower or  [...]
+  "itk_module" : "ITKThresholding",
+  "itk_group" : "Thresholding"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ThresholdMaximumConnectedComponentsImageFilter.json b/Code/BasicFilters/json/ThresholdMaximumConnectedComponentsImageFilter.json
new file mode 100644
index 0000000..e8bfd00
--- /dev/null
+++ b/Code/BasicFilters/json/ThresholdMaximumConnectedComponentsImageFilter.json
@@ -0,0 +1,95 @@
+{
+  "name" : "ThresholdMaximumConnectedComponentsImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "ScalarPixelIDTypeList",
+  "output_pixel_type" : "uint8_t",
+  "members" : [
+    {
+      "name" : "MinimumObjectSizeInPixels",
+      "type" : "uint32_t",
+      "default" : "0u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "The pixel type must support comparison operators. Set the minimum pixel area used to count objects on the image. Thus, only objects that have a pixel area greater than the minimum pixel area will be counted as an object in the optimization portion of this filter. Essentially, it eliminates noise from being counted as an object. The default value is zero.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "The pixel type must support comparison operators. Set the minimum pixel area used to count objects on the image. Thus, only objects that have a pixel area greater than the minimum pixel area will be counted as an object in the optimization portion of this filter. Essentially, it eliminates noise from being counted as an object. The default value is zero."
+    },
+    {
+      "name" : "UpperBoundary",
+      "type" : "double",
+      "default" : "std::numeric_limits<double>::max()",
+      "pixeltype" : "Input",
+      "custom_itk_cast" : "filter->SetUpperBoundary( static_cast<typename InputImageType::PixelType> ( std::min<double>( this->m_UpperBoundary, itk::NumericTraits<typename InputImageType::PixelType>::max() ) ) );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "The following Set/Get methods are for the binary threshold function. This class automatically calculates the lower threshold boundary. The upper threshold boundary, inside value, and outside value can be defined by the user, however the standard values are used as default if not set by the user. The default value of the: Inside value is the maximum pixel type intensity. Outside value is the minimum pixel type intensity. Upper threshold boundary is the ma [...]
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "The following Set/Get methods are for the binary threshold function. This class automatically calculates the lower threshold boundary. The upper threshold boundary, inside value, and outside value can be defined by the user, however the standard values are used as default if not set by the user. The default value of the: Inside value is the maximum pixel type intensity. Outside value is the minimum pixel type intensity. Upper threshold boundary is the ma [...]
+    },
+    {
+      "name" : "InsideValue",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "The following Set/Get methods are for the binary threshold function. This class automatically calculates the lower threshold boundary. The upper threshold boundary, inside value, and outside value can be defined by the user, however the standard values are used as default if not set by the user. The default value of the: Inside value is the maximum pixel type intensity. Outside value is the minimum pixel type intensity. Upper threshold boundary is the ma [...]
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "The following Set/Get methods are for the binary threshold function. This class automatically calculates the lower threshold boundary. The upper threshold boundary, inside value, and outside value can be defined by the user, however the standard values are used as default if not set by the user. The default value of the: Inside value is the maximum pixel type intensity. Outside value is the minimum pixel type intensity. Upper threshold boundary is the ma [...]
+    },
+    {
+      "name" : "OutsideValue",
+      "type" : "uint8_t",
+      "default" : "0u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "The following Set/Get methods are for the binary threshold function. This class automatically calculates the lower threshold boundary. The upper threshold boundary, inside value, and outside value can be defined by the user, however the standard values are used as default if not set by the user. The default value of the: Inside value is the maximum pixel type intensity. Outside value is the minimum pixel type intensity. Upper threshold boundary is the ma [...]
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "The following Set/Get methods are for the binary threshold function. This class automatically calculates the lower threshold boundary. The upper threshold boundary, inside value, and outside value can be defined by the user, however the standard values are used as default if not set by the user. The default value of the: Inside value is the maximum pixel type intensity. Outside value is the minimum pixel type intensity. Upper threshold boundary is the ma [...]
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "2D",
+      "settings" : [],
+      "md5hash" : "c84b75c78c33844251a1095d9cbcffb9",
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    },
+    {
+      "tag" : "parameters",
+      "description" : "2D",
+      "settings" : [
+        {
+          "parameter" : "MinimumObjectSizeInPixels",
+          "cxx_value" : "40u",
+          "value" : "40"
+        },
+        {
+          "parameter" : "UpperBoundary",
+          "value" : "150"
+        }
+      ],
+      "md5hash" : "27c6cf8494fcc4e414f1c420e7a9ca6f",
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    },
+    {
+      "tag" : "float",
+      "description" : "3D-float",
+      "settings" : [],
+      "md5hash" : "e475b27bd0dd66ede330c4eab93c17e9",
+      "inputs" : [
+        "Input/RA-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Finds the threshold value of an image based on maximizing the number of objects in the image that are larger than a given minimal size.",
+  "detaileddescription" : "\\par \nThis method is based on Topological Stable State Thresholding to calculate the threshold set point. This method is particularly effective when there are a large number of objects in a microscopy image. Compiling in Debug mode and enable the debug flag for this filter to print debug information to see how the filter focuses in on a threshold value. Please see the Insight Journal's MICCAI 2005 workshop for a complete description. References are below.\n\n [...]
+  "itk_module" : "ITKConnectedComponents",
+  "itk_group" : "ConnectedComponents"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ThresholdSegmentationLevelSetImageFilter.json b/Code/BasicFilters/json/ThresholdSegmentationLevelSetImageFilter.json
new file mode 100644
index 0000000..e15da0d
--- /dev/null
+++ b/Code/BasicFilters/json/ThresholdSegmentationLevelSetImageFilter.json
@@ -0,0 +1,112 @@
+{
+  "name" : "ThresholdSegmentationLevelSetImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 2,
+  "pixel_types" : "RealPixelIDTypeList",
+  "filter_type" : "itk::ThresholdSegmentationLevelSetImageFilter<InputImageType, InputImageType>",
+  "custom_set_input" : "filter->SetInput( image1 ); filter->SetFeatureImage( image2 );",
+  "members" : [
+    {
+      "name" : "LowerThreshold",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "UpperThreshold",
+      "type" : "double",
+      "default" : "255.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Get/Set the threshold values that will be used to calculate the speed function.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MaximumRMSError",
+      "type" : "double",
+      "default" : 0.02,
+      "doc" : "Value of RMS change below which the filter should stop. This is a convergence criterion."
+    },
+    {
+      "name" : "PropagationScaling",
+      "type" : "double",
+      "default" : "1.0",
+      "doc" : "Weight of direct propagation contribution to the speed term"
+    },
+    {
+      "name" : "CurvatureScaling",
+      "type" : "double",
+      "default" : "1.0",
+      "doc" : "Weight of the curvature contribution to the speed term"
+    },
+    {
+      "name" : "NumberOfIterations",
+      "type" : "uint32_t",
+      "default" : "1000u",
+      "doc" : "Number of iterations to run"
+    },
+    {
+      "name" : "ReverseExpansionDirection",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "Turn On/Off the flag which determines whether Positive or Negative speed terms will cause surface expansion.  If set to TRUE then negative speed terms will cause the surface to expand and positive speed terms will cause the surface to contract.  If set to FALSE (default) then positive speed terms will cause the surface to expand and negative speed terms will cause the surface to contract.  This method can be safely used to reverse the expansion/contraction as appropriate t [...]
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "ElapsedIterations",
+      "type" : "uint32_t",
+      "default" : 0,
+      "briefdescriptionGet" : "Number of iterations run."
+    },
+    {
+      "name" : "RMSChange",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "The Root Mean Square of the levelset upon termination."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "cthead",
+      "description" : "Segmentation of brain in CT",
+      "settings" : [
+        {
+          "parameter" : "LowerThreshold",
+          "value" : "76"
+        },
+        {
+          "parameter" : "UpperThreshold",
+          "value" : "147"
+        }
+      ],
+      "tolerance" : 0.1,
+      "measurements_results" : [
+        {
+          "name" : "ElapsedIterations",
+          "value" : 350,
+          "tolerance" : 25
+        },
+        {
+          "name" : "RMSChange",
+          "value" : 0.015,
+          "tolerance" : 0.005
+        }
+      ],
+      "inputs" : [
+        "Input/cthead1-ls-seed.nrrd",
+        "Input/cthead1-Float.mha"
+      ]
+    }
+  ],
+  "briefdescription" : "Segments structures in images based on intensity values.",
+  "detaileddescription" : "\\par IMPORTANT\nThe SegmentationLevelSetImageFilter class and the ThresholdSegmentationLevelSetFunction class contain additional information necessary to the full understanding of how to use this filter.\n\n\\par OVERVIEW\nThis class is a level set method segmentation filter. It constructs a speed function which is close to zero at the upper and lower bounds of an intensity window, effectively locking the propagating front onto those edges. Elsewhere, the fron [...]
+  "itk_module" : "ITKLevelSets",
+  "itk_group" : "LevelSets"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/TikhonovDeconvolutionImageFilter.json b/Code/BasicFilters/json/TikhonovDeconvolutionImageFilter.json
new file mode 100644
index 0000000..6477b70
--- /dev/null
+++ b/Code/BasicFilters/json/TikhonovDeconvolutionImageFilter.json
@@ -0,0 +1,75 @@
+{
+  "name" : "TikhonovDeconvolutionImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "include_files" : [
+    "sitkBoundaryConditions.hxx"
+  ],
+  "custom_set_input" : "filter->SetInput( image1 ); filter->SetKernelImage( image2 );",
+  "members" : [
+    {
+      "name" : "RegularizationConstant",
+      "type" : "double",
+      "default" : "0.0",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "The regularization factor. Larger values reduce the dominance of noise in the solution, but results in higher approximation error in the deblurred image. Default value is 0.0, yielding the same results as the InverseDeconvolutionImageFilter .",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "The regularization factor. Larger values reduce the dominance of noise in the solution, but results in higher approximation error in the deblurred image. Default value is 0.0, yielding the same results as the InverseDeconvolutionImageFilter ."
+    },
+    {
+      "name" : "Normalize",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Normalize the output image by the sum of the kernel components\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "BoundaryCondition",
+      "enum" : [
+        "ZERO_PAD",
+        "ZERO_FLUX_NEUMANN_PAD",
+        "PERIODIC_PAD"
+      ],
+      "default" : "itk::simple::TikhonovDeconvolutionImageFilter::ZERO_FLUX_NEUMANN_PAD",
+      "custom_itk_cast" : "nsstd::auto_ptr< ImageBoundaryCondition< InputImageType > > bc( CreateNewBoundaryConditionInstance< Self, FilterType >( m_BoundaryCondition ) ); filter->SetBoundaryCondition( bc.get() );\n"
+    },
+    {
+      "name" : "OutputRegionMode",
+      "enum" : [
+        "SAME",
+        "VALID"
+      ],
+      "default" : "itk::simple::TikhonovDeconvolutionImageFilter::SAME",
+      "itk_type" : "typename FilterType::OutputRegionModeType"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Tikhonov deconvolution of image blurred with a Gaussian kernel",
+      "settings" : [
+        {
+          "parameter" : "Normalize",
+          "value" : "true",
+          "python_value" : "True",
+          "R_value" : "TRUE"
+        }
+      ],
+      "tolerance" : "0.0001",
+      "inputs" : [
+        "Input/DeconvolutionInput.nrrd",
+        "Input/DeconvolutionKernel.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "An inverse deconvolution filter regularized in the Tikhonov sense.",
+  "detaileddescription" : "The Tikhonov deconvolution filter is the inverse deconvolution filter with a regularization term added to the denominator. The filter minimizes the equation \\f[ ||\\hat{f} \\otimes h - g||_{L_2}^2 + \\mu||\\hat{f}||^2 \\f] where \\f$\\hat{f}\\f$ is the estimate of the unblurred image, \\f$h\\f$ is the blurring kernel, \\f$g\\f$ is the blurred image, and \\f$\\mu\\f$ is a non-negative real regularization function.\n\nThe filter applies a kernel described in the [...]
+  "itk_module" : "ITKDeconvolution",
+  "itk_group" : "Deconvolution"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/TileImageFilter.json b/Code/BasicFilters/json/TileImageFilter.json
new file mode 100644
index 0000000..f411442
--- /dev/null
+++ b/Code/BasicFilters/json/TileImageFilter.json
@@ -0,0 +1,115 @@
+{
+  "name" : "TileImageFilter",
+  "template_code_filename" : "MultiInputImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Layout",
+      "type" : "uint32_t",
+      "default" : "std::vector<uint32_t>(3, 100)",
+      "dim_vec" : 1,
+      "itk_type" : "typename FilterType::LayoutArrayType"
+    },
+    {
+      "name" : "DefaultPixelValue",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Output"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "tile 3 images",
+      "settings" : [],
+      "md5hash" : "c70685e01c7409914f7664c248b69785",
+      "inputs" : [
+        "Input/Ramp-One-Zero-Float.nrrd",
+        "Input/Ramp-Zero-One-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "2by2",
+      "description" : "tile 3 images 2x2",
+      "settings" : [
+        {
+          "parameter" : "Layout",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            2,
+            2
+          ]
+        }
+      ],
+      "md5hash" : "f3015eeed7d0370ba93bdf1bd6630ae0",
+      "inputs" : [
+        "Input/cthead1.png",
+        "Input/cthead1.png",
+        "Input/cthead1.png"
+      ]
+    },
+    {
+      "tag" : "input1",
+      "description" : "one input",
+      "settings" : [],
+      "md5hash" : "6917e69a9b0afebd88d732fccfaf0d24",
+      "inputs" : [
+        "Input/Ramp-One-Zero-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "input2",
+      "description" : "two input",
+      "settings" : [],
+      "md5hash" : "882bddbd8a2961f76e7f72da9818c1ea",
+      "inputs" : [
+        "Input/Ramp-One-Zero-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "input3",
+      "description" : "three input",
+      "settings" : [],
+      "md5hash" : "923a6a6697b31ce15b859cddd6f7639f",
+      "inputs" : [
+        "Input/Ramp-One-Zero-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "input4",
+      "description" : "four input",
+      "settings" : [],
+      "md5hash" : "5498cbc56a48a749470da30c8385ae62",
+      "inputs" : [
+        "Input/Ramp-One-Zero-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd"
+      ]
+    },
+    {
+      "tag" : "input5",
+      "description" : "five input",
+      "settings" : [],
+      "md5hash" : "1e935c866ca4327b59cfe6b996993091",
+      "inputs" : [
+        "Input/Ramp-One-Zero-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd",
+        "Input/Ramp-One-Zero-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Tile multiple input images into a single output image.",
+  "detaileddescription" : "This filter will tile multiple images using a user-specified layout. The tile sizes will be large enough to accommodate the largest image for each tile. The layout is specified with the SetLayout method. The layout has the same dimension as the output image. If all entries of the layout are positive, the tiled output will contain the exact number of tiles. If the layout contains a 0 in the last dimension, the filter will compute a size that will accommodate all [...]
+  "itk_module" : "ITKImageGrid",
+  "itk_group" : "ImageGrid"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/TransformToDisplacementFieldFilter.json b/Code/BasicFilters/json/TransformToDisplacementFieldFilter.json
new file mode 100644
index 0000000..7871592
--- /dev/null
+++ b/Code/BasicFilters/json/TransformToDisplacementFieldFilter.json
@@ -0,0 +1,91 @@
+{
+  "name" : "TransformToDisplacementFieldFilter",
+  "template_code_filename" : "ImageSource",
+  "doc" : "",
+  "number_of_inputs" : 0,
+  "pixel_types" : "RealVectorPixelIDTypeList",
+  "output_image_type" : " itk::Image< Vector<typename NumericTraits<typename TImageType::PixelType>::ValueType, TImageType::ImageDimension >, TImageType::ImageDimension >",
+  "filter_type" : "itk::TransformToDisplacementFieldFilter<OutputImageType>",
+  "include_files" : [
+    "sitkTransform.h"
+  ],
+  "inputs" : [
+    {
+      "name" : "Transform",
+      "type" : "Transform",
+      "custom_itk_cast" : "const typename FilterType::TransformType *itkTx = dynamic_cast<const typename FilterType::TransformType *>(inTransform->GetITKBase() );\n  if ( !itkTx )\n    {\n    sitkExceptionMacro( \"Unexpected error converting transform! Possible miss matching dimensions!\" );\n    }\n  else { filter->SetTransform( itkTx ); }"
+    }
+  ],
+  "members" : [
+    {
+      "name" : "OutputPixelType",
+      "type" : "PixelIDValueEnum",
+      "default" : "itk::simple::sitkVectorFloat64",
+      "custom_itk_cast" : "",
+      "briefdescriptionSet" : "Set the output pixel type, only sitkVectorFloat32 and sitkVectorFloat64 are supported.",
+      "briefdescriptionGet" : "Get the ouput pixel type."
+    },
+    {
+      "name" : "Size",
+      "type" : "unsigned int",
+      "dim_vec" : 1,
+      "default" : "std::vector<unsigned int>(3, 64)",
+      "itk_type" : "typename FilterType::SizeType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the size of the output image.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the size of the output image."
+    },
+    {
+      "name" : "OutputOrigin",
+      "type" : "double",
+      "dim_vec" : 1,
+      "default" : "std::vector<double>(3, 0.0)",
+      "itk_type" : "typename FilterType::PointType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the output image origin.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the output image origin."
+    },
+    {
+      "name" : "OutputSpacing",
+      "type" : "double",
+      "dim_vec" : 1,
+      "default" : "std::vector<double>(3, 1.0)",
+      "itk_type" : "typename FilterType::SpacingType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the output image spacing.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the output image spacing."
+    },
+    {
+      "name" : "OutputDirection",
+      "type" : "std::vector<double>",
+      "default" : "std::vector<double>()",
+      "doc" : "Passing a zero sized array, defaults to identiy matrix. The size of the array must exactly match the direction matrix for the dimension of the image.",
+      "custom_itk_cast" : "filter->SetOutputDirection( sitkSTLToITKDirection<typename FilterType::DirectionType>( this->m_OutputDirection ) );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the output direction cosine matrix.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set the output direction cosine matrix."
+    }
+  ],
+  "custom_methods" : [
+    {
+      "name" : "SetReferenceImage",
+      "doc" : "This methods sets the size, origin, spacing and direction to that of the provided image",
+      "return_type" : "void",
+      "parameters" : [
+        {
+          "type" : "const Image &",
+          "var_name" : "refImage"
+        }
+      ],
+      "body" : "this->SetSize( refImage.GetSize() ); this->SetOutputOrigin( refImage.GetOrigin() ); this->SetOutputSpacing( refImage.GetSpacing() );this->SetOutputDirection( refImage.GetDirection() );"
+    }
+  ],
+  "briefdescription" : "Generate a displacement field from a coordinate transform.",
+  "detaileddescription" : "Output information (spacing, size and direction) for the output image should be set. This information has the normal defaults of unit spacing, zero origin and identity direction. Optionally, the output information can be obtained from a reference image. If the reference image is provided and UseReferenceImage is On, then the spacing, origin and direction of the reference image will be used.\n\nSince this filter produces an image which is a different size than i [...]
+  "itk_module" : "ITKDisplacementField",
+  "itk_group" : "DisplacementField"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/TriangleThresholdImageFilter.json b/Code/BasicFilters/json/TriangleThresholdImageFilter.json
new file mode 100644
index 0000000..69390a8
--- /dev/null
+++ b/Code/BasicFilters/json/TriangleThresholdImageFilter.json
@@ -0,0 +1,132 @@
+{
+  "name" : "TriangleThresholdImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "Docs",
+  "number_of_inputs" : 0,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_image_type" : "itk::Image< uint8_t, TImageType::ImageDimension>",
+  "filter_type" : "itk::TriangleThresholdImageFilter< TImageType, OutputImageType, OutputImageType >",
+  "inputs" : [
+    {
+      "name" : "Image",
+      "type" : "Image"
+    },
+    {
+      "name" : "MaskImage",
+      "type" : "Image",
+      "optional" : true
+    }
+  ],
+  "members" : [
+    {
+      "name" : "InsideValue",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the \"inside\" pixel value.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"inside\" pixel value.\n"
+    },
+    {
+      "name" : "OutsideValue",
+      "type" : "uint8_t",
+      "default" : "0u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"outside\" pixel value.\n"
+    },
+    {
+      "name" : "NumberOfHistogramBins",
+      "type" : "uint32_t",
+      "default" : "256u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the number of histogram bins.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MaskOutput",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Do you want the output to be masked by the mask used in histogram construction. Only relevant if masking is in use.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MaskValue",
+      "type" : "uint8_t",
+      "default" : "255u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "The value in the mask image, if used, indicating voxels that should be included. Default is the max of pixel type, as in the MaskedImageToHistogramFilter",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "Threshold",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "Get the computed threshold."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "6407fbe2108de8b2abf06991c0e8ab12",
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 25018
+        }
+      ]
+    },
+    {
+      "tag" : "cthead1_with_mask",
+      "description" : "CT Head with mask",
+      "settings" : [],
+      "md5hash" : "4402dc865b8ed2404c8c5deeab3bed02",
+      "inputs" : [
+        "Input/cthead1.png",
+        "Input/cthead1-mask.png"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 148.0
+        }
+      ]
+    },
+    {
+      "tag" : "default_on_float",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "d3dbb3237f7af897383d5f9373a9ed22",
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 0.00976571,
+          "tolerance" : 1e-05
+        }
+      ]
+    }
+  ],
+  "briefdescription" : "Threshold an image using the Triangle Threshold.",
+  "detaileddescription" : "This filter creates a binary thresholded image that separates an image into foreground and background components. The filter computes the threshold using the TriangleThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .\n\n\\author Richard Beare. Department of Medicine, Monash University, Melbourne, Australia. \n\nGaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\ [...]
+  "itk_module" : "ITKThresholding",
+  "itk_group" : "Thresholding"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/UnaryMinusImageFilter.json b/Code/BasicFilters/json/UnaryMinusImageFilter.json
new file mode 100644
index 0000000..41bf329
--- /dev/null
+++ b/Code/BasicFilters/json/UnaryMinusImageFilter.json
@@ -0,0 +1,52 @@
+{
+  "name" : "UnaryMinusImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "typelist::Append< SignedPixelIDTypeList, ComplexPixelIDTypeList >::Type",
+  "filter_type" : "itk::UnaryFunctorImageFilter< InputImageType, OutputImageType, itk::Functor::UnaryMinus<typename InputImageType::PixelType, typename OutputImageType::PixelType> >",
+  "vector_pixel_types_by_component" : "SignedVectorPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "short",
+      "description" : "Run on a short image",
+      "settings" : [],
+      "md5hash" : "a3f518ba0be98bf6903f49dcc6937645",
+      "inputs" : [
+        "Input/RA-Slice-Short.nrrd"
+      ]
+    },
+    {
+      "tag" : "float",
+      "description" : "Run on a float image",
+      "settings" : [],
+      "md5hash" : "ded119ebd73f6331ee3b29048fba4b6d",
+      "inputs" : [
+        "Input/cthead1-Float.mha"
+      ]
+    },
+    {
+      "tag" : "complex",
+      "description" : "Run on a complex image",
+      "settings" : [],
+      "md5hash" : "5e444ac1752722e34aaa9bb77685cad4",
+      "inputs" : [
+        "Input/RA-FFT-Complex.nrrd"
+      ]
+    },
+    {
+      "tag" : "RGBFloat",
+      "description" : "Run on a vector of floats image",
+      "settings" : [],
+      "md5hash" : "3f67a4b24d58c878c1768900a897e12b",
+      "inputs" : [
+        "Input/VM1111Shrink-RGBFloat.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the negative of each pixel.\n",
+  "detaileddescription" : "",
+  "itk_module" : "ITKCommon"
+}
diff --git a/Code/BasicFilters/json/ValuedRegionalMaximaImageFilter.json b/Code/BasicFilters/json/ValuedRegionalMaximaImageFilter.json
new file mode 100644
index 0000000..ea6d579
--- /dev/null
+++ b/Code/BasicFilters/json/ValuedRegionalMaximaImageFilter.json
@@ -0,0 +1,37 @@
+{
+  "name" : "ValuedRegionalMaximaImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "ScalarPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false"
+    }
+  ],
+  "custom_methods" : [],
+  "measurements" : [
+    {
+      "name" : "Flat",
+      "type" : "bool",
+      "default" : "false"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "md5hash" : "c94b3702844c508818e4718a75102472",
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Transforms the image so that any pixel that is not a regional maxima is set to the minimum value for the pixel type. Pixels that are regional maxima retain their value.",
+  "detaileddescription" : "Regional maxima are flat zones surrounded by pixels of lower value. A completely flat image will be marked as a regional maxima by this filter.\n\nThis code was contributed in the Insight Journal paper: \"Finding regional extrema - methods and performance\" by Beare R., Lehmann G. https://hdl.handle.net/1926/153 http://www.insight-journal.org/browse/publication/65 \n\n\\author Richard Beare. Department of Medicine, Monash University, Melbourne, Australia.\n\n\\ [...]
+  "itk_module" : "ITKReview",
+  "itk_group" : "Review"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ValuedRegionalMinimaImageFilter.json b/Code/BasicFilters/json/ValuedRegionalMinimaImageFilter.json
new file mode 100644
index 0000000..6338f41
--- /dev/null
+++ b/Code/BasicFilters/json/ValuedRegionalMinimaImageFilter.json
@@ -0,0 +1,37 @@
+{
+  "name" : "ValuedRegionalMinimaImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "ScalarPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false"
+    }
+  ],
+  "custom_methods" : [],
+  "measurements" : [
+    {
+      "name" : "Flat",
+      "type" : "bool",
+      "default" : "false"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "md5hash" : "8297d018757b1477e31293ab8a8f0db1",
+      "inputs" : [
+        "Input/cthead1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Transforms the image so that any pixel that is not a regional minima is set to the maximum value for the pixel type. Pixels that are regional minima retain their value.",
+  "detaileddescription" : "Regional minima are flat zones surrounded by pixels of higher value. A completely flat image will be marked as a regional minima by this filter.\n\nThis code was contributed in the Insight Journal paper: \"Finding regional extrema - methods and performance\" by Beare R., Lehmann G. https://hdl.handle.net/1926/153 http://www.insight-journal.org/browse/publication/65 \n\n\\author Richard Beare. Department of Medicine, Monash University, Melbourne, Australia.\n\n\ [...]
+  "itk_module" : "ITKReview",
+  "itk_group" : "Review"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/VectorConfidenceConnectedImageFilter.json b/Code/BasicFilters/json/VectorConfidenceConnectedImageFilter.json
new file mode 100644
index 0000000..12795a9
--- /dev/null
+++ b/Code/BasicFilters/json/VectorConfidenceConnectedImageFilter.json
@@ -0,0 +1,107 @@
+{
+  "name" : "VectorConfidenceConnectedImageFilter",
+  "template_code_filename" : "RegionGrowingImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "template_type" : "RegionGrowing",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "VectorPixelIDTypeList",
+  "output_pixel_type" : "uint8_t",
+  "members" : [
+    {
+      "name" : "NumberOfIterations",
+      "type" : "unsigned int",
+      "default" : "4u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the number of iterations",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the number of iterations"
+    },
+    {
+      "name" : "Multiplier",
+      "type" : "double",
+      "default" : "4.5",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the multiplier to define the confidence interval. Multiplier can be anything greater than zero. A typical value is 2.5",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the multiplier to define the confidence interval. Multiplier can be anything greater than zero. A typical value is 2.5"
+    },
+    {
+      "name" : "InitialNeighborhoodRadius",
+      "type" : "unsigned int",
+      "default" : "1u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Get/Set the radius of the neighborhood over which the statistics are evaluated",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get/Set the radius of the neighborhood over which the statistics are evaluated"
+    },
+    {
+      "name" : "ReplaceValue",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get value to replace thresholded pixels",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get value to replace thresholded pixels"
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "Mean",
+      "type" : "std::vector<double>",
+      "default" : "std::vector<double>()",
+      "custom_itk_cast" : "this->m_Mean = std::vector<double>( filter->GetMean().begin(), filter->GetMean().end() );",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the Mean Vector computed during the segmentation"
+    },
+    {
+      "name" : "Covariance",
+      "type" : "std::vector<double>",
+      "default" : "std::vector<double>()",
+      "custom_itk_cast" : "this->m_Covariance = std::vector<double>( filter->GetCovariance().begin(), filter->GetCovariance().end() );",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the Covariance matrix computed during the segmentation"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "VM_segmentation",
+      "description" : "Simply run with default settings",
+      "settings" : [
+        {
+          "parameter" : "SeedList",
+          "dim" : 2,
+          "value" : [
+            "{10,10}"
+          ],
+          "tcl_value" : [
+            "10 10"
+          ],
+          "python_value" : [
+            "[10,10]"
+          ],
+          "ruby_value" : [
+            "[10,10]"
+          ],
+          "R_value" : [
+            "c(10,10)"
+          ]
+        },
+        {
+          "parameter" : "InitialNeighborhoodRadius",
+          "cxx_value" : "10u",
+          "value" : "10"
+        }
+      ],
+      "md5hash" : "d9617e028958be235069f542d1c2111b",
+      "inputs" : [
+        "Input/VM1111Shrink-RGBFloat.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Segment pixels with similar statistics using connectivity.",
+  "detaileddescription" : "This filter extracts a connected set of pixels whose pixel intensities are consistent with the pixel statistics of a seed point. The mean and variance across a neighborhood (8-connected, 26-connected, etc.) are calculated for a seed point. Then pixels connected to this seed point whose values are within the confidence interval for the seed point are grouped. The width of the confidence interval is controlled by the \"Multiplier\" variable (the confidence interv [...]
+  "itk_module" : "ITKRegionGrowing",
+  "itk_group" : "RegionGrowing"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/VectorConnectedComponentImageFilter.json b/Code/BasicFilters/json/VectorConnectedComponentImageFilter.json
new file mode 100644
index 0000000..2860acf
--- /dev/null
+++ b/Code/BasicFilters/json/VectorConnectedComponentImageFilter.json
@@ -0,0 +1,49 @@
+{
+  "name" : "VectorConnectedComponentImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "\todo Add suport for mask image input",
+  "pixel_types" : "RealVectorPixelIDTypeList",
+  "filter_type" : "itk::VectorConnectedComponentImageFilter<InputImageType, OutputImageType, itk::Image<uint8_t, InputImageType::ImageDimension> >",
+  "output_pixel_type" : "uint32_t",
+  "members" : [
+    {
+      "name" : "DistanceThreshold",
+      "type" : "double",
+      "default" : "1.0",
+      "custom_itk_cast" : "filter->SetDistanceThreshold( static_cast<typename FilterType::InputValueType>( this->m_DistanceThreshold ) );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "FullyConnected",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : ""
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "wDistance",
+      "description" : "2D RGB",
+      "settings" : [
+        {
+          "parameter" : "DistanceThreshold",
+          "value" : "0.01"
+        }
+      ],
+      "md5hash" : "0dbaaa98c1da2d8e1865c95e53a542de",
+      "inputs" : [
+        "Input/noisy-vector-grid.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "A connected components filter that labels the objects in a vector image. Two vectors are pointing similar directions if one minus their dot product is less than a threshold. Vectors that are 180 degrees out of phase are similar. Assumes that vectors are normalized.",
+  "detaileddescription" : "",
+  "itk_module" : "ITKConnectedComponents",
+  "itk_group" : "ConnectedComponents"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/VectorIndexSelectionCastImageFilter.json b/Code/BasicFilters/json/VectorIndexSelectionCastImageFilter.json
new file mode 100644
index 0000000..0308820
--- /dev/null
+++ b/Code/BasicFilters/json/VectorIndexSelectionCastImageFilter.json
@@ -0,0 +1,52 @@
+{
+  "name" : "VectorIndexSelectionCastImageFilter",
+  "template_code_filename" : "DualImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "VectorPixelIDTypeList",
+  "pixel_types2" : "typelist::Append<BasicPixelIDTypeList,VectorPixelIDTypeList>::Type",
+  "custom_type2" : "const PixelIDValueEnum type2 = (m_OutputPixelType != sitkUnknown) ? m_OutputPixelType : type1;",
+  "output_pixel_type" : "typename InputImageType2::InternalPixelType",
+  "members" : [
+    {
+      "name" : "Index",
+      "type" : "unsigned int",
+      "default" : "0u",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Get/Set methods for the index",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "OutputPixelType",
+      "type" : "PixelIDValueEnum",
+      "default" : "itk::simple::sitkUnknown",
+      "custom_itk_cast" : "",
+      "briefdescriptionSet" : "Set the output pixel type of the scalar component to extract.",
+      "briefdescriptionGet" : "Get the ouput pixel type."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "blue",
+      "description" : "Extract blue from VH slice",
+      "settings" : [
+        {
+          "parameter" : "Index",
+          "cxx_value" : "2u",
+          "value" : "2"
+        }
+      ],
+      "md5hash" : "da3f74fce21be8b788da331377f7f361",
+      "inputs" : [
+        "Input/VM1111Shrink-RGBFloat.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Extracts the selected index of the vector that is the input pixel type.",
+  "detaileddescription" : "This filter is templated over the input image type and output image type.\n\nThe filter expect the input image pixel type to be a vector and the output image pixel type to be a scalar. The only requirement on the type used for representing the vector is that it must provide an operator[].\n\n\\see ComposeImageFilter \n\n\\par Wiki Examples:\n\n\\li All Examples \n\n\\li Extract a component/channel of a vector image",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/VectorMagnitudeImageFilter.json b/Code/BasicFilters/json/VectorMagnitudeImageFilter.json
new file mode 100644
index 0000000..9c72bbc
--- /dev/null
+++ b/Code/BasicFilters/json/VectorMagnitudeImageFilter.json
@@ -0,0 +1,25 @@
+{
+  "name" : "VectorMagnitudeImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "VectorPixelIDTypeList",
+  "filter_type" : "itk::VectorMagnitudeImageFilter< InputImageType, itk::Image<typename itk::NumericTraits< typename InputImageType::PixelType >::ValueType, InputImageType::ImageDimension> >",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "3d",
+      "description" : "3D",
+      "settings" : [],
+      "tolerance" : "0.0001",
+      "inputs" : [
+        "Input/RA-Gradient.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Take an image of vectors as input and produce an image with the magnitude of those vectors.",
+  "detaileddescription" : "The filter expects the input image pixel type to be a vector and the output image pixel type to be a scalar.\n\nThis filter assumes that the PixelType of the input image is a VectorType that provides a GetNorm() method.\n\n\\par Wiki Examples:\n\n\\li All Examples \n\n\\li Compute the magnitude of each pixel in a vector image to produce a magnitude image",
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/VotingBinaryHoleFillingImageFilter.json b/Code/BasicFilters/json/VotingBinaryHoleFillingImageFilter.json
new file mode 100644
index 0000000..d417e9b
--- /dev/null
+++ b/Code/BasicFilters/json/VotingBinaryHoleFillingImageFilter.json
@@ -0,0 +1,65 @@
+{
+  "name" : "VotingBinaryHoleFillingImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Radius",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 1)",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "doc" : "",
+      "itk_type" : "typename FilterType::InputSizeType"
+    },
+    {
+      "name" : "MajorityThreshold",
+      "type" : "unsigned int",
+      "default" : "1u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Majority threshold. It is the number of pixels over 50% that will decide whether an OFF pixel will become ON or not. For example, if the neighborhood of a pixel has 124 pixels (excluding itself), the 50% will be 62, and if you set upd a Majority threshold of 5, that means that the filter will require 67 or more neighbor pixels to be ON in order to switch the current OFF pixel to ON. The default value is 1.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Majority threshold. It is the number of pixels over 50% that will decide whether an OFF pixel will become ON or not. For example, if the neighborhood of a pixel has 124 pixels (excluding itself), the 50% will be 62, and if you set upd a Majority threshold of 5, that means that the filter will require 67 or more neighbor pixels to be ON in order to switch the current OFF pixel to ON. The default value is 1."
+    },
+    {
+      "name" : "ForegroundValue",
+      "type" : "double",
+      "default" : "1.0",
+      "pixeltype" : "Input"
+    },
+    {
+      "name" : "BackgroundValue",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Input"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "VotingBinary",
+      "description" : "Basic voting hole filling",
+      "settings" : [
+        {
+          "parameter" : "Radius",
+          "no_get_method" : 1,
+          "value" : 5
+        },
+        {
+          "parameter" : "ForegroundValue",
+          "value" : "255.0"
+        }
+      ],
+      "md5hash" : "accc574edffef3c6ac37d13e28a524c0",
+      "inputs" : [
+        "Input/STAPLE1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Fills in holes and cavities by applying a voting operation on each pixel.",
+  "detaileddescription" : "\\see Image \n\n\\see VotingBinaryImageFilter \n\n\\see VotingBinaryIterativeHoleFillingImageFilter \n\n\\see Neighborhood \n\n\\see NeighborhoodOperator \n\n\\see NeighborhoodIterator",
+  "itk_module" : "ITKLabelVoting",
+  "itk_group" : "LabelVoting"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/VotingBinaryImageFilter.json b/Code/BasicFilters/json/VotingBinaryImageFilter.json
new file mode 100644
index 0000000..efce350
--- /dev/null
+++ b/Code/BasicFilters/json/VotingBinaryImageFilter.json
@@ -0,0 +1,95 @@
+{
+  "name" : "VotingBinaryImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Radius",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 1)",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "doc" : "",
+      "itk_type" : "typename FilterType::InputSizeType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the radius of the neighborhood used to compute the median.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the radius of the neighborhood used to compute the median"
+    },
+    {
+      "name" : "BirthThreshold",
+      "type" : "unsigned int",
+      "default" : "1u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Birth threshold. Pixels that are OFF will turn ON when the number of neighbors ON is larger than the value defined in this threshold.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Birth threshold. Pixels that are OFF will turn ON when the number of neighbors ON is larger than the value defined in this threshold."
+    },
+    {
+      "name" : "SurvivalThreshold",
+      "type" : "unsigned int",
+      "default" : "1u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Survival threshold. Pixels that are ON will turn OFF when the number of neighbors ON is smaller than the value defined in this survival threshold.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Survival threshold. Pixels that are ON will turn OFF when the number of neighbors ON is smaller than the value defined in this survival threshold."
+    },
+    {
+      "name" : "ForegroundValue",
+      "type" : "double",
+      "default" : "1.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the value associated with the Foreground (or the object) on the binary input image and the Background .",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the value associated with the Foreground (or the object) on the binary input image and the Background ."
+    },
+    {
+      "name" : "BackgroundValue",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the value associated with the Foreground (or the object) on the binary input image and the Background .",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the value associated with the Foreground (or the object) on the binary input image and the Background ."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "No parameters changed",
+      "settings" : [],
+      "md5hash" : "eb8edfef34f6e58075d619891c6c3f5a",
+      "inputs" : [
+        "Input/BlackDots.png"
+      ]
+    },
+    {
+      "tag" : "VotingBinary",
+      "description" : "Basic voting",
+      "settings" : [
+        {
+          "parameter" : "Radius",
+          "no_get_method" : 1,
+          "value" : 3
+        },
+        {
+          "parameter" : "ForegroundValue",
+          "value" : "255.0"
+        }
+      ],
+      "md5hash" : "f7b28f228b1784664b82f4dd1417be4c",
+      "inputs" : [
+        "Input/BlackDots.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Applies a voting operation in a neighborhood of each pixel.",
+  "detaileddescription" : "\\note Pixels which are not Foreground or Background will remain unchanged.\n\n\\see Image \n\n\\see Neighborhood \n\n\\see NeighborhoodOperator \n\n\\see NeighborhoodIterator",
+  "itk_module" : "ITKLabelVoting",
+  "itk_group" : "LabelVoting"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/VotingBinaryIterativeHoleFillingImageFilter.json b/Code/BasicFilters/json/VotingBinaryIterativeHoleFillingImageFilter.json
new file mode 100644
index 0000000..961c509
--- /dev/null
+++ b/Code/BasicFilters/json/VotingBinaryIterativeHoleFillingImageFilter.json
@@ -0,0 +1,87 @@
+{
+  "name" : "VotingBinaryIterativeHoleFillingImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "filter_type" : "itk::VotingBinaryIterativeHoleFillingImageFilter<InputImageType>",
+  "members" : [
+    {
+      "name" : "Radius",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 1)",
+      "dim_vec" : 1,
+      "set_as_scalar" : 1,
+      "doc" : "",
+      "itk_type" : "typename FilterType::InputSizeType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the radius of the neighborhood used to compute the median.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the radius of the neighborhood used to compute the median"
+    },
+    {
+      "name" : "MaximumNumberOfIterations",
+      "type" : "unsigned int",
+      "default" : "10u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Maximum number of iterations. This filter is executed iteratively as long as at least one pixel has changed in a previous iteration, or until the maximum number of iterations has been reached.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Maximum number of iterations. This filter is executed iteratively as long as at least one pixel has changed in a previous iteration, or until the maximum number of iterations has been reached."
+    },
+    {
+      "name" : "MajorityThreshold",
+      "type" : "unsigned int",
+      "default" : "1u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Majority threshold. It is the number of pixels over 50% that will decide whether an OFF pixel will become ON or not. For example, if the neighborhood of a pixel has 124 pixels (excluding itself), the 50% will be 62, and if you set upd a Majority threshold of 5, that means that the filter will require 67 or more neighbor pixels to be ON in order to switch the current OFF pixel to ON. The default value is 1.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Majority threshold. It is the number of pixels over 50% that will decide whether an OFF pixel will become ON or not. For example, if the neighborhood of a pixel has 124 pixels (excluding itself), the 50% will be 62, and if you set upd a Majority threshold of 5, that means that the filter will require 67 or more neighbor pixels to be ON in order to switch the current OFF pixel to ON. The default value is 1."
+    },
+    {
+      "name" : "ForegroundValue",
+      "type" : "double",
+      "default" : "1.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the value associated with the Foreground (or the object) on the binary input image and the Background .",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the value associated with the Foreground (or the object) on the binary input image and the Background ."
+    },
+    {
+      "name" : "BackgroundValue",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the value associated with the Foreground (or the object) on the binary input image and the Background .",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the value associated with the Foreground (or the object) on the binary input image and the Background ."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "VotingBinaryIterativeHoleFiling",
+      "description" : "Basic voting interative hole filling",
+      "settings" : [
+        {
+          "parameter" : "Radius",
+          "no_get_method" : 1,
+          "value" : 5
+        },
+        {
+          "parameter" : "ForegroundValue",
+          "value" : "255.0"
+        }
+      ],
+      "md5hash" : "eb63dfddd313064b7b816a8c0b8aaa73",
+      "inputs" : [
+        "Input/BlackDots.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Fills in holes and cavities by iteratively applying a voting operation.",
+  "detaileddescription" : "This filter uses internally the VotingBinaryHoleFillingImageFilter , and runs it iteratively until no pixels are being changed or until it reaches the maximum number of iterations. The purpose of the filter is to fill in holes of medium size (tens of pixels in radius). In principle the number of iterations is related to the size of the holes to be filled in. The larger the holes, the more iteration must be run with this filter in order to fill in the full hole. [...]
+  "itk_module" : "ITKLabelVoting",
+  "itk_group" : "LabelVoting"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/WarpImageFilter.json b/Code/BasicFilters/json/WarpImageFilter.json
new file mode 100644
index 0000000..175a281
--- /dev/null
+++ b/Code/BasicFilters/json/WarpImageFilter.json
@@ -0,0 +1,165 @@
+{
+  "name" : "WarpImageFilter",
+  "template_code_filename" : "DualImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 2,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "pixel_types2" : "RealVectorPixelIDTypeList",
+  "filter_type" : "itk::WarpImageFilter<InputImageType,  OutputImageType, InputImageType2 >",
+  "custom_set_input" : "filter->SetInput( image1 ); filter->SetDisplacementField( image2 );",
+  "vector_pixel_types_by_component" : "VectorPixelIDTypeList",
+  "include_files" : [
+    "sitkCreateInterpolator.hxx"
+  ],
+  "members" : [
+    {
+      "name" : "Interpolator",
+      "type" : "InterpolatorEnum",
+      "default" : "itk::simple::sitkLinear",
+      "doc" : "",
+      "custom_itk_cast" : "filter->SetInterpolator( CreateInterpolator( image1.GetPointer(), m_Interpolator ) );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Get/Set the interpolator function.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get/Set the interpolator function."
+    },
+    {
+      "name" : "OutputSize",
+      "type" : "uint32_t",
+      "default" : "std::vector<uint32_t>(3, 0)",
+      "dim_vec" : 1,
+      "doc" : "",
+      "itk_type" : "typename FilterType::SizeType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the size of the output image.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the size of the output image."
+    },
+    {
+      "name" : "OutputOrigin",
+      "type" : "double",
+      "default" : "std::vector<double>(3, 0.0)",
+      "dim_vec" : 1,
+      "doc" : "",
+      "itk_type" : "typename FilterType::PointType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the output image origin.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the output image origin."
+    },
+    {
+      "name" : "OutputSpacing",
+      "type" : "double",
+      "default" : "std::vector<double>(3, 1.0)",
+      "dim_vec" : 1,
+      "doc" : "",
+      "itk_type" : "typename FilterType::SpacingType",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the output image spacing.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the output image spacing."
+    },
+    {
+      "name" : "OutputDirection",
+      "type" : "std::vector<double>",
+      "default" : "std::vector<double>()",
+      "doc" : "Passing a zero sized array, defaults to identiy matrix. The size of the array must exactly match the direction matrix for the dimension of the image.",
+      "custom_itk_cast" : "filter->SetOutputDirection( sitkSTLToITKDirection<typename FilterType::DirectionType>( this->m_OutputDirection ) );",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the direction (orientation) of the output image",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the direction (orientation) of the output image"
+    },
+    {
+      "name" : "EdgePaddingValue",
+      "type" : "double",
+      "default" : "0.0",
+      "pixeltype" : "Input",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the edge padding value",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the edge padding value"
+    }
+  ],
+  "custom_methods" : [
+    {
+      "name" : "SetOutputParameteresFromImage",
+      "doc" : "This methods sets the output size, origin, spacing and direction to that of the provided image",
+      "return_type" : "void",
+      "parameters" : [
+        {
+          "type" : "const Image &",
+          "var_name" : "refImage"
+        }
+      ],
+      "body" : "this->SetOutputSize( refImage.GetSize() ); this->SetOutputOrigin( refImage.GetOrigin() ); this->SetOutputSpacing( refImage.GetSpacing() );this->SetOutputDirection( refImage.GetDirection() );"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "cthead1",
+      "description" : "warp",
+      "settings" : [
+        {
+          "parameter" : "OutputSize",
+          "type" : "uint32_t",
+          "dim_vec" : 1,
+          "value" : [
+            128,
+            128,
+            128
+          ]
+        },
+        {
+          "parameter" : "OutputSpacing",
+          "type" : "double",
+          "dim_vec" : 1,
+          "value" : [
+            0.73,
+            0.73
+          ]
+        }
+      ],
+      "tolerance" : "0.001",
+      "inputs" : [
+        "Input/cthead1-Float.mha",
+        "Input/cthead1-dis1.nrrd"
+      ]
+    },
+    {
+      "tag" : "vm",
+      "description" : "sin warp",
+      "settings" : [
+        {
+          "parameter" : "OutputSize",
+          "type" : "uint32_t",
+          "dim_vec" : 1,
+          "value" : [
+            297,
+            371
+          ]
+        },
+        {
+          "parameter" : "Interpolator",
+          "value" : "itk::simple::sitkHammingWindowedSinc",
+          "lua_value" : "SimpleITK.sitkHammingWindowedSinc",
+          "python_value" : "SimpleITK.sitkHammingWindowedSinc",
+          "ruby_value" : "Simpleitk::SitkHammingWindowedSinc",
+          "java_value" : "InterpolatorEnum.sitkHammingWindowedSinc",
+          "tcl_value" : "$$sitkHammingWindowedSinc",
+          "csharp_value" : "InterpolatorEnum.sitkHammingWindowedSinc",
+          "R_value" : "'sitkHammingWindowedSinc'"
+        }
+      ],
+      "tolerance" : "0.001",
+      "inputs" : [
+        "Input/VM1111Shrink-RGBFloat.nrrd",
+        "Input/VM1111Shrink-dis1.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Warps an image using an input displacement field.",
+  "detaileddescription" : "WarpImageFilter warps an existing image with respect to a given displacement field.\n\nA displacement field is represented as a image whose pixel type is some vector type with at least N elements, where N is the dimension of the input image. The vector type must support element access via operator [].\n\nThe output image is produced by inverse mapping: the output pixels are mapped back onto the input image. This scheme avoids the creation of any holes and overl [...]
+  "itk_module" : "ITKImageGrid",
+  "itk_group" : "ImageGrid"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/WhiteTopHatImageFilter.json b/Code/BasicFilters/json/WhiteTopHatImageFilter.json
new file mode 100644
index 0000000..ca6bb2f
--- /dev/null
+++ b/Code/BasicFilters/json/WhiteTopHatImageFilter.json
@@ -0,0 +1,53 @@
+{
+  "name" : "WhiteTopHatImageFilter",
+  "template_code_filename" : "KernelImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "SafeBorder",
+      "type" : "bool",
+      "default" : "true",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "A safe border is added to input image to avoid borders effects and remove it once the closing is done",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "A safe border is added to input image to avoid borders effects and remove it once the closing is done"
+    }
+  ],
+  "custom_methods" : [],
+  "tests" : [
+    {
+      "tag" : "WhiteTopHatErode",
+      "description" : "Test white top hat",
+      "md5hash" : "e784daff43d09a18e20556729afc0c9d",
+      "settings" : [
+        {
+          "parameter" : "KernelRadius",
+          "no_get_method" : 1,
+          "value" : 1
+        },
+        {
+          "parameter" : "KernelType",
+          "value" : "itk::simple::sitkBall",
+          "lua_value" : "SimpleITK.sitkBall",
+          "python_value" : "SimpleITK.sitkBall",
+          "ruby_value" : "Simpleitk::SitkBall",
+          "java_value" : "KernelEnum.sitkBall",
+          "tcl_value" : "$$sitkBall",
+          "csharp_value" : "KernelEnum.sitkBall",
+          "R_value" : "'sitkBall'"
+        }
+      ],
+      "inputs" : [
+        "Input/STAPLE1.png"
+      ]
+    }
+  ],
+  "briefdescription" : "White top hat extracts local maxima that are larger than the structuring element.",
+  "detaileddescription" : "Top-hats are described in Chapter 4.5 of Pierre Soille's book \"Morphological Image Analysis: Principles and Applications\", Second Edition, Springer, 2003.\n\n\\author Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.",
+  "itk_module" : "ITKMathematicalMorphology",
+  "itk_group" : "MathematicalMorphology"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/WienerDeconvolutionImageFilter.json b/Code/BasicFilters/json/WienerDeconvolutionImageFilter.json
new file mode 100644
index 0000000..186b7c7
--- /dev/null
+++ b/Code/BasicFilters/json/WienerDeconvolutionImageFilter.json
@@ -0,0 +1,75 @@
+{
+  "name" : "WienerDeconvolutionImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "include_files" : [
+    "sitkBoundaryConditions.hxx"
+  ],
+  "custom_set_input" : "filter->SetInput( image1 ); filter->SetKernelImage( image2 );",
+  "members" : [
+    {
+      "name" : "NoiseVariance",
+      "type" : "double",
+      "default" : "0.0",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/get the variance of the zero-mean Gaussian white noise assumed to be added to the input.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/get the variance of the zero-mean Gaussian white noise assumed to be added to the input."
+    },
+    {
+      "name" : "Normalize",
+      "type" : "bool",
+      "default" : "false",
+      "doc" : "",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Normalize the output image by the sum of the kernel components\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "BoundaryCondition",
+      "enum" : [
+        "ZERO_PAD",
+        "ZERO_FLUX_NEUMANN_PAD",
+        "PERIODIC_PAD"
+      ],
+      "default" : "itk::simple::WienerDeconvolutionImageFilter::ZERO_FLUX_NEUMANN_PAD",
+      "custom_itk_cast" : "nsstd::auto_ptr< ImageBoundaryCondition< InputImageType > > bc( CreateNewBoundaryConditionInstance< Self, FilterType >( m_BoundaryCondition ) ); filter->SetBoundaryCondition( bc.get() );\n"
+    },
+    {
+      "name" : "OutputRegionMode",
+      "enum" : [
+        "SAME",
+        "VALID"
+      ],
+      "default" : "itk::simple::WienerDeconvolutionImageFilter::SAME",
+      "itk_type" : "typename FilterType::OutputRegionModeType"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Wiener deconvolution of image blurred with a Gaussian kernel",
+      "settings" : [
+        {
+          "parameter" : "Normalize",
+          "value" : "true",
+          "python_value" : "True",
+          "R_value" : "TRUE"
+        }
+      ],
+      "tolerance" : "0.0001",
+      "inputs" : [
+        "Input/DeconvolutionInput.nrrd",
+        "Input/DeconvolutionKernel.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "The Wiener deconvolution image filter is designed to restore an image convolved with a blurring kernel while keeping noise enhancement to a minimum.",
+  "detaileddescription" : "The Wiener filter aims to minimize noise enhancement induced by frequencies with low signal-to-noise ratio. The Wiener filter kernel is defined in the frequency domain as \\f$W(\\omega) = H^*(\\omega) / (|H(\\omega)|^2 + (1 / SNR(\\omega)))\\f$ where \\f$H(\\omega)\\f$ is the Fourier transform of the blurring kernel with which the original image was convolved and the signal-to-noise ratio \\f$SNR(\\omega)\\f$ . \\f$SNR(\\omega)\\f$ is defined by \\f$P_f(\\omega [...]
+  "itk_module" : "ITKDeconvolution",
+  "itk_group" : "Deconvolution"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/WrapPadImageFilter.json b/Code/BasicFilters/json/WrapPadImageFilter.json
new file mode 100644
index 0000000..b6610b6
--- /dev/null
+++ b/Code/BasicFilters/json/WrapPadImageFilter.json
@@ -0,0 +1,71 @@
+{
+  "name" : "WrapPadImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "\todo add SetBound member function to set both properties",
+  "pixel_types" : "NonLabelPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "PadLowerBound",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 0)",
+      "doc" : "\todo what does this itk_type attribute do?",
+      "dim_vec" : 1,
+      "itk_type" : "typename InputImageType::SizeType"
+    },
+    {
+      "name" : "PadUpperBound",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 0)",
+      "doc" : "\todo what does this itk_type attribute do?",
+      "dim_vec" : 1,
+      "itk_type" : "typename InputImageType::SizeType"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Test WrapPad with default parameters",
+      "md5hash" : "a9a0207c759cb8d9e0507414992905d6",
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-Slice-Short.png"
+      ]
+    },
+    {
+      "tag" : "more",
+      "description" : "Test WrapPad reasonable padding",
+      "md5hash" : "78043cec7d50726f00d1ca81a3e2bc9a",
+      "settings" : [
+        {
+          "parameter" : "PadLowerBound",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            5,
+            10,
+            15
+          ]
+        },
+        {
+          "parameter" : "PadUpperBound",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            3,
+            6,
+            9
+          ]
+        }
+      ],
+      "inputs" : [
+        "Input/Ramp-Down-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Increase the image size by padding with replicants of the input image value.",
+  "detaileddescription" : "WrapPadImageFilter changes the image bounds of an image. Added pixels are filled in with a wrapped replica of the input image. For instance, if the output image needs a pixel that is two pixels to the left of the LargestPossibleRegion of the input image, the value assigned will be from the pixel two pixels inside the right boundary of the LargestPossibleRegion. The image bounds of the output must be specified.\n\nVisual explanation of padding regions.\n This fi [...]
+  "itk_module" : "ITKImageGrid",
+  "itk_group" : "ImageGrid"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/XorImageFilter.json b/Code/BasicFilters/json/XorImageFilter.json
new file mode 100644
index 0000000..eba860b
--- /dev/null
+++ b/Code/BasicFilters/json/XorImageFilter.json
@@ -0,0 +1,26 @@
+{
+  "name" : "XorImageFilter",
+  "template_code_filename" : "BinaryFunctorFilter",
+  "template_test_filename" : "ImageFilter",
+  "constant_type" : "int",
+  "number_of_inputs" : 2,
+  "doc" : "Some global documentation",
+  "pixel_types" : "IntegerPixelIDTypeList",
+  "members" : [],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "md5hash" : "f6b04487e9d8d12d737802e1a8e78c0b",
+      "inputs" : [
+        "Input/STAPLE1.png",
+        "Input/STAPLE2.png"
+      ]
+    }
+  ],
+  "briefdescription" : "Computes the XOR bitwise operator pixel-wise between two images.",
+  "detaileddescription" : "This class is templated over the types of the two input images and the type of the output image. Numeric conversions (castings) are done by the C++ defaults.\n\nSince the bitwise XOR operation is only defined in C++ for integer types, the images passed to this filter must comply with the requirement of using integer pixel type.\n\nThe total operation over one pixel will be\n\n\\code\n* output_pixel = static_cast<OutputPixelType>( input1_pixel ^ input2_pixel )\n [...]
+  "itk_module" : "ITKImageIntensity",
+  "itk_group" : "ImageIntensity"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/YenThresholdImageFilter.json b/Code/BasicFilters/json/YenThresholdImageFilter.json
new file mode 100644
index 0000000..225f2f4
--- /dev/null
+++ b/Code/BasicFilters/json/YenThresholdImageFilter.json
@@ -0,0 +1,132 @@
+{
+  "name" : "YenThresholdImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "Docs",
+  "number_of_inputs" : 0,
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_image_type" : "itk::Image< uint8_t, TImageType::ImageDimension>",
+  "filter_type" : "itk::YenThresholdImageFilter< TImageType, OutputImageType, OutputImageType >",
+  "inputs" : [
+    {
+      "name" : "Image",
+      "type" : "Image"
+    },
+    {
+      "name" : "MaskImage",
+      "type" : "Image",
+      "optional" : true
+    }
+  ],
+  "members" : [
+    {
+      "name" : "InsideValue",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the \"inside\" pixel value.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"inside\" pixel value.\n"
+    },
+    {
+      "name" : "OutsideValue",
+      "type" : "uint8_t",
+      "default" : "0u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get the \"outside\" pixel value.\n"
+    },
+    {
+      "name" : "NumberOfHistogramBins",
+      "type" : "uint32_t",
+      "default" : "256u",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the number of histogram bins.\n",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MaskOutput",
+      "type" : "bool",
+      "default" : "true",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Do you want the output to be masked by the mask used in histogram construction. Only relevant if masking is in use.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    },
+    {
+      "name" : "MaskValue",
+      "type" : "uint8_t",
+      "default" : "255u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "The value in the mask image, if used, indicating voxels that should be included. Default is the max of pixel type, as in the MaskedImageToHistogramFilter",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : ""
+    }
+  ],
+  "measurements" : [
+    {
+      "name" : "Threshold",
+      "type" : "double",
+      "default" : 0.0,
+      "briefdescriptionGet" : "Get the computed threshold."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "default",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "b3a9d15b0065800592149925da59ea65",
+      "inputs" : [
+        "Input/RA-Short.nrrd"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 18924.0
+        }
+      ]
+    },
+    {
+      "tag" : "cthead1_with_mask",
+      "description" : "CT Head with mask",
+      "settings" : [],
+      "md5hash" : "eb4a007a500ea77fa0ed73df24cad1e3",
+      "inputs" : [
+        "Input/cthead1.png",
+        "Input/cthead1-mask.png"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 118.0
+        }
+      ]
+    },
+    {
+      "tag" : "default_on_float",
+      "description" : "Default parameter settings",
+      "settings" : [],
+      "md5hash" : "d749a8ef5a2049837518618938945cce",
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ],
+      "measurements_results" : [
+        {
+          "name" : "Threshold",
+          "value" : 0.498051,
+          "tolerance" : 1e-05
+        }
+      ]
+    }
+  ],
+  "briefdescription" : "Threshold an image using the Yen Threshold.",
+  "detaileddescription" : "This filter creates a binary thresholded image that separates an image into foreground and background components. The filter computes the threshold using the YenThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .\n\n\\author Richard Beare \n\nGaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France.\n\nThis implementation was taken from the Insight Journal paper: https:// [...]
+  "itk_module" : "ITKThresholding",
+  "itk_group" : "Thresholding"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/json/ZeroCrossingBasedEdgeDetectionImageFilter.json b/Code/BasicFilters/json/ZeroCrossingBasedEdgeDetectionImageFilter.json
new file mode 100644
index 0000000..5a305b7
--- /dev/null
+++ b/Code/BasicFilters/json/ZeroCrossingBasedEdgeDetectionImageFilter.json
@@ -0,0 +1,63 @@
+{
+  "name" : "ZeroCrossingBasedEdgeDetectionImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "RealPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "Variance",
+      "type" : "double",
+      "default" : 1.0,
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the variance parameter needed by the embedded gaussian filter",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Standard get/set macros for Gaussian filter parameters."
+    },
+    {
+      "name" : "ForegroundValue",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Get/Set the label values for the ZeroCrossingImageFilter",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get/Set the label values for the ZeroCrossingImageFilter"
+    },
+    {
+      "name" : "BackgroundValue",
+      "type" : "uint8_t",
+      "default" : "0u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Get/Set the label values for the ZeroCrossingImageFilter",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Get/Set the label values for the ZeroCrossingImageFilter"
+    },
+    {
+      "name" : "MaximumError",
+      "type" : "double",
+      "default" : "0.1",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set the MaximumError parameter needed by the embedded gaussian filter This value is used to set the desired maximum error of the gaussian approximation. Maximum error is the difference between the area under the discrete Gaussian curve and the area under the continuous Gaussian. Maximum error affects the Gaussian operator size. The value must be between 0.0 and 1.0.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Standard get/set macros for Gaussian filter parameters."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "tolerance" : 0.01,
+      "inputs" : [
+        "Input/Ramp-Zero-One-Float.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "This filter implements a zero-crossing based edge detecor.",
+  "detaileddescription" : "The zero-crossing based edge detector looks for pixels in the Laplacian of an image where the value of the Laplacian passes through zero points where the Laplacian changes sign. Such points often occur at \"edges\" in images i.e. points where the intensity of the image changes rapidly, but they also occur at places that are not as easy to associate with edges. It is best to think of the zero crossing detector as some sort of feature detector rather than as a sp [...]
+  "itk_module" : "ITKImageFeature",
+  "itk_group" : "ImageFeature"
+}
diff --git a/Code/BasicFilters/json/ZeroCrossingImageFilter.json b/Code/BasicFilters/json/ZeroCrossingImageFilter.json
new file mode 100644
index 0000000..bbbdeb9
--- /dev/null
+++ b/Code/BasicFilters/json/ZeroCrossingImageFilter.json
@@ -0,0 +1,67 @@
+{
+  "name" : "ZeroCrossingImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "doc" : "Some global documentation",
+  "pixel_types" : "SignedPixelIDTypeList",
+  "output_pixel_type" : "uint8_t",
+  "members" : [
+    {
+      "name" : "ForegroundValue",
+      "type" : "uint8_t",
+      "default" : "1u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the label value for zero-crossing pixels.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the label value for zero-crossing pixels."
+    },
+    {
+      "name" : "BackgroundValue",
+      "type" : "uint8_t",
+      "default" : "0u",
+      "pixeltype" : "Output",
+      "briefdescriptionSet" : "",
+      "detaileddescriptionSet" : "Set/Get the label value for non-zero-crossing pixels.",
+      "briefdescriptionGet" : "",
+      "detaileddescriptionGet" : "Set/Get the label value for non-zero-crossing pixels."
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Simply run with default settings",
+      "settings" : [],
+      "md5hash" : "1b5cea61ceb46ebf606eb9e63de1e75f",
+      "inputs" : [
+        "Input/2th_cthead1_distance.nrrd"
+      ]
+    },
+    {
+      "tag" : "inverted",
+      "description" : "Run image with backwards foreground and background",
+      "settings" : [
+        {
+          "parameter" : "ForegroundValue",
+          "value" : "0",
+          "java_value" : "(short) 0"
+        },
+        {
+          "parameter" : "BackgroundValue",
+          "value" : "2",
+          "java_value" : "(short) 2 "
+        }
+      ],
+      "md5hash" : "17cf4374c03d958e13506db9799c4789",
+      "inputs" : [
+        "Input/2th_cthead1_distance.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "This filter finds the closest pixel to the zero-crossings (sign changes) in a signed itk::Image .",
+  "detaileddescription" : "Pixels closest to zero-crossings are labeled with a foreground value. All other pixels are marked with a background value. The algorithm works by detecting differences in sign among neighbors using city-block style connectivity (4-neighbors in 2d, 6-neighbors in 3d, etc.).\n\n\\par Inputs and Outputs\nThe input to this filter is an itk::Image of arbitrary dimension. The algorithm assumes a signed data type (zero-crossings are not defined for unsigned data types [...]
+  "itk_module" : "ITKImageFeature",
+  "itk_group" : "ImageFeature"
+}
+
diff --git a/Code/BasicFilters/json/ZeroFluxNeumannPadImageFilter.json b/Code/BasicFilters/json/ZeroFluxNeumannPadImageFilter.json
new file mode 100644
index 0000000..eb1d9ba
--- /dev/null
+++ b/Code/BasicFilters/json/ZeroFluxNeumannPadImageFilter.json
@@ -0,0 +1,68 @@
+{
+  "name" : "ZeroFluxNeumannPadImageFilter",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "number_of_inputs" : 1,
+  "pixel_types" : "NonLabelPixelIDTypeList",
+  "members" : [
+    {
+      "name" : "PadLowerBound",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 0)",
+      "dim_vec" : 1,
+      "itk_type" : "typename InputImageType::SizeType"
+    },
+    {
+      "name" : "PadUpperBound",
+      "type" : "unsigned int",
+      "default" : "std::vector<unsigned int>(3, 0)",
+      "dim_vec" : 1,
+      "itk_type" : "typename InputImageType::SizeType"
+    }
+  ],
+  "tests" : [
+    {
+      "tag" : "defaults",
+      "description" : "Test Pad with default parameters",
+      "md5hash" : "a9a0207c759cb8d9e0507414992905d6",
+      "settings" : [],
+      "inputs" : [
+        "Input/RA-Slice-Short.png"
+      ]
+    },
+    {
+      "tag" : "more",
+      "description" : "Test Pad reasonable padding",
+      "md5hash" : "e75385e0e2c67ff47a8b2d0a1ee87017",
+      "settings" : [
+        {
+          "parameter" : "PadLowerBound",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            5,
+            10,
+            15
+          ]
+        },
+        {
+          "parameter" : "PadUpperBound",
+          "type" : "unsigned int",
+          "dim_vec" : 1,
+          "value" : [
+            3,
+            6,
+            9
+          ]
+        }
+      ],
+      "inputs" : [
+        "Input/Ramp-Down-Short.nrrd"
+      ]
+    }
+  ],
+  "briefdescription" : "Increase the image size by padding according to the zero-flux Neumann boundary condition.",
+  "detaileddescription" : "A filter which extends the image size and fill the missing pixels according to a Neumann boundary condition where first, upwind derivatives on the boundary are zero. This is a useful condition in solving some classes of differential equations.\n\nFor example, invoking this filter on an image with a corner like: \\code\n* * * * * * * *\n\n* * * * * * * *\n\n* * * 1 2 3 4 5 (where * denotes pixels that lie\n\n* * * 3 3 5 5 6 outside of the image boundary)\n\n* *  [...]
+  "itk_module" : "ITKImageGrid",
+  "itk_group" : "ImageGrid"
+}
\ No newline at end of file
diff --git a/Code/BasicFilters/src/CMakeLists.txt b/Code/BasicFilters/src/CMakeLists.txt
new file mode 100644
index 0000000..4742e2f
--- /dev/null
+++ b/Code/BasicFilters/src/CMakeLists.txt
@@ -0,0 +1,197 @@
+set_source_files_properties ( ${SimpleITKBasicFiltersGeneratedSource} PROPERTIES GENERATED 1 )
+
+
+# add_filter_library
+# This function is used to apply standard building options for the
+# libraries in the basic filters directory given a list of SimpleITK
+# source files, and a list of ITK modules.
+#
+# This method is used to encapsulate the directory properties set when
+# using an ITK module
+#
+function(add_filter_library library_name src_list_var itk_module_list_var)
+
+  add_library ( ${library_name} ${${src_list_var}}  )
+
+  sitk_target_use_itk( ${library_name} PRIVATE ${${itk_module_list_var}}
+    ITKLabelMap ITKImageIntensity)
+
+  target_link_libraries ( ${library_name}
+    PUBLIC
+      SimpleITKCommon
+      SimpleITKBasicFilters0 )
+
+  if (SimpleITK_EXPLICIT_INSTANTIATION)
+    target_link_libraries ( ${library_name} PRIVATE SimpleITKExplicit )
+  endif()
+
+  target_include_directories( ${library_name}
+    PUBLIC
+      $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/Code/BasicFilters/include>
+      $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/Code/BasicFilters/include>
+      $<INSTALL_INTERFACE:${SimpleITK_INSTALL_INCLUDE_DIR}>
+    PRIVATE
+      ${CMAKE_CURRENT_SOURCE_DIR} )
+  if(BUILD_SHARED_LIBS)
+    # These other filters are split into files. They all use the
+    # following for export their interface. There must not be and
+    # inter-filter include.
+    target_compile_definitions( ${library_name}
+      PRIVATE
+        SimpleITKBasicFilters_EXPORTS )
+  endif()
+  target_compile_options( ${library_name}
+    PUBLIC
+      ${SimpleITK_PUBLIC_COMPILE_OPTIONS}
+    PRIVATE
+      ${SimpleITK_PRIVATE_COMPILE_OPTIONS} )
+
+  add_dependencies ( ${library_name} BasicFiltersSourceCode )
+
+
+  sitk_install_exported_target( ${library_name} )
+
+  # append this new library to the globaly cached list
+  list ( APPEND SimpleITK_LIBRARIES ${library_name} )
+  set ( SimpleITK_LIBRARIES ${SimpleITK_LIBRARIES} CACHE INTERNAL "" )
+
+endfunction()
+
+
+find_package(ITK COMPONENTS ITKCommon REQUIRED)
+
+
+# common source which all basic filter libraries need to be linked against
+set ( SimpleITKBasicFilters0Source
+  sitkImageFilter.cxx
+)
+
+add_library ( SimpleITKBasicFilters0 ${SimpleITKBasicFilters0Source} )
+sitk_target_use_itk( SimpleITKBasicFilters0 PRIVATE ITKCommon)
+target_link_libraries ( SimpleITKBasicFilters0
+  PUBLIC
+    SimpleITKCommon)
+if (SimpleITK_EXPLICIT_INSTANTIATION)
+  target_link_libraries ( SimpleITKBasicFilters0 PRIVATE SimpleITKExplicit )
+endif()
+target_include_directories( SimpleITKBasicFilters0
+  PUBLIC
+    $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/Code/BasicFilters/include>
+    $<INSTALL_INTERFACE:${SimpleITK_INSTALL_INCLUDE_DIR}>
+  PRIVATE
+    ${CMAKE_CURRENT_SOURCE_DIR} )
+target_compile_options( SimpleITKBasicFilters0
+  PUBLIC
+    ${SimpleITK_PUBLIC_COMPILE_OPTIONS}
+  PRIVATE
+    ${SimpleITK_PRIVATE_COMPILE_OPTIONS} )
+sitk_install_exported_target( SimpleITKBasicFilters0 )
+
+# append this new library to the globally cached list
+list ( APPEND SimpleITK_LIBRARIES SimpleITKBasicFilters0 )
+set ( SimpleITK_LIBRARIES ${SimpleITK_LIBRARIES} CACHE INTERNAL "" )
+
+# manually written
+list(APPEND SimpleITKBasicFiltersGeneratedSource_ITKCommon
+  sitkCastImageFilter-2.cxx
+  sitkCastImageFilter-2l.cxx
+  sitkCastImageFilter-2v.cxx
+  sitkCastImageFilter-3.cxx
+  sitkCastImageFilter-3l.cxx
+  sitkCastImageFilter-3v.cxx
+  sitkCastImageFilter.cxx
+  sitkHashImageFilter.cxx )
+set(SimpleITKBasicFiltersGeneratedSource_ITKCommon ${SimpleITKBasicFiltersGeneratedSource_ITKCommon} CACHE INTERNAL "")
+
+list(APPEND SimpleITKBasicFiltersGeneratedSource_ITKTransform
+  sitkBSplineTransformInitializerFilter.cxx )
+set(SimpleITKBasicFiltersGeneratedSource_ITKTransform ${SimpleITKBasicFiltersGeneratedSource_ITKTransform} CACHE INTERNAL "")
+
+list(APPEND SimpleITKBasicFiltersGeneratedSource_ITKRegistrationCommon
+  sitkCenteredTransformInitializerFilter.cxx
+  sitkCenteredVersorTransformInitializerFilter.cxx
+  sitkLandmarkBasedTransformInitializerFilter.cxx )
+set(SimpleITKBasicFiltersGeneratedSource_ITKRegistrationCommon ${SimpleITKBasicFiltersGeneratedSource_ITKRegistrationCommon} CACHE INTERNAL "")
+
+
+#
+# Module based libraries
+#
+get_cmake_property( _varNames VARIABLES )
+foreach (_varName ${_varNames})
+  if(_varName MATCHES "^SimpleITKBasicFiltersGeneratedSource_")
+    string(REGEX MATCH  "ITK[A-Za-z0-9]+$"  itk_module ${_varName})
+    list(APPEND module_vars ${itk_module})
+  endif()
+
+endforeach()
+
+foreach( itk_module ${module_vars} )
+
+  # cmake >= 3.3
+  # if( ${itk_module} IN_LIST ITK_MODULES_ENABLED)
+  list (FIND ITK_MODULES_ENABLED ${itk_module} _index)
+  list (LENGTH SimpleITKBasicFiltersGeneratedSource_${itk_module} _len)
+  if (${_index} GREATER -1 AND ${_len} GREATER 0)
+    add_filter_library( SimpleITK_${itk_module}
+                        SimpleITKBasicFiltersGeneratedSource_${itk_module}
+                        itk_module )
+
+  endif()
+
+  list( REMOVE_ITEM SimpleITKBasicFiltersGeneratedSource ${SimpleITKBasicFiltersGeneratedSource_${itk_module}})
+
+endforeach()
+
+#
+#
+#
+
+# sort the list to en-sure the same list across platforms
+list ( SORT SimpleITKBasicFiltersGeneratedSource )
+
+# add additional files which may depend on Filters0-N
+list ( APPEND SimpleITKBasicFiltersSource ${SimpleITKBasicFiltersGeneratedSource} sitkAdditionalProcedures.cxx )
+
+list ( LENGTH SimpleITKBasicFiltersSource _length )
+math( EXPR _end_range "${_length} - 1 " )
+
+
+# Break all these source files into a bunch of libraries base on every
+# n files in the list.
+set ( _stride 25 )
+set ( _library_i 1 )
+foreach ( _start RANGE 0 ${_end_range} ${_stride} )
+
+  math( EXPR _library_i "${_library_i} " )
+
+  # compute the end of the range ensuring that the inclusive range
+  # [_start, _end] is all valid indexes
+  math( EXPR _end "${_start} + ${_stride} - 1" )
+  if ( ${_end} VERSION_GREATER ${_end_range} OR
+      ${_end} VERSION_EQUAL ${_end_range} )
+    math( EXPR _end "${_end_range}" )
+    set(_last 1)
+  endif()
+
+  # extract out the range into SRC
+  set ( SRC "" )
+  foreach( _j RANGE ${_start} ${_end} )
+    list ( GET SimpleITKBasicFiltersSource ${_j} _v )
+    list ( APPEND SRC ${_v} )
+  endforeach()
+
+  add_filter_library(SimpleITKBasicFilters${_library_i} SRC ITK_MODULES_ENABLED)
+
+  if(_last)
+
+    set(_last_SimpleITK_LIBRARIES ${SimpleITK_LIBRARIES})
+    list(REMOVE_ITEM _last_SimpleITK_LIBRARIES SimpleITKBasicFilters${_library_i})
+    # the last library include additional cxx files which may depend on
+    # other filter libraries
+    target_link_libraries ( SimpleITKBasicFilters${_library_i}
+      PRIVATE ${_last_SimpleITK_LIBRARIES} )
+  endif()
+
+
+endforeach ()
diff --git a/Code/BasicFilters/src/itkBitwiseNotFunctor.h b/Code/BasicFilters/src/itkBitwiseNotFunctor.h
new file mode 100644
index 0000000..9ea725d
--- /dev/null
+++ b/Code/BasicFilters/src/itkBitwiseNotFunctor.h
@@ -0,0 +1,56 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef itkBitwiseNotFunctor_h
+#define itkBitwiseNotFunctor_h
+
+#include <cmath>
+
+namespace itk
+{
+namespace Functor
+{
+/**
+ * \class BitwiseNot
+ * \brief Performs the C++ unary bitwise NOT operator.
+ */
+template< class TInput, class TOutput >
+class BitwiseNot
+{
+public:
+  // Use default copy, assigned and destructor
+  // BitwiseNot() {} default constructor OK
+
+  bool operator!=(const BitwiseNot &) const
+    {
+      return false;
+    }
+
+  bool operator==(const BitwiseNot & other) const
+    {
+      return !( *this != other );
+    }
+
+  inline TOutput operator()(const TInput & A) const
+    {
+      return static_cast<TOutput>( ~A );
+    }
+};
+}
+}
+
+#endif // itkBitwiseNotFunctor_h
diff --git a/Code/BasicFilters/src/itkDivideFloorFunctor.h b/Code/BasicFilters/src/itkDivideFloorFunctor.h
new file mode 100644
index 0000000..4edf3de
--- /dev/null
+++ b/Code/BasicFilters/src/itkDivideFloorFunctor.h
@@ -0,0 +1,63 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef itkDivideFloorFunctor_h
+#define itkDivideFloorFunctor_h
+
+#include <cmath>
+
+namespace itk
+{
+namespace Functor
+{
+/**
+ * \class DivFloor
+ * \brief Cast arguments to double, performs division then takes the floor.
+ */
+template< class TInput1, class TInput2, class TOutput >
+class DivFloor
+{
+public:
+  // Use default copy, assigned and destructor
+  // DivFloor() {} default constructor OK
+
+  bool operator!=(const DivFloor &) const
+    {
+      return false;
+    }
+
+  bool operator==(const DivFloor & other) const
+    {
+      return !( *this != other );
+    }
+
+  inline TOutput operator()(const TInput1 & A, const TInput2 & B) const
+    {
+      if ( B != (TInput2)0 )
+        {
+        return static_cast<TOutput>( std::floor( double(A) / double(B) ) );
+        }
+      else
+        {
+        return NumericTraits< TOutput >::max( static_cast<TOutput>(A) );
+        }
+    }
+};
+}
+}
+
+#endif // itkDivisionFloorImageFilter_h
diff --git a/Code/BasicFilters/src/itkDivideRealFunctor.h b/Code/BasicFilters/src/itkDivideRealFunctor.h
new file mode 100644
index 0000000..229141e
--- /dev/null
+++ b/Code/BasicFilters/src/itkDivideRealFunctor.h
@@ -0,0 +1,63 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef itkDivideRealFunctor_h
+#define itkDivideRealFunctor_h
+
+#include <itkNumericTraits.h>
+
+namespace itk
+{
+namespace Functor
+{
+/**
+ * \class DivReal
+ * \brief Promotes arguments to real type and performs division
+ */
+template< class TInput1, class TInput2, class TOutput >
+class DivReal
+{
+public:
+  // Use default copy, assigned and destructor
+  bool operator!=(const DivReal &) const
+  {
+    return false;
+  }
+
+  bool operator==(const DivReal & other) const
+  {
+    return !( *this != other );
+  }
+
+  inline TOutput operator()(const TInput1 & A, const TInput2 & B) const
+  {
+    if ( B != (TInput2)0 )
+      {
+      return static_cast<TOutput>( static_cast<typename NumericTraits<TInput1>::RealType>(A)
+                                   /
+                                   static_cast<typename NumericTraits<TInput2>::RealType >(B) );
+      }
+    else
+      {
+      return NumericTraits< TOutput >::max( static_cast<TOutput>(A) );
+      }
+  }
+};
+}
+}
+
+#endif // itkDivisionRealImageFilter_h
diff --git a/Code/BasicFilters/src/sitkAdditionalProcedures.cxx b/Code/BasicFilters/src/sitkAdditionalProcedures.cxx
new file mode 100644
index 0000000..80a8772
--- /dev/null
+++ b/Code/BasicFilters/src/sitkAdditionalProcedures.cxx
@@ -0,0 +1,138 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+#include "sitkAdditionalProcedures.h"
+#include "sitkResampleImageFilter.h"
+#include "sitkPatchBasedDenoisingImageFilter.h"
+
+namespace itk {
+namespace simple {
+
+//
+// Function to run the Execute method of this filter after custom
+// setting the parameters.
+//
+
+SITKBasicFilters_EXPORT Image Resample ( const Image& image1,
+                                         Transform transform,
+                                         InterpolatorEnum interpolator,
+                                         double defaultPixelValue,
+                                         PixelIDValueEnum outputPixelType )
+{
+  ResampleImageFilter filter;
+  filter.SetReferenceImage( image1 );
+  filter.SetTransform( transform );
+  filter.SetInterpolator( interpolator );
+  filter.SetDefaultPixelValue( defaultPixelValue );
+  filter.SetOutputPixelType(outputPixelType);
+  return filter.Execute ( image1);
+}
+
+Image Resample ( const Image& image1,
+                 const Image& referenceImage,
+                 Transform transform,
+                 InterpolatorEnum interpolator,
+                 double defaultPixelValue,
+                 PixelIDValueEnum outputPixelType )
+{
+  ResampleImageFilter filter;
+  filter.SetReferenceImage( referenceImage );
+  filter.SetTransform( transform );
+  filter.SetInterpolator( interpolator );
+  filter.SetDefaultPixelValue( defaultPixelValue );
+  filter.SetOutputPixelType(outputPixelType);
+  return filter.Execute ( image1);
+}
+
+
+SITKBasicFilters_EXPORT Image Resample ( const Image& image1,
+                                         std::vector<uint32_t> size,
+                                         Transform transform,
+                                         InterpolatorEnum interpolator,
+                                         std::vector<double> outputOrigin,
+                                         std::vector<double> outputSpacing,
+                                         std::vector<double> outputDirection,
+                                         double defaultPixelValue,
+                                         PixelIDValueEnum outputPixelType )
+{
+  ResampleImageFilter filter;
+  return filter.Execute ( image1, size, transform, interpolator, outputOrigin, outputSpacing, outputDirection, defaultPixelValue, outputPixelType );
+}
+
+SITKBasicFilters_EXPORT Image PatchBasedDenoising (const Image& image1,
+                                                   double kernelBandwidthSigma,
+                                                   uint32_t patchRadius,
+                                                   uint32_t numberOfIterations,
+                                                   uint32_t numberOfSamplePatches,
+                                                   double sampleVariance )
+{
+  PatchBasedDenoisingImageFilter filter;
+
+  const PatchBasedDenoisingImageFilter::NoiseModelType noiseModel = itk::simple::PatchBasedDenoisingImageFilter::NOMODEL;
+  const double noiseSigma = 0.0;
+  const double noiseModelFidelityWeight = 0.0;
+  //const bool alwaysTreatComponentsAsEuclidean = false;
+
+
+  filter.KernelBandwidthEstimationOff();
+
+  filter.SetKernelBandwidthSigma(kernelBandwidthSigma);
+  filter.SetPatchRadius(patchRadius);
+  filter.SetNumberOfIterations(numberOfIterations);
+  filter.SetNumberOfSamplePatches(numberOfSamplePatches);
+  filter.SetSampleVariance(sampleVariance);
+  filter.SetNoiseModel(noiseModel);
+  filter.SetNoiseSigma(noiseSigma);
+  filter.SetNoiseModelFidelityWeight(noiseModelFidelityWeight);
+  //filter.SetAlwaysTreatComponentsAsEuclidean(alwaysTreatComponentsAsEuclidean);
+  return filter.Execute ( image1 );
+}
+
+
+
+SITKBasicFilters_EXPORT Image PatchBasedDenoising (const Image& image1,
+                                                   PatchBasedDenoisingImageFilter::NoiseModelType noiseModel,
+                                                   double kernelBandwidthSigma,
+                                                   uint32_t patchRadius,
+                                                   uint32_t numberOfIterations,
+                                                   uint32_t numberOfSamplePatches,
+                                                   double sampleVariance,
+                                                   double noiseSigma,
+                                                   double noiseModelFidelityWeight )
+{
+  PatchBasedDenoisingImageFilter filter;
+
+  //const bool alwaysTreatComponentsAsEuclidean = false;
+
+  filter.KernelBandwidthEstimationOff();
+
+  filter.SetKernelBandwidthSigma(kernelBandwidthSigma);
+  filter.SetPatchRadius(patchRadius);
+  filter.SetNumberOfIterations(numberOfIterations);
+  filter.SetNumberOfSamplePatches(numberOfSamplePatches);
+  filter.SetSampleVariance(sampleVariance);
+  filter.SetNoiseModel(noiseModel);
+  filter.SetNoiseSigma(noiseSigma);
+  filter.SetNoiseModelFidelityWeight(noiseModelFidelityWeight);
+  //filter.SetAlwaysTreatComponentsAsEuclidean(alwaysTreatComponentsAsEuclidean);
+
+  return filter.Execute ( image1 );
+}
+
+}
+}
diff --git a/Code/BasicFilters/src/sitkBSplineTransformInitializerFilter.cxx b/Code/BasicFilters/src/sitkBSplineTransformInitializerFilter.cxx
new file mode 100644
index 0000000..7f6fb3e
--- /dev/null
+++ b/Code/BasicFilters/src/sitkBSplineTransformInitializerFilter.cxx
@@ -0,0 +1,194 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+#include "itkImage.h"
+#include "itkVectorImage.h"
+#include "itkLabelMap.h"
+#include "itkLabelObject.h"
+#include "itkNumericTraits.h"
+#include "itkNumericTraitsVariableLengthVectorPixel.h"
+#include "itkVectorIndexSelectionCastImageFilter.h"
+#include "itkComposeImageFilter.h"
+
+#include "sitkBSplineTransformInitializerFilter.h"
+#include "itkBSplineTransform.h"
+#include "itkBSplineTransformInitializer.h"
+
+// Additional include files
+#include "sitkTransform.h"
+// Done with additional include files
+
+namespace itk {
+namespace simple {
+
+//-----------------------------------------------------------------------------
+
+//
+// Default constructor that initializes parameters
+//
+BSplineTransformInitializerFilter::BSplineTransformInitializerFilter ()
+{
+
+    this->m_TransformDomainMeshSize = std::vector<uint32_t>(3, 1u);
+    this->m_Order = 3u;
+
+  this->m_MemberFactory.reset( new detail::MemberFunctionFactory<MemberFunctionType>( this ) );
+
+  this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 3 > ();
+  this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 2 > ();
+
+
+
+}
+
+//
+// Destructor
+//
+BSplineTransformInitializerFilter::~BSplineTransformInitializerFilter ()
+{
+
+}
+
+
+
+//
+// ToString
+//
+std::string BSplineTransformInitializerFilter::ToString() const
+{
+  std::ostringstream out;
+  out << "itk::simple::BSplineTransformInitializerFilter\n";
+  out << "  TransformDomainMeshSize: ";
+  this->ToStringHelper(out, this->m_TransformDomainMeshSize);
+  out << "  Order:";
+  this->ToStringHelper(out, this->m_Order);
+  out << std::endl;
+
+  out << ProcessObject::ToString();
+  return out.str();
+}
+
+//
+// Execute
+//
+BSplineTransform BSplineTransformInitializerFilter::Execute ( const Image& image1, const std::vector<uint32_t> & transformDomainMeshSize, unsigned int order )
+{
+  this->SetTransformDomainMeshSize ( transformDomainMeshSize );
+  this->SetOrder(order);
+
+  return this->Execute ( image1 );
+}
+
+
+BSplineTransform BSplineTransformInitializerFilter::Execute ( const Image& image1 )
+{
+  PixelIDValueEnum type = image1.GetPixelID();
+  unsigned int dimension = image1.GetDimension();
+
+
+  return this->m_MemberFactory->GetMemberFunction( type, dimension )( image1 );
+}
+
+
+//-----------------------------------------------------------------------------
+
+//
+// Custom Casts
+//
+namespace {
+
+}
+
+//-----------------------------------------------------------------------------
+
+//
+// ExecuteInternal
+//
+
+template <class TImageType>
+BSplineTransform  BSplineTransformInitializerFilter::ExecuteInternal ( const Image& inImage1 )
+{
+  const unsigned int D = TImageType::ImageDimension;
+  switch( this->m_Order )
+    {
+    case 0:
+      return this->ExecuteInternalWithOrder<D, 0>(inImage1);
+    case 1:
+      return this->ExecuteInternalWithOrder<D, 1>(inImage1);
+    case 2:
+      return this->ExecuteInternalWithOrder<D, 2>(inImage1);
+    case 3:
+      return this->ExecuteInternalWithOrder<D, 3>(inImage1);
+    default:
+      sitkExceptionMacro("Invalid Order: " << this->m_Order << " only orders 0, 1, 2, and 3 supported!");
+    }
+}
+
+template <unsigned int NDimension, unsigned int NOrder>
+BSplineTransform  BSplineTransformInitializerFilter::ExecuteInternalWithOrder ( const Image& inImage1 )
+{
+  // Define the input and output image types
+  typedef itk::ImageBase<NDimension> InputImageType;
+
+  // Get the pointer to the ITK image contained in image1
+  typename InputImageType::ConstPointer image1 = this->CastImageToITK<InputImageType>( inImage1 );
+
+
+  typedef itk::BSplineTransformInitializer< itk::BSplineTransform< double, NDimension, NOrder >, InputImageType> FilterType;
+  // Set up the ITK filter
+  typename FilterType::Pointer filter = FilterType::New();
+
+  filter->SetImage( image1 );
+
+  BSplineTransform sitkTransform(NDimension, NOrder);
+
+  const typename FilterType::TransformType *itkTx = dynamic_cast<const typename FilterType::TransformType *>(sitkTransform.GetITKBase() );
+  if ( !itkTx )
+    {
+    sitkExceptionMacro( "Unexpected error conversion to a BSplineTransform!" );
+    }
+  else
+    {
+    filter->SetTransform( const_cast<typename FilterType::TransformType*>(itkTx) );
+    }
+
+
+
+  typename FilterType::MeshSizeType itkVecTransformDomainMeshSize = sitkSTLVectorToITK<typename FilterType::MeshSizeType>( this->GetTransformDomainMeshSize() );
+  filter->SetTransformDomainMeshSize( itkVecTransformDomainMeshSize );
+
+  filter->InitializeTransform();
+
+  return sitkTransform;
+}
+
+//-----------------------------------------------------------------------------
+
+
+//
+// Function to run the Execute method of this filter
+//
+BSplineTransform BSplineTransformInitializer ( const Image& image1, const std::vector<uint32_t> & transformDomainMeshSize, unsigned int order )
+{
+  BSplineTransformInitializerFilter filter;
+  return filter.Execute ( image1, transformDomainMeshSize, order );
+}
+
+
+} // end namespace simple
+} // end namespace itk
diff --git a/Code/BasicFilters/src/sitkBoundaryConditions.hxx b/Code/BasicFilters/src/sitkBoundaryConditions.hxx
new file mode 100644
index 0000000..c5e4aae
--- /dev/null
+++ b/Code/BasicFilters/src/sitkBoundaryConditions.hxx
@@ -0,0 +1,59 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkBoundaryConditions_h
+#define sitkBoundaryConditions_h
+
+#include <memory>
+#include <itkConstantBoundaryCondition.h>
+#include <itkPeriodicBoundaryCondition.h>
+#include <itkZeroFluxNeumannBoundaryCondition.h>
+
+namespace itk {
+  namespace simple {
+
+  /** Creates a boundary condition object from an enum. Uses an
+   * auto_ptr for dynamically allocated object, to enforce the user to
+   * take ownership of the object.
+   *
+   */
+  template< class TFilter, class TInternalFilter >
+  nsstd::auto_ptr<ImageBoundaryCondition< typename TInternalFilter::InputImageType > >
+  CreateNewBoundaryConditionInstance(typename TFilter::BoundaryConditionType bc)
+  {
+    typedef nsstd::auto_ptr<ImageBoundaryCondition< typename TInternalFilter::InputImageType > > PointerType;
+
+    switch ( bc )
+      {
+      case TFilter::ZERO_PAD:
+        return PointerType(new ConstantBoundaryCondition< typename TInternalFilter::InputImageType >() );
+        break;
+
+      case TFilter::PERIODIC_PAD:
+        return PointerType( new PeriodicBoundaryCondition< typename TInternalFilter::InputImageType >() );
+        break;
+
+      case TFilter::ZERO_FLUX_NEUMANN_PAD:
+      default:
+        return PointerType( new ZeroFluxNeumannBoundaryCondition< typename TInternalFilter::InputImageType >() );
+        break;
+      }
+    }
+  }
+}
+
+#endif
diff --git a/Code/BasicFilters/src/sitkCastImageFilter-2.cxx b/Code/BasicFilters/src/sitkCastImageFilter-2.cxx
new file mode 100644
index 0000000..9dd1583
--- /dev/null
+++ b/Code/BasicFilters/src/sitkCastImageFilter-2.cxx
@@ -0,0 +1,42 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+#include "sitkCastImageFilter.hxx"
+
+
+namespace itk
+{
+namespace simple
+{
+
+
+void CastImageFilter::RegisterMemberFactory2()
+{
+  // cast between complex pixels and complex pixel
+  m_DualMemberFactory->RegisterMemberFunctions<ComplexPixelIDTypeList, ComplexPixelIDTypeList, 2, CastAddressor<MemberFunctionType> > ();
+
+  // cast between basic pixels and complex number pixels
+  m_DualMemberFactory->RegisterMemberFunctions<BasicPixelIDTypeList, ComplexPixelIDTypeList, 2, CastAddressor<MemberFunctionType> > ();
+
+  // cast between basic images
+  m_DualMemberFactory->RegisterMemberFunctions<BasicPixelIDTypeList, BasicPixelIDTypeList, 2, CastAddressor<MemberFunctionType> > ();
+
+}
+
+} // end namespace simple
+} // end namespace itk
diff --git a/Code/BasicFilters/src/sitkCastImageFilter-2l.cxx b/Code/BasicFilters/src/sitkCastImageFilter-2l.cxx
new file mode 100644
index 0000000..850d61f
--- /dev/null
+++ b/Code/BasicFilters/src/sitkCastImageFilter-2l.cxx
@@ -0,0 +1,38 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+#include "sitkCastImageFilter.hxx"
+
+
+namespace itk
+{
+namespace simple
+{
+
+
+void CastImageFilter::RegisterMemberFactory2l()
+{
+  // basic to Label
+  m_DualMemberFactory->RegisterMemberFunctions<IntegerPixelIDTypeList, LabelPixelIDTypeList, 2, ToLabelAddressor<MemberFunctionType> > ();
+
+ // Label to basic
+  m_DualMemberFactory->RegisterMemberFunctions<LabelPixelIDTypeList, IntegerPixelIDTypeList, 2, LabelToAddressor<MemberFunctionType> > ();
+}
+
+} // end namespace simple
+} // end namespace itk
diff --git a/Code/BasicFilters/src/sitkCastImageFilter-2v.cxx b/Code/BasicFilters/src/sitkCastImageFilter-2v.cxx
new file mode 100644
index 0000000..592a81f
--- /dev/null
+++ b/Code/BasicFilters/src/sitkCastImageFilter-2v.cxx
@@ -0,0 +1,40 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+#include "sitkCastImageFilter.hxx"
+
+
+namespace itk
+{
+namespace simple
+{
+
+
+void CastImageFilter::RegisterMemberFactory2v()
+{
+
+  // cast between vector images
+  m_DualMemberFactory->RegisterMemberFunctions<VectorPixelIDTypeList, VectorPixelIDTypeList, 2, CastAddressor<MemberFunctionType> > ();
+
+  // basic to vector
+  m_DualMemberFactory->RegisterMemberFunctions<BasicPixelIDTypeList, VectorPixelIDTypeList, 2, ToVectorAddressor<MemberFunctionType> > ();
+
+}
+
+} // end namespace simple
+} // end namespace itk
diff --git a/Code/BasicFilters/src/sitkCastImageFilter-3.cxx b/Code/BasicFilters/src/sitkCastImageFilter-3.cxx
new file mode 100644
index 0000000..55be4f5
--- /dev/null
+++ b/Code/BasicFilters/src/sitkCastImageFilter-3.cxx
@@ -0,0 +1,42 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+#include "sitkCastImageFilter.hxx"
+
+
+namespace itk
+{
+namespace simple
+{
+
+
+void CastImageFilter::RegisterMemberFactory3()
+{
+  // cast between complex pixels and complex pixel
+  m_DualMemberFactory->RegisterMemberFunctions<ComplexPixelIDTypeList, ComplexPixelIDTypeList, 3, CastAddressor<MemberFunctionType> > ();
+
+  // cast between basic pixels and complex number pixels
+  m_DualMemberFactory->RegisterMemberFunctions<BasicPixelIDTypeList, ComplexPixelIDTypeList, 3, CastAddressor<MemberFunctionType> > ();
+
+  // cast between basic images
+  m_DualMemberFactory->RegisterMemberFunctions<BasicPixelIDTypeList, BasicPixelIDTypeList, 3, CastAddressor<MemberFunctionType> > ();
+
+}
+
+} // end namespace simple
+} // end namespace itk
diff --git a/Code/BasicFilters/src/sitkCastImageFilter-3l.cxx b/Code/BasicFilters/src/sitkCastImageFilter-3l.cxx
new file mode 100644
index 0000000..8dde898
--- /dev/null
+++ b/Code/BasicFilters/src/sitkCastImageFilter-3l.cxx
@@ -0,0 +1,39 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+#include "sitkCastImageFilter.hxx"
+
+
+namespace itk
+{
+namespace simple
+{
+
+
+void CastImageFilter::RegisterMemberFactory3l()
+{
+  // basic to Label
+  m_DualMemberFactory->RegisterMemberFunctions<IntegerPixelIDTypeList, LabelPixelIDTypeList, 3, ToLabelAddressor<MemberFunctionType> > ();
+
+ // Label to basic
+  m_DualMemberFactory->RegisterMemberFunctions<LabelPixelIDTypeList, IntegerPixelIDTypeList, 3, LabelToAddressor<MemberFunctionType> > ();
+
+}
+
+} // end namespace simple
+} // end namespace itk
diff --git a/Code/BasicFilters/src/sitkCastImageFilter-3v.cxx b/Code/BasicFilters/src/sitkCastImageFilter-3v.cxx
new file mode 100644
index 0000000..ea1350a
--- /dev/null
+++ b/Code/BasicFilters/src/sitkCastImageFilter-3v.cxx
@@ -0,0 +1,39 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+#include "sitkCastImageFilter.hxx"
+
+
+namespace itk
+{
+namespace simple
+{
+
+
+void CastImageFilter::RegisterMemberFactory3v()
+{
+
+  // cast between vector images
+  m_DualMemberFactory->RegisterMemberFunctions<VectorPixelIDTypeList, VectorPixelIDTypeList, 3, CastAddressor<MemberFunctionType> > ();
+
+  // basic to vector
+  m_DualMemberFactory->RegisterMemberFunctions<BasicPixelIDTypeList, VectorPixelIDTypeList, 3, ToVectorAddressor<MemberFunctionType> > ();
+}
+
+} // end namespace simple
+} // end namespace itk
diff --git a/Code/BasicFilters/src/sitkCastImageFilter.cxx b/Code/BasicFilters/src/sitkCastImageFilter.cxx
new file mode 100644
index 0000000..1b70dc1
--- /dev/null
+++ b/Code/BasicFilters/src/sitkCastImageFilter.cxx
@@ -0,0 +1,107 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include "sitkCastImageFilter.h"
+
+
+namespace itk
+{
+namespace simple
+{
+
+
+//----------------------------------------------------------------------------
+
+//
+// Default constructor that initializes parameters
+//
+CastImageFilter::CastImageFilter ()
+{
+  this->m_OutputPixelType = sitkFloat32;
+
+  m_DualMemberFactory.reset( new  detail::DualMemberFunctionFactory<MemberFunctionType>( this ) );
+
+  this->RegisterMemberFactory2();
+  this->RegisterMemberFactory2v();
+  this->RegisterMemberFactory2l();
+  this->RegisterMemberFactory3();
+  this->RegisterMemberFactory3v();
+  this->RegisterMemberFactory3l();
+
+
+}
+
+//
+// ToString
+//
+std::string CastImageFilter::ToString() const
+{
+  std::ostringstream out;
+  out << "itk::simple::CastImageFilter\n"
+      << "\tOutputPixelType: " << this->m_OutputPixelType << std::endl;
+  out << ProcessObject::ToString();
+  return out.str();
+}
+
+//
+// Set/Get Methods for output pixel type
+//
+
+CastImageFilter::Self& CastImageFilter::SetOutputPixelType( PixelIDValueEnum pixelID )
+{
+  this->m_OutputPixelType = pixelID;
+  return *this;
+}
+
+PixelIDValueEnum CastImageFilter::GetOutputPixelType( void ) const
+{
+  return this->m_OutputPixelType;
+}
+
+
+//
+// Execute
+//
+Image CastImageFilter::Execute ( const Image& image )
+{
+
+  const PixelIDValueEnum inputType = image.GetPixelID();
+  const PixelIDValueEnum outputType = this->m_OutputPixelType;
+  const unsigned int dimension = image.GetDimension();
+
+  if (this->m_DualMemberFactory->HasMemberFunction( inputType, outputType,  dimension ) )
+    {
+    return this->m_DualMemberFactory->GetMemberFunction( inputType, outputType, dimension )( image );
+    }
+
+  sitkExceptionMacro( << "Filter does not support casting from casting " << itk::simple::GetPixelIDValueAsString (inputType) << " to "
+                      << itk::simple::GetPixelIDValueAsString (outputType) );
+
+}
+
+
+//----------------------------------------------------------------------------
+
+
+Image Cast ( const Image& image, PixelIDValueEnum pixelID ) {
+  CastImageFilter filter;
+  return filter.SetOutputPixelType ( pixelID ).Execute ( image );
+}
+
+
+} // end namespace simple
+} // end namespace itk
diff --git a/Code/BasicFilters/src/sitkCastImageFilter.hxx b/Code/BasicFilters/src/sitkCastImageFilter.hxx
new file mode 100644
index 0000000..7e192fd
--- /dev/null
+++ b/Code/BasicFilters/src/sitkCastImageFilter.hxx
@@ -0,0 +1,139 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkCastImageFilter_hxx
+#define sitkCastImageFilter_hxx
+
+// include itk first to suppress std::copy conversion warning
+#include <itkCastImageFilter.h>
+
+#include "sitkCastImageFilter.h"
+
+#include <itkComposeImageFilter.h>
+#include <itkLabelImageToLabelMapFilter.h>
+#include <itkLabelMapToLabelImageFilter.h>
+
+namespace itk
+{
+namespace simple
+{
+
+//----------------------------------------------------------------------------
+// Execute Internal Methods
+//----------------------------------------------------------------------------
+
+template<typename TImageType, typename TOutputImageType>
+Image
+CastImageFilter::ExecuteInternalCast( const Image& inImage )
+{
+  typedef TImageType       InputImageType;
+  typedef TOutputImageType OutputImageType;
+
+  typename InputImageType::ConstPointer image = this->CastImageToITK<InputImageType>( inImage );
+
+  typedef itk::CastImageFilter<InputImageType, OutputImageType> FilterType;
+  typename FilterType::Pointer filter = FilterType::New();
+
+  filter->SetInput ( image );
+
+  this->PreUpdate( filter.GetPointer() );
+
+  filter->Update();
+
+  return Image( filter->GetOutput() );
+}
+
+
+template<typename TImageType, typename TOutputImageType>
+Image CastImageFilter::ExecuteInternalToVector( const Image& inImage )
+{
+
+  typedef TImageType       InputImageType;
+  typedef TOutputImageType OutputImageType;
+
+  typename InputImageType::ConstPointer image = this->CastImageToITK<InputImageType>( inImage );
+
+  typedef itk::ComposeImageFilter<InputImageType> FilterType;
+  typename FilterType::Pointer filter = FilterType::New();
+  filter->SetInput ( image );
+
+  this->PreUpdate( filter.GetPointer() );
+
+  typedef itk::CastImageFilter< typename FilterType::OutputImageType, OutputImageType > CastFilterType;
+  typename CastFilterType::Pointer caster = CastFilterType::New();
+  caster->SetInput( filter->GetOutput() );
+  caster->InPlaceOn();
+
+  if (this->GetDebug())
+     {
+     std::cout << "Executing ITK filters:" << std::endl;
+     std::cout << filter;
+     std::cout << caster;
+     }
+
+  caster->Update();
+
+  return Image( caster->GetOutput() );
+}
+
+
+template<typename TImageType, typename TOutputImageType>
+Image CastImageFilter::ExecuteInternalToLabel( const Image& inImage )
+{
+  typedef TImageType                                InputImageType;
+  typedef TOutputImageType                          OutputImageType;
+
+
+  typename InputImageType::ConstPointer image = this->CastImageToITK<InputImageType>( inImage );
+
+  typedef itk::LabelImageToLabelMapFilter<InputImageType, OutputImageType> FilterType;
+  typename FilterType::Pointer filter = FilterType::New();
+  filter->SetInput ( image );
+
+  this->PreUpdate( filter.GetPointer() );
+
+  filter->Update();
+
+  return Image( filter->GetOutput() );
+}
+
+
+
+template<typename TImageType, typename TOutputImageType>
+Image CastImageFilter::ExecuteInternalLabelToImage( const Image& inImage )
+{
+  typedef TImageType                                InputImageType;
+  typedef TOutputImageType                          OutputImageType;
+
+  typename InputImageType::ConstPointer image = this->CastImageToITK<InputImageType>( inImage );
+
+
+  typedef itk::LabelMapToLabelImageFilter<InputImageType, OutputImageType> FilterType;
+  typename FilterType::Pointer filter = FilterType::New();
+  filter->SetInput ( image );
+
+  this->PreUpdate( filter.GetPointer() );
+
+  filter->Update();
+
+  return Image( filter->GetOutput() );
+}
+
+} // end namespace simple
+} // end namespace itk
+
+#endif // sitkCastImageFilter_hxx
diff --git a/Code/BasicFilters/src/sitkCenteredTransformInitializerFilter.cxx b/Code/BasicFilters/src/sitkCenteredTransformInitializerFilter.cxx
new file mode 100644
index 0000000..8c8f019
--- /dev/null
+++ b/Code/BasicFilters/src/sitkCenteredTransformInitializerFilter.cxx
@@ -0,0 +1,170 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+#include "itkImage.h"
+#include "itkVectorImage.h"
+#include "itkLabelMap.h"
+#include "itkLabelObject.h"
+#include "itkNumericTraits.h"
+#include "itkNumericTraitsVariableLengthVectorPixel.h"
+#include "itkVectorIndexSelectionCastImageFilter.h"
+#include "itkComposeImageFilter.h"
+
+#include "sitkCenteredTransformInitializerFilter.h"
+#include "itkCenteredTransformInitializer.h"
+
+// Additional include files
+#include "sitkTransform.h"
+// Done with additional include files
+
+namespace itk {
+namespace simple {
+
+//-----------------------------------------------------------------------------
+
+//
+// Default constructor that initializes parameters
+//
+CenteredTransformInitializerFilter::CenteredTransformInitializerFilter ()
+{
+
+    this->m_OperationMode = itk::simple::CenteredTransformInitializerFilter::MOMENTS;
+
+  this->m_MemberFactory.reset( new detail::MemberFunctionFactory<MemberFunctionType>( this ) );
+
+  this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 3 > ();
+  this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 2 > ();
+
+}
+
+//
+// Destructor
+//
+CenteredTransformInitializerFilter::~CenteredTransformInitializerFilter ()
+{
+
+}
+
+//
+// ToString
+//
+std::string CenteredTransformInitializerFilter::ToString() const
+{
+  std::ostringstream out;
+  out << "itk::simple::CenteredTransformInitializerFilter\n";
+  out << "  OperationMode: ";
+  this->ToStringHelper(out, this->m_OperationMode);
+  out << std::endl;
+
+  out << ProcessObject::ToString();
+  return out.str();
+}
+
+//
+// Execute
+//
+
+Transform CenteredTransformInitializerFilter::Execute ( const Image & fixedImage, const Image & movingImage, const Transform & transform, CenteredTransformInitializerFilter::OperationModeType operationMode )
+{
+  this->SetOperationMode ( operationMode );
+
+  return this->Execute ( fixedImage, movingImage, transform );
+}
+
+
+Transform CenteredTransformInitializerFilter::Execute ( const Image & fixedImage, const Image & movingImage, const Transform & transform )
+{
+  PixelIDValueEnum type = fixedImage.GetPixelID();
+  unsigned int dimension = fixedImage.GetDimension();
+
+  if ( type != movingImage.GetPixelIDValue() || dimension != movingImage.GetDimension() ) { sitkExceptionMacro ( "Moving Image parameter for " << this->GetName() << " doesn't match type or dimension!" ); }
+  if ( dimension != transform.GetDimension() ) { sitkExceptionMacro( "Transform parameter for " << this->GetName() << " doesn't match dimension!" ); }
+
+  return this->m_MemberFactory->GetMemberFunction( type, dimension )( &fixedImage, &movingImage, &transform );
+}
+
+
+//-----------------------------------------------------------------------------
+
+//
+// Custom Casts
+//
+namespace {
+
+}
+
+//-----------------------------------------------------------------------------
+
+//
+// ExecuteInternal
+//
+template <class TImageType>
+Transform CenteredTransformInitializerFilter::ExecuteInternal ( const Image * inFixedImage, const Image * inMovingImage, const Transform * inTransform )
+{
+
+  typedef itk::MatrixOffsetTransformBase< double, TImageType::ImageDimension, TImageType::ImageDimension > TransformType;
+  typedef itk::CenteredTransformInitializer< TransformType, TImageType, TImageType> FilterType;
+  // Set up the ITK filter
+  typename FilterType::Pointer filter = FilterType::New();
+
+
+  assert( inFixedImage != NULL );
+  filter->SetFixedImage( this->CastImageToITK<typename FilterType::FixedImageType>(*inFixedImage) );
+  assert( inMovingImage != NULL );
+  typename FilterType::MovingImageType::ConstPointer image2 = this->CastImageToITK<typename FilterType::MovingImageType>( *inMovingImage );
+  filter->SetMovingImage( image2 );
+  assert( inTransform != NULL );
+
+  // This initializers modifies the input, we copy the transform to
+  // prevent this change
+  Transform copyTransform(*inTransform);
+  copyTransform.SetFixedParameters(copyTransform.GetFixedParameters());
+
+  const typename FilterType::TransformType *itkTx = dynamic_cast<const typename FilterType::TransformType *>(copyTransform.GetITKBase() );
+  if ( !itkTx )
+    {
+    sitkExceptionMacro( "Error converting input transform to required transform type with center.\n" );
+
+    }
+  else { filter->SetTransform( const_cast<typename FilterType::TransformType*>(itkTx) ); }
+
+
+  if (m_OperationMode == MOMENTS)
+    {
+    filter->MomentsOn();
+    }
+  else
+    {
+    filter->GeometryOn();
+    }
+
+  filter->InitializeTransform();
+
+  return copyTransform;
+}
+
+//-----------------------------------------------------------------------------
+
+Transform CenteredTransformInitializer ( const Image & fixedImage, const Image & movingImage, const Transform & transform, CenteredTransformInitializerFilter::OperationModeType operationMode )
+{
+  CenteredTransformInitializerFilter filter;
+  return filter.Execute( fixedImage, movingImage, transform, operationMode );
+}
+
+} // end namespace simple
+} // end namespace itk
diff --git a/Code/BasicFilters/src/sitkCenteredVersorTransformInitializerFilter.cxx b/Code/BasicFilters/src/sitkCenteredVersorTransformInitializerFilter.cxx
new file mode 100644
index 0000000..541f3fb
--- /dev/null
+++ b/Code/BasicFilters/src/sitkCenteredVersorTransformInitializerFilter.cxx
@@ -0,0 +1,161 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+#include "itkImage.h"
+#include "itkVectorImage.h"
+#include "itkLabelMap.h"
+#include "itkLabelObject.h"
+#include "itkNumericTraits.h"
+#include "itkNumericTraitsVariableLengthVectorPixel.h"
+#include "itkVectorIndexSelectionCastImageFilter.h"
+#include "itkComposeImageFilter.h"
+
+#include "itkVersorRigid3DTransform.h"
+#include "sitkCenteredVersorTransformInitializerFilter.h"
+#include "itkCenteredVersorTransformInitializer.h"
+
+// Additional include files
+#include "sitkTransform.h"
+// Done with additional include files
+
+namespace itk {
+namespace simple {
+
+//-----------------------------------------------------------------------------
+
+//
+// Default constructor that initializes parameters
+//
+CenteredVersorTransformInitializerFilter::CenteredVersorTransformInitializerFilter ()
+{
+
+  this->m_ComputeRotation = false;
+
+  this->m_MemberFactory.reset( new detail::MemberFunctionFactory<MemberFunctionType>( this ) );
+
+  this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 3 > ();
+
+}
+
+//
+// Destructor
+//
+CenteredVersorTransformInitializerFilter::~CenteredVersorTransformInitializerFilter ()
+{
+
+}
+
+
+//
+// ToString
+//
+std::string CenteredVersorTransformInitializerFilter::ToString() const
+{
+  std::ostringstream out;
+  out << "itk::simple::CenteredVersorTransformInitializerFilter\n";
+  out << "  ComputeRotation: ";
+  this->ToStringHelper(out, this->m_ComputeRotation);
+  out << std::endl;
+
+  out << ProcessObject::ToString();
+  return out.str();
+}
+
+//
+// Execute
+//
+Transform CenteredVersorTransformInitializerFilter::Execute ( const Image & fixedImage, const Image & movingImage, const Transform & transform,  bool computeRotation )
+{
+  this->SetComputeRotation ( computeRotation );
+
+  return this->Execute ( fixedImage, movingImage, transform );
+}
+
+
+Transform CenteredVersorTransformInitializerFilter::Execute ( const Image & fixedImage, const Image & movingImage, const Transform & transform )
+{
+  PixelIDValueEnum type = fixedImage.GetPixelID();
+  unsigned int dimension = fixedImage.GetDimension();
+
+  if ( type != movingImage.GetPixelIDValue() || dimension != movingImage.GetDimension() ) { sitkExceptionMacro ( "Moving Image parameter for " << this->GetName() << " doesn't match type or dimension!" ); }
+  if ( dimension != transform.GetDimension() ) { sitkExceptionMacro( "Transform parameter for " << this->GetName() << " doesn't match dimension!" ); }
+
+  return this->m_MemberFactory->GetMemberFunction( type, dimension )( &fixedImage, &movingImage, &transform );
+}
+
+
+//-----------------------------------------------------------------------------
+
+//
+// Custom Casts
+//
+namespace {
+
+}
+
+//-----------------------------------------------------------------------------
+
+//
+// ExecuteInternal
+//
+template <class TImageType>
+Transform CenteredVersorTransformInitializerFilter::ExecuteInternal ( const Image * inFixedImage, const Image * inMovingImage, const Transform * inTransform )
+{
+
+  typedef itk::CenteredVersorTransformInitializer< TImageType, TImageType> FilterType;
+  // Set up the ITK filter
+  typename FilterType::Pointer filter = FilterType::New();
+
+
+  assert( inFixedImage != NULL );
+  filter->SetFixedImage( this->CastImageToITK<typename FilterType::FixedImageType>(*inFixedImage) );
+  assert( inMovingImage != NULL );
+  typename FilterType::MovingImageType::ConstPointer image2 = this->CastImageToITK<typename FilterType::MovingImageType>( *inMovingImage );
+  filter->SetMovingImage( image2 );
+  assert( inTransform != NULL );
+
+  // This initializers modifies the input, we copy the transform to
+  // prevent this change
+  Transform copyTransform(*inTransform);
+  copyTransform.SetFixedParameters(copyTransform.GetFixedParameters());
+
+  const typename FilterType::TransformType *itkTx = dynamic_cast<const typename FilterType::TransformType *>(copyTransform.GetITKBase() );
+  if ( !itkTx )
+    {
+    sitkExceptionMacro( "Error converting input transform to required versor transform type.\n" );
+    }
+  else { filter->SetTransform( const_cast<typename FilterType::TransformType*>(itkTx) ); }
+
+
+  filter->SetComputeRotation ( this->m_ComputeRotation );
+
+  filter->InitializeTransform();
+
+  return copyTransform;
+}
+
+//-----------------------------------------------------------------------------
+
+Transform CenteredVersorTransformInitializer ( const Image & fixedImage, const Image & movingImage, const Transform & transform, bool computeRotation )
+{
+  CenteredVersorTransformInitializerFilter filter;
+  return filter.Execute( fixedImage, movingImage, transform, computeRotation );
+}
+
+} // end namespace simple
+} // end namespace itk
diff --git a/Code/BasicFilters/src/sitkCreateInterpolator.hxx b/Code/BasicFilters/src/sitkCreateInterpolator.hxx
new file mode 100644
index 0000000..bacebab
--- /dev/null
+++ b/Code/BasicFilters/src/sitkCreateInterpolator.hxx
@@ -0,0 +1,153 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkCreateInterpolator_hxx
+#define sitkCreateInterpolator_hxx
+
+
+#include "sitkInterpolator.h"
+#include <itkNearestNeighborInterpolateImageFunction.h>
+#include <itkLinearInterpolateImageFunction.h>
+#include <itkBSplineInterpolateImageFunction.h>
+#include <itkGaussianInterpolateImageFunction.h>
+#include <itkLabelImageGaussianInterpolateImageFunction.h>
+#include <itkWindowedSincInterpolateImageFunction.h>
+
+namespace itk
+{
+
+namespace simple
+{
+
+template<typename TInterpolatorType>
+typename TInterpolatorType::Pointer
+ConditionalCreateInterpolator( const TrueType & )
+{
+  return TInterpolatorType::New();
+}
+
+template<typename TInterpolatorType>
+TInterpolatorType*
+ConditionalCreateInterpolator( const FalseType & )
+{
+  return NULL;
+}
+
+template< typename TImageType >
+typename itk::InterpolateImageFunction< TImageType, double >::Pointer
+CreateInterpolator( const TImageType *image, InterpolatorEnum itype )
+{
+  typedef typename itk::InterpolateImageFunction< TImageType, double >::Pointer RType;
+  typedef typename itk::ZeroFluxNeumannBoundaryCondition<TImageType,TImageType> BoundaryCondition;
+  //typedef typename itk::ConstantBoundaryCondition<TImageType> BoundaryCondition;
+
+  typedef typename TImageType::SpacingType SpacingType;
+
+  static const unsigned int WindowingRadius = 5;
+
+  const SpacingType &spacing = image->GetSpacing();
+
+  switch( itype )
+    {
+    case sitkNearestNeighbor:
+    {
+      typedef itk::NearestNeighborInterpolateImageFunction<TImageType, double> InterpolatorType;
+      return RType( InterpolatorType::New() );
+    }
+    case sitkLinear:
+    {
+      typedef itk::LinearInterpolateImageFunction<TImageType, double> InterpolatorType;
+      return RType( InterpolatorType::New() );
+    }
+    case sitkBSpline:
+    {
+      typedef itk::BSplineInterpolateImageFunction<TImageType, double> InterpolatorType;
+      return RType( ConditionalCreateInterpolator<InterpolatorType>( typename IsBasic<TImageType>::Type() ) );
+    }
+    case sitkGaussian:
+    {
+    typedef itk::GaussianInterpolateImageFunction<TImageType, double> InterpolatorType;
+
+    typename InterpolatorType::ArrayType sigma;
+
+    for( unsigned int i = 0; i < TImageType::ImageDimension; ++i )
+      {
+      sigma[i] = 0.8*spacing[i];
+      }
+    typename InterpolatorType::Pointer p = InterpolatorType::New();
+    p->SetSigma(sigma);
+    p->SetAlpha(4.0);
+    return RType(p);
+    }
+    case sitkLabelGaussian:
+    {
+    typedef itk::LabelImageGaussianInterpolateImageFunction<TImageType, double> InterpolatorType;
+
+    typename InterpolatorType::ArrayType sigma;
+
+    for( unsigned int i = 0; i < TImageType::ImageDimension; ++i )
+      {
+      sigma[i] = spacing[i];
+      }
+    typename InterpolatorType::Pointer p = InterpolatorType::New();
+    p->SetSigma(sigma);
+    p->SetAlpha(1.0);
+    return RType(p);
+    }
+    case sitkHammingWindowedSinc:
+    {
+
+      typedef typename itk::Function::HammingWindowFunction<WindowingRadius, double, double > WindowFunction;
+      typedef itk::WindowedSincInterpolateImageFunction<TImageType, WindowingRadius, WindowFunction, BoundaryCondition> InterpolatorType;
+      return RType( ConditionalCreateInterpolator<InterpolatorType>( typename IsBasic<TImageType>::Type() ) );
+    }
+    case sitkCosineWindowedSinc:
+    {
+      typedef typename itk::Function::CosineWindowFunction<WindowingRadius, double, double > WindowFunction;
+      typedef itk::WindowedSincInterpolateImageFunction<TImageType, WindowingRadius, WindowFunction, BoundaryCondition> InterpolatorType;
+      return RType( ConditionalCreateInterpolator<InterpolatorType>( typename IsBasic<TImageType>::Type() ) );
+    }
+    case sitkWelchWindowedSinc:
+    {
+      typedef typename itk::Function::WelchWindowFunction<WindowingRadius, double, double > WindowFunction;
+      typedef itk::WindowedSincInterpolateImageFunction<TImageType, WindowingRadius, WindowFunction, BoundaryCondition> InterpolatorType;
+      return RType( ConditionalCreateInterpolator<InterpolatorType>( typename IsBasic<TImageType>::Type() ) );
+    }
+    case sitkLanczosWindowedSinc:
+    {
+      typedef typename itk::Function::LanczosWindowFunction<WindowingRadius, double, double > WindowFunction;
+      typedef itk::WindowedSincInterpolateImageFunction<TImageType, WindowingRadius, WindowFunction, BoundaryCondition> InterpolatorType;
+      return RType( ConditionalCreateInterpolator<InterpolatorType>( typename IsBasic<TImageType>::Type() ) );
+    }
+    case sitkBlackmanWindowedSinc:
+    {
+      typedef typename itk::Function::BlackmanWindowFunction<WindowingRadius, double, double > WindowFunction;
+      typedef itk::WindowedSincInterpolateImageFunction<TImageType, WindowingRadius, WindowFunction, BoundaryCondition> InterpolatorType;
+      return RType( ConditionalCreateInterpolator<InterpolatorType>( typename IsBasic<TImageType>::Type() ) );
+    }
+    default:
+      return NULL;
+    }
+
+}
+
+
+} // end namespace simple
+} // end namespace itk
+
+
+#endif // sitkCreateInterpolator_hxx
diff --git a/Code/BasicFilters/src/sitkCreateKernel.h b/Code/BasicFilters/src/sitkCreateKernel.h
new file mode 100644
index 0000000..2764954
--- /dev/null
+++ b/Code/BasicFilters/src/sitkCreateKernel.h
@@ -0,0 +1,73 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkCreateKernel_h
+#define sitkCreateKernel_h
+
+
+#include "sitkKernel.h"
+#include <itkFlatStructuringElement.h>
+
+namespace itk
+{
+
+namespace simple
+{
+
+#define sitkKernelPolygonCreateMacro(n) \
+  case sitkPolygon##n: return ITKKernelType::Polygon( radius, n )
+
+template< unsigned int VImageDimension >
+itk::FlatStructuringElement< VImageDimension >
+CreateKernel( KernelEnum kernelType, const std::vector<uint32_t> &size )
+{
+  typedef typename itk::FlatStructuringElement< VImageDimension > ITKKernelType;
+
+  typename ITKKernelType::SizeType radius = sitkSTLVectorToITK<typename ITKKernelType::SizeType>( size );
+
+  switch (kernelType)
+    {
+    case sitkAnnulus:
+      return ITKKernelType::Annulus( radius, 1, false );
+    case sitkBall:
+      return ITKKernelType::Ball( radius );
+    case sitkBox:
+      return ITKKernelType::Box( radius );
+    case sitkCross:
+      return ITKKernelType::Cross( radius );
+    sitkKernelPolygonCreateMacro(3);
+    sitkKernelPolygonCreateMacro(4);
+    sitkKernelPolygonCreateMacro(5);
+    sitkKernelPolygonCreateMacro(6);
+    sitkKernelPolygonCreateMacro(7);
+    sitkKernelPolygonCreateMacro(8);
+    sitkKernelPolygonCreateMacro(9);
+    default:
+      sitkExceptionMacro( "Logic Error: Unknown Kernel Type" );
+    }
+
+#undef sitkKernelPolygonCreateMacro
+
+
+}
+
+
+} // end namespace simple
+} // end namespace itk
+
+
+#endif // sitkCreateKernel_h
diff --git a/Code/BasicFilters/src/sitkHashImageFilter.cxx b/Code/BasicFilters/src/sitkHashImageFilter.cxx
new file mode 100644
index 0000000..21a3267
--- /dev/null
+++ b/Code/BasicFilters/src/sitkHashImageFilter.cxx
@@ -0,0 +1,133 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+#include "sitkHashImageFilter.h"
+#include "sitkCastImageFilter.h"
+#include "itkHashImageFilter.h"
+#include "itkVectorImage.h"
+#include "itkLabelMap.h"
+#include "itkLabelObject.h"
+
+#include <typeinfo>
+#include <string>
+
+namespace itk {
+  namespace simple {
+    HashImageFilter::HashImageFilter () {
+      this->m_HashFunction = SHA1;
+
+      this->m_MemberFactory.reset( new detail::MemberFunctionFactory<MemberFunctionType>( this ) );
+
+      this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 4 > ();
+      this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 3 > ();
+      this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 2 > ();
+
+      this->m_MemberFactory->RegisterMemberFunctions < LabelPixelIDTypeList, 4, detail::ExecuteInternalLabelImageAddressor<MemberFunctionType> > ();
+      this->m_MemberFactory->RegisterMemberFunctions < LabelPixelIDTypeList, 3, detail::ExecuteInternalLabelImageAddressor<MemberFunctionType> > ();
+      this->m_MemberFactory->RegisterMemberFunctions < LabelPixelIDTypeList, 2, detail::ExecuteInternalLabelImageAddressor<MemberFunctionType> > ();
+    }
+
+    std::string HashImageFilter::ToString() const {
+      std::ostringstream out;
+      out << "itk::simple::HashImageFilter" << std::endl;
+      out << "HashFunction: ";
+      switch ( this->m_HashFunction )
+        {
+        case SHA1:
+          out << "SHA1";
+          break;
+        case MD5:
+          out << "MD5";
+          break;
+        }
+      out << std::endl;
+      out << ProcessObject::ToString();
+      return out.str();
+    }
+
+    HashImageFilter::HashFunction HashImageFilter::GetHashFunction() const
+    {
+      return this->m_HashFunction;
+    }
+
+    HashImageFilter& HashImageFilter::SetHashFunction ( HashImageFilter::HashFunction hashFunction )
+      {
+      this->m_HashFunction = hashFunction;
+      return *this;
+      }
+
+    std::string HashImageFilter::Execute ( const Image& image ) {
+
+      PixelIDValueEnum type = image.GetPixelID();
+      unsigned int dimension = image.GetDimension();
+
+      return this->m_MemberFactory->GetMemberFunction( type, dimension )( image );
+    }
+
+    template <class TLabelImageType>
+    std::string HashImageFilter::ExecuteInternalLabelImage( const Image &inImage )
+    {
+      typedef TLabelImageType LabelImageType;
+
+      typedef itk::Image< typename LabelImageType::PixelType, LabelImageType::ImageDimension > ScalarImageType;
+
+      // The image id for a scalar image of the label map image
+      PixelIDValueEnum scalarID = static_cast<PixelIDValueEnum>(PixelIDToPixelIDValue< typename ImageTypeToPixelID<ScalarImageType>::PixelIDType >::Result);
+
+      // convert the LabelMapImage to a scalar image
+      Image img = Cast( inImage, scalarID );
+
+      return this->Execute( img );
+    }
+
+    template <class TImageType>
+    std::string HashImageFilter::ExecuteInternal ( const Image& inImage )
+    {
+      typedef TImageType                                   InputImageType;
+
+      typename InputImageType::ConstPointer image =
+        dynamic_cast <const InputImageType*> ( inImage.GetITKBase() );
+
+      typedef itk::HashImageFilter<InputImageType> HashFilterType;
+      typename HashFilterType::Pointer hasher = HashFilterType::New();
+      hasher->SetInput( image );
+      hasher->InPlaceOff(); // pointless copy of data needed
+
+      switch ( this->GetHashFunction() )
+        {
+        case SHA1:
+          hasher->SetHashFunction( HashFilterType::SHA1 );
+          break;
+        case MD5:
+          hasher->SetHashFunction( HashFilterType::MD5 );
+          break;
+        }
+
+      this->PreUpdate( hasher.GetPointer() );
+
+      hasher->Update();
+
+      return hasher->GetHash();
+    }
+
+    std::string Hash ( const Image& image, HashImageFilter::HashFunction function )
+    {
+      return HashImageFilter().SetHashFunction ( function ).Execute ( image );
+    }
+  }
+}
diff --git a/Code/BasicFilters/src/sitkHeavisideFunction.hxx b/Code/BasicFilters/src/sitkHeavisideFunction.hxx
new file mode 100644
index 0000000..0093e12
--- /dev/null
+++ b/Code/BasicFilters/src/sitkHeavisideFunction.hxx
@@ -0,0 +1,48 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkHeavisideFunction_h
+#define sitkHeavisideFunction_h
+
+#include "itkAtanRegularizedHeavisideStepFunction.h"
+#include "itkSinRegularizedHeavisideStepFunction.h"
+#include "itkHeavisideStepFunction.h"
+
+namespace itk {
+namespace simple {
+
+  if (m_HeavisideStepFunction == AtanRegularizedHeaviside) {
+    typedef itk::AtanRegularizedHeavisideStepFunction< typename InputImageType::PixelType, typename InputImageType::PixelType >  DomainFunctionType;
+    typename DomainFunctionType::Pointer domainFunction = DomainFunctionType::New();
+    domainFunction->SetLambda(m_Lambda);
+    filter->GetDifferenceFunction(0)->SetDomainFunction( domainFunction );
+  } else if ( m_HeavisideStepFunction == SinRegularizedHeaviside ) {
+    typedef itk::AtanRegularizedHeavisideStepFunction< typename InputImageType::PixelType, typename InputImageType::PixelType >  DomainFunctionType;
+    typename DomainFunctionType::Pointer domainFunction = DomainFunctionType::New();
+    domainFunction->SetLambda(m_Lambda);
+    filter->GetDifferenceFunction(0)->SetDomainFunction( domainFunction );
+  } else {
+    typedef itk::HeavisideStepFunction< typename InputImageType::PixelType, typename InputImageType::PixelType >  DomainFunctionType;
+    typename DomainFunctionType::Pointer domainFunction = DomainFunctionType::New();
+    filter->GetDifferenceFunction(0)->SetDomainFunction( domainFunction );
+  }
+
+
+} // end namespace simple
+} // end namespace itk
+
+#endif
diff --git a/Code/BasicFilters/src/sitkImageFilter.cxx b/Code/BasicFilters/src/sitkImageFilter.cxx
new file mode 100644
index 0000000..4eeeea8
--- /dev/null
+++ b/Code/BasicFilters/src/sitkImageFilter.cxx
@@ -0,0 +1,54 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include "sitkImageFilter.h"
+
+#include "itkProcessObject.h"
+
+#include <iostream>
+
+
+
+namespace itk {
+namespace simple {
+//----------------------------------------------------------------------------
+
+//
+// Default constructor that initializes parameters
+//
+template< unsigned int N >
+ImageFilter< N >::ImageFilter ()
+{
+}
+
+//
+// Default destructor
+//
+template< unsigned int N >
+ImageFilter< N >::~ImageFilter ()
+{
+}
+
+template class ImageFilter<0>;
+template class ImageFilter<1>;
+template class ImageFilter<2>;
+template class ImageFilter<3>;
+template class ImageFilter<4>;
+template class ImageFilter<5>;
+
+} // end namespace simple
+} // end namespace itk
diff --git a/Code/BasicFilters/src/sitkImageToKernel.hxx b/Code/BasicFilters/src/sitkImageToKernel.hxx
new file mode 100644
index 0000000..75c9f79
--- /dev/null
+++ b/Code/BasicFilters/src/sitkImageToKernel.hxx
@@ -0,0 +1,89 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkBoundaryConditions_h
+#define sitkBoundaryConditions_h
+
+#include <memory>
+#include <itkImageKernelOperator.h>
+#include <itkConstantPadImageFilter.h>
+
+namespace itk {
+namespace simple {
+
+
+/** \brief Convert an itk Image to an itk ImageKernalOperator
+ *
+ * This method will internally pad the image with the
+ * ConstantPadImageFilter, and then convert to an ImageKernalOperator
+ * via a deep copy.
+ *
+ */
+template<typename TImageType>
+nsstd::auto_ptr< ImageKernelOperator< typename TImageType::PixelType, TImageType::ImageDimension > >
+CreateOperatorFromImage( const TImageType * image )
+{
+typedef typename TImageType::PixelType KernelImagePixelType;
+typedef ImageKernelOperator< KernelImagePixelType, TImageType::ImageDimension > KernelType;
+typedef nsstd::auto_ptr<KernelType> KernelPointerType;
+
+typedef typename KernelType::SizeType KernelSizeType;
+
+KernelPointerType kernelOperator( new KernelType() );
+
+bool kernelNeedsPadding = false;
+
+typedef itk::ConstantPadImageFilter<TImageType,TImageType> PadImageFilter;
+typename PadImageFilter::Pointer padFilter = PadImageFilter::New();
+padFilter->SetConstant( NumericTraits< KernelImagePixelType >::ZeroValue() );
+typename TImageType::SizeType padSize = image->GetLargestPossibleRegion().GetSize();
+for( unsigned int i = 0; i < TImageType::ImageDimension; ++i )
+  {
+  // Pad by 1 if the size fo the image in this dimension is even.
+  padSize[i] = 1 - padSize[i]%2;
+
+  if ( padSize[i] != 0 )
+    {
+    kernelNeedsPadding = true;
+    }
+  }
+padFilter->SetPadLowerBound(padSize);
+padFilter->SetInput( image );
+
+if ( kernelNeedsPadding )
+  {
+  padFilter->UpdateLargestPossibleRegion();
+  image = padFilter->GetOutput();
+  }
+
+kernelOperator->SetImageKernel( image );
+
+KernelSizeType radius;
+for ( unsigned int i = 0; i < TImageType::ImageDimension; ++i )
+  {
+  radius[i] = image->GetLargestPossibleRegion().GetSize()[i]/2;
+  }
+
+kernelOperator->CreateToRadius( radius );
+
+return kernelOperator;
+}
+
+} // end namespace simple
+} // end namespace itk
+
+#endif
diff --git a/Code/BasicFilters/src/sitkLabelFunctorUtils.hxx b/Code/BasicFilters/src/sitkLabelFunctorUtils.hxx
new file mode 100644
index 0000000..e4f8cab
--- /dev/null
+++ b/Code/BasicFilters/src/sitkLabelFunctorUtils.hxx
@@ -0,0 +1,52 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkLabelFunctorUtils_hxx
+#define sitkLabelFunctorUtils_hxx
+
+namespace itk
+{
+namespace simple
+{
+
+/** \brief Set the Colormap functor to the provided color map
+ *
+ * The implicit TLabelFunctorType template parameter is expected to
+ * have the interface of itk::LabelToRGBFunctor. The functor's color
+ * are reset. The color map parameter is expected to be triples of
+ * R,G,B if the size is not divisible by 3 then the remainder are
+ * ignored.
+ */
+template <typename TLabelFunctorType>
+void
+SetLabelFunctorFromColormap( TLabelFunctorType &functor, const std::vector<unsigned char> &colormap )
+{
+  if (colormap.size()/3 > 0 )
+    {
+    functor.ResetColors();
+    }
+
+  for(size_t i = 0; i < colormap.size(); i += 3)
+    {
+    functor.AddColor(colormap[i],colormap[i+1],colormap[i+2]);
+    }
+}
+
+}
+}
+
+#endif //sitkLabelFunctorUtils_hxx
diff --git a/Code/BasicFilters/src/sitkLandmarkBasedTransformInitializerFilter.cxx b/Code/BasicFilters/src/sitkLandmarkBasedTransformInitializerFilter.cxx
new file mode 100644
index 0000000..c15217f
--- /dev/null
+++ b/Code/BasicFilters/src/sitkLandmarkBasedTransformInitializerFilter.cxx
@@ -0,0 +1,219 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+#include "itkImage.h"
+#include "itkVectorImage.h"
+#include "itkLabelMap.h"
+#include "itkLabelObject.h"
+#include "itkNumericTraits.h"
+#include "itkNumericTraitsVariableLengthVectorPixel.h"
+#include "itkVectorIndexSelectionCastImageFilter.h"
+#include "itkComposeImageFilter.h"
+
+#include "sitkLandmarkBasedTransformInitializerFilter.h"
+#include "itkLandmarkBasedTransformInitializer.h"
+
+// Additional include files
+#include "sitkTransform.h"
+// Done with additional include files
+
+namespace itk {
+namespace simple {
+
+//-----------------------------------------------------------------------------
+
+//
+// Default constructor that initializes parameters
+//
+LandmarkBasedTransformInitializerFilter::LandmarkBasedTransformInitializerFilter ()
+{
+
+    this->m_FixedLandmarks = std::vector<double>();
+    this->m_MovingLandmarks = std::vector<double>();
+    this->m_LandmarkWeight = std::vector<double>();
+    this->m_ReferenceImage = Image();
+    this->m_BSplineNumberOfControlPoints = 4u;
+
+  this->m_MemberFactory.reset( new detail::MemberFunctionFactory<MemberFunctionType>( this ) );
+
+  this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 3 > ();
+  this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 2 > ();
+}
+
+//
+// Destructor
+//
+LandmarkBasedTransformInitializerFilter::~LandmarkBasedTransformInitializerFilter ()
+{
+
+}
+
+
+
+//
+// ToString
+//
+std::string LandmarkBasedTransformInitializerFilter::ToString() const
+{
+  std::ostringstream out;
+  out << "itk::simple::LandmarkBasedTransformInitializerFilter\n";
+  out << "  FixedLandmarks: ";
+  this->ToStringHelper(out, this->m_FixedLandmarks);
+  out << std::endl;
+  out << "  MovingLandmarks: ";
+  this->ToStringHelper(out, this->m_MovingLandmarks);
+  out << std::endl;
+  out << "  LandmarkWeight: ";
+  this->ToStringHelper(out, this->m_LandmarkWeight);
+  out << std::endl;
+  // out << "  ReferenceImage: ";
+  // this->ToStringHelper(out, this->m_ReferenceImage);
+  out << std::endl;
+  out << "  BSplineNumberOfControlPoints: ";
+  this->ToStringHelper(out, this->m_BSplineNumberOfControlPoints);
+  out << std::endl;
+
+  out << ProcessObject::ToString();
+  return out.str();
+}
+
+//
+// Execute
+//
+Transform LandmarkBasedTransformInitializerFilter::Execute ( const Transform & transform, const std::vector<double> & fixedLandmarks, const std::vector<double> & movingLandmarks, const std::vector<double> & landmarkWeight, const Image & referenceImage, unsigned int numberOfControlPoints )
+{
+  this->SetFixedLandmarks ( fixedLandmarks );
+  this->SetMovingLandmarks ( movingLandmarks );
+  this->SetLandmarkWeight ( landmarkWeight );
+  this->SetReferenceImage ( referenceImage );
+  this->SetBSplineNumberOfControlPoints ( numberOfControlPoints );
+
+  return this->Execute ( transform );
+}
+
+
+Transform LandmarkBasedTransformInitializerFilter::Execute ( const Transform & transform )
+{
+  unsigned int dimension = transform.GetDimension();
+
+  // The dimension of the reference image which the user explicitly
+  // set (GetSize()!=[0...0]), and the dimension of the transform do not match
+  if ( this->m_ReferenceImage.GetSize() != std::vector<unsigned int>(this->m_ReferenceImage.GetDimension(), 0u) &&
+       dimension != this->m_ReferenceImage.GetDimension() )
+    {
+    sitkExceptionMacro ( "ReferenceImage for LandmarkBasedTransformInitializerFilter does not match dimension of the transform!" );
+    }
+
+  return this->m_MemberFactory->GetMemberFunction( sitkFloat32, dimension )( &transform );
+}
+
+
+//-----------------------------------------------------------------------------
+
+//
+// Custom Casts
+//
+namespace {
+
+}
+
+//-----------------------------------------------------------------------------
+
+//
+// ExecuteInternal
+//
+template <class TImageType>
+Transform LandmarkBasedTransformInitializerFilter::ExecuteInternal ( const Transform * inTransform )
+{
+
+  // Define the input and output image types
+  typedef itk::ImageBase<TImageType::ImageDimension>  InputImageType;
+  const unsigned int Dimension = InputImageType::ImageDimension;
+
+
+  typedef itk::LandmarkBasedTransformInitializer< itk::Transform< double, Dimension, Dimension >, InputImageType, InputImageType> FilterType;
+  // Set up the ITK filter
+  typename FilterType::Pointer filter = FilterType::New();
+
+  // This initializers modifies the input, we copy the transform to
+  // prevent this change
+  Transform copyTransform(*inTransform);
+  copyTransform.SetFixedParameters(copyTransform.GetFixedParameters());
+
+
+  const typename FilterType::TransformType *itkTx = dynamic_cast<const typename FilterType::TransformType *>(copyTransform.GetITKBase());
+
+  if ( !itkTx )
+    {
+    sitkExceptionMacro( "Unexpected error converting transform! Possible miss matching dimensions!" );
+    }
+  else { filter->SetTransform( const_cast<typename FilterType::TransformType*>(itkTx) ); }
+
+
+
+  typedef typename FilterType::LandmarkPointContainer PointContainer;
+  PointContainer fixedITKPoints;
+  fixedITKPoints = sitkSTLVectorToITKPointVector<PointContainer,double>(m_FixedLandmarks);
+  filter->SetFixedLandmarks(fixedITKPoints);
+
+  PointContainer movingITKPoints;
+  movingITKPoints = sitkSTLVectorToITKPointVector<PointContainer,double>(m_MovingLandmarks);
+  filter->SetMovingLandmarks(movingITKPoints);
+
+  filter->SetLandmarkWeight ( this->m_LandmarkWeight );
+
+  // BSpline specific setup
+  if( itkTx->GetTransformCategory() == itkTx->BSpline )
+    {
+    if ( this->m_ReferenceImage.GetSize() == std::vector<unsigned int>(this->m_ReferenceImage.GetDimension(), 0u) )
+      {
+      sitkExceptionMacro( "Image not set for BSplineTransform initializer." );
+      }
+    // Get the pointer to the ITK image contained in image1
+    typename InputImageType::ConstPointer referenceImage = this->CastImageToITK<InputImageType>( this->m_ReferenceImage );
+    filter->SetReferenceImage ( referenceImage.GetPointer() );
+    filter->SetBSplineNumberOfControlPoints ( this->m_BSplineNumberOfControlPoints );
+    }
+
+  if (this->GetDebug())
+    {
+    std::cout << "Executing ITK filter:" << std::endl;
+    filter->Print(std::cout);
+    }
+
+  filter->InitializeTransform();
+
+  return copyTransform;
+
+}
+
+//-----------------------------------------------------------------------------
+
+
+//
+// Function to run the Execute method of this filter
+//
+Transform LandmarkBasedTransformInitializer ( const Transform & transform, const std::vector<double> & fixedLandmarks, const std::vector<double> & movingLandmarks, const std::vector<double> & landmarkWeight, const Image & referenceImage, unsigned int numberOfControlPoints )
+{
+  LandmarkBasedTransformInitializerFilter filter;
+  return filter.Execute ( transform, fixedLandmarks, movingLandmarks, landmarkWeight, referenceImage, numberOfControlPoints );
+}
+
+
+} // end namespace simple
+} // end namespace itk
diff --git a/Code/BasicFilters/src/sitkPermuteAxis_Static.hxx b/Code/BasicFilters/src/sitkPermuteAxis_Static.hxx
new file mode 100644
index 0000000..6e85256
--- /dev/null
+++ b/Code/BasicFilters/src/sitkPermuteAxis_Static.hxx
@@ -0,0 +1,36 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkPermiteAxis_Static_hxx
+#define sitkPermiteAxis_Static_hxx
+
+#include "sitkPermuteAxesImageFilter.h"
+
+// This file is intended to contain the definition of static
+// membervariables needed by JSON Expand templated image filters.
+// It may also contain other member declarations, or other useful
+// items that could be specified here, as opposed to the JSON.
+
+namespace itk {
+  namespace simple {
+
+  const unsigned int PermuteAxesImageFilter::DefaultOrder[3] = {0,1,2};
+
+  }
+}
+
+#endif
diff --git a/Code/BasicFilters/src/sitkToPixelType.hxx b/Code/BasicFilters/src/sitkToPixelType.hxx
new file mode 100644
index 0000000..5ca9eba
--- /dev/null
+++ b/Code/BasicFilters/src/sitkToPixelType.hxx
@@ -0,0 +1,43 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+#include "itkVariableLengthVector.h"
+
+
+namespace itk {
+namespace simple {
+
+
+namespace
+{
+
+template <typename TValueType, typename TPixel>
+static void ToPixelType( TValueType inPixel, TPixel &outPixel)
+{
+  outPixel = static_cast<TPixel>( inPixel );
+}
+
+template <typename TValueType, typename TComponent>
+static void ToPixelType( TValueType inPixel, itk::VariableLengthVector<TComponent> &outPixel)
+{
+  outPixel.Fill( static_cast<TComponent>( inPixel ) );
+}
+
+}
+}
+}
diff --git a/Code/BasicFilters/templates/sitkBinaryFunctorFilterTemplate.cxx.in b/Code/BasicFilters/templates/sitkBinaryFunctorFilterTemplate.cxx.in
new file mode 100644
index 0000000..3a6f744
--- /dev/null
+++ b/Code/BasicFilters/templates/sitkBinaryFunctorFilterTemplate.cxx.in
@@ -0,0 +1,205 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+$(include DoNotEditWarning.cxx.in)
+
+$(include StandardIncludes.cxx.in)
+$(include AddExtraIncludes.cxx.in)
+#include "sitkToPixelType.hxx"
+
+namespace itk {
+namespace simple {
+
+
+//-----------------------------------------------------------------------------
+
+//
+// Default constructor that initializes parameters
+//
+$(include ConstructorSignature.cxx.in)
+{
+$(include ConstructorInitializeMembers.cxx.in)
+$(include ConstructorMemberFunctionSetup.cxx.in)
+
+$(include ConstructorVectorPixels.cxx.in)
+
+  this->m_MemberFactory1.reset( new detail::MemberFunctionFactory<MemberFunction1Type>( this ) );
+  this->m_MemberFactory1->RegisterMemberFunctions< PixelIDTypeList, 3 > ();
+  this->m_MemberFactory1->RegisterMemberFunctions< PixelIDTypeList, 2 > ();
+
+  this->m_MemberFactory2.reset( new detail::MemberFunctionFactory<MemberFunction2Type>( this ) );
+  this->m_MemberFactory2->RegisterMemberFunctions< PixelIDTypeList, 3 > ();
+  this->m_MemberFactory2->RegisterMemberFunctions< PixelIDTypeList, 2 > ();
+}
+
+
+$(include DesctuctorDefinition.cxx.in)
+
+$(include CustomMethods.cxx.in)
+
+
+//
+// ToString
+//
+$(include ToStringSignature.cxx.in)
+{
+$(include ToStringBody.cxx.in)
+$(include ToStringReturn.cxx.in)
+}
+
+//
+// Execute
+//$(include ExecuteWithParameters.cxx.in)
+$(if members and #members > 0 then
+OUT = [[
+
+Image ${name}::Execute ( const Image& image1, ${constant_type} constant$(include MemberParameters.in) )
+{
+$(foreach members
+$(if (not no_set_method) or (no_set_method == 0) then
+OUT = '  this->Set${name} ( ${name:sub(1,1):lower() .. name:sub(2,-1)} );'
+end)
+)
+return this->Execute ( image1, constant );
+}
+
+
+Image ${name}::Execute ( ${constant_type} constant, const Image& image2$(include MemberParameters.in) )
+{
+$(foreach members
+$(if (not no_set_method) or (no_set_method == 0) then
+OUT = '  this->Set${name} ( ${name:sub(1,1):lower() .. name:sub(2,-1)} );'
+end)
+)
+return this->Execute ( constant, image2 );
+}
+]]
+end)
+
+
+
+$(include ExecuteNoParameters.cxx.in)
+
+Image ${name}::Execute ( ${constant_type} constant, const Image& image2 )
+{
+
+  PixelIDValueEnum type = image2.GetPixelID();
+  unsigned int dimension = image2.GetDimension();
+
+  return this->m_MemberFactory1->GetMemberFunction( type, dimension )( constant, image2 );
+}
+
+Image ${name}::Execute ( const Image& image1, ${constant_type} constant )
+{
+
+  PixelIDValueEnum type = image1.GetPixelID();
+  unsigned int dimension = image1.GetDimension();
+
+
+  return this->m_MemberFactory2->GetMemberFunction( type, dimension )( image1, constant );
+}
+
+//-----------------------------------------------------------------------------
+
+$(include CustomCasts.cxx)
+
+//-----------------------------------------------------------------------------
+
+//
+// ExecuteInternal
+//
+$(include ExecuteInternalSignature.cxx.in)
+{
+$(include ExecuteInternalTypedefs.cxx.in)
+
+$(include ExecuteInternalGetImagePointers.cxx.in)
+
+$(include ExecuteInternalITKFilter.cxx.in)
+
+$(include ExecuteInternalSetITKFilterInputs.cxx.in)
+$(include ExecuteInternalUpdateAndReturn.cxx.in)
+}
+
+
+template <class TImageType>
+Image ${name}::ExecuteInternal ( ${constant_type} constant, const Image& inImage2 )
+{
+$(include ExecuteInternalTypedefs.cxx.in)
+
+  // Get the pointer to the ITK image contained in image2
+  typename InputImageType2::ConstPointer image2 = this->CastImageToITK<InputImageType2>( inImage2 );
+
+$(include ExecuteInternalITKFilter.cxx.in)
+
+  typename InputImageType::PixelType c;
+  NumericTraits<typename InputImageType2::PixelType>::SetLength( c, image2->GetNumberOfComponentsPerPixel() );
+  ToPixelType( constant, c );
+  filter->SetConstant1( c );
+  filter->SetInput2( image2 );
+$(include ExecuteInternalSetITKFilterParameters.cxx.in)
+$(include ExecuteInternalUpdateAndReturn.cxx.in)
+}
+
+
+template <class TImageType>
+Image ${name}::ExecuteInternal ( const Image& inImage1, ${constant_type} constant )
+{
+$(include ExecuteInternalTypedefs.cxx.in)
+
+  // Get the pointer to the ITK image contained in image1
+  typename InputImageType::ConstPointer image1 = this->CastImageToITK<InputImageType>( inImage1 );
+
+$(include ExecuteInternalITKFilter.cxx.in)
+
+  typename InputImageType2::PixelType c;
+  NumericTraits<typename InputImageType::PixelType>::SetLength( c, image1->GetNumberOfComponentsPerPixel() );
+  ToPixelType( constant, c );
+  filter->SetInput1( image1 );
+  filter->SetConstant2( c );
+$(include ExecuteInternalSetITKFilterParameters.cxx.in)
+$(include ExecuteInternalUpdateAndReturn.cxx.in)
+}
+
+//-----------------------------------------------------------------------------
+
+$(include ExecuteInternalVectorImages.cxx.in)
+$(include FunctionalAPI.cxx.in)
+
+Image ${name:gsub("ImageFilter$", ""):gsub("Filter$", "")} ( const Image& image1, ${constant_type} constant$(include MemberParameters.in) )
+{
+  ${name} filter;
+  return filter.Execute ( image1, constant$(for i = 1,#members do
+                            if (number_of_inputs > 0 or i > 1) then
+                              OUT = OUT .. ", "
+                            end
+                            OUT= OUT .. members[i].name:sub(1,1):lower() .. members[i].name:sub(2,-1)
+                            end) );
+}
+
+Image ${name:gsub("ImageFilter$", ""):gsub("Filter$", "")} ( ${constant_type} constant, const Image& image2$(include MemberParameters.in) )
+{
+  ${name} filter;
+  return filter.Execute ( constant, image2$(for i = 1,#members do
+                            if (number_of_inputs > 0 or i > 1) then
+                              OUT = OUT .. ", "
+                            end
+                            OUT= OUT .. members[i].name:sub(1,1):lower() .. members[i].name:sub(2,-1)
+                            end) );
+}
+
+} // end namespace simple
+} // end namespace itk
diff --git a/Code/BasicFilters/templates/sitkBinaryFunctorFilterTemplate.h.in b/Code/BasicFilters/templates/sitkBinaryFunctorFilterTemplate.h.in
new file mode 100644
index 0000000..e3d75b0
--- /dev/null
+++ b/Code/BasicFilters/templates/sitkBinaryFunctorFilterTemplate.h.in
@@ -0,0 +1,69 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitk${name}_h
+#define sitk${name}_h
+
+$(include DoNotEditWarning.h.in)
+
+#include <memory>
+
+#include "sitkBasicFilters.h"
+#include "sitkImageFilter.h"
+
+namespace itk {
+  namespace simple {
+
+$(include ClassDeclaration.h.in)
+$(include PublicDeclarations.h.in)
+$(include MemberGetSetDeclarations.h.in)
+$(include ClassNameAndPrint.h.in)
+
+$(include ExecuteMethodNoParameters.h.in)$(include ExecuteMethodWithParameters.h.in)$(include CustomMethods.h.in)
+
+      /** Execute the filter with an image and a constant */
+      Image Execute ( const Image& image1, ${constant_type} constant );
+      Image Execute ( ${constant_type} constant, const Image& image2 );
+$(if members and #members > 0 then
+OUT=[[
+
+      /** Execute the filter on an image and a constant with the given parameters */
+      Image Execute ( const Image& image1, ${constant_type} constant$(include MemberParameters.in) );
+      Image Execute ( ${constant_type} constant, const Image& image2$(include MemberParameters.in) );]]
+end)
+
+$(include ExecuteInternalMethod.h.in)
+
+$(include MemberFunctionDispatch.h.in)
+      typedef Image (Self::*MemberFunction1Type)( ${constant_type} constant, const Image& image2 );
+      template <class TImageType> Image ExecuteInternal ( ${constant_type} constant, const Image& image2 );
+      friend struct detail::MemberFunctionAddressor<MemberFunction1Type>;
+      nsstd::auto_ptr<detail::MemberFunctionFactory<MemberFunction1Type> > m_MemberFactory1;
+
+      typedef Image (Self::*MemberFunction2Type)( const Image& image1, ${constant_type} constant );
+      template <class TImageType> Image ExecuteInternal ( const Image& image1, ${constant_type} constant );
+      friend struct detail::MemberFunctionAddressor<MemberFunction2Type>;
+      nsstd::auto_ptr<detail::MemberFunctionFactory<MemberFunction2Type> > m_MemberFactory2;
+
+$(include PrivateMemberDeclarations.h.in)$(include ClassEnd.h.in)
+
+$(include FunctionalAPI.h.in)
+    SITKBasicFilters_EXPORT Image ${name:gsub("ImageFilter$", ""):gsub("Filter$", "")} ( const Image& image1, ${constant_type} constant$(include MemberParametersWithDefaults.in) );
+    SITKBasicFilters_EXPORT Image ${name:gsub("ImageFilter$", ""):gsub("Filter$", "")} ( ${constant_type} constant, const Image& image2$(include MemberParametersWithDefaults.in) );
+  }
+}
+#endif
diff --git a/Code/BasicFilters/templates/sitkDualImageFilterTemplate.cxx.in b/Code/BasicFilters/templates/sitkDualImageFilterTemplate.cxx.in
new file mode 100644
index 0000000..6cd3ba5
--- /dev/null
+++ b/Code/BasicFilters/templates/sitkDualImageFilterTemplate.cxx.in
@@ -0,0 +1,268 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+$(include DoNotEditWarning.cxx.in)
+
+$(include StandardIncludes.cxx.in)
+$(include AddExtraIncludes.cxx.in)
+
+namespace itk {
+namespace simple {
+
+//-----------------------------------------------------------------------------
+
+//
+// Default constructor that initializes parameters
+//
+$(include ConstructorSignature.cxx.in)
+{
+$(include ConstructorInitializeMembers.cxx.in)
+
+  typedef ${pixel_types2}  PixelIDTypeList2;
+
+
+  this->m_DualMemberFactory.reset( new detail::DualMemberFunctionFactory<MemberFunctionType>( this ) );
+
+  this->m_DualMemberFactory->RegisterMemberFunctions< PixelIDTypeList, PixelIDTypeList2, 3 > ();
+  this->m_DualMemberFactory->RegisterMemberFunctions< PixelIDTypeList, PixelIDTypeList2, 2 > ();
+
+$(if vector_pixel_types_by_component then
+  OUT=[[  typedef ${vector_pixel_types_by_component} VectorByComponentsPixelIDTypeList;
+]]
+  if vector_pixel_types_by_component2 then
+  OUT = OUT..[[  typedef ${vector_pixel_types_by_component2} VectorByComponentsPixelIDTypeList2;
+]]
+  else
+  OUT = OUT..[[  typedef PixelIDTypeList2 VectorByComponentsPixelIDTypeList2;
+]]
+  end
+  OUT = OUT..[[
+  typedef detail::DualExecuteInternalVectorAddressor<MemberFunctionType> VectorAddressorType;
+  this->m_DualMemberFactory->RegisterMemberFunctions< VectorByComponentsPixelIDTypeList, VectorByComponentsPixelIDTypeList2, 3, VectorAddressorType> ();
+  this->m_DualMemberFactory->RegisterMemberFunctions< VectorByComponentsPixelIDTypeList, VectorByComponentsPixelIDTypeList2, 2, VectorAddressorType> ();]]
+end)
+
+
+}
+
+$(include DesctuctorDefinition.cxx.in)
+
+//
+// ToString
+//
+$(include ToStringSignature.cxx.in)
+{
+$(include ToStringBody.cxx.in)
+$(include ToStringReturn.cxx.in)
+}
+
+$(include CustomMethods.cxx.in)
+
+//
+// Execute
+//$(include ExecuteWithParameters.cxx.in)
+$(if no_return_image then OUT=[[void]] else OUT=[[Image]] end) ${name}::Execute ( $(include ImageParameters.in)$(include InputParameters.in) )
+{
+$(if true then
+inputName1 = "image1"
+if not (number_of_inputs >  0) and (#inputs > 0) then
+  inputName1 = inputs[1].name:sub(1,1):lower() .. inputs[1].name:sub(2,-1)
+end
+OUT=[[
+  PixelIDValueEnum type1 = ]]..inputName1..[[.GetPixelID();
+  unsigned int dimension = ]]..inputName1..[[.GetDimension();
+]]
+end
+local inputName2 = "image2"
+if not (number_of_inputs >  1) and (inputs and (#inputs > 1)) then
+  inputName2 = inputs[2].name:sub(1,1):lower() .. inputs[2].name:sub(2,-1)
+end
+if number_of_inputs >= 2 or (inputs and (#inputs >= 2)) then
+  OUT=OUT..[[
+  PixelIDValueType type2 = ]]..inputName2..[[.GetPixelIDValue();
+
+  // todo need better error handling and potential type conversion
+  if ( ]]..inputName1..[[.GetDimension() != ]]..inputName2..[[.GetDimension() ||
+       ]]..inputName1..[[.GetSize() != ]]..inputName2..[[.GetSize() )
+    {
+      sitkExceptionMacro ( "Both images for ${name} don't match type or dimension!" );
+    }]]
+else
+OUT=OUT..[[
+  ${custom_type2}]]
+
+end)
+
+  return this->m_DualMemberFactory->GetMemberFunction( type1, type2, dimension )( $(for inum=1,number_of_inputs do
+  if inum>1 then
+    OUT=OUT .. ', '
+  end
+  OUT= OUT .. 'image' .. inum
+end
+if inputs then
+  for inum=1,#inputs do
+    if number_of_inputs>0 or inum>1 then
+      OUT = OUT .. ", "
+    end
+    if  inputs[inum].optional and no_optional then
+      OUT=OUT.."NULL"
+    else
+      OUT=OUT.."&"..inputs[inum].name:sub(1,1):lower() .. inputs[inum].name:sub(2,-1)
+    end
+  end
+end) );
+}
+
+
+//-----------------------------------------------------------------------------
+
+$(include CustomCasts.cxx)
+
+//-----------------------------------------------------------------------------
+
+sitkClangDiagnosticPush();
+sitkClangWarningIgnore("-Wunused-local-typedef");
+
+//
+// ExecuteInternal
+//
+template <class TImageType, class TImageType2>
+$(if no_return_image then OUT=[[void]] else OUT=[[Image]] end) ${name}::DualExecuteInternal ( $(for inum=1,number_of_inputs do
+  if inum>1 then
+    OUT=OUT.. ', '
+  end
+  OUT= OUT .. 'const Image& inImage' .. inum
+end
+if inputs then
+  for i = 1,#inputs do
+    if (number_of_inputs > 0 or i > 1) then
+      OUT = OUT .. ", "
+    end
+    OUT = OUT .. 'const ' .. inputs[i].type .. ' * in' .. inputs[i].name
+  end
+end ) )
+{
+  // Define the input and output image types
+  typedef TImageType     InputImageType;
+  typedef TImageType2    InputImageType2;
+
+  $(if output_image_type then
+  OUT=[[//Define output image type
+  typedef ${output_image_type} OutputImageType;]]
+  elseif output_pixel_type then
+  OUT=[[// Define output image type
+  typedef itk::Image< ${output_pixel_type}, InputImageType::ImageDimension > OutputImageType;]]
+  else
+  OUT=[[typedef InputImageType OutputImageType;]]
+  end)
+
+$(include ExecuteInternalGetImagePointers.cxx.in)
+
+$(include ExecuteInternalITKFilter.cxx.in)
+
+$(include ExecuteInternalSetITKFilterInputs.cxx.in)
+$(include ExecuteInternalUpdateAndReturn.cxx.in)
+}
+
+$(if vector_pixel_types_by_component then
+OUT=[[
+//
+// Dispatched methods to call DualExecuteInternal on each component of the VectorImage
+//
+template <class TImageType, class TImageType2> Image
+${name}::DualExecuteInternalVector ( $(for inum=1,number_of_inputs do
+  if inum>1 then
+       OUT=OUT.. ', '
+  end
+OUT= OUT .. 'const Image& inImage' .. inum
+end ) )
+{
+  typedef TImageType                                                               VectorInputImageType;
+  typedef typename VectorInputImageType::InternalPixelType                         ComponentType;
+  typedef typename itk::Image<ComponentType, VectorInputImageType::ImageDimension> ComponentImageType;
+  // we must define the input and output image types
+  // they should be the same as the scalar execute internal method
+  typedef ComponentImageType   InputImageType;
+]]
+if vector_pixel_types_by_component2 then OUT = OUT..[[
+  typedef TImageType2                                                                VectorInputImageType2;
+  typedef typename VectorInputImageType2::InternalPixelType                          ComponentType2;
+  typedef typename itk::Image<ComponentType2, VectorInputImageType2::ImageDimension> ComponentImageType2;
+  typedef ComponentImageType2  InputImageType2;]]
+else
+   OUT= OUT..[[
+  typedef TImageType2  InputImageType2;]]
+end
+if output_image_type then
+OUT=OUT..[[
+  //Define output image type
+  typedef ${output_image_type} OutputImageType;]]
+elseif output_pixel_type then
+OUT=OUT..[[
+  // Define output image type
+  typedef itk::Image< ${output_pixel_type}, InputImageType::ImageDimension > OutputImageType;]]
+else
+  OUT=OUT..[[
+  // Define output image type
+  typedef InputImageType OutputImageType;]]
+end
+
+OUT=OUT..[[
+
+  // Get the pointer to the ITK image contained in image1
+  typename VectorInputImageType::ConstPointer image1 =
+    this->CastImageToITK<VectorInputImageType>( inImage1 );
+
+  typedef itk::VectorIndexSelectionCastImageFilter< VectorInputImageType, ComponentImageType > ComponentExtratorType;
+  typename ComponentExtratorType::Pointer extractor = ComponentExtratorType::New();
+  extractor->SetInput( image1 );
+
+  typedef itk::ComposeImageFilter<OutputImageType> ToVectorFilterType;
+  typename ToVectorFilterType::Pointer toVector = ToVectorFilterType::New();
+
+  unsigned int numComps = image1->GetNumberOfComponentsPerPixel();
+  for ( unsigned int i = 0; i < numComps; ++i )
+    {
+    extractor->SetIndex( i );
+    extractor->Update();
+
+    Image tmp = this->DualExecuteInternal<InputImageType,InputImageType2>( Image( extractor->GetOutput() )$(for inum=2,number_of_inputs do
+                                                                                                                         OUT=OUT .. ', inImage' .. inum
+                                                                                                                           end) );
+
+    typename OutputImageType::ConstPointer tempITKImage = this->CastImageToITK<OutputImageType>( tmp );
+
+    toVector->SetInput( i, tempITKImage );
+    }
+
+  toVector->Update();
+
+  return Image( toVector->GetOutput() );
+}
+
+sitkClangDiagnosticPop();
+
+//-----------------------------------------------------------------------------
+]]end)
+
+
+//-----------------------------------------------------------------------------
+
+$(include FunctionalAPI.cxx.in)
+
+} // end namespace simple
+} // end namespace itk
diff --git a/Code/BasicFilters/templates/sitkDualImageFilterTemplate.h.in b/Code/BasicFilters/templates/sitkDualImageFilterTemplate.h.in
new file mode 100644
index 0000000..8ac37d4
--- /dev/null
+++ b/Code/BasicFilters/templates/sitkDualImageFilterTemplate.h.in
@@ -0,0 +1,62 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitk${name}_h
+#define sitk${name}_h
+
+$(include DoNotEditWarning.h.in)
+
+#include <memory>
+
+#include "sitkImageFilter.h"
+#include "sitkDualMemberFunctionFactory.h"
+#include "sitkBasicFilters.h"
+
+namespace itk {
+  namespace simple {
+
+$(include ClassDeclaration.h.in)
+$(include PublicDeclarations.h.in)
+$(include MemberGetSetDeclarations.h.in)
+$(include ClassNameAndPrint.h.in)
+
+$(include ExecuteMethodNoParameters.h.in)$(include ExecuteMethodWithParameters.h.in)$(include CustomMethods.h.in)
+
+    private:
+      /** Setup for member function dispatching */
+      typedef $(if no_return_image then OUT=[[void]] else OUT=[[Image]] end) (Self::*MemberFunctionType)( $(include ImageParameters.in)$(include InputParametersInternal.in) );
+
+      friend struct detail::DualExecuteInternalAddressor<MemberFunctionType>;
+      template <class TImageType1, class TImageType2> $(if no_return_image then OUT=[[void]] else OUT=[[Image]] end) DualExecuteInternal ( $(include ImageParameters.in)$(include InputParametersInternal.in) );
+$(if vector_pixel_types_by_component then
+OUT=[[
+      friend struct detail::DualExecuteInternalVectorAddressor<MemberFunctionType>;
+      template <class TImageType1, class TImageType2> ]]
+        if no_return_image then OUT=OUT..[[void]] else OUT=OUT..[[Image]] end
+        OUT=OUT..[[ DualExecuteInternalVector ( $(include ImageParameters.in) );]]
+end)
+
+      nsstd::auto_ptr<detail::DualMemberFunctionFactory<MemberFunctionType> > m_DualMemberFactory;
+
+
+$(include PrivateMemberDeclarations.h.in)$(include ClassEnd.h.in)
+
+
+$(include FunctionalAPI.h.in)
+  }
+}
+#endif
diff --git a/Code/BasicFilters/templates/sitkFastMarchingImageFilterTemplate.cxx.in b/Code/BasicFilters/templates/sitkFastMarchingImageFilterTemplate.cxx.in
new file mode 100644
index 0000000..424f4b0
--- /dev/null
+++ b/Code/BasicFilters/templates/sitkFastMarchingImageFilterTemplate.cxx.in
@@ -0,0 +1,138 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+$(include DoNotEditWarning.cxx.in)
+
+$(include StandardIncludes.cxx.in)
+$(include AddExtraIncludes.cxx.in)
+
+namespace itk {
+namespace simple {
+
+//----------------------------------------------------------------------------
+
+//
+// Default constructor that initializes parameters
+//
+$(include ConstructorSignature.cxx.in)
+{
+  this->m_TrialPoints = std::vector< std::vector<unsigned int> >();
+$(include ConstructorInitializeMembers.cxx.in)
+$(include ConstructorMemberFunctionSetup.cxx.in)
+
+$(include ConstructorVectorPixels.cxx.in)
+}
+
+$(include DesctuctorDefinition.cxx.in)
+
+//
+// ToString
+//
+$(include ToStringSignature.cxx.in)
+{
+$(include ToStringBody.cxx.in)  out << " TrialPoints:" << std::endl;
+  for (unsigned int i = 0; i < this->m_TrialPoints.size(); ++i)
+    {
+    out << "  " << this->m_TrialPoints[i] << std::endl;
+    }
+
+$(include ToStringReturn.cxx.in)
+}
+
+$(include CustomMethods.cxx.in)
+
+//
+// Execute
+//$(if members and #members > 0 then
+OUT = [[
+
+Image ${name}::Execute ( const Image& image1,
+  std::vector< std::vector<unsigned int> > trialPoints$(include MemberParameters.in) )
+{
+$(foreach members
+$(if (not no_set_method) or (no_set_method == 0) then
+OUT = '  this->Set${name} ( ${name:sub(1,1):lower() .. name:sub(2,-1)} );'
+end)
+)  this->SetTrialPoints ( trialPoints );
+
+  return this->Execute ( image1 );
+}
+
+]]
+end)
+$(include ExecuteNoParameters.cxx.in)
+
+//-----------------------------------------------------------------------------
+
+$(include CustomCasts.cxx)
+
+//----------------------------------------------------------------------------
+
+$(include ExecuteInternalVectorImages.cxx.in)
+//
+// ExecuteInternal
+//
+$(include ExecuteInternalSignature.cxx.in)
+{
+$(include ExecuteInternalTypedefs.cxx.in)
+
+$(include ExecuteInternalGetImagePointers.cxx.in)
+
+$(include ExecuteInternalITKFilter.cxx.in)
+
+$(include ExecuteInternalSetITKFilterInputs.cxx.in)
+
+  // Convert Trial Points from std::vector< std::vector<unsigned int> > to NodePairContainer
+
+  typedef typename FilterType::NodePairType           NodePairType;
+  typedef typename FilterType::NodeType               NodeType;
+  typedef typename FilterType::NodePairContainerType  NodePairContainerType;
+
+  typename NodePairContainerType::Pointer trialNodes = NodePairContainerType::New();
+  trialNodes->reserve( m_TrialPoints.size() );
+
+  for (unsigned int i = 0; i < m_TrialPoints.size(); ++i)
+    {
+    NodePairType node;
+
+    //note: Node type is really an itk Index type
+    NodeType index = sitkSTLVectorToITK<NodeType>( m_TrialPoints[i] );
+    node.SetNode( index );
+    node.SetValue( 0.0 );
+    if (m_TrialPoints[i].size() > NodeType::Dimension)
+      node.SetValue(m_TrialPoints[i][NodeType::Dimension]);
+    trialNodes->push_back( node );
+    }
+  filter->SetTrialPoints( trialNodes );
+
+$(include ExecuteInternalUpdateAndReturn.cxx.in)
+}
+
+//-----------------------------------------------------------------------------
+
+//
+// Function to run the Execute method of this filter
+//
+Image ${name:gsub("ImageFilter$", ""):gsub("Filter$", "")} ( const Image& imageA,
+  std::vector< std::vector<unsigned int> > trialPoints$(include MemberParameters.in) )
+{
+  ${name} filter;
+  return filter.Execute ( imageA, trialPoints$(foreach members ,  ${name:sub(1,1):lower()..name:sub(2,-1)} ));
+}
+
+} // end namespace simple
+} // end namespace itk
diff --git a/Code/BasicFilters/templates/sitkFastMarchingImageFilterTemplate.h.in b/Code/BasicFilters/templates/sitkFastMarchingImageFilterTemplate.h.in
new file mode 100644
index 0000000..490c647
--- /dev/null
+++ b/Code/BasicFilters/templates/sitkFastMarchingImageFilterTemplate.h.in
@@ -0,0 +1,89 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitk${name}_h
+#define sitk${name}_h
+
+$(include DoNotEditWarning.h.in)
+
+#include <memory>
+
+#include "sitkImageFilter.h"
+#include "sitkBasicFilters.h"
+
+namespace itk {
+  namespace simple {
+
+$(include ClassDeclaration.h.in)
+$(include PublicDeclarations.h.in)
+$(include MemberGetSetDeclarations.h.in)
+      /** Set trial points. The default trial value (i.e. 0.0) is used for each index. */
+      SITK_RETURN_SELF_TYPE_HEADER SetTrialPoints ( std::vector< std::vector<unsigned int> > t )
+        {
+        this->m_TrialPoints = t; return *this;
+        }
+
+      /** Add trial point */
+      SITK_RETURN_SELF_TYPE_HEADER AddTrialPoint( std::vector<unsigned int> t )
+        {
+        this->m_TrialPoints.push_back( t ); return *this;
+        }
+
+      /** Clear trial points */
+      SITK_RETURN_SELF_TYPE_HEADER ClearTrialPoints( )
+        {
+        this->m_TrialPoints.clear(); return *this;
+        }
+
+      /** Get trial points */
+      std::vector< std::vector<unsigned int> > GetTrialPoints() const
+        {
+        return this->m_TrialPoints;
+        }
+
+$(include ClassNameAndPrint.h.in)
+
+$(include ExecuteMethodNoParameters.h.in)$(if members and #members > 0 then
+OUT=[[
+      /** Execute the filter on the input image with the given parameters */
+      Image Execute ( const Image&,
+        std::vector< std::vector<unsigned int> > trialPoints$(include MemberParameters.in) );]]end)
+
+$(include CustomMethods.h.in)
+
+$(include ExecuteInternalMethod.h.in)
+
+$(include MemberFunctionDispatch.h.in)
+
+$(include PrivateMemberDeclarations.h.in)
+      /** List of interior trail points used to initialize the fast marching */
+      std::vector< std::vector<unsigned int> > m_TrialPoints;
+
+$(include ClassEnd.h.in)
+
+    /**
+     * itk::simple::${name} Functional Interface
+     *
+     * This function directly calls the execute method of ${name}
+     * in order to support a fully functional API
+     */
+    Image SITKBasicFilters_EXPORT ${name:gsub("ImageFilter$", ""):gsub("Filter$", "")} ( const Image& imageA,
+      std::vector< std::vector<unsigned int> > trialPoints$(include MemberParametersWithDefaults.in) );
+
+  } // end namespace simple
+} // end namespace itk
+#endif
diff --git a/Code/BasicFilters/templates/sitkImageFilterTemplate.cxx.in b/Code/BasicFilters/templates/sitkImageFilterTemplate.cxx.in
new file mode 100644
index 0000000..f9ccae4
--- /dev/null
+++ b/Code/BasicFilters/templates/sitkImageFilterTemplate.cxx.in
@@ -0,0 +1,89 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+$(include DoNotEditWarning.cxx.in)
+
+$(include StandardIncludes.cxx.in)
+$(include AddExtraIncludes.cxx.in)
+
+namespace itk {
+namespace simple {
+
+//-----------------------------------------------------------------------------
+
+//
+// Default constructor that initializes parameters
+//
+$(include ConstructorSignature.cxx.in)
+{
+$(include ConstructorInitializeMembers.cxx.in)
+$(include ConstructorMemberFunctionSetup.cxx.in)
+
+$(include ConstructorVectorPixels.cxx.in)
+}
+
+$(include DesctuctorDefinition.cxx.in)
+
+$(include CustomMethods.cxx.in)
+
+//
+// ToString
+//
+$(include ToStringSignature.cxx.in)
+{
+$(include ToStringBody.cxx.in)
+$(include ToStringReturn.cxx.in)
+}
+
+//
+// Execute
+//$(include ExecuteWithParameters.cxx.in)
+$(include ExecuteNoParameters.cxx.in)
+
+//-----------------------------------------------------------------------------
+
+$(include CustomCasts.cxx)
+
+//-----------------------------------------------------------------------------
+
+sitkClangDiagnosticPush();
+sitkClangWarningIgnore("-Wunused-local-typedef");
+
+//
+// ExecuteInternal
+//
+$(include ExecuteInternalSignature.cxx.in)
+{
+$(include ExecuteInternalTypedefs.cxx.in)
+
+$(include ExecuteInternalGetImagePointers.cxx.in)
+
+$(include ExecuteInternalITKFilter.cxx.in)
+
+$(include ExecuteInternalSetITKFilterInputs.cxx.in)
+$(include ExecuteInternalUpdateAndReturn.cxx.in)
+}
+
+sitkClangDiagnosticPop();
+
+//-----------------------------------------------------------------------------
+
+$(include ExecuteInternalVectorImages.cxx.in)
+$(include FunctionalAPI.cxx.in)
+
+} // end namespace simple
+} // end namespace itk
diff --git a/Code/BasicFilters/templates/sitkImageFilterTemplate.h.in b/Code/BasicFilters/templates/sitkImageFilterTemplate.h.in
new file mode 100644
index 0000000..adb69c9
--- /dev/null
+++ b/Code/BasicFilters/templates/sitkImageFilterTemplate.h.in
@@ -0,0 +1,48 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitk${name}_h
+#define sitk${name}_h
+
+$(include DoNotEditWarning.h.in)
+
+#include <memory>
+
+#include "sitkBasicFilters.h"
+#include "sitkImageFilter.h"
+
+namespace itk {
+  namespace simple {
+
+$(include ClassDeclaration.h.in)
+$(include PublicDeclarations.h.in)
+$(include MemberGetSetDeclarations.h.in)
+$(include ClassNameAndPrint.h.in)
+
+$(include ExecuteMethodNoParameters.h.in)$(include ExecuteMethodWithParameters.h.in)$(include CustomMethods.h.in)
+
+$(include ExecuteInternalMethod.h.in)
+
+$(include MemberFunctionDispatch.h.in)
+
+$(include PrivateMemberDeclarations.h.in)$(include ClassEnd.h.in)
+
+
+$(include FunctionalAPI.h.in)
+  }
+}
+#endif
diff --git a/Code/BasicFilters/templates/sitkImageSourceTemplate.cxx.in b/Code/BasicFilters/templates/sitkImageSourceTemplate.cxx.in
new file mode 100644
index 0000000..7abb64e
--- /dev/null
+++ b/Code/BasicFilters/templates/sitkImageSourceTemplate.cxx.in
@@ -0,0 +1,145 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+$(include DoNotEditWarning.cxx.in)
+
+$(include StandardIncludes.cxx.in)
+$(include AddExtraIncludes.cxx.in)
+
+namespace itk {
+namespace simple {
+
+//-----------------------------------------------------------------------------
+
+//
+// Default constructor that initializes parameters
+//
+$(include ConstructorSignature.cxx.in)
+{
+$(include ConstructorInitializeMembers.cxx.in)
+$(include ConstructorMemberFunctionSetup.cxx.in)
+
+$(include ConstructorVectorPixels.cxx.in)
+}
+
+$(include DesctuctorDefinition.cxx.in)
+
+//
+// ToString
+//
+$(include ToStringSignature.cxx.in)
+{
+$(include ToStringBody.cxx.in)
+$(include ToStringReturn.cxx.in)
+}
+
+$(include CustomMethods.cxx.in)
+
+//
+// Execute
+//$(include ExecuteWithParameters.cxx.in)
+
+
+Image ${name}::Execute ( $(include ImageParameters.in)$(include InputParameters.in) )
+{
+
+  PixelIDValueEnum type = m_OutputPixelType;
+  unsigned int dimension = m_Size.size();
+
+  $(for inum=2,number_of_inputs do
+           OUT= OUT .. '\n    if ( type != image' .. inum .. '.GetPixelIDValue() || dimension != image' .. inum .. '.GetDimension() ) { sitkExceptionMacro ( "Image' .. inum .. ' for ${name} doesn\'t match type or dimension!" ); }'
+             end)
+
+    return this->m_MemberFactory->GetMemberFunction( type, dimension )( $(for inum=1,number_of_inputs do
+  if inum>1 then
+    OUT=OUT .. ', '
+  end
+  OUT= OUT .. 'image' .. inum
+ end
+ if inputs then
+   for inum=1,#inputs do
+     if number_of_inputs>0 or inum>1 then
+       OUT = OUT .. ", "
+     end
+     OUT=OUT.."&"..inputs[inum].name:sub(1,1):lower() .. inputs[inum].name:sub(2,-1)
+   end
+ end) );
+}
+
+//-----------------------------------------------------------------------------
+
+$(include CustomCasts.cxx)
+
+//-----------------------------------------------------------------------------
+
+sitkClangDiagnosticPush();
+sitkClangWarningIgnore("-Wunused-local-typedef");
+
+//
+// ExecuteInternal
+//
+$(include ExecuteInternalSignature.cxx.in)
+{
+$(include ExecuteInternalTypedefs.cxx.in)
+
+$(include ExecuteInternalGetImagePointers.cxx.in)
+
+$(include ExecuteInternalITKFilter.cxx.in)
+
+$(include ExecuteInternalSetITKFilterInputs.cxx.in)
+$(include ExecuteInternalUpdateAndReturn.cxx.in)
+}
+
+sitkClangDiagnosticPop();
+
+//-----------------------------------------------------------------------------
+
+$(include ExecuteInternalVectorImages.cxx.in)
+//
+// Function to run the Execute method of this filter
+//
+Image ${name:gsub("ImageSource$", "Source"):gsub("Filter$", "")} ( $(include ImageParameters.in)$(include InputParameters.in)$(include MemberParameters.in) )
+{
+  ${name} filter;
+  return filter.Execute ( $(for inum=1,number_of_inputs do
+                              if inum>1 then
+                                OUT=OUT..', '
+                              end
+                              OUT=OUT .. 'image' .. inum
+                            end
+                            if inputs then
+                              for inum=1,#inputs do
+                                if number_of_inputs>0 or inum>1 then
+                                  OUT = OUT .. ", "
+                                end
+                                OUT=OUT..inputs[inum].name:sub(1,1):lower() .. inputs[inum].name:sub(2,-1)
+                              end
+                            end
+                            temp = number_of_inputs
+                            if inputs then
+                              temp = temp + #inputs
+                            end
+                            for i = 1,#members do
+                                        if (temp > 0 or i > 1) then
+                                OUT = OUT .. ", "
+                              end
+                            OUT= OUT .. members[i].name:sub(1,1):lower() .. members[i].name:sub(2,-1)
+                            end) );
+}
+
+} // end namespace simple
+} // end namespace itk
diff --git a/Code/BasicFilters/templates/sitkImageSourceTemplate.h.in b/Code/BasicFilters/templates/sitkImageSourceTemplate.h.in
new file mode 100644
index 0000000..8a075e9
--- /dev/null
+++ b/Code/BasicFilters/templates/sitkImageSourceTemplate.h.in
@@ -0,0 +1,66 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitk${name}_h
+#define sitk${name}_h
+
+$(include DoNotEditWarning.h.in)
+
+#include <memory>
+
+#include "sitkBasicFilters.h"
+#include "sitkImageFilter.h"
+
+namespace itk {
+  namespace simple {
+
+$(include ClassDeclaration.h.in)
+$(include PublicDeclarations.h.in)
+
+
+$(include MemberGetSetDeclarations.h.in)
+$(include ClassNameAndPrint.h.in)
+
+$(include ExecuteMethodNoParameters.h.in)$(include ExecuteMethodWithParameters.h.in)$(include CustomMethods.h.in)
+
+$(include ExecuteInternalMethod.h.in)
+
+$(include MemberFunctionDispatch.h.in)
+
+$(include PrivateMemberDeclarations.h.in)
+
+
+$(include ClassEnd.h.in)
+
+
+
+   /**
+$(if briefdescription and (briefdescription:len() > 0) then
+  OUT=OUT..'     * \\brief ${briefdescription}'
+else
+  OUT=OUT..'     * \\brief itk::simple::${name} Procedural Interface'
+end)
+     *
+     * This function directly calls the execute method of ${name}
+     * in order to support a procedural API
+     *
+     * \sa itk::simple::${name} for the object oriented interface
+     */
+SITKBasicFilters_EXPORT Image ${name:gsub("ImageSource$", "Source"):gsub("Filter$", "")} ( $(include ImageParameters.in)$(include InputParameters.in)$(include MemberParametersWithDefaults.in) );
+  }
+}
+#endif
diff --git a/Code/BasicFilters/templates/sitkKernelImageFilterTemplate.cxx.in b/Code/BasicFilters/templates/sitkKernelImageFilterTemplate.cxx.in
new file mode 100644
index 0000000..a9c44b2
--- /dev/null
+++ b/Code/BasicFilters/templates/sitkKernelImageFilterTemplate.cxx.in
@@ -0,0 +1,170 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+$(include DoNotEditWarning.cxx.in)
+
+$(include StandardIncludes.cxx.in)
+$(include AddExtraIncludes.cxx.in)
+
+#include "sitkCreateKernel.h"
+
+#include "itkNthElementImageAdaptor.h"
+#include "itkCastImageFilter.h"
+#include "itkVectorImageToImageAdaptor.h"
+
+#include "itkFlatStructuringElement.h"
+
+#include <iterator>
+
+namespace itk {
+namespace simple {
+
+//-----------------------------------------------------------------------------
+
+//
+// Default constructor that initializes parameters
+//
+$(include ConstructorSignature.cxx.in)
+{
+  this->m_KernelRadius = std::vector<uint32_t>( 3, 1 );
+  this->m_KernelType = sitkBall;
+$(include ConstructorInitializeMembers.cxx.in)
+$(include ConstructorMemberFunctionSetup.cxx.in)
+
+$(include ConstructorVectorPixels.cxx.in)
+}
+
+$(include DesctuctorDefinition.cxx.in)
+
+//
+// ToString
+//
+$(include ToStringSignature.cxx.in)
+{
+$(include ToStringBody.cxx.in)
+  out << "  KernelRadius: ";
+  this->ToStringHelper( out, this->GetKernelRadius() );
+  out << std::endl;
+  out << "  KernelType: ";
+  this->ToStringHelper( out, this->GetKernelType() );
+  out << std::endl;
+
+$(include ToStringReturn.cxx.in)
+}
+
+$(include CustomMethods.cxx.in)
+
+//
+// Set/Get Member Properties
+//
+
+${name}::Self& ${name}::SetKernelRadius(uint32_t r)
+{
+  this->m_KernelRadius.resize(3);
+  std::fill( this->m_KernelRadius.begin(), this->m_KernelRadius.end(), r );
+  return *this;
+}
+${name}::Self& ${name}::SetKernelRadius(const std::vector<uint32_t>  &r )
+{
+  this->m_KernelRadius = r;
+  return *this;
+}
+std::vector<uint32_t> ${name}::GetKernelRadius() const
+{
+  return this->m_KernelRadius;
+}
+${name}::Self& ${name}::SetKernelType(KernelType t)
+{
+  return this->SetKernelType(KernelEnum(t));
+}
+${name}::Self& ${name}::SetKernelType(KernelEnum t)
+{
+  this->m_KernelType = t;
+  return *this;
+}
+KernelEnum ${name}::GetKernelType() const
+{
+  return this->m_KernelType;
+}
+
+//
+// Execute
+//$(include ExecuteWithParameters.cxx.in)
+$(include ExecuteNoParameters.cxx.in)
+
+//-----------------------------------------------------------------------------
+
+$(include CustomCasts.cxx)
+
+//----------------------------------------------------------------------------
+
+sitkClangDiagnosticPush();
+sitkClangWarningIgnore("-Wunused-local-typedef");
+
+//
+// ExecuteInternal
+//
+$(include ExecuteInternalSignature.cxx.in)
+{
+$(include ExecuteInternalTypedefs.cxx.in)
+
+$(include ExecuteInternalGetImagePointers.cxx.in)
+
+
+  // Use correct kernel types
+  typedef itk::FlatStructuringElement< InputImageType::ImageDimension > ITKKernelType;
+  typedef itk::${name}<InputImageType,$(if number_of_inputs == 2 then OUT=[[ InputImageType,]] end)$(if additional_template_types then OUT=[[ $(foreach additional_template_types ${type},)]]end)$(if not no_output_type then OUT=[[ OutputImageType,]] end) ITKKernelType> FilterType;
+
+  ITKKernelType kernel = CreateKernel<InputImageType::ImageDimension>( m_KernelType, m_KernelRadius );
+
+  typename FilterType::Pointer filter = FilterType::New();
+$(include ExecuteInternalSetITKFilterInputs.cxx.in)
+  filter->SetKernel( kernel );
+$(include ExecuteInternalUpdateAndReturn.cxx.in)
+
+}
+
+sitkClangDiagnosticPop();
+
+
+//-----------------------------------------------------------------------------
+
+//
+// Function to run the Execute method of this filter
+//
+Image ${name:gsub("ImageFilter$", ""):gsub("Filter$", "")} ( const Image& imageA$(if number_of_inputs == 2 then OUT=', const Image& imageB' end),
+                 uint32_t inRadius,  KernelEnum inKernel
+                 $(when members $(foreach members , ${type} in${name})) )
+{
+  ${name} filter;
+  return filter.SetKernelRadius( inRadius ).SetKernelType( inKernel ).Execute ( imageA$(if number_of_inputs == 2 then OUT=', imageB' end)$(when members $(foreach members , in${name})) );
+}
+
+
+//
+// Function to run the Execute method of this filter
+//
+Image ${name:gsub("ImageFilter$", ""):gsub("Filter$", "")} ( const Image& imageA$(if number_of_inputs == 2 then OUT=', const Image& imageB' end),
+                 std::vector<uint32_t> inVectorRadius,  KernelEnum inKernel
+                 $(when members $(foreach members , ${type} in${name})) )
+{
+  ${name} filter;
+  return filter.SetKernelRadius( inVectorRadius ).SetKernelType( inKernel ).Execute ( imageA$(if number_of_inputs == 2 then OUT=', imageB' end)$(when members $(foreach members , in${name})) );
+}
+
+} // end namespace simple
+} // end namespace itk
diff --git a/Code/BasicFilters/templates/sitkKernelImageFilterTemplate.h.in b/Code/BasicFilters/templates/sitkKernelImageFilterTemplate.h.in
new file mode 100644
index 0000000..fdbc4f9
--- /dev/null
+++ b/Code/BasicFilters/templates/sitkKernelImageFilterTemplate.h.in
@@ -0,0 +1,98 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitk${name}_h
+#define sitk${name}_h
+
+$(include DoNotEditWarning.h.in)
+
+#include <memory>
+
+#include "sitkImageFilter.h"
+#include "sitkBasicFilters.h"
+#include "sitkKernel.h"
+
+namespace itk {
+  namespace simple {
+
+$(include ClassDeclaration.h.in)
+
+    /** Kernel type enumeration */
+    typedef enum{Annulus=sitkAnnulus, Ball=sitkBall, Box=sitkBox, Cross=sitkCross} KernelType;
+$(include PublicDeclarations.h.in)
+$(include MemberGetSetDeclarations.h.in)
+      /** Kernel radius as a scale for isotropic structures */
+      SITK_RETURN_SELF_TYPE_HEADER SetKernelRadius(uint32_t r);
+
+      /** Set/Get the radius of the kernel structuring element as a
+       * vector.
+       *
+       * If the dimension of the image is greater then the length of
+       * r, then the radius will be padded. If it is less the r will
+       * be truncated.
+       */
+      SITK_RETURN_SELF_TYPE_HEADER SetKernelRadius(const std::vector<uint32_t>  &r );
+      std::vector<uint32_t> GetKernelRadius() const;
+
+      /** Set/Get the kernel or structuring elemenent used for the
+       * morphology */
+      SITK_RETURN_SELF_TYPE_HEADER SetKernelType(KernelEnum t);
+#ifndef SWIG
+      SITK_RETURN_SELF_TYPE_HEADER SetKernelType(KernelType t);
+#endif
+      KernelEnum GetKernelType() const;
+
+$(include ClassNameAndPrint.h.in)
+
+$(include ExecuteMethodNoParameters.h.in)$(include ExecuteMethodWithParameters.h.in)$(include CustomMethods.h.in)
+
+$(include ExecuteInternalMethod.h.in)
+
+$(include MemberFunctionDispatch.h.in)
+
+$(include PrivateMemberDeclarations.h.in)
+      /* Kernel Radius as a vector */
+      std::vector<uint32_t> m_KernelRadius;
+
+      /** KernelType */
+      KernelEnum m_KernelType;
+$(include ClassEnd.h.in)
+
+
+    /**
+     * itk::simple::${name} Functional Interface
+     *
+     * This function directly calls the execute method of ${name}
+     * in order to support a fully functional API
+     */
+  Image SITKBasicFilters_EXPORT ${name:gsub("ImageFilter$", ""):gsub("Filter$", "")} ( const Image&$(if number_of_inputs == 2 then OUT=', const Image&' end),
+                                          uint32_t radius = 1, KernelEnum kernel = sitkBall
+                                          $(include MemberParametersWithDefaults.in) );
+
+
+   /**
+     * itk::simple::${name} Functional Interface
+     *
+     * This function directly calls the execute method of ${name}
+     * in order to support a fully functional API
+     */
+  Image SITKBasicFilters_EXPORT ${name:gsub("ImageFilter$", ""):gsub("Filter$", "")} ( const Image&$(if number_of_inputs == 2 then OUT=', const Image&' end),
+                                          const std::vector<uint32_t> vectorRadius, KernelEnum kernel = sitkBall
+                                          $(include MemberParametersWithDefaults.in) );
+  }
+}
+#endif
diff --git a/Code/BasicFilters/templates/sitkMultiInputImageFilterTemplate.cxx.in b/Code/BasicFilters/templates/sitkMultiInputImageFilterTemplate.cxx.in
new file mode 100644
index 0000000..8b68105
--- /dev/null
+++ b/Code/BasicFilters/templates/sitkMultiInputImageFilterTemplate.cxx.in
@@ -0,0 +1,217 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+$(include DoNotEditWarning.cxx.in)
+
+$(include StandardIncludes.cxx.in)
+$(include AddExtraIncludes.cxx.in)
+
+namespace itk {
+namespace simple {
+
+//-----------------------------------------------------------------------------
+
+//
+// Default constructor that initializes parameters
+//
+$(include ConstructorSignature.cxx.in)
+{
+$(include ConstructorInitializeMembers.cxx.in)
+$(include ConstructorMemberFunctionSetup.cxx.in)
+
+$(include ConstructorVectorPixels.cxx.in)
+}
+
+$(include DesctuctorDefinition.cxx.in)
+
+//
+// ToString
+//
+$(include ToStringSignature.cxx.in)
+{
+$(include ToStringBody.cxx.in)
+$(include ToStringReturn.cxx.in)
+}
+
+//-----------------------------------------------------------------------------
+
+//
+// Execute with paramters
+//
+$(if members and #members > 0 then
+OUT = [[
+Image ${name}::Execute ( const std::vector<Image> &images$(include MemberParameters.in) )
+{
+$(foreach members
+$(if (not no_set_method) or (no_set_method == 0) then
+OUT = '  this->Set${name} ( ${name:sub(1,1):lower() .. name:sub(2,-1)} );'
+end)
+)
+  return this->Execute ( images );
+}
+]]
+for inum=1,5 do
+  OUT=OUT .. [[
+Image ${name}::Execute ( const Image& image1]]
+
+  for jnum=2,inum do
+    OUT=OUT .. ', const Image& image' .. jnum
+  end
+  OUT=OUT .. [[$(include MemberParameters.in) )
+{
+  std::vector<Image> images;
+]]
+
+  for jnum=1,inum do
+    OUT=OUT .. [[
+  images.push_back( image]]..jnum..[[ );
+]]
+  end
+
+  OUT=OUT .. [[
+  return this->Execute( images$(for i = 1,#members do
+                        OUT= OUT .. ', ' .. members[i].name:sub(1,1):lower() .. members[i].name:sub(2,-1)
+                          end) );
+}
+
+]] end end)
+
+//
+// Execute no paramters
+//
+$(for inum=1,5 do
+  OUT=OUT .. [[
+Image ${name}::Execute ( const Image& image1]]
+
+  for jnum=2,inum do
+    OUT=OUT .. ', const Image& image' .. jnum
+  end
+  OUT=OUT .. [[ )
+{
+  std::vector<Image> images;
+]]
+
+  for jnum=1,inum do
+    OUT=OUT .. [[
+  images.push_back( image]]..jnum..[[ );
+]]
+  end
+
+  OUT=OUT .. [[
+  return this->Execute( images );
+}
+
+]] end)
+
+Image ${name}::Execute ( const std::vector<Image> &images )
+{
+  if ( images.empty() )
+    {
+    sitkExceptionMacro( "Atleast one input is required" );
+    }
+
+  PixelIDValueEnum type = images.front().GetPixelID();
+  unsigned int dimension = images.front().GetDimension();
+
+  for( std::vector<Image>::const_iterator i = images.begin(); i != images.end(); ++i )
+    {
+    if ( type != i->GetPixelIDValue() ||
+         dimension != i->GetDimension() )
+      {
+      sitkExceptionMacro ( "An image for ${name} doesn\'t match type or dimension!" );
+      }
+    }
+
+    return this->m_MemberFactory->GetMemberFunction( type, dimension )( images );
+}
+
+//-----------------------------------------------------------------------------
+
+$(include CustomCasts.cxx)
+
+//-----------------------------------------------------------------------------
+
+
+sitkClangDiagnosticPush();
+sitkClangWarningIgnore("-Wunused-local-typedef");
+
+
+//
+// ExecuteInternal
+//
+template <class TImageType>
+Image ${name}::ExecuteInternal ( const std::vector<Image> &images )
+{
+$(include ExecuteInternalTypedefs.cxx.in)
+
+
+$(include ExecuteInternalITKFilter.cxx.in)
+
+  for ( unsigned int i = 0; i < images.size(); ++i )
+    {
+    // Get the pointer to the ITK image contained in image1
+    typename InputImageType::ConstPointer image = this->CastImageToITK<InputImageType>( images[i] );
+
+    filter->SetInput( i, image );
+    }
+
+$(include ExecuteInternalSetITKFilterParameters.cxx.in)
+
+$(include ExecuteInternalUpdateAndReturn.cxx.in)
+ }
+
+sitkClangDiagnosticPop();
+
+//
+// Function to run the Execute method of this filter
+//
+Image ${name:gsub("ImageFilter$", ""):gsub("Filter$", "")} ( const std::vector<Image> & images$(include MemberParameters.in) )
+{
+  ${name} filter;
+  return filter.Execute ( images$(for i = 1,#members do
+                          OUT= OUT .. ', ' .. members[i].name:sub(1,1):lower() .. members[i].name:sub(2,-1)
+                          end) );
+}
+$(for inum=1,5 do
+  OUT=OUT .. [[
+Image ${name:gsub("ImageFilter$", ""):gsub("Filter$", "")} ( const Image& image1]]
+  for jnum=2,inum do
+    OUT=OUT .. ', const Image& image' .. jnum
+  end
+  OUT=OUT .. [[$(include MemberParameters.in) )
+{
+]]
+
+  OUT=OUT .. [[
+  ${name} filter;
+  return filter.Execute ( image1]]
+
+  for jnum=2,inum do
+    OUT=OUT .. ', image' .. jnum
+  end
+
+  for i = 1,#members do
+    OUT= OUT .. ', ' .. members[i].name:sub(1,1):lower() .. members[i].name:sub(2,-1)
+  end
+
+  OUT=OUT..[[ );
+}
+
+]] end)
+
+} // end namespace simple
+} // end namespace itk
diff --git a/Code/BasicFilters/templates/sitkMultiInputImageFilterTemplate.h.in b/Code/BasicFilters/templates/sitkMultiInputImageFilterTemplate.h.in
new file mode 100644
index 0000000..992c443
--- /dev/null
+++ b/Code/BasicFilters/templates/sitkMultiInputImageFilterTemplate.h.in
@@ -0,0 +1,136 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitk${name}_h
+#define sitk${name}_h
+
+$(include DoNotEditWarning.h.in)
+
+#include <memory>
+
+#include "sitkBasicFilters.h"
+#include "sitkImageFilter.h"
+
+namespace itk {
+  namespace simple {
+
+   /**\class ${name}
+
+$(if briefdescription and (briefdescription:len() > 0) then OUT=[[\brief ${briefdescription}]] end)
+
+$(if detaileddescription and (detaileddescription:len() >0) then OUT=[[${detaileddescription}]] end)
+
+\sa itk::simple::${name:gsub("ImageFilter$", "")} for the procedural interface
+   */
+    class SITKBasicFilters_EXPORT ${name}
+      : public ImageFilter<3>
+    {
+    public:
+      typedef ${name} Self;
+
+      /** Default Constructor that takes no arguments and initializes
+       * default parameters */
+      ${name}();
+
+      /** Destructor */
+      ~${name}();
+
+      /** Define the pixels types supported by this filter */
+      typedef ${pixel_types}  PixelIDTypeList;
+
+$(include PublicDeclarations.h.in)
+$(include MemberGetSetDeclarations.h.in)
+$(include ClassNameAndPrint.h.in)
+
+      /** Execute the filter on the input images */
+      Image Execute ( const std::vector<Image> &images);
+$(for inum=1,5 do
+  OUT=OUT..[[
+      Image Execute ( const Image& image1]]
+
+  for jnum=2,inum do
+    OUT=OUT .. ', const Image& image' .. jnum
+  end
+  OUT=OUT..[[ );
+]] end)
+
+$(if members and #members > 0 then
+OUT=[[
+
+      /** Execute the filter on the input images with the given parameters */
+      Image Execute ( const std::vector<Image> &images$(include MemberParameters.in) );
+]]
+for inum=1,5 do
+  OUT=OUT..[[
+      Image Execute ( const Image& image1]]
+
+  for jnum=2,inum do
+    OUT=OUT .. ', const Image& image' .. jnum
+  end
+  OUT=OUT..[[$(include MemberParameters.in) );
+]] end end)
+
+$(include CustomMethods.h.in)
+
+    private:
+
+      /** Setup for member function dispatching */
+
+      typedef Image (Self::*MemberFunctionType)( const std::vector<Image> & );
+      template <class TImageType> Image ExecuteInternal ( const std::vector<Image> &images );
+
+$(if vector_pixel_types_by_component then
+      throw 'vector_pixel_types_by_component must not be set with multi image filters'
+end)
+
+$(include MemberFunctionDispatch.h.in)
+
+$(include PrivateMemberDeclarations.h.in)$(include ClassEnd.h.in)
+
+
+    /**
+$(if briefdescription and (briefdescription:len() > 0) then
+  OUT=OUT..'     * \\brief ${briefdescription}'
+else
+  OUT=OUT..'     * \\brief itk::simple::${name} Procedural Interface'
+end)
+     *
+     * This function directly calls the execute method of ${name}
+     * in order to support a procedural API
+     *
+     * \sa itk::simple::${name} for the object oriented interface
+     * @{
+     */
+     SITKBasicFilters_EXPORT Image ${name:gsub("ImageFilter$", ""):gsub("Filter$", "")} ( const std::vector<Image> &images $(include MemberParametersWithDefaults.in) );
+
+$(for inum=1,5 do
+  OUT=OUT..[[
+     SITKBasicFilters_EXPORT Image ${name:gsub("ImageFilter$", ""):gsub("Filter$", "")} ( const Image& image1]]
+
+  for jnum=2,inum do
+    OUT=OUT .. ', const Image& image' .. jnum
+  end
+  OUT=OUT..[[$(include MemberParametersWithDefaults.in)]]
+
+  OUT=OUT..[[ );
+]]
+end)
+     /** @{ */
+
+}
+}
+#endif
diff --git a/Code/BasicFilters/templates/sitkRegionGrowingImageFilterTemplate.cxx.in b/Code/BasicFilters/templates/sitkRegionGrowingImageFilterTemplate.cxx.in
new file mode 100644
index 0000000..e29a590
--- /dev/null
+++ b/Code/BasicFilters/templates/sitkRegionGrowingImageFilterTemplate.cxx.in
@@ -0,0 +1,127 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+$(include DoNotEditWarning.cxx.in)
+
+$(include StandardIncludes.cxx.in)
+$(include AddExtraIncludes.cxx.in)
+
+namespace itk {
+namespace simple {
+
+//----------------------------------------------------------------------------
+
+//
+// Default constructor that initializes parameters
+//
+$(include ConstructorSignature.cxx.in)
+{
+  this->m_SeedList = std::vector< std::vector<unsigned int> >();
+$(include ConstructorInitializeMembers.cxx.in)
+$(include ConstructorMemberFunctionSetup.cxx.in)
+
+$(include ConstructorVectorPixels.cxx.in)
+}
+
+$(include DesctuctorDefinition.cxx.in)
+
+//
+// ToString
+//
+$(include ToStringSignature.cxx.in)
+{
+$(include ToStringBody.cxx.in)  out << " SeedList:" << std::endl;
+  for (unsigned int i = 0; i < this->m_SeedList.size(); ++i)
+    {
+    out << "  " << this->m_SeedList[i] << std::endl;
+    }
+
+$(include ToStringReturn.cxx.in)
+}
+
+
+$(include CustomMethods.cxx.in)
+
+//
+// Execute
+//$(if members and #members > 0 then
+OUT = [[
+
+Image ${name}::Execute ( const Image& image1$(if number_of_inputs==2 then OUT=', const Image& image2' end),
+  const std::vector< std::vector<unsigned int> > &inSeedList$(include MemberParameters.in) )
+{
+$(foreach members
+$(if (not no_set_method) or (no_set_method == 0) then
+  OUT = '  this->Set${name} ( '..name:sub(1,1):lower()..name:sub(2,-1)..' );'
+end)
+)  this->SetSeedList ( inSeedList );
+
+  return this->Execute ( image1 $(if number_of_inputs==2 then OUT=', image2' end) );
+}
+]]
+end)
+$(include ExecuteNoParameters.cxx.in)
+
+//-----------------------------------------------------------------------------
+
+$(include CustomCasts.cxx)
+
+//----------------------------------------------------------------------------
+
+$(include ExecuteInternalVectorImages.cxx.in)
+//
+// ExecuteInternal
+//
+$(include ExecuteInternalSignature.cxx.in)
+{
+$(include ExecuteInternalTypedefs.cxx.in)
+
+$(include ExecuteInternalGetImagePointers.cxx.in)
+
+$(include ExecuteInternalITKFilter.cxx.in)
+
+$(include ExecuteInternalSetITKFilterInputs.cxx.in)
+  // Convert Seed List from std::vector< std::vector<unsigned int> >
+  // to std::vector<itk::Index>
+  filter->ClearSeeds();
+  for (unsigned int i = 0; i < m_SeedList.size(); ++i)
+    {
+    typedef typename InputImageType::IndexType IndexType;
+
+    IndexType idx = sitkSTLVectorToITK< IndexType  >( m_SeedList[i] );
+    filter->AddSeed(idx);
+    }
+
+$(include ExecuteInternalUpdateAndReturn.cxx.in)
+}
+
+//-----------------------------------------------------------------------------
+
+//
+// Function to run the Execute method of this filter
+//
+Image ${name:gsub("ImageFilter$", ""):gsub("Filter$", "")} ( const Image& imageA$(if number_of_inputs == 2 then OUT=', const Image& imageB' end),
+  const std::vector< std::vector<unsigned int> > &inSeedList$(include MemberParameters.in) )
+{
+  ${name} filter;
+  return filter.Execute ( imageA$(if number_of_inputs == 2 then OUT=', imageB' end), inSeedList$(for i = 1,#members do
+    OUT= OUT .. ', ' .. members[i].name:sub(1,1):lower() .. members[i].name:sub(2,-1)
+      end) );
+}
+
+} // end namespace simple
+} // end namespace itk
diff --git a/Code/BasicFilters/templates/sitkRegionGrowingImageFilterTemplate.h.in b/Code/BasicFilters/templates/sitkRegionGrowingImageFilterTemplate.h.in
new file mode 100644
index 0000000..b0f769b
--- /dev/null
+++ b/Code/BasicFilters/templates/sitkRegionGrowingImageFilterTemplate.h.in
@@ -0,0 +1,99 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitk${name}_h
+#define sitk${name}_h
+
+$(include DoNotEditWarning.h.in)
+
+#include <memory>
+
+#include "sitkImageFilter.h"
+#include "sitkBasicFilters.h"
+
+namespace itk {
+  namespace simple {
+
+$(include ClassDeclaration.h.in)
+$(include PublicDeclarations.h.in)
+$(include MemberGetSetDeclarations.h.in)
+      /** Set SeedList */
+      SITK_RETURN_SELF_TYPE_HEADER SetSeedList ( const std::vector< std::vector<unsigned int> > &t )
+        {
+        this->m_SeedList = t; return *this;
+        }
+
+      /** Get SeedList */
+      std::vector< std::vector<unsigned int> > GetSeedList() const
+        {
+        return this->m_SeedList;
+        }
+
+      /** ClearSeeds - Clear out all seeds in the list */
+      SITK_RETURN_SELF_TYPE_HEADER ClearSeeds( )
+        {
+        this->m_SeedList.clear();
+        return *this;
+        }
+
+      /** SetSeed - Set list to a single seed */
+      SITK_RETURN_SELF_TYPE_HEADER SetSeed( const std::vector<unsigned int> &idx )
+        {
+        this->m_SeedList.clear();
+        this->m_SeedList.push_back(idx);
+        return *this;
+        }
+
+      /** AddSeed - Add a seed to the end of the list */
+      SITK_RETURN_SELF_TYPE_HEADER AddSeed( const std::vector<unsigned int> &idx )
+        {
+        this->m_SeedList.push_back(idx);
+        return *this;
+        }
+
+$(include ClassNameAndPrint.h.in)
+
+$(include ExecuteMethodNoParameters.h.in)$(if members and #members > 0 then
+OUT=[[
+
+
+      /** Execute the filter on the input image$(if number_of_inputs == 2 then OUT='s'end) with the given parameters */
+      Image Execute ( $(include ImageParameters.in), const std::vector< std::vector<unsigned int> > &seedList$(include MemberParameters.in) );]]end)$(include CustomMethods.h.in)
+
+$(include ExecuteInternalMethod.h.in)
+
+$(include MemberFunctionDispatch.h.in)
+
+$(include PrivateMemberDeclarations.h.in)
+      /** List of interor seed points used to initialize the region growing segmentation */
+      std::vector< std::vector<unsigned int> > m_SeedList;
+
+$(include ClassEnd.h.in)
+
+
+    /**
+     * itk::simple::${name} Functional Interface
+     *
+     * This function directly calls the execute method of ${name}
+     * in order to support a fully functional API
+     */
+Image SITKBasicFilters_EXPORT ${name:gsub("ImageFilter$", ""):gsub("Filter$", "")} ( $(include ImageParameters.in), const std::vector< std::vector<unsigned int> > &seedList$(include MemberParametersWithDefaults.in) );
+
+
+  } // end namespace simple
+} // end namespace itk
+#endif
diff --git a/Code/CMakeLists.txt b/Code/CMakeLists.txt
new file mode 100644
index 0000000..e5915d5
--- /dev/null
+++ b/Code/CMakeLists.txt
@@ -0,0 +1,8 @@
+if (SimpleITK_EXPLICIT_INSTANTIATION)
+  add_subdirectory(Explicit)
+endif()
+add_subdirectory(Common)
+
+add_subdirectory(BasicFilters)
+add_subdirectory(IO)
+add_subdirectory(Registration)
diff --git a/Code/Common/CMakeLists.txt b/Code/Common/CMakeLists.txt
new file mode 100644
index 0000000..058effe
--- /dev/null
+++ b/Code/Common/CMakeLists.txt
@@ -0,0 +1,21 @@
+
+add_subdirectory( src )
+
+# CMake option variable are prefixes with the project name "SimpleITK"
+# while C++ preprocess defines only have SITK. These variable need the
+# prefix translation.
+set( SITK_INT64_PIXELIDS ${SimpleITK_INT64_PIXELIDS} )
+set( SITK_4D_IMAGES ${SimpleITK_4D_IMAGES} )
+set( SITK_EXPLICIT_INSTANTIATION ${SimpleITK_EXPLICIT_INSTANTIATION} )
+
+include(sitkCheckTemplateDisambiguation)
+
+configure_file( "src/sitkConfigure.h.in" "include/sitkConfigure.h" )
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/include/sitkConfigure.h"
+  DESTINATION "${SimpleITK_INSTALL_INCLUDE_DIR}"
+  COMPONENT Development)
+
+configure_file("src/sitkVersionConfig.h.in" "include/sitkVersionConfig.h" @ONLY)
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/include/sitkVersionConfig.h"
+  DESTINATION "${SimpleITK_INSTALL_INCLUDE_DIR}"
+  COMPONENT Development)
diff --git a/Code/Common/include/Ancillary/FunctionTraits.h b/Code/Common/include/Ancillary/FunctionTraits.h
new file mode 100644
index 0000000..0dd9a2d
--- /dev/null
+++ b/Code/Common/include/Ancillary/FunctionTraits.h
@@ -0,0 +1,110 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef __FunctionTraits_h
+#define __FunctionTraits_h
+
+#include "sitkMacro.h"
+
+namespace detail {
+
+template<typename FunctionType> struct SITK_ABI_HIDDEN FunctionTraits;
+
+template<typename R,
+         typename C>
+struct SITK_ABI_HIDDEN FunctionTraits<R (C::*)(void)> {
+  static const unsigned int arity = 0;
+  typedef C ClassType;
+  typedef R ResultType;
+};
+
+
+template<typename R,
+         typename C,
+         typename A0>
+struct SITK_ABI_HIDDEN FunctionTraits<R (C::*)(A0)> {
+  static const unsigned int arity = 1;
+  typedef C ClassType;
+  typedef R ResultType;
+  typedef A0 Argument0Type;
+};
+
+
+template<typename R,
+         typename C,
+         typename A0,
+         typename A1>
+struct SITK_ABI_HIDDEN FunctionTraits<R (C::*)(A0, A1)> {
+  static const unsigned int arity = 2;
+  typedef C ClassType;
+  typedef R ResultType;
+  typedef A0 Argument0Type;
+  typedef A1 Argument1Type;
+};
+
+
+template<typename R,
+         typename C,
+         typename A0,
+         typename A1,
+         typename A2>
+struct SITK_ABI_HIDDEN FunctionTraits<R (C::*)(A0, A1, A2)> {
+  static const unsigned int arity = 3;
+  typedef C ClassType;
+  typedef R ResultType;
+  typedef A0 Argument0Type;
+  typedef A1 Argument1Type;
+  typedef A2 Argument2Type;
+};
+
+template<typename R,
+         typename C,
+         typename A0,
+         typename A1,
+         typename A2,
+         typename A3>
+struct SITK_ABI_HIDDEN FunctionTraits<R (C::*)(A0, A1, A2, A3)> {
+  static const unsigned int arity = 4;
+  typedef C ClassType;
+  typedef R ResultType;
+  typedef A0 Argument0Type;
+  typedef A1 Argument1Type;
+  typedef A2 Argument2Type;
+  typedef A3 Argument3Type;
+};
+
+template<typename R,
+         typename C,
+         typename A0,
+         typename A1,
+         typename A2,
+         typename A3,
+         typename A4>
+struct SITK_ABI_HIDDEN FunctionTraits<R (C::*)(A0, A1, A2, A3, A4)> {
+  static const unsigned int arity = 5;
+  typedef C ClassType;
+  typedef R ResultType;
+  typedef A0 Argument0Type;
+  typedef A1 Argument1Type;
+  typedef A2 Argument2Type;
+  typedef A3 Argument3Type;
+  typedef A4 Argument4Type;
+};
+
+}
+
+#endif
diff --git a/Code/Common/include/Ancillary/TypeList.h b/Code/Common/include/Ancillary/TypeList.h
new file mode 100644
index 0000000..0671d6b
--- /dev/null
+++ b/Code/Common/include/Ancillary/TypeList.h
@@ -0,0 +1,479 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+// This file is based off of the work done in the Loki library but is
+// substantially modified. It's a good book buy it.
+
+////////////////////////////////////////////////////////////////////////////////
+// The Loki Library
+// Copyright (c) 2001 by Andrei Alexandrescu
+// This code accompanies the book:
+// Alexandrescu, Andrei. "Modern C++ Design: Generic Programming and Design
+//     Patterns Applied". Copyright (c) 2001. Addison-Wesley.
+// Permission to use, copy, modify, distribute and sell this software for any
+//     purpose is hereby granted without fee, provided that the above copyright
+//     notice appear in all copies and that both that copyright notice and this
+//     permission notice appear in supporting documentation.
+// The author or Addison-Welsey Longman make no representations about the
+//     suitability of this software for any purpose. It is provided "as is"
+//     without express or implied warranty.
+////////////////////////////////////////////////////////////////////////////////
+
+
+#ifndef __TypeList_H__
+#define __TypeList_H__
+
+#include "sitkMacro.h"
+
+namespace typelist
+{
+
+
+/** \class  TypeList
+ * \brief The building block of typelists of any length
+ *
+ * A TypeList is a type, not an object. It enables complex
+ * compile-time manipulation of a set of types.
+ *
+ * Defines nested types:
+ *     Head (first element, a non-typelist type by convention)
+ *     Tail (second element, can be another typelist)
+ */
+template <typename H, typename T>
+struct SITK_ABI_HIDDEN TypeList
+{
+  typedef H Head;
+  typedef T Tail;
+};
+
+/** \class NullType
+ * \brief a empty type to indicate end of list
+ */
+struct SITK_ABI_HIDDEN NullType {};
+
+
+
+/**\class  MakeTypeList
+ * \brief Generates a TypeList from it's template arguments
+ *
+ * The arguments are type names.
+ * \code
+ * MakeTypeList<T1, T2, T3>::Type
+ * \endcode
+ * returns a typelist that contans the types T1, T2, T3
+ *
+ * Example:
+ * \code
+ * typedef typelist::MakeTypeList< int, char, short>::Type MyTypeList;
+ * \endcode
+ *
+ */
+template
+<
+  typename T1  = NullType, typename T2   = NullType, typename T3  = NullType,
+  typename T4  = NullType, typename T5   = NullType, typename T6  = NullType,
+  typename T7  = NullType, typename T8   = NullType, typename T9  = NullType,
+  typename T10 = NullType, typename T11  = NullType, typename T12 = NullType,
+  typename T13 = NullType, typename T14  = NullType, typename T15 = NullType,
+  typename T16 = NullType, typename T17  = NullType, typename T18 = NullType,
+  typename T19 = NullType, typename T20  = NullType, typename T21 = NullType,
+  typename T22 = NullType, typename T23  = NullType, typename T24 = NullType,
+  typename T25 = NullType, typename T26  = NullType, typename T27 = NullType,
+  typename T28 = NullType, typename T29  = NullType, typename T30 = NullType
+>
+struct SITK_ABI_HIDDEN MakeTypeList
+{
+private:
+  typedef typename MakeTypeList
+  <
+  T2,  T3,  T4,
+  T5,  T6,  T7,
+  T8,  T9,  T10,
+  T11, T12, T13,
+  T14, T15, T16,
+  T17, T18, T19,
+  T20, T21, T22,
+  T23, T24, T25,
+  T26, T27, T28,
+  T29, T30
+  >::Type TailType;
+public:
+  typedef TypeList< T1, TailType > Type;
+};
+template <>
+struct SITK_ABI_HIDDEN MakeTypeList<>
+{
+  typedef NullType Type;
+};
+
+
+
+template <typename TTypeList> struct SITK_ABI_HIDDEN Length;
+/**\class Length
+ * \brief Computes the length of a typelist
+ *
+ * Example:
+ * \code
+ * typedef typelist::MakeTypeList<int, char, short>::Type MyTypeList;
+ * int len = typelist::Length<MyTypeList>::Result;
+ * \endcode
+ * returns a compile-time constant containing the length of TTypeList,
+ * not counting the end terminator (which by convention is NullType)
+ *
+ */
+template <typename H, typename T>
+struct SITK_ABI_HIDDEN Length< TypeList<H, T> >
+{
+  enum { Result = 1 + Length<T>::Result };
+};
+
+/** \cond TYPELIST_IMPLEMENTATION */
+template <> struct SITK_ABI_HIDDEN Length<NullType>
+{
+  enum { Result = 0 };
+};
+/** \endcond */
+
+
+
+/**\class TypeAt
+ * \brief Finds the type at a given index in a typelist
+ *
+ * Example:
+ * \code
+ * typedef typelist::MakeTypeList<int, char, short>::Type MyTypeList;
+ * typelist::TypeAt<MyTypeList, 0>::Result intVariable;
+ * \endcode
+ *
+ * returns the type's position 'index' in TTypeList
+ * If you pass an out-of-bounds index, the result is a compile-time
+ * error
+ *
+ */
+template <class TTypeList, unsigned int index> struct SITK_ABI_HIDDEN TypeAt;
+
+template <class Head, class Tail>
+struct SITK_ABI_HIDDEN TypeAt<TypeList<Head, Tail>, 0>
+{
+  typedef Head Result;
+};
+
+template <class Head, class Tail, unsigned int i>
+struct SITK_ABI_HIDDEN TypeAt<TypeList<Head, Tail>, i>
+{
+  typedef typename TypeAt<Tail, i - 1>::Result Result;
+};
+
+template < unsigned int i>
+struct SITK_ABI_HIDDEN TypeAt<NullType, i>
+{
+  typedef NullType Result;
+};
+
+
+template <class TTypeList1, class TTypeList2> struct SITK_ABI_HIDDEN Append;
+/**\class Append
+ * \brief Appends a type or a typelist to another
+ *
+ * Example 1:
+ * \code
+ * typedef typelist::MakeTypeList<int, char>::Type MyTypeList1;
+ * typedef typelist::MakeTypeList<short, unsigned short>::Type MyTypeList2;
+ * typedef typelist::Append<MyList1, MyList2>::Type  MyCombinedList;
+ * \endcode
+ *
+ * Example 2:
+ * \code
+ * typedef typelist::MakeTypeList<int, char>::Type MyTypeList;
+ * typedef typelist::Append<MyTypeList, short>::Type MyAddedTypeList;
+ * \endcode
+ *
+ *  returns a typelist that is TTypeList1 followed by TTypeList2
+ *  terminated by NullType. TTypeList2 may be another typelist or a
+ *  single type.
+ *
+ */
+template <class Head, class Tail, class T>
+struct SITK_ABI_HIDDEN Append<TypeList<Head, Tail>, T>
+{
+  typedef TypeList<Head, typename Append<Tail, T>::Type> Type;
+};
+
+/** \cond TYPELIST_IMPLEMENTATION */
+template <> struct SITK_ABI_HIDDEN Append<NullType, NullType>
+{
+  typedef NullType Type;
+};
+template <class T> struct SITK_ABI_HIDDEN Append<NullType, T>
+{
+  typedef TypeList<T,NullType> Type;
+};
+template <class T> struct SITK_ABI_HIDDEN Append<T, NullType>
+{
+  typedef TypeList<T,NullType> Type;
+};
+template <class Head, class Tail>
+struct SITK_ABI_HIDDEN Append<NullType, TypeList<Head, Tail> >
+{
+  typedef TypeList<Head, Tail> Type;
+};
+template <class Head, class Tail>
+struct SITK_ABI_HIDDEN Append<TypeList<Head, Tail>, NullType>
+{
+  typedef TypeList<Head, Tail> Type;
+};
+/** \endcond */
+
+/**\class IndexOf
+ * \brief Finds the index of a type in a typelist
+ *
+ * Example:
+ * \code
+ * typedef typelist::MakeTypeList<int, char>::Type MyTypeList;
+ * int index = typelist::IndexOf<MyTypeList, int>::Result;
+ * \endcode
+ *
+ * IndexOf<TTypeList, T>::Result
+ * returns the position of T in TList, or NullType if T is not found in TList
+ */
+template <class TTypeList, class TType> struct SITK_ABI_HIDDEN IndexOf;
+template <class TType>
+struct SITK_ABI_HIDDEN IndexOf<NullType, TType>
+{
+  enum { Result = -1 };
+};
+template <class TType, class TTail>
+struct SITK_ABI_HIDDEN IndexOf<TypeList<TType, TTail>, TType>
+{
+  enum { Result = 0 };
+};
+template <class Head, class TTail, class TType>
+struct SITK_ABI_HIDDEN IndexOf<TypeList<Head, TTail>, TType>
+{
+private:
+  enum { temp = IndexOf<TTail, TType>::Result };
+public:
+  enum { Result = (temp == -1 ? -1 : 1 + temp) };
+};
+
+
+/**\class HasType
+ * \brief Queries the typelist for a type
+ *
+ * Example:
+ * \code
+ * typedef typelist::MakeTypeList<int, char>::Type MyTypeList;
+ * bool query = typelist::HasType<MyTypeList, short>::Result;
+ * \endcode
+ *
+ * HasType<TList, T>::Result
+ * evaluates to true if TList contains T, false otherwise.
+ */
+template <class TTypeList, class TType> struct SITK_ABI_HIDDEN HasType;
+template <class TType>
+struct SITK_ABI_HIDDEN HasType<NullType, TType>
+{
+  enum { Result = false };
+};
+template <class TType, class TTail>
+struct SITK_ABI_HIDDEN HasType<TypeList<TType, TTail>, TType> {
+  enum { Result = true };
+};
+template <class Head, class TTail, class TType>
+struct SITK_ABI_HIDDEN HasType<TypeList<Head, TTail>, TType> {
+  enum { Result = HasType<TTail, TType>::Result };
+};
+
+
+/**\class Visit
+ * \brief Runs a templated predicate on each type in the list
+ *
+ * \code
+ * struct Predicate
+ * {
+ *  template<class TType>
+ *  void operator()( void ) const
+ *     { std::cout << typeid(TType).name() << std::endl; }
+ * }
+ *
+ * typedef typelist::MakeTypeList<int, char>::Type MyTypeList;
+ * typelist::Visit<MyTypeList>( Predicate() );
+ *
+ * \endcode
+ *
+ *
+ */
+template <class TTypeList>
+struct SITK_ABI_HIDDEN Visit
+{
+  template < class Predicate >
+  void operator()( Predicate &visitor )
+  {
+    typedef typename TTypeList::Head Head;
+    typedef typename TTypeList::Tail Tail;
+    visitor.CLANG_TEMPLATE operator()<Head>( );
+    Visit<Tail> next;
+    next.CLANG_TEMPLATE operator()<Predicate>( visitor );
+  }
+  template < class Predicate >
+  void operator()( const Predicate &visitor )
+  {
+    typedef typename TTypeList::Head Head;
+    typedef typename TTypeList::Tail Tail;
+    visitor.CLANG_TEMPLATE operator()<Head>( );
+    Visit<Tail> next;
+    next.CLANG_TEMPLATE operator()<Predicate>( visitor );
+  }
+};
+template <> struct SITK_ABI_HIDDEN Visit < NullType>
+{
+  template < class Predicate >
+  void operator()( const Predicate &)
+    {}
+};
+
+
+template < typename TLeftTypeList, typename TRightTypeList >
+struct SITK_ABI_HIDDEN DualVisitImpl;
+
+/**\class DualVisit
+ * \brief Runs a templated predicate on each combination of the types
+ * on the two lists
+ *
+ * \code
+ * struct Predicate
+ * {
+ *  template<class TType1, TType2>
+ *  void operator()( void ) const
+ *     { std::cout << typeid(TType1).name() << " " << typeid(TType2.name() <<
+ * std::endl; }
+ * }
+ *
+ * typedef typelist::MakeTypeList<int, char>::Type MyTypeList;
+ * typelist::DualVisit<MyTypeList, MyTypeList>( Predicate() );
+ *
+ * \endcode
+ *
+ */
+template < typename TLeftTypeList, typename TRightTypeList >
+struct SITK_ABI_HIDDEN DualVisit
+{
+
+  template <typename Visitor>
+  void operator()( Visitor &visitor ) const
+  {
+    DualVisitImpl<TLeftTypeList, TRightTypeList > impl;
+    return impl.CLANG_TEMPLATE operator()<Visitor>( visitor );
+  }
+
+  template <typename Visitor>
+  void operator()( const Visitor &visitor ) const
+  {
+    DualVisitImpl<TLeftTypeList, TRightTypeList > impl;
+    return impl.CLANG_TEMPLATE operator()<Visitor>( visitor );
+  }
+};
+
+/** \cond TYPELIST_IMPLEMENTATION
+*
+* The procedural algorithm for this code is:
+* \code
+*  foreach leftType in TLeftTypList
+*    foreach rightType in TRightTypeList
+*      visit( leftType, rightTYpe )
+* \endcode
+*
+* Where inner loop has been unwound in to a tail recursive templated
+* meta-function visitRHS. The outer loop is recursively implemented in
+* the operator().
+*/
+template < typename TLeftTypeList, typename TRightTypeList >
+struct SITK_ABI_HIDDEN DualVisitImpl
+{
+  typedef typename TLeftTypeList::Head  LeftHead;
+  typedef typename TRightTypeList::Head RightHead;
+  typedef typename TLeftTypeList::Tail  LeftTail;
+  typedef typename TRightTypeList::Tail RightTail;
+
+  template <typename Visitor>
+  void operator()( Visitor &visitor ) const
+  {
+    DualVisitImpl< TLeftTypeList, TRightTypeList> goRight;
+    goRight.visitRHS<Visitor>( visitor );
+
+    DualVisitImpl<LeftTail, TRightTypeList> goLeft;
+    goLeft.CLANG_TEMPLATE operator()<Visitor>( visitor );
+  }
+
+  template <typename Visitor>
+  void operator()( const Visitor &visitor ) const
+  {
+    DualVisitImpl< TLeftTypeList, TRightTypeList> goRight;
+    goRight.visitRHS<Visitor>( visitor );
+
+    DualVisitImpl<LeftTail, TRightTypeList> goLeft;
+    goLeft.CLANG_TEMPLATE operator()<Visitor>( visitor );
+  }
+
+  template <typename Visitor>
+  void visitRHS( Visitor &visitor ) const
+  {
+    visitor.CLANG_TEMPLATE operator()<LeftHead, RightHead>( );
+
+    DualVisitImpl< TLeftTypeList, RightTail> goRight;
+    goRight.CLANG_TEMPLATE visitRHS<Visitor>( visitor );
+  }
+  template <typename Visitor>
+  void visitRHS( const Visitor &visitor ) const
+  {
+    visitor.CLANG_TEMPLATE operator()<LeftHead, RightHead>( );
+
+    DualVisitImpl< TLeftTypeList, RightTail> goRight;
+    goRight.CLANG_TEMPLATE visitRHS<Visitor>( visitor );
+  }
+};
+
+template < typename TRightTypeList >
+struct SITK_ABI_HIDDEN DualVisitImpl< typelist::NullType, TRightTypeList >
+{
+  template <typename Visitor>
+  void operator()( const Visitor & ) const
+  { }
+};
+template < typename TLeftTypeList >
+struct SITK_ABI_HIDDEN DualVisitImpl< TLeftTypeList, typelist::NullType >
+{
+  template <typename Visitor>
+  void operator()( const Visitor & ) const
+  { }
+
+  template <typename Visitor>
+  void visitRHS( const Visitor & ) const {}
+};
+
+template < >
+struct SITK_ABI_HIDDEN DualVisitImpl< typelist::NullType, typelist::NullType >
+{
+  template <typename Visitor>
+  void operator()( const Visitor & ) const
+  { }
+};
+/**\endcond*/
+
+}
+
+#endif // __TypeList_H__
diff --git a/Code/Common/include/Ancillary/hl_md5.cxx b/Code/Common/include/Ancillary/hl_md5.cxx
new file mode 100644
index 0000000..dd322d8
--- /dev/null
+++ b/Code/Common/include/Ancillary/hl_md5.cxx
@@ -0,0 +1,403 @@
+/* 
+ * hashlib++ - a simple hash library for C++
+ * 
+ * Copyright (c) 2007-2010 Benjamin Gr�delbach
+ * 
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 
+ * 	1)     Redistributions of source code must retain the above copyright
+ * 	       notice, this list of conditions and the following disclaimer.
+ * 
+ * 	2)     Redistributions in binary form must reproduce the above copyright
+ * 	       notice, this list of conditions and the following disclaimer in
+ * 	       the documentation and/or other materials provided with the
+ * 	       distribution.
+ * 	     
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+//----------------------------------------------------------------------	
+
+/*
+ * The hashlib++ MD5 implementation is derivative from the sourcecode
+ * published in RFC 1321 
+ * 
+ * Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
+ * rights reserved.
+ * 
+ * License to copy and use this software is granted provided that it
+ * is identified as the "RSA Data Security, Inc. MD5 Message-Digest
+ * Algorithm" in all material mentioning or referencing this software
+ * or this function.
+ * 
+ * License is also granted to make and use derivative works provided
+ * that such works are identified as "derived from the RSA Data
+ * Security, Inc. MD5 Message-Digest Algorithm" in all material
+ * mentioning or referencing the derived work.
+ * 
+ * RSA Data Security, Inc. makes no representations concerning either
+ * the merchantability of this software or the suitability of this
+ * software for any particular purpose. It is provided "as is"
+ * without express or implied warranty of any kind.
+ * 
+ * These notices must be retained in any copies of any part of this
+ * documentation and/or software.
+ */
+
+//----------------------------------------------------------------------	
+
+/**
+ *  @file 	hl_md5.cpp
+ *  @brief	This file contains the implementation of the MD5 class
+ *  @date 	Mo 17 Sep 2007
+ */  
+
+//----------------------------------------------------------------------
+//hashlib++ includes
+#include "hl_md5.h"
+
+//----------------------------------------------------------------------
+// defines
+
+// Constants for MD5Transform routine.
+#define S11 7
+#define S12 12
+#define S13 17
+#define S14 22
+#define S21 5
+#define S22 9
+#define S23 14
+#define S24 20
+#define S31 4
+#define S32 11
+#define S33 16
+#define S34 23
+#define S41 6
+#define S42 10
+#define S43 15
+#define S44 21
+
+static unsigned char PADDING[64] = {
+  0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+};
+
+/* F, G, H and I are basic MD5 functions. */
+#define F(x, y, z) (((x) & (y)) | ((~x) & (z)))
+#define G(x, y, z) (((x) & (z)) | ((y) & (~z)))
+#define H(x, y, z) ((x) ^ (y) ^ (z))
+#define I(x, y, z) ((y) ^ ((x) | (~z)))
+
+/*
+ * ROTATE_LEFT rotates x left n bits. 
+ * cast to unsigned int to guarantee support for 64Bit System
+ */
+#define ROTATE_LEFT(x, n) (((x) << (n)) | (( (unsigned int) x) >> (32-(n))))
+
+/*
+FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4.
+Rotation is separate from addition to prevent recomputation.
+*/
+#define FF(a, b, c, d, x, s, ac) { \
+ (a) += F ((b), (c), (d)) + (x) + (unsigned long int)(ac); \
+ (a) = ROTATE_LEFT ((a), (s)); \
+ (a) += (b); \
+  }
+
+#define GG(a, b, c, d, x, s, ac) { \
+ (a) += G ((b), (c), (d)) + (x) + (unsigned long int)(ac); \
+ (a) = ROTATE_LEFT ((a), (s)); \
+ (a) += (b); \
+  }
+#define HH(a, b, c, d, x, s, ac) { \
+ (a) += H ((b), (c), (d)) + (x) + (unsigned long int)(ac); \
+ (a) = ROTATE_LEFT ((a), (s)); \
+ (a) += (b); \
+  }
+#define II(a, b, c, d, x, s, ac) { \
+ (a) += I ((b), (c), (d)) + (x) + (unsigned long int)(ac); \
+ (a) = ROTATE_LEFT ((a), (s)); \
+ (a) += (b); \
+  }
+
+//----------------------------------------------------------------------	
+//private member-functions
+
+/**
+ *  @brief 	Basic transformation. Transforms state based on block.
+ *  @param	state	state to transform
+ *  @param	block	block to transform
+ */  
+void MD5::MD5Transform (unsigned long int state[4], unsigned char block[64])
+{
+	unsigned long int a = state[0], b = state[1], c = state[2], d = state[3], x[16];
+
+	Decode (x, block, 64);
+
+	/* Round 1 */
+	FF (a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */
+	FF (d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */
+	FF (c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */
+	FF (b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */
+	FF (a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */
+	FF (d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */
+	FF (c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */
+	FF (b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */
+	FF (a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */
+	FF (d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */
+	FF (c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */
+	FF (b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */
+	FF (a, b, c, d, x[12], S11, 0x6b901122); /* 13 */
+	FF (d, a, b, c, x[13], S12, 0xfd987193); /* 14 */
+	FF (c, d, a, b, x[14], S13, 0xa679438e); /* 15 */
+	FF (b, c, d, a, x[15], S14, 0x49b40821); /* 16 */
+
+	/* Round 2 */
+	GG (a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */
+	GG (d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */
+	GG (c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */
+	GG (b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */
+	GG (a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */
+	GG (d, a, b, c, x[10], S22,  0x2441453); /* 22 */
+	GG (c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */
+	GG (b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */
+	GG (a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */
+	GG (d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */
+	GG (c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */
+
+	GG (b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */
+	GG (a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */
+	GG (d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */
+	GG (c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */
+	GG (b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */
+
+	/* Round 3 */
+	HH (a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */
+	HH (d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */
+	HH (c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */
+	HH (b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */
+	HH (a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */
+	HH (d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */
+	HH (c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */
+	HH (b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */
+	HH (a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */
+	HH (d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */
+	HH (c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */
+	HH (b, c, d, a, x[ 6], S34,  0x4881d05); /* 44 */
+	HH (a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */
+	HH (d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */
+	HH (c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */
+	HH (b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */
+
+	/* Round 4 */
+	II (a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */
+	II (d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */
+	II (c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */
+	II (b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */
+	II (a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */
+	II (d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */
+	II (c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */
+	II (b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */
+	II (a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */
+	II (d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */
+	II (c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */
+	II (b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */
+	II (a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */
+	II (d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */
+	II (c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */
+	II (b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */
+
+	state[0] += a;
+	state[1] += b;
+	state[2] += c;
+	state[3] += d;
+
+	/* 
+	 * Zeroize sensitive information.
+	 */
+	MD5_memset ((POINTER)x, 0, sizeof (x));
+}
+
+/**
+ *  @brief 	Encodes input data
+ *  @param	output Encoded data as OUT parameter
+ *  @param	input Input data
+ *  @param	len The length of the input assuming it is a
+ *  		multiple of 4
+ */  
+void MD5::Encode (unsigned char *output, unsigned long int *input, unsigned int len)
+{
+	unsigned int i, j;
+
+	for (i = 0, j = 0; j < len; i++, j += 4) {
+		output[j] = (unsigned char)(input[i] & 0xff);
+		output[j+1] = (unsigned char)((input[i] >> 8) & 0xff);
+		output[j+2] = (unsigned char)((input[i] >> 16) & 0xff);
+		output[j+3] = (unsigned char)((input[i] >> 24) & 0xff);
+	}
+}
+
+/**
+ *  @brief 	Decodes input data into output
+ *  @param	output Decoded data as OUT parameter
+ *  @param	input Input data
+ *  @param	len The length of the input assuming it is a
+ *  		multiple of 4
+ */  
+void MD5::Decode (unsigned long int *output, unsigned char *input, unsigned int len)
+{
+	  unsigned int i, j;
+
+	  for (i = 0, j = 0; j < len; i++, j += 4)
+		 output[i] = ((unsigned long int)input[j]) | 
+			     (((unsigned long int)input[j+1]) << 8) |
+			     (((unsigned long int)input[j+2]) << 16) |
+			     (((unsigned long int)input[j+3]) << 24);
+}
+
+/**
+ *  @brief 	internal memory management
+ *  @param	output OUT parameter where POINTER is a unsigned
+ *  		char*
+ *  @param	input Data to copy where POINTER is a unsigned char*
+ *  @param	len The length of the data
+ */  
+void MD5::MD5_memcpy (POINTER output, POINTER input, unsigned int len)
+{
+	/*
+	 * TODO-Note: Replace "for loop" with standard memcpy if possible.
+	 */
+	unsigned int i;
+
+	for (i = 0; i < len; i++)
+		output[i] = input[i];
+}
+
+/**
+ *  @brief 	internal memory management
+ *  @param 	output OUT parameter where POINTER is an unsigned
+ *  		char*
+ *  @param	value Value to fill the memory with
+ *  @param	len The length of the data
+ *  
+ */  
+void MD5::MD5_memset (POINTER output,int value,unsigned int len)
+{
+	/*
+	 * TODO-Note: Replace "for loop" with standard memset if possible.
+	 */
+	unsigned int i;
+	for (i = 0; i < len; i++)
+		((char *)output)[i] = (char)value;
+}
+
+//----------------------------------------------------------------------	
+//public member-functions
+
+/**
+ *  @brief 	Initialization begins an operation,
+ *  		writing a new context
+ *  @param 	context	The HL_MD5_CTX context to initialize
+ */  
+void MD5::MD5Init (HL_MD5_CTX *context)
+{
+	  context->count[0] = context->count[1] = 0;
+	  context->state[0] = 0x67452301;
+	  context->state[1] = 0xefcdab89;
+	  context->state[2] = 0x98badcfe;
+	  context->state[3] = 0x10325476;
+}
+
+/**
+ *  @brief 	Block update operation. Continues an md5
+ *  		message-digest operation, processing another
+ *  		message block, and updating the context.
+ *  @param	context The HL_MD5_CTX context to update
+ *  @param	input The data to write into the context
+ *  @param	inputLen The length of the input data
+ */  
+void MD5::MD5Update (HL_MD5_CTX *context, unsigned char *input, unsigned int inputLen)
+{
+	  unsigned int i, index, partLen;
+
+	  /* Compute number of bytes mod 64 */
+	  index = (unsigned int)((context->count[0] >> 3) & 0x3F);
+
+	  /* Update number of bits */
+	  if ( (context->count[0] += ((unsigned long int)inputLen << 3))
+	       < ((unsigned long int)inputLen << 3))
+		context->count[1]++;
+
+	  context->count[1] += ((unsigned long int)inputLen >> 29);
+	  partLen = 64 - index;
+
+	  /*
+	   * Transform as many times as possible.
+	   */
+	  if (inputLen >= partLen) 
+	  {
+		 MD5_memcpy ((POINTER)&context->buffer[index], (POINTER)input, partLen);
+		 MD5Transform (context->state, context->buffer);
+
+		 for (i = partLen; i + 63 < inputLen; i += 64)
+		   MD5Transform (context->state, &input[i]);
+
+		 index = 0;
+	  }
+	  else 
+	 	i = 0;
+
+	  /* Buffer remaining input */
+	  MD5_memcpy ((POINTER)&context->buffer[index],
+	              (POINTER)&input[i],
+		      inputLen-i);
+}
+
+/**
+ *  @brief 	Finalization ends the md5 message-digest 
+ *  		operation, writing the the message digest and
+ *  		zeroizing the context.
+ *  @param	digest This is an OUT parameter which contains
+ *  		the created hash after the method returns
+ *  @param	context The context to finalize
+ */  
+void MD5::MD5Final (unsigned char digest[16], HL_MD5_CTX *context)
+{
+	unsigned char bits[8];
+	unsigned int index, padLen;
+
+	/* Save number of bits */
+	Encode (bits, context->count, 8);
+
+	/* 
+	 * Pad out to 56 mod 64.
+	 */
+	index = (unsigned int)((context->count[0] >> 3) & 0x3f);
+	padLen = (index < 56) ? (56 - index) : (120 - index);
+	MD5Update (context, PADDING, padLen);
+
+	/* Append length (before padding) */
+	MD5Update (context, bits, 8);
+
+	/* Store state in digest */
+	Encode (digest, context->state, 16);
+
+	/*
+	 * Zeroize sensitive information.
+	 */
+	MD5_memset ((POINTER)context, 0, sizeof (*context));
+}
+
+//----------------------------------------------------------------------
+//EOF
diff --git a/Code/Common/include/Ancillary/hl_md5.h b/Code/Common/include/Ancillary/hl_md5.h
new file mode 100644
index 0000000..f1cf82b
--- /dev/null
+++ b/Code/Common/include/Ancillary/hl_md5.h
@@ -0,0 +1,209 @@
+/* 
+ * hashlib++ - a simple hash library for C++
+ * 
+ * Copyright (c) 2007-2010 Benjamin Gr�delbach
+ * 
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 
+ * 	1)     Redistributions of source code must retain the above copyright
+ * 	       notice, this list of conditions and the following disclaimer.
+ * 
+ * 	2)     Redistributions in binary form must reproduce the above copyright
+ * 	       notice, this list of conditions and the following disclaimer in
+ * 	       the documentation and/or other materials provided with the
+ * 	       distribution.
+ * 	     
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+//----------------------------------------------------------------------	
+
+/*
+ * The hashlib++ MD5 implementation is derivative from the sourcecode
+ * published in RFC 1321 
+ * 
+ * Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
+ * rights reserved.
+ * 
+ * License to copy and use this software is granted provided that it
+ * is identified as the "RSA Data Security, Inc. MD5 Message-Digest
+ * Algorithm" in all material mentioning or referencing this software
+ * or this function.
+ * 
+ * License is also granted to make and use derivative works provided
+ * that such works are identified as "derived from the RSA Data
+ * Security, Inc. MD5 Message-Digest Algorithm" in all material
+ * mentioning or referencing the derived work.
+ * 
+ * RSA Data Security, Inc. makes no representations concerning either
+ * the merchantability of this software or the suitability of this
+ * software for any particular purpose. It is provided "as is"
+ * without express or implied warranty of any kind.
+ * 
+ * These notices must be retained in any copies of any part of this
+ * documentation and/or software.
+ */
+
+//----------------------------------------------------------------------	
+
+/**
+ *  @file 	hl_md5.h
+ *  @brief	This file contains the declaration of the MD5 class
+ *  @date 	Mo 17 Sep 2007
+ */  
+
+//---------------------------------------------------------------------- 
+//include protection
+#ifndef MD5_H
+#define MD5_H
+
+//---------------------------------------------------------------------- 
+//STL includes
+#include <string>
+
+// included for import export macros
+#include "sitkCommon.h"
+
+//---------------------------------------------------------------------- 
+//hl includes
+// #include "hl_types.h"
+typedef unsigned char hl_uint8;
+typedef unsigned short int hl_uint16;
+typedef unsigned int hl_uint32;
+
+//---------------------------------------------------------------------- 
+//typedefs
+typedef hl_uint8 *POINTER;
+
+/**
+ * @brief this struct represents a MD5-hash context.
+ */
+typedef struct 
+{
+	/** state (ABCD) */
+	unsigned long int state[4];   	      
+
+	/** number of bits, modulo 2^64 (lsb first) */
+	unsigned long int count[2];
+
+	/** input buffer */
+	unsigned char buffer[64];
+} HL_MD5_CTX;
+
+//---------------------------------------------------------------------- 
+
+/**
+ *  @brief 	This class represents the implementation of 
+ *   		the md5 message digest algorithm.
+ *
+ *   		Basically the class provides three public member-functions
+ *   		to create a hash:  MD5Init(), MD5Update() and MD5Final().
+ *   		If you want to create a hash based on a string or file quickly
+ *   		you should use the md5wrapper class instead of MD5.
+ */  
+class SITKCommon_EXPORT MD5
+{
+
+	private:
+
+		/**
+		 *  @brief 	Basic transformation. Transforms state based on block.
+		 *  @param	state	state to transform
+		 *  @param	block	block to transform
+		 */  
+		void MD5Transform (unsigned long int state[4], unsigned char block[64]);
+
+		/**
+		 *  @brief 	Encodes input data
+		 *  @param	output Encoded data as OUT parameter
+		 *  @param	input Input data
+		 *  @param	len The length of the input assuming it is a
+		 *  		multiple of 4
+		 */  
+		void Encode (unsigned char* output,
+			     unsigned long int *input,
+			     unsigned int len);
+
+		/**
+		 *  @brief 	Decodes input data into output
+		 *  @param	output Decoded data as OUT parameter
+		 *  @param	input Input data
+		 *  @param	len The length of the input assuming it is a
+		 *  		multiple of 4
+		 */  
+		void Decode (unsigned long int *output,
+			     unsigned char *input,
+			     unsigned int len);
+
+		/**
+		 *  @brief 	internal memory management
+		 *  @param	output OUT parameter where POINTER is an unsigned
+		 *  		char*
+		 *  @param	input Data to copy where POINTER is a unsigned char*
+		 *  @param	len The length of the data
+		 */  
+		void MD5_memcpy (POINTER output, POINTER input, unsigned int len);
+
+		/**
+		 *  @brief 	internal memory management
+		 *  @param 	output OUT parameter where POINTER is an unsigned
+		 *  		char*
+		 *  @param	value Value to fill the memory with
+		 *  @param	len The length of the data
+		 *  
+		 */  
+		void MD5_memset (POINTER output, int value, unsigned int len);
+
+	public:
+	
+		/**
+		 *  @brief 	Initialization begins an operation,
+		 *  		writing a new context
+		 *  @param 	context	The HL_MD5_CTX context to initialize
+		 */  
+		void MD5Init (HL_MD5_CTX* context);
+
+		/**
+		 *  @brief 	Block update operation. Continues an md5
+		 *  		message-digest operation, processing another
+		 *  		message block, and updating the context.
+		 *  @param	context The HL_MD5_CTX context to update
+		 *  @param	input The data to write into the context
+		 *  @param	inputLen The length of the input data
+		 */  
+		void MD5Update (HL_MD5_CTX* context,
+			       	unsigned char *input,
+			       	unsigned int inputLen);
+
+		/**
+		 *  @brief 	Finalization ends the md5 message-digest 
+		 *  		operation, writing the the message digest and
+		 *  		zeroizing the context.
+		 *  @param	digest This is an OUT parameter which contains
+		 *  		the created hash after the method returns
+		 *  @param	context The context to finalize
+		 */  
+		void MD5Final (unsigned char digest[16], HL_MD5_CTX* context);
+
+		/**
+		 *  @brief 	default constructor
+		 */  
+		MD5(){};
+};
+
+//---------------------------------------------------------------------- 
+//End of include protection
+#endif
+
+//---------------------------------------------------------------------- 
+//EOF
diff --git a/Code/Common/include/Ancillary/hl_sha1.cxx b/Code/Common/include/Ancillary/hl_sha1.cxx
new file mode 100644
index 0000000..e58828b
--- /dev/null
+++ b/Code/Common/include/Ancillary/hl_sha1.cxx
@@ -0,0 +1,388 @@
+/* 
+ * hashlib++ - a simple hash library for C++
+ * 
+ * Copyright (c) 2007-2010 Benjamin Gr�delbach
+ * 
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 
+ * 	1)     Redistributions of source code must retain the above copyright
+ * 	       notice, this list of conditions and the following disclaimer.
+ * 
+ * 	2)     Redistributions in binary form must reproduce the above copyright
+ * 	       notice, this list of conditions and the following disclaimer in
+ * 	       the documentation and/or other materials provided with the
+ * 	       distribution.
+ * 	     
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+//---------------------------------------------------------------------- 
+
+/*
+ * The hashlib++ SHA1 implementation is derivative from the sourcecode
+ * published in RFC 3174  
+ *
+ * Copyright (C) The Internet Society (2001).  All Rights Reserved.
+ * 
+ * This document and translations of it may be copied and furnished to
+ * others, and derivative works that comment on or otherwise explain it
+ * or assist in its implementation may be prepared, copied, published
+ * and distributed, in whole or in part, without restriction of any
+ * kind, provided that the above copyright notice and this paragraph are
+ * included on all such copies and derivative works.  However, this
+ * document itself may not be modified in any way, such as by removing
+ * the copyright notice or references to the Internet Society or other
+ * Internet organizations, except as needed for the purpose of
+ * developing Internet standards in which case the procedures for
+ * copyrights defined in the Internet Standards process must be
+ * followed, or as required to translate it into languages other than
+ * English.
+ * 
+ * The limited permissions granted above are perpetual and will not be
+ * revoked by the Internet Society or its successors or assigns.
+ * 
+ * This document and the information contained herein is provided on an
+ * "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
+ * TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
+ * BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
+ * HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+//---------------------------------------------------------------------- 
+
+/**
+ *  @file 	hl_sha1.cpp
+ *  @brief	This file contains the implementation of the SHA1 class
+ *  @date 	Mo 17 Sep 2007
+ */  
+
+//---------------------------------------------------------------------- 
+//hashlib++ includes
+#include "hl_sha1.h"
+
+
+//---------------------------------------------------------------------- 
+//defines
+
+/*
+ *  Define the SHA1 circular left shift macro
+ */
+#define SHA1CircularShift(bits,word) \
+                (((word) << (bits)) | ((word) >> (32-(bits))))
+
+//----------------------------------------------------------------------
+//private member-functions
+
+/**
+ *  @brief 	Internal method to padd the message
+ *
+ *      	According to the standard, the message must
+ *      	be padded to an even 512 bits. The first 
+ *      	padding bit must be a '1'.  The last 64	bits 
+ *      	represent the length of the original message.
+ *      	All bits in between should be 0.
+ *      	This function will pad the message according 
+ *      	to those rules by filling the Message_Block array
+ *      	accordingly.  It will also call the 
+ *      	ProcessMessageBlock function provided appropriately.
+ *      	When it returns, it can be assumed that the message
+ *      	digest has been computed.
+ *
+ *  @param	context The context to padd
+ *
+ */  
+void SHA1::SHA1PadMessage(HL_SHA1_CTX *context)
+{
+	/*
+	 *  Check to see if the current message block is too small to hold
+	 *  the initial padding bits and length.  If so, we will pad the
+	 *  block, process it, and then continue padding into a second
+	 *  block.
+	 */
+	if (context->Message_Block_Index > 55)
+	{
+		context->Message_Block[context->Message_Block_Index++] = 0x80;
+		while(context->Message_Block_Index < 64)
+		{
+			context->Message_Block[context->Message_Block_Index++] = 0;
+		}
+
+		SHA1ProcessMessageBlock(context);
+
+		while(context->Message_Block_Index < 56)
+		{
+			context->Message_Block[context->Message_Block_Index++] = 0;
+		}
+	}
+	else
+	{
+		context->Message_Block[context->Message_Block_Index++] = 0x80;
+		while(context->Message_Block_Index < 56)
+		{
+			context->Message_Block[context->Message_Block_Index++] = 0;
+		}
+	}
+
+	/*
+	 *  Store the message length as the last 8 octets
+	 */
+	context->Message_Block[56] = context->Length_High >> 24;
+	context->Message_Block[57] = context->Length_High >> 16;
+	context->Message_Block[58] = context->Length_High >> 8;
+	context->Message_Block[59] = context->Length_High;
+	context->Message_Block[60] = context->Length_Low >> 24;
+	context->Message_Block[61] = context->Length_Low >> 16;
+	context->Message_Block[62] = context->Length_Low >> 8;
+	context->Message_Block[63] = context->Length_Low;
+
+	SHA1ProcessMessageBlock(context);
+}
+
+/**
+ *  @brief      This member-function will process the next 512 bits of the
+ *  		message stored in the Message_Block array.
+ *
+ *      	Many of the variable names in this code, especially the
+ *      	single character names, were used because those were the
+ *      	names used in the publication.
+ *
+ *  @param	context The context to process
+ */  
+void SHA1::SHA1ProcessMessageBlock(HL_SHA1_CTX *context)
+{
+	const hl_uint32 K[] =    {       /* Constants defined in SHA-1   */
+		0x5A827999,
+		0x6ED9EBA1,
+		0x8F1BBCDC,
+		0xCA62C1D6
+	};
+	int           t;                 /* Loop counter                */
+	hl_uint32      temp;              /* Temporary word value        */
+	hl_uint32      W[80];             /* Word sequence               */
+	hl_uint32      A, B, C, D, E;     /* Word buffers                */
+
+	/*
+	 *  Initialize the first 16 words in the array W
+	 */
+	for(t = 0; t < 16; t++)
+	{
+		W[t] = context->Message_Block[t * 4] << 24;
+		W[t] |= context->Message_Block[t * 4 + 1] << 16;
+		W[t] |= context->Message_Block[t * 4 + 2] << 8;
+		W[t] |= context->Message_Block[t * 4 + 3];
+	}
+
+	for(t = 16; t < 80; t++)
+	{
+		W[t] = SHA1CircularShift(1,W[t-3] ^ W[t-8] ^ W[t-14] ^ W[t-16]);
+	}
+
+	A = context->Intermediate_Hash[0];
+	B = context->Intermediate_Hash[1];
+	C = context->Intermediate_Hash[2];
+	D = context->Intermediate_Hash[3];
+	E = context->Intermediate_Hash[4];
+
+	for(t = 0; t < 20; t++)
+	{
+		temp =  SHA1CircularShift(5,A) +
+			((B & C) | ((~B) & D)) + E + W[t] + K[0];
+		E = D;
+		D = C;
+		C = SHA1CircularShift(30,B);
+		B = A;
+		A = temp;
+	}
+
+	for(t = 20; t < 40; t++)
+	{
+		temp = SHA1CircularShift(5,A) + (B ^ C ^ D) + E + W[t] + K[1];
+		E = D;
+		D = C;
+		C = SHA1CircularShift(30,B);
+		B = A;
+		A = temp;
+	}
+
+	for(t = 40; t < 60; t++)
+	{
+		temp = SHA1CircularShift(5,A) +
+			((B & C) | (B & D) | (C & D)) + E + W[t] + K[2];
+		E = D;
+		D = C;
+		C = SHA1CircularShift(30,B);
+		B = A;
+		A = temp;
+	}
+
+	for(t = 60; t < 80; t++)
+	{
+		temp = SHA1CircularShift(5,A) + (B ^ C ^ D) + E + W[t] + K[3];
+		E = D;
+		D = C;
+		C = SHA1CircularShift(30,B);
+		B = A;
+		A = temp;
+	}
+
+	context->Intermediate_Hash[0] += A;
+	context->Intermediate_Hash[1] += B;
+	context->Intermediate_Hash[2] += C;
+	context->Intermediate_Hash[3] += D;
+	context->Intermediate_Hash[4] += E;
+
+	context->Message_Block_Index = 0;
+}
+
+//----------------------------------------------------------------------
+//public member-functions
+
+/**
+ *  @brief 	Resets the sha1 context and starts a new
+ *  		hashprocess
+ *  @param	context The context to reset
+ *  @return	0 on succes an error number otherwise
+ */  
+int SHA1::SHA1Reset(HL_SHA1_CTX *context)
+{
+	if (!context)
+	{
+		return shaNull;
+	}
+
+	context->Length_Low             = 0;
+	context->Length_High            = 0;
+	context->Message_Block_Index    = 0;
+
+	context->Intermediate_Hash[0]   = 0x67452301;
+	context->Intermediate_Hash[1]   = 0xEFCDAB89;
+	context->Intermediate_Hash[2]   = 0x98BADCFE;
+	context->Intermediate_Hash[3]   = 0x10325476;
+	context->Intermediate_Hash[4]   = 0xC3D2E1F0;
+
+	context->Computed   = 0;
+	context->Corrupted  = 0;
+
+	return shaSuccess;
+}
+
+/**
+ *  @brief 	Data input.
+ *
+ *  		This memberfunction add data to the specified
+ *  		context.
+ *
+ *  @param	context The context to add data to
+ *  @param	message_array The data to add
+ *  @param	length The length of the data to add
+ */  
+int SHA1::SHA1Input(    HL_SHA1_CTX    *context,
+			const hl_uint8  *message_array,
+			unsigned int   length)
+{
+	if (!length)
+	{
+		return shaSuccess;
+	}
+
+	if (!context || !message_array)
+	{
+		return shaNull;
+	}
+
+	if (context->Computed)
+	{
+		context->Corrupted = shaStateError;
+		return shaStateError;
+	}
+
+	if (context->Corrupted)
+	{
+		return context->Corrupted;
+	}
+	while(length-- && !context->Corrupted)
+	{
+		context->Message_Block[context->Message_Block_Index++] =
+			(*message_array & 0xFF);
+
+		context->Length_Low += 8;
+		if (context->Length_Low == 0)
+		{
+			context->Length_High++;
+			if (context->Length_High == 0)
+			{
+				/* Message is too long */
+				context->Corrupted = 1;
+			}
+		}
+
+		if (context->Message_Block_Index == 64)
+		{
+			SHA1ProcessMessageBlock(context);
+		}
+
+		message_array++;
+	}
+
+	return shaSuccess;
+}
+
+/**
+ *  @brief 	This ends the sha operation, zeroizing the context
+ *  		and returning the computed hash.
+ *
+ *  @param	context The context to get the hash from
+ *  @param	Message_Digest This is an OUT parameter which
+ *  		contains the hash after the menberfunction returns
+ *  @return	0 on succes, an error-code otherwise
+ */  
+int SHA1::SHA1Result( HL_SHA1_CTX *context,
+		      hl_uint8 	  Message_Digest[SHA1HashSize])
+{
+	int i;
+
+	if (!context || !Message_Digest)
+	{
+		return shaNull;
+	}
+
+	if (context->Corrupted)
+	{
+		return context->Corrupted;
+	}
+
+	if (!context->Computed)
+	{
+		SHA1PadMessage(context);
+		for(i=0; i<64; ++i)
+		{
+			/* message may be sensitive, clear it out */
+			context->Message_Block[i] = 0;
+		}
+		context->Length_Low = 0;    /* and clear length */
+		context->Length_High = 0;
+		context->Computed = 1;
+	}
+
+	for(i = 0; i < SHA1HashSize; ++i)
+	{
+		Message_Digest[i] = context->Intermediate_Hash[i>>2]
+			>> 8 * ( 3 - ( i & 0x03 ) );
+	}
+
+	return shaSuccess;
+}
+
+//----------------------------------------------------------------------
+//EOF
diff --git a/Code/Common/include/Ancillary/hl_sha1.h b/Code/Common/include/Ancillary/hl_sha1.h
new file mode 100644
index 0000000..65540fb
--- /dev/null
+++ b/Code/Common/include/Ancillary/hl_sha1.h
@@ -0,0 +1,225 @@
+/* 
+ * hashlib++ - a simple hash library for C++
+ * 
+ * Copyright (c) 2007-2010 Benjamin Gr�delbach
+ * 
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 
+ * 	1)     Redistributions of source code must retain the above copyright
+ * 	       notice, this list of conditions and the following disclaimer.
+ * 
+ * 	2)     Redistributions in binary form must reproduce the above copyright
+ * 	       notice, this list of conditions and the following disclaimer in
+ * 	       the documentation and/or other materials provided with the
+ * 	       distribution.
+ * 	     
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+//---------------------------------------------------------------------- 
+
+/*
+ * The hashlib++ SHA1 implementation is derivative from the sourcecode
+ * published in RFC 3174  
+ *
+ * Copyright (C) The Internet Society (2001).  All Rights Reserved.
+ * 
+ * This document and translations of it may be copied and furnished to
+ * others, and derivative works that comment on or otherwise explain it
+ * or assist in its implementation may be prepared, copied, published
+ * and distributed, in whole or in part, without restriction of any
+ * kind, provided that the above copyright notice and this paragraph are
+ * included on all such copies and derivative works.  However, this
+ * document itself may not be modified in any way, such as by removing
+ * the copyright notice or references to the Internet Society or other
+ * Internet organizations, except as needed for the purpose of
+ * developing Internet standards in which case the procedures for
+ * copyrights defined in the Internet Standards process must be
+ * followed, or as required to translate it into languages other than
+ * English.
+ * 
+ * The limited permissions granted above are perpetual and will not be
+ * revoked by the Internet Society or its successors or assigns.
+ * 
+ * This document and the information contained herein is provided on an
+ * "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
+ * TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
+ * BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
+ * HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+//---------------------------------------------------------------------- 
+
+/**
+ *  @file 	hl_sha1.h
+ *  @brief	This file contains the declaration of the SHA1 class
+ *  @date 	Mo 17 Sep 2007
+ */  
+
+//---------------------------------------------------------------------- 
+//include protection
+#ifndef SHA1_H
+#define SHA1_H
+
+
+// included for import export macros
+#include "sitkCommon.h"
+
+//---------------------------------------------------------------------- 
+//hl includes
+// #include "hl_types.h"
+typedef unsigned char hl_uint8;
+typedef unsigned short int hl_uint16;
+typedef unsigned int hl_uint32;
+
+//---------------------------------------------------------------------- 
+//enums
+
+#ifndef _SHA_enum_
+#define _SHA_enum_
+enum
+{
+    shaSuccess = 0,
+    shaNull,            /* Null pointer parameter */
+    shaInputTooLong,    /* input data too long */
+    shaStateError       /* called Input after Result */
+};
+#endif
+
+//---------------------------------------------------------------------- 
+//defines
+#define SHA1HashSize 20
+
+//---------------------------------------------------------------------- 
+//structs
+
+/**
+ * @brief this struct represents a SHA1-hash context.
+ */
+typedef struct HL_SHA1_CTX
+{
+	/** Message Digest */
+	hl_uint32 Intermediate_Hash[SHA1HashSize/4];
+
+	/** Message length in bits */
+	hl_uint32 Length_Low;            
+
+	/** Message length in bits */
+	hl_uint32 Length_High;
+
+	/** Index into message block array */
+	hl_uint16 Message_Block_Index;
+
+	/** 512-bit message blocks */
+	hl_uint8 Message_Block[64];      
+
+	/** Is the digest computed? */
+	int Computed;
+
+	/** Is the message digest corrupted? */
+	int Corrupted;
+
+} HL_SHA1_CTX;
+
+//---------------------------------------------------------------------- 
+//class definition
+
+/**
+ *  @brief 	This class represents the implementation of 
+ *   		the sha1 algorithm.
+ *
+ *   		Basically the class provides three public member-functions
+ *   		to create a hash:  SHA1Reset(), SHA1Input() and SHA1Result().
+ *   		If you want to create a hash based on a string or file quickly
+ *   		you should use the sha1wrapper class instead of SHA1.
+ */  
+class SITKCommon_EXPORT SHA1
+{
+	private:
+
+			/**
+			 *  @brief 	Internal method to padd the message
+			 *
+			 *      	According to the standard, the message must
+			 *      	be padded to an even 512 bits. The first 
+			 *      	padding bit must be a '1'.  The last 64	bits 
+			 *      	represent the length of the original message.
+			 *      	All bits in between should be 0.
+			 *      	This function will pad the message according 
+			 *      	to those rules by filling the Message_Block array
+			 *      	accordingly.  It will also call the 
+			 *      	ProcessMessageBlock function provided appropriately.
+			 *      	When it returns, it can be assumed that the message
+			 *      	digest has been computed.
+			 *
+			 *  @param	context The context to padd
+			 *
+			 */  
+			void SHA1PadMessage(HL_SHA1_CTX *context);
+
+			/**
+			 *  @brief      This member-function will process the next 512 bits of the
+			 *  		message stored in the Message_Block array.
+			 *
+			 *      	Many of the variable names in this code, especially the
+			 *      	single character names, were used because those were the
+			 *      	names used in the publication.
+			 *
+			 *  @param	context The context to process
+			 */  
+			void SHA1ProcessMessageBlock(HL_SHA1_CTX *context);
+
+	public:
+
+		/**
+		 *  @brief 	Resets the sha1 context and starts a new
+		 *  		hashprocess
+		 *  @param	context The context to reset
+		 *  @return	0 on succes an error number otherwise
+		 */  
+		int SHA1Reset(  HL_SHA1_CTX *context);
+
+		/**
+		 *  @brief 	Data input.
+		 *
+		 *  		This memberfunction add data to the specified
+		 *  		context.
+		 *
+		 *  @param	context The context to add data to
+		 *  @param	message_array The data to add
+		 *  @param	length The length of the data to add
+		 */  
+		int SHA1Input(  HL_SHA1_CTX   *context,
+				const hl_uint8 *message_array,
+				unsigned int  length);
+
+		/**
+		 *  @brief 	This ends the sha operation, zeroizing the context
+		 *  		and returning the computed hash.
+		 *
+		 *  @param	context The context to get the hash from
+		 *  @param	Message_Digest This is an OUT parameter which
+		 *  		contains the hash after the menberfunction returns
+		 *  @return	0 on succes, an error-code otherwise
+		 */  
+		int SHA1Result( HL_SHA1_CTX *context,
+				hl_uint8     Message_Digest[SHA1HashSize]);
+};
+
+//----------------------------------------------------------------------
+//end of include protection
+#endif
+
+//----------------------------------------------------------------------
+//EOF
diff --git a/Code/Common/include/SimpleITK.h b/Code/Common/include/SimpleITK.h
new file mode 100644
index 0000000..8c092d5
--- /dev/null
+++ b/Code/Common/include/SimpleITK.h
@@ -0,0 +1,90 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef __SimpleITK_h
+#define __SimpleITK_h
+
+/** \file SimpleITK.h
+ *
+ * Image C++ operators are not include by default in this file is an
+ * intentional  design  choice. The addition of these convenience
+ * mathematical operators in C++ can be a source of confusion.
+ *
+ * To enable Image C++ operators explicitly include
+ * sitkImageOperators.h header file.
+ */
+
+#include <stdint.h>
+
+
+
+// Utility classes
+#include "sitkMacro.h"
+#include "sitkDetail.h"
+#include "sitkVersion.h"
+#include "sitkImage.h"
+#include "sitkTransform.h"
+#include "sitkBSplineTransform.h"
+#include "sitkDisplacementFieldTransform.h"
+#include "sitkAffineTransform.h"
+#include "sitkEuler2DTransform.h"
+#include "sitkEuler3DTransform.h"
+#include "sitkScaleTransform.h"
+#include "sitkScaleSkewVersor3DTransform.h"
+#include "sitkScaleVersor3DTransform.h"
+#include "sitkSimilarity2DTransform.h"
+#include "sitkSimilarity3DTransform.h"
+#include "sitkTranslationTransform.h"
+#include "sitkVersorTransform.h"
+#include "sitkVersorRigid3DTransform.h"
+#include "sitkShow.h"
+
+#include "sitkInterpolator.h"
+#include "sitkEvent.h"
+#include "sitkRandomSeed.h"
+
+#include "sitkProcessObject.h"
+#include "sitkImageFilter.h"
+#include "sitkCommand.h"
+#include "sitkFunctionCommand.h"
+
+// IO classes
+#include "sitkImageFileReader.h"
+#include "sitkImageSeriesReader.h"
+#include "sitkImageFileWriter.h"
+#include "sitkImageSeriesWriter.h"
+#include "sitkImportImageFilter.h"
+
+
+#include "sitkHashImageFilter.h"
+#include "sitkJoinSeriesImageFilter.h"
+#include "sitkComposeImageFilter.h"
+#include "sitkPixelIDTypeLists.h"
+
+#include "sitkBSplineTransformInitializerFilter.h"
+#include "sitkCenteredTransformInitializerFilter.h"
+#include "sitkCenteredVersorTransformInitializerFilter.h"
+#include "sitkLandmarkBasedTransformInitializerFilter.h"
+#include "sitkCastImageFilter.h"
+
+#include "sitkAdditionalProcedures.h"
+
+#include "sitkImageRegistrationMethod.h"
+
+// These headers are auto-generated
+#include "SimpleITKBasicFiltersGeneratedHeaders.h"
+#endif
diff --git a/Code/Common/include/nsstd/auto_ptr.h b/Code/Common/include/nsstd/auto_ptr.h
new file mode 100644
index 0000000..25bec3c
--- /dev/null
+++ b/Code/Common/include/nsstd/auto_ptr.h
@@ -0,0 +1,41 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitk_nsstd_auto_ptr_h
+#define sitk_nsstd_auto_ptr_h
+
+#include "sitkConfigure.h"
+
+#include <memory>
+
+namespace itk
+{
+namespace simple
+{
+namespace nsstd
+{
+#if defined SITK_HAS_CXX11_UNIQUE_PTR && defined SITK_HAS_CXX11_ALIAS_TEMPLATE
+template <typename T>
+using auto_ptr = std::unique_ptr<T>;
+#else
+using std::auto_ptr;
+#endif
+}
+}
+}
+
+#endif // sitk_nsstd_auto_ptr_h
diff --git a/Code/Common/include/nsstd/functional.h b/Code/Common/include/nsstd/functional.h
new file mode 100644
index 0000000..08887e1
--- /dev/null
+++ b/Code/Common/include/nsstd/functional.h
@@ -0,0 +1,52 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitk_nsstd_functional_h
+#define sitk_nsstd_functional_h
+
+#include "sitkConfigure.h"
+
+#if !defined SITK_HAS_TR1_FUNCTIONAL && !defined SITK_HAS_CXX11_FUNCTIONAL
+#error "No system (tr1/c++11) functional header available!"
+#endif
+
+#if defined SITK_HAS_CXX11_FUNCTIONAL || !defined SITK_HAS_TR1_SUB_INCLUDE
+#include <functional>
+#else
+#include <tr1/functional>
+#endif
+
+namespace itk
+{
+namespace simple
+{
+namespace nsstd
+{
+#if defined SITK_HAS_TR1_FUNCTIONAL && !defined SITK_HAS_CXX11_FUNCTIONAL
+using std::tr1::function;
+using std::tr1::bind;
+namespace placeholders =  std::tr1::placeholders;
+#else
+using std::function;
+using std::bind;
+namespace placeholders =  std::placeholders;
+#endif
+}
+}
+}
+
+#endif // sitk_nsstd_functional_h
diff --git a/Code/Common/include/nsstd/type_traits.h b/Code/Common/include/nsstd/type_traits.h
new file mode 100644
index 0000000..b8907b5
--- /dev/null
+++ b/Code/Common/include/nsstd/type_traits.h
@@ -0,0 +1,55 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitk_nsstd_type_traits_h
+#define sitk_nsstd_type_traits_h
+
+#include "sitkConfigure.h"
+
+#if !defined SITK_HAS_TR1_TYPE_TRAITS && !defined SITK_HAS_CXX11_TYPE_TRAITS
+#error "No system (tr1/c++11) type_traits header available!"
+#endif
+
+#if defined SITK_HAS_CXX11_TYPE_TRAITS || !defined SITK_HAS_TR1_SUB_INCLUDE
+#include <type_traits>
+#else
+#include <tr1/type_traits>
+#endif
+
+
+namespace itk
+{
+namespace simple
+{
+namespace nsstd
+{
+#if defined SITK_HAS_TR1_TYPE_TRAITS && !defined SITK_HAS_CXX11_TYPE_TRAITS
+using std::tr1::is_same;
+using std::tr1::true_type;
+using std::tr1::false_type;
+using std::tr1::integral_constant;
+#else
+using std::is_same;
+using std::true_type;
+using std::false_type;
+using std::integral_constant;
+#endif
+}
+}
+}
+
+#endif // sitk_nsstd_type_traits_h
diff --git a/Code/Common/include/nsstd/unordered_map.h b/Code/Common/include/nsstd/unordered_map.h
new file mode 100644
index 0000000..e449312
--- /dev/null
+++ b/Code/Common/include/nsstd/unordered_map.h
@@ -0,0 +1,50 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitk_nsstd_unordered_map_h
+#define sitk_nsstd_unordered_map_h
+
+#include "sitkConfigure.h"
+
+#if !defined SITK_HAS_TR1_UNORDERED_MAP && !defined SITK_HAS_CXX11_UNORDERED_MAP
+#error "No system (tr1/c++11) unordered_map header available!"
+#endif
+
+
+#if defined SITK_HAS_CXX11_UNORDERED_MAP && !defined SITK_HAS_TR1_SUB_INCLUDE
+#include <unordered_map>
+#elif
+#include <tr1/unordered_map>
+#endif
+
+namespace itk
+{
+namespace simple
+{
+namespace nsstd
+{
+#if defined SITK_HAS_TR1_UNORDERED_MAP && !defined SITK_HAS_CXX11_UNORDERED_MAP
+using std::tr1::unordered_map;
+#else
+using std::unordered_map;
+#endif
+}
+}
+}
+
+
+#endif // sitk_nsstd_unordered_map_h
diff --git a/Code/Common/include/sitkAffineTransform.h b/Code/Common/include/sitkAffineTransform.h
new file mode 100644
index 0000000..4943bb6
--- /dev/null
+++ b/Code/Common/include/sitkAffineTransform.h
@@ -0,0 +1,124 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkAffineTransform_h
+#define sitkAffineTransform_h
+
+#include "sitkCommon.h"
+#include "sitkTransform.h"
+
+namespace itk
+{
+namespace simple
+{
+
+/** \brief An affine transformation about a fixed center with
+ * translation for a 2D or 3D coordinate.
+ *
+ * \sa itk::AffineTransform
+ */
+class SITKCommon_EXPORT AffineTransform
+  : public Transform
+{
+public:
+  typedef AffineTransform Self;
+  typedef Transform Superclass;
+  explicit AffineTransform(unsigned int dimensions);
+
+  AffineTransform( const AffineTransform & );
+
+  explicit AffineTransform( const Transform & );
+
+  AffineTransform( const std::vector< double> &matrix,
+                   const std::vector< double> &translation,
+                   const std::vector< double> &fixedCenter=std::vector< double >(3, 0.0));
+
+
+  AffineTransform &operator=( const AffineTransform & );
+
+  /** Name of this class */
+  std::string GetName() const { return std::string ("AffineTransform"); }
+
+  /** parameters */
+  std::vector<double> GetTranslation( ) const;
+  SITK_RETURN_SELF_TYPE_HEADER SetTranslation( const std::vector<double>& translation);
+
+  SITK_RETURN_SELF_TYPE_HEADER SetMatrix( const std::vector<double> &matrix);
+  std::vector<double> GetMatrix() const;
+
+  /** fixed parameter */
+  SITK_RETURN_SELF_TYPE_HEADER SetCenter(const std::vector<double> &params);
+  std::vector<double> GetCenter( ) const;
+
+  /** additional methods */
+  SITK_RETURN_SELF_TYPE_HEADER Scale(const std::vector<double> & factor, bool pre=false);
+  SITK_RETURN_SELF_TYPE_HEADER Scale(double factor, bool pre=false);
+
+  SITK_RETURN_SELF_TYPE_HEADER Shear(int axis1, int axis2, double coef, bool pre=false);
+
+  SITK_RETURN_SELF_TYPE_HEADER Translate(const std::vector<double> &offset, bool pre=false);
+
+  SITK_RETURN_SELF_TYPE_HEADER Rotate(int axis1, int axis2, double angle, bool pre=false);
+
+protected:
+
+  virtual void SetPimpleTransform( PimpleTransformBase *pimpleTransform );
+
+private:
+
+  using Superclass::AddTransform;
+
+  struct MyVisitor
+  {
+    itk::TransformBase *transform;
+    AffineTransform *that;
+    template< typename TransformType >
+    void operator() ( void ) const
+      {
+        TransformType *t = dynamic_cast<TransformType*>(transform);
+        if (t && (typeid(*t)==typeid(TransformType)))
+          {
+          that->InternalInitialization<TransformType>(t);
+          }
+      }
+  };
+
+  void InternalInitialization(itk::TransformBase *transform);
+
+  template <typename TransformType>
+    void InternalInitialization(TransformType *transform);
+
+
+  nsstd::function<void(const std::vector<double>&)> m_pfSetCenter;
+  nsstd::function<std::vector<double>()> m_pfGetCenter;
+  nsstd::function<void(const std::vector<double>&)> m_pfSetMatrix;
+  nsstd::function<std::vector<double>()> m_pfGetMatrix;
+  nsstd::function<void(const std::vector<double>&)> m_pfSetTranslation;
+  nsstd::function<std::vector<double>()> m_pfGetTranslation;
+
+  nsstd::function<void(const std::vector<double> &, bool)> m_pfScale1;
+  nsstd::function<void(double, bool)> m_pfScale2;
+  nsstd::function<void(int, int, double, bool)> m_pfShear;
+  nsstd::function<void(const std::vector<double> &, bool)> m_pfTranslate;
+  nsstd::function<void(int, int, double, bool)> m_pfRotate;
+
+};
+
+}
+}
+
+#endif // sitkAffineTransform_h
diff --git a/Code/Common/include/sitkBSplineTransform.h b/Code/Common/include/sitkBSplineTransform.h
new file mode 100644
index 0000000..3598c42
--- /dev/null
+++ b/Code/Common/include/sitkBSplineTransform.h
@@ -0,0 +1,127 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkBSplineTransform_h
+#define sitkBSplineTransform_h
+
+#include "sitkCommon.h"
+#include "sitkTransform.h"
+
+namespace itk
+{
+namespace simple
+{
+
+/** \brief A deformable transform over a bounded spatial domain using a BSpline
+ * representation for a 2D or 3D coordinate space.
+ *
+ * \sa itk::BSplineTransform
+ */
+class SITKCommon_EXPORT BSplineTransform
+  : public Transform
+{
+public:
+  typedef BSplineTransform Self;
+  typedef Transform Superclass;
+
+  explicit BSplineTransform(unsigned int dimensions, unsigned int order=3);
+
+  BSplineTransform( const BSplineTransform & );
+
+  explicit BSplineTransform( const Transform &);
+
+  BSplineTransform &operator=( const BSplineTransform & );
+
+  /** Name of this class */
+  std::string GetName() const { return std::string ("BSplineTransform"); }
+
+  /** parameters */
+
+  /** fixed parameter */
+  SITK_RETURN_SELF_TYPE_HEADER SetTransformDomainDirection(const std::vector<double> &);
+  std::vector<double>  GetTransformDomainDirection() const;
+  SITK_RETURN_SELF_TYPE_HEADER SetTransformDomainMeshSize(const std::vector<unsigned int>&);
+  std::vector<unsigned int> GetTransformDomainMeshSize() const;
+  SITK_RETURN_SELF_TYPE_HEADER SetTransformDomainOrigin(const std::vector<double>&);
+  std::vector<double> GetTransformDomainOrigin() const;
+  SITK_RETURN_SELF_TYPE_HEADER SetTransformDomainPhysicalDimensions(const std::vector<double> &);
+  std::vector<double> GetTransformDomainPhysicalDimensions() const;
+
+  /* additional methods */
+
+  /** \brief Get a vector of the coefficient images representing the BSpline
+   *
+   * A lazy shallow copy of the images from ITK are performed. If they
+   * are modified in SimpleITK a deep copy will occur. However, if
+   * the coefficients are modified in ITK, then no copy will occur and
+   * the images help by SimpleITK may change.
+   */
+  std::vector<Image> GetCoefficientImages () const;
+
+  unsigned int GetOrder() const;
+
+protected:
+
+  virtual void SetPimpleTransform( PimpleTransformBase *pimpleTransform );
+
+private:
+
+  using Superclass::AddTransform;
+
+  struct MyVisitor
+  {
+    itk::TransformBase *transform;
+    BSplineTransform *that;
+    template< typename TransformType >
+    void operator() ( void ) const
+      {
+        TransformType *t = dynamic_cast<TransformType*>(transform);
+        if (t && (typeid(*t)==typeid(TransformType)))
+          {
+          that->InternalInitialization<TransformType>(t);
+          }
+      }
+  };
+
+  void InternalInitialization(itk::TransformBase *transform);
+
+  template <typename TransformType>
+    void InternalInitialization(TransformType *transform);
+
+  static PimpleTransformBase *CreateBSplinePimpleTransform(unsigned int dimension, unsigned int order);
+
+  template <unsigned int ND>
+    static PimpleTransformBase *CreateBSplinePimpleTransform(unsigned int order);
+
+  nsstd::function<std::vector<double> ()> m_pfGetTransformDomainDirection;
+  nsstd::function<void (const std::vector<double> &)> m_pfSetTransformDomainDirection;
+  nsstd::function<std::vector<unsigned int> ()> m_pfGetTransformDomainMeshSize;
+  nsstd::function<void (const std::vector<unsigned int>&)> m_pfSetTransformDomainMeshSize;
+  nsstd::function<std::vector<double> ()> m_pfGetTransformDomainOrigin;
+  nsstd::function<void (const std::vector<double>&)> m_pfSetTransformDomainOrigin;
+  nsstd::function<std::vector<double> ()> m_pfGetTransformDomainPhysicalDimensions;
+  nsstd::function<void (const std::vector<double> &)> m_pfSetTransformDomainPhysicalDimensions;
+
+  nsstd::function<std::vector<Image> ()> m_pfGetCoefficientImages;
+  nsstd::function< unsigned int()> m_pfGetOrder;
+
+};
+
+}
+}
+
+#endif // sitkBSplineTransform_h
diff --git a/Code/Common/include/sitkCommand.h b/Code/Common/include/sitkCommand.h
new file mode 100644
index 0000000..e9b635c
--- /dev/null
+++ b/Code/Common/include/sitkCommand.h
@@ -0,0 +1,95 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkCommand_h
+#define sitkCommand_h
+
+
+#include "sitkCommon.h"
+#include "sitkNonCopyable.h"
+
+#include <set>
+
+namespace itk {
+namespace simple {
+
+class ProcessObject;
+
+/** \class Command
+ * \brief An implementation of the Command design pattern for callback.
+ *
+ * This class provides a callback mechanism for event that occur from
+ * the ProcessObject. These commands can be utilized to observe these
+ * events.
+ *
+ * The Command can be created on the stack, and will automatically
+ * unregistered it's self when destroyed.
+ *
+ * For more information see the page \ref CommandPage.
+ */
+class SITKCommon_EXPORT Command:
+    protected NonCopyable
+{
+public:
+
+  /** \brief Default Constructor */
+  Command();
+
+  /** Destructor. */
+  virtual ~Command(void);
+
+  /** Set/Get Command Name */
+  virtual std::string GetName() const { return this->m_Name; }
+  virtual void SetName(const std::string &name) { this->m_Name = name; }
+
+  /** The method that defines action to be taken by the command */
+  virtual void Execute(void);
+
+protected:
+
+  friend class itk::simple::ProcessObject;
+
+  #ifndef SWIG
+  // internal methods to maintain reference between ProcessObject and
+  // Command, so when either is destroyed, the other will be notified.
+  //
+  // Return value is the number of referenced process objects after
+  // operation.
+  virtual size_t AddProcessObject(itk::simple::ProcessObject *o);
+  virtual size_t RemoveProcessObject(const itk::simple::ProcessObject *o);
+
+  virtual void SetOwnedByProcessObjects(bool o) {this->m_OwnedByProcessObjects = o;}
+  virtual bool GetOwnedByProcessObjects() const {return this->m_OwnedByProcessObjects;}
+  virtual void OwnedByProcessObjectsOn() {this->SetOwnedByProcessObjects(true);}
+  virtual void OwnedByProcessObjectsOff() {this->SetOwnedByProcessObjects(false);}
+  #endif
+
+
+
+private:
+
+  // a set of objects who use us
+  std::set<itk::simple::ProcessObject*> m_ReferencedObjects;
+
+  bool m_OwnedByProcessObjects;
+  std::string m_Name;
+};
+
+} // end namespace simple
+} // end namespace itk
+
+#endif
diff --git a/Code/Common/include/sitkCommon.h b/Code/Common/include/sitkCommon.h
new file mode 100644
index 0000000..a59238d
--- /dev/null
+++ b/Code/Common/include/sitkCommon.h
@@ -0,0 +1,46 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkCommon_h
+#define sitkCommon_h
+
+#include "sitkMacro.h"
+
+#ifndef sitkMacro_h
+#error "sitkMacro.h must be included before sitkCommon.h"
+#endif
+
+#ifdef SITK_USE_EXPLICITITK
+#include "sitkExplicitITK.h"
+#endif
+
+
+#if defined( SITKDLL )
+  #ifdef SimpleITKCommon_EXPORTS
+    #define SITKCommon_EXPORT SITK_ABI_EXPORT
+  #else
+    #define SITKCommon_EXPORT SITK_ABI_IMPORT
+  #endif  /* SimpleITKCommon_EXPORTS */
+#else
+  // Don't hide symbols in the static SimpleITKCommon library in case
+  // -fvisibility=hidden is used
+  #define SITKCommon_EXPORT
+#endif
+
+#define SITKCommon_HIDDEN SITK_ABI_HIDDEN
+
+#endif // sitkCommon_h
diff --git a/Code/Common/include/sitkConditional.h b/Code/Common/include/sitkConditional.h
new file mode 100644
index 0000000..13efcf4
--- /dev/null
+++ b/Code/Common/include/sitkConditional.h
@@ -0,0 +1,66 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkConditional_h
+#define sitkConditional_h
+
+namespace itk
+{
+namespace simple
+{
+
+/* \brief An object for selection of a type at compile-time.
+ * *
+ * If VCode is true, then the member Type will be TIfTrue, otherwise
+ * the member typedef Type will be equivalent to TIfFalse.
+ *
+ */
+template <bool VCond, class TIfTrue, class TIfFalse> struct Conditional { typedef TIfTrue Type; };
+/** \cond SPECIALIZATION_IMPLEMENTATION */
+template<class TIfTrue, class TIfFalse>
+struct Conditional<false, TIfTrue, TIfFalse> { typedef TIfFalse Type; };
+
+/**\endcond*/
+
+/* \brief An object for selecting an integer value at compile-time.
+ *
+ *
+ * If VCode is true, then the member Value will be TIfTrue, otherwise
+ * the member Value  will be equivalent to TIfFalse.
+ *
+ * This class also contains a typedef for ValueType, which is an the
+ * selected integral constant as a type.
+ */
+template <bool VCond, int TIfTrue, int TIfFalse>
+struct ConditionalValue
+  : public itk::simple::Conditional<VCond,
+                                    nsstd::integral_constant<int, TIfTrue>,
+                                    nsstd::integral_constant<int, TIfFalse> >::Type
+{
+private:
+  typedef ConditionalValue Self;
+public:
+  typedef typename Self::value_type ValueType;
+  typedef typename Self::type       Type;
+
+  static const ValueType Value = Self::value;
+};
+
+}
+}
+
+#endif // sitkConditional_h
diff --git a/Code/Common/include/sitkDetail.h b/Code/Common/include/sitkDetail.h
new file mode 100644
index 0000000..e52d5ad
--- /dev/null
+++ b/Code/Common/include/sitkDetail.h
@@ -0,0 +1,105 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkDetail_h
+#define sitkDetail_h
+
+#include "sitkMemberFunctionFactoryBase.h"
+#include "Ancillary/FunctionTraits.h"
+
+namespace itk {
+namespace simple {
+
+// this namespace is internal classes not part of the external simple ITK interface
+namespace detail {
+
+
+template < class TMemberFunctionPointer >
+struct MemberFunctionAddressor
+{
+  typedef typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType ObjectType;
+
+  template< typename TImageType >
+  TMemberFunctionPointer operator() ( void ) const
+    {
+      return &ObjectType::template ExecuteInternal< TImageType >;
+    }
+};
+
+template < class TMemberFunctionPointer >
+struct DualExecuteInternalAddressor
+{
+  typedef typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType ObjectType;
+
+  template< typename TImageType1, typename TImageType2 >
+  TMemberFunctionPointer operator() ( void ) const
+    {
+      return &ObjectType::template DualExecuteInternal< TImageType1, TImageType2 >;
+    }
+};
+
+/** An addressor of ExecuteInternalCast to be utilized with
+ * registering member functions with the factory.
+ */
+template < class TMemberFunctionPointer >
+struct ExecuteInternalVectorImageAddressor
+{
+  typedef typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType ObjectType;
+
+  template< typename TImageType >
+  TMemberFunctionPointer operator() ( void ) const
+  {
+    return &ObjectType::template ExecuteInternalVectorImage< TImageType >;
+  }
+};
+
+
+/** An addressor of ExecuteInternalCast to be utilized with
+ * registering member functions with the factory.
+ */
+template < class TMemberFunctionPointer >
+struct DualExecuteInternalVectorAddressor
+{
+  typedef typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType ObjectType;
+
+  template< typename TImageType1, typename TImageType2 >
+  TMemberFunctionPointer operator() ( void ) const
+    {
+      return &ObjectType::template DualExecuteInternalVector< TImageType1, TImageType2 >;
+    }
+};
+
+/** An addressor of ExecuteInternal to be utilized with
+ * registering member functions with the factory.
+ */
+template < class TMemberFunctionPointer >
+struct ExecuteInternalLabelImageAddressor
+{
+  typedef typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType ObjectType;
+
+  template< typename TImageType >
+  TMemberFunctionPointer operator() ( void ) const
+  {
+    return &ObjectType::template ExecuteInternalLabelImage< TImageType >;
+  }
+};
+
+
+}
+}
+}
+#endif
diff --git a/Code/Common/include/sitkDisplacementFieldTransform.h b/Code/Common/include/sitkDisplacementFieldTransform.h
new file mode 100644
index 0000000..acf0691
--- /dev/null
+++ b/Code/Common/include/sitkDisplacementFieldTransform.h
@@ -0,0 +1,173 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkDisplacementFieldTransform_h
+#define sitkDisplacementFieldTransform_h
+
+#include "sitkCommon.h"
+#include "sitkTransform.h"
+#include "sitkInterpolator.h"
+
+namespace itk
+{
+namespace simple
+{
+
+/** \brief A dense deformable transform over a bounded spatial domain
+ * for 2D or 3D coordinates space.
+ *
+ * \sa itk::DisplacementFieldTransform
+ */
+class SITKCommon_EXPORT DisplacementFieldTransform
+  : public Transform
+{
+public:
+  typedef DisplacementFieldTransform Self;
+  typedef Transform Superclass;
+
+  explicit DisplacementFieldTransform( unsigned int dimensions );
+
+  /** \brief Consume an image to construct a displacement field transform.
+   *
+   * \warning The input displacement image is transferred to the
+   * constructed transform object. The input image is modified to be a
+   * default constructed Image object.
+   *
+   * Image must be of sitkVectorFloat64 pixel type with the number of
+   * components equal to the image dimension.
+   *
+   */
+  explicit DisplacementFieldTransform( Image &);
+
+  DisplacementFieldTransform( const DisplacementFieldTransform & );
+
+  explicit DisplacementFieldTransform( const Transform & );
+
+  DisplacementFieldTransform &operator=( const DisplacementFieldTransform & );
+
+  /** Name of this class */
+  std::string GetName() const { return std::string ("DisplacementFieldTransform"); }
+
+  /** parameters */
+
+  /** \brief Consume an image, and set the displacement field
+   *
+   * \warning The ownership of the input displacement image is
+   * transferred to the constructed transform object. The input image
+   * is modified to be a default constructed Image object.
+   *
+   * Image must be of sitkVectorFloat64 pixel type with the number of
+   * components equal to the image dimension.
+   *
+   */
+  SITK_RETURN_SELF_TYPE_HEADER SetDisplacementField(Image &);
+
+  /** \todo The returned image should not directly modify the
+   * internal displacement field.
+   */
+  Image GetDisplacementField() const;
+
+  /** fixed parameter */
+
+  /* additional methods */
+  SITK_RETURN_SELF_TYPE_HEADER SetInverseDisplacementField(Image &);
+
+  /** \todo The returned image is should not directly modify the
+   * internal displacement field.
+   */
+  Image GetInverseDisplacementField() const;
+
+  /** Set the interpolator used between the field voxels. */
+  SITK_RETURN_SELF_TYPE_HEADER SetInterpolator(InterpolatorEnum interp);
+  // InterpolatorEnum GetInterpolator() const; How to do this?
+
+  SITK_RETURN_SELF_TYPE_HEADER SetSmoothingOff();
+  SITK_RETURN_SELF_TYPE_HEADER SetSmoothingGaussianOnUpdate( double varianceForUpdateField=1.75, double varianceForTotalField=0.5 );
+  SITK_RETURN_SELF_TYPE_HEADER SetSmoothingBSplineOnUpdate( const std::vector<unsigned int> &numberOfControlPointsForUpdateField = std::vector<unsigned int>(3,4),
+                                     const std::vector<unsigned int> &numberOfControlPointsForTotalField = std::vector<unsigned int>(3,4),
+                                     bool enforceStationaryBoundary=true,
+                                     unsigned int order=3 );
+
+
+protected:
+
+  virtual void SetPimpleTransform( PimpleTransformBase *pimpleTransform );
+
+private:
+
+  using Superclass::AddTransform;
+
+  struct MyVisitor
+  {
+    itk::TransformBase *transform;
+    DisplacementFieldTransform *that;
+    template< typename TransformType >
+    void operator() ( void ) const
+      {
+        TransformType *t = dynamic_cast<TransformType*>(transform);
+        if (t && (typeid(*t)==typeid(TransformType)))
+          {
+          that->InternalInitialization<TransformType>(t);
+          }
+      }
+  };
+
+  void InternalInitialization(itk::TransformBase *transform);
+
+  template <typename TransformType>
+    void InternalInitialization(TransformType *transform);
+
+  template< typename TDisplacementFieldTransform >
+    static Image InternalGetDisplacementField( const TDisplacementFieldTransform *itkDisplacementTx );
+  template< typename TDisplacementFieldTransform >
+    static Image InternalGetInverseDisplacementField( const TDisplacementFieldTransform *itkDisplacementTx );
+
+  template< typename TDisplacementFieldTransform >
+    void InternalSetSmoothingOff(TDisplacementFieldTransform *itkDisplacement);
+  template< typename TDisplacementFieldTransform >
+    void InternalSetSmoothingGaussianOnUpdate( TDisplacementFieldTransform *itkDisplacement,
+                                               double varianceForUpdateField,
+                                               double varianceForTotalField );
+  template< typename TDisplacementFieldTransform >
+    void InternalSetSmoothingBSplineOnUpdate( TDisplacementFieldTransform *itkDisplacement,
+                                              const std::vector<unsigned int> &numberOfControlPointsForUpdateField,
+                                              const std::vector<unsigned int> &numberOfControlPointsForTotalField,
+                                              bool enforceStationaryBoundary,
+                                              unsigned int order );
+
+
+  static PimpleTransformBase *CreateDisplacementFieldPimpleTransform(unsigned int dimension);
+
+  nsstd::function<void (Image &)> m_pfSetDisplacementField;
+  nsstd::function<Image ()> m_pfGetDisplacementField;
+
+  nsstd::function<void (Image &)> m_pfSetInverseDisplacementField;
+  nsstd::function<Image ()> m_pfGetInverseDisplacementField;
+
+  nsstd::function<void (InterpolatorEnum &)> m_pfSetInterpolator;
+  nsstd::function<InterpolatorEnum ()> m_pfGetInterpolator;
+
+  nsstd::function<void ()> m_pfSetSmoothingOff;
+  nsstd::function<void (double, double)> m_pfSetSmoothingGaussianOnUpdate;
+  nsstd::function<void (const std::vector<unsigned int> &,const std::vector<unsigned int>&, bool, unsigned int)> m_pfSetSmoothingBSplineOnUpdate;
+
+};
+
+}
+}
+
+#endif // sitkDisplacementFieldTransform_h
diff --git a/Code/Common/include/sitkDualMemberFunctionFactory.h b/Code/Common/include/sitkDualMemberFunctionFactory.h
new file mode 100644
index 0000000..ba257cf
--- /dev/null
+++ b/Code/Common/include/sitkDualMemberFunctionFactory.h
@@ -0,0 +1,183 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkDualMemberFunctionFactory_h
+#define sitkDualMemberFunctionFactory_h
+
+#include "sitkDetail.h"
+#include "sitkMemberFunctionFactoryBase.h"
+
+
+
+namespace itk
+{
+namespace simple
+{
+// this namespace is internal classes not part of the external simple ITK interface
+namespace detail
+{
+
+
+
+/** \class DualMemberFunctionFactory
+ * \brief A class used to instantiate and generate function objects of
+ *  templated member functions with two template arguments.
+ *
+ *  \tparam TMemberFunctionPointer is the type of pointer to member
+ *  function
+ *
+ *  Example member function and pointer:
+ *  \code
+ *  typedef Image::Pointer (Self::*MemberFunctionType)( Image::Pointer );
+ *
+ *  template<typename TImageType1, TImageType2>
+ *  Image::Pointer ExecuteInternal( Image::Pointer );
+ *  \endcode
+ *
+ *  The  provided Addressor will instantiate the templeted
+ *  member functions by taking the address in the
+ *  RegisterMethods. Later they can be retrieve with the
+ *  GetMemberFunction method, which returns a function object with the
+ *  same arguments as the templated member function pointer.
+ *
+ *  An instance of a MemberFunctionFactory is bound to a specific
+ *  instance of an object, so that the returned function object does
+ *  not need to have the calling object specified.
+ *
+ * \warning Use this class with caution because it can instantiate a
+ * combinatorial number of methods.
+ *
+ * \sa MemberFunctionFactory
+ */
+template <typename TMemberFunctionPointer>
+class DualMemberFunctionFactory
+  : protected MemberFunctionFactoryBase<TMemberFunctionPointer, std::pair<int, int> >
+{
+
+public:
+
+  typedef MemberFunctionFactoryBase<TMemberFunctionPointer, std::pair<int, int> > Superclass;
+  typedef DualMemberFunctionFactory                                               Self;
+
+  typedef TMemberFunctionPointer                                           MemberFunctionType;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::ClassType ObjectType;
+  typedef typename Superclass::FunctionObjectType                          FunctionObjectType;
+
+  /** \brief Constructor which permanently binds the constructed
+   * object to pObject */
+  DualMemberFunctionFactory( ObjectType *pObject );
+
+  /** \brief Registers a specific member function.
+   *
+   * Registers a member function templated over TImageType1 and TImageType2 */
+  template< typename TImageType1, typename TImageType2 >
+  void Register( MemberFunctionType pfunc,  TImageType1*, TImageType2*  );
+
+  /** \brief Registers the member functions for all combinations of
+   * TPixelIDTypeList1 and PixelIDTypeList2
+   *
+   * With out the third template argument, the DualExecuteInternalAddressor
+   * will be used to instantiate "DualExecuteInternal" methods over
+   * the two image types referenced by all combination of type in the
+   * first list with types in the second.
+   *
+   * The optional third template parameter provides a custom addressor.
+   *
+   * Example usage:
+   * \code
+   * this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList1,
+   *                                                 PixelIDTypeList2, 3 > ();
+   * \endcode
+   *
+   * or if a custom addressor is needed:
+   * \code
+   * template < class TMemberFunctionPointer >
+   *    struct MyCustomAddressor
+   *    {
+   *      typedef typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType ObjectType;
+   *
+   *      template< typename TImageType1, typename TImageType2 >
+   *      TMemberFunctionPointer operator() ( void ) const
+   *      {
+   *        return &ObjectType::template CustomMethod< TImageType1, TImageType2 >;
+   *      }
+   *    };
+   *
+   * this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList1,
+   *                                                 PixelIDTypeList2,
+   *                                                 3,
+   *                                                 MyCustomAddressor<TMFP> > ();
+   * \endcode
+   * @{
+   */
+  template < typename TPixelIDTypeList1,
+             typename TPixelIDTypeList2,
+             unsigned int VImageDimension,
+             typename TAddressor >
+  void RegisterMemberFunctions( void );
+  template < typename TPixelIDTypeList1,
+             typename TPixelIDTypeList2,
+             unsigned int VImageDimension >
+  void RegisterMemberFunctions( void )
+  {
+    typedef detail::DualExecuteInternalAddressor<MemberFunctionType> AddressorType;
+    this->RegisterMemberFunctions< TPixelIDTypeList1, TPixelIDTypeList2, VImageDimension, AddressorType>();
+  }
+  /** @} */
+
+  /** \brief Query to determine if an member function has been
+    * registered for pixelID1, pixelID2 and imageDimension
+    */
+  bool HasMemberFunction( PixelIDValueType pixelID1,
+                          PixelIDValueType pixelID2,
+                          unsigned int imageDimension  ) const throw();
+
+
+  /** \brief Returns a function object for the combination of
+   *  PixelID1 and PixelID2, and image dimension.
+   *
+   *  pixelID1 or pixelID2 is the value of Image::GetPixelIDValue(),
+   *  or PixelIDToPixelIDValue<PixelIDType>::Result
+   *
+   *  imageDimension is the the value returned by Image::GetDimension()
+   *
+   *  Example usage:
+   *  \code
+   *  PixelIDValueType pixelID = image->GetPixelIDValue();
+   *  unsigned int dimension = image->GetDimension();
+   *  return this->m_MemberFactory->GetMemberFunction( pixelID, pixelID, dimension )( image );
+   *  \endcode
+   *
+   *  If the requested member function is not registered then an
+   *  exception is generated. The returned function object is
+   *  guaranteed to be valid.
+   */
+  FunctionObjectType GetMemberFunction( PixelIDValueType pixelID1, PixelIDValueType pixelID2, unsigned int imageDimension  );
+
+protected:
+
+  ObjectType *m_ObjectPointer;
+
+};
+
+} // end namespace detail
+} // end namespace simple
+} // end namespace itk
+
+#include "sitkDualMemberFunctionFactory.hxx"
+
+#endif //  sitkDualMemberFunctionFactory_h
diff --git a/Code/Common/include/sitkDualMemberFunctionFactory.hxx b/Code/Common/include/sitkDualMemberFunctionFactory.hxx
new file mode 100644
index 0000000..fc478e6
--- /dev/null
+++ b/Code/Common/include/sitkDualMemberFunctionFactory.hxx
@@ -0,0 +1,228 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkDualMemberFunctionFactory_hxx
+#define sitkDualMemberFunctionFactory_hxx
+
+#include "sitkDualMemberFunctionFactory.h"
+
+#include "sitkPixelIDTokens.h"
+#include "sitkExceptionObject.h"
+
+namespace itk
+{
+namespace simple
+{
+// this namespace is internal classes not part of the external simple ITK interface
+namespace detail
+{
+
+// a privately declared predicate for use with the typelist::Visit
+// algorithm
+//
+// \todo doc
+//
+// This predicate calls the member function factories AddressorType on
+// each valid ImageType defined from the pixel type id, and the
+// provided dimension
+template < typename TMemberFunctionFactory, unsigned int VImageDimension, typename TAddressor >
+struct DualMemberFunctionInstantiater
+{
+  DualMemberFunctionInstantiater( TMemberFunctionFactory &factory )
+    : m_Factory( factory )
+    {}
+  template <class TPixelIDType1, class TPixelIDType2>
+  typename EnableIf< IsInstantiated<TPixelIDType1,VImageDimension>::Value &&
+                     IsInstantiated<TPixelIDType2,VImageDimension>::Value >::Type
+  operator()( TPixelIDType1* t1=NULL, TPixelIDType2*t2=NULL ) const
+    {
+      (void)t1;
+      (void)t2;
+      typedef typename PixelIDToImageType<TPixelIDType1, VImageDimension>::ImageType ImageType1;
+      typedef typename PixelIDToImageType<TPixelIDType2, VImageDimension>::ImageType ImageType2;
+      typedef TAddressor                                                             AddressorType;
+
+      AddressorType addressor;
+      m_Factory.Register(addressor.CLANG_TEMPLATE operator()<ImageType1, ImageType2>(), (ImageType1*)(NULL), (ImageType2*)(NULL) );
+
+    }
+
+  // this methods is conditionally enabled when the PixelID is not instantiated
+  template <class TPixelIDType1, class TPixelIDType2>
+  typename DisableIf< IsInstantiated<TPixelIDType1,VImageDimension>::Value &&
+                     IsInstantiated<TPixelIDType2,VImageDimension>::Value >::Type
+  operator()( TPixelIDType1*t1=NULL, TPixelIDType2*t2=NULL ) const
+    {
+      (void)t1;
+      (void)t2;
+    }
+
+private:
+
+  TMemberFunctionFactory &m_Factory;
+};
+
+template <typename TMemberFunctionPointer>
+DualMemberFunctionFactory< TMemberFunctionPointer >
+::DualMemberFunctionFactory( ObjectType *pObject )
+  : m_ObjectPointer( pObject )
+{
+  assert( pObject );
+}
+
+template <typename TMemberFunctionPointer>
+template< typename TImageType1, typename TImageType2 >
+void
+DualMemberFunctionFactory< TMemberFunctionPointer >
+::Register( MemberFunctionType pfunc,  TImageType1*, TImageType2*  )
+{
+  PixelIDValueType pixelID1 = ImageTypeToPixelIDValue<TImageType1>::Result;
+  PixelIDValueType pixelID2 = ImageTypeToPixelIDValue<TImageType2>::Result;
+
+  // this shouldn't occour, just may be useful for debugging
+  assert( pixelID1 >= 0 && pixelID1 < typelist::Length< InstantiatedPixelIDTypeList >::Result );
+  assert( pixelID2 >= 0 && pixelID2 < typelist::Length< InstantiatedPixelIDTypeList >::Result );
+
+  sitkStaticAssert( TImageType1::ImageDimension == 2 || TImageType1::ImageDimension == 3,
+                    "Image Dimension out of range" );
+  sitkStaticAssert( int(TImageType1::ImageDimension) == int(TImageType2::ImageDimension),
+                    "Image Dimensions do not match" );
+  sitkStaticAssert( IsInstantiated<TImageType1>::Value,
+                    "invalid pixel type for argument one");
+  sitkStaticAssert( IsInstantiated<TImageType2>::Value,
+                    "invalid pixel type for argument two");
+
+  if ( pixelID1 >= 0 && pixelID1 < typelist::Length< InstantiatedPixelIDTypeList >::Result &&
+       pixelID2 >= 0 && pixelID2 < typelist::Length< InstantiatedPixelIDTypeList >::Result )
+    {
+    typename Superclass::KeyType key(pixelID1, pixelID2);
+
+    switch( int(TImageType1::ImageDimension) )
+      {
+      case 3:
+        Superclass::m_PFunction3[ key ] = Superclass::BindObject( pfunc, m_ObjectPointer );
+        break;
+      case 2:
+        Superclass::m_PFunction2[ key ] = Superclass::BindObject( pfunc, m_ObjectPointer );
+        break;
+      default:
+        break;
+      }
+    }
+}
+
+template <typename TMemberFunctionPointer>
+template < typename TPixelIDTypeList1, typename TPixelIDTypeList2, unsigned int VImageDimension, typename TAddressor >
+void
+DualMemberFunctionFactory< TMemberFunctionPointer >
+::RegisterMemberFunctions( void )
+{
+  typedef DualMemberFunctionInstantiater< Self, VImageDimension, TAddressor > InstantiaterType;
+
+  // initialize function array with pointer
+  typelist::DualVisit<TPixelIDTypeList1, TPixelIDTypeList2> visitEachComboInLists;
+  visitEachComboInLists( InstantiaterType( *this ) );
+}
+
+
+template <typename TMemberFunctionPointer>
+bool
+DualMemberFunctionFactory< TMemberFunctionPointer >
+::HasMemberFunction( PixelIDValueType pixelID1, PixelIDValueType pixelID2, unsigned int imageDimension  ) const throw()
+{
+  try
+    {
+
+    typename Superclass::KeyType key(pixelID1, pixelID2);
+
+    switch ( imageDimension )
+      {
+      case 3:
+        // check if tr1::function has been set in map
+        return Superclass::m_PFunction3.find( key ) != Superclass::m_PFunction3.end();
+      case 2:
+        // check if tr1::function has been set in map
+        return Superclass::m_PFunction2.find( key ) != Superclass::m_PFunction2.end();
+      default:
+        return false;
+      }
+    }
+  // we do not throw exceptions
+  catch(...)
+    {
+    return false;
+    }
+}
+
+template <typename TMemberFunctionPointer>
+typename DualMemberFunctionFactory< TMemberFunctionPointer >::FunctionObjectType
+DualMemberFunctionFactory< TMemberFunctionPointer >
+::GetMemberFunction( PixelIDValueType pixelID1, PixelIDValueType pixelID2, unsigned int imageDimension  )
+{
+  if ( pixelID1 >= typelist::Length< InstantiatedPixelIDTypeList >::Result || pixelID1 < 0 )
+    {
+    sitkExceptionMacro ( << "unexpected error pixelID1 is out of range " << pixelID1 << " "  << typeid(ObjectType).name() );
+    }
+
+  if ( pixelID2 >= typelist::Length< InstantiatedPixelIDTypeList >::Result || pixelID2 < 0 )
+    {
+    sitkExceptionMacro ( << "unexpected error pixelID2 is out of range " << pixelID2 << " "  << typeid(ObjectType).name() );
+    }
+
+  typename Superclass::KeyType key(pixelID1, pixelID2);
+
+  switch ( imageDimension )
+    {
+    case 3:
+      // check if tr1::function has been set
+      if ( Superclass::m_PFunction3.find( key ) != Superclass::m_PFunction3.end() )
+        {
+        return Superclass::m_PFunction3[ key ];
+        }
+
+      // todo updated exceptions here
+      sitkExceptionMacro ( << "Pixel type: "
+                           << GetPixelIDValueAsString(pixelID1)
+                           << " is not supported in 3D by"
+                           << typeid(ObjectType).name() );
+
+      break;
+    case 2:
+      // check if tr1::function has been set
+      if ( Superclass::m_PFunction2.find( key ) != Superclass::m_PFunction2.end() )
+        {
+        return Superclass::m_PFunction2[ key ];
+        }
+
+      sitkExceptionMacro ( << "Pixel type: "
+                           << GetPixelIDValueAsString(pixelID1)
+                           << " is not supported in 2D by"
+                           << typeid(ObjectType).name() );
+
+      break;
+    default:
+      sitkExceptionMacro ( << "Image dimension " << imageDimension << " is not supported" );
+    }
+}
+
+
+} // end namespace detail
+} // end namespace simple
+} // end namespace itk
+
+
+#endif //  sitkDualMemberFunctionFactory_hxx
diff --git a/Code/Common/include/sitkEnableIf.h b/Code/Common/include/sitkEnableIf.h
new file mode 100644
index 0000000..9580ec0
--- /dev/null
+++ b/Code/Common/include/sitkEnableIf.h
@@ -0,0 +1,65 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkEnableIf_h
+#define sitkEnableIf_h
+
+namespace itk
+{
+namespace simple
+{
+
+/* \brief This is an implementation of the enable if idiom.
+ *
+ * This template enables specialization of a templated function based
+ * on some traits or concepts. It is implemented with SFINAE.
+ *
+ * If the parameter V is true then the Type trait is the second
+ * template parameter, otherwise an implementation does not exist and
+ * with SFIANE another implementation may be choosen.
+ *
+ * Example:
+ * \code
+ * template<class TImageType>
+ * typename EnableIf<IsBasic<TImageType>::Value>::Type
+ * AllocateInternal ( unsigned int Width, unsigned int Height, unsigned int Depth );
+ *
+ * template<class TImageType>
+ * typename EnableIf<IsVector<TImageType>::Value>::Type
+ * AllocateInternal ( unsigned int Width, unsigned int Height, unsigned int Depth );
+ * \endcode
+ *
+ */
+template <bool V, class T = void> struct EnableIf {};
+/** \cond SPECIALIZATION_IMPLEMENTATION */
+template <class T> struct EnableIf<true, T> { typedef T Type; };
+/**\endcond*/
+
+
+/* \brief An implementation of the negation of the enable if idiom.
+ *
+ * \sa EnableIf
+ */
+template <bool V, class T = void> struct DisableIf {};
+/** \cond SPECIALIZATION_IMPLEMENTATION */
+template <class T> struct DisableIf<false, T> { typedef T Type; };
+/**\endcond*/
+
+}
+}
+
+#endif // sitkEnableIf_h
diff --git a/Code/Common/include/sitkEuler2DTransform.h b/Code/Common/include/sitkEuler2DTransform.h
new file mode 100644
index 0000000..5455b98
--- /dev/null
+++ b/Code/Common/include/sitkEuler2DTransform.h
@@ -0,0 +1,99 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkEuler2DTransform_h
+#define sitkEuler2DTransform_h
+
+#include "sitkCommon.h"
+#include "sitkTransform.h"
+
+namespace itk
+{
+namespace simple
+{
+
+/** \brief A rigid 2D transform with rotation in radians around a
+ * fixed center with translation.
+ *
+ * \sa itk::Euler2DTransform
+ */
+class SITKCommon_EXPORT Euler2DTransform
+  : public Transform
+{
+public:
+  typedef Euler2DTransform Self;
+  typedef Transform Superclass;
+
+// construct identity
+  Euler2DTransform();
+
+  explicit Euler2DTransform(const std::vector<double> &fixedCenter,
+                            double angle=0.0,
+                            const std::vector<double> &translation = std::vector<double>(2,0.0) );
+
+  Euler2DTransform( const Euler2DTransform & );
+
+  explicit Euler2DTransform( const Transform & );
+
+  Euler2DTransform &operator=( const Euler2DTransform & );
+
+  /** Name of this class */
+  std::string GetName() const { return std::string ("Euler2DTransform"); }
+
+/** fixed parameter */
+  SITK_RETURN_SELF_TYPE_HEADER SetCenter(const std::vector<double> &params);
+  std::vector<double> GetCenter( ) const;
+
+/** parameter */
+  SITK_RETURN_SELF_TYPE_HEADER SetAngle (double angle);
+  double GetAngle () const;
+
+  std::vector<double> GetTranslation( ) const;
+  SITK_RETURN_SELF_TYPE_HEADER SetTranslation(const std::vector<double>& translation);
+
+  /** additional methods */
+  std::vector<double> GetMatrix() const;
+  SITK_RETURN_SELF_TYPE_HEADER SetMatrix(const std::vector<double> &matrix, double tolerance = 1e-10);
+
+protected:
+
+  virtual void SetPimpleTransform( PimpleTransformBase *pimpleTransform );
+
+private:
+
+  using Superclass::AddTransform;
+
+  void InternalInitialization(itk::TransformBase *transform);
+
+  template <typename TransformType>
+    void InternalInitialization(TransformType *transform);
+
+  nsstd::function<void(const std::vector<double>&)> m_pfSetCenter;
+  nsstd::function<std::vector<double>()> m_pfGetCenter;
+  nsstd::function<void(double)> m_pfSetAngle;
+  nsstd::function<double()> m_pfGetAngle;
+  nsstd::function<void(const std::vector<double>&)> m_pfSetTranslation;
+  nsstd::function<std::vector<double>()> m_pfGetTranslation;
+  nsstd::function<std::vector<double>()> m_pfGetMatrix;
+  nsstd::function<void(const std::vector<double>&, double)> m_pfSetMatrix;
+
+};
+
+}
+}
+
+#endif // sitkEuler2DTransform_h
diff --git a/Code/Common/include/sitkEuler3DTransform.h b/Code/Common/include/sitkEuler3DTransform.h
new file mode 100644
index 0000000..c0e0c28
--- /dev/null
+++ b/Code/Common/include/sitkEuler3DTransform.h
@@ -0,0 +1,116 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkEuler3DTransform_h
+#define sitkEuler3DTransform_h
+
+#include "sitkCommon.h"
+#include "sitkTransform.h"
+
+namespace itk
+{
+namespace simple
+{
+
+/** \brief A rigid 3D transform with rotation in radians around a
+ * fixed center with translation.
+ *
+ * \sa itk::Euler3DTransform
+ */
+class SITKCommon_EXPORT Euler3DTransform
+  : public Transform
+{
+public:
+typedef Euler3DTransform Self;
+typedef Transform Superclass;
+
+// construct identity
+Euler3DTransform();
+
+explicit Euler3DTransform(const std::vector<double> &fixedCenter,
+                          double angleX=0.0,
+                          double angleY=0.0,
+                          double angleZ=0.0,
+                          const std::vector<double> &translation = std::vector<double>(3,0.0) );
+
+Euler3DTransform( const Euler3DTransform & );
+
+explicit Euler3DTransform( const Transform & );
+
+Euler3DTransform &operator=( const Euler3DTransform & );
+
+/** Name of this class */
+std::string GetName() const { return std::string ("Euler3DTransform"); }
+
+/** fixed parameter */
+SITK_RETURN_SELF_TYPE_HEADER SetCenter(const std::vector<double> &params);
+std::vector<double> GetCenter( ) const;
+
+double GetAngleX () const;
+double GetAngleY () const;
+double GetAngleZ () const;
+
+/** parameter */
+SITK_RETURN_SELF_TYPE_HEADER SetRotation (double angleX, double angleY, double angleZ);
+
+std::vector<double> GetTranslation( ) const;
+SITK_RETURN_SELF_TYPE_HEADER SetTranslation( const std::vector<double>& translation);
+
+SITK_RETURN_SELF_TYPE_HEADER SetComputeZYX (bool _arg);
+bool GetComputeZYX () const;
+SITK_RETURN_SELF_TYPE_HEADER ComputeZYXOn () {return this->SetComputeZYX(true);}
+SITK_RETURN_SELF_TYPE_HEADER ComputeZYXOff () {return this->SetComputeZYX(false);}
+
+
+  /** additional methods */
+  std::vector<double> GetMatrix() const;
+  SITK_RETURN_SELF_TYPE_HEADER SetMatrix(const std::vector<double> &matrix, double tolerance = 1e-10);
+
+protected:
+
+virtual void SetPimpleTransform( PimpleTransformBase *pimpleTransform );
+
+private:
+
+using Superclass::AddTransform;
+
+void InternalInitialization(itk::TransformBase *transform);
+
+template <typename TransformType>
+void InternalInitialization(TransformType *transform);
+
+
+nsstd::function<void(const std::vector<double>&)> m_pfSetCenter;
+nsstd::function<std::vector<double>()> m_pfGetCenter;
+nsstd::function<void(double,double,double)> m_pfSetRotation;
+nsstd::function<double()> m_pfGetAngleX;
+nsstd::function<double()> m_pfGetAngleY;
+nsstd::function<double()> m_pfGetAngleZ;
+nsstd::function<void(const std::vector<double>&)> m_pfSetTranslation;
+nsstd::function<std::vector<double>()> m_pfGetTranslation;
+nsstd::function<void(bool)> m_pfSetComputeZYX;
+nsstd::function<bool()> m_pfGetComputeZYX;
+nsstd::function<std::vector<double>()> m_pfGetMatrix;
+nsstd::function<void(const std::vector<double>&, double)> m_pfSetMatrix;
+
+
+};
+
+}
+}
+
+#endif // sitkEuler3DTransform_h
diff --git a/Code/Common/include/sitkEvent.h b/Code/Common/include/sitkEvent.h
new file mode 100644
index 0000000..cebf8d9
--- /dev/null
+++ b/Code/Common/include/sitkEvent.h
@@ -0,0 +1,72 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkEvent_h
+#define sitkEvent_h
+
+#include "sitkCommon.h"
+#include <ostream>
+
+namespace itk {
+namespace simple {
+
+/** \brief Events which can be observed from ProcessObject.
+ *
+ * For more information see the page \ref CommandPage.
+ */
+enum EventEnum {
+  /** \brief Occurs for all event types.
+   */
+  sitkAnyEvent = 0,
+  /** \brief Occurs after the process has been aborted, but before exiting the Execute method.
+   */
+  sitkAbortEvent = 1,
+  /** \brief Occurs when the underlying itk::ProcessObject is deleted.
+   */
+  sitkDeleteEvent = 2,
+  /** \brief Occurs at then end of normal processing.
+   */
+  sitkEndEvent = 3,
+  /** \brief Occurs with some algorithms that run for a fixed or undetermined number of iterations.
+   */
+  sitkIterationEvent = 4,
+  /** \brief Occurs when the progress changes in most process objects.
+   */
+  sitkProgressEvent = 5,
+  /** \brief Occurs when then itk::ProcessObject is starting.
+   */
+  sitkStartEvent = 6,
+  /** \brief Occurs when some filters change processing to a different
+   * scale
+   *
+   * \note This event is a sub-event of the more general
+   * IterationEvent. The general iteration event will also be invoked.
+   */
+  sitkMultiResolutionIterationEvent = 9,
+  /** \brief Other events may fall into this enumeration.
+   */
+  sitkUserEvent = 7
+};
+
+#ifndef SWIG
+SITKCommon_EXPORT std::ostream& operator<<(std::ostream& os, const EventEnum k);
+#endif
+
+} // end namespace simple
+} // end namespace itk
+
+#endif
diff --git a/Code/Common/include/sitkExceptionObject.h b/Code/Common/include/sitkExceptionObject.h
new file mode 100644
index 0000000..2dbbd3f
--- /dev/null
+++ b/Code/Common/include/sitkExceptionObject.h
@@ -0,0 +1,98 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkExceptionObject_h
+#define sitkExceptionObject_h
+
+#include "sitkMacro.h"
+#include "sitkCommon.h"
+
+#ifndef sitkMacro_h
+#error "sitkMacro.h must be included before sitkExceptionObject.h"
+#endif // sitkMacro_h
+#ifndef sitkCommon_h
+#error "sitkCommon.h must be included before sitkExceptionObject.h"
+#endif // sitkCommon_h
+
+
+namespace itk
+{
+
+// forward declaration for encapsulation
+class ExceptionObject;
+
+namespace simple
+{
+
+/** \class GenericException
+ * \brief The base SimpleITK exception class
+ */
+class SITKCommon_EXPORT GenericException :
+    public std::exception
+{
+public:
+  /** Default constructor.  Needed to ensure the exception object can be
+   * copied. */
+  GenericException()  throw();
+  GenericException( const GenericException &e )  throw();
+
+  /** Constructor. Needed to ensure the exception object can be copied. */
+  GenericException(const char *file, unsigned int lineNumber) throw();
+
+  /** Constructor. Needed to ensure the exception object can be copied. */
+  GenericException(const std::string & file, unsigned int lineNumber) throw();
+
+  /** Constructor. Needed to ensure the exception object can be copied. */
+  GenericException(const std::string & file,
+                   unsigned int lineNumber,
+                   const std::string & desc) throw();
+
+  /** Virtual destructor needed for subclasses. Has to have empty throw(). */
+  virtual ~GenericException() throw( );
+
+  /** Assignment operator. */
+  GenericException & operator=(const GenericException & orig);
+
+  /** Equivalence operator. */
+  virtual bool operator==(const GenericException & orig) const;
+
+
+  /** Return a description of the error */
+  std::string ToString() const;
+
+  const char * what() const throw();
+
+  virtual const char * GetNameOfClass() const;
+
+  virtual const char * GetLocation()    const;
+
+  virtual const char * GetDescription() const;
+
+  /** What file did the exception occur in? */
+  virtual const char * GetFile()    const;
+
+  /** What line did the exception occur in? */
+  virtual unsigned int GetLine() const;
+
+private:
+  const ExceptionObject *m_PimpleException;
+};
+
+}
+}
+
+#endif // sitkExceptionObject_h
diff --git a/Code/Common/include/sitkFunctionCommand.h b/Code/Common/include/sitkFunctionCommand.h
new file mode 100644
index 0000000..699f651
--- /dev/null
+++ b/Code/Common/include/sitkFunctionCommand.h
@@ -0,0 +1,73 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkFunctionCommand_h
+#define sitkFunctionCommand_h
+
+
+#include "sitkCommand.h"
+
+#include "nsstd/functional.h"
+
+namespace itk {
+namespace simple {
+
+/** \class FunctionCommand
+ * \brief A Command class which allows setting an external function,
+ * or member function.
+ */
+class SITKCommon_EXPORT FunctionCommand:
+    public Command
+{
+public:
+
+  typedef FunctionCommand Self;
+
+  FunctionCommand();
+
+  virtual void Execute(void);
+
+  /** Generic method to set a class's member function to be called in
+   *  the Execute method.
+   */
+  template <class T>
+    void SetCallbackFunction ( T *object, void(T::* pMemberFunction )() )
+  {
+    m_Function = nsstd::bind(pMemberFunction, object);
+  }
+
+  /** Set a C-Style function to be called in the Execute method */
+  void SetCallbackFunction ( void(* pFunction )() );
+
+  /** Set a C-Style function with a void* clientData as an
+    *  argument. The caller is responsible for managing the life of
+    *  the clientData and that it's valid when Execute is called with
+    *  the clientData.
+    */
+  void SetCallbackFunction( void(* pFunction )(void *), void *clientData );
+
+private:
+
+  typedef nsstd::function<void()> FunctionObjectType;
+  FunctionObjectType m_Function;
+
+};
+
+} // end namespace simple
+} // end namespace itk
+
+#endif
diff --git a/Code/Common/include/sitkImage.h b/Code/Common/include/sitkImage.h
new file mode 100644
index 0000000..582ff03
--- /dev/null
+++ b/Code/Common/include/sitkImage.h
@@ -0,0 +1,479 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkImage_h
+#define sitkImage_h
+
+#include "sitkCommon.h"
+#include "sitkTemplateFunctions.h"
+#include "sitkDetail.h"
+#include "sitkPixelIDTokens.h"
+#include "sitkEnableIf.h"
+
+#include "nsstd/type_traits.h"
+#include "nsstd/auto_ptr.h"
+
+#include <vector>
+#include <memory>
+
+namespace itk
+{
+
+// Forward decalaration for pointer
+class DataObject;
+
+template<class T>
+class SmartPointer;
+
+namespace simple
+{
+
+  // This is the foward declaration of a class used internally to the
+  // Image class, but the actually interface is not exposed to simple
+  // ITK. A pointer to the implementation is used as per the pimple
+  // idiom.
+  class PimpleImageBase;
+
+  /** \class Image
+   * \brief The main Image class for SimpleITK
+   */
+  class SITKCommon_EXPORT Image
+  {
+  public:
+    typedef Image              Self;
+
+    virtual ~Image( );
+
+    /** \brief Default constructor, creates an image of size 0 */
+    Image( void );
+
+    // copy constructor
+    Image( const Image &img );
+    Image& operator=( const Image &img );
+
+    /** \brief Constructors for 2D, 3D an optionally 4D images where
+     * pixel type and number of components can be specified.
+     *
+     * If the pixel type is a scalar or a label pixel type, then the
+     * number of components must be specified as 0 or 1.
+     *
+     * If the pixel type is a vector pixel type, then the number of
+     * components defaults to the image dimension, unless the
+     * numberOfComponents is explicitly specified.
+     *
+     * Unlike the standard convention for Dimensional Vectors the size
+     * parameter must be the exact dimension requesting. That is, it must be of
+     * length 2 of a 2D image, 3 for a 3D image and 4 for a 4D image.
+     * @{
+     */
+    Image( unsigned int width, unsigned int height, PixelIDValueEnum valueEnum  );
+    Image( unsigned int width, unsigned int height, unsigned int depth, PixelIDValueEnum valueEnum );
+    Image( const std::vector< unsigned int > &size, PixelIDValueEnum valueEnum, unsigned int numberOfComponents = 0 );
+    /**@}*/
+
+
+    /** \brief Construct an SimpleITK Image from an pointer to an ITK
+     * image
+     *
+     * The SimpleITK image will add a reference to the underlying the
+     * ITK image and hold a pointer to the image. If the image is
+     * manipulated directly from the ITK interface, SimpleITK may be
+     * unaware of it, and may cause complication related to aliasing
+     * and SimpleITK copy on write policy.
+     *
+     * If simpleITK does not support the image type, a compile-time
+     * error or assertion will fail.
+     *
+     * The ITK image must be fully buffered, and must have a zero
+     * starting index for the Buffered/Largest regions.
+     * @{
+     */
+    template <typename TImageType>
+    explicit Image( itk::SmartPointer<TImageType> image )
+      : m_PimpleImage( NULL )
+      {
+        sitkStaticAssert( ImageTypeToPixelIDValue<TImageType>::Result != (int)sitkUnknown,
+                          "invalid pixel type" );
+        this->InternalInitialization<ImageTypeToPixelIDValue<TImageType>::Result, TImageType::ImageDimension>( image.GetPointer() );
+      }
+    template <typename TImageType>
+    explicit Image( TImageType* image )
+      : m_PimpleImage( NULL )
+      {
+        sitkStaticAssert( ImageTypeToPixelIDValue<TImageType>::Result != (int)sitkUnknown,
+                          "invalid pixel type" );
+        this->InternalInitialization<ImageTypeToPixelIDValue<TImageType>::Result, TImageType::ImageDimension>( image );
+      }
+    /**@}*/
+
+    /** Get access to internal ITK data object.
+     *
+     * The return value should imediately be assigned to as
+     * itk::SmartPointer.
+     *
+     * In many cases the value may need to be dynamically casted to
+     * the the actual image type. The GetPixelIDValue() method should
+     * return an PixelID which identifies the image type which the
+     * DataObject points to.
+     *
+     * @{
+     */
+    itk::DataObject* GetITKBase( void );
+    const itk::DataObject* GetITKBase( void ) const;
+    /**@}*/
+
+    // could return -1 if in valid
+    PixelIDValueEnum GetPixelID( void ) const;
+    PixelIDValueType GetPixelIDValue( void ) const;
+
+    unsigned int GetDimension( void ) const;
+
+    /** \brief Get the number of components for each pixel
+     *
+     * For scalar images this methods returns 1. For vector images the
+     * number of components for each pixel is returned.
+     */
+    unsigned int GetNumberOfComponentsPerPixel( void ) const;
+
+    /** \brief Get the number of pixels in the image
+     *
+     * To Calculate the total number of values stored continuously for
+     * the image's buffer, the NumberOfPixels should be multiplied by
+     * NumberOfComponentsPerPixel in order to account for multiple
+     * component images.
+     *
+     */
+    uint64_t GetNumberOfPixels( void ) const;
+
+    /** Get/Set the Origin
+     * @{
+     */
+    std::vector< double > GetOrigin( void ) const;
+    void SetOrigin( const std::vector< double > &origin );
+    /** @} */
+
+    /** Get/Set the Spacing
+     * @{
+     */
+    std::vector< double > GetSpacing( void ) const;
+    void SetSpacing( const std::vector< double > &spacing );
+    /** @} */
+
+    /** \brief Set/Get the Direction
+     *
+     * Internally, the Direction is represented by a matrix 2x2 for a
+     * 2D and and 3x3 for a 3D image. The matrix is passed as a 1D
+     * array in row-major form.
+     * @{
+     */
+    std::vector< double > GetDirection() const;
+    void SetDirection ( const std::vector< double > &direction );
+    /** @} */
+
+    /** Transform index to physical point */
+    std::vector< double > TransformIndexToPhysicalPoint( const std::vector< int64_t > &index ) const;
+
+    /** Transform physical point to index */
+    std::vector< int64_t > TransformPhysicalPointToIndex( const std::vector< double >& point ) const;
+
+    /** Transform physical point to continuous index */
+    std::vector< double > TransformPhysicalPointToContinuousIndex( const std::vector< double >& point ) const;
+
+    /** Transform continuous index to physical point */
+    std::vector< double > TransformContinuousIndexToPhysicalPoint( const std::vector< double > &index) const;
+
+    std::vector< unsigned int > GetSize( void ) const;
+
+    unsigned int GetHeight( void ) const;
+    unsigned int GetWidth( void ) const;
+    unsigned int GetDepth( void ) const;
+
+
+    /** \brief Copy common meta-data from an image to this one.
+     *
+     * Copies the Origin, Spacing, and Direction from the source image
+     * to this image. The meta-data dictionary is \b not copied.
+     *
+     * It is required for the source Image's dimension and size to
+     * match, this image's attributes, otherwise an exception will be
+     * generated.
+     *
+     */
+    void CopyInformation( const Image &srcImage );
+
+    /** \brief get a vector of keys in from the meta-data dictionary
+     *
+     * Returns a vector of keys to the key/value entries in the
+     * image's meta-data dictionary. Iterate through with these keys
+     * to get the values.
+     */
+    std::vector<std::string> GetMetaDataKeys( void ) const;
+
+    /** \brief Query the meta-data dictionary for the existence of a key.
+     */
+    bool HasMetaDataKey( const std::string &key ) const;
+
+    /** \brief Get the value of a meta-data dictionary entry as a string.
+     *
+     * If the key is not in the dictionary then an exception is
+     * thrown.
+     *
+     * string types in the dictionary are returned as their native
+     * strings. Other types are printed to string before returning.
+     */
+    std::string GetMetaData( const std::string &key ) const;
+
+    /** \brief Set an entry in the meta-data dictionary.
+     *
+     * Replaces or creates an entry in the image's meta-data dictionary.
+     */
+    void SetMetaData( const std::string &key, const std::string &value);
+
+    /** \brief Remove an entry from the meta-data dictionary.
+     *
+     * Returns true, when the value exists in the dictionary and is
+     * removed, false otherwise.
+     */
+    bool EraseMetaData( const std::string &key );
+
+    std::string GetPixelIDTypeAsString( void ) const;
+
+    std::string ToString( void ) const;
+
+    /** \brief Get the value of a pixel
+     *
+     * Returns the value of a pixel for the given index. The index
+     * follows standard SimpleITK conventions for it's length. The
+     * correct method must be called for the underlying Image type,
+     * otherwise an exception will be thrown.
+     *
+     * \param idx the zero based index into the image. It's length
+     * must be at least the value of GetDimension(), additional
+     * elements will be ignored. Boundary checking is performed on
+     * idx, if it is out of bounds an exception will be thrown.
+     *
+     * \sa Image::GetPixelIDValue
+     * @{
+     */
+    int8_t   GetPixelAsInt8( const std::vector<uint32_t> &idx) const;
+    uint8_t  GetPixelAsUInt8( const std::vector<uint32_t> &idx) const;
+    int16_t  GetPixelAsInt16( const std::vector<uint32_t> &idx ) const;
+    uint16_t GetPixelAsUInt16( const std::vector<uint32_t> &idx ) const;
+    int32_t  GetPixelAsInt32( const std::vector<uint32_t> &idx ) const;
+    uint32_t GetPixelAsUInt32( const std::vector<uint32_t> &idx ) const;
+    int64_t  GetPixelAsInt64( const std::vector<uint32_t> &idx ) const;
+    uint64_t GetPixelAsUInt64( const std::vector<uint32_t> &idx ) const;
+    float    GetPixelAsFloat( const std::vector<uint32_t> &idx ) const;
+    double   GetPixelAsDouble(  const std::vector<uint32_t> &idx ) const;
+
+    std::vector<int8_t>   GetPixelAsVectorInt8( const std::vector<uint32_t> &idx) const;
+    std::vector<uint8_t>  GetPixelAsVectorUInt8( const std::vector<uint32_t> &idx) const;
+    std::vector<int16_t> GetPixelAsVectorInt16( const std::vector<uint32_t> &idx ) const;
+    std::vector<uint16_t> GetPixelAsVectorUInt16( const std::vector<uint32_t> &idx ) const;
+    std::vector<int32_t>  GetPixelAsVectorInt32( const std::vector<uint32_t> &idx ) const;
+    std::vector<uint32_t> GetPixelAsVectorUInt32( const std::vector<uint32_t> &idx ) const;
+    std::vector<int64_t>  GetPixelAsVectorInt64( const std::vector<uint32_t> &idx ) const;
+    std::vector<uint64_t> GetPixelAsVectorUInt64( const std::vector<uint32_t> &idx ) const;
+    std::vector<float>    GetPixelAsVectorFloat32( const std::vector<uint32_t> &idx ) const;
+    std::vector<double>   GetPixelAsVectorFloat64( const std::vector<uint32_t> &idx ) const;
+
+    std::complex<float>  GetPixelAsComplexFloat32( const std::vector<uint32_t> &idx ) const;
+    std::complex<double> GetPixelAsComplexFloat64( const std::vector<uint32_t> &idx ) const;
+    /** @} */
+
+    /** \brief Set the value of a pixel
+     *
+     * Set the value of a pixel at the provided index. The index
+     * follows standard SimpleITK conventions for it's length. The
+     * correct method must be called which should match the underlying
+     * image type, otherwise an exception will be thrown.
+     *
+     * \param idx the zero based index into the image. It's length
+     * must be at least the value of GetDimension(), additional
+     * elements will be ignored. Boundary checking is performed on
+     * idx, if it is out of bounds an exception will be thrown.
+     * \param v value to set the pixel to
+     *
+     * \sa Image::GetPixelIDValue
+     * @{
+     */
+    void SetPixelAsInt8( const std::vector<uint32_t> &idx, int8_t v );
+    void SetPixelAsUInt8( const std::vector<uint32_t> &idx, uint8_t v );
+    void SetPixelAsInt16( const std::vector<uint32_t> &idx, int16_t v );
+    void SetPixelAsUInt16( const std::vector<uint32_t> &idx, uint16_t v );
+    void SetPixelAsInt32( const std::vector<uint32_t> &idx, int32_t v );
+    void SetPixelAsUInt32( const std::vector<uint32_t> &idx, uint32_t v );
+    void SetPixelAsInt64( const std::vector<uint32_t> &idx, int64_t v );
+    void SetPixelAsUInt64( const std::vector<uint32_t> &idx, uint64_t v );
+    void SetPixelAsFloat( const std::vector<uint32_t> &idx, float v );
+    void SetPixelAsDouble( const std::vector<uint32_t> &idx, double v );
+
+    void SetPixelAsVectorInt8( const std::vector<uint32_t> &idx, const std::vector<int8_t> &v );
+    void SetPixelAsVectorUInt8( const std::vector<uint32_t> &idx, const std::vector<uint8_t> &v );
+    void SetPixelAsVectorInt16( const std::vector<uint32_t> &idx, const std::vector<int16_t> &v );
+    void SetPixelAsVectorUInt16( const std::vector<uint32_t> &idx, const std::vector<uint16_t> &v );
+    void SetPixelAsVectorInt32( const std::vector<uint32_t> &idx, const std::vector<int32_t> &v );
+    void SetPixelAsVectorUInt32( const std::vector<uint32_t> &idx, const std::vector<uint32_t> &v );
+    void SetPixelAsVectorInt64( const std::vector<uint32_t> &idx, const std::vector<int64_t> &v );
+    void SetPixelAsVectorUInt64( const std::vector<uint32_t> &idx, const std::vector<uint64_t> &v );
+    void SetPixelAsVectorFloat32( const std::vector<uint32_t> &idx, const std::vector<float> &v );
+    void SetPixelAsVectorFloat64( const std::vector<uint32_t> &idx, const std::vector<double> &v );
+
+    void SetPixelAsComplexFloat32( const std::vector<uint32_t> &idx, const std::complex<float> v );
+    void SetPixelAsComplexFloat64( const std::vector<uint32_t> &idx, const std::complex<double> v );
+
+    /** @} */
+
+   /** \brief Get a pointer to the image buffer
+     * \warning this is dangerous
+     *
+     * The size of the buffer is the number of components*Xsize*Ysize
+     * and then Zsize of a 3D image. The buffer should be accessed as
+     * a 1-D array. For example a 3D image buffer should be accessed:
+     * \code
+     * uint8_t *buffer = img->GetBufferAsUInt8();
+     * buffer[c + numComponents*(x+xSize*(y+ySize*z))]
+     * \endcode
+     *
+     * The pointer to the buffer is not referenced
+     * counted. Additionally, while this image is made unique before
+     * returnign the pointer, additional copying and usage may
+     * introduce unexpected aliasing.
+     *
+     * The correct method for the current pixel type of the image must
+     * be called or else an exception will be generated. For vector
+     * pixel types the type of the component of the vector must be called.
+     *
+     * \sa Image::GetPixelIDValue
+     * @{
+     */
+    int8_t   *GetBufferAsInt8( );
+    uint8_t  *GetBufferAsUInt8( );
+    int16_t  *GetBufferAsInt16( );
+    uint16_t *GetBufferAsUInt16( );
+    int32_t  *GetBufferAsInt32( );
+    uint32_t *GetBufferAsUInt32( );
+    int64_t  *GetBufferAsInt64( );
+    uint64_t *GetBufferAsUInt64( );
+    float    *GetBufferAsFloat( );
+    double   *GetBufferAsDouble( );
+
+    const int8_t   *GetBufferAsInt8( ) const;
+    const uint8_t  *GetBufferAsUInt8( ) const;
+    const int16_t  *GetBufferAsInt16( ) const;
+    const uint16_t *GetBufferAsUInt16( ) const;
+    const int32_t  *GetBufferAsInt32( ) const;
+    const uint32_t *GetBufferAsUInt32( ) const;
+    const int64_t  *GetBufferAsInt64( ) const;
+    const uint64_t *GetBufferAsUInt64( ) const;
+    const float    *GetBufferAsFloat( ) const;
+    const double   *GetBufferAsDouble( ) const;
+    /** @} */
+
+
+    /** \brief Performs actually coping if needed to make object unique.
+     *
+     * The Image class by default performs lazy coping and
+     * assignment. This method make sure that coping actually happens
+     * to the itk::Image pointed to is only pointed to by this object.
+     */
+    void MakeUnique( void );
+
+  protected:
+
+    /** \brief Methods called by the constructor to allocate and initialize
+     * an image.
+     *
+     * This method internally utlizes the member function factory to
+     * dispatch to methods instantiated on the image of the pixel ID
+     */
+    void Allocate ( unsigned int width, unsigned int height, unsigned int depth, unsigned int dim4, PixelIDValueEnum valueEnum, unsigned int numberOfComponents );
+
+    /** \brief Dispatched methods for allocating images
+     *
+     * The enable if idiom is used here to enable different methods
+     * for different pixel/image types.
+     *
+     * @{
+     */
+    template<class TImageType>
+    typename EnableIf<IsBasic<TImageType>::Value>::Type
+    AllocateInternal ( unsigned int width, unsigned int height, unsigned int depth, unsigned int dim4, unsigned int numberOfComponents );
+
+    template<class TImageType>
+    typename EnableIf<IsVector<TImageType>::Value>::Type
+    AllocateInternal ( unsigned int width, unsigned int height, unsigned int depth, unsigned int dim4, unsigned int numberOfComponents );
+
+    template<class TImageType>
+    typename EnableIf<IsLabel<TImageType>::Value>::Type
+    AllocateInternal ( unsigned int width, unsigned int height, unsigned int depth, unsigned int dim4, unsigned int numberOfComponents );
+    /**@}*/
+
+
+  private:
+
+   /** Method called by certain constructors to convert ITK images
+     * into simpleITK ones.
+     *
+     * This is the single method which needs to be explicitly
+     * instantiated to separate the internal ITK and Pimple image from
+     * the external SimpleITK interface. Template parameters have been
+     * choosen carefully to flexibly enable this.
+     */
+    template <int VPixelIDValue, unsigned int VImageDimension>
+    void InternalInitialization( typename PixelIDToImageType<typename typelist::TypeAt<InstantiatedPixelIDTypeList,
+                                                                                       VPixelIDValue>::Result,
+                                                             VImageDimension>::ImageType *i );
+
+    /** Dispatched from the InternalInitialization method. The enable
+     * if idiom is used here for method overloading. The second method
+     * is for non-instantiated image, which turn into a void pointer
+     * for the paramter. However, this second method should never be
+     * executed.
+     * @{
+     */
+    template<int VPixelIDValue, typename TImageType>
+    typename DisableIf<nsstd::is_same<TImageType, void>::value>::Type
+    ConditionalInternalInitialization( TImageType *i);
+
+    template<int VPixelIDValue, typename TImageType>
+    typename EnableIf<nsstd::is_same<TImageType, void>::value>::Type
+    ConditionalInternalInitialization( TImageType *) { assert( false ); }
+     /**@}*/
+
+    /** An addressor of AllocateInternal to be utilized with
+     * registering member functions with the factory.
+     */
+    template < class TMemberFunctionPointer >
+    struct AllocateMemberFunctionAddressor
+    {
+      typedef typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType ObjectType;
+
+      template< typename TImageType >
+      TMemberFunctionPointer operator() ( void ) const
+      {
+        return &ObjectType::template AllocateInternal< TImageType >;
+      }
+    };
+
+    PimpleImageBase *m_PimpleImage;
+  };
+
+}
+}
+
+#endif
diff --git a/Code/Common/include/sitkImageConvert.h b/Code/Common/include/sitkImageConvert.h
new file mode 100644
index 0000000..507d576
--- /dev/null
+++ b/Code/Common/include/sitkImageConvert.h
@@ -0,0 +1,115 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkImageConvert_h
+#define sitkImageConvert_h
+
+
+namespace itk
+{
+
+template< typename T, unsigned int NVectorDimension > class Vector;
+
+namespace simple
+{
+
+
+/** \brief A utility method to help convert between itk image types efficiently.
+ *
+ */
+template< typename TPixelType, unsigned int ImageDimension >
+SITKCommon_HIDDEN
+typename itk::Image< itk::Vector< TPixelType, ImageDimension >, ImageDimension>::Pointer
+GetImageFromVectorImage( itk::VectorImage< TPixelType, ImageDimension > *img, bool transferOwnership = false )
+{
+  typedef itk::Image< itk::Vector< TPixelType, ImageDimension >, ImageDimension> ImageType;
+  typedef itk::VectorImage< TPixelType, ImageDimension > VectorImageType;
+
+  // check number of element compatibility
+  if ( img->GetNumberOfComponentsPerPixel() != VectorImageType::ImageDimension )
+    {
+    sitkExceptionMacro("Expected number of elements in vector image to be the same as the dimension!");
+    }
+
+  size_t numberOfElements = img->GetBufferedRegion().GetNumberOfPixels();
+  typename ImageType::PixelType* buffer = reinterpret_cast<typename ImageType::PixelType*>( img->GetPixelContainer()->GetBufferPointer() );
+
+  if (!img->GetPixelContainer()->GetContainerManageMemory())
+    {
+    transferOwnership=false;
+    }
+
+  typename ImageType::Pointer out = ImageType::New();
+
+  out->CopyInformation( img );
+  out->SetRegions( img->GetBufferedRegion() );
+
+  // Set the image's pixel container to import the pointer provided.
+  out->GetPixelContainer()->SetImportPointer(buffer, numberOfElements, transferOwnership );
+  img->GetPixelContainer()->SetContainerManageMemory(!transferOwnership);
+
+  return out;
+
+}
+
+
+template< class TPixelType, unsigned int NImageDimension, unsigned int NLength >
+SITKCommon_HIDDEN
+typename itk::VectorImage< TPixelType, NImageDimension >::Pointer
+GetVectorImageFromImage( itk::Image< itk::Vector< TPixelType, NLength >, NImageDimension> *img, bool transferOwnership = false )
+{
+  typedef itk::VectorImage< TPixelType, NImageDimension > VectorImageType;
+
+  size_t numberOfElements = img->GetBufferedRegion().GetNumberOfPixels();
+  typename VectorImageType::InternalPixelType* buffer = reinterpret_cast<typename VectorImageType::InternalPixelType*>( img->GetPixelContainer()->GetBufferPointer() );
+
+  // Unlike an image of Vectors a VectorImage's container is a
+  // container of TPixelType, whos size is the image's number of
+  // pixels * number of pixels per component
+  numberOfElements *= NImageDimension;
+
+
+  if (!img->GetPixelContainer()->GetContainerManageMemory())
+    {
+    transferOwnership=false;
+    }
+
+
+  typename VectorImageType::Pointer out = VectorImageType::New();
+
+  // Set the image's pixel container to import the pointer provided.
+  out->GetPixelContainer()->SetImportPointer(buffer, numberOfElements, transferOwnership );
+  img->GetPixelContainer()->SetContainerManageMemory(!transferOwnership);
+  out->CopyInformation( img );
+  out->SetRegions( img->GetBufferedRegion() );
+
+  return out;
+}
+
+
+template< class TPixelType, unsigned int NImageDimension >
+SITKCommon_HIDDEN
+typename itk::VectorImage< TPixelType, NImageDimension >::Pointer
+GetVectorImageFromImage( itk::Image< itk::Vector< TPixelType, NImageDimension >, NImageDimension> *img, bool transferOwnership = false )
+{
+  return GetVectorImageFromImage<TPixelType,NImageDimension,NImageDimension>(img, transferOwnership);
+}
+
+}
+}
+
+#endif // sitkImageConvert_h
diff --git a/Code/Common/include/sitkInterpolator.h b/Code/Common/include/sitkInterpolator.h
new file mode 100644
index 0000000..36b3b49
--- /dev/null
+++ b/Code/Common/include/sitkInterpolator.h
@@ -0,0 +1,119 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkInterpolator_h
+#define sitkInterpolator_h
+
+#include "sitkCommon.h"
+#include <ostream>
+
+
+namespace itk
+{
+namespace simple
+{
+
+enum InterpolatorEnum {
+  /** \brief Nearest-neighbor interpolation
+   * \sa itk::NearestNeighborInterpolateImageFunction
+   */
+  sitkNearestNeighbor = 1,
+
+  /** \brief N-D linear interpolation
+   * \sa itk::LinearInterpolateImageFunction
+   */
+  sitkLinear = 2,
+
+  /** \brief B-Spline of order 3 interpolation
+   * \sa itk::BSplineInterpolateImageFunction
+   */
+  sitkBSpline = 3,
+
+  /** \brief Gaussian interpolation
+   *
+   * Sigma is set to 0.8 input pixels and alpha is 4.0
+   *
+   * \sa itk::GaussianInterpolateImageFunction
+   */
+  sitkGaussian = 4,
+
+  /** \brief Smoothly interpolate multi-label images
+   *
+   * Sigma is set to 1.0 input pixels and alpha is 1.0
+   *
+   * \sa itk:LabelImageGaussianInterpolateImageFunction
+   */
+  sitkLabelGaussian = 5,
+
+  /** \brief Windowed sinc interpolation
+   *
+   * \f[ w(x) = 0.54 + 0.46 cos(\frac{\pi x}{m} ) \f]
+   *
+   * \sa itk::WindowedSincInterpolateImageFunction
+   * \sa itk::Function::HammingWindowFunction
+   */
+  sitkHammingWindowedSinc = 6,
+
+  /** \brief Windowed sinc interpolation
+   *
+   * \f[ w(x) = cos(\frac{\pi x}{2 m} ) \f]
+   *
+   * \sa itk::WindowedSincInterpolateImageFunction
+   * \sa itk::Function::CosineWindowFunction
+   */
+  sitkCosineWindowedSinc = 7,
+
+  /** \brief Windowed sinc interpolation
+   *
+   * \f[ w(x) = 1 - ( \frac{x^2}{m^2} ) \f]
+   *
+   * \sa itk::WindowedSincInterpolateImageFunction
+   * \sa itk::Function::WelchWindowFunction
+   */
+  sitkWelchWindowedSinc = 8,
+
+  /** \brief Windowed sinc interpolation
+   *
+   * \f[ w(x) = \textrm{sinc} ( \frac{x}{m} ) \f]
+   *
+   * \sa itk::WindowedSincInterpolateImageFunction
+   * \sa itk::Function::LanczosWindowFunction
+   */
+  sitkLanczosWindowedSinc = 9,
+
+  /** \brief Windowed sinc interpolation
+   *
+   * \f[ w(x) = 0.42 + 0.5 cos(\frac{\pi x}{m}) + 0.08 cos(\frac{2 \pi x}{m}) \f]
+   *
+   * \sa itk::WindowedSincInterpolateImageFunction
+   * \sa itk::Function::BlackmanWindowFunction
+   */
+  sitkBlackmanWindowedSinc = 10
+};
+
+#ifndef SWIG
+/**
+ * Convert Interpolator enum to a string for printing etc..
+ */
+SITKCommon_EXPORT std::ostream& operator<<(std::ostream& os, const InterpolatorEnum i);
+#endif
+
+} // end namespace simple
+} // end namespace itk
+
+
+#endif // sitkInterpolator_h
diff --git a/Code/Common/include/sitkKernel.h b/Code/Common/include/sitkKernel.h
new file mode 100644
index 0000000..2d51ca7
--- /dev/null
+++ b/Code/Common/include/sitkKernel.h
@@ -0,0 +1,51 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkKernel_h
+#define sitkKernel_h
+
+#include "sitkCommon.h"
+#include <ostream>
+
+namespace itk
+{
+namespace simple
+{
+
+enum KernelEnum {
+  sitkAnnulus,
+  sitkBall,
+  sitkBox,
+  sitkCross,
+  sitkPolygon3,
+  sitkPolygon4,
+  sitkPolygon5,
+  sitkPolygon6,
+  sitkPolygon7,
+  sitkPolygon8,
+  sitkPolygon9
+};
+
+#ifndef SWIG
+SITKCommon_EXPORT std::ostream& operator<<(std::ostream& os, const KernelEnum k);
+#endif
+
+} // end namespace simple
+} // end namespace itk
+
+
+#endif // sitkKernel_h
diff --git a/Code/Common/include/sitkMacro.h b/Code/Common/include/sitkMacro.h
new file mode 100644
index 0000000..d4c1fec
--- /dev/null
+++ b/Code/Common/include/sitkMacro.h
@@ -0,0 +1,137 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkMacro_h
+#define sitkMacro_h
+
+#include <stdint.h>
+#include <stddef.h>
+#include <cassert>
+#include <sstream>
+#include <limits>
+
+#include "sitkConfigure.h"
+
+
+// Setup symbol exports
+//
+#if defined _WIN32 || defined __CYGWIN__
+   #ifdef __GNUC__
+    #define SITK_ABI_EXPORT __attribute__ ((dllexport))
+    #define SITK_ABI_IMPORT __attribute__ ((dllimport))
+    #define SITK_ABI_HIDDEN
+  #else
+    #define SITK_ABI_EXPORT __declspec(dllexport) // Note: actually gcc seems to also supports this syntax.
+    #define SITK_ABI_IMPORT __declspec(dllimport) // Note: actually gcc seems to also supports this syntax.
+    #define SITK_ABI_HIDDEN
+  #endif
+#else
+  #if __GNUC__ >= 4
+    #define SITK_ABI_EXPORT __attribute__ ((visibility ("default")))
+    #define SITK_ABI_IMPORT __attribute__ ((visibility ("default")))
+    #define SITK_ABI_HIDDEN  __attribute__ ((visibility ("hidden")))
+  #else
+    #define SITK_ABI_EXPORT
+    #define SITK_ABI_IMPORT
+    #define SITK_ABI_HIDDEN
+  #endif
+#endif
+
+
+#if __cplusplus >= 201103L
+// In c++11 the override keyword allows you to explicity define that a function
+// is intended to override the base-class version.  This makes the code more
+// managable and fixes a set of common hard-to-find bugs.
+#define SITK_OVERRIDE override
+// In C++11 the throw-list specification has been deprecated,
+// replaced with the noexcept specifier. Using this function
+// specification adds the run-time check that the method does not
+// throw. If it does throw then std::terminate will be called.
+// Use cautiously.
+#define SITK_NOEXCEPT noexcept
+#else
+#define SITK_OVERRIDE
+#define SITK_NOEXCEPT throw()
+#endif
+
+#if defined(SITK_HAS_TEMPLATE_DISAMBIGUATOR_DEPENDENT_NAME)
+#define CLANG_TEMPLATE template
+#else
+#define CLANG_TEMPLATE
+#endif
+
+
+
+#if  !defined(SITK_RETURN_SELF_TYPE_HEADER)
+#define SITK_RETURN_SELF_TYPE_HEADER Self &
+#endif
+
+namespace itk {
+
+namespace simple {
+
+class GenericException;
+
+#define sitkExceptionMacro(x)                                           \
+  {                                                                     \
+    std::ostringstream message;                                         \
+    message << "sitk::ERROR: " x;                                       \
+    throw ::itk::simple::GenericException(__FILE__, __LINE__, message.str().c_str()); \
+  }
+
+#if defined(SITK_HAS_CXX11_NULLPTR) && !defined(SITK_HAS_TR1_SUB_INCLUDE)
+#define SITK_NULLPTR nullptr
+#else
+#define SITK_NULLPTR NULL
+#endif
+
+
+#define sitkMacroJoin( X, Y ) sitkDoMacroJoin( X, Y )
+#define sitkDoMacroJoin( X, Y ) sitkDoMacroJoin2(X,Y)
+#define sitkDoMacroJoin2( X, Y ) X##Y
+
+#ifdef SITK_HAS_CXX11_STATIC_ASSERT
+// utilize the c++11 static_assert if available
+#define sitkStaticAssert( expr, str) static_assert( expr, str )
+#else
+
+template<bool> struct StaticAssertFailure;
+template<> struct StaticAssertFailure<true>{ enum { Value = 1 }; };
+
+#define sitkStaticAssert( expr, str ) enum { sitkMacroJoin( static_assert_typedef, __LINE__) = sizeof( itk::simple::StaticAssertFailure<((expr) == 0 ? false : true )> ) };
+
+
+#endif
+}
+}
+
+#define sitkPragma(x) _Pragma (#x)
+
+#if defined(__clang__) && defined(__has_warning)
+#define sitkClangDiagnosticPush()       sitkPragma( clang diagnostic push )
+#define sitkClangDiagnosticPop()        sitkPragma( clang diagnostic pop )
+#define sitkClangWarningIgnore_0(x)
+#define sitkClangWarningIgnore_1(x)  sitkPragma( clang diagnostic ignored x)
+#define sitkClangWarningIgnore(x)    sitkMacroJoin( sitkClangWarningIgnore_, __has_warning(x) )(x)
+#else
+#define sitkClangDiagnosticPush()
+#define sitkClangDiagnosticPop()
+#define sitkClangWarningIgnore(x)
+#endif
+
+
+#endif
diff --git a/Code/Common/include/sitkMemberFunctionFactory.h b/Code/Common/include/sitkMemberFunctionFactory.h
new file mode 100644
index 0000000..c2ca7c6
--- /dev/null
+++ b/Code/Common/include/sitkMemberFunctionFactory.h
@@ -0,0 +1,165 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkMemberFunctionFactory_h
+#define sitkMemberFunctionFactory_h
+
+#include "sitkDetail.h"
+#include "sitkMemberFunctionFactoryBase.h"
+#include "sitkPixelIDValues.h"
+
+namespace itk
+{
+namespace simple
+{
+// this namespace is internal classes not part of the external simple ITK interface
+namespace detail {
+
+/** \class MemberFunctionFactory
+ * \brief A class used to instantiate and generate function object to
+ *  templated member functions.
+ *
+ *  \tparam TMemberFunctionPointer is the type of pointer to member
+ *  function
+ *
+ *  Example member function pointer:
+ *  \code
+ *  typedef Self& (Self::*MemberFunctionType)( Image* );
+ *  \endcode
+ *
+ *  The RegisterMemberFunctions instantiate the templeted member
+ *  functions and registers the member function pointer, so that it
+ *  be used for dispatch later. Later they can be retrieve
+ *  with the GetMemberFunction methods, which return a function object
+ *  with the same arguments as the templated member function pointer.
+ *
+ *  An instance of a MemberFunctionFactory is bound to a specific
+ *  instance of an object, so that the returned function object does
+ *  not need to have the calling object specified.
+ */
+template <typename TMemberFunctionPointer>
+class MemberFunctionFactory
+  : protected MemberFunctionFactoryBase<TMemberFunctionPointer, int>
+{
+
+public:
+
+  typedef MemberFunctionFactoryBase<TMemberFunctionPointer, int> Superclass;
+  typedef MemberFunctionFactory                                  Self;
+
+  typedef TMemberFunctionPointer                                           MemberFunctionType;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::ClassType ObjectType;
+  typedef typename Superclass::FunctionObjectType                          FunctionObjectType;
+
+  /** \brief Constructor which permanently binds the constructed
+  * object to pObject */
+  MemberFunctionFactory( ObjectType *pObject );
+
+  /** \brief Registers a specific member function.
+   *
+   * Registers a member function which will be dispatched to the
+   * TImageType  type
+   */
+  template< typename TImageType >
+  void Register( MemberFunctionType pfunc,  TImageType*  );
+
+  /** \brief Registers all member functions in TPixelIDTypeList and
+   * simple::InstantiatedPixelIDTypeList over itk::Image<Pixel,
+   * ImageDimension>
+   *
+   *  \tparam TAddressor is the type of a class who as a
+   *  templated operator() which returns TMemberFunctionPointer, this
+   *  will default to detail::MemberFunctionAddressor if not specified
+   *
+   * Example usage:
+   * \code
+   * template < class TMemberFunctionPointer >
+   * struct AllocateAddressor
+   * {
+   *   typedef typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType ObjectType;
+   *
+   *   template< typename TImageType >
+   *   TMemberFunctionPointer operator() ( void ) const
+   *     {
+   *       return &ObjectType::template AllocateInternal< TImageType >;
+   *     }
+   * };
+   *
+   * this->m_MemberFunctionFactory->RegisterMemberFunctions<PixelIDTypeList,
+   *                                                        3,
+   *                                                        AllocateAddressor<TMFP> > ();
+   * \endcode
+   *
+   *
+   * Example usage:
+   * \code
+   * this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 3 > ();
+   * this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 2 > ();
+   * \endcode
+   * @{
+   */
+  template < typename TPixelIDTypeList,
+             unsigned int VImageDimension,
+             typename TAddressor >
+  void RegisterMemberFunctions( void );
+  template < typename TPixelIDTypeList, unsigned int VImageDimension >
+  void RegisterMemberFunctions( void )
+  {
+    typedef detail::MemberFunctionAddressor< TMemberFunctionPointer > AddressorType;
+    this->RegisterMemberFunctions< TPixelIDTypeList, VImageDimension, AddressorType >();
+  }
+  /** @} */
+
+  /** \brief Query to determine if an member function has been
+    * registered for pixelID and imageDimension
+    */
+  bool HasMemberFunction( PixelIDValueType pixelID, unsigned int imageDimension  ) const throw();
+
+  /** \brief Returns a function object for the PixelIndex, and image
+   *  dimension.
+   *
+   *  pixelID is the value of Image::GetPixelIDValue(), or
+   *  PixelIDToPixelIDValue<PixelIDType>::Result
+   *
+   *  imageDimension is the the value returned by Image::GetDimension()
+   *
+   *  Example usage:
+   *  \code
+   *  PixelIDValueType pixelID = image->GetPixelIDValue();
+   *  unsigned int dimension = image->GetDimension();
+   *  return this->m_MemberFactory->GetMemberFunction( pixelID, dimension )( image );
+   *  \endcode
+   *
+   *  If the requested member function is not registered then an
+   *  exception is generated. The returned function object is
+   *  guaranteed to be valid.
+   */
+  FunctionObjectType GetMemberFunction( PixelIDValueType pixelID, unsigned int imageDimension  );
+
+protected:
+
+  ObjectType *m_ObjectPointer;
+
+};
+
+} // end namespace detail
+} // end namespace simple
+} // end namespace itk
+
+#include "sitkMemberFunctionFactory.hxx"
+
+#endif //  sitkMemberFunctionFactory_h
diff --git a/Code/Common/include/sitkMemberFunctionFactory.hxx b/Code/Common/include/sitkMemberFunctionFactory.hxx
new file mode 100644
index 0000000..c2057b7
--- /dev/null
+++ b/Code/Common/include/sitkMemberFunctionFactory.hxx
@@ -0,0 +1,224 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkMemberFunctionFactory_hxx
+#define sitkMemberFunctionFactory_hxx
+
+#include <cassert>
+
+#include "sitkMemberFunctionFactory.h"
+#include "sitkDetail.h"
+#include "sitkPixelIDTokens.h"
+#include "sitkEnableIf.h"
+#include "sitkExceptionObject.h"
+
+namespace itk
+{
+namespace simple
+{
+// this namespace is internal classes not part of the external simple ITK interface
+namespace detail {
+
+
+// a privately declared predicate for use with the typelist::ForEach
+// algorithm
+//
+// This predicate calls the provided AddressorType on
+// each valid ImageType defined from the pixel type id, and the
+// provided dimension
+template < typename TMemberFunctionFactory, unsigned int VImageDimension, typename TAddressor >
+struct MemberFunctionInstantiater
+{
+  MemberFunctionInstantiater( TMemberFunctionFactory &factory )
+    : m_Factory( factory )
+    {}
+
+  template <class TPixelIDType>
+  typename EnableIf< IsInstantiated<TPixelIDType, VImageDimension >::Value >::Type
+  operator()( TPixelIDType*id=NULL ) const
+    {
+      Unused( id );
+      typedef typename PixelIDToImageType<TPixelIDType, VImageDimension>::ImageType ImageType;
+      typedef TAddressor                                                            AddressorType;
+
+      AddressorType addressor;
+      m_Factory.Register(addressor.CLANG_TEMPLATE operator()<ImageType>(), (ImageType*)(NULL));
+
+    }
+
+  // this methods is conditionally enabled when the PixelID is not instantiated
+  template <class TPixelIDType>
+  typename DisableIf< IsInstantiated<TPixelIDType, VImageDimension>::Value >::Type
+  operator()( TPixelIDType*id=NULL ) const
+  {
+    Unused( id );
+  }
+
+private:
+
+  TMemberFunctionFactory &m_Factory;
+};
+
+template <typename TMemberFunctionPointer>
+MemberFunctionFactory<TMemberFunctionPointer>
+::MemberFunctionFactory( typename MemberFunctionFactory::ObjectType *pObject )
+  : m_ObjectPointer( pObject )
+{
+  assert( pObject );
+}
+
+template <typename TMemberFunctionPointer>
+template<typename TImageType >
+void MemberFunctionFactory<TMemberFunctionPointer>
+::Register( typename MemberFunctionFactory::MemberFunctionType pfunc,  TImageType*  )
+{
+  PixelIDValueType pixelID = ImageTypeToPixelIDValue<TImageType>::Result;
+
+  // this shouldn't occour, just may be useful for debugging
+  assert( pixelID >= 0 && pixelID < typelist::Length< InstantiatedPixelIDTypeList >::Result );
+
+  sitkStaticAssert( IsInstantiated<TImageType>::Value,
+                    "UnInstantiated ImageType or dimension");
+
+  if ( pixelID >= 0 && pixelID < typelist::Length< InstantiatedPixelIDTypeList >::Result )
+    {
+    switch( int(TImageType::ImageDimension) )
+      {
+      case 4:
+        Superclass::m_PFunction4[ pixelID ] = Superclass::BindObject( pfunc, m_ObjectPointer );
+        break;
+      case 3:
+        Superclass::m_PFunction3[ pixelID ] = Superclass::BindObject( pfunc, m_ObjectPointer );
+        break;
+      case 2:
+        Superclass::m_PFunction2[ pixelID ] = Superclass::BindObject( pfunc, m_ObjectPointer );
+        break;
+      default:
+        break;
+      }
+    }
+}
+
+template <typename TMemberFunctionPointer>
+template <typename TPixelIDTypeList,
+          unsigned int VImageDimension,
+          typename TAddressor>
+void MemberFunctionFactory<TMemberFunctionPointer>
+::RegisterMemberFunctions( void )
+{
+  typedef MemberFunctionInstantiater< MemberFunctionFactory, VImageDimension,TAddressor > InstantiaterType;
+
+  // visit each type in the list, and register if instantiated
+  typelist::Visit<TPixelIDTypeList> visitEachType;
+  visitEachType( InstantiaterType( *this ) );
+}
+
+
+template <typename TMemberFunctionPointer>
+bool
+MemberFunctionFactory< TMemberFunctionPointer >
+::HasMemberFunction( PixelIDValueType pixelID, unsigned int imageDimension  ) const throw()
+{
+
+  try
+    {
+    switch ( imageDimension )
+      {
+      case 4:
+        // check if tr1::function has been set in map
+        return Superclass::m_PFunction4.find( pixelID ) != Superclass::m_PFunction4.end();
+      case 3:
+        // check if tr1::function has been set in map
+        return Superclass::m_PFunction3.find( pixelID ) != Superclass::m_PFunction3.end();
+      case 2:
+        // check if tr1::function has been set in map
+        return Superclass::m_PFunction2.find( pixelID ) != Superclass::m_PFunction2.end();
+      default:
+        return false;
+      }
+    }
+  // we do not throw exceptions
+  catch(...)
+    {
+    return false;
+    }
+}
+
+
+template <typename TMemberFunctionPointer>
+typename MemberFunctionFactory<TMemberFunctionPointer>::FunctionObjectType
+MemberFunctionFactory<TMemberFunctionPointer>
+::GetMemberFunction( PixelIDValueType pixelID, unsigned int imageDimension  )
+{
+  if ( pixelID >= typelist::Length< InstantiatedPixelIDTypeList >::Result || pixelID < 0 )
+    {
+    sitkExceptionMacro ( << "unexpected error pixelID is out of range " << pixelID << " "  << typeid(ObjectType).name() );
+    }
+
+  switch ( imageDimension )
+    {
+    case 4:
+      // check if tr1::function has been set
+      if ( Superclass::m_PFunction4.find( pixelID ) != Superclass::m_PFunction4.end() )
+        {
+        return Superclass::m_PFunction4[ pixelID ];
+        }
+
+      sitkExceptionMacro ( << "Pixel type: "
+                           << GetPixelIDValueAsString(pixelID)
+                           << " is not supported in 4D by "
+                           << typeid(ObjectType).name()
+                           << " or SimpleITK compiled with SimpleITK_4D_IMAGES set to OFF." );
+    case 3:
+      // check if tr1::function has been set
+      if ( Superclass::m_PFunction3.find( pixelID ) != Superclass::m_PFunction3.end() )
+        {
+        return Superclass::m_PFunction3[ pixelID ];
+        }
+
+      sitkExceptionMacro ( << "Pixel type: "
+                           << GetPixelIDValueAsString(pixelID)
+                           << " is not supported in 3D by"
+                           << typeid(ObjectType).name() );
+
+      break;
+    case 2:
+      // check if tr1::function has been set
+      if (  Superclass::m_PFunction2.find( pixelID ) != Superclass::m_PFunction2.end() )
+        {
+        return Superclass::m_PFunction2[ pixelID ];
+        }
+
+        sitkExceptionMacro ( << "Pixel type: "
+                             << GetPixelIDValueAsString(pixelID)
+                             << " is not supported in 2D by"
+                             << typeid(ObjectType).name() );
+
+      break;
+    default:
+      sitkExceptionMacro ( << "Image dimension " << imageDimension << " is not supported" );
+      throw;
+    }
+}
+
+
+} // end namespace detail
+} // end namespace simple
+} // end namespace itk
+
+
+#endif //  sitkMemberFunctionFactory_h
diff --git a/Code/Common/include/sitkMemberFunctionFactoryBase.h b/Code/Common/include/sitkMemberFunctionFactoryBase.h
new file mode 100644
index 0000000..f20fd71
--- /dev/null
+++ b/Code/Common/include/sitkMemberFunctionFactoryBase.h
@@ -0,0 +1,459 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkMemberFunctionFactoryBase_h
+#define sitkMemberFunctionFactoryBase_h
+
+#include "sitkConfigure.h"
+
+#include "nsstd/functional.h"
+
+#include "sitkPixelIDTypes.h"
+#include "sitkPixelIDTypeLists.h"
+#include "sitkMacro.h"
+#include "sitkNonCopyable.h"
+
+#include "Ancillary/TypeList.h"
+#include "Ancillary/FunctionTraits.h"
+
+#if defined SITK_HAS_UNORDERED_MAP
+#include "nsstd/unordered_map.h"
+#else
+#include <map>
+#endif
+
+namespace itk
+{
+namespace simple
+{
+
+// this namespace is internal classes not part of the external simple ITK interface
+namespace detail {
+
+
+#if defined SITK_HAS_UNORDERED_MAP
+
+template <typename T> struct hash : public nsstd::hash<T>{};
+
+/** \brief A specialization of the hash function.
+ */
+template <>
+struct hash< std::pair<int, int> >
+  : public std::unary_function<std::pair<int,int>, std::size_t> {
+  std::size_t operator()( const std::pair<int, int > &p ) const
+    { return nsstd::hash<size_t>()( size_t(p.first) * prime + p.second ); }
+private:
+  static const std::size_t prime = 16777619u;
+};
+#endif
+
+template< typename TMemberFunctionPointer,
+          typename TKey,
+          unsigned int TArity = ::detail::FunctionTraits<TMemberFunctionPointer>::arity>
+class MemberFunctionFactoryBase;
+
+
+/** \class MemberFunctionFactoryBase
+ * \brief A base class for the MemberFunctionFactory
+ *
+ *  This class is for specialization needed for different arity for
+ *  the templated member function pointer
+ */
+template< typename TMemberFunctionPointer, typename TKey>
+class MemberFunctionFactoryBase<TMemberFunctionPointer, TKey, 0> :
+    protected NonCopyable
+{
+protected:
+
+  typedef TMemberFunctionPointer                                               MemberFunctionType;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::ClassType     ObjectType;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::ResultType    MemberFunctionResultType;
+
+
+  MemberFunctionFactoryBase( void )
+#if defined SITK_HAS_UNORDERED_MAP
+    :  m_PFunction4( typelist::Length<InstantiatedPixelIDTypeList>::Result ),
+       m_PFunction3( typelist::Length<InstantiatedPixelIDTypeList>::Result ),
+       m_PFunction2( typelist::Length<InstantiatedPixelIDTypeList>::Result )
+#endif
+    { }
+
+public:
+
+  /**  the pointer MemberFunctionType redefined ad a tr1::function
+   * object */
+  typedef nsstd::function< MemberFunctionResultType ( ) > FunctionObjectType;
+
+
+protected:
+
+  typedef TKey KeyType;
+
+  /** A function which binds the objectPointer to the calling object
+   *  argument in the member function pointer, and returns a function
+   *  object.
+   */
+  static FunctionObjectType  BindObject( MemberFunctionType pfunc, ObjectType *objectPointer)
+    {
+
+      // this is really only needed because std::bind1st does not work
+      // with tr1::function... that is with tr1::bind, we need to
+      // specify the other arguments, and can't just bind the first
+      return nsstd::bind( pfunc,objectPointer );
+    }
+
+  // maps of Keys to pointers to member functions
+#if defined SITK_HAS_UNORDERED_MAP
+  nsstd::unordered_map< TKey, FunctionObjectType, hash<TKey> > m_PFunction4;
+  nsstd::unordered_map< TKey, FunctionObjectType, hash<TKey> > m_PFunction3;
+  nsstd::unordered_map< TKey, FunctionObjectType, hash<TKey> > m_PFunction2;
+#else
+  std::map<TKey, FunctionObjectType> m_PFunction4;
+  std::map<TKey, FunctionObjectType> m_PFunction3;
+  std::map<TKey, FunctionObjectType> m_PFunction2;
+#endif
+
+};
+
+
+/** \class MemberFunctionFactoryBase
+ * \brief A base class for the MemberFunctionFactory
+ *
+ *  This class is for specialization needed for different arity for
+ *  the templated member function pointer
+ */
+template< typename TMemberFunctionPointer, typename TKey>
+class MemberFunctionFactoryBase<TMemberFunctionPointer, TKey, 1> :
+    protected NonCopyable
+{
+protected:
+
+  typedef TMemberFunctionPointer                                               MemberFunctionType;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::ClassType     ObjectType;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::ResultType    MemberFunctionResultType;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::Argument0Type MemberFunctionArgumentType;
+
+
+  MemberFunctionFactoryBase( void )
+#if defined SITK_HAS_UNORDERED_MAP
+    :  m_PFunction4( typelist::Length<InstantiatedPixelIDTypeList>::Result ),
+       m_PFunction3( typelist::Length<InstantiatedPixelIDTypeList>::Result ),
+       m_PFunction2( typelist::Length<InstantiatedPixelIDTypeList>::Result )
+#endif
+    { }
+
+public:
+
+  /**  the pointer MemberFunctionType redefined ad a tr1::function
+   * object */
+  typedef nsstd::function< MemberFunctionResultType ( MemberFunctionArgumentType ) > FunctionObjectType;
+
+
+protected:
+
+  typedef TKey KeyType;
+
+  /** A function which binds the objectPointer to the calling object
+   *  argument in the member function pointer, and returns a function
+   *  object.
+   */
+  static FunctionObjectType  BindObject( MemberFunctionType pfunc, ObjectType *objectPointer)
+    {
+      // needed for _1 place holder
+      using namespace nsstd::placeholders;
+
+      // this is really only needed because std::bind1st does not work
+      // with tr1::function... that is with tr1::bind, we need to
+      // specify the other arguments, and can't just bind the first
+      return nsstd::bind( pfunc,objectPointer, _1 );
+    }
+
+
+  // maps of Keys to pointers to member functions
+#if defined SITK_HAS_UNORDERED_MAP
+  nsstd::unordered_map< TKey, FunctionObjectType, hash<TKey> > m_PFunction4;
+  nsstd::unordered_map< TKey, FunctionObjectType, hash<TKey> > m_PFunction3;
+  nsstd::unordered_map< TKey, FunctionObjectType, hash<TKey> > m_PFunction2;
+#else
+  std::map<TKey, FunctionObjectType> m_PFunction4;
+  std::map<TKey, FunctionObjectType> m_PFunction3;
+  std::map<TKey, FunctionObjectType> m_PFunction2;
+#endif
+
+
+};
+
+
+template< typename TMemberFunctionPointer, typename TKey>
+class MemberFunctionFactoryBase<TMemberFunctionPointer, TKey, 2> :
+    protected NonCopyable
+{
+protected:
+
+  typedef TMemberFunctionPointer                                               MemberFunctionType;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::ResultType    MemberFunctionResultType;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::Argument0Type MemberFunctionArgument0Type;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::Argument1Type MemberFunctionArgument1Type;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::ClassType     ObjectType;
+
+
+  MemberFunctionFactoryBase( void )
+#if defined SITK_HAS_UNORDERED_MAP
+    :  m_PFunction4( typelist::Length<InstantiatedPixelIDTypeList>::Result ),
+       m_PFunction3( typelist::Length<InstantiatedPixelIDTypeList>::Result ),
+       m_PFunction2( typelist::Length<InstantiatedPixelIDTypeList>::Result )
+#endif
+    { }
+
+public:
+
+  /**  the pointer MemberFunctionType redefined ad a tr1::function
+   * object
+   */
+  typedef nsstd::function< MemberFunctionResultType ( MemberFunctionArgument0Type,  MemberFunctionArgument1Type) > FunctionObjectType;
+
+
+protected:
+
+  typedef TKey KeyType;
+
+  /** A function which binds the objectPointer to the calling object
+   *  argument in the member function pointer, and returns a function
+   *  object
+   */
+  static FunctionObjectType  BindObject( MemberFunctionType pfunc, ObjectType *objectPointer)
+    {
+      // needed for _1 place holder
+      using namespace nsstd::placeholders;
+
+      // this is really only needed because std::bind1st does not work
+      // with tr1::function... that is with tr1::bind, we need to
+      // specify the other arguments, and can't just bind the first
+      return nsstd::bind( pfunc, objectPointer, _1, _2 );
+    }
+
+
+  // maps of Keys to pointers to member functions
+#if defined SITK_HAS_UNORDERED_MAP
+  nsstd::unordered_map< TKey, FunctionObjectType, hash<TKey> > m_PFunction4;
+  nsstd::unordered_map< TKey, FunctionObjectType, hash<TKey> > m_PFunction3;
+  nsstd::unordered_map< TKey, FunctionObjectType, hash<TKey> > m_PFunction2;
+#else
+  std::map<TKey, FunctionObjectType> m_PFunction4;
+  std::map<TKey, FunctionObjectType> m_PFunction3;
+  std::map<TKey, FunctionObjectType> m_PFunction2;
+#endif
+
+
+};
+
+
+template< typename TMemberFunctionPointer, typename TKey>
+class MemberFunctionFactoryBase<TMemberFunctionPointer, TKey, 3> :
+    protected NonCopyable
+{
+protected:
+
+  typedef TMemberFunctionPointer                                               MemberFunctionType;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::ResultType    MemberFunctionResultType;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::Argument0Type MemberFunctionArgument0Type;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::Argument1Type MemberFunctionArgument1Type;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::Argument2Type MemberFunctionArgument2Type;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::ClassType     ObjectType;
+
+
+  MemberFunctionFactoryBase( void )
+#if defined SITK_HAS_UNORDERED_MAP
+    :  m_PFunction4( typelist::Length<InstantiatedPixelIDTypeList>::Result ),
+       m_PFunction3( typelist::Length<InstantiatedPixelIDTypeList>::Result ),
+       m_PFunction2( typelist::Length<InstantiatedPixelIDTypeList>::Result )
+#endif
+    { }
+
+public:
+
+  /**  the pointer MemberFunctionType redefined ad a tr1::function
+   * object */
+  typedef nsstd::function< MemberFunctionResultType ( MemberFunctionArgument0Type, MemberFunctionArgument1Type,  MemberFunctionArgument2Type) > FunctionObjectType;
+
+
+protected:
+
+  typedef TKey KeyType;
+
+  /** A function which binds the objectPointer to the calling object
+   *  argument in the member function pointer, and returns a function
+   *  object
+   */
+  static FunctionObjectType  BindObject( MemberFunctionType pfunc, ObjectType *objectPointer)
+    {
+      // needed for _1 place holder
+      using namespace nsstd::placeholders;
+
+      // this is really only needed because std::bind1st does not work
+      // with tr1::function... that is with tr1::bind, we need to
+      // specify the other arguments, and can't just bind the first
+      return nsstd::bind( pfunc, objectPointer, _1, _2, _3 );
+    }
+
+
+  // maps of Keys to pointers to member functions
+#if defined SITK_HAS_UNORDERED_MAP
+  nsstd::unordered_map< TKey, FunctionObjectType, hash<TKey> > m_PFunction4;
+  nsstd::unordered_map< TKey, FunctionObjectType, hash<TKey> > m_PFunction3;
+  nsstd::unordered_map< TKey, FunctionObjectType, hash<TKey> > m_PFunction2;
+#else
+  std::map<TKey, FunctionObjectType> m_PFunction4;
+  std::map<TKey, FunctionObjectType> m_PFunction3;
+  std::map<TKey, FunctionObjectType> m_PFunction2;
+#endif
+
+};
+
+
+template< typename TMemberFunctionPointer, typename TKey>
+class MemberFunctionFactoryBase<TMemberFunctionPointer, TKey, 4> :
+    protected NonCopyable
+{
+protected:
+
+  typedef TMemberFunctionPointer                                               MemberFunctionType;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::ResultType    MemberFunctionResultType;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::Argument0Type MemberFunctionArgument0Type;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::Argument1Type MemberFunctionArgument1Type;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::Argument2Type MemberFunctionArgument2Type;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::Argument3Type MemberFunctionArgument3Type;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::ClassType     ObjectType;
+
+
+  MemberFunctionFactoryBase( void )
+#if defined SITK_HAS_UNORDERED_MAP
+    :  m_PFunction4( typelist::Length<InstantiatedPixelIDTypeList>::Result ),
+       m_PFunction3( typelist::Length<InstantiatedPixelIDTypeList>::Result ),
+       m_PFunction2( typelist::Length<InstantiatedPixelIDTypeList>::Result )
+#endif
+    { }
+
+public:
+
+  /**  the pointer MemberFunctionType redefined ad a tr1::function
+   * object */
+  typedef nsstd::function< MemberFunctionResultType ( MemberFunctionArgument0Type, MemberFunctionArgument1Type, MemberFunctionArgument2Type,  MemberFunctionArgument3Type) > FunctionObjectType;
+
+
+protected:
+
+  typedef TKey KeyType;
+
+  /** A function which binds the objectPointer to the calling object
+   *  argument in the member function pointer, and returns a function
+   *  object
+   */
+  static FunctionObjectType  BindObject( MemberFunctionType pfunc, ObjectType *objectPointer)
+    {
+      // needed for _1 place holder
+      using namespace nsstd::placeholders;
+
+      // this is really only needed because std::bind1st does not work
+      // with tr1::function... that is with tr1::bind, we need to
+      // specify the other arguments, and can't just bind the first
+      return nsstd::bind( pfunc, objectPointer, _1, _2, _3, _4 );
+    }
+
+
+  // maps of Keys to pointers to member functions
+#if defined SITK_HAS_UNORDERED_MAP
+  nsstd::unordered_map< TKey, FunctionObjectType, hash<TKey> > m_PFunction4;
+  nsstd::unordered_map< TKey, FunctionObjectType, hash<TKey> > m_PFunction3;
+  nsstd::unordered_map< TKey, FunctionObjectType, hash<TKey> > m_PFunction2;
+#else
+  std::map<TKey, FunctionObjectType> m_PFunction4;
+  std::map<TKey, FunctionObjectType> m_PFunction3;
+  std::map<TKey, FunctionObjectType> m_PFunction2;
+#endif
+
+};
+
+template< typename TMemberFunctionPointer, typename TKey>
+class MemberFunctionFactoryBase<TMemberFunctionPointer, TKey, 5> :
+    protected NonCopyable
+{
+protected:
+
+  typedef TMemberFunctionPointer                                               MemberFunctionType;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::ResultType    MemberFunctionResultType;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::Argument0Type MemberFunctionArgument0Type;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::Argument1Type MemberFunctionArgument1Type;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::Argument2Type MemberFunctionArgument2Type;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::Argument3Type MemberFunctionArgument3Type;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::Argument4Type MemberFunctionArgument4Type;
+  typedef typename ::detail::FunctionTraits<MemberFunctionType>::ClassType     ObjectType;
+
+
+  MemberFunctionFactoryBase( void )
+#if defined SITK_HAS_UNORDERED_MAP
+    :  m_PFunction4( typelist::Length<InstantiatedPixelIDTypeList>::Result ),
+       m_PFunction3( typelist::Length<InstantiatedPixelIDTypeList>::Result ),
+       m_PFunction2( typelist::Length<InstantiatedPixelIDTypeList>::Result )
+#endif
+    { }
+
+public:
+
+  /**  the pointer MemberFunctionType redefined ad a tr1::function
+   * object */
+  typedef nsstd::function< MemberFunctionResultType ( MemberFunctionArgument0Type, MemberFunctionArgument1Type, MemberFunctionArgument2Type, MemberFunctionArgument3Type,  MemberFunctionArgument4Type ) > FunctionObjectType;
+
+
+protected:
+
+  typedef TKey KeyType;
+
+  /** A function which binds the objectPointer to the calling object
+   *  argument in the member function pointer, and returns a function
+   *  object
+   */
+  static FunctionObjectType  BindObject( MemberFunctionType pfunc, ObjectType *objectPointer)
+    {
+      // needed for _1 place holder
+      using namespace nsstd::placeholders;
+
+      // this is really only needed because std::bind1st does not work
+      // with tr1::function... that is with tr1::bind, we need to
+      // specify the other arguments, and can't just bind the first
+      return nsstd::bind( pfunc, objectPointer, _1, _2, _3, _4, _5 );
+    }
+
+
+  // maps of Keys to pointers to member functions
+#if defined SITK_HAS_UNORDERED_MAP
+  nsstd::unordered_map< TKey, FunctionObjectType, hash<TKey> > m_PFunction4;
+  nsstd::unordered_map< TKey, FunctionObjectType, hash<TKey> > m_PFunction3;
+  nsstd::unordered_map< TKey, FunctionObjectType, hash<TKey> > m_PFunction2;
+#else
+  std::map<TKey, FunctionObjectType> m_PFunction4;
+  std::map<TKey, FunctionObjectType> m_PFunction3;
+  std::map<TKey, FunctionObjectType> m_PFunction2;
+#endif
+
+};
+
+} // end namespace detail
+} // end namespace simple
+} // end namespace itk
+
+#endif // sitkMemberFunctionFactoryBase_h
diff --git a/Code/Common/include/sitkNonCopyable.h b/Code/Common/include/sitkNonCopyable.h
new file mode 100644
index 0000000..333bb4e
--- /dev/null
+++ b/Code/Common/include/sitkNonCopyable.h
@@ -0,0 +1,76 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkNonCopyable_h
+#define sitkNonCopyable_h
+
+#include "sitkCommon.h"
+
+namespace itk
+{
+namespace simple
+{
+
+/** \class NonCopyable
+* \brief An inheratable class to disable copying of a class
+*
+* This class disable the implicit implementations of the assignment
+* and copy constructor for derived classes. The instantiation of the
+* default implementation for either method in a derived class will
+* result in a compile-time error because they are private in this
+* class. However, this policy is not absolute for derived classes
+* because explicit implementation of these methods could be
+* implemented.
+*
+* An advatange this apporach has is the class heiarchy makes it
+* obvious what the intent is, as compared to other appoaches.
+*
+* For example you should not be able to copy singleton object, because
+* there should only be one of them. To utilize this class just derive
+* from it:
+* \code
+* class Singleton
+*  : protected NonCopyable {...};
+* \endcode
+*
+*/
+class SITKCommon_EXPORT NonCopyable
+{
+protected:
+  NonCopyable() {}
+private:
+  NonCopyable &operator=( const NonCopyable & ); // Not implemented on purpose
+  NonCopyable( const NonCopyable & ); // Not implemented on purpose
+};
+
+#if SITK_EXPLICIT_DEFAULT_DELETE_FUNCTIONS
+
+// see other implementation for doxygen
+struct NonCopyable
+{
+  NonCopyable() = default;
+  NonCopyable &operator=( const NonCopyable & ) = delete;
+  NonCopyable( const NonCopyable & ) = delete;
+};
+
+#endif
+
+
+} // end namespace simple
+} // end namespace itk
+
+#endif //  sitkNonCopyable_h
diff --git a/Code/Common/include/sitkPixelIDTokens.h b/Code/Common/include/sitkPixelIDTokens.h
new file mode 100644
index 0000000..4683dc8
--- /dev/null
+++ b/Code/Common/include/sitkPixelIDTokens.h
@@ -0,0 +1,122 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkPixelIDTokens_h
+#define sitkPixelIDTokens_h
+
+#include "sitkConfigure.h"
+#include "sitkPixelIDValues.h"
+#include "nsstd/type_traits.h"
+
+
+namespace itk
+{
+namespace simple
+{
+
+typedef nsstd::true_type  TrueType;
+typedef nsstd::false_type FalseType;
+
+template <typename TPixelIDType>
+struct IsBasic
+{
+  static const bool                      Value = FalseType::value;
+  typedef typename FalseType::value_type ValueType;
+  typedef typename FalseType::type       Type;
+};
+template <typename TPixelType>
+struct IsBasic< BasicPixelID<TPixelType> >
+{
+  static const bool                     Value = TrueType::value;
+  typedef typename TrueType::value_type ValueType;
+  typedef typename TrueType::type       Type;
+};
+template <typename TPixelType, unsigned int VImageDimension>
+struct IsBasic< itk::Image< TPixelType, VImageDimension> >
+  : public IsBasic< typename ImageTypeToPixelID< itk::Image<TPixelType, VImageDimension> >::PixelIDType >
+{};
+
+
+template <typename TPixelIDType>
+struct IsVector
+{
+  static const bool                      Value = FalseType::value;
+  typedef typename FalseType::value_type ValueType;
+  typedef typename FalseType::type       Type;
+};
+template <typename TPixelType>
+struct IsVector< VectorPixelID<TPixelType> >
+{
+  static const bool                     Value = TrueType::value;
+  typedef typename TrueType::value_type ValueType;
+  typedef typename TrueType::type       Type;
+};
+template <typename TPixelType, unsigned int VImageDimension>
+struct IsVector< itk::VectorImage< TPixelType, VImageDimension> >
+  : public IsVector< typename ImageTypeToPixelID< itk::VectorImage<TPixelType, VImageDimension> >::PixelIDType >
+{};
+
+
+template <typename TPixelIDType>
+struct IsLabel
+{
+  static const bool                      Value = FalseType::value;
+  typedef typename FalseType::value_type ValueType;
+  typedef typename FalseType::type       Type;
+};
+template <typename TPixelType>
+struct IsLabel< LabelPixelID<TPixelType> >
+{
+  static const bool                     Value = TrueType::value;
+  typedef typename TrueType::value_type ValueType;
+  typedef typename TrueType::type       Type;
+};
+template <typename TLabelType, unsigned int VImageDimension>
+struct IsLabel< itk::LabelMap<  itk::LabelObject< TLabelType, VImageDimension > > >
+  : public IsLabel< typename ImageTypeToPixelID< itk::LabelMap< itk::LabelObject< TLabelType, VImageDimension > > >::PixelIDType >
+{};
+
+
+template <typename TPixelIDType, unsigned int VImageDimension =0>
+struct IsInstantiated
+{
+  static const bool Value = ((int)PixelIDToPixelIDValue<TPixelIDType>::Result != (int)sitkUnknown)
+    &&  ( (VImageDimension == 0)||(VImageDimension == 2) || (VImageDimension == 3)
+#ifdef SITK_4D_IMAGES
+          || (VImageDimension == 4)
+#endif
+      );
+  typedef typename nsstd::integral_constant<bool, Value>::value_type ValueType;
+  typedef typename nsstd::integral_constant<bool, Value>::type       Type;
+};
+          template <typename TPixelType, unsigned int VImageDimension >
+struct IsInstantiated< itk::Image< TPixelType, VImageDimension>, 0 >
+  : public IsInstantiated< typename ImageTypeToPixelID< itk::Image<TPixelType, VImageDimension> >::PixelIDType, VImageDimension >
+{};
+template <typename TPixelType, unsigned int VImageDimension>
+struct IsInstantiated< itk::VectorImage< TPixelType, VImageDimension>, 0 >
+  : public IsInstantiated< typename ImageTypeToPixelID< itk::VectorImage<TPixelType, VImageDimension> >::PixelIDType, VImageDimension >
+{};
+template <typename TLabelType, unsigned int VImageDimension>
+struct IsInstantiated< itk::LabelMap<  itk::LabelObject< TLabelType, VImageDimension > >, 0 >
+  : public IsInstantiated< typename ImageTypeToPixelID< itk::LabelMap< itk::LabelObject< TLabelType, VImageDimension > > >::PixelIDType, VImageDimension >
+{};
+
+}
+}
+
+#endif // _sitkPixelIDTokens_h
diff --git a/Code/Common/include/sitkPixelIDTypeLists.h b/Code/Common/include/sitkPixelIDTypeLists.h
new file mode 100644
index 0000000..3943f9c
--- /dev/null
+++ b/Code/Common/include/sitkPixelIDTypeLists.h
@@ -0,0 +1,212 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkPixelIDTypeLists_h
+#define sitkPixelIDTypeLists_h
+
+#include <stdint.h>
+
+#include "sitkConfigure.h"
+#include "sitkPixelIDTypes.h"
+
+#include "Ancillary/TypeList.h"
+
+#include <complex>
+
+namespace itk
+{
+namespace simple
+{
+
+
+/** List of all pixel ids for the itk::Image class.
+ *
+ * \todo adress vnl issues with long long types
+ *
+ * \sa BasicPixelID
+ */
+typedef typelist::MakeTypeList<BasicPixelID<int8_t>,
+                               BasicPixelID<uint8_t>,
+                               BasicPixelID<int16_t>,
+                               BasicPixelID<uint16_t>,
+                               BasicPixelID<int32_t>,
+                               BasicPixelID<uint32_t>,
+#ifdef SITK_INT64_PIXELIDS
+                               BasicPixelID<int64_t>,
+                               BasicPixelID<uint64_t>,
+#endif
+                               BasicPixelID<float>,
+                               BasicPixelID<double> >::Type BasicPixelIDTypeList;
+
+/** List of all single valued images of the itk::Image class.
+ *
+ * \sa BasicPixelID
+ */
+typedef BasicPixelIDTypeList ScalarPixelIDTypeList;
+
+
+/** List of pixel ids which are integer types for the itk::Image class.
+ *
+ * \sa BasicPixelID
+ */
+typedef typelist::MakeTypeList<BasicPixelID<int8_t>,
+                               BasicPixelID<uint8_t>,
+                               BasicPixelID<int16_t>,
+                               BasicPixelID<uint16_t>,
+                               BasicPixelID<int32_t>,
+                               BasicPixelID<uint32_t>
+#ifdef SITK_INT64_PIXELIDS
+                               , BasicPixelID<int64_t>,
+                               BasicPixelID<uint64_t>
+#endif
+                               >::Type IntegerPixelIDTypeList;
+
+/** List of pixel ids which are unsigned integer types for the itk::Image class.
+ *
+ * \sa BasicPixelID
+ */
+typedef typelist::MakeTypeList<BasicPixelID<uint8_t>,
+                               BasicPixelID<uint16_t>,
+                               BasicPixelID<uint32_t>
+#ifdef SITK_INT64_PIXELIDS
+                               , BasicPixelID<uint64_t>
+#endif
+                               >::Type UnsignedIntegerPixelIDTypeList;
+
+
+/** List of pixel ids which are real types for the itk::Image class.
+ *
+ * \sa BasicPixelID
+ */
+typedef typelist::MakeTypeList<BasicPixelID<float>,
+                               BasicPixelID<double> >::Type RealPixelIDTypeList;
+
+/** List of pixel ids which are std::complex types for the itk::Image class.
+ *
+ * \sa BasicPixelID
+ */
+typedef typelist::MakeTypeList< BasicPixelID<std::complex< float > >,
+                                BasicPixelID<std::complex< double > > >::Type ComplexPixelIDTypeList;
+
+/** List of pixel ids which are signed
+ *
+ * \sa BasicPixelID
+ */
+typedef typelist::MakeTypeList<BasicPixelID<int8_t>,
+                               BasicPixelID<int16_t>,
+                               BasicPixelID<int32_t>,
+#ifdef SITK_INT64_PIXELIDS
+                               BasicPixelID<int64_t>,
+#endif
+                               BasicPixelID<float>,
+                               BasicPixelID<double> >::Type SignedPixelIDTypeList;
+
+
+
+/** List of pixel ids which are vectors for itk::VectorImage class.
+ *
+ * \sa VectorPixelID
+ */
+typedef typelist::MakeTypeList<VectorPixelID<int8_t>,
+                               VectorPixelID<uint8_t>,
+                               VectorPixelID<int16_t>,
+                               VectorPixelID<uint16_t>,
+                               VectorPixelID<int32_t>,
+                               VectorPixelID<uint32_t>,
+#ifdef SITK_INT64_PIXELIDS
+                               VectorPixelID<int64_t>,
+                               VectorPixelID<uint64_t>,
+#endif
+                               VectorPixelID<float>,
+                               VectorPixelID<double> >::Type VectorPixelIDTypeList;
+
+
+/** List of pixel ids which are real vectors for itk::VectorImage class.
+ *
+ * \sa VectorPixelID
+ */
+typedef typelist::MakeTypeList<VectorPixelID<float>,
+                               VectorPixelID<double> >::Type RealVectorPixelIDTypeList;
+
+/** List of pixel ids which are signed of vectors
+ *
+ * \sa BasicPixelID
+ */
+typedef typelist::MakeTypeList< VectorPixelID<int8_t>,
+                                VectorPixelID<int16_t>,
+                                VectorPixelID<int32_t>,
+                                VectorPixelID<float>,
+                                VectorPixelID<double> >::Type SignedVectorPixelIDTypeList;
+
+
+/** List of pixel ids which are for itk::LabelMap Image class.
+ *
+ * \sa LabelPixelID
+ */
+typedef typelist::MakeTypeList<LabelPixelID<uint8_t>,
+                               LabelPixelID<uint16_t>,
+                               LabelPixelID<uint32_t>
+#ifdef SITK_INT64_PIXELIDS
+                               ,LabelPixelID<uint64_t>
+#endif
+                               >::Type LabelPixelIDTypeList;
+
+typedef UnsignedIntegerPixelIDTypeList IntegerLabelPixelIDTypeList;
+
+/** List of all pixel ids available, but itk::LabelMap this include image of itk::Image,
+ * itk::VectorImage
+ *
+ *
+ * \sa BasicPixelID
+ * \sa VectorPixelID
+ * \sa LabelPixelID
+ */
+typedef typelist::Append<
+  typelist::Append< BasicPixelIDTypeList, ComplexPixelIDTypeList >::Type,
+  VectorPixelIDTypeList
+  >::Type NonLabelPixelIDTypeList;
+
+
+/** List of all pixel ids available, this include image of itk::Image,
+ * itk::VectorImage, and itk::LabelMap types.
+ *
+ * \todo This needs to be extended to include LabelMap pixel ids.
+ *
+ * \sa BasicPixelID
+ * \sa VectorPixelID
+ * \sa LabelPixelID
+ */
+typedef typelist::Append<
+  typelist::Append< BasicPixelIDTypeList, ComplexPixelIDTypeList >::Type,
+  typelist::Append< VectorPixelIDTypeList, LabelPixelIDTypeList >::Type
+  >::Type AllPixelIDTypeList;
+
+
+/** List of pixel ids which are instantiated for use in SimpleITK
+ *
+ *  this include image of itk::Image,itk::VectorImage, and
+ *  itk::LabelMap types.
+ *
+ * \sa BasicPixelID
+ * \sa VectorPixelID
+ * \sa LabelPixelID
+ */
+typedef AllPixelIDTypeList InstantiatedPixelIDTypeList;
+
+}
+}
+#endif // _sitkPixelIDTypeLists_h
diff --git a/Code/Common/include/sitkPixelIDTypes.h b/Code/Common/include/sitkPixelIDTypes.h
new file mode 100644
index 0000000..f6f19c4
--- /dev/null
+++ b/Code/Common/include/sitkPixelIDTypes.h
@@ -0,0 +1,157 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkPixelIDTypes_h
+#define sitkPixelIDTypes_h
+
+
+namespace itk
+{
+
+template <typename TPixelType, unsigned int VImageDimension> class Image;
+template <typename TPixelType, unsigned int VImageDimension > class VectorImage;
+template < typename TLabelObject > class LabelMap;
+template < typename TLabelObject, unsigned int VImageDimension > class LabelObject;
+
+namespace simple
+{
+
+/** This type is used as an identity for pixel of itk::Image type
+ *
+ * This is an empty type which is used for compile-time
+ * meta-programming. It does not contain any information, an image
+ * type can be converted to one of the PixelID types, and an PixelID
+ * can be converted to a value. However, a run-time value can not be
+ * converted to this compile time type.
+ *
+ * \sa PixelIDToImageType
+ * \sa ImageTypeToPixelID
+ * \sa ImageTypeToPixelIDValue
+ * \sa PixelIDToPixelIDValue
+ */
+template <typename TPixelType>
+struct BasicPixelID
+{};
+
+
+/** This type is used as an identity for pixel of itk::VectorImage type
+ *
+ * This is an empty type which is used for compile-time
+ * meta-programming. It does not contain any information, an image
+ * type can be converted to one of the PixelID types, and an PixelID
+ * can be converted to a value. However, a run-time value can not be
+ * converted to this compile time type.
+ *
+ * \sa PixelIDToImageType
+ * \sa ImageTypeToPixelID
+ * \sa ImageTypeToPixelIDValue
+ * \sa PixelIDToPixelIDValue
+ */
+template <typename TPixelType>
+struct VectorPixelID
+{};
+
+
+/** This type is used as an identity for pixel of itk::LabelMap type
+ *
+ * This is an empty type which is used for compile-time
+ * meta-programming. It does not contain any information, an image
+ * type can be converted to one of the PixelID types, and an PixelID
+ * can be converted to a value. However, a run-time value can not be
+ * converted to this compile time type.
+ *
+ * \sa PixelIDToImageType
+ * \sa ImageTypeToPixelID
+ * \sa ImageTypeToPixelIDValue
+ * \sa PixelIDToPixelIDValue
+ */
+template <typename TPixelType>
+struct LabelPixelID
+{};
+
+/** A meta-programming tool to query the "itk image type" if a PixelID
+ * at compile type
+ *
+ * This structure contains one property,
+ * PixelIDToImageType<T>::ImageType is the "itk image type" of the
+ * pixel ID.
+ *
+ * \sa BasicPixelID
+ * \sa VectorPixelID
+ * \sa LabelPixelID
+ * \sa ImageTypeToPixelIDValue
+ *
+ * @{ */
+template <typename TPixelIDType, unsigned int VImageDimension> struct PixelIDToImageType;
+
+template <typename TPixelType, unsigned int VImageDimension>
+struct PixelIDToImageType< BasicPixelID<TPixelType> , VImageDimension >
+{
+  typedef itk::Image< TPixelType, VImageDimension > ImageType;
+};
+
+template <typename TVectorPixelType, unsigned int VImageDimension>
+struct PixelIDToImageType< VectorPixelID< TVectorPixelType >, VImageDimension >
+{
+  typedef itk::VectorImage< TVectorPixelType, VImageDimension > ImageType;
+};
+
+template <typename TLabelType, unsigned int VImageDimension>
+struct PixelIDToImageType< LabelPixelID< TLabelType >, VImageDimension >
+{
+  typedef itk::LabelMap< itk::LabelObject< TLabelType, VImageDimension > > ImageType;
+};
+/** @} */
+
+
+/** A meta-programming tool to query the PixelID property of an "itk
+ * image type" at compile type
+ *
+ * This structure contains one property,
+ * ImageTypeToPixelID<T>::PixelIDType is the "itk image type" of the
+ * pixel ID.
+ *
+ * \sa BasicPixelID
+ * \sa VectorPixelID
+ * \sa LabelPixelID
+ * \sa ImageTypeToPixelIDValue
+ *
+ * @{ */
+template <typename TImageType> struct ImageTypeToPixelID;
+
+template <typename TPixelType, unsigned int VImageDimension>
+struct ImageTypeToPixelID< itk::Image< TPixelType, VImageDimension> >
+{
+  typedef BasicPixelID<TPixelType > PixelIDType;
+};
+
+template <typename TPixelType, unsigned int VImageDimension>
+struct ImageTypeToPixelID< itk::VectorImage< TPixelType, VImageDimension> >
+{
+  typedef VectorPixelID< TPixelType > PixelIDType;
+};
+
+template <typename TLabelType, unsigned int VImageDimension>
+struct ImageTypeToPixelID< itk::LabelMap< itk::LabelObject< TLabelType, VImageDimension > > >
+{
+  typedef  LabelPixelID< TLabelType > PixelIDType;
+};
+/** @} */
+
+}
+}
+#endif // _sitkPixelIDTypes_h
diff --git a/Code/Common/include/sitkPixelIDValues.h b/Code/Common/include/sitkPixelIDValues.h
new file mode 100644
index 0000000..668be2b
--- /dev/null
+++ b/Code/Common/include/sitkPixelIDValues.h
@@ -0,0 +1,141 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkPixelIDValues_h
+#define sitkPixelIDValues_h
+
+#include "sitkCommon.h"
+#include "sitkPixelIDTypeLists.h"
+
+#include <string>
+#include <ostream>
+
+namespace itk
+{
+namespace simple
+{
+
+typedef int PixelIDValueType;
+
+template < typename TPixelID >
+struct PixelIDToPixelIDValue
+{
+  enum { Result = typelist::IndexOf<InstantiatedPixelIDTypeList, TPixelID >::Result };
+};
+
+template <typename TImageType>
+struct ImageTypeToPixelIDValue
+{
+  enum { Result = PixelIDToPixelIDValue< typename ImageTypeToPixelID<TImageType>::PixelIDType>::Result };
+};
+
+/** \brief Enumerated values of pixelIDs
+ *
+ * Each PixelID's value correspondes to the index of the PixelID type,
+ * in the type list "InstantiatedPixelIDTypeList". It is possible that
+ * different configurations for SimpleITK could result in different
+ * values for pixelID. So these enumerated values should be used.
+ *
+ * Additionally, not all PixelID an instantiated in for the tool
+ * kit. If a PixelID is not instantiated then it's value is
+ * -1. Therefore it is likely that multiple elements in the
+ * enumeration will have a zero value. Therefore the first prefered
+ * methods is to use "if" statements, with the first branch checking
+ * for the Unknown value.
+ *
+ * If a switch case statement is needed the ConditionalValue
+ * meta-programming object can be used as follows:
+ * \code
+ *  switch( pixelIDValue )
+ *     {
+ *   case sitk::sitkUnknown:
+ *     // handle exceptional case
+ *     break
+ *   case sitk::ConditionalValue< sitk::sitkUInt8 != sitk::sitkUnknown, sitk::sitkUInt8, -2 >::Value:
+ *     ...
+ *     break;
+ *   case sitk::ConditionalValue< sitk::sitkInt8 != sitk::sitkUnknown, sitk::sitkInt8, -3 >::Value:
+ *     ...
+ *     break;
+ *   case sitk::ConditionalValue< sitk::N != sitk::sitkUnknown, sitk::N, -N >::Value:
+ *     ...
+ *     break;
+ *   default:
+ *      // handle another exceptoinal case
+ *     }
+ * \endcode
+ */
+enum PixelIDValueEnum {
+  sitkUnknown = -1,
+  sitkUInt8 = PixelIDToPixelIDValue< BasicPixelID<uint8_t> >::Result,   ///< Unsigned 8 bit integer
+  sitkInt8 = PixelIDToPixelIDValue< BasicPixelID<int8_t> >::Result,     ///< Signed 8 bit integer
+  sitkUInt16 = PixelIDToPixelIDValue< BasicPixelID<uint16_t> >::Result, ///< Unsigned 16 bit integer
+  sitkInt16 = PixelIDToPixelIDValue< BasicPixelID<int16_t> >::Result,   ///< Signed 16 bit integer
+  sitkUInt32 = PixelIDToPixelIDValue< BasicPixelID<uint32_t> >::Result, ///< Unsigned 32 bit integer
+  sitkInt32 = PixelIDToPixelIDValue< BasicPixelID<int32_t> >::Result,   ///< Signed 32 bit integer
+  sitkUInt64 = PixelIDToPixelIDValue< BasicPixelID<uint64_t> >::Result, ///< Unsigned 64 bit integer
+  sitkInt64 = PixelIDToPixelIDValue< BasicPixelID<int64_t> >::Result,   ///< Signed 64 bit integer
+  sitkFloat32 = PixelIDToPixelIDValue< BasicPixelID<float> >::Result,   ///< 32 bit float
+  sitkFloat64 = PixelIDToPixelIDValue< BasicPixelID<double> >::Result,  ///< 64 bit float
+  sitkComplexFloat32 = PixelIDToPixelIDValue< BasicPixelID<std::complex<float> > >::Result,  ///< compelex number of 32 bit float
+  sitkComplexFloat64 = PixelIDToPixelIDValue< BasicPixelID<std::complex<double> > >::Result,  ///< compelex number of 64 bit float
+  sitkVectorUInt8 = PixelIDToPixelIDValue< VectorPixelID<uint8_t> >::Result, ///< Multi-component of unsigned 8 bit integer
+  sitkVectorInt8 = PixelIDToPixelIDValue< VectorPixelID<int8_t> >::Result, ///< Multi-component of signed 8 bit integer
+  sitkVectorUInt16 = PixelIDToPixelIDValue< VectorPixelID<uint16_t> >::Result, ///< Multi-component of unsigned 16 bit integer
+  sitkVectorInt16 = PixelIDToPixelIDValue< VectorPixelID<int16_t> >::Result, ///< Multi-component of signed 16 bit integer
+  sitkVectorUInt32 = PixelIDToPixelIDValue< VectorPixelID<uint32_t> >::Result, ///< Multi-component of unsigned 32 bit integer
+  sitkVectorInt32 = PixelIDToPixelIDValue< VectorPixelID<int32_t> >::Result, ///< Multi-component of signed 32 bit integer
+  sitkVectorUInt64 = PixelIDToPixelIDValue< VectorPixelID<uint64_t> >::Result, ///< Multi-component of unsigned 64 bit integer
+  sitkVectorInt64 = PixelIDToPixelIDValue< VectorPixelID<int64_t> >::Result, ///< Multi-component of signed 64 bit integer
+  sitkVectorFloat32 = PixelIDToPixelIDValue< VectorPixelID<float> >::Result, ///< Multi-component of 32 bit float
+  sitkVectorFloat64 = PixelIDToPixelIDValue< VectorPixelID<double> >::Result,  ///< Multi-component of 64 bit float
+  sitkLabelUInt8 = PixelIDToPixelIDValue< LabelPixelID<uint8_t> >::Result, ///< RLE label of unsigned 8 bit integers
+  sitkLabelUInt16 = PixelIDToPixelIDValue< LabelPixelID<uint16_t> >::Result, ///< RLE label of unsigned 16 bit integers
+  sitkLabelUInt32 = PixelIDToPixelIDValue< LabelPixelID<uint32_t> >::Result, ///< RLE label of unsigned 32 bit integers
+  sitkLabelUInt64 = PixelIDToPixelIDValue< LabelPixelID<uint64_t> >::Result, ///< RLE label of unsigned 64 bit integers
+};
+
+
+
+const std::string SITKCommon_EXPORT GetPixelIDValueAsString( PixelIDValueType type );
+const std::string SITKCommon_EXPORT GetPixelIDValueAsString( PixelIDValueEnum type );
+
+/** \brief Function mapping enumeration names in std::string to values
+ *
+ * This function is intended for use by the R bindings. R stores the enumeration values
+ * using the names : "sitkUnkown", "sitkUInt8", etc from PixelIDValueEnum above.
+ * This function is used to provide the integer values using calls like:
+ *
+ * val = GetPixelIDValueFromString("sitkInt32")
+ *
+ * If the pixel type has not been instantiated then the sitkUnknown value (-1) will
+ * be returned. If the pixel type string is not recognised (i.e. is not in the
+ * set of tested names) then the return value is -99. The idea is to provide
+ * a warning (via the R package) if this function needs to be updated to match
+ * changes to PixelIDValueEnum - i.e. if a new pixel type is added.
+ */
+PixelIDValueType SITKCommon_EXPORT GetPixelIDValueFromString(const std::string &enumString );
+
+#ifndef SWIG
+SITKCommon_EXPORT std::ostream& operator<<(std::ostream& os, const PixelIDValueEnum id);
+#endif
+
+
+
+}
+}
+#endif // _sitkPixelIDValues_h
diff --git a/Code/Common/include/sitkProcessObject.h b/Code/Common/include/sitkProcessObject.h
new file mode 100644
index 0000000..ad59336
--- /dev/null
+++ b/Code/Common/include/sitkProcessObject.h
@@ -0,0 +1,361 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkProcessObject_h
+#define sitkProcessObject_h
+
+#include "sitkCommon.h"
+#include "sitkNonCopyable.h"
+#include "sitkTemplateFunctions.h"
+#include "sitkEvent.h"
+#include "sitkImage.h"
+
+#include <iostream>
+#include <list>
+
+namespace itk {
+
+#ifndef SWIG
+
+  template< typename T, unsigned int NVectorDimension > class Vector;
+
+  class ProcessObject;
+  class Command;
+  class EventObject;
+#endif
+
+  namespace simple {
+
+  class Command;
+
+
+  /** \class ProcessObject
+   * \brief Base class for SimpleITK classes based on ProcessObject
+   *
+   */
+  class SITKCommon_EXPORT ProcessObject:
+      protected NonCopyable
+  {
+    public:
+      typedef ProcessObject Self;
+
+      /**
+       * Default Constructor that takes no arguments and initializes
+       * default parameters
+       */
+      ProcessObject();
+
+      /**
+       * Default Destructor
+       */
+      virtual ~ProcessObject();
+
+      // Print ourselves out
+      virtual std::string ToString() const;
+
+      /** return user readable name for the filter */
+      virtual std::string GetName() const = 0;
+
+      /** Turn debugging output on/off.
+       *
+       * Enabling debugging prints additional information to stdout
+       * about the execution of the internal filters.
+       * @{
+       */
+      virtual void DebugOn();
+      virtual void DebugOff();
+      /**@}*/
+
+      /** Get the value of the debug flag.
+       * @{
+       */
+      virtual bool GetDebug() const;
+      virtual void SetDebug(bool debugFlag);
+      /**@}*/
+
+      /** Turn default debugging output value on/off.
+       *
+       * This is the initial values used for new classes and
+       * procedural methods.
+       */
+      static void GlobalDefaultDebugOn();
+      static void GlobalDefaultDebugOff();
+      /**@}*/
+
+      /** Get the value of the default debug flag.  */
+      static bool GetGlobalDefaultDebug();
+      static void SetGlobalDefaultDebug(bool debugFlag);
+      /**@}*/
+
+      /** Manage warnings produced by ITK.
+       *
+       * Enabled by default, this parameter may enable printing
+       * of warnings indicating unstable state or parameters during
+       * execution. It is a global value set for all ITK filters and
+       * processes.
+       * @{
+       */
+      static void GlobalWarningDisplayOn();
+      static void GlobalWarningDisplayOff();
+      static void SetGlobalWarningDisplay(bool flag);
+      static bool GetGlobalWarningDisplay();
+      /**@}*/
+
+      /** Set the number of threads that all new process objects are
+       *  initialized with.
+       * @{
+       */
+      static void SetGlobalDefaultNumberOfThreads(unsigned int n);
+      static unsigned int GetGlobalDefaultNumberOfThreads();
+      /**@}*/
+
+      /** \brief Access the global tolerance to determine congruent spaces.
+       *
+       * The default tolerance is governed by the
+       * GlobalDefaultCoordinateTolerance and the
+       * GlobalDefaultDirectionTolerance properties, defaulting to
+       * 1.0e-6. The default tolerance for spatial comparison is then
+       * scaled by the voxelSpacing for coordinates (i.e. the
+       * coordinates must be the same to within one part per
+       * million). For the direction cosines the values must be within
+       * the current absolute tolerance.
+       * @{
+       */
+      static double GetGlobalDefaultCoordinateTolerance();
+      static void SetGlobalDefaultCoordinateTolerance(double );
+
+      static double GetGlobalDefaultDirectionTolerance();
+      static void SetGlobalDefaultDirectionTolerance(double);
+      /**@}*/
+
+      /** The number of threads used when executing a filter if the
+       * filter is multi-threaded
+       * @{
+       */
+      virtual void SetNumberOfThreads(unsigned int n);
+      virtual unsigned int GetNumberOfThreads() const;
+      /**@}*/
+
+      /** \brief Add a Command Object to observer the event.
+       *
+       * The Command object's Execute method will be invoked when the
+       * internal ITK Object has the event. These events only occur
+       * during this ProcessObject's Execute method when the ITK
+       * filter is running. The command occurs in the same thread as
+       * this objects Execute methods was called in.
+       *
+       * An internal reference is made between the Command and this
+       * ProcessObject which enable automatic removal of the command
+       * when deleted. This enables both object to exist as stack
+       * based object and be automatically cleaned up.
+       *
+       * Unless specified otherwise, it's safe to get any value during
+       * execution. "Measurements" will have valid values only after
+       * the Execute method has returned. "Active Measurements" will
+       * have valid values during events, and access the underlying
+       * ITK object.
+       *
+       * Deleting a command this object has during a command call-back
+       * will produce undefined behavior.
+       *
+       * For more information see the page \ref CommandPage.
+       *
+       * \note The return value is reserved for latter usage.
+       */
+      virtual int AddCommand(itk::simple::EventEnum event, itk::simple::Command &cmd);
+
+      /** \brief Remove all registered commands.
+       *
+       * Calling when this object is invoking anther command will
+       * produce undefined behavior.
+       */
+      virtual void RemoveAllCommands();
+
+      /** \brief Query of this object has any registered commands for event. */
+      virtual bool HasCommand( itk::simple::EventEnum event ) const;
+
+
+      /** \brief An Active Measurement of the progress of execution.
+       *
+       * Get the execution progress of the current process object. The
+       * progress is a floating number in [0,1] with 0 meaning no progress and 1
+       * meaning the filter has completed execution (or aborted).
+       *
+       * This is an Active Measurement so it can be accessed during
+       * Events during the execution.
+       */
+      virtual float GetProgress( ) const;
+
+      /** Sets an abort flag on the active process.
+       *
+       * Requests the current active process to abort. Additional,
+       * progress or iteration event may occur. If aborted then, an
+       * AbortEvent should occur. The Progress should be set to 1.0
+       * after aborting.
+       *
+       * The expected behavior is that not exception should be throw
+       * out of this processes Execute method. Additionally, the
+       * results returned are valid but undefined content. The
+       * content may be only partially updated, uninitialized or the a
+       * of size zero.
+       *
+       * If there is no active process the method has no effect.
+       */
+      virtual void Abort();
+
+    protected:
+
+      #ifndef SWIG
+
+      struct EventCommand
+      {
+        EventCommand(EventEnum e, Command *c)
+          : m_Event(e), m_Command(c), m_ITKTag(std::numeric_limits<unsigned long>::max())
+          {}
+        EventEnum     m_Event;
+        Command *     m_Command;
+
+        // set to max if currently not registered
+        unsigned long m_ITKTag;
+
+        inline bool operator==(const EventCommand &o) const
+          { return m_Command == o.m_Command; }
+        inline bool operator<(const EventCommand &o) const
+          { return m_Command < o.m_Command; }
+      };
+
+      // method called before filter update to set parameters and
+      // connect commands.
+      virtual void PreUpdate( itk::ProcessObject *p );
+
+      // overridable method to add a command, the return value is
+      // placed in the m_ITKTag of the EventCommand object.
+      virtual unsigned long AddITKObserver(const itk::EventObject &, itk::Command *);
+
+      // overridable method to remove a command
+      virtual void RemoveITKObserver( EventCommand &e );
+
+      // Create an ITK EventObject from the SimpleITK enumerated type.
+      static const itk::EventObject &GetITKEventObject(EventEnum e);
+
+      // returns the current active process, if no active process then
+      // an exception is throw.
+      virtual itk::ProcessObject *GetActiveProcess( );
+
+      // overidable callback when the active process has completed
+      virtual void OnActiveProcessDelete( );
+
+      friend class itk::simple::Command;
+      // method call by command when it's deleted, maintains internal
+      // references between command and process objects.
+      virtual void onCommandDelete(const itk::simple::Command *cmd) throw();
+      #endif
+
+
+      template< class TImageType >
+        static typename TImageType::ConstPointer CastImageToITK( const Image &img )
+      {
+        typename TImageType::ConstPointer itkImage =
+          dynamic_cast < const TImageType* > ( img.GetITKBase() );
+
+        if ( itkImage.IsNull() )
+          {
+          sitkExceptionMacro( "Unexpected template dispatch error!" );
+          }
+        return itkImage;
+      }
+
+      template< class TImageType >
+        static Image CastITKToImage( TImageType *img )
+      {
+        return Image(img);
+      }
+
+#ifndef SWIG
+      template< class TPixelType, unsigned int VImageDimension, unsigned int  VLength,
+                template<typename, unsigned int> class TVector >
+        static Image CastITKToImage( itk::Image< TVector< TPixelType, VLength >, VImageDimension> *img )
+      {
+        typedef itk::VectorImage< TPixelType, VImageDimension > VectorImageType;
+
+        size_t numberOfElements = img->GetBufferedRegion().GetNumberOfPixels();
+        typename VectorImageType::InternalPixelType* buffer = reinterpret_cast<typename VectorImageType::InternalPixelType*>( img->GetPixelContainer()->GetBufferPointer() );
+
+        // Unlike an image of Vectors a VectorImage's container is a
+        // container of TPixelType, whos size is the image's number of
+        // pixels * number of pixels per component
+        numberOfElements *= VImageDimension;
+
+        typename VectorImageType::Pointer out = VectorImageType::New();
+
+        // Set the image's pixel container to import the pointer provided.
+        out->GetPixelContainer()->SetImportPointer(buffer, numberOfElements, true );
+        img->GetPixelContainer()->ContainerManageMemoryOff();
+        out->CopyInformation( img );
+        out->SetRegions( img->GetBufferedRegion() );
+
+        return Image(out.GetPointer());
+      }
+#endif
+
+      /**
+       * Output operator to os with conversion to a printable type.
+       *
+       * That is char types are presumed to be numbers, and converted
+       * to int.
+       * @{
+       */
+      template <typename T>
+      static std::ostream & ToStringHelper(std::ostream &os, const T &v)
+      {
+        os << v;
+        return os;
+      }
+      static std::ostream & ToStringHelper(std::ostream &os, const char &v);
+      static std::ostream & ToStringHelper(std::ostream &os, const signed char &v);
+      static std::ostream & ToStringHelper(std::ostream &os, const unsigned char &v);
+      /**@}*/
+
+    private:
+
+      // Add command to active process object, the EventCommand's
+      // ITKTag must be unset as max or else an exception is
+      // thrown. The EventCommand's ITKTag is updated to the command
+      // registered to ITK's ProcessObject. It's assumed that there is
+      // an current active process
+      unsigned long AddObserverToActiveProcessObject( EventCommand &e );
+
+      // Remove the command from the active processes. Its is assumed
+      // that an active process exists. The tag is set to max after it
+      // is removed.
+      void RemoveObserverFromActiveProcessObject( EventCommand &e );
+
+      bool m_Debug;
+      unsigned int m_NumberOfThreads;
+
+      std::list<EventCommand> m_Commands;
+
+      itk::ProcessObject *m_ActiveProcess;
+
+      //
+      float m_ProgressMeasurement;
+    };
+
+
+  }
+}
+#endif
diff --git a/Code/Common/include/sitkRandomSeed.h b/Code/Common/include/sitkRandomSeed.h
new file mode 100644
index 0000000..acad749
--- /dev/null
+++ b/Code/Common/include/sitkRandomSeed.h
@@ -0,0 +1,38 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkRandomSeed_h
+#define sitkRandomSeed_h
+
+#include "sitkCommon.h"
+
+namespace itk
+{
+namespace simple
+{
+
+enum SeedEnum {
+  /// A sentinel value used for "seed" parameters to indicate it
+  /// should be initialized by the wall clock for pseudo-random behavior.
+  sitkWallClock = 0
+};
+
+} // end namespace simple
+} // end namespace itk
+
+
+#endif // RandomSeed_h
diff --git a/Code/Common/include/sitkScaleSkewVersor3DTransform.h b/Code/Common/include/sitkScaleSkewVersor3DTransform.h
new file mode 100644
index 0000000..c819a8a
--- /dev/null
+++ b/Code/Common/include/sitkScaleSkewVersor3DTransform.h
@@ -0,0 +1,121 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkScaleSkewVersor3DTransform_h
+#define sitkScaleSkewVersor3DTransform_h
+
+#include "sitkCommon.h"
+#include "sitkTransform.h"
+
+namespace itk
+{
+namespace simple
+{
+
+/** \brief A over parameterized 3D Affine transform composed of the
+ * addition of a versor rotation matrix, a scale matrix and a skew
+ * matrix around a fixed center with translation.
+ *
+ * \sa itk::ScaleSkewVersor3DTransform
+ */
+class SITKCommon_EXPORT ScaleSkewVersor3DTransform
+  : public Transform
+{
+public:
+  typedef ScaleSkewVersor3DTransform Self;
+  typedef Transform Superclass;
+
+// construct identity
+  ScaleSkewVersor3DTransform();
+
+  ScaleSkewVersor3DTransform( const ScaleSkewVersor3DTransform & );
+
+  explicit ScaleSkewVersor3DTransform( const Transform & );
+
+  ScaleSkewVersor3DTransform( const std::vector< double > &scale,
+                              const std::vector< double> &skew,
+                              const std::vector< double > &versor,
+                              const std::vector< double > &translation=std::vector< double >(3, 0.0),
+                              const std::vector< double> &fixedCenter=std::vector< double >(3, 0.0) );
+
+  ScaleSkewVersor3DTransform( const std::vector< double > &scale,
+                              const std::vector< double> &skew,
+                              const std::vector< double > &axis, double angle,
+                              const std::vector< double > &translation=std::vector< double >(3, 0.0),
+                              const std::vector< double> &fixedCenter=std::vector< double >(3, 0.0) );
+
+  ScaleSkewVersor3DTransform &operator=( const ScaleSkewVersor3DTransform & );
+
+  /** Name of this class */
+  std::string GetName() const { return std::string ("ScaleSkewVersor3DTransform"); }
+
+/** fixed parameter */
+  SITK_RETURN_SELF_TYPE_HEADER SetCenter(const std::vector<double> &params);
+  std::vector<double> GetCenter( ) const;
+
+
+/** parameter */
+  SITK_RETURN_SELF_TYPE_HEADER SetRotation(const std::vector<double> &versor);
+  SITK_RETURN_SELF_TYPE_HEADER SetRotation(const std::vector<double> &axis,  double angle);
+  std::vector<double> GetVersor() const;
+
+  std::vector<double> GetTranslation( ) const;
+  SITK_RETURN_SELF_TYPE_HEADER SetTranslation(const std::vector<double>& translation);
+
+  std::vector<double> GetScale( ) const;
+  SITK_RETURN_SELF_TYPE_HEADER SetScale( const std::vector<double> & scale );
+
+  std::vector<double> GetSkew( ) const;
+  SITK_RETURN_SELF_TYPE_HEADER SetSkew( const std::vector<double> & skew );
+
+/** additional methods */
+  SITK_RETURN_SELF_TYPE_HEADER Translate(const std::vector<double> &offset);
+  std::vector<double> GetMatrix() const;
+
+protected:
+
+  virtual void SetPimpleTransform( PimpleTransformBase *pimpleTransform );
+
+private:
+
+  using Superclass::AddTransform;
+
+  void InternalInitialization(itk::TransformBase *transform);
+
+  template <typename TransformType>
+    void InternalInitialization(TransformType *transform);
+
+
+  nsstd::function<void(const std::vector<double>&)> m_pfSetCenter;
+  nsstd::function<std::vector<double>()> m_pfGetCenter;
+  nsstd::function<void(const std::vector<double>&)> m_pfSetRotation1;
+  nsstd::function<void(const std::vector<double>&,double)> m_pfSetRotation2;
+  nsstd::function<std::vector<double>()> m_pfGetVersor;
+  nsstd::function<void(const std::vector<double>&)> m_pfSetTranslation;
+  nsstd::function<std::vector<double>()> m_pfGetTranslation;
+  nsstd::function<void(const std::vector<double>&)> m_pfSetScale;
+  nsstd::function<std::vector<double>()> m_pfGetScale;
+  nsstd::function<void(const std::vector<double>&)> m_pfSetSkew;
+  nsstd::function<std::vector<double>()> m_pfGetSkew;
+  nsstd::function<void(const std::vector<double> &)> m_pfTranslate;
+  nsstd::function<std::vector<double>()> m_pfGetMatrix;
+};
+
+}
+}
+
+#endif // sitkVersorTransform_h
diff --git a/Code/Common/include/sitkScaleTransform.h b/Code/Common/include/sitkScaleTransform.h
new file mode 100644
index 0000000..9d327e7
--- /dev/null
+++ b/Code/Common/include/sitkScaleTransform.h
@@ -0,0 +1,105 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkScaleTransform_h
+#define sitkScaleTransform_h
+
+#include "sitkCommon.h"
+#include "sitkTransform.h"
+
+namespace itk
+{
+namespace simple
+{
+
+/** \brief A 2D or 3D anisotropic scale of coordinate space around
+ * a fixed center.
+ *
+ * \sa itk::ScaleTransform
+ */
+class SITKCommon_EXPORT ScaleTransform
+  : public Transform
+{
+public:
+  typedef ScaleTransform Self;
+  typedef Transform Superclass;
+
+  explicit ScaleTransform(unsigned int dimensions,
+                          const std::vector<double> &scale = std::vector<double>(3,1.0) );
+
+  ScaleTransform( const ScaleTransform & );
+
+  explicit ScaleTransform( const Transform & );
+
+  /** Name of this class */
+  std::string GetName() const { return std::string ("ScaleTransform"); }
+
+  ScaleTransform &operator=( const ScaleTransform & );
+
+
+  SITK_RETURN_SELF_TYPE_HEADER SetScale(const std::vector<double> &params);
+  std::vector<double> GetScale( ) const;
+
+  /** fixed parameter */
+  SITK_RETURN_SELF_TYPE_HEADER SetCenter(const std::vector<double> &params);
+  std::vector<double> GetCenter( ) const;
+
+  /** additional methods */
+  std::vector<double> GetMatrix() const;
+
+protected:
+
+  virtual void SetPimpleTransform( PimpleTransformBase *pimpleTransform );
+
+private:
+
+  using Superclass::AddTransform;
+
+  struct MyVisitor
+  {
+    itk::TransformBase *transform;
+    ScaleTransform *that;
+    template< typename TransformType >
+    void operator() ( void ) const
+      {
+        TransformType *t = dynamic_cast<TransformType*>(transform);
+        if (t && (typeid(*t)==typeid(TransformType)))
+          {
+          that->InternalInitialization<TransformType>(t);
+          }
+      }
+  };
+
+  void InternalInitialization(itk::TransformBase *transform);
+
+  template <typename TransformType>
+    void InternalInitialization(TransformType *transform);
+
+
+  nsstd::function<void(std::vector<double>)> m_pfSetCenter;
+  nsstd::function<std::vector<double>()> m_pfGetCenter;
+  nsstd::function<void(std::vector<double>)> m_pfSetScale;
+  nsstd::function<std::vector<double>()> m_pfGetScale;
+  nsstd::function<std::vector<double>()> m_pfGetMatrix;
+
+
+};
+
+}
+}
+
+#endif // sitkScaleTransform_h
diff --git a/Code/Common/include/sitkScaleVersor3DTransform.h b/Code/Common/include/sitkScaleVersor3DTransform.h
new file mode 100644
index 0000000..af3ceb0
--- /dev/null
+++ b/Code/Common/include/sitkScaleVersor3DTransform.h
@@ -0,0 +1,115 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkScaleVersor3DTransform_h
+#define sitkScaleVersor3DTransform_h
+
+#include "sitkCommon.h"
+#include "sitkTransform.h"
+
+namespace itk
+{
+namespace simple
+{
+
+
+/** \brief A parameterized 3D transform composed of the
+ * addition of a versor rotation matrix and a scale matrix around a
+ * fixed center with translation.
+ *
+ * \sa itk::ScaleVersor3DTransform
+ */
+class SITKCommon_EXPORT ScaleVersor3DTransform
+  : public Transform
+{
+public:
+  typedef ScaleVersor3DTransform Self;
+  typedef Transform Superclass;
+
+// construct identity
+  ScaleVersor3DTransform();
+
+  ScaleVersor3DTransform( const ScaleVersor3DTransform & );
+
+  explicit ScaleVersor3DTransform( const Transform & );
+
+  ScaleVersor3DTransform( const std::vector< double > &scale,
+                          const std::vector< double > &versor,
+                          const std::vector< double > &translation=std::vector< double >(3, 0.0),
+                          const std::vector< double> &fixedCenter=std::vector< double >(3, 0.0) );
+
+  ScaleVersor3DTransform( const std::vector< double > &scale,
+                          const std::vector< double > &axis, double angle,
+                          const std::vector< double > &translation=std::vector< double >(3, 0.0),
+                          const std::vector< double> &fixedCenter=std::vector< double >(3, 0.0) );
+
+  ScaleVersor3DTransform &operator=( const ScaleVersor3DTransform & );
+
+  /** Name of this class */
+  std::string GetName() const { return std::string ("ScaleVersor3DTransform"); }
+
+/** fixed parameter */
+  SITK_RETURN_SELF_TYPE_HEADER SetCenter(const std::vector<double> &params);
+  std::vector<double> GetCenter( ) const;
+
+
+/** parameter */
+  SITK_RETURN_SELF_TYPE_HEADER SetRotation(const std::vector<double> &versor);
+  SITK_RETURN_SELF_TYPE_HEADER SetRotation(const std::vector<double> &axis,  double angle);
+  std::vector<double> GetVersor() const;
+
+  std::vector<double> GetTranslation( ) const;
+  SITK_RETURN_SELF_TYPE_HEADER SetTranslation(const std::vector<double>& translation);
+
+  std::vector<double> GetScale( ) const;
+  SITK_RETURN_SELF_TYPE_HEADER SetScale( const std::vector<double> & scale );
+
+/** additional methods */
+  SITK_RETURN_SELF_TYPE_HEADER Translate(const std::vector<double> &offset);
+  std::vector<double> GetMatrix() const;
+
+protected:
+
+  virtual void SetPimpleTransform( PimpleTransformBase *pimpleTransform );
+
+private:
+
+  using Superclass::AddTransform;
+
+  void InternalInitialization(itk::TransformBase *transform);
+
+  template <typename TransformType>
+    void InternalInitialization(TransformType *transform);
+
+
+  nsstd::function<void(const std::vector<double>&)> m_pfSetCenter;
+  nsstd::function<std::vector<double>()> m_pfGetCenter;
+  nsstd::function<void(const std::vector<double>&)> m_pfSetRotation1;
+  nsstd::function<void(const std::vector<double>&,double)> m_pfSetRotation2;
+  nsstd::function<std::vector<double>()> m_pfGetVersor;
+  nsstd::function<void(const std::vector<double>&)> m_pfSetTranslation;
+  nsstd::function<std::vector<double>()> m_pfGetTranslation;
+  nsstd::function<void(const std::vector<double>&)> m_pfSetScale;
+  nsstd::function<std::vector<double>()> m_pfGetScale;
+  nsstd::function<void(const std::vector<double> &)> m_pfTranslate;
+  nsstd::function<std::vector<double>()> m_pfGetMatrix;
+};
+
+}
+}
+
+#endif // sitkVersorTransform_h
diff --git a/Code/Common/include/sitkSimilarity2DTransform.h b/Code/Common/include/sitkSimilarity2DTransform.h
new file mode 100644
index 0000000..ee5c821
--- /dev/null
+++ b/Code/Common/include/sitkSimilarity2DTransform.h
@@ -0,0 +1,104 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkSimilarity2DTransform_h
+#define sitkSimilarity2DTransform_h
+
+#include "sitkCommon.h"
+#include "sitkTransform.h"
+
+namespace itk
+{
+namespace simple
+{
+
+/** \brief A similarity 2D transform with rotation in radians and
+ * isotropic scaling around a fixed center with translation.
+ *
+ * \sa itk::Similarity2DTransform
+ */
+class SITKCommon_EXPORT Similarity2DTransform
+  : public Transform
+{
+public:
+  typedef Similarity2DTransform Self;
+  typedef Transform Superclass;
+
+// construct identity
+  Similarity2DTransform();
+
+  explicit Similarity2DTransform( double scaleFactor,
+                                  double angle=0.0,
+                                  const std::vector<double> &translation = std::vector<double>(2,0.0),
+                                  const std::vector< double > &fixedCenter = std::vector<double>(2,0.0) );
+
+  Similarity2DTransform( const Similarity2DTransform & );
+
+  explicit Similarity2DTransform( const Transform & );
+
+  Similarity2DTransform &operator=( const Similarity2DTransform & );
+
+  /** Name of this class */
+  std::string GetName() const { return std::string ("Similarity2DTransform"); }
+
+/** fixed parameter */
+  SITK_RETURN_SELF_TYPE_HEADER SetCenter(const std::vector<double> &params);
+  std::vector<double> GetCenter( ) const;
+
+/** parameter */
+  SITK_RETURN_SELF_TYPE_HEADER SetAngle (double angle);
+  double GetAngle () const;
+
+  std::vector<double> GetTranslation( ) const;
+  SITK_RETURN_SELF_TYPE_HEADER SetTranslation(const std::vector<double>& translation);
+
+  SITK_RETURN_SELF_TYPE_HEADER SetScale(double scale);
+  double GetScale() const;
+
+  /** additional methods */
+  std::vector<double> GetMatrix() const;
+  SITK_RETURN_SELF_TYPE_HEADER SetMatrix(const std::vector<double> &matrix, double tolerance = 1e-10);
+
+protected:
+
+  virtual void SetPimpleTransform( PimpleTransformBase *pimpleTransform );
+
+private:
+
+  using Superclass::AddTransform;
+
+  void InternalInitialization(itk::TransformBase *transform);
+
+  template <typename TransformType>
+    void InternalInitialization(TransformType *transform);
+
+  nsstd::function<void(const std::vector<double>&)> m_pfSetCenter;
+  nsstd::function<std::vector<double>()> m_pfGetCenter;
+  nsstd::function<void(double)> m_pfSetAngle;
+  nsstd::function<double()> m_pfGetAngle;
+  nsstd::function<void(const std::vector<double>&)> m_pfSetTranslation;
+  nsstd::function<std::vector<double>()> m_pfGetTranslation;
+  nsstd::function<void(double)> m_pfSetScale;
+  nsstd::function<double()> m_pfGetScale;
+  nsstd::function<std::vector<double>()> m_pfGetMatrix;
+  nsstd::function<void(const std::vector<double>&, double)> m_pfSetMatrix;
+};
+
+}
+}
+
+#endif // sitkSimilarity2DTransform_h
diff --git a/Code/Common/include/sitkSimilarity3DTransform.h b/Code/Common/include/sitkSimilarity3DTransform.h
new file mode 100644
index 0000000..7729c89
--- /dev/null
+++ b/Code/Common/include/sitkSimilarity3DTransform.h
@@ -0,0 +1,113 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkSimilarity3DTransform_h
+#define sitkSimilarity3DTransform_h
+
+#include "sitkCommon.h"
+#include "sitkTransform.h"
+
+namespace itk
+{
+namespace simple
+{
+
+/** \brief A similarity 3D transform with rotation as a versor, and
+ * isotropic scaling around a fixed center with translation.
+ *
+ * \sa itk::Similarity3DTransform
+ */
+class SITKCommon_EXPORT Similarity3DTransform
+  : public Transform
+{
+public:
+typedef Similarity3DTransform Self;
+typedef Transform Superclass;
+
+// construct identity
+Similarity3DTransform();
+
+Similarity3DTransform( const Similarity3DTransform & );
+
+explicit Similarity3DTransform( const Transform & );
+
+Similarity3DTransform( double scaleFactor, const std::vector< double > &versor,
+                       const std::vector< double > &translation=std::vector< double >(3, 0.0),
+                       const std::vector< double > &fixedCenter=std::vector< double >(3, 0.0) );
+
+Similarity3DTransform( double scaleFactor, const std::vector< double > &axis, double angle,
+                       const std::vector< double > &translation=std::vector< double >(3, 0.0),
+                       const std::vector< double > &fixedCenter=std::vector< double >(3, 0.0) );
+
+Similarity3DTransform &operator=( const Similarity3DTransform & );
+
+/** Name of this class */
+std::string GetName() const { return std::string ("Similarity3DTransform"); }
+
+/** fixed parameter */
+SITK_RETURN_SELF_TYPE_HEADER SetCenter(const std::vector<double> &params);
+std::vector<double> GetCenter( ) const;
+
+
+/** parameter */
+SITK_RETURN_SELF_TYPE_HEADER SetRotation(const std::vector<double> &versor);
+SITK_RETURN_SELF_TYPE_HEADER SetRotation(const std::vector<double> &axis,  double angle);
+std::vector<double> GetVersor() const;
+
+SITK_RETURN_SELF_TYPE_HEADER SetScale(double scale);
+double GetScale() const;
+
+std::vector<double> GetTranslation( ) const;
+SITK_RETURN_SELF_TYPE_HEADER SetTranslation(const std::vector<double>& translation);
+
+
+/** additional methods */
+SITK_RETURN_SELF_TYPE_HEADER Translate(const std::vector<double> &offset);
+std::vector<double> GetMatrix() const;
+SITK_RETURN_SELF_TYPE_HEADER SetMatrix(const std::vector<double> &matrix, double tolerance = 1e-10);
+
+protected:
+
+virtual void SetPimpleTransform( PimpleTransformBase *pimpleTransform );
+
+private:
+
+using Superclass::AddTransform;
+
+void InternalInitialization(itk::TransformBase *transform);
+
+template <typename TransformType>
+void InternalInitialization(TransformType *transform);
+
+nsstd::function<void(const std::vector<double>&)> m_pfSetCenter;
+nsstd::function<std::vector<double>()> m_pfGetCenter;
+nsstd::function<void(const std::vector<double>&)> m_pfSetRotation1;
+nsstd::function<void(const std::vector<double>,double&)> m_pfSetRotation2;
+nsstd::function<std::vector<double>()> m_pfGetVersor;
+nsstd::function<void(double)> m_pfSetScale;
+nsstd::function<double()> m_pfGetScale;
+nsstd::function<void(const std::vector<double>&)> m_pfSetTranslation;
+nsstd::function<std::vector<double>()> m_pfGetTranslation;
+nsstd::function<void(const std::vector<double> &)> m_pfTranslate;
+nsstd::function<std::vector<double>()> m_pfGetMatrix;
+nsstd::function<void(const std::vector<double>&, double)> m_pfSetMatrix;
+};
+
+}
+}
+
+#endif // sitkSimilarity3DTransform_h
diff --git a/Code/Common/include/sitkTemplateFunctions.h b/Code/Common/include/sitkTemplateFunctions.h
new file mode 100644
index 0000000..44fb780
--- /dev/null
+++ b/Code/Common/include/sitkTemplateFunctions.h
@@ -0,0 +1,190 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkTemplateFunctions_h
+#define sitkTemplateFunctions_h
+
+#include "sitkMacro.h"
+#include "sitkCommon.h"
+#include "sitkExceptionObject.h"
+
+#include <vector>
+#include <ostream>
+#include <iterator>
+
+namespace itk {
+
+template<unsigned int VImageDimension> class ImageRegion;
+
+namespace simple {
+
+/** \brief A function which does nothing
+ *
+ * This function is to be used to mark parameters as unused to supress
+ * compiler warning.
+ */
+template <typename T>
+void SITKCommon_HIDDEN Unused( const T &) {};
+
+/**
+ * \brief Output the element of an std::vector to the output stream
+ *
+ * The elements of the std::vector are required to have operator<<.
+ *
+ * The format of the output should be "[ T, T, T ]".
+ */
+template <typename T>
+SITKCommon_HIDDEN std::ostream & operator<<( std::ostream & os, const std::vector<T>& v)
+{
+  if ( v.empty() )
+    {
+    return os << "[ ]";
+    }
+
+  os << "[ ";
+  std::copy( v.begin(), v.end()-1, std::ostream_iterator<T>(os, ", ") );
+  return os << v.back() << " ]";
+}
+
+template< typename TITKPointVector, typename TType>
+TITKPointVector SITKCommon_HIDDEN sitkSTLVectorToITKPointVector( const std::vector< TType > & in )
+{
+
+  typedef TITKPointVector itkPointVectorType;
+  itkPointVectorType out;
+
+  unsigned int Dimension = itkPointVectorType::value_type::GetPointDimension();
+
+  for( unsigned int i = 0; i <= in.size()- Dimension; i += Dimension )
+    {
+    typename itkPointVectorType::value_type pt(&in[i]);
+    out.push_back(pt);
+    }
+  return out;
+
+}
+
+/** \brief Copy the elements of an std::vector into an ITK fixed width vector
+ *
+ * If there are more elements in paramter "in" than the templated ITK
+ * vector type, they are truncated. If less, then an exception is
+ * generated.
+ */
+template< typename TITKVector, typename TType>
+TITKVector SITKCommon_HIDDEN sitkSTLVectorToITK( const std::vector< TType > & in )
+{
+  typedef TITKVector itkVectorType;
+  if ( in.size() < itkVectorType::Dimension )
+    {
+    sitkExceptionMacro(<<"Unable to convert vector to ITK type\n"
+                      << "Expected vector of length " <<  itkVectorType::Dimension
+                       << " but only got " << in.size() << " elements." );
+    }
+  itkVectorType out;
+  for( unsigned int i = 0; i < itkVectorType::Dimension; ++i )
+    {
+    out[i] = in[i];
+    }
+  return out;
+}
+
+/** \brief Convert an ITK fixed width vector to a std::vector
+ */
+template<typename TType,  typename TITKVector>
+std::vector<TType> SITKCommon_HIDDEN sitkITKVectorToSTL( const TITKVector & in )
+{
+  std::vector<TType> out( TITKVector::Dimension );
+  for( unsigned int i = 0; i < TITKVector::Dimension; ++i )
+    {
+    out[i] = static_cast<TType>(in[i]);
+    }
+  return out;
+}
+
+
+template<typename TType,  typename TITKVector>
+std::vector<TType> SITKCommon_HIDDEN sitkITKVectorToSTL( const std::vector<TITKVector> & in )
+{
+  std::vector<TType> out;
+  out.reserve( in.size()*TITKVector::Dimension );
+  typename std::vector<TITKVector>::const_iterator iter = in.begin();
+  while(iter!=in.end())
+    {
+    for( unsigned int i = 0; i < TITKVector::Dimension; ++i )
+      {
+      out.push_back(static_cast<TType>((*iter)[i]));
+      }
+    ++iter;
+    }
+
+  return out;
+}
+
+/** \brief Convert an ITK ImageRegion to and std::vector with the
+* first part being the start index followed by the size.
+ */
+template<unsigned int VImageDimension>
+std::vector<unsigned int> SITKCommon_HIDDEN sitkITKImageRegionToSTL( const ImageRegion<VImageDimension> & in )
+{
+  std::vector<unsigned int> out( VImageDimension*2 );
+  for( unsigned int i = 0; i < VImageDimension; ++i )
+    {
+    out[i] = static_cast<unsigned int>(in.GetIndex(i));
+    out[VImageDimension+i] = static_cast<unsigned int>(in.GetSize(i));
+    }
+  return out;
+}
+
+
+/* \brief Convert to an itk::Matrix type, where the vector is in row
+ * major form. If the vector is of 0-size then an identity matrix will
+ * be constructed.
+ */
+template< typename TDirectionType >
+TDirectionType SITKCommon_HIDDEN  sitkSTLToITKDirection( const std::vector<double> &direction )
+{
+  TDirectionType itkDirection;
+
+  if ( direction.size() == 0 )
+    {
+    itkDirection.SetIdentity();
+    }
+  else if( direction.size() == TDirectionType::RowDimensions*TDirectionType::ColumnDimensions )
+    {
+    std::copy( direction.begin(), direction.end(), itkDirection.GetVnlMatrix().begin() );
+    }
+  else
+    {
+    sitkExceptionMacro(<<"Length of input ("<<direction.size()<<") does not match matrix dimensions ("
+                       <<TDirectionType::RowDimensions<<", "<<TDirectionType::ColumnDimensions<<").\n");
+    }
+  return itkDirection;
+}
+
+
+template< typename TDirectionType >
+std::vector<double> SITKCommon_HIDDEN  sitkITKDirectionToSTL( const TDirectionType & d)
+{
+  return std::vector<double>(  d.GetVnlMatrix().begin(), d.GetVnlMatrix().end() );
+}
+
+
+
+}
+}
+
+#endif
diff --git a/Code/Common/include/sitkTransform.h b/Code/Common/include/sitkTransform.h
new file mode 100644
index 0000000..e93904a
--- /dev/null
+++ b/Code/Common/include/sitkTransform.h
@@ -0,0 +1,295 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkTransform_h
+#define sitkTransform_h
+
+#include "sitkCommon.h"
+#include "sitkExceptionObject.h"
+#include "sitkImage.h"
+#include <vector>
+
+
+namespace itk
+{
+
+// Forward declaration for pointer
+// After ITK_VERSION 4.5 (Acutally after June 20th, 2013) the ITK Transform
+// classes are now templated.  This requires forward declarations to be defined
+// differently.
+#if ( ( SITK_ITK_VERSION_MAJOR == 4 ) && ( SITK_ITK_VERSION_MINOR < 5 ) )
+class TransformBase;
+#else
+template< typename TScalar > class TransformBaseTemplate;
+typedef TransformBaseTemplate<double> TransformBase;
+#endif
+
+template< typename TScalar, unsigned int NDimension> class CompositeTransform;
+
+namespace simple
+{
+
+class PimpleTransformBase;
+
+
+enum TransformEnum { sitkIdentity,
+                     sitkTranslation,
+                     sitkScale,
+                     sitkScaleLogarithmic,
+                     sitkEuler,
+                     sitkSimilarity,
+                     sitkQuaternionRigid,
+                     sitkVersor,
+                     sitkVersorRigid,
+                     sitkScaleSkewVersor,
+                     sitkAffine,
+                     sitkComposite,
+                     sitkDisplacementField,
+                     sitkBSplineTransform
+};
+
+
+/** \brief A simplified wrapper around a variety of ITK transforms.
+ *
+ * The interface to ITK transform objects to be used with the
+ * ImageRegistrationMethod, ResampleImageFilter and other SimpleITK
+ * process objects. The transforms are designed to have a serialized
+ * array of parameters to facilitate optimization for registration.
+ *
+ * Provides a base class interface to any type of ITK
+ * transform. Objects of this type may have their interface converted
+ * to a derived interface while keeping the same reference to the ITK
+ * object.
+ *
+ * Additionally, this class provides a basic interface to a composite
+ * transforms.
+ *
+ * \sa itk::CompositeTransform
+ */
+class SITKCommon_EXPORT Transform
+{
+public:
+  typedef Transform Self;
+
+  /** \brief By default a 3-d identity transform is constructed
+   */
+  Transform( void );
+
+  /** \brief Construct a SimpleITK Transform from a pointer to an ITK
+   * composite transform.
+   *
+   */
+  template<unsigned int NDimension>
+  explicit Transform( itk::CompositeTransform< double, NDimension >* compositeTransform )
+    : m_PimpleTransform( NULL )
+    {
+      sitkStaticAssert( NDimension == 2 || NDimension == 3, "Only 2D and 3D transforms are supported" );
+      if ( compositeTransform == NULL )
+        {
+        sitkExceptionMacro( "Unable to construct a null transform!" );
+        }
+      this->InternalInitialization<NDimension>( sitkComposite, compositeTransform );
+    }
+
+  explicit Transform( itk::TransformBase *transform );
+
+  /** \brief Construct a specific transformation
+   *
+   * \deprecated This constructor will be removed in future releases.
+   */
+  Transform( unsigned int dimensions, TransformEnum type);
+
+  /** \brief Use an image to construct a transform.
+   *
+   * The input displacement image is transferred to the constructed
+   * transform object. The input image is modified to be a default
+   * constructed Image object.
+   *
+   * Only the sitkDisplacementField transformation type can currently
+   * be constructed this way. Image must be of sitkVectorFloat64 pixel
+   * type with the number of components equal to the image dimension.
+   *
+   * \deprecated This constructor will be removed in future releases.
+   */
+  Transform( Image &displacement, TransformEnum type = sitkDisplacementField );
+
+  virtual ~Transform( void );
+
+  /** \brief Copy constructor and assignment operator
+   *
+   * Performs a shallow copy of the internal ITK transform. A deep
+   * copy will be done if the transform in modified.
+   * @{
+   */
+  Transform &operator=( const Transform & );
+  Transform( const Transform & );
+  /**@}*/
+
+
+  /** Get access to internal ITK data object.
+   *
+   * The return value should imediately be assigned to as
+   * itk::SmartPointer.
+   *
+   * In many cases the value may need to be dynamically casted to
+   * the the actual transform type.
+   *
+   * @{
+   */
+  itk::TransformBase* GetITKBase( void );
+  const itk::TransformBase* GetITKBase( void ) const;
+  /**@}*/
+
+  /** Return the dimension of the Transform ( 2D or 3D )
+   */
+  unsigned int GetDimension( void ) const;
+
+  // todo get transform type
+
+  /** Set/Get Transform Parameter
+   * @{
+   */
+  void SetParameters ( const std::vector<double>& parameters );
+  std::vector<double> GetParameters( void ) const ;
+  /**@}*/
+
+  /** Set/Get Fixed Transform Parameter
+   * @{
+   */
+  void SetFixedParameters ( const std::vector<double>& parameters );
+  std::vector<double> GetFixedParameters( void ) const ;
+  /**@}*/
+
+  // Make composition
+  SITK_RETURN_SELF_TYPE_HEADER AddTransform( Transform t );
+
+  std::vector< double > TransformPoint( const std::vector< double > &point ) const;
+
+  // write
+  void WriteTransform( const std::string &filename ) const;
+
+  virtual bool IsLinear() const;
+
+  virtual void SetIdentity();
+
+  /** \brief Try to change the current transform to it's inverse.
+   *
+   * If the transform has an inverse, i.e. non-singular linear
+   * transforms, then a new ITK transform is created of the same type
+   * and this object is set to it.
+   *
+   * However not all transform have a direct inverse, if the inverse
+   * does not exist or fails false will be returned and this transform
+   * will not be modified.
+   */
+  virtual bool SetInverse();
+
+  /** \brief Return a new inverse transform of the same type as this.
+   *
+   * Creates a new transform object and tries to set the value to the
+   * inverse. As not all transform types have inverse and some
+   * transforms are not invertable, an exception will be throw is
+   * there is no inverse.
+   */
+  Transform GetInverse() const;
+
+  std::string ToString( void ) const;
+
+
+  /** return user readable name for the SimpleITK transform */
+  virtual std::string GetName() const;
+
+  /** \brief Performs actually coping if needed to make object unique.
+   *
+   * The Transform class by default performs lazy coping and
+   * assignment. This method make sure that coping actually happens
+   * to the itk::Transform pointed to is only pointed to by this
+   * object.
+   */
+  void MakeUnique( void );
+
+protected:
+
+
+  explicit Transform( PimpleTransformBase *pimpleTransform );
+
+  // this method is called to set the private pimpleTransfrom outside
+  // of the constructor, derived classes can override it of update the
+  // state.
+  virtual void SetPimpleTransform( PimpleTransformBase *pimpleTransform );
+
+private:
+
+  template< unsigned int VDimension>
+  void InternalInitialization( TransformEnum type, itk::TransformBase *base = NULL );
+
+  struct TransformTryCastVisitor
+  {
+    itk::TransformBase *transform;
+    Transform *that;
+    template< typename TransformType >
+    void operator() ( void ) const
+      {
+        TransformType *t = dynamic_cast<TransformType*>(transform);
+        if (t)
+          {
+          that->InternalInitialization<TransformType>(t);
+          }
+      }
+  };
+
+
+  template< class TransformType>
+  void InternalInitialization( TransformType *t );
+  void InternalInitialization( itk::TransformBase *base );
+
+
+  template< unsigned int >
+    void InternalBSplineInitialization( Image & img );
+
+  template< typename TDisplacementType >
+    void InternalDisplacementInitialization( Image & img );
+
+  template < class TMemberFunctionPointer >
+    struct DisplacementInitializationMemberFunctionAddressor
+  {
+    typedef typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType ObjectType;
+
+    template< typename TImageType >
+    TMemberFunctionPointer operator() ( void ) const
+      {
+        return &ObjectType::template InternalDisplacementInitialization< TImageType >;
+      }
+  };
+
+  // As is the architecture of all SimpleITK pimples,
+  // this pointer should never be null and should always point to a
+  // valid object
+  PimpleTransformBase *m_PimpleTransform;
+};
+
+
+// read
+SITKCommon_EXPORT Transform ReadTransform( const std::string &filename );
+
+// write
+SITKCommon_EXPORT void WriteTransform( const Transform &transform, const std::string &filename);
+
+}
+}
+
+#endif // sitkTransform_h
diff --git a/Code/Common/include/sitkTranslationTransform.h b/Code/Common/include/sitkTranslationTransform.h
new file mode 100644
index 0000000..08a2bfc
--- /dev/null
+++ b/Code/Common/include/sitkTranslationTransform.h
@@ -0,0 +1,89 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkTranslationTransform_h
+#define sitkTranslationTransform_h
+
+#include "sitkCommon.h"
+#include "sitkTransform.h"
+
+namespace itk
+{
+namespace simple
+{
+
+
+/** \brief Translation of a 2D or 3D coordinate space.
+ *
+ * \sa itk::TranslationTransform
+ */
+class SITKCommon_EXPORT TranslationTransform
+  : public Transform
+{
+public:
+typedef TranslationTransform Self;
+typedef Transform Superclass;
+
+explicit TranslationTransform(unsigned int dimensions,
+                              const std::vector<double> &offset = std::vector<double>(3,0.0) );
+
+TranslationTransform( const TranslationTransform & );
+
+TranslationTransform( const Transform & );
+
+TranslationTransform &operator=( const TranslationTransform & );
+
+SITK_RETURN_SELF_TYPE_HEADER SetOffset(const std::vector<double> &params);
+std::vector<double> GetOffset( ) const;
+
+protected:
+
+virtual void SetPimpleTransform( PimpleTransformBase *pimpleTransform );
+
+private:
+
+using Superclass::AddTransform;
+
+struct MyVisitor
+{
+  itk::TransformBase *transform;
+  TranslationTransform *that;
+  template< typename TransformType >
+  void operator() ( void ) const
+    {
+      TransformType *t = dynamic_cast<TransformType*>(transform);
+      if (t && (typeid(*t)==typeid(TransformType)))
+        {
+        that->InternalInitialization<TransformType>(t);
+        }
+    }
+};
+
+void InternalInitialization(itk::TransformBase *transform);
+
+template <typename TransformType>
+void InternalInitialization(TransformType *transform);
+
+nsstd::function<void(const std::vector<double> &)> m_pfSetOffset;
+nsstd::function<std::vector<double>()> m_pfGetOffset;
+
+};
+
+}
+}
+
+#endif // sitkTranslationTransform_h
diff --git a/Code/Common/include/sitkVersion.h b/Code/Common/include/sitkVersion.h
new file mode 100644
index 0000000..4b9c6c3
--- /dev/null
+++ b/Code/Common/include/sitkVersion.h
@@ -0,0 +1,55 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkVersion_h
+#define sitkVersion_h
+
+#include "sitkCommon.h"
+
+namespace itk
+{
+
+namespace simple
+{
+
+  /** \class Version
+   * \brief Version info for SimpleITK
+   */
+  class SITKCommon_EXPORT Version
+  {
+  public:
+    static unsigned int MajorVersion();
+    static unsigned int MinorVersion();
+    static unsigned int PatchVersion();
+    static unsigned int TweakVersion();
+    static const std::string &VersionString();
+    static const std::string &BuildDate();
+
+
+    static unsigned int ITKMajorVersion();
+    static unsigned int ITKMinorVersion();
+    static unsigned int ITKPatchVersion();
+    static const std::string &ITKVersionString();
+
+    static const std::string &ExtendedVersionString();
+    std::string ToString() { return Version::ExtendedVersionString(); }
+  };
+
+}
+}
+
+#endif
diff --git a/Code/Common/include/sitkVersorRigid3DTransform.h b/Code/Common/include/sitkVersorRigid3DTransform.h
new file mode 100644
index 0000000..714d9b0
--- /dev/null
+++ b/Code/Common/include/sitkVersorRigid3DTransform.h
@@ -0,0 +1,106 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkVersorRigid3DTransform_h
+#define sitkVersorRigid3DTransform_h
+
+#include "sitkCommon.h"
+#include "sitkTransform.h"
+
+namespace itk
+{
+namespace simple
+{
+
+
+/** \brief A rotation as a versor around a fixed center with
+ * translation of a 3D coordinate space.
+ *
+ * \sa itk::VersorRigid3DTransform
+ */
+class SITKCommon_EXPORT VersorRigid3DTransform
+  : public Transform
+{
+public:
+  typedef VersorRigid3DTransform Self;
+  typedef Transform Superclass;
+
+// construct identity
+  VersorRigid3DTransform();
+
+  VersorRigid3DTransform( const VersorRigid3DTransform & );
+
+  explicit VersorRigid3DTransform( const Transform & );
+
+  explicit VersorRigid3DTransform( const std::vector< double > &versor,
+                                   const std::vector< double > &translation=std::vector< double >(3, 0.0),
+                                   const std::vector< double> &fixedCenter=std::vector< double >(3, 0.0));
+
+  VersorRigid3DTransform( const std::vector< double > &axis, double angle,
+                          const std::vector< double > &translation=std::vector< double >(3, 0.0),
+                          const std::vector< double> &fixedCenter=std::vector< double >(3, 0.0) );
+
+  VersorRigid3DTransform &operator=( const VersorRigid3DTransform & );
+
+/** fixed parameter */
+  SITK_RETURN_SELF_TYPE_HEADER SetCenter(const std::vector<double> &params);
+  std::vector<double> GetCenter( ) const;
+
+
+/** parameter */
+  SITK_RETURN_SELF_TYPE_HEADER SetRotation(const std::vector<double> &versor);
+  SITK_RETURN_SELF_TYPE_HEADER SetRotation(const std::vector<double> &axis,  double angle);
+  std::vector<double> GetVersor() const;
+
+  std::vector<double> GetTranslation( ) const;
+  SITK_RETURN_SELF_TYPE_HEADER SetTranslation(const std::vector<double>& translation);
+
+/** additional methods */
+  SITK_RETURN_SELF_TYPE_HEADER Translate(const std::vector<double> &offset);
+  std::vector<double> GetMatrix() const;
+  SITK_RETURN_SELF_TYPE_HEADER SetMatrix(const std::vector<double> &matrix, double tolerance = 1e-10);
+
+protected:
+
+  virtual void SetPimpleTransform( PimpleTransformBase *pimpleTransform );
+
+private:
+
+  using Superclass::AddTransform;
+
+  void InternalInitialization(itk::TransformBase *transform);
+
+  template <typename TransformType>
+    void InternalInitialization(TransformType *transform);
+
+
+  nsstd::function<void(const std::vector<double>&)> m_pfSetCenter;
+  nsstd::function<std::vector<double>()> m_pfGetCenter;
+  nsstd::function<void(const std::vector<double>&)> m_pfSetRotation1;
+  nsstd::function<void(const std::vector<double>&,double)> m_pfSetRotation2;
+  nsstd::function<std::vector<double>()> m_pfGetVersor;
+  nsstd::function<void(const std::vector<double>&)> m_pfSetTranslation;
+  nsstd::function<std::vector<double>()> m_pfGetTranslation;
+  nsstd::function<void(const std::vector<double> &)> m_pfTranslate;
+  nsstd::function<std::vector<double>()> m_pfGetMatrix;
+  nsstd::function<void(const std::vector<double>&, double)> m_pfSetMatrix;
+};
+
+}
+}
+
+#endif // sitkVersorTransform_h
diff --git a/Code/Common/include/sitkVersorTransform.h b/Code/Common/include/sitkVersorTransform.h
new file mode 100644
index 0000000..6cd4736
--- /dev/null
+++ b/Code/Common/include/sitkVersorTransform.h
@@ -0,0 +1,98 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkVersorTransform_h
+#define sitkVersorTransform_h
+
+#include "sitkCommon.h"
+#include "sitkTransform.h"
+
+namespace itk
+{
+namespace simple
+{
+
+/** \brief A 3D rotation transform with rotation as a versor around a
+ * fixed center.
+ *
+ * \sa itk::VersorTransform
+ */
+class SITKCommon_EXPORT VersorTransform
+  : public Transform
+{
+public:
+  typedef VersorTransform Self;
+  typedef Transform Superclass;
+
+// construct identity
+  VersorTransform();
+
+  VersorTransform( const VersorTransform & );
+
+  explicit VersorTransform( const Transform & );
+
+  explicit VersorTransform( const std::vector< double > &versor,
+                            const std::vector< double> &fixedCenter =
+                            std::vector< double >(3, 0.0) );
+
+  VersorTransform( const std::vector< double > &axis,
+                   double angle,
+                   const std::vector< double> &fixedCenter =
+                   std::vector< double >(3, 0.0) );
+
+  VersorTransform &operator=( const VersorTransform & );
+
+/** fixed parameter */
+  SITK_RETURN_SELF_TYPE_HEADER SetCenter(const std::vector<double> &params);
+  std::vector<double> GetCenter( ) const;
+
+
+/** parameter */
+  SITK_RETURN_SELF_TYPE_HEADER SetRotation(const std::vector<double> &versor);
+  SITK_RETURN_SELF_TYPE_HEADER SetRotation(const std::vector<double> &axis,  double angle);
+  std::vector<double> GetVersor() const;
+
+  /** additional methods */
+  std::vector<double> GetMatrix() const;
+  SITK_RETURN_SELF_TYPE_HEADER SetMatrix(const std::vector<double> &matrix, double tolerance = 1e-10);
+
+protected:
+
+  virtual void SetPimpleTransform( PimpleTransformBase *pimpleTransform );
+
+private:
+
+  using Superclass::AddTransform;
+
+  void InternalInitialization(itk::TransformBase *transform);
+
+  template <typename TransformType>
+    void InternalInitialization(TransformType *transform);
+
+
+  nsstd::function<void(const std::vector<double>&)> m_pfSetCenter;
+  nsstd::function<std::vector<double>()> m_pfGetCenter;
+  nsstd::function<void(const std::vector<double>&)> m_pfSetRotation1;
+  nsstd::function<void(const std::vector<double>&,double)> m_pfSetRotation2;
+  nsstd::function<std::vector<double>()> m_pfGetVersor;
+  nsstd::function<std::vector<double>()> m_pfGetMatrix;
+  nsstd::function<void(const std::vector<double>&, double)> m_pfSetMatrix;
+};
+}
+}
+
+#endif // sitkVersorTransform_h
diff --git a/Code/Common/src/CMakeLists.txt b/Code/Common/src/CMakeLists.txt
new file mode 100644
index 0000000..364e029
--- /dev/null
+++ b/Code/Common/src/CMakeLists.txt
@@ -0,0 +1,70 @@
+set ( SimpleITKCommonSource
+  sitkImage.cxx
+  sitkImageExplicit.cxx
+  sitkProcessObject.cxx
+  sitkTransform.cxx
+  sitkAffineTransform.cxx
+  sitkBSplineTransform.cxx
+  sitkDisplacementFieldTransform.cxx
+  sitkEuler2DTransform.cxx
+  sitkEuler3DTransform.cxx
+  sitkScaleTransform.cxx
+  sitkScaleSkewVersor3DTransform.cxx
+  sitkScaleVersor3DTransform.cxx
+  sitkSimilarity2DTransform.cxx
+  sitkSimilarity3DTransform.cxx
+  sitkTranslationTransform.cxx
+  sitkVersorTransform.cxx
+  sitkVersorRigid3DTransform.cxx
+  sitkCommand.cxx
+  sitkFunctionCommand.cxx
+  sitkPixelIDValues.cxx
+  sitkExceptionObject.cxx
+  sitkKernel.cxx
+  sitkEvent.cxx
+  sitkInterpolator.cxx
+  sitkVersion.cxx
+  ../include/Ancillary/hl_md5.cxx
+  ../include/Ancillary/hl_sha1.cxx
+  )
+
+set(use_itk_modules ITKCommon ITKImageCompose ITKImageIntensity
+  ITKLabelMap ITKTransform ITKIOTransformBase ITKDisplacementField )
+find_package(ITK COMPONENTS ${use_itk_modules}  REQUIRED)
+
+add_library ( SimpleITKCommon ${SimpleITKCommonSource} ${SimpleITKAncillarySource} )
+sitk_target_use_itk (SimpleITKCommon PRIVATE ${use_itk_modules} )
+if (SimpleITK_EXPLICIT_INSTANTIATION)
+  target_link_libraries ( SimpleITKCommon PRIVATE SimpleITKExplicit )
+endif()
+target_include_directories ( SimpleITKCommon
+  PUBLIC
+    $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/Code/Common/include>
+    $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/Code/Common/include>
+    $<INSTALL_INTERFACE:${SimpleITK_INSTALL_INCLUDE_DIR}> )
+if(NOT SITK_HAS_STDINT_H AND MSVC)
+  target_include_directories ( SimpleITKCommon
+    PUBLIC
+      $<BUILD_INTERFACE:${SimpleITK_SOURCE_DIR}/Utilities/C99> )
+endif()
+target_compile_options( SimpleITKCommon
+  PUBLIC
+    ${SimpleITK_PUBLIC_COMPILE_OPTIONS}
+  PRIVATE
+    ${SimpleITK_PRIVATE_COMPILE_OPTIONS} )
+
+
+
+sitk_install_exported_target( SimpleITKCommon )
+
+# Add custom command that will delete java files which need to be rebuilt when changes
+# are made to Common
+if( WRAP_JAVA )
+  add_custom_command(
+    TARGET SimpleITKCommon
+    POST_BUILD
+    COMMENT "Cleaning java build..."
+    COMMAND ${CMAKE_COMMAND} -E remove -f ${SimpleITK_BINARY_DIR}/Wrapping/org/itk/simple/*.java
+    COMMAND ${CMAKE_COMMAND} -E remove -f ${SimpleITK_BINARY_DIR}/Wrapping/build/org/itk/simple/*.class
+  )
+endif()
diff --git a/Code/Common/src/sitkAffineTransform.cxx b/Code/Common/src/sitkAffineTransform.cxx
new file mode 100644
index 0000000..874312f
--- /dev/null
+++ b/Code/Common/src/sitkAffineTransform.cxx
@@ -0,0 +1,202 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include "sitkAffineTransform.h"
+#include "sitkTransformHelper.hxx"
+
+#include "itkAffineTransform.h"
+
+namespace itk
+{
+namespace simple
+{
+
+// construct identity
+AffineTransform::AffineTransform(unsigned int dimensions)
+  : Transform(dimensions, sitkAffine)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+AffineTransform::AffineTransform( const AffineTransform &arg )
+  : Transform(arg)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+AffineTransform::AffineTransform( const Transform &arg )
+  : Transform(arg)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+AffineTransform::AffineTransform( const std::vector< double> &matrix,
+                                  const std::vector< double> &translation,
+                                  const std::vector< double> &fixedCenter )
+  : Transform(translation.size(), sitkAffine)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+
+  this->SetMatrix(matrix);
+  this->SetTranslation(translation);
+  this->SetCenter(fixedCenter);
+}
+
+AffineTransform &AffineTransform::operator=( const AffineTransform &arg )
+{
+  Superclass::operator=(arg);
+  return *this;
+}
+
+/** parameter */
+AffineTransform::Self &AffineTransform::SetTranslation(const std::vector<double> &params)
+{
+  this->MakeUnique();
+  this->m_pfSetTranslation(params);
+  return *this;
+}
+
+std::vector<double> AffineTransform::GetTranslation( ) const
+{
+  return this->m_pfGetTranslation();
+}
+
+
+AffineTransform::Self &AffineTransform::SetMatrix(const std::vector<double> &params)
+{
+  this->MakeUnique();
+  this->m_pfSetMatrix(params);
+  return *this;
+}
+
+std::vector<double> AffineTransform::GetMatrix( ) const
+{
+  return this->m_pfGetMatrix();
+}
+
+
+/** fixed parameter */
+AffineTransform::Self &AffineTransform::SetCenter(const std::vector<double> &params)
+{
+  this->MakeUnique();
+  this->m_pfSetCenter(params);
+  return *this;
+}
+
+std::vector<double> AffineTransform::GetCenter( ) const
+{
+  return this->m_pfGetCenter();
+}
+
+AffineTransform::Self &AffineTransform::Scale(const std::vector<double> &factor, bool pre)
+{
+  this->MakeUnique();
+  this->m_pfScale1(factor, pre);
+  return *this;
+}
+
+AffineTransform::Self &AffineTransform::Scale(double factor, bool pre)
+{
+  this->MakeUnique();
+  this->m_pfScale2(factor, pre);
+  return *this;
+}
+
+AffineTransform::Self &AffineTransform::Shear(int axis1, int axis2, double coef, bool pre)
+{
+  this->MakeUnique();
+  this->m_pfShear(axis1, axis2, coef, pre);
+  return *this;
+}
+
+AffineTransform::Self &AffineTransform::Translate(const std::vector<double> &offset, bool pre)
+{
+  this->MakeUnique();
+  this->m_pfTranslate(offset, pre);
+  return *this;
+}
+
+AffineTransform::Self &AffineTransform::Rotate(int axis1, int axis2, double angle, bool pre)
+{
+  this->MakeUnique();
+  this->m_pfRotate(axis1, axis2, angle, pre);
+  return *this;
+}
+
+void AffineTransform::SetPimpleTransform( PimpleTransformBase *pimpleTransform )
+{
+  Superclass::SetPimpleTransform(pimpleTransform);
+  Self::InternalInitialization(this->GetITKBase());
+}
+
+void AffineTransform::InternalInitialization(itk::TransformBase *transform)
+{
+  MyVisitor visitor;
+  visitor.transform = transform;
+  visitor.that = this;
+
+  typedef typelist::MakeTypeList<itk::AffineTransform<double, 3>,
+                                 itk::AffineTransform<double, 2> >::Type TransformTypeList;
+
+  typelist::Visit<TransformTypeList> callInternalInitialization;
+
+  // explicitly remove all function pointer with reference to prior transform
+  this->m_pfSetCenter = SITK_NULLPTR;
+  this->m_pfGetCenter = SITK_NULLPTR;
+  this->m_pfSetTranslation = SITK_NULLPTR;
+  this->m_pfGetTranslation = SITK_NULLPTR;
+  this->m_pfSetMatrix = SITK_NULLPTR;
+  this->m_pfGetMatrix = SITK_NULLPTR;
+  this->m_pfScale1 = SITK_NULLPTR;
+  this->m_pfScale2 = SITK_NULLPTR;
+  this->m_pfShear = SITK_NULLPTR;
+  this->m_pfTranslate = SITK_NULLPTR;
+  this->m_pfRotate = SITK_NULLPTR;
+
+  callInternalInitialization(visitor);
+
+  if ( this->m_pfSetCenter == SITK_NULLPTR )
+    {
+    sitkExceptionMacro("Transform is not of type " << this->GetName() << "!" );
+    }
+}
+
+
+template<class TransformType>
+void AffineTransform::InternalInitialization(TransformType *t)
+{
+  SITK_TRANSFORM_SET_MPF(Center, typename TransformType::InputPointType, double);
+  SITK_TRANSFORM_SET_MPF(Translation, typename TransformType::OutputVectorType, double);
+
+  typename TransformType::MatrixType (*pfSTLToITKDirection)(const std::vector<double> &) = &sitkSTLToITKDirection<typename TransformType::MatrixType>;
+  this->m_pfSetMatrix = nsstd::bind(&TransformType::SetMatrix, t, nsstd::bind(pfSTLToITKDirection, nsstd::placeholders::_1));
+
+  SITK_TRANSFORM_SET_MPF_GetMatrix();
+
+  typename TransformType::OutputVectorType (*pfSTLVectorToITK)(const std::vector<double> &) = &sitkSTLVectorToITK<typename TransformType::OutputVectorType, double>;
+  void 	(TransformType::*pfScale1) (const typename TransformType::OutputVectorType &, bool) = &TransformType::Scale;
+  this->m_pfScale1 = nsstd::bind(pfScale1,t,nsstd::bind(pfSTLVectorToITK,nsstd::placeholders::_1),nsstd::placeholders::_2);
+
+  void 	(TransformType::*pfScale2) (const double &, bool) = &TransformType::Scale;
+  this->m_pfScale2 = nsstd::bind(pfScale2,t,nsstd::placeholders::_1,nsstd::placeholders::_2);
+  this->m_pfShear = nsstd::bind(&TransformType::Shear,t,nsstd::placeholders::_1,nsstd::placeholders::_2,nsstd::placeholders::_3,nsstd::placeholders::_4);
+  this->m_pfTranslate = nsstd::bind(&TransformType::Translate,t,nsstd::bind(pfSTLVectorToITK,nsstd::placeholders::_1),nsstd::placeholders::_2);
+  this->m_pfRotate = nsstd::bind(&TransformType::Rotate,t,nsstd::placeholders::_1,nsstd::placeholders::_2,nsstd::placeholders::_3,nsstd::placeholders::_4);
+}
+
+}
+}
diff --git a/Code/Common/src/sitkBSplineTransform.cxx b/Code/Common/src/sitkBSplineTransform.cxx
new file mode 100644
index 0000000..c1f1563
--- /dev/null
+++ b/Code/Common/src/sitkBSplineTransform.cxx
@@ -0,0 +1,250 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include "sitkBSplineTransform.h"
+#include "sitkPimpleTransform.hxx"
+#include "sitkTransformHelper.hxx"
+
+#include "itkBSplineTransform.h"
+
+namespace itk
+{
+namespace simple
+{
+namespace
+{
+// convert an itk::Array of images to a stl vector of sitk images
+template<typename TImageArrayType>
+std::vector<Image> sitkImageArrayConvert(const TImageArrayType &a)
+{
+  std::vector<Image> ret(a.Size());
+
+  for( unsigned int i = 0; i < a.Size(); ++i )
+    {
+    ret[i] = Image(a[i]);
+    }
+  return ret;
+}
+
+
+template<typename TBSplineTransform>
+unsigned int sitkGetOrder(void)
+{
+  return TBSplineTransform::SplineOrder;
+}
+
+}
+
+
+// construct identity
+BSplineTransform::BSplineTransform(unsigned int dimensions, unsigned int order)
+  : Transform( CreateBSplinePimpleTransform(dimensions, order) )
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+BSplineTransform::BSplineTransform( const BSplineTransform &arg )
+  : Transform(arg)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+
+BSplineTransform::BSplineTransform( const Transform &arg )
+  : Transform( arg )
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+
+BSplineTransform &BSplineTransform::operator=( const BSplineTransform &arg )
+{
+  Superclass::operator=(arg);
+  return *this;
+}
+
+
+BSplineTransform::Self &BSplineTransform::SetTransformDomainDirection(const std::vector<double> &params)
+{
+  this->MakeUnique();
+  this->m_pfSetTransformDomainDirection(params);
+  return *this;
+}
+
+
+std::vector<double> BSplineTransform::GetTransformDomainDirection() const
+{
+  return this->m_pfGetTransformDomainDirection();
+}
+
+
+BSplineTransform::Self &BSplineTransform::SetTransformDomainMeshSize(const std::vector<unsigned int>&params)
+{
+  this->MakeUnique();
+  this->m_pfSetTransformDomainMeshSize(params);
+  return *this;
+}
+
+
+std::vector<unsigned int> BSplineTransform::GetTransformDomainMeshSize() const
+{
+  return this->m_pfGetTransformDomainMeshSize();
+}
+
+
+BSplineTransform::Self &BSplineTransform::SetTransformDomainOrigin(const std::vector<double>&params)
+{
+  this->MakeUnique();
+  this->m_pfSetTransformDomainOrigin(params);
+  return *this;
+}
+
+
+std::vector<double> BSplineTransform::GetTransformDomainOrigin() const
+{
+  return this->m_pfGetTransformDomainOrigin();
+}
+
+
+BSplineTransform::Self &BSplineTransform::SetTransformDomainPhysicalDimensions(const std::vector<double> &params)
+{
+  this->MakeUnique();
+  this->m_pfSetTransformDomainPhysicalDimensions(params);
+  return *this;
+}
+
+
+std::vector<double> BSplineTransform::GetTransformDomainPhysicalDimensions() const
+{
+  return this->m_pfGetTransformDomainPhysicalDimensions();
+}
+
+
+std::vector<Image> BSplineTransform::GetCoefficientImages () const
+{
+  return this->m_pfGetCoefficientImages();
+}
+
+unsigned int BSplineTransform::GetOrder() const
+{
+  return this->m_pfGetOrder();
+}
+
+
+void BSplineTransform::SetPimpleTransform( PimpleTransformBase *pimpleTransform )
+{
+  Superclass::SetPimpleTransform(pimpleTransform);
+  Self::InternalInitialization(this->GetITKBase());
+}
+
+void BSplineTransform::InternalInitialization(itk::TransformBase *transform)
+{
+  MyVisitor visitor;
+  visitor.transform = transform;
+  visitor.that = this;
+
+  typedef typelist::MakeTypeList<
+  itk::BSplineTransform<double, 3, 0>,
+    itk::BSplineTransform<double, 2, 0>,
+  itk::BSplineTransform<double, 3, 1>,
+    itk::BSplineTransform<double, 2, 1>,
+  itk::BSplineTransform<double, 3, 2>,
+    itk::BSplineTransform<double, 2, 2>,
+  itk::BSplineTransform<double, 3, 3>,
+    itk::BSplineTransform<double, 2, 3> >::Type TransformTypeList;
+
+  typelist::Visit<TransformTypeList> callInternalInitialization;
+
+  // explicitly remove all function pointer with reference to prior transform
+  this->m_pfGetTransformDomainDirection = SITK_NULLPTR;
+  this->m_pfSetTransformDomainDirection = SITK_NULLPTR;
+  this->m_pfGetTransformDomainMeshSize = SITK_NULLPTR;
+  this->m_pfSetTransformDomainMeshSize = SITK_NULLPTR;
+  this->m_pfGetTransformDomainOrigin = SITK_NULLPTR;
+  this->m_pfSetTransformDomainOrigin = SITK_NULLPTR;
+  this->m_pfGetTransformDomainPhysicalDimensions = SITK_NULLPTR;
+  this->m_pfSetTransformDomainPhysicalDimensions = SITK_NULLPTR;
+  this->m_pfGetCoefficientImages = SITK_NULLPTR;
+  this->m_pfGetOrder = SITK_NULLPTR;
+
+  callInternalInitialization(visitor);
+
+  if ( this->m_pfGetOrder == SITK_NULLPTR )
+    {
+    sitkExceptionMacro("Transform is not of type " << this->GetName() << "!" );
+    }
+}
+
+
+template<class TransformType>
+void BSplineTransform::InternalInitialization(TransformType *t)
+{
+  { // TransformDomainDirection
+  typename TransformType::DirectionType (*pfSTLToITKDirection)(const std::vector<double> &) = &sitkSTLToITKDirection<typename TransformType::DirectionType>;
+  this->m_pfSetTransformDomainDirection = nsstd::bind(&TransformType::SetTransformDomainDirection,t,nsstd::bind(pfSTLToITKDirection,nsstd::placeholders::_1));
+
+  std::vector<double> (*pfITKDirectionToSTL)( const typename TransformType::DirectionType &) = &sitkITKDirectionToSTL<typename TransformType::DirectionType>;
+  this->m_pfGetTransformDomainDirection = nsstd::bind(pfITKDirectionToSTL,nsstd::bind(&TransformType::GetTransformDomainDirection,t));
+  }
+
+   // TransformDomainMeshSize
+  SITK_TRANSFORM_SET_MPF( TransformDomainMeshSize, typename TransformType::MeshSizeType, unsigned int );
+  // TransformDomainOrigin
+  SITK_TRANSFORM_SET_MPF( TransformDomainOrigin, typename TransformType::OriginType, double );
+  // TransformDomainPhysicalDimensions
+  SITK_TRANSFORM_SET_MPF( TransformDomainPhysicalDimensions, typename TransformType::PhysicalDimensionsType, double );
+
+
+  std::vector<Image> (*pfImageArrayConvert)(const typename TransformType::CoefficientImageArray &) = &sitkImageArrayConvert<typename TransformType::CoefficientImageArray>;
+  this->m_pfGetCoefficientImages = nsstd::bind(pfImageArrayConvert, nsstd::bind(&TransformType::GetCoefficientImages,t) );
+
+  this->m_pfGetOrder =  &sitkGetOrder<TransformType>;
+}
+
+PimpleTransformBase *BSplineTransform::CreateBSplinePimpleTransform(unsigned int dimension, unsigned int order)
+{
+  switch (dimension)
+    {
+    case 2:
+      return Self::CreateBSplinePimpleTransform<2>(order);
+    case 3:
+      return Self::CreateBSplinePimpleTransform<3>(order);
+    default:
+      sitkExceptionMacro("Invalid dimension for transform");
+    }
+}
+
+template <unsigned int ND>
+PimpleTransformBase *BSplineTransform::CreateBSplinePimpleTransform(unsigned int order)
+{
+  switch(order)
+    {
+    case 0:
+      return new PimpleTransform<itk::BSplineTransform<double,ND,0> >();
+    case 1:
+      return new PimpleTransform<itk::BSplineTransform<double,ND,1> >();
+    case 2:
+      return new PimpleTransform<itk::BSplineTransform<double,ND,2> >();
+    case 3:
+      return new PimpleTransform<itk::BSplineTransform<double,ND,3> >();
+    default:
+      sitkExceptionMacro("Spline order " << static_cast<int>(order) << " is not supported!");
+    }
+}
+
+}
+}
diff --git a/Code/Common/src/sitkCommand.cxx b/Code/Common/src/sitkCommand.cxx
new file mode 100644
index 0000000..d9d28d6
--- /dev/null
+++ b/Code/Common/src/sitkCommand.cxx
@@ -0,0 +1,69 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include "sitkCommand.h"
+#include "sitkProcessObject.h"
+
+namespace itk
+{
+namespace simple
+{
+
+Command::Command( )
+  : m_OwnedByProcessObjects(false),
+    m_Name("Command")
+{
+}
+
+Command::~Command( )
+{
+  // tell the process object that we are being destroyed so that it
+  // can remove this as an observer
+  std::set<itk::simple::ProcessObject*>::iterator i = m_ReferencedObjects.begin();
+  while( i !=  m_ReferencedObjects.end() )
+    {
+    (*i++)->onCommandDelete(this);
+    }
+}
+
+
+void Command::Execute(void)
+{
+}
+
+size_t Command::AddProcessObject(itk::simple::ProcessObject *o)
+{
+  // unique add process object to set
+  m_ReferencedObjects.insert(o);
+  return m_ReferencedObjects.size();
+}
+
+size_t Command::RemoveProcessObject(const itk::simple::ProcessObject *co)
+{
+  ProcessObject *o = const_cast<ProcessObject*>(co);
+  m_ReferencedObjects.erase(o);
+  const size_t ret = m_ReferencedObjects.size();
+  if (ret==0 && m_OwnedByProcessObjects)
+    {
+    delete this;
+    }
+  return ret;
+}
+
+
+} // end namespace simple
+} // end namespace itk
diff --git a/Code/Common/src/sitkConfigure.h.in b/Code/Common/src/sitkConfigure.h.in
new file mode 100644
index 0000000..5337cde
--- /dev/null
+++ b/Code/Common/src/sitkConfigure.h.in
@@ -0,0 +1,62 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkConfigure_h
+#define sitkConfigure_h
+
+
+#cmakedefine SITK_BUILD_SHARED_LIBS
+#ifdef SITK_BUILD_SHARED_LIBS
+#define SITKDLL
+#else
+#define SITKSTATIC
+#endif
+#cmakedefine SITK_SimpleITKExplit_STATIC
+
+
+// defined if the system has C++0x "static_assert" keyword
+#cmakedefine SITK_HAS_CXX11_STATIC_ASSERT
+// defined if the compiler has C++11 "nullptr" keyword
+#cmakedefine SITK_HAS_CXX11_NULLPTR
+#cmakedefine SITK_HAS_CXX11_FUNCTIONAL
+#cmakedefine SITK_HAS_CXX11_TYPE_TRAITS
+#cmakedefine SITK_HAS_CXX11_UNORDERED_MAP
+#cmakedefine SITK_HAS_CXX11_UNIQUE_PTR
+#cmakedefine SITK_HAS_CXX11_ALIAS_TEMPLATE
+
+#cmakedefine SITK_HAS_TR1_SUB_INCLUDE
+
+#cmakedefine SITK_HAS_TR1_FUNCTIONAL
+#cmakedefine SITK_HAS_TR1_TYPE_TRAITS
+#cmakedefine SITK_HAS_TR1_UNORDERED_MAP
+
+// defined if compiler supports using template keyword to disambiguate
+// dependent names
+#cmakedefine SITK_HAS_TEMPLATE_DISAMBIGUATOR_DEPENDENT_NAME
+
+#cmakedefine SITK_INT64_PIXELIDS
+#cmakedefine SITK_4D_IMAGES
+
+#cmakedefine SITK_EXPLICIT_INSTANTIATION
+
+// Include ITK version reported in CMake with SITK prefix, so that
+// SimpleITK dosen't need ITK header in our headers.
+#define SITK_ITK_VERSION_MAJOR @ITK_VERSION_MAJOR@
+#define SITK_ITK_VERSION_MINOR @ITK_VERSION_MINOR@
+#define SITK_ITK_VERSION_PATCH @ITK_VERSION_PATCH@
+
+#endif // sitkConfigure_h
diff --git a/Code/Common/src/sitkDisplacementFieldTransform.cxx b/Code/Common/src/sitkDisplacementFieldTransform.cxx
new file mode 100644
index 0000000..54ce33e
--- /dev/null
+++ b/Code/Common/src/sitkDisplacementFieldTransform.cxx
@@ -0,0 +1,435 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+
+#if defined(_MSC_VER) && _MSC_VER == 1700
+// VS11 (Visual Studio 2012) has limited variadic argument support for
+// std::bind, the following increases the number of supported
+// arguments.
+// https://connect.microsoft.com/VisualStudio/feedback/details/723448/very-few-function-arguments-for-std-bind
+
+ #if defined(_VARIADIC_MAX) && _VARIADIC_MAX < 10
+  #error "_VARIADIC_MAX already defined. Some STL classes may have insufficient number of template parameters."
+ #else
+  #define _VARIADIC_MAX 10
+ #endif
+#endif
+
+#include "sitkDisplacementFieldTransform.h"
+#include "sitkPimpleTransform.hxx"
+#include "sitkImageConvert.h"
+
+#include "itkDisplacementFieldTransform.h"
+#include "itkBSplineSmoothingOnUpdateDisplacementFieldTransform.h"
+#include "itkGaussianSmoothingOnUpdateDisplacementFieldTransform.h"
+#include "itkVectorImage.h"
+#include "itkImage.h"
+#include "itkVectorNearestNeighborInterpolateImageFunction.h"
+
+namespace itk
+{
+namespace simple
+{
+
+namespace
+{
+
+template<unsigned int NDimension>
+typename itk::Image<itk::Vector<double,NDimension>,NDimension>::Pointer
+ GetITKImageFromSITKVectorImage(Image &inImage)
+{
+  typedef itk::VectorImage<double,NDimension> VectorImageType;
+
+  if (inImage.GetDimension() != NDimension)
+    {
+    sitkExceptionMacro("Expected input displacement field image to be of dimension "
+                       << NDimension << " not " << inImage.GetDimension() << "!" );
+    }
+
+  if (inImage.GetPixelID() != sitkVectorFloat64)
+    {
+    sitkExceptionMacro("Expected input displacement field image for be of pixel type: " << sitkVectorFloat64);
+    }
+
+  typename VectorImageType::Pointer image = dynamic_cast < VectorImageType* > ( inImage.GetITKBase() );
+
+  if ( image.IsNull() )
+    {
+    sitkExceptionMacro( "Unexpected casting error!")
+    }
+
+  // TODO: the input image needs to be made unique before we take the buffer
+
+  typedef typename itk::Image<itk::Vector<double,NDimension>,NDimension> ImageVectorType;
+  typename ImageVectorType::Pointer out = GetImageFromVectorImage(image.GetPointer(), true );
+
+  // With the above the itk::Image has taken ownership, so the input
+  // image is set to a new empty image.
+  inImage = Image();
+
+  return out;
+}
+
+template< typename TDisplacementFieldTransform >
+void InternalSetDisplacementField( TDisplacementFieldTransform *itkDisplacementTx, Image & inImage )
+{
+  typedef typename TDisplacementFieldTransform::DisplacementFieldType ITKDisplacementFieldType;
+  typename ITKDisplacementFieldType::Pointer itkDisplacement = GetITKImageFromSITKVectorImage<TDisplacementFieldTransform::Dimension>(inImage);
+  itkDisplacementTx->SetDisplacementField(itkDisplacement);
+}
+
+
+template< typename TDisplacementFieldTransform >
+void InternalSetInverseDisplacementField( TDisplacementFieldTransform *itkDisplacementTx, Image & inImage )
+{
+  typedef typename TDisplacementFieldTransform::DisplacementFieldType ITKDisplacementFieldType;
+  typename ITKDisplacementFieldType::Pointer itkDisplacement = GetITKImageFromSITKVectorImage<TDisplacementFieldTransform::Dimension>(inImage);
+  itkDisplacementTx->SetInverseDisplacementField(itkDisplacement);
+}
+
+
+template< typename TDisplacementFieldTransform >
+void InternalSetInterpolator( TDisplacementFieldTransform *itkDisplacementTx, InterpolatorEnum interp )
+{
+  typedef typename TDisplacementFieldTransform::InterpolatorType ITKInterpoaltorType;
+  typedef typename TDisplacementFieldTransform::DisplacementFieldType ImageType;
+  typedef typename TDisplacementFieldTransform::ScalarType ScalarType;
+  typename ITKInterpoaltorType::Pointer itkInterp;
+  switch (interp)
+    {
+    case sitkNearestNeighbor:
+      {
+      typedef itk::VectorNearestNeighborInterpolateImageFunction<ImageType, ScalarType> InterpolatorType;
+      itkInterp = InterpolatorType::New();
+      break;
+      }
+    case sitkLinear:
+      {
+      typedef itk::VectorLinearInterpolateImageFunction<ImageType, ScalarType> InterpolatorType;
+      itkInterp =  InterpolatorType::New();
+      break;
+      }
+    default:
+      sitkExceptionMacro("Interpolator type " << interp << " is not supported!");
+    }
+  itkDisplacementTx->SetInterpolator(itkInterp);
+  itkDisplacementTx->SetInverseInterpolator(itkInterp);
+}
+
+
+}
+
+// construct identity
+DisplacementFieldTransform::DisplacementFieldTransform(unsigned int dimensions)
+  : Transform( CreateDisplacementFieldPimpleTransform(dimensions) )
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+
+DisplacementFieldTransform::DisplacementFieldTransform( Image &img )
+  : Transform( CreateDisplacementFieldPimpleTransform(img.GetDimension() ) )
+{
+  Self::InternalInitialization(Self::GetITKBase());
+  Self::SetDisplacementField(img);
+}
+
+DisplacementFieldTransform::DisplacementFieldTransform( const DisplacementFieldTransform &arg )
+  : Transform(arg)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+
+DisplacementFieldTransform::DisplacementFieldTransform( const Transform &arg )
+  : Transform(arg)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+
+DisplacementFieldTransform &DisplacementFieldTransform::operator=( const DisplacementFieldTransform &arg )
+{
+  Superclass::operator=(arg);
+  return *this;
+}
+
+
+DisplacementFieldTransform::Self &DisplacementFieldTransform::SetDisplacementField(Image &img)
+{
+  this->MakeUnique();
+  this->m_pfSetDisplacementField(img);
+  return *this;
+}
+
+Image DisplacementFieldTransform::GetDisplacementField() const
+{
+  return this->m_pfGetDisplacementField();
+}
+
+
+DisplacementFieldTransform::Self &DisplacementFieldTransform::SetInverseDisplacementField(Image &img)
+{
+  this->MakeUnique();
+  this->m_pfSetInverseDisplacementField(img);
+  return *this;
+}
+
+
+Image DisplacementFieldTransform::GetInverseDisplacementField() const
+{
+  return this->m_pfGetInverseDisplacementField();
+}
+
+DisplacementFieldTransform::Self &DisplacementFieldTransform::SetInterpolator(InterpolatorEnum interp)
+{
+  this->MakeUnique();
+  this->m_pfSetInterpolator(interp);
+  return *this;
+}
+
+// InterpolatorEnum DisplacementFieldTransform::GetInterpolator() const
+// {
+//   return this->m_pfGetInterpolator();
+// }
+
+DisplacementFieldTransform::Self &DisplacementFieldTransform::SetSmoothingOff()
+{
+  this->MakeUnique();
+  this->m_pfSetSmoothingOff();
+  return *this;
+}
+
+DisplacementFieldTransform::Self &DisplacementFieldTransform::SetSmoothingGaussianOnUpdate( double varianceForUpdateField, double varianceForTotalField )
+{
+  this->MakeUnique();
+  this->m_pfSetSmoothingGaussianOnUpdate(varianceForUpdateField, varianceForTotalField );
+  return *this;
+}
+
+DisplacementFieldTransform::Self &
+DisplacementFieldTransform::SetSmoothingBSplineOnUpdate( const std::vector<unsigned int> &numberOfControlPointsForUpdateField,
+                                                         const std::vector<unsigned int> &numberOfControlPointsForTotalField,
+                                                         bool enforceStationaryBoundary,
+                                                         unsigned int order )
+{
+  this->MakeUnique();
+  this->m_pfSetSmoothingBSplineOnUpdate(numberOfControlPointsForUpdateField, numberOfControlPointsForTotalField, enforceStationaryBoundary, order);
+  return *this;
+}
+
+
+void DisplacementFieldTransform::SetPimpleTransform( PimpleTransformBase *pimpleTransform )
+{
+  Superclass::SetPimpleTransform(pimpleTransform);
+  Self::InternalInitialization(this->GetITKBase());
+}
+
+void DisplacementFieldTransform::InternalInitialization(itk::TransformBase *transform)
+{
+  MyVisitor visitor;
+  visitor.transform = transform;
+  visitor.that = this;
+
+  typedef typelist::MakeTypeList<
+    itk::DisplacementFieldTransform<double, 3>,
+    itk::DisplacementFieldTransform<double, 2>,
+    itk::BSplineSmoothingOnUpdateDisplacementFieldTransform<double, 3>,
+    itk::BSplineSmoothingOnUpdateDisplacementFieldTransform<double, 2>,
+    itk::GaussianSmoothingOnUpdateDisplacementFieldTransform<double, 3>,
+    itk::GaussianSmoothingOnUpdateDisplacementFieldTransform<double, 2> >::Type TransformTypeList;
+
+  typelist::Visit<TransformTypeList> callInternalInitialization;
+
+  // explicitly remove all function pointer with reference to prior transform
+  m_pfSetDisplacementField = SITK_NULLPTR;
+  m_pfGetDisplacementField = SITK_NULLPTR;
+  m_pfSetInverseDisplacementField = SITK_NULLPTR;
+  m_pfGetInverseDisplacementField = SITK_NULLPTR;
+  m_pfSetInterpolator = SITK_NULLPTR;
+  m_pfGetInterpolator = SITK_NULLPTR;
+  m_pfSetSmoothingOff = SITK_NULLPTR;
+  m_pfSetSmoothingGaussianOnUpdate = SITK_NULLPTR;
+  m_pfSetSmoothingBSplineOnUpdate = SITK_NULLPTR;
+
+  callInternalInitialization(visitor);
+
+  if ( this->m_pfSetDisplacementField == SITK_NULLPTR )
+    {
+    sitkExceptionMacro("Transform is not of type " << this->GetName() << "!" );
+    }
+}
+
+
+template<class TransformType>
+void DisplacementFieldTransform::InternalInitialization(TransformType *t)
+{
+  this->m_pfSetDisplacementField = nsstd::bind(&InternalSetDisplacementField<TransformType>, t, nsstd::placeholders::_1);
+  this->m_pfGetDisplacementField = nsstd::bind(&DisplacementFieldTransform::InternalGetDisplacementField<TransformType>, t);
+
+  this->m_pfSetInverseDisplacementField = nsstd::bind(&InternalSetInverseDisplacementField<TransformType>, t, nsstd::placeholders::_1);
+  this->m_pfGetInverseDisplacementField = nsstd::bind(&DisplacementFieldTransform::InternalGetInverseDisplacementField<TransformType>, t);
+
+  this->m_pfSetInterpolator = nsstd::bind(&InternalSetInterpolator<TransformType>, t, nsstd::placeholders::_1);
+
+  m_pfSetSmoothingOff = nsstd::bind(&Self::InternalSetSmoothingOff<TransformType>, this, t);
+  m_pfSetSmoothingGaussianOnUpdate = nsstd::bind(&Self::InternalSetSmoothingGaussianOnUpdate<TransformType>, this, t, nsstd::placeholders::_1, nsstd::placeholders::_2 );
+  m_pfSetSmoothingBSplineOnUpdate = nsstd::bind(&Self::InternalSetSmoothingBSplineOnUpdate<TransformType>, this, t, nsstd::placeholders::_1, nsstd::placeholders::_2, nsstd::placeholders::_3, nsstd::placeholders::_4 );
+}
+
+PimpleTransformBase *DisplacementFieldTransform::CreateDisplacementFieldPimpleTransform(unsigned int dimension)
+{
+  switch (dimension)
+    {
+      case 2:
+        return new PimpleTransform<itk::DisplacementFieldTransform<double,2> >();
+      case 3:
+        return new PimpleTransform<itk::DisplacementFieldTransform<double,3> >();
+    default:
+      sitkExceptionMacro("Invalid dimension for transform");
+    }
+}
+
+
+template< typename TDisplacementFieldTransform >
+Image DisplacementFieldTransform::InternalGetDisplacementField( const TDisplacementFieldTransform *itkDisplacementTx )
+{
+  // The returned image references the buffer for the displacement
+  // field, but it does not have the correct reference count.
+  typedef typename TDisplacementFieldTransform::DisplacementFieldType DisplacementFieldType;
+  DisplacementFieldType *itkDisplacement = const_cast<DisplacementFieldType*>(itkDisplacementTx->GetDisplacementField());
+  if (itkDisplacement != NULL)
+    {
+    return Image(GetVectorImageFromImage(itkDisplacement));
+    }
+  return Image(std::vector<unsigned int>(TDisplacementFieldTransform::Dimension,0), sitkVectorFloat64);
+}
+
+template< typename TDisplacementFieldTransform >
+Image DisplacementFieldTransform::InternalGetInverseDisplacementField( const TDisplacementFieldTransform *itkDisplacementTx )
+{
+  typedef typename TDisplacementFieldTransform::DisplacementFieldType DisplacementFieldType;
+  DisplacementFieldType *itkDisplacement = const_cast<DisplacementFieldType*>(itkDisplacementTx->GetInverseDisplacementField());
+  if (itkDisplacement != NULL)
+    {
+    return Image(GetVectorImageFromImage(itkDisplacement));
+    }
+  return Image(std::vector<unsigned int>(TDisplacementFieldTransform::Dimension,0), sitkVectorFloat64);
+}
+
+template< typename TDisplacementFieldTransform >
+void DisplacementFieldTransform::InternalSetSmoothingOff( TDisplacementFieldTransform *itkDisplacement )
+{
+  // To set smoothing off we make sure that the displacement type is
+  // not of a derived type.
+  const unsigned int Dimension = TDisplacementFieldTransform::Dimension;
+  typedef typename TDisplacementFieldTransform::ScalarType ScalarType;
+  typedef itk::DisplacementFieldTransform<ScalarType,Dimension> NewTransformType;
+
+  // already off don't need to create a new transform
+  if (!nsstd::is_same<TDisplacementFieldTransform, NewTransformType>::value)
+    {
+    typename NewTransformType::Pointer itkNewDisplacement = NewTransformType::New();
+
+    itkNewDisplacement->SetDisplacementField( itkDisplacement->GetDisplacementField() );
+    itkNewDisplacement->SetInverseDisplacementField( itkDisplacement->GetInverseDisplacementField() );
+    itkNewDisplacement->SetInterpolator( itkDisplacement->GetInterpolator() );
+    itkNewDisplacement->SetInverseInterpolator( itkDisplacement->GetInverseInterpolator() );
+
+    this->SetPimpleTransform( new PimpleTransform<NewTransformType>(itkNewDisplacement));
+    }
+}
+
+template< typename TDisplacementFieldTransform >
+void DisplacementFieldTransform::InternalSetSmoothingGaussianOnUpdate( TDisplacementFieldTransform *itkDisplacement,
+                                                                       double varianceForUpdateField,
+                                                                       double varianceForTotalField )
+{
+ // To set the smoothing to the Gaussian, we change the type of
+  // displacement field transform if need, copying the fields.
+  const unsigned int Dimension = TDisplacementFieldTransform::Dimension;
+  typedef typename TDisplacementFieldTransform::ScalarType ScalarType;
+  typedef itk::GaussianSmoothingOnUpdateDisplacementFieldTransform<ScalarType,Dimension> NewTransformType;
+
+  typename NewTransformType::Pointer itkNewDisplacement;
+
+  // change the type of the current displace field for the correct update
+  if (!nsstd::is_same<TDisplacementFieldTransform, NewTransformType>::value)
+    {
+    itkNewDisplacement = NewTransformType::New();
+
+    itkNewDisplacement->SetDisplacementField( itkDisplacement->GetDisplacementField() );
+    itkNewDisplacement->SetInverseDisplacementField( itkDisplacement->GetInverseDisplacementField() );
+    itkNewDisplacement->SetInterpolator( itkDisplacement->GetInterpolator() );
+    itkNewDisplacement->SetInverseInterpolator( itkDisplacement->GetInverseInterpolator() );
+
+    this->SetPimpleTransform( new PimpleTransform<NewTransformType>(itkNewDisplacement));
+    }
+  else
+    {
+    itkNewDisplacement = dynamic_cast<NewTransformType*>(itkDisplacement);
+    }
+
+  itkNewDisplacement->SetGaussianSmoothingVarianceForTheUpdateField(varianceForUpdateField);
+  itkNewDisplacement->SetGaussianSmoothingVarianceForTheTotalField(varianceForTotalField);
+}
+
+
+template< typename TDisplacementFieldTransform >
+void DisplacementFieldTransform::InternalSetSmoothingBSplineOnUpdate( TDisplacementFieldTransform *itkDisplacement,
+                                                                      const std::vector<unsigned int> &numberOfControlPointsForUpdateField,
+                                                                      const std::vector<unsigned int> &numberOfControlPointsForTotalField,
+                                                                      bool enforceStationaryBoundary,
+                                                                      unsigned int order )
+{
+
+  // To set the smoothing to the Gaussian, we change the type of
+  // displacement field transform if need, copying the fields.
+  const unsigned int Dimension = TDisplacementFieldTransform::Dimension;
+  typedef typename TDisplacementFieldTransform::ScalarType ScalarType;
+  typedef itk::BSplineSmoothingOnUpdateDisplacementFieldTransform<ScalarType,Dimension> NewTransformType;
+
+  typename NewTransformType::Pointer itkNewDisplacement;
+
+  // change the type of the current displace field for the correct update
+  if (!nsstd::is_same<TDisplacementFieldTransform, NewTransformType>::value)
+    {
+    itkNewDisplacement = NewTransformType::New();
+
+    itkNewDisplacement->SetDisplacementField( itkDisplacement->GetDisplacementField() );
+    itkNewDisplacement->SetInverseDisplacementField( itkDisplacement->GetInverseDisplacementField() );
+    itkNewDisplacement->SetInterpolator( itkDisplacement->GetInterpolator() );
+    itkNewDisplacement->SetInverseInterpolator( itkDisplacement->GetInverseInterpolator() );
+
+    this->SetPimpleTransform( new PimpleTransform<NewTransformType>(itkNewDisplacement));
+    }
+  else
+    {
+    itkNewDisplacement = dynamic_cast<NewTransformType*>(itkDisplacement);
+    }
+  typedef typename NewTransformType::ArrayType ArrayType;
+  itkNewDisplacement->SetNumberOfControlPointsForTheUpdateField(sitkSTLVectorToITK<ArrayType>(numberOfControlPointsForUpdateField));
+  itkNewDisplacement->SetNumberOfControlPointsForTheTotalField(sitkSTLVectorToITK<ArrayType>(numberOfControlPointsForTotalField));
+  itkNewDisplacement->SetEnforceStationaryBoundary(enforceStationaryBoundary);
+  itkNewDisplacement->SetSplineOrder(order);
+
+}
+
+
+}
+}
diff --git a/Code/Common/src/sitkEuler2DTransform.cxx b/Code/Common/src/sitkEuler2DTransform.cxx
new file mode 100644
index 0000000..0d0c62a
--- /dev/null
+++ b/Code/Common/src/sitkEuler2DTransform.cxx
@@ -0,0 +1,167 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include "sitkEuler2DTransform.h"
+#include "sitkTransformHelper.hxx"
+
+#include "itkEuler2DTransform.h"
+
+namespace itk
+{
+namespace simple
+{
+
+// construct identity
+Euler2DTransform::Euler2DTransform()
+  : Transform(2,sitkEuler)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+Euler2DTransform::Euler2DTransform(const std::vector<double> &fixedCenter,
+                                   double angle,
+                                   const std::vector<double> &translation)
+  : Transform(2,sitkEuler)
+
+{
+  Self::InternalInitialization(Self::GetITKBase());
+
+  this->SetCenter(fixedCenter);
+  this->SetAngle(angle);
+  this->SetTranslation(translation);
+}
+
+
+Euler2DTransform::Euler2DTransform( const Euler2DTransform &arg )
+  : Transform(arg)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+
+Euler2DTransform::Euler2DTransform( const Transform &arg )
+  : Transform(arg)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+
+Euler2DTransform &Euler2DTransform::operator=( const Euler2DTransform &arg )
+{
+  Superclass::operator=(arg);
+  return *this;
+}
+
+
+/** fixed parameter */
+Euler2DTransform::Self &Euler2DTransform::SetCenter(const std::vector<double> &params)
+{
+  this->MakeUnique();
+  this->m_pfSetCenter(params);
+  return *this;
+}
+
+std::vector<double> Euler2DTransform::GetCenter( ) const
+{
+  return this->m_pfGetCenter();
+}
+
+double Euler2DTransform::GetAngle() const
+{
+  return this->m_pfGetAngle();
+}
+
+/** parameter */
+Euler2DTransform::Self &Euler2DTransform::SetAngle(double angle)
+{
+  this->MakeUnique();
+  this->m_pfSetAngle(angle);
+  return *this;
+}
+
+Euler2DTransform::Self &Euler2DTransform::SetTranslation(const std::vector<double> &params)
+{
+  this->MakeUnique();
+  this->m_pfSetTranslation(params);
+  return *this;
+}
+
+std::vector<double> Euler2DTransform::GetTranslation( ) const
+{
+  return this->m_pfGetTranslation();
+}
+
+std::vector<double> Euler2DTransform::GetMatrix( ) const
+{
+  return this->m_pfGetMatrix();
+}
+
+Euler2DTransform::Self &Euler2DTransform::SetMatrix(const std::vector<double> &params, double tolerance)
+{
+  this->MakeUnique();
+  this->m_pfSetMatrix(params,tolerance);
+  return *this;
+}
+
+void Euler2DTransform::SetPimpleTransform( PimpleTransformBase *pimpleTransform )
+{
+  Superclass::SetPimpleTransform(pimpleTransform);
+  Self::InternalInitialization(this->GetITKBase());
+}
+
+void Euler2DTransform::InternalInitialization(itk::TransformBase *transform)
+{
+
+  typedef itk::Euler2DTransform<double> TransformType;
+  TransformType *t = dynamic_cast<TransformType*>(transform);
+
+  this->m_pfSetCenter = SITK_NULLPTR;
+  this->m_pfGetCenter = SITK_NULLPTR;
+  this->m_pfSetTranslation = SITK_NULLPTR;
+  this->m_pfGetTranslation = SITK_NULLPTR;
+  this->m_pfSetAngle = SITK_NULLPTR;
+  this->m_pfGetAngle = SITK_NULLPTR;
+  this->m_pfGetMatrix = SITK_NULLPTR;
+  this->m_pfSetMatrix = SITK_NULLPTR;
+
+  if (t && (typeid(*t)==typeid(TransformType)))
+    {
+    this->InternalInitialization(t);
+    return;
+    }
+  else
+    {
+    sitkExceptionMacro("Transform is not of type " << this->GetName() << "!" );
+    }
+
+}
+
+
+template<class TransformType>
+void Euler2DTransform::InternalInitialization(TransformType *t)
+{
+  SITK_TRANSFORM_SET_MPF(Center, typename TransformType::InputPointType, double);
+  SITK_TRANSFORM_SET_MPF(Translation, typename TransformType::OutputVectorType, double);
+  SITK_TRANSFORM_SET_MPF_GetMatrix();
+  SITK_TRANSFORM_SET_MPF_SetMatrix();
+
+  this->m_pfSetAngle = nsstd::bind(&TransformType::SetAngle,t,nsstd::placeholders::_1);
+  this->m_pfGetAngle = nsstd::bind(&TransformType::GetAngle,t);
+}
+
+}
+}
diff --git a/Code/Common/src/sitkEuler3DTransform.cxx b/Code/Common/src/sitkEuler3DTransform.cxx
new file mode 100644
index 0000000..912b6a3
--- /dev/null
+++ b/Code/Common/src/sitkEuler3DTransform.cxx
@@ -0,0 +1,198 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include "sitkEuler3DTransform.h"
+#include "sitkTransformHelper.hxx"
+
+#include "itkEuler3DTransform.h"
+
+namespace itk
+{
+namespace simple
+{
+
+// construct identity
+Euler3DTransform::Euler3DTransform()
+  : Transform(3,sitkEuler)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+Euler3DTransform::Euler3DTransform(const std::vector<double> &fixedCenter,
+                                   double angleX, double angleY, double angleZ,
+                                   const std::vector<double> &translation)
+  : Transform(3,sitkEuler)
+
+{
+  Self::InternalInitialization(Self::GetITKBase());
+
+  this->SetCenter(fixedCenter);
+  this->SetRotation(angleX, angleY, angleZ);
+  this->SetTranslation(translation);
+}
+
+Euler3DTransform::Euler3DTransform( const Euler3DTransform &arg )
+  : Transform(arg)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+Euler3DTransform::Euler3DTransform( const Transform &arg )
+  : Transform(arg)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+
+Euler3DTransform &Euler3DTransform::operator=( const Euler3DTransform &arg )
+{
+  Superclass::operator=(arg);
+  return *this;
+}
+
+
+/** fixed parameter */
+Euler3DTransform::Self &Euler3DTransform::SetCenter(const std::vector<double> &params)
+{
+  this->MakeUnique();
+  this->m_pfSetCenter(params);
+  return *this;
+}
+
+std::vector<double> Euler3DTransform::GetCenter( ) const
+{
+  return this->m_pfGetCenter();
+}
+
+double Euler3DTransform::GetAngleX () const
+{
+  return this->m_pfGetAngleX();
+}
+
+double Euler3DTransform::GetAngleY () const
+{
+  return this->m_pfGetAngleY();
+}
+
+double Euler3DTransform::GetAngleZ () const
+{
+  return this->m_pfGetAngleZ();
+}
+
+/** parameter */
+Euler3DTransform::Self &Euler3DTransform::SetRotation (double angleX, double angleY, double angleZ)
+{
+  this->MakeUnique();
+  this->m_pfSetRotation(angleX,angleY,angleZ);
+  return *this;
+}
+
+Euler3DTransform::Self &Euler3DTransform::SetTranslation(const std::vector<double> &params)
+{
+  this->MakeUnique();
+  this->m_pfSetTranslation(params);
+  return *this;
+}
+
+std::vector<double> Euler3DTransform::GetTranslation( ) const
+{
+  return this->m_pfGetTranslation();
+}
+
+
+Euler3DTransform::Self &Euler3DTransform::SetComputeZYX (bool _arg)
+{
+  this->MakeUnique();
+  this->m_pfSetComputeZYX(_arg);
+  return *this;
+}
+
+bool Euler3DTransform::GetComputeZYX () const
+{
+  return this->m_pfGetComputeZYX();
+}
+
+std::vector<double> Euler3DTransform::GetMatrix( ) const
+{
+  return this->m_pfGetMatrix();
+}
+
+Euler3DTransform::Self &Euler3DTransform::SetMatrix(const std::vector<double> &params, double tolerance)
+{
+  this->MakeUnique();
+  this->m_pfSetMatrix(params,tolerance);
+  return *this;
+}
+
+void Euler3DTransform::SetPimpleTransform( PimpleTransformBase *pimpleTransform )
+{
+  Superclass::SetPimpleTransform(pimpleTransform);
+  Self::InternalInitialization(this->GetITKBase());
+}
+
+void Euler3DTransform::InternalInitialization(itk::TransformBase *transform)
+{
+
+  typedef itk::Euler3DTransform<double> TransformType;
+  TransformType *t = dynamic_cast<TransformType*>(transform);
+
+  // explicitly remove all function pointer with reference to prior transform
+  this->m_pfSetCenter = SITK_NULLPTR;
+  this->m_pfGetCenter = SITK_NULLPTR;
+  this->m_pfSetTranslation = SITK_NULLPTR;
+  this->m_pfGetTranslation = SITK_NULLPTR;
+  this->m_pfSetRotation = SITK_NULLPTR;
+  this->m_pfGetAngleX = SITK_NULLPTR;
+  this->m_pfGetAngleY = SITK_NULLPTR;
+  this->m_pfGetAngleZ = SITK_NULLPTR;
+  this->m_pfSetComputeZYX = SITK_NULLPTR;
+  this->m_pfGetComputeZYX = SITK_NULLPTR;
+  this->m_pfGetMatrix = SITK_NULLPTR;
+  this->m_pfSetMatrix = SITK_NULLPTR;
+
+  if (t && (typeid(*t)==typeid(TransformType)))
+    {
+    this->InternalInitialization(t);
+    return;
+    }
+  else
+    {
+    sitkExceptionMacro("Transform is not of type " << this->GetName() << "!" );
+    }
+
+}
+
+
+template<class TransformType>
+void Euler3DTransform::InternalInitialization(TransformType *t)
+{
+  SITK_TRANSFORM_SET_MPF(Center, typename TransformType::InputPointType, double);
+  SITK_TRANSFORM_SET_MPF(Translation, typename TransformType::OutputVectorType, double);
+  SITK_TRANSFORM_SET_MPF_GetMatrix();
+  SITK_TRANSFORM_SET_MPF_SetMatrix();
+
+  this->m_pfSetRotation = nsstd::bind(&TransformType::SetRotation,t,nsstd::placeholders::_1,nsstd::placeholders::_2,nsstd::placeholders::_3);
+  this->m_pfGetAngleX = nsstd::bind(&TransformType::GetAngleX,t);
+  this->m_pfGetAngleY = nsstd::bind(&TransformType::GetAngleY,t);
+  this->m_pfGetAngleZ = nsstd::bind(&TransformType::GetAngleZ,t);
+  this->m_pfSetComputeZYX = nsstd::bind(&TransformType::SetComputeZYX,t,nsstd::placeholders::_1);
+  this->m_pfGetComputeZYX = nsstd::bind(&TransformType::GetComputeZYX,t);
+
+}
+
+}
+}
diff --git a/Code/Common/src/sitkEvent.cxx b/Code/Common/src/sitkEvent.cxx
new file mode 100644
index 0000000..f721ac7
--- /dev/null
+++ b/Code/Common/src/sitkEvent.cxx
@@ -0,0 +1,46 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+#include "sitkEvent.h"
+
+#define sitkEventToStringCaseMacro(n) case sitk##n##Event: return ( os << #n << "Event" )
+
+namespace itk
+{
+namespace simple
+{
+
+std::ostream& operator<<(std::ostream& os, const EventEnum k)
+{
+  switch (k)
+    {
+    sitkEventToStringCaseMacro(Any);
+    sitkEventToStringCaseMacro(Abort);
+    sitkEventToStringCaseMacro(Delete);
+    sitkEventToStringCaseMacro(End);
+    sitkEventToStringCaseMacro(Iteration);
+    sitkEventToStringCaseMacro(Progress);
+    sitkEventToStringCaseMacro(Start);
+    sitkEventToStringCaseMacro(User);
+    sitkEventToStringCaseMacro(MultiResolutionIteration);
+    }
+  return os;
+}
+
+} // end namespace simple
+} // end namespace itk
diff --git a/Code/Common/src/sitkExceptionObject.cxx b/Code/Common/src/sitkExceptionObject.cxx
new file mode 100644
index 0000000..7f3394a
--- /dev/null
+++ b/Code/Common/src/sitkExceptionObject.cxx
@@ -0,0 +1,178 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+#include "sitkExceptionObject.h"
+#include "itkMacro.h"
+
+#if defined(_MSC_VER)
+#pragma warning ( disable : 4297 )
+#endif
+
+
+namespace itk
+{
+namespace simple
+{
+
+GenericException::GenericException() throw()
+  : m_PimpleException( NULL )
+{}
+
+GenericException::GenericException( const GenericException &e ) throw()
+
+  : std::exception( e )
+{
+  try
+    {
+    if ( e.m_PimpleException != NULL )
+      {
+      m_PimpleException =  new itk::ExceptionObject( *e.m_PimpleException );
+      }
+    }
+  catch(...) // prevent exception from leaving constructor
+    {
+    this->m_PimpleException = NULL;
+    }
+}
+
+GenericException::GenericException(const char *file, unsigned int lineNumber) throw()
+{
+  try
+    {
+    m_PimpleException =  new itk::ExceptionObject( file, lineNumber );
+    }
+  catch(...) // prevent exception from leaving constructor
+    {
+    this->m_PimpleException = NULL;
+    }
+}
+
+/** Constructor. Needed to ensure the exception object can be copied. */
+GenericException::GenericException(const std::string & file, unsigned int lineNumber) throw()
+{
+  try
+    {
+    m_PimpleException =  new itk::ExceptionObject( file, lineNumber );
+    }
+  catch(...) // prevent exception from leaving constructor
+    {
+    this->m_PimpleException = NULL;
+    }
+}
+
+/** Constructor. Needed to ensure the exception object can be copied. */
+GenericException::GenericException(const std::string & file,
+                                   unsigned int lineNumber,
+                                   const std::string & desc) throw()
+{
+  try
+    {
+    m_PimpleException =  new itk::ExceptionObject( file, lineNumber, desc );
+    }
+  catch(...) // prevent exception from leaving constructor
+    {
+    this->m_PimpleException = NULL;
+    }
+}
+
+GenericException::~GenericException() throw( )
+{
+  delete this->m_PimpleException;
+}
+
+
+GenericException & GenericException::operator=(const GenericException & orig)
+{
+  if ( this != &orig )
+    this->m_PimpleException = orig.m_PimpleException;
+  return *this;
+}
+
+bool GenericException::operator==(const GenericException & orig) const
+{
+  if ( this->m_PimpleException && orig.m_PimpleException)
+    {
+    return this->m_PimpleException == orig.m_PimpleException;
+    }
+  else if (  this->m_PimpleException == NULL &&
+             orig.m_PimpleException == NULL )
+    {
+    return true;
+    }
+  return false;
+}
+
+/** Return a description of the error */
+std::string GenericException::ToString() const
+{
+  if ( this->m_PimpleException )
+    {
+    std::ostringstream out;
+    this->m_PimpleException->Print( out );
+    return std::string();
+    }
+
+  return std::string("No pimple exception");
+}
+
+const char * GenericException::what() const throw()
+{
+  if ( this->m_PimpleException )
+    return this->m_PimpleException->what();
+  return "No pimple Exception!";
+}
+
+
+const char * GenericException::GetNameOfClass() const
+{
+  return "GenericException";
+}
+
+
+const char * GenericException::GetLocation() const
+{
+  if ( this->m_PimpleException )
+    return this->m_PimpleException->GetLocation();
+  return "No pimple Exception!";
+}
+
+const char * GenericException::GetDescription() const
+{
+  if ( this->m_PimpleException )
+    return this->m_PimpleException->GetDescription();
+  return "No pimple Exception!";
+}
+
+/** What file did the exception occur in? */
+const char * GenericException::GetFile()    const
+{
+  if ( this->m_PimpleException )
+    return this->m_PimpleException->GetFile();
+  return "No pimple Exception!";
+}
+
+/** What line did the exception occur in? */
+unsigned int GenericException::GetLine() const
+{
+  if ( this->m_PimpleException )
+    return this->m_PimpleException->GetLine();
+  return 0;
+}
+
+}
+}
diff --git a/Code/Common/src/sitkFunctionCommand.cxx b/Code/Common/src/sitkFunctionCommand.cxx
new file mode 100644
index 0000000..65cc980
--- /dev/null
+++ b/Code/Common/src/sitkFunctionCommand.cxx
@@ -0,0 +1,51 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include "sitkFunctionCommand.h"
+#include "sitkProcessObject.h"
+
+namespace itk
+{
+namespace simple
+{
+
+FunctionCommand::FunctionCommand( )
+{
+  Command::SetName("FunctionCommand");
+}
+
+void FunctionCommand::Execute(void)
+{
+  if (bool(this->m_Function))
+    {
+    return m_Function();
+    }
+}
+
+void FunctionCommand::SetCallbackFunction ( void(* pFunction )() )
+  {
+    m_Function = pFunction;
+  }
+
+void FunctionCommand::SetCallbackFunction( void(* pFunction )(void *), void *clientData )
+{
+  m_Function = nsstd::bind(pFunction, clientData);
+}
+
+
+} // end namespace simple
+} // end namespace itk
diff --git a/Code/Common/src/sitkImage.cxx b/Code/Common/src/sitkImage.cxx
new file mode 100644
index 0000000..604d79b
--- /dev/null
+++ b/Code/Common/src/sitkImage.cxx
@@ -0,0 +1,737 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include "sitkImage.h"
+
+#include "itkMetaDataObject.h"
+#include "itkDataObject.h"
+
+#include "sitkExceptionObject.h"
+#include "sitkPimpleImageBase.h"
+#include "sitkPixelIDTypeLists.h"
+
+
+namespace itk
+{
+  namespace simple
+  {
+
+  Image::~Image( )
+  {
+    delete this->m_PimpleImage;
+    this->m_PimpleImage = NULL;
+  }
+
+  Image::Image( )
+    : m_PimpleImage( NULL )
+  {
+    Allocate ( 0, 0, 0, 0, sitkUInt8, 1 );
+  }
+
+  Image::Image( const Image &img )
+  {
+    this->m_PimpleImage = img.m_PimpleImage->ShallowCopy();
+  }
+
+  Image& Image::operator=( const Image &img )
+  {
+    // note: If img and this are this same, the following statement
+    // will still be safe. It is also exception safe.
+    nsstd::auto_ptr<PimpleImageBase> temp( img.m_PimpleImage->ShallowCopy() );
+    delete this->m_PimpleImage;
+    this->m_PimpleImage = temp.release();
+    return *this;
+  }
+
+    Image::Image( unsigned int Width, unsigned int Height, PixelIDValueEnum ValueEnum )
+      : m_PimpleImage( NULL )
+    {
+      Allocate ( Width, Height, 0, 0, ValueEnum, 0 );
+    }
+
+    Image::Image( unsigned int Width, unsigned int Height, unsigned int Depth, PixelIDValueEnum ValueEnum )
+      : m_PimpleImage( NULL )
+    {
+      Allocate ( Width, Height, Depth, 0, ValueEnum, 0 );
+    }
+
+    Image::Image( const std::vector< unsigned int > &size, PixelIDValueEnum ValueEnum, unsigned int numberOfComponents )
+      : m_PimpleImage( NULL )
+    {
+      if ( size.size() == 2 )
+        {
+        Allocate ( size[0], size[1], 0, 0, ValueEnum, numberOfComponents );
+        }
+      else if ( size.size() == 3 )
+        {
+        Allocate ( size[0], size[1], size[2], 0, ValueEnum, numberOfComponents );
+        }
+      else if ( size.size() == 4 )
+        {
+        Allocate ( size[0], size[1], size[2], size[3], ValueEnum, numberOfComponents );
+        }
+      else
+        {
+        sitkExceptionMacro("Unsupported number of dimesions specified!");
+        }
+    }
+
+    itk::DataObject* Image::GetITKBase( void )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      return m_PimpleImage->GetDataBase();
+    }
+
+    const itk::DataObject* Image::GetITKBase( void ) const
+    {
+      assert( m_PimpleImage );
+      return m_PimpleImage->GetDataBase();
+    }
+
+    PixelIDValueType Image::GetPixelIDValue( void ) const
+    {
+      return this->GetPixelID();
+    }
+
+    PixelIDValueEnum Image::GetPixelID( void ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetPixelID();
+    }
+
+    unsigned int Image::GetDimension( void ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetDimension();
+    }
+
+    unsigned int Image::GetNumberOfComponentsPerPixel( void ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetNumberOfComponentsPerPixel();
+    }
+
+    uint64_t Image::GetNumberOfPixels( void ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetNumberOfPixels();
+    }
+
+    std::string Image::GetPixelIDTypeAsString( void ) const
+    {
+      return std::string( GetPixelIDValueAsString( this->GetPixelIDValue() ) );
+    }
+
+    std::string Image::ToString( void ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->ToString();
+    }
+
+    std::vector< unsigned int > Image::GetSize( void ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetSize();
+    }
+
+    unsigned int Image::GetWidth( void ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetWidth();
+    }
+
+    unsigned int Image::GetHeight( void ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetHeight();
+    }
+
+    unsigned int Image::GetDepth( void ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetDepth();
+    }
+
+    // Get Origin
+    std::vector< double > Image::GetOrigin( void ) const
+    {
+       assert( m_PimpleImage );
+      return this->m_PimpleImage->GetOrigin();
+    }
+
+    // Set Origin
+    void Image::SetOrigin( const std::vector<double> &orgn )
+    {
+       assert( m_PimpleImage );
+      this->MakeUnique();
+      this->m_PimpleImage->SetOrigin(orgn);
+    }
+
+    // Get Spacing
+    std::vector< double > Image::GetSpacing( void ) const
+    {
+       assert( m_PimpleImage );
+      return this->m_PimpleImage->GetSpacing();
+    }
+
+    // Set Spacing
+    void Image::SetSpacing( const std::vector<double> &spc )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      this->m_PimpleImage->SetSpacing(spc);
+    }
+
+    // Get Direction
+    std::vector< double > Image::GetDirection( void ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetDirection();
+    }
+
+    // Set Direction
+    void Image::SetDirection( const std::vector< double > &direction )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      this->m_PimpleImage->SetDirection( direction );
+    }
+
+    void Image::CopyInformation( const Image & srcImage )
+    {
+      // check that the dimension match
+      if ( this->GetDimension() != srcImage.GetDimension() )
+        {
+        sitkExceptionMacro( "Source Image for information does not match this image's dimension." );
+        }
+
+
+      // check that the image size's match
+      if ( this->GetSize() != srcImage.GetSize() )
+        {
+        sitkExceptionMacro( "Source image size of " << srcImage.GetSize()
+                            << " does not match this image's size of " << this->GetSize() << "!" );
+        }
+
+      this->SetOrigin( srcImage.GetOrigin() );
+      this->SetSpacing( srcImage.GetSpacing() );
+      this->SetDirection( srcImage.GetDirection() );
+    }
+
+    std::vector<std::string> Image::GetMetaDataKeys( void ) const
+    {
+      assert( m_PimpleImage );
+      const itk::MetaDataDictionary &mdd = this->m_PimpleImage->GetDataBase()->GetMetaDataDictionary();
+      return mdd.GetKeys();
+    }
+
+    bool Image::HasMetaDataKey( const std::string &key ) const
+    {
+      assert( m_PimpleImage );
+      const itk::MetaDataDictionary &mdd = this->m_PimpleImage->GetDataBase()->GetMetaDataDictionary();
+      return mdd.HasKey(key);
+    }
+
+    std::string Image::GetMetaData( const std::string &key ) const
+    {
+      assert( m_PimpleImage );
+      const itk::MetaDataDictionary &mdd = this->m_PimpleImage->GetDataBase()->GetMetaDataDictionary();
+      std::string value;
+      if (ExposeMetaData(mdd, key, value))
+        {
+        return value;
+        }
+
+      std::ostringstream ss;
+      mdd.Get(key)->Print(ss);
+      return ss.str();
+    }
+
+    void Image::SetMetaData( const std::string &key, const std::string &value)
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      itk::MetaDataDictionary &mdd = this->m_PimpleImage->GetDataBase()->GetMetaDataDictionary();
+      itk::EncapsulateMetaData<std::string>(mdd, key, value);
+    }
+
+    bool Image::EraseMetaData( const std::string &key )
+    {
+      assert( m_PimpleImage );
+      itk::MetaDataDictionary &mdd = this->m_PimpleImage->GetDataBase()->GetMetaDataDictionary();
+      this->MakeUnique();
+      return mdd.Erase(key);
+    }
+
+    // Physical Point to Continuous Index
+    std::vector< int64_t > Image::TransformPhysicalPointToIndex( const std::vector< double > &pt ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->TransformPhysicalPointToIndex( pt );
+    }
+
+    // Index to Physical Point
+    std::vector< double > Image::TransformIndexToPhysicalPoint( const std::vector< int64_t > &idx ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->TransformIndexToPhysicalPoint( idx );
+    }
+
+    // Physical Point to Continuous Index
+    std::vector< double > Image::TransformPhysicalPointToContinuousIndex( const std::vector< double > &pt ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->TransformPhysicalPointToContinuousIndex( pt );
+    }
+    // Continuous Index to Physical Point
+    std::vector< double > Image::TransformContinuousIndexToPhysicalPoint( const std::vector< double > &idx ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->TransformContinuousIndexToPhysicalPoint( idx );
+    }
+
+    int8_t Image::GetPixelAsInt8( const std::vector<uint32_t> &idx) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetPixelAsInt8( idx );
+    }
+
+    uint8_t Image::GetPixelAsUInt8( const std::vector<uint32_t> &idx) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetPixelAsUInt8( idx );
+    }
+
+    int16_t Image::GetPixelAsInt16( const std::vector<uint32_t> &idx ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetPixelAsInt16( idx );
+    }
+
+    uint16_t Image::GetPixelAsUInt16( const std::vector<uint32_t> &idx ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetPixelAsUInt16( idx );
+    }
+
+    int32_t Image::GetPixelAsInt32( const std::vector<uint32_t> &idx ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetPixelAsInt32( idx );
+    }
+
+    uint32_t Image::GetPixelAsUInt32( const std::vector<uint32_t> &idx ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetPixelAsUInt32( idx );
+    }
+
+    int64_t Image::GetPixelAsInt64( const std::vector<uint32_t> &idx ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetPixelAsInt64( idx );
+    }
+
+    uint64_t Image::GetPixelAsUInt64( const std::vector<uint32_t> &idx ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetPixelAsUInt64( idx );
+    }
+
+    float Image::GetPixelAsFloat( const std::vector<uint32_t> &idx ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetPixelAsFloat( idx );
+    }
+
+    double Image::GetPixelAsDouble(  const std::vector<uint32_t> &idx ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetPixelAsDouble( idx );
+    }
+
+    std::vector<int8_t>   Image::GetPixelAsVectorInt8( const std::vector<uint32_t> &idx) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetPixelAsVectorInt8( idx );
+    }
+
+    std::vector<uint8_t>  Image::GetPixelAsVectorUInt8( const std::vector<uint32_t> &idx) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetPixelAsVectorUInt8( idx );
+    }
+
+    std::vector<int16_t> Image::GetPixelAsVectorInt16( const std::vector<uint32_t> &idx ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetPixelAsVectorInt16( idx );
+    }
+
+    std::vector<uint16_t> Image::GetPixelAsVectorUInt16( const std::vector<uint32_t> &idx ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetPixelAsVectorUInt16( idx );
+    }
+
+    std::vector<int32_t>  Image::GetPixelAsVectorInt32( const std::vector<uint32_t> &idx ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetPixelAsVectorInt32( idx );
+    }
+
+    std::vector<uint32_t> Image::GetPixelAsVectorUInt32( const std::vector<uint32_t> &idx ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetPixelAsVectorUInt32( idx );
+    }
+
+    std::vector<int64_t>  Image::GetPixelAsVectorInt64( const std::vector<uint32_t> &idx ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetPixelAsVectorInt64( idx );
+    }
+
+    std::vector<uint64_t> Image::GetPixelAsVectorUInt64( const std::vector<uint32_t> &idx ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetPixelAsVectorUInt64( idx );
+    }
+
+    std::vector<float>    Image::GetPixelAsVectorFloat32( const std::vector<uint32_t> &idx ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetPixelAsVectorFloat32( idx );
+    }
+
+    std::vector<double>   Image::GetPixelAsVectorFloat64(  const std::vector<uint32_t> &idx ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetPixelAsVectorFloat64( idx );
+    }
+
+  std::complex<float>    Image::GetPixelAsComplexFloat32( const std::vector<uint32_t> &idx ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetPixelAsComplexFloat32( idx );
+    }
+
+    std::complex<double>   Image::GetPixelAsComplexFloat64(  const std::vector<uint32_t> &idx ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetPixelAsComplexFloat64( idx );
+    }
+
+    int8_t *Image::GetBufferAsInt8( )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      return this->m_PimpleImage->GetBufferAsInt8( );
+    }
+
+    uint8_t *Image::GetBufferAsUInt8( )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      return this->m_PimpleImage->GetBufferAsUInt8( );
+    }
+
+    int16_t *Image::GetBufferAsInt16( )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      return this->m_PimpleImage->GetBufferAsInt16( );
+    }
+
+    uint16_t *Image::GetBufferAsUInt16( )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      return this->m_PimpleImage->GetBufferAsUInt16( );
+    }
+
+    int32_t *Image::GetBufferAsInt32( )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      return this->m_PimpleImage->GetBufferAsInt32( );
+    }
+
+    uint32_t *Image::GetBufferAsUInt32( )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      return this->m_PimpleImage->GetBufferAsUInt32( );
+    }
+
+    int64_t *Image::GetBufferAsInt64( )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      return this->m_PimpleImage->GetBufferAsInt64( );
+    }
+
+    uint64_t *Image::GetBufferAsUInt64( )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      return this->m_PimpleImage->GetBufferAsUInt64( );
+    }
+
+    float *Image::GetBufferAsFloat( )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      return this->m_PimpleImage->GetBufferAsFloat( );
+    }
+
+    double *Image::GetBufferAsDouble( )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      return this->m_PimpleImage->GetBufferAsDouble( );
+    }
+
+    const int8_t *Image::GetBufferAsInt8( ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetBufferAsInt8( );
+    }
+
+    const uint8_t *Image::GetBufferAsUInt8( ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetBufferAsUInt8( );
+    }
+
+    const int16_t *Image::GetBufferAsInt16( ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetBufferAsInt16( );
+    }
+
+    const uint16_t *Image::GetBufferAsUInt16( ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetBufferAsUInt16( );
+    }
+
+    const int32_t *Image::GetBufferAsInt32( ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetBufferAsInt32( );
+    }
+
+    const uint32_t *Image::GetBufferAsUInt32( ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetBufferAsUInt32( );
+    }
+
+    const int64_t *Image::GetBufferAsInt64( ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetBufferAsInt64( );
+    }
+
+    const uint64_t *Image::GetBufferAsUInt64( )  const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetBufferAsUInt64( );
+    }
+
+    const float *Image::GetBufferAsFloat( ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetBufferAsFloat( );
+    }
+
+    const double *Image::GetBufferAsDouble( ) const
+    {
+      assert( m_PimpleImage );
+      return this->m_PimpleImage->GetBufferAsDouble( );
+    }
+
+    void Image::SetPixelAsInt8( const std::vector<uint32_t> &idx, int8_t v )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      this->m_PimpleImage->SetPixelAsInt8( idx, v );
+    }
+
+    void Image::SetPixelAsUInt8( const std::vector<uint32_t> &idx, uint8_t v )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      this->m_PimpleImage->SetPixelAsUInt8( idx, v );
+    }
+
+    void Image::SetPixelAsInt16( const std::vector<uint32_t> &idx, int16_t v )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      this->m_PimpleImage->SetPixelAsInt16( idx, v );
+    }
+
+    void Image::SetPixelAsUInt16( const std::vector<uint32_t> &idx, uint16_t v )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      this->m_PimpleImage->SetPixelAsUInt16( idx, v );
+    }
+
+    void Image::SetPixelAsInt32( const std::vector<uint32_t> &idx, int32_t v )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      this->m_PimpleImage->SetPixelAsInt32( idx, v );
+    }
+
+    void Image::SetPixelAsUInt32( const std::vector<uint32_t> &idx, uint32_t v )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      this->m_PimpleImage->SetPixelAsUInt32( idx, v );
+    }
+
+    void Image::SetPixelAsInt64( const std::vector<uint32_t> &idx, int64_t v )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      this->m_PimpleImage->SetPixelAsInt64( idx, v );
+    }
+
+    void Image::SetPixelAsUInt64( const std::vector<uint32_t> &idx, uint64_t v )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      this->m_PimpleImage->SetPixelAsUInt64( idx, v );
+    }
+
+    void Image::SetPixelAsFloat( const std::vector<uint32_t> &idx, float v )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      this->m_PimpleImage->SetPixelAsFloat( idx, v );
+    }
+
+    void Image::SetPixelAsDouble( const std::vector<uint32_t> &idx, double v )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      this->m_PimpleImage->SetPixelAsDouble( idx, v );
+    }
+
+    void Image::SetPixelAsVectorInt8( const std::vector<uint32_t> &idx, const std::vector<int8_t> &v )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      this->m_PimpleImage->SetPixelAsVectorInt8( idx, v );
+    }
+
+    void Image::SetPixelAsVectorUInt8( const std::vector<uint32_t> &idx, const std::vector<uint8_t> &v )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      this->m_PimpleImage->SetPixelAsVectorUInt8( idx, v );
+    }
+
+    void Image::SetPixelAsVectorInt16( const std::vector<uint32_t> &idx, const std::vector<int16_t> &v )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      this->m_PimpleImage->SetPixelAsVectorInt16( idx, v );
+    }
+
+    void Image::SetPixelAsVectorUInt16( const std::vector<uint32_t> &idx, const std::vector<uint16_t> &v )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      this->m_PimpleImage->SetPixelAsVectorUInt16( idx, v );
+    }
+
+    void Image::SetPixelAsVectorInt32( const std::vector<uint32_t> &idx, const std::vector<int32_t> &v )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      this->m_PimpleImage->SetPixelAsVectorInt32( idx, v );
+    }
+
+    void Image::SetPixelAsVectorUInt32( const std::vector<uint32_t> &idx, const std::vector<uint32_t> &v )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      this->m_PimpleImage->SetPixelAsVectorUInt32( idx, v );
+    }
+
+    void Image::SetPixelAsVectorInt64( const std::vector<uint32_t> &idx, const std::vector<int64_t> &v )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      this->m_PimpleImage->SetPixelAsVectorInt64( idx, v );
+    }
+
+    void Image::SetPixelAsVectorUInt64( const std::vector<uint32_t> &idx, const std::vector<uint64_t> &v )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      this->m_PimpleImage->SetPixelAsVectorUInt64( idx, v );
+    }
+
+    void Image::SetPixelAsVectorFloat32( const std::vector<uint32_t> &idx, const std::vector<float> &v )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      this->m_PimpleImage->SetPixelAsVectorFloat32( idx, v );
+    }
+
+    void Image::SetPixelAsVectorFloat64( const std::vector<uint32_t> &idx, const std::vector<double> &v )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      this->m_PimpleImage->SetPixelAsVectorFloat64( idx, v );
+    }
+
+  void Image::SetPixelAsComplexFloat32( const std::vector<uint32_t> &idx, const std::complex<float> v )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      this->m_PimpleImage->SetPixelAsComplexFloat32( idx, v );
+    }
+
+    void Image::SetPixelAsComplexFloat64( const std::vector<uint32_t> &idx, const std::complex<double> v )
+    {
+      assert( m_PimpleImage );
+      this->MakeUnique();
+      this->m_PimpleImage->SetPixelAsComplexFloat64( idx, v );
+    }
+
+
+    void Image::MakeUnique( void )
+    {
+      if ( this->m_PimpleImage->GetReferenceCountOfImage() > 1 )
+        {
+        // note: care is take here to be exception safe with memory allocation
+        nsstd::auto_ptr<PimpleImageBase> temp( this->m_PimpleImage->DeepCopy() );
+        delete this->m_PimpleImage;
+        this->m_PimpleImage = temp.release();
+        }
+
+    }
+  } // end namespace simple
+} // end namespace itk
diff --git a/Code/Common/src/sitkImage.hxx b/Code/Common/src/sitkImage.hxx
new file mode 100644
index 0000000..3ab266e
--- /dev/null
+++ b/Code/Common/src/sitkImage.hxx
@@ -0,0 +1,214 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkImage_hxx
+#define sitkImage_hxx
+
+#include "sitkImage.h"
+
+#include "itkImage.h"
+#include "itkVectorImage.h"
+#include "itkLabelMap.h"
+#include "itkLabelObject.h"
+
+#include "sitkExceptionObject.h"
+#include "sitkPimpleImageBase.hxx"
+#include "sitkPixelIDTypeLists.h"
+
+
+namespace itk
+{
+  namespace simple
+  {
+
+  // this is a little specialization just to get the
+  // InternalInitialization method's PixelIDTpImageType lookup to get
+  // a valid void type, so it'll dispatch to the a specialized
+  // method. All this is just to instantiate something that will never
+  // be actually used.
+  template <unsigned int VImageDimension>
+  struct PixelIDToImageType< typelist::NullType , VImageDimension >
+  {
+    typedef void ImageType;
+  };
+
+  // This method is explicitly instantiated, and in-turn implicitly
+  // instantates the PipleImage for all used image types. This method
+  // just dispatces to nother method, to aid in instantiating only the
+  // images requested.
+  template <int VPixelIDValue, unsigned int VImageDimension>
+  void Image::InternalInitialization( typename PixelIDToImageType<typename typelist::TypeAt<InstantiatedPixelIDTypeList,
+                                                                                            VPixelIDValue>::Result,
+                                                                  VImageDimension>::ImageType *i )
+  {
+    this->ConditionalInternalInitialization<VPixelIDValue>( i );
+  }
+
+  template<int VPixelIDValue, typename TImageType>
+  typename DisableIf<nsstd::is_same<TImageType, void>::value>::Type
+  Image::ConditionalInternalInitialization( TImageType *image )
+  {
+    // no need to check if null
+    delete this->m_PimpleImage;
+    this->m_PimpleImage = NULL;
+
+    this->m_PimpleImage = new PimpleImage<TImageType>( image );
+  }
+
+
+  template<class TImageType>
+  typename EnableIf<IsBasic<TImageType>::Value>::Type
+  Image::AllocateInternal ( unsigned int Width, unsigned int Height, unsigned int Depth, unsigned int dim4, unsigned int numberOfComponents )
+  {
+    if ( numberOfComponents != 1  && numberOfComponents != 0 )
+      {
+      sitkExceptionMacro( "Specified number of components as " << numberOfComponents
+                          << " but did not specify pixelID as a vector type!" );
+      }
+
+    typename TImageType::IndexType  index;
+    typename TImageType::SizeType   size;
+    typename TImageType::RegionType region;
+
+    index.Fill ( 0 );
+    size.Fill(1);
+    size[0] = Width;
+    size[1] = Height;
+
+    if ( TImageType::ImageDimension > 2 )
+      {
+      assert( Depth != 0 );
+      size[2] = Depth;
+      }
+
+    if ( TImageType::ImageDimension > 3 )
+      {
+      assert(  dim4 != 0 );
+      size[3] =  dim4;
+      }
+
+    region.SetSize ( size );
+    region.SetIndex ( index );
+
+    typename TImageType::Pointer image = TImageType::New();
+    image->SetRegions ( region );
+    image->Allocate();
+    image->FillBuffer ( itk::NumericTraits<typename TImageType::PixelType>::Zero );
+
+    delete this->m_PimpleImage;
+    this->m_PimpleImage = NULL;
+    m_PimpleImage =  new PimpleImage<TImageType>( image );
+  }
+
+  template<class TImageType>
+  typename EnableIf<IsVector<TImageType>::Value>::Type
+  Image::AllocateInternal ( unsigned int Width, unsigned int Height, unsigned int Depth, unsigned int dim4, unsigned int numberOfComponents )
+  {
+    if ( numberOfComponents == 0 )
+      {
+      numberOfComponents = TImageType::ImageDimension;
+      }
+
+    typename TImageType::IndexType  index;
+    typename TImageType::SizeType   size;
+    typename TImageType::RegionType region;
+    typename TImageType::PixelType  zero;
+
+    index.Fill ( 0 );
+    size.Fill(1);
+    size[0] = Width;
+    size[1] = Height;
+
+    if ( TImageType::ImageDimension > 2 )
+      {
+      assert( Depth != 0 );
+      size[2] = Depth;
+      }
+
+    if ( TImageType::ImageDimension > 3 )
+      {
+      assert(  dim4 != 0 );
+      size[3] =  dim4;
+      }
+
+    region.SetSize ( size );
+    region.SetIndex ( index );
+
+    zero.SetSize( numberOfComponents );
+    zero.Fill ( itk::NumericTraits<typename TImageType::PixelType::ValueType>::Zero );
+
+    typename TImageType::Pointer image = TImageType::New();
+    image->SetRegions ( region );
+    image->SetVectorLength( numberOfComponents );
+    image->Allocate();
+    image->FillBuffer ( zero );
+
+    delete this->m_PimpleImage;
+    this->m_PimpleImage = NULL;
+
+    m_PimpleImage = new PimpleImage<TImageType>( image );
+  }
+
+  template<class TImageType>
+  typename EnableIf<IsLabel<TImageType>::Value>::Type
+  Image::AllocateInternal ( unsigned int Width, unsigned int Height, unsigned int Depth, unsigned int dim4, unsigned int numberOfComponents )
+  {
+    if ( numberOfComponents != 1 && numberOfComponents != 0 )
+      {
+      sitkExceptionMacro( "Specified number of components as " << numberOfComponents
+                          << " but did not specify pixelID as a vector type!" );
+      }
+
+    typename TImageType::IndexType  index;
+    typename TImageType::SizeType   size;
+    typename TImageType::RegionType region;
+
+    index.Fill ( 0 );
+    size.Fill(1);
+    size[0] = Width;
+    size[1] = Height;
+
+    if ( TImageType::ImageDimension > 2 )
+      {
+      assert( Depth != 0 );
+      size[2] = Depth;
+      }
+
+    if ( TImageType::ImageDimension > 3 )
+      {
+      assert(  dim4 != 0 );
+      size[3] =  dim4;
+      }
+
+    region.SetSize ( size );
+    region.SetIndex ( index );
+
+    typename TImageType::Pointer image = TImageType::New();
+    image->SetRegions ( region );
+    image->Allocate();
+    image->SetBackgroundValue( 0 );
+
+    delete this->m_PimpleImage;
+    this->m_PimpleImage = NULL;
+
+    m_PimpleImage = new PimpleImage<TImageType>( image );
+  }
+
+  }
+}
+
+#endif // sitkImage_h
diff --git a/Code/Common/src/sitkImageExplicit.cxx b/Code/Common/src/sitkImageExplicit.cxx
new file mode 100644
index 0000000..880a354
--- /dev/null
+++ b/Code/Common/src/sitkImageExplicit.cxx
@@ -0,0 +1,133 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+#if defined(_MSC_VER) && _MSC_VER == 1700
+// VS11 (Visual Studio 2012) has limited variadic argument support for
+// std::bind, the following increases the number of supported
+// arguments.
+// https://connect.microsoft.com/VisualStudio/feedback/details/723448/very-few-function-arguments-for-std-bind
+
+ #if defined(_VARIADIC_MAX) && _VARIADIC_MAX < 10
+  #error "_VARIADIC_MAX already defined. Some STL classes may have insufficient number of template parameters."
+ #else
+  #define _VARIADIC_MAX 10
+ #endif
+#endif
+
+
+#include "sitkImage.hxx"
+#include "sitkMemberFunctionFactory.h"
+
+namespace itk
+{
+  namespace simple
+  {
+    void Image::Allocate ( unsigned int Width, unsigned int Height, unsigned int Depth, unsigned int dim4, PixelIDValueEnum ValueEnum, unsigned int numberOfComponents )
+    {
+      // initialize member function factory for allocating images
+
+      // The pixel IDs supported
+      typedef AllPixelIDTypeList              PixelIDTypeList;
+
+      typedef void ( Self::*MemberFunctionType )( unsigned int, unsigned int, unsigned int, unsigned int, unsigned int );
+
+      typedef AllocateMemberFunctionAddressor< MemberFunctionType > AllocateAddressor;
+
+      detail::MemberFunctionFactory< MemberFunctionType > allocateMemberFactory( this );
+      allocateMemberFactory.RegisterMemberFunctions< PixelIDTypeList, 2, AllocateAddressor > ();
+      allocateMemberFactory.RegisterMemberFunctions< PixelIDTypeList, 3, AllocateAddressor > ();
+      allocateMemberFactory.RegisterMemberFunctions< PixelIDTypeList, 4, AllocateAddressor > ();
+
+      if ( ValueEnum == sitkUnknown )
+        {
+        sitkExceptionMacro( "Unable to construct image of unsupported pixel type" );
+        }
+
+      if ( Depth == 0 )
+        {
+        allocateMemberFactory.GetMemberFunction( ValueEnum, 2 )( Width, Height, Depth, dim4, numberOfComponents );
+        }
+      else if ( dim4 == 0 )
+        {
+        allocateMemberFactory.GetMemberFunction( ValueEnum, 3 )( Width, Height, Depth, dim4, numberOfComponents );
+        }
+      else
+        {
+        allocateMemberFactory.GetMemberFunction( ValueEnum, 4 )( Width, Height, Depth, dim4, numberOfComponents );
+        }
+    }
+  }
+}
+
+
+//
+// There is only one templated function in the external interface
+// which need to be instantiated, so that the itk::Image and the
+// sitk::PimpleImage are completely encapsulated. That is the
+// InternalInitialization method. The following uses a macro to
+// explicitly instantiate for the expected image types.
+//
+
+#define SITK_TEMPLATE_InternalInitialization_D( _I, _D )                \
+  namespace itk { namespace simple {                                    \
+  template SITKCommon_EXPORT void Image::InternalInitialization<_I,_D>(  PixelIDToImageType< typelist::TypeAt<InstantiatedPixelIDTypeList, \
+                                                                                            _I>::Result, \
+                                                                           _D>::ImageType *i ); \
+  } }
+
+#ifdef SITK_4D_IMAGES
+#define SITK_TEMPLATE_InternalInitialization( _I ) SITK_TEMPLATE_InternalInitialization_D( _I, 2 ) SITK_TEMPLATE_InternalInitialization_D( _I, 3 ) SITK_TEMPLATE_InternalInitialization_D( _I, 4 )
+#else
+#define SITK_TEMPLATE_InternalInitialization( _I ) SITK_TEMPLATE_InternalInitialization_D( _I, 2 ) SITK_TEMPLATE_InternalInitialization_D( _I, 3 )
+#endif
+
+
+// Instantiate for all types in the lists
+SITK_TEMPLATE_InternalInitialization( 0 );
+SITK_TEMPLATE_InternalInitialization( 1 );
+SITK_TEMPLATE_InternalInitialization( 2 );
+SITK_TEMPLATE_InternalInitialization( 3 );
+SITK_TEMPLATE_InternalInitialization( 4 );
+SITK_TEMPLATE_InternalInitialization( 5 );
+SITK_TEMPLATE_InternalInitialization( 6 );
+SITK_TEMPLATE_InternalInitialization( 7 );
+SITK_TEMPLATE_InternalInitialization( 8 );
+SITK_TEMPLATE_InternalInitialization( 9 );
+SITK_TEMPLATE_InternalInitialization( 10 );
+SITK_TEMPLATE_InternalInitialization( 11 );
+SITK_TEMPLATE_InternalInitialization( 12 );
+SITK_TEMPLATE_InternalInitialization( 13 );
+SITK_TEMPLATE_InternalInitialization( 14 );
+SITK_TEMPLATE_InternalInitialization( 15 );
+SITK_TEMPLATE_InternalInitialization( 16 );
+SITK_TEMPLATE_InternalInitialization( 17 );
+SITK_TEMPLATE_InternalInitialization( 18 );
+SITK_TEMPLATE_InternalInitialization( 19 );
+SITK_TEMPLATE_InternalInitialization( 20 );
+SITK_TEMPLATE_InternalInitialization( 21 );
+SITK_TEMPLATE_InternalInitialization( 22 );
+SITK_TEMPLATE_InternalInitialization( 23 );
+SITK_TEMPLATE_InternalInitialization( 24 );
+SITK_TEMPLATE_InternalInitialization( 25 );
+SITK_TEMPLATE_InternalInitialization( 26 );
+SITK_TEMPLATE_InternalInitialization( 27 );
+SITK_TEMPLATE_InternalInitialization( 28 );
+SITK_TEMPLATE_InternalInitialization( 29 );
+
+
+sitkStaticAssert( typelist::Length<itk::simple::InstantiatedPixelIDTypeList>::Result < 30, "Number of explicitly instantiated pixel types is more then expected!" );
diff --git a/Code/Common/src/sitkInterpolator.cxx b/Code/Common/src/sitkInterpolator.cxx
new file mode 100644
index 0000000..77ba85d
--- /dev/null
+++ b/Code/Common/src/sitkInterpolator.cxx
@@ -0,0 +1,47 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+#include "sitkInterpolator.h"
+
+#define sitkInterpolatorToStringCaseMacro(n) case sitk##n: return ( os << #n )
+
+namespace itk
+{
+namespace simple
+{
+
+std::ostream& operator<<(std::ostream& os, const InterpolatorEnum i)
+{
+  switch (i)
+    {
+    sitkInterpolatorToStringCaseMacro(NearestNeighbor);
+    sitkInterpolatorToStringCaseMacro(Linear);
+    sitkInterpolatorToStringCaseMacro(BSpline);
+    sitkInterpolatorToStringCaseMacro(Gaussian);
+    sitkInterpolatorToStringCaseMacro(LabelGaussian);
+    sitkInterpolatorToStringCaseMacro(HammingWindowedSinc);
+    sitkInterpolatorToStringCaseMacro(CosineWindowedSinc);
+    sitkInterpolatorToStringCaseMacro(WelchWindowedSinc);
+    sitkInterpolatorToStringCaseMacro(LanczosWindowedSinc);
+    sitkInterpolatorToStringCaseMacro(BlackmanWindowedSinc);
+    }
+  return os;
+}
+
+} // end namespace simple
+} // end namespace itk
diff --git a/Code/Common/src/sitkKernel.cxx b/Code/Common/src/sitkKernel.cxx
new file mode 100644
index 0000000..df0ac19
--- /dev/null
+++ b/Code/Common/src/sitkKernel.cxx
@@ -0,0 +1,48 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+#include "sitkKernel.h"
+
+#define sitkKernelToStringCaseMacro(n) case sitk##n: return ( os << #n )
+
+namespace itk
+{
+namespace simple
+{
+
+std::ostream& operator<<(std::ostream& os, const KernelEnum k)
+{
+  switch (k)
+    {
+    sitkKernelToStringCaseMacro(Annulus);
+    sitkKernelToStringCaseMacro(Ball);
+    sitkKernelToStringCaseMacro(Box);
+    sitkKernelToStringCaseMacro(Cross);
+    sitkKernelToStringCaseMacro(Polygon3);
+    sitkKernelToStringCaseMacro(Polygon4);
+    sitkKernelToStringCaseMacro(Polygon5);
+    sitkKernelToStringCaseMacro(Polygon6);
+    sitkKernelToStringCaseMacro(Polygon7);
+    sitkKernelToStringCaseMacro(Polygon8);
+    sitkKernelToStringCaseMacro(Polygon9);
+    }
+  return os;
+}
+
+} // end namespace simple
+} // end namespace itk
diff --git a/Code/Common/src/sitkPimpleImageBase.h b/Code/Common/src/sitkPimpleImageBase.h
new file mode 100644
index 0000000..de24973
--- /dev/null
+++ b/Code/Common/src/sitkPimpleImageBase.h
@@ -0,0 +1,159 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkPimpleImageBase_h
+#define sitkPimpleImageBase_h
+
+#include <vector>
+#include "sitkPixelIDTokens.h"
+#include "sitkTemplateFunctions.h"
+
+namespace itk
+{
+  namespace simple
+  {
+
+  /** \class PimpleImageBase
+   * \brief Private implementation idiom image base class
+   *
+   * We utilize the private implementation ( or PImple)
+   * programming idiom to modify the behavior of the simple image
+   * class based on the different image types.
+   *
+   * This class is designed to utilize the trivial copy,
+   * and assgnement operators
+   */
+  class SITKCommon_HIDDEN PimpleImageBase
+  {
+  public:
+    virtual ~PimpleImageBase( void ) { };
+
+    virtual PixelIDValueEnum GetPixelID(void) const = 0;
+    virtual unsigned int GetDimension( void ) const  = 0;
+    virtual uint64_t GetNumberOfPixels( void ) const = 0;
+    virtual unsigned int GetNumberOfComponentsPerPixel( void ) const = 0;
+
+    virtual PimpleImageBase *ShallowCopy(void) const = 0;
+    virtual PimpleImageBase *DeepCopy(void) const = 0;
+    virtual itk::DataObject* GetDataBase( void ) = 0;
+    virtual const itk::DataObject* GetDataBase( void ) const = 0;
+
+    virtual unsigned int GetWidth( void ) const { return this->GetSize( 0 ); }
+    virtual unsigned int GetHeight( void ) const { return this->GetSize( 1 ); }
+    virtual unsigned int GetDepth( void ) const { return this->GetSize( 2 ); }
+
+    virtual std::vector< unsigned int > GetSize( void ) const = 0;
+    virtual unsigned int GetSize( unsigned int dimension ) const = 0;
+
+
+    virtual std::vector<double> GetOrigin( void ) const = 0;
+    virtual void SetOrigin( const std::vector<double> &orgn ) = 0;
+    virtual std::vector<double> GetSpacing( void ) const = 0;
+    virtual void SetSpacing( const std::vector<double> &spc ) = 0;
+
+    virtual std::vector< double > GetDirection( void ) const = 0;
+    virtual void SetDirection( const std::vector< double > &direction ) = 0;
+
+    virtual std::vector<int64_t> TransformPhysicalPointToIndex( const std::vector<double> &pt) const = 0;
+    virtual std::vector<double> TransformIndexToPhysicalPoint( const std::vector<int64_t> &idx) const = 0;
+    virtual std::vector<double> TransformPhysicalPointToContinuousIndex( const std::vector<double> &pt) const = 0;
+    virtual std::vector<double> TransformContinuousIndexToPhysicalPoint( const std::vector<double> &idx) const = 0;
+
+    virtual std::string ToString() const = 0;
+
+
+    virtual int GetReferenceCountOfImage() const = 0;
+
+    virtual int8_t   GetPixelAsInt8( const std::vector<uint32_t> &idx) const = 0;
+    virtual uint8_t  GetPixelAsUInt8( const std::vector<uint32_t> &idx) const = 0;
+    virtual int16_t  GetPixelAsInt16( const std::vector<uint32_t> &idx ) const = 0;
+    virtual uint16_t GetPixelAsUInt16( const std::vector<uint32_t> &idx ) const = 0;
+    virtual int32_t  GetPixelAsInt32( const std::vector<uint32_t> &idx ) const = 0;
+    virtual uint32_t GetPixelAsUInt32( const std::vector<uint32_t> &idx ) const = 0;
+    virtual int64_t  GetPixelAsInt64( const std::vector<uint32_t> &idx ) const = 0;
+    virtual uint64_t GetPixelAsUInt64( const std::vector<uint32_t> &idx ) const = 0;
+    virtual float    GetPixelAsFloat( const std::vector<uint32_t> &idx ) const = 0;
+    virtual double   GetPixelAsDouble(  const std::vector<uint32_t> &idx ) const = 0;
+
+    virtual std::vector<int8_t>   GetPixelAsVectorInt8( const std::vector<uint32_t> &idx) const = 0;
+    virtual std::vector<uint8_t>  GetPixelAsVectorUInt8( const std::vector<uint32_t> &idx) const = 0;
+    virtual std::vector<int16_t>  GetPixelAsVectorInt16( const std::vector<uint32_t> &idx ) const = 0;
+    virtual std::vector<uint16_t> GetPixelAsVectorUInt16( const std::vector<uint32_t> &idx ) const = 0;
+    virtual std::vector<int32_t>  GetPixelAsVectorInt32( const std::vector<uint32_t> &idx ) const = 0;
+    virtual std::vector<uint32_t> GetPixelAsVectorUInt32( const std::vector<uint32_t> &idx ) const = 0;
+    virtual std::vector<int64_t>  GetPixelAsVectorInt64( const std::vector<uint32_t> &idx ) const = 0;
+    virtual std::vector<uint64_t> GetPixelAsVectorUInt64( const std::vector<uint32_t> &idx ) const = 0;
+    virtual std::vector<float>    GetPixelAsVectorFloat32( const std::vector<uint32_t> &idx ) const = 0;
+    virtual std::vector<double>   GetPixelAsVectorFloat64(  const std::vector<uint32_t> &idx ) const = 0;
+
+    virtual std::complex<float>  GetPixelAsComplexFloat32( const std::vector<uint32_t> &idx ) const = 0;
+    virtual std::complex<double> GetPixelAsComplexFloat64( const std::vector<uint32_t> &idx ) const = 0;
+
+    virtual void SetPixelAsInt8( const std::vector<uint32_t> &idx, int8_t v ) = 0;
+    virtual void SetPixelAsUInt8( const std::vector<uint32_t> &idx, uint8_t v ) = 0;
+    virtual void SetPixelAsInt16( const std::vector<uint32_t> &idx, int16_t v ) = 0;
+    virtual void SetPixelAsUInt16( const std::vector<uint32_t> &idx, uint16_t v ) = 0;
+    virtual void SetPixelAsInt32( const std::vector<uint32_t> &idx, int32_t v ) = 0;
+    virtual void SetPixelAsUInt32( const std::vector<uint32_t> &idx, uint32_t v ) = 0;
+    virtual void SetPixelAsInt64( const std::vector<uint32_t> &idx, int64_t v ) = 0;
+    virtual void SetPixelAsUInt64( const std::vector<uint32_t> &idx, uint64_t v ) = 0;
+    virtual void SetPixelAsFloat( const std::vector<uint32_t> &idx, float v ) = 0;
+    virtual void SetPixelAsDouble( const std::vector<uint32_t> &idx, double v ) = 0;
+
+    virtual void SetPixelAsVectorInt8( const std::vector<uint32_t> &idx, const std::vector<int8_t> &v ) = 0;
+    virtual void SetPixelAsVectorUInt8( const std::vector<uint32_t> &idx, const std::vector<uint8_t> &v ) = 0;
+    virtual void SetPixelAsVectorInt16( const std::vector<uint32_t> &idx, const std::vector<int16_t> &v ) = 0;
+    virtual void SetPixelAsVectorUInt16( const std::vector<uint32_t> &idx, const std::vector<uint16_t> &v ) = 0;
+    virtual void SetPixelAsVectorInt32( const std::vector<uint32_t> &idx, const std::vector<int32_t> &v ) = 0;
+    virtual void SetPixelAsVectorUInt32( const std::vector<uint32_t> &idx, const std::vector<uint32_t> &v ) = 0;
+    virtual void SetPixelAsVectorInt64( const std::vector<uint32_t> &idx, const std::vector<int64_t> &v ) = 0;
+    virtual void SetPixelAsVectorUInt64( const std::vector<uint32_t> &idx, const std::vector<uint64_t> &v ) = 0;
+    virtual void SetPixelAsVectorFloat32( const std::vector<uint32_t> &idx, const std::vector<float> &v ) = 0;
+    virtual void SetPixelAsVectorFloat64( const std::vector<uint32_t> &idx, const std::vector<double> &v ) = 0;
+
+    virtual void SetPixelAsComplexFloat32( const std::vector<uint32_t> &idx, const std::complex<float> v ) = 0;
+    virtual void SetPixelAsComplexFloat64( const std::vector<uint32_t> &idx, const std::complex<double> v ) = 0;
+
+
+    virtual int8_t   *GetBufferAsInt8( ) = 0;
+    virtual uint8_t  *GetBufferAsUInt8( ) = 0;
+    virtual int16_t  *GetBufferAsInt16( ) = 0;
+    virtual uint16_t *GetBufferAsUInt16( ) = 0;
+    virtual int32_t  *GetBufferAsInt32( ) = 0;
+    virtual uint32_t *GetBufferAsUInt32( ) = 0;
+    virtual int64_t  *GetBufferAsInt64( ) = 0;
+    virtual uint64_t *GetBufferAsUInt64( ) = 0;
+    virtual float    *GetBufferAsFloat( ) = 0;
+    virtual double   *GetBufferAsDouble( ) = 0;
+
+    virtual const int8_t   *GetBufferAsInt8( ) const = 0;
+    virtual const uint8_t  *GetBufferAsUInt8( ) const = 0;
+    virtual const int16_t  *GetBufferAsInt16( ) const = 0;
+    virtual const uint16_t *GetBufferAsUInt16( ) const = 0;
+    virtual const int32_t  *GetBufferAsInt32( ) const = 0;
+    virtual const uint32_t *GetBufferAsUInt32( ) const = 0;
+    virtual const int64_t  *GetBufferAsInt64( ) const = 0;
+    virtual const uint64_t *GetBufferAsUInt64( ) const = 0;
+    virtual const float    *GetBufferAsFloat( ) const = 0;
+    virtual const double   *GetBufferAsDouble( ) const = 0;
+  };
+
+  } // end namespace simple
+} // end namespace itk
+
+
+#endif // sitkPimpleImageBase_h
diff --git a/Code/Common/src/sitkPimpleImageBase.hxx b/Code/Common/src/sitkPimpleImageBase.hxx
new file mode 100644
index 0000000..7da6436
--- /dev/null
+++ b/Code/Common/src/sitkPimpleImageBase.hxx
@@ -0,0 +1,812 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkPimpleImageBase_hxx
+#define sitkPimpleImageBase_hxx
+
+#include "sitkPimpleImageBase.h"
+#include "sitkMemberFunctionFactory.h"
+#include "sitkConditional.h"
+
+
+#include "itkImage.h"
+#include "itkVectorImage.h"
+#include "itkLabelMap.h"
+#include "itkImageDuplicator.h"
+
+namespace itk
+{
+  namespace simple
+  {
+
+///
+/// Private name space for a concrete implementation of pimple image
+/// for a specific image types with dimensions and pixel types
+///
+  namespace
+  {
+
+  template <typename T, typename U>
+  struct MakeDependentOn
+    : public U {};
+
+  template <class TImageType>
+  class PimpleImage
+    : public PimpleImageBase
+  {
+  public:
+    typedef PimpleImage                   Self;
+    typedef TImageType                    ImageType;
+    typedef typename ImageType::Pointer   ImagePointer;
+    typedef typename ImageType::IndexType IndexType;
+    typedef typename ImageType::PixelType PixelType;
+
+    PimpleImage ( ImageType* image )
+      : m_Image( image )
+      {
+        sitkStaticAssert( ImageType::ImageDimension == 4 || ImageType::ImageDimension == 3 || ImageType::ImageDimension == 2,
+                          "Image Dimension out of range" );
+        sitkStaticAssert( ImageTypeToPixelIDValue<ImageType>::Result != (int)sitkUnknown,
+                          "invalid pixel type" );
+
+        if ( image == NULL )
+          {
+          sitkExceptionMacro( << "Unable to initialize an image with NULL" );
+          }
+
+        if ( image->GetLargestPossibleRegion() != image->GetBufferedRegion() )
+          {
+          sitkExceptionMacro( << "The image has a LargestPossibleRegion of " << image->GetLargestPossibleRegion()
+                              << " while the buffered region is " << image->GetBufferedRegion() << std::endl
+                              << "SimpleITK does not support streamming or unbuffered regions!" );
+          }
+
+        const IndexType & idx = image->GetBufferedRegion().GetIndex();
+        for ( unsigned int i = 0; i < ImageType::ImageDimension; ++i )
+          {
+          if ( idx[i] != 0 )
+            {
+            sitkExceptionMacro( << "The image has a staring index of " << idx
+                                << "SimpleITK only supports images with a zero starting index!" );
+            }
+          }
+      }
+
+    virtual PimpleImageBase *ShallowCopy( void ) const { return new Self(this->m_Image.GetPointer()); }
+    virtual PimpleImageBase *DeepCopy( void ) const { return this->DeepCopy<TImageType>(); }
+
+    template <typename UImageType>
+    typename DisableIf<IsLabel<UImageType>::Value, PimpleImageBase*>::Type
+    DeepCopy( void ) const
+      {
+        typedef itk::ImageDuplicator< ImageType > ImageDuplicatorType;
+        typename ImageDuplicatorType::Pointer dup = ImageDuplicatorType::New();
+
+        dup->SetInputImage( this->m_Image );
+        dup->Update();
+        ImagePointer output = dup->GetOutput();
+
+        return new Self( output.GetPointer() );
+      }
+    template <typename UImageType>
+    typename EnableIf<IsLabel<UImageType>::Value, PimpleImageBase*>::Type
+    DeepCopy( void ) const
+      {
+        sitkExceptionMacro( "This method is not implemented yet" );
+        return new Self( this->m_Image.GetPointer() );
+      }
+
+    virtual itk::DataObject* GetDataBase( void ) { return this->m_Image.GetPointer(); }
+    virtual const itk::DataObject* GetDataBase( void ) const { return this->m_Image.GetPointer(); }
+
+
+    PixelIDValueEnum GetPixelID(void) const throw()
+      {
+        // The constructor ensures that we have a valid image
+        // this maps the Image's pixel type to the array index
+        return static_cast<PixelIDValueEnum>(ImageTypeToPixelIDValue<ImageType>::Result);
+      }
+
+    virtual unsigned int GetDimension( void ) const
+      {
+        return ImageType::ImageDimension;
+      }
+
+
+    virtual unsigned int GetNumberOfComponentsPerPixel( void ) const { return this->GetNumberOfComponentsPerPixel<TImageType>(); }
+
+    template <typename UImageType>
+    typename DisableIf<IsVector<UImageType>::Value, unsigned int>::Type
+    GetNumberOfComponentsPerPixel( void ) const
+      {
+        return 1;
+      }
+    template <typename UImageType>
+    typename EnableIf<IsVector<UImageType>::Value, unsigned int>::Type
+    GetNumberOfComponentsPerPixel( void ) const
+    {
+        // This returns 1 for itk::Image, and the number of elements
+        // is the vectors of a VectorImage
+        return this->m_Image->GetNumberOfComponentsPerPixel();
+      }
+
+
+    // Get Origin
+    virtual std::vector<double> GetOrigin( void ) const
+      {
+        return sitkITKVectorToSTL<double>( this->m_Image->GetOrigin() );
+      }
+
+    // Set Origin
+    virtual void SetOrigin( const std::vector<double> & orgn )
+      {
+        this->m_Image->SetOrigin( sitkSTLVectorToITK< typename ImageType::PointType> ( orgn ) );
+      }
+
+    // Get Spacing
+    virtual std::vector<double> GetSpacing( void ) const
+      {
+        return sitkITKVectorToSTL<double>( this->m_Image->GetSpacing() );
+      }
+
+    // Set Spacing
+    virtual void SetSpacing( const std::vector<double> &spc )
+      {
+        this->m_Image->SetSpacing( sitkSTLVectorToITK< typename ImageType::SpacingType> ( spc ) );
+      }
+
+
+    // Get Direction
+    virtual std::vector< double > GetDirection( void ) const
+      {
+      return sitkITKDirectionToSTL( this->m_Image->GetDirection() );
+      }
+
+    // Set Direction
+    virtual void SetDirection( const std::vector< double > & in )
+      {
+      this->m_Image->SetDirection( sitkSTLToITKDirection<typename ImageType::DirectionType>( in ) );
+      }
+
+
+    // Physical Point to Index
+    virtual std::vector<int64_t> TransformPhysicalPointToIndex( const std::vector<double> &pt ) const
+      {
+        if (pt.size() != ImageType::ImageDimension)
+        {
+        sitkExceptionMacro("vector dimension mismatch");
+        }
+
+
+        typename ImageType::IndexType index;
+        this->m_Image->TransformPhysicalPointToIndex( sitkSTLVectorToITK< typename ImageType::PointType> ( pt ), index);
+
+        return sitkITKVectorToSTL<int64_t>( index );
+      }
+
+    // Index to Physical Point
+    virtual std::vector<double> TransformIndexToPhysicalPoint( const std::vector<int64_t> &idx ) const
+      {
+
+        if (idx.size() != ImageType::ImageDimension)
+          {
+          sitkExceptionMacro("vector dimension mismatch");
+          }
+
+        typename ImageType::IndexType index;
+        for ( unsigned int i = 0; i < ImageType::ImageDimension; ++i )
+          {
+          index[i] = idx[i];
+          }
+
+
+        typename ImageType::PointType point;
+        this->m_Image->TransformIndexToPhysicalPoint( index, point );
+        return sitkITKVectorToSTL<double>( point );
+      }
+
+    //  Physical Point To Continuous Index
+    virtual std::vector<double> TransformPhysicalPointToContinuousIndex( const std::vector<double> &pt ) const
+      {
+        if (pt.size() != ImageType::ImageDimension)
+        {
+        sitkExceptionMacro("vector dimension mismatch");
+        }
+
+        typename itk::ContinuousIndex<double, ImageType::ImageDimension> index;
+        this->m_Image->TransformPhysicalPointToContinuousIndex(sitkSTLVectorToITK< typename ImageType::PointType> ( pt ), index);
+
+        return sitkITKVectorToSTL<double>( index );
+      }
+
+    // Continuous Index to Physical Point
+    virtual std::vector<double> TransformContinuousIndexToPhysicalPoint( const std::vector<double> &idx ) const
+      {
+        if (idx.size() != ImageType::ImageDimension)
+        {
+        sitkExceptionMacro("vector dimension mismatch");
+        }
+
+
+        typename itk::ContinuousIndex<double, ImageType::ImageDimension> index;
+        for ( unsigned int i = 0; i < ImageType::ImageDimension; ++i )
+          {
+          index[i] = idx[i];
+          }
+
+      typename ImageType::PointType point;
+      this->m_Image->TransformContinuousIndexToPhysicalPoint(index, point);
+
+      return sitkITKVectorToSTL<double>( point );
+      }
+
+    virtual unsigned int GetSize( unsigned int dimension ) const
+      {
+        if ( dimension > ImageType::ImageDimension - 1 )
+          {
+          return 0;
+          }
+
+        typename ImageType::RegionType largestRegion = this->m_Image->GetLargestPossibleRegion();
+        return largestRegion.GetSize(dimension);
+      }
+
+    virtual std::vector<unsigned int> GetSize( void ) const
+      {
+        typename ImageType::RegionType largestRegion = this->m_Image->GetLargestPossibleRegion();
+        std::vector<unsigned int> size( ImageType::ImageDimension );
+
+        return sitkITKVectorToSTL<unsigned int>( largestRegion.GetSize() );
+      }
+
+    virtual uint64_t GetNumberOfPixels( void ) const
+      {
+        return this->m_Image->GetLargestPossibleRegion().GetNumberOfPixels();
+      }
+
+    std::string ToString( void ) const
+      {
+        std::ostringstream out;
+        this->m_Image->Print ( out );
+        return out.str();
+      }
+
+    virtual int GetReferenceCountOfImage() const
+      {
+        return this->m_Image->GetReferenceCount();
+      }
+
+    virtual int8_t  GetPixelAsInt8( const std::vector<uint32_t> &idx) const
+      {
+        if ( IsLabel<ImageType>::Value )
+          return this->InternalGetPixel< LabelPixelID<int8_t> >( idx );
+        return this->InternalGetPixel< BasicPixelID<int8_t> >( idx );
+      }
+    virtual uint8_t  GetPixelAsUInt8( const std::vector<uint32_t> &idx) const
+      {
+        if ( IsLabel<ImageType>::Value )
+          return this->InternalGetPixel< LabelPixelID<uint8_t> >( idx );
+        return this->InternalGetPixel< BasicPixelID<uint8_t> >( idx );
+      }
+    virtual int16_t  GetPixelAsInt16( const std::vector<uint32_t> &idx ) const
+      {
+        if ( IsLabel<ImageType>::Value )
+          return this->InternalGetPixel< LabelPixelID<int16_t> >( idx );
+        return this->InternalGetPixel< BasicPixelID<int16_t> >( idx );
+      }
+    virtual uint16_t GetPixelAsUInt16( const std::vector<uint32_t> &idx ) const
+      {
+        if ( IsLabel<ImageType>::Value )
+          return this->InternalGetPixel< LabelPixelID<uint16_t> >( idx );
+        return this->InternalGetPixel< BasicPixelID<uint16_t> >( idx );
+      }
+    virtual int32_t  GetPixelAsInt32( const std::vector<uint32_t> &idx ) const
+      {
+        if ( IsLabel<ImageType>::Value )
+          return this->InternalGetPixel< LabelPixelID<int32_t> >( idx );
+        return this->InternalGetPixel< BasicPixelID<int32_t> >( idx );
+      }
+    virtual uint32_t GetPixelAsUInt32( const std::vector<uint32_t> &idx ) const
+      {
+        if ( IsLabel<ImageType>::Value )
+          return this->InternalGetPixel< LabelPixelID<uint32_t> >( idx );
+        return this->InternalGetPixel< BasicPixelID<uint32_t> >( idx );
+      }
+    virtual int64_t  GetPixelAsInt64( const std::vector<uint32_t> &idx ) const
+      {
+        if ( IsLabel<ImageType>::Value )
+          return this->InternalGetPixel< LabelPixelID<int64_t> >( idx );
+        return this->InternalGetPixel< BasicPixelID<int64_t> >( idx );
+      }
+    virtual uint64_t GetPixelAsUInt64( const std::vector<uint32_t> &idx ) const
+      {
+        if ( IsLabel<ImageType>::Value )
+          return this->InternalGetPixel< LabelPixelID<uint64_t> >( idx );
+        return this->InternalGetPixel< BasicPixelID<uint64_t> >( idx );
+      }
+    virtual float    GetPixelAsFloat( const std::vector<uint32_t> &idx ) const
+      {
+        if ( IsLabel<ImageType>::Value )
+          return this->InternalGetPixel< LabelPixelID<float> >( idx );
+        return this->InternalGetPixel< BasicPixelID<float> >( idx );
+      }
+    virtual double   GetPixelAsDouble(  const std::vector<uint32_t> &idx ) const
+      {
+        if ( IsLabel<ImageType>::Value )
+          return this->InternalGetPixel< LabelPixelID<double> >( idx );
+        return this->InternalGetPixel< BasicPixelID<double> >( idx );
+      }
+    virtual std::vector<int8_t>  GetPixelAsVectorInt8( const std::vector<uint32_t> &idx) const
+    {
+        return this->InternalGetPixel< VectorPixelID<int8_t> >( idx );
+      }
+    virtual std::vector<uint8_t>  GetPixelAsVectorUInt8( const std::vector<uint32_t> &idx) const
+      {
+        return this->InternalGetPixel< VectorPixelID<uint8_t> >( idx );
+      }
+    virtual std::vector<int16_t>  GetPixelAsVectorInt16( const std::vector<uint32_t> &idx ) const
+      {
+        return this->InternalGetPixel< VectorPixelID<int16_t> >( idx );
+      }
+    virtual std::vector<uint16_t> GetPixelAsVectorUInt16( const std::vector<uint32_t> &idx ) const
+      {
+        return this->InternalGetPixel< VectorPixelID<uint16_t> >( idx );
+      }
+    virtual std::vector<int32_t>  GetPixelAsVectorInt32( const std::vector<uint32_t> &idx ) const
+      {
+        return this->InternalGetPixel< VectorPixelID<int32_t> >( idx );
+      }
+    virtual std::vector<uint32_t> GetPixelAsVectorUInt32( const std::vector<uint32_t> &idx ) const
+      {
+        return this->InternalGetPixel< VectorPixelID<uint32_t> >( idx );
+      }
+    virtual std::vector<int64_t>  GetPixelAsVectorInt64( const std::vector<uint32_t> &idx ) const
+      {
+        return this->InternalGetPixel< VectorPixelID<int64_t> >( idx );
+      }
+    virtual std::vector<uint64_t> GetPixelAsVectorUInt64( const std::vector<uint32_t> &idx ) const
+      {
+        return this->InternalGetPixel< VectorPixelID<uint64_t> >( idx );
+      }
+    virtual std::vector<float>   GetPixelAsVectorFloat32( const std::vector<uint32_t> &idx ) const
+      {
+        return this->InternalGetPixel< VectorPixelID<float> >( idx );
+      }
+    virtual std::vector<double>   GetPixelAsVectorFloat64(  const std::vector<uint32_t> &idx ) const
+      {
+        return this->InternalGetPixel< VectorPixelID<double> >( idx );
+      }
+    virtual std::complex<float>   GetPixelAsComplexFloat32( const std::vector<uint32_t> &idx ) const
+      {
+        return this->InternalGetPixel< BasicPixelID<std::complex<float> > >( idx );
+      }
+    virtual std::complex<double>   GetPixelAsComplexFloat64(  const std::vector<uint32_t> &idx ) const
+      {
+        return this->InternalGetPixel< BasicPixelID<std::complex<double> > >( idx );
+      }
+
+    virtual int8_t  *GetBufferAsInt8()
+      {
+        if ( IsVector<ImageType>::Value )
+          return this->InternalGetBuffer< VectorPixelID<int8_t> >( );
+        return this->InternalGetBuffer< BasicPixelID<int8_t> >( );
+      }
+    virtual uint8_t  *GetBufferAsUInt8()
+      {
+        if ( IsVector<ImageType>::Value )
+          return this->InternalGetBuffer< VectorPixelID<uint8_t> >( );
+        return this->InternalGetBuffer< BasicPixelID<uint8_t> >( );
+      }
+    virtual int16_t  *GetBufferAsInt16( )
+      {
+        if ( IsVector<ImageType>::Value )
+          return this->InternalGetBuffer< VectorPixelID<int16_t> >( );
+        return  this->InternalGetBuffer< BasicPixelID<int16_t> >( );
+      }
+    virtual uint16_t *GetBufferAsUInt16( )
+      {
+        if ( IsVector<ImageType>::Value )
+          return this->InternalGetBuffer< VectorPixelID<uint16_t> >( );
+        return this->InternalGetBuffer< BasicPixelID<uint16_t> >( );
+      }
+    virtual  int32_t  *GetBufferAsInt32( )
+      {
+        if ( IsVector<ImageType>::Value )
+          return this->InternalGetBuffer< VectorPixelID<int32_t> >( );
+        return this->InternalGetBuffer< BasicPixelID<int32_t> >( );
+      }
+    virtual uint32_t *GetBufferAsUInt32( )
+      {
+        if ( IsVector<ImageType>::Value )
+          return this->InternalGetBuffer< VectorPixelID<uint32_t> >( );
+        return this->InternalGetBuffer< BasicPixelID<uint32_t> >( );
+      }
+    virtual  int64_t  *GetBufferAsInt64( )
+      {
+        if ( IsVector<ImageType>::Value )
+          return this->InternalGetBuffer< VectorPixelID<int64_t> >( );
+        return this->InternalGetBuffer< BasicPixelID<int64_t> >( );
+      }
+    virtual uint64_t *GetBufferAsUInt64( )
+      {
+        if ( IsVector<ImageType>::Value )
+          return this->InternalGetBuffer< VectorPixelID<uint64_t> >( );
+        return this->InternalGetBuffer< BasicPixelID<uint64_t> >( );
+      }
+    virtual float    *GetBufferAsFloat( )
+      {
+        if ( IsVector<ImageType>::Value )
+          return this->InternalGetBuffer< VectorPixelID<float> >( );
+        return this->InternalGetBuffer< BasicPixelID<float> >( );
+      }
+    virtual double   *GetBufferAsDouble(  )
+      {
+        if ( IsVector<ImageType>::Value )
+          return this->InternalGetBuffer< VectorPixelID<double> >( );
+        return this->InternalGetBuffer< BasicPixelID<double> >( );
+      }
+
+    virtual const int8_t  *GetBufferAsInt8() const
+      {
+        if ( IsVector<ImageType>::Value )
+          return const_cast<Self*>(this)->InternalGetBuffer< VectorPixelID<int8_t> >( );
+        return const_cast<Self*>(this)->InternalGetBuffer< BasicPixelID<int8_t> >( );
+      }
+    virtual const uint8_t  *GetBufferAsUInt8() const
+      {
+        if ( IsVector<ImageType>::Value )
+          return const_cast<Self*>(this)->InternalGetBuffer< VectorPixelID<uint8_t> >( );
+        return const_cast<Self*>(this)->InternalGetBuffer< BasicPixelID<uint8_t> >( );
+      }
+    virtual const int16_t  *GetBufferAsInt16( ) const
+      {
+        if ( IsVector<ImageType>::Value )
+          return const_cast<Self*>(this)->InternalGetBuffer< VectorPixelID<int16_t> >( );
+        return  const_cast<Self*>(this)->InternalGetBuffer< BasicPixelID<int16_t> >( );
+      }
+    virtual const uint16_t *GetBufferAsUInt16( ) const
+      {
+        if ( IsVector<ImageType>::Value )
+          return const_cast<Self*>(this)->InternalGetBuffer< VectorPixelID<uint16_t> >( );
+        return  const_cast<Self*>(this)->InternalGetBuffer< BasicPixelID<uint16_t> >( );
+      }
+    virtual const int32_t  *GetBufferAsInt32( ) const
+      {
+        if ( IsVector<ImageType>::Value )
+          return const_cast<Self*>(this)->InternalGetBuffer< VectorPixelID<int32_t> >( );
+        return  const_cast<Self*>(this)->InternalGetBuffer< BasicPixelID<int32_t> >( );
+      }
+    virtual const uint32_t *GetBufferAsUInt32( ) const
+      {
+        if ( IsVector<ImageType>::Value )
+          return const_cast<Self*>(this)->InternalGetBuffer< VectorPixelID<uint32_t> >( );
+        return  const_cast<Self*>(this)->InternalGetBuffer< BasicPixelID<uint32_t> >( );
+      }
+    virtual const int64_t  *GetBufferAsInt64( ) const
+      {
+        if ( IsVector<ImageType>::Value )
+          return const_cast<Self*>(this)->InternalGetBuffer< VectorPixelID<int64_t> >( );
+        return  const_cast<Self*>(this)->InternalGetBuffer< BasicPixelID<int64_t> >( );
+      }
+    virtual const uint64_t *GetBufferAsUInt64( ) const
+      {
+        if ( IsVector<ImageType>::Value )
+          return const_cast<Self*>(this)->InternalGetBuffer< VectorPixelID<uint64_t> >( );
+        return  const_cast<Self*>(this)->InternalGetBuffer< BasicPixelID<uint64_t> >( );
+      }
+    virtual const float    *GetBufferAsFloat( ) const
+      {
+        if ( IsVector<ImageType>::Value )
+          return const_cast<Self*>(this)->InternalGetBuffer< VectorPixelID<float> >( );
+        return  const_cast<Self*>(this)->InternalGetBuffer< BasicPixelID<float> >( );
+      }
+    virtual const double   *GetBufferAsDouble(  ) const
+      {
+        if ( IsVector<ImageType>::Value )
+          return const_cast<Self*>(this)->InternalGetBuffer< VectorPixelID<double> >( );
+        return  const_cast<Self*>(this)->InternalGetBuffer< BasicPixelID<double> >( );
+      }
+
+    virtual void SetPixelAsInt8( const std::vector<uint32_t> &idx, int8_t v )
+      {
+        if ( IsLabel<ImageType>::Value )
+          return this->InternalSetPixel< LabelPixelID<int8_t> >( idx, v );
+        this->InternalSetPixel<BasicPixelID<int8_t> >( idx, v );
+      }
+    virtual void SetPixelAsUInt8( const std::vector<uint32_t> &idx, uint8_t v )
+      {
+        if ( IsLabel<ImageType>::Value )
+          return this->InternalSetPixel< LabelPixelID<uint8_t> >( idx, v );
+        this->InternalSetPixel<BasicPixelID<uint8_t> >( idx, v );
+      }
+    virtual void SetPixelAsInt16( const std::vector<uint32_t> &idx, int16_t v )
+      {
+        if ( IsLabel<ImageType>::Value )
+          return this->InternalSetPixel< LabelPixelID<int16_t> >( idx, v );
+        this->InternalSetPixel<BasicPixelID<int16_t> >( idx, v );
+      }
+    virtual void SetPixelAsUInt16( const std::vector<uint32_t> &idx, uint16_t v )
+      {
+        if ( IsLabel<ImageType>::Value )
+          return this->InternalSetPixel< LabelPixelID<uint16_t> >( idx, v );
+        this->InternalSetPixel<BasicPixelID<uint16_t> >( idx, v );
+      }
+    virtual void SetPixelAsInt32( const std::vector<uint32_t> &idx, int32_t v )
+      {
+        if ( IsLabel<ImageType>::Value )
+          return this->InternalSetPixel< LabelPixelID<int32_t> >( idx, v );
+        this->InternalSetPixel<BasicPixelID<int32_t> >( idx, v );
+      }
+    virtual void SetPixelAsUInt32( const std::vector<uint32_t> &idx, uint32_t v )
+      {
+        if ( IsLabel<ImageType>::Value )
+          return this->InternalSetPixel< LabelPixelID<uint32_t> >( idx, v );
+        this->InternalSetPixel<BasicPixelID<uint32_t> >( idx, v );
+      }
+    virtual void SetPixelAsInt64( const std::vector<uint32_t> &idx, int64_t v )
+      {
+        if ( IsLabel<ImageType>::Value )
+          return this->InternalSetPixel< LabelPixelID<int64_t> >( idx, v );
+        this->InternalSetPixel<BasicPixelID<int64_t> >( idx, v );
+      }
+    virtual void SetPixelAsUInt64( const std::vector<uint32_t> &idx, uint64_t v )
+      {
+        if ( IsLabel<ImageType>::Value )
+          return this->InternalSetPixel< LabelPixelID<uint64_t> >( idx, v );
+        this->InternalSetPixel<BasicPixelID<uint64_t> >( idx, v );
+      }
+    virtual void SetPixelAsFloat( const std::vector<uint32_t> &idx, float v )
+      {
+        if ( IsLabel<ImageType>::Value )
+          return this->InternalSetPixel< LabelPixelID<float> >( idx, v );
+        this->InternalSetPixel<BasicPixelID<float> >( idx, v );
+      }
+    virtual void SetPixelAsDouble( const std::vector<uint32_t> &idx, double v )
+      {
+        if ( IsLabel<ImageType>::Value )
+          return this->InternalSetPixel< LabelPixelID<double> >( idx, v );
+        this->InternalSetPixel<BasicPixelID<double> >( idx, v );
+      }
+    virtual void SetPixelAsVectorInt8( const std::vector<uint32_t> &idx, const std::vector<int8_t> &v )
+      {
+        this->InternalSetPixel<VectorPixelID<int8_t> >( idx, v );
+      }
+    virtual void SetPixelAsVectorUInt8( const std::vector<uint32_t> &idx, const std::vector<uint8_t> &v )
+      {
+        this->InternalSetPixel<VectorPixelID<uint8_t> >( idx, v );
+      }
+    virtual void SetPixelAsVectorInt16( const std::vector<uint32_t> &idx, const std::vector<int16_t> &v )
+      {
+        this->InternalSetPixel<VectorPixelID<int16_t> >( idx, v );
+      }
+    virtual void SetPixelAsVectorUInt16( const std::vector<uint32_t> &idx, const std::vector<uint16_t> &v )
+      {
+        this->InternalSetPixel<VectorPixelID<uint16_t> >( idx, v );
+      }
+    virtual void SetPixelAsVectorInt32( const std::vector<uint32_t> &idx, const std::vector<int32_t> &v )
+      {
+        this->InternalSetPixel<VectorPixelID<int32_t> >( idx, v );
+      }
+    virtual void SetPixelAsVectorUInt32( const std::vector<uint32_t> &idx, const std::vector<uint32_t> &v )
+      {
+        this->InternalSetPixel<VectorPixelID<uint32_t> >( idx, v );
+      }
+    virtual void SetPixelAsVectorInt64( const std::vector<uint32_t> &idx, const std::vector<int64_t> &v )
+      {
+        this->InternalSetPixel<VectorPixelID<int64_t> >( idx, v );
+      }
+    virtual void SetPixelAsVectorUInt64( const std::vector<uint32_t> &idx, const std::vector<uint64_t> &v )
+      {
+        this->InternalSetPixel<VectorPixelID<uint64_t> >( idx, v );
+      }
+    virtual void SetPixelAsVectorFloat32( const std::vector<uint32_t> &idx, const std::vector<float> &v )
+      {
+        this->InternalSetPixel<VectorPixelID<float> >( idx, v );
+      }
+    virtual void SetPixelAsVectorFloat64( const std::vector<uint32_t> &idx, const std::vector<double> &v )
+      {
+        this->InternalSetPixel<VectorPixelID<double> >( idx, v );
+      }
+    virtual void SetPixelAsComplexFloat32( const std::vector<uint32_t> &idx, const std::complex<float> v )
+      {
+        this->InternalSetPixel<BasicPixelID<std::complex<float> > >( idx, v );
+      }
+    virtual void SetPixelAsComplexFloat64( const std::vector<uint32_t> &idx, const std::complex<double> v )
+      {
+        this->InternalSetPixel<BasicPixelID<std::complex<double> > >( idx, v );
+      }
+
+
+  protected:
+
+    template < typename TPixelIDType >
+    typename EnableIf<nsstd::is_same<TPixelIDType, typename ImageTypeToPixelID<ImageType>::PixelIDType>::value
+                      && !IsLabel<TPixelIDType>::Value
+                      && !IsVector<TPixelIDType>::Value,
+                      typename ImageType::PixelType >::Type
+    InternalGetPixel( const std::vector<uint32_t> &idx ) const
+      {
+        const IndexType itkIdx = sitkSTLVectorToITK<IndexType>( idx );
+        if ( ! this->m_Image->GetLargestPossibleRegion().IsInside( itkIdx ) )
+          {
+          sitkExceptionMacro( "index out of bounds" );
+          }
+        return this->m_Image->GetPixel( itkIdx  );
+      }
+
+    template < typename TPixelIDType >
+    typename EnableIf<nsstd::is_same<TPixelIDType, typename ImageTypeToPixelID<ImageType>::PixelIDType>::value
+                      && IsLabel<TPixelIDType>::Value
+                      && !IsVector<TPixelIDType>::Value,
+                      typename ImageType::PixelType >::Type
+    InternalGetPixel( const std::vector<uint32_t> &idx ) const
+      {
+        const IndexType itkIdx = sitkSTLVectorToITK<IndexType>( idx );
+        if ( ! this->m_Image->GetLargestPossibleRegion().IsInside( itkIdx ) )
+          {
+          sitkExceptionMacro( "index out of bounds" );
+          }
+        return this->m_Image->GetPixel( itkIdx  );
+      }
+
+    template < typename TPixelIDType >
+    typename EnableIf<nsstd::is_same<TPixelIDType, typename ImageTypeToPixelID<ImageType>::PixelIDType>::value
+                      && !IsLabel<TPixelIDType>::Value
+                      && IsVector<TPixelIDType>::Value,
+                      std::vector<typename MakeDependentOn<TPixelIDType, ImageType>::InternalPixelType> >::Type
+    InternalGetPixel( const std::vector<uint32_t> &idx ) const
+      {
+        const IndexType itkIdx = sitkSTLVectorToITK<IndexType>( idx );
+        if ( ! this->m_Image->GetLargestPossibleRegion().IsInside( itkIdx ) )
+          {
+          sitkExceptionMacro( "index out of bounds" );
+          }
+        const typename ImageType::PixelType px = this->m_Image->GetPixel( itkIdx  );
+        return std::vector<typename ImageType::InternalPixelType>(&px[0], &px[px.GetSize()]);
+      }
+
+    template < typename TPixelIDType >
+    typename DisableIf<nsstd::is_same<TPixelIDType, typename ImageTypeToPixelID<ImageType>::PixelIDType>::value,
+                       typename Conditional< IsVector<TPixelIDType>::Value,
+                                             std::vector< typename itk::NumericTraits<typename PixelIDToImageType<TPixelIDType,ImageType::ImageDimension>::ImageType::PixelType >::ValueType >,
+                                             typename PixelIDToImageType<TPixelIDType,ImageType::ImageDimension>::ImageType::PixelType >::Type >::Type
+    InternalGetPixel( const std::vector<uint32_t> &idx ) const
+      {
+        Unused( idx );
+        sitkExceptionMacro( << "The image is of type: " << GetPixelIDValueAsString( this->GetPixelID() )
+                            << " but the GetPixel access method requires type: "
+                            << GetPixelIDValueAsString(  PixelIDToPixelIDValue<TPixelIDType>::Result )
+                            << "!" );
+      }
+
+    template < typename TPixelIDType >
+    typename EnableIf<nsstd::is_same<TPixelIDType, typename ImageTypeToPixelID<ImageType>::PixelIDType>::value
+                      && !IsLabel<TPixelIDType>::Value
+                      && !IsVector<TPixelIDType>::Value,
+                      typename ImageType::PixelType *>::Type
+    InternalGetBuffer( void )
+      {
+        return this->m_Image->GetPixelContainer()->GetBufferPointer();
+      }
+
+    template < typename TPixelIDType >
+    typename EnableIf<nsstd::is_same<TPixelIDType, typename ImageTypeToPixelID<ImageType>::PixelIDType>::value
+                      && IsLabel<TPixelIDType>::Value
+                      && !IsVector<TPixelIDType>::Value,
+                      typename ImageType::PixelType *>::Type
+    InternalGetBuffer( void )
+      {
+        sitkExceptionMacro( "This method is not supported for LabelMaps." )
+      }
+
+    template < typename TPixelIDType >
+    typename EnableIf<nsstd::is_same<TPixelIDType, typename ImageTypeToPixelID<ImageType>::PixelIDType>::value
+                      && !IsLabel<TPixelIDType>::Value
+                      && IsVector<TPixelIDType>::Value,
+                      typename MakeDependentOn<TPixelIDType, ImageType>::InternalPixelType * >::Type
+    InternalGetBuffer( void )
+      {
+        return this->m_Image->GetPixelContainer()->GetBufferPointer();
+      }
+
+    template < typename TPixelIDType >
+    typename DisableIf<nsstd::is_same<TPixelIDType, typename ImageTypeToPixelID<ImageType>::PixelIDType>::value,
+                       typename NumericTraits<typename PixelIDToImageType<TPixelIDType,2>::ImageType::PixelType>::ValueType *>::Type
+    InternalGetBuffer( void )
+      {
+        sitkExceptionMacro( << "The image is of type: " << GetPixelIDValueAsString( this->GetPixelID() )
+                            << " but the GetBuffer access method requires type: "
+                            << GetPixelIDValueAsString(  PixelIDToPixelIDValue<TPixelIDType>::Result )
+                            << "!" );
+      }
+
+
+    template < typename TPixelIDType, typename TPixelType >
+    typename EnableIf<nsstd::is_same<TPixelIDType, typename ImageTypeToPixelID<ImageType>::PixelIDType>::value
+                      && !IsLabel<TPixelIDType>::Value
+                      && !IsVector<TPixelIDType>::Value >::Type
+    InternalSetPixel( const std::vector<uint32_t> &idx, const TPixelType v ) const
+      {
+        const IndexType itkIdx = sitkSTLVectorToITK<IndexType>( idx );
+        if ( ! this->m_Image->GetLargestPossibleRegion().IsInside( itkIdx ) )
+          {
+          sitkExceptionMacro( "index out of bounds" );
+          }
+        this->m_Image->SetPixel( itkIdx, v );
+      }
+
+    template < typename TPixelIDType, typename TPixelType >
+    typename EnableIf<nsstd::is_same<TPixelIDType, typename ImageTypeToPixelID<ImageType>::PixelIDType>::value
+                      && IsLabel<TPixelIDType>::Value
+                      && !IsVector<TPixelIDType>::Value >::Type
+    InternalSetPixel( const std::vector<uint32_t> &idx, const TPixelType v ) const
+      {
+        const IndexType itkIdx = sitkSTLVectorToITK<IndexType>( idx );
+        if ( ! this->m_Image->GetLargestPossibleRegion().IsInside( itkIdx ) )
+          {
+          sitkExceptionMacro( "index out of bounds" );
+          }
+        this->m_Image->SetPixel( itkIdx, v );
+      }
+
+    template < typename TPixelIDType, typename TPixelValueType >
+    typename EnableIf<nsstd::is_same<TPixelIDType, typename ImageTypeToPixelID<ImageType>::PixelIDType>::value
+                      && !IsLabel<TPixelIDType>::Value
+                      && IsVector<TPixelIDType>::Value >::Type
+    InternalSetPixel( const std::vector<uint32_t> &idx, const std::vector<TPixelValueType> & v  ) const
+      {
+        const IndexType itkIdx = sitkSTLVectorToITK<IndexType>( idx );
+        if ( ! this->m_Image->GetLargestPossibleRegion().IsInside( itkIdx ) )
+          {
+          sitkExceptionMacro( "index out of bounds" );
+          }
+
+        typename ImageType::PixelType px = this->m_Image->GetPixel( itkIdx );
+
+        if ( px.GetSize()  != v.size() )
+          {
+          sitkExceptionMacro(<<"Unable to convert vector to ITK pixel type\n"
+                             << "Expected vector of length " <<  px.GetSize()
+                             << " but only got " << v.size() << " elements." );
+          }
+
+        std::copy( v.begin(), v.end(), &px[0] );
+      }
+
+
+    template < typename TPixelIDType, typename TPixelType >
+    typename DisableIf<nsstd::is_same<TPixelIDType, typename ImageTypeToPixelID<ImageType>::PixelIDType>::value >::Type
+    InternalSetPixel( const std::vector<uint32_t> &idx, const TPixelType &v ) const
+      {
+        Unused( idx );
+        Unused( v );
+        sitkExceptionMacro( << "The image is of type: " << GetPixelIDValueAsString( this->GetPixelID() )
+                            << " but the SetPixel access method requires type: "
+                            << GetPixelIDValueAsString(  PixelIDToPixelIDValue<BasicPixelID<TPixelType> >::Result )
+                            << "!" );
+      }
+
+  private:
+    ImagePointer m_Image;
+  };
+
+  }
+
+  } // end namespace simple
+} // end namespace itk
+
+#endif // sitkPimpleImageBase_hxx
diff --git a/Code/Common/src/sitkPimpleTransform.hxx b/Code/Common/src/sitkPimpleTransform.hxx
new file mode 100644
index 0000000..de3d471
--- /dev/null
+++ b/Code/Common/src/sitkPimpleTransform.hxx
@@ -0,0 +1,384 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkPimpleTransform_hxx
+#define sitkPimpleTransform_hxx
+
+#include "sitkTransform.h"
+
+#include "itkTransformBase.h"
+
+
+#include "itkIdentityTransform.h"
+#include "itkTranslationTransform.h"
+#include "itkScaleTransform.h"
+#include "itkScaleLogarithmicTransform.h"
+#include "itkSimilarity2DTransform.h"
+#include "itkSimilarity3DTransform.h"
+#include "itkEuler2DTransform.h"
+#include "itkEuler3DTransform.h"
+#include "itkQuaternionRigidTransform.h"
+#include "itkVersorTransform.h"
+#include "itkVersorRigid3DTransform.h"
+#include "itkAffineTransform.h"
+#include "itkCompositeTransform.h"
+
+#include "itkDisplacementFieldTransform.h"
+#include "itkBSplineSmoothingOnUpdateDisplacementFieldTransform.h"
+#include "itkGaussianSmoothingOnUpdateDisplacementFieldTransform.h"
+#include "itkBSplineTransform.h"
+
+namespace itk
+{
+namespace simple
+{
+
+// This is a base class of the private implementatino of the transform
+// class.
+//
+// The interface provide virutal method and other generic methods to
+// the concrete ITK transform type, there by provide encapsulation and
+// a uniform interface
+class SITKCommon_HIDDEN PimpleTransformBase
+{
+public:
+  virtual ~PimpleTransformBase( void ) {};
+
+  // Get Access to the internal ITK transform class
+  virtual TransformBase * GetTransformBase( void ) = 0;
+  virtual const TransformBase * GetTransformBase( void ) const = 0;
+
+  // general methods to get information about the internal class
+  virtual unsigned int GetInputDimension( void ) const = 0;
+  virtual unsigned int GetOutputDimension( void ) const = 0;
+
+  // Set the fixed parameter for the transform, converting from the
+  // simpleITK std::vector to the ITK's array.
+  void SetFixedParameters( const std::vector< double > &inParams )
+    {
+      size_t numberOfFixedParameters = this->GetTransformBase()->GetFixedParameters().Size();
+
+      if ( numberOfFixedParameters == 0 )
+        {
+        return;
+        }
+      else if (numberOfFixedParameters > inParams.size())
+        {
+        sitkExceptionMacro("Transform expected " << numberOfFixedParameters << " fixed parameters but only " << inParams.size() << " are provided!");
+        }
+
+      // let the itk::Array class hold a reference to the input vector
+      itk::TransformBase::ParametersType p;
+      p.SetData( const_cast<double*>(&inParams[0]), numberOfFixedParameters, false );;
+      this->GetTransformBase()->SetFixedParameters( p );
+    }
+
+  // Get the fixed parameters form the transform
+  std::vector< double >  GetFixedParameters( void ) const
+    {
+      const itk::TransformBase::ParametersType &p = this->GetTransformBase()->GetFixedParameters();
+      return std::vector< double >( p.begin(), p.end() );
+    }
+
+
+  unsigned int GetNumberOfParameters( void ) const { return this->GetTransformBase()->GetNumberOfParameters(); }
+
+
+  void SetParameters( const std::vector< double > &inParams )
+    {
+      unsigned int numberOfParameters = this->GetTransformBase()->GetNumberOfParameters();
+
+      if ( numberOfParameters == 0 )
+        {
+        return;
+        }
+      else if ( numberOfParameters > inParams.size())
+        {
+        sitkExceptionMacro("Transform expected " << numberOfParameters << " parameters but only " << inParams.size() << " are provided!");
+        }
+
+      // let the itk::Array class hold a reference to the input vector
+      itk::TransformBase::ParametersType p;
+      p.SetData( const_cast<double*>(&inParams[0]), numberOfParameters, false );
+      this->GetTransformBase()->SetParameters( p );
+    }
+  std::vector< double > GetParameters( void ) const
+    {
+      const itk::TransformBase::ParametersType &p = this->GetTransformBase()->GetParameters();
+      return std::vector< double >( p.begin(), p.end() );
+    }
+
+
+  virtual PimpleTransformBase *ShallowCopy( void ) const = 0;
+  virtual PimpleTransformBase *DeepCopy( void ) const = 0;
+
+  virtual int GetReferenceCount( ) const = 0;
+
+  virtual void SetIdentity() = 0;
+
+  // Tries to construct an inverse of the transform, if true is returned
+  // the inverse was successful, and outputTransform is modified to
+  // the new class and ownership it passed to the caller.  Otherwise
+  // outputTranform is not changed.
+  virtual bool GetInverse( PimpleTransformBase * &outputTransform ) const = 0;
+
+  virtual bool IsLinear() const
+    {
+      return (this->GetTransformBase()->GetTransformCategory() == TransformBase::Linear);
+    }
+
+
+  std::string ToString( void ) const
+    {
+      std::ostringstream out;
+      this->GetTransformBase()->Print ( out, 1 );
+      return out.str();
+    }
+
+  // note: the returned pointer needs to be externally managed and
+  // deleted
+  // Also the return pointer could be this
+  virtual PimpleTransformBase* AddTransform( Transform &t ) = 0;
+
+
+  virtual std::vector< double > TransformPoint( const std::vector< double > &t ) const = 0;
+
+protected:
+
+};
+
+template< typename TTransformType >
+class SITKCommon_HIDDEN PimpleTransform
+  : public PimpleTransformBase
+{
+public:
+  typedef PimpleTransform                  Self;
+  typedef TTransformType                   TransformType;
+  typedef typename TransformType::Pointer  TransformPointer;
+
+  typedef itk::CompositeTransform<double, TransformType::InputSpaceDimension> CompositeTransformType;
+
+  static const unsigned int InputDimension = TTransformType::InputSpaceDimension;
+  static const unsigned int OutputDimension = TTransformType::OutputSpaceDimension;
+
+  template<typename TScalar>
+  PimpleTransform( itk::Image<itk::Vector<TScalar, InputDimension>, InputDimension> *displacement )
+    {
+      this->m_Transform = TransformType::New();
+      this->m_Transform->SetDisplacementField( displacement );
+    }
+
+
+  PimpleTransform( TransformType * p)
+    {
+      this->m_Transform = p;
+    }
+
+  PimpleTransform( )
+    {
+      this->m_Transform = TransformType::New();
+    }
+
+  PimpleTransform( Self &s )
+    : m_Transform( s.m_Transform )
+    {}
+
+  PimpleTransform &operator=( const PimpleTransform &s )
+    {
+      m_Transform = s.m_Transform;
+    }
+
+  virtual TransformBase * GetTransformBase( void ) { return this->m_Transform.GetPointer(); }
+  virtual const TransformBase * GetTransformBase( void ) const { return this->m_Transform.GetPointer(); }
+
+  virtual unsigned int GetInputDimension( void ) const { return InputDimension; }
+  virtual unsigned int GetOutputDimension( void ) const { return OutputDimension; }
+
+
+  virtual PimpleTransformBase *ShallowCopy( void ) const
+    {
+      return new Self( this->m_Transform.GetPointer() );
+    }
+
+  virtual PimpleTransformBase *DeepCopy( void ) const
+    {
+      PimpleTransformBase *copy( new Self( this->m_Transform->Clone() ) );
+      return copy;
+    }
+
+  virtual int GetReferenceCount( ) const
+    {
+      return this->m_Transform->GetReferenceCount();
+    }
+
+  virtual void SetIdentity()
+    {
+      this->SetIdentity(this->m_Transform.GetPointer());
+    }
+
+  template <typename UTransform>
+  void SetIdentity( UTransform *self)
+    {
+      self->SetIdentity();
+    }
+
+  template <typename UScalar, unsigned int UDimension>
+  void SetIdentity( itk::CompositeTransform<UScalar, UDimension> *self)
+    {
+      sitkExceptionMacro( "SetIdentity does is not implemented for transforms of type " << self->GetNameOfClass() );
+    }
+
+#if ( ( SITK_ITK_VERSION_MAJOR == 4 ) && ( SITK_ITK_VERSION_MINOR < 7 ) )
+  template <typename UScalar, unsigned int UDimension>
+  void SetIdentity( itk::DisplacementFieldTransform<UScalar, UDimension> *self)
+      {
+        typedef itk::DisplacementFieldTransform<UScalar, UDimension> DFTType;
+        typename DFTType::DisplacementFieldType *displacementField;
+
+        displacementField = self->GetModifiableDisplacementField();
+        if (displacementField)
+          {
+          displacementField->FillBuffer(typename DFTType::OutputVectorType(0.0));
+          }
+        displacementField = self->GetModifiableInverseDisplacementField();;
+        if (displacementField)
+          {
+          displacementField->FillBuffer(typename DFTType::OutputVectorType(0.0));
+          }
+      }
+
+  template <typename UScalar, unsigned int UDimension>
+  void SetIdentity( itk::BSplineSmoothingOnUpdateDisplacementFieldTransform<UScalar, UDimension> *self)
+      {
+        typedef itk::DisplacementFieldTransform<UScalar, UDimension> DFTType;
+        typename DFTType::DisplacementFieldType *displacementField;
+
+        displacementField = self->GetModifiableDisplacementField();
+        if (displacementField)
+          {
+          displacementField->FillBuffer(typename DFTType::OutputVectorType(0.0));
+          }
+        displacementField = self->GetModifiableInverseDisplacementField();;
+        if (displacementField)
+          {
+          displacementField->FillBuffer(typename DFTType::OutputVectorType(0.0));
+          }
+      }
+
+  template <typename UScalar, unsigned int UDimension>
+  void SetIdentity( itk::GaussianSmoothingOnUpdateDisplacementFieldTransform<UScalar, UDimension> *self)
+      {
+        typedef itk::DisplacementFieldTransform<UScalar, UDimension> DFTType;
+        typename DFTType::DisplacementFieldType *displacementField;
+
+        displacementField = self->GetModifiableDisplacementField();
+        if (displacementField)
+          {
+          displacementField->FillBuffer(typename DFTType::OutputVectorType(0.0));
+          }
+        displacementField = self->GetModifiableInverseDisplacementField();;
+        if (displacementField)
+          {
+          displacementField->FillBuffer(typename DFTType::OutputVectorType(0.0));
+          }
+      }
+
+
+#endif
+
+  virtual bool GetInverse(PimpleTransformBase * &outputTransform) const
+    {
+      typename itk::LightObject::Pointer light = this->m_Transform->CreateAnother();
+      typename TransformType::Pointer another = dynamic_cast<TransformType*>(light.GetPointer());
+
+      if (another.IsNull())
+        {
+        sitkExceptionMacro("Unexpected error creating another " << this->m_Transform->GetNameOfClass() << ".")
+        }
+      if (!this->m_Transform->GetInverse(another))
+        {
+        return false;
+        }
+      outputTransform = new Self( another.GetPointer() );
+      return true;
+    }
+
+
+  virtual PimpleTransformBase* AddTransform( Transform &t )
+    {
+      if ( t.GetDimension() != TransformType::InputSpaceDimension )
+        {
+        sitkExceptionMacro( "Transform argument has dimension " << t.GetDimension()
+                            << " does not match this dimesion of " << TransformType::InputSpaceDimension );
+        }
+
+      typename CompositeTransformType::TransformType* base =
+        dynamic_cast< typename CompositeTransformType::TransformType*>( t.GetITKBase() );
+
+      return this->AddTransform( base, typename nsstd::is_same<TTransformType, CompositeTransformType>::type() );
+    }
+
+  PimpleTransformBase* AddTransform( typename CompositeTransformType::TransformType* t, nsstd::true_type isCompositeTransform )
+    {
+      Unused( isCompositeTransform );
+      assert( t->GetInputSpaceDimension() == TransformType::InputSpaceDimension );
+
+      m_Transform->AddTransform( t );
+      m_Transform->SetAllTransformsToOptimizeOff();
+      m_Transform->SetOnlyMostRecentTransformToOptimizeOn();
+
+      return this;
+    }
+
+  PimpleTransformBase* AddTransform( typename CompositeTransformType::TransformType* t, nsstd::false_type isNotCompositeTransform )
+    {
+      Unused( isNotCompositeTransform );
+
+      typename CompositeTransformType::Pointer composite = CompositeTransformType::New();
+      composite->AddTransform( this->m_Transform );
+      composite->AddTransform( t );
+      composite->SetAllTransformsToOptimizeOff();
+      composite->SetOnlyMostRecentTransformToOptimizeOn();
+
+      return new PimpleTransform<CompositeTransformType>( composite );
+    }
+
+
+
+  virtual std::vector< double > TransformPoint( const std::vector< double > &pt ) const
+    {
+      if (pt.size() != this->GetInputDimension() )
+        {
+        sitkExceptionMacro("vector dimension mismatch");
+        }
+
+      typename TransformType::OutputPointType opt =
+        this->m_Transform->TransformPoint( sitkSTLVectorToITK< typename TransformType::InputPointType >(pt));
+
+      return sitkITKVectorToSTL<double>( opt );
+    }
+
+private:
+
+  TransformPointer m_Transform;
+};
+
+}
+}
+
+
+#endif //  sitkPimpleTransform_hxx
diff --git a/Code/Common/src/sitkPixelIDValues.cxx b/Code/Common/src/sitkPixelIDValues.cxx
new file mode 100644
index 0000000..d5036cf
--- /dev/null
+++ b/Code/Common/src/sitkPixelIDValues.cxx
@@ -0,0 +1,278 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include "sitkPixelIDValues.h"
+
+namespace itk
+{
+namespace simple
+{
+
+
+const std::string GetPixelIDValueAsString( PixelIDValueEnum type )
+{
+  return GetPixelIDValueAsString( static_cast<PixelIDValueType>(type) );
+}
+
+const std::string GetPixelIDValueAsString( PixelIDValueType type )
+{
+
+  if ( type == sitkUnknown )
+    {
+    // Unknow must be first because other enums may be -1 if they are
+    // not instantiated
+    return "Unknown pixel id";
+    }
+  else if ( type == sitkUInt8 )
+    {
+    return "8-bit unsigned integer";
+    }
+  else if ( type == sitkInt8 )
+    {
+    return "8-bit signed integer";
+    }
+  else if ( type ==  sitkUInt16 )
+    {
+    return "16-bit unsigned integer";
+    }
+  else if ( type == sitkInt16 )
+    {
+    return "16-bit signed integer";
+    }
+  else if ( type == sitkUInt32 )
+    {
+    return "32-bit unsigned integer";
+    }
+  else if ( type == sitkInt32 )
+    {
+    return "32-bit signed integer";
+    }
+  else if ( type == sitkUInt64 )
+    {
+    return "64-bit unsigned integer";
+    }
+  else if ( type == sitkInt64 )
+    {
+    return "64-bit signed integer";
+    }
+  else if ( type == sitkFloat32 )
+    {
+    return "32-bit float";
+    }
+  else if ( type == sitkFloat64 )
+    {
+    return "64-bit float";
+    }
+  else if ( type == sitkComplexFloat32 )
+    {
+    return "complex of 32-bit float";
+    }
+  else if ( type == sitkComplexFloat64 )
+    {
+    return "complex of 64-bit float";
+    }
+  else if ( type == sitkVectorUInt8 )
+    {
+    return "vector of 8-bit unsigned integer";
+    }
+  else if ( type == sitkVectorInt8 )
+    {
+    return "vector of 8-bit signed integer";
+    }
+  else if ( type ==  sitkVectorUInt16 )
+    {
+    return "vector of 16-bit unsigned integer";
+    }
+  else if ( type == sitkVectorInt16 )
+    {
+    return "vector of 16-bit signed integer";
+    }
+  else if ( type == sitkVectorUInt32 )
+    {
+    return "vector of 32-bit unsigned integer";
+    }
+  else if ( type == sitkVectorInt32 )
+    {
+    return "vector of 32-bit signed integer";
+    }
+  else if ( type == sitkVectorUInt64 )
+    {
+    return "vector of 64-bit unsigned integer";
+    }
+  else if ( type == sitkVectorInt64 )
+    {
+    return "vector of 64-bit signed integer";
+    }
+  else if ( type == sitkVectorFloat32 )
+    {
+    return "vector of 32-bit float";
+    }
+  else if ( type == sitkVectorFloat64 )
+    {
+    return "vector of 64-bit float";
+    }
+  else if ( type == sitkLabelUInt8 )
+    {
+    return "label of 8-bit unsigned integer";
+    }
+  else if ( type == sitkLabelUInt16 )
+    {
+    return "label of 16-bit unsigned integer";
+    }
+  else if ( type == sitkLabelUInt32 )
+    {
+    return "label of 32-bit unsigned integer";
+    }
+  else if ( type == sitkLabelUInt64 )
+    {
+    return "label of 64-bit unsigned integer";
+    }
+  else
+    {
+    return "ERRONEOUS PIXEL ID!";
+    }
+}
+
+
+PixelIDValueType GetPixelIDValueFromString(const std::string &enumString )
+{
+
+  if ( enumString == "sitkUnknown" )
+    {
+    // Unknow must be first because other enums may be -1 if they are
+    // not instantiated
+      return sitkUnknown;
+    }
+  else if ( enumString == "sitkUInt8" )
+    {
+      return sitkUInt8;
+    }
+  else if ( enumString == "sitkInt8" )
+    {
+      return sitkInt8;
+    }
+  else if ( enumString ==  "sitkUInt16" )
+    {
+      return sitkUInt16;
+    }
+  else if ( enumString == "sitkInt16" )
+    {
+      return sitkInt16;
+    }
+  else if ( enumString == "sitkUInt32" )
+    {
+      return sitkUInt32;
+    }
+  else if ( enumString == "sitkInt32" )
+    {
+      return sitkInt32;
+    }
+  else if ( enumString == "sitkUInt64" )
+    {
+      return sitkUInt64;
+    }
+  else if ( enumString == "sitkInt64" )
+    {
+      return sitkInt64;
+    }
+  else if ( enumString == "sitkFloat32" )
+    {
+      return sitkFloat32;
+    }
+  else if ( enumString == "sitkFloat64" )
+    {
+      return sitkFloat64;
+    }
+  else if ( enumString == "sitkComplexFloat32" )
+    {
+      return sitkComplexFloat32;
+    }
+  else if ( enumString == "sitkComplexFloat64" )
+    {
+      return sitkComplexFloat64;
+    }
+  else if ( enumString == "sitkVectorUInt8" )
+    {
+      return sitkVectorUInt8;
+    }
+  else if ( enumString == "sitkVectorInt8" )
+    {
+      return sitkVectorInt8;
+    }
+  else if ( enumString ==  "sitkVectorUInt16" )
+    {
+      return sitkVectorUInt16;
+    }
+  else if ( enumString == "sitkVectorInt16" )
+    {
+      return sitkVectorInt16;
+    }
+  else if ( enumString == "sitkVectorUInt32" )
+    {
+      return sitkVectorUInt32;
+    }
+  else if ( enumString == "sitkVectorInt32" )
+    {
+      return sitkVectorInt32;
+    }
+  else if ( enumString == "sitkVectorUInt64" )
+    {
+      return sitkVectorUInt64;
+    }
+  else if ( enumString == "sitkVectorInt64" )
+    {
+      return sitkVectorInt64;
+    }
+  else if ( enumString == "sitkVectorFloat32" )
+    {
+      return sitkVectorFloat32;
+    }
+  else if ( enumString == "sitkVectorFloat64" )
+    {
+      return sitkVectorFloat64;
+    }
+  else if ( enumString == "sitkLabelUInt8" )
+    {
+      return sitkLabelUInt8;
+    }
+  else if ( enumString == "sitkLabelUInt16" )
+    {
+      return sitkLabelUInt16;
+    }
+  else if ( enumString == "sitkLabelUInt32" )
+    {
+      return sitkLabelUInt32;
+    }
+  else if ( enumString == "sitkLabelUInt64" )
+    {
+      return sitkLabelUInt64;
+    }
+  else
+    {
+    return -99;
+    }
+}
+
+
+std::ostream& operator<<(std::ostream& os, const PixelIDValueEnum id)
+{
+  return (os << GetPixelIDValueAsString(id));
+}
+
+
+}
+}
diff --git a/Code/Common/src/sitkProcessObject.cxx b/Code/Common/src/sitkProcessObject.cxx
new file mode 100644
index 0000000..cf5b9f5
--- /dev/null
+++ b/Code/Common/src/sitkProcessObject.cxx
@@ -0,0 +1,546 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include "sitkProcessObject.h"
+#include "sitkCommand.h"
+
+#include "itkProcessObject.h"
+#include "itkCommand.h"
+#include "itkImageToImageFilter.h"
+
+#include <iostream>
+#include <algorithm>
+
+#include "nsstd/functional.h"
+
+namespace itk {
+namespace simple {
+
+namespace
+{
+static bool GlobalDefaultDebug = false;
+
+static itk::AnyEvent eventAnyEvent;
+static itk::AbortEvent eventAbortEvent;
+static itk::DeleteEvent eventDeleteEvent;
+static itk::EndEvent eventEndEvent;;
+static itk::IterationEvent eventIterationEvent;
+static itk::ProgressEvent eventProgressEvent;
+static itk::StartEvent eventStartEvent;
+static itk::UserEvent eventUserEvent;
+static itk::MultiResolutionIterationEvent eventMultiResolutionIterationEvent;
+
+
+// Local class to adapt a sitk::Command to ITK's command.
+// It utilizes a raw pointer, and relies on the sitk
+// ProcessObject<->Command reference to automatically remove it.
+class SimpleAdaptorCommand
+  : public itk::Command
+{
+public:
+
+  typedef SimpleAdaptorCommand Self;
+  typedef SmartPointer< Self >  Pointer;
+
+  itkNewMacro(Self);
+
+  itkTypeMacro(SimpleAdaptorCommand, Command);
+
+  void SetSimpleCommand( itk::simple::Command *cmd )
+    {
+      m_That=cmd;
+    }
+
+  /**  Invoke the member function. */
+  virtual void Execute(Object *, const EventObject & ) SITK_OVERRIDE
+  {
+    if (m_That)
+      {
+      m_That->Execute();
+      }
+  }
+
+  /**  Invoke the member function with a const object */
+  virtual void Execute(const Object *, const EventObject & ) SITK_OVERRIDE
+  {
+    if ( m_That )
+      {
+      m_That->Execute();
+      }
+  }
+
+protected:
+  itk::simple::Command *                    m_That;
+  SimpleAdaptorCommand():m_That(0) {}
+  virtual ~SimpleAdaptorCommand() {}
+
+private:
+  SimpleAdaptorCommand(const Self &); //purposely not implemented
+  void operator=(const Self &);        //purposely not implemented
+};
+
+} // end anonymous namespace
+
+//----------------------------------------------------------------------------
+
+//
+// Default constructor that initializes parameters
+//
+ProcessObject::ProcessObject ()
+  : m_Debug(ProcessObject::GetGlobalDefaultDebug()),
+    m_NumberOfThreads(ProcessObject::GetGlobalDefaultNumberOfThreads()),
+    m_ActiveProcess(NULL),
+    m_ProgressMeasurement(0.0)
+{
+}
+
+
+//
+// Destructor
+//
+ProcessObject::~ProcessObject ()
+{
+  // ensure to remove reference between sitk commands and process object
+  Self::RemoveAllCommands();
+}
+
+std::string ProcessObject::ToString() const
+{
+  std::ostringstream out;
+
+  out << "  Debug: ";
+  this->ToStringHelper(out, this->m_Debug) << std::endl;
+
+  out << "  NumberOfThreads: ";
+  this->ToStringHelper(out, this->m_NumberOfThreads) << std::endl;
+
+  out << "  Commands:" << (m_Commands.empty()?" (none)":"") << std::endl;
+  for( std::list<EventCommand>::const_iterator i = m_Commands.begin();
+       i != m_Commands.end();
+       ++i)
+    {
+    assert( i->m_Command );
+    out << "    Event: " << i->m_Event << " Command: " << i->m_Command->GetName() << std::endl;
+    }
+
+  out << "  ProgressMeasurement: ";
+  this->ToStringHelper(out, this->m_ProgressMeasurement) << std::endl;
+
+  out << "  ActiveProcess:" << (this->m_ActiveProcess?"":" (none)") <<std::endl;
+  if( this->m_ActiveProcess )
+    {
+    this->m_ActiveProcess->Print(out, itk::Indent(4));
+    }
+
+  return out.str();
+}
+
+
+std::ostream & ProcessObject::ToStringHelper(std::ostream &os, const char &v)
+{
+  os << int(v);
+  return os;
+}
+
+
+std::ostream & ProcessObject::ToStringHelper(std::ostream &os, const signed char &v)
+{
+  os << int(v);
+  return os;
+}
+
+
+std::ostream & ProcessObject::ToStringHelper(std::ostream &os, const unsigned char &v)
+{
+  os << int(v);
+  return os;
+}
+
+
+void ProcessObject::DebugOn()
+{
+  this->m_Debug = true;
+}
+
+
+void ProcessObject::DebugOff()
+{
+  this->m_Debug = false;
+}
+
+
+bool ProcessObject::GetDebug() const
+{
+  return this->m_Debug;
+}
+
+
+void ProcessObject::SetDebug(bool debugFlag)
+{
+  this->m_Debug = debugFlag;
+}
+
+
+void ProcessObject::GlobalDefaultDebugOn()
+{
+  GlobalDefaultDebug = true;
+}
+
+
+void ProcessObject::GlobalDefaultDebugOff()
+
+{
+  GlobalDefaultDebug = false;
+}
+
+
+bool ProcessObject::GetGlobalDefaultDebug()
+{
+  return GlobalDefaultDebug;
+}
+
+
+void ProcessObject::SetGlobalDefaultDebug(bool debugFlag)
+{
+  GlobalDefaultDebug = debugFlag;
+}
+
+
+void ProcessObject::GlobalWarningDisplayOn()
+{
+  itk::Object::GlobalWarningDisplayOn();
+}
+
+
+void ProcessObject::GlobalWarningDisplayOff()
+{
+  itk::Object::GlobalWarningDisplayOff();
+}
+
+
+bool ProcessObject::GetGlobalWarningDisplay()
+{
+  return itk::Object::GetGlobalWarningDisplay();
+}
+
+
+void ProcessObject::SetGlobalWarningDisplay(bool flag)
+{
+  itk::Object::SetGlobalWarningDisplay(flag);
+}
+
+
+double ProcessObject::GetGlobalDefaultCoordinateTolerance()
+{
+  return itk::ImageToImageFilterCommon::GetGlobalDefaultCoordinateTolerance();
+}
+
+void ProcessObject::SetGlobalDefaultCoordinateTolerance(double tolerance)
+{
+  return itk::ImageToImageFilterCommon::SetGlobalDefaultCoordinateTolerance(tolerance);
+}
+
+double ProcessObject::GetGlobalDefaultDirectionTolerance()
+{
+  return itk::ImageToImageFilterCommon::GetGlobalDefaultDirectionTolerance();
+}
+
+void ProcessObject::SetGlobalDefaultDirectionTolerance(double tolerance)
+{
+  return itk::ImageToImageFilterCommon::SetGlobalDefaultDirectionTolerance(tolerance);
+}
+
+
+void ProcessObject::SetGlobalDefaultNumberOfThreads(unsigned int n)
+{
+  MultiThreader::SetGlobalDefaultNumberOfThreads(n);
+}
+
+
+unsigned int ProcessObject::GetGlobalDefaultNumberOfThreads()
+{
+  return MultiThreader::GetGlobalDefaultNumberOfThreads();
+}
+
+
+void ProcessObject::SetNumberOfThreads(unsigned int n)
+{
+  m_NumberOfThreads = n;
+}
+
+
+unsigned int ProcessObject::GetNumberOfThreads() const
+{
+  return m_NumberOfThreads;
+}
+
+
+int ProcessObject::AddCommand(EventEnum event, Command &cmd)
+{
+  // add to our list of event, command pairs
+  m_Commands.push_back(EventCommand(event,&cmd));
+
+  // register ourselves with the command
+  cmd.AddProcessObject(this);
+
+  if (this->m_ActiveProcess)
+    {
+    this->AddObserverToActiveProcessObject( m_Commands.back() );
+    }
+  else
+    {
+    m_Commands.back().m_ITKTag = std::numeric_limits<unsigned long>::max();
+    }
+
+  return 0;
+}
+
+
+void ProcessObject::RemoveAllCommands()
+{
+  // set's the m_Commands to an empty list via a swap
+  std::list<EventCommand> oldCommands;
+  swap(oldCommands, m_Commands);
+
+  // remove commands from active process object
+  std::list<EventCommand>::iterator i = oldCommands.begin();
+  while( i != oldCommands.end() && this->m_ActiveProcess )
+    {
+    this->RemoveObserverFromActiveProcessObject(*i);
+    ++i;
+    }
+
+  // we must only call RemoveProcessObject once for each command
+  // so make a unique list of the Commands.
+  oldCommands.sort();
+  oldCommands.unique();
+  i = oldCommands.begin();
+  while( i != oldCommands.end() )
+    {
+    // note: this may call onCommandDelete, but we have already copied
+    // this->m_Command will be empty
+    i++->m_Command->RemoveProcessObject(this);
+    }
+}
+
+
+bool ProcessObject::HasCommand( EventEnum event ) const
+{
+  std::list<EventCommand>::const_iterator i = m_Commands.begin();
+  while( i != m_Commands.end() )
+    {
+    if (i->m_Event == event)
+      {
+      return true;
+      }
+    ++i;
+    }
+  return false;
+}
+
+
+float ProcessObject::GetProgress( ) const
+{
+  if ( this->m_ActiveProcess )
+    {
+    return this->m_ActiveProcess->GetProgress();
+    }
+  return m_ProgressMeasurement;
+}
+
+
+void ProcessObject::Abort()
+{
+  if ( this->m_ActiveProcess )
+    {
+    this->m_ActiveProcess->AbortGenerateDataOn();
+    }
+}
+
+
+void ProcessObject::PreUpdate(itk::ProcessObject *p)
+{
+  assert(p);
+
+  // propagate number of threads
+  p->SetNumberOfThreads(this->GetNumberOfThreads());
+
+  try
+    {
+    this->m_ActiveProcess = p;
+
+    // add command on active process deletion
+    itk::SimpleMemberCommand<Self>::Pointer onDelete = itk::SimpleMemberCommand<Self>::New();
+    onDelete->SetCallbackFunction(this, &Self::OnActiveProcessDelete);
+    p->AddObserver(itk::DeleteEvent(), onDelete);
+
+    // register commands
+    for (std::list<EventCommand>::iterator i = m_Commands.begin();
+         i != m_Commands.end();
+         ++i)
+      {
+      this->AddObserverToActiveProcessObject(*i);
+      }
+
+    }
+  catch (...)
+    {
+    this->m_ActiveProcess = NULL;
+    throw;
+    }
+
+  if (this->GetDebug())
+     {
+     std::cout << "Executing ITK filter:" << std::endl;
+     p->Print(std::cout);
+     }
+}
+
+
+unsigned long ProcessObject::AddITKObserver( const itk::EventObject &e,
+                                             itk::Command *c)
+{
+  assert(this->m_ActiveProcess);
+  return this->m_ActiveProcess->AddObserver(e,c);
+}
+
+
+void ProcessObject::RemoveITKObserver( EventCommand &e )
+{
+  assert(this->m_ActiveProcess);
+  this->m_ActiveProcess->RemoveObserver(e.m_ITKTag);
+}
+
+
+
+const itk::EventObject &ProcessObject::GetITKEventObject(EventEnum e)
+{
+  switch (e)
+    {
+    case sitkAnyEvent:
+      return eventAnyEvent;
+    case sitkAbortEvent:
+      return eventAbortEvent;
+    case sitkDeleteEvent:
+      return eventDeleteEvent;
+    case sitkEndEvent:
+      return eventEndEvent;
+    case sitkIterationEvent:
+      return eventIterationEvent;
+    case sitkProgressEvent:
+      return eventProgressEvent;
+    case sitkStartEvent:
+      return eventStartEvent;
+    case sitkUserEvent:
+      return eventUserEvent;
+    case sitkMultiResolutionIterationEvent:
+      return eventMultiResolutionIterationEvent;
+    default:
+      sitkExceptionMacro("LogicError: Unexpected event case!");
+    }
+}
+
+
+itk::ProcessObject *ProcessObject::GetActiveProcess( )
+{
+  if (this->m_ActiveProcess)
+    {
+    return this->m_ActiveProcess;
+    }
+  sitkExceptionMacro("No active process for \"" << this->GetName() << "\"!");
+}
+
+
+void ProcessObject::OnActiveProcessDelete( )
+{
+  if (this->m_ActiveProcess)
+    {
+    this->m_ProgressMeasurement = this->m_ActiveProcess->GetProgress();
+    }
+  else
+    {
+    this->m_ProgressMeasurement = 0.0f;
+    }
+
+  // clear registered command IDs
+  for (std::list<EventCommand>::iterator i = m_Commands.begin();
+         i != m_Commands.end();
+         ++i)
+      {
+      i->m_ITKTag = std::numeric_limits<unsigned long>::max();
+      }
+
+  this->m_ActiveProcess = NULL;
+}
+
+
+void ProcessObject::onCommandDelete(const itk::simple::Command *cmd) throw()
+{
+  // remove command from m_Command book keeping list, and remove it
+  // from the  ITK ProcessObject
+  std::list<EventCommand>::iterator i =  this->m_Commands.begin();
+  while ( i !=  this->m_Commands.end() )
+    {
+    if ( cmd == i->m_Command )
+      {
+      if ( this->m_ActiveProcess )
+        {
+        this->RemoveObserverFromActiveProcessObject( *i );
+        }
+      this->m_Commands.erase(i++);
+      }
+    else
+      {
+      ++i;
+      }
+
+    }
+}
+
+unsigned long ProcessObject::AddObserverToActiveProcessObject( EventCommand &eventCommand )
+{
+  assert( this->m_ActiveProcess );
+
+  if (eventCommand.m_ITKTag != std::numeric_limits<unsigned long>::max())
+    {
+    sitkExceptionMacro("Commands already registered to another process object!");
+    }
+
+  const itk::EventObject &itkEvent = GetITKEventObject(eventCommand.m_Event);
+
+  // adapt sitk command to itk command
+  SimpleAdaptorCommand::Pointer itkCommand = SimpleAdaptorCommand::New();
+  itkCommand->SetSimpleCommand(eventCommand.m_Command);
+  itkCommand->SetObjectName(eventCommand.m_Command->GetName()+" "+itkEvent.GetEventName());
+
+  return eventCommand.m_ITKTag = this->AddITKObserver( itkEvent, itkCommand );
+}
+
+void ProcessObject::RemoveObserverFromActiveProcessObject( EventCommand &e )
+ {
+   assert( this->m_ActiveProcess );
+
+   if (e.m_ITKTag != std::numeric_limits<unsigned long>::max() )
+     {
+     this->RemoveITKObserver(e);
+     e.m_ITKTag = std::numeric_limits<unsigned long>::max();
+     }
+
+ }
+
+} // end namespace simple
+} // end namespace itk
diff --git a/Code/Common/src/sitkScaleSkewVersor3DTransform.cxx b/Code/Common/src/sitkScaleSkewVersor3DTransform.cxx
new file mode 100644
index 0000000..294d05f
--- /dev/null
+++ b/Code/Common/src/sitkScaleSkewVersor3DTransform.cxx
@@ -0,0 +1,261 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include "sitkScaleSkewVersor3DTransform.h"
+#include "sitkTransformHelper.hxx"
+
+#include "itkScaleSkewVersor3DTransform.h"
+
+namespace itk
+{
+namespace simple
+{
+
+namespace
+{
+
+template< typename T, typename TType>
+itk::Versor<T> sitkSTLVectorToITKVersor( const std::vector< TType > & in )
+{
+  typedef itk::Versor<T> itkVectorType;
+  if ( in.size() != 4 )
+    {
+    sitkExceptionMacro(<<"Unable to convert vector to ITK Versor type\n"
+                      << "Expected vector of length " <<  4
+                       << " but got " << in.size() << " elements." );
+    }
+  itkVectorType out;
+  out.Set(in[0],in[1],in[2],in[3]);
+  return out;
+}
+
+
+template< typename TType, typename T>
+std::vector<TType> sitkITKVersorToSTL( const itk::Versor<T> & in )
+{
+  std::vector<TType> out(4);
+  out[0] = in.GetX();
+  out[1] = in.GetY();
+  out[2] = in.GetZ();
+  out[3] = in.GetW();
+  return out;
+}
+
+
+}
+
+// construct identity
+ScaleSkewVersor3DTransform::ScaleSkewVersor3DTransform()
+  : Transform(3, sitkScaleSkewVersor)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+ScaleSkewVersor3DTransform::ScaleSkewVersor3DTransform( const ScaleSkewVersor3DTransform &arg )
+  : Transform(arg)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+ScaleSkewVersor3DTransform::ScaleSkewVersor3DTransform( const Transform & arg )
+  : Transform(arg)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+ScaleSkewVersor3DTransform::ScaleSkewVersor3DTransform( const std::vector< double > &scale,
+                                                        const std::vector< double> &skew,
+                                                        const std::vector< double > &versor,
+                                                        const std::vector< double > &translation,
+                                                        const std::vector< double> &fixedCenter )
+  : Transform(3, sitkScaleSkewVersor)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+
+  this->SetScale(scale);
+  this->SetSkew(skew);
+  this->SetCenter(fixedCenter);
+  this->SetRotation(versor);
+  this->SetTranslation(translation);
+}
+
+ScaleSkewVersor3DTransform::ScaleSkewVersor3DTransform( const std::vector< double > &scale,
+                                                        const std::vector< double> &skew,
+                                                        const std::vector< double > &axis, double angle,
+                                                        const std::vector< double > &translation,
+                                                        const std::vector< double> &fixedCenter )
+  : Transform(3, sitkScaleSkewVersor)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+
+  this->SetScale(scale);
+  this->SetSkew(skew);
+  this->SetCenter(fixedCenter);
+  this->SetRotation(axis, angle);
+  this->SetTranslation(translation);
+}
+
+
+ScaleSkewVersor3DTransform &ScaleSkewVersor3DTransform::operator=( const ScaleSkewVersor3DTransform &arg )
+{
+  Superclass::operator=(arg);
+  return *this;
+}
+
+
+/** fixed parameter */
+ScaleSkewVersor3DTransform::Self &ScaleSkewVersor3DTransform::SetCenter(const std::vector<double> &params)
+{
+  this->MakeUnique();
+  this->m_pfSetCenter(params);
+  return *this;
+}
+
+std::vector<double> ScaleSkewVersor3DTransform::GetCenter( ) const
+{
+  return this->m_pfGetCenter();
+}
+
+
+ScaleSkewVersor3DTransform::Self &ScaleSkewVersor3DTransform::SetRotation(const std::vector<double> &versor)
+{
+  this->MakeUnique();
+  this->m_pfSetRotation1(versor);
+  return *this;
+}
+
+ScaleSkewVersor3DTransform::Self &ScaleSkewVersor3DTransform::SetRotation(const std::vector<double> &axis,  double angle)
+{
+  this->MakeUnique();
+  this->m_pfSetRotation2(axis, angle);
+  return *this;
+}
+
+std::vector<double>  ScaleSkewVersor3DTransform::GetVersor() const
+{
+  return this->m_pfGetVersor();
+}
+
+ScaleSkewVersor3DTransform::Self &ScaleSkewVersor3DTransform::SetTranslation(const std::vector<double> &params)
+{
+  this->MakeUnique();
+  this->m_pfSetTranslation(params);
+  return *this;
+}
+
+std::vector<double> ScaleSkewVersor3DTransform::GetTranslation( ) const
+{
+  return this->m_pfGetTranslation();
+}
+
+ScaleSkewVersor3DTransform::Self &ScaleSkewVersor3DTransform::Translate(const std::vector<double> &offset)
+{
+  this->MakeUnique();
+  this->m_pfTranslate(offset);
+  return *this;
+}
+
+ScaleSkewVersor3DTransform::Self &ScaleSkewVersor3DTransform::SetScale(const std::vector<double> &params)
+{
+  this->MakeUnique();
+  this->m_pfSetScale(params);
+  return *this;
+}
+
+std::vector<double> ScaleSkewVersor3DTransform::GetScale( ) const
+{
+  return this->m_pfGetScale();
+}
+
+ScaleSkewVersor3DTransform::Self &ScaleSkewVersor3DTransform::SetSkew(const std::vector<double> &params)
+{
+  this->MakeUnique();
+  this->m_pfSetSkew(params);
+  return *this;
+}
+
+std::vector<double> ScaleSkewVersor3DTransform::GetSkew( ) const
+{
+  return this->m_pfGetSkew();
+}
+
+std::vector<double> ScaleSkewVersor3DTransform::GetMatrix( ) const
+{
+  return this->m_pfGetMatrix();
+}
+
+void ScaleSkewVersor3DTransform::SetPimpleTransform( PimpleTransformBase *pimpleTransform )
+{
+  Superclass::SetPimpleTransform(pimpleTransform);
+  Self::InternalInitialization(this->GetITKBase());
+}
+
+void ScaleSkewVersor3DTransform::InternalInitialization(itk::TransformBase *transform)
+{
+
+  typedef itk::ScaleSkewVersor3DTransform<double> TransformType;
+  TransformType *t = dynamic_cast<TransformType*>(transform);
+
+  // explicitly remove all function pointer with reference to prior transform
+  this->m_pfSetCenter = SITK_NULLPTR;
+  this->m_pfGetCenter = SITK_NULLPTR;
+  this->m_pfSetTranslation = SITK_NULLPTR;
+  this->m_pfGetTranslation = SITK_NULLPTR;
+  this->m_pfSetRotation1 = SITK_NULLPTR;
+  this->m_pfSetRotation2 = SITK_NULLPTR;
+  this->m_pfGetVersor = SITK_NULLPTR;
+  this->m_pfTranslate = SITK_NULLPTR;
+  this->m_pfGetMatrix = SITK_NULLPTR;
+
+  if (t && (typeid(*t)==typeid(TransformType)))
+    {
+    this->InternalInitialization(t);
+    return;
+    }
+  else
+    {
+    sitkExceptionMacro("Transform is not of type " << this->GetName() << "!" );
+    }
+}
+
+
+template<class TransformType>
+void ScaleSkewVersor3DTransform::InternalInitialization(TransformType *t)
+{
+
+  SITK_TRANSFORM_SET_MPF(Center, typename TransformType::InputPointType, double);
+  SITK_TRANSFORM_SET_MPF(Translation, typename TransformType::OutputVectorType, double);
+  SITK_TRANSFORM_SET_MPF(Scale, typename TransformType::ScaleVectorType, double);
+  SITK_TRANSFORM_SET_MPF(Skew, typename TransformType::SkewVectorType, double);
+  SITK_TRANSFORM_SET_MPF_GetMatrix();
+
+  void 	(TransformType::*pfSetRotation1) (const typename TransformType::VersorType &) = &TransformType::SetRotation;
+  this->m_pfSetRotation1 = nsstd::bind(pfSetRotation1,t,nsstd::bind(&sitkSTLVectorToITKVersor<double, double>,nsstd::placeholders::_1));
+
+  typename TransformType::OutputVectorType (*pfSTLVectorToITK)(const std::vector<double> &) = &sitkSTLVectorToITK<typename TransformType::OutputVectorType, double>;
+  void 	(TransformType::*pfSetRotation2) (const typename TransformType::AxisType &, double) = &TransformType::SetRotation;
+  this->m_pfSetRotation2 = nsstd::bind(pfSetRotation2,t,nsstd::bind(pfSTLVectorToITK,nsstd::placeholders::_1),nsstd::placeholders::_2);
+
+  this->m_pfGetVersor  = nsstd::bind(&sitkITKVersorToSTL<double, double>,nsstd::bind(&TransformType::GetVersor,t));
+
+
+  // pre argument has no effect
+  this->m_pfTranslate = nsstd::bind(&TransformType::Translate,t,nsstd::bind(pfSTLVectorToITK,nsstd::placeholders::_1), false);
+}
+
+}
+}
diff --git a/Code/Common/src/sitkScaleTransform.cxx b/Code/Common/src/sitkScaleTransform.cxx
new file mode 100644
index 0000000..14e0c2d
--- /dev/null
+++ b/Code/Common/src/sitkScaleTransform.cxx
@@ -0,0 +1,132 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include "sitkScaleTransform.h"
+#include "sitkTransformHelper.hxx"
+#include "itkScaleTransform.h"
+
+namespace itk
+{
+namespace simple
+{
+
+ScaleTransform::ScaleTransform(unsigned int dimensions,
+                                           const std::vector<double> &scale)
+  : Transform(dimensions, sitkScale)
+
+{
+  Self::InternalInitialization(Self::GetITKBase());
+
+  this->SetScale(scale);
+}
+
+
+ScaleTransform::ScaleTransform( const Transform &arg )
+  : Transform(arg)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+
+ScaleTransform::ScaleTransform( const ScaleTransform &arg )
+  : Transform(arg)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+
+ScaleTransform &ScaleTransform::operator=( const ScaleTransform &arg )
+{
+  Superclass::operator=(arg);
+  return *this;
+}
+
+
+/** fixed parameter */
+ScaleTransform::Self &ScaleTransform::SetCenter(const std::vector<double> &params)
+{
+  this->MakeUnique();
+  this->m_pfSetCenter(params);
+  return *this;
+}
+
+std::vector<double> ScaleTransform::GetCenter( ) const
+{
+  return this->m_pfGetCenter();
+}
+
+ScaleTransform::Self &ScaleTransform::SetScale(const std::vector<double> &params)
+{
+  this->MakeUnique();
+  this->m_pfSetScale(params);
+  return *this;
+}
+
+std::vector<double> ScaleTransform::GetScale( ) const
+{
+  return this->m_pfGetScale();
+}
+
+std::vector<double> ScaleTransform::GetMatrix( ) const
+{
+  return this->m_pfGetMatrix();
+}
+
+void ScaleTransform::SetPimpleTransform( PimpleTransformBase *pimpleTransform )
+{
+  Superclass::SetPimpleTransform(pimpleTransform);
+  Self::InternalInitialization(this->GetITKBase());
+}
+
+void ScaleTransform::InternalInitialization(itk::TransformBase *transform)
+{
+
+  MyVisitor visitor;
+  visitor.transform = transform;
+  visitor.that = this;
+
+  typedef typelist::MakeTypeList<itk::ScaleTransform<double, 3>,
+                                 itk::ScaleTransform<double, 2> >::Type TransformTypeList;
+
+  typelist::Visit<TransformTypeList> callInternalInitialization;
+
+  this->m_pfSetCenter = SITK_NULLPTR;
+  this->m_pfGetCenter = SITK_NULLPTR;
+  this->m_pfSetScale = SITK_NULLPTR;
+  this->m_pfGetScale = SITK_NULLPTR;
+  this->m_pfGetMatrix = SITK_NULLPTR;
+
+  callInternalInitialization(visitor);
+
+  if ( this->m_pfSetCenter == SITK_NULLPTR )
+    {
+    sitkExceptionMacro("Transform is not of type " << this->GetName() << "!" );
+    }
+}
+
+
+template<class TransformType>
+void ScaleTransform::InternalInitialization(TransformType *t)
+{
+  SITK_TRANSFORM_SET_MPF(Center, typename TransformType::InputPointType, double);
+  SITK_TRANSFORM_SET_MPF(Scale, typename TransformType::ScaleType, double);
+  SITK_TRANSFORM_SET_MPF_GetMatrix();
+
+}
+
+}
+}
diff --git a/Code/Common/src/sitkScaleVersor3DTransform.cxx b/Code/Common/src/sitkScaleVersor3DTransform.cxx
new file mode 100644
index 0000000..2152e76
--- /dev/null
+++ b/Code/Common/src/sitkScaleVersor3DTransform.cxx
@@ -0,0 +1,244 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include "sitkScaleVersor3DTransform.h"
+#include "sitkPimpleTransform.hxx"
+#include "sitkTransformHelper.hxx"
+
+#include "itkScaleVersor3DTransform.h"
+
+namespace itk
+{
+namespace simple
+{
+
+namespace
+{
+
+template< typename T, typename TType>
+itk::Versor<T> sitkSTLVectorToITKVersor( const std::vector< TType > & in )
+{
+  typedef itk::Versor<T> itkVectorType;
+  if ( in.size() != 4 )
+    {
+    sitkExceptionMacro(<<"Unable to convert vector to ITK Versor type\n"
+                      << "Expected vector of length " <<  4
+                       << " but got " << in.size() << " elements." );
+    }
+  itkVectorType out;
+  out.Set(in[0],in[1],in[2],in[3]);
+  return out;
+}
+
+
+template< typename TType, typename T>
+std::vector<TType> sitkITKVersorToSTL( const itk::Versor<T> & in )
+{
+  std::vector<TType> out(4);
+  out[0] = in.GetX();
+  out[1] = in.GetY();
+  out[2] = in.GetZ();
+  out[3] = in.GetW();
+  return out;
+}
+
+
+}
+
+// construct identity
+ScaleVersor3DTransform::ScaleVersor3DTransform()
+  : Transform(new PimpleTransform<itk::ScaleVersor3DTransform<double> >() )
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+ScaleVersor3DTransform::ScaleVersor3DTransform( const ScaleVersor3DTransform &arg )
+  : Transform(arg)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+ScaleVersor3DTransform::ScaleVersor3DTransform( const Transform & arg )
+  : Transform(arg)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+ScaleVersor3DTransform::ScaleVersor3DTransform( const std::vector< double > &scale,
+                                                const std::vector< double > &versor,
+                                                const std::vector< double > &translation,
+                                                const std::vector< double> &fixedCenter )
+  : Transform(new PimpleTransform<itk::ScaleVersor3DTransform<double> >() )
+{
+  Self::InternalInitialization(Self::GetITKBase());
+
+  this->SetScale(scale);
+  this->SetCenter(fixedCenter);
+  this->SetRotation(versor);
+  this->SetTranslation(translation);
+}
+
+ScaleVersor3DTransform::ScaleVersor3DTransform( const std::vector< double > &scale,
+                                                const std::vector< double > &axis, double angle,
+                                                const std::vector< double > &translation,
+                                                const std::vector< double> &fixedCenter )
+  : Transform(new PimpleTransform<itk::ScaleVersor3DTransform<double> >() )
+{
+  Self::InternalInitialization(Self::GetITKBase());
+
+  this->SetScale(scale);
+  this->SetCenter(fixedCenter);
+  this->SetRotation(axis, angle);
+  this->SetTranslation(translation);
+}
+
+ScaleVersor3DTransform &ScaleVersor3DTransform::operator=( const ScaleVersor3DTransform &arg )
+{
+  Superclass::operator=(arg);
+  return *this;
+}
+
+
+/** fixed parameter */
+ScaleVersor3DTransform::Self &ScaleVersor3DTransform::SetCenter(const std::vector<double> &params)
+{
+  this->MakeUnique();
+  this->m_pfSetCenter(params);
+  return *this;
+}
+
+std::vector<double> ScaleVersor3DTransform::GetCenter( ) const
+{
+  return this->m_pfGetCenter();
+}
+
+
+ScaleVersor3DTransform::Self &ScaleVersor3DTransform::SetRotation(const std::vector<double> &versor)
+{
+  this->MakeUnique();
+  this->m_pfSetRotation1(versor);
+  return *this;
+}
+
+ScaleVersor3DTransform::Self &ScaleVersor3DTransform::SetRotation(const std::vector<double> &axis,  double angle)
+{
+  this->MakeUnique();
+  this->m_pfSetRotation2(axis, angle);
+  return *this;
+}
+
+std::vector<double>  ScaleVersor3DTransform::GetVersor() const
+{
+  return this->m_pfGetVersor();
+}
+
+ScaleVersor3DTransform::Self &ScaleVersor3DTransform::SetTranslation(const std::vector<double> &params)
+{
+  this->MakeUnique();
+  this->m_pfSetTranslation(params);
+  return *this;
+}
+
+std::vector<double> ScaleVersor3DTransform::GetTranslation( ) const
+{
+  return this->m_pfGetTranslation();
+}
+
+ScaleVersor3DTransform::Self &ScaleVersor3DTransform::Translate(const std::vector<double> &offset)
+{
+  this->MakeUnique();
+  this->m_pfTranslate(offset);
+  return *this;
+}
+
+ScaleVersor3DTransform::Self &ScaleVersor3DTransform::SetScale(const std::vector<double> &params)
+{
+  this->MakeUnique();
+  this->m_pfSetScale(params);
+  return *this;
+}
+
+std::vector<double> ScaleVersor3DTransform::GetScale( ) const
+{
+  return this->m_pfGetScale();
+}
+
+std::vector<double> ScaleVersor3DTransform::GetMatrix( ) const
+{
+  return this->m_pfGetMatrix();
+}
+
+void ScaleVersor3DTransform::SetPimpleTransform( PimpleTransformBase *pimpleTransform )
+{
+  Superclass::SetPimpleTransform(pimpleTransform);
+  Self::InternalInitialization(this->GetITKBase());
+}
+
+void ScaleVersor3DTransform::InternalInitialization(itk::TransformBase *transform)
+{
+
+  typedef itk::ScaleVersor3DTransform<double> TransformType;
+  TransformType *t = dynamic_cast<TransformType*>(transform);
+
+  // explicitly remove all function pointer with reference to prior transform
+  this->m_pfSetCenter = SITK_NULLPTR;
+  this->m_pfGetCenter = SITK_NULLPTR;
+  this->m_pfSetTranslation = SITK_NULLPTR;
+  this->m_pfGetTranslation = SITK_NULLPTR;
+  this->m_pfSetRotation1 = SITK_NULLPTR;
+  this->m_pfSetRotation2 = SITK_NULLPTR;
+  this->m_pfGetVersor = SITK_NULLPTR;
+  this->m_pfTranslate = SITK_NULLPTR;
+  this->m_pfGetMatrix = SITK_NULLPTR;
+
+  if (t && (typeid(*t)==typeid(TransformType)))
+    {
+    this->InternalInitialization(t);
+    return;
+    }
+  else
+    {
+    sitkExceptionMacro("Transform is not of type " << this->GetName() << "!" );
+    }
+}
+
+
+template<class TransformType>
+void ScaleVersor3DTransform::InternalInitialization(TransformType *t)
+{
+
+  SITK_TRANSFORM_SET_MPF(Center, typename TransformType::InputPointType, double);
+  SITK_TRANSFORM_SET_MPF(Translation, typename TransformType::OutputVectorType, double);
+  SITK_TRANSFORM_SET_MPF(Scale, typename TransformType::ScaleVectorType, double);
+  SITK_TRANSFORM_SET_MPF_GetMatrix();
+
+  void 	(TransformType::*pfSetRotation1) (const typename TransformType::VersorType &) = &TransformType::SetRotation;
+  this->m_pfSetRotation1 = nsstd::bind(pfSetRotation1,t,nsstd::bind(&sitkSTLVectorToITKVersor<double, double>,nsstd::placeholders::_1));
+
+  typename TransformType::OutputVectorType (*pfSTLVectorToITK)(const std::vector<double> &) = &sitkSTLVectorToITK<typename TransformType::OutputVectorType, double>;
+  void 	(TransformType::*pfSetRotation2) (const typename TransformType::AxisType &, double) = &TransformType::SetRotation;
+  this->m_pfSetRotation2 = nsstd::bind(pfSetRotation2,t,nsstd::bind(pfSTLVectorToITK,nsstd::placeholders::_1),nsstd::placeholders::_2);
+
+  this->m_pfGetVersor  = nsstd::bind(&sitkITKVersorToSTL<double, double>,nsstd::bind(&TransformType::GetVersor,t));
+
+
+  // pre argument has no effect
+  this->m_pfTranslate = nsstd::bind(&TransformType::Translate,t,nsstd::bind(pfSTLVectorToITK,nsstd::placeholders::_1), false);
+}
+
+}
+}
diff --git a/Code/Common/src/sitkSimilarity2DTransform.cxx b/Code/Common/src/sitkSimilarity2DTransform.cxx
new file mode 100644
index 0000000..d45c14f
--- /dev/null
+++ b/Code/Common/src/sitkSimilarity2DTransform.cxx
@@ -0,0 +1,185 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include "sitkSimilarity2DTransform.h"
+#include "sitkTransformHelper.hxx"
+
+#include "itkSimilarity2DTransform.h"
+
+namespace itk
+{
+namespace simple
+{
+
+// construct identity
+Similarity2DTransform::Similarity2DTransform()
+  : Transform(2,sitkSimilarity)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+Similarity2DTransform::Similarity2DTransform( double scaleFactor,
+                                              double angle,
+                                              const std::vector<double> &translation,
+                                              const std::vector<double> &fixedCenter )
+  : Transform(2,sitkSimilarity)
+
+{
+  Self::InternalInitialization(Self::GetITKBase());
+
+  this->SetCenter(fixedCenter);
+  this->SetAngle(angle);
+  this->SetTranslation(translation);
+  this->SetScale(scaleFactor);
+}
+
+Similarity2DTransform::Similarity2DTransform( const Transform &arg )
+  : Transform(arg)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+
+Similarity2DTransform::Similarity2DTransform( const Similarity2DTransform &arg )
+  : Transform(arg)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+
+Similarity2DTransform &Similarity2DTransform::operator=( const Similarity2DTransform &arg )
+{
+  Superclass::operator=(arg);
+  return *this;
+}
+
+
+/** fixed parameter */
+Similarity2DTransform::Self &Similarity2DTransform::SetCenter(const std::vector<double> &params)
+{
+  this->MakeUnique();
+  this->m_pfSetCenter(params);
+  return *this;
+}
+
+std::vector<double> Similarity2DTransform::GetCenter( ) const
+{
+  return this->m_pfGetCenter();
+}
+
+double Similarity2DTransform::GetAngle() const
+{
+  return this->m_pfGetAngle();
+}
+
+/** parameter */
+Similarity2DTransform::Self &Similarity2DTransform::SetAngle(double angle)
+{
+  this->MakeUnique();
+  this->m_pfSetAngle(angle);
+  return *this;
+}
+
+Similarity2DTransform::Self &Similarity2DTransform::SetTranslation(const std::vector<double> &params)
+{
+  this->MakeUnique();
+  this->m_pfSetTranslation(params);
+  return *this;
+}
+
+std::vector<double> Similarity2DTransform::GetTranslation( ) const
+{
+  return this->m_pfGetTranslation();
+}
+
+Similarity2DTransform::Self &Similarity2DTransform::SetScale(double scale)
+{
+  this->MakeUnique();
+  this->m_pfSetScale(scale);
+  return *this;
+}
+
+double Similarity2DTransform::GetScale() const
+{
+  return this->m_pfGetScale();
+}
+
+std::vector<double> Similarity2DTransform::GetMatrix( ) const
+{
+  return this->m_pfGetMatrix();
+}
+
+Similarity2DTransform::Self &Similarity2DTransform::SetMatrix(const std::vector<double> &params, double tolerance)
+{
+  this->MakeUnique();
+  this->m_pfSetMatrix(params,tolerance);
+  return *this;
+}
+
+void Similarity2DTransform::SetPimpleTransform( PimpleTransformBase *pimpleTransform )
+{
+  Superclass::SetPimpleTransform(pimpleTransform);
+  Self::InternalInitialization(this->GetITKBase());
+}
+
+void Similarity2DTransform::InternalInitialization(itk::TransformBase *transform)
+{
+
+  typedef itk::Similarity2DTransform<double> TransformType;
+  TransformType *t = dynamic_cast<TransformType*>(transform);
+
+  // explicitly remove all function pointer with reference to prior transform
+  this->m_pfSetCenter = SITK_NULLPTR;
+  this->m_pfGetCenter = SITK_NULLPTR;
+  this->m_pfSetTranslation = SITK_NULLPTR;
+  this->m_pfGetTranslation = SITK_NULLPTR;
+  this->m_pfSetAngle = SITK_NULLPTR;
+  this->m_pfGetAngle = SITK_NULLPTR;
+  this->m_pfSetScale = SITK_NULLPTR;
+  this->m_pfGetScale = SITK_NULLPTR;
+  this->m_pfGetMatrix = SITK_NULLPTR;
+  this->m_pfSetMatrix = SITK_NULLPTR;
+
+  if (t && (typeid(*t)==typeid(TransformType)))
+    {
+    this->InternalInitialization(t);
+    return;
+    }
+  else
+    {
+    sitkExceptionMacro("Transform is not of type " << this->GetName() << "!" );
+    }
+}
+
+
+template<class TransformType>
+void Similarity2DTransform::InternalInitialization(TransformType *t)
+{
+  SITK_TRANSFORM_SET_MPF(Center, typename TransformType::InputPointType, double);
+  SITK_TRANSFORM_SET_MPF(Translation, typename TransformType::OutputVectorType, double);
+  SITK_TRANSFORM_SET_MPF_GetMatrix();
+  SITK_TRANSFORM_SET_MPF_SetMatrix();
+
+  this->m_pfSetAngle = nsstd::bind(&TransformType::SetAngle,t,nsstd::placeholders::_1);
+  this->m_pfGetAngle = nsstd::bind(&TransformType::GetAngle,t);
+
+  this->m_pfSetScale = nsstd::bind(&TransformType::SetScale,t,nsstd::placeholders::_1);
+  this->m_pfGetScale = nsstd::bind(&TransformType::GetScale,t);
+}
+
+}
+}
diff --git a/Code/Common/src/sitkSimilarity3DTransform.cxx b/Code/Common/src/sitkSimilarity3DTransform.cxx
new file mode 100644
index 0000000..f8d5d2a
--- /dev/null
+++ b/Code/Common/src/sitkSimilarity3DTransform.cxx
@@ -0,0 +1,255 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include "sitkSimilarity3DTransform.h"
+#include "sitkTransformHelper.hxx"
+
+#include "itkSimilarity3DTransform.h"
+
+namespace itk
+{
+namespace simple
+{
+
+namespace
+{
+
+template< typename T, typename TType>
+itk::Versor<T> sitkSTLVectorToITKVersor( const std::vector< TType > & in )
+{
+  typedef itk::Versor<T> itkVectorType;
+  if ( in.size() != 4 )
+    {
+    sitkExceptionMacro(<<"Unable to convert vector to ITK Versor type\n"
+                      << "Expected vector of length " <<  4
+                       << " but got " << in.size() << " elements." );
+    }
+  itkVectorType out;
+  out.Set(in[0],in[1],in[2],in[3]);
+  return out;
+}
+
+
+template< typename TType, typename T>
+std::vector<TType> sitkITKVersorToSTL( const itk::Versor<T> & in )
+{
+  std::vector<TType> out(4);
+  out[0] = in.GetX();
+  out[1] = in.GetY();
+  out[2] = in.GetZ();
+  out[3] = in.GetW();
+  return out;
+}
+
+
+}
+
+// construct identity
+Similarity3DTransform::Similarity3DTransform()
+  : Transform(3, sitkSimilarity)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+Similarity3DTransform::Similarity3DTransform( const Similarity3DTransform &arg )
+  : Transform(arg)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+
+Similarity3DTransform::Similarity3DTransform( const Transform &arg )
+  : Transform(arg)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+Similarity3DTransform::Similarity3DTransform( double scaleFactor, const std::vector< double > &versor,
+                                              const std::vector< double > &translation,
+                                              const std::vector< double > &fixedCenter )
+  : Transform(3, sitkSimilarity)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+
+  this->SetScale(scaleFactor);
+  this->SetCenter(fixedCenter);
+  this->SetRotation(versor);
+  this->SetTranslation(translation);
+}
+
+Similarity3DTransform::Similarity3DTransform( double scaleFactor, const std::vector< double > &axis,
+                                              double angle,
+                                              const std::vector< double > &translation,
+                                              const std::vector< double > &fixedCenter )
+  : Transform(3, sitkSimilarity)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+
+  this->SetScale(scaleFactor);
+  this->SetCenter(fixedCenter);
+  this->SetRotation(axis, angle);
+  this->SetTranslation(translation);
+}
+
+Similarity3DTransform &Similarity3DTransform::operator=( const Similarity3DTransform &arg )
+{
+  Superclass::operator=(arg);
+  return *this;
+}
+
+
+/** fixed parameter */
+Similarity3DTransform::Self &Similarity3DTransform::SetCenter(const std::vector<double> &params)
+{
+  this->MakeUnique();
+  this->m_pfSetCenter(params);
+  return *this;
+}
+
+std::vector<double> Similarity3DTransform::GetCenter( ) const
+{
+  return this->m_pfGetCenter();
+}
+
+
+Similarity3DTransform::Self &Similarity3DTransform::SetRotation(const std::vector<double> &versor)
+{
+  this->MakeUnique();
+  this->m_pfSetRotation1(versor);
+  return *this;
+}
+
+Similarity3DTransform::Self &Similarity3DTransform::SetRotation(const std::vector<double> &axis,  double angle)
+{
+  this->MakeUnique();
+  this->m_pfSetRotation2(axis, angle);
+  return *this;
+}
+
+std::vector<double>  Similarity3DTransform::GetVersor() const
+{
+  return this->m_pfGetVersor();
+}
+
+Similarity3DTransform::Self &Similarity3DTransform::SetTranslation(const std::vector<double> &params)
+{
+  this->MakeUnique();
+  this->m_pfSetTranslation(params);
+  return *this;
+}
+
+std::vector<double> Similarity3DTransform::GetTranslation( ) const
+{
+  return this->m_pfGetTranslation();
+}
+
+Similarity3DTransform::Self &Similarity3DTransform::SetScale(double scale)
+{
+  this->MakeUnique();
+  this->m_pfSetScale(scale);
+  return *this;
+}
+
+double Similarity3DTransform::GetScale() const
+{
+  return this->m_pfGetScale();
+}
+
+Similarity3DTransform::Self &Similarity3DTransform::Translate(const std::vector<double> &offset)
+{
+  this->MakeUnique();
+  this->m_pfTranslate(offset);
+  return *this;
+}
+
+std::vector<double> Similarity3DTransform::GetMatrix( ) const
+{
+  return this->m_pfGetMatrix();
+}
+
+Similarity3DTransform::Self &Similarity3DTransform::SetMatrix(const std::vector<double> &params, double tolerance)
+{
+  this->MakeUnique();
+  this->m_pfSetMatrix(params,tolerance);
+  return *this;
+}
+
+void Similarity3DTransform::SetPimpleTransform( PimpleTransformBase *pimpleTransform )
+{
+  Superclass::SetPimpleTransform(pimpleTransform);
+  Self::InternalInitialization(this->GetITKBase());
+}
+
+void Similarity3DTransform::InternalInitialization(itk::TransformBase *transform)
+{
+
+  typedef itk::Similarity3DTransform<double> TransformType;
+  TransformType *t = dynamic_cast<TransformType*>(transform);
+
+  // explicitly remove all function pointer with reference to prior transform
+  this->m_pfSetCenter = SITK_NULLPTR;
+  this->m_pfGetCenter = SITK_NULLPTR;
+  this->m_pfSetTranslation = SITK_NULLPTR;
+  this->m_pfGetTranslation = SITK_NULLPTR;
+  this->m_pfSetRotation1 = SITK_NULLPTR;
+  this->m_pfSetRotation2 = SITK_NULLPTR;
+  this->m_pfGetVersor = SITK_NULLPTR;
+  this->m_pfSetScale = SITK_NULLPTR;
+  this->m_pfGetScale = SITK_NULLPTR;
+  this->m_pfTranslate = SITK_NULLPTR;
+  this->m_pfGetMatrix = SITK_NULLPTR;
+  this->m_pfSetMatrix = SITK_NULLPTR;
+
+  if (t && (typeid(*t)==typeid(TransformType)))
+    {
+    this->InternalInitialization(t);
+    return;
+    }
+  else
+    {
+    sitkExceptionMacro("Transform is not of type " << this->GetName() << "!" );
+    }
+}
+
+
+template<class TransformType>
+void Similarity3DTransform::InternalInitialization(TransformType *t)
+{
+  SITK_TRANSFORM_SET_MPF(Center, typename TransformType::InputPointType, double);
+  SITK_TRANSFORM_SET_MPF(Translation, typename TransformType::OutputVectorType, double);
+  SITK_TRANSFORM_SET_MPF_GetMatrix();
+  SITK_TRANSFORM_SET_MPF_SetMatrix();
+
+  void 	(TransformType::*pfSetRotation1) (const typename TransformType::VersorType &) = &TransformType::SetRotation;
+  this->m_pfSetRotation1 = nsstd::bind(pfSetRotation1,t,nsstd::bind(&sitkSTLVectorToITKVersor<double, double>,nsstd::placeholders::_1));
+
+  typename TransformType::OutputVectorType (*pfSTLVectorToITK)(const std::vector<double> &) = &sitkSTLVectorToITK<typename TransformType::OutputVectorType, double>;
+  void 	(TransformType::*pfSetRotation2) (const typename TransformType::AxisType &, double) = &TransformType::SetRotation;
+  this->m_pfSetRotation2 = nsstd::bind(pfSetRotation2,t,nsstd::bind(pfSTLVectorToITK,nsstd::placeholders::_1),nsstd::placeholders::_2);
+
+  this->m_pfGetVersor  = nsstd::bind(&sitkITKVersorToSTL<double, double>,nsstd::bind(&TransformType::GetVersor,t));
+
+  this->m_pfSetScale = nsstd::bind(&TransformType::SetScale,t,nsstd::placeholders::_1);
+  this->m_pfGetScale = nsstd::bind(&TransformType::GetScale,t);
+
+  // pre argument has no effect
+  this->m_pfTranslate = nsstd::bind(&TransformType::Translate,t,nsstd::bind(pfSTLVectorToITK,nsstd::placeholders::_1), false);
+
+}
+
+}
+}
diff --git a/Code/Common/src/sitkTransform.cxx b/Code/Common/src/sitkTransform.cxx
new file mode 100644
index 0000000..960fba4
--- /dev/null
+++ b/Code/Common/src/sitkTransform.cxx
@@ -0,0 +1,784 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+
+#include "sitkPimpleTransform.hxx"
+
+#include "sitkTransform.h"
+#include "sitkTemplateFunctions.h"
+#include "sitkMemberFunctionFactory.h"
+#include "sitkImageConvert.h"
+
+#include "itkTransformBase.h"
+#include "itkTransformFactory.h"
+
+#include "itkIdentityTransform.h"
+#include "itkTranslationTransform.h"
+#include "itkScaleTransform.h"
+#include "itkScaleLogarithmicTransform.h"
+#include "itkSimilarity2DTransform.h"
+#include "itkSimilarity3DTransform.h"
+#include "itkEuler2DTransform.h"
+#include "itkEuler3DTransform.h"
+#include "itkQuaternionRigidTransform.h"
+#include "itkVersorTransform.h"
+#include "itkVersorRigid3DTransform.h"
+#include "itkScaleSkewVersor3DTransform.h"
+#include "itkScaleVersor3DTransform.h"
+#include "itkAffineTransform.h"
+#include "itkCompositeTransform.h"
+
+#include "itkDisplacementFieldTransform.h"
+#include "itkBSplineTransform.h"
+
+#include "itkTransformFileReader.h"
+#include "itkTransformFileWriter.h"
+
+#include "itkVectorImage.h"
+#include "itkCommand.h"
+
+#include <memory>
+
+#include "nsstd/type_traits.h"
+
+namespace
+{
+
+//
+// Transform trait class to map to correct special transform type.
+template<class T, unsigned int ImageDimension>
+class TransformTraits
+{
+public:
+  // undefined types for non-2D/3D
+};
+
+template<class T>
+class TransformTraits<T,2>
+{
+public:
+  typedef itk::Euler2DTransform<T>  EulerTransformType;
+  typedef itk::Similarity2DTransform<T>  SimilarityTransformType;
+};
+
+template<class T>
+class TransformTraits<T,3>
+{
+public:
+  typedef itk::Euler3DTransform<T>  EulerTransformType;
+  typedef itk::Similarity3DTransform<T>  SimilarityTransformType;
+};
+
+
+}
+
+namespace itk
+{
+namespace simple
+{
+
+namespace
+{
+template<unsigned int Dimension>
+bool RegisterMoreTransforms(void)
+{
+  typedef itk::MatrixOffsetTransformBase<double, Dimension, Dimension> MatrixOffsetTransformType;
+  itk::TransformFactory<MatrixOffsetTransformType>::RegisterTransform();
+
+  // Only BSpline transforms of order 3 are registered in ITK
+  typedef itk::BSplineTransform<double, Dimension, 0> BSplineTransformO0Type;
+  itk::TransformFactory<BSplineTransformO0Type>::RegisterTransform();
+  typedef itk::BSplineTransform<double, Dimension, 1> BSplineTransformO1Type;
+  itk::TransformFactory<BSplineTransformO1Type>::RegisterTransform();
+  typedef itk::BSplineTransform<double, Dimension, 2> BSplineTransformO2Type;
+  itk::TransformFactory<BSplineTransformO2Type>::RegisterTransform();
+
+  return true;
+}
+
+bool initialized = RegisterMoreTransforms<2>() && RegisterMoreTransforms<3>();
+
+
+/** \brief An ITK Command class to hold a object until destruction
+ *
+ * This command is to add resource management, by utilizing
+ * the lifetime of a Command added to an object is about the same as
+ * that managed object. So this command holds onto a resource or object for
+ * lifetime of itself. By adding as a command to an ITK object it will
+ * be released on destruction of the ITK object ( subject to the
+ * reference counting on the Command ).
+ */
+template< class T >
+class HolderCommand
+  : public itk::Command
+{
+public:
+  typedef T ObjectType;
+
+  typedef  HolderCommand Self;
+  typedef  itk::Command Superclass;
+
+  typedef itk::SmartPointer<Self>        Pointer;
+  typedef itk::SmartPointer<const Self>  ConstPointer;
+
+  itkNewMacro( HolderCommand );
+
+  void Set(const ObjectType object) { this->m_Object = object; }
+  ObjectType &Get() {return this->m_Object;}
+  const ObjectType &Get() const {return this->m_Object;}
+
+  void Execute(itk::Object*, const itk::EventObject&) {}
+  void Execute(const itk::Object*, const itk::EventObject&) {}
+
+protected:
+  HolderCommand() {};
+  ~HolderCommand() {};
+
+private:
+  void operator=(const HolderCommand&); // not implemented
+  HolderCommand(const HolderCommand&); // not implemented
+
+  ObjectType m_Object;
+
+};
+
+template< class T >
+class HolderCommand<T*>
+  : public itk::Command
+{
+public:
+  typedef T ObjectType;
+
+  typedef  HolderCommand Self;
+  typedef  itk::Command Superclass;
+
+  typedef itk::SmartPointer<Self>        Pointer;
+  typedef itk::SmartPointer<const Self>  ConstPointer;
+
+  itkNewMacro( HolderCommand );
+
+  void Set(ObjectType *object) { this->m_Object = object; }
+  ObjectType *Get() {return this->m_Object;}
+  const ObjectType *Get() const {return this->m_Object;}
+
+  void Execute(itk::Object*, const itk::EventObject&) SITK_OVERRIDE {}
+  void Execute(const itk::Object*, const itk::EventObject&) SITK_OVERRIDE {}
+
+protected:
+  HolderCommand() : m_Object(NULL) {};
+  ~HolderCommand() { delete m_Object;}
+
+private:
+  void operator=(const HolderCommand&); // not implemented
+  HolderCommand(const HolderCommand&); // not implemented
+
+  ObjectType* m_Object;
+
+};
+
+}
+
+
+//
+// class Transform
+//
+
+Transform::Transform( )
+  : m_PimpleTransform( NULL )
+  {
+    m_PimpleTransform = new PimpleTransform<itk::IdentityTransform< double, 3 > >();
+  }
+
+Transform::Transform( itk::TransformBase *transformBase )
+  : m_PimpleTransform( NULL )
+{
+  this->InternalInitialization( transformBase );
+}
+
+  Transform::Transform( unsigned int dimensions, TransformEnum type)
+    : m_PimpleTransform( NULL )
+  {
+    if ( dimensions == 2 )
+      {
+      this->InternalInitialization<2>(type);
+      }
+    else if ( dimensions == 3 )
+      {
+      this->InternalInitialization<3>(type);
+      }
+    else
+      {
+      sitkExceptionMacro("Invalid dimension for transform");
+      }
+  }
+
+
+  Transform::~Transform()
+  {
+    delete m_PimpleTransform;
+    this->m_PimpleTransform = NULL;
+  }
+
+  Transform::Transform( const Transform &txf )
+    : m_PimpleTransform( NULL )
+  {
+    Self::SetPimpleTransform( txf.m_PimpleTransform->ShallowCopy() );
+  }
+
+  Transform& Transform::operator=( const Transform & txf )
+  {
+    assert( m_PimpleTransform );
+    PimpleTransformBase *temp = txf.m_PimpleTransform->ShallowCopy();
+    this->SetPimpleTransform( temp );
+    return *this;
+  }
+
+
+Transform::Transform( Image &image, TransformEnum txType )
+    : m_PimpleTransform( NULL )
+  {
+
+
+    if (txType == sitkDisplacementField)
+      {
+      const PixelIDValueEnum type = image.GetPixelID();
+      const unsigned int dimension = image.GetDimension();
+
+      // The pixel IDs supported
+      typedef typelist::MakeTypeList<VectorPixelID<double> >::Type PixelIDTypeList;
+
+      typedef void (Self::*MemberFunctionType)( Image & );
+
+      typedef DisplacementInitializationMemberFunctionAddressor<MemberFunctionType> Addressor;
+
+      detail::MemberFunctionFactory<MemberFunctionType> initializationMemberFactory(this);
+      initializationMemberFactory.RegisterMemberFunctions< PixelIDTypeList, 3,  Addressor > ();
+      initializationMemberFactory.RegisterMemberFunctions< PixelIDTypeList, 2,  Addressor > ();
+
+
+      initializationMemberFactory.GetMemberFunction( type, dimension )( image );
+      }
+    else if ( txType == sitkBSplineTransform )
+      {
+      const unsigned int dimension = image.GetDimension();
+
+      switch (dimension)
+        {
+        case 2:
+          this->InternalBSplineInitialization<2>(image);
+          break;
+        case 3:
+          this->InternalBSplineInitialization<3>(image);
+          break;
+        default:
+          sitkExceptionMacro("LogicError: Unexplected case!");
+        }
+      }
+    else
+      {
+      sitkExceptionMacro("Expected sitkDisplacementField or sitkBSplineTransform for the Transformation type!")
+      }
+
+
+  }
+
+template< unsigned int ImageDimension>
+void Transform::InternalBSplineInitialization( Image & inImage )
+{
+  typedef itk::ImageBase<ImageDimension> ImageType;
+  typename ImageType::Pointer image = dynamic_cast<ImageType *>( inImage.GetITKBase() );
+
+  if ( !image )
+    {
+    sitkExceptionMacro( "Unexpected template dispatch error!" );
+    }
+
+  typedef itk::BSplineTransform<double,ImageDimension,3> BSplineTransformType;
+  typename BSplineTransformType::Pointer itkBSpline = BSplineTransformType::New();
+
+  itkBSpline->SetTransformDomainOrigin( image->GetOrigin() );
+  itkBSpline->SetTransformDomainDirection( image->GetDirection() );
+
+  const typename BSplineTransformType::MeshSizeType  meshSize( image->GetLargestPossibleRegion().GetSize() );
+
+  typename BSplineTransformType::PhysicalDimensionsType fixedPhysicalDimensions;
+
+  for( unsigned int i=0; i< ImageDimension; i++ )
+    {
+    fixedPhysicalDimensions[i] = image->GetSpacing()[i] * static_cast<double>( meshSize[i] - 1 );
+    }
+
+  itkBSpline->SetTransformDomainMeshSize( meshSize );
+  itkBSpline->SetTransformDomainPhysicalDimensions( fixedPhysicalDimensions );
+
+
+
+  typedef typename BSplineTransformType::ParametersType ParametersType;;
+
+  typename HolderCommand<ParametersType *>::Pointer holder = HolderCommand<ParametersType *>::New();
+  itkBSpline->AddObserver( itk::DeleteEvent(), holder);
+  holder->Set( new ParametersType( itkBSpline->GetNumberOfParameters() ) );
+
+  itkBSpline->SetParameters( *holder->Get() );
+  itkBSpline->SetIdentity();
+
+
+  Self::SetPimpleTransform( new PimpleTransform< BSplineTransformType >( itkBSpline.GetPointer() ) );
+}
+
+  template< typename TDisplacementType >
+  void Transform::InternalDisplacementInitialization( Image & inImage )
+  {
+    typedef TDisplacementType VectorImageType;
+
+    typedef typename VectorImageType::InternalPixelType ComponentType;
+    const unsigned int ImageDimension = VectorImageType::ImageDimension;
+
+    typedef itk::Image< itk::Vector<ComponentType, ImageDimension>, ImageDimension > ITKDisplacementType;
+    typedef itk::DisplacementFieldTransform< ComponentType, ImageDimension > DisplacementTransformType;
+
+    typename VectorImageType::Pointer image = dynamic_cast < VectorImageType* > ( inImage.GetITKBase() );
+
+    if ( image.IsNull() )
+      {
+      sitkExceptionMacro( "Unexpected template dispatch error!" );
+      }
+
+    typename ITKDisplacementType::Pointer itkDisplacement = GetImageFromVectorImage(image.GetPointer(), true );
+    inImage = Image();
+
+    Self::SetPimpleTransform( new PimpleTransform< DisplacementTransformType >(itkDisplacement.GetPointer()) );
+  }
+
+
+
+void Transform::MakeUnique( void )
+{
+  if ( this->m_PimpleTransform->GetReferenceCount() > 1 )
+    {
+    PimpleTransformBase *temp = this->m_PimpleTransform->DeepCopy();
+    this->SetPimpleTransform( temp );
+    }
+}
+
+Transform::Transform( PimpleTransformBase *pimpleTransform )
+    : m_PimpleTransform( pimpleTransform )
+  {
+    if ( pimpleTransform == NULL )
+      {
+      sitkExceptionMacro("Invalid NULL PimpleTransform!");
+      }
+  }
+
+
+void Transform::SetPimpleTransform( PimpleTransformBase *pimpleTransform )
+{
+  delete this->m_PimpleTransform;
+  this->m_PimpleTransform = pimpleTransform;
+}
+
+
+  template< unsigned int VDimension>
+  void Transform::InternalInitialization(  TransformEnum type, itk::TransformBase *base )
+  {
+    PimpleTransformBase* temp;
+    switch( type )
+      {
+
+      case sitkTranslation:
+        temp = new PimpleTransform<itk::TranslationTransform< double, VDimension > >();
+        break;
+      case sitkScale:
+        temp = new PimpleTransform<itk::ScaleTransform< double, VDimension > >();
+        break;
+      case sitkScaleLogarithmic:
+        temp = new PimpleTransform<itk::ScaleLogarithmicTransform< double, VDimension > >();
+        break;
+      case sitkEuler:
+        temp = new PimpleTransform<typename TransformTraits<double,VDimension>::EulerTransformType>();
+        break;
+      case sitkSimilarity:
+        temp = new PimpleTransform<typename TransformTraits<double,VDimension>::SimilarityTransformType>();
+        break;
+      case sitkQuaternionRigid:
+        if( VDimension != 3)
+          {
+          sitkExceptionMacro( "A sitkQuaternionRigid Transform only works for 3D!");
+          }
+
+        temp = new PimpleTransform<itk::QuaternionRigidTransform< double > >();
+        break;
+      case sitkVersor:
+        if( VDimension != 3)
+          {
+          sitkExceptionMacro( "A sitkVersor Transform only works for 3D!");
+          }
+
+        temp = new PimpleTransform<itk::VersorTransform< double > >();
+        break;
+      case sitkVersorRigid:
+        if( VDimension != 3)
+          {
+          sitkExceptionMacro( "A sitkVersorRigid Transform only works for 3D!");
+          }
+
+        temp = new PimpleTransform<itk::VersorRigid3DTransform< double > >();
+        break;
+      case sitkScaleSkewVersor:
+        if( VDimension != 3)
+          {
+          sitkExceptionMacro( "A sitkScaleSkewVersor Transform only works for 3D!");
+          }
+
+        temp = new PimpleTransform<itk::ScaleSkewVersor3DTransform< double > >();
+        break;
+      case sitkAffine:
+        temp = new PimpleTransform<itk::AffineTransform< double, VDimension > >();
+        break;
+      case sitkComposite:
+        {
+        typename itk::CompositeTransform<double, VDimension>::Pointer compositeTransform;
+
+        // if null it'll be converted, no null check needed
+        compositeTransform = dynamic_cast<itk::CompositeTransform<double, VDimension>*>( base );
+
+        if ( !compositeTransform )
+          {
+          compositeTransform = itk::CompositeTransform<double, VDimension>::New();
+
+          // base argument was non-composite place into composite
+          if ( base )
+            {
+            typedef itk::Transform<double,  VDimension,  VDimension> TransformType;
+            TransformType* itktx = dynamic_cast<TransformType*>(base);
+
+            compositeTransform->ClearTransformQueue();
+            compositeTransform->AddTransform( itktx );
+            }
+          }
+
+
+        if ( compositeTransform->IsTransformQueueEmpty() )
+          {
+
+          // Load an identity transform in case no transforms are loaded.
+          typedef itk::IdentityTransform<double, VDimension> IdentityTransformType;
+          typename IdentityTransformType::Pointer identityTransform = IdentityTransformType::New();
+
+          compositeTransform->AddTransform( identityTransform );
+          }
+
+        compositeTransform->SetAllTransformsToOptimizeOff();
+        compositeTransform->SetOnlyMostRecentTransformToOptimizeOn();
+
+        temp = new PimpleTransform<itk::CompositeTransform<double, VDimension> >( compositeTransform );
+
+        }
+        break;
+      case sitkDisplacementField:
+      case sitkBSplineTransform:
+        // todo print transform type..
+        sitkExceptionMacro("Incorrect constructor for transform type.");
+      case sitkIdentity:
+      default:
+        temp = new PimpleTransform<itk::IdentityTransform< double, VDimension > >();
+
+      }
+    Self::SetPimpleTransform(temp);
+  }
+
+  template void SITKCommon_EXPORT Transform::InternalInitialization<2>( TransformEnum, itk::TransformBase * );
+  template void SITKCommon_EXPORT Transform::InternalInitialization<3>( TransformEnum, itk::TransformBase * );
+
+  itk::TransformBase* Transform::GetITKBase ( void )
+  {
+    assert( m_PimpleTransform );
+    return this->m_PimpleTransform->GetTransformBase();
+  }
+
+  const itk::TransformBase* Transform::GetITKBase ( void ) const
+  {
+    assert( m_PimpleTransform );
+    return this->m_PimpleTransform->GetTransformBase();
+  }
+
+  unsigned int  Transform::GetDimension( void ) const
+  {
+    assert( m_PimpleTransform );
+    return this->m_PimpleTransform->GetInputDimension();
+  }
+
+  void Transform::SetParameters ( const std::vector<double>& parameters )
+  {
+    assert( m_PimpleTransform );
+    this->MakeUnique();
+    this->m_PimpleTransform->SetParameters( parameters );
+  }
+
+  std::vector<double> Transform::GetParameters( void ) const
+  {
+    assert( m_PimpleTransform );
+    return this->m_PimpleTransform->GetParameters();
+  }
+
+  void Transform::SetFixedParameters ( const std::vector<double>& parameters )
+  {
+    assert( m_PimpleTransform );
+    this->MakeUnique();
+    this->m_PimpleTransform->SetFixedParameters( parameters );
+  }
+
+  std::vector<double> Transform::GetFixedParameters( void ) const
+  {
+    assert( m_PimpleTransform );
+    return this->m_PimpleTransform->GetFixedParameters();
+  }
+
+  Transform &Transform::AddTransform( Transform t )
+  {
+    assert( m_PimpleTransform );
+    this->MakeUnique();
+    // this returns a pointer which may be the same or a new object
+    PimpleTransformBase *temp = this->m_PimpleTransform->AddTransform( t );
+    if ( temp != this->m_PimpleTransform )
+      {
+      this->SetPimpleTransform(temp);
+      }
+    return *this;
+  }
+
+  std::vector< double > Transform::TransformPoint( const std::vector< double > &point ) const
+  {
+    assert( m_PimpleTransform );
+    return this->m_PimpleTransform->TransformPoint( point );
+  }
+
+
+  bool Transform::IsLinear() const
+  {
+    assert( m_PimpleTransform );
+    return this->m_PimpleTransform->IsLinear();
+  }
+
+  void Transform::SetIdentity()
+  {
+    assert( m_PimpleTransform );
+    this->MakeUnique();
+    return this->m_PimpleTransform->SetIdentity();
+  }
+
+  bool Transform::SetInverse()
+  {
+    assert( m_PimpleTransform );
+    nsstd::auto_ptr<PimpleTransformBase> temp;
+    {
+    // See if a new pimple transform can be created
+    PimpleTransformBase *p = NULL;
+    if (!this->m_PimpleTransform->GetInverse(p))
+      {
+      return false;
+      }
+    temp.reset(p);
+    }
+    // take ownership of the new pimple transform
+    this->SetPimpleTransform( temp.release() );
+    return true;
+  }
+
+  Transform Transform::GetInverse() const
+  {
+    // create a shallow copy
+    Transform tx(*this);
+    if (!tx.SetInverse())
+      {
+      sitkExceptionMacro("Unable to create inverse!");
+      }
+    return tx;
+  }
+
+  std::string Transform::ToString( void ) const
+  {
+    assert( m_PimpleTransform );
+
+    // mark as used
+    static_cast<void>( itk::simple::initialized );
+
+    return std::string("itk::simple::")+this->GetName() + '\n'+this->m_PimpleTransform->ToString();
+  }
+
+  std::string Transform::GetName( void ) const
+  {
+    return "Transform";
+  }
+
+
+void Transform::InternalInitialization(itk::TransformBase *transform)
+{
+
+  TransformTryCastVisitor visitor;
+  visitor.transform = transform;
+  visitor.that = this;
+
+  // The following list must have the children before their parents to
+  // cast to the most derived classes
+  typedef typelist::MakeTypeList<itk::IdentityTransform<double, 2>,
+                                 itk::IdentityTransform<double, 3>,
+                                 itk::TranslationTransform<double, 2>,
+                                 itk::TranslationTransform<double, 3>,
+
+                                 itk::ScaleLogarithmicTransform< double, 2 >,
+                                 itk::ScaleLogarithmicTransform< double, 3 >,
+                                 itk::ScaleTransform< double, 2>,
+                                 itk::ScaleTransform< double, 3>,
+
+                                 TransformTraits< double, 2>::EulerTransformType,
+
+                                 TransformTraits< double, 3>::EulerTransformType,
+
+                                 TransformTraits< double, 2>::SimilarityTransformType,
+
+                                 TransformTraits< double, 3>::SimilarityTransformType,
+                                 itk::ScaleSkewVersor3DTransform< double >,
+                                 itk::ScaleVersor3DTransform< double >,
+                                 itk::VersorRigid3DTransform< double >,
+                                 itk::VersorTransform< double >,
+
+                                 itk::QuaternionRigidTransform< double >,
+
+                                 itk::AffineTransform<double,3>,
+                                 itk::AffineTransform<double,2>,
+
+                                 itk::DisplacementFieldTransform<double, 3>,
+                                 itk::DisplacementFieldTransform<double, 2>,
+
+                                 itk::BSplineTransform<double, 3, 0>,
+                                 itk::BSplineTransform<double, 2, 0>,
+                                 itk::BSplineTransform<double, 3, 1>,
+                                 itk::BSplineTransform<double, 2, 1>,
+                                 itk::BSplineTransform<double, 3, 2>,
+                                 itk::BSplineTransform<double, 2, 2>,
+                                 itk::BSplineTransform<double, 3, 3>,
+                                 itk::BSplineTransform<double, 2, 3>
+                                 >::Type TransformTypeList;
+
+  typelist::Visit<TransformTypeList> callInternalInitialization;
+
+  callInternalInitialization(visitor);
+
+  // The transform didn't match a known type, place it into a Composite.
+  if ( !m_PimpleTransform )
+    {
+    if ( transform->GetInputSpaceDimension() == 2 &&
+         transform->GetInputSpaceDimension() == 2 )
+      {
+      this->InternalInitialization<2>( sitkComposite, transform );
+      }
+    else if ( transform->GetInputSpaceDimension() == 3 &&
+              transform->GetInputSpaceDimension() == 3 )
+      {
+      this->InternalInitialization<3>( sitkComposite, transform );
+      }
+    else
+      {
+      sitkExceptionMacro( "Unable to create transform with InputSpaceDimension: " <<  transform->GetInputSpaceDimension()
+                        << " and OutputSpaceDimension: " << transform->GetOutputSpaceDimension() << ". "
+                        << "Transform of type " << transform->GetNameOfClass() << "is not supported." );
+      }
+    }
+}
+
+
+template<class TransformType>
+void Transform::InternalInitialization(TransformType *t)
+{
+  PimpleTransformBase* temp = new PimpleTransform<TransformType>(t);
+  Self::SetPimpleTransform(temp);
+}
+
+  Transform ReadTransform( const std::string &filename )
+  {
+    TransformFileReader::Pointer reader = TransformFileReader::New();
+    reader->SetFileName(filename.c_str() );
+    reader->Update();
+
+    itk::TransformFileReader::TransformListType *list = reader->GetTransformList();
+
+    if ( list->empty() )
+      {
+      sitkExceptionMacro( "Read transform file: \"" << filename << "\", but there appears to be not transform in the file!" );
+      }
+
+    if( list->size() != 1 )
+      {
+      std::cerr << "Warning: There is more than one transform in the file! Only using the first transform.\n";
+      }
+
+    if( list->front()->GetInputSpaceDimension() == 3
+        && list->front()->GetOutputSpaceDimension() == 3 )
+      {
+      typedef itk::Transform<double, 3, 3> TransformType3D;
+      TransformType3D* itktx3d = dynamic_cast<TransformType3D*>(list->front().GetPointer());
+      if (!itktx3d)
+        {
+        sitkExceptionMacro( "Unexpected type conversion error for 3D Transform!");
+        }
+      return Transform(itktx3d);
+
+      }
+
+
+
+    if( list->front()->GetInputSpaceDimension() == 2
+        && list->front()->GetOutputSpaceDimension() == 2)
+      {
+
+      typedef itk::Transform<double, 2, 2> TransformType2D;
+      TransformType2D* itktx2d = dynamic_cast<TransformType2D*>(list->front().GetPointer());
+      if (!itktx2d)
+        {
+        sitkExceptionMacro( "Unexpected type conversion error for 2D Transform!");
+        }
+      return Transform(itktx2d);
+
+
+      }
+
+
+    sitkExceptionMacro( "Unable to transform with InputSpaceDimension: " <<  list->front()->GetInputSpaceDimension()
+                        << " and OutputSpaceDimension: " << list->front()->GetOutputSpaceDimension() << ". "
+                        << "Transform of type " << list->front()->GetNameOfClass() << "is not supported." );
+
+  }
+
+  void Transform::WriteTransform( const std::string &filename ) const
+  {
+    itk::simple::WriteTransform( *this, filename );
+  }
+
+  // write
+  void WriteTransform( const Transform &transform, const std::string &filename)
+  {
+    itk::TransformFileWriter::Pointer writer = itk::TransformFileWriter::New();
+    writer->SetFileName(filename.c_str());
+    writer->SetInput( transform.GetITKBase() );
+    writer->Update();
+
+  }
+
+}
+}
diff --git a/Code/Common/src/sitkTransformHelper.hxx b/Code/Common/src/sitkTransformHelper.hxx
new file mode 100644
index 0000000..db65904
--- /dev/null
+++ b/Code/Common/src/sitkTransformHelper.hxx
@@ -0,0 +1,46 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkTransformHelper_hxx
+#define sitkTransformHelper_hxx
+
+
+#define SITK_TRANSFORM_SET_MPF(NAME,ITK_TYPENAME, COMPONENT)                      \
+  {                                                                     \
+  typedef ITK_TYPENAME itkType;                                         \
+  itkType (*pfSTLToITK)(const std::vector<COMPONENT> &) = &sitkSTLVectorToITK<itkType, COMPONENT>; \
+  this->m_pfSet##NAME = nsstd::bind(&TransformType::Set##NAME,t,nsstd::bind(pfSTLToITK,nsstd::placeholders::_1)); \
+                                                                        \
+  std::vector<COMPONENT> (*pfITKToSTL)( const itkType &) = &sitkITKVectorToSTL<COMPONENT,itkType>; \
+  this->m_pfGet##NAME = nsstd::bind(pfITKToSTL,nsstd::bind(&TransformType::Get##NAME,t)); \
+  }
+
+#define SITK_TRANSFORM_SET_MPF_GetMatrix()                              \
+  {                                                                     \
+  std::vector<double>  (*pfITKDirectionToSTL)(const typename TransformType::MatrixType &) = &sitkITKDirectionToSTL<typename TransformType::MatrixType>; \
+  this->m_pfGetMatrix = nsstd::bind(pfITKDirectionToSTL,nsstd::bind(&TransformType::GetMatrix,t)); \
+  }
+
+#define SITK_TRANSFORM_SET_MPF_SetMatrix()                              \
+  {                                                                     \
+  void (TransformType::*pfSetMatrix) (const typename TransformType::MatrixType &, double) = &TransformType::SetMatrix; \
+  typename TransformType::MatrixType (*pfSTLToITKDirection)(const std::vector<double> &) = &sitkSTLToITKDirection<typename TransformType::MatrixType>; \
+  this->m_pfSetMatrix = nsstd::bind(pfSetMatrix, t, nsstd::bind(pfSTLToITKDirection, nsstd::placeholders::_1), nsstd::placeholders::_2); \
+  }
+
+
+#endif // sitkTransformHelper_hxx
diff --git a/Code/Common/src/sitkTranslationTransform.cxx b/Code/Common/src/sitkTranslationTransform.cxx
new file mode 100644
index 0000000..35420fb
--- /dev/null
+++ b/Code/Common/src/sitkTranslationTransform.cxx
@@ -0,0 +1,111 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include "sitkTranslationTransform.h"
+#include "sitkTransformHelper.hxx"
+
+#include "itkTranslationTransform.h"
+
+namespace itk
+{
+namespace simple
+{
+
+TranslationTransform::TranslationTransform(unsigned int dimensions,
+                                           const std::vector<double> &offset)
+  : Transform(dimensions, sitkTranslation)
+
+{
+  Self::InternalInitialization(Self::GetITKBase());
+
+  this->SetOffset(offset);
+}
+
+
+TranslationTransform::TranslationTransform( const TranslationTransform &arg )
+  : Transform(arg)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+
+TranslationTransform::TranslationTransform( const Transform &arg )
+  : Transform(arg)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+
+TranslationTransform &TranslationTransform::operator=( const TranslationTransform &arg )
+{
+  Superclass::operator=(arg);
+  return *this;
+}
+
+
+/** fixed parameter */
+TranslationTransform::Self &TranslationTransform::SetOffset(const std::vector<double> &params)
+{
+  this->MakeUnique();
+  this->m_pfSetOffset(params);
+  return *this;
+}
+
+std::vector<double> TranslationTransform::GetOffset( ) const
+{
+  return this->m_pfGetOffset();
+}
+void TranslationTransform::SetPimpleTransform( PimpleTransformBase *pimpleTransform )
+{
+  Superclass::SetPimpleTransform(pimpleTransform);
+  Self::InternalInitialization(this->GetITKBase());
+}
+
+void TranslationTransform::InternalInitialization(itk::TransformBase *transform)
+{
+
+  MyVisitor visitor;
+  visitor.transform = transform;
+  visitor.that = this;
+
+  typedef typelist::MakeTypeList<itk::TranslationTransform<double, 3>,
+                                 itk::TranslationTransform<double, 2> >::Type TransformTypeList;
+
+  typelist::Visit<TransformTypeList> callInternalInitialization;
+
+  // explicitly remove all function pointer with reference to prior transform
+  this->m_pfSetOffset = SITK_NULLPTR;
+  this->m_pfGetOffset = SITK_NULLPTR;
+
+  callInternalInitialization(visitor);
+
+  if ( this->m_pfSetOffset == SITK_NULLPTR )
+    {
+    sitkExceptionMacro("Transform is not of type " << this->GetName() << "!" );
+    }
+}
+
+
+template<class TransformType>
+void TranslationTransform::InternalInitialization(TransformType *t)
+{
+  SITK_TRANSFORM_SET_MPF(Offset, typename TransformType::OutputVectorType, double);
+
+}
+
+}
+}
diff --git a/Code/Common/src/sitkVersion.cxx b/Code/Common/src/sitkVersion.cxx
new file mode 100644
index 0000000..f39f9b0
--- /dev/null
+++ b/Code/Common/src/sitkVersion.cxx
@@ -0,0 +1,92 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include "sitkVersion.h"
+#include "sitkVersionConfig.h"
+
+#include "itkConfigure.h"
+
+namespace
+{
+
+std::string MakeExtendedVersionString()
+{
+  std::ostringstream v;
+  v << "SimpleITK Version: " << itk::simple::Version::VersionString()
+    << " (ITK " << ITK_VERSION_STRING << ")" << std::endl
+    << "Compiled: " << itk::simple::Version::BuildDate() << std::endl;
+  return v.str();
+}
+
+static const std::string itkVersionString = ITK_VERSION_STRING;
+static const std::string extendedVersionString = MakeExtendedVersionString();
+
+}
+
+namespace itk
+{
+  namespace simple
+  {
+
+  unsigned int Version::MajorVersion()
+  {
+    return SimpleITK_VERSION_MAJOR;
+  }
+  unsigned int Version::MinorVersion()
+  {
+    return SimpleITK_VERSION_MINOR;
+  }
+  unsigned int Version::PatchVersion()
+  {
+    return SimpleITK_VERSION_PATCH;
+  }
+  unsigned int Version::TweakVersion()
+  {
+    return 0;
+  }
+  const std::string &Version::VersionString()
+  {
+    static const std::string v( SimpleITK_VERSION );
+    return v;
+  }
+  const std::string &Version::BuildDate()
+  {
+    static const std::string v( __DATE__ " " __TIME__ );
+    return v;
+  }
+  unsigned int Version::ITKMajorVersion()
+  {
+    return ITK_VERSION_MAJOR;
+  }
+  unsigned int Version::ITKMinorVersion()
+  {
+    return ITK_VERSION_MINOR;
+  }
+  unsigned int Version::ITKPatchVersion()
+  {
+    return ITK_VERSION_PATCH;
+  }
+  const std::string &Version::ITKVersionString()
+  {
+    return itkVersionString;
+  }
+  const std::string &Version::ExtendedVersionString()
+  {
+    return extendedVersionString;
+  }
+  }
+}
diff --git a/Code/Common/src/sitkVersionConfig.h.in b/Code/Common/src/sitkVersionConfig.h.in
new file mode 100644
index 0000000..f2f59fb
--- /dev/null
+++ b/Code/Common/src/sitkVersionConfig.h.in
@@ -0,0 +1,23 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+#define SimpleITK_VERSION_MAJOR @SimpleITK_VERSION_MAJOR@
+#define SimpleITK_VERSION_MINOR @SimpleITK_VERSION_MINOR@
+#define SimpleITK_VERSION_PATCH @SimpleITK_VERSION_PATCH@
+#define SimpleITK_VERSION_TWEAK @SimpleITK_VERSION_TWEAK@
+#define SimpleITK_VERSION "@SimpleITK_VERSION@"
diff --git a/Code/Common/src/sitkVersorRigid3DTransform.cxx b/Code/Common/src/sitkVersorRigid3DTransform.cxx
new file mode 100644
index 0000000..958f4fd
--- /dev/null
+++ b/Code/Common/src/sitkVersorRigid3DTransform.cxx
@@ -0,0 +1,234 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include "sitkVersorRigid3DTransform.h"
+#include "sitkTransformHelper.hxx"
+
+#include "itkVersorRigid3DTransform.h"
+
+namespace itk
+{
+namespace simple
+{
+
+namespace
+{
+
+template< typename T, typename TType>
+itk::Versor<T> sitkSTLVectorToITKVersor( const std::vector< TType > & in )
+{
+  typedef itk::Versor<T> itkVectorType;
+  if ( in.size() != 4 )
+    {
+    sitkExceptionMacro(<<"Unable to convert vector to ITK Versor type\n"
+                      << "Expected vector of length " <<  4
+                       << " but got " << in.size() << " elements." );
+    }
+  itkVectorType out;
+  out.Set(in[0],in[1],in[2],in[3]);
+  return out;
+}
+
+
+template< typename TType, typename T>
+std::vector<TType> sitkITKVersorToSTL( const itk::Versor<T> & in )
+{
+  std::vector<TType> out(4);
+  out[0] = in.GetX();
+  out[1] = in.GetY();
+  out[2] = in.GetZ();
+  out[3] = in.GetW();
+  return out;
+}
+
+
+}
+
+// construct identity
+VersorRigid3DTransform::VersorRigid3DTransform()
+  : Transform(3, sitkVersorRigid)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+VersorRigid3DTransform::VersorRigid3DTransform( const VersorRigid3DTransform &arg )
+  : Transform(arg)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+VersorRigid3DTransform::VersorRigid3DTransform( const Transform & arg )
+  : Transform(arg)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+VersorRigid3DTransform::VersorRigid3DTransform( const std::vector< double > &versor,
+                                                const std::vector< double > &translation,
+                                                const std::vector< double> &fixedCenter )
+  : Transform(3, sitkVersorRigid)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+
+  this->SetCenter(fixedCenter);
+  this->SetRotation(versor);
+  this->SetTranslation(translation);
+}
+
+VersorRigid3DTransform::VersorRigid3DTransform( const std::vector< double > &axis, double angle,
+                                                const std::vector< double > &translation,
+                                                const std::vector< double> &fixedCenter )
+  : Transform(3, sitkVersorRigid)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+
+  this->SetCenter(fixedCenter);
+  this->SetRotation(axis, angle);
+  this->SetTranslation(translation);
+}
+
+VersorRigid3DTransform &VersorRigid3DTransform::operator=( const VersorRigid3DTransform &arg )
+{
+  Superclass::operator=(arg);
+  return *this;
+}
+
+
+/** fixed parameter */
+VersorRigid3DTransform::Self &VersorRigid3DTransform::SetCenter(const std::vector<double> &params)
+{
+  this->MakeUnique();
+  this->m_pfSetCenter(params);
+  return *this;
+}
+
+std::vector<double> VersorRigid3DTransform::GetCenter( ) const
+{
+  return this->m_pfGetCenter();
+}
+
+
+VersorRigid3DTransform::Self &VersorRigid3DTransform::SetRotation(const std::vector<double> &versor)
+{
+  this->MakeUnique();
+  this->m_pfSetRotation1(versor);
+  return *this;
+}
+
+VersorRigid3DTransform::Self &VersorRigid3DTransform::SetRotation(const std::vector<double> &axis,  double angle)
+{
+  this->MakeUnique();
+  this->m_pfSetRotation2(axis, angle);
+  return *this;
+}
+
+std::vector<double>  VersorRigid3DTransform::GetVersor() const
+{
+  return this->m_pfGetVersor();
+}
+
+VersorRigid3DTransform::Self &VersorRigid3DTransform::SetTranslation(const std::vector<double> &params)
+{
+  this->MakeUnique();
+  this->m_pfSetTranslation(params);
+  return *this;
+}
+
+std::vector<double> VersorRigid3DTransform::GetTranslation( ) const
+{
+  return this->m_pfGetTranslation();
+}
+
+VersorRigid3DTransform::Self &VersorRigid3DTransform::Translate(const std::vector<double> &offset)
+{
+  this->MakeUnique();
+  this->m_pfTranslate(offset);
+  return *this;
+}
+
+std::vector<double> VersorRigid3DTransform::GetMatrix( ) const
+{
+  return this->m_pfGetMatrix();
+}
+
+VersorRigid3DTransform::Self &VersorRigid3DTransform::SetMatrix(const std::vector<double> &params, double tolerance)
+{
+  this->MakeUnique();
+  this->m_pfSetMatrix(params,tolerance);
+  return *this;
+}
+
+void VersorRigid3DTransform::SetPimpleTransform( PimpleTransformBase *pimpleTransform )
+{
+  Superclass::SetPimpleTransform(pimpleTransform);
+  Self::InternalInitialization(this->GetITKBase());
+}
+
+void VersorRigid3DTransform::InternalInitialization(itk::TransformBase *transform)
+{
+
+  typedef itk::VersorRigid3DTransform<double> TransformType;
+  TransformType *t = dynamic_cast<TransformType*>(transform);
+
+  // explicitly remove all function pointer with reference to prior transform
+  this->m_pfSetCenter = SITK_NULLPTR;
+  this->m_pfGetCenter = SITK_NULLPTR;
+  this->m_pfSetTranslation = SITK_NULLPTR;
+  this->m_pfGetTranslation = SITK_NULLPTR;
+  this->m_pfSetRotation1 = SITK_NULLPTR;
+  this->m_pfSetRotation2 = SITK_NULLPTR;
+  this->m_pfGetVersor = SITK_NULLPTR;
+  this->m_pfTranslate = SITK_NULLPTR;
+  this->m_pfGetMatrix = SITK_NULLPTR;
+  this->m_pfSetMatrix = SITK_NULLPTR;
+
+  if (t && (typeid(*t)==typeid(TransformType)))
+    {
+    this->InternalInitialization(t);
+    return;
+    }
+  else
+    {
+    sitkExceptionMacro("Transform is not of type " << this->GetName() << "!" );
+    }
+}
+
+
+template<class TransformType>
+void VersorRigid3DTransform::InternalInitialization(TransformType *t)
+{
+
+  SITK_TRANSFORM_SET_MPF(Center, typename TransformType::InputPointType, double);
+  SITK_TRANSFORM_SET_MPF(Translation, typename TransformType::OutputVectorType, double);
+  SITK_TRANSFORM_SET_MPF_GetMatrix();
+  SITK_TRANSFORM_SET_MPF_SetMatrix();
+
+  void 	(TransformType::*pfSetRotation1) (const typename TransformType::VersorType &) = &TransformType::SetRotation;
+  this->m_pfSetRotation1 = nsstd::bind(pfSetRotation1,t,nsstd::bind(&sitkSTLVectorToITKVersor<double, double>,nsstd::placeholders::_1));
+
+  typename TransformType::OutputVectorType (*pfSTLVectorToITK)(const std::vector<double> &) = &sitkSTLVectorToITK<typename TransformType::OutputVectorType, double>;
+  void 	(TransformType::*pfSetRotation2) (const typename TransformType::AxisType &, double) = &TransformType::SetRotation;
+  this->m_pfSetRotation2 = nsstd::bind(pfSetRotation2,t,nsstd::bind(pfSTLVectorToITK,nsstd::placeholders::_1),nsstd::placeholders::_2);
+
+  this->m_pfGetVersor  = nsstd::bind(&sitkITKVersorToSTL<double, double>,nsstd::bind(&TransformType::GetVersor,t));
+
+  // pre argument has no effect
+  this->m_pfTranslate = nsstd::bind(&TransformType::Translate,t,nsstd::bind(pfSTLVectorToITK,nsstd::placeholders::_1), false);
+}
+
+}
+}
diff --git a/Code/Common/src/sitkVersorTransform.cxx b/Code/Common/src/sitkVersorTransform.cxx
new file mode 100644
index 0000000..1e01a98
--- /dev/null
+++ b/Code/Common/src/sitkVersorTransform.cxx
@@ -0,0 +1,206 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include "sitkVersorTransform.h"
+#include "sitkTransformHelper.hxx"
+
+#include "itkVersorTransform.h"
+
+namespace itk
+{
+namespace simple
+{
+
+namespace
+{
+
+template< typename T, typename TType>
+itk::Versor<T> sitkSTLVectorToITKVersor( const std::vector< TType > & in )
+{
+  typedef itk::Versor<T> itkVectorType;
+  if ( in.size() != 4 )
+    {
+    sitkExceptionMacro(<<"Unable to convert vector to ITK Versor type\n"
+                      << "Expected vector of length " <<  4
+                       << " but got " << in.size() << " elements." );
+    }
+  itkVectorType out;
+  out.Set(in[0],in[1],in[2],in[3]);
+  return out;
+}
+
+
+template< typename TType, typename T>
+std::vector<TType> sitkITKVersorToSTL( const itk::Versor<T> & in )
+{
+  std::vector<TType> out(4);
+  out[0] = in.GetX();
+  out[1] = in.GetY();
+  out[2] = in.GetZ();
+  out[3] = in.GetW();
+  return out;
+}
+
+
+}
+
+// construct identity
+VersorTransform::VersorTransform()
+  : Transform(3, sitkVersor)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+VersorTransform::VersorTransform( const VersorTransform &arg )
+  : Transform(arg)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+VersorTransform::VersorTransform( const Transform &arg )
+  : Transform(arg)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+}
+
+VersorTransform::VersorTransform( const std::vector< double > &versor,
+                                  const std::vector< double> &fixedCenter )
+  : Transform(3, sitkVersor)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+
+  this->SetCenter(fixedCenter);
+  this->SetRotation(versor);
+}
+
+VersorTransform::VersorTransform( const std::vector< double > &axis,
+                                  double angle,
+                                  const std::vector< double> &fixedCenter )
+  : Transform(3, sitkVersor)
+{
+  Self::InternalInitialization(Self::GetITKBase());
+
+  this->SetCenter(fixedCenter);
+  this->SetRotation(axis, angle);
+}
+
+VersorTransform &VersorTransform::operator=( const VersorTransform &arg )
+{
+  Superclass::operator=(arg);
+  return *this;
+}
+
+
+/** fixed parameter */
+VersorTransform::Self &VersorTransform::SetCenter(const std::vector<double> &params)
+{
+  this->MakeUnique();
+  this->m_pfSetCenter(params);
+  return *this;
+}
+
+std::vector<double> VersorTransform::GetCenter( ) const
+{
+  return this->m_pfGetCenter();
+}
+
+
+VersorTransform::Self &VersorTransform::SetRotation(const std::vector<double> &versor)
+{
+  this->MakeUnique();
+  this->m_pfSetRotation1(versor);
+  return *this;
+}
+
+VersorTransform::Self &VersorTransform::SetRotation(const std::vector<double> &axis,  double angle)
+{
+  this->MakeUnique();
+  this->m_pfSetRotation2(axis, angle);
+  return *this;
+}
+
+std::vector<double>  VersorTransform::GetVersor() const
+{
+  return this->m_pfGetVersor();
+}
+
+std::vector<double> VersorTransform::GetMatrix( ) const
+{
+  return this->m_pfGetMatrix();
+}
+
+VersorTransform::Self &VersorTransform::SetMatrix(const std::vector<double> &params, double tolerance)
+{
+  this->MakeUnique();
+  this->m_pfSetMatrix(params,tolerance);
+  return *this;
+}
+
+void VersorTransform::SetPimpleTransform( PimpleTransformBase *pimpleTransform )
+{
+  Superclass::SetPimpleTransform(pimpleTransform);
+  Self::InternalInitialization(this->GetITKBase());
+}
+
+void VersorTransform::InternalInitialization(itk::TransformBase *transform)
+{
+
+  typedef itk::VersorTransform<double> TransformType;
+  TransformType *t = dynamic_cast<TransformType*>(transform);
+
+  // explicitly remove all function pointer with reference to prior transform
+  this->m_pfSetCenter = SITK_NULLPTR;
+  this->m_pfGetCenter = SITK_NULLPTR;
+  this->m_pfSetRotation1 = SITK_NULLPTR;
+  this->m_pfSetRotation2 = SITK_NULLPTR;
+  this->m_pfGetVersor = SITK_NULLPTR;
+  this->m_pfGetMatrix = SITK_NULLPTR;
+  this->m_pfSetMatrix = SITK_NULLPTR;
+
+  if (t && (typeid(*t)==typeid(TransformType)))
+    {
+    this->InternalInitialization(t);
+    return;
+    }
+  else
+    {
+    sitkExceptionMacro("Transform is not of type " << this->GetName() << "!" );
+    }
+}
+
+
+template<class TransformType>
+void VersorTransform::InternalInitialization(TransformType *t)
+{
+  SITK_TRANSFORM_SET_MPF(Center, typename TransformType::InputPointType, double);
+  SITK_TRANSFORM_SET_MPF_GetMatrix();
+  SITK_TRANSFORM_SET_MPF_SetMatrix();
+
+  typename TransformType::OutputVectorType (*pfSTLVectorToITK)(const std::vector<double> &) = &sitkSTLVectorToITK<typename TransformType::OutputVectorType, double>;
+
+  void 	(TransformType::*pfSetRotation1) (const typename TransformType::VersorType &) = &TransformType::SetRotation;
+  this->m_pfSetRotation1 = nsstd::bind(pfSetRotation1,t,nsstd::bind(&sitkSTLVectorToITKVersor<double, double>,nsstd::placeholders::_1));
+
+  void 	(TransformType::*pfSetRotation2) (const typename TransformType::AxisType &, double) = &TransformType::SetRotation;
+  this->m_pfSetRotation2 = nsstd::bind(pfSetRotation2,t,nsstd::bind(pfSTLVectorToITK,nsstd::placeholders::_1),nsstd::placeholders::_2);
+
+  this->m_pfGetVersor  = nsstd::bind(&sitkITKVersorToSTL<double, double>,nsstd::bind(&TransformType::GetVersor,t));
+
+}
+
+}
+}
diff --git a/Code/Explicit/CMakeLists.txt b/Code/Explicit/CMakeLists.txt
new file mode 100644
index 0000000..0b71948
--- /dev/null
+++ b/Code/Explicit/CMakeLists.txt
@@ -0,0 +1,2 @@
+
+add_subdirectory( src )
diff --git a/Code/Explicit/include/sitkExplicit.h b/Code/Explicit/include/sitkExplicit.h
new file mode 100644
index 0000000..63eeb0e
--- /dev/null
+++ b/Code/Explicit/include/sitkExplicit.h
@@ -0,0 +1,45 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkExplicit_h
+#define sitkExplicit_h
+
+#include "sitkMacro.h"
+#if defined( SITKDLL ) && !defined( SITK_SimpleITKExplit_STATIC )
+  #ifdef SimpleITKExplicit_EXPORTS
+    #define SITKExplicit_EXPORT SITK_ABI_EXPORT
+  #else
+    #define SITKExplicit_EXPORT SITK_ABI_IMPORT
+  #endif  /* SimpleITKExplicit_EXPORTS */
+#else
+  // Don't hide symbols in the static SimpleITKExplicit library in case
+  // -fvisibility=hidden is used
+  #define SITKExplicit_EXPORT
+#endif
+
+#define SITKExplicit_HIDDEN SITK_ABI_HIDDEN
+
+
+#if defined( SimpleITKExplicit_EXPORTS )
+// don't use export
+#define SITKExplicit_EXPORT_EXPLICIT
+#else
+// only import/hidden
+#define SITKExplicit_EXPORT_EXPLICIT SITKExplicit_EXPORT
+#endif
+
+#endif // sitkExplicit_h
diff --git a/Code/Explicit/include/sitkExplicitITK.h b/Code/Explicit/include/sitkExplicitITK.h
new file mode 100644
index 0000000..3ef7477
--- /dev/null
+++ b/Code/Explicit/include/sitkExplicitITK.h
@@ -0,0 +1,55 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkExplicitITK_h
+#define sitkExplicitITK_h
+
+#include <complex>
+
+#include "itkAttributeLabelObject.h"
+#include "itkShapeLabelObject.h"
+#include "itkVectorImage.h"
+
+#include "sitkExplicitITKImageRegion.h"
+
+
+#include "sitkExplicitITKDefaultPixelAccessor.h"
+#include "sitkExplicitITKDefaultVectorPixelAccessor.h"
+#include "sitkExplicitITKImportImageContainer.h"
+#include "sitkExplicitITKImageBase.h"
+#include "sitkExplicitITKImage.h"
+#include "sitkExplicitITKLabelMap.h"
+#include "sitkExplicitITKVectorImage.h"
+
+
+#include "sitkExplicitITKImageConstIterator.h"
+#include "sitkExplicitITKImageRegionConstIterator.h"
+#include "sitkExplicitITKImageScanlineConstIterator.h"
+#include "sitkExplicitITKImageScanlineIterator.h"
+
+#include "sitkExplicitITKImageSource.h"
+#include "sitkExplicitITKImageToImageFilter.h"
+#include "sitkExplicitITKInPlaceImageFilter.h"
+
+#include "sitkExplicitITKComposeImageFilter.h"
+#include "sitkExplicitITKVectorIndexSelectionCastImageFilter.h"
+
+
+
+
+
+#endif // sitkExplicitITK_h
diff --git a/Code/Explicit/include/sitkExplicitITKComposeImageFilter.h b/Code/Explicit/include/sitkExplicitITKComposeImageFilter.h
new file mode 100644
index 0000000..6d6142b
--- /dev/null
+++ b/Code/Explicit/include/sitkExplicitITKComposeImageFilter.h
@@ -0,0 +1,49 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkExplicitITKComposeImageFilter_h__
+#define sitkExplicitITKComposeImageFilter_h__
+#include "sitkExplicit.h"
+#include "itkComposeImageFilter.h"
+
+#ifndef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ComposeImageFilter<itk::Image<double, 2u>, itk::VectorImage<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ComposeImageFilter<itk::Image<double, 3u>, itk::VectorImage<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ComposeImageFilter<itk::Image<float, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ComposeImageFilter<itk::Image<float, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ComposeImageFilter<itk::Image<int, 2u>, itk::VectorImage<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ComposeImageFilter<itk::Image<int, 3u>, itk::VectorImage<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ComposeImageFilter<itk::Image<long, 2u>, itk::VectorImage<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ComposeImageFilter<itk::Image<long, 3u>, itk::VectorImage<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ComposeImageFilter<itk::Image<long long, 2u>, itk::VectorImage<long long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ComposeImageFilter<itk::Image<long long, 3u>, itk::VectorImage<long long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ComposeImageFilter<itk::Image<short, 2u>, itk::VectorImage<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ComposeImageFilter<itk::Image<short, 3u>, itk::VectorImage<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ComposeImageFilter<itk::Image<signed char, 2u>, itk::VectorImage<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ComposeImageFilter<itk::Image<signed char, 3u>, itk::VectorImage<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ComposeImageFilter<itk::Image<unsigned char, 2u>, itk::VectorImage<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ComposeImageFilter<itk::Image<unsigned char, 3u>, itk::VectorImage<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ComposeImageFilter<itk::Image<unsigned int, 2u>, itk::VectorImage<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ComposeImageFilter<itk::Image<unsigned int, 3u>, itk::VectorImage<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ComposeImageFilter<itk::Image<unsigned long, 2u>, itk::VectorImage<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ComposeImageFilter<itk::Image<unsigned long, 3u>, itk::VectorImage<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ComposeImageFilter<itk::Image<unsigned long long, 2u>, itk::VectorImage<unsigned long long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ComposeImageFilter<itk::Image<unsigned long long, 3u>, itk::VectorImage<unsigned long long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ComposeImageFilter<itk::Image<unsigned short, 2u>, itk::VectorImage<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ComposeImageFilter<itk::Image<unsigned short, 3u>, itk::VectorImage<unsigned short, 3u> >;
+#endif // SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#endif // sitkExplicitITKComposeImageFilter_h__
diff --git a/Code/Explicit/include/sitkExplicitITKDefaultPixelAccessor.h b/Code/Explicit/include/sitkExplicitITKDefaultPixelAccessor.h
new file mode 100644
index 0000000..00c7041
--- /dev/null
+++ b/Code/Explicit/include/sitkExplicitITKDefaultPixelAccessor.h
@@ -0,0 +1,53 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkExplicitITKDefaultPixelAccessor_h__
+#define sitkExplicitITKDefaultPixelAccessor_h__
+#include "sitkExplicit.h"
+#include "itkDefaultPixelAccessor.h"
+
+#ifndef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultPixelAccessor<bool>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultPixelAccessor<char>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultPixelAccessor<double>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultPixelAccessor<float>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultPixelAccessor<int>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultPixelAccessor<itk::CovariantVector<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultPixelAccessor<itk::CovariantVector<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultPixelAccessor<itk::CovariantVector<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultPixelAccessor<itk::CovariantVector<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultPixelAccessor<itk::Offset<2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultPixelAccessor<itk::Offset<3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultPixelAccessor<itk::Vector<double, 1u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultPixelAccessor<itk::Vector<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultPixelAccessor<itk::Vector<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultPixelAccessor<itk::Vector<float, 1u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultPixelAccessor<itk::Vector<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultPixelAccessor<itk::Vector<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultPixelAccessor<long>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultPixelAccessor<long long>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultPixelAccessor<short>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultPixelAccessor<signed char>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultPixelAccessor<std::complex<double> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultPixelAccessor<std::complex<float> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultPixelAccessor<unsigned char>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultPixelAccessor<unsigned int>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultPixelAccessor<unsigned long>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultPixelAccessor<unsigned long long>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultPixelAccessor<unsigned short>;
+#endif // SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#endif // sitkExplicitITKDefaultPixelAccessor_h__
diff --git a/Code/Explicit/include/sitkExplicitITKDefaultVectorPixelAccessor.h b/Code/Explicit/include/sitkExplicitITKDefaultVectorPixelAccessor.h
new file mode 100644
index 0000000..05205fa
--- /dev/null
+++ b/Code/Explicit/include/sitkExplicitITKDefaultVectorPixelAccessor.h
@@ -0,0 +1,37 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkExplicitITKDefaultVectorPixelAccessor_h__
+#define sitkExplicitITKDefaultVectorPixelAccessor_h__
+#include "sitkExplicit.h"
+#include "itkDefaultVectorPixelAccessor.h"
+
+#ifndef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultVectorPixelAccessor<double>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultVectorPixelAccessor<float>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultVectorPixelAccessor<int>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultVectorPixelAccessor<long>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultVectorPixelAccessor<long long>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultVectorPixelAccessor<short>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultVectorPixelAccessor<signed char>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultVectorPixelAccessor<unsigned char>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultVectorPixelAccessor<unsigned int>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultVectorPixelAccessor<unsigned long>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultVectorPixelAccessor<unsigned long long>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::DefaultVectorPixelAccessor<unsigned short>;
+#endif // SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#endif // sitkExplicitITKDefaultVectorPixelAccessor_h__
diff --git a/Code/Explicit/include/sitkExplicitITKImage.h b/Code/Explicit/include/sitkExplicitITKImage.h
new file mode 100644
index 0000000..9f17b31
--- /dev/null
+++ b/Code/Explicit/include/sitkExplicitITKImage.h
@@ -0,0 +1,78 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkExplicitITKImage_h__
+#define sitkExplicitITKImage_h__
+#include "sitkExplicit.h"
+#include "itkImage.h"
+
+#ifndef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<bool, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<bool, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<char, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<char, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<double, 1u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<double, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<double, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<float, 1u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<float, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<float, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<int, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<int, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<itk::CovariantVector<double, 2u>, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<itk::CovariantVector<double, 3u>, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<itk::CovariantVector<float, 2u>, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<itk::CovariantVector<float, 3u>, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<itk::FixedArray<float, 2u>, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<itk::FixedArray<float, 3u>, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<itk::Offset<2u>, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<itk::Offset<3u>, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<itk::Vector<double, 1u>, 1u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<itk::Vector<double, 2u>, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<itk::Vector<double, 3u>, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<itk::Vector<float, 1u>, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<itk::Vector<float, 2u>, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<itk::Vector<float, 3u>, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<long, 1u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<long, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<long, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<long long, 1u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<long long, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<long long, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<short, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<short, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<signed char, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<signed char, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<std::complex<double>, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<std::complex<double>, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<std::complex<float>, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<std::complex<float>, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<std::deque<itk::LabelObjectLine<2u>, std::allocator<itk::LabelObjectLine<2u> > >, 1u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<std::deque<itk::LabelObjectLine<3u>, std::allocator<itk::LabelObjectLine<3u> > >, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<unsigned char, 1u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<unsigned char, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<unsigned char, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<unsigned int, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<unsigned int, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<unsigned long, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<unsigned long, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<unsigned long long, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<unsigned long long, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<unsigned short, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::Image<unsigned short, 3u>;
+#endif // SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#endif // sitkExplicitITKImage_h__
diff --git a/Code/Explicit/include/sitkExplicitITKImageBase.h b/Code/Explicit/include/sitkExplicitITKImageBase.h
new file mode 100644
index 0000000..7c97da9
--- /dev/null
+++ b/Code/Explicit/include/sitkExplicitITKImageBase.h
@@ -0,0 +1,28 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkExplicitITKImageBase_h__
+#define sitkExplicitITKImageBase_h__
+#include "sitkExplicit.h"
+#include "itkImageBase.h"
+
+#ifndef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageBase<1u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageBase<2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageBase<3u>;
+#endif // SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#endif // sitkExplicitITKImageBase_h__
diff --git a/Code/Explicit/include/sitkExplicitITKImageConstIterator.h b/Code/Explicit/include/sitkExplicitITKImageConstIterator.h
new file mode 100644
index 0000000..2a7f972
--- /dev/null
+++ b/Code/Explicit/include/sitkExplicitITKImageConstIterator.h
@@ -0,0 +1,87 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkExplicitITKImageConstIterator_h__
+#define sitkExplicitITKImageConstIterator_h__
+#include "sitkExplicit.h"
+#include "itkImageConstIterator.h"
+
+#ifndef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<bool, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<bool, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<float, 1u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<itk::CovariantVector<double, 2u>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<itk::CovariantVector<double, 3u>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<itk::CovariantVector<float, 2u>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<itk::CovariantVector<float, 3u>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<itk::Vector<double, 1u>, 1u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<itk::Vector<double, 2u>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<itk::Vector<double, 3u>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<itk::Vector<float, 1u>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<itk::Vector<float, 2u>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<itk::Vector<float, 3u>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<long long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<long long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<std::complex<double>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<std::complex<double>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<std::complex<float>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<std::complex<float>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<unsigned char, 1u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<unsigned long long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<unsigned long long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::Image<unsigned short, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::VectorImage<double, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::VectorImage<double, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::VectorImage<float, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::VectorImage<float, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::VectorImage<int, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::VectorImage<int, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::VectorImage<long, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::VectorImage<long, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::VectorImage<short, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::VectorImage<short, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::VectorImage<signed char, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::VectorImage<signed char, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::VectorImage<unsigned char, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::VectorImage<unsigned char, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::VectorImage<unsigned int, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::VectorImage<unsigned int, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::VectorImage<unsigned long, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::VectorImage<unsigned long, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::VectorImage<unsigned short, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageConstIterator<itk::VectorImage<unsigned short, 3u> >;
+#endif // SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#endif // sitkExplicitITKImageConstIterator_h__
diff --git a/Code/Explicit/include/sitkExplicitITKImageRegion.h b/Code/Explicit/include/sitkExplicitITKImageRegion.h
new file mode 100644
index 0000000..8681381
--- /dev/null
+++ b/Code/Explicit/include/sitkExplicitITKImageRegion.h
@@ -0,0 +1,28 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkExplicitITKImageRegion_h__
+#define sitkExplicitITKImageRegion_h__
+#include "sitkExplicit.h"
+#include "itkImageRegion.h"
+
+#ifndef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegion<1u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegion<2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegion<3u>;
+#endif // SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#endif // sitkExplicitITKImageRegion_h__
diff --git a/Code/Explicit/include/sitkExplicitITKImageRegionConstIterator.h b/Code/Explicit/include/sitkExplicitITKImageRegionConstIterator.h
new file mode 100644
index 0000000..f62540f
--- /dev/null
+++ b/Code/Explicit/include/sitkExplicitITKImageRegionConstIterator.h
@@ -0,0 +1,85 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkExplicitITKImageRegionConstIterator_h__
+#define sitkExplicitITKImageRegionConstIterator_h__
+#include "sitkExplicit.h"
+#include "itkImageRegionConstIterator.h"
+
+#ifndef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<bool, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<bool, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<float, 1u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<itk::CovariantVector<double, 2u>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<itk::CovariantVector<double, 3u>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<itk::CovariantVector<float, 2u>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<itk::CovariantVector<float, 3u>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<itk::Vector<double, 1u>, 1u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<itk::Vector<double, 2u>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<itk::Vector<double, 3u>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<itk::Vector<float, 1u>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<long long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<long long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<std::complex<double>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<std::complex<double>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<std::complex<float>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<std::complex<float>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<unsigned char, 1u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<unsigned long long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<unsigned long long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::Image<unsigned short, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::VectorImage<double, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::VectorImage<double, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::VectorImage<float, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::VectorImage<float, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::VectorImage<int, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::VectorImage<int, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::VectorImage<long, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::VectorImage<long, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::VectorImage<short, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::VectorImage<short, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::VectorImage<signed char, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::VectorImage<signed char, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::VectorImage<unsigned char, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::VectorImage<unsigned char, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::VectorImage<unsigned int, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::VectorImage<unsigned int, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::VectorImage<unsigned long, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::VectorImage<unsigned long, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::VectorImage<unsigned short, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageRegionConstIterator<itk::VectorImage<unsigned short, 3u> >;
+#endif // SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#endif // sitkExplicitITKImageRegionConstIterator_h__
diff --git a/Code/Explicit/include/sitkExplicitITKImageScanlineConstIterator.h b/Code/Explicit/include/sitkExplicitITKImageScanlineConstIterator.h
new file mode 100644
index 0000000..867ea7a
--- /dev/null
+++ b/Code/Explicit/include/sitkExplicitITKImageScanlineConstIterator.h
@@ -0,0 +1,82 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkExplicitITKImageScanlineConstIterator_h__
+#define sitkExplicitITKImageScanlineConstIterator_h__
+#include "sitkExplicit.h"
+#include "itkImageScanlineConstIterator.h"
+
+#ifndef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<itk::CovariantVector<float, 2u>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<itk::CovariantVector<float, 3u>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<itk::Vector<double, 1u>, 1u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<itk::Vector<double, 2u>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<itk::Vector<double, 3u>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<itk::Vector<float, 1u>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<itk::Vector<float, 2u>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<itk::Vector<float, 3u>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<long long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<long long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<std::complex<double>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<std::complex<double>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<std::complex<float>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<std::complex<float>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<unsigned char, 1u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<unsigned long long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<unsigned long long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::Image<unsigned short, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::VectorImage<double, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::VectorImage<double, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::VectorImage<float, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::VectorImage<float, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::VectorImage<int, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::VectorImage<int, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::VectorImage<long, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::VectorImage<long, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::VectorImage<short, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::VectorImage<short, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::VectorImage<signed char, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::VectorImage<signed char, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::VectorImage<unsigned char, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::VectorImage<unsigned char, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::VectorImage<unsigned int, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::VectorImage<unsigned int, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::VectorImage<unsigned long, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::VectorImage<unsigned long, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::VectorImage<unsigned short, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineConstIterator<itk::VectorImage<unsigned short, 3u> >;
+#endif // SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#endif // sitkExplicitITKImageScanlineConstIterator_h__
diff --git a/Code/Explicit/include/sitkExplicitITKImageScanlineIterator.h b/Code/Explicit/include/sitkExplicitITKImageScanlineIterator.h
new file mode 100644
index 0000000..ed703eb
--- /dev/null
+++ b/Code/Explicit/include/sitkExplicitITKImageScanlineIterator.h
@@ -0,0 +1,80 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkExplicitITKImageScanlineIterator_h__
+#define sitkExplicitITKImageScanlineIterator_h__
+#include "sitkExplicit.h"
+#include "itkImageScanlineIterator.h"
+
+#ifndef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<itk::Vector<double, 1u>, 1u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<itk::Vector<double, 2u>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<itk::Vector<double, 3u>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<itk::Vector<float, 1u>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<itk::Vector<float, 2u>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<itk::Vector<float, 3u>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<long long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<long long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<std::complex<double>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<std::complex<double>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<std::complex<float>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<std::complex<float>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<unsigned char, 1u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<unsigned long long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<unsigned long long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::Image<unsigned short, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::VectorImage<double, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::VectorImage<double, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::VectorImage<float, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::VectorImage<float, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::VectorImage<int, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::VectorImage<int, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::VectorImage<long, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::VectorImage<long, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::VectorImage<short, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::VectorImage<short, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::VectorImage<signed char, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::VectorImage<signed char, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::VectorImage<unsigned char, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::VectorImage<unsigned char, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::VectorImage<unsigned int, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::VectorImage<unsigned int, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::VectorImage<unsigned long, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::VectorImage<unsigned long, 3u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::VectorImage<unsigned short, 2u> >;
+// extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageScanlineIterator<itk::VectorImage<unsigned short, 3u> >;
+#endif // SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#endif // sitkExplicitITKImageScanlineIterator_h__
diff --git a/Code/Explicit/include/sitkExplicitITKImageSource.h b/Code/Explicit/include/sitkExplicitITKImageSource.h
new file mode 100644
index 0000000..f17fa58
--- /dev/null
+++ b/Code/Explicit/include/sitkExplicitITKImageSource.h
@@ -0,0 +1,106 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkExplicitITKImageSource_h__
+#define sitkExplicitITKImageSource_h__
+#include "sitkExplicit.h"
+#include "itkImageSource.h"
+
+#ifndef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<bool, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<bool, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<itk::CovariantVector<double, 2u>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<itk::CovariantVector<double, 3u>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<itk::Vector<double, 1u>, 1u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<itk::Vector<double, 2u>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<itk::Vector<double, 3u>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<itk::Vector<float, 1u>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<itk::Vector<float, 2u>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<itk::Vector<float, 3u>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<long long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<long long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<std::complex<double>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<std::complex<double>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<std::complex<float>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<std::complex<float>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<unsigned char, 1u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<unsigned long long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<unsigned long long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::LabelMap<itk::AttributeLabelObject<unsigned long long, 2u, bool> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::LabelMap<itk::AttributeLabelObject<unsigned long long, 3u, bool> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::LabelMap<itk::LabelObject<unsigned char, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::LabelMap<itk::LabelObject<unsigned char, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::LabelMap<itk::LabelObject<unsigned int, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::LabelMap<itk::LabelObject<unsigned int, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::LabelMap<itk::LabelObject<unsigned long, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::LabelMap<itk::LabelObject<unsigned long, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::LabelMap<itk::LabelObject<unsigned long long, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::LabelMap<itk::LabelObject<unsigned long long, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::LabelMap<itk::LabelObject<unsigned short, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::LabelMap<itk::LabelObject<unsigned short, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::LabelMap<itk::ShapeLabelObject<unsigned long long, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::LabelMap<itk::ShapeLabelObject<unsigned long long, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::VectorImage<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::VectorImage<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::VectorImage<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::VectorImage<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::VectorImage<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::VectorImage<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::VectorImage<long long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::VectorImage<long long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::VectorImage<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::VectorImage<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::VectorImage<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::VectorImage<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::VectorImage<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::VectorImage<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::VectorImage<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::VectorImage<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::VectorImage<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::VectorImage<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::VectorImage<unsigned long long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::VectorImage<unsigned long long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::VectorImage<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageSource<itk::VectorImage<unsigned short, 3u> >;
+#endif // SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#endif // sitkExplicitITKImageSource_h__
diff --git a/Code/Explicit/include/sitkExplicitITKImageToImageFilter.h b/Code/Explicit/include/sitkExplicitITKImageToImageFilter.h
new file mode 100644
index 0000000..c0b2b18
--- /dev/null
+++ b/Code/Explicit/include/sitkExplicitITKImageToImageFilter.h
@@ -0,0 +1,645 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkExplicitITKImageToImageFilter_h__
+#define sitkExplicitITKImageToImageFilter_h__
+#include "sitkExplicit.h"
+#include "itkImageToImageFilter.h"
+
+#ifndef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<bool, 2u>, itk::Image<bool, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<bool, 3u>, itk::Image<bool, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<double, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<double, 2u>, itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<double, 2u>, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<double, 2u>, itk::Image<itk::CovariantVector<double, 2u>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<double, 2u>, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<double, 2u>, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<double, 2u>, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<double, 2u>, itk::Image<std::complex<double>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<double, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<double, 2u>, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<double, 2u>, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<double, 2u>, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<double, 2u>, itk::VectorImage<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<double, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<double, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<double, 3u>, itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<double, 3u>, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<double, 3u>, itk::Image<itk::CovariantVector<double, 3u>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<double, 3u>, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<double, 3u>, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<double, 3u>, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<double, 3u>, itk::Image<std::complex<double>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<double, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<double, 3u>, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<double, 3u>, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<double, 3u>, itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<double, 3u>, itk::VectorImage<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<double, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<float, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<float, 2u>, itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<float, 2u>, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<float, 2u>, itk::Image<itk::CovariantVector<double, 2u>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<float, 2u>, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<float, 2u>, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<float, 2u>, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<float, 2u>, itk::Image<std::complex<float>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<float, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<float, 2u>, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<float, 2u>, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<float, 2u>, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<float, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<float, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<float, 3u>, itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<float, 3u>, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<float, 3u>, itk::Image<itk::CovariantVector<double, 3u>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<float, 3u>, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<float, 3u>, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<float, 3u>, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<float, 3u>, itk::Image<std::complex<float>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<float, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<float, 3u>, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<float, 3u>, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<float, 3u>, itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<float, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::LabelMap<itk::LabelObject<unsigned int, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::VectorImage<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::VectorImage<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::LabelMap<itk::LabelObject<unsigned int, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::VectorImage<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::VectorImage<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<itk::Vector<double, 2u>, 2u>, itk::Image<itk::Vector<double, 2u>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<itk::Vector<double, 3u>, 3u>, itk::Image<itk::Vector<double, 3u>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<itk::Vector<float, 1u>, 3u>, itk::Image<itk::Vector<float, 1u>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<itk::Vector<float, 2u>, 2u>, itk::Image<itk::Vector<float, 2u>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<itk::Vector<float, 3u>, 3u>, itk::Image<itk::Vector<float, 3u>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::LabelMap<itk::LabelObject<unsigned int, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::VectorImage<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::VectorImage<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::LabelMap<itk::LabelObject<unsigned int, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::VectorImage<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::VectorImage<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::LabelMap<itk::LabelObject<unsigned int, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::VectorImage<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::VectorImage<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::LabelMap<itk::LabelObject<unsigned int, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::VectorImage<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::VectorImage<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::LabelMap<itk::LabelObject<unsigned int, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::VectorImage<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::VectorImage<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::LabelMap<itk::LabelObject<unsigned int, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::VectorImage<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::VectorImage<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<std::complex<double>, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<std::complex<double>, 2u>, itk::Image<std::complex<double>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<std::complex<double>, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<std::complex<double>, 3u>, itk::Image<std::complex<double>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<std::complex<float>, 2u>, itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<std::complex<float>, 2u>, itk::Image<std::complex<float>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<std::complex<float>, 3u>, itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<std::complex<float>, 3u>, itk::Image<std::complex<float>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 1u>, itk::Image<unsigned char, 1u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::LabelMap<itk::LabelObject<unsigned char, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::LabelMap<itk::LabelObject<unsigned int, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::LabelMap<itk::LabelObject<unsigned long, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::LabelMap<itk::LabelObject<unsigned short, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::VectorImage<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::LabelMap<itk::LabelObject<unsigned char, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::LabelMap<itk::LabelObject<unsigned int, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::LabelMap<itk::LabelObject<unsigned long, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::LabelMap<itk::LabelObject<unsigned short, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::VectorImage<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::LabelMap<itk::LabelObject<unsigned int, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::VectorImage<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::VectorImage<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::LabelMap<itk::LabelObject<unsigned int, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::VectorImage<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::VectorImage<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::LabelMap<itk::LabelObject<unsigned int, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::LabelMap<itk::LabelObject<unsigned long, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::VectorImage<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::VectorImage<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::LabelMap<itk::LabelObject<unsigned int, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::LabelMap<itk::LabelObject<unsigned long, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::VectorImage<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::VectorImage<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::LabelMap<itk::LabelObject<unsigned int, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::LabelMap<itk::LabelObject<unsigned short, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::VectorImage<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::VectorImage<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::LabelMap<itk::LabelObject<unsigned int, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::LabelMap<itk::LabelObject<unsigned short, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::VectorImage<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::VectorImage<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> >, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> >, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> >, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> >, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> >, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> >, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> >, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> >, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> >, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> >, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> >, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> >, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> >, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> >, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> >, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> >, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> >, itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> >, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::LabelMap<itk::LabelObject<unsigned char, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::VectorImage<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::VectorImage<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::VectorImage<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::VectorImage<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::VectorImage<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::VectorImage<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::VectorImage<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::VectorImage<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::VectorImage<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::LabelMap<itk::LabelObject<unsigned char, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::VectorImage<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::VectorImage<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::VectorImage<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::VectorImage<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::VectorImage<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::VectorImage<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::VectorImage<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::VectorImage<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::VectorImage<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::LabelMap<itk::LabelObject<unsigned int, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::VectorImage<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::VectorImage<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::VectorImage<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::VectorImage<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::VectorImage<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::VectorImage<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::VectorImage<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::VectorImage<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::VectorImage<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::LabelMap<itk::LabelObject<unsigned int, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::VectorImage<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::VectorImage<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::VectorImage<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::VectorImage<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::VectorImage<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::VectorImage<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::VectorImage<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::VectorImage<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::VectorImage<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::LabelMap<itk::LabelObject<unsigned long, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::VectorImage<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::VectorImage<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::VectorImage<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::VectorImage<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::VectorImage<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::VectorImage<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::VectorImage<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::VectorImage<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::VectorImage<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::LabelMap<itk::LabelObject<unsigned long, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::VectorImage<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::VectorImage<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::VectorImage<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::VectorImage<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::VectorImage<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::VectorImage<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::VectorImage<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::VectorImage<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::VectorImage<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::LabelMap<itk::LabelObject<unsigned short, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::VectorImage<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::VectorImage<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::VectorImage<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::VectorImage<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::VectorImage<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::VectorImage<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::VectorImage<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::VectorImage<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::VectorImage<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::LabelMap<itk::LabelObject<unsigned short, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::VectorImage<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::VectorImage<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::VectorImage<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::VectorImage<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::VectorImage<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::VectorImage<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::VectorImage<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::VectorImage<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::VectorImage<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> >, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> >, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> >, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> >, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> >, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> >, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> >, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> >, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> >, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> >, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> >, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> >, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> >, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> >, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> >, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> >, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> >, itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> >, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<double, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<double, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<double, 2u>, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<double, 2u>, itk::VectorImage<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<double, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<double, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<double, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<double, 3u>, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<double, 3u>, itk::VectorImage<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<double, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<float, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<float, 2u>, itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<float, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<float, 2u>, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<float, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<float, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<float, 3u>, itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<float, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<float, 3u>, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<float, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<int, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<int, 2u>, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<int, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<int, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<int, 2u>, itk::VectorImage<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<int, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<int, 3u>, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<int, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<int, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<int, 3u>, itk::VectorImage<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<long, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<long, 2u>, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<long, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<long, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<long, 2u>, itk::VectorImage<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<long, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<long, 3u>, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<long, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<long, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<long, 3u>, itk::VectorImage<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<short, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<short, 2u>, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<short, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<short, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<short, 2u>, itk::VectorImage<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<short, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<short, 3u>, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<short, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<short, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<short, 3u>, itk::VectorImage<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<signed char, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<signed char, 2u>, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<signed char, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<signed char, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<signed char, 2u>, itk::VectorImage<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<signed char, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<signed char, 3u>, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<signed char, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<signed char, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<signed char, 3u>, itk::VectorImage<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned char, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned char, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned char, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned char, 2u>, itk::VectorImage<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned char, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned char, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned char, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned char, 3u>, itk::VectorImage<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned int, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned int, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned int, 2u>, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned int, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned int, 2u>, itk::VectorImage<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned int, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned int, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned int, 3u>, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned int, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned int, 3u>, itk::VectorImage<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned long, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned long, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned long, 2u>, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned long, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned long, 2u>, itk::VectorImage<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned long, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned long, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned long, 3u>, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned long, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned long, 3u>, itk::VectorImage<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned short, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned short, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned short, 2u>, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned short, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned short, 2u>, itk::VectorImage<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned short, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned short, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned short, 3u>, itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned short, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImageToImageFilter<itk::VectorImage<unsigned short, 3u>, itk::VectorImage<unsigned short, 3u> >;
+#endif // SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#endif // sitkExplicitITKImageToImageFilter_h__
diff --git a/Code/Explicit/include/sitkExplicitITKImportImageContainer.h b/Code/Explicit/include/sitkExplicitITKImportImageContainer.h
new file mode 100644
index 0000000..0736708
--- /dev/null
+++ b/Code/Explicit/include/sitkExplicitITKImportImageContainer.h
@@ -0,0 +1,57 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkExplicitITKImportImageContainer_h__
+#define sitkExplicitITKImportImageContainer_h__
+#include "sitkExplicit.h"
+#include "itkImportImageContainer.h"
+
+#ifndef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, bool>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, char>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, double>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, float>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, int>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, itk::CovariantVector<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, itk::CovariantVector<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, itk::CovariantVector<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, itk::CovariantVector<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, itk::FixedArray<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, itk::FixedArray<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, itk::Offset<2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, itk::Offset<3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, itk::Vector<double, 1u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, itk::Vector<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, itk::Vector<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, itk::Vector<float, 1u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, itk::Vector<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, itk::Vector<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, long>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, long long>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, short>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, signed char>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, std::complex<double> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, std::complex<float> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, std::deque<itk::LabelObjectLine<2u>, std::allocator<itk::LabelObjectLine<2u> > > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, std::deque<itk::LabelObjectLine<3u>, std::allocator<itk::LabelObjectLine<3u> > > >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, unsigned char>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, unsigned int>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, unsigned long>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, unsigned long long>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::ImportImageContainer<itk::SizeValueType, unsigned short>;
+#endif // SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#endif // sitkExplicitITKImportImageContainer_h__
diff --git a/Code/Explicit/include/sitkExplicitITKInPlaceImageFilter.h b/Code/Explicit/include/sitkExplicitITKInPlaceImageFilter.h
new file mode 100644
index 0000000..b1b03d9
--- /dev/null
+++ b/Code/Explicit/include/sitkExplicitITKInPlaceImageFilter.h
@@ -0,0 +1,319 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkExplicitITKInPlaceImageFilter_h__
+#define sitkExplicitITKInPlaceImageFilter_h__
+#include "sitkExplicit.h"
+#include "itkInPlaceImageFilter.h"
+
+#ifndef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<double, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<double, 2u>, itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<double, 2u>, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<double, 2u>, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<double, 2u>, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<double, 2u>, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<double, 2u>, itk::Image<std::complex<double>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<double, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<double, 2u>, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<double, 2u>, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<double, 2u>, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<double, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<double, 3u>, itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<double, 3u>, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<double, 3u>, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<double, 3u>, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<double, 3u>, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<double, 3u>, itk::Image<std::complex<double>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<double, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<double, 3u>, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<double, 3u>, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<double, 3u>, itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<float, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<float, 2u>, itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<float, 2u>, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<float, 2u>, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<float, 2u>, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<float, 2u>, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<float, 2u>, itk::Image<std::complex<float>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<float, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<float, 2u>, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<float, 2u>, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<float, 2u>, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<float, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<float, 3u>, itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<float, 3u>, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<float, 3u>, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<float, 3u>, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<float, 3u>, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<float, 3u>, itk::Image<std::complex<float>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<float, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<float, 3u>, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<float, 3u>, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<float, 3u>, itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<int, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<int, 2u>, itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<int, 2u>, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<int, 2u>, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<int, 2u>, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<int, 2u>, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<int, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<int, 2u>, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<int, 2u>, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<int, 2u>, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<int, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<int, 3u>, itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<int, 3u>, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<int, 3u>, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<int, 3u>, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<int, 3u>, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<int, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<int, 3u>, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<int, 3u>, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<int, 3u>, itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<itk::Vector<double, 2u>, 2u>, itk::Image<itk::Vector<double, 2u>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<itk::Vector<double, 3u>, 3u>, itk::Image<itk::Vector<double, 3u>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<itk::Vector<float, 1u>, 3u>, itk::Image<itk::Vector<float, 1u>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<long, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<long, 2u>, itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<long, 2u>, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<long, 2u>, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<long, 2u>, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<long, 2u>, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<long, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<long, 2u>, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<long, 2u>, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<long, 2u>, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<long, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<long, 3u>, itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<long, 3u>, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<long, 3u>, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<long, 3u>, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<long, 3u>, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<long, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<long, 3u>, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<long, 3u>, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<long, 3u>, itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<short, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<short, 2u>, itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<short, 2u>, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<short, 2u>, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<short, 2u>, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<short, 2u>, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<short, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<short, 2u>, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<short, 2u>, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<short, 2u>, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<short, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<short, 3u>, itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<short, 3u>, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<short, 3u>, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<short, 3u>, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<short, 3u>, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<short, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<short, 3u>, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<short, 3u>, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<short, 3u>, itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<signed char, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<signed char, 2u>, itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<signed char, 2u>, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<signed char, 2u>, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<signed char, 2u>, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<signed char, 2u>, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<signed char, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<signed char, 2u>, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<signed char, 2u>, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<signed char, 2u>, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<signed char, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<signed char, 3u>, itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<signed char, 3u>, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<signed char, 3u>, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<signed char, 3u>, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<signed char, 3u>, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<signed char, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<signed char, 3u>, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<signed char, 3u>, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<signed char, 3u>, itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<std::complex<double>, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<std::complex<double>, 2u>, itk::Image<std::complex<double>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<std::complex<double>, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<std::complex<double>, 3u>, itk::Image<std::complex<double>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<std::complex<float>, 2u>, itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<std::complex<float>, 2u>, itk::Image<std::complex<float>, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<std::complex<float>, 3u>, itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<std::complex<float>, 3u>, itk::Image<std::complex<float>, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned char, 1u>, itk::Image<unsigned char, 1u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned char, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned char, 2u>, itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned char, 2u>, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned char, 2u>, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned char, 2u>, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned char, 2u>, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned char, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned char, 2u>, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned char, 2u>, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned char, 2u>, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned char, 2u>, itk::VectorImage<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned char, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned char, 3u>, itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned char, 3u>, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned char, 3u>, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned char, 3u>, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned char, 3u>, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned char, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned char, 3u>, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned char, 3u>, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned char, 3u>, itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned char, 3u>, itk::VectorImage<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned int, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned int, 2u>, itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned int, 2u>, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned int, 2u>, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned int, 2u>, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned int, 2u>, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned int, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned int, 2u>, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned int, 2u>, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned int, 2u>, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned int, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned int, 3u>, itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned int, 3u>, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned int, 3u>, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned int, 3u>, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned int, 3u>, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned int, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned int, 3u>, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned int, 3u>, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned int, 3u>, itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned long, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned long, 2u>, itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned long, 2u>, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned long, 2u>, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned long, 2u>, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned long, 2u>, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned long, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned long, 2u>, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned long, 2u>, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned long, 2u>, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned long, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned long, 3u>, itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned long, 3u>, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned long, 3u>, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned long, 3u>, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned long, 3u>, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned long, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned long, 3u>, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned long, 3u>, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned long, 3u>, itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned short, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned short, 2u>, itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned short, 2u>, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned short, 2u>, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned short, 2u>, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned short, 2u>, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned short, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned short, 2u>, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned short, 2u>, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned short, 2u>, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned short, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned short, 3u>, itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned short, 3u>, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned short, 3u>, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned short, 3u>, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned short, 3u>, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned short, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned short, 3u>, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned short, 3u>, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::Image<unsigned short, 3u>, itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<double, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<double, 2u>, itk::VectorImage<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<double, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<double, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<double, 3u>, itk::VectorImage<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<double, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<float, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<float, 2u>, itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<float, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<float, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<float, 3u>, itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<float, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<int, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<int, 2u>, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<int, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<int, 2u>, itk::VectorImage<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<int, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<int, 3u>, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<int, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<int, 3u>, itk::VectorImage<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<long, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<long, 2u>, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<long, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<long, 2u>, itk::VectorImage<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<long, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<long, 3u>, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<long, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<long, 3u>, itk::VectorImage<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<short, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<short, 2u>, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<short, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<short, 2u>, itk::VectorImage<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<short, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<short, 3u>, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<short, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<short, 3u>, itk::VectorImage<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<signed char, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<signed char, 2u>, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<signed char, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<signed char, 2u>, itk::VectorImage<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<signed char, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<signed char, 3u>, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<signed char, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<signed char, 3u>, itk::VectorImage<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned char, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned char, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned char, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned char, 2u>, itk::VectorImage<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned char, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned char, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned char, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned char, 3u>, itk::VectorImage<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned int, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned int, 2u>, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned int, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned int, 2u>, itk::VectorImage<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned int, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned int, 3u>, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned int, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned int, 3u>, itk::VectorImage<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned long, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned long, 2u>, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned long, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned long, 2u>, itk::VectorImage<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned long, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned long, 3u>, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned long, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned long, 3u>, itk::VectorImage<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned short, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned short, 2u>, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned short, 2u>, itk::VectorImage<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned short, 2u>, itk::VectorImage<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned short, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned short, 3u>, itk::Image<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned short, 3u>, itk::VectorImage<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::InPlaceImageFilter<itk::VectorImage<unsigned short, 3u>, itk::VectorImage<unsigned short, 3u> >;
+#endif // SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#endif // sitkExplicitITKInPlaceImageFilter_h__
diff --git a/Code/Explicit/include/sitkExplicitITKLabelMap.h b/Code/Explicit/include/sitkExplicitITKLabelMap.h
new file mode 100644
index 0000000..297dbe4
--- /dev/null
+++ b/Code/Explicit/include/sitkExplicitITKLabelMap.h
@@ -0,0 +1,43 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkExplicitITKLabelMap_h__
+#define sitkExplicitITKLabelMap_h__
+#include "sitkExplicit.h"
+#include "itkLabelMap.h"
+
+#ifndef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::LabelMap<itk::AttributeLabelObject<unsigned long long, 2u, bool> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::LabelMap<itk::AttributeLabelObject<unsigned long long, 3u, bool> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::LabelMap<itk::LabelObject<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::LabelMap<itk::LabelObject<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::LabelMap<itk::LabelObject<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::LabelMap<itk::LabelObject<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::LabelMap<itk::LabelObject<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::LabelMap<itk::LabelObject<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::LabelMap<itk::LabelObject<unsigned long long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::LabelMap<itk::LabelObject<unsigned long long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::LabelMap<itk::LabelObject<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::LabelMap<itk::LabelObject<unsigned short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::LabelMap<itk::ShapeLabelObject<unsigned long long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::LabelMap<itk::ShapeLabelObject<unsigned long long, 3u> >;
+#endif // SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#endif // sitkExplicitITKLabelMap_h__
diff --git a/Code/Explicit/include/sitkExplicitITKVectorImage.h b/Code/Explicit/include/sitkExplicitITKVectorImage.h
new file mode 100644
index 0000000..2867658
--- /dev/null
+++ b/Code/Explicit/include/sitkExplicitITKVectorImage.h
@@ -0,0 +1,49 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkExplicitITKVectorImage_h__
+#define sitkExplicitITKVectorImage_h__
+#include "sitkExplicit.h"
+#include "itkVectorImage.h"
+
+#ifndef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorImage<double, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorImage<double, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorImage<float, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorImage<float, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorImage<int, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorImage<int, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorImage<long, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorImage<long, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorImage<long long, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorImage<long long, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorImage<short, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorImage<short, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorImage<signed char, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorImage<signed char, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorImage<unsigned char, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorImage<unsigned char, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorImage<unsigned int, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorImage<unsigned int, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorImage<unsigned long, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorImage<unsigned long, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorImage<unsigned long long, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorImage<unsigned long long, 3u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorImage<unsigned short, 2u>;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorImage<unsigned short, 3u>;
+#endif // SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#endif // sitkExplicitITKVectorImage_h__
diff --git a/Code/Explicit/include/sitkExplicitITKVectorIndexSelectionCastImageFilter.h b/Code/Explicit/include/sitkExplicitITKVectorIndexSelectionCastImageFilter.h
new file mode 100644
index 0000000..a7ed049
--- /dev/null
+++ b/Code/Explicit/include/sitkExplicitITKVectorIndexSelectionCastImageFilter.h
@@ -0,0 +1,49 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkExplicitITKVectorIndexSelectionCastImageFilter_h__
+#define sitkExplicitITKVectorIndexSelectionCastImageFilter_h__
+#include "sitkExplicit.h"
+#include "itkVectorIndexSelectionCastImageFilter.h"
+
+#ifndef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<double, 2u>, itk::Image<double, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<double, 3u>, itk::Image<double, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<float, 2u>, itk::Image<float, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<float, 3u>, itk::Image<float, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<int, 2u>, itk::Image<int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<int, 3u>, itk::Image<int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<long, 2u>, itk::Image<long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<long, 3u>, itk::Image<long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<long long, 2u>, itk::Image<long long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<long long, 3u>, itk::Image<long long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<short, 2u>, itk::Image<short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<short, 3u>, itk::Image<short, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<signed char, 2u>, itk::Image<signed char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<signed char, 3u>, itk::Image<signed char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<unsigned char, 2u>, itk::Image<unsigned char, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<unsigned char, 3u>, itk::Image<unsigned char, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<unsigned int, 2u>, itk::Image<unsigned int, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<unsigned int, 3u>, itk::Image<unsigned int, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<unsigned long, 2u>, itk::Image<unsigned long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<unsigned long, 3u>, itk::Image<unsigned long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<unsigned long long, 2u>, itk::Image<unsigned long long, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<unsigned long long, 3u>, itk::Image<unsigned long long, 3u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<unsigned short, 2u>, itk::Image<unsigned short, 2u> >;
+extern template class SITKExplicit_EXPORT_EXPLICIT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<unsigned short, 3u>, itk::Image<unsigned short, 3u> >;
+#endif // SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#endif // sitkExplicitITKVectorIndexSelectionCastImageFilter_h__
diff --git a/Code/Explicit/src/CMakeLists.txt b/Code/Explicit/src/CMakeLists.txt
new file mode 100644
index 0000000..0dff49b
--- /dev/null
+++ b/Code/Explicit/src/CMakeLists.txt
@@ -0,0 +1,50 @@
+set ( SimpleITKExplicitSource
+  sitkExplicitITKComposeImageFilter.cxx
+  sitkExplicitITKDefaultPixelAccessor.cxx
+  sitkExplicitITKDefaultVectorPixelAccessor.cxx
+  sitkExplicitITKImageBase.cxx
+  sitkExplicitITKImage.cxx
+  sitkExplicitITKImageRegion.cxx
+  sitkExplicitITKImageSource.cxx
+  sitkExplicitITKImageToImageFilter.cxx
+  sitkExplicitITKImportImageContainer.cxx
+  sitkExplicitITKInPlaceImageFilter.cxx
+  sitkExplicitITKLabelMap.cxx
+  sitkExplicitITKVectorImage.cxx
+  sitkExplicitITKVectorIndexSelectionCastImageFilter.cxx
+  sitkExplicitITKImageConstIterator.cxx
+  sitkExplicitITKImageRegionConstIterator.cxx
+  sitkExplicitITKImageScanlineConstIterator.cxx
+  sitkExplicitITKImageScanlineIterator.cxx
+
+  )
+
+
+set(use_itk_modules ITKCommon ITKImageCompose ITKImageIntensity ITKLabelMap)
+find_package(ITK COMPONENTS ${use_itk_modules} REQUIRED)
+include(${ITK_USE_FILE})
+
+if ( MSVC AND SITK_BUILD_SHARED_LIBS )
+  set( SimpleITKExplicit_FORCE_LIBRARY_TYPE "STATIC" )
+endif()
+add_library ( SimpleITKExplicit ${SimpleITKExplicit_FORCE_LIBRARY_TYPE} ${SimpleITKExplicitSource} )
+if( SITK_BUILD_SHARED_LIBS )
+  set_target_properties(SimpleITKExplicit PROPERTIES CXX_VISIBILITY_PRESET default)
+endif()
+sitk_target_use_itk( SimpleITKExplicit PUBLIC ${use_itk_modules} )
+target_include_directories ( SimpleITKExplicit
+  PUBLIC
+    $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/Code/Explicit/include>
+    $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/Code/Common/include>
+    $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/Code/Common/include>
+    $<INSTALL_INTERFACE:${SimpleITK_INSTALL_INCLUDE_DIR}> )
+target_compile_definitions( SimpleITKExplicit
+  PUBLIC
+    SITK_USE_EXPLICITITK )
+target_compile_options( SimpleITKExplicit
+  PUBLIC
+    ${SimpleITK_PUBLIC_COMPILE_OPTIONS}
+  PRIVATE
+    ${SimpleITK_PRIVATE_COMPILE_OPTIONS} )
+
+sitk_install_exported_target( SimpleITKExplicit )
diff --git a/Code/Explicit/src/sitkExplicitITKComposeImageFilter.cxx b/Code/Explicit/src/sitkExplicitITKComposeImageFilter.cxx
new file mode 100644
index 0000000..7ec917f
--- /dev/null
+++ b/Code/Explicit/src/sitkExplicitITKComposeImageFilter.cxx
@@ -0,0 +1,46 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#define  SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITKComposeImageFilter.h"
+#undef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITK.h"
+
+template class SITKExplicit_EXPORT itk::ComposeImageFilter<itk::Image<double, 2u>, itk::VectorImage<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ComposeImageFilter<itk::Image<double, 3u>, itk::VectorImage<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ComposeImageFilter<itk::Image<float, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ComposeImageFilter<itk::Image<float, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ComposeImageFilter<itk::Image<int, 2u>, itk::VectorImage<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ComposeImageFilter<itk::Image<int, 3u>, itk::VectorImage<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ComposeImageFilter<itk::Image<long, 2u>, itk::VectorImage<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ComposeImageFilter<itk::Image<long, 3u>, itk::VectorImage<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ComposeImageFilter<itk::Image<long long, 2u>, itk::VectorImage<long long, 2u> >;
+template class SITKExplicit_EXPORT itk::ComposeImageFilter<itk::Image<long long, 3u>, itk::VectorImage<long long, 3u> >;
+template class SITKExplicit_EXPORT itk::ComposeImageFilter<itk::Image<short, 2u>, itk::VectorImage<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ComposeImageFilter<itk::Image<short, 3u>, itk::VectorImage<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ComposeImageFilter<itk::Image<signed char, 2u>, itk::VectorImage<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ComposeImageFilter<itk::Image<signed char, 3u>, itk::VectorImage<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ComposeImageFilter<itk::Image<unsigned char, 2u>, itk::VectorImage<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ComposeImageFilter<itk::Image<unsigned char, 3u>, itk::VectorImage<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ComposeImageFilter<itk::Image<unsigned int, 2u>, itk::VectorImage<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ComposeImageFilter<itk::Image<unsigned int, 3u>, itk::VectorImage<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ComposeImageFilter<itk::Image<unsigned long, 2u>, itk::VectorImage<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ComposeImageFilter<itk::Image<unsigned long, 3u>, itk::VectorImage<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ComposeImageFilter<itk::Image<unsigned long long, 2u>, itk::VectorImage<unsigned long long, 2u> >;
+template class SITKExplicit_EXPORT itk::ComposeImageFilter<itk::Image<unsigned long long, 3u>, itk::VectorImage<unsigned long long, 3u> >;
+template class SITKExplicit_EXPORT itk::ComposeImageFilter<itk::Image<unsigned short, 2u>, itk::VectorImage<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ComposeImageFilter<itk::Image<unsigned short, 3u>, itk::VectorImage<unsigned short, 3u> >;
diff --git a/Code/Explicit/src/sitkExplicitITKDefaultPixelAccessor.cxx b/Code/Explicit/src/sitkExplicitITKDefaultPixelAccessor.cxx
new file mode 100644
index 0000000..d525306
--- /dev/null
+++ b/Code/Explicit/src/sitkExplicitITKDefaultPixelAccessor.cxx
@@ -0,0 +1,50 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#define  SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITKDefaultPixelAccessor.h"
+#undef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITK.h"
+
+template class SITKExplicit_EXPORT itk::DefaultPixelAccessor<bool>;
+template class SITKExplicit_EXPORT itk::DefaultPixelAccessor<char>;
+template class SITKExplicit_EXPORT itk::DefaultPixelAccessor<double>;
+template class SITKExplicit_EXPORT itk::DefaultPixelAccessor<float>;
+template class SITKExplicit_EXPORT itk::DefaultPixelAccessor<int>;
+template class SITKExplicit_EXPORT itk::DefaultPixelAccessor<itk::CovariantVector<double, 2u> >;
+template class SITKExplicit_EXPORT itk::DefaultPixelAccessor<itk::CovariantVector<double, 3u> >;
+template class SITKExplicit_EXPORT itk::DefaultPixelAccessor<itk::CovariantVector<float, 2u> >;
+template class SITKExplicit_EXPORT itk::DefaultPixelAccessor<itk::CovariantVector<float, 3u> >;
+template class SITKExplicit_EXPORT itk::DefaultPixelAccessor<itk::Offset<2u> >;
+template class SITKExplicit_EXPORT itk::DefaultPixelAccessor<itk::Offset<3u> >;
+template class SITKExplicit_EXPORT itk::DefaultPixelAccessor<itk::Vector<double, 1u> >;
+template class SITKExplicit_EXPORT itk::DefaultPixelAccessor<itk::Vector<double, 2u> >;
+template class SITKExplicit_EXPORT itk::DefaultPixelAccessor<itk::Vector<double, 3u> >;
+template class SITKExplicit_EXPORT itk::DefaultPixelAccessor<itk::Vector<float, 1u> >;
+template class SITKExplicit_EXPORT itk::DefaultPixelAccessor<itk::Vector<float, 2u> >;
+template class SITKExplicit_EXPORT itk::DefaultPixelAccessor<itk::Vector<float, 3u> >;
+template class SITKExplicit_EXPORT itk::DefaultPixelAccessor<long>;
+template class SITKExplicit_EXPORT itk::DefaultPixelAccessor<long long>;
+template class SITKExplicit_EXPORT itk::DefaultPixelAccessor<short>;
+template class SITKExplicit_EXPORT itk::DefaultPixelAccessor<signed char>;
+template class SITKExplicit_EXPORT itk::DefaultPixelAccessor<std::complex<double> >;
+template class SITKExplicit_EXPORT itk::DefaultPixelAccessor<std::complex<float> >;
+template class SITKExplicit_EXPORT itk::DefaultPixelAccessor<unsigned char>;
+template class SITKExplicit_EXPORT itk::DefaultPixelAccessor<unsigned int>;
+template class SITKExplicit_EXPORT itk::DefaultPixelAccessor<unsigned long>;
+template class SITKExplicit_EXPORT itk::DefaultPixelAccessor<unsigned long long>;
+template class SITKExplicit_EXPORT itk::DefaultPixelAccessor<unsigned short>;
diff --git a/Code/Explicit/src/sitkExplicitITKDefaultVectorPixelAccessor.cxx b/Code/Explicit/src/sitkExplicitITKDefaultVectorPixelAccessor.cxx
new file mode 100644
index 0000000..992a6b2
--- /dev/null
+++ b/Code/Explicit/src/sitkExplicitITKDefaultVectorPixelAccessor.cxx
@@ -0,0 +1,34 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#define  SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITKDefaultVectorPixelAccessor.h"
+#undef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITK.h"
+
+template class SITKExplicit_EXPORT itk::DefaultVectorPixelAccessor<double>;
+template class SITKExplicit_EXPORT itk::DefaultVectorPixelAccessor<float>;
+template class SITKExplicit_EXPORT itk::DefaultVectorPixelAccessor<int>;
+template class SITKExplicit_EXPORT itk::DefaultVectorPixelAccessor<long>;
+template class SITKExplicit_EXPORT itk::DefaultVectorPixelAccessor<long long>;
+template class SITKExplicit_EXPORT itk::DefaultVectorPixelAccessor<short>;
+template class SITKExplicit_EXPORT itk::DefaultVectorPixelAccessor<signed char>;
+template class SITKExplicit_EXPORT itk::DefaultVectorPixelAccessor<unsigned char>;
+template class SITKExplicit_EXPORT itk::DefaultVectorPixelAccessor<unsigned int>;
+template class SITKExplicit_EXPORT itk::DefaultVectorPixelAccessor<unsigned long>;
+template class SITKExplicit_EXPORT itk::DefaultVectorPixelAccessor<unsigned long long>;
+template class SITKExplicit_EXPORT itk::DefaultVectorPixelAccessor<unsigned short>;
diff --git a/Code/Explicit/src/sitkExplicitITKImage.cxx b/Code/Explicit/src/sitkExplicitITKImage.cxx
new file mode 100644
index 0000000..3525ab9
--- /dev/null
+++ b/Code/Explicit/src/sitkExplicitITKImage.cxx
@@ -0,0 +1,75 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#define  SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITKImage.h"
+#undef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITK.h"
+
+template class SITKExplicit_EXPORT itk::Image<bool, 2u>;
+template class SITKExplicit_EXPORT itk::Image<bool, 3u>;
+template class SITKExplicit_EXPORT itk::Image<char, 2u>;
+template class SITKExplicit_EXPORT itk::Image<char, 3u>;
+template class SITKExplicit_EXPORT itk::Image<double, 1u>;
+template class SITKExplicit_EXPORT itk::Image<double, 2u>;
+template class SITKExplicit_EXPORT itk::Image<double, 3u>;
+template class SITKExplicit_EXPORT itk::Image<float, 1u>;
+template class SITKExplicit_EXPORT itk::Image<float, 2u>;
+template class SITKExplicit_EXPORT itk::Image<float, 3u>;
+template class SITKExplicit_EXPORT itk::Image<int, 2u>;
+template class SITKExplicit_EXPORT itk::Image<int, 3u>;
+template class SITKExplicit_EXPORT itk::Image<itk::CovariantVector<double, 2u>, 2u>;
+template class SITKExplicit_EXPORT itk::Image<itk::CovariantVector<double, 3u>, 3u>;
+template class SITKExplicit_EXPORT itk::Image<itk::CovariantVector<float, 2u>, 2u>;
+template class SITKExplicit_EXPORT itk::Image<itk::CovariantVector<float, 3u>, 3u>;
+template class SITKExplicit_EXPORT itk::Image<itk::FixedArray<float, 2u>, 2u>;
+template class SITKExplicit_EXPORT itk::Image<itk::FixedArray<float, 3u>, 3u>;
+template class SITKExplicit_EXPORT itk::Image<itk::Offset<2u>, 2u>;
+template class SITKExplicit_EXPORT itk::Image<itk::Offset<3u>, 3u>;
+template class SITKExplicit_EXPORT itk::Image<itk::Vector<double, 1u>, 1u>;
+template class SITKExplicit_EXPORT itk::Image<itk::Vector<double, 2u>, 2u>;
+template class SITKExplicit_EXPORT itk::Image<itk::Vector<double, 3u>, 3u>;
+template class SITKExplicit_EXPORT itk::Image<itk::Vector<float, 1u>, 3u>;
+template class SITKExplicit_EXPORT itk::Image<itk::Vector<float, 2u>, 2u>;
+template class SITKExplicit_EXPORT itk::Image<itk::Vector<float, 3u>, 3u>;
+template class SITKExplicit_EXPORT itk::Image<long, 1u>;
+template class SITKExplicit_EXPORT itk::Image<long, 2u>;
+template class SITKExplicit_EXPORT itk::Image<long, 3u>;
+template class SITKExplicit_EXPORT itk::Image<long long, 1u>;
+template class SITKExplicit_EXPORT itk::Image<long long, 2u>;
+template class SITKExplicit_EXPORT itk::Image<long long, 3u>;
+template class SITKExplicit_EXPORT itk::Image<short, 2u>;
+template class SITKExplicit_EXPORT itk::Image<short, 3u>;
+template class SITKExplicit_EXPORT itk::Image<signed char, 2u>;
+template class SITKExplicit_EXPORT itk::Image<signed char, 3u>;
+template class SITKExplicit_EXPORT itk::Image<std::complex<double>, 2u>;
+template class SITKExplicit_EXPORT itk::Image<std::complex<double>, 3u>;
+template class SITKExplicit_EXPORT itk::Image<std::complex<float>, 2u>;
+template class SITKExplicit_EXPORT itk::Image<std::complex<float>, 3u>;
+template class SITKExplicit_EXPORT itk::Image<std::deque<itk::LabelObjectLine<2u>, std::allocator<itk::LabelObjectLine<2u> > >, 1u>;
+template class SITKExplicit_EXPORT itk::Image<std::deque<itk::LabelObjectLine<3u>, std::allocator<itk::LabelObjectLine<3u> > >, 2u>;
+template class SITKExplicit_EXPORT itk::Image<unsigned char, 1u>;
+template class SITKExplicit_EXPORT itk::Image<unsigned char, 2u>;
+template class SITKExplicit_EXPORT itk::Image<unsigned char, 3u>;
+template class SITKExplicit_EXPORT itk::Image<unsigned int, 2u>;
+template class SITKExplicit_EXPORT itk::Image<unsigned int, 3u>;
+template class SITKExplicit_EXPORT itk::Image<unsigned long, 2u>;
+template class SITKExplicit_EXPORT itk::Image<unsigned long, 3u>;
+template class SITKExplicit_EXPORT itk::Image<unsigned long long, 2u>;
+template class SITKExplicit_EXPORT itk::Image<unsigned long long, 3u>;
+template class SITKExplicit_EXPORT itk::Image<unsigned short, 2u>;
+template class SITKExplicit_EXPORT itk::Image<unsigned short, 3u>;
diff --git a/Code/Explicit/src/sitkExplicitITKImageBase.cxx b/Code/Explicit/src/sitkExplicitITKImageBase.cxx
new file mode 100644
index 0000000..62d68c0
--- /dev/null
+++ b/Code/Explicit/src/sitkExplicitITKImageBase.cxx
@@ -0,0 +1,25 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#define  SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITKImageBase.h"
+#undef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITK.h"
+
+template class SITKExplicit_EXPORT itk::ImageBase<1u>;
+template class SITKExplicit_EXPORT itk::ImageBase<2u>;
+template class SITKExplicit_EXPORT itk::ImageBase<3u>;
diff --git a/Code/Explicit/src/sitkExplicitITKImageConstIterator.cxx b/Code/Explicit/src/sitkExplicitITKImageConstIterator.cxx
new file mode 100644
index 0000000..0f946ee
--- /dev/null
+++ b/Code/Explicit/src/sitkExplicitITKImageConstIterator.cxx
@@ -0,0 +1,84 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#define  SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITKImageConstIterator.h"
+#undef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITK.h"
+
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<bool, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<bool, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<float, 1u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<itk::CovariantVector<double, 2u>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<itk::CovariantVector<double, 3u>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<itk::CovariantVector<float, 2u>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<itk::CovariantVector<float, 3u>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<itk::Vector<double, 1u>, 1u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<itk::Vector<double, 2u>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<itk::Vector<double, 3u>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<itk::Vector<float, 1u>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<itk::Vector<float, 2u>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<itk::Vector<float, 3u>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<long long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<long long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<std::complex<double>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<std::complex<double>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<std::complex<float>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<std::complex<float>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<unsigned char, 1u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<unsigned long long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<unsigned long long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::Image<unsigned short, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::VectorImage<double, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::VectorImage<double, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::VectorImage<float, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::VectorImage<float, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::VectorImage<int, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::VectorImage<int, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::VectorImage<long, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::VectorImage<long, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::VectorImage<short, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::VectorImage<short, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::VectorImage<signed char, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::VectorImage<signed char, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::VectorImage<unsigned char, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::VectorImage<unsigned char, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::VectorImage<unsigned int, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::VectorImage<unsigned int, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::VectorImage<unsigned long, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::VectorImage<unsigned long, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::VectorImage<unsigned short, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageConstIterator<itk::VectorImage<unsigned short, 3u> >;
diff --git a/Code/Explicit/src/sitkExplicitITKImageRegion.cxx b/Code/Explicit/src/sitkExplicitITKImageRegion.cxx
new file mode 100644
index 0000000..3981f64
--- /dev/null
+++ b/Code/Explicit/src/sitkExplicitITKImageRegion.cxx
@@ -0,0 +1,25 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#define  SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITKImageRegion.h"
+#undef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITK.h"
+
+template class SITKExplicit_EXPORT itk::ImageRegion<1u>;
+template class SITKExplicit_EXPORT itk::ImageRegion<2u>;
+template class SITKExplicit_EXPORT itk::ImageRegion<3u>;
diff --git a/Code/Explicit/src/sitkExplicitITKImageRegionConstIterator.cxx b/Code/Explicit/src/sitkExplicitITKImageRegionConstIterator.cxx
new file mode 100644
index 0000000..8dcd117
--- /dev/null
+++ b/Code/Explicit/src/sitkExplicitITKImageRegionConstIterator.cxx
@@ -0,0 +1,63 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#define  SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITKImageRegionConstIterator.h"
+#undef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITK.h"
+
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<bool, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<bool, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<float, 1u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<itk::CovariantVector<double, 2u>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<itk::CovariantVector<double, 3u>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<itk::CovariantVector<float, 2u>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<itk::CovariantVector<float, 3u>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<itk::Vector<double, 1u>, 1u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<itk::Vector<double, 2u>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<itk::Vector<double, 3u>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<itk::Vector<float, 1u>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<long long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<long long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<std::complex<double>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<std::complex<double>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<std::complex<float>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<std::complex<float>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<unsigned char, 1u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<unsigned long long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<unsigned long long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::Image<unsigned short, 3u> >;
+//template class SITKExplicit_EXPORT itk::ImageRegionConstIterator<itk::VectorImage<unsigned short, 3u> >;
diff --git a/Code/Explicit/src/sitkExplicitITKImageScanlineConstIterator.cxx b/Code/Explicit/src/sitkExplicitITKImageScanlineConstIterator.cxx
new file mode 100644
index 0000000..b2c561c
--- /dev/null
+++ b/Code/Explicit/src/sitkExplicitITKImageScanlineConstIterator.cxx
@@ -0,0 +1,79 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#define  SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITKImageScanlineConstIterator.h"
+#undef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITK.h"
+
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<itk::CovariantVector<float, 2u>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<itk::CovariantVector<float, 3u>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<itk::Vector<double, 1u>, 1u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<itk::Vector<double, 2u>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<itk::Vector<double, 3u>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<itk::Vector<float, 1u>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<itk::Vector<float, 2u>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<itk::Vector<float, 3u>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<long long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<long long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<std::complex<double>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<std::complex<double>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<std::complex<float>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<std::complex<float>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<unsigned char, 1u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<unsigned long long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<unsigned long long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::Image<unsigned short, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::VectorImage<double, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::VectorImage<double, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::VectorImage<float, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::VectorImage<float, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::VectorImage<int, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::VectorImage<int, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::VectorImage<long, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::VectorImage<long, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::VectorImage<short, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::VectorImage<short, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::VectorImage<signed char, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::VectorImage<signed char, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::VectorImage<unsigned char, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::VectorImage<unsigned char, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::VectorImage<unsigned int, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::VectorImage<unsigned int, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::VectorImage<unsigned long, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::VectorImage<unsigned long, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::VectorImage<unsigned short, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineConstIterator<itk::VectorImage<unsigned short, 3u> >;
diff --git a/Code/Explicit/src/sitkExplicitITKImageScanlineIterator.cxx b/Code/Explicit/src/sitkExplicitITKImageScanlineIterator.cxx
new file mode 100644
index 0000000..75f4c14
--- /dev/null
+++ b/Code/Explicit/src/sitkExplicitITKImageScanlineIterator.cxx
@@ -0,0 +1,77 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#define  SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITKImageScanlineIterator.h"
+#undef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITK.h"
+
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<itk::Vector<double, 1u>, 1u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<itk::Vector<double, 2u>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<itk::Vector<double, 3u>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<itk::Vector<float, 1u>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<itk::Vector<float, 2u>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<itk::Vector<float, 3u>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<long long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<long long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<std::complex<double>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<std::complex<double>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<std::complex<float>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<std::complex<float>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<unsigned char, 1u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<unsigned long long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<unsigned long long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::Image<unsigned short, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::VectorImage<double, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::VectorImage<double, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::VectorImage<float, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::VectorImage<float, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::VectorImage<int, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::VectorImage<int, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::VectorImage<long, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::VectorImage<long, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::VectorImage<short, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::VectorImage<short, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::VectorImage<signed char, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::VectorImage<signed char, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::VectorImage<unsigned char, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::VectorImage<unsigned char, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::VectorImage<unsigned int, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::VectorImage<unsigned int, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::VectorImage<unsigned long, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::VectorImage<unsigned long, 3u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::VectorImage<unsigned short, 2u> >;
+// template class SITKExplicit_EXPORT itk::ImageScanlineIterator<itk::VectorImage<unsigned short, 3u> >;
diff --git a/Code/Explicit/src/sitkExplicitITKImageSource.cxx b/Code/Explicit/src/sitkExplicitITKImageSource.cxx
new file mode 100644
index 0000000..2565031
--- /dev/null
+++ b/Code/Explicit/src/sitkExplicitITKImageSource.cxx
@@ -0,0 +1,103 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#define  SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITKImageSource.h"
+#undef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITK.h"
+
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<bool, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<bool, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<itk::CovariantVector<double, 2u>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<itk::CovariantVector<double, 3u>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<itk::Vector<double, 1u>, 1u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<itk::Vector<double, 2u>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<itk::Vector<double, 3u>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<itk::Vector<float, 1u>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<itk::Vector<float, 2u>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<itk::Vector<float, 3u>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<long long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<long long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<std::complex<double>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<std::complex<double>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<std::complex<float>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<std::complex<float>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<unsigned char, 1u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<unsigned long long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<unsigned long long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> > >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> > >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::LabelMap<itk::AttributeLabelObject<unsigned long long, 2u, bool> > >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::LabelMap<itk::AttributeLabelObject<unsigned long long, 3u, bool> > >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::LabelMap<itk::LabelObject<unsigned char, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::LabelMap<itk::LabelObject<unsigned char, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::LabelMap<itk::LabelObject<unsigned int, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::LabelMap<itk::LabelObject<unsigned int, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::LabelMap<itk::LabelObject<unsigned long, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::LabelMap<itk::LabelObject<unsigned long, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::LabelMap<itk::LabelObject<unsigned long long, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::LabelMap<itk::LabelObject<unsigned long long, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::LabelMap<itk::LabelObject<unsigned short, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::LabelMap<itk::LabelObject<unsigned short, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::LabelMap<itk::ShapeLabelObject<unsigned long long, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::LabelMap<itk::ShapeLabelObject<unsigned long long, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::VectorImage<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::VectorImage<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::VectorImage<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::VectorImage<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::VectorImage<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::VectorImage<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::VectorImage<long long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::VectorImage<long long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::VectorImage<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::VectorImage<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::VectorImage<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::VectorImage<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::VectorImage<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::VectorImage<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::VectorImage<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::VectorImage<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::VectorImage<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::VectorImage<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::VectorImage<unsigned long long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::VectorImage<unsigned long long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::VectorImage<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageSource<itk::VectorImage<unsigned short, 3u> >;
diff --git a/Code/Explicit/src/sitkExplicitITKImageToImageFilter.cxx b/Code/Explicit/src/sitkExplicitITKImageToImageFilter.cxx
new file mode 100644
index 0000000..c35b3dc
--- /dev/null
+++ b/Code/Explicit/src/sitkExplicitITKImageToImageFilter.cxx
@@ -0,0 +1,642 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#define  SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITKImageToImageFilter.h"
+#undef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITK.h"
+
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<bool, 2u>, itk::Image<bool, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<bool, 3u>, itk::Image<bool, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<double, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<double, 2u>, itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<double, 2u>, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<double, 2u>, itk::Image<itk::CovariantVector<double, 2u>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<double, 2u>, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<double, 2u>, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<double, 2u>, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<double, 2u>, itk::Image<std::complex<double>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<double, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<double, 2u>, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<double, 2u>, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<double, 2u>, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<double, 2u>, itk::VectorImage<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<double, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<double, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<double, 3u>, itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<double, 3u>, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<double, 3u>, itk::Image<itk::CovariantVector<double, 3u>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<double, 3u>, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<double, 3u>, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<double, 3u>, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<double, 3u>, itk::Image<std::complex<double>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<double, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<double, 3u>, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<double, 3u>, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<double, 3u>, itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<double, 3u>, itk::VectorImage<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<double, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<float, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<float, 2u>, itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<float, 2u>, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<float, 2u>, itk::Image<itk::CovariantVector<double, 2u>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<float, 2u>, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<float, 2u>, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<float, 2u>, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<float, 2u>, itk::Image<std::complex<float>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<float, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<float, 2u>, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<float, 2u>, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<float, 2u>, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<float, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<float, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<float, 3u>, itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<float, 3u>, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<float, 3u>, itk::Image<itk::CovariantVector<double, 3u>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<float, 3u>, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<float, 3u>, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<float, 3u>, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<float, 3u>, itk::Image<std::complex<float>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<float, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<float, 3u>, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<float, 3u>, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<float, 3u>, itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<float, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::LabelMap<itk::LabelObject<unsigned int, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::VectorImage<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 2u>, itk::VectorImage<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::LabelMap<itk::LabelObject<unsigned int, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::VectorImage<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<int, 3u>, itk::VectorImage<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<itk::Vector<double, 2u>, 2u>, itk::Image<itk::Vector<double, 2u>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<itk::Vector<double, 3u>, 3u>, itk::Image<itk::Vector<double, 3u>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<itk::Vector<float, 1u>, 3u>, itk::Image<itk::Vector<float, 1u>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<itk::Vector<float, 2u>, 2u>, itk::Image<itk::Vector<float, 2u>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<itk::Vector<float, 3u>, 3u>, itk::Image<itk::Vector<float, 3u>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::LabelMap<itk::LabelObject<unsigned int, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::VectorImage<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 2u>, itk::VectorImage<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::LabelMap<itk::LabelObject<unsigned int, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::VectorImage<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<long, 3u>, itk::VectorImage<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::LabelMap<itk::LabelObject<unsigned int, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::VectorImage<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 2u>, itk::VectorImage<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::LabelMap<itk::LabelObject<unsigned int, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::VectorImage<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<short, 3u>, itk::VectorImage<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::LabelMap<itk::LabelObject<unsigned int, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::VectorImage<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 2u>, itk::VectorImage<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::LabelMap<itk::LabelObject<unsigned int, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::VectorImage<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<signed char, 3u>, itk::VectorImage<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<std::complex<double>, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<std::complex<double>, 2u>, itk::Image<std::complex<double>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<std::complex<double>, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<std::complex<double>, 3u>, itk::Image<std::complex<double>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<std::complex<float>, 2u>, itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<std::complex<float>, 2u>, itk::Image<std::complex<float>, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<std::complex<float>, 3u>, itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<std::complex<float>, 3u>, itk::Image<std::complex<float>, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 1u>, itk::Image<unsigned char, 1u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::LabelMap<itk::LabelObject<unsigned char, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::LabelMap<itk::LabelObject<unsigned int, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::LabelMap<itk::LabelObject<unsigned long, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::LabelMap<itk::LabelObject<unsigned short, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 2u>, itk::VectorImage<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::LabelMap<itk::LabelObject<unsigned char, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::LabelMap<itk::LabelObject<unsigned int, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::LabelMap<itk::LabelObject<unsigned long, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::LabelMap<itk::LabelObject<unsigned short, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned char, 3u>, itk::VectorImage<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::LabelMap<itk::LabelObject<unsigned int, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::VectorImage<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 2u>, itk::VectorImage<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::LabelMap<itk::LabelObject<unsigned int, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::VectorImage<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned int, 3u>, itk::VectorImage<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::LabelMap<itk::LabelObject<unsigned int, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::LabelMap<itk::LabelObject<unsigned long, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::VectorImage<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 2u>, itk::VectorImage<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::LabelMap<itk::LabelObject<unsigned int, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::LabelMap<itk::LabelObject<unsigned long, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::VectorImage<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned long, 3u>, itk::VectorImage<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::LabelMap<itk::LabelObject<unsigned int, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::LabelMap<itk::LabelObject<unsigned short, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::VectorImage<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 2u>, itk::VectorImage<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::LabelMap<itk::LabelObject<unsigned int, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::LabelMap<itk::LabelObject<unsigned short, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::VectorImage<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::Image<unsigned short, 3u>, itk::VectorImage<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> >, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> >, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> >, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> >, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> >, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> >, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> >, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> >, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> >, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> >, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> >, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> >, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> >, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> >, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> >, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> >, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> >, itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> >, itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::LabelMap<itk::LabelObject<unsigned char, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::VectorImage<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::VectorImage<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::VectorImage<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::VectorImage<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::VectorImage<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::VectorImage<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::VectorImage<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::VectorImage<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 2u> >, itk::VectorImage<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::LabelMap<itk::LabelObject<unsigned char, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::VectorImage<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::VectorImage<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::VectorImage<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::VectorImage<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::VectorImage<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::VectorImage<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::VectorImage<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::VectorImage<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned char, 3u> >, itk::VectorImage<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::LabelMap<itk::LabelObject<unsigned int, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::VectorImage<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::VectorImage<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::VectorImage<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::VectorImage<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::VectorImage<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::VectorImage<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::VectorImage<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::VectorImage<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 2u> >, itk::VectorImage<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::LabelMap<itk::LabelObject<unsigned int, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::VectorImage<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::VectorImage<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::VectorImage<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::VectorImage<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::VectorImage<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::VectorImage<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::VectorImage<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::VectorImage<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned int, 3u> >, itk::VectorImage<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::LabelMap<itk::LabelObject<unsigned long, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::VectorImage<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::VectorImage<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::VectorImage<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::VectorImage<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::VectorImage<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::VectorImage<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::VectorImage<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::VectorImage<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 2u> >, itk::VectorImage<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::LabelMap<itk::LabelObject<unsigned long, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::VectorImage<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::VectorImage<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::VectorImage<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::VectorImage<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::VectorImage<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::VectorImage<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::VectorImage<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::VectorImage<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned long, 3u> >, itk::VectorImage<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::LabelMap<itk::LabelObject<unsigned short, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::VectorImage<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::VectorImage<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::VectorImage<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::VectorImage<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::VectorImage<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::VectorImage<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::VectorImage<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::VectorImage<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 2u> >, itk::VectorImage<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::LabelMap<itk::LabelObject<unsigned short, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::VectorImage<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::VectorImage<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::VectorImage<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::VectorImage<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::VectorImage<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::VectorImage<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::VectorImage<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::VectorImage<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::LabelObject<unsigned short, 3u> >, itk::VectorImage<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> >, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> >, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> >, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> >, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> >, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> >, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> >, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> >, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> >, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> >, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> >, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> >, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> >, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> >, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> >, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> >, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> >, itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> >, itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> > >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<double, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<double, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<double, 2u>, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<double, 2u>, itk::VectorImage<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<double, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<double, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<double, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<double, 3u>, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<double, 3u>, itk::VectorImage<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<double, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<float, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<float, 2u>, itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<float, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<float, 2u>, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<float, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<float, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<float, 3u>, itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<float, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<float, 3u>, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<float, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<int, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<int, 2u>, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<int, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<int, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<int, 2u>, itk::VectorImage<int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<int, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<int, 3u>, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<int, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<int, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<int, 3u>, itk::VectorImage<int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<long, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<long, 2u>, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<long, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<long, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<long, 2u>, itk::VectorImage<long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<long, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<long, 3u>, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<long, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<long, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<long, 3u>, itk::VectorImage<long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<short, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<short, 2u>, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<short, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<short, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<short, 2u>, itk::VectorImage<short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<short, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<short, 3u>, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<short, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<short, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<short, 3u>, itk::VectorImage<short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<signed char, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<signed char, 2u>, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<signed char, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<signed char, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<signed char, 2u>, itk::VectorImage<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<signed char, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<signed char, 3u>, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<signed char, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<signed char, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<signed char, 3u>, itk::VectorImage<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned char, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned char, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned char, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned char, 2u>, itk::VectorImage<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned char, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned char, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned char, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned char, 3u>, itk::VectorImage<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned int, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned int, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned int, 2u>, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned int, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned int, 2u>, itk::VectorImage<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned int, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned int, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned int, 3u>, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned int, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned int, 3u>, itk::VectorImage<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned long, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned long, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned long, 2u>, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned long, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned long, 2u>, itk::VectorImage<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned long, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned long, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned long, 3u>, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned long, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned long, 3u>, itk::VectorImage<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned short, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned short, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned short, 2u>, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned short, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned short, 2u>, itk::VectorImage<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned short, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned short, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned short, 3u>, itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned short, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImageToImageFilter<itk::VectorImage<unsigned short, 3u>, itk::VectorImage<unsigned short, 3u> >;
diff --git a/Code/Explicit/src/sitkExplicitITKImportImageContainer.cxx b/Code/Explicit/src/sitkExplicitITKImportImageContainer.cxx
new file mode 100644
index 0000000..a90b670
--- /dev/null
+++ b/Code/Explicit/src/sitkExplicitITKImportImageContainer.cxx
@@ -0,0 +1,54 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#define  SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITKImportImageContainer.h"
+#undef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITK.h"
+
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, bool>;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, char>;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, double>;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, float>;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, int>;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, itk::CovariantVector<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, itk::CovariantVector<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, itk::CovariantVector<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, itk::CovariantVector<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, itk::FixedArray<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, itk::FixedArray<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, itk::Offset<2u> >;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, itk::Offset<3u> >;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, itk::Vector<double, 1u> >;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, itk::Vector<double, 2u> >;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, itk::Vector<double, 3u> >;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, itk::Vector<float, 1u> >;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, itk::Vector<float, 2u> >;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, itk::Vector<float, 3u> >;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, long>;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, long long>;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, short>;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, signed char>;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, std::complex<double> >;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, std::complex<float> >;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, std::deque<itk::LabelObjectLine<2u>, std::allocator<itk::LabelObjectLine<2u> > > >;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, std::deque<itk::LabelObjectLine<3u>, std::allocator<itk::LabelObjectLine<3u> > > >;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, unsigned char>;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, unsigned int>;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, unsigned long>;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, unsigned long long>;
+template class SITKExplicit_EXPORT itk::ImportImageContainer<itk::SizeValueType, unsigned short>;
diff --git a/Code/Explicit/src/sitkExplicitITKInPlaceImageFilter.cxx b/Code/Explicit/src/sitkExplicitITKInPlaceImageFilter.cxx
new file mode 100644
index 0000000..8ec056e
--- /dev/null
+++ b/Code/Explicit/src/sitkExplicitITKInPlaceImageFilter.cxx
@@ -0,0 +1,316 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#define  SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITKInPlaceImageFilter.h"
+#undef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITK.h"
+
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<double, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<double, 2u>, itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<double, 2u>, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<double, 2u>, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<double, 2u>, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<double, 2u>, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<double, 2u>, itk::Image<std::complex<double>, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<double, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<double, 2u>, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<double, 2u>, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<double, 2u>, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<double, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<double, 3u>, itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<double, 3u>, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<double, 3u>, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<double, 3u>, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<double, 3u>, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<double, 3u>, itk::Image<std::complex<double>, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<double, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<double, 3u>, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<double, 3u>, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<double, 3u>, itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<float, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<float, 2u>, itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<float, 2u>, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<float, 2u>, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<float, 2u>, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<float, 2u>, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<float, 2u>, itk::Image<std::complex<float>, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<float, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<float, 2u>, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<float, 2u>, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<float, 2u>, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<float, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<float, 3u>, itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<float, 3u>, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<float, 3u>, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<float, 3u>, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<float, 3u>, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<float, 3u>, itk::Image<std::complex<float>, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<float, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<float, 3u>, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<float, 3u>, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<float, 3u>, itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<int, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<int, 2u>, itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<int, 2u>, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<int, 2u>, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<int, 2u>, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<int, 2u>, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<int, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<int, 2u>, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<int, 2u>, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<int, 2u>, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<int, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<int, 3u>, itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<int, 3u>, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<int, 3u>, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<int, 3u>, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<int, 3u>, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<int, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<int, 3u>, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<int, 3u>, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<int, 3u>, itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<itk::Vector<double, 2u>, 2u>, itk::Image<itk::Vector<double, 2u>, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<itk::Vector<double, 3u>, 3u>, itk::Image<itk::Vector<double, 3u>, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<itk::Vector<float, 1u>, 3u>, itk::Image<itk::Vector<float, 1u>, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<long, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<long, 2u>, itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<long, 2u>, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<long, 2u>, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<long, 2u>, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<long, 2u>, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<long, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<long, 2u>, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<long, 2u>, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<long, 2u>, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<long, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<long, 3u>, itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<long, 3u>, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<long, 3u>, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<long, 3u>, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<long, 3u>, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<long, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<long, 3u>, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<long, 3u>, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<long, 3u>, itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<short, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<short, 2u>, itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<short, 2u>, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<short, 2u>, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<short, 2u>, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<short, 2u>, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<short, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<short, 2u>, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<short, 2u>, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<short, 2u>, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<short, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<short, 3u>, itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<short, 3u>, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<short, 3u>, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<short, 3u>, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<short, 3u>, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<short, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<short, 3u>, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<short, 3u>, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<short, 3u>, itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<signed char, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<signed char, 2u>, itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<signed char, 2u>, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<signed char, 2u>, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<signed char, 2u>, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<signed char, 2u>, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<signed char, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<signed char, 2u>, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<signed char, 2u>, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<signed char, 2u>, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<signed char, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<signed char, 3u>, itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<signed char, 3u>, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<signed char, 3u>, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<signed char, 3u>, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<signed char, 3u>, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<signed char, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<signed char, 3u>, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<signed char, 3u>, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<signed char, 3u>, itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<std::complex<double>, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<std::complex<double>, 2u>, itk::Image<std::complex<double>, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<std::complex<double>, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<std::complex<double>, 3u>, itk::Image<std::complex<double>, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<std::complex<float>, 2u>, itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<std::complex<float>, 2u>, itk::Image<std::complex<float>, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<std::complex<float>, 3u>, itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<std::complex<float>, 3u>, itk::Image<std::complex<float>, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned char, 1u>, itk::Image<unsigned char, 1u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned char, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned char, 2u>, itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned char, 2u>, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned char, 2u>, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned char, 2u>, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned char, 2u>, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned char, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned char, 2u>, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned char, 2u>, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned char, 2u>, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned char, 2u>, itk::VectorImage<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned char, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned char, 3u>, itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned char, 3u>, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned char, 3u>, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned char, 3u>, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned char, 3u>, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned char, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned char, 3u>, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned char, 3u>, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned char, 3u>, itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned char, 3u>, itk::VectorImage<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned int, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned int, 2u>, itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned int, 2u>, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned int, 2u>, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned int, 2u>, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned int, 2u>, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned int, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned int, 2u>, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned int, 2u>, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned int, 2u>, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned int, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned int, 3u>, itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned int, 3u>, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned int, 3u>, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned int, 3u>, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned int, 3u>, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned int, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned int, 3u>, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned int, 3u>, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned int, 3u>, itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned long, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned long, 2u>, itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned long, 2u>, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned long, 2u>, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned long, 2u>, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned long, 2u>, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned long, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned long, 2u>, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned long, 2u>, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned long, 2u>, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned long, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned long, 3u>, itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned long, 3u>, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned long, 3u>, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned long, 3u>, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned long, 3u>, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned long, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned long, 3u>, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned long, 3u>, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned long, 3u>, itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned short, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned short, 2u>, itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned short, 2u>, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned short, 2u>, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned short, 2u>, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned short, 2u>, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned short, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned short, 2u>, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned short, 2u>, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned short, 2u>, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned short, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned short, 3u>, itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned short, 3u>, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned short, 3u>, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned short, 3u>, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned short, 3u>, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned short, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned short, 3u>, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned short, 3u>, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::Image<unsigned short, 3u>, itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<double, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<double, 2u>, itk::VectorImage<double, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<double, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<double, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<double, 3u>, itk::VectorImage<double, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<double, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<float, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<float, 2u>, itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<float, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<float, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<float, 3u>, itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<float, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<int, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<int, 2u>, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<int, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<int, 2u>, itk::VectorImage<int, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<int, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<int, 3u>, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<int, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<int, 3u>, itk::VectorImage<int, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<long, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<long, 2u>, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<long, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<long, 2u>, itk::VectorImage<long, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<long, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<long, 3u>, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<long, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<long, 3u>, itk::VectorImage<long, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<short, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<short, 2u>, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<short, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<short, 2u>, itk::VectorImage<short, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<short, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<short, 3u>, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<short, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<short, 3u>, itk::VectorImage<short, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<signed char, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<signed char, 2u>, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<signed char, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<signed char, 2u>, itk::VectorImage<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<signed char, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<signed char, 3u>, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<signed char, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<signed char, 3u>, itk::VectorImage<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned char, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned char, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned char, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned char, 2u>, itk::VectorImage<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned char, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned char, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned char, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned char, 3u>, itk::VectorImage<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned int, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned int, 2u>, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned int, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned int, 2u>, itk::VectorImage<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned int, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned int, 3u>, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned int, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned int, 3u>, itk::VectorImage<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned long, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned long, 2u>, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned long, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned long, 2u>, itk::VectorImage<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned long, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned long, 3u>, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned long, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned long, 3u>, itk::VectorImage<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned short, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned short, 2u>, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned short, 2u>, itk::VectorImage<float, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned short, 2u>, itk::VectorImage<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned short, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned short, 3u>, itk::Image<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned short, 3u>, itk::VectorImage<float, 3u> >;
+template class SITKExplicit_EXPORT itk::InPlaceImageFilter<itk::VectorImage<unsigned short, 3u>, itk::VectorImage<unsigned short, 3u> >;
diff --git a/Code/Explicit/src/sitkExplicitITKLabelMap.cxx b/Code/Explicit/src/sitkExplicitITKLabelMap.cxx
new file mode 100644
index 0000000..36a2b1e
--- /dev/null
+++ b/Code/Explicit/src/sitkExplicitITKLabelMap.cxx
@@ -0,0 +1,40 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#define  SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITKLabelMap.h"
+#undef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITK.h"
+
+template class SITKExplicit_EXPORT itk::LabelMap<itk::AttributeLabelObject<unsigned long, 2u, bool> >;
+template class SITKExplicit_EXPORT itk::LabelMap<itk::AttributeLabelObject<unsigned long, 3u, bool> >;
+template class SITKExplicit_EXPORT itk::LabelMap<itk::AttributeLabelObject<unsigned long long, 2u, bool> >;
+template class SITKExplicit_EXPORT itk::LabelMap<itk::AttributeLabelObject<unsigned long long, 3u, bool> >;
+template class SITKExplicit_EXPORT itk::LabelMap<itk::LabelObject<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::LabelMap<itk::LabelObject<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::LabelMap<itk::LabelObject<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::LabelMap<itk::LabelObject<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::LabelMap<itk::LabelObject<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::LabelMap<itk::LabelObject<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::LabelMap<itk::LabelObject<unsigned long long, 2u> >;
+template class SITKExplicit_EXPORT itk::LabelMap<itk::LabelObject<unsigned long long, 3u> >;
+template class SITKExplicit_EXPORT itk::LabelMap<itk::LabelObject<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::LabelMap<itk::LabelObject<unsigned short, 3u> >;
+template class SITKExplicit_EXPORT itk::LabelMap<itk::ShapeLabelObject<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::LabelMap<itk::ShapeLabelObject<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::LabelMap<itk::ShapeLabelObject<unsigned long long, 2u> >;
+template class SITKExplicit_EXPORT itk::LabelMap<itk::ShapeLabelObject<unsigned long long, 3u> >;
diff --git a/Code/Explicit/src/sitkExplicitITKVectorImage.cxx b/Code/Explicit/src/sitkExplicitITKVectorImage.cxx
new file mode 100644
index 0000000..88b6920
--- /dev/null
+++ b/Code/Explicit/src/sitkExplicitITKVectorImage.cxx
@@ -0,0 +1,46 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#define  SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITKVectorImage.h"
+#undef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITK.h"
+
+template class SITKExplicit_EXPORT itk::VectorImage<double, 2u>;
+template class SITKExplicit_EXPORT itk::VectorImage<double, 3u>;
+template class SITKExplicit_EXPORT itk::VectorImage<float, 2u>;
+template class SITKExplicit_EXPORT itk::VectorImage<float, 3u>;
+template class SITKExplicit_EXPORT itk::VectorImage<int, 2u>;
+template class SITKExplicit_EXPORT itk::VectorImage<int, 3u>;
+template class SITKExplicit_EXPORT itk::VectorImage<long, 2u>;
+template class SITKExplicit_EXPORT itk::VectorImage<long, 3u>;
+template class SITKExplicit_EXPORT itk::VectorImage<long long, 2u>;
+template class SITKExplicit_EXPORT itk::VectorImage<long long, 3u>;
+template class SITKExplicit_EXPORT itk::VectorImage<short, 2u>;
+template class SITKExplicit_EXPORT itk::VectorImage<short, 3u>;
+template class SITKExplicit_EXPORT itk::VectorImage<signed char, 2u>;
+template class SITKExplicit_EXPORT itk::VectorImage<signed char, 3u>;
+template class SITKExplicit_EXPORT itk::VectorImage<unsigned char, 2u>;
+template class SITKExplicit_EXPORT itk::VectorImage<unsigned char, 3u>;
+template class SITKExplicit_EXPORT itk::VectorImage<unsigned int, 2u>;
+template class SITKExplicit_EXPORT itk::VectorImage<unsigned int, 3u>;
+template class SITKExplicit_EXPORT itk::VectorImage<unsigned long, 2u>;
+template class SITKExplicit_EXPORT itk::VectorImage<unsigned long, 3u>;
+template class SITKExplicit_EXPORT itk::VectorImage<unsigned long long, 2u>;
+template class SITKExplicit_EXPORT itk::VectorImage<unsigned long long, 3u>;
+template class SITKExplicit_EXPORT itk::VectorImage<unsigned short, 2u>;
+template class SITKExplicit_EXPORT itk::VectorImage<unsigned short, 3u>;
diff --git a/Code/Explicit/src/sitkExplicitITKVectorIndexSelectionCastImageFilter.cxx b/Code/Explicit/src/sitkExplicitITKVectorIndexSelectionCastImageFilter.cxx
new file mode 100644
index 0000000..c5fa412
--- /dev/null
+++ b/Code/Explicit/src/sitkExplicitITKVectorIndexSelectionCastImageFilter.cxx
@@ -0,0 +1,46 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#define  SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITKVectorIndexSelectionCastImageFilter.h"
+#undef SITK_TEMPLATE_EXPLICIT_EXPLICITITK
+#include "sitkExplicitITK.h"
+
+template class SITKExplicit_EXPORT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<double, 2u>, itk::Image<double, 2u> >;
+template class SITKExplicit_EXPORT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<double, 3u>, itk::Image<double, 3u> >;
+template class SITKExplicit_EXPORT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<float, 2u>, itk::Image<float, 2u> >;
+template class SITKExplicit_EXPORT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<float, 3u>, itk::Image<float, 3u> >;
+template class SITKExplicit_EXPORT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<int, 2u>, itk::Image<int, 2u> >;
+template class SITKExplicit_EXPORT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<int, 3u>, itk::Image<int, 3u> >;
+template class SITKExplicit_EXPORT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<long, 2u>, itk::Image<long, 2u> >;
+template class SITKExplicit_EXPORT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<long, 3u>, itk::Image<long, 3u> >;
+template class SITKExplicit_EXPORT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<long long, 2u>, itk::Image<long long, 2u> >;
+template class SITKExplicit_EXPORT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<long long, 3u>, itk::Image<long long, 3u> >;
+template class SITKExplicit_EXPORT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<short, 2u>, itk::Image<short, 2u> >;
+template class SITKExplicit_EXPORT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<short, 3u>, itk::Image<short, 3u> >;
+template class SITKExplicit_EXPORT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<signed char, 2u>, itk::Image<signed char, 2u> >;
+template class SITKExplicit_EXPORT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<signed char, 3u>, itk::Image<signed char, 3u> >;
+template class SITKExplicit_EXPORT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<unsigned char, 2u>, itk::Image<unsigned char, 2u> >;
+template class SITKExplicit_EXPORT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<unsigned char, 3u>, itk::Image<unsigned char, 3u> >;
+template class SITKExplicit_EXPORT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<unsigned int, 2u>, itk::Image<unsigned int, 2u> >;
+template class SITKExplicit_EXPORT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<unsigned int, 3u>, itk::Image<unsigned int, 3u> >;
+template class SITKExplicit_EXPORT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<unsigned long, 2u>, itk::Image<unsigned long, 2u> >;
+template class SITKExplicit_EXPORT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<unsigned long, 3u>, itk::Image<unsigned long, 3u> >;
+template class SITKExplicit_EXPORT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<unsigned long long, 2u>, itk::Image<unsigned long long, 2u> >;
+template class SITKExplicit_EXPORT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<unsigned long long, 3u>, itk::Image<unsigned long long, 3u> >;
+template class SITKExplicit_EXPORT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<unsigned short, 2u>, itk::Image<unsigned short, 2u> >;
+template class SITKExplicit_EXPORT itk::VectorIndexSelectionCastImageFilter<itk::VectorImage<unsigned short, 3u>, itk::Image<unsigned short, 3u> >;
diff --git a/Code/IO/CMakeLists.txt b/Code/IO/CMakeLists.txt
new file mode 100644
index 0000000..0b71948
--- /dev/null
+++ b/Code/IO/CMakeLists.txt
@@ -0,0 +1,2 @@
+
+add_subdirectory( src )
diff --git a/Code/IO/include/sitkIO.h b/Code/IO/include/sitkIO.h
new file mode 100644
index 0000000..cf7e923
--- /dev/null
+++ b/Code/IO/include/sitkIO.h
@@ -0,0 +1,40 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkIO_h
+#define sitkIO_h
+
+#include "sitkMacro.h"
+
+
+
+#if defined( SITKDLL )
+  #ifdef SimpleITKIO_EXPORTS
+    #define SITKIO_EXPORT SITK_ABI_EXPORT
+  #else
+    #define SITKIO_EXPORT SITK_ABI_IMPORT
+  #endif  /* SimpleITKIO_EXPORTS */
+#else
+  // Don't hide symbols in the static SimpleITKIO library in case
+  // -fvisibility=hidden is used
+  #define SITKIO_EXPORT
+
+#endif
+
+#define SITKIO_HIDDEN SITK_ABI_HIDDEN
+
+#endif // sitkIO_h
diff --git a/Code/IO/include/sitkImageFileReader.h b/Code/IO/include/sitkImageFileReader.h
new file mode 100644
index 0000000..91716e5
--- /dev/null
+++ b/Code/IO/include/sitkImageFileReader.h
@@ -0,0 +1,86 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkImageFileReader_h
+#define sitkImageFileReader_h
+
+#include "sitkMacro.h"
+#include "sitkImage.h"
+#include "sitkImageReaderBase.h"
+#include "sitkMemberFunctionFactory.h"
+
+namespace itk {
+  namespace simple {
+
+    /** \class ImageFileReader
+     * \brief Read a 2D or 3D image and return a smart pointer to a SimpleITK
+     * image
+     *
+     * This reader handles scalar and vector images and returns an image with
+     * the same type as the file on disk.
+     *
+     * \sa itk::simple::ReadImage for the procedural interface
+     */
+    class SITKIO_EXPORT ImageFileReader
+      : public ImageReaderBase
+    {
+    public:
+      typedef ImageFileReader Self;
+
+      /** Print ourselves to string */
+      virtual std::string ToString() const;
+
+      /** return user readable name fo the filter */
+      virtual std::string GetName() const { return std::string("ImageFileReader"); }
+
+      SITK_RETURN_SELF_TYPE_HEADER SetFileName ( const std::string &fn );
+      std::string GetFileName() const;
+
+      Image Execute();
+
+      ImageFileReader();
+
+    protected:
+
+      template <class TImageType> Image ExecuteInternal ( itk::ImageIOBase * );
+
+    private:
+
+      // function pointer type
+      typedef Image (Self::*MemberFunctionType)( itk::ImageIOBase * );
+
+      // friend to get access to executeInternal member
+      friend struct detail::MemberFunctionAddressor<MemberFunctionType>;
+      nsstd::auto_ptr<detail::MemberFunctionFactory<MemberFunctionType> > m_MemberFactory;
+
+      std::string m_FileName;
+    };
+
+  /**
+   * \brief ReadImage is a procedural interface to the ImageFileReader
+   *     class which is convenient for most image reading tasks.
+   *
+   *     For more complicated use cases such as requiring loading of
+   *     all tags, including private ones, from a DICOM file the
+   *     object oriented interface should be used. The reader can be explicitly
+   *     set to load all tags (LoadPrivateTagsOn()).
+   */
+  SITKIO_EXPORT Image ReadImage ( const std::string &filename, PixelIDValueEnum outputPixelType = sitkUnknown );
+  }
+}
+
+#endif
diff --git a/Code/IO/include/sitkImageFileWriter.h b/Code/IO/include/sitkImageFileWriter.h
new file mode 100644
index 0000000..a384054
--- /dev/null
+++ b/Code/IO/include/sitkImageFileWriter.h
@@ -0,0 +1,124 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkImageFileWriter_h
+#define sitkImageFileWriter_h
+
+#include "sitkMacro.h"
+#include "sitkImage.h"
+#include "sitkMemberFunctionFactory.h"
+#include "sitkIO.h"
+#include "sitkProcessObject.h"
+
+#include <memory>
+
+namespace itk {
+
+// Forward decalaration for pointer
+class ImageIOBase;
+
+template<class T>
+class SmartPointer;
+
+  namespace simple {
+
+    /** \class ImageFileWriter
+     * \brief Write out a SimpleITK image to the specified file location
+     *
+     * This writer tries to write the image out using the image's type to the
+     * location specified in FileName. If writing fails, an ITK exception is
+     * thrown.
+     *
+     * \sa itk::simple::WriteImage for the procedural interface
+     */
+    class SITKIO_EXPORT ImageFileWriter  :
+      public ProcessObject
+    {
+    public:
+      typedef ImageFileWriter Self;
+
+      // list of pixel types supported
+      typedef NonLabelPixelIDTypeList PixelIDTypeList;
+
+      ImageFileWriter( void );
+
+      /** Print ourselves to string */
+      virtual std::string ToString() const;
+
+      /** return user readable name fo the filter */
+      virtual std::string GetName() const { return std::string("ImageFileWriter"); }
+
+      /** \brief Enable compression if available for file type.
+       *
+       * These methods Set/Get/Toggle the UseCompression flag which
+       * get's passed to image file's itk::ImageIO object. This is
+       * only a request as not all file formats support compression.
+       * @{ */
+      SITK_RETURN_SELF_TYPE_HEADER SetUseCompression( bool UseCompression );
+      bool GetUseCompression( void ) const;
+
+      SITK_RETURN_SELF_TYPE_HEADER UseCompressionOn( void ) { return this->SetUseCompression(true); }
+      SITK_RETURN_SELF_TYPE_HEADER UseCompressionOff( void ) { return this->SetUseCompression(false); }
+      /** @} */
+
+
+      /** \brief Use the original study/series/frame of reference.
+       *
+       * These methods Set/Get/Toggle the KeepOriginalImageUID flag which
+       * get's passed to image file's itk::ImageIO object. This is
+       * relevant only for the DICOM file format, configuring the writer
+       * to use the information in the image's meta-data dictionary or
+       * to create new study/series/frame of reference values.
+       * @{ */
+      SITK_RETURN_SELF_TYPE_HEADER SetKeepOriginalImageUID( bool KeepOriginalImageUID );
+      bool GetKeepOriginalImageUID( void ) const;
+
+      SITK_RETURN_SELF_TYPE_HEADER KeepOriginalImageUIDOn( void ) { return this->SetKeepOriginalImageUID(true); }
+      SITK_RETURN_SELF_TYPE_HEADER KeepOriginalImageUIDOff( void ) { return this->SetKeepOriginalImageUID(false); }
+      /** @} */
+
+      SITK_RETURN_SELF_TYPE_HEADER SetFileName ( const std::string &fileName );
+      std::string GetFileName() const;
+
+      SITK_RETURN_SELF_TYPE_HEADER Execute ( const Image& );
+      SITK_RETURN_SELF_TYPE_HEADER Execute ( const Image& , const std::string &inFileName, bool inUseCompression );
+
+    private:
+
+      itk::SmartPointer<ImageIOBase> GetImageIOBase(const std::string &fileName);
+
+      template <class T> Self& ExecuteInternal ( const Image& );
+
+      bool m_UseCompression;
+      std::string m_FileName;
+      bool m_KeepOriginalImageUID;
+
+      // function pointer type
+      typedef Self& (Self::*MemberFunctionType)( const Image& );
+
+      // friend to get access to executeInternal member
+      friend struct detail::MemberFunctionAddressor<MemberFunctionType>;
+
+      nsstd::auto_ptr<detail::MemberFunctionFactory<MemberFunctionType> > m_MemberFactory;
+
+    };
+
+  SITKIO_EXPORT void WriteImage ( const Image& image, const std::string &fileName, bool useCompression=false );
+  }
+}
+
+#endif
diff --git a/Code/IO/include/sitkImageReaderBase.h b/Code/IO/include/sitkImageReaderBase.h
new file mode 100644
index 0000000..4dd2fc0
--- /dev/null
+++ b/Code/IO/include/sitkImageReaderBase.h
@@ -0,0 +1,107 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkImageReaderBase_h
+#define sitkImageReaderBase_h
+
+#include "sitkProcessObject.h"
+#include "sitkPixelIDValues.h"
+#include "sitkIO.h"
+
+namespace itk {
+
+// Forward decalaration for pointer
+class ImageIOBase;
+
+template<class T>
+class SmartPointer;
+
+  namespace simple {
+
+    /** \class ImageReaderBase
+     * \brief An abract base class for image readers
+     *
+     */
+    class SITKIO_EXPORT ImageReaderBase :
+      public ProcessObject
+    {
+    public:
+      typedef ImageReaderBase Self;
+
+      ImageReaderBase();
+      // The destructor will be implicitly declared as public.
+
+      /** \brief Set/Get The output PixelType of the image.
+       *
+       * By default the value is sitkUnknown, which enable the output
+       * pixel type to be same as the file. If the pixel type is
+       * specified then the itk::ConvertPixelBuffer will be used to
+       * convert the pixels.
+       * @{
+       */
+      SITK_RETURN_SELF_TYPE_HEADER SetOutputPixelType( PixelIDValueEnum pixelID );
+      PixelIDValueEnum GetOutputPixelType( void ) const;
+      /* @} */
+
+      virtual Image Execute() = 0;
+
+      virtual std::string ToString() const;
+
+      /** \brief Set/Get loading private DICOM tags into Image's MetaData
+       *
+       * Unknown private tags may be encoded with Base64 encoding.
+       * @{
+       */
+      virtual Self& SetLoadPrivateTags(bool loadPrivateTags);
+      virtual bool GetLoadPrivateTags() const;
+      virtual void LoadPrivateTagsOn();
+      virtual void LoadPrivateTagsOff();
+      /* @} */
+
+    protected:
+
+      itk::SmartPointer<ImageIOBase> GetImageIOBase(const std::string &fileName);
+
+
+      void GetPixelIDFromImageIO( const std::string &fileName,
+                                  PixelIDValueType &outPixelType,
+                                  unsigned int & outDimensions);
+      void GetPixelIDFromImageIO( itk::ImageIOBase* iobase,
+                                  PixelIDValueType &outPixelType,
+                                  unsigned int & outDimensions);
+
+      unsigned int GetDimensionFromImageIO( const std::string &fileName, unsigned int i);
+      unsigned int GetDimensionFromImageIO( itk::ImageIOBase* iobase, unsigned int i);
+
+    private:
+
+      PixelIDValueType ExecuteInternalReadScalar( int componentType );
+
+      PixelIDValueType ExecuteInternalReadVector( int componentType );
+
+      PixelIDValueType ExecuteInternalReadComplex( int componentType );
+
+
+      PixelIDValueEnum m_OutputPixelType;
+      bool m_LoadPrivateTags;
+
+    };
+  }
+}
+
+
+#endif // sitkImageReaderBase_h
diff --git a/Code/IO/include/sitkImageSeriesReader.h b/Code/IO/include/sitkImageSeriesReader.h
new file mode 100644
index 0000000..6ec1fc2
--- /dev/null
+++ b/Code/IO/include/sitkImageSeriesReader.h
@@ -0,0 +1,118 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkImageSeriesReader_h
+#define sitkImageSeriesReader_h
+
+#include "sitkMacro.h"
+#include "sitkImage.h"
+#include "sitkImageReaderBase.h"
+#include "sitkMemberFunctionFactory.h"
+
+namespace itk {
+  namespace simple {
+
+    /** \class ImageSeriesReader
+     * \brief Read series of image into a SimpleITK image
+     *
+     * \sa itk::simple::ReadImage for the procedural interface
+     **/
+    class SITKIO_EXPORT ImageSeriesReader
+      : public ImageReaderBase
+    {
+    public:
+      typedef ImageSeriesReader Self;
+
+      ImageSeriesReader();
+
+      /** Print ourselves to string */
+      virtual std::string ToString() const;
+
+      /** return user readable name fo the filter */
+      virtual std::string GetName() const { return std::string("ImageSeriesReader"); }
+
+      /** \brief Generate a sequence of filenames from a directory with a DICOM data set and a series ID.
+       *
+       * This method generates a sequence of filenames whose filenames
+       * point to DICOM files. The data set may contain multiple series.
+       * The seriesID string is used to select a specific series.  The
+       * ordering of the filenames is based of one of several strategies,
+       * which will read all images in the directory ( assuming there is
+       * only one study/series ).
+       *
+       * \param directory         Set the directory that contains the DICOM data set.
+       * \param recursive         Recursively parse the input directory.
+       * \param seriesID          Set the name that identifies a particular series. Default value is an empty string which will return the file names associated with the first series found in the directory.
+       * \param useSeriesDetails  Use additional series information such as ProtocolName and SeriesName to identify when a single SeriesUID contains multiple 3D volumes - as can occur with perfusion and DTI imaging.
+       * \param loadSequences     Parse any sequences in the DICOM data set. Loading DICOM files is faster when sequences are not needed.
+       *
+       * \sa itk::GDCMSeriesFileNames
+       **/
+      static std::vector<std::string> GetGDCMSeriesFileNames( const std::string &directory,
+                                                              const std::string &seriesID = "",
+                                                              bool useSeriesDetails = false,
+                                                              bool recursive = false,
+                                                              bool loadSequences = false );
+
+      /** \brief Get all the seriesIDs from a DICOM data set
+       *
+       * \param directory  The directory that contains the DICOM data set
+       * \sa itk::GDCMSeriesFileNames
+       **/
+      static std::vector<std::string> GetGDCMSeriesIDs( const std::string &directory );
+
+      SITK_RETURN_SELF_TYPE_HEADER SetFileNames ( const std::vector<std::string> &fileNames );
+      const std::vector<std::string> &GetFileNames() const;
+
+      Image Execute();
+
+    protected:
+
+      template <class TImageType> Image ExecuteInternal ( itk::ImageIOBase * );
+
+    private:
+
+      // function pointer type
+      typedef Image (Self::*MemberFunctionType)( itk::ImageIOBase * );
+
+      // friend to get access to executeInternal member
+      friend struct detail::MemberFunctionAddressor<MemberFunctionType>;
+      nsstd::auto_ptr<detail::MemberFunctionFactory<MemberFunctionType> > m_MemberFactory;
+
+      std::vector<std::string> m_FileNames;
+    };
+
+  /**
+   * \brief ReadImage is a procedural interface to the ImageSeriesReader
+   *     class which is convenient for most image reading tasks.
+   *
+   *     Note that when reading a series of images that have meta-data
+   *     associated with them (e.g. a DICOM series) the resulting
+   *     image will have an empty meta-data dictionary. It is possible to
+   *     programmatically add a meta-data dictionary to the compounded image by reading in
+   *     one or more images from the series using the ImageFileReader
+   *     class, analyzing the meta-dictionary associated with each of
+   *     those images and creating one that is relevant for the
+   *     compounded image.
+   *
+   * \sa itk::simple::ImageFileReader for reading a single file
+   */
+  SITKIO_EXPORT Image ReadImage ( const std::vector<std::string> &fileNames, PixelIDValueEnum outputPixelType=sitkUnknown );
+  }
+}
+
+#endif
diff --git a/Code/IO/include/sitkImageSeriesWriter.h b/Code/IO/include/sitkImageSeriesWriter.h
new file mode 100644
index 0000000..7efaec7
--- /dev/null
+++ b/Code/IO/include/sitkImageSeriesWriter.h
@@ -0,0 +1,106 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkImageSeriesWriter_h
+#define sitkImageSeriesWriter_h
+
+#include "sitkMacro.h"
+#include "sitkImage.h"
+#include "sitkProcessObject.h"
+#include "sitkIO.h"
+#include "sitkMemberFunctionFactory.h"
+
+namespace itk {
+  namespace simple {
+
+    /** \class ImageSeriesWriter
+     * \brief Writer series of image from a SimpleITK image.
+     *
+     * The ImageSeriesWriter is for writing a 3D image as a series of
+     * 2D images. A list of names for the series of 2D images must be
+     * provided, and an exception will be generated if the number of
+     * file names does not match the size of the image in the z-direction.
+     *
+     * DICOM series cannot be written with this class, as an exception
+     * will be generated. To write a DICOM series the individual
+     * slices must be extracted, proper DICOM tags must be added to
+     * the dictionaries, then written with the ImageFileWriter.
+     *
+     * \sa itk::simple::WriteImage for the procedural interface
+     **/
+    class SITKIO_EXPORT ImageSeriesWriter
+      : public ProcessObject
+    {
+    public:
+      typedef ImageSeriesWriter Self;
+
+      ImageSeriesWriter();
+
+      /** Print ourselves to string */
+      virtual std::string ToString() const;
+
+      /** return user readable name fo the filter */
+      virtual std::string GetName() const { return std::string("ImageSeriesWriter"); }
+
+      /** \brief Enable compression if available for file type.
+       *
+       * These methods Set/Get/Toggle the UseCompression flag which
+       * get's passed to image file's itk::ImageIO object. This is
+       * only a request as not all file formatts support compression.
+       * @{ */
+      SITK_RETURN_SELF_TYPE_HEADER SetUseCompression( bool UseCompression );
+      bool GetUseCompression( void ) const;
+
+      SITK_RETURN_SELF_TYPE_HEADER UseCompressionOn( void ) { return this->SetUseCompression(true); }
+      SITK_RETURN_SELF_TYPE_HEADER UseCompressionOff( void ) { return this->SetUseCompression(false); }
+      /** @} */
+
+      /** The filenames to where the image slices are written.
+        *
+        * The number of filenames must match the number of slices in
+        * the image.
+        * @{ */
+      SITK_RETURN_SELF_TYPE_HEADER SetFileNames ( const std::vector<std::string> &fileNames );
+      const std::vector<std::string> &GetFileNames() const;
+      /** @} */
+
+
+      SITK_RETURN_SELF_TYPE_HEADER Execute( const Image& );
+      SITK_RETURN_SELF_TYPE_HEADER Execute( const Image &image, const std::vector<std::string> &inFileNames, bool inUseCompression );
+
+    protected:
+
+      template <class TImageType> Self &ExecuteInternal ( const Image& inImage );
+
+    private:
+
+      // function pointer type
+      typedef Self& (Self::*MemberFunctionType)( const Image& );
+
+      // friend to get access to executeInternal member
+      friend struct detail::MemberFunctionAddressor<MemberFunctionType>;
+      nsstd::auto_ptr<detail::MemberFunctionFactory<MemberFunctionType> > m_MemberFactory;
+
+      bool m_UseCompression;
+      std::vector<std::string> m_FileNames;
+    };
+
+  SITKIO_EXPORT void WriteImage ( const Image & image, const std::vector<std::string> &fileNames, bool inUseCompression=false );
+  }
+}
+
+#endif
diff --git a/Code/IO/include/sitkImportImageFilter.h b/Code/IO/include/sitkImportImageFilter.h
new file mode 100644
index 0000000..942c173
--- /dev/null
+++ b/Code/IO/include/sitkImportImageFilter.h
@@ -0,0 +1,214 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkImportImageFilter_h
+#define sitkImportImageFilter_h
+
+#include "sitkMacro.h"
+#include "sitkImage.h"
+#include "sitkImageReaderBase.h"
+#include "sitkMemberFunctionFactory.h"
+
+namespace itk {
+  namespace simple {
+
+    /** \class ImportImageFilter
+     * \brief Compose a 2D or 3D image and return a smart pointer to a SimpleITK
+     * image
+     *
+     * This filter is intended to interface SimpleITK to other image processing
+     * libraries and applications that may have their own representation of an
+     * image class. It creates a SimpleITK image which shares the bulk
+     * data buffer as what is set. SimpleITK will not responsible to
+     * delete the buffer afterwards, and it buffer must remain valid
+     * while in use.
+     *
+     * \sa itk::simple::ImportAsInt8, itk::simple::ImportAsUInt8,
+     * itk::simple::ImportAsInt16, itk::simple::ImportAsUInt16,
+     * itk::simple::ImportAsInt32, itk::simple::ImportAsUInt32,
+     * itk::simple::ImportAsInt64, itk::simple::ImportAsUInt64,
+     * itk::simple::ImportAsFloat,itk::simple::ImportAsDouble for the
+     * procedural interfaces.
+     */
+    class SITKIO_EXPORT ImportImageFilter
+      : public ImageReaderBase {
+    public:
+      typedef ImportImageFilter Self;
+
+      ImportImageFilter();
+
+      /** Print ourselves to string */
+      virtual std::string ToString() const;
+
+      /** return user readable name fo the filter */
+      virtual std::string GetName() const { return std::string("ImportImageFilter"); }
+
+      SITK_RETURN_SELF_TYPE_HEADER SetSize( const std::vector< unsigned int > &size );
+      const std::vector< unsigned int > &GetSize( ) const;
+
+      SITK_RETURN_SELF_TYPE_HEADER SetSpacing( const std::vector< double > &spacing );
+      const std::vector< double > &GetSpacing( ) const;
+
+      SITK_RETURN_SELF_TYPE_HEADER SetOrigin( const std::vector< double > &origin );
+      const std::vector< double > &GetOrigin( ) const;
+
+      SITK_RETURN_SELF_TYPE_HEADER SetDirection( const std::vector< double > &direction );
+      const std::vector< double > &GetDirection( ) const;
+
+      SITK_RETURN_SELF_TYPE_HEADER SetBufferAsInt8( int8_t * buffer, unsigned int numberOfComponents = 1 );
+      SITK_RETURN_SELF_TYPE_HEADER SetBufferAsUInt8( uint8_t * buffer, unsigned int numberOfComponents = 1 );
+      SITK_RETURN_SELF_TYPE_HEADER SetBufferAsInt16( int16_t * buffer, unsigned int numberOfComponents = 1 );
+      SITK_RETURN_SELF_TYPE_HEADER SetBufferAsUInt16( uint16_t * buffer, unsigned int numberOfComponents = 1 );
+      SITK_RETURN_SELF_TYPE_HEADER SetBufferAsInt32( int32_t * buffer, unsigned int numberOfComponents = 1 );
+      SITK_RETURN_SELF_TYPE_HEADER SetBufferAsUInt32( uint32_t * buffer, unsigned int numberOfComponents = 1 );
+      SITK_RETURN_SELF_TYPE_HEADER SetBufferAsInt64( int64_t * buffer, unsigned int numberOfComponents = 1 );
+      SITK_RETURN_SELF_TYPE_HEADER SetBufferAsUInt64( uint64_t * buffer, unsigned int numberOfComponents = 1 );
+      SITK_RETURN_SELF_TYPE_HEADER SetBufferAsFloat( float * buffer, unsigned int numberOfComponents = 1 );
+      SITK_RETURN_SELF_TYPE_HEADER SetBufferAsDouble( double * buffer, unsigned int numberOfComponents = 1 );
+
+      Image Execute();
+
+    protected:
+
+      // Internal method called the the template dispatch system
+      template <class TImageType> Image ExecuteInternal ( void );
+
+      // If the output image type is a VectorImage then the number of
+      // components per pixel needs to be set, otherwise the method
+      // does not exist. This is done with the EnableIf Idiom.
+      template <class TImageType>
+      typename DisableIf<IsVector<TImageType>::Value>::Type
+      SetNumberOfComponentsOnImage( TImageType* ) {}
+      template <class TImageType>
+      typename EnableIf<IsVector<TImageType>::Value>::Type
+      SetNumberOfComponentsOnImage( TImageType* );
+
+    private:
+
+      // function pointer type
+      typedef Image (Self::*MemberFunctionType)( void );
+
+      // friend to get access to executeInternal member
+      friend struct detail::MemberFunctionAddressor<MemberFunctionType>;
+      nsstd::auto_ptr<detail::MemberFunctionFactory<MemberFunctionType> > m_MemberFactory;
+
+      unsigned int     m_NumberOfComponentsPerPixel;
+      PixelIDValueType m_PixelIDValue;
+
+      std::vector< double >         m_Origin;
+      std::vector< double >         m_Spacing;
+      std::vector< unsigned int >   m_Size;
+      std::vector< double >         m_Direction;
+
+      void        * m_Buffer;
+
+    };
+
+  Image SITKIO_EXPORT ImportAsInt8(
+    int8_t * buffer,
+    const std::vector< unsigned int > &size,
+    const std::vector< double > &spacing = std::vector< double >( 3, 1.0 ),
+    const std::vector< double > &origin = std::vector< double >( 3, 0.0 ),
+    const std::vector< double > &direction = std::vector< double >(),
+    unsigned int numberOfComponents = 1
+    );
+
+  Image SITKIO_EXPORT ImportAsUInt8(
+    uint8_t * buffer,
+    const std::vector< unsigned int > &size,
+    const std::vector< double > &spacing = std::vector< double >( 3, 1.0 ),
+    const std::vector< double > &origin = std::vector< double >( 3, 0.0 ),
+    const std::vector< double > &direction = std::vector< double >(),
+    unsigned int numberOfComponents = 1
+    );
+
+  Image SITKIO_EXPORT ImportAsInt16(
+    int16_t * buffer,
+    const std::vector< unsigned int > &size,
+    const std::vector< double > &spacing = std::vector< double >( 3, 1.0 ),
+    const std::vector< double > &origin = std::vector< double >( 3, 0.0 ),
+    const std::vector< double > &direction = std::vector< double >(),
+    unsigned int numberOfComponents = 1
+    );
+
+  Image SITKIO_EXPORT ImportAsUInt16(
+    uint16_t * buffer,
+    const std::vector< unsigned int > &size,
+    const std::vector< double > &spacing = std::vector< double >( 3, 1.0 ),
+    const std::vector< double > &origin = std::vector< double >( 3, 0.0 ),
+    const std::vector< double > &direction = std::vector< double >(),
+    unsigned int numberOfComponents = 1
+    );
+
+  Image SITKIO_EXPORT ImportAsInt32(
+    int32_t * buffer,
+    const std::vector< unsigned int > &size,
+    const std::vector< double > &spacing = std::vector< double >( 3, 1.0 ),
+    const std::vector< double > &origin = std::vector< double >( 3, 0.0 ),
+    const std::vector< double > &direction = std::vector< double >(),
+    unsigned int numberOfComponents = 1
+    );
+
+  Image SITKIO_EXPORT ImportAsUInt32(
+    uint32_t * buffer,
+    const std::vector< unsigned int > &size,
+    const std::vector< double > &spacing = std::vector< double >( 3, 1.0 ),
+    const std::vector< double > &origin = std::vector< double >( 3, 0.0 ),
+    const std::vector< double > &direction = std::vector< double >(),
+    unsigned int numberOfComponents = 1
+    );
+
+  Image SITKIO_EXPORT ImportAsInt64(
+    int64_t * buffer,
+    const std::vector< unsigned int > &size,
+    const std::vector< double > &spacing = std::vector< double >( 3, 1.0 ),
+    const std::vector< double > &origin = std::vector< double >( 3, 0.0 ),
+    const std::vector< double > &direction = std::vector< double >(),
+    unsigned int numberOfComponents = 1
+    );
+
+  Image SITKIO_EXPORT ImportAsUInt64(
+    uint64_t * buffer,
+    const std::vector< unsigned int > &size,
+    const std::vector< double > &spacing = std::vector< double >( 3, 1.0 ),
+    const std::vector< double > &origin = std::vector< double >( 3, 0.0 ),
+    const std::vector< double > &direction = std::vector< double >(),
+    unsigned int numberOfComponents = 1
+    );
+
+  Image SITKIO_EXPORT ImportAsFloat(
+    float * buffer,
+    const std::vector< unsigned int > &size,
+    const std::vector< double > &spacing = std::vector< double >( 3, 1.0 ),
+    const std::vector< double > &origin = std::vector< double >( 3, 0.0 ),
+    const std::vector< double > &direction = std::vector< double >(),
+    unsigned int numberOfComponents = 1
+    );
+
+  Image SITKIO_EXPORT ImportAsDouble(
+    double * buffer,
+    const std::vector< unsigned int > &size,
+    const std::vector< double > &spacing = std::vector< double >( 3, 1.0 ),
+    const std::vector< double > &origin = std::vector< double >( 3, 0.0 ),
+    const std::vector< double > &direction = std::vector< double >(),
+    unsigned int numberOfComponents = 1
+    );
+
+  }
+}
+
+#endif
diff --git a/Code/IO/include/sitkShow.h b/Code/IO/include/sitkShow.h
new file mode 100644
index 0000000..1005c5a
--- /dev/null
+++ b/Code/IO/include/sitkShow.h
@@ -0,0 +1,101 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkShow_h
+#define sitkShow_h
+
+#include "sitkImage.h"
+#include "sitkIO.h"
+
+namespace itk
+{
+namespace simple
+{
+
+  /** Display an image using Fiji, ImageJ or another application.
+   *
+   *  This function requires that Fiji ( https://fiji.sc ) or ImageJ
+   *  (http://rsb.info.nih.gov/ij/) be properly installed for Mac
+   *  and Windows, and in the user's path for Linux.  ImageJ must have
+   *  a plugin for reading Nifti formatted files (http://www.loci.wisc.edu/bio-formats/imagej).
+   *
+   *  Nifti is the default file format used to export images.  A different
+   *  format can be chosen by setting the SITK_SHOW_EXTENSION environment variable.
+   *  For example, set SITK_SHOW_EXTENSION to ".png" to use PNG format.
+   *
+   *  The user can specify an application other than ImageJ to view images via
+   *  the SITK_SHOW_COMMAND environment variable.
+   *
+   *  The user can also select applications specifically for color images or 3D
+   *  images using the SITK_SHOW_COLOR_COMMAND and SITK_SHOW_3D_COMMAND environment
+   *  variables.
+   *
+   *  SITK_SHOW_COMMAND, SITK_SHOW_COLOR_COMMAND and SITK_SHOW_3D_COMMAND allow
+   *  the following %tokens in their strings.
+   *
+   *      \li \c "%a"  for the ImageJ application
+   *      \li \c "%f"  for SimpleITK's temporary image file
+   *
+   *  For example, the default SITK_SHOW_COMMAND string on Linux systems is:
+   *
+   *  \code
+   *  %a -o %f
+   *  \endcode
+   *
+   *  After token substitution it may become:
+   *
+   *  \code
+   *  ImageJ -o /tmp/Temp-65535-0.nii
+   *  \endcode
+   *
+   *  For another example, the default SITK_SHOW_COLOR_COMMAND string on Mac OS X is:
+   *
+   *  \code
+   *  open -a %a -n --args -eval \'open(\"%f\"); run(\"Make Composite\", \"display=Composite\"); \'
+   *  \endcode
+   *
+   *  After token substitution the string may become:
+   *
+   *  \code
+   *  open -a ImageJ64 -n --args -eval 'open("/tmp/TempFile-20238-0.nii"); run("Make Composite", "display=Composite");'
+   *  \endcode
+   *
+   *  The string after \c "-eval" is an ImageJ macro the opens the file and runs ImageJ's Make Composite
+   *  command to display the image in color.
+   *
+   *  If the \c "%f" token is not found in the command string, the temporary file name is automatically
+   *  appended to the command argument list.
+   *
+   *
+   *  When invoked, Show searches for Fiji first, and then ImageJ.   Fiji is the most update-to-date
+   *  version of ImageJ and includes a lot of plugins which facilitate scientific image analysis.
+   *  By default, for a 64-bit build of SimpleITK on Macs, sitkShow searches for ImageJ64.app.
+   *  For a 32-bit Mac build, sitkShow searches for ImageJ.app.  If the user prefers a different
+   *  version of ImageJ (or a different image viewer altogether), it can be specified using
+   *  the SITK_SHOW_COMMAND environment variable.
+   *
+   *  The boolean parameter debugOn prints the search path Show uses to find ImageJ, the full path
+   *  to the ImageJ it found, and the full command line used to invoke ImageJ.
+   *
+   **/
+
+
+   void SITKIO_EXPORT Show ( const Image &image, const std::string& title = "", const bool debugOn=false );
+}
+}
+
+#endif
diff --git a/Code/IO/src/CMakeLists.txt b/Code/IO/src/CMakeLists.txt
new file mode 100644
index 0000000..80eacd0
--- /dev/null
+++ b/Code/IO/src/CMakeLists.txt
@@ -0,0 +1,54 @@
+
+set( SimpleITKIOSource
+  sitkImageFileReader.cxx
+  sitkImageFileWriter.cxx
+  sitkImageReaderBase.cxx
+  sitkImageSeriesReader.cxx
+  sitkImageSeriesWriter.cxx
+  sitkImportImageFilter.cxx
+  sitkShow.cxx
+  )
+
+set(use_itk_modules  ITKCommon ITKLabelMap ITKImageCompose
+  ITKImageIntensity ITKIOImageBase ITKIOTransformBase ITKIOGDCM )
+foreach( mod IN LISTS ITK_MODULES_ENABLED)
+  if( ${mod} MATCHES "IO")
+    list(APPEND use_itk_modules ${mod})
+  endif()
+endforeach()
+
+find_package(ITK COMPONENTS ${use_itk_modules} )
+include(${ITK_USE_FILE})
+add_library ( SimpleITKIO ${SimpleITKIOSource} )
+sitk_target_use_itk ( SimpleITKIO PRIVATE ${use_itk_modules} )
+target_link_libraries ( SimpleITKIO
+  PUBLIC  SimpleITKCommon )
+if (SimpleITK_EXPLICIT_INSTANTIATION)
+  target_link_libraries ( SimpleITKIO PRIVATE SimpleITKExplicit )
+endif()
+target_include_directories ( SimpleITKIO
+  PUBLIC
+    $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/Code/IO/include>
+    $<INSTALL_INTERFACE:${SimpleITK_INSTALL_INCLUDE_DIR}>
+  PRIVATE
+    ${CMAKE_CURRENT_SOURCE_DIR} )
+target_compile_options( SimpleITKIO
+  PUBLIC
+    ${SimpleITK_PUBLIC_COMPILE_OPTIONS}
+  PRIVATE
+    ${SimpleITK_PRIVATE_COMPILE_OPTIONS} )
+
+
+sitk_install_exported_target( SimpleITKIO )
+
+# Add custom command that will delete java files which need to be rebuilt when changes
+# are made to IO
+if( WRAP_JAVA )
+  add_custom_command(
+    TARGET SimpleITKIO
+    POST_BUILD
+    COMMENT "Cleaning java build..."
+    COMMAND ${CMAKE_COMMAND} -E remove -f ${SimpleITK_BINARY_DIR}/Wrapping/org/itk/simple/*.java
+    COMMAND ${CMAKE_COMMAND} -E remove -f ${SimpleITK_BINARY_DIR}/Wrapping/build/org/itk/simple/*.class
+  )
+endif()
diff --git a/Code/IO/src/sitkImageFileReader.cxx b/Code/IO/src/sitkImageFileReader.cxx
new file mode 100644
index 0000000..4060e7a
--- /dev/null
+++ b/Code/IO/src/sitkImageFileReader.cxx
@@ -0,0 +1,130 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifdef _MFC_VER
+#pragma warning(disable:4996)
+#endif
+
+#include "sitkImageFileReader.h"
+
+#include <itkImageFileReader.h>
+
+
+namespace itk {
+  namespace simple {
+
+  Image ReadImage ( const std::string &filename, PixelIDValueEnum outputPixelType )
+    {
+      ImageFileReader reader;
+      return reader.SetFileName ( filename ).SetOutputPixelType(outputPixelType).Execute();
+    }
+
+    ImageFileReader::ImageFileReader()
+      {
+      // list of pixel types supported
+      typedef NonLabelPixelIDTypeList PixelIDTypeList;
+
+      this->m_MemberFactory.reset( new detail::MemberFunctionFactory<MemberFunctionType>( this ) );
+
+      this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 4 > ();
+      this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 3 > ();
+      this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 2 > ();
+      }
+
+    std::string ImageFileReader::ToString() const {
+
+      std::ostringstream out;
+      out << "itk::simple::ImageFileReader";
+      out << std::endl;
+      out << "  FileName: \"";
+      this->ToStringHelper(out, this->m_FileName) << "\"" << std::endl;
+
+      out << ImageReaderBase::ToString();
+      return out.str();
+    }
+
+    ImageFileReader& ImageFileReader::SetFileName ( const std::string &fn ) {
+      this->m_FileName = fn;
+      return *this;
+    }
+
+    std::string ImageFileReader::GetFileName() const {
+      return this->m_FileName;
+    }
+
+    Image ImageFileReader::Execute () {
+
+      PixelIDValueType type = this->GetOutputPixelType();
+      unsigned int dimension = 0;
+
+
+      itk::ImageIOBase::Pointer imageio = this->GetImageIOBase( this->m_FileName );
+      if (type == sitkUnknown)
+        {
+        this->GetPixelIDFromImageIO( imageio, type, dimension );
+        }
+      else
+        {
+        PixelIDValueType unused;
+        this->GetPixelIDFromImageIO( imageio, unused, dimension );
+        }
+
+#ifdef SITK_4D_IMAGES
+      if ( dimension != 2 && dimension != 3  && dimension != 4 )
+#else
+      if ( dimension != 2 && dimension != 3 )
+#endif
+        {
+        sitkExceptionMacro( "The file has unsupported " << dimension << " dimensions." );
+        }
+
+      if ( !this->m_MemberFactory->HasMemberFunction( type, dimension ) )
+        {
+        sitkExceptionMacro( << "PixelType is not supported!" << std::endl
+                            << "Pixel Type: "
+                            << GetPixelIDValueAsString( type ) << std::endl
+                            << "Refusing to load! " << std::endl );
+        }
+
+      return this->m_MemberFactory->GetMemberFunction( type, dimension )(imageio.GetPointer());
+    }
+
+  template <class TImageType>
+  Image
+  ImageFileReader::ExecuteInternal( itk::ImageIOBase *imageio )
+  {
+
+    typedef TImageType                      ImageType;
+    typedef itk::ImageFileReader<ImageType> Reader;
+
+    // if the InstantiatedToken is correctly implemented this should
+    // not occour
+    assert( ImageTypeToPixelIDValue<ImageType>::Result != (int)sitkUnknown );
+    assert( imageio != SITK_NULLPTR );
+    typename Reader::Pointer reader = Reader::New();
+    reader->SetImageIO( imageio );
+    reader->SetFileName( this->m_FileName.c_str() );
+
+    this->PreUpdate( reader.GetPointer() );
+
+    reader->Update();
+
+    return Image( reader->GetOutput() );
+  }
+
+  }
+}
diff --git a/Code/IO/src/sitkImageFileWriter.cxx b/Code/IO/src/sitkImageFileWriter.cxx
new file mode 100644
index 0000000..690e09e
--- /dev/null
+++ b/Code/IO/src/sitkImageFileWriter.cxx
@@ -0,0 +1,166 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+#include "sitkImageFileWriter.h"
+
+#include <itkImageIOBase.h>
+#include <itkImageFileWriter.h>
+#include <itkImageRegionIterator.h>
+#include <itkGDCMImageIO.h>
+
+namespace itk {
+namespace simple {
+
+void WriteImage ( const Image& image, const std::string &inFileName, bool inUseCompression )
+  {
+    ImageFileWriter writer;
+    writer.Execute ( image, inFileName, inUseCompression );
+  }
+
+
+ImageFileWriter::ImageFileWriter()
+  {
+  this->m_UseCompression = false;
+  this->m_KeepOriginalImageUID = false;
+
+  this->m_MemberFactory.reset( new detail::MemberFunctionFactory<MemberFunctionType>( this ) );
+
+  this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 4 > ();
+  this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 3 > ();
+  this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 2 > ();
+
+  }
+
+
+std::string ImageFileWriter::ToString() const
+  {
+  std::ostringstream out;
+  out << "itk::simple::ImageFileWriter";
+  out << std::endl;
+
+  out << "  UseCompression: ";
+  this->ToStringHelper(out, this->m_UseCompression);
+  out << std::endl;
+
+  out << "  KeepOriginalImageUID: ";
+  this->ToStringHelper(out, this->m_KeepOriginalImageUID);
+  out << std::endl;
+
+  out << "  FileName: \"";
+  this->ToStringHelper(out, this->m_FileName);
+  out << "\"" << std::endl;
+
+  out << ProcessObject::ToString();
+  return out.str();
+  }
+
+  ImageFileWriter::Self&
+  ImageFileWriter::SetUseCompression( bool UseCompression )
+  {
+    this->m_UseCompression = UseCompression;
+    return *this;
+  }
+
+  bool ImageFileWriter::GetUseCompression( void ) const
+  {
+    return this->m_UseCompression;
+  }
+
+  ImageFileWriter::Self&
+  ImageFileWriter::SetKeepOriginalImageUID( bool KeepOriginalImageUID )
+  {
+    this->m_KeepOriginalImageUID = KeepOriginalImageUID;
+    return *this;
+  }
+
+  bool ImageFileWriter::GetKeepOriginalImageUID( void ) const
+  {
+    return this->m_KeepOriginalImageUID;
+  }
+
+ImageFileWriter& ImageFileWriter::SetFileName ( const std::string &fn )
+  {
+  this->m_FileName = fn;
+  return *this;
+  }
+
+std::string ImageFileWriter::GetFileName() const
+  {
+  return this->m_FileName;
+  }
+
+  ImageFileWriter& ImageFileWriter::Execute ( const Image& image, const std::string &inFileName, bool inUseCompression )
+  {
+    this->SetFileName( inFileName );
+    this->SetUseCompression( inUseCompression );
+    return this->Execute( image );
+  }
+
+ImageFileWriter& ImageFileWriter::Execute ( const Image& image )
+  {
+    PixelIDValueType type = image.GetPixelIDValue();
+    unsigned int dimension = image.GetDimension();
+
+    return this->m_MemberFactory->GetMemberFunction( type, dimension )( image );
+  }
+
+itk::SmartPointer<ImageIOBase>
+ImageFileWriter
+::GetImageIOBase(const std::string &fileName)
+{
+  itk::ImageIOBase::Pointer iobase =
+    itk::ImageIOFactory::CreateImageIO( fileName.c_str(), itk::ImageIOFactory::WriteMode);
+
+
+  if ( iobase.IsNull() )
+     {
+     sitkExceptionMacro( "Unable to determine ImageIO writer for \"" << fileName << "\"" );
+    }
+
+  // Try additional parameters
+  GDCMImageIO *ioGDCMImage = dynamic_cast<GDCMImageIO*>(iobase.GetPointer());
+  if (ioGDCMImage)
+    {
+    ioGDCMImage->SetKeepOriginalUID(this->m_KeepOriginalImageUID);
+    }
+  return iobase;
+}
+
+//-----------------------------------------------------------------------------
+template <class InputImageType>
+ImageFileWriter& ImageFileWriter::ExecuteInternal( const Image& inImage )
+  {
+    typename InputImageType::ConstPointer image =
+      dynamic_cast <const InputImageType*> ( inImage.GetITKBase() );
+
+    typedef itk::ImageFileWriter<InputImageType> Writer;
+    typename Writer::Pointer writer = Writer::New();
+    writer->SetUseCompression( this->m_UseCompression );
+    writer->SetFileName ( this->m_FileName.c_str() );
+    writer->SetInput ( image );
+    writer->SetImageIO( GetImageIOBase( this->m_FileName ).GetPointer() );
+
+    this->PreUpdate( writer.GetPointer() );
+
+    writer->Update();
+
+    return *this;
+  }
+
+} // end namespace simple
+} // end namespace itk
diff --git a/Code/IO/src/sitkImageReaderBase.cxx b/Code/IO/src/sitkImageReaderBase.cxx
new file mode 100644
index 0000000..ff38c8e
--- /dev/null
+++ b/Code/IO/src/sitkImageReaderBase.cxx
@@ -0,0 +1,336 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+#include "sitkImageReaderBase.h"
+#include "sitkMacro.h"
+#include "sitkExceptionObject.h"
+
+#include <itksys/SystemTools.hxx>
+
+// Include the Transform IO here, so that the IO factory registration
+// will occour.
+#include <itkTransformFileReader.h>
+#include <itkTransformFileWriter.h>
+
+#include <string>
+
+#include <itkImage.h>
+#include <itkImageIOBase.h>
+#include <itkImageIOFactory.h>
+#include <itkGDCMImageIO.h>
+
+
+
+namespace itk {
+namespace simple {
+
+ImageReaderBase
+::ImageReaderBase()
+  : m_OutputPixelType(sitkUnknown),
+    m_LoadPrivateTags(false)
+{
+}
+
+std::string
+ImageReaderBase
+::ToString() const
+{
+  std::ostringstream out;
+  out << "  OutputPixelType: ";
+  this->ToStringHelper(out, this->m_OutputPixelType) << std::endl;
+  out << "  LoadPrivateTags: ";
+  this->ToStringHelper(out, this->m_LoadPrivateTags) << std::endl;
+  out << ProcessObject::ToString();
+  return out.str();
+}
+
+itk::SmartPointer<ImageIOBase>
+ImageReaderBase
+::GetImageIOBase(const std::string &fileName)
+{
+  itk::ImageIOBase::Pointer iobase =
+    itk::ImageIOFactory::CreateImageIO( fileName.c_str(), itk::ImageIOFactory::ReadMode);
+
+
+  if ( iobase.IsNull() )
+     {
+     if ( !itksys::SystemTools::FileExists( fileName.c_str() ) )
+       {
+       sitkExceptionMacro( "The file \"" << fileName << "\" does not exist." );
+       }
+
+     if ( !bool(std::ifstream( fileName.c_str() )) )
+       {
+       sitkExceptionMacro( "Unable to open \"" << fileName << "\" for reading." );
+       }
+
+     sitkExceptionMacro( "Unable to determine ImageIO reader for \"" << fileName << "\"" );
+    }
+
+  // Try additional parameters
+  GDCMImageIO *ioGDCMImage = dynamic_cast<GDCMImageIO*>(iobase.GetPointer());
+  if (ioGDCMImage)
+    {
+    ioGDCMImage->SetLoadPrivateTags(this->m_LoadPrivateTags);
+    }
+
+  // Read the image information
+  iobase->SetFileName( fileName );
+  iobase->ReadImageInformation();
+
+
+  return iobase;
+}
+
+ImageReaderBase::Self&
+ImageReaderBase
+::SetOutputPixelType( PixelIDValueEnum pixelID )
+{
+  this->m_OutputPixelType = pixelID;
+  return *this;
+}
+
+PixelIDValueEnum
+ImageReaderBase
+::GetOutputPixelType( void ) const
+{
+  return this->m_OutputPixelType;
+}
+
+
+ImageReaderBase::Self&
+ImageReaderBase
+::SetLoadPrivateTags(bool loadPrivateTags)
+{
+  this->m_LoadPrivateTags = loadPrivateTags;
+  return *this;
+}
+
+bool
+ImageReaderBase
+::GetLoadPrivateTags() const
+{
+  return this->m_LoadPrivateTags;
+}
+
+void
+ImageReaderBase
+::LoadPrivateTagsOn()
+{
+  this->SetLoadPrivateTags(true);
+}
+
+void
+ImageReaderBase
+::LoadPrivateTagsOff()
+{
+  this->SetLoadPrivateTags(false);
+}
+
+
+void
+ImageReaderBase
+::GetPixelIDFromImageIO( const std::string &fileName,
+                         PixelIDValueType &outPixelType,
+                         unsigned int & outDimensions )
+{
+  itk::ImageIOBase::Pointer iobase = this->GetImageIOBase(fileName);
+
+
+  this->GetPixelIDFromImageIO(iobase, outPixelType, outDimensions);
+}
+
+void
+ImageReaderBase
+::GetPixelIDFromImageIO( ImageIOBase *iobase,
+                         PixelIDValueType &outPixelType,
+                         unsigned int & outDimensions )
+{
+
+  // get output information about input image
+  unsigned int dimension = iobase->GetNumberOfDimensions();
+  itk::ImageIOBase::IOComponentType componentType = iobase->GetComponentType();
+  itk::ImageIOBase::IOPixelType pixelType = iobase->GetPixelType();
+  unsigned int numberOfComponents = iobase->GetNumberOfComponents();
+
+  outDimensions = dimension;
+
+
+  if (numberOfComponents == 1 &&
+      ( pixelType == itk::ImageIOBase::SCALAR || pixelType == itk::ImageIOBase::COMPLEX ) )
+    {
+    outPixelType = this->ExecuteInternalReadScalar( componentType );
+    return;
+    }
+  // we try to load anything else into a VectorImage
+  else if  (pixelType == itk::ImageIOBase::RGB ||
+            pixelType == itk::ImageIOBase::RGBA ||
+            pixelType == itk::ImageIOBase::VECTOR ||
+            pixelType == itk::ImageIOBase::COVARIANTVECTOR ||
+            pixelType == itk::ImageIOBase::FIXEDARRAY ||
+            pixelType == itk::ImageIOBase::POINT ||
+            pixelType == itk::ImageIOBase::OFFSET )
+    {
+    outPixelType = this->ExecuteInternalReadVector( componentType );
+    return;
+    }
+  else if ( pixelType == itk::ImageIOBase::COMPLEX )
+    {
+    outPixelType = this->ExecuteInternalReadComplex( componentType );
+    return;
+    }
+  else
+    {
+    sitkExceptionMacro(  "Unknown PixelType: "  << (int) componentType );
+    }
+
+  sitkExceptionMacro( "Unable to load image." );
+}
+
+unsigned int
+ImageReaderBase
+::GetDimensionFromImageIO( itk::ImageIOBase* iobase, unsigned int i)
+{
+  return iobase->GetDimensions(i);
+}
+
+
+unsigned int
+ImageReaderBase
+::GetDimensionFromImageIO(const std::string &filename, unsigned int i)
+{
+  itk::ImageIOBase::Pointer iobase = this->GetImageIOBase(filename);
+
+  return this->GetDimensionFromImageIO(iobase.GetPointer(), i);
+}
+
+
+PixelIDValueType
+ImageReaderBase
+::ExecuteInternalReadScalar( int componentType )
+{
+  const unsigned int UnusedDimension = 2;
+
+  switch(componentType)
+    {
+    case itk::ImageIOBase::CHAR:
+      return ImageTypeToPixelIDValue< itk::Image<int8_t, UnusedDimension> >::Result;
+      break;
+    case itk::ImageIOBase::UCHAR:
+      return ImageTypeToPixelIDValue< itk::Image<uint8_t, UnusedDimension> >::Result;
+      break;
+    case itk::ImageIOBase::SHORT:
+      return ImageTypeToPixelIDValue< itk::Image<int16_t, UnusedDimension> >::Result;
+      break;
+    case itk::ImageIOBase::USHORT:
+      return ImageTypeToPixelIDValue< itk::Image<uint16_t, UnusedDimension> >::Result;
+      break;
+    case itk::ImageIOBase::INT:
+      return ImageTypeToPixelIDValue< itk::Image<int32_t, UnusedDimension> >::Result;
+      break;
+    case itk::ImageIOBase::UINT:
+      return ImageTypeToPixelIDValue< itk::Image<uint32_t, UnusedDimension> >::Result;
+      break;
+    case itk::ImageIOBase::LONG:
+      return ImageTypeToPixelIDValue< itk::Image<long, UnusedDimension> >::Result;
+      break;
+    case itk::ImageIOBase::ULONG:
+      return ImageTypeToPixelIDValue< itk::Image<unsigned long, UnusedDimension> >::Result;
+      break;
+    case itk::ImageIOBase::FLOAT:
+      return ImageTypeToPixelIDValue< itk::Image<float, UnusedDimension> >::Result;
+      break;
+    case itk::ImageIOBase::DOUBLE:
+      return ImageTypeToPixelIDValue< itk::Image<double, UnusedDimension> >::Result;
+      break;
+    case itk::ImageIOBase::UNKNOWNCOMPONENTTYPE:
+    default:
+      assert( false ); // should never get here unless we forgot a type
+      sitkExceptionMacro( "Logic error!" );
+    }
+}
+
+
+PixelIDValueType
+ImageReaderBase
+::ExecuteInternalReadComplex( int componentType )
+{
+  const unsigned int UnusedDimension = 2;
+
+  switch(componentType)
+    {
+    case itk::ImageIOBase::FLOAT:
+      return ImageTypeToPixelIDValue< itk::Image<std::complex<float>, UnusedDimension> >::Result;
+      break;
+    case itk::ImageIOBase::DOUBLE:
+      return ImageTypeToPixelIDValue< itk::Image<std::complex<double>, UnusedDimension> >::Result;
+      break;
+    case itk::ImageIOBase::UNKNOWNCOMPONENTTYPE:
+    default:
+      sitkExceptionMacro( "Only Complex image with float and double are supported!" );
+    }
+}
+
+PixelIDValueType
+ImageReaderBase
+::ExecuteInternalReadVector( int componentType )
+{
+  const unsigned int UnusedDimension = 2;
+
+  switch(componentType)
+    {
+    case itk::ImageIOBase::CHAR:
+      return ImageTypeToPixelIDValue< itk::VectorImage<signed char, UnusedDimension> >::Result;
+      break;
+    case itk::ImageIOBase::UCHAR:
+      return ImageTypeToPixelIDValue< itk::VectorImage<unsigned char, UnusedDimension> >::Result;
+      break;
+    case itk::ImageIOBase::SHORT:
+      return ImageTypeToPixelIDValue< itk::VectorImage<int16_t, UnusedDimension> >::Result;
+      break;
+    case itk::ImageIOBase::USHORT:
+      return ImageTypeToPixelIDValue< itk::VectorImage<uint16_t, UnusedDimension> >::Result;
+      break;
+    case itk::ImageIOBase::INT:
+      return ImageTypeToPixelIDValue< itk::VectorImage<int32_t, UnusedDimension> >::Result;
+      break;
+    case itk::ImageIOBase::UINT:
+      return ImageTypeToPixelIDValue< itk::VectorImage<uint32_t, UnusedDimension> >::Result;
+      break;
+    case itk::ImageIOBase::LONG:
+      return ImageTypeToPixelIDValue< itk::VectorImage<long, UnusedDimension> >::Result;
+      break;
+    case itk::ImageIOBase::ULONG:
+      return ImageTypeToPixelIDValue< itk::VectorImage<unsigned long, UnusedDimension> >::Result;
+      break;
+    case itk::ImageIOBase::FLOAT:
+      return ImageTypeToPixelIDValue< itk::VectorImage<float, UnusedDimension> >::Result;
+      break;
+    case itk::ImageIOBase::DOUBLE:
+      return ImageTypeToPixelIDValue< itk::VectorImage<double, UnusedDimension> >::Result;
+      break;
+    case itk::ImageIOBase::UNKNOWNCOMPONENTTYPE:
+    default:
+      assert( false ); // should never get here unless we forgot a type
+      sitkExceptionMacro( "Logic error!" );
+    }
+}
+
+
+}
+}
diff --git a/Code/IO/src/sitkImageSeriesReader.cxx b/Code/IO/src/sitkImageSeriesReader.cxx
new file mode 100644
index 0000000..421a715
--- /dev/null
+++ b/Code/IO/src/sitkImageSeriesReader.cxx
@@ -0,0 +1,184 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifdef _MFC_VER
+#pragma warning(disable:4996)
+#endif
+
+#include "sitkImageSeriesReader.h"
+
+#include <itkImageIOBase.h>
+#include <itkImageSeriesReader.h>
+
+#include "itkGDCMSeriesFileNames.h"
+
+namespace itk {
+  namespace simple {
+
+  Image ReadImage ( const std::vector<std::string> &filenames, PixelIDValueEnum outputPixelType )
+    {
+    ImageSeriesReader reader;
+    return reader.SetFileNames ( filenames ).SetOutputPixelType(outputPixelType).Execute();
+    }
+
+
+  std::vector<std::string> ImageSeriesReader::GetGDCMSeriesFileNames( const std::string &directory,
+                                                                      const std::string &seriesID,
+                                                                      bool useSeriesDetails,
+                                                                      bool recursive,
+                                                                      bool loadSequences )
+    {
+    GDCMSeriesFileNames::Pointer gdcmSeries = GDCMSeriesFileNames::New();
+
+    gdcmSeries->SetInputDirectory( directory );
+    gdcmSeries->SetUseSeriesDetails( useSeriesDetails );
+    gdcmSeries->SetRecursive( recursive );
+    gdcmSeries->SetLoadSequences( loadSequences );
+    //Skip private tags. Loading DICOM files is faster when private tags are not needed.
+    gdcmSeries->SetLoadPrivateTags( false );
+
+    gdcmSeries->Update();
+
+    return gdcmSeries->GetFileNames(seriesID);
+    }
+
+  std::vector<std::string> ImageSeriesReader::GetGDCMSeriesIDs( const std::string &directory )
+    {
+    GDCMSeriesFileNames::Pointer gdcmSeries = GDCMSeriesFileNames::New();
+
+    gdcmSeries->SetInputDirectory( directory );
+    return gdcmSeries->GetSeriesUIDs();
+    }
+
+  ImageSeriesReader::ImageSeriesReader()
+    {
+
+    // list of pixel types supported
+    typedef NonLabelPixelIDTypeList PixelIDTypeList;
+
+    this->m_MemberFactory.reset( new detail::MemberFunctionFactory<MemberFunctionType>( this ) );
+
+    this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 3 > ();
+    this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 2 > ();
+    }
+
+  std::string ImageSeriesReader::ToString() const {
+
+      std::ostringstream out;
+      out << "itk::simple::ImageSeriesReader";
+      out << std::endl;
+
+      out << "  FileNames:" << std::endl;
+      std::vector<std::string>::const_iterator iter  = m_FileNames.begin();
+      while( iter != m_FileNames.end() )
+        {
+        std::cout << "    \"" << *iter << "\"" << std::endl;
+        ++iter;
+        }
+
+      out << ImageReaderBase::ToString();
+      return out.str();
+    }
+
+  ImageSeriesReader& ImageSeriesReader::SetFileNames ( const std::vector<std::string> &filenames )
+    {
+    this->m_FileNames = filenames;
+    return *this;
+    }
+
+  const std::vector<std::string> &ImageSeriesReader::GetFileNames() const
+    {
+    return this->m_FileNames;
+    }
+
+  Image ImageSeriesReader::Execute ()
+    {
+    if( this->m_FileNames.empty() )
+      {
+      sitkExceptionMacro( "File names information is empty. Cannot read series." );
+      }
+
+
+    PixelIDValueType type =  this->GetOutputPixelType();
+    unsigned int dimension = 0;
+
+
+    itk::ImageIOBase::Pointer imageio = this->GetImageIOBase( this->m_FileNames.front() );
+    if (type == sitkUnknown)
+      {
+      this->GetPixelIDFromImageIO( imageio, type, dimension );
+      }
+    else
+      {
+      PixelIDValueType unused;
+      this->GetPixelIDFromImageIO( imageio, unused, dimension );
+      }
+
+    // increment for series
+    ++dimension;
+
+    if (dimension == 4)
+      {
+      unsigned int size = this->GetDimensionFromImageIO( imageio, 2);
+      if (size == 1)
+        {
+        --dimension;
+        }
+      }
+
+    if ( dimension != 2 && dimension != 3 )
+      {
+      sitkExceptionMacro( "The file in the series have unsupported " << dimension - 1 << " dimensions." );
+      }
+
+    if ( !this->m_MemberFactory->HasMemberFunction( type, dimension ) )
+      {
+      sitkExceptionMacro( << "PixelType is not supported!" << std::endl
+                          << "Pixel Type: "
+                          << GetPixelIDValueAsString( type ) << std::endl
+                          << "Refusing to load! " << std::endl );
+      }
+
+    return this->m_MemberFactory->GetMemberFunction( type, dimension )(imageio);
+    }
+
+  template <class TImageType> Image
+  ImageSeriesReader::ExecuteInternal( itk::ImageIOBase* imageio )
+    {
+
+    typedef TImageType                        ImageType;
+    typedef itk::ImageSeriesReader<ImageType> Reader;
+
+    // if the IsInstantiated is correctly implemented this should
+    // not occur
+    assert( ImageTypeToPixelIDValue<ImageType>::Result != (int)sitkUnknown );
+    assert( imageio != SITK_NULLPTR );
+    typename Reader::Pointer reader = Reader::New();
+    reader->SetImageIO( imageio );
+    reader->SetFileNames( this->m_FileNames );
+    // save some computation by not updating this unneeded data-structure
+    reader->MetaDataDictionaryArrayUpdateOff();
+
+    this->PreUpdate( reader.GetPointer() );
+
+    reader->Update();
+
+    return Image( reader->GetOutput() );
+    }
+
+  }
+}
diff --git a/Code/IO/src/sitkImageSeriesWriter.cxx b/Code/IO/src/sitkImageSeriesWriter.cxx
new file mode 100644
index 0000000..57e0fff
--- /dev/null
+++ b/Code/IO/src/sitkImageSeriesWriter.cxx
@@ -0,0 +1,164 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+// suppress warning about using sprintf
+#ifdef _MSC_VER
+  #define _CRT_SECURE_NO_WARNINGS
+#endif
+
+#include "sitkImageSeriesWriter.h"
+
+#include <itkImageIOBase.h>
+#include <itkImageSeriesWriter.h>
+
+#include <cctype>
+
+namespace itk {
+  namespace simple {
+
+  void WriteImage ( const Image& inImage, const std::vector<std::string> &filenames, bool inUseCompression )
+  {
+    ImageSeriesWriter writer;
+    writer.Execute( inImage, filenames, inUseCompression );
+  }
+
+  ImageSeriesWriter::ImageSeriesWriter()
+  {
+
+    this->m_UseCompression = false;
+
+    // list of pixel types supported
+    typedef NonLabelPixelIDTypeList PixelIDTypeList;
+
+    this->m_MemberFactory.reset( new detail::MemberFunctionFactory<MemberFunctionType>( this ) );
+
+    this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 3 > ();
+    //this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 2 > ();
+  }
+
+  std::string ImageSeriesWriter::ToString() const
+  {
+
+    std::ostringstream out;
+    out << "itk::simple::ImageSeriesWriter";
+    out << std::endl;
+
+    out << "  UseCompression: ";
+    this->ToStringHelper(out, this->m_UseCompression);
+    out << std::endl;
+
+    out << "  FileNames:" << std::endl;
+    std::vector<std::string>::const_iterator iter  = m_FileNames.begin();
+    while( iter != m_FileNames.end() )
+      {
+      std::cout << "    \"" << *iter << "\"" << std::endl;
+      ++iter;
+      }
+
+    return out.str();
+  }
+
+
+  ImageSeriesWriter::Self&
+  ImageSeriesWriter::SetUseCompression( bool UseCompression )
+  {
+    this->m_UseCompression = UseCompression;
+    return *this;
+  }
+
+  bool ImageSeriesWriter::GetUseCompression( void ) const
+  {
+    return this->m_UseCompression;
+  }
+
+
+  ImageSeriesWriter& ImageSeriesWriter::SetFileNames ( const std::vector<std::string> &filenames )
+  {
+    this->m_FileNames = filenames;
+    return *this;
+  }
+
+  const std::vector<std::string> &ImageSeriesWriter::GetFileNames() const
+  {
+    return this->m_FileNames;
+  }
+
+
+  ImageSeriesWriter& ImageSeriesWriter::Execute ( const Image& image, const std::vector<std::string> &inFileNames, bool inUseCompression )
+  {
+    this->SetFileNames( inFileNames );
+    this->SetUseCompression( inUseCompression );
+    return this->Execute( image );
+  }
+
+  ImageSeriesWriter &ImageSeriesWriter::Execute ( const Image &image )
+  {
+
+    // check that the number of file names match the slice size
+    PixelIDValueType type = image.GetPixelIDValue();
+    unsigned int dimension = image.GetDimension();
+
+    return this->m_MemberFactory->GetMemberFunction( type, dimension )( image );
+  }
+
+  template <class TImageType>
+  ImageSeriesWriter &
+  ImageSeriesWriter::ExecuteInternal( const Image& inImage )
+  {
+    // Define the input and output image types
+    typedef TImageType     InputImageType;
+
+    // Verify input file name are provided
+    if( this->m_FileNames.empty() )
+      {
+      sitkExceptionMacro("The parameter \"FileNames\" is empty!");
+      }
+
+    // Verify the input file name are not DICOM
+    for(unsigned int i = 0; i < this->m_FileNames.size(); ++i)
+      {
+      const std::string & fn = this->m_FileNames[i];
+      std::string ext = fn.substr(fn.find_last_of(".")+1);
+      std::transform(ext.begin(), ext.end(), ext.begin(), ::tolower);
+
+      if (ext == "dcm" || ext == "dicom")
+        {
+        sitkExceptionMacro(<<this->GetName()<<" does not support writing a DICOM series!")
+        }
+      }
+
+
+    typename InputImageType::ConstPointer image = this->CastImageToITK<InputImageType>( inImage );
+
+    typedef itk::ImageSeriesWriter<InputImageType,
+                                   typename InputImageType::template Rebind<typename InputImageType::PixelType, InputImageType::ImageDimension-1>::Type> Writer;
+
+    typename Writer::Pointer writer = Writer::New();
+    writer->SetUseCompression( this->m_UseCompression );
+    writer->SetFileNames( this->m_FileNames );
+    writer->SetInput( image );
+
+    this->PreUpdate( writer.GetPointer() );
+
+    writer->Update();
+
+    return *this;
+  }
+
+  }
+}
diff --git a/Code/IO/src/sitkImportImageFilter.cxx b/Code/IO/src/sitkImportImageFilter.cxx
new file mode 100644
index 0000000..25e15bf
--- /dev/null
+++ b/Code/IO/src/sitkImportImageFilter.cxx
@@ -0,0 +1,540 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifdef _MFC_VER
+#pragma warning(disable:4996)
+#endif
+
+#include "sitkImportImageFilter.h"
+#include "sitkExceptionObject.h"
+
+#include <itkImage.h>
+#include <itkVectorImage.h>
+
+#include <iterator>
+
+// private namespace
+namespace
+{
+const unsigned int UnusedDimension = 2;
+}
+
+namespace itk {
+namespace simple {
+
+Image ImportAsInt8(
+    int8_t * buffer,
+    const std::vector< unsigned int > &size,
+    const std::vector< double > &spacing,
+    const std::vector< double > &origin,
+    const std::vector< double > &direction,
+    unsigned int numberOfComponents
+) {
+    ImportImageFilter import;
+    import.SetSize( size );
+    import.SetSpacing( spacing );
+    import.SetOrigin( origin );
+    import.SetDirection( direction );
+    import.SetBufferAsInt8( buffer, numberOfComponents );
+    return import.Execute();
+}
+
+Image ImportAsUInt8(
+    uint8_t * buffer,
+    const std::vector< unsigned int > &size,
+    const std::vector< double > &spacing,
+    const std::vector< double > &origin,
+    const std::vector< double > &direction,
+    unsigned int numberOfComponents
+) {
+    ImportImageFilter import;
+    import.SetSize( size );
+    import.SetSpacing( spacing );
+    import.SetOrigin( origin );
+    import.SetDirection( direction );
+    import.SetBufferAsUInt8( buffer, numberOfComponents );
+    return import.Execute();
+}
+
+Image ImportAsInt16(
+    int16_t * buffer,
+    const std::vector< unsigned int > &size,
+    const std::vector< double > &spacing,
+    const std::vector< double > &origin,
+    const std::vector< double > &direction,
+    unsigned int numberOfComponents
+) {
+    ImportImageFilter import;
+    import.SetSize( size );
+    import.SetSpacing( spacing );
+    import.SetOrigin( origin );
+    import.SetDirection( direction );
+    import.SetBufferAsInt16( buffer, numberOfComponents );
+    return import.Execute();
+}
+
+Image ImportAsUInt16(
+    uint16_t * buffer,
+    const std::vector< unsigned int > &size,
+    const std::vector< double > &spacing,
+    const std::vector< double > &origin,
+    const std::vector< double > &direction,
+    unsigned int numberOfComponents
+) {
+    ImportImageFilter import;
+    import.SetSize( size );
+    import.SetSpacing( spacing );
+    import.SetOrigin( origin );
+    import.SetDirection( direction );
+    import.SetBufferAsUInt16( buffer, numberOfComponents );
+    return import.Execute();
+}
+
+Image ImportAsInt32(
+    int32_t * buffer,
+    const std::vector< unsigned int > &size,
+    const std::vector< double > &spacing,
+    const std::vector< double > &origin,
+    const std::vector< double > &direction,
+    unsigned int numberOfComponents
+) {
+    ImportImageFilter import;
+    import.SetSize( size );
+    import.SetSpacing( spacing );
+    import.SetOrigin( origin );
+    import.SetDirection( direction );
+    import.SetBufferAsInt32( buffer, numberOfComponents );
+    return import.Execute();
+}
+
+Image ImportAsUInt32(
+    uint32_t * buffer,
+    const std::vector< unsigned int > &size,
+    const std::vector< double > &spacing,
+    const std::vector< double > &origin,
+    const std::vector< double > &direction,
+    unsigned int numberOfComponents
+) {
+    ImportImageFilter import;
+    import.SetSize( size );
+    import.SetSpacing( spacing );
+    import.SetOrigin( origin );
+    import.SetDirection( direction );
+    import.SetBufferAsUInt32( buffer, numberOfComponents );
+    return import.Execute();
+}
+
+Image ImportAsInt64(
+    int64_t * buffer,
+    const std::vector< unsigned int > &size,
+    const std::vector< double > &spacing,
+    const std::vector< double > &origin,
+    const std::vector< double > &direction,
+    unsigned int numberOfComponents
+) {
+    ImportImageFilter import;
+    import.SetSize( size );
+    import.SetSpacing( spacing );
+    import.SetOrigin( origin );
+    import.SetDirection( direction );
+    import.SetBufferAsInt64( buffer, numberOfComponents );
+    return import.Execute();
+}
+
+Image ImportAsUInt64(
+    uint64_t * buffer,
+    const std::vector< unsigned int > &size,
+    const std::vector< double > &spacing,
+    const std::vector< double > &origin,
+    const std::vector< double > &direction,
+    unsigned int numberOfComponents
+) {
+    ImportImageFilter import;
+    import.SetSize( size );
+    import.SetSpacing( spacing );
+    import.SetOrigin( origin );
+    import.SetDirection( direction );
+    import.SetBufferAsUInt64( buffer, numberOfComponents );
+    return import.Execute();
+}
+
+Image ImportAsFloat(
+    float * buffer,
+    const std::vector< unsigned int > &size,
+    const std::vector< double > &spacing,
+    const std::vector< double > &origin,
+    const std::vector< double > &direction,
+    unsigned int numberOfComponents
+) {
+    ImportImageFilter import;
+    import.SetSize( size );
+    import.SetSpacing( spacing );
+    import.SetOrigin( origin );
+    import.SetDirection( direction );
+    import.SetBufferAsFloat( buffer, numberOfComponents );
+    return import.Execute();
+}
+
+Image ImportAsDouble(
+    double * buffer,
+    const std::vector< unsigned int > &size,
+    const std::vector< double > &spacing,
+    const std::vector< double > &origin,
+    const std::vector< double > &direction,
+    unsigned int numberOfComponents
+) {
+    ImportImageFilter import;
+    import.SetSize( size );
+    import.SetSpacing( spacing );
+    import.SetOrigin( origin );
+    import.SetDirection( direction );
+    import.SetBufferAsDouble( buffer, numberOfComponents );
+    return import.Execute();
+}
+
+ImportImageFilter::ImportImageFilter()
+{
+  m_NumberOfComponentsPerPixel = 0;
+  m_PixelIDValue = sitkUnknown;
+  m_Origin = std::vector<double>( 3, 0.0 );
+  m_Spacing = std::vector<double>( 3, 1.0 );
+  this->m_Buffer = NULL;
+
+  // list of pixel types supported
+  typedef NonLabelPixelIDTypeList PixelIDTypeList;
+
+  this->m_MemberFactory.reset( new detail::MemberFunctionFactory<MemberFunctionType>( this ) );
+
+  this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 4 > ();
+  this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 3 > ();
+  this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 2 > ();
+      
+}
+
+ImportImageFilter::Self& ImportImageFilter::SetSpacing( const std::vector< double > &spacing )
+{
+  this->m_Spacing = spacing;
+  return *this;
+}
+
+const std::vector< double > &ImportImageFilter::GetSpacing( ) const
+{
+  return this->m_Spacing;
+}
+
+ImportImageFilter::Self& ImportImageFilter::SetOrigin( const std::vector< double > &origin )
+{
+  this->m_Origin = origin;
+  return *this;
+}
+
+const std::vector< double > &ImportImageFilter::GetOrigin( ) const
+{
+  return this->m_Origin;
+}
+
+ImportImageFilter::Self& ImportImageFilter::SetSize( const std::vector< unsigned int > &size )
+{
+  this->m_Size = size;
+  return *this;
+}
+
+const std::vector< unsigned int > &ImportImageFilter::GetSize( ) const
+{
+  return this->m_Size;
+}
+
+ImportImageFilter::Self& ImportImageFilter::SetDirection( const std::vector< double > &direction )
+{
+  this->m_Direction = direction;
+  return *this;
+}
+
+const std::vector< double > &ImportImageFilter::GetDirection( ) const
+{
+  return this->m_Direction;
+}
+
+ImportImageFilter::Self& ImportImageFilter::SetBufferAsInt8( int8_t * buffer, unsigned int numberOfComponents )
+{
+  this->m_Buffer = buffer;
+  this->m_NumberOfComponentsPerPixel = numberOfComponents;
+  if ( this->m_NumberOfComponentsPerPixel == 1 )
+    {
+    this->m_PixelIDValue = ImageTypeToPixelIDValue< itk::Image<int8_t, UnusedDimension> >::Result;
+    }
+  else
+    {
+    this->m_PixelIDValue = ImageTypeToPixelIDValue< itk::VectorImage<int8_t, UnusedDimension> >::Result;
+    }
+  return *this;
+}
+ImportImageFilter::Self& ImportImageFilter::SetBufferAsUInt8( uint8_t * buffer, unsigned int numberOfComponents )
+{
+  this->m_Buffer = buffer;
+  this->m_NumberOfComponentsPerPixel = numberOfComponents;
+  if ( this->m_NumberOfComponentsPerPixel == 1 )
+    {
+    this->m_PixelIDValue = ImageTypeToPixelIDValue< itk::Image<uint8_t, UnusedDimension> >::Result;
+    }
+  else
+    {
+    this->m_PixelIDValue = ImageTypeToPixelIDValue< itk::VectorImage<uint8_t, UnusedDimension> >::Result;
+    }
+  return *this;
+}
+ImportImageFilter::Self& ImportImageFilter::SetBufferAsInt16( int16_t * buffer, unsigned int numberOfComponents )
+{
+  this->m_Buffer = buffer;
+  this->m_NumberOfComponentsPerPixel = numberOfComponents;
+  if ( this->m_NumberOfComponentsPerPixel == 1 )
+    {
+    this->m_PixelIDValue = ImageTypeToPixelIDValue< itk::Image<int16_t, UnusedDimension> >::Result;
+    }
+  else
+    {
+    this->m_PixelIDValue = ImageTypeToPixelIDValue< itk::VectorImage<int16_t, UnusedDimension> >::Result;
+    }
+  return *this;
+}
+ImportImageFilter::Self& ImportImageFilter::SetBufferAsUInt16( uint16_t * buffer, unsigned int numberOfComponents )
+{
+  this->m_Buffer = buffer;
+  this->m_NumberOfComponentsPerPixel = numberOfComponents;
+  if ( this->m_NumberOfComponentsPerPixel == 1 )
+    {
+    this->m_PixelIDValue = ImageTypeToPixelIDValue< itk::Image<uint16_t, UnusedDimension> >::Result;
+    }
+  else
+    {
+    this->m_PixelIDValue = ImageTypeToPixelIDValue< itk::VectorImage<uint16_t, UnusedDimension> >::Result;
+    }
+  return *this;
+}
+ImportImageFilter::Self& ImportImageFilter::SetBufferAsInt32( int32_t * buffer, unsigned int numberOfComponents )
+{
+  this->m_Buffer = buffer;
+  this->m_NumberOfComponentsPerPixel = numberOfComponents;
+  if ( this->m_NumberOfComponentsPerPixel == 1 )
+    {
+    this->m_PixelIDValue = ImageTypeToPixelIDValue< itk::Image<int32_t, UnusedDimension> >::Result;
+    }
+  else
+    {
+    this->m_PixelIDValue = ImageTypeToPixelIDValue< itk::VectorImage<int32_t, UnusedDimension> >::Result;
+    }
+  return *this;
+}
+ImportImageFilter::Self& ImportImageFilter::SetBufferAsUInt32( uint32_t * buffer, unsigned int numberOfComponents )
+{
+  this->m_Buffer = buffer;
+  this->m_NumberOfComponentsPerPixel = numberOfComponents;
+  if ( this->m_NumberOfComponentsPerPixel == 1 )
+    {
+    this->m_PixelIDValue = ImageTypeToPixelIDValue< itk::Image<uint32_t, UnusedDimension> >::Result;
+    }
+  else
+    {
+    this->m_PixelIDValue = ImageTypeToPixelIDValue< itk::VectorImage<uint32_t, UnusedDimension> >::Result;
+    }
+  return *this;
+}
+ImportImageFilter::Self& ImportImageFilter::SetBufferAsInt64( int64_t * buffer, unsigned int numberOfComponents )
+{
+  this->m_Buffer = buffer;
+  this->m_NumberOfComponentsPerPixel = numberOfComponents;
+  if ( this->m_NumberOfComponentsPerPixel == 1 )
+    {
+    this->m_PixelIDValue = ImageTypeToPixelIDValue< itk::Image<int64_t, UnusedDimension> >::Result;
+    }
+  else
+    {
+    this->m_PixelIDValue = ImageTypeToPixelIDValue< itk::VectorImage<int64_t, UnusedDimension> >::Result;
+    }
+  return *this;
+}
+ImportImageFilter::Self& ImportImageFilter::SetBufferAsUInt64( uint64_t * buffer, unsigned int numberOfComponents )
+{
+  this->m_Buffer = buffer;
+  this->m_NumberOfComponentsPerPixel = numberOfComponents;
+  if ( this->m_NumberOfComponentsPerPixel == 1 )
+    {
+    this->m_PixelIDValue = ImageTypeToPixelIDValue< itk::Image<uint64_t, UnusedDimension> >::Result;
+    }
+  else
+    {
+    this->m_PixelIDValue = ImageTypeToPixelIDValue< itk::VectorImage<uint64_t, UnusedDimension> >::Result;
+    }
+  return *this;
+}
+
+ImportImageFilter::Self& ImportImageFilter::SetBufferAsFloat( float * buffer, unsigned int numberOfComponents )
+{
+  this->m_Buffer = buffer;
+  this->m_NumberOfComponentsPerPixel = numberOfComponents;
+  if ( this->m_NumberOfComponentsPerPixel == 1 )
+    {
+    this->m_PixelIDValue = ImageTypeToPixelIDValue< itk::Image<float, UnusedDimension> >::Result;
+    }
+  else
+    {
+    this->m_PixelIDValue = ImageTypeToPixelIDValue< itk::VectorImage<float, UnusedDimension> >::Result;
+    }
+  return *this;
+}
+ImportImageFilter::Self& ImportImageFilter::SetBufferAsDouble( double * buffer, unsigned int numberOfComponents )
+{
+  this->m_Buffer = buffer;
+  this->m_NumberOfComponentsPerPixel = numberOfComponents;
+  if ( this->m_NumberOfComponentsPerPixel == 1 )
+    {
+    this->m_PixelIDValue = ImageTypeToPixelIDValue< itk::Image<double, UnusedDimension> >::Result;
+    }
+  else
+    {
+    this->m_PixelIDValue = ImageTypeToPixelIDValue< itk::VectorImage<double, UnusedDimension> >::Result;
+    }
+  return *this;
+}
+
+
+#define PRINT_IVAR_MACRO( VAR ) "\t" << #VAR << ": " << VAR << std::endl
+
+std::string ImportImageFilter::ToString() const
+{
+  std::ostringstream out;
+
+  out << "itk::simple::ImportImageFilter\n"
+      << PRINT_IVAR_MACRO( m_NumberOfComponentsPerPixel )
+      << PRINT_IVAR_MACRO( m_PixelIDValue )
+      << PRINT_IVAR_MACRO( m_Origin )
+      << PRINT_IVAR_MACRO( m_Spacing )
+      << PRINT_IVAR_MACRO( m_Size )
+      << PRINT_IVAR_MACRO( m_Direction )
+      << PRINT_IVAR_MACRO( m_Buffer );
+  return out.str();
+}
+
+Image ImportImageFilter::Execute ()
+{
+  unsigned int imageDimension = this->m_Size.size();
+
+  // perform sanity check on some parameters
+  if (  this->m_NumberOfComponentsPerPixel == 0 || this->m_PixelIDValue == sitkUnknown )
+    {
+    sitkExceptionMacro( << "PixelType or NumberOfComponentsPerPixel are invalid!" );
+    }
+
+
+  if ( imageDimension != 3 && imageDimension != 2 )
+    {
+    sitkExceptionMacro(<< "The length of size is invalid! "
+                       << "Only image of dimension 2 or 3 are supported." );
+    }
+
+  if ( !this->m_MemberFactory->HasMemberFunction( this->m_PixelIDValue, imageDimension ) )
+    {
+    sitkExceptionMacro( << "PixelType is not supported!" << std::endl
+                        << "Pixel Type: "
+                        << GetPixelIDValueAsString( this->m_PixelIDValue ) << std::endl
+                        << "Refusing to load! " << std::endl );
+    }
+
+  return this->m_MemberFactory->GetMemberFunction( this->m_PixelIDValue, imageDimension )();
+}
+
+
+template <class TImageType>
+Image ImportImageFilter::ExecuteInternal( )
+{
+
+  typedef TImageType                            ImageType;
+  const unsigned int Dimension = ImageType::ImageDimension;
+
+  // if the InstantiatedToken is correctly implemented this should
+  // not occur
+  assert( ImageTypeToPixelIDValue<ImageType>::Result != (int)sitkUnknown );
+
+  typename ImageType::Pointer image = ImageType::New();
+
+
+
+
+  //
+  //  Origin
+  //
+  typename ImageType::PointType origin = sitkSTLVectorToITK< typename ImageType::PointType >( this->m_Origin );
+  image->SetOrigin( origin );
+
+  //
+  //  Spacing
+  //
+  typename ImageType::SpacingType spacing = sitkSTLVectorToITK< typename ImageType::SpacingType >( this->m_Spacing );
+  image->SetSpacing( spacing );
+
+  //
+  //  Size and Region
+  //
+  typename ImageType::RegionType region;
+  typename ImageType::SizeType size = sitkSTLVectorToITK< typename ImageType::SizeType >( this->m_Size );
+  region.SetSize(size);
+  // set the size and region to the ITK image.
+  image->SetRegions( region );
+
+  //
+  // Direction, if m_Direction is not set, use ITK's default which is
+  // an identity.
+  //
+  if (this->m_Direction.size() != 0 )
+    {
+    image->SetDirection(  sitkSTLToITKDirection<typename ImageType::DirectionType>( this->m_Direction ) );
+    }
+
+
+  size_t numberOfElements = m_NumberOfComponentsPerPixel;
+  for(unsigned int si = 0; si < Dimension; si++ )
+    {
+    numberOfElements *= size[si];
+    }
+
+  const bool TheContainerWillTakeCareOfDeletingTheMemoryBuffer = false;
+
+  // Set the image's pixel container to import the pointer provided.
+  image->GetPixelContainer()->SetImportPointer(static_cast<typename ImageType::InternalPixelType*>(m_Buffer), numberOfElements,
+                                               TheContainerWillTakeCareOfDeletingTheMemoryBuffer);
+
+
+  //
+  // Meta-programmed method to set the number of components if a
+  // vector image
+  //
+  this->SetNumberOfComponentsOnImage( image.GetPointer() );
+
+  // This line must be the last line in the function to prevent a deep
+  // copy caused by a implicit sitk::MakeUnique
+  return Image( image );
+}
+
+template <class TFilterType>
+typename EnableIf<IsVector<TFilterType>::Value>::Type
+ImportImageFilter::SetNumberOfComponentsOnImage ( TFilterType*image )
+{
+  image->SetNumberOfComponentsPerPixel( m_NumberOfComponentsPerPixel );
+}
+
+}
+}
diff --git a/Code/IO/src/sitkShow.cxx b/Code/IO/src/sitkShow.cxx
new file mode 100644
index 0000000..7e6bab7
--- /dev/null
+++ b/Code/IO/src/sitkShow.cxx
@@ -0,0 +1,668 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include "sitkShow.h"
+#include "sitkMacro.h"
+#include "sitkImageFileWriter.h"
+#include <itksys/SystemTools.hxx>
+#include <itksys/Process.h>
+#include <stdlib.h>
+#include <iostream>
+#include <sstream>
+#include <iterator>
+#include <string>
+#include <algorithm>
+#include <ctype.h>
+
+#ifdef _WIN32
+#include <process.h>
+#else
+#include <unistd.h>
+#endif
+
+namespace itk
+{
+  namespace simple
+  {
+
+  static int ShowImageCount = 0;
+
+#if defined(_WIN32)
+  // time to wait in seconds before we check if the process is OK
+  const unsigned int ProcessDelay = 1;
+#else
+  // time to wait in milli-seconds before we check if the process is OK
+  const unsigned int ProcessDelay = 500;
+#endif
+
+#define IMAGEJ_OPEN_MACRO "open(\"%f\"); rename(\"%t\");"
+#define NIFTI_COLOR_MACRO " run(\"Make Composite\", \"display=Composite\");"
+
+
+#if defined(_WIN32)
+  const static char * ShowImageCommand = "%a -eval \'" IMAGEJ_OPEN_MACRO "\'";
+  const static char * ShowColorImageCommand = "%a -eval \'" IMAGEJ_OPEN_MACRO NIFTI_COLOR_MACRO "\'";
+
+#elif defined(__APPLE__)
+  // The "-n" flag tells OSX to launch a new instance of ImageJ, even if one is already running.
+  // We do this because otherwise the macro command line argument is not correctly passed to
+  // a previously running instance of ImageJ.
+  const static char * ShowImageCommand = "open -a %a -n --args -eval \'" IMAGEJ_OPEN_MACRO "\'";
+  const static char * ShowColorImageCommand = "open -a %a -n --args -eval \'" IMAGEJ_OPEN_MACRO NIFTI_COLOR_MACRO "\'";
+
+#else
+  // linux and other systems
+  const static char * ShowImageCommand = "%a -e \'" IMAGEJ_OPEN_MACRO "\'";
+
+  const static char * ShowColorImageCommand = "%a -e \'" IMAGEJ_OPEN_MACRO NIFTI_COLOR_MACRO "\'";
+#endif
+
+
+  // For Fiji, we only need 2 commands, not 6.  We don't need a separate command for color images.
+  // Also the linux version uses the "-eval" flag instead of "-e".
+#if defined(__APPLE__)
+  const static char * FijiShowCommand = "open -a %a -n --args -eval \'" IMAGEJ_OPEN_MACRO "\'";
+#else
+  const static char * FijiShowCommand = "%a -eval \'" IMAGEJ_OPEN_MACRO "\'";
+#endif
+
+
+  // Function to replace %tokens in a string.  The tokens are %a and %f for
+  // application and file name respectively.  %% will send % to the output string.
+  // Multiple occurances of a token are allowed.
+  //
+  static std::string ReplaceWords(std::string command, std::string app, std::string filename, std::string title, bool& fileFlag)
+    {
+    std::string result;
+
+    unsigned int i=0;
+    while (i<command.length())
+      {
+
+      if (command[i] != '%')
+        {
+        result.push_back(command[i]);
+        }
+      else
+        {
+        if (i<command.length()-1)
+          {
+          // check the next character after the %
+          switch(command[i+1])
+            {
+            case '%':
+              // %%
+              result.push_back(command[i]);
+              i++;
+              break;
+            case 'a':
+              // %a for application
+              if (!app.length())
+                {
+                sitkExceptionMacro( "No ImageJ/Fiji application found." )
+                }
+              result.append(app);
+              i++;
+              break;
+            case 't':
+              // %t for title
+              result.append(title);
+              i++;
+              break;
+            case 'f':
+              // %f for filename
+              result.append(filename);
+              fileFlag = true;
+              i++;
+              break;
+            }
+
+          }
+        else
+          {
+          // if the % is the last character in the string just pass it through
+          result.push_back(command[i]);
+          }
+        }
+      i++;
+      }
+    return result;
+    }
+
+  // Function to strip the matching leading and trailing quotes off a string
+  // if there are any.  We need to do this because the way arguments are passed
+  // to itksysProcess_Execute
+  //
+  static std::string UnquoteWord(std::string word)
+    {
+    size_t l = word.length();
+
+    if (l<2)
+      {
+      return word;
+      }
+    //std::cout << "crap: " << word[0] << " " << word[l-1] << " " << l << std::endl;
+
+    switch(word[0])
+      {
+
+      case '\'':
+      case '\"':
+        if (word[l-1] == word[0])
+          {
+          //std::cout <<  "Unquoted: " << word.substr(1, l-2);
+          return word.substr(1, l-2);
+          }
+        else
+          {
+          return word;
+          }
+        break;
+
+      default:
+        return word;
+        break;
+      }
+    }
+
+  static std::vector<std::string> ConvertCommand(std::string command, std::string app, std::string filename, std::string title="")
+    {
+
+    if (title == "")
+      {
+      title = filename;
+      }
+
+    bool fileFlag=false;
+    std::string new_command = ReplaceWords(command, app, filename, title, fileFlag);
+    std::istringstream iss(new_command);
+    std::vector<std::string> result;
+    std::vector<unsigned char> quoteStack;
+    std::string word;
+    unsigned int i=0;
+
+    //std::cout << new_command << std::endl;
+
+    while (i<new_command.length())
+      {
+      switch (new_command[i])
+        {
+
+        case '\'':
+        case '\"':
+          word.push_back(new_command[i]);
+          if (quoteStack.size())
+            {
+            if (new_command[i] == quoteStack[quoteStack.size()-1])
+              {
+              // we have a matching pair, so pop it off the stack
+              quoteStack.pop_back();
+              }
+            else
+              {
+              // the top of the stack and the new one don't match, so push it on
+              quoteStack.push_back(new_command[i]);
+              }
+            }
+          else
+            {
+            // quoteStack is empty so push this new quote on the stack.
+            quoteStack.push_back(new_command[i]);
+            }
+          break;
+
+        case ' ':
+          if (quoteStack.size())
+            {
+            // the space occurs inside a quote, so tack it onto the current word.
+            word.push_back(new_command[i]);
+            }
+          else
+            {
+            // the space isn't inside a quote, so we've ended a word.
+            word = UnquoteWord(word);
+            result.push_back(word);
+            word.clear();
+            }
+          break;
+
+        default:
+          word.push_back(new_command[i]);
+          break;
+        }
+      i++;
+
+      }
+
+    if (word.length())
+      {
+      word = UnquoteWord(word);
+      result.push_back(word);
+      }
+
+
+    // if the filename token wasn't found in the command string, add the filename to the end of the command vector.
+    if (!fileFlag)
+      {
+      result.push_back(filename);
+      }
+    return result;
+    }
+
+  //
+  static std::string FormatFileName ( std::string TempDirectory, std::string name, const bool metaioDefault=false )
+  {
+  std::string TempFile = TempDirectory;
+  std::string Extension;
+
+  if (metaioDefault)
+    {
+    Extension = ".mha";
+    }
+  else
+    {
+    Extension = ".nii";
+    }
+
+
+  itksys::SystemTools::GetEnv ( "SITK_SHOW_EXTENSION", Extension );
+
+#ifdef _WIN32
+  int pid = _getpid();
+#else
+  int pid = getpid();
+#endif
+
+  std::ostringstream tmp;
+
+  if ( name != "" )
+    {
+    // remove whitespace
+    name.erase(std::remove_if(name.begin(), name.end(), &::isspace), name.end());
+
+    tmp << name << "-" << pid << "-" << ShowImageCount;
+    TempFile = TempFile + tmp.str() + Extension;
+    }
+  else
+    {
+
+
+    tmp << "TempFile-" << pid << "-" << ShowImageCount;
+    TempFile = TempFile + tmp.str() + Extension;
+    }
+  ShowImageCount++;
+  return TempFile;
+  }
+
+#if defined(_WIN32)
+  //
+  // Function that converts slashes or backslashes to double backslashes.  We need
+  // to do this so the file name is properly parsed by ImageJ if it's used in a macro.
+  //
+  static std::string DoubleBackslashes(const std::string word)
+  {
+    std::string result;
+
+    for (unsigned int i=0; i<word.length(); i++)
+      {
+      // put in and extra backslash
+      if (word[i] == '\\' || word[i]=='/')
+        {
+        result.push_back('\\');
+        result.push_back('\\');
+        }
+      else
+        {
+        result.push_back(word[i]);
+        }
+      }
+
+    return result;
+  }
+#endif
+
+  //
+  //
+  static std::string BuildFullFileName(const std::string name, const bool metaioDefault=false)
+  {
+  std::string TempDirectory;
+
+#ifdef _WIN32
+  if ( !itksys::SystemTools::GetEnv ( "TMP", TempDirectory )
+    && !itksys::SystemTools::GetEnv ( "TEMP", TempDirectory )
+    && !itksys::SystemTools::GetEnv ( "USERPROFILE", TempDirectory )
+    && !itksys::SystemTools::GetEnv ( "WINDIR", TempDirectory ) )
+    {
+    sitkExceptionMacro ( << "Can not find temporary directory.  Tried TMP, TEMP, USERPROFILE, and WINDIR environment variables" );
+    }
+  TempDirectory = TempDirectory + "\\";
+  TempDirectory = DoubleBackslashes(TempDirectory);
+#else
+  TempDirectory = "/tmp/";
+#endif
+  return FormatFileName ( TempDirectory, name, metaioDefault );
+  }
+
+
+  //
+  //
+  static std::string FindApplication(const std::string directory = "", const std::string name = "", const bool debugOn=false )
+  {
+
+  std::vector<std::string> paths;
+  std::string ExecutableName=name;
+
+#ifdef _WIN32
+
+  std::string ProgramFiles;
+  if ( itksys::SystemTools::GetEnv ( "PROGRAMFILES", ProgramFiles ) )
+    {
+    paths.push_back ( ProgramFiles + "\\" + directory + "\\");
+    }
+
+  if ( itksys::SystemTools::GetEnv ( "PROGRAMFILES(x86)", ProgramFiles ) )
+    {
+    paths.push_back ( ProgramFiles + "\\" + directory + "\\");
+    }
+
+  if ( itksys::SystemTools::GetEnv ( "PROGRAMW6432", ProgramFiles ) )
+    {
+    paths.push_back ( ProgramFiles + "\\" + directory + "\\");
+    }
+
+  if ( itksys::SystemTools::GetEnv ( "USERPROFILE", ProgramFiles ) )
+    {
+    paths.push_back ( ProgramFiles + "\\" + directory + "\\");
+    paths.push_back ( ProgramFiles + "\\Desktop\\" + directory + "\\");
+    }
+
+  // Find the executable
+  ExecutableName = itksys::SystemTools::FindFile ( ExecutableName.c_str(), paths );
+
+#elif defined(__APPLE__)
+
+  // Common places on the Mac to look
+  paths.push_back( "/Applications" );
+  paths.push_back( "/Applications/" + directory );
+  paths.push_back( "/Developer" );
+  paths.push_back( "/opt/" + directory );
+  paths.push_back( "/usr/local/" + directory );
+
+  ExecutableName = itksys::SystemTools::FindDirectory( name.c_str(), paths );
+
+#else
+
+  // linux and other systems
+  paths.push_back( "./" + directory );
+  std::string homedir;
+  if ( itksys::SystemTools::GetEnv ( "HOME", homedir ) )
+    {
+    paths.push_back( homedir + "/bin/" + directory );
+    }
+
+  paths.push_back( "~/bin/" + directory );
+  paths.push_back( "/opt/" + directory );
+  paths.push_back( "/usr/local/" + directory );
+  ExecutableName = itksys::SystemTools::FindFile ( name.c_str(), paths );
+
+#endif
+
+  if (debugOn)
+    {
+    std::cout << "FindApplication search path: " << paths << std::endl;
+    std::cout << "Result: " << ExecutableName << std::endl;
+    }
+
+  return ExecutableName;
+  }
+
+
+  /**
+   * This function take a list of command line arguments, and runs a
+   * process based on it. It waits for a fraction of a second before
+   * checking it's state, to verify it was launched OK.
+   */
+  static void ExecuteShow( const std::vector<std::string> & cmdLine, const bool debugOn=false )
+  {
+    unsigned int i;
+
+    if (debugOn)
+      {
+      std::cout << "Show command: ";
+      for ( i = 0; i < cmdLine.size(); ++i )
+        std::cout << '\'' << cmdLine[i] << "\' ";
+      std::cout << std::endl;
+      }
+
+    std::vector<const char*> cmd( cmdLine.size() + 1, NULL );
+
+    for ( i = 0; i < cmdLine.size(); ++i )
+      {
+      cmd[i] = cmdLine[i].c_str();
+      }
+
+    itksysProcess *kp = itksysProcess_New();
+
+    itksysProcess_SetCommand( kp, &cmd[0] );
+
+    itksysProcess_SetOption( kp, itksysProcess_Option_Detach, 1 );
+
+    // For detached processes, this appears not to be the default
+    itksysProcess_SetPipeShared( kp, itksysProcess_Pipe_STDERR, 1);
+    itksysProcess_SetPipeShared( kp, itksysProcess_Pipe_STDOUT, 1);
+
+    itksysProcess_Execute( kp );
+
+    // Wait one second then check to see if we launched ok.
+    // N.B. Because the launched process may spawn a child process for
+    // the acutal application we want, this methods is needed to be
+    // called before the GetState, so that we get more then the
+    // imediate result of the initial execution.
+    double timeout = ProcessDelay;
+    itksysProcess_WaitForExit( kp, &timeout );
+
+
+    switch (itksysProcess_GetState(kp))
+      {
+      case itksysProcess_State_Executing:
+        // This first case is what we expect if everything went OK.
+
+        // We want the other process to continue going
+        itksysProcess_Delete( kp ); // implicitly disowns
+        break;
+
+      case itksysProcess_State_Exited:
+        {
+        int exitValue = itksysProcess_GetExitValue(kp);
+        if ( exitValue != 0 )
+          {
+          sitkExceptionMacro (  << "Process returned " << exitValue << "." );
+          }
+        }
+        break;
+
+      case itksysProcess_State_Killed:
+        itksysProcess_Delete( kp );
+        sitkExceptionMacro (  << "Child was killed by parent." );
+        break;
+
+      case itksysProcess_State_Exception:
+        {
+        std::string exceptionString = itksysProcess_GetExceptionString(kp);
+        itksysProcess_Delete( kp );
+        sitkExceptionMacro (  << "Child terminated abnormally: " << exceptionString );;
+        }
+        break;
+
+      case itksysProcess_State_Error:
+        {
+        std::string errorString = itksysProcess_GetErrorString(kp);
+        itksysProcess_Delete( kp );
+        sitkExceptionMacro (  << "Error in administrating child process: [" << errorString << "]" );
+        }
+        break;
+
+      // these states should not occour, because they are the result
+      // from actions we don't take
+      case itksysProcess_State_Expired:
+      case itksysProcess_State_Disowned:
+      case itksysProcess_State_Starting:
+      default:
+        itksysProcess_Delete( kp );
+        sitkExceptionMacro (  << "Unexpected process state!" );
+      };
+
+  }
+
+  void Show( const Image &image, const std::string& title, const bool debugOn)
+  {
+  // Try to find ImageJ, write out a file and open
+  std::string ExecutableName;
+  std::string Command, Command3D;
+  std::string TempFile = "";
+  std::string Macro = "";
+  std::vector<std::string> CommandLine;
+
+
+
+  bool colorFlag = false;
+
+
+  // If the image is 3 channel, 8 or 16 bit, assume it's a color image.
+  //
+  colorFlag = ( (image.GetNumberOfComponentsPerPixel() == 3)
+                  && ((image.GetPixelIDValue()==sitkVectorUInt8) || (image.GetPixelIDValue()==sitkVectorUInt16)) );
+
+
+
+
+  // Find the ImageJ executable
+  //
+
+#if defined(_WIN32)
+
+  // Windows
+  ExecutableName = FindApplication( "Fiji.app", "ImageJ-win64.exe", debugOn );
+  if (!ExecutableName.length())
+    {
+    ExecutableName = FindApplication( "Fiji.app", "ImageJ-win32.exe", debugOn );
+    }
+  if (!ExecutableName.length())
+    {
+    ExecutableName = FindApplication( "ImageJ", "ImageJ.exe", debugOn );
+    }
+
+#elif defined(__APPLE__)
+
+  ExecutableName = FindApplication( "", "Fiji.app", debugOn );
+  if (!ExecutableName.length())
+    {
+    ExecutableName = FindApplication( "ImageJ", "ImageJ64.app", debugOn );
+    }
+  if (!ExecutableName.length())
+    {
+    ExecutableName = FindApplication( "ImageJ", "ImageJ.app", debugOn );
+    }
+
+#else
+
+  // Linux and other systems
+  ExecutableName = FindApplication( "Fiji.app", "ImageJ-linux64", debugOn );
+  if (!ExecutableName.length())
+    {
+    ExecutableName = FindApplication( "Fiji.app", "ImageJ-linux32", debugOn );
+    }
+  if (!ExecutableName.length())
+    {
+    ExecutableName = FindApplication( "ImageJ", "imagej", debugOn );
+    }
+  if (!ExecutableName.length())
+    {
+    ExecutableName = FindApplication( "", "ImageJ", debugOn );
+    }
+  if (!ExecutableName.length())
+    {
+    ExecutableName = FindApplication( "", "imagej", debugOn );
+    }
+#endif
+
+  bool fijiFlag = ExecutableName.find( "Fiji.app" ) != std::string::npos;
+
+  TempFile = BuildFullFileName(title, fijiFlag);
+  //std::cout << "Full file name:\t" << TempFile << std::endl;
+
+  // write out the image
+  WriteImage ( image, TempFile );
+
+
+  // check for user-defined environment variables for the command string
+  //
+  if (colorFlag)
+    {
+    itksys::SystemTools::GetEnv ( "SITK_SHOW_COLOR_COMMAND", Command );
+    if (!Command.length())
+      {
+      itksys::SystemTools::GetEnv ( "SITK_SHOW_COMMAND", Command );
+      }
+    if (!Command.length())
+      {
+      if (fijiFlag)
+        {
+        Command = FijiShowCommand;
+        }
+      else
+        {
+        Command = ShowColorImageCommand;
+        }
+      }
+    }
+  else
+    {
+      itksys::SystemTools::GetEnv ( "SITK_SHOW_COMMAND", Command );
+      if (!Command.length())
+        {
+        if (fijiFlag)
+          {
+          Command = FijiShowCommand;
+          }
+        else
+          {
+          Command = ShowImageCommand;
+          }
+        }
+    }
+  itksys::SystemTools::GetEnv ( "SITK_SHOW_3D_COMMAND", Command3D );
+  if (!Command3D.length())
+    {
+    Command3D = Command;
+    }
+
+  if (image.GetDimension() == 3)
+    {
+    Command = Command3D;
+    }
+
+
+  // Replace the string tokens and split the command string into seperate words.
+  CommandLine = ConvertCommand(Command, ExecutableName, TempFile, title);
+
+  // run the compiled command-line in a process which will detach
+  ExecuteShow( CommandLine, debugOn );
+  }
+
+  } // namespace simple
+}
diff --git a/Code/Registration/CMakeLists.txt b/Code/Registration/CMakeLists.txt
new file mode 100644
index 0000000..d4fb658
--- /dev/null
+++ b/Code/Registration/CMakeLists.txt
@@ -0,0 +1 @@
+add_subdirectory( src )
diff --git a/Code/Registration/include/sitkImageRegistrationMethod.h b/Code/Registration/include/sitkImageRegistrationMethod.h
new file mode 100644
index 0000000..bf8252f
--- /dev/null
+++ b/Code/Registration/include/sitkImageRegistrationMethod.h
@@ -0,0 +1,741 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkImageRegistrationMethod_h
+#define sitkImageRegistrationMethod_h
+
+#include "sitkRegistration.h"
+
+#include "sitkDetail.h"
+#include "sitkImage.h"
+#include "sitkPixelIDTokens.h"
+#include "sitkMemberFunctionFactory.h"
+#include "sitkProcessObject.h"
+
+#include "sitkRandomSeed.h"
+#include "sitkInterpolator.h"
+#include "sitkTransform.h"
+
+
+namespace itk
+{
+
+#ifndef SWIG
+template< typename TInternalComputationValueType> class ObjectToObjectOptimizerBaseTemplate;
+template<typename TFixedImage,
+         typename TMovingImage,
+         typename TVirtualImage,
+         typename TInternalComputationValueType,
+         typename TMetricTraits >
+class ImageToImageMetricv4;
+
+template<typename TFixedImageType,
+         typename TMovingImageType,
+         typename TVirtualImageType,
+         typename TCoordRep>
+class DefaultImageToImageMetricTraitsv4;
+
+template<typename TMetric> class RegistrationParameterScalesEstimator;
+
+template<unsigned int VDimension> class SpatialObject;
+
+class Command;
+class EventObject;
+#endif
+
+
+
+namespace simple
+{
+
+  /** \brief An interface method to the modular ITKv4 registration framework.
+   *
+   * This interface method class encapsulates typical registration
+   * usage by incorporating all the necessary elements for performing a
+   * simple image registration between two images. This method also
+   * allows for multistage registration whereby each stage is
+   * characterized by possibly different transforms and different
+   * image metrics.  For example, many users will want to perform
+   * a linear registration followed by deformable registration where
+   * both stages are performed in multiple levels. Each level can be
+   * characterized by:
+   *
+   *   \li the resolution of the virtual domain image (see below)
+   *   \li smoothing of the fixed and moving images
+   *
+   * Multiple stages are handled by linking multiple instantiations of
+   * this class where the output transform is added to the optional
+   * composite transform input.
+   *
+   * \sa itk::ImageRegistrationMethodv4
+   * \sa itk::ImageToImageMetricv4
+   * \sa itk::ObjectToObjectOptimizerBaseTemplate
+   */
+  class SITKRegistration_EXPORT ImageRegistrationMethod
+    : public ProcessObject
+  {
+  public:
+
+    typedef ImageRegistrationMethod Self;
+    typedef ProcessObject Superclass;
+
+    ImageRegistrationMethod();
+    virtual ~ImageRegistrationMethod();
+
+    std::string GetName() const { return std::string("ImageRegistrationMethod"); }
+
+    /** \brief Print the information about the object to a string.
+     *
+     * If called when the process is being executed ( during a
+     * callback ), the ITK Optimizer and Transform objects will
+     * be printed.
+     */
+    std::string ToString() const;
+
+    /** \brief Set and get the interpolator to use.
+     *
+     * @{
+     */
+    InterpolatorEnum GetInterpolator()
+      { return this->m_Interpolator; }
+    SITK_RETURN_SELF_TYPE_HEADER SetInterpolator ( InterpolatorEnum Interpolator )
+      { this->m_Interpolator = Interpolator; return *this; }
+    /** @} */
+
+    /** \brief Set the initial transform and parameters to optimize.
+     *
+     * This transform is applied before the MovingInitialTransform,
+     * to map from the virtual image domain to the moving image
+     * domain.
+     *
+     * If the inPlace flag is explicitly false, then the ITK
+     * registration will internally make a copy, and
+     * the transform will not be accessible during
+     * registration. Otherwise, the accessible InitialTransform value
+     * will be the same object used during registration, and will have
+     * a modified value upon completion.
+     *
+     * \sa itk::ImageRegistrationMethodv4::SetInitialTransform
+     * @{
+     */
+#if !defined(SWIG) || defined(JAVASWIG) || defined(CSHARPSWIG)
+    // Only wrap this method if the wrapping language is strongly typed
+    SITK_RETURN_SELF_TYPE_HEADER SetInitialTransform ( const Transform &transform );
+#endif
+    SITK_RETURN_SELF_TYPE_HEADER SetInitialTransform ( Transform &transform, bool inPlace=true );
+    Transform GetInitialTransform()
+      { return this->m_InitialTransform; }
+    bool GetInitialTransformInPlace() const
+    { return this->m_InitialTransformInPlace;}
+    /** @} */
+
+    /** \brief Set a fixed transform component towards moving domain.
+     *
+     * The InitialTransform is added to this transform to form the
+     * composite transform which maps from the virtual domain to the
+     * moving image's domain. The parameters of this transform are not
+     * optimized.  This is an advanced option used when the output
+     * transformed with be composed into a composite transform.
+     *
+     * By default this transform is an identity, and not used.
+     *
+     * \sa itk::ImageRegistrationMethodv4::SetMovingInitialTransform
+     * @{
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetMovingInitialTransform( const Transform &transform )
+    { this->m_MovingInitialTransform = transform; return *this; }
+    Transform GetMovingInitialTransform( ) const
+    { return this->m_MovingInitialTransform; }
+    /**@}*/
+
+    /** \brief Set transform mapping to the fixed domain.
+     *
+     * This transform is used to map from the virtual domain to the
+     * fixed image domain.
+     *
+     * By default this transform is an identity, and not used.
+     *
+     * \sa itk::ImageRegistrationMethodv4::SetFixedInitialTransform
+     * @{
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetFixedInitialTransform( const Transform &transform )
+    { this->m_FixedInitialTransform = transform; return *this; }
+    Transform GetFixedInitialTransform( ) const
+    { return this->m_FixedInitialTransform; }
+    /**@}*/
+
+
+    /** \brief Set the virtual domain used for sampling
+     *
+     * @{
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetVirtualDomain( const std::vector<uint32_t> &virtualSize,
+                            const std::vector<double> &virtualOrigin,
+                            const std::vector<double> &virtualSpacing,
+                            const std::vector<double> &virtualDirection );
+    SITK_RETURN_SELF_TYPE_HEADER SetVirtualDomainFromImage( const Image &virtualImage );
+    /**@}*/
+
+    /** \brief Use normalized cross correlation using a small
+     * neighborhood for each voxel between two images, with speed
+     * optimizations for dense registration.
+     *
+     * \sa itk::ANTSNeighborhoodCorrelationImageToImageMetricv4
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetMetricAsANTSNeighborhoodCorrelation( unsigned int radius );
+
+    /** \brief Use negative normalized cross correlation image metric.
+     *
+     * \sa itk::CorrelationImageToImageMetricv4
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetMetricAsCorrelation( );
+
+    /** \brief Use demons image metric.
+     *
+     * \sa itk::DemonsImageToImageMetricv4
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetMetricAsDemons( double intensityDifferenceThreshold = 0.001 );
+
+    /** \brief Use mutual information between two images.
+     *
+     * \sa itk::JointHistogramMutualInformationImageToImageMetricv4
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetMetricAsJointHistogramMutualInformation( unsigned int numberOfHistogramBins = 20,
+                                                      double varianceForJointPDFSmoothing = 1.5);
+
+    /** \brief Use negative means squares image metric.
+     *
+     * \sa itk::MeanSquaresImageToImageMetricv4
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetMetricAsMeanSquares( );
+
+    /** \brief Use the mutual information between two images to be
+     * registered using the method of Mattes et al.
+     *
+     * \sa itk::MattesMutualInformationImageToImageMetricv4
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetMetricAsMattesMutualInformation( unsigned int numberOfHistogramBins = 50 );
+
+
+    enum EstimateLearningRateType { Never, ///< Never run estimation, use provided value.
+                                    Once,  ///< Estimate learning once each level, ignore provided values.
+                                    EachIteration ///< Estimate learning rate at each iteration.
+    };
+
+    /** \brief Conjugate gradient descent optimizer with a golden section line search for nonlinear optimization.
+     *
+     * \sa itk::ConjugateGradientLineSearchOptimizerv4Template
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetOptimizerAsConjugateGradientLineSearch( double learningRate,
+                                                     unsigned int numberOfIterations,
+                                                     double convergenceMinimumValue = 1e-6,
+                                                     unsigned int convergenceWindowSize = 10,
+                                                     double lineSearchLowerLimit = 0,
+                                                     double lineSearchUpperLimit = 5.0,
+                                                     double lineSearchEpsilon = 0.01,
+                                                     unsigned int lineSearchMaximumIterations = 20,
+                                                     EstimateLearningRateType estimateLearningRate = Once,
+                                                     double maximumStepSizeInPhysicalUnits = 0.0 );
+
+    /** \brief Regular Step Gradient descent optimizer.
+     *
+     * \sa itk::RegularStepGradientDescentOptimizerv4
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetOptimizerAsRegularStepGradientDescent( double learningRate,
+                                                    double minStep,
+                                                    unsigned int numberOfIterations,
+                                                    double relaxationFactor=0.5,
+                                                    double gradientMagnitudeTolerance = 1e-4,
+                                                    EstimateLearningRateType estimateLearningRate = Never,
+                                                    double maximumStepSizeInPhysicalUnits = 0.0);
+
+    /** \brief Gradient descent optimizer.
+     *
+     * \sa itk::GradientDescentOptimizerv4Template
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetOptimizerAsGradientDescent( double learningRate,
+                                         unsigned int numberOfIterations,
+                                         double convergenceMinimumValue = 1e-6,
+                                         unsigned int convergenceWindowSize = 10,
+                                         EstimateLearningRateType estimateLearningRate = Once,
+                                         double maximumStepSizeInPhysicalUnits = 0.0);
+
+    /** \brief Gradient descent optimizer with a golden section line search.
+     *
+     * \sa itk::GradientDescentLineSearchOptimizerv4Template
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetOptimizerAsGradientDescentLineSearch( double learningRate,
+                                                   unsigned int numberOfIterations,
+                                                   double convergenceMinimumValue = 1e-6,
+                                                   unsigned int convergenceWindowSize = 10,
+                                                   double lineSearchLowerLimit = 0,
+                                                   double lineSearchUpperLimit = 5.0,
+                                                   double lineSearchEpsilon = 0.01,
+                                                   unsigned int lineSearchMaximumIterations = 20,
+                                                   EstimateLearningRateType estimateLearningRate = Once,
+                                                   double maximumStepSizeInPhysicalUnits = 0.0 );
+
+    /** \brief Limited memory Broyden Fletcher Goldfarb Shannon minimization with simple bounds.
+     *
+     * The default parameters utilize LBFGSB in unbounded mode.
+     *
+     * \sa itk::LBFGSBOptimizerv4
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetOptimizerAsLBFGSB(double gradientConvergenceTolerance = 1e-5,
+                               unsigned int numberOfIterations = 500,
+                               unsigned int maximumNumberOfCorrections = 5,
+                               unsigned int maximumNumberOfFunctionEvaluations = 2000,
+                               double costFunctionConvergenceFactor = 1e+7,
+                               double lowerBound = std::numeric_limits<double>::min(),
+                               double upperBound = std::numeric_limits<double>::max(),
+                               bool trace = false );
+
+    /** \brief Set the optimizer to sample the metric at regular steps.
+     *
+     * At each iteration the GetOptimizerIteration, can be used to
+     * index into the sampling grid along with the
+     * GetCurrentMetricValue.
+     *
+     * The resulting transform and value at the end of execution is
+     * the best location.
+     *
+     * The OptimizerScales can be used to perform anisotropic sampling.
+     *
+     * \note This optimizer is not suitable for use in conjunction
+     * with the  multiple scales.
+     *
+     * \sa itk::ExhaustiveOptimizerv4
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetOptimizerAsExhaustive( const std::vector<unsigned int> &numberOfSteps,
+                                    double stepLength = 1.0 );
+
+    /** \brief Set optimizer to Nelder-Mead downhill simplex algorithm.
+     *
+     * \sa itk::AmoebaOptimizerv4
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetOptimizerAsAmoeba(double simplexDelta,
+                               unsigned int numberOfIterations,
+                               double parametersConvergenceTolerance=1e-8,
+                               double functionConvergenceTolerance=1e-4,
+                               bool withRestarts = false );
+
+    /** \brief A per parameter weighting array for the optimizer.
+     *
+     * Allows setting of a per-local-parameter weighting array. If
+     * unset, the weights are treated as identity. Weights are
+     * multiplied by the gradient at the same time scaling is
+     * applied. Weights are similar to the scales but not estimated,
+     * and may be used, for example, to easily mask out a particular
+     * parameter during optimization to hold it constant. Or they may
+     * be used to apply another kind of prior knowledge.
+     * @{
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetOptimizerWeights(const std::vector<double> &weights);
+    std::vector<double> GetOptimizerWeights( ) const;
+    /**@}*/
+
+    /** \brief Powell optimization using Brent line search.
+     *
+     * \sa itk::PowellOptimizerv4
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetOptimizerAsPowell(unsigned int numberOfIterations = 100,
+                               unsigned int maximumLineIterations = 100,
+                               double stepLength = 1,
+                               double stepTolerance = 1e-6,
+                               double valueTolerance = 1e-6 );
+
+    /** \brief 1+1 evolutionary optimizer strategy.
+     *
+     * The seed parameter is used to seed the pseudo-random number
+     * generator. If the seed parameter is 0, then the wall clock is
+     * used to seed, otherwise the fixed seed is used for reproducible behavior.
+     *
+     * \sa itk::OnePlusOneEvolutionaryOptimizerv4
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetOptimizerAsOnePlusOneEvolutionary(unsigned int numberOfIterations = 100,
+                                                                      double epsilon = 1.5e-4,
+                                                                      double initialRadius = 1.01,
+                                                                      double growthFactor = -1.0,
+                                                                      double shrinkFactor = -1.0,
+                                                                      unsigned int seed = sitkWallClock);
+
+
+
+    /** \brief Manually set per parameter weighting for the transform parameters. */
+    SITK_RETURN_SELF_TYPE_HEADER SetOptimizerScales( const std::vector<double> &scales );
+
+    /** \brief Estimate scales from Jacobian norms.
+     *
+     * This scales estimator works well with versor based transforms.
+     *
+     * \sa  itk::RegistrationParameterScalesFromJacobian
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetOptimizerScalesFromJacobian( unsigned int centralRegionRadius = 5 );
+
+    /** \brief Estimate scales from maximum voxel shift in index space
+     * cause by parameter change.
+     *
+     * \sa itk::RegistrationParameterScalesFromIndexShift
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetOptimizerScalesFromIndexShift( unsigned int centralRegionRadius = 5,
+                                           double smallParameterVariation =  0.01 );
+
+    /** \brief Estimating scales of transform parameters a step sizes,
+     * from the maximum voxel shift in physical space caused by a parameter
+     * change.
+     *
+     * \sa itk::RegistrationParameterScalesFromPhysicalShift
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetOptimizerScalesFromPhysicalShift( unsigned int centralRegionRadius = 5,
+                                              double smallParameterVariation =  0.01 );
+
+
+    /** \brief Set an image mask in order to restrict the sampled points
+     * for the metric.
+     *
+     * The image is expected to be in the same physical space as the
+     * FixedImage, and if the pixel type is not UInt8 than the image
+     * will base cast.
+     *
+     * \sa itk::ImageToImageMetricv4::SetFixedImageMask
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetMetricFixedMask( const Image &binaryMask );
+
+    /** \brief Set an image mask in order to restrict the sampled points
+     * for the metric in the moving image space.
+     *
+     * The image is expected to be in the same physical space as the
+     * MovingImage, and if the pixel type is not UInt8 than the image
+     * will base cast.
+     *
+     * \sa itk::ImageToImageMetricv4::SetMovingImageMask
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetMetricMovingMask( const Image &binaryMask );
+
+    /** \brief Set percentage of pixels sampled for metric evaluation.
+     *
+     * The seed parameter is used to seed the pseudo-random number
+     * generator used in generating the sampling set of points. If the
+     * seed parameter is 0, then the wall clock is used, otherwise the
+     * fixed seed is used for reproducible behavior.
+     *
+     * \sa itk::ImageRegistrationMethodv4::SetMetricSamplingPercentage
+     * @{
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetMetricSamplingPercentage(double percentage, unsigned int seed = sitkWallClock);
+    SITK_RETURN_SELF_TYPE_HEADER SetMetricSamplingPercentagePerLevel(const std::vector<double> &percentage, unsigned int seed = sitkWallClock);
+    /** @} */
+
+    enum MetricSamplingStrategyType {
+      NONE,
+      REGULAR,
+      RANDOM
+    };
+
+    /** \brief Set sampling strategy for sample generation.
+     *
+     * \sa itk::ImageRegistrationMethodv4::SetMetricSamplingStrategy
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetMetricSamplingStrategy( MetricSamplingStrategyType strategy);
+
+    /** \brief Enable image gradient computation by a filter.
+     *
+     * By default the image gradient is computed by
+     * itk::GradientRecursiveGaussianImageFiter. If disabled then a
+     * central difference function with be computed as needed.
+     *
+     * \sa itk::ImageToImageMetricv4::SetUseFixedImageGradientFilter
+     * @{
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetMetricUseFixedImageGradientFilter(bool);
+    SITK_RETURN_SELF_TYPE_HEADER MetricUseFixedImageGradientFilterOn() {return this->SetMetricUseFixedImageGradientFilter(true);}
+    SITK_RETURN_SELF_TYPE_HEADER MetricUseFixedImageGradientFilterOff() {return this->SetMetricUseFixedImageGradientFilter(false);}
+    /** @} */
+
+
+    /** \brief Enable image gradient computation by a filter.
+     *
+     * By default the image gradient is computed by
+     * itk::GradientRecursiveGaussianImageFiter. If disabled then a
+     * central difference function with be computed as needed.
+     *
+     * \sa itk::ImageToImageMetricv4::SetUseMovingImageGradientFilter
+     * @{
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetMetricUseMovingImageGradientFilter(bool);
+    SITK_RETURN_SELF_TYPE_HEADER MetricUseMovingImageGradientFilterOn() {return this->SetMetricUseMovingImageGradientFilter(true);}
+    SITK_RETURN_SELF_TYPE_HEADER MetricUseMovingImageGradientFilterOff() {return this->SetMetricUseMovingImageGradientFilter(false);}
+    /** @} */
+
+
+    /** \brief Set the shrink factors for each level where each level
+     * has the same shrink factor for each dimension.
+     *
+     * \sa  itk::ImageRegistrationMethodv4::SetShrinkFactorsPerLevel
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetShrinkFactorsPerLevel( const std::vector<unsigned int> &shrinkFactors );
+
+    /** \brief Set the sigmas of Gaussian used for smoothing at each
+     * level.
+     *
+     * \sa  itk::ImageRegistrationMethodv4::SetSmoothingSigmasPerLevel
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetSmoothingSigmasPerLevel( const std::vector<double> &smoothingSigmas );
+
+    /** \brief Enable the smoothing sigmas for each level in physical
+     * units (default) or in terms of voxels.
+     *
+     * \sa   itk::ImageRegistrationMethodv4::SetSmoothingSigmasAreSpecifiedInPhysicalUnits
+     * @{
+     */
+    SITK_RETURN_SELF_TYPE_HEADER SetSmoothingSigmasAreSpecifiedInPhysicalUnits(bool arg);
+    SITK_RETURN_SELF_TYPE_HEADER SmoothingSigmasAreSpecifiedInPhysicalUnitsOn() { this->SetSmoothingSigmasAreSpecifiedInPhysicalUnits(true); return *this;}
+    SITK_RETURN_SELF_TYPE_HEADER SmoothingSigmasAreSpecifiedInPhysicalUnitsOff()  { this->SetSmoothingSigmasAreSpecifiedInPhysicalUnits(false); return *this;}
+    /** @} */
+
+
+    /** \brief Optimize the configured registration problem. */
+    Transform Execute ( const Image &fixed, const Image & moving );
+
+
+    /** \brief Get the value of the metric given the state of the method
+     *
+     * Passing a fixed and moving image, this method constructs and
+     * configures a metric object to obtain the value. This will take
+     * into consideration the current transforms, metric,
+     * interpolator, and image masks. It does not take into
+     * consideration the sampling strategy, smoothing sigmas, or the
+     * shrink factors.
+     */
+    double MetricEvaluate( const Image &fixed, const Image & moving );
+
+
+    /**
+      * Active measurements which can be obtained during call backs.
+      *
+      * This is a measurement. Its value is updated in the Execute
+      * methods, so the value will only be valid after an execution.
+      */
+    unsigned int GetOptimizerIteration() const;
+    std::vector<double> GetOptimizerPosition() const;
+    double GetOptimizerLearningRate() const;
+    double GetOptimizerConvergenceValue() const;
+    double GetMetricValue() const;
+
+
+    unsigned int GetCurrentLevel() const;
+
+    /** \brief Get the OptimizerScales
+      *
+      * If the scales are explicitly set then this method returns
+      * those values. If an estimator is used then this is an active
+      * measurement returning the scales estimated by the estimator
+      * and is only available during execution.
+      */
+    std::vector<double> GetOptimizerScales() const;
+
+    /** Measurement updated at the end of execution.
+      */
+    std::string GetOptimizerStopConditionDescription() const;
+
+  protected:
+
+    template<class TImage>
+    Transform ExecuteInternal ( const Image &fixed, const Image &moving );
+
+    template<class TImage>
+    double EvaluateInternal ( const Image &fixed, const Image &moving );
+
+
+    itk::ObjectToObjectOptimizerBaseTemplate<double> *CreateOptimizer( unsigned int numberOfTransformParameters );
+
+    template<unsigned int VDimension>
+      itk::SpatialObject<VDimension> *CreateSpatialObjectMask(const Image &mask);
+
+    template <class TImageType>
+      itk::ImageToImageMetricv4<TImageType,
+      TImageType,
+      TImageType,
+      double,
+      itk::DefaultImageToImageMetricTraitsv4< TImageType, TImageType, TImageType, double >
+      >* CreateMetric( );
+
+    template <class TImageType>
+      void SetupMetric(
+      itk::ImageToImageMetricv4<TImageType,
+      TImageType,
+      TImageType,
+      double,
+      itk::DefaultImageToImageMetricTraitsv4< TImageType, TImageType, TImageType, double >
+      >*, const TImageType*, const TImageType* );
+
+    template <typename TMetric>
+      itk::RegistrationParameterScalesEstimator< TMetric >*CreateScalesEstimator();
+
+    template <typename TTransformAdaptorPointer, typename TRegistrationMethod >
+    std::vector< TTransformAdaptorPointer >
+      CreateTransformParametersAdaptor(
+        TRegistrationMethod* method);
+
+    virtual void PreUpdate( itk::ProcessObject *p );
+    virtual void OnActiveProcessDelete( ) throw();
+    virtual unsigned long AddITKObserver(const itk::EventObject &, itk::Command *);
+    virtual void RemoveITKObserver( EventCommand &e );
+
+  private:
+
+    nsstd::function<unsigned int()> m_pfGetOptimizerIteration;
+    nsstd::function<std::vector<double>()> m_pfGetOptimizerPosition;
+    nsstd::function<double()> m_pfGetOptimizerLearningRate;
+    nsstd::function<double()> m_pfGetOptimizerConvergenceValue;
+    nsstd::function<double()> m_pfGetMetricValue;
+    nsstd::function<std::vector<double>()> m_pfGetOptimizerScales;
+    nsstd::function<std::string()> m_pfGetOptimizerStopConditionDescription;
+
+
+    nsstd::function<unsigned int()> m_pfGetCurrentLevel;
+
+    nsstd::function<void (itk::TransformBase *outTransform)> m_pfUpdateWithBestValue;
+
+    template < class TMemberFunctionPointer >
+      struct EvaluateMemberFunctionAddressor
+    {
+      typedef typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType ObjectType;
+
+      template< typename TImageType >
+      TMemberFunctionPointer operator() ( void ) const
+        {
+          return &ObjectType::template EvaluateInternal< TImageType >;
+        }
+    };
+
+    typedef Transform (ImageRegistrationMethod::*MemberFunctionType)( const Image &fixed, const Image &moving );
+    typedef double (ImageRegistrationMethod::*EvaluateMemberFunctionType)( const Image &fixed, const Image &moving );
+    friend struct detail::MemberFunctionAddressor<MemberFunctionType>;
+    nsstd::auto_ptr<detail::MemberFunctionFactory<MemberFunctionType> > m_MemberFactory;
+    nsstd::auto_ptr<detail::MemberFunctionFactory<EvaluateMemberFunctionType> > m_EvaluateMemberFactory;
+
+    InterpolatorEnum  m_Interpolator;
+    Transform  m_InitialTransform;
+    bool m_InitialTransformInPlace;
+    Transform m_MovingInitialTransform;
+    Transform m_FixedInitialTransform;
+
+    std::vector<uint32_t> m_VirtualDomainSize;
+    std::vector<double> m_VirtualDomainOrigin;
+    std::vector<double> m_VirtualDomainSpacing;
+    std::vector<double> m_VirtualDomainDirection;
+
+    // optimizer
+    enum OptimizerType { ConjugateGradientLineSearch,
+                         RegularStepGradientDescent,
+                         GradientDescent,
+                         GradientDescentLineSearch,
+                         LBFGSB,
+                         Exhaustive,
+                         Amoeba,
+                         Powell,
+                         OnePlusOneEvolutionary
+    };
+    OptimizerType m_OptimizerType;
+    double m_OptimizerLearningRate;
+    double m_OptimizerMinimumStepLength;
+    unsigned int m_OptimizerNumberOfIterations;
+    double m_OptimizerLineSearchLowerLimit;
+    double m_OptimizerLineSearchUpperLimit;
+    double m_OptimizerLineSearchEpsilon;
+    unsigned int m_OptimizerLineSearchMaximumIterations;
+    EstimateLearningRateType m_OptimizerEstimateLearningRate;
+    double  m_OptimizerMaximumStepSizeInPhysicalUnits;
+    double m_OptimizerRelaxationFactor;
+    double m_OptimizerGradientMagnitudeTolerance;
+    double m_OptimizerConvergenceMinimumValue;
+    unsigned int m_OptimizerConvergenceWindowSize;
+    double m_OptimizerGradientConvergenceTolerance;
+    unsigned int m_OptimizerMaximumNumberOfCorrections;
+    unsigned int m_OptimizerMaximumNumberOfFunctionEvaluations;
+    double m_OptimizerCostFunctionConvergenceFactor;
+    double m_OptimizerLowerBound;
+    double m_OptimizerUpperBound;
+    bool m_OptimizerTrace;
+    std::vector<unsigned int> m_OptimizerNumberOfSteps;
+    double m_OptimizerStepLength;
+    double m_OptimizerSimplexDelta;
+    double m_OptimizerParametersConvergenceTolerance;
+    double m_OptimizerFunctionConvergenceTolerance;
+    bool m_OptimizerWithRestarts;
+    unsigned int m_OptimizerMaximumLineIterations;
+    double m_OptimizerStepTolerance;
+    double m_OptimizerValueTolerance;
+    double m_OptimizerEpsilon;
+    double m_OptimizerInitialRadius;
+    double m_OptimizerGrowthFactor;
+    double m_OptimizerShrinkFactor;
+    unsigned int m_OptimizerSeed;
+
+    std::vector<double> m_OptimizerWeights;
+
+    enum OptimizerScalesType {
+      Manual,
+      Jacobian,
+      IndexShift,
+      PhysicalShift
+    };
+    OptimizerScalesType m_OptimizerScalesType;
+    std::vector<double> m_OptimizerScales;
+    unsigned int m_OptimizerScalesCentralRegionRadius;
+    double m_OptimizerScalesSmallParameterVariation;
+
+    // metric
+    enum MetricType { ANTSNeighborhoodCorrelation,
+                      Correlation,
+                      Demons,
+                      JointHistogramMutualInformation,
+                      MeanSquares,
+                      MattesMutualInformation
+    };
+    MetricType m_MetricType;
+    unsigned int m_MetricRadius;
+    double m_MetricIntensityDifferenceThreshold;
+    unsigned int m_MetricNumberOfHistogramBins;
+    double m_MetricVarianceForJointPDFSmoothing;
+
+    Image m_MetricFixedMaskImage;
+    Image m_MetricMovingMaskImage;
+
+    std::vector<double> m_MetricSamplingPercentage;
+    MetricSamplingStrategyType m_MetricSamplingStrategy;
+    unsigned int m_MetricSamplingSeed;
+
+    bool m_MetricUseFixedImageGradientFilter;
+    bool m_MetricUseMovingImageGradientFilter;
+
+    std::vector<unsigned int> m_ShrinkFactorsPerLevel;
+    std::vector<double> m_SmoothingSigmasPerLevel;
+    bool m_SmoothingSigmasAreSpecifiedInPhysicalUnits;
+
+    std::string m_StopConditionDescription;
+    double m_MetricValue;
+    unsigned int m_Iteration;
+
+    itk::ObjectToObjectOptimizerBaseTemplate<double> *m_ActiveOptimizer;
+  };
+
+}
+}
+
+#endif // sitkImageRegistrationMethod_h
diff --git a/Code/Registration/include/sitkRegistration.h b/Code/Registration/include/sitkRegistration.h
new file mode 100644
index 0000000..331755b
--- /dev/null
+++ b/Code/Registration/include/sitkRegistration.h
@@ -0,0 +1,37 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkRegistration_h
+#define sitkRegistration_h
+
+#include "sitkMacro.h"
+
+#if defined( SITKDLL )
+  #ifdef SimpleITKRegistration_EXPORTS
+    #define SITKRegistration_EXPORT SITK_ABI_EXPORT
+  #else
+    #define SITKRegistration_EXPORT SITK_ABI_IMPORT
+  #endif  /* SimpleITKRegistration_EXPORTS */
+#else
+  // Don't hide symbols in the static SimpleITKRegistration library in case
+  // -fvisibility=hidden is used
+  #define SITKRegistration_EXPORT
+#endif
+
+#define SITKRegistration_HIDDEN SITK_ABI_HIDDEN
+
+#endif // sitkRegistration_h
diff --git a/Code/Registration/src/CMakeLists.txt b/Code/Registration/src/CMakeLists.txt
new file mode 100644
index 0000000..f2516cb
--- /dev/null
+++ b/Code/Registration/src/CMakeLists.txt
@@ -0,0 +1,27 @@
+
+set( SimpleITKRegistration
+  sitkImageRegistrationMethod.cxx
+  sitkImageRegistrationMethod_CreateOptimizer.cxx
+  sitkImageRegistrationMethod_CreateMetric.cxx
+  )
+
+set(use_itk_modules  ITKCommon  ITKLabelMap ITKOptimizersv4 ITKMetricsv4 ITKRegistrationMethodsv4)
+find_package(ITK COMPONENTS ${use_itk_modules} REQUIRED)
+
+add_library ( SimpleITKRegistration ${SimpleITKRegistration} )
+sitk_target_use_itk ( SimpleITKRegistration PRIVATE ${use_itk_modules} )
+# The BasicFiltersLibrary is needed of the Cast filter
+target_link_libraries ( SimpleITKRegistration
+  PUBLIC SimpleITKCommon SimpleITK_ITKCommon )
+if (SimpleITK_EXPLICIT_INSTANTIATION)
+  target_link_libraries ( SimpleITKRegistration PRIVATE SimpleITKExplicit )
+endif()
+
+target_include_directories ( SimpleITKRegistration
+  PUBLIC
+    $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/Code/Registration/include>
+    $<INSTALL_INTERFACE:${SimpleITK_INSTALL_INCLUDE_DIR}>
+  PRIVATE
+    ${CMAKE_CURRENT_SOURCE_DIR} )
+
+sitk_install_exported_target( SimpleITKRegistration )
diff --git a/Code/Registration/src/sitkCreateInterpolator.hxx b/Code/Registration/src/sitkCreateInterpolator.hxx
new file mode 100644
index 0000000..bacebab
--- /dev/null
+++ b/Code/Registration/src/sitkCreateInterpolator.hxx
@@ -0,0 +1,153 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkCreateInterpolator_hxx
+#define sitkCreateInterpolator_hxx
+
+
+#include "sitkInterpolator.h"
+#include <itkNearestNeighborInterpolateImageFunction.h>
+#include <itkLinearInterpolateImageFunction.h>
+#include <itkBSplineInterpolateImageFunction.h>
+#include <itkGaussianInterpolateImageFunction.h>
+#include <itkLabelImageGaussianInterpolateImageFunction.h>
+#include <itkWindowedSincInterpolateImageFunction.h>
+
+namespace itk
+{
+
+namespace simple
+{
+
+template<typename TInterpolatorType>
+typename TInterpolatorType::Pointer
+ConditionalCreateInterpolator( const TrueType & )
+{
+  return TInterpolatorType::New();
+}
+
+template<typename TInterpolatorType>
+TInterpolatorType*
+ConditionalCreateInterpolator( const FalseType & )
+{
+  return NULL;
+}
+
+template< typename TImageType >
+typename itk::InterpolateImageFunction< TImageType, double >::Pointer
+CreateInterpolator( const TImageType *image, InterpolatorEnum itype )
+{
+  typedef typename itk::InterpolateImageFunction< TImageType, double >::Pointer RType;
+  typedef typename itk::ZeroFluxNeumannBoundaryCondition<TImageType,TImageType> BoundaryCondition;
+  //typedef typename itk::ConstantBoundaryCondition<TImageType> BoundaryCondition;
+
+  typedef typename TImageType::SpacingType SpacingType;
+
+  static const unsigned int WindowingRadius = 5;
+
+  const SpacingType &spacing = image->GetSpacing();
+
+  switch( itype )
+    {
+    case sitkNearestNeighbor:
+    {
+      typedef itk::NearestNeighborInterpolateImageFunction<TImageType, double> InterpolatorType;
+      return RType( InterpolatorType::New() );
+    }
+    case sitkLinear:
+    {
+      typedef itk::LinearInterpolateImageFunction<TImageType, double> InterpolatorType;
+      return RType( InterpolatorType::New() );
+    }
+    case sitkBSpline:
+    {
+      typedef itk::BSplineInterpolateImageFunction<TImageType, double> InterpolatorType;
+      return RType( ConditionalCreateInterpolator<InterpolatorType>( typename IsBasic<TImageType>::Type() ) );
+    }
+    case sitkGaussian:
+    {
+    typedef itk::GaussianInterpolateImageFunction<TImageType, double> InterpolatorType;
+
+    typename InterpolatorType::ArrayType sigma;
+
+    for( unsigned int i = 0; i < TImageType::ImageDimension; ++i )
+      {
+      sigma[i] = 0.8*spacing[i];
+      }
+    typename InterpolatorType::Pointer p = InterpolatorType::New();
+    p->SetSigma(sigma);
+    p->SetAlpha(4.0);
+    return RType(p);
+    }
+    case sitkLabelGaussian:
+    {
+    typedef itk::LabelImageGaussianInterpolateImageFunction<TImageType, double> InterpolatorType;
+
+    typename InterpolatorType::ArrayType sigma;
+
+    for( unsigned int i = 0; i < TImageType::ImageDimension; ++i )
+      {
+      sigma[i] = spacing[i];
+      }
+    typename InterpolatorType::Pointer p = InterpolatorType::New();
+    p->SetSigma(sigma);
+    p->SetAlpha(1.0);
+    return RType(p);
+    }
+    case sitkHammingWindowedSinc:
+    {
+
+      typedef typename itk::Function::HammingWindowFunction<WindowingRadius, double, double > WindowFunction;
+      typedef itk::WindowedSincInterpolateImageFunction<TImageType, WindowingRadius, WindowFunction, BoundaryCondition> InterpolatorType;
+      return RType( ConditionalCreateInterpolator<InterpolatorType>( typename IsBasic<TImageType>::Type() ) );
+    }
+    case sitkCosineWindowedSinc:
+    {
+      typedef typename itk::Function::CosineWindowFunction<WindowingRadius, double, double > WindowFunction;
+      typedef itk::WindowedSincInterpolateImageFunction<TImageType, WindowingRadius, WindowFunction, BoundaryCondition> InterpolatorType;
+      return RType( ConditionalCreateInterpolator<InterpolatorType>( typename IsBasic<TImageType>::Type() ) );
+    }
+    case sitkWelchWindowedSinc:
+    {
+      typedef typename itk::Function::WelchWindowFunction<WindowingRadius, double, double > WindowFunction;
+      typedef itk::WindowedSincInterpolateImageFunction<TImageType, WindowingRadius, WindowFunction, BoundaryCondition> InterpolatorType;
+      return RType( ConditionalCreateInterpolator<InterpolatorType>( typename IsBasic<TImageType>::Type() ) );
+    }
+    case sitkLanczosWindowedSinc:
+    {
+      typedef typename itk::Function::LanczosWindowFunction<WindowingRadius, double, double > WindowFunction;
+      typedef itk::WindowedSincInterpolateImageFunction<TImageType, WindowingRadius, WindowFunction, BoundaryCondition> InterpolatorType;
+      return RType( ConditionalCreateInterpolator<InterpolatorType>( typename IsBasic<TImageType>::Type() ) );
+    }
+    case sitkBlackmanWindowedSinc:
+    {
+      typedef typename itk::Function::BlackmanWindowFunction<WindowingRadius, double, double > WindowFunction;
+      typedef itk::WindowedSincInterpolateImageFunction<TImageType, WindowingRadius, WindowFunction, BoundaryCondition> InterpolatorType;
+      return RType( ConditionalCreateInterpolator<InterpolatorType>( typename IsBasic<TImageType>::Type() ) );
+    }
+    default:
+      return NULL;
+    }
+
+}
+
+
+} // end namespace simple
+} // end namespace itk
+
+
+#endif // sitkCreateInterpolator_hxx
diff --git a/Code/Registration/src/sitkImageRegistrationMethod.cxx b/Code/Registration/src/sitkImageRegistrationMethod.cxx
new file mode 100644
index 0000000..7ede621
--- /dev/null
+++ b/Code/Registration/src/sitkImageRegistrationMethod.cxx
@@ -0,0 +1,1156 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include "sitkImageRegistrationMethod.h"
+
+#include "sitkCreateInterpolator.hxx"
+#include "sitkCastImageFilter.h"
+
+#include "itkImageMaskSpatialObject.h"
+#include "itkImage.h"
+#include "itkImageRegistrationMethodv4.h"
+
+#include "itkRegistrationParameterScalesFromJacobian.h"
+#include "itkRegistrationParameterScalesFromIndexShift.h"
+#include "itkRegistrationParameterScalesFromPhysicalShift.h"
+
+#include "sitkImageRegistrationMethod_CreateParametersAdaptor.hxx"
+
+
+template< typename TValue, typename TType>
+itk::Array<TValue> sitkSTLVectorToITKArray( const std::vector< TType > & in )
+{
+  itk::Array<TValue> out(in.size());
+  std::copy(in.begin(), in.end(), out.begin());
+  return out;
+}
+
+namespace itk
+{
+namespace simple
+{
+namespace
+{
+
+struct CurrentLevelCustomCast
+{
+  template<typename TRegistrationType>
+  static unsigned int CustomCast(const TRegistrationType *reg)
+    {
+      itk::SizeValueType ret = reg->GetCurrentLevel();
+      if (ret > std::numeric_limits<unsigned int>::max())
+        {
+        return 0;
+        }
+      return static_cast<unsigned int>(ret);
+    }
+};
+}
+
+ImageRegistrationMethod::ImageRegistrationMethod()
+  : m_Interpolator(sitkLinear),
+    m_InitialTransformInPlace(true),
+    m_OptimizerScalesType(Manual),
+    m_MetricSamplingPercentage(1,1.0),
+    m_MetricSamplingStrategy(NONE),
+    m_MetricSamplingSeed(0u),
+    m_MetricUseFixedImageGradientFilter(true),
+    m_MetricUseMovingImageGradientFilter(true),
+    m_ShrinkFactorsPerLevel(1, 1),
+    m_SmoothingSigmasPerLevel(1,0.0),
+    m_SmoothingSigmasAreSpecifiedInPhysicalUnits(true),
+    m_ActiveOptimizer(NULL)
+{
+  m_MemberFactory.reset( new  detail::MemberFunctionFactory<MemberFunctionType>( this ) );
+
+  m_EvaluateMemberFactory.reset( new detail::MemberFunctionFactory<EvaluateMemberFunctionType>(this) );
+
+  // m_MemberFactory->RegisterMemberFunctions< BasicPixelIDTypeList, 3 > ();
+  // m_MemberFactory->RegisterMemberFunctions< BasicPixelIDTypeList, 2 > ();
+
+  m_MemberFactory->RegisterMemberFunctions< RealPixelIDTypeList, 3 > ();
+  m_MemberFactory->RegisterMemberFunctions< RealPixelIDTypeList, 2 > ();
+
+  typedef EvaluateMemberFunctionAddressor<EvaluateMemberFunctionType> EvaluateMemberFunctionAddressorType;
+  m_EvaluateMemberFactory->RegisterMemberFunctions< RealPixelIDTypeList, 3, EvaluateMemberFunctionAddressorType > ();
+  m_EvaluateMemberFactory->RegisterMemberFunctions< RealPixelIDTypeList, 2, EvaluateMemberFunctionAddressorType > ();
+
+  this->SetMetricAsMattesMutualInformation();
+
+}
+
+
+ImageRegistrationMethod::~ImageRegistrationMethod()
+{
+}
+
+std::string  ImageRegistrationMethod::ToString() const
+{
+  std::ostringstream out;
+  out << "itk::simple" << this->GetName() << std::endl;
+
+  out << Superclass::ToString();
+
+  if ( this->m_ActiveOptimizer )
+    {
+    out << "ActiveOptimizer:";
+    this->m_ActiveOptimizer->Print(out, 1);
+    }
+
+  out << "  Interpolator: ";
+  this->ToStringHelper(out, this->m_Interpolator);
+  out << std::endl;
+
+  out << "  Transform: ";
+  this->ToStringHelper(out, this->m_InitialTransform.ToString());
+  out << std::endl;
+
+  return out.str();
+}
+
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetInitialTransform ( const Transform &transform )
+{
+  this->m_InitialTransform = transform;
+  this->m_InitialTransform.MakeUnique();
+  this->m_InitialTransformInPlace = true;
+  return *this;
+    }
+
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetInitialTransform ( Transform &transform, bool inPlace )
+{
+  if (inPlace)
+    {
+    // The registration framework will modify this transform. We
+    // need to make it unique so that it can be written to.
+    transform.MakeUnique();
+    }
+
+
+  this->m_InitialTransform = transform;
+  this->m_InitialTransformInPlace = inPlace;
+  return *this;
+}
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetVirtualDomain( const std::vector<uint32_t> &virtualSize,
+                            const std::vector<double> &virtualOrigin,
+                            const std::vector<double> &virtualSpacing,
+                            const std::vector<double> &virtualDirection )
+{
+  const size_t dim = virtualSize.size();
+
+  if ( virtualOrigin.size() != dim )
+    {
+    sitkExceptionMacro("Expected virtualOrigin to be of length " << dim << "!" );
+    }
+
+  if ( virtualSpacing.size() != dim )
+    {
+    sitkExceptionMacro("Expected virtualSpacing to be of length " << dim << "!" );
+    }
+
+  if ( virtualDirection.size() != dim*dim )
+    {
+    sitkExceptionMacro("Expected virtualDirection to be of length " << dim*dim << "!" );
+    }
+
+  this->m_VirtualDomainSize = virtualSize;
+  this->m_VirtualDomainOrigin = virtualOrigin;
+  this->m_VirtualDomainSpacing = virtualSpacing;
+  this->m_VirtualDomainDirection = virtualDirection;
+  return *this;
+}
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetVirtualDomainFromImage( const Image &virtualImage )
+{
+  this->m_VirtualDomainSize = virtualImage.GetSize();
+  this->m_VirtualDomainOrigin = virtualImage.GetOrigin();
+  this->m_VirtualDomainSpacing = virtualImage.GetSpacing();
+  this->m_VirtualDomainDirection = virtualImage.GetDirection();
+
+  return *this;
+}
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetMetricAsANTSNeighborhoodCorrelation(  unsigned int radius )
+{
+  m_MetricRadius = radius;
+  m_MetricType = ANTSNeighborhoodCorrelation;
+  return *this;
+}
+
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetMetricAsCorrelation( )
+{
+  m_MetricType = Correlation;
+  return *this;
+}
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetMetricAsDemons( double intensityDifferenceThreshold )
+{
+  m_MetricType = Demons;
+  m_MetricIntensityDifferenceThreshold = intensityDifferenceThreshold;
+  return *this;
+}
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetMetricAsJointHistogramMutualInformation( unsigned int numberOfHistogramBins,
+                                                                     double varianceForJointPDFSmoothing )
+{
+  m_MetricType = JointHistogramMutualInformation;
+  m_MetricNumberOfHistogramBins = numberOfHistogramBins;
+  m_MetricVarianceForJointPDFSmoothing = varianceForJointPDFSmoothing;
+  return *this;
+}
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetMetricAsMeanSquares( )
+{
+  m_MetricType = MeanSquares;
+  return *this;
+}
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetMetricAsMattesMutualInformation( unsigned int numberOfHistogramBins )
+{
+  m_MetricType = MattesMutualInformation;
+  m_MetricNumberOfHistogramBins = numberOfHistogramBins;
+  return *this;
+}
+
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetOptimizerAsConjugateGradientLineSearch( double learningRate,
+                                                                    unsigned int numberOfIterations,
+                                                                    double convergenceMinimumValue,
+                                                                    unsigned int convergenceWindowSize,
+                                                                    double lineSearchLowerLimit,
+                                                                    double lineSearchUpperLimit,
+                                                                    double lineSearchEpsilon,
+                                                                    unsigned int lineSearchMaximumIterations,
+                                                                    EstimateLearningRateType estimateLearningRate,
+                                                                    double maximumStepSizeInPhysicalUnits )
+{
+  m_OptimizerType = ConjugateGradientLineSearch;
+  m_OptimizerLearningRate = learningRate;
+  m_OptimizerNumberOfIterations = numberOfIterations;
+  m_OptimizerConvergenceMinimumValue = convergenceMinimumValue;
+  m_OptimizerConvergenceWindowSize = convergenceWindowSize;
+  m_OptimizerLineSearchLowerLimit = lineSearchLowerLimit;
+  m_OptimizerLineSearchUpperLimit = lineSearchUpperLimit;
+  m_OptimizerLineSearchEpsilon = lineSearchEpsilon;
+  m_OptimizerLineSearchMaximumIterations = lineSearchMaximumIterations;
+  m_OptimizerEstimateLearningRate = estimateLearningRate;
+  m_OptimizerMaximumStepSizeInPhysicalUnits = maximumStepSizeInPhysicalUnits;
+  return *this;
+}
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetOptimizerAsRegularStepGradientDescent( double learningRate,
+                                                                   double minStep,
+                                                                   unsigned int numberOfIteratons,
+                                                                   double relaxationFactor,
+                                                                   double gradientMagnitudeTolerance,
+                                                                   EstimateLearningRateType estimateLearningRate,
+                                                                   double maximumStepSizeInPhysicalUnits )
+{
+  m_OptimizerType = RegularStepGradientDescent;
+  m_OptimizerLearningRate = learningRate;
+  m_OptimizerMinimumStepLength = minStep;
+  m_OptimizerNumberOfIterations = numberOfIteratons;
+  m_OptimizerRelaxationFactor = relaxationFactor;
+  m_OptimizerGradientMagnitudeTolerance = gradientMagnitudeTolerance;
+  m_OptimizerEstimateLearningRate = estimateLearningRate;
+  m_OptimizerMaximumStepSizeInPhysicalUnits = maximumStepSizeInPhysicalUnits;
+  return *this;
+}
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetOptimizerAsGradientDescent( double learningRate,
+                                                        unsigned int numberOfIteratons,
+                                                        double convergenceMinimumValue,
+                                                        unsigned int convergenceWindowSize,
+                                                        EstimateLearningRateType estimateLearningRate,
+                                                        double maximumStepSizeInPhysicalUnits )
+{
+  m_OptimizerType = GradientDescent;
+  m_OptimizerLearningRate = learningRate;
+  m_OptimizerNumberOfIterations = numberOfIteratons;
+  m_OptimizerConvergenceMinimumValue = convergenceMinimumValue;
+  m_OptimizerConvergenceWindowSize = convergenceWindowSize;
+  m_OptimizerEstimateLearningRate = estimateLearningRate;
+  m_OptimizerMaximumStepSizeInPhysicalUnits = maximumStepSizeInPhysicalUnits;
+  return *this;
+}
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetOptimizerAsGradientDescentLineSearch( double learningRate,
+                                                                  unsigned int numberOfIterations,
+                                                                  double convergenceMinimumValue,
+                                                                  unsigned int convergenceWindowSize,
+                                                                  double lineSearchLowerLimit,
+                                                                  double lineSearchUpperLimit,
+                                                                  double lineSearchEpsilon,
+                                                                  unsigned int lineSearchMaximumIterations,
+                                                                  EstimateLearningRateType estimateLearningRate,
+                                                                  double maximumStepSizeInPhysicalUnits )
+{
+  m_OptimizerType = GradientDescentLineSearch;
+  m_OptimizerLearningRate = learningRate;
+  m_OptimizerNumberOfIterations = numberOfIterations;
+  m_OptimizerConvergenceMinimumValue = convergenceMinimumValue;
+  m_OptimizerConvergenceWindowSize = convergenceWindowSize;
+  m_OptimizerLineSearchLowerLimit = lineSearchLowerLimit;
+  m_OptimizerLineSearchUpperLimit = lineSearchUpperLimit;
+  m_OptimizerLineSearchEpsilon = lineSearchEpsilon;
+  m_OptimizerLineSearchMaximumIterations = lineSearchMaximumIterations;
+  m_OptimizerEstimateLearningRate = estimateLearningRate;
+  m_OptimizerMaximumStepSizeInPhysicalUnits = maximumStepSizeInPhysicalUnits;
+  return *this;
+}
+
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetOptimizerAsLBFGSB( double gradientConvergenceTolerance,
+                                               unsigned int numberOfIterations,
+                                               unsigned int maximumNumberOfCorrections,
+                                               unsigned int maximumNumberOfFunctionEvaluations,
+                                               double costFunctionConvergenceFactor,
+                                               double lowerBound,
+                                               double upperBound,
+                                               bool trace )
+{
+  m_OptimizerType = LBFGSB;
+  m_OptimizerGradientConvergenceTolerance = gradientConvergenceTolerance;
+  m_OptimizerNumberOfIterations = numberOfIterations;
+  m_OptimizerMaximumNumberOfCorrections = maximumNumberOfCorrections;
+  m_OptimizerMaximumNumberOfFunctionEvaluations = maximumNumberOfFunctionEvaluations;
+  m_OptimizerCostFunctionConvergenceFactor = costFunctionConvergenceFactor;
+  m_OptimizerLowerBound = lowerBound;
+  m_OptimizerUpperBound = upperBound;
+  m_OptimizerTrace = trace;
+  return *this;
+}
+
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetOptimizerWeights( const std::vector<double> &weights)
+{
+  this->m_OptimizerWeights = weights;
+  return *this;
+}
+
+std::vector<double>
+ImageRegistrationMethod::GetOptimizerWeights( ) const
+{
+  return this->m_OptimizerWeights;
+}
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetOptimizerAsExhaustive(const std::vector<unsigned int> &numberOfSteps,
+                                                  double stepLength )
+{
+  m_OptimizerType = Exhaustive;
+  m_OptimizerStepLength = stepLength;
+  m_OptimizerNumberOfSteps = numberOfSteps;
+  return *this;
+}
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetOptimizerAsAmoeba( double simplexDelta,
+                                               unsigned int numberOfIterations,
+                                               double parametersConvergenceTolerance,
+                                               double functionConvergenceTolerance,
+                                               bool withRestarts )
+{
+  m_OptimizerType = Amoeba;
+  m_OptimizerSimplexDelta = simplexDelta;
+  m_OptimizerNumberOfIterations = numberOfIterations;
+  m_OptimizerParametersConvergenceTolerance = parametersConvergenceTolerance;
+  m_OptimizerFunctionConvergenceTolerance = functionConvergenceTolerance;
+  m_OptimizerWithRestarts = withRestarts;
+  return *this;
+}
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetOptimizerAsPowell(unsigned int numberOfIterations,
+                                              unsigned int maximumLineIterations,
+                                              double stepLength,
+                                              double stepTolerance,
+                                              double valueTolerance )
+{
+  m_OptimizerType = Powell;
+  m_OptimizerNumberOfIterations = numberOfIterations;
+  m_OptimizerMaximumLineIterations = maximumLineIterations;
+  m_OptimizerStepLength = stepLength;
+  m_OptimizerStepTolerance = stepTolerance;
+  m_OptimizerValueTolerance = valueTolerance;
+  return *this;
+}
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetOptimizerAsOnePlusOneEvolutionary(unsigned int numberOfIterations,
+                                                              double epsilon,
+                                                              double initialRadius,
+                                                              double growthFactor,
+                                                              double shrinkFactor,
+                                                              unsigned int seed)
+{
+  m_OptimizerType = OnePlusOneEvolutionary;
+  m_OptimizerNumberOfIterations = numberOfIterations;
+  m_OptimizerEpsilon = epsilon;
+  m_OptimizerInitialRadius = initialRadius;
+  m_OptimizerGrowthFactor = growthFactor;
+  m_OptimizerShrinkFactor = shrinkFactor;
+  m_OptimizerSeed = seed;
+
+  return *this;
+}
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetOptimizerScales( const std::vector<double> &scales)
+{
+  this->m_OptimizerScalesType = Manual;
+  this->m_OptimizerScales = scales;
+  return *this;
+}
+
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetMetricFixedMask( const Image &binaryMask )
+{
+  // todo
+  m_MetricFixedMaskImage = binaryMask;
+  //m_MetricFixedMaskRegion.clear();
+  return *this;
+ }
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetMetricMovingMask( const Image &binaryMask )
+{
+  m_MetricMovingMaskImage = binaryMask;
+  //m_MetricMovingMaskRegion.clear();
+  return *this;
+}
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetOptimizerScalesFromJacobian( unsigned int centralRegionRadius )
+{
+  this->m_OptimizerScalesType = Jacobian;
+  this->m_OptimizerScalesCentralRegionRadius = centralRegionRadius;
+  this->m_OptimizerScales = std::vector<double>();
+  return *this;
+}
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetOptimizerScalesFromIndexShift( unsigned int centralRegionRadius,
+                                                           double smallParameterVariation )
+{
+  this->m_OptimizerScalesType = IndexShift;
+  this->m_OptimizerScalesCentralRegionRadius = centralRegionRadius;
+  this->m_OptimizerScalesSmallParameterVariation = smallParameterVariation;
+  this->m_OptimizerScales = std::vector<double>();
+  return *this;
+}
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetOptimizerScalesFromPhysicalShift( unsigned int centralRegionRadius,
+                                                              double smallParameterVariation )
+{
+  this->m_OptimizerScalesType = PhysicalShift;
+  this->m_OptimizerScalesCentralRegionRadius = centralRegionRadius;
+  this->m_OptimizerScalesSmallParameterVariation = smallParameterVariation;
+  this->m_OptimizerScales = std::vector<double>();
+  return *this;
+}
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetMetricSamplingPercentage(double percentage, unsigned int seed)
+{
+  m_MetricSamplingPercentage.resize(1);
+  m_MetricSamplingPercentage[0] = percentage;
+  m_MetricSamplingSeed = seed;
+  return *this;
+}
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetMetricSamplingPercentagePerLevel(const std::vector<double> &percentage, unsigned int seed)
+{
+  m_MetricSamplingPercentage = percentage;
+  m_MetricSamplingSeed = seed;
+  return *this;
+}
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetMetricSamplingStrategy( MetricSamplingStrategyType strategy)
+{
+  m_MetricSamplingStrategy = strategy;
+  return *this;
+}
+
+ImageRegistrationMethod::Self& ImageRegistrationMethod::SetMetricUseFixedImageGradientFilter(bool arg)
+{
+  m_MetricUseFixedImageGradientFilter = arg;
+  return *this;
+}
+
+ImageRegistrationMethod::Self& ImageRegistrationMethod::SetMetricUseMovingImageGradientFilter(bool arg)
+{
+  m_MetricUseMovingImageGradientFilter = arg;
+  return *this;
+}
+
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetShrinkFactorsPerLevel( const std::vector<unsigned int> &shrinkFactors )
+{
+  this->m_ShrinkFactorsPerLevel = shrinkFactors;
+  return *this;
+}
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetSmoothingSigmasPerLevel( const std::vector<double> &smoothingSigmas )
+{
+  this->m_SmoothingSigmasPerLevel = smoothingSigmas;
+  return *this;
+}
+
+ImageRegistrationMethod::Self&
+ImageRegistrationMethod::SetSmoothingSigmasAreSpecifiedInPhysicalUnits(bool arg)
+{
+  m_SmoothingSigmasAreSpecifiedInPhysicalUnits = arg;
+  return *this;
+}
+
+std::string ImageRegistrationMethod::GetOptimizerStopConditionDescription() const
+{
+  if (bool(this->m_pfGetOptimizerStopConditionDescription))
+    {
+    return this->m_pfGetOptimizerStopConditionDescription();
+    }
+  return this->m_StopConditionDescription;
+}
+
+unsigned int ImageRegistrationMethod::GetOptimizerIteration() const
+{
+  if (bool(this->m_pfGetOptimizerIteration))
+    {
+    return this->m_pfGetOptimizerIteration();
+    }
+  return this->m_Iteration;
+}
+
+
+std::vector<double> ImageRegistrationMethod::GetOptimizerPosition() const
+{
+  if(bool(this->m_pfGetOptimizerPosition))
+    {
+    return this->m_pfGetOptimizerPosition();
+    }
+  return std::vector<double>();
+}
+
+
+double ImageRegistrationMethod::GetOptimizerLearningRate() const
+{
+  if(bool(this->m_pfGetOptimizerLearningRate))
+    {
+    return this->m_pfGetOptimizerLearningRate();
+    }
+  return 0.0;
+}
+
+
+double ImageRegistrationMethod::GetOptimizerConvergenceValue() const
+{
+  if(bool(this->m_pfGetOptimizerConvergenceValue))
+    {
+    return this->m_pfGetOptimizerConvergenceValue();
+    }
+  return 0.0;
+}
+
+
+double ImageRegistrationMethod::GetMetricValue() const
+{
+  if(bool(this->m_pfGetMetricValue))
+    {
+    return this->m_pfGetMetricValue();
+    }
+  return m_MetricValue;
+}
+
+std::vector<double> ImageRegistrationMethod::GetOptimizerScales() const
+{
+  if(this->m_OptimizerScalesType==Manual)
+    {
+    return m_OptimizerScales;
+    }
+  else if(bool(this->m_pfGetOptimizerScales))
+    {
+    return this->m_pfGetOptimizerScales();
+    }
+  return std::vector<double>();
+}
+
+
+unsigned int ImageRegistrationMethod::GetCurrentLevel() const
+{
+  if (bool(this->m_pfGetCurrentLevel))
+    {
+    return this->m_pfGetCurrentLevel();
+    }
+  return 0;
+}
+
+
+template <typename TMetric>
+ itk::RegistrationParameterScalesEstimator< TMetric >*
+ImageRegistrationMethod::CreateScalesEstimator()
+{
+  switch(m_OptimizerScalesType)
+    {
+    case Jacobian:
+    {
+      typedef RegistrationParameterScalesFromJacobian<TMetric> ScalesEstimatorType;
+      typename ScalesEstimatorType::Pointer scalesEstimator = ScalesEstimatorType::New();
+      scalesEstimator->SetCentralRegionRadius(this->m_OptimizerScalesCentralRegionRadius);
+      scalesEstimator->Register();
+      return scalesEstimator;
+    }
+    case IndexShift:
+    {
+      typedef RegistrationParameterScalesFromIndexShift<TMetric> ScalesEstimatorType;
+      typename ScalesEstimatorType::Pointer scalesEstimator = ScalesEstimatorType::New();
+      scalesEstimator->SetCentralRegionRadius(this->m_OptimizerScalesCentralRegionRadius);
+      scalesEstimator->SetSmallParameterVariation(this->m_OptimizerScalesSmallParameterVariation);
+      scalesEstimator->Register();
+      return scalesEstimator;
+    }
+    case PhysicalShift:
+    {
+      typedef RegistrationParameterScalesFromPhysicalShift<TMetric> ScalesEstimatorType;
+      typename ScalesEstimatorType::Pointer scalesEstimator = ScalesEstimatorType::New();
+      scalesEstimator->SetCentralRegionRadius(this->m_OptimizerScalesCentralRegionRadius);
+      scalesEstimator->SetSmallParameterVariation(this->m_OptimizerScalesSmallParameterVariation);
+      scalesEstimator->Register();
+      return scalesEstimator;
+    }
+    case Manual:
+      return NULL;
+    default:
+      break; // fall through to exception
+    }
+  sitkExceptionMacro("LogicError: Unexpected case!");
+
+}
+
+
+template<unsigned int VDimension>
+itk::SpatialObject<VDimension> *
+ImageRegistrationMethod::CreateSpatialObjectMask(const Image &imageMask)
+{
+  // this should be checked before this function
+  assert(imageMask.GetDimension() == VDimension);
+
+  // todo add the image to the spatial object, the spatial object only
+  // seems to support unsigned char image types.
+
+  Image mask = imageMask;
+
+  if (mask.GetPixelID() != sitkUInt8)
+    {
+    mask = Cast(mask, sitkUInt8);
+    }
+
+  // ick assuming uint8 == uchar
+  typedef itk::Image<unsigned char, VDimension> ITKImageType;
+  typename ITKImageType::ConstPointer itkImage = this->CastImageToITK<ITKImageType>(mask);
+
+  typedef itk::ImageMaskSpatialObject<VDimension> SpatialObjectMaskType;
+  typename SpatialObjectMaskType::Pointer spatialMask = SpatialObjectMaskType::New();
+  spatialMask->SetImage(itkImage);
+  spatialMask->Register();
+  return spatialMask;
+}
+
+
+Transform ImageRegistrationMethod::Execute ( const Image &fixed, const Image & moving )
+{
+  const PixelIDValueType fixedType = fixed.GetPixelIDValue();
+  const unsigned int fixedDim = fixed.GetDimension();
+  if ( fixed.GetPixelIDValue() != moving.GetPixelIDValue() )
+    {
+    sitkExceptionMacro ( << "Fixed and moving images must be the same datatype! Got "
+                         << fixed.GetPixelIDValue() << " and " << moving.GetPixelIDValue() );
+    }
+
+  if ( fixed.GetDimension() != moving.GetDimension() )
+    {
+    sitkExceptionMacro ( << "Fixed and moving images must be the same dimensionality! Got "
+                         << fixed.GetDimension() << " and " << moving.GetDimension() );
+    }
+
+  if (this->m_MemberFactory->HasMemberFunction( fixedType, fixedDim ) )
+    {
+    return this->m_MemberFactory->GetMemberFunction( fixedType, fixedDim )( fixed, moving );
+    }
+
+  sitkExceptionMacro( << "Filter does not support fixed image type: " << itk::simple::GetPixelIDValueAsString (fixedType) );
+
+}
+
+template<class TImageType>
+Transform ImageRegistrationMethod::ExecuteInternal ( const Image &inFixed, const Image &inMoving )
+{
+  typedef TImageType     FixedImageType;
+  typedef TImageType     MovingImageType;
+  const unsigned int ImageDimension = FixedImageType::ImageDimension;
+  //typedef itk::SpatialObject<ImageDimension> SpatialObjectMaskType;
+
+
+  typedef itk::ImageRegistrationMethodv4<FixedImageType, MovingImageType>  RegistrationType;
+  typename RegistrationType::Pointer   registration  = RegistrationType::New();
+
+  // this variable will hold the initial moving then fixed, then the
+  // initial to optimize.
+  const std::string strIdentityTransform = "IdentityTransform";
+
+  // Set initial moving transform
+  if ( strIdentityTransform != this->m_MovingInitialTransform.GetITKBase()->GetNameOfClass())
+    {
+    typename RegistrationType::InitialTransformType *itkTx;
+    if ( !(itkTx = dynamic_cast<typename RegistrationType::InitialTransformType *>(this->m_MovingInitialTransform.GetITKBase())) )
+      {
+      sitkExceptionMacro( "Unexpected error converting initial moving transform! Possible miss matching dimensions!" );
+      }
+    registration->SetMovingInitialTransform(itkTx);
+    }
+
+  // Set initial fixed transform
+  if ( strIdentityTransform != this->m_FixedInitialTransform.GetITKBase()->GetNameOfClass())
+    {
+    typename RegistrationType::InitialTransformType *itkTx;
+    if ( !(itkTx = dynamic_cast<typename RegistrationType::InitialTransformType *>(this->m_FixedInitialTransform.GetITKBase())) )
+      {
+      sitkExceptionMacro( "Unexpected error converting initial moving transform! Possible miss matching dimensions!" );
+      }
+    registration->SetFixedInitialTransform(itkTx);
+    }
+
+  typename RegistrationType::InitialTransformType *itkTx;
+  if ( !(itkTx = dynamic_cast<typename RegistrationType::InitialTransformType *>(this->m_InitialTransform.GetITKBase())) )
+    {
+    sitkExceptionMacro( "Unexpected error converting initial transform! Possible miss matching dimensions!" );
+    }
+
+  registration->SetInitialTransform( itkTx );
+  registration->SetInPlace(this->m_InitialTransformInPlace);
+
+
+  typedef itk::ObjectToObjectOptimizerBaseTemplate<double> _OptimizerType;
+  typename  _OptimizerType::Pointer optimizer = this->CreateOptimizer( itkTx->GetNumberOfParameters() );
+  optimizer->UnRegister();
+
+  // allocate optimizer early, to register the registration process
+  // object's onDelete callback
+  this->m_ActiveOptimizer = optimizer;
+  const bool stashedDebug = this->GetDebug();
+  this->DebugOff();
+  this->PreUpdate( registration.GetPointer() );
+  this->SetDebug(stashedDebug);
+
+
+  // Get the pointer to the ITK image contained in image1
+  typename FixedImageType::ConstPointer fixed = this->CastImageToITK<FixedImageType>( inFixed );
+  typename MovingImageType::ConstPointer moving = this->CastImageToITK<MovingImageType>( inMoving );
+
+  typedef itk::ImageToImageMetricv4<FixedImageType, MovingImageType> _MetricType;
+  typename _MetricType::Pointer metric = this->CreateMetric<FixedImageType>();
+  metric->UnRegister();
+  this->SetupMetric(metric.GetPointer(), fixed.GetPointer(), moving.GetPointer());
+
+  registration->SetMetric( metric );
+
+  registration->SetFixedImage( fixed );
+  registration->SetMovingImage( moving );
+
+  // determine number of levels
+  const unsigned int numberOfLevels = m_ShrinkFactorsPerLevel.size();
+  if (m_ShrinkFactorsPerLevel.size() != m_SmoothingSigmasPerLevel.size())
+    {
+    sitkExceptionMacro( "Number of per level parameters for shrink factors and smoothing sigmas don't match!");
+    }
+  registration->SetNumberOfLevels(numberOfLevels);
+
+  // set sampling
+
+  // todo test enum match
+  typename RegistrationType::MetricSamplingStrategyType itkSamplingStrategy = static_cast<typename RegistrationType::MetricSamplingStrategyType>(int(m_MetricSamplingStrategy));
+  registration->SetMetricSamplingStrategy(itkSamplingStrategy);
+
+  if (m_MetricSamplingPercentage.size()==1)
+    {
+    registration->SetMetricSamplingPercentage(this->m_MetricSamplingPercentage[0]);
+    }
+  else
+    {
+    if (m_ShrinkFactorsPerLevel.size() != m_MetricSamplingPercentage.size())
+      {
+
+      }
+    typename RegistrationType::MetricSamplingPercentageArrayType param(m_MetricSamplingPercentage.size());
+    std::copy(m_MetricSamplingPercentage.begin(), m_MetricSamplingPercentage.end(), param.begin());
+    registration->SetMetricSamplingPercentagePerLevel(param);
+    }
+
+  if ( m_MetricSamplingSeed == sitkWallClock )
+    {
+    registration->MetricSamplingReinitializeSeed();
+    }
+  else
+    {
+    registration->MetricSamplingReinitializeSeed(m_MetricSamplingSeed);
+    }
+
+  typename RegistrationType::ShrinkFactorsArrayType shrinkFactorsPerLevel( m_ShrinkFactorsPerLevel.size() );
+  std::copy(m_ShrinkFactorsPerLevel.begin(), m_ShrinkFactorsPerLevel.end(), shrinkFactorsPerLevel.begin());
+  registration->SetShrinkFactorsPerLevel( shrinkFactorsPerLevel );
+
+  typename RegistrationType::SmoothingSigmasArrayType smoothingSigmasPerLevel( m_SmoothingSigmasPerLevel.size() );
+  std::copy(m_SmoothingSigmasPerLevel.begin(), m_SmoothingSigmasPerLevel.end(), smoothingSigmasPerLevel.begin());
+  registration->SetSmoothingSigmasPerLevel( smoothingSigmasPerLevel );
+  registration->SetSmoothingSigmasAreSpecifiedInPhysicalUnits(m_SmoothingSigmasAreSpecifiedInPhysicalUnits);
+
+
+  // setup transform parameters adaptor
+  std::vector<typename RegistrationType::TransformParametersAdaptorPointer> adaptors =
+    this->CreateTransformParametersAdaptor<typename RegistrationType::TransformParametersAdaptorPointer>(registration.GetPointer());
+  registration->SetTransformParametersAdaptorsPerLevel(adaptors);
+
+  //
+  // Configure Optimizer
+  //
+  optimizer->SetNumberOfThreads(this->GetNumberOfThreads());
+
+  registration->SetOptimizer( optimizer );
+
+  if ( m_OptimizerWeights.size( ) )
+    {
+    itk::ObjectToObjectOptimizerBaseTemplate<double>::ScalesType weights(m_OptimizerWeights.size());
+    std::copy( m_OptimizerWeights.begin(), m_OptimizerWeights.end(), weights.begin() );
+    optimizer->SetWeights(weights);
+    }
+
+  typename itk::RegistrationParameterScalesEstimator< _MetricType >::Pointer scalesEstimator = this->CreateScalesEstimator<_MetricType>();
+  if (scalesEstimator)
+    {
+    scalesEstimator->UnRegister();
+    scalesEstimator->SetMetric( metric );
+    scalesEstimator->SetTransformForward( true );
+    optimizer->SetScalesEstimator( scalesEstimator );
+    }
+  else if ( m_OptimizerScales.size() )
+    {
+    itk::ObjectToObjectOptimizerBaseTemplate<double>::ScalesType scales(m_OptimizerScales.size());
+    std::copy( m_OptimizerScales.begin(), m_OptimizerScales.end(), scales.begin() );
+    optimizer->SetScales(scales);
+    }
+
+  if (this->GetDebug())
+    {
+    registration->Print(std::cout);
+    registration->GetOptimizer()->Print(std::cout);
+    registration->GetMetric()->Print(std::cout);
+    }
+
+  m_pfGetOptimizerStopConditionDescription =  nsstd::bind(&_OptimizerType::GetStopConditionDescription, optimizer.GetPointer());
+
+  m_pfGetCurrentLevel = nsstd::bind(&CurrentLevelCustomCast::CustomCast<RegistrationType>,registration.GetPointer());
+
+
+  try
+    {
+    registration->Update();
+    }
+  catch(std::exception &e)
+    {
+    m_StopConditionDescription = e.what();
+
+    m_MetricValue = this->GetMetricValue();
+    m_Iteration = this->GetOptimizerIteration();
+
+    throw;
+    }
+
+
+  // update measurements
+  m_StopConditionDescription = registration->GetOptimizer()->GetStopConditionDescription();
+
+  m_MetricValue = this->GetMetricValue();
+  m_Iteration = this->GetOptimizerIteration();
+
+  if (this->m_InitialTransformInPlace)
+    {
+    if (m_pfUpdateWithBestValue)
+      {
+      m_pfUpdateWithBestValue(this->m_InitialTransform.GetITKBase());
+      }
+
+    return this->m_InitialTransform;
+    }
+  else
+    {
+    // TOOD: It should not be necessary to return a composite
+    // transform the sitk::Transform class is missing a constructor
+    // which accepts an arbitrary ITK transform.
+    typename RegistrationType::OutputTransformType* itkOutTx = registration->GetModifiableTransform();
+
+    typedef itk::CompositeTransform<double, ImageDimension> CompositeTransformType;
+
+    typename CompositeTransformType::Pointer comp = CompositeTransformType::New();
+    comp->ClearTransformQueue();
+    comp->AddTransform( itkOutTx );
+
+    if (m_pfUpdateWithBestValue)
+      {
+      m_pfUpdateWithBestValue(comp);
+      }
+
+    return Transform(comp.GetPointer());
+    }
+}
+
+
+double ImageRegistrationMethod::MetricEvaluate ( const Image &fixed, const Image & moving )
+{
+  const PixelIDValueType fixedType = fixed.GetPixelIDValue();
+  const unsigned int fixedDim = fixed.GetDimension();
+  if ( fixed.GetPixelIDValue() != moving.GetPixelIDValue() )
+    {
+    sitkExceptionMacro ( << "Fixed and moving images must be the same datatype! Got "
+                         << fixed.GetPixelIDValue() << " and " << moving.GetPixelIDValue() );
+    }
+
+  if ( fixed.GetDimension() != moving.GetDimension() )
+    {
+    sitkExceptionMacro ( << "Fixed and moving images must be the same dimensionality! Got "
+                         << fixed.GetDimension() << " and " << moving.GetDimension() );
+    }
+
+  if (this->m_MemberFactory->HasMemberFunction( fixedType, fixedDim ) )
+    {
+    return this->m_EvaluateMemberFactory->GetMemberFunction( fixedType, fixedDim )( fixed, moving );
+    }
+
+  sitkExceptionMacro( << "Filter does not support fixed image type: " << itk::simple::GetPixelIDValueAsString (fixedType) );
+
+}
+
+
+
+template<class TImageType>
+double ImageRegistrationMethod::EvaluateInternal ( const Image &inFixed, const Image &inMoving )
+{
+  typedef TImageType     FixedImageType;
+  typedef TImageType     MovingImageType;
+  const unsigned int ImageDimension = FixedImageType::ImageDimension;
+  //typedef itk::SpatialObject<ImageDimension> SpatialObjectMaskType;
+
+ typedef itk::ImageRegistrationMethodv4<FixedImageType, MovingImageType>  RegistrationType;
+
+  // this variable will hold the initial moving then fixed, then the
+  // initial to optimize.
+  const std::string strIdentityTransform = "IdentityTransform";
+
+  // Get the pointer to the ITK image contained in image1
+  typename FixedImageType::ConstPointer fixed = this->CastImageToITK<FixedImageType>( inFixed );
+  typename MovingImageType::ConstPointer moving = this->CastImageToITK<MovingImageType>( inMoving );
+
+  typedef itk::ImageToImageMetricv4<FixedImageType, MovingImageType> _MetricType;
+  typename _MetricType::Pointer metric = this->CreateMetric<FixedImageType>();
+  metric->UnRegister();
+
+  this->SetupMetric(metric.GetPointer(), fixed.GetPointer(), moving.GetPointer());
+
+  metric->SetFixedImage(fixed);
+  metric->SetMovingImage(moving);
+
+  typedef itk::CompositeTransform<double, ImageDimension> CompositeTransformType;
+  typename CompositeTransformType::Pointer movingInitialCompositeTransform = CompositeTransformType::New();
+  // Set initial moving transform
+  if ( strIdentityTransform != this->m_MovingInitialTransform.GetITKBase()->GetNameOfClass())
+    {
+    typename RegistrationType::InitialTransformType *itkTx;
+    if ( !(itkTx = dynamic_cast<typename RegistrationType::InitialTransformType *>(this->m_MovingInitialTransform.GetITKBase())) )
+      {
+      sitkExceptionMacro( "Unexpected error converting initial moving transform! Possible miss matching dimensions!" );
+      }
+    movingInitialCompositeTransform->AddTransform(itkTx);
+    }
+
+  // Set initial fixed transform
+  if ( strIdentityTransform != this->m_FixedInitialTransform.GetITKBase()->GetNameOfClass())
+    {
+    typename RegistrationType::InitialTransformType *itkTx;
+    if ( !(itkTx = dynamic_cast<typename RegistrationType::InitialTransformType *>(this->m_FixedInitialTransform.GetITKBase())) )
+      {
+      sitkExceptionMacro( "Unexpected error converting initial moving transform! Possible miss matching dimensions!" );
+      }
+    metric->SetFixedTransform(itkTx);
+    }
+
+  typename RegistrationType::InitialTransformType *itkTx;
+  if ( !(itkTx = dynamic_cast<typename RegistrationType::InitialTransformType *>(this->m_InitialTransform.GetITKBase())) )
+    {
+    sitkExceptionMacro( "Unexpected error converting initial transform! Possible miss matching dimensions!" );
+    }
+  movingInitialCompositeTransform->AddTransform(itkTx);
+  metric->SetMovingTransform(movingInitialCompositeTransform);
+
+  metric->Initialize();
+
+  return metric->GetValue();
+}
+
+
+template <class TImageType>
+void
+ImageRegistrationMethod::SetupMetric(
+  itk::ImageToImageMetricv4<TImageType,
+  TImageType,
+  TImageType,
+  double,
+  itk::DefaultImageToImageMetricTraitsv4< TImageType, TImageType, TImageType, double >
+  >*metric, const TImageType *fixed, const TImageType *moving)
+{
+
+  typedef TImageType     FixedImageType;
+  typedef TImageType     MovingImageType;
+  const unsigned int ImageDimension = FixedImageType::ImageDimension;
+  typedef itk::SpatialObject<ImageDimension> SpatialObjectMaskType;
+
+  metric->SetMaximumNumberOfThreads(this->GetNumberOfThreads());
+
+  metric->SetUseFixedImageGradientFilter( m_MetricUseFixedImageGradientFilter );
+  metric->SetUseMovingImageGradientFilter( m_MetricUseMovingImageGradientFilter );
+
+  if ( this->m_VirtualDomainSize.size() != 0 )
+    {
+    typename FixedImageType::SpacingType itkSpacing = sitkSTLVectorToITK<typename FixedImageType::SpacingType>(this->m_VirtualDomainSpacing);
+    typename FixedImageType::PointType itkOrigin = sitkSTLVectorToITK<typename FixedImageType::PointType>(this->m_VirtualDomainOrigin);
+    typename FixedImageType::DirectionType itkDirection = sitkSTLToITKDirection<typename FixedImageType::DirectionType>(this->m_VirtualDomainDirection);
+
+    typename FixedImageType::RegionType itkRegion;
+    itkRegion.SetSize( sitkSTLVectorToITK<typename FixedImageType::SizeType>( this->m_VirtualDomainSize ) );
+
+    metric->SetVirtualDomain( itkSpacing, itkOrigin, itkDirection, itkRegion );
+    }
+
+  typedef itk::InterpolateImageFunction< FixedImageType, double > FixedInterpolatorType;
+  typename FixedInterpolatorType::Pointer   fixedInterpolator  = CreateInterpolator(fixed, m_Interpolator);
+  metric->SetFixedInterpolator( fixedInterpolator );
+
+  typedef itk::InterpolateImageFunction< MovingImageType, double > MovingInterpolatorType;
+  typename MovingInterpolatorType::Pointer   movingInterpolator  = CreateInterpolator(moving, m_Interpolator);
+  metric->SetMovingInterpolator( movingInterpolator );
+
+  // todo implement ImageRegionSpatialObject
+  if ( m_MetricFixedMaskImage.GetSize() != std::vector<unsigned int>(m_MetricFixedMaskImage.GetDimension(), 0u) )
+    {
+    if ( m_MetricFixedMaskImage.GetDimension() != FixedImageType::ImageDimension )
+      {
+      sitkExceptionMacro("FixedMaskImage does not match dimension of then fixed image!");
+      }
+    typename SpatialObjectMaskType::ConstPointer fixedMask = this->CreateSpatialObjectMask<ImageDimension>(m_MetricFixedMaskImage);
+    fixedMask->UnRegister();
+    metric->SetFixedImageMask(fixedMask);
+    }
+
+  if ( m_MetricMovingMaskImage.GetSize() != std::vector<unsigned int>(m_MetricMovingMaskImage.GetDimension(), 0u) )
+    {
+    if ( m_MetricMovingMaskImage.GetDimension() != MovingImageType::ImageDimension )
+      {
+      sitkExceptionMacro("MovingMaskImage does not match dimension of the moving image!");
+      }
+    typename SpatialObjectMaskType::ConstPointer movingMask = this->CreateSpatialObjectMask<ImageDimension>(m_MetricMovingMaskImage);
+    movingMask->UnRegister();
+    metric->SetMovingImageMask(movingMask);
+    }
+}
+
+
+void ImageRegistrationMethod::PreUpdate( itk::ProcessObject *p )
+{
+  Superclass::PreUpdate(p);
+}
+
+
+
+unsigned long ImageRegistrationMethod::AddITKObserver(const itk::EventObject &e, itk::Command *c)
+{
+  assert(this->m_ActiveOptimizer);
+
+  if (e.CheckEvent(&GetITKEventObject(sitkIterationEvent)))
+    {
+    return this->m_ActiveOptimizer->AddObserver(e,c);
+    }
+  return Superclass::AddITKObserver(e,c);
+}
+
+void ImageRegistrationMethod::RemoveITKObserver( EventCommand &e )
+{
+  assert(this->m_ActiveOptimizer);
+
+  if (e.m_Event == sitkIterationEvent)
+    {
+    this->m_ActiveOptimizer->RemoveObserver(e.m_ITKTag);
+    return;
+    }
+  return Superclass::RemoveITKObserver(e);
+}
+
+void ImageRegistrationMethod::OnActiveProcessDelete( ) throw()
+{
+  Superclass::OnActiveProcessDelete( );
+
+  // clean up all pointer functions here
+  this->m_pfGetOptimizerIteration = SITK_NULLPTR;
+  this->m_pfGetOptimizerPosition = SITK_NULLPTR;
+  this->m_pfGetOptimizerLearningRate = SITK_NULLPTR;
+  this->m_pfGetOptimizerConvergenceValue = SITK_NULLPTR;
+  this->m_pfGetMetricValue = SITK_NULLPTR;
+  this->m_pfGetOptimizerScales = SITK_NULLPTR;
+  this->m_pfGetOptimizerStopConditionDescription = SITK_NULLPTR;
+
+  this->m_pfUpdateWithBestValue = SITK_NULLPTR;
+
+  this->m_pfGetCurrentLevel = SITK_NULLPTR;
+
+  this->m_ActiveOptimizer = SITK_NULLPTR;
+}
+
+
+}
+}
diff --git a/Code/Registration/src/sitkImageRegistrationMethod_CreateMetric.cxx b/Code/Registration/src/sitkImageRegistrationMethod_CreateMetric.cxx
new file mode 100644
index 0000000..3164e44
--- /dev/null
+++ b/Code/Registration/src/sitkImageRegistrationMethod_CreateMetric.cxx
@@ -0,0 +1,61 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+#include "sitkImageRegistrationMethod_CreateMetric.hxx"
+#include "itkImage.h"
+namespace itk
+{
+namespace simple
+{
+template SITKRegistration_EXPORT
+itk::ImageToImageMetricv4<itk::Image<float, 2>,
+                          itk::Image<float, 2>,
+                          itk::Image<float, 2>,
+                          double,
+                          DefaultImageToImageMetricTraitsv4< itk::Image<float, 2>, itk::Image<float, 2>, itk::Image<float, 2>, double >
+                          >*ImageRegistrationMethod::CreateMetric<itk::Image<float, 2> >( );
+
+
+template SITKRegistration_EXPORT
+itk::ImageToImageMetricv4<itk::Image<double, 2>,
+                          itk::Image<double, 2>,
+                          itk::Image<double, 2>,
+                          double,
+                          DefaultImageToImageMetricTraitsv4< itk::Image<double, 2>, itk::Image<double, 2>, itk::Image<double, 2>, double >
+                          >*ImageRegistrationMethod::CreateMetric<itk::Image<double, 2> >( );
+
+
+template SITKRegistration_EXPORT
+itk::ImageToImageMetricv4<itk::Image<float, 3>,
+                          itk::Image<float, 3>,
+                          itk::Image<float, 3>,
+                          double,
+                          DefaultImageToImageMetricTraitsv4< itk::Image<float, 3>, itk::Image<float, 3>, itk::Image<float, 3>, double >
+                          >*ImageRegistrationMethod::CreateMetric<itk::Image<float, 3> >( );
+
+
+template SITKRegistration_EXPORT
+itk::ImageToImageMetricv4<itk::Image<double, 3>,
+                          itk::Image<double, 3>,
+                          itk::Image<double, 3>,
+                          double,
+                          DefaultImageToImageMetricTraitsv4< itk::Image<double, 3>, itk::Image<double, 3>, itk::Image<double, 3>, double >
+                          >*ImageRegistrationMethod::CreateMetric<itk::Image<double, 3> >( );
+
+}
+}
diff --git a/Code/Registration/src/sitkImageRegistrationMethod_CreateMetric.hxx b/Code/Registration/src/sitkImageRegistrationMethod_CreateMetric.hxx
new file mode 100644
index 0000000..722c0d4
--- /dev/null
+++ b/Code/Registration/src/sitkImageRegistrationMethod_CreateMetric.hxx
@@ -0,0 +1,110 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkImageRegistrationMethod_CreateMetric_hxx
+#define sitkImageRegistrationMethod_CreateMetric_hxx
+
+#include "sitkImageRegistrationMethod.h"
+
+#include "itkANTSNeighborhoodCorrelationImageToImageMetricv4.h"
+#include "itkCorrelationImageToImageMetricv4.h"
+#include "itkDemonsImageToImageMetricv4.h"
+#include "itkJointHistogramMutualInformationImageToImageMetricv4.h"
+#include "itkMeanSquaresImageToImageMetricv4.h"
+#include "itkMattesMutualInformationImageToImageMetricv4.h"
+
+namespace itk
+{
+namespace simple
+{
+
+template <class TImageType>
+itk::ImageToImageMetricv4<TImageType,
+                          TImageType,
+                          TImageType,
+                          double,
+                          itk::DefaultImageToImageMetricTraitsv4< TImageType, TImageType, TImageType, double >
+                          >*
+ImageRegistrationMethod::CreateMetric( )
+{
+  typedef TImageType     FixedImageType;
+  typedef TImageType     MovingImageType;
+
+
+  switch (m_MetricType)
+    {
+    case ANTSNeighborhoodCorrelation:
+    {
+    typedef itk::ANTSNeighborhoodCorrelationImageToImageMetricv4<FixedImageType, MovingImageType > _MetricType;
+
+      typename _MetricType::Pointer metric = _MetricType::New();
+      typename _MetricType::RadiusType radius;
+      radius.Fill( m_MetricRadius );
+      metric->SetRadius( radius );
+      metric->Register();
+      return metric.GetPointer();
+    }
+    case Correlation:
+    {
+      typedef itk::CorrelationImageToImageMetricv4< FixedImageType, MovingImageType > _MetricType;
+
+      typename _MetricType::Pointer metric = _MetricType::New();
+      metric->Register();
+      return metric.GetPointer();
+    }
+    case Demons:
+    {
+      typedef itk::DemonsImageToImageMetricv4< FixedImageType, MovingImageType > _MetricType;
+      typename _MetricType::Pointer metric = _MetricType::New();
+      metric->SetIntensityDifferenceThreshold(m_MetricIntensityDifferenceThreshold);
+      metric->Register();
+      return metric.GetPointer();
+    }
+    case JointHistogramMutualInformation:
+    {
+      typedef itk::JointHistogramMutualInformationImageToImageMetricv4< FixedImageType, MovingImageType > _MetricType;
+      typename _MetricType::Pointer metric = _MetricType::New();
+      metric->SetNumberOfHistogramBins(m_MetricNumberOfHistogramBins);
+      metric->SetVarianceForJointPDFSmoothing(m_MetricVarianceForJointPDFSmoothing);
+      metric->Register();
+      return metric.GetPointer();
+    }
+    case MeanSquares:
+    {
+      typedef itk::MeanSquaresImageToImageMetricv4< FixedImageType, MovingImageType > _MetricType;
+      typename _MetricType::Pointer metric = _MetricType::New();
+      metric->Register();
+      return metric.GetPointer();
+    }
+    case MattesMutualInformation:
+    {
+      typedef itk::MattesMutualInformationImageToImageMetricv4< FixedImageType, MovingImageType > _MetricType;
+      typename _MetricType::Pointer metric = _MetricType::New();
+      metric->SetNumberOfHistogramBins(m_MetricNumberOfHistogramBins);
+      metric->Register();
+      return metric.GetPointer();
+    }
+    default:
+      break; // fall through to exception
+    }
+  sitkExceptionMacro("LogicError: Unexpected case!");
+
+}
+
+}
+}
+#endif  // sitkImageRegistrationMethod_CreateMetric_hxx
diff --git a/Code/Registration/src/sitkImageRegistrationMethod_CreateOptimizer.cxx b/Code/Registration/src/sitkImageRegistrationMethod_CreateOptimizer.cxx
new file mode 100644
index 0000000..8c08de4
--- /dev/null
+++ b/Code/Registration/src/sitkImageRegistrationMethod_CreateOptimizer.cxx
@@ -0,0 +1,340 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include "sitkImageRegistrationMethod.h"
+
+#include "itkConjugateGradientLineSearchOptimizerv4.h"
+#include "itkGradientDescentOptimizerv4.h"
+#include "itkRegularStepGradientDescentOptimizerv4.h"
+#include "itkLBFGSBOptimizerv4.h"
+#include "itkOnePlusOneEvolutionaryOptimizerv4.h"
+#include "itkNormalVariateGenerator.h"
+#include "itkExhaustiveOptimizerv4.h"
+#include "itkAmoebaOptimizerv4.h"
+#include "itkPowellOptimizerv4.h"
+
+#include <time.h>
+
+
+namespace {
+
+template <typename T>
+void UpdateWithBestValueExhaustive(itk::ExhaustiveOptimizerv4<T> *exhaustiveOptimizer,
+                                   double *outValue,
+                                   itk::TransformBase *outTransform)
+{
+  *outValue = exhaustiveOptimizer->GetMinimumMetricValue();
+  if (outTransform)
+    {
+    outTransform->SetParameters(exhaustiveOptimizer->GetMinimumMetricValuePosition());
+    }
+}
+
+struct PositionOptimizerCustomCast
+{
+  template <typename T>
+  static std::vector<double> Helper(const T &value)
+    { return std::vector<double>(value.begin(),value.end()); }
+
+  static std::vector<double> CustomCast(const itk::ObjectToObjectOptimizerBaseTemplate<double> *opt)
+    {
+      return Helper(opt->GetCurrentPosition());
+    }
+};
+
+struct CurrentIterationCustomCast
+{
+  static unsigned int CustomCast(const itk::ObjectToObjectOptimizerBaseTemplate<double> *opt)
+    {
+      return static_cast<unsigned int>(std::min<itk::SizeValueType>(opt->GetCurrentIteration(), std::numeric_limits<unsigned int>::max()));
+    }
+};
+}
+
+
+namespace itk
+{
+namespace simple
+{
+
+  template< typename TValue, typename TType>
+  itk::Array<TValue> sitkSTLVectorToITKArray( const std::vector< TType > & in )
+  {
+    itk::Array<TValue> out(in.size());
+    std::copy(in.begin(), in.end(), out.begin());
+    return out;
+  }
+
+  itk::ObjectToObjectOptimizerBaseTemplate<double>*
+  ImageRegistrationMethod::CreateOptimizer( unsigned int numberOfTransformParameters )
+  {
+    typedef double InternalComputationValueType;
+
+    if ( m_OptimizerType == ConjugateGradientLineSearch )
+      {
+      typedef itk::ConjugateGradientLineSearchOptimizerv4Template<InternalComputationValueType> _OptimizerType;
+      _OptimizerType::Pointer      optimizer     = _OptimizerType::New();
+      optimizer->SetLearningRate( this->m_OptimizerLearningRate );
+      optimizer->SetNumberOfIterations( this->m_OptimizerNumberOfIterations );
+      optimizer->SetMinimumConvergenceValue( this->m_OptimizerConvergenceMinimumValue );
+      optimizer->SetConvergenceWindowSize( this->m_OptimizerConvergenceWindowSize );
+      optimizer->SetLowerLimit( this->m_OptimizerLineSearchLowerLimit);
+      optimizer->SetUpperLimit( this->m_OptimizerLineSearchUpperLimit);
+      optimizer->SetEpsilon( this->m_OptimizerLineSearchEpsilon);
+      optimizer->SetMaximumLineSearchIterations( this->m_OptimizerLineSearchMaximumIterations);
+      optimizer->SetDoEstimateLearningRateAtEachIteration( this->m_OptimizerEstimateLearningRate==EachIteration );
+      optimizer->SetDoEstimateLearningRateOnce( this->m_OptimizerEstimateLearningRate==Once );
+      optimizer->SetMaximumStepSizeInPhysicalUnits( this->m_OptimizerMaximumStepSizeInPhysicalUnits );
+
+      this->m_pfGetMetricValue = nsstd::bind(&_OptimizerType::GetCurrentMetricValue,optimizer.GetPointer());
+      this->m_pfGetOptimizerIteration = nsstd::bind(&CurrentIterationCustomCast::CustomCast,optimizer.GetPointer());
+      this->m_pfGetOptimizerPosition = nsstd::bind(&PositionOptimizerCustomCast::CustomCast,optimizer.GetPointer());
+      this->m_pfGetOptimizerLearningRate = nsstd::bind(&_OptimizerType::GetLearningRate,optimizer.GetPointer());
+      this->m_pfGetOptimizerConvergenceValue = nsstd::bind(&_OptimizerType::GetConvergenceValue,optimizer.GetPointer());
+      this->m_pfGetOptimizerScales = nsstd::bind(&PositionOptimizerCustomCast::Helper<_OptimizerType::ScalesType>, nsstd::bind(&_OptimizerType::GetScales, optimizer.GetPointer()));
+
+      optimizer->Register();
+      return optimizer.GetPointer();
+      }
+    else if ( m_OptimizerType == GradientDescent )
+      {
+      typedef itk::GradientDescentOptimizerv4Template<InternalComputationValueType> _OptimizerType;
+      _OptimizerType::Pointer      optimizer     = _OptimizerType::New();
+      optimizer->SetLearningRate( this->m_OptimizerLearningRate );
+      optimizer->SetNumberOfIterations( this->m_OptimizerNumberOfIterations );
+      optimizer->SetMinimumConvergenceValue( this->m_OptimizerConvergenceMinimumValue );
+      optimizer->SetConvergenceWindowSize( this->m_OptimizerConvergenceWindowSize );
+      optimizer->SetDoEstimateLearningRateAtEachIteration( this->m_OptimizerEstimateLearningRate==EachIteration );
+      optimizer->SetDoEstimateLearningRateOnce( this->m_OptimizerEstimateLearningRate==Once );
+      optimizer->SetMaximumStepSizeInPhysicalUnits( this->m_OptimizerMaximumStepSizeInPhysicalUnits );
+
+      this->m_pfGetMetricValue = nsstd::bind(&_OptimizerType::GetCurrentMetricValue,optimizer.GetPointer());
+      this->m_pfGetOptimizerIteration = nsstd::bind(&CurrentIterationCustomCast::CustomCast,optimizer.GetPointer());
+      this->m_pfGetOptimizerPosition = nsstd::bind(&PositionOptimizerCustomCast::CustomCast,optimizer.GetPointer());
+      this->m_pfGetOptimizerLearningRate = nsstd::bind(&_OptimizerType::GetLearningRate,optimizer.GetPointer());
+      this->m_pfGetOptimizerConvergenceValue = nsstd::bind(&_OptimizerType::GetConvergenceValue,optimizer.GetPointer());
+      this->m_pfGetOptimizerScales = nsstd::bind(&PositionOptimizerCustomCast::Helper<_OptimizerType::ScalesType>, nsstd::bind(&_OptimizerType::GetScales, optimizer.GetPointer()));
+
+      optimizer->Register();
+      return optimizer.GetPointer();
+      }
+    else if ( m_OptimizerType == GradientDescentLineSearch )
+      {
+      typedef itk::GradientDescentLineSearchOptimizerv4Template<InternalComputationValueType> _OptimizerType;
+      _OptimizerType::Pointer      optimizer     = _OptimizerType::New();
+      optimizer->SetLearningRate( this->m_OptimizerLearningRate );
+      optimizer->SetNumberOfIterations( this->m_OptimizerNumberOfIterations );
+      optimizer->SetMinimumConvergenceValue( this->m_OptimizerConvergenceMinimumValue );
+      optimizer->SetConvergenceWindowSize( this->m_OptimizerConvergenceWindowSize );
+      optimizer->SetLowerLimit( this->m_OptimizerLineSearchLowerLimit);
+      optimizer->SetUpperLimit( this->m_OptimizerLineSearchUpperLimit);
+      optimizer->SetEpsilon( this->m_OptimizerLineSearchEpsilon);
+      optimizer->SetMaximumLineSearchIterations( this->m_OptimizerLineSearchMaximumIterations);
+      optimizer->SetDoEstimateLearningRateAtEachIteration( this->m_OptimizerEstimateLearningRate==EachIteration );
+      optimizer->SetDoEstimateLearningRateOnce( this->m_OptimizerEstimateLearningRate==Once );
+      optimizer->SetMaximumStepSizeInPhysicalUnits( this->m_OptimizerMaximumStepSizeInPhysicalUnits );
+
+      this->m_pfGetMetricValue = nsstd::bind(&_OptimizerType::GetCurrentMetricValue,optimizer.GetPointer());
+      this->m_pfGetOptimizerIteration = nsstd::bind(&CurrentIterationCustomCast::CustomCast,optimizer.GetPointer());
+      this->m_pfGetOptimizerPosition = nsstd::bind(&PositionOptimizerCustomCast::CustomCast,optimizer.GetPointer());
+      this->m_pfGetOptimizerLearningRate = nsstd::bind(&_OptimizerType::GetLearningRate,optimizer.GetPointer());
+      this->m_pfGetOptimizerConvergenceValue = nsstd::bind(&_OptimizerType::GetConvergenceValue,optimizer.GetPointer());
+      this->m_pfGetOptimizerScales = nsstd::bind(&PositionOptimizerCustomCast::Helper<_OptimizerType::ScalesType>, nsstd::bind(&_OptimizerType::GetScales, optimizer.GetPointer()));
+
+      optimizer->Register();
+      return optimizer.GetPointer();
+      }
+    else if ( m_OptimizerType == RegularStepGradientDescent )
+      {
+      typedef itk::RegularStepGradientDescentOptimizerv4<InternalComputationValueType> _OptimizerType;
+      _OptimizerType::Pointer      optimizer =  _OptimizerType::New();
+
+      optimizer->SetLearningRate( this->m_OptimizerLearningRate );
+      optimizer->SetMinimumStepLength( this->m_OptimizerMinimumStepLength );
+      optimizer->SetNumberOfIterations( this->m_OptimizerNumberOfIterations  );
+      optimizer->SetRelaxationFactor( this->m_OptimizerRelaxationFactor );
+      optimizer->SetGradientMagnitudeTolerance( this->m_OptimizerGradientMagnitudeTolerance );
+      optimizer->SetDoEstimateLearningRateAtEachIteration( this->m_OptimizerEstimateLearningRate==EachIteration );
+      optimizer->SetDoEstimateLearningRateOnce( this->m_OptimizerEstimateLearningRate==Once );
+      optimizer->SetMaximumStepSizeInPhysicalUnits( this->m_OptimizerMaximumStepSizeInPhysicalUnits );
+      optimizer->Register();
+
+      this->m_pfGetMetricValue = nsstd::bind(&_OptimizerType::GetValue,optimizer);
+      this->m_pfGetOptimizerIteration = nsstd::bind(&CurrentIterationCustomCast::CustomCast,optimizer.GetPointer());
+      this->m_pfGetOptimizerPosition = nsstd::bind(&PositionOptimizerCustomCast::CustomCast,optimizer.GetPointer());
+      this->m_pfGetOptimizerLearningRate = nsstd::bind(&_OptimizerType::GetLearningRate,optimizer.GetPointer());
+      this->m_pfGetOptimizerConvergenceValue = nsstd::bind(&_OptimizerType::GetConvergenceValue,optimizer.GetPointer());
+      this->m_pfGetOptimizerScales = nsstd::bind(&PositionOptimizerCustomCast::Helper<_OptimizerType::ScalesType>, nsstd::bind(&_OptimizerType::GetScales, optimizer.GetPointer()));
+
+      return optimizer.GetPointer();
+      }
+    else if ( m_OptimizerType == LBFGSB )
+      {
+      typedef itk::LBFGSBOptimizerv4 _OptimizerType;
+      _OptimizerType::Pointer      optimizer =  _OptimizerType::New();
+
+      optimizer->SetGradientConvergenceTolerance( this->m_OptimizerGradientConvergenceTolerance );
+      optimizer->SetNumberOfIterations( this->m_OptimizerNumberOfIterations );
+      optimizer->SetMaximumNumberOfCorrections( this->m_OptimizerMaximumNumberOfCorrections  );
+      optimizer->SetMaximumNumberOfFunctionEvaluations( this->m_OptimizerMaximumNumberOfFunctionEvaluations );
+      optimizer->SetCostFunctionConvergenceFactor( this->m_OptimizerCostFunctionConvergenceFactor );
+
+      #define NOBOUND     0 // 00
+      #define LOWERBOUND  1 // 01
+      #define UPPERBOUND  2 // 10
+      #define BOTHBOUND   3 // 11
+
+      unsigned char flag = NOBOUND;
+      const unsigned int sitkToITK[] = {0,1,3,2};
+      if ( this->m_OptimizerLowerBound != std::numeric_limits<double>::min() )
+        {
+        flag |= LOWERBOUND;
+        }
+      if ( this->m_OptimizerUpperBound != std::numeric_limits<double>::max() )
+        {
+        flag |= UPPERBOUND;
+        }
+
+      _OptimizerType::BoundSelectionType boundSelection( numberOfTransformParameters );
+      _OptimizerType::BoundValueType lowerBound( numberOfTransformParameters );
+      _OptimizerType::BoundValueType upperBound( numberOfTransformParameters );
+
+      boundSelection.Fill( sitkToITK[flag] );
+      lowerBound.Fill( this->m_OptimizerUpperBound );
+      upperBound.Fill( this->m_OptimizerUpperBound );
+
+      optimizer->SetBoundSelection( boundSelection );
+      optimizer->SetLowerBound( lowerBound  );
+      optimizer->SetUpperBound( upperBound  );
+      optimizer->SetTrace( m_OptimizerTrace );
+      optimizer->Register();
+
+      this->m_pfGetMetricValue = nsstd::bind(&_OptimizerType::GetValue,optimizer.GetPointer());
+      this->m_pfGetOptimizerIteration = nsstd::bind(&CurrentIterationCustomCast::CustomCast,optimizer.GetPointer());
+      this->m_pfGetOptimizerPosition = nsstd::bind(&PositionOptimizerCustomCast::CustomCast,optimizer.GetPointer());
+      this->m_pfGetOptimizerScales = nsstd::bind(&PositionOptimizerCustomCast::Helper<_OptimizerType::ScalesType>, nsstd::bind(&_OptimizerType::GetScales, optimizer.GetPointer()));
+
+      return optimizer.GetPointer();
+      }
+    else if ( m_OptimizerType == Exhaustive )
+      {
+      typedef itk::ExhaustiveOptimizerv4<double> _OptimizerType;
+      _OptimizerType::Pointer      optimizer     = _OptimizerType::New();
+
+      optimizer->SetStepLength( this->m_OptimizerStepLength );
+      optimizer->SetNumberOfSteps( sitkSTLVectorToITKArray<_OptimizerType::StepsType::ValueType>(this->m_OptimizerNumberOfSteps));
+
+      this->m_pfGetMetricValue = nsstd::bind(&_OptimizerType::GetCurrentValue,optimizer);
+      this->m_pfGetOptimizerIteration = nsstd::bind(&CurrentIterationCustomCast::CustomCast,optimizer.GetPointer());
+      this->m_pfGetOptimizerPosition = nsstd::bind(&PositionOptimizerCustomCast::CustomCast,optimizer);
+
+      this->m_pfGetOptimizerScales = nsstd::bind(&PositionOptimizerCustomCast::Helper<_OptimizerType::ScalesType>, nsstd::bind(&_OptimizerType::GetScales, optimizer.GetPointer()));
+
+      this->m_pfUpdateWithBestValue = nsstd::bind(&UpdateWithBestValueExhaustive<double>,
+                                                  optimizer,
+                                                  &(this->m_MetricValue),
+                                                  nsstd::placeholders::_1);
+
+
+      optimizer->Register();
+      return optimizer.GetPointer();
+      }
+    else if( m_OptimizerType == Amoeba )
+      {
+      typedef itk::AmoebaOptimizerv4 _OptimizerType;
+      _OptimizerType::Pointer      optimizer     = _OptimizerType::New();
+
+      _OptimizerType::ParametersType simplexDelta( numberOfTransformParameters );
+      simplexDelta.Fill( this->m_OptimizerSimplexDelta );
+      optimizer->SetInitialSimplexDelta( simplexDelta );
+
+      optimizer->SetNumberOfIterations( this->m_OptimizerNumberOfIterations  );
+      optimizer->SetParametersConvergenceTolerance(this->m_OptimizerParametersConvergenceTolerance);
+      optimizer->SetFunctionConvergenceTolerance(this->m_OptimizerFunctionConvergenceTolerance);
+      optimizer->SetOptimizeWithRestarts(this->m_OptimizerWithRestarts);
+
+
+      this->m_pfGetMetricValue = nsstd::bind(&_OptimizerType::GetValue,optimizer);
+      this->m_pfGetOptimizerIteration = nsstd::bind(&CurrentIterationCustomCast::CustomCast,optimizer.GetPointer());
+      this->m_pfGetOptimizerPosition = nsstd::bind(&PositionOptimizerCustomCast::CustomCast,optimizer);
+      this->m_pfGetOptimizerScales = nsstd::bind(&PositionOptimizerCustomCast::Helper<_OptimizerType::ScalesType>, nsstd::bind(&_OptimizerType::GetScales, optimizer.GetPointer()));
+
+      optimizer->Register();
+      return optimizer.GetPointer();
+      }
+    else if ( m_OptimizerType == Powell )
+      {
+      typedef itk::PowellOptimizerv4<double> _OptimizerType;
+      _OptimizerType::Pointer optimizer = _OptimizerType::New();
+
+      optimizer->SetMaximumIteration( this->m_OptimizerNumberOfIterations );
+      optimizer->SetMaximumLineIteration( this->m_OptimizerMaximumLineIterations );
+      optimizer->SetStepLength(this->m_OptimizerStepLength );
+      optimizer->SetStepTolerance( this->m_OptimizerStepTolerance );
+      optimizer->SetValueTolerance( this->m_OptimizerValueTolerance );
+
+      this->m_pfGetMetricValue = nsstd::bind(&_OptimizerType::GetValue,optimizer.GetPointer());
+      this->m_pfGetOptimizerIteration = nsstd::bind(&CurrentIterationCustomCast::CustomCast,optimizer.GetPointer());
+      this->m_pfGetOptimizerPosition = nsstd::bind(&PositionOptimizerCustomCast::CustomCast,optimizer.GetPointer());
+      this->m_pfGetOptimizerScales = nsstd::bind(&PositionOptimizerCustomCast::Helper<_OptimizerType::ScalesType>, nsstd::bind(&_OptimizerType::GetScales, optimizer.GetPointer()));
+
+      optimizer->Register();
+      return optimizer.GetPointer();
+      }
+    else if ( m_OptimizerType == OnePlusOneEvolutionary )
+      {
+       typedef itk::OnePlusOneEvolutionaryOptimizerv4<double> _OptimizerType;
+      _OptimizerType::Pointer optimizer = _OptimizerType::New();
+      optimizer->SetMaximumIteration( this->m_OptimizerNumberOfIterations );
+      optimizer->SetEpsilon( this->m_OptimizerEpsilon );
+      optimizer->Initialize( this->m_OptimizerInitialRadius,
+                             this->m_OptimizerGrowthFactor,
+                             this->m_OptimizerShrinkFactor);
+
+      typedef itk::Statistics::NormalVariateGenerator  GeneratorType;
+      GeneratorType::Pointer generator = GeneratorType::New();
+      if ( this->m_OptimizerSeed == sitkWallClock )
+        {
+        // use time() and clock() to generate a unlikely-to-repeat
+        // seed.
+        uint64_t seed =  time(ITK_NULLPTR);
+        seed ^= (uint64_t)clock();
+        generator->Initialize( static_cast<unsigned int>(seed) );
+        }
+      else
+        {
+        generator->Initialize(this->m_OptimizerSeed);
+        }
+      optimizer->SetNormalVariateGenerator( generator );
+
+      this->m_pfGetMetricValue = nsstd::bind(&_OptimizerType::GetValue,optimizer.GetPointer());
+      this->m_pfGetOptimizerIteration = nsstd::bind(&CurrentIterationCustomCast::CustomCast,optimizer.GetPointer());
+      this->m_pfGetOptimizerPosition = nsstd::bind(&PositionOptimizerCustomCast::CustomCast,optimizer.GetPointer());
+      this->m_pfGetOptimizerConvergenceValue = nsstd::bind(&_OptimizerType::GetFrobeniusNorm,optimizer.GetPointer());
+      this->m_pfGetOptimizerScales = nsstd::bind(&PositionOptimizerCustomCast::Helper<_OptimizerType::ScalesType>, nsstd::bind(&_OptimizerType::GetScales, optimizer.GetPointer()));
+
+      optimizer->Register();
+      return optimizer.GetPointer();
+      }
+    else
+      {
+      sitkExceptionMacro("LogicError: Unexpected case!");
+      }
+  }
+
+}
+}
diff --git a/Code/Registration/src/sitkImageRegistrationMethod_CreateParametersAdaptor.hxx b/Code/Registration/src/sitkImageRegistrationMethod_CreateParametersAdaptor.hxx
new file mode 100644
index 0000000..ec11619
--- /dev/null
+++ b/Code/Registration/src/sitkImageRegistrationMethod_CreateParametersAdaptor.hxx
@@ -0,0 +1,126 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef sitkImageRegistrationMethod_CreateParametersAdaptor_hxx
+#define sitkImageRegistrationMethod_CreateParametersAdaptor_hxx
+
+#include "sitkImageRegistrationMethod.h"
+
+#include "itkShrinkImageFilter.h"
+
+#include "itkDisplacementFieldTransform.h"
+#include "itkDisplacementFieldTransformParametersAdaptor.h"
+
+namespace itk
+{
+namespace simple
+{
+
+
+
+
+template<typename TTransformBase, typename TFixedImageType>
+  typename TransformParametersAdaptorBase<TTransformBase>::Pointer
+  CreateTransformParametersAdaptorDisplacementField(TTransformBase *transform,
+                                                    const FixedArray<unsigned int, TTransformBase::InputSpaceDimension> &shrinkFactors,
+                                                    const TFixedImageType* fixedImage,
+                                                    unsigned int level  )
+{
+  Unused(level);
+  Unused(fixedImage);
+
+  typedef TFixedImageType FixedImageType;
+  const unsigned int Dimension = FixedImageType::ImageDimension;
+  typedef itk::DisplacementFieldTransform<double, Dimension> DisplacementFieldTransformType;
+  typedef typename DisplacementFieldTransformType::DisplacementFieldType DisplacementFieldType;
+
+  DisplacementFieldTransformType *displacementFieldTransform = dynamic_cast<DisplacementFieldTransformType*>(transform);
+  if (!displacementFieldTransform)
+    {
+    return SITK_NULLPTR;
+    }
+
+  DisplacementFieldType * displacementField = displacementFieldTransform->GetDisplacementField();
+
+  // We use the shrink image filter to calculate the fixed parameters of the virtual
+  // domain at each level.  To speed up calculation and avoid unnecessary memory
+  // usage, we could calculate these fixed parameters directly.
+
+  typedef itk::ShrinkImageFilter<DisplacementFieldType, DisplacementFieldType> ShrinkFilterType;
+  typename ShrinkFilterType::Pointer shrinkFilter = ShrinkFilterType::New();
+  shrinkFilter->SetShrinkFactors( shrinkFactors );
+  shrinkFilter->SetInput( displacementField );
+  shrinkFilter->UpdateOutputInformation();
+  typename DisplacementFieldType::Pointer shrinkOutput = shrinkFilter->GetOutput();
+
+  typedef DisplacementFieldTransformParametersAdaptor<DisplacementFieldTransformType> DisplacementFieldTransformAdaptorType;
+  typename DisplacementFieldTransformAdaptorType::Pointer fieldTransformAdaptor = DisplacementFieldTransformAdaptorType::New();
+  fieldTransformAdaptor->SetRequiredSpacing( shrinkOutput->GetSpacing() );
+  fieldTransformAdaptor->SetRequiredSize( shrinkOutput->GetLargestPossibleRegion().GetSize() );
+  fieldTransformAdaptor->SetRequiredDirection( shrinkOutput->GetDirection() );
+  fieldTransformAdaptor->SetRequiredOrigin( shrinkOutput->GetOrigin() );
+
+  return fieldTransformAdaptor.GetPointer();
+}
+
+template<typename TTransformAdaptorPointer, typename TRegistrationMethod >
+std::vector< TTransformAdaptorPointer >
+ImageRegistrationMethod::CreateTransformParametersAdaptor(TRegistrationMethod* method)
+{
+  typedef std::vector< TTransformAdaptorPointer >      TransformParametersAdaptorsContainerType;
+  typedef typename TRegistrationMethod::FixedImageType FixedImageType;
+
+  typedef typename TRegistrationMethod::InitialTransformType TransformType;
+
+  typedef typename TRegistrationMethod::TransformParametersAdaptorPointer TransformParametersAdaptorTypePointer;
+
+
+  TransformType *transform = const_cast<TransformType *>(method->GetInitialTransform());
+
+  TransformParametersAdaptorsContainerType adaptors;
+
+  const unsigned int numberOfLevels = method->GetNumberOfLevels();
+  const FixedImageType *fixedImage = method->GetFixedImage();
+
+  typedef itk::DisplacementFieldTransform<double, FixedImageType::ImageDimension> DisplacementFieldTransformType;
+  const bool isDisplacementField = (dynamic_cast<DisplacementFieldTransformType *>(transform) != SITK_NULLPTR);
+
+  for( unsigned int level = 0; level < numberOfLevels; ++level )
+    {
+    const typename TRegistrationMethod::ShrinkFactorsPerDimensionContainerType &shrinkFactors = method->GetShrinkFactorsPerDimension(level);
+    TransformParametersAdaptorTypePointer adaptor = SITK_NULLPTR;
+    if (isDisplacementField)
+      {
+      adaptor = CreateTransformParametersAdaptorDisplacementField( transform,
+                                                                   shrinkFactors,
+                                                                   fixedImage,
+                                                                   level );
+      }
+
+
+    adaptors.push_back( adaptor.GetPointer() );
+    }
+  return adaptors;
+}
+
+
+
+
+
+}
+}
+#endif // sitkImageRegistrationMethod_CreateParametersAdaptor_hxx
diff --git a/Documentation/CMakeLists.txt b/Documentation/CMakeLists.txt
new file mode 100644
index 0000000..52f311d
--- /dev/null
+++ b/Documentation/CMakeLists.txt
@@ -0,0 +1 @@
+add_subdirectory(Tutorials)
diff --git a/Documentation/Doxygen/CommandsAndEvents.dox b/Documentation/Doxygen/CommandsAndEvents.dox
new file mode 100644
index 0000000..987c6e9
--- /dev/null
+++ b/Documentation/Doxygen/CommandsAndEvents.dox
@@ -0,0 +1,65 @@
+namespace itk {
+namespace simple {
+/** \page CommandPage Commands and Events for SimpleITK
+
+SimpleITK has the ability to add commands or callbacks as observers of
+events that may occur during data processing. This feature can be used to add
+progress reporting to a console, to monitor the process of optimization,
+to abort a process, or to improve the integration of
+SimpleITK into Graphical User Interface event queues.
+
+\section Events
+
+Events are a simple enumerated type in SimpleITK, represented by
+the #EventEnum type. More information about each event type can be
+found in the documentation for the enum. All SimpleITK filters, including the reading
+and writing ones, are derived from the ProcessObject class which has
+support for events. SimpleITK utilizes the native ITK event system
+but has simpler events and methods to add an observer or commands. The goal
+is to provide a simpler interface more suitable for scripting
+languages.
+
+\section Commands
+
+The command design pattern is used to allow user code to be executed
+when an event occurs. It is encapsulated in the Command class. The
+Command class provides a virtual Execute method to be overridden in
+derived classes. Additionally, SimpleITK provides internal reference
+tracking between the ProcessObject and the Command. This reference tracking
+allows an object to be created on the stack or dynamically allocated, without
+additional burden when the object
+
+\subsection CommandDirector Command Directors for Wrapped Languages
+
+SimpleITK uses SWIG's director feature to enable wrapped languages to
+derive classes from the Command class.  Thus a user may  override the
+Command class's Execute method for custom call-backs. The following
+languages support deriving classes from the Command class:
+
+\subsubsection CommandPython
+\snippet  FilterProgressReporting.py python director command
+
+\subsubsection CommandCSharp
+\snippet  FilterProgressReporting.cs csharp director command
+
+\subsubsection CommandRuby
+\snippet  FilterProgressReporting.rb ruby director command
+
+
+\subsection CommandFunction Command Functions and Lambdas for Wrapped Languages
+
+Not all scripting languages are naturally object oriented, and it is
+often easier to simply define a callback inline with a lambda
+function. The following language supports inline function definitions
+for functions for the ProcessObject::AddCommand method:
+
+\subsubsection CommandFunctionPython
+\snippet FilterProgressReporting.py python lambda command
+
+\subsubsection CommandFunctionR
+\snippet FilterProgressReporting.R R lambda command
+
+
+*/
+}
+}
diff --git a/Documentation/Doxygen/Conventions.dox b/Documentation/Doxygen/Conventions.dox
new file mode 100644
index 0000000..34d390a
--- /dev/null
+++ b/Documentation/Doxygen/Conventions.dox
@@ -0,0 +1,78 @@
+namespace itk {
+namespace simple {
+/** \page ConventionsPage Common Conventions for SimpleITK
+
+This document contains common conventions that SimpleITK filters, and
+objects follow. It is intended to describe the interfaces that users
+should use and developers should implement. If a method or class does
+not specify different behavior or default values then those described
+here, it should be assumed that it follows the following conventions.
+
+\section DimensionVectors Dimensional Vectors
+
+Dimensional Vectors must contain at least the number of elements as
+the dimensions of the image, elements beyond the image's dimension will
+be truncated.
+
+The SimpleITK image class can contain 2 or 3 dimensional images. In
+ITK proper, certain types such as indexes, points, and sizes are
+templeted over the image dimensions. In SimpleITK we utilize the
+variable length std::vector for these types, so that non-templeted
+calls can wrap ITK's templeted image class. These types are called 
+Dimensional Vectors. If a dimensional vector's length is less that the
+dimension of the image, an exception will be generated when converted
+to the ITK type. If there are extra elements in the dimensional vector
+these values will be ignored.
+
+\section ImageAccess Image Access
+
+Image access is in x,y,z order, GetPixel(x,y,z) or image[x,y,z],
+with zero based indexing.
+
+\section MaskDefaults Mask Image Types and Default Values
+
+The default mask image type is a scalar image of sitkUInt8 or uint8_t
+pixels. The default values are 0 and 1, with 1s representing the mask.
+
+These defaults are for filter which create masks such as
+thresholding, and certain other segmentation filters. Additionally, these
+are the defaults for the binary morphology filters, so that they can
+easily be applied after segmentation. This choice makes many mask
+manipulations easier. For example, "masking" an image ( scalar or
+vector ) is simply a matter of multiplying by a mask an
+image. Additionally, the set of { 0, 1 } pixels is closed under the 
+logical Boolean operators.
+
+\section ProcedualParameters Order of Procedural Parameters
+
+The order of the procedural parameters should be with the most
+frequently modified parameters at the beginning of the parameter
+list. While the last parameter, may be ones that the user does not
+need to set or are infrequently used.
+
+\section MatricesAsParameters Matrices as Parameters
+
+Matrices are represented as a single dimensional vector with the entries
+in row major order. The vector \f$[1,2,3,4,5,6]\f$ represents the matrix
+\f[
+\left[\begin{array}{ccc} 1 & 2 & 3 \\ 4 & 5 & 6 \end{array}\right]
+\f]
+
+\section ImagesAsParameters Images As Parameters
+
+The dimensionality (2D or 3D) and pixel type (sitkUInt8, sitkFloat64...) of images is required to be the same
+for most methods that receive multiple images as input.
+
+The ImageRegistrationMethod only supports images with sitkFloat32 and sitkFloat64 pixel types.
+
+Casting an image's pixel type into another is done with the SimpleITK Cast() function.
+
+
+\section FollowITK Follow ITK Conventions
+
+If not explicitly stated otherwise, then filter parameters are the
+same default values as those in ITK proper.
+
+
+*/
+}}
diff --git a/Documentation/Doxygen/Developer.dox b/Documentation/Doxygen/Developer.dox
new file mode 100644
index 0000000..2a7fed8
--- /dev/null
+++ b/Documentation/Doxygen/Developer.dox
@@ -0,0 +1,228 @@
+namespace itk {
+namespace simple {
+/**
+\page DeveloperPage SimpleITK Developer Notes
+
+\section Procedures Procedures
+
+\subsection Contributions User Contributions
+
+Users can contribute patches through the gerrit code review system:
+<a href="http://review.source.kitware.com/#q,SimpleITK,n,z">http://review.source.kitware.com/#q,SimpleITK,n,z</a>
+
+General information about Gerrit can be found here:
+<a href="http://gerrit.googlecode.com/svn/documentation/2.2.1/user-upload.html">http://gerrit.googlecode.com/svn/documentation/2.2.1/user-upload.html</a>
+
+
+For those already familiar with git, gerrit, ITK and building SimpelITK, here is a quick overview of the process:
+
+The first thing which should be done before any code is commited locally is running the script to setup your local git repository for development.
+
+\code
+$ Utilities/SetupForDevelopment.sh
+\endcode
+
+This will guide you through the processes of adding several repositories and local configuration options.
+
+The following is an overview of how to add commits locally, and push the changes to gerrit:
+
+\code
+$ git checkout master
+$ git pull
+$ git checkout -b $MyTopic$
+hack and edit
+compile and test
+$ git add $MyHackedFiles$
+$ git commit
+$ git prepush
+$ git gerrit-push
+\endcode
+
+The goal of this workflow here is just have one or two commits in the
+topic, so that it will be easy to review. If longer topics are needed,
+that is OK to, but please try to reach out to the SimpleITK
+development community first. Please upload any new testing data as described
+below.
+
+If you are not too familiar with these tools, this aspect of submitting
+patch to gerrit is the same as for ITK development. So the overview of
+ITK development process may be a better starting point:
+<a href="https://www.itk.org/Wiki/ITK/Git/Develop">https://www.itk.org/Wiki/ITK/Git/Develop</a>
+
+\subsection Add Binary Data to a Commit
+
+Since every local Git repository contains a copy of the entire project history,
+it is important to avoid adding large binary files directly to the repository.
+Large binary files added and removed through the history of a project will cause
+the repository to become bloated, take up too much disk space, require excessive
+time and bandwidth to download, etc.
+
+The solution to this problem adopted by this project is to store binary files,
+such as images, in a separate location outside the repository, then download the
+files at build time with CMake.
+
+A <em>content link</em> file containing an identifying MD5 checksum is stored in the
+Git repository at the path where the file would exist with the <em>.md5</em> extension
+added to the file.  CMake will find these content link files at build time,
+download them from a list of server resources, and create symlinks or copies of
+the original files at the corresponding location in the build tree.
+
+The <a href="http://midas3.kitware.com/midas/">Midas server</a> is an ITK
+community resource where any community member can upload binary data files.
+This script automates the upload of data to the server and generation of the
+content link file.  Before using this script, please go to the Midas website,
+register, and join the ITK community.
+
+This script requires the Python module <a
+href="https://github.com/midasplatform/pydas">pydas</a>: which can be
+installed with:
+
+\code
+$ pip install pydas
+\endcode
+
+Please use the content link system for all new test images and other binary
+data.  An example:
+
+\code
+cd ~/src/SimpleITK
+cp /path/to/NewInput.png ./Testing/Input/
+python ./Utilities/UploadBinaryData.py ./Testing/Input/NewInput.png
+git add -- ./Testing/Input/NewInput.png.md5
+\endcode
+
+\subsection Dashboards Setup a Dashboard
+
+The SimpleITK Dashboard is a central location where systems report on
+continuous or nightly compilation and testing results. It is a
+invaluable tool in the extreme programing or agile development
+process. The <a
+href="http://www.cdash.org/CDash/index.php?project=simpleITK">SimpleITK
+dashboard</a> is now a standalone dashboard.
+
+The following is a brief overview on how to contribute a nightly
+build to SimpleITK. Additional relevant information can be found on
+the <a
+href="http://www.cmake.org/cmake/help/ctest-2-8-docs.html">CTest</a>
+documentation page along with simular information on how to setup a
+dashboard for <a
+href="http://www.vtk.org/Wiki/ITK_Policy_and_Procedure_for_Adding_Dashboards"
+>ITK</a>.
+
+SimpleITK uses CTest to run the nightly dashboards. There are 3 things
+which are needed to setup a nightly dashboard. The first is the common
+CTest scripts. Second, is a custom script to configure SimpleITK for
+your system, and third is the configuration of a system tool to run
+the CTest script each night.
+
+- The common script(s) are contained in the dashboards
+  branch. Essentially, this branch contains the
+  "simpleitk_common.cmake" file which will be included in the next
+  step. It can be retrieved as follows:
+\code
+$ mkdir -p ~/Dashboards/SimpleITKScripts
+$ cd ~/Dashboards/SimpleITKScripts
+$ git init
+$ git remote add -t dashboard origin git://itk.org/SimpleITK.git
+$ git pull origin
+\endcode
+
+- Next, we need to create a custom CTest script for our system. More
+  information on the varaible are describe in the header of
+  "simpleitk_common.cmake". Here is a sample which can be place in
+  "~/Dashboards/SimpleITKScripts/simpleitk_nightly.cmake":
+\code
+#
+# Maintainer: blowekamp at mail.nih.gov
+#
+
+# Set names
+set( CTEST_SITE "mini5.nlm" )
+set( CTEST_BUILD_NAME "MacOSX-SimpleITK-super-next" )
+
+#  Set how and where to build
+set( CTEST_BUILD_CONFIGURATION "Release" )
+set( CTEST_CMAKE_GENERATOR "Unix Makefiles" )
+set ( CTEST_DASHBOARD_ROOT "$ENV{PLAYPEN}/${CTEST_BUILD_NAME}" )
+
+set( dashboard_model Nightly )
+
+set ( dashboard_git_branch "next" )
+
+# Enable usage of multi-processors
+set ( CTEST_BUILD_FLAGS -j2 )
+set ( CTEST_TEST_ARGS PARALLEL_LEVEL 2 )
+
+
+# Set initial values for the CMakeCache
+set ( dashboard_cache "
+CMAKE_CXX_COMPILER:STRING=$ENV{HOME}/local/bin/ccache-c++
+CMAKE_CXX_FLAGS:STRING=-Wall
+CMAKE_C_COMPILER:STRING=$ENV{HOME}/local/bin/ccache-cc
+CMAKE_C_FLAGS:STRING=-Wall
+")
+
+# Include common ctest script
+include(${CTEST_SCRIPT_DIRECTORY}/simpleitk_common.cmake)
+\endcode
+
+- Lastly, the following needs to be executed each night:
+\code
+$ ctest -S ~/Dashboards/SimpleITKScripts/simpleitk_nightly.cmake
+\endcode
+
+Depending on your system the tool needed is different. For Unix and
+Mac OSX operating system it's the cron daemon, while on windows it is
+Schedualer. More information can be found on the general <a
+href="http://www.vtk.org/Wiki/CMake_Scripting_Of_CTest#Setting_Up_Cron.2FScheduler">CMake
+Scripting Of CTest</a> wiki page.
+
+
+\section TandT Tips and Tricks
+
+\subsection JSONTips Working with JSON file.
+
+SimpleITK uses a large number of JSON files as input for generated code. Adding support for your text editor to understand the syntax is advantageous.
+
+-Emacs
+
+The following can be added to your ".emacs" file.
+
+\verbatim
+; Add JSON files to automode list, use javascript mode
+(add-to-list 'auto-mode-alist '("\\.json\\'" . js-mode) )
+(add-hook 'js-mode-hook (function (lambda ()
+  (setq tab-width 2
+        c-basic-offset 2
+        show-trailing-whitespace 1) ) ) )
+\endverbatim
+
+\subsection CCacheTips Using ccache to accelerate re-compilation.
+
+SimpleITK has a complicated set of dependency that is handled the best
+it can be with CMake and the code generation tools
+implemented. However, when switching between branches and making
+changes to certain files, such as the "Expand" templates a large
+number of files will have to be re-compiled. Even though the generated
+code may not have changed, it's impossible for CMake or your make-file
+tool to determine this.
+
+Fortunately, there is a tool which can cache results of compilation and
+reduce recompilation. Using <a href="http://ccache.samba.org/">ccache</a>
+can greatly accelerate the development time when rebuilding
+SimpleITK frequently. Usage is quite simple, download and
+install. However, getting CMake to work with the compiler requires
+setting a few enviromental variables:
+
+\verbatim
+CXX=/usr/local/bin/ccache /usr/bin/g++-4.2
+CC=/usr/local/bin/ccache /usr/bin/gcc-4.2
+\endverbatim
+
+These variables need to be set bfore CMake is run, so that it will
+correctly detect the compiler and configure SimpleITK. Now enjoy the
+faster re-compilation times.
+
+
+*/
+}}
diff --git a/Documentation/Doxygen/FilterTemplates.dox b/Documentation/Doxygen/FilterTemplates.dox
new file mode 100644
index 0000000..8573fa1
--- /dev/null
+++ b/Documentation/Doxygen/FilterTemplates.dox
@@ -0,0 +1,418 @@
+namespace itk {
+namespace simple {
+/**
+\page FilterTemplatesPage Image Filter Templates ReadMe
+
+This ReadMe outlines the system used to generate SimpleITK files using json
+data files in conjunction with the template .h and .cxx files
+
+
+\section Overview Overview
+In order to create a uniform body of image filters, we use an automated code
+generation system to wrap existing ITK filters into SimpleITK filters. The
+development process consists of writing a JSON data file which specifies the
+information needed to fill in the fields of the template file. During
+compilation, all of the .json files are parsed using a lua template engine
+which fills in the apropriate template file from the provided fields. This
+ReadMe provides a detailed description of the fields that can be used in the
+json data files and what effect each field has on the resulting image filter.
+When writing your own json file, it should be saved in:
+
+$SimpleITK_SOURCE_DIR/Code/$FILTER_DIR/json
+
+Here $FILTER_DIR is the directory in which the code for the generated filter
+should live.  For simple filters this is the "BasicFilters" directory.
+
+\section FileStructure JSON File Structure
+JSON (JavaScript Object Notation) is a simple text formatting system used to
+specify data values. A full description of the specification can be found at
+http://www.json.org/. For the purposes of SimpleITK, a json file consists of
+a single data object (denoted by {}) which contains several string : value
+pairs (here value may be a list denoted by []) and sub-objects. Here is an
+example from LaplacianRecursiveGaussian:
+
+\verbatim
+{
+  "name" : "LaplacianRecursiveGaussian",
+  "template_code_filename" : "ImageFilter",
+  "template_test_filename" : "ImageFilter",
+  "doc" : "",
+  "pixel_types" : "BasicPixelIDTypeList",
+  "output_pixel_type" : "float",
+  "members" : [ {
+    "name" : "Sigma",
+    "type" : "double",
+    "default" : "1.0",
+    "doc" : "",
+    "briefdescriptionSet" : "",
+    "detaileddescriptionSet" : "Set Sigma value. Sigma is measured in the units of image spacing.\n"
+  }, {
+    "name" : "NormalizeAcrossScale",
+    "type" : "bool",
+    "default" : "0",
+    "doc" : "",
+    "briefdescriptionSet" : "",
+    "detaileddescriptionSet" : "Define which normalization factor will be used for the Gaussian\\see RecursiveGaussianImageFilter::SetNormalizeAcrossScale\n\n",
+    "briefdescriptionGet" : "",
+    "detaileddescriptionGet" : ""
+  } ],
+  "tests" : [ {
+    "tag" : "default",
+    "description" : "Simply run with default settings",
+    "inputA" : "Input/RA-Float.nrrd",
+    "settings" : [ ],
+    "tolerance" : 1.0E-4
+  } ],
+  "briefdescription" : "Computes the Laplacian of an image by convolution with the second derivative of a Gaussian.\n",
+  "detaileddescription" : "This filter is implemented using the recursive gaussian filters\n\n\\li {EdgesAndGradients/LaplacianRecursiveGaussianImageFilter,Compute the Laplacian of an image}\n\n"
+}
+\endverbatim
+
+In this example, we see that all pairs must use a string as the key, but may
+have any valid type as the value (string - "Abs", number - 1, list - [],
+object - {}).
+
+\section GlobalFields Fields For All Templates
+
+This section describes the minimal set of fields required to wrap an ITK filter
+into SimpleITK.
+
+\subsection TopLevelFields Top Level Fields
+
+- \b name: (\e string) This must be the name of the ITK filter with the
+"ImageFilter" suffix removed
+
+- \b templage_code_filename: (\e string) Which of the template files should be
+used to generate the filter. Choices are: "ImageFilter",
+"RegionGrowingImageFilter", "StructuringElementImageFilter",
+"LevelSetImageFilter", "MathematicalMorphologyImageFilter"
+
+- \b template_test_filename: (\e string) Which of the template files should be
+used to generate the test for this filter. Choices are: "ImageFilter",
+"RegionGrowingImageFilter"
+
+- \b number_of_inputs: (\e integer) How many input images are used for this
+filter. Currently, the template system only supports filters with 1 or 2 input
+images
+
+- \b briefdescription: (\e string) Brief description of the class
+  (Doxygen format).  This string is automatically generated by the
+  Utilities/BuildDocs and Utilities/GenerateDocumentation.groovy
+  scripts.  If no corresponding ITK class exists, this field will not
+  be modified.
+
+- \b detaileddescription: (\e string) More detailed description of the class
+  (Doxygen format).  This string is automatically generated by the
+  Utilities/BuildDocs and Utilities/GenerateDocumentation.groovy
+  scripts. If no corresponding ITK class exists, this field will not
+  be modified.
+
+- \b pixel_types: (\e string) Which of the pixel type lists should be supported
+for this filter. The type lists are defined in sitkPixelIDTypeLists.h
+
+- \b members: (\e list) This list specifies all member variables that should be
+accessible to the user with a Get/Set mechanism and should be part of the
+Execute signature for the filter. Each entry in the list must be an object
+
+- \b tests: (\e list) This list specifies all automatic tests that should be
+generated for the filter. Each entry in the list must be an object. If no tests
+are specified, a test will be generated that fails with the message that a test
+must be written for the filter
+
+- [OPTIONAL] \b include_files: (\e list) This list of strings specifies
+additional header files to include in the cxx file for this filter.
+
+- [OPTIONAL] \b custom_set_intput: (\e string)  Code which is used to
+  set input or multiple inputs to the filter. This overides the
+  standard setting of the inputs.
+
+- [OPTIONAL] \b output_pixel_type: (\e string) String representing the specific
+pixel type to use for the output image of the filter.
+
+- [OPTIONAL] \b filter_type: (\e string) Explicitly sets the
+  FilterType used. This method overides
+  additional_template_types. Useful typedefs are InputImageType, and
+  OutputImageType.
+
+- [OPTIONAL] \b public_declarations: (\e string) Any c++ code written in this
+field will be placed into the public section of the filter's header file
+
+- [OPTIONAL] \b additional_template_types: (\e list) The standard ITK image
+filter template signature is:
+
+\verbatim
+<InputImageType, (if 2 inputs)InputImageType, OutputImageType)>
+\endverbatim
+
+Some filters require additional template types between the list of input image
+types and the output image type such as the input type of a constant. This list
+allows these additional parameters to be added so that the template signature
+looks like:
+
+\verbatim
+<InputImageType, (if 2 inputs)InputImageType, (ADDITIONAL TYPES), OutputImageType)>
+\endverbatim
+
+Each type in the list is specified by an object with a only a \b type field
+which is a string specifying the type to be used.
+
+- [OPTIONAL] \b custom_methods: (\e list) This is a list of objects specifying
+custom methods that should be added to the filter. The fields required for a
+custom method are:
+  - \b doc: (\e string) Documentation for this custom method
+  - \b name: (\e string) The name of the method
+  - \b return_type: (\e string) the return type of the method
+  - [OPTIONAL] \b parameters: (\e list) A list of of parameters for the method.
+  Each method is specified by an object with the following fields:
+    - \b type: (\e string) The parameter's type
+    - \b var_name: (\e string) The name of the variable to be used in the \b body
+    field for the custom method
+
+  - \b body: (\e string) This string is the body of the method and will be
+  placed directly into the header file. The parameter names specified with
+  \b var_name in each of the parameter obects can be used in this body
+
+A sample custom method might look like:
+
+\verbatim
+{ "name" : "Foo",
+  "doc" : "This method checks if a string is equal to Foo"
+  "return_type" : "bool",
+  "parameters" : [
+    { "type" : "std::string",
+      "var_name" : "inString"
+    }
+  ],
+  "body" : "if (!strcmp(inString.c_str(), "Foo")) { return true; } else { return false; }"
+}
+\endverbatim
+
+This will translate to a custom method that looks like:
+
+\verbatim
+  /**
+   * This method checks if a string is equal to Foo
+   */
+  bool Foo( std::string inString )
+    {
+    if (!strcmp(inString.c_str(), "Foo")) { return true; } else { return false; }
+    }
+\endverbatim
+
+
+
+\subsection MemberFileds Member Fields
+A basic member object looks like:
+
+\verbatim
+{
+  "name" : "Sigma",
+  "type" : "double",
+  "default" : 1.0,
+  "briefdescriptionSet" : "",
+  "detaileddescriptionSet" : "Define which normalization factor will be used for the Gaussian\\see RecursiveGaussianImageFilter::SetNormalizeAcrossScale\n\n",
+  "briefdescriptionGet" : "",
+  "detaileddescriptionGet" : ""
+ }
+\endverbatim
+
+- \b name: (\e string) The name of the member variable. A variable named "Var"
+will be accessible with the methods "GetVar" and "SetVar"
+
+- \b type: (\e string) The c++ type for this member. If using a type contained
+in a certain namespace (itk::simple for example), this must be included in the
+type description. If the member variable is of type bool, the
+additional ${name}On, and ${name}Off member functions are added.
+
+- \b default: (\e string or \e number) The default value for this member. This
+can be a number for numerical types or a string specifying the constructor for
+non-basic types (std::vector< unsigned int >() for example)
+
+- \b briefdescriptionSet/briefdescriptionGet: (\e string) Brief
+  Doxygen documentation for this individual parameter.  The two forms
+  (Set/Get) are used for the SetMember and GetMember functions.  This
+  field is automatically generated from ITK's Doxgen for members that
+  mirror ITK's members. If the member if a custom,
+  this field will not be modified.
+
+- \b detaileddescriptionSet/detaileddescriptionGet: (\e string)
+  Detailed Doxygen documentation for this individual parameter.  The
+  two forms (Set/Get) are used for the SetMember and GetMember
+  functions. This field is automatically generated from ITK's Doxgen
+  for members that mirror ITK's members.  If the member if a custom,
+  this field will not be modified.
+
+- [OPTIONAL] \b no_set_method: (0 or 1) If set to 1, the filter will not have a
+Set method for this member
+
+- [OPTIONAL] \b no_get_method: (0 or 1) If set to 1, the filter will not have a
+Get method for this member
+
+- [OPTIONAL] \b no_print: (0 or 1) If set to 1, this member will not be printed
+in the ToString method
+
+- [OPTIONAL] \b dim_vec: (0 or 1) If set to 1, this indicates that the member
+is a std::vector with size equal to the dimension of the input image. As such,
+it will be printed out correctly and cast to its corresponding ITK type
+correctly
+
+- [OPTIONAL] \b set_as_scalar: (0 or 1) If parameter is a dim_vec,
+  then this method adds an additional set member method to set the
+  variable as a scalar so that all components are the same
+
+
+- [OPTIONAL] \b enum: [ "enum1", "enum2", ... ] Creates a member type
+  of the class with the array of strings with a type defined by the
+  name of this parameter. This field makes the "type" parameter
+  optional. It is recommended to add a test to ensure the SimpleITK
+  values correspond to the ITK values.
+
+- [OPTIONAL] \b custom_itk_cast: (\e string) Some non-basic types will require
+a custom cast before the corresponding ITK filter's member can be set. This
+field allows the developer to specify exactly how the ITK filter sets the
+member's value from the SimpleITK member's value for example:
+
+\verbatim
+"custom_itk_cast" :
+  "filter->SetObjectValue(static_cast<typename FilterType::PixelType>(this->GetObjectValue()) );"
+\endverbatim
+
+
+\subsection TestFields Test Fields
+A basic test object looks like:
+
+\verbatim
+{
+  "tag" : "float",
+  "description" : "Dilate a float image",
+  "inputA" : "Input/RA-Slice-Float.nrrd",
+  "tolerance" : 0.01,
+  "settings" : []
+}
+\endverbatim
+
+There are three ways of checking the resulting image: against a baseline image,
+a sha1 hash, or an md5 hash. At least one of these options must be used for
+each test.
+
+- \b tag: (\e string) The tag to identify this specific test for the filter
+
+- \b descriptoin: (\e string) Documentation to describe this specific test
+
+- \b inputA: (\e string) The path from the SOURCE_DIR/Testing/Data directory
+for the (first) input image
+
+- \b inputA_cast: (\e string) an sitkPixelIDEnum, after inputA is read the CastImageFilter is run, to covert the image type.
+
+- [OPTIONAL] \b inputB: (\e string) If \b number_of_inputs is 2, this specifies
+the path from SOURCE_DIR/Testing/Data to the second input image
+
+- [OPTIONAL] \b tolerance: (\e float) An error tolerance fo be used when
+comparing the resulting image to the baseline. This is used to specify that the
+result should be checked against a baseline image
+
+- [OPTIONAL] \b md5hash: (\e string) An md5 hash value to compare the resulting
+image against.
+
+- [OPTIONAL] \b sha1hash: (\e string) A sha1 hash value to compare the resulting
+image against.
+
+- [OPTIONAL] \b settings: (\e list) A list of any specific parameters values
+for this test. Each entry is an object of the form:
+
+\verbatim
+{ "parameter" : "Sigma",
+  "value" : 1.0
+}
+\endverbatim
+
+- \b Settings \b Options:
+  - \b parameter: (\e string) The name of the parameter. This must match the
+  name used when creating the filter
+  - \b value: (\e string or \e number) The value to assign to the parameter.
+  This can be a number for numerical types or a string representing the
+  constructor for more complex types
+  - [OPTIONAL] \b python_value: (\e string) For types that require a different
+  syntax for setting the value in python, this will override the string in
+  \b value
+  - [OPTIONAL] \b lua_value: (\e string) For types that require a different
+  syntax for setting the value in lua, this will override the string in
+  \b value
+  - [OPTIONAL] \b ruby_value: (\e string) For types that require a different
+  syntax for setting the value in ruby, this will override the string in
+  \b value
+  - [OPTIONAL] \b java_value: (\e string) For types that require a different
+  syntax for setting the value in java, this will override the string in
+  \b value
+  - [OPTIONAL] \b tcl_value: (\e string) For types that require a different
+  syntax for setting the value in tcl, this will override the string in
+  \b value
+  - [OPTIONAL] \b R_value: (\e string) For types that require a different
+  syntax for setting the value in R, this will override the string in
+  \b value
+  - [OPTIONAL] \b dim_vec: (0 or 1): Use this flag if this parameter is a
+  std::vector. If set to 1, the \b type option must also be set
+  - [OPTIONAL] \b no_get_method: (0 or 1). Set to 1 when the filter
+  does not have a get method, so that this method will not be tested.
+  - [OPTIONAL] \b type: (\e string): What type the vector should be. Due to
+  constraints with java, this should only be a primitive type. For unsigned
+  types, the java test will convert to the signed equivalent. An example for a
+  dim_vec parameter is:
+
+\verbatim
+{ "parameter" : "Size",
+  "dim_vec" : 1,
+  "type" : "unsigned int"
+  "value" : "{1,2}",
+  "java_value" : "{1,2}",
+  "tcl_value" : "[list 1 2]",
+  "python_value" : "[1,2]",
+  "lua_value" : "{1,2}",
+  "ruby_value" : "[1,2]"
+}
+\endverbatim
+
+\section Structure Directory Structure
+The code generation system is designed to be agnostic of what subdirectory is
+being parsed. An example of this is BasicFilters.  Here will just refer to
+$FILTER_DIR
+
+There are four important subdirectores in
+$SimpleITK_SOURCE_DIR/Code/$FILTER_DIR:
+
+  - \b include: Manually written header files
+  - \b src: Manually written c++ files
+  - \b json: The input json files used to generate new filters at build time
+  - \b templates: The code templates that can be used to generate filters for
+  this directory
+
+When a filter is generated, it produces a .h and a .cxx file that are placed
+in $SimpleITK_BUILD_DIR/Code/$FILTER_DIR/include and
+$SimpleITK_BUILD_DIR/Code/$FILTER_DIR/src respectively.
+
+It is also worth noting that the template files in the \b templates directory
+are comprised of a combination of c++ code, lua template expansion directives,
+and $(include xxx) statements.  These include statements each pull in a section
+of template code from a file in $SimpleITK_SOURCE_DIR/ExpandTemplateGenerator/Components. These
+component files represent pieces of templates that are shared by multiple
+unique filter template types.
+
+
+\section Templates Specialized Templates
+The standard template is ImageFilter. This section describes the differences
+for each of the other template types.
+
+- <b>Region Growing Image Filters:</b> The region growing filters support an
+additional set of methods for manipulating the seed list. Each region growing
+filter has the SetSeed, AddSeed, and ClearSeeds methods. See
+sitkConnectedThresholdImageFilter.h for details.
+
+- <b>Kernel Image Filters:</b> The kernel image filters use
+a KernelType and have an external enum which allows the user to select which
+kernel to use. See sitkErodeObjectMorphologyImageFilter.h for details.
+
+- <b> Dual Image Filter:</b> The dual image filter template's usage
+should be avoided because it instantiates the combination of two pixel
+type lists.
+*/
+}}
diff --git a/Documentation/Doxygen/GitPhilosopy.dox b/Documentation/Doxygen/GitPhilosopy.dox
new file mode 100644
index 0000000..ee3355c
--- /dev/null
+++ b/Documentation/Doxygen/GitPhilosopy.dox
@@ -0,0 +1,62 @@
+namespace itk {
+namespace simple {
+/**
+\page GitPage Git philosophy
+This document records the standard operating procedure and philosopy
+of SimpleITK's use of Git.
+
+\section TopicBranch The life of a topic branch
+
+In order to properly manage this workflow, we need to be very careful
+about always basing our branches off of master and tracking the
+dependencies of each branch.  The steps needed to do this are:
+
+-# base new topics off of the most up to date master
+-# merge to next
+-# if there is a conflict when merging to next, abort the merge, find the branch that causes the conflict, and merge it into your branch, resolving conflicts here
+-# merge to next only when there are no conflicts left
+
+ Here are the details:
+\code
+ $ git checkout master
+ $ git pull (just to make sure master is up to date)
+ $ git checkout -b BRANCHNAME (we should also standardize our branch names)
+ ... do work and make commits on BRANCHNAME ...
+ $ git stage-push
+ $ git stage-merge
+\endcode
+Here's where the tricky part is.  If you get conflicts here, that
+means that there's some branch that's been merged to next which
+conflicts with your changes and isn't in master.  Instead of just
+resolving this conflict while merging BRANCH_NAME, you should
+introduce a dependency with the conflicting branch.  To do this you
+need to find the branch that conflicts and merge it with your own
+(resolving the conflict here instead).
+
+The stage should produce a message to aid in the process of resolving
+the failed merge.
+
+\section Discussion A philosophical discussion
+
+ Ok, that was a lot of git jargon and was probably more than you
+ wanted to know.  The question now is whether it's all worth it.  This
+ workflow is really nice because it keeps topics in nice, logically
+ isolated, branches where dependencies between topics only exist when
+ necessary.  That being said, who cares?
+
+ The main advantage here is a clean history and a nicely stable branch
+ that stays up to date with all finished work (rather than needing to
+ prep releases at regular intervals).  Since SimpleITK is under heavy
+ development, we aren't trying to provide any guarantees to anyone
+ about a stable master branch and since most of us are only working
+ part time on this project, using this workflow might just be too much
+ overhead (especially if we're going to switch to using Gerrit soon
+ anyway).
+
+ The alternative would be to just go back to a single "wild west"
+ style integration branch.  This would offer the advantage of lowering
+ the git bar significantly, but it would also mean that we would lose
+ our designated QA space (the role that next currently plays).
+ Thoughts?  Competing theories?
+*/
+}}
diff --git a/Documentation/Doxygen/MainPage.dox b/Documentation/Doxygen/MainPage.dox
new file mode 100644
index 0000000..d229b3d
--- /dev/null
+++ b/Documentation/Doxygen/MainPage.dox
@@ -0,0 +1,43 @@
+/**
+\mainpage  SimpleITK
+
+\image html simpleitk_logo.png
+
+\section intro Introduction
+SimpleITK: a simplified layer build on top of the Insight Toolkit
+(ITK), intended to facilitate its use in rapid prototyping,
+education and interpreted languages. 
+
+Welcome to the National Library of Medicine Insight Segmentation
+and Registration Toolkit (ITK). ITK is an open-source,
+cross-platform system that provides developers with an extensive
+suite of software tools for image analysis. Among them, SimpleITK
+is a simplified layer built on top of ITK, intended to facilitate
+its use in rapid prototyping, education, interpreted
+languages. SimpleITK has the following main characteristics: 
+- C++ library
+- Object-oriented
+- Provides a simplified, easy-to-use, procedural interface without templates
+- Is distributed under an open source Apache 2.0 License
+- Binary distributions for Python and Java
+
+\section homepage Home Page
+
+The Home Page of the SimpleITK can be found at :
+
+http://www.simpleitk.org
+
+The Home Page of the Insight toolkit can be found at :
+
+https://www.itk.org
+
+\section howto How to use this documentation
+
+This documentation describes the C++ API of the SimpleITK interface
+to the Insight Toolkit. The wrapped languages have a very simular
+interface, that should should only be trivially different.  The
+Related Pages link presents interface conventions, user and
+developer information. Additionally the Example tab provides a
+variety of example of SimpleITK with different language bindings.
+ */
+
diff --git a/Documentation/Doxygen/PythonDownloads.dox b/Documentation/Doxygen/PythonDownloads.dox
new file mode 100644
index 0000000..3d92451
--- /dev/null
+++ b/Documentation/Doxygen/PythonDownloads.dox
@@ -0,0 +1,212 @@
+/**
+\page PyDownloadPage Python Downloads
+
+This page contains a list of all python packages of SimpleITK.
+
+It is also referenced from Python package index Pypi to facilitate automatic download. If you have a supported system supported for a binary installation the installation can be as easy as:
+
+\code
+$ pip install -f https://itk.org/SimpleITKDoxygen/html/PyDownloadPage.html SimpleITK
+\endcode
+
+\section v0100 SimpleITK 0.10.0
+        \li <a href="http://sourceforge.net/projects/simpleitk/files/SimpleITK/0.10.0/Python/SimpleITK-0.10.0-1-cp27-cp27m-manylinux1_i686.whl#md5=51f95d97b2d85e61373023f4f756a9ee">SimpleITK-0.10.0-1-cp27-cp27m-manylinux1_i686.whl (hosted at SourceForge)</a>
+        \li <a href="http://sourceforge.net/projects/simpleitk/files/SimpleITK/0.10.0/Python/SimpleITK-0.10.0-1-cp27-cp27m-manylinux1_x86_64.whl#md5=257b58619a6eff0c71837930c4b1937f">SimpleITK-0.10.0-1-cp27-cp27m-manylinux1_x86_64.whl (hosted at SourceForge)</a>
+        \li <a href="http://sourceforge.net/projects/simpleitk/files/SimpleITK/0.10.0/Python/SimpleITK-0.10.0-1-cp27-cp27mu-manylinux1_i686.whl#md5=bb7f4523085e26e1c24381ad892e8604">SimpleITK-0.10.0-1-cp27-cp27mu-manylinux1_i686.whl (hosted at SourceForge)</a>
+        \li <a href="http://sourceforge.net/projects/simpleitk/files/SimpleITK/0.10.0/Python/SimpleITK-0.10.0-1-cp27-cp27mu-manylinux1_x86_64.whl#md5=de8836335f5ac993031a9d88d4a6b098">SimpleITK-0.10.0-1-cp27-cp27mu-manylinux1_x86_64.whl (hosted at SourceForge)</a>
+        \li <a href="http://sourceforge.net/projects/simpleitk/files/SimpleITK/0.10.0/Python/SimpleITK-0.10.0-1-cp33-cp33m-manylinux1_i686.whl#md5=b11f763cbf69ac5a96f66aea27d76ac8">SimpleITK-0.10.0-1-cp33-cp33m-manylinux1_i686.whl (hosted at SourceForge)</a>
+        \li <a href="http://sourceforge.net/projects/simpleitk/files/SimpleITK/0.10.0/Python/SimpleITK-0.10.0-1-cp33-cp33m-manylinux1_x86_64.whl#md5=ae6d6d528e2e9531909496f551653974">SimpleITK-0.10.0-1-cp33-cp33m-manylinux1_x86_64.whl (hosted at SourceForge)</a>
+        \li <a href="http://sourceforge.net/projects/simpleitk/files/SimpleITK/0.10.0/Python/SimpleITK-0.10.0-1-cp34-cp34m-manylinux1_i686.whl#md5=703c660abe43421a16a189e67c89c0e6">SimpleITK-0.10.0-1-cp34-cp34m-manylinux1_i686.whl (hosted at SourceForge)</a>
+        \li <a href="http://sourceforge.net/projects/simpleitk/files/SimpleITK/0.10.0/Python/SimpleITK-0.10.0-1-cp34-cp34m-manylinux1_x86_64.whl#md5=69dd7324959f26af935c44900a506507">SimpleITK-0.10.0-1-cp34-cp34m-manylinux1_x86_64.whl (hosted at SourceForge)</a>
+        \li <a href="http://sourceforge.net/projects/simpleitk/files/SimpleITK/0.10.0/Python/SimpleITK-0.10.0-1-cp35-cp35m-manylinux1_i686.whl#md5=4e78051b0df5f4378bf0d64e06978feb">SimpleITK-0.10.0-1-cp35-cp35m-manylinux1_i686.whl (hosted at SourceForge)</a>
+        \li <a href="http://sourceforge.net/projects/simpleitk/files/SimpleITK/0.10.0/Python/SimpleITK-0.10.0-1-cp35-cp35m-manylinux1_x86_64.whl#md5=2aabd7a7465a6026b57f784bb444bcb5">SimpleITK-0.10.0-1-cp35-cp35m-manylinux1_x86_64.whl (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.10.0/Python/SimpleITK-0.10.0-cp27-cp27m-macosx_10_6_intel.whl#md5=804644b17dcc46249d07f2eb1e0bd23c">SimpleITK-0.10.0-cp27-cp27m-macosx_10_6_intel.whl (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.10.0/Python/SimpleITK-0.10.0-cp34-cp34m-win32.whl#md5=fe5d67e3387955f3367aa530bce81db4">SimpleITK-0.10.0-cp34-cp34m-win32.whl (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.10.0/Python/SimpleITK-0.10.0-cp34-cp34m-win_amd64.whl#md5=531ff006b15dfff11fec21cbd70e151d">SimpleITK-0.10.0-cp34-cp34m-win_amd64.whl (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.10.0/Python/SimpleITK-0.10.0-cp35-cp35m-win32.whl#md5=547200d3b09178e0c6e4b89342b3045c">SimpleITK-0.10.0-cp35-cp35m-win32.whl (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.10.0/Python/SimpleITK-0.10.0-cp35-cp35m-win_amd64.whl#md5=964875301b687edf3d60954a68dd201b">SimpleITK-0.10.0-cp35-cp35m-win_amd64.whl (hosted at SourceForge)</a>
+
+
+\section v091 SimpleITK 0.9.1
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.1/Python/SimpleITK-0.9.1-py2.6-linux-i686.egg#md5=dd8eb20108c487cec85b3b560e4cf1ad">SimpleITK-0.9.1-py2.6-linux-i686.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.1/Python/SimpleITK-0.9.1-py2.6-linux-x86_64.egg#md5=c8d69ab2fb8eaa288db2cf1f5419acbf">SimpleITK-0.9.1-py2.6-linux-x86_64.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.1/Python/SimpleITK-0.9.1-py2.6-macosx-10.6-universal.egg#md5=70ac16d6fefb359196f5fa3d5cbd0858">SimpleITK-0.9.1-py2.6-macosx-10.6-universal.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.1/Python/SimpleITK-0.9.1-py2.7-linux-i686.egg#md5=1fc08390054f8ab118647f8857764d52">SimpleITK-0.9.1-py2.7-linux-i686.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.1/Python/SimpleITK-0.9.1-py2.7-linux-x86_64.egg#md5=a3268eae6f1a185e43dd66df8bfeae3b">SimpleITK-0.9.1-py2.7-linux-x86_64.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.1/Python/SimpleITK-0.9.1-py2.7-macosx-10.6-intel.egg#md5=95353e0009d9b4b2b9a625732130bd70">SimpleITK-0.9.1-py2.7-macosx-10.6-intel.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.1/Python/SimpleITK-0.9.1-py2.7-win32.egg#md5=4ed8450b4a8991ebc7560b1382b8623c">SimpleITK-0.9.1-py2.7-win32.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.1/Python/SimpleITK-0.9.1-py2.7-win-amd64.egg#md5=b2b0b411d08697036f6aa65690c85e29">SimpleITK-0.9.1-py2.7-win-amd64.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.1/Python/SimpleITK-0.9.1-py3.3-linux-i686.egg#md5=09184fc977e6c58d1b435af994184897">SimpleITK-0.9.1-py3.3-linux-i686.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.1/Python/SimpleITK-0.9.1-py3.3-linux-x86_64.egg#md5=e4f53c46db99894e1381c5ab8ce5c9d8">SimpleITK-0.9.1-py3.3-linux-x86_64.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.1/Python/SimpleITK-0.9.1-py3.3-win32.egg#md5=083629dd2f79406eb41aacbd05047800">SimpleITK-0.9.1-py3.3-win32.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.1/Python/SimpleITK-0.9.1-py3.3-win-amd64.egg#md5=39eaa15e7692ef9bbbee2618e7769503">SimpleITK-0.9.1-py3.3-win-amd64.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.1/Python/SimpleITK-0.9.1-py3.4-linux-i686.egg#md5=857a38574e9d618f45db588f73410498">SimpleITK-0.9.1-py3.4-linux-i686.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.1/Python/SimpleITK-0.9.1-py3.4-linux-x86_64.egg#md5=1980688373ca132abd4cc84ec5118a5d">SimpleITK-0.9.1-py3.4-linux-x86_64.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.1/Python/SimpleITK-0.9.1-py3.4-win32.egg#md5=869b641b0259124fbc6282a644b2a28e">SimpleITK-0.9.1-py3.4-win32.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.1/Python/SimpleITK-0.9.1-py3.4-win-amd64.egg#md5=fee82ff20eb90904f69e742c4eaedc84">SimpleITK-0.9.1-py3.4-win-amd64.egg (hosted at SourceForge)</a>
+
+\section v090 SimpleITK 0.9.0
+
+        \li <a  href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.0/Python/SimpleITK-0.9.0-py2.6-linux-i686.egg#md5=2afc6f6b93aa7642f9611b1ac2390ba5">SimpleITK-0.9.0-py2.6-linux-i686.egg (hosted at SourceForge)</a>
+        \li <a  href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.0/Python/SimpleITK-0.9.0-py2.6-linux-x86_64.egg#md5=b153b85fdbf0c51ed5d6bf8a0bf85b2e">SimpleITK-0.9.0-py2.6-linux-x86_64.egg (hosted at SourceForge)</a>
+        \li <a  href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.0/Python/SimpleITK-0.9.0-py2.6-macosx-10.6-universal.egg#md5=6198729e8e5b12ae55badb921a5441c2">SimpleITK-0.9.0-py2.6-macosx-10.6-universal.egg (hosted at SourceForge)</a>
+        \li <a  href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.0/Python/SimpleITK-0.9.0-py2.7-linux-i686.egg#md5=1f7adfaf6270066da35c99b4ff19e165">SimpleITK-0.9.0-py2.7-linux-i686.egg (hosted at SourceForge)</a>
+        \li <a  href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.0/Python/SimpleITK-0.9.0-py2.7-linux-x86_64.egg#md5=fc5980f05526d1d55ce117039f3d3199">SimpleITK-0.9.0-py2.7-linux-x86_64.egg (hosted at SourceForge)</a>
+        \li <a  href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.0/Python/SimpleITK-0.9.0-py2.7-macosx-10.6-intel.egg#md5=33213c6e7c518134f60b37ac26738309">SimpleITK-0.9.0-py2.7-macosx-10.6-intel.egg (hosted at SourceForge)</a>
+        \li <a  href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.0/Python/SimpleITK-0.9.0-py2.7-win32.egg#md5=d6e14b4d768867d1f5681c8413bc5e62">SimpleITK-0.9.0-py2.7-win32.egg (hosted at SourceForge)</a>
+        \li <a  href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.0/Python/SimpleITK-0.9.0-py2.7-win-amd64.egg#md5=f0f02a006e418ff9ac0db56bf70d245c">SimpleITK-0.9.0-py2.7-win-amd64.egg (hosted at SourceForge)</a>
+        \li <a  href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.0/Python/SimpleITK-0.9.0-py3.3-linux-i686.egg#md5=59f57da72eab7568c94d9df28dc17dec">SimpleITK-0.9.0-py3.3-linux-i686.egg (hosted at SourceForge)</a>
+        \li <a  href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.0/Python/SimpleITK-0.9.0-py3.3-linux-x86_64.egg#md5=2b71eb399e07aa6f5f7158a771b30c37">SimpleITK-0.9.0-py3.3-linux-x86_64.egg (hosted at SourceForge)</a>
+        \li <a  href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.0/Python/SimpleITK-0.9.0-py3.3-win32.egg#md5=b570b7c7951c1f8fd2d95dfde0c09920">SimpleITK-0.9.0-py3.3-win32.egg (hosted at SourceForge)</a>
+        \li <a  href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.0/Python/SimpleITK-0.9.0-py3.3-win-amd64.egg#md5=10b3c9086f070b1e46c7e81a952e55b1">SimpleITK-0.9.0-py3.3-win-amd64.egg (hosted at SourceForge)</a>
+        \li <a  href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.0/Python/SimpleITK-0.9.0-py3.4-linux-i686.egg#md5=d0cbf53e0628a7b025c3d8bd9db5a3ac">SimpleITK-0.9.0-py3.4-linux-i686.egg (hosted at SourceForge)</a>
+        \li <a  href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.0/Python/SimpleITK-0.9.0-py3.4-linux-x86_64.egg#md5=1e2e8090ece72cab31260c67b2504b41">SimpleITK-0.9.0-py3.4-linux-x86_64.egg (hosted at SourceForge)</a>
+        \li <a  href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.0/Python/SimpleITK-0.9.0-py3.4-win32.egg#md5=67d11bb02938657d3d3b7dd0a3d89a32">SimpleITK-0.9.0-py3.4-win32.egg (hosted at SourceForge)</a>
+        \li <a  href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.9.0/Python/SimpleITK-0.9.0-py3.4-win-amd64.egg#md5=58b88f2e9ceb947e0a95acb515b987be">SimpleITK-0.9.0-py3.4-win-amd64.egg (hosted at SourceForge)</a>
+
+\section v081 SimpleITK 0.8.1
+
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.1/Python/SimpleITK-0.8.1-py2.6-linux-i686.egg#md5=2937c89e971e789bf29799583cd3643f">SimpleITK-0.8.1-py2.6-linux-i686.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.1/Python/SimpleITK-0.8.1-py2.6-linux-x86_64.egg#md5=4e853f14f0cd401e507980f07f1d3abd">SimpleITK-0.8.1-py2.6-linux-x86_64.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.1/Python/SimpleITK-0.8.1-py2.6-macosx-10.6-universal.egg#md5=1749d0a18b1a1b06343de979b0af14c2">SimpleITK-0.8.1-py2.6-macosx-10.6-universal.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.1/Python/SimpleITK-0.8.1-py2.7-linux-i686.egg#md5=17ef1a4dce06319b1b864bf4ab36e1ea">SimpleITK-0.8.1-py2.7-linux-i686.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.1/Python/SimpleITK-0.8.1-py2.7-linux-x86_64.egg#md5=e7e02c519c7192d9d42ea531290096d9">SimpleITK-0.8.1-py2.7-linux-x86_64.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.1/Python/SimpleITK-0.8.1-py2.7-macosx-10.6-intel.egg#md5=ce0709078f606e168f6f105f7643a73a">SimpleITK-0.8.1-py2.7-macosx-10.6-intel.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.1/Python/SimpleITK-0.8.1-py2.7-win32.egg#md5=3e45fc466110416441bbce139ef190b0">SimpleITK-0.8.1-py2.7-win32.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.1/Python/SimpleITK-0.8.1-py2.7-win-amd64.egg#md5=ffc5dd5017d9d91fc678e9ba16ad6719">SimpleITK-0.8.1-py2.7-win-amd64.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.1/Python/SimpleITK-0.8.1-py3.3-linux-i686.egg#md5=8ea06c3e3471b0fbc98b34a3a3edfd6e">SimpleITK-0.8.1-py3.3-linux-i686.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.1/Python/SimpleITK-0.8.1-py3.3-linux-x86_64.egg#md5=461c46fd3f67fbfb23b5b0abb2979ffe">SimpleITK-0.8.1-py3.3-linux-x86_64.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.1/Python/SimpleITK-0.8.1-py3.3-win32.egg#md5=2a47d86acd8e62f84ae1b74b9105a131">SimpleITK-0.8.1-py3.3-win32.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.1/Python/SimpleITK-0.8.1-py3.3-win-amd64.egg#md5=16534c2c2525a4769549b78781fca717">SimpleITK-0.8.1-py3.3-win-amd64.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.1/Python/SimpleITK-0.8.1-py3.4-linux-i686.egg#md5=7d603253b0b70d78274b6d98ff1b02d3">SimpleITK-0.8.1-py3.4-linux-i686.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.1/Python/SimpleITK-0.8.1-py3.4-linux-x86_64.egg#md5=02407d47f8c76e44a8e7bc5424f7618c">SimpleITK-0.8.1-py3.4-linux-x86_64.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.1/Python/SimpleITK-0.8.1-py3.4-win32.egg#md5=e40728c2894f10b6504fe085950e1d86">SimpleITK-0.8.1-py3.4-win32.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.1/Python/SimpleITK-0.8.1-py3.4-win-amd64.egg#md5=a86df116c92296e882694a7587ac7e08">SimpleITK-0.8.1-py3.4-win-amd64.egg (hosted at SourceForge)</a>
+
+\section v080 SimpleITK 0.8.0
+
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.0/Python/SimpleITK-0.8.0-py2.6-linux-i686.egg#md5=febef693c88439d2b2e83ad83eaa3e16">SimpleITK-0.8.0-py2.6-linux-i686.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.0/Python/SimpleITK-0.8.0-py2.6-linux-x86_64.egg#md5=c0d5cd5ed3c6f5ad2209209fe2ca8f30">SimpleITK-0.8.0-py2.6-linux-x86_64.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.0/Python/SimpleITK-0.8.0-py2.6-macosx-10.6-universal.egg#md5=07b81fbc212057b138853ca6144211ee">SimpleITK-0.8.0-py2.6-macosx-10.6-universal.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.0/Python/SimpleITK-0.8.0-py2.6-macosx-10.7-intel.egg#md5=b12f2d092c46494a9d93062d972be396">SimpleITK-0.8.0-py2.6-macosx-10.7-intel.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.0/Python/SimpleITK-0.8.0-py2.7-linux-i686.egg#md5=731b69bbdcdbb04be4bbfbe5546c8c81">SimpleITK-0.8.0-py2.7-linux-i686.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.0/Python/SimpleITK-0.8.0-py2.7-linux-x86_64.egg#md5=f3e6a1ba741d7fc4504bb750902b4030">SimpleITK-0.8.0-py2.7-linux-x86_64.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.0/Python/SimpleITK-0.8.0-py2.7-macosx-10.7-intel.egg#md5=b35d14a702d65211e4fd4b12b6bd9c7c">SimpleITK-0.8.0-py2.7-macosx-10.7-intel.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.0/Python/SimpleITK-0.8.0-py2.7-win32.egg#md5=3182a712f759bfec2fa8803f7f884073">SimpleITK-0.8.0-py2.7-win32.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.0/Python/SimpleITK-0.8.0-py2.7-win-amd64.egg#md5=a4042889fb36e67b56f94949071aa83a">SimpleITK-0.8.0-py2.7-win-amd64.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.0/Python/SimpleITK-0.8.0-py3.2-linux-i686.egg#md5=5f124fe34b4746de6ab42771f01d4b46">SimpleITK-0.8.0-py3.2-linux-i686.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.0/Python/SimpleITK-0.8.0-py3.2-linux-x86_64.egg#md5=70e6166984cfacecb6abccf090533845">SimpleITK-0.8.0-py3.2-linux-x86_64.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.0/Python/SimpleITK-0.8.0-py3.2-win32.egg#md5=673c2790f54a95cb8e883390edacd53d">SimpleITK-0.8.0-py3.2-win32.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.0/Python/SimpleITK-0.8.0-py3.2-win-amd64.egg#md5=4f1b222d8c1fd8807630c26796a5177d">SimpleITK-0.8.0-py3.2-win-amd64.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.0/Python/SimpleITK-0.8.0-py3.3-linux-i686.egg#md5=00360c37370aceabe0ee2f63df3284b8">SimpleITK-0.8.0-py3.3-linux-i686.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.0/Python/SimpleITK-0.8.0-py3.3-linux-x86_64.egg#md5=5dfc848d95a2c4d3fcb3aa0e2e95804b">SimpleITK-0.8.0-py3.3-linux-x86_64.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.0/Python/SimpleITK-0.8.0-py3.3-win32.egg#md5=a20a8ca315768af593e2022fb540d200">SimpleITK-0.8.0-py3.3-win32.egg (hosted at SourceForge)</a>
+        \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.8.0/Python/SimpleITK-0.8.0-py3.3-win-amd64.egg#md5=a24011fd73e5d2130d655957ec155a06">SimpleITK-0.8.0-py3.3-win-amd64.egg (hosted at SourceForge)</a>
+
+\section v071 SimpleITK 0.7.1
+
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.7.1/Python/SimpleITK-0.7.1.post1.1-py2.7-win-amd64.egg#md5=015d52706b9f13c1f5540a20ed4ce77f">SimpleITK-0.7.1.post1.1-py2.7-win-amd64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.7.1/Python/SimpleITK-0.7.1.post1.1-py3.2-win-amd64.egg#md5=b6f36286090eb154f5c7435b8186c351">SimpleITK-0.7.1.post1.1-py3.2-win-amd64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.7.1/Python/SimpleITK-0.7.1.post1.1-py3.3-win-amd64.egg#md5=5a26c120ec1b9a181299dd65b1e186cf">SimpleITK-0.7.1.post1.1-py3.3-win-amd64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.7.1/Python/SimpleITK-0.7.1.post1-py2.6-linux-x86_64.egg#md5=b710a74b531f49a4c1ecb74759202162">SimpleITK-0.7.1.post1-py2.6-linux-x86_64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.7.1/Python/SimpleITK-0.7.1.post1-py2.6-macosx-10.6-universal.egg#md5=21b577ad28f306727d39c09af2f5ca5f">SimpleITK-0.7.1.post1-py2.6-macosx-10.6-universal.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.7.1/Python/SimpleITK-0.7.1.post1-py2.7-linux-i686.egg#md5=0242855cae7b145f385d5a6fdf2739b7">SimpleITK-0.7.1.post1-py2.7-linux-i686.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.7.1/Python/SimpleITK-0.7.1.post1-py2.7-linux-x86_64.egg#md5=5f2acd95f237421b5904def0c9059679">SimpleITK-0.7.1.post1-py2.7-linux-x86_64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.7.1/Python/SimpleITK-0.7.1.post1-py2.7-macosx-10.7-intel.egg#md5=ee42643dc5d5d88cc3577b1cf49d028a">SimpleITK-0.7.1.post1-py2.7-macosx-10.7-intel.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.7.1/Python/SimpleITK-0.7.1.post1-py2.7-win32.egg#md5=8e5ea39d30061073f2990e149b666189">SimpleITK-0.7.1.post1-py2.7-win32.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.7.1/Python/SimpleITK-0.7.1.post1-py2.7-win-amd64.egg#md5=4962fe3588ae07142676f264e5416e69">SimpleITK-0.7.1.post1-py2.7-win-amd64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.7.1/Python/SimpleITK-0.7.1.post1-py3.2-linux-i686.egg#md5=a511d9b98dc1b0ca34c7af2dc1c2cd70">SimpleITK-0.7.1.post1-py3.2-linux-i686.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.7.1/Python/SimpleITK-0.7.1.post1-py3.2-linux-x86_64.egg#md5=0e608a25e73554a5407f3239b2a98ce0">SimpleITK-0.7.1.post1-py3.2-linux-x86_64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.7.1/Python/SimpleITK-0.7.1.post1-py3.2-win32.egg#md5=727121c918abc767611a207e214d1c09">SimpleITK-0.7.1.post1-py3.2-win32.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.7.1/Python/SimpleITK-0.7.1.post1-py3.2-win-amd64.egg#md5=29cdc9eef4dbfff4a279946948aa125c">SimpleITK-0.7.1.post1-py3.2-win-amd64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.7.1/Python/SimpleITK-0.7.1.post1-py3.3-win32.egg#md5=3f85b5c8466fa78567b4e678d0947109">SimpleITK-0.7.1.post1-py3.3-win32.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.7.1/Python/SimpleITK-0.7.1.post1-py3.3-win-amd64.egg#md5=3155de3c3b947d85eb271366390ef836">SimpleITK-0.7.1.post1-py3.3-win-amd64.egg (hosted at SourceForge)</a>
+
+\section v070 SimpleITK 0.7.0
+
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.7.0/Python/SimpleITK-0.7.0-py2.6-linux-x86_64.egg#md5=ef06cf11e369655fa2b16d614d4b09ea">SimpleITK-0.7.0-py2.6-linux-x86_64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.7.0/Python/SimpleITK-0.7.0-py2.6-macosx-10.6-universal.egg#md5=5f7238a67c2366ee3346b216663db6dc">SimpleITK-0.7.0-py2.6-macosx-10.6-universal.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.7.0/Python/SimpleITK-0.7.0-py2.7-linux-i686.egg#md5=82da4ae6fbc166a466cc692be9825e1a">SimpleITK-0.7.0-py2.7-linux-i686.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.7.0/Python/SimpleITK-0.7.0-py2.7-linux-x86_64.egg#md5=b636d61d57c5cf24cc6dbcd21bdc2ea0">SimpleITK-0.7.0-py2.7-linux-x86_64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.7.0/Python/SimpleITK-0.7.0-py2.7-macosx-10.7-intel.egg#md5=dc81fcbe6e917932f704c3633d7c6a2c">SimpleITK-0.7.0-py2.7-macosx-10.7-intel.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.7.0/Python/SimpleITK-0.7.0-py2.7-win32.egg#md5=3ae1726d133dabd45258c011d791fedd">SimpleITK-0.7.0-py2.7-win32.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.7.0/Python/SimpleITK-0.7.0-py2.7-win-amd64.egg#md5=f93c757f7b7e50e61b3bd4cc4c909934">SimpleITK-0.7.0-py2.7-win-amd64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.7.0/Python/SimpleITK-0.7.0-py3.2-linux-x86_64.egg#md5=3d47f73ed268f56a1305f577d2c8e773">SimpleITK-0.7.0-py3.2-linux-x86_64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.7.0/Python/SimpleITK-0.7.0-py3.2-win32.egg#md5=6c6c2de5b88de0bc201358f61fbb7ff3">SimpleITK-0.7.0-py3.2-win32.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.7.0/Python/SimpleITK-0.7.0-py3.2-win-amd64.egg#md5=16f053da6c6c6d5a016438d6259e6bc3">SimpleITK-0.7.0-py3.2-win-amd64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.7.0/Python/SimpleITK-0.7.0-py3.3-win32.egg#md5=a6d99418fdaa29b3c6a0bcd891a2fe00">SimpleITK-0.7.0-py3.3-win32.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.7.0/Python/SimpleITK-0.7.0-py3.3-win-amd64.egg#md5=f9c25b4c520ed5bf81aa1fcbfdc1dae0">SimpleITK-0.7.0-py3.3-win-amd64.egg (hosted at SourceForge)</a>
+
+\section v061 SimpleITK 0.6.1
+
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.6.1/Python/SimpleITK-0.6.1.post2-py3.2-win32.egg#md5=34579983512983cbc2a68e9908a0170c">SimpleITK-0.6.1.post2-py3.2-win32.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.6.1/Python/SimpleITK-0.6.1.post2-py3.2-win-amd64.egg#md5=f3fb7602891841fea7480f362b3bd91c">SimpleITK-0.6.1.post2-py3.2-win-amd64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.6.1/Python/SimpleITK-0.6.1-py2.6-linux-x86_64.egg#md5=ccd68ccfd4015b34763ee329a7feda5b">SimpleITK-0.6.1-py2.6-linux-x86_64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.6.1/Python/SimpleITK-0.6.1-py2.6-macosx-10.6-universal.egg#md5=341a75c000bb7ec1f00bd3c3b6f4357e">SimpleITK-0.6.1-py2.6-macosx-10.6-universal.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.6.1/Python/SimpleITK-0.6.1-py2.7-linux-i686.egg#md5=5d9110f2b452b4412ef73c6d9b8816c3">SimpleITK-0.6.1-py2.7-linux-i686.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.6.1/Python/SimpleITK-0.6.1-py2.7-linux-x86_64.egg#md5=e5f84a7ab0532472e74d78be26623008">SimpleITK-0.6.1-py2.7-linux-x86_64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.6.1/Python/SimpleITK-0.6.1-py2.7-macosx-10.7-intel.egg#md5=fffd71e25603ad2b03e62de82dcb2135">SimpleITK-0.6.1-py2.7-macosx-10.7-intel.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.6.1/Python/SimpleITK-0.6.1-py2.7-win32.egg#md5=0dd1d81946ae5481d13931b173b97392">SimpleITK-0.6.1-py2.7-win32.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.6.1/Python/SimpleITK-0.6.1-py2.7-win-amd64.egg#md5=8852fd477a348ce46cfbadbd993bc271">SimpleITK-0.6.1-py2.7-win-amd64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.6.1/Python/SimpleITK-0.6.1-py3.2-linux-i686.egg#md5=1d539cdf8678b743510409c413468da6">SimpleITK-0.6.1-py3.2-linux-i686.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.6.1/Python/SimpleITK-0.6.1-py3.2-linux-x86_64.egg#md5=c853592361537a42a2344b60c8f6866e">SimpleITK-0.6.1-py3.2-linux-x86_64.egg (hosted at SourceForge)</a>
+
+\section v060 SimpleITK 0.6.0
+
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.6.0/Python/SimpleITK-0.6.0-py2.6-linux-x86_64.egg#md5=e212a37be1f1644fa04ee537f1035d03">SimpleITK-0.6.0-py2.6-linux-x86_64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.6.0/Python/SimpleITK-0.6.0-py2.6-macosx-10.6-universal.egg#md5=f1b124d0d532ed66a61311762bfd661c">SimpleITK-0.6.0-py2.6-macosx-10.6-universal.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.6.0/Python/SimpleITK-0.6.0-py2.7-linux-i686.egg#md5=ccae63329c2067e91321856bc833de91">SimpleITK-0.6.0-py2.7-linux-i686.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.6.0/Python/SimpleITK-0.6.0-py2.7-linux-x86_64.egg#md5=dc9003e63fd986bb34d8fd6b44803c34">SimpleITK-0.6.0-py2.7-linux-x86_64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.6.0/Python/SimpleITK-0.6.0-py2.7-macosx-10.7-intel.egg#md5=adc7fe84e1c88655821b226f55bba4c5">SimpleITK-0.6.0-py2.7-macosx-10.7-intel.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.6.0/Python/SimpleITK-0.6.0-py2.7-win32.egg#md5=29b4a79d4cc04f77add6e0351a78d221">SimpleITK-0.6.0-py2.7-win32.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.6.0/Python/SimpleITK-0.6.0-py2.7-win-amd64.egg#md5=bdcca61765c8fb8bc034a091afe9dc36">SimpleITK-0.6.0-py2.7-win-amd64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.6.0/Python/SimpleITK-0.6.0-py3.2-linux-i686.egg#md5=7add443a9ab3179b0680364ac57f197b">SimpleITK-0.6.0-py3.2-linux-i686.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.6.0/Python/SimpleITK-0.6.0-py3.2-linux-x86_64.egg#md5=3fb2387f4834c02609bb888b66c27791">SimpleITK-0.6.0-py3.2-linux-x86_64.egg (hosted at SourceForge)</a>
+
+\section v051 SimpleITK 0.5.1
+
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.5.1/Python/SimpleITK-0.5.1-py2.6-linux-x86_64.egg#md5=34be03dd6ae00481f937a1fb359dee40">SimpleITK-0.5.1-py2.6-linux-x86_64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.5.1/Python/SimpleITK-0.5.1-py2.6-macosx-10.6-universal.egg#md5=49af8a9e95eda116e22d5ea09a6c786d">SimpleITK-0.5.1-py2.6-macosx-10.6-universal.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.5.1/Python/SimpleITK-0.5.1-py2.6-macosx-10.7-intel.egg#md5=1d3e6c767de6b583830916b9556233c5">SimpleITK-0.5.1-py2.6-macosx-10.7-intel.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.5.1/Python/SimpleITK-0.5.1-py2.7-linux-i686.egg#md5=c8bf3e41909308527579bd0f298577f2">SimpleITK-0.5.1-py2.7-linux-i686.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.5.1/Python/SimpleITK-0.5.1-py2.7-linux-x86_64.egg#md5=7d35ccce4334f5857d794c16fae572cd">SimpleITK-0.5.1-py2.7-linux-x86_64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.5.1/Python/SimpleITK-0.5.1-py2.7-macosx-10.7-intel.egg#md5=e2812f8791c0eda51912bf53d7369555">SimpleITK-0.5.1-py2.7-macosx-10.7-intel.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.5.1/Python/SimpleITK-0.5.1-py2.7-win-amd64.egg#md5=b0f7ef9a83b4faa4edfd1fae7e4de82b">SimpleITK-0.5.1-py2.7-win-amd64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.5.1/Python/SimpleITK-0.5.1-py2.7-win32.egg#md5=3412b544449b7871eb43c7d6a1b7081c">SimpleITK-0.5.1-py2.7-win32.egg (hosted at SourceForge)</a>
+
+\section v050 SimpleITK 0.5.0
+
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.5.0/Python/SimpleITK-0.5.0-py2.6-linux-x86_64.egg#md5=d6891d6e861105fd31e1bdc0aaa9b74e">SimpleITK-0.5.0-py2.6-linux-x86_64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.5.0/Python/SimpleITK-0.5.0-py2.6-macosx-10.6-universal.egg#md5=fc7c1c2692f3b10de173cc8b8f6167a2">SimpleITK-0.5.0-py2.6-macosx-10.6-universal.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.5.0/Python/SimpleITK-0.5.0-py2.6-macosx-10.7-intel.egg#md5=7b5fca2a8a6aa0f053a008f8621e4c98">SimpleITK-0.5.0-py2.6-macosx-10.7-intel.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.5.0/Python/SimpleITK-0.5.0-py2.7-linux-i686.egg#md5=9b81a694ad231ba4184d04dc1b52bc9a">SimpleITK-0.5.0-py2.7-linux-i686.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.5.0/Python/SimpleITK-0.5.0-py2.7-linux-x86_64.egg#md5=7f9261821f81b57bde83a75275c653b5">SimpleITK-0.5.0-py2.7-linux-x86_64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.5.0/Python/SimpleITK-0.5.0-py2.7-macosx-10.7-intel.egg#md5=3f6067840eb34c1145c5f58dc91317a5">SimpleITK-0.5.0-py2.7-macosx-10.7-intel.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.5.0/Python/SimpleITK-0.5.0-py2.7-win-amd64.egg#md5=584759cda8d03868544ed810effee95a">SimpleITK-0.5.0-py2.7-win-amd64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.5.0/Python/SimpleITK-0.5.0-py2.7-win32.egg#md5=967203f6ef8cfe189e10db92454226da">SimpleITK-0.5.0-py2.7-win32.egg (hosted at SourceForge)</a>
+
+\section v040b SimpleITK 0.4.0 Beta
+
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.4.0/Python/SimpleITK-0.4.0-py2.7-macosx-10.7-intel.egg#md5=4ebed06667e0f28018b097bf0d4cf1ef">SimpleITK-0.4.0.macosx-10.7-intel-py2.7.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.4.0/Python/SimpleITK-0.4.0-py2.6-macosx-10.7-intel.egg#md5=ae03d1c9e130b3c27b406a7ec231e397">SimpleITK-0.4.0.macosx-10.7-intel-py2.6.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.4.0/Python/SimpleITK-0.4.0-py2.6-macosx-10.6-universal.egg#md5=5b78326efce046afd11e18e7bc2bbe4e">SimpleITK-0.4.0.macosx-10.6-universal-py2.6.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.4.0/Python/SimpleITK-0.4.0-py2.6-linux-i686.egg#md5=8381dc9c90b4503d58ae7700a4a7633d">SimpleITK-0.4.0-py2.6-linux-i686.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.4.0/Python/SimpleITK-0.4.0-py2.6-linux-x86_64.egg#md5=1ccff88745520fcf0034a0ee03bb56cc">SimpleITK-0.4.0-py2.6-linux-x86_64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.4.0/Python/SimpleITK-0.4.0-py2.7-linux-i686.egg#md5=703c169e2c6fbedbfdd2507f02006ec9">SimpleITK-0.4.0-py2.7-linux-i686.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.4.0/Python/SimpleITK-0.4.0-py2.7-linux-x86_64.egg#md5=ab3e2bdcceb4ab8ad1f75be2c407ed9f">SimpleITK-0.4.0-py2.7-linux-x86_64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.4.0/Python/SimpleITK-0.4.0-py2.7-win-amd64.egg#md5=db971a84eb950864fd7e3b25bc39e2b9">SimpleITK-0.4.0-py2.7-win-amd64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.4.0/Python/SimpleITK-0.4.0-py2.7-win32.egg#md5=e29c6731c90f7e63555367e543455cc8">SimpleITK-0.4.0-py2.7-10.7-win32.egg (hosted at SourceForge)</a>
+
+\section v030b SimpleITK 0.3.0 Beta
+
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.3.0/Python/SimpleITK-0.3.0-py2.7-macosx-10.7-intel.egg#md5=fc2c3a4f6212b4c9ba7afc6e8a5b4b19">SimpleITK-0.3.0.macosx-10.7-intel-py2.7.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.3.0/Python/SimpleITK-0.3.0-py2.6-macosx-10.7-intel.egg#md5=ea12509a742e66b5881ca85240d942c2">SimpleITK-0.3.0.macosx-10.7-intel-py2.6.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.3.0/Python/SimpleITK-0.3.0-py2.6-macosx-10.6-universal.egg#md5=ce0a4408860c7e16be60b01e6386ca43">SimpleITK-0.3.0.macosx-10.6-universal-py2.6.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.3.0/Python/SimpleITK-0.3.0-py2.6-linux-x86_64.egg#md5=51fafd455cef63820e8f2f3bd248c630">SimpleITK-0.3.0-py2.6-linux-x86_64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.3.0/Python/SimpleITK-0.3.0-py2.7-linux-i686.egg#md5=60d60a41d38ce44c457ef39a89db0c1d">SimpleITK-0.3.0-py2.7-linux-i686.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.3.0/Python/SimpleITK-0.3.0-py2.7-linux-x86_64.egg#md5=c2025e01887ab566214b3eabe12e5c34">SimpleITK-0.3.0-py2.7-linux-x86_64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.3.0/Python/SimpleITK-0.3.0-py2.7-win32.egg#md5=4fabdd437a5d0b4a04407ea0562f06f1">SimpleITK-0.3.0-py2.7-win32.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.3.0/Python/SimpleITK-0.3.0-py2.7-win-amd64.egg#md5=03ee08ef39fbed42344ef5a806e3830e">SimpleITK-0.3.0-py2.7-win-amd64.egg (hosted at SourceForge)</a>
+         \li <a href="https://sourceforge.net/projects/simpleitk/files/SimpleITK/0.3.0/Python/SimpleITK-0.3.0-py2.6-win32.egg#md5=2b33bfdc8d22813aa53b846f106589e1">SimpleITK-0.3.0-py2.6-win32.egg (hosted at SourceForge)</a>
+ 
+*/
diff --git a/Documentation/Images/simpleitk_logo.png b/Documentation/Images/simpleitk_logo.png
new file mode 100644
index 0000000..f509272
Binary files /dev/null and b/Documentation/Images/simpleitk_logo.png differ
diff --git a/Documentation/Tutorials/CMakeLists.txt b/Documentation/Tutorials/CMakeLists.txt
new file mode 100644
index 0000000..164f80d
--- /dev/null
+++ b/Documentation/Tutorials/CMakeLists.txt
@@ -0,0 +1,8 @@
+find_package(LATEX)
+
+if(NOT PDFLATEX_COMPILER)
+  message(FATAL_ERROR "pdflatex compiler was not found. Please pass to advanced mode and provide its full path")
+endif()
+
+add_subdirectory(Short)
+add_subdirectory(Medium)
diff --git a/Documentation/Tutorials/Medium/CMakeLists.txt b/Documentation/Tutorials/Medium/CMakeLists.txt
new file mode 100644
index 0000000..2216e1b
--- /dev/null
+++ b/Documentation/Tutorials/Medium/CMakeLists.txt
@@ -0,0 +1,18 @@
+project(SimpleITKMediumTutorial)
+
+#
+# This adds a custom target that generates the output document
+# This target depends on the list of copied files created
+# with the custom command above and the Plots target.
+#
+add_custom_target(MediumTutorial ALL
+   COMMAND ${PDFLATEX_COMPILER}
+        ${SimpleITKMediumTutorial_SOURCE_DIR}/SimpleITKMediumTutorial.tex
+        -output-directory ${SimpleITKMediumTutorial_BINARY_DIR}
+   COMMAND ${PDFLATEX_COMPILER}
+        ${SimpleITKMediumTutorial_SOURCE_DIR}/SimpleITKMediumTutorial.tex
+        -output-directory ${SimpleITKMediumTutorial_BINARY_DIR}
+   DEPENDS ${COPY_RESULTS} ${REPORT_ELEMENTS}
+   WORKING_DIRECTORY ${SimpleITKMediumTutorial_BINARY_DIR}
+   )
+
diff --git a/Documentation/Tutorials/Medium/SimpleITKMediumTutorial.tex b/Documentation/Tutorials/Medium/SimpleITKMediumTutorial.tex
new file mode 100644
index 0000000..a99f718
--- /dev/null
+++ b/Documentation/Tutorials/Medium/SimpleITKMediumTutorial.tex
@@ -0,0 +1,78 @@
+\documentclass[18pt]{beamer}
+\usetheme{Madrid}
+
+\usepackage{graphics}
+
+
+\newcommand{\centeredlargetext}[3]{
+{
+\setbeamertemplate{navigation symbols}{}
+\setbeamercolor{background canvas}{bg={#1}}
+\color{#2}
+\begin{frame}[plain]
+\fontsize{36pt}{36pt}\selectfont
+\center
+\begin{center}
+{#3}
+\end{center}
+\end{frame}
+}}
+
+\newcommand{\centeredhugetext}[3]{
+{
+\setbeamertemplate{navigation symbols}{}
+\setbeamercolor{background canvas}{bg={#1}}
+\fontsize{72pt}{72pt}\selectfont
+\color{#2}
+\begin{frame}[plain]
+\center
+\begin{center}
+{#3}
+\end{center}
+\end{frame}
+}}
+
+
+\begin{document}
+
+\title[SimpleITK Tutorial]{SimpleITK - Short Tutorial}
+\subtitle[UH]{ITK for Human Beings}
+\institute[Insight Software Consortium]{Insight Software Consortium}
+\date[April 2011]{April 2011}
+
+\begin{frame}
+\titlepage
+\end{frame}
+
+
+{
+\setbeamertemplate{navigation symbols}{}
+\begin{frame}[plain]
+\center
+\begin{center}
+This presentation is copyrighted by\\
+The \textbf{Insight Software Consortium}\\
+\bigskip
+distributed under the\\
+\textbf{Creative Commons by Attribution License 3.0}\\
+\url{http://creativecommons.org/licenses/by/3.0}\\
+\bigskip
+Images used in this presentation are attributed in the last slide.
+\end{center}
+\end{frame}
+}
+
+
+\begin{frame}
+  \tableofcontents
+\end{frame}
+
+
+\centeredlargetext{black}{white}{
+SimpleITK
+}
+
+
+\section{Introduction}
+
+\end{document}
diff --git a/Documentation/Tutorials/README b/Documentation/Tutorials/README
new file mode 100644
index 0000000..1aac8f8
--- /dev/null
+++ b/Documentation/Tutorials/README
@@ -0,0 +1,10 @@
+
+These documents are copyrighted by the
+
+       Insight Software Consortium
+
+and are publicly distributed under the:
+
+  Creative Commons by Attribution License 3.0
+  http://creativecommons.org/licenses/by/3.0/
+
diff --git a/Documentation/Tutorials/Short/CMakeLists.txt b/Documentation/Tutorials/Short/CMakeLists.txt
new file mode 100644
index 0000000..21ab4ff
--- /dev/null
+++ b/Documentation/Tutorials/Short/CMakeLists.txt
@@ -0,0 +1,18 @@
+project(SimpleITKShortTutorial)
+
+#
+# This adds a custom target that generates the output document
+# This target depends on the list of copied files created
+# with the custom command above and the Plots target.
+#
+add_custom_target(ShortTutorial ALL
+   COMMAND ${PDFLATEX_COMPILER}
+        ${SimpleITKShortTutorial_SOURCE_DIR}/SimpleITKShortTutorial.tex
+        -output-directory ${SimpleITKShortTutorial_BINARY_DIR}
+   COMMAND ${PDFLATEX_COMPILER}
+        ${SimpleITKShortTutorial_SOURCE_DIR}/SimpleITKShortTutorial.tex
+        -output-directory ${SimpleITKShortTutorial_BINARY_DIR}
+   DEPENDS ${COPY_RESULTS} ${REPORT_ELEMENTS}
+   WORKING_DIRECTORY ${SimpleITKShortTutorial_BINARY_DIR}
+   )
+
diff --git a/Documentation/Tutorials/Short/SimpleITKShortTutorial.tex b/Documentation/Tutorials/Short/SimpleITKShortTutorial.tex
new file mode 100644
index 0000000..a99f718
--- /dev/null
+++ b/Documentation/Tutorials/Short/SimpleITKShortTutorial.tex
@@ -0,0 +1,78 @@
+\documentclass[18pt]{beamer}
+\usetheme{Madrid}
+
+\usepackage{graphics}
+
+
+\newcommand{\centeredlargetext}[3]{
+{
+\setbeamertemplate{navigation symbols}{}
+\setbeamercolor{background canvas}{bg={#1}}
+\color{#2}
+\begin{frame}[plain]
+\fontsize{36pt}{36pt}\selectfont
+\center
+\begin{center}
+{#3}
+\end{center}
+\end{frame}
+}}
+
+\newcommand{\centeredhugetext}[3]{
+{
+\setbeamertemplate{navigation symbols}{}
+\setbeamercolor{background canvas}{bg={#1}}
+\fontsize{72pt}{72pt}\selectfont
+\color{#2}
+\begin{frame}[plain]
+\center
+\begin{center}
+{#3}
+\end{center}
+\end{frame}
+}}
+
+
+\begin{document}
+
+\title[SimpleITK Tutorial]{SimpleITK - Short Tutorial}
+\subtitle[UH]{ITK for Human Beings}
+\institute[Insight Software Consortium]{Insight Software Consortium}
+\date[April 2011]{April 2011}
+
+\begin{frame}
+\titlepage
+\end{frame}
+
+
+{
+\setbeamertemplate{navigation symbols}{}
+\begin{frame}[plain]
+\center
+\begin{center}
+This presentation is copyrighted by\\
+The \textbf{Insight Software Consortium}\\
+\bigskip
+distributed under the\\
+\textbf{Creative Commons by Attribution License 3.0}\\
+\url{http://creativecommons.org/licenses/by/3.0}\\
+\bigskip
+Images used in this presentation are attributed in the last slide.
+\end{center}
+\end{frame}
+}
+
+
+\begin{frame}
+  \tableofcontents
+\end{frame}
+
+
+\centeredlargetext{black}{white}{
+SimpleITK
+}
+
+
+\section{Introduction}
+
+\end{document}
diff --git a/Documentation/docs/Makefile b/Documentation/docs/Makefile
new file mode 100644
index 0000000..64414d4
--- /dev/null
+++ b/Documentation/docs/Makefile
@@ -0,0 +1,20 @@
+# Minimal makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS    =
+SPHINXBUILD   = sphinx-build
+SPHINXPROJ    = SimpleITK
+SOURCEDIR     = source
+BUILDDIR      = build
+
+# Put it first so that "make" without argument is like "make help".
+help:
+	@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+.PHONY: help Makefile
+
+# Catch-all target: route all unknown targets to Sphinx using the new
+# "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
+%: Makefile
+	@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/Documentation/docs/source/conf.py b/Documentation/docs/source/conf.py
new file mode 100644
index 0000000..53ac9e4
--- /dev/null
+++ b/Documentation/docs/source/conf.py
@@ -0,0 +1,157 @@
+# -*- coding: utf-8 -*-
+#
+# SimpleITK documentation build configuration file, created by
+# sphinx-quickstart on Wed Feb 15 18:01:43 2017.
+#
+# This file is execfile()d with the current directory set to its
+# containing dir.
+#
+# Note that not all possible configuration values are present in this
+# autogenerated file.
+#
+# All configuration values have a default; values that are commented out
+# serve to show the default.
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#
+# import os
+# import sys
+# sys.path.insert(0, os.path.abspath('.'))
+
+
+# -- General configuration ------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+#
+# needs_sphinx = '1.0'
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+#   'sphinx.ext.imgmath',
+    'sphinx.ext.ifconfig']
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix(es) of source filenames.
+# You can specify multiple suffix as a list of string:
+#
+# source_suffix = ['.rst', '.md']
+source_suffix = '.rst'
+
+# The master toctree document.
+master_doc = 'index'
+
+# General information about the project.
+project = u'SimpleITK'
+copyright = u'2017, Insight Software Consortium'
+author = u'Insight Software Consortium'
+
+# The version info for the project you're documenting, acts as replacement for
+# |version| and |release|, also used in various other places throughout the
+# built documents.
+#
+# The short X.Y version.
+version = u'1.0'
+# The full version, including alpha/beta/rc tags.
+release = u'1.0rc1'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#
+# This is also used if you do content translation via gettext catalogs.
+# Usually you set "language" from the command line for these cases.
+language = None
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+# This patterns also effect to html_static_path and html_extra_path
+exclude_patterns = []
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+# If true, `todo` and `todoList` produce output, else they produce nothing.
+todo_include_todos = False
+
+
+# -- Options for HTML output ----------------------------------------------
+
+# The theme to use for HTML and HTML Help pages.  See the documentation for
+# a list of builtin themes.
+#
+html_theme = 'alabaster'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further.  For a list of options available for each theme, see the
+# documentation.
+#
+# html_theme_options = {}
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+html_logo= '../../Images/simpleitk_logo.png'
+
+
+# -- Options for HTMLHelp output ------------------------------------------
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'SimpleITKdoc'
+
+
+# -- Options for LaTeX output ---------------------------------------------
+
+latex_elements = {
+    # The paper size ('letterpaper' or 'a4paper').
+    #
+    # 'papersize': 'letterpaper',
+
+    # The font size ('10pt', '11pt' or '12pt').
+    #
+    # 'pointsize': '10pt',
+
+    # Additional stuff for the LaTeX preamble.
+    #
+    # 'preamble': '',
+
+    # Latex figure (float) alignment
+    #
+    # 'figure_align': 'htbp',
+}
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title,
+#  author, documentclass [howto, manual, or own class]).
+latex_documents = [
+    (master_doc, 'SimpleITK.tex', u'SimpleITK Documentation',
+     u'Insight Software Consortium', 'manual'),
+]
+
+
+# -- Options for manual page output ---------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+    (master_doc, 'simpleitk', u'SimpleITK Documentation',
+     [author], 1)
+]
+
+
+# -- Options for Texinfo output -------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+#  dir menu entry, description, category)
+texinfo_documents = [
+    (master_doc, 'SimpleITK', u'SimpleITK Documentation',
+     author, 'SimpleITK', 'One line description of project.',
+     'Miscellaneous'),
+]
diff --git a/Documentation/docs/source/index.rst b/Documentation/docs/source/index.rst
new file mode 100644
index 0000000..7f5d113
--- /dev/null
+++ b/Documentation/docs/source/index.rst
@@ -0,0 +1,18 @@
+SimpleITK Sphinx Documentation
+==============================
+
+This is a prototype of consolidated SimpleITK documentation in Sphinx
+and is under development.
+
+.. toctree::
+   :maxdepth: 2
+   :caption: Contents:
+
+
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
diff --git a/Examples/BufferImportExport.cxx b/Examples/BufferImportExport.cxx
new file mode 100644
index 0000000..390d003
--- /dev/null
+++ b/Examples/BufferImportExport.cxx
@@ -0,0 +1,79 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include "SimpleITK.h"
+#include <stdlib.h>
+#include <iostream>
+
+
+// create convenient namespace alias
+namespace sitk = itk::simple;
+
+
+/** This example shows hour to import abuffer from an array into a
+* simpleITK Image, perform some manipulation, then get access to that
+* buffer again. This technique is useful for integrating into external
+* applications.
+*/
+int main( int , char *[] )
+{
+
+  // construct and initialize an image buffer, this buffer could have
+  // just as well come from the rest of an application we are trying
+  // to integrate simpleITK with.
+  uint8_t *in = new uint8_t[100*100*100];
+  for ( unsigned int i = 0; i < 100*100*100; ++i )
+    {
+    in[i] = i%255;
+    }
+
+  // Configure a filter to import the buffer
+  sitk::ImportImageFilter importer;
+  importer.SetSpacing( std::vector<double>( 3, .33 ) );
+  importer.SetOrigin( std::vector<double>( 3, .123 ) );
+  importer.SetSize( std::vector<unsigned int>( 3, 100 ) );
+  importer.SetBufferAsUInt8( in );
+
+  // actaully convert the buffer to a simpleITK image
+  sitk::Image img = importer.Execute();
+
+
+  sitk::Show( img );
+  // at this point img, contains the same buffer as in
+
+  // use some useful filters in ITK
+  img = sitk::GrayscaleErode( img , 3 );
+
+  sitk::Show( img );
+
+  // The output type of the morpholgy will be the same pixel type as
+  // the input. But we place the assert to clarify and verify out
+  // logic.
+  assert( img.GetPixelID() == sitk::sitkUInt8 );
+
+  // The method which matches the actual pixel type of the image must
+  // be called.
+  uint8_t *out = img.GetBufferAsUInt8();
+
+  for ( unsigned int i = 0; i < 10; ++i)
+    {
+    std::cout << int(out[i]) << " ";
+    }
+  std::cout << std::endl;
+
+  return EXIT_SUCCESS;
+}
diff --git a/Examples/CMakeLists.txt b/Examples/CMakeLists.txt
new file mode 100644
index 0000000..e651464
--- /dev/null
+++ b/Examples/CMakeLists.txt
@@ -0,0 +1,66 @@
+cmake_minimum_required(VERSION 2.8)
+project(SimpleITKExamples)
+
+foreach(p
+    CMP0042 # CMake 3.0
+    CMP0063 # CMake 3.3.2
+    )
+  if(POLICY ${p})
+    cmake_policy(SET ${p} NEW)
+  endif()
+endforeach()
+
+if(NOT CMAKE_PROJECT_NAME STREQUAL "SimpleITK")
+  find_package(SimpleITK REQUIRED)
+
+endif()
+
+# Add individual cxx executables
+
+add_executable ( SimpleGaussianFunctional SimpleGaussianFunctional.cxx )
+target_link_libraries ( SimpleGaussianFunctional ${SimpleITK_LIBRARIES} )
+
+add_executable ( BufferImportExport BufferImportExport.cxx )
+target_link_libraries ( BufferImportExport ${SimpleITK_LIBRARIES} )
+
+# Add subdirectories
+add_subdirectory(Segmentation)
+
+# Test data directory
+set(TEST_HARNESS_TEMP_DIRECTORY ${SimpleITK_BINARY_DIR}/Testing/Temporary)
+set(TEST_HARNESS_DATA_DIRECTORY ${SimpleITK_BINARY_DIR}/ExternalData/Testing/Data)
+set(ITK_TEST_DRIVER  "$<TARGET_FILE:itkTestDriver>")
+
+
+# Add example organized sub-directories with multiple languages
+add_subdirectory(SimpleGaussian)
+add_subdirectory(ImageRegistrationMethod1)
+add_subdirectory(ImageRegistrationMethod2)
+add_subdirectory(ImageRegistrationMethod3)
+add_subdirectory(ImageRegistrationMethod4)
+add_subdirectory(ImageRegistrationMethodBSpline1)
+add_subdirectory(ImageRegistrationMethodBSpline2)
+add_subdirectory(ImageRegistrationMethodDisplacement1)
+add_subdirectory(ImageRegistrationMethodExhaustive)
+add_subdirectory(N4BiasFieldCorrection)
+add_subdirectory(DicomSeriesReader)
+add_subdirectory(DicomImagePrintTags)
+add_subdirectory(DicomSeriesReadModifyWrite)
+add_subdirectory(FilterProgressReporting)
+add_subdirectory(DemonsRegistration1)
+add_subdirectory(DemonsRegistration2)
+
+macro(add_language_subdirectory lang)
+  string(TOUPPER ${lang} LANG)
+  if ( WRAP_${LANG} )
+    add_subdirectory(${lang})
+  endif()
+endmacro()
+
+if ( BUILD_TESTING )
+  add_subdirectory( test )
+
+  add_language_subdirectory( CSharp )
+  add_language_subdirectory( Python )
+
+endif()
diff --git a/Examples/CSharp/CMakeLists.txt b/Examples/CSharp/CMakeLists.txt
new file mode 100644
index 0000000..70571a8
--- /dev/null
+++ b/Examples/CSharp/CMakeLists.txt
@@ -0,0 +1,14 @@
+
+if(NOT BUILD_TESTING)
+  return()
+endif()
+
+#
+# CSharp Examples
+#
+
+sitk_add_csharp_test( Example.ImageGetBuffer
+  "${CMAKE_CURRENT_SOURCE_DIR}/ImageGetBuffer.cs"
+  DATA{${SimpleITK_DATA_ROOT}/Input/RA-Short.nrrd})
+set_tests_properties( CSharp.Example.ImageGetBuffer
+  PROPERTIES PASS_REGULAR_EXPRESSION "total: 1009713" )
diff --git a/Examples/CSharp/ImageGetBuffer.cs b/Examples/CSharp/ImageGetBuffer.cs
new file mode 100644
index 0000000..ab9510c
--- /dev/null
+++ b/Examples/CSharp/ImageGetBuffer.cs
@@ -0,0 +1,85 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+using System;
+using System.Runtime.InteropServices;
+
+using itk.simple;
+using PixelId = itk.simple.PixelIDValueEnum;
+
+namespace itk.simple.examples {
+  public class Program {
+    static void Main(string[] args) {
+
+      if (args.Length < 1) {
+        Console.WriteLine("Usage: SimpleGaussian <input>");
+        return;
+      }
+
+      // Read input image
+      itk.simple.Image input = SimpleITK.ReadImage(args[0]);
+
+      // Cast to we know the the pixel type
+      input = SimpleITK.Cast(input, PixelId.sitkFloat32);
+
+      // calculate the nubmer of pixels
+      VectorUInt32 size = input.GetSize();
+      int len = 1;
+      for (int dim = 0; dim < input.GetDimension(); dim++) {
+        len *= (int)size[dim];
+      }
+      IntPtr buffer = input.GetBufferAsFloat();
+
+      // There are two ways to access the buffer:
+
+      // (1) Access the underlying buffer as a pointer in an "unsafe" block
+      // (note that in C# "unsafe" simply means that the compiler can not
+      // perform full type checking), and requires the -unsafe compiler flag
+      // unsafe {
+      //   float* bufferPtr = (float*)buffer.ToPointer();
+
+      //   // Now the byte pointer can be accessed as per Brad's email
+      //   // (of course this example is only a 2d single channel image):
+      //   // This is a 1-D array but can be access as a 3-D. Given an
+      //   // image of size [xS,yS,zS], you can access the image at
+      //   // index [x,y,z] as you wish by image[x+y*xS+z*xS*yS],
+      //   // so x is the fastest axis and z is the slowest.
+      //   for (int j = 0; j < size[1]; j++) {
+      //     for (int i = 0; i < size[0]; i++) {
+      //       float pixel = bufferPtr[i + j*size[1]];
+      //       // Do something with pixel here
+      //     }
+      //   }
+      // }
+
+      // (2) Copy the buffer to a "safe" array (i.e. a fully typed array)
+      // (note that this means memory is duplicated)
+      float[] bufferAsArray = new float[len]; // Allocates new memory the size of input
+      Marshal.Copy(buffer, bufferAsArray, 0, len);
+      double total = 0.0;
+      for (int j = 0; j < size[1]; j++) {
+        for (int i = 0; i < size[0]; i++) {
+          float pixel = bufferAsArray[i + j*size[1]];
+          total += pixel;
+        }
+      }
+      Console.WriteLine("Pixel value total: {0}", total);
+
+    }
+  }
+}
diff --git a/Examples/DemonsRegistration1/CMakeLists.txt b/Examples/DemonsRegistration1/CMakeLists.txt
new file mode 100644
index 0000000..af3ea42
--- /dev/null
+++ b/Examples/DemonsRegistration1/CMakeLists.txt
@@ -0,0 +1,30 @@
+
+add_executable ( DemonsRegistration1 DemonsRegistration1.cxx )
+target_link_libraries ( DemonsRegistration1 ${SimpleITK_LIBRARIES} )
+
+if(NOT BUILD_TESTING)
+  return()
+endif()
+
+sitk_add_test(NAME CXX.Example.DemonsRegistration1
+  COMMAND
+    $<TARGET_FILE:DemonsRegistration1>
+    DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceBorder20.png}
+    DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceBSplined10.png}
+    ${TEST_HARNESS_TEMP_DIRECTORY}/CXXDemonsRegistration1Test.hdf5
+  TRANSFORM_COMPARE
+    ${TEST_HARNESS_TEMP_DIRECTORY}/CXXDemonsRegistration1Test.hdf5
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/DemonsRegistration1Test_displacement.mha}
+    0.01
+  )
+
+sitk_add_python_test(Example.DemonsRegistration1
+  "${CMAKE_CURRENT_SOURCE_DIR}/DemonsRegistration1.py"
+    DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceBorder20.png}
+    DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceBSplined10.png}
+    ${TEST_HARNESS_TEMP_DIRECTORY}/PythonDemonsRegistration1Test.hdf5
+  TRANSFORM_COMPARE
+    ${TEST_HARNESS_TEMP_DIRECTORY}/PythonDemonsRegistration1Test.hdf5
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/DemonsRegistration1Test_displacement.mha}
+    0.005
+  )
diff --git a/Examples/DemonsRegistration1/DemonsRegistration1.cxx b/Examples/DemonsRegistration1/DemonsRegistration1.cxx
new file mode 100644
index 0000000..7b9d7aa
--- /dev/null
+++ b/Examples/DemonsRegistration1/DemonsRegistration1.cxx
@@ -0,0 +1,99 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+// This example is based on ITK's DeformableRegistration2.cxx example
+
+
+#include <SimpleITK.h>
+#include <iostream>
+#include <stdlib.h>
+#include <iomanip>
+
+namespace sitk = itk::simple;
+
+
+class IterationUpdate
+  : public sitk::Command
+{
+public:
+  IterationUpdate( const sitk::DemonsRegistrationFilter &m)
+    : m_Filter(m)
+    {}
+
+  virtual void Execute( )
+    {
+      // use sitk's output operator for std::vector etc..
+      using sitk::operator<<;
+
+      // stash the stream state
+      std::ios  state(NULL);
+      state.copyfmt(std::cout);
+      std::cout << std::fixed << std::setfill(' ') << std::setprecision( 5 );
+      std::cout << std::setw(3) << m_Filter.GetElapsedIterations();
+      std::cout << " = " << std::setw(10) << m_Filter.GetMetric();
+      std::cout << std::endl;
+
+      std::cout.copyfmt(state);
+    }
+
+private:
+  const sitk::DemonsRegistrationFilter &m_Filter;
+
+};
+
+
+
+int main(int argc, char *argv[])
+{
+
+  if ( argc < 4 )
+    {
+    std::cerr << "Usage: " << argv[0] << " <fixedImageFilter> <movingImageFile> <outputTransformFile>" << std::endl;
+    return 1;
+    }
+
+  sitk::Image fixed = sitk::ReadImage( argv[1], sitk::sitkFloat32 );
+
+  sitk::Image moving = sitk::ReadImage( argv[2], sitk::sitkFloat32 );
+
+  sitk::HistogramMatchingImageFilter matcher;
+  matcher.SetNumberOfHistogramLevels( 1024 );
+  matcher.SetNumberOfMatchPoints( 7 );
+  matcher.ThresholdAtMeanIntensityOn();
+  moving = matcher.Execute(moving, fixed);
+
+  sitk::DemonsRegistrationFilter filter;
+
+  IterationUpdate cmd(filter);
+  filter.AddCommand( sitk::sitkIterationEvent, cmd );
+
+  filter.SetNumberOfIterations( 50 );
+  filter.SetStandardDeviations( 1.0 );
+
+  sitk::Image displacementField = filter.Execute( fixed, moving );
+
+  std::cout << "-------" << std::endl;
+  std::cout << "Number Of Iterations: " << filter.GetElapsedIterations() << std::endl;
+  std::cout << " RMS: " << filter.GetRMSChange() << std::endl;
+
+  sitk::DisplacementFieldTransform outTx( displacementField );
+
+  sitk::WriteTransform(outTx, argv[3]);
+
+  return 0;
+}
diff --git a/Examples/DemonsRegistration1/DemonsRegistration1.py b/Examples/DemonsRegistration1/DemonsRegistration1.py
new file mode 100755
index 0000000..63c18eb
--- /dev/null
+++ b/Examples/DemonsRegistration1/DemonsRegistration1.py
@@ -0,0 +1,76 @@
+#!/usr/bin/env python
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+
+from __future__ import print_function
+
+import SimpleITK as sitk
+import sys
+import os
+
+
+def command_iteration(filter) :
+    print("{0:3} = {1:10.5f}".format(filter.GetElapsedIterations(),
+                                    filter.GetMetric()))
+
+if len ( sys.argv ) < 4:
+    print( "Usage: {0} <fixedImageFilter> <movingImageFile> <outputTransformFile>".format(sys.argv[0]))
+    sys.exit ( 1 )
+
+
+fixed = sitk.ReadImage(sys.argv[1], sitk.sitkFloat32)
+
+moving = sitk.ReadImage(sys.argv[2], sitk.sitkFloat32)
+
+
+matcher = sitk.HistogramMatchingImageFilter()
+matcher.SetNumberOfHistogramLevels(1024)
+matcher.SetNumberOfMatchPoints(7)
+matcher.ThresholdAtMeanIntensityOn()
+moving = matcher.Execute(moving,fixed)
+
+demons = sitk.DemonsRegistrationFilter()
+demons.SetNumberOfIterations( 50 )
+demons.SetStandardDeviations( 1.0 )
+
+demons.AddCommand( sitk.sitkIterationEvent, lambda: command_iteration(demons) )
+
+displacementField = demons.Execute( fixed, moving )
+
+
+print("-------")
+print("Number Of Iterations: {0}".format(demons.GetElapsedIterations()))
+print(" RMS: {0}".format(demons.GetRMSChange()))
+
+outTx = sitk.DisplacementFieldTransform( displacementField )
+
+sitk.WriteTransform(outTx, sys.argv[3])
+
+if ( not "SITK_NOSHOW" in os.environ ):
+
+    resampler = sitk.ResampleImageFilter()
+    resampler.SetReferenceImage(fixed);
+    resampler.SetInterpolator(sitk.sitkLinear)
+    resampler.SetDefaultPixelValue(100)
+    resampler.SetTransform(outTx)
+
+    out = resampler.Execute(moving)
+    simg1 = sitk.Cast(sitk.RescaleIntensity(fixed), sitk.sitkUInt8)
+    simg2 = sitk.Cast(sitk.RescaleIntensity(out), sitk.sitkUInt8)
+    cimg = sitk.Compose(simg1, simg2, simg1/2.+simg2/2.)
+    sitk.Show( cimg, "DeformableRegistration1 Composition" )
diff --git a/Examples/DemonsRegistration2/CMakeLists.txt b/Examples/DemonsRegistration2/CMakeLists.txt
new file mode 100644
index 0000000..d75dddb
--- /dev/null
+++ b/Examples/DemonsRegistration2/CMakeLists.txt
@@ -0,0 +1,20 @@
+
+add_executable ( DemonsRegistration2 DemonsRegistration2.cxx )
+target_link_libraries ( DemonsRegistration2 ${SimpleITK_LIBRARIES} )
+
+if(NOT BUILD_TESTING)
+  return()
+endif()
+
+sitk_add_test(NAME CXX.Example.DemonsRegistration2
+  COMMAND
+   $<TARGET_FILE:DemonsRegistration2>
+   DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceShifted13x17y.png}
+   DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceBSplined10.png}
+   DATA{${SimpleITK_DATA_ROOT}/Input/xforms/translation_-13x-17y.txt}
+   ${TEST_HARNESS_TEMP_DIRECTORY}/CXXDemonsRegistration2Test.hdf5
+  TRANSFORM_COMPARE
+    ${TEST_HARNESS_TEMP_DIRECTORY}/CXXDemonsRegistration2Test.hdf5
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/DemonsRegistration2Test_displacement.mha}
+    0.01
+  )
diff --git a/Examples/DemonsRegistration2/DemonsRegistration2.cxx b/Examples/DemonsRegistration2/DemonsRegistration2.cxx
new file mode 100644
index 0000000..6765b87
--- /dev/null
+++ b/Examples/DemonsRegistration2/DemonsRegistration2.cxx
@@ -0,0 +1,125 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+// This example is based on ITK's DeformableRegistration2.cxx example
+
+
+#include <SimpleITK.h>
+#include <iostream>
+#include <stdlib.h>
+#include <iomanip>
+
+namespace sitk = itk::simple;
+
+
+class IterationUpdate
+  : public sitk::Command
+{
+public:
+  IterationUpdate( const sitk::FastSymmetricForcesDemonsRegistrationFilter &m)
+    : m_Filter(m)
+    {}
+
+  virtual void Execute( )
+    {
+      // use sitk's output operator for std::vector etc..
+      using sitk::operator<<;
+
+      // stash the stream state
+      std::ios  state(NULL);
+      state.copyfmt(std::cout);
+      std::cout << std::fixed << std::setfill(' ') << std::setprecision( 5 );
+      std::cout << std::setw(3) << m_Filter.GetElapsedIterations();
+      std::cout << " = " << std::setw(10) << m_Filter.GetMetric();
+      std::cout << std::endl;
+
+      std::cout.copyfmt(state);
+    }
+
+private:
+  const sitk::FastSymmetricForcesDemonsRegistrationFilter &m_Filter;
+
+};
+
+
+
+int main(int argc, char *argv[])
+{
+
+  if ( argc < 4 )
+    {
+    std::cerr << "Usage: " << argv[0] << " <fixedImageFilter> <movingImageFile> [initialTransformFile] <outputTransformFile>" << std::endl;
+    return 1;
+    }
+
+  sitk::Image fixed = sitk::ReadImage( argv[1] );
+
+  sitk::Image moving = sitk::ReadImage( argv[2] );
+
+  sitk::HistogramMatchingImageFilter matcher;
+  if ( fixed.GetPixelID() == sitk::sitkUInt8
+       || fixed.GetPixelID() == sitk::sitkInt8 )
+    {
+    matcher.SetNumberOfHistogramLevels( 128 );
+    }
+  else
+    {
+    matcher.SetNumberOfHistogramLevels( 1024 );
+    }
+  matcher.SetNumberOfMatchPoints( 7 );
+  matcher.ThresholdAtMeanIntensityOn();
+
+  moving = matcher.Execute(moving, fixed);
+
+  sitk::FastSymmetricForcesDemonsRegistrationFilter filter;
+
+  IterationUpdate cmd(filter);
+  filter.AddCommand( sitk::sitkIterationEvent, cmd );
+
+  filter.SetNumberOfIterations( 200 );
+  filter.SetStandardDeviations( 1.0 );
+
+  sitk::Image displacementField;
+
+  if ( argc > 4 )
+    {
+
+    sitk::Transform initialTransform = sitk::ReadTransform( argv[3] );
+    argv[3] = argv[4];
+    --argc;
+
+    sitk::TransformToDisplacementFieldFilter toDisplacementFilter;
+    toDisplacementFilter.SetReferenceImage(fixed);
+    displacementField = toDisplacementFilter.Execute(initialTransform);
+    displacementField = filter.Execute( fixed, moving, displacementField );
+    }
+  else
+    {
+    displacementField = filter.Execute( fixed, moving );
+    }
+
+  std::cout << "-------" << std::endl;
+  std::cout << "Number Of Iterations: " << filter.GetElapsedIterations() << std::endl;
+  std::cout << " RMS: " << filter.GetRMSChange() << std::endl;
+
+  sitk::DisplacementFieldTransform outTx( displacementField );
+
+  sitk::WriteTransform(outTx, argv[3]);
+
+  return 0;
+}
diff --git a/Examples/DemonsRegistration2/DemonsRegistration2.py b/Examples/DemonsRegistration2/DemonsRegistration2.py
new file mode 100755
index 0000000..f13fadc
--- /dev/null
+++ b/Examples/DemonsRegistration2/DemonsRegistration2.py
@@ -0,0 +1,91 @@
+#!/usr/bin/env python
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+
+from __future__ import print_function
+
+import SimpleITK as sitk
+import sys
+import os
+
+
+def command_iteration(filter) :
+    print("{0:3} = {1:10.5f}".format(filter.GetElapsedIterations(),
+                                    filter.GetMetric()))
+
+if len ( sys.argv ) < 4:
+    print( "Usage: {0} <fixedImageFilter> <movingImageFile> [initialTransformFile] <outputTransformFile>".format(sys.argv[0]))
+    sys.exit ( 1 )
+
+
+fixed = sitk.ReadImage(sys.argv[1])
+
+moving = sitk.ReadImage(sys.argv[2])
+
+matcher = sitk.HistogramMatchingImageFilter()
+if ( fixed.GetPixelID() in ( sitk.sitkUInt8, sitk.sitkInt8 ) ):
+     matcher.SetNumberOfHistogramLevels(128)
+else:
+     matcher.SetNumberOfHistogramLevels(1024)
+matcher.SetNumberOfMatchPoints(7)
+matcher.ThresholdAtMeanIntensityOn()
+moving = matcher.Execute(moving,fixed)
+
+demons = sitk.FastSymmetricForcesDemonsRegistrationFilter()
+demons.SetNumberOfIterations(200)
+demons.SetStandardDeviations(1.0)
+
+demons.AddCommand( sitk.sitkIterationEvent, lambda: command_iteration(demons) )
+
+if len( sys.argv ) > 4:
+    initialTransform = sitk.ReadTransform(sys.argv[3])
+    sys.argv[-1] = sys.argv.pop()
+
+    toDisplacementFilter = sitk.TransformToDisplacementFieldFilter()
+    toDisplacementFilter.SetReferenceImage(fixed)
+
+    displacementField = toDisplacementFilter.Execute(initialTransform)
+
+    displacementField = demons.Execute(fixed, moving, displacementField)
+
+else:
+
+    displacementField = demons.Execute(fixed, moving)
+
+
+print("-------")
+print("Number Of Iterations: {0}".format(demons.GetElapsedIterations()))
+print(" RMS: {0}".format(demons.GetRMSChange()))
+
+outTx = sitk.DisplacementFieldTransform(displacementField)
+
+sitk.WriteTransform(outTx, sys.argv[3])
+
+if (not "SITK_NOSHOW" in os.environ):
+
+    resampler = sitk.ResampleImageFilter()
+    resampler.SetReferenceImage(fixed);
+    resampler.SetInterpolator(sitk.sitkLinear)
+    resampler.SetDefaultPixelValue(100)
+    resampler.SetTransform(outTx)
+
+    out = resampler.Execute(moving)
+    simg1 = sitk.Cast(sitk.RescaleIntensity(fixed), sitk.sitkUInt8)
+    simg2 = sitk.Cast(sitk.RescaleIntensity(out), sitk.sitkUInt8)
+    cimg = sitk.Compose(simg1, simg2, simg1/2.+simg2/2.)
+    sitk.Show( cimg, "DeformableRegistration1 Composition" )
diff --git a/Examples/DicomImagePrintTags/CMakeLists.txt b/Examples/DicomImagePrintTags/CMakeLists.txt
new file mode 100644
index 0000000..b197cef
--- /dev/null
+++ b/Examples/DicomImagePrintTags/CMakeLists.txt
@@ -0,0 +1,23 @@
+
+if(NOT BUILD_TESTING)
+  return()
+endif()
+
+sitk_add_python_test( Example.DicomImagePrintTags
+  "${CMAKE_CURRENT_SOURCE_DIR}/DicomImagePrintTags.py"
+    DATA{${SimpleITK_DATA_ROOT}/Input/DicomSeries/Image0075.dcm}
+  )
+if( WRAP_PYTHON )
+  set_tests_properties( Python.Example.DicomImagePrintTags
+    PROPERTIES PASS_REGULAR_EXPRESSION "\\(0008|0060\\) = = \"MR\"")
+endif()
+
+sitk_add_r_test( Example.DicomImagePrintTags
+  "--file=${CMAKE_CURRENT_SOURCE_DIR}/DicomImagePrintTags.R"
+  --args
+    DATA{${SimpleITK_DATA_ROOT}/Input/DicomSeries/Image0075.dcm}
+  )
+if(WRAP_R)
+  set_tests_properties( R.Example.DicomImagePrintTags
+    PROPERTIES PASS_REGULAR_EXPRESSION "\\(0008|0060\\) = = \"MR\"")
+endif()
diff --git a/Examples/DicomImagePrintTags/DicomImagePrintTags.R b/Examples/DicomImagePrintTags/DicomImagePrintTags.R
new file mode 100644
index 0000000..b36e8a7
--- /dev/null
+++ b/Examples/DicomImagePrintTags/DicomImagePrintTags.R
@@ -0,0 +1,39 @@
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+# Run with:
+#
+# Rscript --vanilla DicomImagePrintTags.R input_file
+#
+
+library(SimpleITK)
+
+args <- commandArgs( TRUE )
+
+if (length(args) <  1) {
+   write("Usage arguments: <input_file>", stderr())
+   quit(1)
+}
+
+inputImage <- ReadImage(args[[1]])
+
+keys <- inputImage$GetMetaDataKeys()
+
+for ( k in keys)
+{
+ print(sprintf("(%s) = \"%s\"", k, inputImage$GetMetaData(k)))
+}
diff --git a/Examples/DicomImagePrintTags/DicomImagePrintTags.py b/Examples/DicomImagePrintTags/DicomImagePrintTags.py
new file mode 100755
index 0000000..357d562
--- /dev/null
+++ b/Examples/DicomImagePrintTags/DicomImagePrintTags.py
@@ -0,0 +1,38 @@
+#!/usr/bin/env python
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+
+from __future__ import print_function
+
+import SimpleITK as sitk
+import sys, os
+
+if len ( sys.argv ) < 2:
+    print( "Usage: DicomImagePrintTags <input_file>" )
+    sys.exit ( 1 )
+
+reader = sitk.ImageFileReader()
+
+reader.SetFileName( sys.argv[1] )
+reader.LoadPrivateTagsOn();
+
+inputImage = reader.Execute()
+
+for k in inputImage.GetMetaDataKeys():
+    v = inputImage.GetMetaData(k)
+    print("({0}) = = \"{1}\"".format(k,v))
diff --git a/Examples/DicomSeriesReadModifyWrite/CMakeLists.txt b/Examples/DicomSeriesReadModifyWrite/CMakeLists.txt
new file mode 100644
index 0000000..4cb5fb5
--- /dev/null
+++ b/Examples/DicomSeriesReadModifyWrite/CMakeLists.txt
@@ -0,0 +1,12 @@
+
+if(NOT BUILD_TESTING)
+  return()
+endif()
+
+set(out_dir "${TEST_HARNESS_TEMP_DIRECTORY}/Python.DicomSeriesReadModifySeriesWrite")
+file(MAKE_DIRECTORY ${out_dir})
+sitk_add_python_test( Example.DicomSeriesReadModifySeriesWrite
+  "${CMAKE_CURRENT_SOURCE_DIR}/DicomSeriesReadModifySeriesWrite.py"
+    DATA{${SimpleITK_DATA_ROOT}/Input/DicomSeries/,REGEX:Image[0-9]+.dcm}
+    "${out_dir}"
+  )
diff --git a/Examples/DicomSeriesReadModifyWrite/DicomSeriesReadModifySeriesWrite.py b/Examples/DicomSeriesReadModifyWrite/DicomSeriesReadModifySeriesWrite.py
new file mode 100644
index 0000000..c5ccd69
--- /dev/null
+++ b/Examples/DicomSeriesReadModifyWrite/DicomSeriesReadModifySeriesWrite.py
@@ -0,0 +1,92 @@
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+
+from __future__ import print_function
+
+import SimpleITK as sitk
+
+import sys, time, os
+
+if len( sys.argv ) < 3:
+    print( "Usage: python " + __file__ + " <input_directory_with_DICOM_series> <output_directory>" )
+    sys.exit ( 1 )
+
+
+# Read the original series. First obtain the series file names using the
+# image series reader.
+data_directory = sys.argv[1]
+series_IDs = sitk.ImageSeriesReader.GetGDCMSeriesIDs(data_directory)
+if not series_IDs:
+    print("ERROR: given directory \""+data_directory+"\" does not contain a DICOM series.")
+    sys.exit(1)
+series_file_names = sitk.ImageSeriesReader.GetGDCMSeriesFileNames(data_directory, series_IDs[0])
+
+# Second, to construct a proper volume from the series we must read
+# the series with the image series reader.
+series_reader = sitk.ImageSeriesReader()
+series_reader.SetFileNames(series_file_names)
+image3D = series_reader.Execute()
+
+# Lastly, to load the image's DICOM meta-data dictionaries, we read
+# each image using an image reader that is set to load all DICOM tags
+# (public+private). The resulting images contain their DICOM
+# meta-data dictionaries.
+image_reader = sitk.ImageFileReader()
+image_reader.LoadPrivateTagsOn()
+image_list = []
+for file_name in series_file_names:
+    image_reader.SetFileName(file_name)
+    img = image_reader.Execute()
+    image_list.append(img)
+
+
+
+# Modify the image (blurring)
+filtered_image = sitk.DiscreteGaussian(image3D)
+
+# Write the 3D image as a series
+# IMPORTANT: There are many DICOM tags that need to be updated when you modify an
+#            original image. This is a delicate opration and requires knowlege of
+#            the DICOM standard. This example only modifies some. For a more complete
+#            list of tags that need to be modified see:
+#                           http://gdcm.sourceforge.net/wiki/index.php/Writing_DICOM
+
+writer = sitk.ImageFileWriter()
+# Use the study/seriers/frame of reference information given in the meta-data
+# dictionary and not the automatically generated information from the file IO
+writer.KeepOriginalImageUIDOn()
+modification_time = time.strftime("%H%M%S")
+modification_date = time.strftime("%Y%m%d")
+for i in range(filtered_image.GetDepth()):
+    image_slice = filtered_image[:,:,i]
+    original_slice = image_list[i]
+    # Copy the meta-data except the rescale-intercept, rescale-slope
+    for k in original_slice.GetMetaDataKeys():
+        if k!="0028|1052" and k!= "0028|1053":
+            image_slice.SetMetaData(k, original_slice.GetMetaData(k))
+    # Set relevant keys indicating the change, modify or remove private tags as needed
+    image_slice.SetMetaData("0008|0031", modification_time)
+    image_slice.SetMetaData("0008|0021", modification_date)
+    image_slice.SetMetaData("0008|0008", "DERIVED\SECONDARY")
+    # Each of the UID components is a number (cannot start with zero) and separated by a '.'
+    # We create a unique series ID using the date and time.
+    image_slice.SetMetaData("0020|000e", "1.2.826.0.1.3680043.2.1125."+modification_date+".1"+modification_time)
+    # Write to the output directory and add the extension dcm if not there, to force writing is in DICOM format.
+    writer.SetFileName(os.path.join(sys.argv[2], os.path.basename(series_file_names[i])) + ('' if os.path.splitext(series_file_names[i])[1] == '.dcm' else '.dcm'))
+    writer.Execute(image_slice)
+sys.exit( 0 )
diff --git a/Examples/DicomSeriesReader/CMakeLists.txt b/Examples/DicomSeriesReader/CMakeLists.txt
new file mode 100644
index 0000000..c9a80b0
--- /dev/null
+++ b/Examples/DicomSeriesReader/CMakeLists.txt
@@ -0,0 +1,46 @@
+
+add_executable ( DicomSeriesReader DicomSeriesReader.cxx )
+target_link_libraries ( DicomSeriesReader ${SimpleITK_LIBRARIES} )
+
+if(NOT BUILD_TESTING)
+  return()
+endif()
+
+sitk_add_test(NAME CXX.Example.DicomSeriesReader
+  COMMAND "${ITK_TEST_DRIVER}"
+    --compare-MD5
+      "${TEST_HARNESS_TEMP_DIRECTORY}/CXX.DicomSeriesReader.nrrd"
+      "8e65f711d450b6b466c6d76a667ecb72"
+    $<TARGET_FILE:DicomSeriesReader>
+      DATA{${SimpleITK_DATA_ROOT}/Input/DicomSeries/,REGEX:Image[0-9]+.dcm}
+      "${TEST_HARNESS_TEMP_DIRECTORY}/CXX.DicomSeriesReader.nrrd"
+  )
+
+sitk_add_python_test( Example.DicomSeriesReader
+  "${CMAKE_CURRENT_SOURCE_DIR}/DicomSeriesReader.py"
+  --compare-MD5
+  "${TEST_HARNESS_TEMP_DIRECTORY}/DicomSeriesReader.nrrd"
+  "8e65f711d450b6b466c6d76a667ecb72"
+    DATA{${SimpleITK_DATA_ROOT}/Input/DicomSeries/,REGEX:Image[0-9]+.dcm}
+    "${TEST_HARNESS_TEMP_DIRECTORY}/DicomSeriesReader.nrrd"
+  )
+
+sitk_add_lua_test( Example.DicomSeriesReader
+  "${CMAKE_CURRENT_SOURCE_DIR}/DicomSeriesReader.lua"
+  --compare-MD5
+  "${TEST_HARNESS_TEMP_DIRECTORY}/DicomSeriesReader.nrrd"
+  "8e65f711d450b6b466c6d76a667ecb72"
+    DATA{${SimpleITK_DATA_ROOT}/Input/DicomSeries/,REGEX:Image[0-9]+.dcm}
+    "${TEST_HARNESS_TEMP_DIRECTORY}/DicomSeriesReader.nrrd"
+  )
+
+sitk_add_r_test( Example.DicomSeriesReader
+  "--file=${CMAKE_CURRENT_SOURCE_DIR}/DicomSeriesReader.R"
+  --compare-MD5
+    "${TEST_HARNESS_TEMP_DIRECTORY}/RDicomSeriesReader.nrrd"
+    "8e65f711d450b6b466c6d76a667ecb72"
+  --args
+    DATA{${SimpleITK_DATA_ROOT}/Input/DicomSeries/,REGEX:Image[0-9]+.dcm}
+    "${TEST_HARNESS_TEMP_DIRECTORY}/RDicomSeriesReader.nrrd"
+  )
+
diff --git a/Examples/DicomSeriesReader/DicomSeriesReader.R b/Examples/DicomSeriesReader/DicomSeriesReader.R
new file mode 100644
index 0000000..13bd925
--- /dev/null
+++ b/Examples/DicomSeriesReader/DicomSeriesReader.R
@@ -0,0 +1,49 @@
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+# Run with:
+#
+# Rscript --vanilla DicomSeriesReader.R input_directory output_file
+#
+
+
+library(SimpleITK)
+
+args <- commandArgs( TRUE )
+
+if (length(args) <  2) {
+   write("Usage arguments: <input_directory> <output_file>", stderr())
+   quit(1)
+}
+
+
+cat( "Reading Dicom directory:", args[[1]] )
+
+reader <- ImageSeriesReader()
+
+dicomNames <- ImageSeriesReader_GetGDCMSeriesFileNames(args[[1]])
+reader$SetFileNames(dicomNames)
+
+image <- reader$Execute()
+
+size <- image$GetSize()
+
+cat ("Image size:", size[1], size[2], size[3])
+
+cat("Writing image:", args[[2]])
+
+WriteImage(image, args[[2]])
diff --git a/Examples/DicomSeriesReader/DicomSeriesReader.cxx b/Examples/DicomSeriesReader/DicomSeriesReader.cxx
new file mode 100644
index 0000000..6a00b49
--- /dev/null
+++ b/Examples/DicomSeriesReader/DicomSeriesReader.cxx
@@ -0,0 +1,53 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+// This one header will include all SimpleITK filters and external
+// objects.
+#include <SimpleITK.h>
+#include <iostream>
+#include <stdlib.h>
+
+
+// create convenient namespace alias
+namespace sitk = itk::simple;
+
+int main ( int argc, char* argv[] ) {
+
+  if ( argc < 3 ) {
+    std::cerr << "Usage: " << argv[0] << " <input_directory> <output_file>\n";
+    return 1;
+  }
+
+  std::cout << "Reading Dicom directory: " << argv[1] << std::endl;
+
+  // Read the Dicom image series
+  sitk::ImageSeriesReader reader;
+  const std::vector<std::string> dicom_names = sitk::ImageSeriesReader::GetGDCMSeriesFileNames( argv[1] );
+  reader.SetFileNames( dicom_names );
+
+  sitk::Image image = reader.Execute();
+
+  std::vector<unsigned int> size = image.GetSize();
+  std::cout << "Image size: " << size[0] << " " << size[1] << " " << size[2] << std::endl;
+
+  std::cout << "Writing " << argv[2] << std::endl;
+
+  sitk::WriteImage( image, argv[2] );
+
+  return 0;
+}
diff --git a/Examples/DicomSeriesReader/DicomSeriesReader.lua b/Examples/DicomSeriesReader/DicomSeriesReader.lua
new file mode 100644
index 0000000..bbe14ac
--- /dev/null
+++ b/Examples/DicomSeriesReader/DicomSeriesReader.lua
@@ -0,0 +1,38 @@
+--=========================================================================
+--
+--  Copyright Insight Software Consortium
+--
+--  Licensed under the Apache License, Version 2.0 (the "License");
+--  you may not use this file except in compliance with the License.
+--  You may obtain a copy of the License at
+--
+--         http://www.apache.org/licenses/LICENSE-2.0.txt
+--
+--  Unless required by applicable law or agreed to in writing, software
+--  distributed under the License is distributed on an "AS IS" BASIS,
+--  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+--  See the License for the specific language governing permissions and
+--  limitations under the License.
+--
+--=========================================================================
+
+require "SimpleITK"
+
+if #arg < 2 then
+  print ( "Usage: DicomSeriesReader <input_directory> <output_file>" )
+  os.exit ( 1 )
+end
+
+print( "Reading Dicom directory:", arg[1] )
+reader = SimpleITK.ImageSeriesReader()
+
+dicom_names = SimpleITK.ImageSeriesReader.GetGDCMSeriesFileNames( arg[1] )
+reader:SetFileNames ( dicom_names )
+
+image = reader:Execute();
+
+size = image:GetSize();
+print("Image size:", size[0], size[1], size[2]);
+
+print( "Writing image:", arg[2] )
+SimpleITK.WriteImage( image, arg[2] )
diff --git a/Examples/DicomSeriesReader/DicomSeriesReader.py b/Examples/DicomSeriesReader/DicomSeriesReader.py
new file mode 100755
index 0000000..a8d3a97
--- /dev/null
+++ b/Examples/DicomSeriesReader/DicomSeriesReader.py
@@ -0,0 +1,46 @@
+#!/usr/bin/env python
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+
+from __future__ import print_function
+
+import SimpleITK as sitk
+import sys, os
+
+if len ( sys.argv ) < 3:
+    print( "Usage: DicomSeriesReader <input_directory> <output_file>" )
+    sys.exit ( 1 )
+
+
+print( "Reading Dicom directory:", sys.argv[1] )
+reader = sitk.ImageSeriesReader()
+
+dicom_names = reader.GetGDCMSeriesFileNames( sys.argv[1] )
+reader.SetFileNames(dicom_names)
+
+image = reader.Execute()
+
+size = image.GetSize()
+print( "Image size:", size[0], size[1], size[2] )
+
+print( "Writing image:", sys.argv[2] )
+
+sitk.WriteImage( image, sys.argv[2] )
+
+if ( not "SITK_NOSHOW" in os.environ ):
+    sitk.Show( image, "Dicom Series" )
diff --git a/Examples/FilterProgressReporting/CMakeLists.txt b/Examples/FilterProgressReporting/CMakeLists.txt
new file mode 100644
index 0000000..f18dbf5
--- /dev/null
+++ b/Examples/FilterProgressReporting/CMakeLists.txt
@@ -0,0 +1,74 @@
+
+add_executable ( FilterProgressReporting FilterProgressReporting.cxx )
+target_link_libraries ( FilterProgressReporting ${SimpleITK_LIBRARIES} )
+
+if(NOT BUILD_TESTING)
+  return()
+endif()
+
+sitk_add_test(NAME CXX.Example.FilterProgressReporting
+  COMMAND "${ITK_TEST_DRIVER}"
+    $<TARGET_FILE:FilterProgressReporting>
+    DATA{${SimpleITK_DATA_ROOT}/Input/RA-Short.nrrd}
+    2.0
+    "${TEST_HARNESS_TEMP_DIRECTORY}/CXX.FilterProgressReporting.nrrd"
+  )
+set_tests_properties( CXX.Example.FilterProgressReporting
+  PROPERTIES PASS_REGULAR_EXPRESSION "DiscreteGaussianImageFilter Progress" )
+
+sitk_add_csharp_test( Example.FilterProgressReporting
+  "${CMAKE_CURRENT_SOURCE_DIR}/FilterProgressReporting.cs"
+  DATA{${SimpleITK_DATA_ROOT}/Input/RA-Short.nrrd}
+  "2.0"
+  "${TEST_HARNESS_TEMP_DIRECTORY}/CSharp.FilterProgressReporting.nrrd"
+  )
+if( WRAP_CSHARP )
+  set_tests_properties( CSharp.Example.FilterProgressReporting
+    PROPERTIES PASS_REGULAR_EXPRESSION "DiscreteGaussianImageFilter Progress" )
+endif()
+
+sitk_add_java_test( Example.FilterProgressReporting
+  "${CMAKE_CURRENT_SOURCE_DIR}/FilterProgressReporting.java"
+  DATA{${SimpleITK_DATA_ROOT}/Input/RA-Short.nrrd}
+  "2.0"
+  "${TEST_HARNESS_TEMP_DIRECTORY}/Java.FilterProgressReporting.nrrd"
+  )
+if( WRAP_JAVA )
+  set_tests_properties( Java.Example.FilterProgressReporting
+    PROPERTIES PASS_REGULAR_EXPRESSION "DiscreteGaussianImageFilter Progress" )
+endif()
+
+sitk_add_python_test( Example.FilterProgressReporting
+  "${CMAKE_CURRENT_SOURCE_DIR}/FilterProgressReporting.py"
+  DATA{${SimpleITK_DATA_ROOT}/Input/RA-Short.nrrd}
+  "2.0"
+  "${TEST_HARNESS_TEMP_DIRECTORY}/PythonFilterProgressReporting.nrrd"
+  )
+if( WRAP_PYTHON )
+  set_tests_properties( Python.Example.FilterProgressReporting
+    PROPERTIES PASS_REGULAR_EXPRESSION "DiscreteGaussianImageFilter Progress" )
+endif()
+
+
+sitk_add_r_test( Example.FilterProgressReporting
+  "--file=${CMAKE_CURRENT_SOURCE_DIR}/FilterProgressReporting.R"
+  --args
+    DATA{${SimpleITK_DATA_ROOT}/Input/RA-Short.nrrd}
+    2.0
+    "${TEST_HARNESS_TEMP_DIRECTORY}/R.FilterProgressReporting.nrrd"
+  )
+if( WRAP_R )
+  set_tests_properties( R.Example.FilterProgressReporting
+    PROPERTIES PASS_REGULAR_EXPRESSION "StartEvent" )
+endif()
+
+sitk_add_ruby_test( Example.FilterProgressReporting
+  "${CMAKE_CURRENT_SOURCE_DIR}/FilterProgressReporting.rb"
+    DATA{${SimpleITK_DATA_ROOT}/Input/RA-Short.nrrd}
+    2.0
+    "${TEST_HARNESS_TEMP_DIRECTORY}/R.FilterProgressReporting.nrrd"
+ )
+if( WRAP_RUBY )
+  set_tests_properties( Ruby.Example.FilterProgressReporting
+    PROPERTIES PASS_REGULAR_EXPRESSION "DiscreteGaussianImageFilter Progress" )
+endif()
diff --git a/Examples/FilterProgressReporting/FilterProgressReporting.R b/Examples/FilterProgressReporting/FilterProgressReporting.R
new file mode 100644
index 0000000..0ab7f1c
--- /dev/null
+++ b/Examples/FilterProgressReporting/FilterProgressReporting.R
@@ -0,0 +1,57 @@
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+# Run with:
+#
+# Rscript --vanilla FilterProgressReporting.R input variance output
+#
+
+
+library(SimpleITK)
+
+args <- commandArgs( TRUE )
+
+if (length(args) <  3){
+   write("Usage arguments: <input> <variance> <output>", stderr())
+   quit(1)
+}
+
+reader <- ImageFileReader()
+reader$SetFileName(args[[1]])
+image = reader$Execute()
+
+pixelID <- image$GetPixelID()
+
+gaussian <- DiscreteGaussianImageFilter()
+gaussian$SetVariance( as.numeric(args[2]) )
+
+##! [R lambda command]
+gaussian$AddCommand( 'sitkStartEvent',  function(method) {cat("StartEvent\n")} )
+##! [R lambda command]
+
+cmd <- RCommand()
+gaussian$AddCommand( 'sitkEndEvent', cmd )
+
+image = gaussian$Execute( image )
+
+caster <- CastImageFilter()
+caster$SetOutputPixelType( pixelID )
+image = caster$Execute( image )
+
+writer <- ImageFileWriter()
+writer$SetFileName( args[[3]] )
+writer$Execute( image )
diff --git a/Examples/FilterProgressReporting/FilterProgressReporting.cs b/Examples/FilterProgressReporting/FilterProgressReporting.cs
new file mode 100644
index 0000000..ada2436
--- /dev/null
+++ b/Examples/FilterProgressReporting/FilterProgressReporting.cs
@@ -0,0 +1,71 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+using System;
+using itk.simple;
+
+namespace itk.simple.examples {
+
+//! [csharp director command]
+  class MyCommand : Command {
+
+    private ProcessObject m_ProcessObject;
+
+    public MyCommand(ProcessObject po){
+      m_ProcessObject = po;
+    }
+
+    public override void Execute() {
+      Console.WriteLine("{0} Progress: {1:0.00}", m_ProcessObject.GetName(), m_ProcessObject.GetProgress() );
+    }
+  }
+//! [csharp director command]
+
+  class FilterProgressReporting {
+
+    static void Main(string[] args) {
+      try {
+        if (args.Length < 3) {
+          Console.WriteLine("Usage: {0} <input> <variance> <output>", args[0]);
+          return;
+        }
+        // Read input image
+        ImageFileReader reader = new ImageFileReader();
+        reader.SetFileName(args[0]);
+        Image image = reader.Execute();
+
+        // Execute Gaussian smoothing filter
+        DiscreteGaussianImageFilter filter = new DiscreteGaussianImageFilter();
+        filter.SetVariance(Double.Parse(args[1]));
+
+        MyCommand cmd = new MyCommand(filter);
+        filter.AddCommand(EventEnum.sitkProgressEvent, cmd);
+
+        image = filter.Execute(image);
+
+        // Write output image
+        ImageFileWriter writer = new ImageFileWriter();
+        writer.SetFileName(args[2]);
+        writer.Execute(image);
+
+      } catch (Exception ex) {
+        Console.WriteLine(ex);
+      }
+    }
+  }
+}
diff --git a/Examples/FilterProgressReporting/FilterProgressReporting.cxx b/Examples/FilterProgressReporting/FilterProgressReporting.cxx
new file mode 100644
index 0000000..4525424
--- /dev/null
+++ b/Examples/FilterProgressReporting/FilterProgressReporting.cxx
@@ -0,0 +1,98 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+// This one header will include all SimpleITK filters and external
+// objects.
+#include <SimpleITK.h>
+#include <iostream>
+#include <stdlib.h>
+#include <iomanip>
+
+// create convenient namespace alias
+namespace sitk = itk::simple;
+
+// Create A Command Callback to be registered with the ProcessObject
+// on the ProgressEvent
+//
+// Internally we maintain a reference to the ProcessObject passed
+// during construction. Therefore, it would be an error to execute the
+// Execute method after the ProcessObject is delete. But this class
+// can be created on the stack, with out issue.
+class ProgressUpdate
+  : public sitk::Command
+{
+public:
+  ProgressUpdate(const sitk::ProcessObject &po)
+    : m_Process(po)
+    {}
+
+  virtual void Execute( )
+    {
+      // stash the stream state
+      std::ios  state(NULL);
+      state.copyfmt(std::cout);
+      std::cout << std::fixed << std::setw( 3 ) << std::setprecision( 2 );
+
+      // Print the Progress "Active Measurement"
+      std::cout << m_Process.GetName()<< " Progress: " << m_Process.GetProgress() << std::endl;
+
+      std::cout.copyfmt(state);
+    }
+private:
+  const sitk::ProcessObject &m_Process;
+};
+
+
+int main ( int argc, char* argv[] ) {
+
+  if ( argc < 4 ) {
+    std::cerr << "Usage: " << argv[0] << " <input> <variance> <output>\n";
+    return 1;
+  }
+
+  // Read the image file
+  sitk::ImageFileReader reader;
+  reader.SetFileName ( std::string ( argv[1] ) );
+  sitk::Image image = reader.Execute();
+
+  // This filters perform a gaussian bluring with sigma in physical
+  // space. The output image will be of real type.
+  sitk::DiscreteGaussianImageFilter gaussian;
+  gaussian.SetVariance ( atof ( argv[2] ) );
+
+  // Construct our custom command on the stack
+  ProgressUpdate cmd(gaussian);
+  // register it with the filter for the ProgressEvent
+  gaussian.AddCommand( sitk::sitkProgressEvent, cmd );
+
+  sitk::Image blurredImage = gaussian.Execute ( image );
+
+  // Covert the real output image back to the original pixel type, to
+  // make writing easier, as many file formats don't support real
+  // pixels.
+  sitk::CastImageFilter caster;
+  caster.SetOutputPixelType( image.GetPixelID() );
+  sitk::Image outputImage = caster.Execute( blurredImage );
+
+  // write the image
+  sitk::ImageFileWriter writer;
+  writer.SetFileName ( std::string ( argv[3] ) );
+  writer.Execute ( outputImage );
+
+  return 0;
+}
diff --git a/Examples/FilterProgressReporting/FilterProgressReporting.java b/Examples/FilterProgressReporting/FilterProgressReporting.java
new file mode 100644
index 0000000..3d53379
--- /dev/null
+++ b/Examples/FilterProgressReporting/FilterProgressReporting.java
@@ -0,0 +1,67 @@
+/*=========================================================================
+ *
+ *  Copyright Insight Software Consortium
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *         http://www.apache.org/licenses/LICENSE-2.0.txt
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ *=========================================================================*/
+
+import org.itk.simple.*;
+
+class MyCommand  extends Command {
+
+  private ProcessObject m_ProcessObject;
+
+  public MyCommand(ProcessObject po) {
+    super();
+    m_ProcessObject=po;
+  }
+
+  public void execute() {
+    double progress = m_ProcessObject.getProgress();
+    System.out.format("%s Progress: %f\n", m_ProcessObject.getName(), progress);
+  }
+}
+
+class FilterProgressReporting {
+
+  public static void main(String argv[]) {
+    if ( argv.length < 3 ) {
+      System.out.format("Usage: java %s <input> <variance> <output>", "FilterProgressReporting" );
+      System.exit(-1);
+    }
+
+      org.itk.simple.ImageFileReader reader = new org.itk.simple.ImageFileReader();
+      reader.setFileName(argv[0]);
+      Image img = reader.execute();
+
+      DiscreteGaussianImageFilter filter = new DiscreteGaussianImageFilter();
+      filter.setVariance(Double.valueOf( argv[1] ).doubleValue());
+
+      MyCommand cmd = new MyCommand(filter);
+      filter.addCommand(EventEnum.sitkProgressEvent, cmd);
+
+      Image blurredImg = filter.execute(img);
+
+      CastImageFilter caster = new CastImageFilter();
+      caster.setOutputPixelType(img.getPixelID());
+      Image castImg = caster.execute(blurredImg);
+
+      ImageFileWriter writer = new ImageFileWriter();
+      writer.setFileName(argv[2]);
+
+      writer.execute(castImg);
+
+    }
+
+}
diff --git a/Examples/FilterProgressReporting/FilterProgressReporting.py b/Examples/FilterProgressReporting/FilterProgressReporting.py
new file mode 100755
index 0000000..2f724be
--- /dev/null
+++ b/Examples/FilterProgressReporting/FilterProgressReporting.py
@@ -0,0 +1,71 @@
+#!/usr/bin/env python
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+
+from __future__ import print_function
+
+import SimpleITK as sitk
+import sys
+import os
+
+if len ( sys.argv ) < 4:
+    print( "Usage: "+sys.argv[0]+ " <input> <variance> <output>" )
+    sys.exit ( 1 )
+
+##! [python director command]
+class MyCommand(sitk.Command):
+    def __init__(self, po):
+        # required
+        super(MyCommand,self).__init__()
+        self.processObject = po
+
+    def Execute(self):
+        print("{0} Progress: {1:1.2f}".format(self.processObject.GetName(),self.processObject.GetProgress()))
+##! [python director command]
+
+reader = sitk.ImageFileReader()
+reader.SetFileName ( sys.argv[1] )
+image = reader.Execute()
+
+pixelID = image.GetPixelID()
+
+gaussian = sitk.DiscreteGaussianImageFilter()
+gaussian.SetVariance( float ( sys.argv[2] ) )
+
+
+##! [python lambda command]
+gaussian.AddCommand(sitk.sitkStartEvent, lambda: print("StartEvent"))
+gaussian.AddCommand(sitk.sitkEndEvent, lambda: print("EndEvent"))
+##! [python lambda command]
+
+cmd = MyCommand(gaussian)
+gaussian.AddCommand(sitk.sitkProgressEvent, cmd)
+
+image = gaussian.Execute ( image )
+
+caster = sitk.CastImageFilter()
+caster.SetOutputPixelType( pixelID )
+image = caster.Execute( image )
+
+writer = sitk.ImageFileWriter()
+writer.SetFileName ( sys.argv[3] )
+writer.Execute ( image );
+
+
+if ( not "SITK_NOSHOW" in os.environ ):
+    sitk.Show( image, "Simple Gaussian" )
diff --git a/Examples/FilterProgressReporting/FilterProgressReporting.rb b/Examples/FilterProgressReporting/FilterProgressReporting.rb
new file mode 100644
index 0000000..f6c1dc0
--- /dev/null
+++ b/Examples/FilterProgressReporting/FilterProgressReporting.rb
@@ -0,0 +1,67 @@
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+require 'simpleitk'
+
+if ARGV.length != 3 then
+  puts "Usage: SimpleGaussian <input> <sigma> <output>";
+  exit( 1 )
+end
+
+## [ruby director command]
+# Derive a class from SimpleITK Command class to be used to observe
+# events and report progress.
+class MyCommand < Simpleitk::Command
+  def initialize(po)
+    # Explicit call to supoer class initlaizer is required to
+    # initialize the SWIG director class to enable overloaded methods
+    super()
+    @po = po
+  end
+
+  # The Command method to be executed on the event from the filter.
+  def execute
+    puts "%s Progress: %0.2f" % [@po.get_name, @po.get_progress]
+  end
+end
+## [ruby director command]
+
+reader = Simpleitk::ImageFileReader.new
+reader.set_file_name( ARGV[0] )
+image = reader.execute
+
+inputPixelType = image.get_pixel_idvalue
+
+
+gaussian = Simpleitk::DiscreteGaussianImageFilter.new
+gaussian.set_variance ARGV[1].to_f
+
+# create a new MyCommand class, the references between the objects is
+# automatically taked care of. The connection will automatically be
+# removed when either object is deleted.
+cmd = MyCommand.new gaussian
+gaussian.add_command Simpleitk::SitkProgressEvent, cmd
+
+image = gaussian.execute image
+
+caster = Simpleitk::CastImageFilter.new
+caster.set_output_pixel_type inputPixelType
+image = caster.execute image
+
+writer = Simpleitk::ImageFileWriter.new
+writer.set_file_name ARGV[2]
+writer.execute image
diff --git a/Examples/ITKIntegration/CMakeLists.txt b/Examples/ITKIntegration/CMakeLists.txt
new file mode 100644
index 0000000..857d9a6
--- /dev/null
+++ b/Examples/ITKIntegration/CMakeLists.txt
@@ -0,0 +1,6 @@
+
+find_package(ITK REQUIRED ) 
+include(${ITK_USE_FILE})
+
+add_executable ( ITKIntegration ITKIntegration.cxx )
+target_link_libraries ( ITKIntegration ${SimpleITK_LIBRARIES} )
\ No newline at end of file
diff --git a/Examples/ITKIntegration/ITKIntegration.cxx b/Examples/ITKIntegration/ITKIntegration.cxx
new file mode 100644
index 0000000..1839701
--- /dev/null
+++ b/Examples/ITKIntegration/ITKIntegration.cxx
@@ -0,0 +1,181 @@
+/*=========================================================================
+ *
+ *  Copyright Insight Software Consortium
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *         http://www.apache.org/licenses/LICENSE-2.0.txt
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ *=========================================================================*/
+#if defined(_MSC_VER)
+#pragma warning ( disable : 4786 )
+#endif
+
+// SimpleITK includes
+#include "SimpleITK.h"
+
+// ITK includes
+#include "itkImage.h"
+#include "itkCurvatureFlowImageFilter.h"
+
+// create convenient namespace alias
+namespace sitk = itk::simple;
+
+/**
+ * This example shows how ITK and SimpleITK can be used together to work
+ * on the same data. We use the same example application as the one presented
+ * in the Segmentation/ConnectedThresholdImageFilter.cxx example, but we
+ * replace the SimpleITK version of CurvatureFlowImageFilter with the
+ * corresponding ITK version. While not terribly useful in this situation since
+ * CurvatureFlowImageFilter is already available in SimpleITK this demonstrates
+ * how ITK filters that have not been converted for SimpleITK can still be used
+ * in a SimpleITK context
+ */
+int main( int argc, char *argv[])
+{
+
+  //
+  // Check command line parameters
+  //
+  if( argc < 7 )
+    {
+    std::cerr << "Missing Parameters " << std::endl;
+    std::cerr << "Usage: " << argv[0];
+    std::cerr << " inputImage outputImage lowerThreshold upperThreshold "
+      "seedX seedY [seed2X seed2Y ... ]" << std::endl;
+    return 1;
+    }
+
+
+  //
+  // Read the image
+  //
+  sitk::ImageFileReader reader;
+  reader.SetFileName( std::string( argv[1] ) );
+  sitk::Image image = reader.Execute();
+
+
+  //
+  // Set up writer
+  //
+  sitk::ImageFileWriter writer;
+  writer.SetFileName( std::string( argv[2] ) );
+
+  //////
+  // Blur using CurvatureFlowImageFilter
+  //
+  // Here we demonstrate the use of the ITK version of CurvatureFlowImageFilter
+  // instead of the SimpleITK version.
+  //////
+
+  //
+  // First, define the typedefs that correspond to the types of the input
+  // image. This requires foreknowlege of the data type of the input image.
+  //
+  const unsigned int                                 Dimension = 2;
+  typedef float                                      InternalPixelType;
+  typedef itk::Image< InternalPixelType, Dimension > InternalImageType;
+
+  //
+  // We must check the the image dimension and the pixel type of the
+  // SimpleITK image match the ITK image we will cast to.s
+  //
+  if ( image.GetDimension() != Dimension )
+    {
+    std::cerr << "Input image is not a " << Dimension << " dimensional image as expected!" << std::endl;
+    return 1;
+    }
+
+  //
+  // The read sitk::Image could be any pixel type. Cast the image, to
+  // float so we know what type we have.
+  //
+  sitk::CastImageFilter caster;
+  caster.SetOutputPixelType( sitk::sitkFloat32 );
+  image = caster.Execute( image );
+
+  //
+  // Extract the itk image from the SimpleITK image
+  //
+  InternalImageType::Pointer itkImage =
+    dynamic_cast <InternalImageType*>( image.GetITKBase() );
+
+  //
+  // Always check the results of dynamic_casts
+  //
+  if ( itkImage.IsNull() )
+    {
+    std::cerr << "Unexpected error converting SimpleITK image to ITK image!" << std::endl;
+    return 1;
+    }
+
+  //
+  // Set up the blur filter and attach it to the pipeline.
+  //
+  typedef itk::CurvatureFlowImageFilter< InternalImageType, InternalImageType >
+                                                     BlurFilterType;
+  BlurFilterType::Pointer blurFilter = BlurFilterType::New();
+  blurFilter->SetInput( itkImage );
+  blurFilter->SetNumberOfIterations( 5 );
+  blurFilter->SetTimeStep( 0.125 );
+
+
+
+  //
+  // Execute the  Blur pipeline by calling Update() on the blur filter.
+  //
+  blurFilter->Update();
+
+
+  //
+  // Return to the simpleITK setting by making a SimpleITK image using the
+  // output of the blur filter.
+  //
+  sitk::Image blurredImage = sitk::Image( blurFilter->GetOutput() );
+
+
+  //////
+  // Now that we have finished the ITK section, we return to the SimpleITK API
+  //////
+
+
+  //
+  // Set up ConnectedThresholdImageFilter for segmentation
+  //
+  sitk::ConnectedThresholdImageFilter segmentationFilter;
+  segmentationFilter.SetLower( atof( argv[3] ) );
+  segmentationFilter.SetUpper( atof( argv[4] ) );
+  segmentationFilter.SetReplaceValue( 255 );
+
+  for (int i = 5; i+1 < argc; i+=2)
+    {
+    std::vector<unsigned int> seed;
+    seed.push_back(atoi(argv[i]));
+    seed.push_back(atoi(argv[i+1]));
+    segmentationFilter.AddSeed(seed);
+    std::cout << "Adding a seed at ";
+    for( unsigned int j = 0; j < seed.size(); ++i )
+      {
+      std::cout << seed[j] << " ";
+      }
+    std::cout << std::endl;
+    }
+
+  sitk::Image outImage = segmentationFilter.Execute(blurredImage);
+
+
+  //
+  // Write out the resulting file
+  //
+  writer.Execute(outImage);
+
+  return 0;
+}
diff --git a/Examples/ImageRegistrationMethod1/CMakeLists.txt b/Examples/ImageRegistrationMethod1/CMakeLists.txt
new file mode 100644
index 0000000..067bfd1
--- /dev/null
+++ b/Examples/ImageRegistrationMethod1/CMakeLists.txt
@@ -0,0 +1,76 @@
+
+add_executable ( ImageRegistrationMethod1 ImageRegistrationMethod1.cxx )
+target_link_libraries ( ImageRegistrationMethod1 ${SimpleITK_LIBRARIES} )
+
+if(NOT BUILD_TESTING)
+  return()
+endif()
+
+sitk_add_test(NAME CXX.Example.ImageRegistrationMethod1
+  COMMAND
+  $<TARGET_FILE:ImageRegistrationMethod1>
+    DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceBorder20.png}
+    DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceShifted13x17y.png}
+    ${TEST_HARNESS_TEMP_DIRECTORY}/CXXImageRegistrationMethod1Test.hdf5
+  TRANSFORM_COMPARE
+    ${TEST_HARNESS_TEMP_DIRECTORY}/CXXImageRegistrationMethod1Test.hdf5
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/displacement_13x17y.mha}
+    0.02
+  )
+
+sitk_add_csharp_test( Example.ImageRegistrationMethod1
+  "${CMAKE_CURRENT_SOURCE_DIR}/ImageRegistrationMethod1.cs"
+  DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceBorder20.png}
+  DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceShifted13x17y.png}
+  ${TEST_HARNESS_TEMP_DIRECTORY}/CSharpImageRegistrationMethod11Test.hdf5
+  TRANSFORM_COMPARE
+    ${TEST_HARNESS_TEMP_DIRECTORY}/CSharpImageRegistrationMethod11Test.hdf5
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/displacement_13x17y.mha}
+    0.02
+  )
+
+sitk_add_java_test( Example.ImageRegistrationMethod1
+  "${CMAKE_CURRENT_SOURCE_DIR}/ImageRegistrationMethod1.java"
+  DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceBorder20.png}
+  DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceShifted13x17y.png}
+  ${TEST_HARNESS_TEMP_DIRECTORY}/JavaImageRegistrationMethod11Test.hdf5
+  TRANSFORM_COMPARE
+    ${TEST_HARNESS_TEMP_DIRECTORY}/JavaImageRegistrationMethod11Test.hdf5
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/displacement_13x17y.mha}
+    0.02
+  )
+
+sitk_add_lua_test( Example.ImageRegistrationMethod1
+  "${CMAKE_CURRENT_SOURCE_DIR}/ImageRegistrationMethod1.lua"
+    ${TEST_HARNESS_DATA_DIRECTORY}/Input/BrainProtonDensitySliceBorder20.png
+    ${TEST_HARNESS_DATA_DIRECTORY}/Input/BrainProtonDensitySliceShifted13x17y.png
+    ${TEST_HARNESS_TEMP_DIRECTORY}/LuaImageRegistrationMethod1Test.hdf5
+  TRANSFORM_COMPARE
+    ${TEST_HARNESS_TEMP_DIRECTORY}/LuaImageRegistrationMethod1Test.hdf5
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/displacement_13x17y.mha}
+    0.02
+    )
+
+sitk_add_python_test( Example.ImageRegistrationMethod1
+  "${CMAKE_CURRENT_SOURCE_DIR}/ImageRegistrationMethod1.py"
+  DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceBorder20.png}
+  DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceShifted13x17y.png}
+  ${TEST_HARNESS_TEMP_DIRECTORY}/PythonImageRegistrationMethod11Test.hdf5
+  TRANSFORM_COMPARE
+    ${TEST_HARNESS_TEMP_DIRECTORY}/PythonImageRegistrationMethod11Test.hdf5
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/displacement_13x17y.mha}
+    0.02
+  )
+
+sitk_add_r_test( Example.ImageRegistrationMethod1
+  "--file=${CMAKE_CURRENT_SOURCE_DIR}/ImageRegistrationMethod1.R"
+  --args
+    DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceBorder20.png}
+    DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceShifted13x17y.png}
+    ${TEST_HARNESS_TEMP_DIRECTORY}/RImageRegistrationMethod11Test.hdf5
+  TRANSFORM_COMPARE
+    ${TEST_HARNESS_TEMP_DIRECTORY}/RImageRegistrationMethod11Test.hdf5
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/displacement_13x17y.mha}
+    0.02
+  )
+
diff --git a/Examples/ImageRegistrationMethod1/ImageRegistrationMethod1.R b/Examples/ImageRegistrationMethod1/ImageRegistrationMethod1.R
new file mode 100644
index 0000000..632c530
--- /dev/null
+++ b/Examples/ImageRegistrationMethod1/ImageRegistrationMethod1.R
@@ -0,0 +1,59 @@
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+# Run with:
+#
+# Rscript --vanilla ImageRegistrationMethod1.R fixedImage movingImage outputTransform
+#
+
+
+library(SimpleITK)
+
+
+commandIteration <- function(method)
+{
+     res <- function() {
+     msg <- paste("Optimizer iteration number ", method$GetOptimizerIteration(),
+                  " = ", method$GetMetricValue(), " : ", method$GetOptimizerPosition(),
+                  "\n" )
+     cat(msg)
+    }
+    return(res)
+}
+
+args <- commandArgs( TRUE )
+
+if (length(args) != 3) {
+    stop("3 arguments expected - FixedImage, MovingImage, TransformFilename")
+}
+
+fixed <- ReadImage(args[[1]], 'sitkFloat32')
+
+moving <- ReadImage(args[[2]], 'sitkFloat32')
+
+
+Reg = ImageRegistrationMethod()
+Reg$SetMetricAsMeanSquares()
+Reg$SetOptimizerAsRegularStepGradientDescent(4.0, .01, 200 )
+Reg$SetInitialTransform(TranslationTransform(fixed$GetDimension()))
+Reg$SetInterpolator('sitkLinear')
+
+Reg$AddCommand('sitkIterationEvent', commandIteration(Reg))
+
+outTx = Reg$Execute(fixed, moving)
+
+WriteTransform(outTx, args[[3]])
diff --git a/Examples/ImageRegistrationMethod1/ImageRegistrationMethod1.cs b/Examples/ImageRegistrationMethod1/ImageRegistrationMethod1.cs
new file mode 100644
index 0000000..29cce0d
--- /dev/null
+++ b/Examples/ImageRegistrationMethod1/ImageRegistrationMethod1.cs
@@ -0,0 +1,92 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+using System;
+using itk.simple;
+
+
+namespace itk.simple.examples {
+
+
+  class IterationUpdate : Command {
+
+    private ImageRegistrationMethod m_Method;
+
+    public IterationUpdate(ImageRegistrationMethod m) {
+      m_Method=m;
+    }
+
+    public override void Execute() {
+      VectorDouble pos = m_Method.GetOptimizerPosition();
+      Console.WriteLine("{0:3} = {1:10.5} : [{2}, {3}]",
+                        m_Method.GetOptimizerIteration(),
+                        m_Method.GetMetricValue(),
+                        pos[0], pos[1]);
+    }
+  }
+
+  class ImageRegistrationMethod1 {
+
+    static void Main(string[] args) {
+
+      if ( args.Length < 3 )
+        {
+          Console.WriteLine("Usage: %s <fixedImageFilter> <movingImageFile> <outputTransformFile>\n", "ImageRegistrationMethod1");
+         return;
+        }
+
+      ImageFileReader reader = new ImageFileReader();
+      reader.SetOutputPixelType( PixelIDValueEnum.sitkFloat32 );
+
+      reader.SetFileName(args[0]);
+      Image fixedImage = reader.Execute();
+
+      reader.SetFileName(args[1]);
+      Image movingImage = reader.Execute();
+
+      ImageRegistrationMethod R = new  ImageRegistrationMethod();
+      R.SetMetricAsMeanSquares();
+      double maxStep = 4.0;
+      double minStep = 0.01;
+      uint numberOfIterations = 200;
+      double relaxationFactor = 0.5;
+      R.SetOptimizerAsRegularStepGradientDescent( maxStep,
+                                                  minStep,
+                                                  numberOfIterations,
+                                                  relaxationFactor );
+      R.SetInitialTransform( new TranslationTransform( fixedImage.GetDimension() ) );
+      R.SetInterpolator( InterpolatorEnum.sitkLinear );
+
+      IterationUpdate cmd = new IterationUpdate(R);
+      R.AddCommand(EventEnum.sitkIterationEvent, cmd);
+
+      Transform outTx = R.Execute( fixedImage, movingImage );
+
+      // System.out.println("-------");
+      // System.out.println(outTx.toString());
+      // System.out.format("Optimizer stop condition: %s\n", R.getOptimizerStopConditionDescription());
+      // System.out.format(" Iteration: %d\n", R.getOptimizerIteration());
+      // System.out.format(" Metric value: %f\n", R.getMetricValue());
+
+      outTx.WriteTransform(args[2]);
+
+    }
+
+  }
+
+}
diff --git a/Examples/ImageRegistrationMethod1/ImageRegistrationMethod1.cxx b/Examples/ImageRegistrationMethod1/ImageRegistrationMethod1.cxx
new file mode 100644
index 0000000..afc410c
--- /dev/null
+++ b/Examples/ImageRegistrationMethod1/ImageRegistrationMethod1.cxx
@@ -0,0 +1,101 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+// This one header will include all SimpleITK filters and external
+// objects.
+#include <SimpleITK.h>
+#include <iostream>
+#include <stdlib.h>
+#include <iomanip>
+
+namespace sitk = itk::simple;
+
+
+
+class IterationUpdate
+  : public sitk::Command
+{
+public:
+  IterationUpdate( const sitk::ImageRegistrationMethod &m)
+    : m_Method(m)
+    {}
+
+  virtual void Execute( )
+    {
+      // use sitk's output operator for std::vector etc..
+      using sitk::operator<<;
+
+      // stash the stream state
+      std::ios  state(NULL);
+      state.copyfmt(std::cout);
+      std::cout << std::fixed << std::setfill(' ') << std::setprecision( 5 );
+      std::cout << std::setw(3) << m_Method.GetOptimizerIteration();
+      std::cout << " = " << std::setw(10) << m_Method.GetMetricValue();
+      std::cout << " : " << m_Method.GetOptimizerPosition() << std::endl;
+
+      std::cout.copyfmt(state);
+    }
+
+private:
+  const sitk::ImageRegistrationMethod &m_Method;
+
+};
+
+
+int main(int argc, char *argv[])
+{
+
+  if ( argc < 4 )
+    {
+    std::cerr << "Usage: " << argv[0] << " <fixedImageFilter> <movingImageFile> <outputTransformFile>" << std::endl;
+    return 1;
+    }
+
+  sitk::Image fixed = sitk::ReadImage( argv[1], sitk::sitkFloat32 );
+
+  sitk::Image moving = sitk::ReadImage( argv[2], sitk::sitkFloat32 );
+
+  sitk::ImageRegistrationMethod R;
+  R.SetMetricAsMeanSquares();
+  const double maxStep = 4.0;
+  const double minStep = 0.01;
+  const unsigned int numberOfIterations = 200;
+  const double relaxationFactor = 0.5;
+  R.SetOptimizerAsRegularStepGradientDescent( maxStep,
+                                              minStep,
+                                              numberOfIterations,
+                                              relaxationFactor );
+  R.SetInitialTransform( sitk::TranslationTransform( fixed.GetDimension() ) );
+  R.SetInterpolator( sitk::sitkLinear );
+
+  IterationUpdate cmd(R);
+  R.AddCommand( sitk::sitkIterationEvent, cmd);
+
+  sitk::Transform outTx = R.Execute( fixed, moving );
+
+  std::cout << "-------" << std::endl;
+  std::cout << outTx.ToString() << std::endl;
+  std::cout << "Optimizer stop condition: " << R.GetOptimizerStopConditionDescription() << std::endl;
+  std::cout << " Iteration: " << R.GetOptimizerIteration() << std::endl;
+  std::cout << " Metric value: " << R.GetMetricValue() << std::endl;
+
+  sitk::WriteTransform(outTx, argv[3]);
+
+
+  return 0;
+}
diff --git a/Examples/ImageRegistrationMethod1/ImageRegistrationMethod1.java b/Examples/ImageRegistrationMethod1/ImageRegistrationMethod1.java
new file mode 100644
index 0000000..aae5f79
--- /dev/null
+++ b/Examples/ImageRegistrationMethod1/ImageRegistrationMethod1.java
@@ -0,0 +1,87 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+import org.itk.simple.*;
+
+
+class IterationUpdate  extends Command {
+
+  private ImageRegistrationMethod m_Method;
+
+  public IterationUpdate(ImageRegistrationMethod m) {
+    super();
+    m_Method=m;
+  }
+
+  public void execute() {
+    org.itk.simple.VectorDouble pos = m_Method.getOptimizerPosition();
+    System.out.format("%3d = %10.5f : [%f, %f]\n",
+                      m_Method.getOptimizerIteration(),
+                      m_Method.getMetricValue(),
+                      pos.get(0), pos.get(1));
+  }
+}
+
+class ImageRegistrationMethod1 {
+
+  public static void main(String argv[]) {
+
+  if ( argv.length < 3 )
+    {
+      System.out.format( "Usage: %s <fixedImageFilter> <movingImageFile> <outputTransformFile>\n", "ImageRegistrationMethod1");
+      System.exit(-1);
+    }
+
+  org.itk.simple.ImageFileReader reader = new org.itk.simple.ImageFileReader();
+  reader.setOutputPixelType( PixelIDValueEnum.sitkFloat32 );
+
+  reader.setFileName(argv[0]);
+  Image fixed = reader.execute();
+
+  reader.setFileName(argv[1]);
+  Image moving = reader.execute();
+
+  org.itk.simple.ImageRegistrationMethod R = new  org.itk.simple.ImageRegistrationMethod();
+  R.setMetricAsMeanSquares();
+  double maxStep = 4.0;
+  double minStep = 0.01;
+  int numberOfIterations = 200;
+  double relaxationFactor = 0.5;
+  R.setOptimizerAsRegularStepGradientDescent( maxStep,
+                                              minStep,
+                                              numberOfIterations,
+                                              relaxationFactor );
+  R.setInitialTransform( new org.itk.simple.TranslationTransform( fixed.getDimension() ) );
+  R.setInterpolator( InterpolatorEnum.sitkLinear );
+
+  IterationUpdate cmd = new IterationUpdate(R);
+  R.addCommand( EventEnum.sitkIterationEvent, cmd);
+
+  org.itk.simple.Transform outTx = R.execute( fixed, moving );
+
+  System.out.println("-------");
+  System.out.println(outTx.toString());
+  System.out.format("Optimizer stop condition: %s\n", R.getOptimizerStopConditionDescription());
+  System.out.format(" Iteration: %d\n", R.getOptimizerIteration());
+  System.out.format(" Metric value: %f\n", R.getMetricValue());
+
+  outTx.writeTransform(argv[2]);
+
+  }
+
+}
diff --git a/Examples/ImageRegistrationMethod1/ImageRegistrationMethod1.lua b/Examples/ImageRegistrationMethod1/ImageRegistrationMethod1.lua
new file mode 100644
index 0000000..bc5d798
--- /dev/null
+++ b/Examples/ImageRegistrationMethod1/ImageRegistrationMethod1.lua
@@ -0,0 +1,55 @@
+--=========================================================================
+--
+--  Copyright Insight Software Consortium
+--
+--  Licensed under the Apache License, Version 2.0 (the "License");
+--  you may not use this file except in compliance with the License.
+--  You may obtain a copy of the License at
+--
+--         http://www.apache.org/licenses/LICENSE-2.0.txt
+--
+--  Unless required by applicable law or agreed to in writing, software
+--  distributed under the License is distributed on an "AS IS" BASIS,
+--  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+--  See the License for the specific language governing permissions and
+--  limitations under the License.
+--
+--=========================================================================
+
+require "SimpleITK"
+
+function command_iteration(method)
+    print(method)
+    pos = method:GetOptimizedPosition()
+    print( string.format("%3d = %f : (%f, %f)", method:GetOptimizerIteration(),
+        method:GetMetricValue(), pos[1], pos[2] ) )
+end
+
+if #arg < 3 then
+    print( string.format("Usage: %s <fixedImageFilter> <movingImageFile> <outputTransformFile>", arg[0]) )
+    os.exit ( 1 )
+end
+
+fixed = SimpleITK.ReadImage( arg[1], SimpleITK.sitkFloat32 )
+
+moving = SimpleITK.ReadImage( arg[2], SimpleITK.sitkFloat32 )
+
+
+R = SimpleITK.ImageRegistrationMethod()
+R:SetMetricAsMeanSquares()
+R:SetOptimizerAsRegularStepGradientDescent( 4.0, .01, 200 )
+R:SetInitialTransform( SimpleITK.Transform( fixed:GetDimension(), SimpleITK.sitkTranslation ) )
+R:SetInterpolator( SimpleITK.sitkLinear )
+
+-- callback for progress reporting doesn't work yet in Lua
+-- R:AddCommand( SimpleITK.sitkIterationEvent, command_iteration(R) )
+
+outTx = R:Execute(fixed, moving)
+
+print("-------")
+print(outTx)
+print(string.format("Optimizer stop condition: %s", R:GetOptimizerStopConditionDescription()) )
+print(" Iteration: ", R:GetOptimizerIteration() )
+print(" Metric value: ", R:GetMetricValue() )
+
+SimpleITK.WriteTransform(outTx,  arg[3])
diff --git a/Examples/ImageRegistrationMethod1/ImageRegistrationMethod1.py b/Examples/ImageRegistrationMethod1/ImageRegistrationMethod1.py
new file mode 100755
index 0000000..ae8efad
--- /dev/null
+++ b/Examples/ImageRegistrationMethod1/ImageRegistrationMethod1.py
@@ -0,0 +1,71 @@
+#!/usr/bin/env python
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+
+from __future__ import print_function
+
+import SimpleITK as sitk
+import sys
+import os
+
+
+def command_iteration(method) :
+    print("{0:3} = {1:10.5f} : {2}".format(method.GetOptimizerIteration(),
+                                   method.GetMetricValue(),
+                                   method.GetOptimizerPosition()))
+
+if len ( sys.argv ) < 4:
+    print( "Usage: {0} <fixedImageFilter> <movingImageFile> <outputTransformFile>".format(sys.argv[0]))
+    sys.exit ( 1 )
+
+
+fixed = sitk.ReadImage(sys.argv[1], sitk.sitkFloat32)
+
+moving = sitk.ReadImage(sys.argv[2], sitk.sitkFloat32)
+
+R = sitk.ImageRegistrationMethod()
+R.SetMetricAsMeanSquares()
+R.SetOptimizerAsRegularStepGradientDescent(4.0, .01, 200 )
+R.SetInitialTransform(sitk.TranslationTransform(fixed.GetDimension()))
+R.SetInterpolator(sitk.sitkLinear)
+
+R.AddCommand( sitk.sitkIterationEvent, lambda: command_iteration(R) )
+
+outTx = R.Execute(fixed, moving)
+
+print("-------")
+print(outTx)
+print("Optimizer stop condition: {0}".format(R.GetOptimizerStopConditionDescription()))
+print(" Iteration: {0}".format(R.GetOptimizerIteration()))
+print(" Metric value: {0}".format(R.GetMetricValue()))
+
+sitk.WriteTransform(outTx,  sys.argv[3])
+
+if ( not "SITK_NOSHOW" in os.environ ):
+
+    resampler = sitk.ResampleImageFilter()
+    resampler.SetReferenceImage(fixed);
+    resampler.SetInterpolator(sitk.sitkLinear)
+    resampler.SetDefaultPixelValue(100)
+    resampler.SetTransform(outTx)
+
+    out = resampler.Execute(moving)
+    simg1 = sitk.Cast(sitk.RescaleIntensity(fixed), sitk.sitkUInt8)
+    simg2 = sitk.Cast(sitk.RescaleIntensity(out), sitk.sitkUInt8)
+    cimg = sitk.Compose(simg1, simg2, simg1/2.+simg2/2.)
+    sitk.Show( cimg, "ImageRegistration1 Composition" )
diff --git a/Examples/ImageRegistrationMethod2/CMakeLists.txt b/Examples/ImageRegistrationMethod2/CMakeLists.txt
new file mode 100644
index 0000000..a99cabe
--- /dev/null
+++ b/Examples/ImageRegistrationMethod2/CMakeLists.txt
@@ -0,0 +1,32 @@
+add_executable ( ImageRegistrationMethod2 ImageRegistrationMethod2.cxx )
+target_link_libraries ( ImageRegistrationMethod2 ${SimpleITK_LIBRARIES} )
+
+if(NOT BUILD_TESTING)
+  return()
+endif()
+
+
+sitk_add_test(NAME CXX.Example.ImageRegistrationMethod2
+  COMMAND
+    $<TARGET_FILE:ImageRegistrationMethod2>
+    DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceBorder20.png}
+    DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceShifted13x17y.png}
+    ${TEST_HARNESS_TEMP_DIRECTORY}/CXXImageRegistrationMethod2Test.hdf5
+  TRANSFORM_COMPARE
+    ${TEST_HARNESS_TEMP_DIRECTORY}/CXXImageRegistrationMethod2Test.hdf5
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/displacement_13x17y.mha}
+    0.02
+  )
+
+sitk_add_python_test( Example.ImageRegistrationMethod2
+  "${CMAKE_CURRENT_SOURCE_DIR}/ImageRegistrationMethod2.py"
+  DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceBorder20.png}
+  DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceShifted13x17y.png}
+  ${TEST_HARNESS_TEMP_DIRECTORY}/PythonImageRegistrationMethod2Test.hdf5
+  TRANSFORM_COMPARE
+    ${TEST_HARNESS_TEMP_DIRECTORY}/PythonImageRegistrationMethod2Test.hdf5
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/displacement_13x17y.mha}
+    0.02
+  )
+
+
diff --git a/Examples/ImageRegistrationMethod2/ImageRegistrationMethod2.cxx b/Examples/ImageRegistrationMethod2/ImageRegistrationMethod2.cxx
new file mode 100644
index 0000000..88656d3
--- /dev/null
+++ b/Examples/ImageRegistrationMethod2/ImageRegistrationMethod2.cxx
@@ -0,0 +1,111 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+// This one header will include all SimpleITK filters and external
+// objects.
+#include <SimpleITK.h>
+
+#include <iostream>
+#include <stdlib.h>
+#include <iomanip>
+#include <numeric>
+
+namespace sitk = itk::simple;
+
+
+
+class IterationUpdate
+  : public sitk::Command
+{
+public:
+  IterationUpdate( const sitk::ImageRegistrationMethod &m)
+    : m_Method(m)
+    {}
+
+  virtual void Execute( )
+    {
+      // use sitk's output operator for std::vector etc..
+      using sitk::operator<<;
+
+      // stash the stream state
+      std::ios  state(NULL);
+      state.copyfmt(std::cout);
+      std::cout << std::fixed << std::setfill(' ') << std::setprecision( 5 );
+      std::cout << std::setw(3) << m_Method.GetOptimizerIteration();
+      std::cout << " = " << std::setw(7) << m_Method.GetMetricValue();
+      std::cout << " : " << m_Method.GetOptimizerPosition() << std::endl;
+
+      std::cout.copyfmt(state);
+    }
+
+private:
+  const sitk::ImageRegistrationMethod &m_Method;
+
+};
+
+
+int main(int argc, char *argv[])
+{
+
+  if ( argc < 4 )
+    {
+    std::cerr << "Usage: " << argv[0] << " <fixedImageFilter> <movingImageFile> <outputTransformFile>" << std::endl;
+    return 1;
+    }
+
+
+  sitk::Image fixed = sitk::ReadImage( argv[1], sitk::sitkFloat32 );
+  fixed = sitk::Normalize( fixed );
+  fixed = sitk::DiscreteGaussian( fixed, 2.0 );
+
+  sitk::Image moving = sitk::ReadImage( argv[2], sitk::sitkFloat32 );
+  moving = sitk::Normalize( moving );
+  moving = sitk::DiscreteGaussian( moving, 2.0);
+
+
+  sitk::ImageRegistrationMethod R;
+  R.SetMetricAsJointHistogramMutualInformation( );
+
+  const double learningRate = 1;
+  const unsigned int numberOfIterations = 200;
+  const double convergenceMinimumValue = 1e-4;
+  const unsigned int convergenceWindowSize=5;
+  R.SetOptimizerAsGradientDescentLineSearch ( learningRate,
+                                              numberOfIterations,
+                                              convergenceMinimumValue,
+                                              convergenceWindowSize);
+
+  R.SetInitialTransform( sitk::TranslationTransform( fixed.GetDimension() ) );
+  R.SetInterpolator( sitk::sitkLinear );
+
+  IterationUpdate cmd(R);
+  R.AddCommand( sitk::sitkIterationEvent, cmd);
+
+  sitk::Transform outTx = R.Execute( fixed, moving );
+
+  std::cout << "-------" << std::endl;
+  std::cout << outTx.ToString() << std::endl;
+  std::cout << "Optimizer stop condition: " << R.GetOptimizerStopConditionDescription() << std::endl;
+  std::cout << " Iteration: " << R.GetOptimizerIteration() << std::endl;
+  std::cout << " Metric value: " << R.GetMetricValue() << std::endl;
+
+  sitk::WriteTransform(outTx, argv[3]);
+
+
+  return 0;
+}
diff --git a/Examples/ImageRegistrationMethod2/ImageRegistrationMethod2.py b/Examples/ImageRegistrationMethod2/ImageRegistrationMethod2.py
new file mode 100755
index 0000000..db568a2
--- /dev/null
+++ b/Examples/ImageRegistrationMethod2/ImageRegistrationMethod2.py
@@ -0,0 +1,91 @@
+#!/usr/bin/env python
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+
+from __future__ import print_function
+from functools import reduce
+
+
+import SimpleITK as sitk
+import sys
+import os
+
+
+def command_iteration(method) :
+    print("{0:3} = {1:7.5f} : {2}".format(method.GetOptimizerIteration(),
+                                           method.GetMetricValue(),
+                                           method.GetOptimizerPosition()))
+
+
+
+if len ( sys.argv ) < 4:
+    print( "Usage: {0} <fixedImageFilter> <movingImageFile>  <outputTransformFile>".format(sys.argv[0]))
+    sys.exit ( 1 )
+
+pixelType = sitk.sitkFloat32
+
+fixed = sitk.ReadImage(sys.argv[1], sitk.sitkFloat32)
+fixed = sitk.Normalize(fixed)
+fixed = sitk.DiscreteGaussian(fixed, 2.0)
+
+
+moving = sitk.ReadImage(sys.argv[2], sitk.sitkFloat32)
+moving = sitk.Normalize(moving)
+moving = sitk.DiscreteGaussian(moving, 2.0)
+
+
+R = sitk.ImageRegistrationMethod()
+
+R.SetMetricAsJointHistogramMutualInformation()
+
+R.SetOptimizerAsGradientDescentLineSearch(learningRate=1.0,
+                                          numberOfIterations=200,
+                                          convergenceMinimumValue=1e-5,
+                                          convergenceWindowSize=5)
+
+R.SetInitialTransform(sitk.TranslationTransform(fixed.GetDimension()))
+
+R.SetInterpolator(sitk.sitkLinear)
+
+R.AddCommand( sitk.sitkIterationEvent, lambda: command_iteration(R) )
+
+outTx = R.Execute(fixed, moving)
+
+print("-------")
+print(outTx)
+print("Optimizer stop condition: {0}".format(R.GetOptimizerStopConditionDescription()))
+print(" Iteration: {0}".format(R.GetOptimizerIteration()))
+print(" Metric value: {0}".format(R.GetMetricValue()))
+
+
+sitk.WriteTransform(outTx,  sys.argv[3])
+
+if ( not "SITK_NOSHOW" in os.environ ):
+
+    resampler = sitk.ResampleImageFilter()
+    resampler.SetReferenceImage(fixed);
+    resampler.SetInterpolator(sitk.sitkLinear)
+    resampler.SetDefaultPixelValue(1)
+    resampler.SetTransform(outTx)
+
+    out = resampler.Execute(moving)
+
+    simg1 = sitk.Cast(sitk.RescaleIntensity(fixed), sitk.sitkUInt8)
+    simg2 = sitk.Cast(sitk.RescaleIntensity(out), sitk.sitkUInt8)
+    cimg = sitk.Compose(simg1, simg2, simg1/2.+simg2/2.)
+    sitk.Show( cimg, "ImageRegistration2 Composition" )
diff --git a/Examples/ImageRegistrationMethod3/CMakeLists.txt b/Examples/ImageRegistrationMethod3/CMakeLists.txt
new file mode 100644
index 0000000..f40af0e
--- /dev/null
+++ b/Examples/ImageRegistrationMethod3/CMakeLists.txt
@@ -0,0 +1,26 @@
+
+if(NOT BUILD_TESTING)
+  return()
+endif()
+
+sitk_add_python_test( Example.ImageRegistrationMethod3Test1
+  "${CMAKE_CURRENT_SOURCE_DIR}/ImageRegistrationMethod3.py"
+  DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceBorder20.png}
+  DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceR10X13Y17.png}
+  ${TEST_HARNESS_TEMP_DIRECTORY}/PythonImageRegistrationMethod3Test1.hdf5
+  TRANSFORM_COMPARE
+    ${TEST_HARNESS_TEMP_DIRECTORY}/PythonImageRegistrationMethod3Test1.hdf5
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/ImageRegistrationMethod3Test1.mha}
+    0.02
+  )
+
+sitk_add_python_test( Example.ImageRegistrationMethod3Test2
+  "${CMAKE_CURRENT_SOURCE_DIR}/ImageRegistrationMethod3.py"
+  DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceBorder20.png}
+  DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceR10X13Y17S12.png}
+  ${TEST_HARNESS_TEMP_DIRECTORY}/PythonImageRegistrationMethod3Test2.hdf5
+  TRANSFORM_COMPARE
+    ${TEST_HARNESS_TEMP_DIRECTORY}/PythonImageRegistrationMethod3Test2.hdf5
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/ImageRegistrationMethod3Test2.mha}
+    0.03
+  )
diff --git a/Examples/ImageRegistrationMethod3/ImageRegistrationMethod3.py b/Examples/ImageRegistrationMethod3/ImageRegistrationMethod3.py
new file mode 100755
index 0000000..1214ec2
--- /dev/null
+++ b/Examples/ImageRegistrationMethod3/ImageRegistrationMethod3.py
@@ -0,0 +1,90 @@
+#!/usr/bin/env python
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+
+from __future__ import print_function
+from functools import reduce
+
+
+import SimpleITK as sitk
+import sys
+import os
+
+
+def command_iteration(method) :
+    if (method.GetOptimizerIteration()==0):
+        print("Estimated Scales: ", method.GetOptimizerScales())
+    print("{0:3} = {1:7.5f} : {2}".format(method.GetOptimizerIteration(),
+                                           method.GetMetricValue(),
+                                           method.GetOptimizerPosition()))
+
+
+
+if len ( sys.argv ) < 4:
+    print( "Usage: {0} <fixedImageFilter> <movingImageFile>  <outputTransformFile>".format(sys.argv[0]))
+    sys.exit ( 1 )
+
+pixelType = sitk.sitkFloat32
+
+fixed = sitk.ReadImage(sys.argv[1], sitk.sitkFloat32)
+
+
+moving = sitk.ReadImage(sys.argv[2], sitk.sitkFloat32)
+
+R = sitk.ImageRegistrationMethod()
+
+R.SetMetricAsCorrelation()
+
+R.SetOptimizerAsRegularStepGradientDescent(learningRate=2.0,
+                                           minStep=1e-4,
+                                           numberOfIterations=500,
+                                           gradientMagnitudeTolerance=1e-8 )
+R.SetOptimizerScalesFromIndexShift()
+
+tx = sitk.CenteredTransformInitializer(fixed, moving, sitk.Similarity2DTransform())
+R.SetInitialTransform(tx)
+
+R.SetInterpolator(sitk.sitkLinear)
+
+R.AddCommand( sitk.sitkIterationEvent, lambda: command_iteration(R) )
+
+outTx = R.Execute(fixed, moving)
+
+print("-------")
+print(outTx)
+print("Optimizer stop condition: {0}".format(R.GetOptimizerStopConditionDescription()))
+print(" Iteration: {0}".format(R.GetOptimizerIteration()))
+print(" Metric value: {0}".format(R.GetMetricValue()))
+
+
+sitk.WriteTransform(outTx,  sys.argv[3])
+
+if ( not "SITK_NOSHOW" in os.environ ):
+
+    resampler = sitk.ResampleImageFilter()
+    resampler.SetReferenceImage(fixed);
+    resampler.SetInterpolator(sitk.sitkLinear)
+    resampler.SetDefaultPixelValue(1)
+    resampler.SetTransform(outTx)
+
+    out = resampler.Execute(moving)
+
+    simg1 = sitk.Cast(sitk.RescaleIntensity(fixed), sitk.sitkUInt8)
+    simg2 = sitk.Cast(sitk.RescaleIntensity(out), sitk.sitkUInt8)
+    cimg = sitk.Compose(simg1, simg2, simg1/2.+simg2/2.)
+    sitk.Show( cimg, "ImageRegistration2 Composition" )
diff --git a/Examples/ImageRegistrationMethod4/CMakeLists.txt b/Examples/ImageRegistrationMethod4/CMakeLists.txt
new file mode 100644
index 0000000..630bc2a
--- /dev/null
+++ b/Examples/ImageRegistrationMethod4/CMakeLists.txt
@@ -0,0 +1,28 @@
+
+if(NOT BUILD_TESTING)
+  return()
+endif()
+
+sitk_add_python_test( Example.ImageRegistrationMethod4Test1
+  "${CMAKE_CURRENT_SOURCE_DIR}/ImageRegistrationMethod4.py"
+  DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceBorder20.png}
+  DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceShifted13x17y.png}
+  ${TEST_HARNESS_TEMP_DIRECTORY}/PythonImageRegistrationMethod4Test1.hdf5
+  24 1.0
+  )
+
+sitk_add_python_test( Example.ImageRegistrationMethod4Test2
+  "${CMAKE_CURRENT_SOURCE_DIR}/ImageRegistrationMethod4.py"
+  DATA{${SimpleITK_DATA_ROOT}/Input/BrainT1SliceBorder20.png}
+  DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceShifted13x17y.png}
+  ${TEST_HARNESS_TEMP_DIRECTORY}/PythonImageRegistrationMethod4Test2.hdf5
+  24 0.1
+  )
+
+sitk_add_python_test( Example.ImageRegistrationMethod4Test3
+  "${CMAKE_CURRENT_SOURCE_DIR}/ImageRegistrationMethod4.py"
+  DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceBorder20Mask.png}
+  DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceBorder20Mask.png}
+  ${TEST_HARNESS_TEMP_DIRECTORY}/PythonImageRegistrationMethod4Test3.hdf5
+  5 0.4
+  )
diff --git a/Examples/ImageRegistrationMethod4/ImageRegistrationMethod4.py b/Examples/ImageRegistrationMethod4/ImageRegistrationMethod4.py
new file mode 100755
index 0000000..e3836fb
--- /dev/null
+++ b/Examples/ImageRegistrationMethod4/ImageRegistrationMethod4.py
@@ -0,0 +1,82 @@
+#!/usr/bin/env python
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+
+from __future__ import print_function
+
+import SimpleITK as sitk
+import sys
+import os
+
+
+if len ( sys.argv ) < 4:
+    print( "Usage: {0} <fixedImageFilter> <movingImageFile> <outputTransformFile> <numberOfBins> <samplingPercentage>".format(sys.argv[0]))
+    sys.exit ( 1 )
+
+def command_iteration(method) :
+    print("{0:3} = {1:10.5f} : {2}".format(method.GetOptimizerIteration(),
+                                           method.GetMetricValue(),
+                                           method.GetOptimizerPosition()))
+
+
+fixed = sitk.ReadImage(sys.argv[1], sitk.sitkFloat32)
+moving = sitk.ReadImage(sys.argv[2], sitk.sitkFloat32)
+
+
+numberOfBins = 24
+samplingPercentage = 0.10
+
+if len ( sys.argv ) > 4:
+    numberOfBins = int(sys.argv[4])
+if len ( sys.argv ) > 5:
+    samplingPercentage = float(sys.argv[5])
+
+R = sitk.ImageRegistrationMethod()
+R.SetMetricAsMattesMutualInformation(numberOfBins)
+R.SetMetricSamplingPercentage(samplingPercentage,sitk.sitkWallClock)
+R.SetMetricSamplingStrategy(R.RANDOM)
+R.SetOptimizerAsRegularStepGradientDescent(1.0,.001,200)
+R.SetInitialTransform(sitk.TranslationTransform(fixed.GetDimension()))
+R.SetInterpolator(sitk.sitkLinear)
+
+R.AddCommand( sitk.sitkIterationEvent, lambda: command_iteration(R) )
+
+outTx = R.Execute(fixed, moving)
+
+
+print("-------")
+print(outTx)
+print("Optimizer stop condition: {0}".format(R.GetOptimizerStopConditionDescription()))
+print(" Iteration: {0}".format(R.GetOptimizerIteration()))
+print(" Metric value: {0}".format(R.GetMetricValue()))
+
+sitk.WriteTransform(outTx,  sys.argv[3])
+
+
+if ( not "SITK_NOSHOW" in os.environ ):
+    resampler = sitk.ResampleImageFilter()
+    resampler.SetReferenceImage(fixed);
+    resampler.SetInterpolator(sitk.sitkLinear)
+    resampler.SetDefaultPixelValue(100)
+    resampler.SetTransform(outTx)
+
+    out = resampler.Execute(moving)
+    simg1 = sitk.Cast(sitk.RescaleIntensity(fixed), sitk.sitkUInt8)
+    simg2 = sitk.Cast(sitk.RescaleIntensity(out), sitk.sitkUInt8)
+    cimg = sitk.Compose(simg1, simg2, simg1/2.+simg2/2.)
+    sitk.Show( cimg, "ImageRegistration4 Composition" )
diff --git a/Examples/ImageRegistrationMethodBSpline1/CMakeLists.txt b/Examples/ImageRegistrationMethodBSpline1/CMakeLists.txt
new file mode 100644
index 0000000..7c0000b
--- /dev/null
+++ b/Examples/ImageRegistrationMethodBSpline1/CMakeLists.txt
@@ -0,0 +1,31 @@
+
+add_executable ( ImageRegistrationMethodBSpline1 ImageRegistrationMethodBSpline1.cxx )
+target_link_libraries ( ImageRegistrationMethodBSpline1 ${SimpleITK_LIBRARIES} )
+
+if(NOT BUILD_TESTING)
+  return()
+endif()
+
+sitk_add_test(NAME CXX.Example.ImageRegistrationMethodBSpline1
+  COMMAND
+    $<TARGET_FILE:ImageRegistrationMethodBSpline1>
+    DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceBorder20.png}
+    DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceBSplined10.png}
+    ${TEST_HARNESS_TEMP_DIRECTORY}/CXXImageRegistrationMethodBSpline1.hdf5
+  TRANSFORM_COMPARE
+    ${TEST_HARNESS_TEMP_DIRECTORY}/CXXImageRegistrationMethodBSpline1.hdf5
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/ImageRegistrationMethodBSpline1.mha}
+    0.02
+  )
+
+
+sitk_add_python_test(Example.ImageRegistrationMethodBSpline1
+  "${CMAKE_CURRENT_SOURCE_DIR}/ImageRegistrationMethodBSpline1.py"
+    DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceBorder20.png}
+    DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceBSplined10.png}
+    ${TEST_HARNESS_TEMP_DIRECTORY}/PythonImageRegistrationMethodBSpline1.hdf5
+  TRANSFORM_COMPARE
+    ${TEST_HARNESS_TEMP_DIRECTORY}/PythonImageRegistrationMethodBSpline1.hdf5
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/ImageRegistrationMethodBSpline1.mha}
+    0.02
+  )
diff --git a/Examples/ImageRegistrationMethodBSpline1/ImageRegistrationMethodBSpline1.cxx b/Examples/ImageRegistrationMethodBSpline1/ImageRegistrationMethodBSpline1.cxx
new file mode 100644
index 0000000..84129a9
--- /dev/null
+++ b/Examples/ImageRegistrationMethodBSpline1/ImageRegistrationMethodBSpline1.cxx
@@ -0,0 +1,119 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+// This one header will include all SimpleITK filters and external
+// objects.
+#include <SimpleITK.h>
+#include <iostream>
+#include <stdlib.h>
+#include <iomanip>
+
+namespace sitk = itk::simple;
+
+// use sitk's output operator for std::vector etc..
+using sitk::operator<<;
+
+
+
+
+class IterationUpdate
+  : public sitk::Command
+{
+public:
+  IterationUpdate( const sitk::ImageRegistrationMethod &m)
+    : m_Method(m)
+    {}
+
+  virtual void Execute( )
+    {
+      // use sitk's output operator for std::vector etc..
+      using sitk::operator<<;
+
+      if (m_Method.GetOptimizerIteration() == 0)
+        {
+        std::cout << m_Method.ToString() << std::endl;
+        }
+
+      // stash the stream state
+      std::ios  state(NULL);
+      state.copyfmt(std::cout);
+      std::cout << std::fixed << std::setfill(' ') << std::setprecision( 5 );
+      std::cout << std::setw(3) << m_Method.GetOptimizerIteration();
+      std::cout << " = " << std::setw(10) << m_Method.GetMetricValue() << std::endl;
+      std::cout.copyfmt(state);
+    }
+
+private:
+  const sitk::ImageRegistrationMethod &m_Method;
+
+};
+
+
+
+
+int main(int argc, char *argv[])
+{
+
+  if ( argc < 4 )
+    {
+    std::cerr << "Usage: " << argv[0] << " <fixedImageFilter> <movingImageFile> <outputTransformFile>" << std::endl;
+    return 1;
+    }
+
+  sitk::Image fixed = sitk::ReadImage( argv[1], sitk::sitkFloat32 );
+
+  sitk::Image moving = sitk::ReadImage( argv[2], sitk::sitkFloat32 );
+
+  std::vector<unsigned int> transformDomainMeshSize(fixed.GetDimension(),8);
+
+  sitk::BSplineTransform tx = sitk::BSplineTransformInitializer(fixed, transformDomainMeshSize);
+
+  std::cout << "Initial Parameters:" << tx.GetParameters() << std::endl;
+
+
+  sitk::ImageRegistrationMethod R;
+  R.SetMetricAsCorrelation();
+
+  const double gradientConvergenceTolerance = 1e-5;
+  const unsigned int maximumNumberOfIterations = 100;
+  const unsigned int maximumNumberOfCorrections = 5;
+  const unsigned int maximumNumberOfFunctionEvaluations = 1000;
+  const double costFunctionConvergenceFactor = 1e+7;
+  R.SetOptimizerAsLBFGSB(gradientConvergenceTolerance,
+                         maximumNumberOfIterations,
+                         maximumNumberOfCorrections,
+                         maximumNumberOfFunctionEvaluations,
+                         costFunctionConvergenceFactor);
+  R.SetInitialTransform(tx, true);
+  R.SetInterpolator(sitk::sitkLinear);
+
+  IterationUpdate cmd(R);
+  R.AddCommand( sitk::sitkIterationEvent, cmd);
+
+  sitk::Transform outTx = R.Execute( fixed, moving );
+
+  std::cout << "-------" << std::endl;
+  std::cout << outTx.ToString() << std::endl;
+  std::cout << "Optimizer stop condition: " << R.GetOptimizerStopConditionDescription() << std::endl;
+  std::cout << " Iteration: " << R.GetOptimizerIteration() << std::endl;
+  std::cout << " Metric value: " << R.GetMetricValue() << std::endl;
+
+  sitk::WriteTransform(outTx, argv[3]);
+
+  return 0;
+}
diff --git a/Examples/ImageRegistrationMethodBSpline1/ImageRegistrationMethodBSpline1.py b/Examples/ImageRegistrationMethodBSpline1/ImageRegistrationMethodBSpline1.py
new file mode 100755
index 0000000..353e52b
--- /dev/null
+++ b/Examples/ImageRegistrationMethodBSpline1/ImageRegistrationMethodBSpline1.py
@@ -0,0 +1,82 @@
+#!/usr/bin/env python
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+
+from __future__ import print_function
+
+import SimpleITK as sitk
+import sys
+import os
+
+
+def command_iteration(method) :
+    print("{0:3} = {1:10.5f}".format(method.GetOptimizerIteration(),
+                                     method.GetMetricValue()))
+
+if len ( sys.argv ) < 4:
+    print( "Usage: {0} <fixedImageFilter> <movingImageFile> <outputTransformFile>".format(sys.argv[0]))
+    sys.exit ( 1 )
+
+
+fixed = sitk.ReadImage(sys.argv[1], sitk.sitkFloat32)
+
+moving = sitk.ReadImage(sys.argv[2], sitk.sitkFloat32)
+
+transformDomainMeshSize=[8]*moving.GetDimension()
+tx = sitk.BSplineTransformInitializer(fixed,
+                                      transformDomainMeshSize )
+
+print("Initial Parameters:");
+print(tx.GetParameters())
+
+R = sitk.ImageRegistrationMethod()
+R.SetMetricAsCorrelation()
+
+R.SetOptimizerAsLBFGSB(gradientConvergenceTolerance=1e-5,
+                       numberOfIterations=100,
+                       maximumNumberOfCorrections=5,
+                       maximumNumberOfFunctionEvaluations=1000,
+                       costFunctionConvergenceFactor=1e+7)
+R.SetInitialTransform(tx, True)
+R.SetInterpolator(sitk.sitkLinear)
+
+R.AddCommand( sitk.sitkIterationEvent, lambda: command_iteration(R) )
+
+outTx = R.Execute(fixed, moving)
+
+print("-------")
+print(outTx)
+print("Optimizer stop condition: {0}".format(R.GetOptimizerStopConditionDescription()))
+print(" Iteration: {0}".format(R.GetOptimizerIteration()))
+print(" Metric value: {0}".format(R.GetMetricValue()))
+
+sitk.WriteTransform(outTx,  sys.argv[3])
+
+if ( not "SITK_NOSHOW" in os.environ ):
+
+    resampler = sitk.ResampleImageFilter()
+    resampler.SetReferenceImage(fixed);
+    resampler.SetInterpolator(sitk.sitkLinear)
+    resampler.SetDefaultPixelValue(100)
+    resampler.SetTransform(outTx)
+
+    out = resampler.Execute(moving)
+    simg1 = sitk.Cast(sitk.RescaleIntensity(fixed), sitk.sitkUInt8)
+    simg2 = sitk.Cast(sitk.RescaleIntensity(out), sitk.sitkUInt8)
+    cimg = sitk.Compose(simg1, simg2, simg1/2.+simg2/2.)
+    sitk.Show( cimg, "ImageRegistration1 Composition" )
diff --git a/Examples/ImageRegistrationMethodBSpline2/CMakeLists.txt b/Examples/ImageRegistrationMethodBSpline2/CMakeLists.txt
new file mode 100644
index 0000000..88a62de
--- /dev/null
+++ b/Examples/ImageRegistrationMethodBSpline2/CMakeLists.txt
@@ -0,0 +1,15 @@
+
+if(NOT BUILD_TESTING)
+  return()
+endif()
+
+sitk_add_python_test(Example.ImageRegistrationMethodBSpline2
+  "${CMAKE_CURRENT_SOURCE_DIR}/ImageRegistrationMethodBSpline2.py"
+    DATA{${SimpleITK_DATA_ROOT}/Input/BrainT1SliceBorder20.png}
+    DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceBSplined10.png}
+    ${TEST_HARNESS_TEMP_DIRECTORY}/PythonImageRegistrationMethodBSpline2.hdf5
+  TRANSFORM_COMPARE
+    ${TEST_HARNESS_TEMP_DIRECTORY}/PythonImageRegistrationMethodBSpline2.hdf5
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/ImageRegistrationMethodBSpline2.mha}
+    0.02
+  )
diff --git a/Examples/ImageRegistrationMethodBSpline2/ImageRegistrationMethodBSpline2.py b/Examples/ImageRegistrationMethodBSpline2/ImageRegistrationMethodBSpline2.py
new file mode 100755
index 0000000..5b65756
--- /dev/null
+++ b/Examples/ImageRegistrationMethodBSpline2/ImageRegistrationMethodBSpline2.py
@@ -0,0 +1,90 @@
+#!/usr/bin/env python
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+
+from __future__ import print_function
+
+import SimpleITK as sitk
+import sys
+import os
+
+
+def command_iteration(method) :
+    print("{0:3} = {1:10.5f}".format(method.GetOptimizerIteration(),
+                                     method.GetMetricValue()))
+    print("\t#: ", len(method.GetOptimizerPosition()))
+
+
+def command_multi_iteration(method) :
+    print("--------- Resolution Changing ---------")
+
+
+if len ( sys.argv ) < 4:
+    print( "Usage: {0} <fixedImageFilter> <movingImageFile> <outputTransformFile>".format(sys.argv[0]))
+    sys.exit ( 1 )
+
+
+fixed = sitk.ReadImage(sys.argv[1], sitk.sitkFloat32)
+
+moving = sitk.ReadImage(sys.argv[2], sitk.sitkFloat32)
+
+transformDomainMeshSize=[10]*moving.GetDimension()
+tx = sitk.BSplineTransformInitializer(fixed,
+                                      transformDomainMeshSize )
+
+print("Initial Parameters:");
+print(tx.GetParameters())
+
+R = sitk.ImageRegistrationMethod()
+R.SetMetricAsMattesMutualInformation(50)
+R.SetOptimizerAsGradientDescentLineSearch(5.0, 100,
+                                          convergenceMinimumValue=1e-4,
+                                          convergenceWindowSize=5)
+R.SetOptimizerScalesFromPhysicalShift( )
+R.SetInitialTransform(tx)
+R.SetInterpolator(sitk.sitkLinear)
+
+R.SetShrinkFactorsPerLevel([6,2,1])
+R.SetSmoothingSigmasPerLevel([6,2,1])
+
+R.AddCommand( sitk.sitkIterationEvent, lambda: command_iteration(R) )
+R.AddCommand( sitk.sitkMultiResolutionIterationEvent, lambda: command_multi_iteration(R) )
+
+outTx = R.Execute(fixed, moving)
+
+print("-------")
+print(outTx)
+print("Optimizer stop condition: {0}".format(R.GetOptimizerStopConditionDescription()))
+print(" Iteration: {0}".format(R.GetOptimizerIteration()))
+print(" Metric value: {0}".format(R.GetMetricValue()))
+
+sitk.WriteTransform(outTx,  sys.argv[3])
+
+if ( not "SITK_NOSHOW" in os.environ ):
+
+    resampler = sitk.ResampleImageFilter()
+    resampler.SetReferenceImage(fixed);
+    resampler.SetInterpolator(sitk.sitkLinear)
+    resampler.SetDefaultPixelValue(100)
+    resampler.SetTransform(outTx)
+
+    out = resampler.Execute(moving)
+    simg1 = sitk.Cast(sitk.RescaleIntensity(fixed), sitk.sitkUInt8)
+    simg2 = sitk.Cast(sitk.RescaleIntensity(out), sitk.sitkUInt8)
+    cimg = sitk.Compose(simg1, simg2, simg1/2.+simg2/2.)
+    sitk.Show( cimg, "ImageRegistration1 Composition" )
diff --git a/Examples/ImageRegistrationMethodDisplacement1/CMakeLists.txt b/Examples/ImageRegistrationMethodDisplacement1/CMakeLists.txt
new file mode 100644
index 0000000..8546c0e
--- /dev/null
+++ b/Examples/ImageRegistrationMethodDisplacement1/CMakeLists.txt
@@ -0,0 +1,56 @@
+
+add_executable ( ImageRegistrationMethodDisplacement1 ImageRegistrationMethodDisplacement1.cxx )
+target_link_libraries ( ImageRegistrationMethodDisplacement1  ${SimpleITK_LIBRARIES} )
+
+if(NOT BUILD_TESTING)
+  return()
+endif()
+
+sitk_add_test(NAME CXX.Example.ImageRegistrationMethodDisplacement1
+  COMMAND
+    $<TARGET_FILE:ImageRegistrationMethodDisplacement1>
+    DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceBorder20.png}
+    DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceBSplined10.png}
+    ${TEST_HARNESS_TEMP_DIRECTORY}/ImageRegistrationMethodDisplacement1.hdf5
+ TRANSFORM_COMPARE
+    ${TEST_HARNESS_TEMP_DIRECTORY}/ImageRegistrationMethodDisplacement1.hdf5
+     DATA{${SimpleITK_DATA_ROOT}/Baseline/ImageRegistrationMethodDisplacement1.mha}
+    0.02
+  )
+
+
+sitk_add_test(NAME CXX.Example.ImageRegistrationMethodDisplacement1Test2
+  COMMAND
+    $<TARGET_FILE:ImageRegistrationMethodDisplacement1>
+    DATA{${SimpleITK_DATA_ROOT}/Input/r16slice_rigid.nii.gz}
+    DATA{${SimpleITK_DATA_ROOT}/Input/r64slice.nii.gz}
+    ${TEST_HARNESS_TEMP_DIRECTORY}/ImageRegistrationMethodDisplacement1Test2.hdf5
+ TRANSFORM_COMPARE
+    ${TEST_HARNESS_TEMP_DIRECTORY}/ImageRegistrationMethodDisplacement1Test2.hdf5
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/ImageRegistrationMethodDisplacement1Test2.mha}
+    0.02
+  )
+
+
+sitk_add_python_test(Example.ImageRegistrationMethodDisplacement1
+  "${CMAKE_CURRENT_SOURCE_DIR}/ImageRegistrationMethodDisplacement1.py"
+    DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceBorder20.png}
+    DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceBSplined10.png}
+    ${TEST_HARNESS_TEMP_DIRECTORY}/PythonImageRegistrationMethodDisplacement1.hdf5
+ TRANSFORM_COMPARE
+    ${TEST_HARNESS_TEMP_DIRECTORY}/PythonImageRegistrationMethodDisplacement1.hdf5
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/ImageRegistrationMethodDisplacement1.mha}
+    0.02
+  )
+
+sitk_add_python_test(Example.ImageRegistrationMethodDisplacement1Test2
+  "${CMAKE_CURRENT_SOURCE_DIR}/ImageRegistrationMethodDisplacement1.py"
+    DATA{${SimpleITK_DATA_ROOT}/Input/r16slice_rigid.nii.gz}
+    DATA{${SimpleITK_DATA_ROOT}/Input/r64slice.nii.gz}
+    ${TEST_HARNESS_TEMP_DIRECTORY}/PythonImageRegistrationMethodDisplacement1Test2.hdf5
+ TRANSFORM_COMPARE
+    ${TEST_HARNESS_TEMP_DIRECTORY}/PythonImageRegistrationMethodDisplacement1Test2.hdf5
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/ImageRegistrationMethodDisplacement1Test2.mha}
+    0.02
+  )
+
diff --git a/Examples/ImageRegistrationMethodDisplacement1/ImageRegistrationMethodDisplacement1.cxx b/Examples/ImageRegistrationMethodDisplacement1/ImageRegistrationMethodDisplacement1.cxx
new file mode 100644
index 0000000..3ff15e7
--- /dev/null
+++ b/Examples/ImageRegistrationMethodDisplacement1/ImageRegistrationMethodDisplacement1.cxx
@@ -0,0 +1,224 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+// This one header will include all SimpleITK filters and external
+// objects.
+#include <SimpleITK.h>
+#include <iostream>
+#include <stdlib.h>
+#include <iomanip>
+
+namespace sitk = itk::simple;
+
+
+
+class IterationUpdate
+  : public sitk::Command
+{
+public:
+  IterationUpdate( const sitk::ImageRegistrationMethod &m)
+    : m_Method(m)
+    {}
+
+  virtual void Execute( )
+    {
+      // use sitk's output operator for std::vector etc..
+      using sitk::operator<<;
+
+      // stash the stream state
+      std::ios  state(NULL);
+      state.copyfmt(std::cout);
+      std::cout << std::fixed << std::setfill(' ') << std::setprecision( 5 );
+      if ( m_Method.GetOptimizerIteration() == 0 )
+        {
+        std::cout << "\tLevel: " << std::setw(3) << m_Method.GetCurrentLevel() << std::endl;
+        std::cout << "\tScales: " << m_Method.GetOptimizerScales() << std::endl;
+        }
+      std::cout << '#' << m_Method.GetOptimizerIteration() << std::endl;
+      std::cout << "\tMetric Value: " <<  m_Method.GetMetricValue() << std::endl;
+      std::cout << "\tLearning Rate: " << m_Method.GetOptimizerLearningRate() << std::endl;
+      if (m_Method.GetOptimizerConvergenceValue() != std::numeric_limits<double>::max())
+        {
+        std::cout << "\tConvergence Value: " << std::scientific << m_Method.GetOptimizerConvergenceValue() << std::endl;
+        }
+      std::cout.copyfmt(state);
+    }
+
+private:
+  const sitk::ImageRegistrationMethod &m_Method;
+
+};
+
+class MultiResolutionIterationUpdate
+  : public sitk::Command
+{
+public:
+  MultiResolutionIterationUpdate( const sitk::ImageRegistrationMethod &m)
+    : m_Method(m)
+    {}
+
+  virtual void Execute( )
+    {
+      // use sitk's output operator for std::vector etc..
+      using sitk::operator<<;
+
+      // stash the stream state
+      std::ios  state(NULL);
+      state.copyfmt(std::cout);
+      std::cout << std::fixed << std::setfill(' ') << std::setprecision( 5 );
+      std::cout << "\tStop Condition: " << m_Method.GetOptimizerStopConditionDescription() << std::endl;
+      std::cout << "============= Resolution Change =============" << std::endl;
+      std::cout.copyfmt(state);
+    }
+
+private:
+  const sitk::ImageRegistrationMethod &m_Method;
+
+};
+
+
+int main(int argc, char *argv[])
+{
+
+  if ( argc < 4 )
+    {
+    std::cerr << "Usage: " << argv[0] << " <fixedImageFilter> <movingImageFile> <outputTransformFile>" << std::endl;
+    return 1;
+    }
+
+  sitk::Image fixed = sitk::ReadImage( argv[1], sitk::sitkFloat32 );
+
+  sitk::Image moving = sitk::ReadImage( argv[2], sitk::sitkFloat32 );
+
+  sitk::Transform initialTx = sitk::CenteredTransformInitializer(fixed, moving, sitk::AffineTransform(fixed.GetDimension()));
+
+  sitk::ImageRegistrationMethod R;
+
+  {
+  std::vector<unsigned int> shrinkFactors;
+  shrinkFactors.push_back(3);
+  shrinkFactors.push_back(2);
+  shrinkFactors.push_back(1);
+
+  std::vector<double> smoothingSigmas;
+  smoothingSigmas.push_back(2.0);
+  smoothingSigmas.push_back(1.0);
+  smoothingSigmas.push_back(1.0);
+
+  R.SetShrinkFactorsPerLevel(shrinkFactors);
+  R.SetSmoothingSigmasPerLevel(smoothingSigmas);
+  }
+
+  R.SetMetricAsJointHistogramMutualInformation(20);
+  R.MetricUseFixedImageGradientFilterOff();
+  R.MetricUseFixedImageGradientFilterOff();
+
+  {
+  double learningRate=1.0;
+  unsigned int numberOfIterations=100;
+  double convergenceMinimumValue = 1e-6;
+  unsigned int convergenceWindowSize = 10;
+  sitk::ImageRegistrationMethod::EstimateLearningRateType estimateLearningRate = R.EachIteration;
+  R.SetOptimizerAsGradientDescent( learningRate,
+                                   numberOfIterations,
+                                   convergenceMinimumValue,
+                                   convergenceWindowSize,
+                                   estimateLearningRate
+    );
+  }
+  R.SetOptimizerScalesFromPhysicalShift();
+
+  R.SetInitialTransform(initialTx, true);
+
+  R.SetInterpolator(sitk::sitkLinear);
+
+  IterationUpdate cmd(R);
+  R.AddCommand( sitk::sitkIterationEvent, cmd);
+
+  MultiResolutionIterationUpdate cmd2(R);
+  R.AddCommand( sitk::sitkMultiResolutionIterationEvent, cmd2);
+
+  sitk::Transform outTx = R.Execute( fixed, moving );
+
+  std::cout << "-------" << std::endl;
+  std::cout << outTx.ToString() << std::endl;
+  std::cout << "Optimizer stop condition: " << R.GetOptimizerStopConditionDescription() << std::endl;
+  std::cout << " Iteration: " << R.GetOptimizerIteration() << std::endl;
+  std::cout << " Metric value: " << R.GetMetricValue() << std::endl;
+
+
+  sitk::Image displacementField = sitk::Image(fixed.GetSize(), sitk::sitkVectorFloat64);
+  displacementField.CopyInformation(fixed);
+  sitk::DisplacementFieldTransform displacementTx(displacementField);
+  const double varianceForUpdateField=0.0;
+  const double varianceForTotalField=1.5;
+  displacementTx.SetSmoothingGaussianOnUpdate(varianceForUpdateField,
+                                              varianceForTotalField);
+
+
+
+  R.SetMovingInitialTransform(outTx);
+  R.SetInitialTransform(displacementTx, true);
+
+  R.SetMetricAsANTSNeighborhoodCorrelation(4);
+  R.MetricUseFixedImageGradientFilterOff();
+  R.MetricUseFixedImageGradientFilterOff();
+
+  {
+  std::vector<unsigned int> shrinkFactors;
+  shrinkFactors.push_back(3);
+  shrinkFactors.push_back(2);
+  shrinkFactors.push_back(1);
+
+  std::vector<double> smoothingSigmas;
+  smoothingSigmas.push_back(2.0);
+  smoothingSigmas.push_back(1.0);
+  smoothingSigmas.push_back(1.0);
+
+  R.SetShrinkFactorsPerLevel(shrinkFactors);
+  R.SetSmoothingSigmasPerLevel(smoothingSigmas);
+  }
+
+  R.SetOptimizerScalesFromPhysicalShift();
+
+  {
+  double learningRate=1.0;
+  unsigned int numberOfIterations=300;
+  double convergenceMinimumValue = 1e-6;
+  unsigned int convergenceWindowSize = 10;
+  sitk::ImageRegistrationMethod::EstimateLearningRateType estimateLearningRate = R.EachIteration;
+  R.SetOptimizerAsGradientDescent( learningRate,
+                                   numberOfIterations,
+                                   convergenceMinimumValue,
+                                   convergenceWindowSize,
+                                   estimateLearningRate
+    );
+  }
+  outTx.AddTransform( R.Execute(fixed, moving) );
+
+  std::cout << "-------" << std::endl;
+  std::cout << outTx.ToString() << std::endl;
+  std::cout << "Optimizer stop condition: " << R.GetOptimizerStopConditionDescription() << std::endl;
+  std::cout << " Iteration: " << R.GetOptimizerIteration() << std::endl;
+  std::cout << " Metric value: " << R.GetMetricValue() << std::endl;
+
+
+  sitk::WriteTransform(outTx, argv[3]);
+
+  return 0;
+}
diff --git a/Examples/ImageRegistrationMethodDisplacement1/ImageRegistrationMethodDisplacement1.py b/Examples/ImageRegistrationMethodDisplacement1/ImageRegistrationMethodDisplacement1.py
new file mode 100755
index 0000000..1527ef4
--- /dev/null
+++ b/Examples/ImageRegistrationMethodDisplacement1/ImageRegistrationMethodDisplacement1.py
@@ -0,0 +1,137 @@
+#!/usr/bin/env python
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+
+from __future__ import print_function
+
+import SimpleITK as sitk
+import sys
+import os
+
+
+def command_iteration(method) :
+    if (method.GetOptimizerIteration() == 0):
+        print("\tLevel: {0}".format(method.GetCurrentLevel()))
+        print("\tScales: {0}".format(method.GetOptimizerScales()))
+    print("#{0}".format(method.GetOptimizerIteration()))
+    print("\tMetric Value: {0:10.5f}".format( method.GetMetricValue()))
+    print("\tLearningRate: {0:10.5f}".format(method.GetOptimizerLearningRate()))
+    if (method.GetOptimizerConvergenceValue() != sys.float_info.max):
+        print("\tConvergence Value: {0:.5e}".format(method.GetOptimizerConvergenceValue()))
+
+
+def command_multiresolution_iteration(method):
+    print("\tStop Condition: {0}".format(method.GetOptimizerStopConditionDescription()))
+    print("============= Resolution Change =============")
+
+
+if len ( sys.argv ) < 4:
+    print( "Usage: {0} <fixedImageFilter> <movingImageFile> <outputTransformFile>".format(sys.argv[0]))
+    sys.exit ( 1 )
+
+
+fixed = sitk.ReadImage(sys.argv[1], sitk.sitkFloat32)
+
+moving = sitk.ReadImage(sys.argv[2], sitk.sitkFloat32)
+
+initialTx = sitk.CenteredTransformInitializer(fixed, moving, sitk.AffineTransform(fixed.GetDimension()))
+
+R = sitk.ImageRegistrationMethod()
+
+R.SetShrinkFactorsPerLevel([3,2,1])
+R.SetSmoothingSigmasPerLevel([2,1,1])
+
+R.SetMetricAsJointHistogramMutualInformation(20)
+R.MetricUseFixedImageGradientFilterOff()
+R.MetricUseFixedImageGradientFilterOff()
+
+
+R.SetOptimizerAsGradientDescent(learningRate=1.0,
+                                numberOfIterations=100,
+                                estimateLearningRate = R.EachIteration)
+R.SetOptimizerScalesFromPhysicalShift()
+
+R.SetInitialTransform(initialTx,inPlace=True)
+
+R.SetInterpolator(sitk.sitkLinear)
+
+R.AddCommand( sitk.sitkIterationEvent, lambda: command_iteration(R) )
+R.AddCommand( sitk.sitkMultiResolutionIterationEvent, lambda: command_multiresolution_iteration(R) )
+
+outTx = R.Execute(fixed, moving)
+
+
+print("-------")
+print(outTx)
+print("Optimizer stop condition: {0}".format(R.GetOptimizerStopConditionDescription()))
+print(" Iteration: {0}".format(R.GetOptimizerIteration()))
+print(" Metric value: {0}".format(R.GetMetricValue()))
+
+
+displacementField = sitk.Image(fixed.GetSize(), sitk.sitkVectorFloat64)
+displacementField.CopyInformation(fixed)
+displacementTx = sitk.DisplacementFieldTransform(displacementField)
+del displacementField
+displacementTx.SetSmoothingGaussianOnUpdate(varianceForUpdateField=0.0,
+                                            varianceForTotalField=1.5)
+
+
+
+R.SetMovingInitialTransform(outTx)
+R.SetInitialTransform(displacementTx, inPlace=True)
+
+R.SetMetricAsANTSNeighborhoodCorrelation(4)
+R.MetricUseFixedImageGradientFilterOff()
+R.MetricUseFixedImageGradientFilterOff()
+
+
+R.SetShrinkFactorsPerLevel([3,2,1])
+R.SetSmoothingSigmasPerLevel([2,1,1])
+
+R.SetOptimizerScalesFromPhysicalShift()
+R.SetOptimizerAsGradientDescent(learningRate=1,
+                                numberOfIterations=300,
+                                estimateLearningRate=R.EachIteration)
+
+outTx.AddTransform( R.Execute(fixed, moving) )
+
+
+print("-------")
+print(outTx)
+print("Optimizer stop condition: {0}".format(R.GetOptimizerStopConditionDescription()))
+print(" Iteration: {0}".format(R.GetOptimizerIteration()))
+print(" Metric value: {0}".format(R.GetMetricValue()))
+
+
+sitk.WriteTransform(outTx,  sys.argv[3])
+
+if ( not "SITK_NOSHOW" in os.environ ):
+
+    sitk.Show(displacementTx.GetDisplacementField(), "Displacement Field")
+
+    resampler = sitk.ResampleImageFilter()
+    resampler.SetReferenceImage(fixed);
+    resampler.SetInterpolator(sitk.sitkLinear)
+    resampler.SetDefaultPixelValue(100)
+    resampler.SetTransform(outTx)
+
+    out = resampler.Execute(moving)
+    simg1 = sitk.Cast(sitk.RescaleIntensity(fixed), sitk.sitkUInt8)
+    simg2 = sitk.Cast(sitk.RescaleIntensity(out), sitk.sitkUInt8)
+    cimg = sitk.Compose(simg1, simg2, simg1/2.+simg2/2.)
+    sitk.Show( cimg, "ImageRegistration1 Composition" )
diff --git a/Examples/ImageRegistrationMethodExhaustive/CMakeLists.txt b/Examples/ImageRegistrationMethodExhaustive/CMakeLists.txt
new file mode 100644
index 0000000..b864835
--- /dev/null
+++ b/Examples/ImageRegistrationMethodExhaustive/CMakeLists.txt
@@ -0,0 +1,15 @@
+
+if(NOT BUILD_TESTING)
+  return()
+endif()
+
+sitk_add_python_test(Example.ImageRegistrationMethodExhaustiveTest1
+  "${CMAKE_CURRENT_SOURCE_DIR}/ImageRegistrationMethodExhaustive.py"
+    DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySlice.png}
+    DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySliceR10X13Y17.png}
+    ${TEST_HARNESS_TEMP_DIRECTORY}/PythonImageRegistrationMethodExhaustiveTest1.hdf5
+ TRANSFORM_COMPARE
+    ${TEST_HARNESS_TEMP_DIRECTORY}/PythonImageRegistrationMethodExhaustiveTest1.hdf5
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/ImageRegistrationMethodExhaustiveTest1.mha}
+    1e-10
+  )
diff --git a/Examples/ImageRegistrationMethodExhaustive/ImageRegistrationMethodExhaustive.py b/Examples/ImageRegistrationMethodExhaustive/ImageRegistrationMethodExhaustive.py
new file mode 100755
index 0000000..dbcc410
--- /dev/null
+++ b/Examples/ImageRegistrationMethodExhaustive/ImageRegistrationMethodExhaustive.py
@@ -0,0 +1,115 @@
+#!/usr/bin/env python
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+
+"""
+This script demonstrates the use of the Exhaustive optimizer in the
+ImageRegistrationMethod to estimate a good initial rotation position.
+
+Because gradient descent base optimization can get stuck in local
+minima, a good initial transform is critical for reasonable
+results. Search a reasonable space on a grid with brute force may be a
+reliable way to get a starting location for further optimization.
+
+The initial translation and center of rotation for the transform is
+initialized based on the first principle moments of the intensities of
+the image. Then in either 2D or 3D a Euler transform is used to
+exhaustively search a grid of the rotation space at a certain step
+size. The resulting transform is a reasonable guess where to start
+further registration.
+"""
+
+from __future__ import print_function
+from __future__ import division
+
+
+import SimpleITK as sitk
+import sys
+import os
+from math import pi
+
+
+def command_iteration(method) :
+    if (method.GetOptimizerIteration()==0):
+        print("Scales: ", method.GetOptimizerScales())
+    print("{0:3} = {1:7.5f} : {2}".format(method.GetOptimizerIteration(),
+                                           method.GetMetricValue(),
+                                           method.GetOptimizerPosition()))
+
+
+
+if len ( sys.argv ) < 4:
+    print( "Usage: {0} <fixedImageFilter> <movingImageFile>  <outputTransformFile>".format(sys.argv[0]))
+    sys.exit ( 1 )
+
+fixed = sitk.ReadImage(sys.argv[1], sitk.sitkFloat32)
+
+moving = sitk.ReadImage(sys.argv[2], sitk.sitkFloat32)
+
+R = sitk.ImageRegistrationMethod()
+
+R.SetMetricAsMattesMutualInformation(numberOfHistogramBins = 50)
+
+sample_per_axis=12
+if fixed.GetDimension() == 2:
+    tx = sitk.Euler2DTransform()
+    # Set the number of samples (radius) in each dimension, with a
+    # default step size of 1.0
+    R.SetOptimizerAsExhaustive([sample_per_axis//2,0,0])
+    # Utilize the scale to set the step size for each dimension
+    R.SetOptimizerScales([2.0*pi/sample_per_axis, 1.0,1.0])
+elif fixed.GetDimension() == 3:
+    tx = sitk.Euler3DTransform()
+    R.SetOptimizerAsExhaustive([sample_per_axis//2,sample_per_axis//2,sample_per_axis//4,0,0,0])
+    R.SetOptimizerScales([2.0*pi/sample_per_axis,2.0*pi/sample_per_axis,2.0*pi/sample_per_axis,1.0,1.0,1.0])
+
+# Initialize the transform with a translation and the center of
+# rotation from the moments of intensity.
+tx = sitk.CenteredTransformInitializer(fixed, moving, tx)
+
+R.SetInitialTransform(tx)
+
+R.SetInterpolator(sitk.sitkLinear)
+
+R.AddCommand( sitk.sitkIterationEvent, lambda: command_iteration(R) )
+
+outTx = R.Execute(fixed, moving)
+
+print("-------")
+print(outTx)
+print("Optimizer stop condition: {0}".format(R.GetOptimizerStopConditionDescription()))
+print(" Iteration: {0}".format(R.GetOptimizerIteration()))
+print(" Metric value: {0}".format(R.GetMetricValue()))
+
+
+sitk.WriteTransform(outTx,  sys.argv[3])
+
+if ( not "SITK_NOSHOW" in os.environ ):
+
+    resampler = sitk.ResampleImageFilter()
+    resampler.SetReferenceImage(fixed);
+    resampler.SetInterpolator(sitk.sitkLinear)
+    resampler.SetDefaultPixelValue(1)
+    resampler.SetTransform(outTx)
+
+    out = resampler.Execute(moving)
+
+    simg1 = sitk.Cast(sitk.RescaleIntensity(fixed), sitk.sitkUInt8)
+    simg2 = sitk.Cast(sitk.RescaleIntensity(out), sitk.sitkUInt8)
+    cimg = sitk.Compose(simg1, simg2, simg1/2.+simg2/2.)
+    sitk.Show( cimg, "ImageRegistrationExhaustive Composition" )
diff --git a/Examples/N4BiasFieldCorrection/CMakeLists.txt b/Examples/N4BiasFieldCorrection/CMakeLists.txt
new file mode 100644
index 0000000..658590a
--- /dev/null
+++ b/Examples/N4BiasFieldCorrection/CMakeLists.txt
@@ -0,0 +1,10 @@
+
+if(NOT BUILD_TESTING)
+  return()
+endif()
+
+ sitk_add_python_test( Example.N4BiasFieldCorrection
+  "${CMAKE_CURRENT_SOURCE_DIR}/N4BiasFieldCorrection.py"
+  DATA{${SimpleITK_DATA_ROOT}/Input/OAS1_0001_MR1_mpr-1_anon.nrrd}
+  "${TEST_HARNESS_TEMP_DIRECTORY}/Python.Example.N4BiasFieldCorrection.nrrd"
+  "1" )
diff --git a/Examples/N4BiasFieldCorrection/N4BiasFieldCorrection.py b/Examples/N4BiasFieldCorrection/N4BiasFieldCorrection.py
new file mode 100755
index 0000000..ea0e159
--- /dev/null
+++ b/Examples/N4BiasFieldCorrection/N4BiasFieldCorrection.py
@@ -0,0 +1,67 @@
+#!/usr/bin/env python
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+
+from __future__ import print_function
+
+import SimpleITK as sitk
+import sys
+import os
+
+if len ( sys.argv ) < 2:
+    print( "Usage: N4BiasFieldCorrection inputImage " + \
+        "outputImage [shrinkFactor] [maskImage] [numberOfIterations] " +\
+        "[numberOfFittingLevels]" )
+    sys.exit ( 1 )
+
+
+
+
+inputImage = sitk.ReadImage( sys.argv[1] )
+
+
+if len ( sys.argv ) > 4:
+    maskImage = sitk.ReadImage( sys.argv[4] )
+else:
+    maskImage = sitk.OtsuThreshold( inputImage, 0, 1, 200 )
+
+if len ( sys.argv ) > 3:
+    inputImage = sitk.Shrink( inputImage, [ int(sys.argv[3]) ] * inputImage.GetDimension() )
+    maskImage = sitk.Shrink( maskImage, [ int(sys.argv[3]) ] * inputImage.GetDimension() )
+
+inputImage = sitk.Cast( inputImage, sitk.sitkFloat32 )
+
+corrector = sitk.N4BiasFieldCorrectionImageFilter();
+
+numberFilltingLevels = 4
+
+if len ( sys.argv ) > 6:
+    numberFilltingLevels = int( sys.argv[6] )
+
+if len ( sys.argv ) > 5:
+    corrector.SetMaximumNumberOfIterations( [ int( sys.argv[5] ) ] *numberFilltingLevels  )
+
+
+
+output = corrector.Execute( inputImage, maskImage )
+
+sitk.WriteImage( output, sys.argv[2] )
+
+
+if ( not "SITK_NOSHOW" in os.environ ):
+    sitk.Show( output, "N4 Corrected" )
diff --git a/Examples/Python/BoarderSegmentation.py b/Examples/Python/BoarderSegmentation.py
new file mode 100755
index 0000000..4dd6f70
--- /dev/null
+++ b/Examples/Python/BoarderSegmentation.py
@@ -0,0 +1,62 @@
+#!/usr/bin/env python
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+
+from __future__ import print_function
+
+import sys
+import SimpleITK as sitk
+import os
+
+# verify that we have the correct number of arguments
+if ( len( sys.argv ) != 5 ):
+    sys.stderr.write( "Usage: prog inputFile outputFile replaceValue upperThreshold\n" )
+    exit( 1 )
+    
+# copy the arguments in to variables
+inputFileName = sys.argv[1]
+outputFileName = sys.argv[2]
+replaceValue = int( sys.argv[3] )
+upperThreshold = float( sys.argv[4] )
+
+# Read the file into an sitkImage
+image = sitk.ReadImage( inputFileName )
+
+# Threshold the value [0,2), results in values inside the range 1, 0 otherwise
+boundary = sitk.BinaryThreshold( image, 0, upperThreshold, 1, 0 )
+
+boundary = sitk.BinaryMorphologicalClosing( boundary, 1 )
+
+# Remove any label pixel not connected to the boarder
+boundary = sitk.BinaryGrindPeak( boundary )
+
+
+
+boundary = sitk.Cast( boundary, image.GetPixelID() )
+
+# Multiply, the input image by not the boarder.
+# This will multiply the image by 0 or 1, where 0 is the
+# boarder. Making the board 0
+image = image * ~boundary
+
+# add the replace value to the pixel on the board
+image = image + ( boundary * replaceValue )
+
+
+if ( not "SITK_NOSHOW" in os.environ ):
+    sitk.Show( image, "Boarder Segmentation" )
diff --git a/Examples/Python/CMakeLists.txt b/Examples/Python/CMakeLists.txt
new file mode 100644
index 0000000..da0c0a9
--- /dev/null
+++ b/Examples/Python/CMakeLists.txt
@@ -0,0 +1,104 @@
+
+if(NOT BUILD_TESTING)
+  return()
+endif()
+
+sitk_add_python_test( Example.SimpleGaussianProcedural
+  "${CMAKE_CURRENT_SOURCE_DIR}/SimpleGaussianProcedural.py"
+  --compare
+    "${TEST_HARNESS_TEMP_DIRECTORY}/Python.SimpleGaussianProcedural.nrrd"
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/Example_SimpleGaussian_2.0.nrrd}
+  DATA{${SimpleITK_DATA_ROOT}/Input/RA-Short.nrrd}
+  "2.0"
+  "${TEST_HARNESS_TEMP_DIRECTORY}/Python.SimpleGaussianProcedural.nrrd" )
+
+sitk_add_python_test( Example.ImageCreateAndSet
+  "${CMAKE_CURRENT_SOURCE_DIR}/ImageCreateAndSet.py" )
+
+sitk_add_python_test( Example.CannyEdge
+  "${CMAKE_CURRENT_SOURCE_DIR}/CannyEdge.py"
+  DATA{${SimpleITK_DATA_ROOT}/Input/OAS1_0001_MR1_mpr-1_anon.nrrd} )
+
+sitk_add_python_test( Example.ExtractSlice
+  "${CMAKE_CURRENT_SOURCE_DIR}/ExtractSlice.py"
+  DATA{${SimpleITK_DATA_ROOT}/Input/OAS1_0001_MR1_mpr-1_anon.nrrd}
+  "30"
+  "${TEST_HARNESS_TEMP_DIRECTORY}/Python.ExtractSlice.nrrd")
+
+sitk_add_python_test( Example.BoarderSegmentation
+  "${CMAKE_CURRENT_SOURCE_DIR}/BoarderSegmentation.py"
+  DATA{${SimpleITK_DATA_ROOT}/Input/OAS1_0001_MR1_mpr-1_anon.nrrd}
+  "${TEST_HARNESS_TEMP_DIRECTORY}/Python.BoarderSegmentation.nrrd"
+  "5000"
+  "150" )
+
+sitk_add_python_test( Example.ReadAndShow
+  "${CMAKE_CURRENT_SOURCE_DIR}/ReadAndShow.py"
+  DATA{${SimpleITK_DATA_ROOT}/Input/VM1111Shrink-RGB.png} )
+
+sitk_add_python_test( Example.GeodesicActiceContourSegmentation
+  "${CMAKE_CURRENT_SOURCE_DIR}/GeodesicActiceContourSegmentation.py"
+  DATA{${SimpleITK_DATA_ROOT}/Input/cthead1.png}
+  "${TEST_HARNESS_TEMP_DIRECTORY}/Python.Example.GeodesicActiceContourSegmentation.nrrd"
+  .3 10 .9 50 55
+  )
+
+sitk_add_python_test( Example.FFTConvolution
+  "${CMAKE_CURRENT_SOURCE_DIR}/FFTConvolution.py"
+  DATA{${SimpleITK_DATA_ROOT}/Input/cthead1-Float.mha}
+  DATA{${SimpleITK_DATA_ROOT}/Input/Gaussian_1.5.nrrd}
+  "${TEST_HARNESS_TEMP_DIRECTORY}/Python.Examples.FFTConvolution.nrrd"
+  )
+
+
+sitk_add_python_test( Example.DicomSeriesReader2
+  "${CMAKE_CURRENT_SOURCE_DIR}/DicomSeriesReader2.py"
+  --compare-MD5
+  "${TEST_HARNESS_TEMP_DIRECTORY}/DicomSeriesReader2.nrrd"
+  "8e65f711d450b6b466c6d76a667ecb72"
+    DATA{${SimpleITK_DATA_ROOT}/Input/DicomSeries/,REGEX:Image[0-9]+.dcm}
+    "${TEST_HARNESS_TEMP_DIRECTORY}/DicomSeriesReader2.nrrd"
+  )
+
+
+
+
+sitk_add_python_test( Example.ConnectedThresholdImageFilter1
+  "${CMAKE_CURRENT_SOURCE_DIR}/ConnectedThresholdImageFilter.py"
+  --compare-MD5
+    "${TEST_HARNESS_TEMP_DIRECTORY}/PythonSegmentationConnectedThreshold1.png"
+    "d4ff9c512f9c18a84729677de800db0d"
+  DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySlice.png}
+  "${TEST_HARNESS_TEMP_DIRECTORY}/PythonSegmentationConnectedThreshold1.png"
+  150 180
+  60 116
+  )
+
+sitk_add_python_test( Example.ConnectedThresholdImageFilter2
+  "${CMAKE_CURRENT_SOURCE_DIR}/ConnectedThresholdImageFilter.py"
+  --compare-MD5
+    "${TEST_HARNESS_TEMP_DIRECTORY}/PythonSegmentationConnectedThreshold2.png"
+    "a9695df04cde5b9c5481d8c253a5b3aa"
+  DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySlice.png}
+  "${TEST_HARNESS_TEMP_DIRECTORY}/PythonSegmentationConnectedThreshold2.png"
+  210 250
+  81 112
+  )
+
+sitk_add_python_test( Example.NeighborhoodConnectedImageFilter1
+  "${CMAKE_CURRENT_SOURCE_DIR}/NeighborhoodConnectedImageFilter.py"
+  --compare-MD5
+    "${TEST_HARNESS_TEMP_DIRECTORY}/PythonSegmentationNeighborhoodConnected1.png"
+    "311d9d4b492e1ea625e3b0b295814dce"
+  DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySlice.png}
+  "${TEST_HARNESS_TEMP_DIRECTORY}/PythonSegmentationNeighborhoodConnected1.png"
+  150 180
+  60 116
+  )
+
+
+sitk_add_python_test(Example.DicomModifyTags
+  "${CMAKE_CURRENT_SOURCE_DIR}/DicomModifyTags.py"
+   DATA{${SimpleITK_DATA_ROOT}/Input/DicomSeries/Image0075.dcm}
+   ${TEST_HARNESS_TEMP_DIRECTORY}/modifiedTags.dcm
+  )
diff --git a/Examples/Python/CannyEdge.py b/Examples/Python/CannyEdge.py
new file mode 100755
index 0000000..f81c036
--- /dev/null
+++ b/Examples/Python/CannyEdge.py
@@ -0,0 +1,39 @@
+#!/usr/bin/env python
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+
+from __future__ import print_function
+
+import SimpleITK as sitk
+import sys
+import os
+
+if len ( sys.argv ) < 2:
+    print( "Usage: %s <input>" % ( sys.argv[0] ) )
+    sys.exit ( 1 )
+
+
+image = sitk.Cast( sitk.ReadImage( sys.argv[1] ), sitk.sitkFloat32 ) 
+
+edges = sitk.CannyEdgeDetection( image, lowerThreshold=200, upperThreshold=400, variance=[4]*3 )
+
+stats = sitk.StatisticsImageFilter()
+stats.Execute( image )
+
+if ( not "SITK_NOSHOW" in os.environ ):
+    sitk.Show( sitk.Maximum( image*0.5, edges*stats.GetMaximum()*.5) )
diff --git a/Examples/Python/ConnectedThresholdImageFilter.py b/Examples/Python/ConnectedThresholdImageFilter.py
new file mode 100644
index 0000000..2805f16
--- /dev/null
+++ b/Examples/Python/ConnectedThresholdImageFilter.py
@@ -0,0 +1,75 @@
+'''=========================================================================
+'
+'  Copyright Insight Software Consortium
+'
+'  Licensed under the Apache License, Version 2.0 (the "License");
+'  you may not use this file except in compliance with the License.
+'  You may obtain a copy of the License at
+'
+'         http://www.apache.org/licenses/LICENSE-2.0.txt
+'
+'  Unless required by applicable law or agreed to in writing, software
+'  distributed under the License is distributed on an "AS IS" BASIS,
+'  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+'  See the License for the specific language governing permissions and
+'  limitations under the License.
+'
+'========================================================================='''
+
+from __future__ import print_function
+
+import SimpleITK as sitk
+import sys
+import os
+
+#
+# Check Command Line
+#
+if len( sys.argv ) < 7:
+  print("Usage: ConnectedThresholdImageFilter inputImage outputImage lowerThreshold upperThreshold seedX seedY [seed2X seed2Y ... ]");
+  sys.exit( 1 )
+
+
+#
+# Read the image
+#
+reader = sitk.ImageFileReader()
+reader.SetFileName( sys.argv[1] )
+image = reader.Execute();
+
+#
+# Blur using CurvatureFlowImageFilter
+#
+blurFilter = sitk.CurvatureFlowImageFilter()
+blurFilter.SetNumberOfIterations( 5 )
+blurFilter.SetTimeStep( 0.125 )
+image = blurFilter.Execute( image )
+
+#
+# Set up ConnectedThresholdImageFilter for segmentation
+#
+segmentationFilter = sitk.ConnectedThresholdImageFilter()
+segmentationFilter.SetLower( float(sys.argv[3]) )
+segmentationFilter.SetUpper( float(sys.argv[4]) )
+segmentationFilter.SetReplaceValue( 255 )
+
+for i in range( 5, len(sys.argv)-1, 2 ):
+  seed = [ int(sys.argv[i]), int(sys.argv[i+1]) ]
+  segmentationFilter.AddSeed( seed )
+  print( "Adding seed at: ", seed, " with intensity: ", image.GetPixel(*seed) )
+
+# Run the segmentation filter
+image = segmentationFilter.Execute( image )
+image[seed] = 255
+
+#
+# Write out the result
+#
+writer = sitk.ImageFileWriter()
+writer.SetFileName( sys.argv[2] )
+writer.Execute( image )
+
+
+if ( not "SITK_NOSHOW" in os.environ ):
+  sitk.Show( image, "ConntectedThreshold" )
+
diff --git a/Examples/Python/DicomModifyTags.py b/Examples/Python/DicomModifyTags.py
new file mode 100644
index 0000000..f50441c
--- /dev/null
+++ b/Examples/Python/DicomModifyTags.py
@@ -0,0 +1,68 @@
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+
+from __future__ import print_function
+
+import SimpleITK as sitk
+
+import sys, time
+
+if len( sys.argv ) < 3:
+    print( "Usage: python " + __file__ + " <input_image> <output_image>" )
+    sys.exit ( 1 )
+
+# Read the image, single 3D DICOM slice
+image = sitk.ReadImage( sys.argv[1] )
+
+# Modify the image (mean)
+mean_image = sitk.BoxMean( image, [3,3,1] )
+
+# Save the modified image:
+# We do not provide a method that copies all keys blindly. Our intent is
+# to force us to remember that we always need to modify the meta-data dicitonary
+# keys when we save processed images in DICOM format.
+# In case of the DICOM format, amongst other keys we need to set the Image Type (0008,0008),
+# the Series Date (0008,0021), and Series Time (0008,0021). Obviously we need to set a
+# different series number (0020,0011), series instance UID (0020,000E), etc. - we don't do
+# that here.
+# Please see the DICOM standard (http://dicom.nema.org/standard.html) for complete details on
+# how to create valid DICOM images.
+
+all_keys = image.GetMetaDataKeys()
+for key in all_keys:
+    mean_image.SetMetaData( key, image.GetMetaData( key ) )
+mean_image.SetMetaData( "0008|0008", "DERIVED\SECONDARY" )
+modification_time = time.strftime("%H%M%S")
+modification_date = time.strftime("%Y%m%d")
+mean_image.SetMetaData( "0008|0031", modification_time )
+mean_image.SetMetaData( "0008|0021", modification_date )
+
+sitk.WriteImage( mean_image, sys.argv[2] )
+
+# Finally, read the image back and see that changes were made
+# Note that the image type (0008|0008) can contain additional spaces. The requirement is that
+# the string have an even length (ftp://dicom.nema.org/medical/DICOM/2013/output/chtml/part05/sect_6.2.html).
+# Where spaces are added is not specified and thus may vary ("DERIVED\SECONDARY ", "DERIVED\ SECONDARY" are
+# equivalent).
+modified_image = sitk.ReadImage( sys.argv[2] )
+if modified_image.GetMetaData( "0008|0008" ).replace(" ","") != "DERIVED\SECONDARY" or \
+   modified_image.GetMetaData( "0008|0031" ) != modification_time or \
+   modified_image.GetMetaData( "0008|0021" ) != modification_date:
+    sys.exit(1)
+
+sys.exit( 0 )
diff --git a/Examples/Python/DicomSeriesReader2.py b/Examples/Python/DicomSeriesReader2.py
new file mode 100755
index 0000000..f4556f9
--- /dev/null
+++ b/Examples/Python/DicomSeriesReader2.py
@@ -0,0 +1,96 @@
+#!/usr/bin/env python
+
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+
+
+#
+#  This example shows how to read a specific series from a Dicom directory that
+#  may contain more than one series.  The script scans for all series.  If an
+#  output name is given, it writes out the requested series.  If no specific
+#  series name is given, the first series found is written.
+#
+
+from __future__ import print_function
+
+import sys, getopt
+import SimpleITK as sitk
+
+target_series = ""
+output_image = ""
+
+def usage():
+    print (  "\nUsage: %s [-s series_name] input_directory [output_image]\n" % (sys.argv[0]) )
+
+# Parse command line options
+try:
+    opts, args = getopt.getopt(sys.argv[1:], "s:", [ "series" ] )
+except getopt.GetoptError as err:
+    usage()
+    sys.exit(1)
+
+for o, a in opts:
+    if o in ("-s", "--series"):
+        target_series = a
+    else:
+         assert False, "unhandled options"
+
+
+# Get input/output names
+if len(args) < 1:
+    print( args )
+    usage()
+    sys.exit(1)
+
+input_directory = args[0]
+if len(args)>1:
+    output_image = args[1]
+
+# Find the Dicom series
+reader = sitk.ImageSeriesReader()
+written = False
+
+series_found = reader.GetGDCMSeriesIDs(input_directory)
+
+# Process each Dicom series
+if len(series_found):
+
+    for serie in series_found:
+
+        print( "\nSeries:", serie )
+
+        # Get the Dicom filename corresponding to the current series
+        dicom_names = reader.GetGDCMSeriesFileNames(input_directory, serie)
+
+        print( "\nFiles in series: ", dicom_names )
+
+        if len(dicom_names):
+            reader.SetFileNames(dicom_names)
+            image = reader.Execute()
+            print( "\nImage size: ", image.GetSize() )
+
+            if (output_image != "") and not written:
+                if (target_series == "" or target_series == serie):
+
+                    print( "\nWriting", output_image )
+                    sitk.WriteImage(image, output_image)
+                    written = True
+else:
+    sys.exit(1)
+
+print ()
diff --git a/Examples/Python/ExtractSlice.py b/Examples/Python/ExtractSlice.py
new file mode 100755
index 0000000..51b793a
--- /dev/null
+++ b/Examples/Python/ExtractSlice.py
@@ -0,0 +1,47 @@
+#!/usr/bin/env python
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+
+from __future__ import print_function
+
+import SimpleITK as sitk
+import sys
+import os
+
+if len ( sys.argv ) != 4:
+    print( "Usage: %s inputImage sliceNumber outputImage" % ( sys.argv[0] ) )
+    sys.exit ( 1 )
+
+zslice = int( sys.argv[2] )
+
+inputImage = sitk.ReadImage( str(sys.argv[1]) )
+
+size = list( inputImage.GetSize() )
+size[2] = 0
+
+index = [ 0, 0, zslice  ]
+
+Extractor = sitk.ExtractImageFilter()
+Extractor.SetSize( size )
+Extractor.SetIndex( index )
+
+sitk.WriteImage( Extractor.Execute( inputImage ), str(sys.argv[3]) )
+
+
+if ( not "SITK_NOSHOW" in os.environ ):
+    sitk.Show( Extractor.Execute( inputImage ) )
diff --git a/Examples/Python/FFTConvolution.py b/Examples/Python/FFTConvolution.py
new file mode 100755
index 0000000..c6a53f2
--- /dev/null
+++ b/Examples/Python/FFTConvolution.py
@@ -0,0 +1,102 @@
+#!/usr/bin/env python
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+
+from __future__ import print_function
+from __future__ import division
+
+import SimpleITK as sitk
+import sys
+import os
+import math
+
+if len ( sys.argv ) < 4:
+    print( "Usage: FFTConvolution <input> <kernel> <output>" )
+    sys.exit ( 1 )
+
+
+inputFileName = sys.argv[1]
+kernelFileName = sys.argv[2]
+outputFileName = sys.argv[3]
+
+### Input Image ###
+# read the input image
+img = sitk.ReadImage( inputFileName )
+
+# save the type of pixel the input is, so that we can cast the result
+# back out to the same type  
+pixelID = img.GetPixelID()
+
+# pad the image 
+img = sitk.MirrorPad( img, [128] *2, [128]*2 )
+size = img.GetSize();
+
+# perform the FFT
+fftimg = sitk.ForwardFFT( sitk.Cast( img, sitk.sitkFloat32 ) )
+
+
+### Kernel Image ###
+# Read the kernel image file
+kernel = sitk.ReadImage( kernelFileName )
+
+# flip kernel about all axis
+kernel = sitk.Flip( kernel, [True]*2 )
+
+
+# normalize the kernel to sum to ~1
+stats = sitk.StatisticsImageFilter();
+stats.Execute( kernel )
+kernel = sitk.Cast( kernel / stats.GetSum(), sitk.sitkFloat32 )
+
+upadding = [0]*2
+upadding[0] = int( math.floor( (size[0] - kernel.GetSize()[0])/2.0 ) )
+upadding[1] = int( math.floor( (size[1] - kernel.GetSize()[1])/2.0 ) )
+
+lpadding = [0]*2
+lpadding[0] = int( math.ceil( (size[0] - kernel.GetSize()[0])/2.0 ) )
+lpadding[1] = int( math.ceil( (size[1] - kernel.GetSize()[1])/2.0 ) )
+
+# pad the kernel to prevent edge artifacts
+kernel = sitk.ConstantPad( kernel, upadding, lpadding, 0.0 )
+
+# perform FFT on kernel
+fftkernel = sitk.ForwardFFT( sitk.FFTShift( kernel ) )
+
+# meta-data must match for multiplication
+fftkernel.SetSpacing( fftimg.GetSpacing() )
+fftkernel.SetOrigin( fftimg.GetOrigin() )
+fftkernel.SetDirection( fftimg.GetDirection() )
+
+
+### Convolution ###
+# Finally perform the convolution in Fourier space by multiplication
+img =  sitk.InverseFFT( fftimg*fftkernel )
+
+# remove the padding
+img = sitk.Crop( img, [128]*2, [128]*2 )
+
+### Writing ###
+# write the output image the same type as the input
+sitk.WriteImage( sitk.Cast( img, pixelID ), outputFileName )
+
+
+
+if ( not "SITK_NOSHOW" in os.environ ):
+    sitk.Show( sitk.ReadImage( inputFileName ), "original" )
+    sitk.Show( sitk.ReadImage( kernelFileName ), "kernel" )
+    sitk.Show( sitk.Cast( img, pixelID ), "FFT_Convolution" )
diff --git a/Examples/Python/GeodesicActiceContourSegmentation.py b/Examples/Python/GeodesicActiceContourSegmentation.py
new file mode 100644
index 0000000..80ce3c6
--- /dev/null
+++ b/Examples/Python/GeodesicActiceContourSegmentation.py
@@ -0,0 +1,78 @@
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+
+from __future__ import print_function
+
+import SimpleITK as sitk
+import os
+import sys
+
+if len ( sys.argv ) < 8:
+    print( "Usage:", sys.argv[0], " <inputImage> <outputImage> <sigma> <InitialDistance> <PropagationScaling> <seedX> <seedY> <?seedZ>" )
+    sys.exit ( 1 )
+
+inputImage = sys.argv[1]
+outputImage = sys.argv[2]
+sigma = float(sys.argv[3])
+initialDistance = float(sys.argv[4])
+propagationScaling = float(sys.argv[5])
+seed = [float(sys.argv[6]), float(sys.argv[7]) ]
+
+if len( sys.argv ) > 8:
+    seed.append( float(sys.argv[8]) )
+
+
+reader = sitk.ImageFileReader()
+reader.SetFileName ( inputImage )
+image = reader.Execute()
+
+gradientMagnitude = sitk.GradientMagnitudeRecursiveGaussianImageFilter()
+gradientMagnitude.SetSigma( sigma )
+
+featureImage = sitk.BoundedReciprocal( gradientMagnitude.Execute( image ) )
+
+seedImage = sitk.Image( image.GetSize()[0], image.GetSize()[1], sitk.sitkUInt8 )
+seedImage.SetSpacing( image.GetSpacing() )
+seedImage.SetOrigin( image.GetOrigin() )
+seedImage.SetDirection( image.GetDirection() )
+seedImage[ seedImage.TransformPhysicalPointToIndex(seed) ] = 1
+
+distance = sitk.SignedMaurerDistanceMapImageFilter()
+distance.InsideIsPositiveOff()
+distance.UseImageSpacingOn()
+
+initialImage = sitk.BinaryThreshold( distance.Execute( seedImage ), -1000, 10 )
+initialImage = sitk.Cast( initialImage, featureImage.GetPixelID() ) * -1 + 0.5
+
+
+geodesicActiveContour = sitk.GeodesicActiveContourLevelSetImageFilter()
+geodesicActiveContour.SetPropagationScaling( propagationScaling )
+geodesicActiveContour.SetCurvatureScaling( .5 )
+geodesicActiveContour.SetAdvectionScaling( 1.0 )
+geodesicActiveContour.SetMaximumRMSError( 0.01 )
+geodesicActiveContour.SetNumberOfIterations( 1000 )
+
+levelset = geodesicActiveContour.Execute( initialImage, featureImage )
+
+print( "RMS Change: ", geodesicActiveContour.GetRMSChange() )
+print( "Elapsed Iterations: ", geodesicActiveContour.GetElapsedIterations() )
+
+contour = sitk.BinaryContour( sitk.BinaryThreshold( levelset, -1000, 0 ) )
+
+if ( not "SITK_NOSHOW" in os.environ ):
+    sitk.Show( sitk.LabelOverlay( image, contour ), "Levelset Countour" )
diff --git a/Examples/Python/ImageCreateAndSet.py b/Examples/Python/ImageCreateAndSet.py
new file mode 100755
index 0000000..09c47c9
--- /dev/null
+++ b/Examples/Python/ImageCreateAndSet.py
@@ -0,0 +1,43 @@
+#!/usr/bin/env python
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+
+from __future__ import print_function
+
+import SimpleITK as sitk
+import os
+
+xImg = sitk.Image( 256, 256, sitk.sitkFloat32 )
+yImg = sitk.Image( 256, 256, sitk.sitkFloat32 )
+
+for y in range( 0, xImg.GetSize()[1] ):
+    for x in range( 0, xImg.GetSize()[0] ):
+        xImg.SetPixel( x, y, x )
+        yImg[x, y] = y
+
+
+sigma = 50
+
+xImg = sitk.Subtract( xImg,  xImg.GetSize()[0] / 2 )
+yImg = yImg - yImg.GetSize()[1] / 2
+
+gaussianImg = sitk.Exp( -1 * (xImg**2 + yImg**2) / (2.0 * sigma**2) )
+
+
+if ( not "SITK_NOSHOW" in os.environ ):
+    sitk.Show( gaussianImg, "Gaussian Blob" )
diff --git a/Examples/Python/NeighborhoodConnectedImageFilter.py b/Examples/Python/NeighborhoodConnectedImageFilter.py
new file mode 100644
index 0000000..f396b93
--- /dev/null
+++ b/Examples/Python/NeighborhoodConnectedImageFilter.py
@@ -0,0 +1,79 @@
+'''=========================================================================
+ '
+ '  Copyright Insight Software Consortium
+ '
+ '  Licensed under the Apache License, Version 2.0 (the "License");
+ '  you may not use this file except in compliance with the License.
+ '  You may obtain a copy of the License at
+ '
+ '         http://www.apache.org/licenses/LICENSE-2.0.txt
+ '
+ '  Unless required by applicable law or agreed to in writing, software
+ '  distributed under the License is distributed on an "AS IS" BASIS,
+ '  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ '  See the License for the specific language governing permissions and
+ '  limitations under the License.
+ '
+ '========================================================================='''
+
+from __future__ import print_function
+
+import SimpleITK as sitk
+import sys
+import os
+
+
+#
+# Check Command Line
+#
+if len( sys.argv ) < 7:
+  print( "Usage: NeighborhoodConnectedImageFilter inputImage outputImage lowerThreshold upperThreshold seedX seedY [seed2X seed2Y ... ]")
+  sys.exit( 1 )
+
+
+#
+# Read the image
+#
+reader = sitk.ImageFileReader()
+reader.SetFileName( sys.argv[1] )
+image = reader.Execute();
+
+
+#
+# Blur using CurvatureFlowImageFilter
+#
+blurFilter = sitk.CurvatureFlowImageFilter()
+blurFilter.SetNumberOfIterations( 5 )
+blurFilter.SetTimeStep( 0.125 )
+image = blurFilter.Execute( image )
+
+#
+# Set up NeighborhoodConnectedImageFilter for segmentation
+#
+segmentationFilter = sitk.NeighborhoodConnectedImageFilter()
+segmentationFilter.SetLower( float(sys.argv[3]) )
+segmentationFilter.SetUpper( float(sys.argv[4]) )
+segmentationFilter.SetReplaceValue( 255 )
+
+radius = [2,2]
+segmentationFilter.SetRadius( radius )
+
+for i in range( 5, len(sys.argv)-1, 2 ):
+  seed = [int(sys.argv[i]), int(sys.argv[i+1])]
+  segmentationFilter.AddSeed( seed )
+  print( "Adding seed at: ", seed, " with intensity: ", image.GetPixel(*seed) )
+
+# Run the segmentation filter
+image = segmentationFilter.Execute( image )
+
+#
+# Write out the result
+#
+writer = sitk.ImageFileWriter()
+writer.SetFileName( sys.argv[2] )
+writer.Execute( image )
+
+
+
+if ( not "SITK_NOSHOW" in os.environ ):
+  sitk.Show( image, "NeighborhoodConnectedThreshold" )
diff --git a/Examples/Python/ReadAndShow.py b/Examples/Python/ReadAndShow.py
new file mode 100755
index 0000000..6cf2613
--- /dev/null
+++ b/Examples/Python/ReadAndShow.py
@@ -0,0 +1,34 @@
+#!/usr/bin/env python
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+
+from __future__ import print_function
+
+import SimpleITK as sitk
+import sys
+import os
+
+if len ( sys.argv ) != 2:
+    print( "Usage: %s inputImage" % ( sys.argv[0] ) )
+    sys.exit ( 1 )
+
+inputImage = sitk.ReadImage( sys.argv[1] )
+
+
+if ( not "SITK_NOSHOW" in os.environ ):
+    sitk.Show( inputImage )
diff --git a/Examples/Python/SimpleGaussianProcedural.py b/Examples/Python/SimpleGaussianProcedural.py
new file mode 100755
index 0000000..bc4a988
--- /dev/null
+++ b/Examples/Python/SimpleGaussianProcedural.py
@@ -0,0 +1,41 @@
+#!/usr/bin/env python
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+
+from __future__ import print_function
+
+import SimpleITK as sitk
+import sys
+import os
+
+if len ( sys.argv ) < 4:
+    print( "Usage: %s <input> <sigma> <output>" % ( sys.argv[0] ) )
+    sys.exit ( 1 )
+
+
+image = sitk.ReadImage( sys.argv[1] )
+
+pixelID = image.GetPixelID()
+
+image  = sitk.SmoothingRecursiveGaussian( image,  float( sys.argv[2] ) )
+
+sitk.WriteImage( sitk.Cast( image, pixelID ), sys.argv[3] )
+
+
+if ( not "SITK_NOSHOW" in os.environ ):
+    sitk.Show( sitk.Cast( image, pixelID ), "Simple Gaussian Procedural" )
diff --git a/Examples/Segmentation/CMakeLists.txt b/Examples/Segmentation/CMakeLists.txt
new file mode 100644
index 0000000..018599c
--- /dev/null
+++ b/Examples/Segmentation/CMakeLists.txt
@@ -0,0 +1,7 @@
+
+# Add executable example targets
+add_executable ( ConnectedThresholdImageFilter ConnectedThresholdImageFilter.cxx )
+target_link_libraries ( ConnectedThresholdImageFilter ${SimpleITK_LIBRARIES} )
+
+add_executable ( NeighborhoodConnectedImageFilter NeighborhoodConnectedImageFilter.cxx )
+target_link_libraries ( NeighborhoodConnectedImageFilter ${SimpleITK_LIBRARIES} )
diff --git a/Examples/Segmentation/ConnectedThresholdImageFilter.cxx b/Examples/Segmentation/ConnectedThresholdImageFilter.cxx
new file mode 100644
index 0000000..38f8d34
--- /dev/null
+++ b/Examples/Segmentation/ConnectedThresholdImageFilter.cxx
@@ -0,0 +1,100 @@
+/*=========================================================================
+ *
+ *  Copyright Insight Software Consortium
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *         http://www.apache.org/licenses/LICENSE-2.0.txt
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ *=========================================================================*/
+#if defined(_MSC_VER)
+#pragma warning ( disable : 4786 )
+#endif
+
+
+#include "sitkImage.h"
+#include "sitkCurvatureFlowImageFilter.h"
+#include "sitkConnectedThresholdImageFilter.h"
+#include "sitkImageFileReader.h"
+#include "sitkImageFileWriter.h"
+
+#include <stdlib.h>
+#include <iostream>
+
+namespace sitk = itk::simple;
+
+int main( int argc, char *argv[])
+{
+
+  //
+  // Check command line parameters
+  //
+  if( argc < 7 )
+    {
+    std::cerr << "Missing Parameters " << std::endl;
+    std::cerr << "Usage: " << argv[0];
+    std::cerr << " inputImage outputImage lowerThreshold upperThreshold seedX seedY [seed2X seed2Y ... ]" << std::endl;
+    return 1;
+    }
+
+
+  //
+  // Read the image
+  //
+
+  sitk::ImageFileReader reader;
+  reader.SetFileName( std::string( argv[1] ) );
+  sitk::Image image = reader.Execute();
+
+
+  //
+  // Blur using CurvatureFlowImageFilter
+  //
+  sitk::CurvatureFlowImageFilter blurFilter;
+  blurFilter.SetNumberOfIterations( 5 );
+  blurFilter.SetTimeStep( 0.125 );
+  image = blurFilter.Execute( image );
+
+
+  //
+  // Set up ConnectedThresholdImageFilter for segmentation
+  //
+  sitk::ConnectedThresholdImageFilter segmentationFilter;
+  segmentationFilter.SetLower( atof( argv[3] ) );
+  segmentationFilter.SetUpper( atof( argv[4] ) );
+  segmentationFilter.SetReplaceValue( 255 );
+
+  for (int i = 5; i+1 < argc; i+=2)
+    {
+    std::vector<unsigned int> seed;
+    seed.push_back(atoi(argv[i]));
+    seed.push_back(atoi(argv[i+1]));
+    segmentationFilter.AddSeed(seed);
+    std::cout << "Adding a seed at: ";
+    for( unsigned int j = 0; j < seed.size(); ++j )
+      {
+      std::cout << seed[j] << " ";
+      }
+    std::cout << std::endl;
+    }
+
+  sitk::Image outImage = segmentationFilter.Execute(image);
+
+
+  //
+  // Write out the resulting file
+  //
+  sitk::ImageFileWriter writer;
+  writer.SetFileName( std::string( argv[2] ) );
+  writer.Execute(outImage);
+
+  return 0;
+}
diff --git a/Examples/Segmentation/NeighborhoodConnectedImageFilter.cxx b/Examples/Segmentation/NeighborhoodConnectedImageFilter.cxx
new file mode 100644
index 0000000..807bc6f
--- /dev/null
+++ b/Examples/Segmentation/NeighborhoodConnectedImageFilter.cxx
@@ -0,0 +1,110 @@
+/*=========================================================================
+ *
+ *  Copyright Insight Software Consortium
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *         http://www.apache.org/licenses/LICENSE-2.0.txt
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ *=========================================================================*/
+#if defined(_MSC_VER)
+#pragma warning ( disable : 4786 )
+#endif
+
+
+#include "sitkImage.h"
+#include "sitkCurvatureFlowImageFilter.h"
+#include "sitkNeighborhoodConnectedImageFilter.h"
+#include "sitkImageFileReader.h"
+#include "sitkImageFileWriter.h"
+
+#include <stdlib.h>
+#include <iostream>
+
+namespace sitk = itk::simple;
+
+int main( int argc, char *argv[])
+{
+
+  //
+  // Check command line parameters
+  //
+  if( argc < 7 )
+    {
+    std::cerr << "Missing Parameters " << std::endl;
+    std::cerr << "Usage: " << argv[0];
+    std::cerr << " inputImage outputImage lowerThreshold upperThreshold seedX seedY [seed2X seed2Y ... ]" << std::endl;
+    return 1;
+    }
+
+
+  //
+  // Read the image
+  //
+
+  sitk::ImageFileReader reader;
+  reader.SetFileName( std::string( argv[1] ) );
+  sitk::Image image = reader.Execute();
+
+
+  //
+  // Set up writer
+  //
+  sitk::ImageFileWriter writer;
+  writer.SetFileName( std::string( argv[2] ) );
+
+
+  //
+  // Blur using CurvatureFlowImageFilter
+  //
+  sitk::CurvatureFlowImageFilter blurFilter;
+  blurFilter.SetNumberOfIterations( 5 );
+  blurFilter.SetTimeStep( 0.125 );
+  image = blurFilter.Execute( image );
+
+
+  //
+  // Set up NeighborhoodConnectedImageFilter for segmentation
+  //
+  sitk::NeighborhoodConnectedImageFilter segmentationFilter;
+  segmentationFilter.SetLower( atof( argv[3] ) );
+  segmentationFilter.SetUpper( atof( argv[4] ) );
+  segmentationFilter.SetReplaceValue( 255 );
+
+  std::vector<unsigned int> radius;
+  radius.push_back( 2 );
+  radius.push_back( 2 );
+  segmentationFilter.SetRadius( radius );
+
+  for (int i = 5; i+1 < argc; i+=2)
+    {
+    std::vector<unsigned int> seed;
+    seed.push_back(atoi(argv[i]));
+    seed.push_back(atoi(argv[i+1]));
+    segmentationFilter.AddSeed(seed);
+    std::cout << "Adding a seed at ";
+    for( unsigned int j = 0; j < seed.size(); ++j )
+      {
+      std::cout << seed[j] << " ";
+      }
+    std::cout << std::endl;
+    }
+
+  sitk::Image outImage = segmentationFilter.Execute(image);
+
+
+  //
+  // Write out the resulting file
+  //
+  writer.Execute(outImage);
+
+  return 0;
+}
diff --git a/Examples/SimpleGaussian/CMakeLists.txt b/Examples/SimpleGaussian/CMakeLists.txt
new file mode 100644
index 0000000..2aa2a77
--- /dev/null
+++ b/Examples/SimpleGaussian/CMakeLists.txt
@@ -0,0 +1,83 @@
+
+
+add_executable ( SimpleGaussian SimpleGaussian.cxx )
+target_link_libraries ( SimpleGaussian ${SimpleITK_LIBRARIES} )
+
+if(NOT BUILD_TESTING)
+  return()
+endif()
+
+sitk_add_csharp_test( Example.SimpleGaussian
+  "${CMAKE_CURRENT_SOURCE_DIR}/SimpleGaussian.cs"
+  --compare
+    "${TEST_HARNESS_TEMP_DIRECTORY}/CSharp.SimpleGaussian.nrrd"
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/Example_SimpleGaussian_2.0.nrrd}
+  DATA{${SimpleITK_DATA_ROOT}/Input/RA-Short.nrrd}
+  "2.0"
+  "${TEST_HARNESS_TEMP_DIRECTORY}/CSharp.SimpleGaussian.nrrd" )
+
+sitk_add_test(NAME CXX.Example.SimpleGaussian
+  COMMAND "${ITK_TEST_DRIVER}"
+    --compare-MD5
+      "${TEST_HARNESS_TEMP_DIRECTORY}/CXX.SimpleGaussian.nrrd"
+      5ef06ed0d5d8952c770348699b70f23e
+    $<TARGET_FILE:SimpleGaussian>
+     DATA{${SimpleITK_DATA_ROOT}/Input/RA-Short.nrrd}
+     2.0
+     "${TEST_HARNESS_TEMP_DIRECTORY}/CXX.SimpleGaussian.nrrd" )
+
+sitk_add_java_test( Example.SimpleGaussian
+  "${CMAKE_CURRENT_SOURCE_DIR}/SimpleGaussian.java"
+  --compare
+    "${TEST_HARNESS_TEMP_DIRECTORY}/Java.SimpleGaussian.nrrd"
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/Example_SimpleGaussian_2.0.nrrd}
+  DATA{${SimpleITK_DATA_ROOT}/Input/RA-Short.nrrd}
+  "2.0"
+  "${TEST_HARNESS_TEMP_DIRECTORY}/Java.SimpleGaussian.nrrd" )
+
+sitk_add_lua_test( Example.SimpleGaussian
+  "${CMAKE_CURRENT_SOURCE_DIR}/SimpleGaussian.lua"
+  --compare
+    "${TEST_HARNESS_TEMP_DIRECTORY}/Lua.SimpleGaussian.nrrd"
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/Example_SimpleGaussian_2.0.nrrd}
+  DATA{${SimpleITK_DATA_ROOT}/Input/RA-Short.nrrd}
+  "2.0"
+  "${TEST_HARNESS_TEMP_DIRECTORY}/Lua.SimpleGaussian.nrrd" )
+
+sitk_add_python_test( Example.SimpleGaussian
+  "${CMAKE_CURRENT_SOURCE_DIR}/SimpleGaussian.py"
+  --compare
+    "${TEST_HARNESS_TEMP_DIRECTORY}/Python.SimpleGaussian.nrrd"
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/Example_SimpleGaussian_2.0.nrrd}
+  DATA{${SimpleITK_DATA_ROOT}/Input/RA-Short.nrrd}
+  "2.0"
+  "${TEST_HARNESS_TEMP_DIRECTORY}/Python.SimpleGaussian.nrrd" )
+
+sitk_add_r_test( Example.SimpleGaussian
+  "--file=${CMAKE_CURRENT_SOURCE_DIR}/SimpleGaussian.R"
+  --compare
+    "${TEST_HARNESS_TEMP_DIRECTORY}/R.SimpleGaussian.nrrd"
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/Example_SimpleGaussian_2.0.nrrd}
+  --args
+  DATA{${SimpleITK_DATA_ROOT}/Input/RA-Short.nrrd}
+  "2.0"
+  "${TEST_HARNESS_TEMP_DIRECTORY}/R.SimpleGaussian.nrrd"
+  )
+
+sitk_add_ruby_test( Example.SimpleGaussian
+  "${CMAKE_CURRENT_SOURCE_DIR}/SimpleGaussian.rb"
+  --compare
+    "${TEST_HARNESS_TEMP_DIRECTORY}/Ruby.SimpleGaussian.nrrd"
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/Example_SimpleGaussian_2.0.nrrd}
+  DATA{${SimpleITK_DATA_ROOT}/Input/RA-Short.nrrd}
+  "2.0"
+  "${TEST_HARNESS_TEMP_DIRECTORY}/Ruby.SimpleGaussian.nrrd" )
+
+sitk_add_tcl_test( Example.SimpleGaussian
+  "${CMAKE_CURRENT_SOURCE_DIR}/SimpleGaussian.tcl"
+  --compare
+    "${TEST_HARNESS_TEMP_DIRECTORY}/Tcl.SimpleGaussian.nrrd"
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/Example_SimpleGaussian_2.0.nrrd}
+  DATA{${SimpleITK_DATA_ROOT}/Input/RA-Short.nrrd}
+  "2.0"
+  "${TEST_HARNESS_TEMP_DIRECTORY}/Tcl.SimpleGaussian.nrrd" )
diff --git a/Examples/SimpleGaussian/SimpleGaussian.R b/Examples/SimpleGaussian/SimpleGaussian.R
new file mode 100644
index 0000000..11173a8
--- /dev/null
+++ b/Examples/SimpleGaussian/SimpleGaussian.R
@@ -0,0 +1,44 @@
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+# Run with:
+#
+# Rscript --vanilla SimpleGaussian.R  input sigma output
+#
+
+library(SimpleITK)
+
+args <- commandArgs( TRUE )
+
+myreader <- ImageFileReader()
+myreader$SetFileName(args[[1]] )
+myimage <- myreader$Execute()
+
+pixeltype <- myimage$GetPixelID()
+
+myfilter <- SmoothingRecursiveGaussianImageFilter()
+myfilter$SetSigma(as.numeric(args[2]) )
+smoothedimage <- myfilter$Execute(myimage )
+
+mycaster <- CastImageFilter()
+mycaster$SetOutputPixelType(pixeltype )
+castedimage <- mycaster$Execute(smoothedimage )
+
+mywriter <- ImageFileWriter()
+mywriter$SetFileName(args[[3]] )
+mywriter$Execute(castedimage )
+
diff --git a/Examples/SimpleGaussian/SimpleGaussian.cs b/Examples/SimpleGaussian/SimpleGaussian.cs
new file mode 100644
index 0000000..21edb63
--- /dev/null
+++ b/Examples/SimpleGaussian/SimpleGaussian.cs
@@ -0,0 +1,56 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+using System;
+using itk.simple;
+
+namespace itk.simple.examples {
+    class SimpleGaussian {
+        static void Main(string[] args) {
+            try {
+                if (args.Length < 3) {
+                    Console.WriteLine("Usage: SimpleGaussian <input> <sigma> <output>");
+                    return;
+                }
+                // Read input image
+                ImageFileReader reader = new ImageFileReader();
+                reader.SetFileName(args[0]);
+                Image image = reader.Execute();
+
+                // Execute Gaussian smoothing filter
+                SmoothingRecursiveGaussianImageFilter gaussian = new SmoothingRecursiveGaussianImageFilter();
+                gaussian.SetSigma(Double.Parse(args[1]));
+                Image blurredImage = gaussian.Execute(image);
+                
+                // Covert the real output image back to the original pixel type , to
+                // make writing easier , as many file formats don 't support real
+                // pixels .
+                CastImageFilter castFilter = new CastImageFilter();
+                castFilter.SetOutputPixelType(image.GetPixelID());
+                Image destImage = castFilter.Execute(blurredImage);
+
+                // Write output image
+                ImageFileWriter writer = new ImageFileWriter();
+                writer.SetFileName(args[2]);
+                writer.Execute(destImage);
+
+            } catch (Exception ex) {
+                Console.WriteLine(ex);
+            }
+        }
+    }
+}
diff --git a/Examples/SimpleGaussian/SimpleGaussian.cxx b/Examples/SimpleGaussian/SimpleGaussian.cxx
new file mode 100644
index 0000000..dabc222
--- /dev/null
+++ b/Examples/SimpleGaussian/SimpleGaussian.cxx
@@ -0,0 +1,60 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+// This one header will include all SimpleITK filters and external
+// objects.
+#include <SimpleITK.h>
+#include <iostream>
+#include <stdlib.h>
+
+
+// create convenient namespace alias
+namespace sitk = itk::simple;
+
+int main ( int argc, char* argv[] ) {
+
+  if ( argc < 4 ) {
+    std::cerr << "Usage: " << argv[0] << " <input> <sigma> <output>\n";
+    return 1;
+  }
+
+  // Read the image file
+  sitk::ImageFileReader reader;
+  reader.SetFileName ( std::string ( argv[1] ) );
+  sitk::Image image = reader.Execute();
+
+  // This filters perform a gaussian bluring with sigma in physical
+  // space. The output image will be of real type.
+  sitk::SmoothingRecursiveGaussianImageFilter gaussian;
+  gaussian.SetSigma ( atof ( argv[2] ) );
+  sitk::Image blurredImage = gaussian.Execute ( image );
+
+  // Covert the real output image back to the original pixel type, to
+  // make writing easier, as many file formats don't support real
+  // pixels.
+  sitk::CastImageFilter caster;
+  caster.SetOutputPixelType( image.GetPixelID() );
+  sitk::Image outputImage = caster.Execute( blurredImage );
+
+  // write the image
+  sitk::ImageFileWriter writer;
+  writer.SetFileName ( std::string ( argv[3] ) );
+  writer.Execute ( outputImage );
+
+  return 0;
+}
diff --git a/Examples/SimpleGaussian/SimpleGaussian.java b/Examples/SimpleGaussian/SimpleGaussian.java
new file mode 100644
index 0000000..fa4e847
--- /dev/null
+++ b/Examples/SimpleGaussian/SimpleGaussian.java
@@ -0,0 +1,52 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+/**
+ * Simple test of SimpleITK's java wrapping
+ */
+
+
+import org.itk.simple.*;
+
+class SimpleGaussian {
+ 
+  public static void main(String argv[]) {
+
+    if ( argv.length < 3 ) {
+      System.out.println("Usage: java SimpleGaussian <input> <sigma> <output>");
+      return;
+    }
+
+    org.itk.simple.ImageFileReader reader = new org.itk.simple.ImageFileReader();
+    reader.setFileName(argv[0]);
+    Image img = reader.execute();
+
+    SmoothingRecursiveGaussianImageFilter filter = new SmoothingRecursiveGaussianImageFilter();
+    filter.setSigma( Double.valueOf( argv[1] ).doubleValue() );
+    Image blurredImg = filter.execute(img);
+
+    CastImageFilter caster = new CastImageFilter();
+    caster.setOutputPixelType( img.getPixelID() );
+    Image castImg = caster.execute( blurredImg );
+
+    ImageFileWriter writer = new ImageFileWriter();
+    writer.setFileName(argv[2]);
+    writer.execute( castImg ); 
+
+  }
+
+}
diff --git a/Examples/SimpleGaussian/SimpleGaussian.lua b/Examples/SimpleGaussian/SimpleGaussian.lua
new file mode 100644
index 0000000..91b78df
--- /dev/null
+++ b/Examples/SimpleGaussian/SimpleGaussian.lua
@@ -0,0 +1,44 @@
+--=========================================================================
+--
+--  Copyright Insight Software Consortium
+--
+--  Licensed under the Apache License, Version 2.0 (the "License");
+--  you may not use this file except in compliance with the License.
+--  You may obtain a copy of the License at
+--
+--         http://www.apache.org/licenses/LICENSE-2.0.txt
+--
+--  Unless required by applicable law or agreed to in writing, software
+--  distributed under the License is distributed on an "AS IS" BASIS,
+--  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+--  See the License for the specific language governing permissions and
+--  limitations under the License.
+--
+--=========================================================================
+
+require "SimpleITK"
+
+if #arg < 3 then
+  print ( "Usage: SimpleGaussian <input> <sigma> <output>" )
+  os.exit ( 1 )
+end
+
+reader = SimpleITK.ImageFileReader()
+-- Remember that Lua arrays are 1-based, and that arg does not contain the application name!
+reader:SetFileName ( arg[1] )
+image = reader:Execute();
+
+inputPixelType = image:GetPixelID()
+
+gaussian = SimpleITK.SmoothingRecursiveGaussianImageFilter()
+gaussian:SetSigma ( arg[2] )
+image = gaussian:Execute ( image );
+
+caster = SimpleITK.CastImageFilter();
+caster:SetOutputPixelType( inputPixelType );
+image = caster:Execute( image )
+
+writer = SimpleITK.ImageFileWriter()
+writer:SetFileName ( arg[3] )
+writer:Execute ( image );
+
diff --git a/Examples/SimpleGaussian/SimpleGaussian.py b/Examples/SimpleGaussian/SimpleGaussian.py
new file mode 100755
index 0000000..f633f5d
--- /dev/null
+++ b/Examples/SimpleGaussian/SimpleGaussian.py
@@ -0,0 +1,51 @@
+#!/usr/bin/env python
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+
+from __future__ import print_function
+
+import SimpleITK as sitk
+import sys
+import os
+
+if len ( sys.argv ) < 4:
+    print( "Usage: SimpleGaussian <input> <sigma> <output>" )
+    sys.exit ( 1 )
+
+
+reader = sitk.ImageFileReader()
+reader.SetFileName ( sys.argv[1] )
+image = reader.Execute()
+
+pixelID = image.GetPixelID()
+
+gaussian = sitk.SmoothingRecursiveGaussianImageFilter()
+gaussian.SetSigma ( float ( sys.argv[2] ) )
+image = gaussian.Execute ( image )
+
+caster = sitk.CastImageFilter()
+caster.SetOutputPixelType( pixelID )
+image = caster.Execute( image )
+
+writer = sitk.ImageFileWriter()
+writer.SetFileName ( sys.argv[3] )
+writer.Execute ( image );
+
+
+if ( not "SITK_NOSHOW" in os.environ ):
+    sitk.Show( image, "Simple Gaussian" )
diff --git a/Examples/SimpleGaussian/SimpleGaussian.rb b/Examples/SimpleGaussian/SimpleGaussian.rb
new file mode 100644
index 0000000..bfa4243
--- /dev/null
+++ b/Examples/SimpleGaussian/SimpleGaussian.rb
@@ -0,0 +1,42 @@
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+require 'simpleitk'
+
+if ARGV.length != 3 then
+  puts "Usage: SimpleGaussian <input> <sigma> <output>";
+  exit( 1 )
+end
+
+reader = Simpleitk::ImageFileReader.new
+reader.set_file_name( ARGV[0] )
+image = reader.execute
+
+inputPixelType = image.get_pixel_idvalue
+  
+gaussian = Simpleitk::SmoothingRecursiveGaussianImageFilter.new
+gaussian.set_sigma ARGV[1].to_f
+image = gaussian.execute image;
+
+caster = Simpleitk::CastImageFilter.new
+caster.set_output_pixel_type inputPixelType
+image = caster.execute image
+
+writer = Simpleitk::ImageFileWriter.new
+writer.set_file_name ARGV[2] 
+writer.execute image
+
diff --git a/Examples/SimpleGaussian/SimpleGaussian.tcl b/Examples/SimpleGaussian/SimpleGaussian.tcl
new file mode 100644
index 0000000..ff8a96f
--- /dev/null
+++ b/Examples/SimpleGaussian/SimpleGaussian.tcl
@@ -0,0 +1,47 @@
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+
+if { $argc < 3 } {
+    puts "Usage: SimpleGaussian <input> <sigma> <output>"
+    exit 1
+}
+
+ImageFileReader reader
+reader SetFileName [ lindex $argv 0 ]
+set image [ reader Execute ]
+
+set pixelID [ $image GetPixelID ]
+
+SmoothingRecursiveGaussianImageFilter gaussian
+gaussian SetSigma [ lindex $argv 1 ]
+set image [ gaussian Execute $image ]
+
+CastImageFilter caster
+caster SetOutputPixelType $pixelID
+set image [ caster Execute $image ]
+
+ImageFileWriter writer
+writer SetFileName [ lindex $argv 2]
+writer Execute $image
+
+# Tcl requires explicit cleanup Cleanup
+reader -delete
+gaussian -delete
+caster -delete
+$image -delete
+writer -delete
diff --git a/Examples/SimpleGaussianFunctional.cxx b/Examples/SimpleGaussianFunctional.cxx
new file mode 100644
index 0000000..d4becfb
--- /dev/null
+++ b/Examples/SimpleGaussianFunctional.cxx
@@ -0,0 +1,48 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+// This one header will include all SimpleITK filters and external
+// objects.
+#include <SimpleITK.h>
+#include <stdlib.h>
+#include <iostream>
+
+// create convenient namespace alias
+namespace sitk = itk::simple;
+
+
+int main ( int argc, char* argv[] ) {
+
+  if ( argc < 4 ) {
+    std::cerr << "Usage: " << argv[0] << " <input> <sigma> <output>\n";
+    return 1;
+  }
+
+
+  sitk::Image image = sitk::ReadImage ( std::string ( argv[1] ) );
+
+  sitk::PixelIDValueEnum inputPixelID = image.GetPixelID();
+
+  image = sitk::SmoothingRecursiveGaussian ( image, atof ( argv[2] ) );
+
+  image = sitk::Cast( image, inputPixelID );
+
+  sitk::WriteImage ( image, std::string ( argv[3] ) );
+
+  return 0;
+}
diff --git a/Examples/test/CMakeLists.txt b/Examples/test/CMakeLists.txt
new file mode 100644
index 0000000..5188501
--- /dev/null
+++ b/Examples/test/CMakeLists.txt
@@ -0,0 +1,74 @@
+
+
+if(NOT BUILD_TESTING)
+  return()
+endif()
+
+#
+# CXX Examples
+#
+
+sitk_add_test(NAME CXX.Example.SimpleGaussianFunctional
+  COMMAND "${ITK_TEST_DRIVER}"
+    --compare-MD5
+      "${TEST_HARNESS_TEMP_DIRECTORY}/CXX.SimpleGaussianFunctional.nrrd"
+      5ef06ed0d5d8952c770348699b70f23e
+    $<TARGET_FILE:SimpleGaussianFunctional>
+     DATA{${SimpleITK_DATA_ROOT}/Input/RA-Short.nrrd}
+     2.0
+     "${TEST_HARNESS_TEMP_DIRECTORY}/CXX.SimpleGaussianFunctional.nrrd"
+  )
+
+
+sitk_add_test(NAME  CXX.Example.Segmentation.ConnectedThresholdImageFilter1
+  COMMAND "${ITK_TEST_DRIVER}"
+    --compare-MD5
+      "${TEST_HARNESS_TEMP_DIRECTORY}/CXXSegmentationConnectedThreshold1.png"
+      "d4ff9c512f9c18a84729677de800db0d"
+    $<TARGET_FILE:ConnectedThresholdImageFilter>
+      DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySlice.png}
+      "${TEST_HARNESS_TEMP_DIRECTORY}/CXXSegmentationConnectedThreshold1.png"
+      150 180
+      60 116
+  )
+
+sitk_add_test(NAME  CXX.Example.Segmentation.ConnectedThresholdImageFilter2
+  COMMAND "${ITK_TEST_DRIVER}"
+    --compare-MD5
+      "${TEST_HARNESS_TEMP_DIRECTORY}/CXXSegmentationConnectedThreshold2.png"
+      "a9695df04cde5b9c5481d8c253a5b3aa"
+    $<TARGET_FILE:ConnectedThresholdImageFilter>
+      DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySlice.png}
+      "${TEST_HARNESS_TEMP_DIRECTORY}/CXXSegmentationConnectedThreshold2.png"
+      210 250
+      81 112
+  )
+
+sitk_add_test( NAME CXX.Example.Segmentation.NeighborhoodConnectedImageFilter1
+  COMMAND "${ITK_TEST_DRIVER}"
+    --compare-MD5
+      "${TEST_HARNESS_TEMP_DIRECTORY}/CXXSegmentationNeighborhoodConnected1.png"
+      "311d9d4b492e1ea625e3b0b295814dce"
+    $<TARGET_FILE:NeighborhoodConnectedImageFilter>
+      DATA{${SimpleITK_DATA_ROOT}/Input/BrainProtonDensitySlice.png}
+      "${TEST_HARNESS_TEMP_DIRECTORY}/CXXSegmentationNeighborhoodConnected1.png"
+      150 180
+      60 116
+  )
+
+
+
+
+
+
+
+
+# This test currently does not compile or work
+#
+#  add_java_test( Example.ImageConnection
+#    "${SimpleITK_SOURCE_DIR}/Examples/ImageConnection.java" )
+
+
+
+
+
diff --git a/ExpandTemplateGenerator/Components/AddExtraIncludes.cxx.in b/ExpandTemplateGenerator/Components/AddExtraIncludes.cxx.in
new file mode 100644
index 0000000..bc66bc6
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/AddExtraIncludes.cxx.in
@@ -0,0 +1,5 @@
+$(if include_files and #include_files > 0 then
+OUT = [[// Additional include files
+$(for i=1,#include_files do OUT = OUT .. '#include "' .. include_files[i] .. '"' if i < #include_files then OUT = OUT .. '\n' end end)
+// Done with additional include files]]
+end)
diff --git a/ExpandTemplateGenerator/Components/ClassDeclaration.h.in b/ExpandTemplateGenerator/Components/ClassDeclaration.h.in
new file mode 100644
index 0000000..69c30cd
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/ClassDeclaration.h.in
@@ -0,0 +1,30 @@
+    /**\class ${name}
+$(if briefdescription and (briefdescription:len() > 0) then OUT=[[\brief ${briefdescription}]] end)
+
+$(if detaileddescription and (detaileddescription:len() >0) then OUT=[[${detaileddescription}]] end)
+$(if (not no_procedure) or (no_procedure == 1) then OUT=[[\sa itk::simple::${name:gsub("ImageFilter$", "")} for the procedural interface]] end)
+$(if true then
+  OUT=[[\sa ]]
+  if itk_name and (itk_name:len() > 0) then
+    OUT=OUT..[[itk::${itk_name}]]
+  elseif filter_type and (filter_type:len() >0) then
+    OUT=OUT..[[${filter_type:gsub("%b<>", "")}]]
+  else
+    OUT=OUT..[[itk::${name}]]
+  end
+OUT=OUT..[[ for the Doxygen on the original ITK class.]]
+end)
+     */
+    class SITKBasicFilters_EXPORT ${name} : public $(if number_of_inputs then OUT=[[ImageFilter<${number_of_inputs}>]] else OUT=[[ImageFilter<1>]] end) {
+    public:
+      typedef ${name} Self;
+
+      /** Default Constructor that takes no arguments and initializes
+       * default parameters */
+      ${name}();
+
+      /** Destructor */
+      ~${name}();
+
+      /** Define the pixels types supported by this filter */
+      typedef ${pixel_types}  PixelIDTypeList;
diff --git a/ExpandTemplateGenerator/Components/ClassEnd.h.in b/ExpandTemplateGenerator/Components/ClassEnd.h.in
new file mode 100644
index 0000000..2acb760
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/ClassEnd.h.in
@@ -0,0 +1 @@
+    };
diff --git a/ExpandTemplateGenerator/Components/ClassNameAndPrint.h.in b/ExpandTemplateGenerator/Components/ClassNameAndPrint.h.in
new file mode 100644
index 0000000..904dfbc
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/ClassNameAndPrint.h.in
@@ -0,0 +1,5 @@
+      /** Name of this class */
+      std::string GetName() const { return std::string ("${name}"); }
+
+      /** Print ourselves out */
+      std::string ToString() const;
diff --git a/ExpandTemplateGenerator/Components/ConstructorInitializeMembers.cxx.in b/ExpandTemplateGenerator/Components/ConstructorInitializeMembers.cxx.in
new file mode 100644
index 0000000..a83cc36
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/ConstructorInitializeMembers.cxx.in
@@ -0,0 +1,22 @@
+$(if measurements then
+temp=false
+for i = 1,#measurements do
+  if measurements[i].active then
+    temp=true
+  else
+OUT=OUT..'\
+  this->m_'..measurements[i].name..' = '..measurements[i].default..';\
+'
+  end
+end
+if temp then
+OUT=OUT..[[
+    this->m_Filter = NULL;]]
+end
+end)
+$(foreach members
+  $(if (default ~= nil) then
+OUT = [[
+  this->m_${name} = ${default};
+]]
+end))
diff --git a/ExpandTemplateGenerator/Components/ConstructorMemberFunctionSetup.cxx.in b/ExpandTemplateGenerator/Components/ConstructorMemberFunctionSetup.cxx.in
new file mode 100644
index 0000000..56ac487
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/ConstructorMemberFunctionSetup.cxx.in
@@ -0,0 +1,10 @@
+  this->m_MemberFactory.reset( new detail::MemberFunctionFactory<MemberFunctionType>( this ) );
+
+$(if custom_register then
+  OUT='  ${custom_register}'
+else
+OUT = [[
+  this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 3 > ();
+  this->m_MemberFactory->RegisterMemberFunctions< PixelIDTypeList, 2 > ();
+]]
+end)
diff --git a/ExpandTemplateGenerator/Components/ConstructorSignature.cxx.in b/ExpandTemplateGenerator/Components/ConstructorSignature.cxx.in
new file mode 100644
index 0000000..3b278b8
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/ConstructorSignature.cxx.in
@@ -0,0 +1 @@
+${name}::${name} ()
diff --git a/ExpandTemplateGenerator/Components/ConstructorVectorPixels.cxx.in b/ExpandTemplateGenerator/Components/ConstructorVectorPixels.cxx.in
new file mode 100644
index 0000000..05a76f7
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/ConstructorVectorPixels.cxx.in
@@ -0,0 +1,6 @@
+  $(if vector_pixel_types_by_component then
+    OUT=[[  typedef ${vector_pixel_types_by_component} VectorByComponentsPixelIDTypeList;
+  typedef detail::ExecuteInternalVectorImageAddressor<MemberFunctionType> VectorAddressorType;
+  this->m_MemberFactory->RegisterMemberFunctions< VectorByComponentsPixelIDTypeList, 3, VectorAddressorType> ();
+  this->m_MemberFactory->RegisterMemberFunctions< VectorByComponentsPixelIDTypeList, 2, VectorAddressorType> ();]]
+  end)
diff --git a/ExpandTemplateGenerator/Components/CustomCasts.cxx b/ExpandTemplateGenerator/Components/CustomCasts.cxx
new file mode 100644
index 0000000..15ec320
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/CustomCasts.cxx
@@ -0,0 +1,46 @@
+//
+// Custom Casts
+//
+namespace {
+$(when measurements $(foreach measurements
+$(if active and ( custom_cast or label_map ) then
+OUT=[[
+template<typename FilterType>
+struct ${name}CustomCast
+{
+]]
+if custom_cast then
+OUT=OUT..[[
+  template <typename T>
+  static ${type} Helper( const T & value ) { return ${custom_cast}; }
+]]
+end
+OUT=OUT..[[
+
+  static ${type} CustomCast( const FilterType *f]]
+if parameters then
+  for inum=1,#parameters do
+    OUT=OUT..', '..parameters[inum].type..' '..parameters[inum].name
+  end
+end
+OUT=OUT..[[ )
+  {
+    return ]]
+if custom_cast then
+  OUT=OUT..[[${name}CustomCast::Helper(]]
+end
+if label_map then
+  OUT=OUT..[[f->GetOutput()->GetLabelObject(label)->Get${name}()]]
+else
+  OUT=OUT..[[f->Get${name}(${parameters[1].name})]]
+end
+if custom_cast then
+  OUT=OUT..')'
+end
+OUT=OUT..';'..[[
+
+  }
+};
+]]
+  end)))
+}
diff --git a/ExpandTemplateGenerator/Components/CustomMethods.cxx.in b/ExpandTemplateGenerator/Components/CustomMethods.cxx.in
new file mode 100644
index 0000000..47a1193
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/CustomMethods.cxx.in
@@ -0,0 +1,25 @@
+$(if custom_methods and #custom_methods > 0 then
+OUT = [[
+
+//
+// Custom Methods
+//
+]]
+for i=1,#custom_methods do
+  OUT=OUT..'\n'
+  OUT=OUT..custom_methods[i].return_type..[[ ${name}::]]..custom_methods[i].name..'('
+  if custom_methods[i].parameters then
+    for pnum=1,#custom_methods[i].parameters do
+      if not pnum == 1 then
+        OUT=OUT..', '
+      end
+      OUT=OUT..custom_methods[i].parameters[pnum].type ..' '.. custom_methods[i].parameters[pnum].var_name
+    end
+  end
+  OUT=OUT..[[ )
+{
+  ]]..custom_methods[i].body..[[
+
+}
+]]
+end end)
diff --git a/ExpandTemplateGenerator/Components/CustomMethods.h.in b/ExpandTemplateGenerator/Components/CustomMethods.h.in
new file mode 100644
index 0000000..31a7104
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/CustomMethods.h.in
@@ -0,0 +1,19 @@
+$(if custom_methods and #custom_methods > 0 then
+OUT=OUT..'\n'
+for i=1,#custom_methods do
+  OUT=OUT..'\n'
+  if custom_methods[i].doc then
+    OUT=OUT..'      /** '..custom_methods[i].doc..' */\n'
+  end
+  OUT=OUT..'      '..custom_methods[i].return_type..' '..custom_methods[i].name..'('
+  if custom_methods[i].parameters then
+    for pnum=1,#custom_methods[i].parameters do
+      if not pnum == 1 then
+        OUT=OUT..', '
+      end
+      OUT=OUT..custom_methods[i].parameters[pnum].type ..' '.. custom_methods[i].parameters[pnum].var_name
+    end
+  end
+  OUT=OUT..[[ );
+]]
+end end)
diff --git a/ExpandTemplateGenerator/Components/DesctuctorDefinition.cxx.in b/ExpandTemplateGenerator/Components/DesctuctorDefinition.cxx.in
new file mode 100644
index 0000000..7198e26
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/DesctuctorDefinition.cxx.in
@@ -0,0 +1,22 @@
+//
+// Destructor
+//
+${name}::~${name} ()
+{
+$(if measurements then
+temp=false
+for i = 1,#measurements do
+  if measurements[i].active then
+    temp=true
+  end
+end
+if temp then
+OUT=[[
+  if (this->m_Filter != NULL)
+    {
+      m_Filter->UnRegister();
+    }
+]]
+end
+end)
+}
diff --git a/ExpandTemplateGenerator/Components/DoNotEditWarning.cxx.in b/ExpandTemplateGenerator/Components/DoNotEditWarning.cxx.in
new file mode 100644
index 0000000..4e98684
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/DoNotEditWarning.cxx.in
@@ -0,0 +1,5 @@
+/*
+ * WARNING: DO NOT EDIT THIS FILE!
+ * THIS FILE IS AUTOMATICALLY GENERATED BY THE SIMPLEITK BUILD PROCESS.
+ * Please look at sitkImageFilterTemplate.cxx.in to make changes.
+ */
diff --git a/ExpandTemplateGenerator/Components/DoNotEditWarning.h.in b/ExpandTemplateGenerator/Components/DoNotEditWarning.h.in
new file mode 100644
index 0000000..c9ce4e3
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/DoNotEditWarning.h.in
@@ -0,0 +1,5 @@
+/*
+ * WARNING: DO NOT EDIT THIS FILE!
+ * THIS FILE IS AUTOMATICALLY GENERATED BY THE SIMPLEITK BUILD PROCESS.
+ * Please look at sitk${template_code_filename}Template.h.in to make changes.
+ */
diff --git a/ExpandTemplateGenerator/Components/ExecuteInternalGetImagePointers.cxx.in b/ExpandTemplateGenerator/Components/ExecuteInternalGetImagePointers.cxx.in
new file mode 100644
index 0000000..6a33bcb
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/ExecuteInternalGetImagePointers.cxx.in
@@ -0,0 +1,9 @@
+$(if number_of_inputs > 0 then
+OUT=[[
+  // Get the pointer to the ITK image contained in image1
+  typename InputImageType::ConstPointer image1 = this->CastImageToITK<InputImageType>( inImage1 );
+]] end)$(for nimg=2,number_of_inputs do
+OUT = OUT .. '  // Get the a pointer to the ITK image contained in image' .. nimg .. '\n'
+OUT = OUT .. '  typename InputImageType' .. nimg .. '::ConstPointer image' .. nimg .. ' ='
+  .. ' this->CastImageToITK<InputImageType' .. nimg .. '>( inImage' .. nimg .. ' );\n'
+end)
diff --git a/ExpandTemplateGenerator/Components/ExecuteInternalITKFilter.cxx.in b/ExpandTemplateGenerator/Components/ExecuteInternalITKFilter.cxx.in
new file mode 100644
index 0000000..048bc71
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/ExecuteInternalITKFilter.cxx.in
@@ -0,0 +1,18 @@
+  $(if filter_type then
+    OUT=[[typedef ${filter_type} FilterType;]]
+  else
+    if itk_name then
+      OUT=[[typedef itk::${itk_name}<InputImageType,]]
+    else
+      OUT=[[typedef itk::${name}<InputImageType,]]
+    end
+        if number_of_inputs == 2 or (inputs and #inputs == 2 )then
+           OUT=OUT .. ' InputImageType2,'
+           end
+         if additional_template_types then
+         OUT=OUT .. [[ $(foreach additional_template_types ${type},) ]]
+         end
+     OUT=OUT .. [[  OutputImageType> FilterType;]]
+  end)
+  // Set up the ITK filter
+  typename FilterType::Pointer filter = FilterType::New();
diff --git a/ExpandTemplateGenerator/Components/ExecuteInternalMethod.h.in b/ExpandTemplateGenerator/Components/ExecuteInternalMethod.h.in
new file mode 100644
index 0000000..a3375b6
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/ExecuteInternalMethod.h.in
@@ -0,0 +1,15 @@
+    private:
+
+      /** Setup for member function dispatching */
+
+      typedef $(if no_return_image then OUT="void" else OUT="Image" end) (Self::*MemberFunctionType)( $(include ImageParameters.in)$(include InputParametersInternal.in) );
+      template <class TImageType> $(if no_return_image then OUT="void" else OUT="Image" end) ExecuteInternal ( $(include ImageParameters.in)$(include InputParametersInternal.in) );
+
+$(if vector_pixel_types_by_component then
+   if number_of_inputs > 1 then
+      throw 'number_of_inputs must be 1 to use vector_pixel_types_by_component'
+   end
+OUT=[[
+      /** Dispatched methods which calls ExecuteInteral on each component */
+      template <class TImageType> ]] if no_return_image then OUT=OUT..[[void]] else OUT=OUT..[[Image]] end OUT=OUT..[[ ExecuteInternalVectorImage ( const Image& image );]]
+end)
diff --git a/ExpandTemplateGenerator/Components/ExecuteInternalSetITKFilterInputs.cxx.in b/ExpandTemplateGenerator/Components/ExecuteInternalSetITKFilterInputs.cxx.in
new file mode 100644
index 0000000..b2070ec
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/ExecuteInternalSetITKFilterInputs.cxx.in
@@ -0,0 +1,37 @@
+$(if custom_set_input then
+OUT='  ${custom_set_input}'
+    else
+      for nimg=1,number_of_inputs do
+OUT= OUT .. 'filter->SetInput( ' .. nimg-1 .. ', image' .. nimg ..' );\n'
+end
+end)
+$(if inputs then
+for i = 1,#inputs do
+  if inputs[i].optional then
+    OUT = OUT .. '  if ( in'..inputs[i].name..' != NULL )\  {\n  '
+  else
+    OUT = OUT .. '  assert( '..'in' .. inputs[i].name ..' != NULL );\n'
+  end
+  OUT = OUT .. '  '
+  if inputs[i].custom_itk_cast then
+    OUT = OUT..inputs[i].custom_itk_cast..'\n'
+  elseif inputs[i].type == "Image" then
+    local input_type = 'typename FilterType::InputImageType'
+    if i ~= 1 then
+      input_type = 'typename FilterType::'..inputs[i].name..'Type'
+    end
+    OUT = OUT .. input_type .. '::ConstPointer image'..i..' = this->CastImageToITK<'..input_type..'>( *in' .. inputs[i].name ..' );\n'
+    if i == 1 then
+      OUT = OUT .. '  filter->SetInput( image1 );\n'
+    else
+      OUT = OUT .. '  filter->Set'..inputs[i].name..'( '..'image' .. i .. ' );\n'
+    end
+  else
+    OUT = OUT..'filter->Set'..inputs[i].name..'( '..'in' .. inputs[i].name ..' );\n'
+  end
+  if inputs[i].optional then
+    OUT = OUT .. '  }\n'
+  end
+end
+end)
+$(include ExecuteInternalSetITKFilterParameters.cxx.in)
diff --git a/ExpandTemplateGenerator/Components/ExecuteInternalSetITKFilterParameters.cxx.in b/ExpandTemplateGenerator/Components/ExecuteInternalSetITKFilterParameters.cxx.in
new file mode 100644
index 0000000..79dc601
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/ExecuteInternalSetITKFilterParameters.cxx.in
@@ -0,0 +1,16 @@
+
+$(foreach members
+$(if custom_itk_cast then
+OUT = '  ${custom_itk_cast}'
+elseif dim_vec and dim_vec == 1 then
+  OUT = [[
+  ${itk_type} itkVec${name} = sitkSTLVectorToITK<${itk_type}>( this->Get${name}() );
+  filter->Set${name}( itkVec${name} );]]
+elseif pixeltype then
+  OUT = '  filter->Set${name} ( static_cast< typename ${pixeltype}ImageType::PixelType> ( this->m_${name} ) );'
+elseif enum then
+  OUT = '  filter->Set${name} ( ${itk_type} ( int( this->m_${name} ) ) );'
+else
+  OUT = '  filter->Set${name} ( this->m_${name} );'
+end)
+)
diff --git a/ExpandTemplateGenerator/Components/ExecuteInternalSignature.cxx.in b/ExpandTemplateGenerator/Components/ExecuteInternalSignature.cxx.in
new file mode 100644
index 0000000..a6f70ab
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/ExecuteInternalSignature.cxx.in
@@ -0,0 +1,23 @@
+template <class TImageType>
+$(if no_return_image then OUT=[[void]] else OUT=[[Image]] end) ${name}::ExecuteInternal ( $(for inum=1,number_of_inputs do
+ if inum>1 then
+       OUT=OUT.. ', '
+  end
+  OUT= OUT .. 'const Image& inImage' .. inum
+end )$(if inputs then
+for i = 1,#inputs do
+  if (number_of_inputs > 0 or i > 1) then
+    OUT = OUT .. ", "
+  end
+  if not inputs[i].type and inputs[i].enum then
+    OUT = OUT .. name .. '::' .. inputs[i].name .. 'Type'
+  elseif inputs[i].dim_vec and (inputs[i].dim_vec == 1) then
+    OUT = OUT..'const std::vector<'..inputs[i].type..'> *'
+  elseif inputs[i].point_vec and (inputs[i].point_vec == 1) then
+    OUT = OUT..'const  std::vector< std::vector<'..inputs[i].type..'> > *'
+  else
+    OUT = OUT .. 'const ' .. inputs[i].type .. ' *'
+  end
+  OUT = OUT .. ' in' .. inputs[i].name
+end
+end) )
diff --git a/ExpandTemplateGenerator/Components/ExecuteInternalTypedefs.cxx.in b/ExpandTemplateGenerator/Components/ExecuteInternalTypedefs.cxx.in
new file mode 100644
index 0000000..5097d98
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/ExecuteInternalTypedefs.cxx.in
@@ -0,0 +1,17 @@
+$(if (number_of_inputs) > 0 or (inputs and #inputs > 0 ) then
+OUT=[[
+  // Define the input and output image types
+  typedef TImageType     InputImageType;
+        ]] end)
+$(for nimg=2,number_of_inputs do
+OUT=OUT .. '  typedef TImageType     InputImageType' .. nimg .. ';\n'
+  end)
+  $(if output_image_type then
+  OUT=[[//Define output image type
+  typedef ${output_image_type} OutputImageType;]]
+  elseif output_pixel_type then
+  OUT=[[// Define output image type
+  typedef itk::Image< ${output_pixel_type}, InputImageType::ImageDimension > OutputImageType;]]
+  else
+  OUT=[[typedef InputImageType OutputImageType;]]
+  end)
diff --git a/ExpandTemplateGenerator/Components/ExecuteInternalUpdateAndReturn.cxx.in b/ExpandTemplateGenerator/Components/ExecuteInternalUpdateAndReturn.cxx.in
new file mode 100644
index 0000000..ddc92f3
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/ExecuteInternalUpdateAndReturn.cxx.in
@@ -0,0 +1,68 @@
+
+$(if measurements then
+temp=false
+for i = 1,#measurements do
+  if measurements[i].active then
+    temp=true
+  end
+end
+if temp then
+OUT=OUT..[[
+
+  // release the old filter ( and output data )
+  if ( this->m_Filter != NULL)
+    {
+      this->m_Filter->UnRegister();
+      this->m_Filter = NULL;
+    }
+
+  this->m_Filter = filter;
+  this->m_Filter->Register();
+]]
+end
+  end)
+
+  this->PreUpdate( filter.GetPointer() );
+
+$(if measurements then
+for i = 1,#measurements do
+  if measurements[i].active then
+    OUT=OUT..'  this->m_pfGet'..measurements[i].name..' = nsstd::bind('
+    if measurements[i].custom_cast or measurements[i].label_map then
+      OUT=OUT..'&'..measurements[i].name..'CustomCast<FilterType>::CustomCast'
+    else
+      OUT=OUT..'&FilterType::Get'..measurements[i].name
+    end
+    OUT=OUT..', filter.GetPointer()'
+    if measurements[i].parameters then
+      for inum=1,#measurements[i].parameters do
+        OUT=OUT..", nsstd::placeholders::_"..inum
+      end
+    end
+    OUT=OUT..' );\
+'
+  end
+end
+end)
+
+  // Run the ITK filter and return the output as a SimpleITK image
+  filter->Update();
+
+$(when measurements $(foreach measurements
+$(if not active and custom_itk_cast then
+  OUT=[[  ${custom_itk_cast}]]
+elseif not active then
+  OUT=[[  this->m_${name} = filter->Get${name}();]]
+end)))
+
+$(if no_return_image then
+OUT=[[
+  return;
+]]
+else
+OUT=[[
+  typename FilterType::OutputImageType *itkOutImage = filter->GetOutput();
+  this->FixNonZeroIndex( itkOutImage );
+  return Image( this->CastITKToImage(itkOutImage) );
+]]
+end)
diff --git a/ExpandTemplateGenerator/Components/ExecuteInternalVectorImages.cxx.in b/ExpandTemplateGenerator/Components/ExecuteInternalVectorImages.cxx.in
new file mode 100644
index 0000000..635195f
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/ExecuteInternalVectorImages.cxx.in
@@ -0,0 +1,62 @@
+$(if vector_pixel_types_by_component then
+OUT=[[
+//
+// Dispatched methods to call ExecuteInternal on each component of the VectorImage
+//
+template <class TImageType> ]] if no_return_image then OUT=OUT..[[void]] else OUT=OUT..[[Image]] end OUT=OUT..[[ ${name}::ExecuteInternalVectorImage ( const Image& inImage1 )
+{
+  typedef TImageType                                                               VectorInputImageType;
+  typedef typename VectorInputImageType::InternalPixelType                         ComponentType;
+  typedef typename itk::Image<ComponentType, VectorInputImageType::ImageDimension> ComponentImageType;
+
+  // we must define the input and output image types should be the
+  // same as the scalar execute internal method
+  typedef ComponentImageType  InputImageType;
+]]
+if output_image_type then
+OUT=OUT..[[
+  //Define output image type
+  typedef ${output_image_type} OutputImageType;]]
+elseif output_pixel_type then
+OUT=OUT..[[
+  // Define output image type
+  typedef itk::Image< ${output_pixel_type}, InputImageType::ImageDimension > OutputImageType;]]
+else
+  OUT=OUT..[[
+  // Define output image type
+  typedef InputImageType OutputImageType;]]
+end
+
+OUT=OUT..[[
+
+  // Get the pointer to the ITK image contained in image1
+  typename VectorInputImageType::ConstPointer image1 =
+    this->CastImageToITK<VectorInputImageType>( inImage1 );
+
+  typedef itk::VectorIndexSelectionCastImageFilter< VectorInputImageType, ComponentImageType > ComponentExtratorType;
+  typename ComponentExtratorType::Pointer extractor = ComponentExtratorType::New();
+  extractor->SetInput( image1 );
+
+  typedef itk::ComposeImageFilter<OutputImageType> ToVectorFilterType;
+  typename ToVectorFilterType::Pointer toVector = ToVectorFilterType::New();
+
+  unsigned int numComps = image1->GetNumberOfComponentsPerPixel();
+  for ( unsigned int i = 0; i < numComps; ++i )
+    {
+    extractor->SetIndex( i );
+    extractor->Update();
+
+    Image tmp = this->ExecuteInternal<InputImageType>( Image( extractor->GetOutput() ) );
+
+    typename OutputImageType::ConstPointer tempITKImage = this->CastImageToITK<OutputImageType>( tmp );
+
+    toVector->SetInput( i, tempITKImage );
+    }
+
+  toVector->Update();
+
+  return Image( toVector->GetOutput() );
+}
+
+//-----------------------------------------------------------------------------
+]]end)
diff --git a/ExpandTemplateGenerator/Components/ExecuteMethodNoParameters.h.in b/ExpandTemplateGenerator/Components/ExecuteMethodNoParameters.h.in
new file mode 100644
index 0000000..db6b78f
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/ExecuteMethodNoParameters.h.in
@@ -0,0 +1,15 @@
+$(if inputs then
+    for i =1,#inputs do
+      if inputs[i].optional then
+        has_optional_inputs=inputs[i].optional
+      end
+    end
+  end
+)
+      /** Execute the filter on the input image$(if number_of_inputs == 2 then OUT=[[s]]end) */
+      $(if no_return_image then OUT="void" else OUT="Image" end) Execute ( $(include ImageParameters.in)$(include InputParameters.in) );
+$(if has_optional_inputs then
+  no_optional=1
+  OUT=[[      ]] if no_return_image then OUT=OUT..[[void]] else OUT=OUT..[[Image]] end OUT=OUT..[[ Execute ( $(include ImageParameters.in)$(include InputParameters.in) );
+]]
+end)$(if inputs then no_optional=nil end)
diff --git a/ExpandTemplateGenerator/Components/ExecuteMethodWithParameters.h.in b/ExpandTemplateGenerator/Components/ExecuteMethodWithParameters.h.in
new file mode 100644
index 0000000..1e6696d
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/ExecuteMethodWithParameters.h.in
@@ -0,0 +1,27 @@
+$(if members and #members > 0 then
+OUT=[[
+
+
+      /** Execute the filter on the input image$(if number_of_inputs == 2 then OUT='s'end) with the given parameters */
+      ]]
+  if no_return_image then
+    OUT=OUT..[[void]]
+  else
+    OUT=OUT..[[Image]]
+  end
+  OUT=OUT..[[ Execute ( $(include ImageParameters.in)$(include InputParameters.in)$(include MemberParameters.in) );]]
+end)$(if members and #members > 0 then
+    if has_optional_inputs then
+      no_optional=1
+      OUT=OUT..[[
+
+      ]]
+      if no_return_image then
+        OUT=OUT..[[void]]
+      else
+        OUT=OUT..[[Image]]
+      end
+      OUT=OUT..[[ Execute ( $(include ImageParameters.in)$(include InputParameters.in)$(include MemberParameters.in) );]]
+  end
+end)
+$(if inputs then no_optional=nil end)
diff --git a/ExpandTemplateGenerator/Components/ExecuteNoParameters.cxx.in b/ExpandTemplateGenerator/Components/ExecuteNoParameters.cxx.in
new file mode 100644
index 0000000..258e238
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/ExecuteNoParameters.cxx.in
@@ -0,0 +1,68 @@
+$(if no_return_image then OUT=[[void]] else OUT=[[Image]] end) ${name}::Execute ( $(include ImageParameters.in)$(include InputParameters.in) )
+{
+$(if true then
+local inputName = "image1"
+if not (number_of_inputs >  0) and (#inputs > 0) then
+  inputName = inputs[1].name:sub(1,1):lower() .. inputs[1].name:sub(2,-1)
+end
+OUT=[[
+  PixelIDValueEnum type = ]]..inputName..[[.GetPixelID();
+  unsigned int dimension = ]]..inputName..[[.GetDimension();
+]]
+for inum=2,number_of_inputs do
+  OUT= OUT .. '\n    if ( type != image' .. inum .. '.GetPixelIDValue() || dimension != image' .. inum .. '.GetDimension() ) { sitkExceptionMacro ( "Image' .. inum .. ' for ${name} doesn\'t match type or dimension!" ); }'
+end
+if inputs then
+  for inum=2,#inputs do
+  if not inputs[inum].optional or not no_optional then
+      local currentInputName = inputs[inum].name:sub(1,1):lower()..inputs[inum].name:sub(2,-1)
+      OUT=OUT..[[
+
+  // todo need better error handling and potential type conversion
+  if ( ]]..inputName..[[.GetDimension() != ]]..currentInputName..[[.GetDimension()]]
+     if not inputs[inum].no_size_check then
+       OUT=OUT..[[ ||
+       ]]..inputName..[[.GetSize() != ]]..currentInputName..[[.GetSize()]]
+      end
+        OUT=OUT..[[ )
+    {
+      sitkExceptionMacro ( "Input image ]]..currentInputName..[[ does not match dimension or size of first image!" );
+    }
+]]
+    end
+  end
+end
+end)
+  return this->m_MemberFactory->GetMemberFunction( type, dimension )( $(for inum=1,number_of_inputs do
+  if inum>1 then
+    OUT=OUT .. ', '
+  end
+  OUT= OUT .. 'image' .. inum
+  end
+  if inputs then
+    for inum=1,#inputs do
+      if number_of_inputs>0 or inum>1 then
+        OUT = OUT .. ", "
+      end
+      if  inputs[inum].optional and no_optional then
+        OUT=OUT.."NULL"
+      else
+        OUT=OUT.."&"..inputs[inum].name:sub(1,1):lower() .. inputs[inum].name:sub(2,-1)
+      end
+    end
+  end) );
+}
+$(if inputs then
+    local has_optional_inputs = false
+    for i =1,#inputs do
+      if inputs[i].optional then
+        has_optional_inputs=inputs[i].optional
+      end
+    end
+    if has_optional_inputs and not no_optional then
+      no_optional=1
+-- we recusively include this same template file but with the no_optional variable defined
+      OUT=[[
+$(include ExecuteNoParameters.cxx.in)]]
+    end
+end)$(if inputs then no_optional=nil end)
diff --git a/ExpandTemplateGenerator/Components/ExecuteWithParameters.cxx.in b/ExpandTemplateGenerator/Components/ExecuteWithParameters.cxx.in
new file mode 100644
index 0000000..b1f80b0
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/ExecuteWithParameters.cxx.in
@@ -0,0 +1,45 @@
+$(if members and #members > 0 then
+OUT = [[
+
+]] if no_return_image then OUT=OUT..[[void]] else OUT=OUT..[[Image]] end OUT=OUT..[[ ${name}::Execute ( $(include ImageParameters.in)$(include InputParameters.in)$(include MemberParameters.in) )
+{
+$(foreach members
+$(if (not no_set_method) or (no_set_method == 0) then
+OUT = '  this->Set${name} ( ${name:sub(1,1):lower() .. name:sub(2,-1)} );'
+end)
+)
+  return this->Execute ( $(for inum=1,number_of_inputs do
+   if inum>1 then
+       OUT=OUT.. ', '
+  end
+  OUT= OUT .. 'image' .. inum
+  end
+  if inputs then
+    local count = number_of_inputs
+    for inum=1,#inputs do
+      if  not (inputs[inum].optional and no_optional) then
+        if count>0 then
+          OUT = OUT .. ", "
+        end
+        count = count + 1
+        OUT=OUT..inputs[inum].name:sub(1,1):lower() .. inputs[inum].name:sub(2,-1)
+      end
+    end
+  end
+) );
+}
+]]
+end)
+$(if inputs then
+    local has_optional_inputs = false
+    for i =1,#inputs do
+      if inputs[i].optional then
+        has_optional_inputs=inputs[i].optional
+      end
+    end
+    if has_optional_inputs and not no_optional then
+      no_optional=1
+-- we recusively include this same template file but with the no_optional variable defined
+      OUT=[[$(include ExecuteWithParameters.cxx.in)]]
+    end
+end)$(if inputs then no_optional=nil end)
diff --git a/ExpandTemplateGenerator/Components/FunctionalAPI.cxx.in b/ExpandTemplateGenerator/Components/FunctionalAPI.cxx.in
new file mode 100644
index 0000000..f1431b3
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/FunctionalAPI.cxx.in
@@ -0,0 +1,49 @@
+$(if (not no_procedure) or (no_procedure == 1) then
+OUT=[[
+//
+// Function to run the Execute method of this filter
+//
+Image ${name:gsub("ImageFilter$", ""):gsub("Filter$", "")} ( $(include ImageParameters.in)$(include InputParameters.in)$(include MemberParameters.in) )
+{
+  ${name} filter;
+  return filter.Execute ( $(for inum=1,number_of_inputs do
+                              if inum>1 then
+                                OUT=OUT..', '
+                              end
+                              OUT=OUT .. 'image' .. inum
+                            end
+                            local count = number_of_inputs
+                            if inputs then
+                              for inum=1,#inputs do
+                                if  not (inputs[inum].optional and no_optional) then
+                                  if count>0 then
+                                    OUT = OUT .. ", "
+                                  end
+                                  count = count + 1
+                                  OUT=OUT..inputs[inum].name:sub(1,1):lower() .. inputs[inum].name:sub(2,-1)
+                                end
+                              end
+                            end
+                            for i = 1,#members do
+                              if count > 0 then
+                                OUT = OUT .. ", "
+                              end
+                              count = count + 1
+                            OUT= OUT .. members[i].name:sub(1,1):lower() .. members[i].name:sub(2,-1)
+                            end) );
+}
+]]
+end)$(if inputs and ((not no_procedure) or (no_procedure == 1))then
+    local has_optional_inputs = false
+    for i =1,#inputs do
+      if inputs[i].optional then
+        has_optional_inputs=inputs[i].optional
+      end
+    end
+    if has_optional_inputs and not no_optional then
+      no_optional=1
+-- we recusively include this same template file but with the no_optional variable defined
+      OUT=[[
+$(include FunctionalAPI.cxx.in)]]
+    end
+end)$(if inputs then no_optional=nil end)
diff --git a/ExpandTemplateGenerator/Components/FunctionalAPI.h.in b/ExpandTemplateGenerator/Components/FunctionalAPI.h.in
new file mode 100644
index 0000000..144c92e
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/FunctionalAPI.h.in
@@ -0,0 +1,24 @@
+$(if (not no_procedure) or (no_procedure == 1) then
+OUT='\
+    /**\
+'
+if briefdescription and (briefdescription:len() > 0) then
+  OUT=OUT..'     * \\brief ${briefdescription}'
+else
+  OUT=OUT..'     * \\brief itk::simple::${name} Procedural Interface'
+end
+OUT=OUT..[[
+
+     *
+     * This function directly calls the execute method of ${name}
+     * in order to support a procedural API
+     *
+     * \sa itk::simple::${name} for the object oriented interface
+     */
+     SITKBasicFilters_EXPORT Image ${name:gsub("ImageFilter$", ""):gsub("Filter$", "")} ( $(include ImageParameters.in)$(include InputParameters.in)$(include MemberParametersWithDefaults.in) );
+]]
+end)$(if has_optional_inputs  and ((not no_procedure) or (no_procedure == 1)) then
+  no_optional=1
+  OUT=OUT..[[
+     SITKBasicFilters_EXPORT Image ${name:gsub("ImageFilter$", ""):gsub("Filter$", "")} ( $(include ImageParameters.in)$(include InputParameters.in)$(include MemberParametersWithDefaults.in) );]]
+end)$(if inputs then no_optional=nil end)
diff --git a/ExpandTemplateGenerator/Components/ImageParameters.in b/ExpandTemplateGenerator/Components/ImageParameters.in
new file mode 100644
index 0000000..cd2f502
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/ImageParameters.in
@@ -0,0 +1,6 @@
+$(for inum=1,number_of_inputs do
+ if inum>1 then
+       OUT=OUT.. ', '
+  end
+  OUT= OUT .. 'const Image& image' .. inum
+  end )
diff --git a/ExpandTemplateGenerator/Components/InputParameters.in b/ExpandTemplateGenerator/Components/InputParameters.in
new file mode 100644
index 0000000..06de83d
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/InputParameters.in
@@ -0,0 +1,21 @@
+$(if inputs then
+local count=1
+for i = 1,#inputs do
+  if  not (inputs[i].optional and no_optional) then
+    if (number_of_inputs > 0 or count > 1) then
+      OUT = OUT .. ", "
+    end
+    count = count + 1
+    if not inputs[i].type and inputs[i].enum then
+      OUT = OUT .. name .. '::' .. inputs[i].name .. 'Type'
+    elseif inputs[i].dim_vec and (inputs[i].dim_vec == 1) then
+      OUT = OUT..'const std::vector<'..inputs[i].type..'> &'
+    elseif inputs[i].point_vec and (inputs[i].point_vec == 1) then
+      OUT = OUT..'const std::vector< std::vector<'..inputs[i].type..'> > &'
+    else
+      OUT = OUT .. 'const ' .. inputs[i].type .. ' &'
+    end
+    OUT = OUT .. ' ' .. inputs[i].name:sub(1,1):lower() .. inputs[i].name:sub(2,-1)
+  end
+end
+end)
diff --git a/ExpandTemplateGenerator/Components/InputParametersInternal.in b/ExpandTemplateGenerator/Components/InputParametersInternal.in
new file mode 100644
index 0000000..5a3839f
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/InputParametersInternal.in
@@ -0,0 +1,17 @@
+$(if inputs then
+for i = 1,#inputs do
+  if (number_of_inputs > 0 or i > 1) then
+    OUT = OUT .. ", "
+  end
+  if not inputs[i].type and inputs[i].enum then
+    OUT = OUT .. name .. '::' .. inputs[i].name .. 'Type'
+  elseif inputs[i].dim_vec and (inputs[i].dim_vec == 1) then
+    OUT = OUT..'const std::vector<'..inputs[i].type..'> *'
+  elseif inputs[i].point_vec and (inputs[i].point_vec == 1) then
+    OUT = OUT..'const std::vector< std::vector<'..inputs[i].type..'> > *'
+  else
+    OUT = OUT .. 'const ' .. inputs[i].type .. ' *'
+  end
+  OUT = OUT .. ' ' .. inputs[i].name:sub(1,1):lower() .. inputs[i].name:sub(2,-1)
+end
+end)
diff --git a/ExpandTemplateGenerator/Components/MemberFunctionDispatch.h.in b/ExpandTemplateGenerator/Components/MemberFunctionDispatch.h.in
new file mode 100644
index 0000000..2f303b5
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/MemberFunctionDispatch.h.in
@@ -0,0 +1,5 @@
+      friend struct detail::MemberFunctionAddressor<MemberFunctionType>;
+$(if vector_pixel_types_by_component then
+OUT=[[      friend struct detail::ExecuteInternalVectorImageAddressor<MemberFunctionType>;]]
+end)
+      nsstd::auto_ptr<detail::MemberFunctionFactory<MemberFunctionType> > m_MemberFactory;
diff --git a/ExpandTemplateGenerator/Components/MemberGetSetDeclarations.h.in b/ExpandTemplateGenerator/Components/MemberGetSetDeclarations.h.in
new file mode 100644
index 0000000..8b05c3b
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/MemberGetSetDeclarations.h.in
@@ -0,0 +1,126 @@
+$(foreach members
+$(if enum then
+    OUT=OUT..'\
+\
+      typedef enum {'
+    for i = 1,#enum do
+        if( i > 1) then
+            OUT=OUT..','
+        end
+        OUT=OUT..enum[i]
+    end
+    if type then
+      OUT=OUT..'} ${type};'
+    else
+      OUT=OUT..'} ${name}Type;'
+    end
+end)
+$(if (not no_set_method) or (no_set_method == 0) then
+      OUT = '\
+      /**'
+      if briefdescriptionSet and (briefdescriptionSet:len() > 0) then
+         OUT=OUT .. '\
+       * \\brief ${briefdescriptionSet}'
+      end
+      if detaileddescriptionSet and (detaileddescriptionSet:len() > 0) then
+         OUT=OUT .. '\
+       * ${detaileddescriptionSet}'
+      end
+      OUT= OUT .. '\
+       */\
+      SITK_RETURN_SELF_TYPE_HEADER Set${name} ('
+      if not type and enum then
+        OUT=OUT..' ${name}Type'
+      elseif dim_vec and (dim_vec == 1) then
+        OUT=OUT..' const std::vector<${type}> &'
+      elseif point_vec and (point_vec == 1) then
+        OUT=OUT..' const std::vector< std::vector<${type}> >&'
+      else
+        OUT=OUT..' ${type}'
+      end
+      OUT=OUT..' ${name} ) { this->m_${name} = ${name}; return *this; }'
+  if dim_vec and ( set_as_scalar == 1 ) then
+    OUT = OUT .. '\
+\
+      /** Set the values of the ${name} vector all to value */\
+      SITK_RETURN_SELF_TYPE_HEADER Set${name}( ${type} value ) { this->m_${name} = std::vector<${type}>(3, value); return *this; }\
+'
+  end
+  if type == "bool" and ( not dim_vec or not dim_vec == 1 ) then
+      OUT = OUT .. '\
+\
+      /** Set the value of ${name} to true or false respectfully. */\
+      SITK_RETURN_SELF_TYPE_HEADER ${name}On() { return this->Set${name}(true); }\
+      SITK_RETURN_SELF_TYPE_HEADER ${name}Off() { return this->Set${name}(false); }'
+  end
+end)
+$(if (not no_get_method) or (no_get_method == 0) then
+       OUT = '\
+      /**'
+      if briefdescriptionGet and (briefdescriptionGet:len() > 0)  then
+         OUT=OUT .. '\
+       * \\brief ${briefdescriptionGet}'
+      end
+      if detaileddescriptionGet and (detaileddescriptionGet:len() > 0) then
+         OUT=OUT .. '\
+       * ${detaileddescriptionGet}'
+      end
+      OUT= OUT .. '\
+       */\
+       '
+      if not type and enum then
+        OUT=OUT..' ${name}Type'
+      elseif dim_vec and (dim_vec == 1) then
+        OUT=OUT..' std::vector<${type}>'
+      elseif point_vec and (point_vec == 1) then
+        OUT=OUT..' std::vector< std::vector<unsigned int> >'
+      else
+        OUT=OUT..' ${type}'
+      end
+      OUT=OUT..' Get${name}() const { return this->m_${name}; }'
+end)$(if point_vec and (point_vec == 1) then
+      OUT=[[
+
+      /** \brief Add ${name} point */
+      SITK_RETURN_SELF_TYPE_HEADER Add${name:gsub("s([0-9]?)$","%1")}( const std::vector< ${type} > &point ) { this->m_${name}.push_back(point); return *this;}
+      /** \brief Remove all ${name} points */
+      SITK_RETURN_SELF_TYPE_HEADER Clear${name}( ) { this->m_${name}.clear(); return *this;}
+]]
+end))$(when measurements $(foreach measurements
+
+     /**$(if briefdescriptionGet and (briefdescriptionGet:len() > 0) then OUT=[[ \brief ${briefdescriptionGet}]]end)
+      *$(if detaileddescriptionGet and (detaileddescriptionGet:len() > 0) then OUT =[[ ${detaileddescriptionGet}]]end)
+      *
+$(if active then
+OUT=[[
+      * This is an active measurement. It may be accessed while the
+      * filter is being executing in command call-backs and can be
+      * accessed after execution.
+]]
+else
+OUT=[[
+      * This is a measurement. Its value is updated in the Execute
+      * methods, so the value will only be valid after an execution.
+]]
+end)      */
+$(if active then
+OUT=[[
+     ${type} Get${name}($(if parameters then
+for inum=1,#parameters do
+  if inum>1 then
+    OUT = OUT .. ', '
+  end
+  OUT = OUT .. parameters[inum].type .. ' ' .. parameters[inum].name
+end end)) const { return this->m_pfGet${name}($(if parameters then
+for inum=1,#parameters do
+  if inum>1 then
+    OUT = OUT .. ', '
+  end
+  OUT = OUT .. parameters[inum].name
+end end)); };
+]]
+else
+OUT=[[
+     ${type} Get${name}() const { return this->m_${name}; };
+]]
+end)))
diff --git a/ExpandTemplateGenerator/Components/MemberParameters.in b/ExpandTemplateGenerator/Components/MemberParameters.in
new file mode 100644
index 0000000..3d50f68
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/MemberParameters.in
@@ -0,0 +1,19 @@
+$(for i = 1,#members do
+  temp = number_of_inputs
+  if inputs then
+    temp = temp + #inputs
+  end
+  if (temp > 0 or i > 1) then
+    OUT = OUT .. ", "
+  end
+  if not members[i].type and members[i].enum then
+    OUT = OUT .. name .. '::' .. members[i].name .. 'Type'
+  elseif members[i].dim_vec and (members[i].dim_vec == 1) then
+    OUT = OUT..'const std::vector<'..members[i].type..'> &'
+  elseif members[i].point_vec and (members[i].point_vec == 1) then
+    OUT = OUT..'const std::vector< std::vector<'..members[i].type..'> > &'
+  else
+    OUT = OUT .. members[i].type
+  end
+  OUT = OUT .. ' ' .. members[i].name:sub(1,1):lower() .. members[i].name:sub(2,-1)
+end)
diff --git a/ExpandTemplateGenerator/Components/MemberParametersWithDefaults.in b/ExpandTemplateGenerator/Components/MemberParametersWithDefaults.in
new file mode 100644
index 0000000..98e60c8
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/MemberParametersWithDefaults.in
@@ -0,0 +1,23 @@
+$(for i = 1,#members do
+  local count = number_of_inputs
+  if inputs then
+    for j = 1,#inputs do
+      if not (inputs[j].optional and no_optional) then
+        count = count + 1
+      end
+    end
+  end
+  if (count > 0 or i > 1) then
+    OUT = OUT .. ", "
+  end
+  if not type and members[i].enum then
+    OUT = OUT .. name .. '::' .. members[i].name .. 'Type'
+  elseif members[i].dim_vec and (members[i].dim_vec == 1) then
+    OUT = OUT..'const std::vector<'..members[i].type..'> &'
+  elseif members[i].point_vec and (members[i].point_vec == 1) then
+    OUT = OUT..'const std::vector< std::vector<'..members[i].type..'> > &'
+  else
+    OUT = OUT .. members[i].type
+  end
+  OUT= OUT .." ".. members[i].name:sub(1,1):lower() .. members[i].name:sub(2,-1) .. " = " .. members[i].default
+end)
diff --git a/ExpandTemplateGenerator/Components/MemberPointsGetSetDeclarations.h.in b/ExpandTemplateGenerator/Components/MemberPointsGetSetDeclarations.h.in
new file mode 100644
index 0000000..e69de29
diff --git a/ExpandTemplateGenerator/Components/PrivateMemberDeclarations.h.in b/ExpandTemplateGenerator/Components/PrivateMemberDeclarations.h.in
new file mode 100644
index 0000000..2ec985d
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/PrivateMemberDeclarations.h.in
@@ -0,0 +1,53 @@
+$(for i = 1,#members do
+if members[i].doc then
+OUT=OUT..'\
+      /* '..members[i].doc..' */'
+end
+OUT=OUT..'\
+      '
+if not members[i].type and members[i].enum then
+  OUT=OUT..members[i].name..'Type'
+elseif members[i].dim_vec and (members[i].dim_vec == 1) then
+  OUT=OUT..'std::vector<'..members[i].type..'>'
+elseif members[i].point_vec and (members[i].point_vec == 1) then
+  OUT=OUT..'std::vector< std::vector<'..members[i].type..'> >'
+else
+  OUT=OUT..members[i].type
+end
+OUT=OUT..'  m_'..members[i].name..';'
+
+end)$(when measurements
+
+$(foreach measurements
+$(if doc then
+OUT=[[
+      /* ${doc} */]]end)
+$(if active then
+OUT=[[
+      nsstd::function<${type}($(if parameters then
+for inum=1,#parameters do
+  if inum>1 then
+    OUT = OUT .. ', '
+  end
+  OUT = OUT .. parameters[inum].type
+end end))> m_pfGet${name};
+]]
+    else
+OUT=[[
+      ${type} m_${name};
+]]
+end)))
+$(if measurements then
+temp=false
+for i = 1,#measurements do
+  if measurements[i].active then
+    temp=true
+  end
+end
+if temp then
+OUT=[[
+      // Holder of process object for active measurements
+      itk::ProcessObject *m_Filter;
+]]
+end
+end)
diff --git a/ExpandTemplateGenerator/Components/PublicDeclarations.h.in b/ExpandTemplateGenerator/Components/PublicDeclarations.h.in
new file mode 100644
index 0000000..75df023
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/PublicDeclarations.h.in
@@ -0,0 +1,5 @@
+$(if public_declarations then
+      OUT=[[
+      /** Custom public declarations */
+      ${public_declarations}
+]]end)
diff --git a/ExpandTemplateGenerator/Components/StandardIncludes.cxx.in b/ExpandTemplateGenerator/Components/StandardIncludes.cxx.in
new file mode 100644
index 0000000..566eda0
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/StandardIncludes.cxx.in
@@ -0,0 +1,18 @@
+#include "itkImage.h"
+#include "itkVectorImage.h"
+#include "itkLabelMap.h"
+#include "itkLabelObject.h"
+#include "itkNumericTraits.h"
+#include "itkNumericTraitsVariableLengthVectorPixel.h"
+#include "itkVectorIndexSelectionCastImageFilter.h"
+#include "itkComposeImageFilter.h"
+
+#include "sitk${name}.h"
+$(if itk_name then
+  OUT=[[
+#include "itk${itk_name}.h"]]
+else
+  OUT=[[
+#include "itk${name}.h"]]
+end)
+
diff --git a/ExpandTemplateGenerator/Components/ToStringBody.cxx.in b/ExpandTemplateGenerator/Components/ToStringBody.cxx.in
new file mode 100644
index 0000000..f331954
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/ToStringBody.cxx.in
@@ -0,0 +1,44 @@
+  std::ostringstream out;
+  out << "itk::simple::${name}\n";
+$(foreach members
+$(if (not no_print) or (not no_print == 1) then
+  OUT=[[
+  out << "  ${name}: ";
+]]
+  if point_vec and (point_vec == 1) then
+  OUT=OUT..[[
+  out << "[ ";
+  for (unsigned int i = 0; i + 1 < m_${name}.size(); ++i)
+    {
+    this->ToStringHelper(out, this->m_${name}[i]);
+    out << ", ";
+    }
+  if ( !this->m_${name}.empty() ) out << this->m_${name}.back() << ' ';
+  out << "]";]]
+  else
+  OUT=OUT..[[
+  this->ToStringHelper(out, this->m_${name});
+]]
+  end
+  OUT=OUT..[[
+  out << std::endl;]]
+end)
+)$(when measurements $(foreach measurements
+$(if (not no_print) or (not no_print == 1) then
+if active then
+  OUT=[[
+  out << "  ${name}: ";
+  if (bool(this->m_pfGet${name}))
+  {
+    this->ToStringHelper(out, this->m_pfGet${name}());
+  }
+  else
+  {
+    out << "(null)";
+  }
+  out << std::endl;]]
+else
+OUT=[[  out << "  ${name}: " << this->m_${name} << std::endl;]]
+end
+end)))
+  out << ProcessObject::ToString();
diff --git a/ExpandTemplateGenerator/Components/ToStringReturn.cxx.in b/ExpandTemplateGenerator/Components/ToStringReturn.cxx.in
new file mode 100644
index 0000000..be91774
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/ToStringReturn.cxx.in
@@ -0,0 +1 @@
+  return out.str();
diff --git a/ExpandTemplateGenerator/Components/ToStringSignature.cxx.in b/ExpandTemplateGenerator/Components/ToStringSignature.cxx.in
new file mode 100644
index 0000000..fe14303
--- /dev/null
+++ b/ExpandTemplateGenerator/Components/ToStringSignature.cxx.in
@@ -0,0 +1 @@
+std::string ${name}::ToString() const
diff --git a/ExpandTemplateGenerator/ExpandTemplate.lua b/ExpandTemplateGenerator/ExpandTemplate.lua
new file mode 100644
index 0000000..5788c6e
--- /dev/null
+++ b/ExpandTemplateGenerator/ExpandTemplate.lua
@@ -0,0 +1,269 @@
+package.path = debug.getinfo(1).source:match("@?(.*/)")..'?.lua;' .. package.path
+
+require "json"
+
+-- require 'Expand'
+local strfind = string.find
+local strsub  = string.sub
+local push    = table.insert
+local pop     = table.remove
+local concat  = table.concat
+
+local statements = {}
+for w in string.gfind('do if for while repeat', '%a+') do
+  statements[w] = true
+end
+
+function expand(str, ...)
+  assert(type(str)=='string', 'expecting string')
+  local searchlist = arg
+  local estring,evar
+
+  function estring(str)
+    local b,e,i
+    -- print ( "---------" )
+    -- print ( "estring: starting with " .. str );
+    -- print ( "---------" )
+    b,i = strfind(str, '%$.')
+    if not b then return str end
+
+    local R, pos = {}, 1
+    repeat
+      b,e = strfind(str, '^%b{}', i)
+      if b then
+        -- Found dollar substitution ${dosomething}
+        -- print ( '\testring: matched ^%b{} to "' .. string.sub ( str, b, e ) .. '"  calling evaluate recursively \n' )
+        push(R, strsub(str, pos, b-2))
+        push(R, evar(strsub(str, b+1, e-1)))
+        i = e+1
+        pos = i
+      else
+        b,e = strfind(str, '^%b()', i)
+        if b then
+          -- Found dollar command $(dosomething)
+          -- print ( '\testring: matched ^%b() to "' .. string.sub ( str, b, e ) .. '"  calling evaluate recursively \n' )
+          push(R, strsub(str, pos, b-2))
+          push(R, evar(strsub(str, b+1, e-1)))
+          i = e+1
+          pos = i
+        elseif strfind(str, '^%$', i) then
+          -- Found double dollar ($$)
+          -- print ( '\testring: matched ^%$ @ ' .. i .. ' to "' .. strsub ( str, pos ) .. '" returning ' .. strsub(str,pos,i-1) .. '\n');
+          push(R, strsub(str, pos, i-1))
+          i = i+1
+          pos = i
+        end
+      end
+      b,i = strfind(str, '%$.', i)
+    until not b
+
+    push(R, strsub(str, pos))
+    return concat(R)
+  end
+
+  local function search(index)
+    for _,symt in ipairs(searchlist) do
+      local ts = type(symt)
+      local value
+      if     ts == 'function' then value = symt(index)
+      elseif ts == 'table'
+          or ts == 'userdata' then value = symt[index]
+          if type(value)=='function' then value = value(symt) end
+      else error'search item must be a function, table or userdata' end
+      if value ~= nil then return value end
+    end
+    return nil
+  end
+
+  local function elist(var, v, str, sep)
+    local tab = search(v)
+    if tab == nil then
+        io.stderr:write('Warning: unknown variable: '.. v .. ' used with foreach\n')
+    end
+    if tab then
+      assert(type(tab)=='table', 'expecting table from: '.. var)
+      local R = {}
+      push(searchlist, 1, tab)
+      push(searchlist, 1, false)
+      for _,elem in ipairs(tab) do
+        searchlist[1] = elem
+        push(R, estring(str))
+      end
+      pop(searchlist, 1)
+      pop(searchlist, 1)
+      return concat(R, sep)
+    else
+      return ''
+    end
+  end
+
+  local function get(tab,index)
+    for _,symt in ipairs(searchlist) do
+      local ts = type(symt)
+      local value
+      if     ts == 'function' then value = symt(index)
+      elseif ts == 'table'
+          or ts == 'userdata' then value = symt[index]
+      else error'search item must be a function, table or userdata' end
+      if value ~= nil then
+        tab[index] = value  -- caches value and prevents changing elements
+        return value
+      end
+    end
+  end
+
+  function evar(var)
+    if strfind(var, '^[_%a][_%w]*$') then -- ${vn}
+      local v = search(var)
+      if v == nil then
+        io.stderr:write('Warning: unknown variable: '.. var .. '  using nil\n')
+      end
+      return estring(tostring(v))
+    end
+    local b,e,cmd = strfind(var, '^(%a+)%s.')
+    if cmd == 'foreach' then -- ${foreach vn xxx} or ${foreach vn/sep/xxx}
+      local vn,s
+      b,e,vn,s = strfind(var, '^([_%a][_%w]*)([%s%p]).', e)
+      if vn then
+        if strfind(s, '%s') then
+          return elist(var, vn, strsub(var, e), '')
+        end
+        b = strfind(var, s, e, true)
+        if b then
+          return elist(var, vn, strsub(var, b+1), strsub(var,e,b-1))
+        end
+      end
+      error('syntax error in: '.. var, 2)
+    -- Add "include" option for SimpleITK
+    elseif cmd == 'include' then -- $(include xxx)
+
+      filename = templateComponentDirectory .. "/" .. estring(strsub(var,e))
+      local includefid = io.open ( filename )
+      if includefid == nil then
+        print ( 'Error: failed to include ' .. filename )
+        os.exit ( 1 )
+      end
+
+      includedText = includefid:read ( "*all" )
+      includefid:close()
+
+      --Remove the last character
+      includedText=includedText:sub(1,#includedText-1)
+
+      return estring(includedText)
+
+    elseif cmd == 'when' then -- $(when vn xxx)
+      local vn
+      b,e,vn = strfind(var, '^([_%a][_%w]*)%s.', e)
+      if vn then
+        local t = search(vn)
+        if not t then
+          return ''
+        end
+        local s = strsub(var,e)
+        if type(t)=='table' or type(t)=='userdata' then
+          push(searchlist, 1, t)
+          s = estring(s)
+          pop(searchlist, 1)
+          return s
+        else
+          return estring(s)
+        end
+      end
+      error('syntax error in: '.. var, 2)
+    else
+      if statements[cmd] then -- do if for while repeat
+        var = 'local OUT="" '.. var ..' return OUT'
+      else  -- expression
+        var = 'return '.. var
+      end
+      local f = assert(loadstring(var))
+      local t = searchlist[1]
+      assert(type(t)=='table' or type(t)=='userdata', 'expecting table')
+      setfenv(f, setmetatable({}, {__index=get, __newindex=t}))
+      return estring(tostring(f()))
+    end
+  end
+
+  return estring(str)
+end
+
+-- Args should be parameters template output
+if #arg ~= 6 then
+  print ( 'usage: ExpandTemplate.lua test_or_code_flag file_variables template_directory template_component_directory template_extension output ' )
+  os.exit ( 1 )
+end
+
+testOrCodeFlag = arg[1]
+configFile = arg[2]
+templateFileDirectoryAndPrefix = arg[3]
+templateComponentDirectory = arg[4]
+templateFileExtension = arg[5]
+outputFile = arg[6]
+
+-- The following output may be useful for debuging perposes
+-- Alternatively a command line option could be added to increase verbosity
+-------------------------------
+-- print ( 'configFile = ' .. configFile )
+-- print ( 'testOrCodeFlag = ' .. testOrCodeFlag )
+-- print ( 'templateFileDirectoryAndPrefix = ' .. templateFileDirectoryAndPrefix )
+-- print ( 'templateComponentDirectory = ' .. templateComponentDirectory )
+-- print ( 'templateFileExtension = ' .. templateFileExtension )
+-- print ( 'outputFile = ' .. outputFile )
+
+-- Load it
+-- dofile ( configFile )
+fid = io.open ( configFile )
+if fid == nil then
+  print ( 'Error: failed to open ' .. configFile )
+  os.exit ( 1 )
+end
+json = fid:read ( "*all" )
+fid:close()
+filterDescription = decode ( json )
+
+templateBaseFilename = templateFileExtension
+
+if testOrCodeFlag == "code" then
+  if filterDescription.template_code_filename == nil then
+      templateBaseFilename = "ImageFilter" .. templateBaseFilename
+    else
+      templateBaseFilename = filterDescription.template_code_filename .. templateBaseFilename
+    end
+else
+  if testOrCodeFlag == "test" then
+    if filterDescription.template_test_filename == nil then
+      templateBaseFilename = "ImageFilter" .. templateBaseFilename
+    else
+      templateBaseFilename = filterDescription.template_test_filename .. templateBaseFilename
+    end
+  else
+    print('Warning: ExpandTemplate unknown flag value' .. testOrCodeFlag )
+  end
+end
+
+templateFilename = templateFileDirectoryAndPrefix .. templateBaseFilename
+
+
+fid = io.open ( templateFilename )
+if fid == nil then
+  print ( 'Error: failed to open ' .. templateFilename )
+  os.exit ( 1 )
+end
+
+template = fid:read ( "*all" )
+fid:close()
+
+
+if filterDescription == nil then
+  print ( 'Error: failed to find filter config in ' .. configFile )
+  os.exit ( 1 )
+end
+
+fid = io.open ( outputFile, 'w' )
+if fid == nil then
+  print ( 'Error: failed to open ' .. outputFile .. ' for writing' )
+  os.exit ( 1 )
+end
+fid:write ( expand ( template, filterDescription ) )
+fid:close()
diff --git a/ExpandTemplateGenerator/JSONQuery.lua b/ExpandTemplateGenerator/JSONQuery.lua
new file mode 100644
index 0000000..9dc528d
--- /dev/null
+++ b/ExpandTemplateGenerator/JSONQuery.lua
@@ -0,0 +1,62 @@
+--!/usr/bin/env lua
+--=========================================================================
+--
+--  Copyright Insight Software Consortium
+--
+--  Licensed under the Apache License, Version 2.0 (the "License");
+--  you may not use this file except in compliance with the License.
+--  You may obtain a copy of the License at
+--
+--         http://www.apache.org/licenses/LICENSE-2.0.txt
+--
+--  Unless required by applicable law or agreed to in writing, software
+--  distributed under the License is distributed on an "AS IS" BASIS,
+--  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+--  See the License for the specific language governing permissions and
+--  limitations under the License.
+--
+--=========================================================================
+
+-- This script parses a JSON file, and print specified json fields provided by JSON paths.
+--
+-- It is currently expected that path specified is the lua table access
+-- string to the correct field. There currently is no real validation
+-- or error checking.
+
+package.path = debug.getinfo(1).source:match("@?(.*/)")..'?.lua;' .. package.path
+
+require "json"
+
+if #arg < 2 then
+   print("usage: "..arg[0].." [json file] [json path]+")
+   os.exit(1)
+end
+
+--print("Reading \""..arg[1].."\"...")
+
+local f = assert(io.open(arg[1]))
+
+local str = f:read("*all")
+f:close()
+
+json_table = decode(str)
+
+bad_count = 0
+
+for i=2,#arg do
+    json_path=arg[i]
+    cmd = loadstring("return json_table."..json_path)
+    if not cmd then
+        io.stderr:write("Warning: bad path -> "..json_path.."\n")
+        bad_count = bad_count+1
+    else
+        out = cmd()
+        if not out then
+            io.stderr:write(json_path.." NOT FOUND\n")
+        else
+            print(json_path..": \""..cmd().."\"")
+        end
+    end
+end
+
+os.exit( bad_count )
diff --git a/ExpandTemplateGenerator/json.lua b/ExpandTemplateGenerator/json.lua
new file mode 100644
index 0000000..82adf71
--- /dev/null
+++ b/ExpandTemplateGenerator/json.lua
@@ -0,0 +1,376 @@
+-----------------------------------------------------------------------------
+-- JSON4Lua: JSON encoding / decoding support for the Lua language.
+-- json Module.
+-- Author: Craig Mason-Jones
+-- Homepage: http://json.luaforge.net/
+-- Version: 0.9.40
+-- This module is released under the MIT License (MIT).
+-- Please see LICENCE.txt for details.
+--
+-- USAGE:
+-- This module exposes two functions:
+--   encode(o)
+--     Returns the table / string / boolean / number / nil / json.null value as a JSON-encoded string.
+--   decode(json_string)
+--     Returns a Lua object populated with the data encoded in the JSON string json_string.
+--
+-- REQUIREMENTS:
+--   compat-5.1 if using Lua 5.0
+--
+-- CHANGELOG
+--   0.9.20 Introduction of local Lua functions for private functions (removed _ function prefix).
+--          Fixed Lua 5.1 compatibility issues.
+--   		Introduced json.null to have null values in associative arrays.
+--          encode() performance improvement (more than 50%) through table.concat rather than ..
+--          Introduced decode ability to ignore /**/ comments in the JSON string.
+--   0.9.10 Fix to array encoding / decoding to correctly manage nil/null values in arrays.
+-----------------------------------------------------------------------------
+
+-----------------------------------------------------------------------------
+-- Imports and dependencies
+-----------------------------------------------------------------------------
+local math = require('math')
+local string = require("string")
+local table = require("table")
+
+local base = _G
+
+-----------------------------------------------------------------------------
+-- Module declaration
+-----------------------------------------------------------------------------
+-- module("json")
+
+-- Public functions
+
+-- Private functions
+local decode_scanArray
+local decode_scanComment
+local decode_scanConstant
+local decode_scanNumber
+local decode_scanObject
+local decode_scanString
+local decode_scanWhitespace
+local encodeString
+local isArray
+local isEncodable
+
+-----------------------------------------------------------------------------
+-- PUBLIC FUNCTIONS
+-----------------------------------------------------------------------------
+--- Encodes an arbitrary Lua object / variable.
+-- @param v The Lua object / variable to be JSON encoded.
+-- @return String containing the JSON encoding in internal Lua string format (i.e. not unicode)
+function encode (v)
+  -- Handle nil values
+  if v==nil then
+    return "null"
+  end
+
+  local vtype = base.type(v)
+
+  -- Handle strings
+  if vtype=='string' then
+    return '"' .. encodeString(v) .. '"'	    -- Need to handle encoding in string
+  end
+
+  -- Handle booleans
+  if vtype=='number' or vtype=='boolean' then
+    return base.tostring(v)
+  end
+
+  -- Handle tables
+  if vtype=='table' then
+    local rval = {}
+    -- Consider arrays separately
+    local bArray, maxCount = isArray(v)
+    if bArray then
+      for i = 1,maxCount do
+        table.insert(rval, encode(v[i]))
+      end
+    else	-- An object, not an array
+      for i,j in base.pairs(v) do
+        if isEncodable(i) and isEncodable(j) then
+          table.insert(rval, '"' .. encodeString(i) .. '":' .. encode(j))
+        end
+      end
+    end
+    if bArray then
+      return '[' .. table.concat(rval,',') ..']'
+    else
+      return '{' .. table.concat(rval,',') .. '}'
+    end
+  end
+
+  -- Handle null values
+  if vtype=='function' and v==null then
+    return 'null'
+  end
+
+  base.assert(false,'encode attempt to encode unsupported type ' .. vtype .. ':' .. base.tostring(v))
+end
+
+
+--- Decodes a JSON string and returns the decoded value as a Lua data structure / value.
+-- @param s The string to scan.
+-- @param [startPos] Optional starting position where the JSON string is located. Defaults to 1.
+-- @param Lua object, number The object that was scanned, as a Lua table / string / number / boolean or nil,
+-- and the position of the first character after
+-- the scanned JSON object.
+function decode(s, startPos)
+  startPos = startPos and startPos or 1
+  startPos = decode_scanWhitespace(s,startPos)
+  base.assert(startPos<=string.len(s), 'Unterminated JSON encoded object found at position in [' .. s .. ']')
+  local curChar = string.sub(s,startPos,startPos)
+  -- Object
+  if curChar=='{' then
+    return decode_scanObject(s,startPos)
+  end
+  -- Array
+  if curChar=='[' then
+    return decode_scanArray(s,startPos)
+  end
+  -- Number
+  if string.find("+-0123456789.eE", curChar, 1, true) then
+    return decode_scanNumber(s,startPos)
+  end
+  -- String
+  if curChar==[["]] or curChar==[[']] then
+    return decode_scanString(s,startPos)
+  end
+  if string.sub(s,startPos,startPos+1)=='/*' then
+    return decode(s, decode_scanComment(s,startPos))
+  end
+  -- Otherwise, it must be a constant
+  return decode_scanConstant(s,startPos)
+end
+
+--- The null function allows one to specify a null value in an associative array (which is otherwise
+-- discarded if you set the value with 'nil' in Lua. Simply set t = { first=json.null }
+function null()
+  return null -- so json.null() will also return null ;-)
+end
+-----------------------------------------------------------------------------
+-- Internal, PRIVATE functions.
+-- Following a Python-like convention, I have prefixed all these 'PRIVATE'
+-- functions with an underscore.
+-----------------------------------------------------------------------------
+
+--- Scans an array from JSON into a Lua object
+-- startPos begins at the start of the array.
+-- Returns the array and the next starting position
+-- @param s The string being scanned.
+-- @param startPos The starting position for the scan.
+-- @return table, int The scanned array as a table, and the position of the next character to scan.
+function decode_scanArray(s,startPos)
+  local array = {}	-- The return value
+  local stringLen = string.len(s)
+  base.assert(string.sub(s,startPos,startPos)=='[','decode_scanArray called but array does not start at position ' .. startPos .. ' in string:\n'..s )
+  startPos = startPos + 1
+  -- Infinite loop for array elements
+  repeat
+    startPos = decode_scanWhitespace(s,startPos)
+    base.assert(startPos<=stringLen,'JSON String ended unexpectedly scanning array.')
+    local curChar = string.sub(s,startPos,startPos)
+    if (curChar==']') then
+      return array, startPos+1
+    end
+    if (curChar==',') then
+      startPos = decode_scanWhitespace(s,startPos+1)
+    end
+    base.assert(startPos<=stringLen, 'JSON String ended unexpectedly scanning array.')
+    object, startPos = decode(s,startPos)
+    table.insert(array,object)
+  until false
+end
+
+--- Scans a comment and discards the comment.
+-- Returns the position of the next character following the comment.
+-- @param string s The JSON string to scan.
+-- @param int startPos The starting position of the comment
+function decode_scanComment(s, startPos)
+  base.assert( string.sub(s,startPos,startPos+1)=='/*', "decode_scanComment called but comment does not start at position " .. startPos)
+  local endPos = string.find(s,'*/',startPos+2)
+  base.assert(endPos~=nil, "Unterminated comment in string at " .. startPos)
+  return endPos+2
+end
+
+--- Scans for given constants: true, false or null
+-- Returns the appropriate Lua type, and the position of the next character to read.
+-- @param s The string being scanned.
+-- @param startPos The position in the string at which to start scanning.
+-- @return object, int The object (true, false or nil) and the position at which the next character should be
+-- scanned.
+function decode_scanConstant(s, startPos)
+  local consts = { ["true"] = true, ["false"] = false, ["null"] = nil }
+  local constNames = {"true","false","null"}
+
+  for i,k in base.pairs(constNames) do
+    --print ("[" .. string.sub(s,startPos, startPos + string.len(k) -1) .."]", k)
+    if string.sub(s,startPos, startPos + string.len(k) -1 )==k then
+      return consts[k], startPos + string.len(k)
+    end
+  end
+  base.assert(nil, 'Failed to scan constant from string ' .. s .. ' at starting position ' .. startPos)
+end
+
+--- Scans a number from the JSON encoded string.
+-- (in fact, also is able to scan numeric +- eqns, which is not
+-- in the JSON spec.)
+-- Returns the number, and the position of the next character
+-- after the number.
+-- @param s The string being scanned.
+-- @param startPos The position at which to start scanning.
+-- @return number, int The extracted number and the position of the next character to scan.
+function decode_scanNumber(s,startPos)
+  local endPos = startPos+1
+  local stringLen = string.len(s)
+  local acceptableChars = "+-0123456789.Ee"
+  while (string.find(acceptableChars, string.sub(s,endPos,endPos), 1, true)
+	and endPos<=stringLen
+	) do
+    endPos = endPos + 1
+  end
+  local stringValue = 'return ' .. string.sub(s,startPos, endPos-1)
+  local stringEval = base.loadstring(stringValue)
+  base.assert(stringEval, 'Failed to scan number [ ' .. stringValue .. '] in JSON string at position ' .. startPos .. ' : ' .. endPos)
+  return stringEval(), endPos
+end
+
+--- Scans a JSON object into a Lua object.
+-- startPos begins at the start of the object.
+-- Returns the object and the next starting position.
+-- @param s The string being scanned.
+-- @param startPos The starting position of the scan.
+-- @return table, int The scanned object as a table and the position of the next character to scan.
+function decode_scanObject(s,startPos)
+  local object = {}
+  local stringLen = string.len(s)
+  local key, value
+  base.assert(string.sub(s,startPos,startPos)=='{','decode_scanObject called but object does not start at position ' .. startPos .. ' in string:\n' .. s)
+  startPos = startPos + 1
+  repeat
+    startPos = decode_scanWhitespace(s,startPos)
+    base.assert(startPos<=stringLen, 'JSON string ended unexpectedly while scanning object.')
+    local curChar = string.sub(s,startPos,startPos)
+    if (curChar=='}') then
+      return object,startPos+1
+    end
+    if (curChar==',') then
+      startPos = decode_scanWhitespace(s,startPos+1)
+    end
+    base.assert(startPos<=stringLen, 'JSON string ended unexpectedly scanning object.')
+    -- Scan the key
+    key, startPos = decode(s,startPos)
+    base.assert(startPos<=stringLen, 'JSON string ended unexpectedly searching for value of key ' .. key)
+    startPos = decode_scanWhitespace(s,startPos)
+    base.assert(startPos<=stringLen, 'JSON string ended unexpectedly searching for value of key ' .. key)
+    base.assert(string.sub(s,startPos,startPos)==':','JSON object key-value assignment mal-formed at ' .. startPos)
+    startPos = decode_scanWhitespace(s,startPos+1)
+    base.assert(startPos<=stringLen, 'JSON string ended unexpectedly searching for value of key ' .. key)
+    value, startPos = decode(s,startPos)
+    object[key]=value
+  until false	-- infinite loop while key-value pairs are found
+end
+
+--- Scans a JSON string from the opening inverted comma or single quote to the
+-- end of the string.
+-- Returns the string extracted as a Lua string,
+-- and the position of the next non-string character
+-- (after the closing inverted comma or single quote).
+-- @param s The string being scanned.
+-- @param startPos The starting position of the scan.
+-- @return string, int The extracted string as a Lua string, and the next character to parse.
+function decode_scanString(s,startPos)
+  base.assert(startPos, 'decode_scanString(..) called without start position')
+  local startChar = string.sub(s,startPos,startPos)
+  base.assert(startChar==[[']] or startChar==[["]],'decode_scanString called for a non-string')
+  local escaped = false
+  local endPos = startPos + 1
+  local bEnded = false
+  local stringLen = string.len(s)
+  repeat
+    local curChar = string.sub(s,endPos,endPos)
+    -- Character escaping is only used to escape the string delimiters
+    if not escaped then
+      if curChar==[[\]] then
+        escaped = true
+      else
+        bEnded = curChar==startChar
+      end
+    else
+      -- If we're escaped, we accept the current character come what may
+      escaped = false
+    end
+    endPos = endPos + 1
+    base.assert(endPos <= stringLen+1, "String decoding failed: unterminated string at position " .. endPos)
+  until bEnded
+  local stringValue = 'return ' .. string.sub(s, startPos, endPos-1)
+  local stringEval = base.loadstring(stringValue)
+  base.assert(stringEval, 'Failed to load string [ ' .. stringValue .. '] in JSON4Lua.decode_scanString at position ' .. startPos .. ' : ' .. endPos)
+  return stringEval(), endPos
+end
+
+--- Scans a JSON string skipping all whitespace from the current start position.
+-- Returns the position of the first non-whitespace character, or nil if the whole end of string is reached.
+-- @param s The string being scanned
+-- @param startPos The starting position where we should begin removing whitespace.
+-- @return int The first position where non-whitespace was encountered, or string.len(s)+1 if the end of string
+-- was reached.
+function decode_scanWhitespace(s,startPos)
+  local whitespace=" \n\r\t"
+  local stringLen = string.len(s)
+  while ( string.find(whitespace, string.sub(s,startPos,startPos), 1, true)  and startPos <= stringLen) do
+    startPos = startPos + 1
+  end
+  return startPos
+end
+
+--- Encodes a string to be JSON-compatible.
+-- This just involves back-quoting inverted commas, back-quotes and newlines, I think ;-)
+-- @param s The string to return as a JSON encoded (i.e. backquoted string)
+-- @return The string appropriately escaped.
+function encodeString(s)
+  s = string.gsub(s,'\\','\\\\')
+  s = string.gsub(s,'"','\\"')
+  s = string.gsub(s,"'","\\'")
+  s = string.gsub(s,'\n','\\n')
+  s = string.gsub(s,'\t','\\t')
+  return s
+end
+
+-- Determines whether the given Lua type is an array or a table / dictionary.
+-- We consider any table an array if it has indexes 1..n for its n items, and no
+-- other data in the table.
+-- I think this method is currently a little 'flaky', but can't think of a good way around it yet...
+-- @param t The table to evaluate as an array
+-- @return boolean, number True if the table can be represented as an array, false otherwise. If true,
+-- the second returned value is the maximum
+-- number of indexed elements in the array.
+function isArray(t)
+  -- Next we count all the elements, ensuring that any non-indexed elements are not-encodable
+  -- (with the possible exception of 'n')
+  local maxIndex = 0
+  for k,v in base.pairs(t) do
+    if (base.type(k)=='number' and math.floor(k)==k and 1<=k) then	-- k,v is an indexed pair
+      if (not isEncodable(v)) then return false end	-- All array elements must be encodable
+      maxIndex = math.max(maxIndex,k)
+    else
+      if (k=='n') then
+        if v ~= table.getn(t) then return false end  -- False if n does not hold the number of elements
+      else -- Else of (k=='n')
+        if isEncodable(v) then return false end
+      end  -- End of (k~='n')
+    end -- End of k,v not an indexed pair
+  end  -- End of loop across all pairs
+  return true, maxIndex
+end
+
+--- Determines whether the given Lua object / table / variable can be JSON encoded. The only
+-- types that are JSON encodable are: string, boolean, number, nil, table and json.null.
+-- In this implementation, all other types are ignored.
+-- @param o The object to examine.
+-- @return boolean True if the object should be JSON encoded, false if it should be ignored.
+function isEncodable(o)
+  local t = base.type(o)
+  return (t=='string' or t=='boolean' or t=='number' or t=='nil' or t=='table') or (t=='function' and o==null)
+end
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..d645695
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/NOTICE b/NOTICE
new file mode 100644
index 0000000..2d87fa4
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,8 @@
+
+Insight Segmentation and Registration Toolkit
+Copyright 1999-2013 Insight Software Consortium
+
+This software is distributed under the
+Apache 2.0 License.
+
+See LICENSE file for details.
diff --git a/Readme.md b/Readme.md
new file mode 100644
index 0000000..e8cb2d1
--- /dev/null
+++ b/Readme.md
@@ -0,0 +1,30 @@
+SimpleITK
+=========
+
+[![CircleCI](https://img.shields.io/circleci/project/SimpleITK/SimpleITK/master.svg?maxAge=2592000?style=flat-square)](https://circleci.com/gh/SimpleITK/SimpleITK/tree/master)
+
+SimpleITK is an image analysis toolkit with a large number of components supporting general filtering operations, image segmentation and registration. It is built on top of the Insight Segmentation and Registration Toolkit [ITK](https://www.itk.org) with the intent of providing a simplified interface to ITK. SimpleITK itself is written in C++ but is available for a large number of programming languages. Currently these include:
+
+* [Python](http://www.python.org)
+* [R](https://www.r-project.org)
+* [Java](http://www.java.com)
+* [C#](http://msdn.microsoft.com/en-us/vcsharp/default.aspx)
+* [Lua](http://www.lua.org)
+* [TCL](https://www.tcl.tk/)
+* [Ruby](https://www.ruby-lang.org/en/)
+
+
+Wrapping of the C++ code is accomplished through [SWIG](http://www.swig.org), in principle, any language wrapped by SWIG should be applicable to SimpleITK.
+
+Unlike ITK's support of n-dimensional spatio-temporal images, SimpleITK supports 2D, 3D and optionally 3D+time. The dimensionality refers to spatio-temporal dimensions, the voxels can be n-dimensional vectors.
+
+SimpleITK is licensed under the [Apache License](http://www.opensource.org/licenses/apache2.0.php) in the [same way as ITK](https://www.itk.org/Wiki/ITK_Release_4/Licensing).
+
+Development
+===========
+
+SimpleITK uses the [Git](http://git-scm.com/) distributed version control system.  The main repository is hosted on [itk.org](https://itk.org/SimpleITK.git) and mirrored to [Github](https://blowekamp@github.com/SimpleITK/SimpleITK.git).  There are two main branches, master and next. The "master" is a stable branch of the code, and suitable for most users, while "next" contains future features that are unlikely to be stable.
+
+The SimpleITK [Wiki](https://itk.org/Wiki/SimpleITK) is the main site for all things SimpleITK. The site includes information on installing the toolkit's binary distributions, building the toolkit, user support documentation and much more. The API documentation is maintained using [Doxygen](https://www.itk.org/SimpleITKDoxygen/html/annotated.html).
+
+SimpleITK provides access to most of the ITK components, but not all. If you are looking for something specific and can't find it, ask for support on the [mailing list](https://itk.org/mailman/listinfo/community) (you will need to subscribe to the mailing list before you post).
diff --git a/SimpleITKConfig.cmake.in b/SimpleITKConfig.cmake.in
new file mode 100644
index 0000000..08235c8
--- /dev/null
+++ b/SimpleITKConfig.cmake.in
@@ -0,0 +1,86 @@
+#-----------------------------------------------------------------------------
+#
+# SimpleITKConfig.cmake - SimpleITK CMake configuration file for external
+# projects.
+#
+# This file is configured by SimpleITK, imported into client projects by
+# find_package(SimpleITK), and provides values for UseSimpleITK.cmake.
+
+# This SimpleITKConfig file is configured for the @SimpleITKConfig_TREE@ tree
+
+# Compute this installation's prefix from this file's location:
+get_filename_component(_SimpleITKConfig_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+ at SimpleITKConfig_CODE@
+
+# The SimpleITK version number
+#
+# If version component is unset it the SimpleITK project it will
+# remain unset for project who use it, this changes the default CMake
+# behavior of setting unset version values to 0.
+set(SimpleITK_VERSION_MAJOR "@SimpleITK_VERSION_MAJOR@")
+set(SimpleITK_VERSION_MINOR "@SimpleITK_VERSION_MINOR@")
+set(SimpleITK_VERSION_PATCH)
+if(NOT "@SimpleITK_VERSION_PATCH@" STREQUAL "")
+  set(SimpleITK_VERSION_PATCH "@SimpleITK_VERSION_PATCH@")
+endif()
+set(SimpleITK_VERSION_TWEAK)
+if(NOT "@SimpleITK_VERSION_TWEAK@" STREQUAL "")
+  set(SimpleITK_VERSION_TWEAK  "@SimpleITK_VERSION_TWEAK@")
+endif()
+set(SimpleITK_VERSION_RC)
+if(NOT "@SimpleITK_VERSION_RC@" STREQUAL "")
+  set(SimpleITK_VERSION_RC "@SimpleITK_VERSION_RC@")
+endif()
+set(SimpleITK_VERSION_POST)
+if(NOT "@SimpleITK_VERSION_POST@" STREQUAL "")
+  set(SimpleITK_VERSION_POST "@SimpleITK_VERSION_POST@")
+endif()
+set(SimpleITK_VERSION_DEV)
+if(NOT "@SimpleITK_VERSION_DEV@" STREQUAL "")
+  set(SimpleITK_VERSION_DEV "@SimpleITK_VERSION_DEV@")
+endif()
+set(SimpleITK_VERSION_HASH)
+if(NOT "SimpleITK_VERSION_HASH@" STREQUAL "")
+  set(SimpleITK_VERSION_HASH "@SimpleITK_VERSION_HASH@")
+endif()
+set(SimpleITK_VERSION_COUNT)
+
+
+
+
+# The SimpleITK include file directories.
+set(SimpleITK_INCLUDE_DIRS "@SimpleITKConfig_INCLUDE_DIRS@")
+
+# The SimpleITK library directories.
+set(ITK_LIBRARY_DIRS "@ITK_LIBRARY_DIRS@")
+set(SimpleITK_LIBRARY_DIRS "${ITK_LIBRARY_DIRS}")
+
+# The location of the UseITK.cmake file.
+set(SimpleITK_USE_FILE "${_SimpleITKConfig_DIR}/UseSimpleITK.cmake")
+
+# Locate ITK for required targets
+if(NOT ITK_CONFIG_TARGETS_FILE)
+  if("@SimpleITKConfig_TREE@" STREQUAL "build")
+    set(ITK_CONFIG_TARGETS_FILE "@ITK_DIR@/ITKTargets.cmake")
+  else()
+    # TODO: Add required ITK packages
+    find_package(ITK "@ITK_VERSION@" EXACT REQUIRED)
+  endif()
+endif()
+
+# Import ITK targets.
+if(NOT ITK_TARGETS_IMPORTED)
+  set(ITK_TARGETS_IMPORTED 1)
+  include("${ITK_CONFIG_TARGETS_FILE}")
+endif()
+
+# Import SimpleITK targets.
+set(SimpleITK_TARGETS_FILE "${_SimpleITKConfig_DIR}/SimpleITKTargets.cmake")
+if(NOT SimpleITK_TARGETS_IMPORTED)
+  set(SimpleITK_TARGETS_IMPORTED 1)
+  include("${SimpleITK_TARGETS_FILE}")
+endif()
+
+# A list of all libraries for SimpleITK.  Those listed here should
+# automatically pull in their dependencies via imported targets.
+set(SimpleITK_LIBRARIES "@SimpleITK_LIBRARIES@")
diff --git a/SimpleITKConfigVersion.cmake.in b/SimpleITKConfigVersion.cmake.in
new file mode 100644
index 0000000..faa0f72
--- /dev/null
+++ b/SimpleITKConfigVersion.cmake.in
@@ -0,0 +1,9 @@
+set(PACKAGE_VERSION "@SimpleITK_VERSION@")
+
+if("${PACKAGE_FIND_VERSION_MAJOR}" EQUAL "@SimpleITK_VERSION_MAJOR@"
+    AND NOT "${PACKAGE_FIND_VERSION}" VERSION_GREATER "${PACKAGE_VERSION}")
+  set(PACKAGE_VERSION_COMPATIBLE 1) # compatible with older
+  if("${PACKAGE_FIND_VERSION}" VERSION_EQUAL "${PACKAGE_VERSION}")
+    set(PACKAGE_VERSION_EXACT 1) # exact match for this version
+  endif()
+endif()
diff --git a/SuperBuild/CMakeLists.txt b/SuperBuild/CMakeLists.txt
new file mode 100644
index 0000000..f390826
--- /dev/null
+++ b/SuperBuild/CMakeLists.txt
@@ -0,0 +1,40 @@
+
+#-----------------------------------------------------------------------------
+# Override defaults set in initial "project" call, allow user to
+# override from command line
+#-----------------------------------------------------------------------------
+
+
+# SimpleITK Addition: install to the common library
+# directory, so that all libs/include etc ends up
+# in one common tree
+if( NOT DEFINED CMAKE_INSTALL_PREFIX )
+  set(CMAKE_INSTALL_PREFIX ${CMAKE_CURRENT_BINARY_DIR} CACHE PATH "Where all the prerequisite libraries go")
+endif()
+
+cmake_minimum_required ( VERSION 3.0 )
+project ( SuperBuildSimpleITK )
+
+
+#-----------------------------------------------------------------------------
+# CMAKE_CXX_COMPILER_ARG1 is a CMake internal variable. It should not be
+# used in SimpleITK Superbuild's configuration as it will not get
+# correctly propagated to external projects. If it is set, it most
+# likely means that SimpleITK is to be built with a launcher such as
+# ccache or distcc. This should be done with the CMake variable
+# CMAKE_CXX_COMPILER_LAUNCHER_FLAG available in CMake > 3.4.0 .
+if(CMAKE_CXX_COMPILER_ARG1)
+  message(WARNING "The CMake variable CMAKE_CXX_COMPILER_ARG1 is\
+set. The CMake variable CMAKE_CXX_COMPILER_LAUNCHER_FLAG should be used
+instead (CMake>=3.4 required).")
+endif()
+
+#-----------------------------------------------------------------------------
+# Superbuild script
+#-----------------------------------------------------------------------------
+
+# Actually run the super build script
+set(${CMAKE_PROJECT_NAME}_DEPENDENCIES "") #Dependancies will be determined during superbuild stage.
+include("${CMAKE_CURRENT_SOURCE_DIR}/SuperBuild.cmake")
+
+
diff --git a/SuperBuild/CTestConfig.cmake b/SuperBuild/CTestConfig.cmake
new file mode 100644
index 0000000..98c23da
--- /dev/null
+++ b/SuperBuild/CTestConfig.cmake
@@ -0,0 +1,7 @@
+set(CTEST_PROJECT_NAME "SuperBuildSimpleITK")
+set(CTEST_NIGHTLY_START_TIME "1:00:00 UTC")
+
+set(CTEST_DROP_METHOD "http")
+set(CTEST_DROP_SITE "open.cdash.org")
+set(CTEST_DROP_LOCATION "/submit.php?project=SimpleITK")
+set(CTEST_DROP_SITE_CDASH TRUE)
diff --git a/SuperBuild/External_GTest.cmake b/SuperBuild/External_GTest.cmake
new file mode 100644
index 0000000..5fd363c
--- /dev/null
+++ b/SuperBuild/External_GTest.cmake
@@ -0,0 +1,30 @@
+# Make sure this file is included only once
+get_filename_component(CMAKE_CURRENT_LIST_FILENAME ${CMAKE_CURRENT_LIST_FILE} NAME_WE)
+if(${CMAKE_CURRENT_LIST_FILENAME}_FILE_INCLUDED)
+  return()
+endif()
+set(${CMAKE_CURRENT_LIST_FILENAME}_FILE_INCLUDED 1)
+
+set(proj GTest)
+
+set(GTEST_TARGET_VERSION 1.8.0)
+set(GTEST_DOWNLOAD_SOURCE_HASH "16877098823401d1bf2ed7891d7dce36")
+
+# follow the standard EP_PREFIX locations
+set(GTEST_source_dir ${CMAKE_CURRENT_BINARY_DIR}/${proj}-prefix/src/${proj})
+
+sitkSourceDownload(GTEST_URL "googletest-release-${GTEST_TARGET_VERSION}.tar.gz" ${GTEST_DOWNLOAD_SOURCE_HASH})
+
+ExternalProject_Add(${proj}
+  URL "${GTEST_URL}"
+  URL_MD5 ${GTEST_DOWNLOAD_SOURCE_HASH}
+  CONFIGURE_COMMAND ""
+  BUILD_COMMAND     ""
+  INSTALL_COMMAND   ""
+  TEST_COMMAND      ""
+  ${External_Project_USES_TERMINAL}
+)
+
+sitkSourceDownloadDependency(${proj})
+
+set(GTEST_ROOT ${GTEST_source_dir}/googletest)
diff --git a/SuperBuild/External_ITK.cmake b/SuperBuild/External_ITK.cmake
new file mode 100644
index 0000000..d7880ea
--- /dev/null
+++ b/SuperBuild/External_ITK.cmake
@@ -0,0 +1,98 @@
+
+#-----------------------------------------------------------------------------
+# Get and build itk
+
+# Determine if we need to set to use 64BITS_IDS for windows64
+if(CMAKE_CL_64)
+  option(ITK_USE_64BITS_IDS "When ON, ITK will use 64 bits integers to
+index pixels. This is needed for managing images larger than 4Gb in
+some platforms."
+    ON)
+  mark_as_advanced(ITK_USE_64BITS_IDS)
+endif()
+
+if(NOT DEFINED ITK_BUILD_DEFAULT_MODULES)
+  set(ITK_BUILD_DEFAULT_MODULES ON)
+endif()
+
+if(NOT DEFINED Module_ITKReview)
+  set(Module_ITKReview ON)
+endif()
+
+
+get_cmake_property( _varNames VARIABLES )
+
+foreach (_varName ${_varNames})
+  if(_varName MATCHES "^ITK_"
+      OR _varName MATCHES "^ITKV3"
+      OR _varName MATCHES "FFTW"
+      OR _varName MATCHES "^Module_ITK")
+    message( STATUS "Passing variable \"${_varName}=${${_varName}}\" to ITK external project.")
+    list(APPEND ITK_VARS ${_varName})
+  endif()
+endforeach()
+
+list(APPEND ITK_VARS
+  PYTHON_EXECUTABLE
+  )
+
+VariableListToCache( ITK_VARS  ep_itk_cache )
+VariableListToArgs( ITK_VARS  ep_itk_args )
+
+
+set(proj ITK)  ## Use ITK convention of calling it ITK
+if(NOT DEFINED ITK_REPOSITORY)
+  set(ITK_REPOSITORY "${git_protocol}://itk.org/ITK.git")
+endif()
+
+set(ITK_USE_GIT_PROTOCOL 0)
+if("${git_protocol}" STREQUAL "git")
+  set(ITK_USE_GIT_PROTOCOL 1)
+endif()
+
+# NOTE: it is very important to update the ITK_DIR path with the ITK version
+set(ITK_TAG_COMMAND GIT_TAG v4.11.1) # v4.11.1 tag
+
+if( ${BUILD_SHARED_LIBS} )
+  set( ITK_BUILD_SHARED_LIBS ON )
+else()
+  set( ITK_BUILD_SHARED_LIBS OFF )
+  list( APPEND ep_itk_args
+    "-DCMAKE_C_VISIBILITY_PRESET:STRING=hidden"
+    "-DCMAKE_CXX_VISIBILITY_PRESET:STRING=hidden"
+    "-DITK_TEMPLATE_VISIBILITY_DEFAULT:BOOL=OFF" )
+endif()
+
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/${proj}-build/CMakeCacheInit.txt" "${ep_itk_cache}\n${ep_common_cache}" )
+
+ExternalProject_Add(${proj}
+  GIT_REPOSITORY ${ITK_REPOSITORY}
+  ${ITK_TAG_COMMAND}
+  UPDATE_COMMAND ""
+  SOURCE_DIR ${proj}
+  BINARY_DIR ${proj}-build
+  CMAKE_GENERATOR ${gen}
+  CMAKE_ARGS
+  --no-warn-unused-cli
+  -C "${CMAKE_CURRENT_BINARY_DIR}/${proj}-build/CMakeCacheInit.txt"
+  ${ep_itk_args}
+  ${ep_common_args}
+  -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
+  -DCMAKE_VISIBILITY_INLINES_HIDDEN:BOOL=ON
+  -DBUILD_EXAMPLES:BOOL=OFF
+  -DBUILD_TESTING:BOOL=OFF
+  -DBUILD_SHARED_LIBS:BOOL=${ITK_BUILD_SHARED_LIBS}
+  -DCMAKE_SKIP_RPATH:BOOL=ON
+  -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
+  -DITK_LEGACY_REMOVE:BOOL=ON
+  -DITK_USE_KWSTYLE:BOOL=OFF
+  -DITK_USE_GIT_PROTOCOL:BOOL=${ITK_USE_GIT_PROTOCOL}
+  BUILD_COMMAND ${BUILD_COMMAND_STRING}
+  DEPENDS
+    ${ITK_DEPENDENCIES}
+  ${External_Project_USES_TERMINAL}
+  )
+
+
+ExternalProject_Get_Property(ITK install_dir)
+set(ITK_DIR "${install_dir}/lib/cmake/ITK-4.11" )
diff --git a/SuperBuild/External_Lua.cmake b/SuperBuild/External_Lua.cmake
new file mode 100644
index 0000000..c3751df
--- /dev/null
+++ b/SuperBuild/External_Lua.cmake
@@ -0,0 +1,45 @@
+# Make sure this file is included only once
+get_filename_component(CMAKE_CURRENT_LIST_FILENAME ${CMAKE_CURRENT_LIST_FILE} NAME_WE)
+if(${CMAKE_CURRENT_LIST_FILENAME}_FILE_INCLUDED)
+  return()
+endif()
+set(${CMAKE_CURRENT_LIST_FILENAME}_FILE_INCLUDED 1)
+
+set(proj Lua)
+
+set(lua_TARGET_VERSION 5.1.5)
+set(lua_DOWNLOAD_SOURCE_HASH "2e115fe26e435e33b0d5c022e4490567")
+
+
+# follow the standard EP_PREFIX locations
+set(lua_binary_dir ${CMAKE_CURRENT_BINARY_DIR}/${proj}-prefix/src/${proj}-build)
+set(lua_source_dir ${CMAKE_CURRENT_BINARY_DIR}/${proj}-prefix/src/${proj})
+set(lua_install_dir ${CMAKE_CURRENT_BINARY_DIR}/${proj})
+sitkSourceDownload(lua_URL "lua-${lua_TARGET_VERSION}.tar.gz" ${lua_DOWNLOAD_SOURCE_HASH})
+
+
+file(WRITE "${lua_binary_dir}/CMakeCacheInit.txt" "${ep_common_cache}" )
+
+set(lua_PATCH_COMMAND ${CMAKE_COMMAND} -E copy_if_different
+  ${CMAKE_CURRENT_SOURCE_DIR}/lua.cmake
+  ${lua_source_dir}/CMakeLists.txt
+)
+
+ExternalProject_Add(Lua
+  URL "${lua_URL}"
+  URL_MD5 "${lua_DOWNLOAD_SOURCE_HASH}"
+  PATCH_COMMAND ${lua_PATCH_COMMAND}
+  CMAKE_GENERATOR ${gen}
+  CMAKE_ARGS
+    --no-warn-unused-cli
+    -C "${lua_binary_dir}/CMakeCacheInit.txt"
+    ${ep_common_args}
+    -D BUILD_SHARED_LIBS:BOOL=OFF
+    -D CMAKE_INSTALL_PREFIX:PATH=${lua_install_dir}
+    ${External_Project_USES_TERMINAL}
+)
+
+sitkSourceDownloadDependency(Lua)
+
+
+set(SimpleITK_LUA_EXECUTABLE  "${lua_install_dir}/bin/lua")
diff --git a/SuperBuild/External_PCRE.cmake b/SuperBuild/External_PCRE.cmake
new file mode 100644
index 0000000..48516f0
--- /dev/null
+++ b/SuperBuild/External_PCRE.cmake
@@ -0,0 +1,49 @@
+
+# Make sure this file is included only once
+get_filename_component(CMAKE_CURRENT_LIST_FILENAME ${CMAKE_CURRENT_LIST_FILE} NAME_WE)
+if(${CMAKE_CURRENT_LIST_FILENAME}_FILE_INCLUDED)
+  return()
+endif()
+set(${CMAKE_CURRENT_LIST_FILENAME}_FILE_INCLUDED 1)
+
+# Sanity checks
+if(DEFINED PCRE_DIR AND NOT EXISTS ${PCRE_DIR})
+  message(FATAL_ERROR "PCRE_DIR variable is defined but corresponds to non-existing directory")
+endif()
+
+# Set dependency list
+set(PCRE_DEPENDENCIES "")
+
+if(NOT PCRE_DIR)
+  #
+  #  PCRE (Perl Compatible Regular Expressions)
+  #
+
+  set(PCRE_TARGET_VERSION 8.37)
+  set(PCRE_DOWNLOAD_SOURCE_HASH "6e0cc6d1bdac7a4308151f9b3571b86e")
+  sitkSourceDownload(PCRE_URL "pcre-${PCRE_TARGET_VERSION}.tar.gz" ${PCRE_DOWNLOAD_SOURCE_HASH})
+
+
+  # follow the standard EP_PREFIX locations
+  set(pcre_binary_dir ${CMAKE_CURRENT_BINARY_DIR}/PCRE-prefix/src/PCRE-build)
+  set(pcre_source_dir ${CMAKE_CURRENT_BINARY_DIR}/PCRE-prefix/src/PCRE)
+  set(pcre_install_dir ${CMAKE_CURRENT_BINARY_DIR}/PCRE)
+
+  configure_file(
+    pcre_configure_step.cmake.in
+    ${CMAKE_CURRENT_BINARY_DIR}/pcre_configure_step.cmake
+    @ONLY)
+
+  set ( pcre_CONFIGURE_COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/pcre_configure_step.cmake )
+
+  ExternalProject_add(PCRE
+    URL "${PCRE_URL}"
+    URL_MD5 "${PCRE_DOWNLOAD_SOURCE_HASH}"
+    CONFIGURE_COMMAND ${pcre_CONFIGURE_COMMAND}
+    DEPENDS "${PCRE_DEPENDENCIES}"
+    ${External_Project_USES_TERMINAL}
+    )
+
+  sitkSourceDownloadDependency(PCRE)
+
+endif(NOT PCRE_DIR)
diff --git a/SuperBuild/External_SimpleITKExamples.cmake b/SuperBuild/External_SimpleITKExamples.cmake
new file mode 100644
index 0000000..e2dd9a9
--- /dev/null
+++ b/SuperBuild/External_SimpleITKExamples.cmake
@@ -0,0 +1,33 @@
+
+
+
+set(proj SimpleITKExamples)
+
+# Set dependency list
+set(SimpleITKExamples_DEPENDENCIES "SimpleITK")
+
+if (${BUILD_EXAMPLES} )
+
+  file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/${proj}-build/CMakeCacheInit.txt" "${ep_common_cache}" )
+
+  ExternalProject_Add(${proj}
+    DOWNLOAD_COMMAND ""
+    UPDATE_COMMAND ""
+    SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../Examples
+    BINARY_DIR ${proj}-build
+    CMAKE_GENERATOR ${gen}
+    CMAKE_ARGS
+      --no-warn-unused-cli
+      -C "${CMAKE_CURRENT_BINARY_DIR}/${proj}-build/CMakeCacheInit.txt"
+      ${ep_common_args}
+      -DITK_DIR:PATH=${ITK_DIR}
+      -DSimpleITK_DIR:PATH=${CMAKE_INSTALL_PREFIX}/lib/cmake/SimpleITK-1.0/
+      -DCMAKE_SKIP_RPATH:BOOL=ON
+      -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
+    BUILD_COMMAND ${BUILD_COMMAND_STRING}
+    INSTALL_COMMAND ""
+    DEPENDS "${SimpleITKExamples_DEPENDENCIES}"
+    ${External_Project_USES_TERMINAL}
+    )
+
+endif()
diff --git a/SuperBuild/External_Swig.cmake b/SuperBuild/External_Swig.cmake
new file mode 100644
index 0000000..c401904
--- /dev/null
+++ b/SuperBuild/External_Swig.cmake
@@ -0,0 +1,121 @@
+# Make sure this file is included only once
+get_filename_component(CMAKE_CURRENT_LIST_FILENAME ${CMAKE_CURRENT_LIST_FILE} NAME_WE)
+if(${CMAKE_CURRENT_LIST_FILENAME}_FILE_INCLUDED)
+  return()
+endif()
+set(${CMAKE_CURRENT_LIST_FILENAME}_FILE_INCLUDED 1)
+
+# Sanity checks
+if(DEFINED Swig_DIR AND NOT EXISTS ${Swig_DIR})
+  message(FATAL_ERROR "Swig_DIR variable is defined but corresponds to non-existing directory")
+endif()
+
+if(NOT SWIG_DIR)
+
+  if (NOT MSVC)
+    option(USE_SWIG_FROM_GIT "Use a version of swig pulled from the git repo. This will require automake tools and does not work under windows." OFF )
+
+    mark_as_advanced(USE_SWIG_FROM_GIT)
+  endif()
+
+  if( USE_SWIG_FROM_GIT )
+    set(SWIG_GIT_REPOSITORY "${git_protocol}://github.com/swig/swig.git" CACHE STRING "URL of swig git repo")
+    set(SWIG_GIT_TAG "rel-3.0.11" CACHE STRING "Tag in swig git repo")
+    mark_as_advanced(SWIG_GIT_REPO)
+    mark_as_advanced(SWIG_GIT_TAG)
+  endif()
+
+  set(SWIG_TARGET_VERSION "3.0.11" )
+  set(SWIG_DOWNLOAD_SOURCE_HASH "13732eb0f1ab2123d180db8425c1edea")
+  set(SWIGWIN_DOWNLOAD_HASH "5cc57e3658f62b7f648bec7eed91a4f0" )
+
+  if(WIN32)
+    # binary SWIG for windows
+    #------------------------------------------------------------------------------
+
+    sitkSourceDownload(SWIGWIN_URL "swigwin-${SWIG_TARGET_VERSION}.zip"  ${SWIGWIN_DOWNLOAD_HASH})
+
+    set(swig_source_dir "${CMAKE_CURRENT_BINARY_DIR}/swigwin")
+
+    # swig.exe available as pre-built binary on Windows:
+    ExternalProject_Add(Swig
+      URL "${SWIGWIN_URL}"
+      URL_MD5 ${SWIG_DOWNLOAD_WIN_HASH}
+      SOURCE_DIR ${swig_source_dir}
+      CONFIGURE_COMMAND ""
+      BUILD_COMMAND ""
+      INSTALL_COMMAND ""
+      ${External_Project_USES_TERMINAL}
+      )
+    add_dependencies(Swig  "SuperBuildSimpleITKSource")
+
+    set(SWIG_DIR "${swig_source_dir}") # path specified as source in ep
+    set(SWIG_EXECUTABLE ${SWIG_DIR}/swig.exe)
+
+  else()
+    # compiled SWIG for others
+    #------------------------------------------------------------------------------
+
+    # Set dependency list
+    set(Swig_DEPENDENCIES "PCRE")
+
+    #
+    #  PCRE (Perl Compatible Regular Expressions)
+    #
+    include(External_PCRE)
+
+
+    #
+    # SWIG
+    #
+
+    # swig uses bison find it by cmake and pass it down
+    if(USE_SWIG_FROM_GIT)
+      set(BISON_REQUIRED "REQUIRED")
+    endif()
+    find_package(BISON ${BISON_REQUIRED})
+    set(BISON_FLAGS "-y" CACHE STRING "Flags used by bison")
+    mark_as_advanced(BISON_FLAGS)
+
+
+    # follow the standard EP_PREFIX locations
+    set(swig_binary_dir ${CMAKE_CURRENT_BINARY_DIR}/Swig-prefix/src/Swig-build)
+    set(swig_source_dir ${CMAKE_CURRENT_BINARY_DIR}/Swig-prefix/src/Swig)
+    set(swig_install_dir ${CMAKE_CURRENT_BINARY_DIR}/Swig)
+
+    # configure step
+    configure_file(
+      swig_configure_step.cmake.in
+      ${CMAKE_CURRENT_BINARY_DIR}/swig_configure_step.cmake
+      @ONLY)
+    set(swig_CONFIGURE_COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/swig_configure_step.cmake)
+
+    if(USE_SWIG_FROM_GIT)
+      set(SWIG_DOWNLOAD_STEP
+        GIT_REPOSITORY "${SWIG_GIT_REPOSITORY}"
+        GIT_TAG "${SWIG_GIT_TAG}"
+        )
+    else()
+      sitkSourceDownload(SWIG_URL "swig-${SWIG_TARGET_VERSION}.tar.gz" ${SWIG_DOWNLOAD_SOURCE_HASH})
+      set(SWIG_DOWNLOAD_STEP
+        URL "${SWIG_URL}"
+        URL_MD5 "${SWIG_DOWNLOAD_SOURCE_HASH}"
+        )
+    endif()
+
+    ExternalProject_add(Swig
+      ${SWIG_DOWNLOAD_STEP}
+      CONFIGURE_COMMAND ${swig_CONFIGURE_COMMAND}
+      DEPENDS "${Swig_DEPENDENCIES}"
+      ${External_Project_USES_TERMINAL}
+      )
+
+    if(NOT USE_SWIG_FROM_GIT)
+      sitkSourceDownloadDependency(Swig)
+    endif()
+
+    set(SWIG_DIR ${swig_install_dir}/share/swig/${SWIG_TARGET_VERSION})
+    set(SWIG_EXECUTABLE ${swig_install_dir}/bin/swig)
+
+  endif()
+endif(NOT SWIG_DIR)
diff --git a/SuperBuild/External_virtualenv.cmake b/SuperBuild/External_virtualenv.cmake
new file mode 100644
index 0000000..cd375c8
--- /dev/null
+++ b/SuperBuild/External_virtualenv.cmake
@@ -0,0 +1,40 @@
+# Make sure this file is included only once
+get_filename_component(CMAKE_CURRENT_LIST_FILENAME ${CMAKE_CURRENT_LIST_FILE} NAME_WE)
+if(${CMAKE_CURRENT_LIST_FILENAME}_FILE_INCLUDED)
+  return()
+endif()
+set(${CMAKE_CURRENT_LIST_FILENAME}_FILE_INCLUDED 1)
+
+set(proj virtualenv)
+
+set(${proj}_TARGET_VERSION 15.1.0)
+set(${proj}_DOWNLOAD_SOURCE_HASH "44e19f4134906fe2d75124427dc9b716")
+
+# based on the standard EP_PREFIX locations, but since we don't build
+# or install, then standards install directory is also the source
+set(${proj}_binary_dir ${CMAKE_CURRENT_BINARY_DIR}/${proj}-prefix/src/${proj}-build)
+set(${proj}_source_dir ${CMAKE_CURRENT_BINARY_DIR}/${proj})
+set(${proj}_install_dir ${CMAKE_CURRENT_BINARY_DIR}/${proj})
+set(${proj}_URL "https://midas3.kitware.com/midas/api/rest?method=midas.bitstream.download&checksum=${${proj}_DOWNLOAD_SOURCE_HASH}&name=virtualenv-${${proj}_TARGET_VERSION}.tar.gz")
+
+sitkSourceDownload(${proj}_URL "virtualenv-${${proj}_TARGET_VERSION}.tar.gz" ${${proj}_DOWNLOAD_SOURCE_HASH})
+
+ExternalProject_Add(${proj}
+  URL "${${proj}_URL}"
+  URL_MD5 ${${proj}_DOWNLOAD_SOURCE_HASH}
+  SOURCE_DIR ${${proj}_source_dir}
+  BINARY_DIR ${${proj}_binary_dir}
+  INSTALL_DIR ${${proj}_install_dir}
+  UPDATE_COMMAND ""
+  PATCH_COMMAND ""
+  CONFIGURE_COMMAND ""
+  BUILD_COMMAND ""
+  INSTALL_COMMAND ""
+  ${External_Project_USES_TERMINAL}
+)
+
+sitkSourceDownloadDependency(${proj})
+
+
+set(${proj}_ROOT ${${proj}_source_dir})
+set(PYTHON_VIRTUALENV_SCRIPT ${${proj}_source_dir}/virtualenv.py)
diff --git a/SuperBuild/SuperBuild.cmake b/SuperBuild/SuperBuild.cmake
new file mode 100644
index 0000000..8884905
--- /dev/null
+++ b/SuperBuild/SuperBuild.cmake
@@ -0,0 +1,474 @@
+#-----------------------------------------------------------------------------
+# CTest Related Settings
+#-----------------------------------------------------------------------------
+set(BUILDNAME "NoBuldNameGiven")
+set(SITE      "NoSiteGiven")
+set(BUILD_TESTING_DEFAULT ON)
+if(CMAKE_VERSION VERSION_LESS 2.8.11)
+  set(BUILD_TESTING_DEFAULT OFF)
+endif()
+option( BUILD_TESTING "Turn on Testing for SimpleITK" ${BUILD_TESTING_DEFAULT} )
+
+# 2.8.11 required for ExternalData.cmake.
+if( BUILD_TESTING AND CMAKE_VERSION VERSION_LESS 2.8.11 )
+  message( FATAL_ERROR "BUILD_TESTING ON requires CMake 2.8.11 or newer." )
+endif()
+
+if(CMAKE_GENERATOR MATCHES "Ninja" AND CMAKE_VERSION VERSION_LESS 3.2 )
+  message( FATAL_ERROR "Using \"Ninja\" generator requires CMake 3.2.0 or newer." )
+endif()
+
+configure_file(../CMake/CTestCustom.cmake.in CTestCustom.cmake)
+
+
+enable_language(C)
+enable_language(CXX)
+
+#-----------------------------------------------------------------------------
+# Platform check
+#-----------------------------------------------------------------------------
+set(PLATFORM_CHECK true)
+if(PLATFORM_CHECK)
+  # See CMake/Modules/Platform/Darwin.cmake)
+  #   6.x == Mac OSX 10.2 (Jaguar)
+  #   7.x == Mac OSX 10.3 (Panther)
+  #   8.x == Mac OSX 10.4 (Tiger)
+  #   9.x == Mac OSX 10.5 (Leopard)
+  #  10.x == Mac OSX 10.6 (Snow Leopard)
+  if (DARWIN_MAJOR_VERSION LESS "9")
+    message(FATAL_ERROR "Only Mac OSX >= 10.5 are supported !")
+  endif()
+endif()
+
+#-----------------------------------------------------------------------------
+# Update CMake module path
+#------------------------------------------------------------------------------
+
+set(CMAKE_MODULE_PATH
+  ${CMAKE_SOURCE_DIR}/CMake
+  ${CMAKE_SOURCE_DIR}/SuperBuild
+  ${CMAKE_BINARY_DIR}/CMake
+  ${CMAKE_CURRENT_SOURCE_DIR}
+  ${CMAKE_CURRENT_SOURCE_DIR}/../CMake #  CMake directory
+  ${CMAKE_CURRENT_SOURCE_DIR}/../Wrapping
+  ${CMAKE_MODULE_PATH}
+  )
+
+include(sitkPreventInSourceBuilds)
+include(sitkPreventInBuildInstalls)
+include(VariableList)
+include(sitkExternalData)
+include( sitkSITKLegacyNaming )
+
+
+
+add_custom_target( SuperBuildSimpleITKSource )
+
+#
+# sitkSourceDownload( <output variable> <filename> <md5 hash> )
+#
+# A function to get a filename for an ExternalData source file used in
+# a superbuild. Adds a target which downloads all source code
+# needed for superbuild projects. The source file is cached with in
+# the build tree, and can be locally cache with other ExternalData
+# controlled environment variables.
+#
+# The "SuperBuildSimpleITKSource" target needs to be manually added as
+# a dependencies to the ExternalProject.
+#
+#   add_dependencies( PROJ "SuperBuildSimpleITKSource" )
+#
+# Note: Hash files are created under the SOURCE directory in the
+# .ExternalSource sub-directory during configuration.
+#
+function(sitkSourceDownload outVar filename hash)
+  set(link_file "${CMAKE_CURRENT_SOURCE_DIR}/.ExternalSource/${filename}")
+  file(WRITE  "${link_file}.md5" ${hash} )
+  ExternalData_Expand_arguments(
+    SuperBuildSimpleITKSourceReal
+    link
+    DATA{${link_file}}
+    )
+  set(${outVar} "${link}" PARENT_SCOPE)
+endfunction()
+
+function(sitkSourceDownloadDependency proj)
+  if (CMAKE_VERSION VERSION_LESS 3.2)
+    add_dependencies(${proj}  "SuperBuildSimpleITKSource")
+  else()
+    ExternalProject_Add_StepDependencies(${proj} download "SuperBuildSimpleITKSource")
+  endif()
+endfunction()
+
+#-----------------------------------------------------------------------------
+# Prerequisites
+#------------------------------------------------------------------------------
+#
+
+# Compute -G arg for configuring external projects with the same CMake generator:
+if(CMAKE_EXTRA_GENERATOR)
+  set(gen "${CMAKE_EXTRA_GENERATOR} - ${CMAKE_GENERATOR}")
+else()
+  set(gen "${CMAKE_GENERATOR}")
+endif()
+
+#-----------------------------------------------------------------------------
+# Use GIT protocol
+#------------------------------------------------------------------------------
+find_package(Git)
+set(_SimpleITK_GIT_PROTOCOL_default "https")
+if (GIT_VERSION_STRING VERSION_LESS "1.7.10")
+  # minimum version for https support
+  set(_SimpleITK_GIT_PROTOCOL_default "git")
+endif()
+set(SimpleITK_GIT_PROTOCOL  ${_SimpleITK_GIT_PROTOCOL_default} CACHE STRING "If behind a firewall turn set this to 'https' or 'http'." )
+mark_as_advanced(SimpleITK_GIT_PROTOCOL)
+set_property(CACHE SimpleITK_GIT_PROTOCOL PROPERTY STRINGS "https;http;git")
+set(git_protocol ${SimpleITK_GIT_PROTOCOL})
+sitk_legacy_naming(SimpleITK_GIT_PROTOCOL)
+
+
+#-----------------------------------------------------------------------------
+# SimpleITK options
+#------------------------------------------------------------------------------
+
+option( BUILD_EXAMPLES "Enable Building of the SimpleITK Examples as a separate project." ON )
+
+# Set a default build type if none was specified
+if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
+  message(STATUS "Setting build type to 'Release' as none was specified.")
+  set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE)
+  # Set the possible values of build type for cmake-gui
+  set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
+endif()
+
+# Default to build shared libraries off
+option(BUILD_SHARED_LIBS "Build SimpleITK ITK with shared libraries. This does not effect wrapped languages." OFF)
+
+# as this option does not robustly work across platforms it will be marked as advanced
+mark_as_advanced( FORCE BUILD_SHARED_LIBS )
+
+option( SimpleITK_4D_IMAGES "Add Image and I/O support for four spatial dimensions." OFF )
+mark_as_advanced( SimpleITK_4D_IMAGES )
+
+#-----------------------------------------------------------------------------
+# Setup build type
+#------------------------------------------------------------------------------
+
+# By default, let's build as Debug
+if(NOT DEFINED CMAKE_BUILD_TYPE)
+  set(CMAKE_BUILD_TYPE "Debug")
+endif()
+
+# let a dashboard override the default.
+if(CTEST_BUILD_CONFIGURATION)
+  set(CMAKE_BUILD_TYPE "${CTEST_BUILD_CONFIGURATION}")
+endif()
+
+#-------------------------------------------------------------------------
+# augment compiler flags
+#-------------------------------------------------------------------------
+include(sitkCheckRequiredFlags)
+
+#------------------------------------------------------------------------------
+# BuildName used for dashboard reporting
+#------------------------------------------------------------------------------
+if(NOT BUILDNAME)
+  set(BUILDNAME "Unknown-build" CACHE STRING "Name of build to report to dashboard")
+endif()
+
+#------------------------------------------------------------------------------
+# Common Build Options to pass to all subsequent tools
+#------------------------------------------------------------------------------
+list( APPEND ep_common_list
+  MAKECOMMAND
+  CMAKE_BUILD_TYPE
+  CMAKE_MAKE_PROGRAM
+
+  CMAKE_C_COMPILER
+  CMAKE_C_COMPILER_LAUNCHER
+
+  CMAKE_C_FLAGS
+  CMAKE_C_FLAGS_DEBUG
+  CMAKE_C_FLAGS_MINSIZEREL
+  CMAKE_C_FLAGS_RELEASE
+  CMAKE_C_FLAGS_RELWITHDEBINFO
+
+  CMAKE_CXX_COMPILER
+  CMAKE_CXX_COMPILER_LAUNCHER
+
+  CMAKE_CXX_FLAGS
+  CMAKE_CXX_FLAGS_DEBUG
+  CMAKE_CXX_FLAGS_MINSIZEREL
+  CMAKE_CXX_FLAGS_RELEASE
+  CMAKE_CXX_FLAGS_RELWITHDEBINFO
+
+  CMAKE_LINKER
+
+  CMAKE_EXE_LINKER_FLAGS
+  CMAKE_EXE_LINKER_FLAGS_DEBUG
+  CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
+  CMAKE_EXE_LINKER_FLAGS_RELEASE
+  CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
+  CMAKE_MODULE_LINKER_FLAGS
+  CMAKE_MODULE_LINKER_FLAGS_DEBUG
+  CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
+  CMAKE_MODULE_LINKER_FLAGS_RELEASE
+  CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
+  CMAKE_SHARED_LINKER_FLAGS
+  CMAKE_SHARED_LINKER_FLAGS_DEBUG
+  CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
+  CMAKE_SHARED_LINKER_FLAGS_RELEASE
+  CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
+
+  CMAKE_STRIP
+
+  CMAKE_PREFIX_PATH
+  CMAKE_FRAMEWORK_PATH
+
+  CMAKE_DL_LIBS
+  CMAKE_THREAD_LIBS_INIT
+
+  CMAKE_SYSTEM_PREFIX_PATH
+  CMAKE_SYSTEM_INCLUDE_PATH
+  CMAKE_SYSTEM_LIBRARY_PATH
+  CMAKE_SYSTEM_PROGRAM_PATH
+  CMAKE_SYSTEM_IGNORE_PATH
+
+
+  CMAKE_GENERATOR
+  CMAKE_EXTRA_GENERATOR
+  MEMORYCHECK_COMMAND_OPTIONS
+  MEMORYCHECK_SUPPRESSIONS_FILE
+  MEMORYCHECK_COMMAND
+  SITE
+  BUILDNAME
+
+  SKBUILD )
+
+if( APPLE )
+  list( APPEND ep_common_list
+    CMAKE_OSX_SYSROOT
+    CMAKE_OSX_DEPLOYMENT_TARGET )
+endif()
+
+if( DEFINED CMAKE_STRIP_FLAGS )
+  list( APPEND ep_common_list
+    CMAKE_STRIP_FLAGS )
+endif()
+
+VariableListToArgs( ep_common_list ep_common_args )
+
+if( APPLE )
+  list( APPEND ep_common_list CMAKE_OSX_ARCHITECTURES )
+endif()
+VariableListToCache( ep_common_list ep_common_cache )
+
+#
+# Use CMake file which present options for wrapped languages, and finds languages as needed
+#
+include(sitkLanguageOptions)
+
+
+if(NOT CMAKE_VERSION VERSION_LESS 3.4)
+  set(External_Project_USES_TERMINAL
+    USES_TERMINAL_DOWNLOAD 1
+    USES_TERMINAL_CONFIGURE 1
+    USES_TERMINAL_BUILD 1
+    USES_TERMINAL_INSTALL 1)
+endif()
+
+#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+include(ExternalProject)
+
+#------------------------------------------------------------------------------
+# Lua
+#------------------------------------------------------------------------------
+option ( SimpleITK_USE_SYSTEM_LUA "Use a pre-compiled version of LUA 5.1 previously configured for your system" OFF )
+sitk_legacy_naming( SimpleITK_USE_SYSTEM_LUA USE_SYSTEM_LUA)
+mark_as_advanced(SimpleITK_USE_SYSTEM_LUA)
+if ( SimpleITK_USE_SYSTEM_LUA )
+  find_package( LuaInterp REQUIRED 5.1 )
+  set( SimpleITK_LUA_EXECUTABLE ${LUA_EXECUTABLE} CACHE PATH "Lua executable used for code generation." )
+  mark_as_advanced( SimpleITK_LUA_EXECUTABLE )
+  unset( LUA_EXECUTABLE CACHE )
+else()
+  include(External_Lua)
+  list(APPEND ${CMAKE_PROJECT_NAME}_DEPENDENCIES Lua)
+endif()
+
+#------------------------------------------------------------------------------
+# Swig
+#------------------------------------------------------------------------------
+option ( SimpleITK_USE_SYSTEM_SWIG "Use a pre-compiled version of SWIG 3.0 previously configured for your system" OFF )
+sitk_legacy_naming( SimpleITK_USE_SYSTEM_SWIG USE_SYSTEM_SWIG )
+mark_as_advanced(SimpleITK_USE_SYSTEM_SWIG)
+if(SimpleITK_USE_SYSTEM_SWIG)
+  find_package ( SWIG 3 REQUIRED )
+else()
+  include(External_Swig)
+  list(APPEND ${CMAKE_PROJECT_NAME}_DEPENDENCIES Swig)
+endif()
+
+#------------------------------------------------------------------------------
+# Google Test
+#------------------------------------------------------------------------------
+option( SimpleITK_USE_SYSTEM_GTEST "Use an external version of GoogleTest. " OFF )
+sitk_legacy_naming( SimpleITK_USE_SYSTEM_GTEST USE_SYSTEM_GTEST )
+mark_as_advanced(SimpleITK_USE_SYSTEM_GTEST)
+if ( BUILD_TESTING )
+  if (SimpleITK_USE_SYSTEM_GTEST)
+    if (DEFINED GTEST_ROOT AND EXISTS "${GTEST_ROOT}/CMakeLists.txt")
+      list(APPEND SimpleITK_VARS GTEST_ROOT)
+    else()
+      find_package( GTest REQUIRED )
+      list(APPEND SimpleITK_VARS GTEST_LIBRARIES GTEST_INCLUDE_DIRS GTEST_MAIN_LIBRARIES)
+    endif()
+  else()
+    include(External_GTest)
+    list(APPEND SimpleITK_VARS GTEST_ROOT)
+    list(APPEND ${CMAKE_PROJECT_NAME}_DEPENDENCIES GTest)
+  endif()
+endif()
+
+#------------------------------------------------------------------------------
+# Python virtualenv
+#------------------------------------------------------------------------------
+option( SimpleITK_USE_SYSTEM_VIRTUALENV "Use a system version of Python's virtualenv. " OFF )
+sitk_legacy_naming( SimpleITK_USE_SYSTEM_VIRTUALENV USE_SYSTEM_VIRTUALENV)
+mark_as_advanced(SimpleITK_USE_SYSTEM_VIRTUALENV)
+if( NOT DEFINED SimpleITK_PYTHON_USE_VIRTUALENV OR SimpleITK_PYTHON_USE_VIRTUALENV )
+  if ( SimpleITK_USE_SYSTEM_VIRTUALENV )
+    find_package( PythonVirtualEnv REQUIRED)
+  else()
+    include(External_virtualenv)
+    if ( WRAP_PYTHON )
+      list(APPEND ${CMAKE_PROJECT_NAME}_DEPENDENCIES virtualenv)
+    endif()
+  endif()
+  list(APPEND SimpleITK_VARS PYTHON_VIRTUALENV_SCRIPT)
+endif()
+
+#------------------------------------------------------------------------------
+# ITK
+#------------------------------------------------------------------------------
+
+option(SimpleITK_USE_SYSTEM_ITK "Use a pre-built version of ITK" OFF)
+sitk_legacy_naming( SimpleITK_USE_SYSTEM_ITK USE_SYSTEM_ITK )
+mark_as_advanced(SimpleITK_USE_SYSTEM_ITK)
+if(SimpleITK_USE_SYSTEM_ITK)
+  find_package(ITK REQUIRED)
+  #we require certain packages be turned on in ITK
+  include(sitkCheckForITKModuleDependencies)
+else()
+  include(External_ITK)
+  list(APPEND ${CMAKE_PROJECT_NAME}_DEPENDENCIES ITK)
+endif()
+
+
+
+get_cmake_property( _varNames VARIABLES )
+
+foreach (_varName ${_varNames})
+  if(_varName MATCHES "^SimpleITK_" OR _varName MATCHES "^SITK_" )
+    if (NOT _varName MATCHES "^SITK_LANGUAGES_VARS"
+          AND
+        NOT _varName MATCHES "^SimpleITK_VARS"
+          AND
+        NOT _varName MATCHES "^SimpleITK_USE_SYSTEM"
+          AND
+        NOT _varName MATCHES "^SimpleITK_.*_COMPILE_OPTIONS"
+          AND
+        NOT _varName MATCHES "^SITK_UNDEFINED_SYMBOLS_ALLOWED")
+      message( STATUS "Passing variable \"${_varName}=${${_varName}}\" to SimpleITK external project.")
+      list(APPEND SimpleITK_VARS ${_varName})
+    endif()
+  endif()
+endforeach()
+
+list(APPEND SimpleITK_VARS ExternalData_OBJECT_STORES)
+
+VariableListToCache( SimpleITK_VARS  ep_simpleitk_cache )
+VariableListToArgs( SimpleITK_VARS  ep_simpleitk_args )
+VariableListToCache( SITK_LANGUAGES_VARS  ep_languages_cache )
+VariableListToArgs( SITK_LANGUAGES_VARS  ep_languages_args )
+
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/SimpleITK-build/CMakeCacheInit.txt" "${ep_simpleitk_cache}${ep_common_cache}\n${ep_languages_cache}" )
+
+set(proj SimpleITK)
+ExternalProject_Add(${proj}
+  DOWNLOAD_COMMAND ""
+  SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/..
+  BINARY_DIR SimpleITK-build
+  INSTALL_DIR ${CMAKE_INSTALL_PREFIX}
+  CMAKE_GENERATOR ${gen}
+  CMAKE_ARGS
+    --no-warn-unused-cli
+    -C "${CMAKE_CURRENT_BINARY_DIR}/SimpleITK-build/CMakeCacheInit.txt"
+    ${ep_simpleitk_args}
+    ${ep_common_args}
+    -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
+    -DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}
+    -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
+    -DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=<BINARY_DIR>/lib
+    -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=<BINARY_DIR>/lib
+    -DCMAKE_RUNTIME_OUTPUT_DIRECTORY:PATH=<BINARY_DIR>/bin
+    -DCMAKE_BUNDLE_OUTPUT_DIRECTORY:PATH=<BINARY_DIR>/bin
+    ${ep_languages_args}
+    # ITK
+    -DITK_DIR:PATH=${ITK_DIR}
+    # Swig
+    -DSWIG_DIR:PATH=${SWIG_DIR}
+    -DSWIG_EXECUTABLE:PATH=${SWIG_EXECUTABLE}
+    -DBUILD_TESTING:BOOL=${BUILD_TESTING}
+    -DWRAP_LUA:BOOL=${WRAP_LUA}
+    -DWRAP_PYTHON:BOOL=${WRAP_PYTHON}
+    -DWRAP_RUBY:BOOL=${WRAP_RUBY}
+    -DWRAP_JAVA:BOOL=${WRAP_JAVA}
+    -DWRAP_TCL:BOOL=${WRAP_TCL}
+    -DWRAP_CSHARP:BOOL=${WRAP_CSHARP}
+    -DWRAP_R:BOOL=${WRAP_R}
+    -DBUILD_EXAMPLES:BOOL=${BUILD_TESTING}
+  DEPENDS ${${CMAKE_PROJECT_NAME}_DEPENDENCIES}
+  ${External_Project_USES_TERMINAL}
+)
+
+ExternalProject_Add_Step(${proj} forcebuild
+  COMMAND ${CMAKE_COMMAND} -E remove
+    ${CMAKE_CURRENT_BUILD_DIR}/${proj}-prefix/src/${proj}-stamp/${prog}-build
+  DEPENDEES configure
+  DEPENDERS build
+  ALWAYS 1
+)
+
+
+#------------------------------------------------------------------------------
+# SimpleITKExamples
+#------------------------------------------------------------------------------
+
+# We build SimpleITKExamples as an enternal project to verify
+# installation of SimpleITK
+
+include(External_SimpleITKExamples)
+
+
+#------------------------------------------------------------------------------
+# List of external projects
+#------------------------------------------------------------------------------
+set(external_project_list ITK Swig SimpleITKExamples PCRE Lua GTest virtualenv ${CMAKE_PROJECT_NAME})
+
+
+#-----------------------------------------------------------------------------
+# Dump external project dependencies
+#-----------------------------------------------------------------------------
+set(ep_dependency_graph "# External project dependencies")
+foreach(ep ${external_project_list})
+  set(ep_dependency_graph "${ep_dependency_graph}\n${ep}: ${${ep}_DEPENDENCIES}")
+endforeach()
+file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/ExternalProjectDependencies.txt "${ep_dependency_graph}\n")
+
+
+if(COMMAND ExternalData_Add_Target)
+  ExternalData_Add_Target(SuperBuildSimpleITKSourceReal)
+  add_dependencies(SuperBuildSimpleITKSource SuperBuildSimpleITKSourceReal)
+endif()
diff --git a/SuperBuild/lua.cmake b/SuperBuild/lua.cmake
new file mode 100644
index 0000000..0dfa8ce
--- /dev/null
+++ b/SuperBuild/lua.cmake
@@ -0,0 +1,85 @@
+cmake_minimum_required ( VERSION 2.8.1 FATAL_ERROR )
+
+
+if(POLICY CMP0025)
+  cmake_policy(SET CMP0025 OLD)
+endif()
+
+
+project (LUA C)
+
+# Setup build locations.
+if(NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY)
+  set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
+endif()
+if(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY)
+  set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
+endif()
+if(NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
+  set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
+endif()
+
+
+
+#------------------------------------------------------------------------------
+# Variables for use in install rules:
+
+if(NOT LUA_INSTALL_RUNTIME_DIR)
+  set(LUA_INSTALL_RUNTIME_DIR "bin")
+endif()
+if(NOT LUA_INSTALL_LIBRARY_DIR)
+  set(LUA_INSTALL_LIBRARY_DIR "lib")
+endif()
+if(NOT LUA_INSTALL_ARCHIVE_DIR)
+  set(LUA_INSTALL_ARCHIVE_DIR "lib")
+endif()
+if(NOT LUA_INSTALL_INCLUDE_DIR)
+  set(LUA_INSTALL_INCLUDE_DIR "include")
+endif()
+
+
+if( MSVC )
+  # suppress warning in Visual Studio about the securtiy of methods
+  add_definitions (-D_CRT_SECURE_NO_WARNINGS)
+
+  # suppress warning:
+  # '<<' : result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)
+  SET( CMAKE_C_FLAGS  "${CMAKE_C_FLAGS} /wd4334" )
+endif()
+
+if( APPLE )
+  if("${CMAKE_C_COMPILER_ID}" STREQUAL "Clang")
+    # suppress Clang warnings about empty loop bodies and deprecated declarations (tmpnam)
+    SET( CMAKE_C_FLAGS  "${CMAKE_C_FLAGS} -Wno-empty-body -Wno-deprecated-declarations" )
+  endif()
+endif()
+
+# define the lua core source files
+set (LUA_CORE_SRCS src/lapi.c src/lcode.c src/ldebug.c src/ldo.c src/ldump.c
+     src/lfunc.c src/lgc.c src/llex.c src/lmem.c src/lobject.c src/lopcodes.c
+     src/lparser.c src/lstate.c src/lstring.c src/ltable.c src/ltm.c  src/lundump.c
+     src/lvm.c src/lzio.c)
+
+# define the lua lib source files
+set (LUA_LIB_SRCS src/lauxlib.c src/lbaselib.c src/ldblib.c src/liolib.c
+     src/lmathlib.c src/loslib.c src/ltablib.c src/lstrlib.c src/loadlib.c src/linit.c)
+
+# create the library
+add_library (lua ${LUA_LIB_SRCS} ${LUA_CORE_SRCS})
+
+# create the lue executable and link it to the lib
+add_executable (luaexec src/lua.c)
+target_link_libraries (luaexec lua)
+
+# name the executable lua just like the library
+set_target_properties(luaexec PROPERTIES OUTPUT_NAME lua)
+
+if ( UNIX )
+  target_link_libraries ( luaexec m )
+endif()
+
+install ( TARGETS luaexec
+  RUNTIME DESTINATION ${LUA_INSTALL_RUNTIME_DIR}
+  LIBRARY DESTINATION ${LUA_INSTALL_LIBRARY_DIR}
+  ARCHIVE DESTINATION ${LUA_INSTALL_ARCHIVE_DIR}
+  )
diff --git a/SuperBuild/pcre_configure_step.cmake.in b/SuperBuild/pcre_configure_step.cmake.in
new file mode 100644
index 0000000..5923842
--- /dev/null
+++ b/SuperBuild/pcre_configure_step.cmake.in
@@ -0,0 +1,27 @@
+# Set the important envirimental variables that auto-conf uses to
+# configure, mostly these are passed from the CMake
+# configuration. Others are just explicitly passed from the
+# enviroment. If there is a problem with them in the future they can
+# be addressed in CMake with the same structure.
+
+set(ENV{CC} "@CMAKE_C_COMPILER_LAUNCHER@ @CMAKE_C_COMPILER@")
+set(ENV{CFLAGS} "@CMAKE_C_FLAGS@ @CMAKE_C_FLAGS_RELEASE@")
+set(ENV{LDFLAGS} "@CMAKE_LINKER_FLAGS@ @CMAKE_LINKER_FLAGS_RELEASE@")
+
+set(ENV{LIBS} "$ENV{LIBS}")
+
+set(ENV{CPP} "$ENV{CPP}")
+set(ENV{CPPFLAGS} "$ENV{CPPFLAGS}")
+set(ENV{CXXPP} "$ENV{CXXPP}")
+
+set(ENV{CXX} "@CMAKE_CXX_COMPILER_LAUNCHER@ @CMAKE_CXX_COMPILER@")
+set(ENV{CXXFLAGS} "@CMAKE_CXX_FLAGS@ @CMAKE_CXX_FLAGS_RELEASE@")
+
+
+set(ENV{YACC} "@BISON_EXECUTABLE@" )
+set(ENV{YFLAGS} "@BISON_FLAGS@" )
+
+execute_process(
+  COMMAND sh @pcre_source_dir@/configure --prefix=@pcre_install_dir@  --disable-shared
+  WORKING_DIRECTORY @pcre_binary_dir@
+)
diff --git a/SuperBuild/swig_configure_step.cmake.in b/SuperBuild/swig_configure_step.cmake.in
new file mode 100644
index 0000000..04184d3
--- /dev/null
+++ b/SuperBuild/swig_configure_step.cmake.in
@@ -0,0 +1,37 @@
+# Set the important envirimental variables that auto-conf uses to
+# configure, mostly these are passed from the CMake
+# configuration. Others are just explicitly passed from the
+# enviroment. If there is a problem with them in the future they can
+# be addressed in CMake with the same structure.
+
+cmake_policy(SET CMP0012 NEW)
+
+set(ENV{CC} "@CMAKE_C_COMPILER_LAUNCHER@ @CMAKE_C_COMPILER@")
+set(ENV{CFLAGS} "@CMAKE_C_FLAGS@ @CMAKE_C_FLAGS_RELEASE@")
+set(ENV{LDFLAGS} "@CMAKE_LINKER_FLAGS@ @CMAKE_LINKER_FLAGS_RELEASE@")
+
+set(ENV{LIBS} "$ENV{LIBS}")
+set(ENV{CPP} "$ENV{CPP}")
+set(ENV{CPPFLAGS} "$ENV{CPPFLAGS}")
+
+set(ENV{CXX} "@CMAKE_CXX_COMPILER_LAUNCHER@ @CMAKE_CXX_COMPILER@")
+set(ENV{CXXFLAGS} "@CMAKE_CXX_FLAGS@ @CMAKE_CXX_FLAGS_RELEASE@")
+
+set(ENV{YACC} "@BISON_EXECUTABLE@" )
+set(ENV{YFLAGS} "@BISON_FLAGS@" )
+
+if(@USE_SWIG_FROM_GIT@)
+  execute_process(
+    COMMAND sh @swig_source_dir@/autogen.sh
+    WORKING_DIRECTORY @swig_source_dir@
+    )
+endif()
+
+execute_process(
+  COMMAND sh @swig_source_dir@/configure
+    --prefix=@swig_install_dir@
+    --with-pcre-prefix=@pcre_install_dir@
+    --without-octave
+    --with-python=@PYTHON_EXECUTABLE@
+  WORKING_DIRECTORY @swig_binary_dir@
+)
diff --git a/Testing/CMakeLists.txt b/Testing/CMakeLists.txt
new file mode 100644
index 0000000..57e285f
--- /dev/null
+++ b/Testing/CMakeLists.txt
@@ -0,0 +1 @@
+add_subdirectory(Unit)
diff --git a/Testing/Data/Baseline/BasicFilters_AbsImageFilter_float.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_AbsImageFilter_float.nrrd.md5
new file mode 100644
index 0000000..fe6932a
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AbsImageFilter_float.nrrd.md5
@@ -0,0 +1 @@
+1b5092c4cb11f846977f1fc175accd3c
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_AbsImageFilter_float.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_AbsImageFilter_float.nrrd.sha512
new file mode 100644
index 0000000..ed9f314
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AbsImageFilter_float.nrrd.sha512
@@ -0,0 +1 @@
+0fef8b24aba7b5177934909c136fae870d84797ea953f636a91d38dfe233c4a93272c7fd98e5128722c19430eaddcca2a8495fe9f7518a395e360316391dd4ed
diff --git a/Testing/Data/Baseline/BasicFilters_AbsImageFilter_short.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_AbsImageFilter_short.nrrd.md5
new file mode 100644
index 0000000..74b4764
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AbsImageFilter_short.nrrd.md5
@@ -0,0 +1 @@
+bbe245e3cbf925edcf5d023203bd6b82
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_AbsImageFilter_short.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_AbsImageFilter_short.nrrd.sha512
new file mode 100644
index 0000000..fa4aae3
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AbsImageFilter_short.nrrd.sha512
@@ -0,0 +1 @@
+c7f8ca866501145b9befc6a2297832ea4bc90f51ce1ac184b1e2917457c201de2cc10695c143f886368773a0dc65bba1a01580248ca38d8552fdc141df7807a2
diff --git a/Testing/Data/Baseline/BasicFilters_AbsImageFilter_vector.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_AbsImageFilter_vector.nrrd.md5
new file mode 100644
index 0000000..362cac1
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AbsImageFilter_vector.nrrd.md5
@@ -0,0 +1 @@
+b7634fc4ab8598e937f2245d15f4155c
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_AbsImageFilter_vector.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_AbsImageFilter_vector.nrrd.sha512
new file mode 100644
index 0000000..4d37725
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AbsImageFilter_vector.nrrd.sha512
@@ -0,0 +1 @@
+99a240a4aa3185f782fee6a0d50e4671caecf021e2c4f5ea8211dbc60e13035bbc4436cf2e60dbc44f24f85f319334898df419752bbc80e338fa0d9759c9121c
diff --git a/Testing/Data/Baseline/BasicFilters_AcosImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_AcosImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..0091b65
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AcosImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+d34537916d8ca912bf7632d2353b595f
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_AcosImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_AcosImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..56fb827
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AcosImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+23b2d89eec98ae9bea7acc32c08c40ba7a62166de1764917f30122af72d1439ccbd2df9b32d69818db992fc8e9afc6a65740a9ce463ccc6aeb2a60f593b4c429
diff --git a/Testing/Data/Baseline/BasicFilters_AcosImageFilter_vector.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_AcosImageFilter_vector.nrrd.md5
new file mode 100644
index 0000000..6bb65eb
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AcosImageFilter_vector.nrrd.md5
@@ -0,0 +1 @@
+2d1218cbfb433ab0412b90ac26702136
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_AcosImageFilter_vector.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_AcosImageFilter_vector.nrrd.sha512
new file mode 100644
index 0000000..bc6717a
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AcosImageFilter_vector.nrrd.sha512
@@ -0,0 +1 @@
+ebfe275ec98774837e3f18923aa98c9216590185126e42f5dfc449567d876ec95d88239ac18655895ef0d033afad963b860f665f61940011d24815bc5a481dbe
diff --git a/Testing/Data/Baseline/BasicFilters_AdaptiveHistogramEqualizationImageFilter_defaults.1.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_AdaptiveHistogramEqualizationImageFilter_defaults.1.nrrd.md5
new file mode 100644
index 0000000..36476f9
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AdaptiveHistogramEqualizationImageFilter_defaults.1.nrrd.md5
@@ -0,0 +1 @@
+8484d918ce9f99837e96d7efeba7e848
diff --git a/Testing/Data/Baseline/BasicFilters_AdaptiveHistogramEqualizationImageFilter_defaults.1.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_AdaptiveHistogramEqualizationImageFilter_defaults.1.nrrd.sha512
new file mode 100644
index 0000000..783ef66
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AdaptiveHistogramEqualizationImageFilter_defaults.1.nrrd.sha512
@@ -0,0 +1 @@
+29e66f9dc6d2f7c3594ef5bdd4f7e492e01e01d564898037345a063c7e8d21746f053aa49eac32c1f2503692ddf61bd29dbb4f72cc98b73c38648d3cf746ab8d
diff --git a/Testing/Data/Baseline/BasicFilters_AdaptiveHistogramEqualizationImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_AdaptiveHistogramEqualizationImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..512181d
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AdaptiveHistogramEqualizationImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+b7bd29a3ad27c03d22bb1877e51b5922
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_AdaptiveHistogramEqualizationImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_AdaptiveHistogramEqualizationImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..5eb1897
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AdaptiveHistogramEqualizationImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+f0dc15a46e986080e99975ec0972b2e2f25e203ecf3914b4ce87fa7d695515874b156982e5df4270d5baa43624cc6b6ed2ed0e2dcb08d4ca8d682c7d43aee97a
diff --git a/Testing/Data/Baseline/BasicFilters_AdaptiveHistogramEqualizationImageFilter_histo.1.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_AdaptiveHistogramEqualizationImageFilter_histo.1.nrrd.md5
new file mode 100644
index 0000000..5fbb5c2
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AdaptiveHistogramEqualizationImageFilter_histo.1.nrrd.md5
@@ -0,0 +1 @@
+fe2ea78da192cf9dc2eb1826063e761b
diff --git a/Testing/Data/Baseline/BasicFilters_AdaptiveHistogramEqualizationImageFilter_histo.1.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_AdaptiveHistogramEqualizationImageFilter_histo.1.nrrd.sha512
new file mode 100644
index 0000000..66948c6
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AdaptiveHistogramEqualizationImageFilter_histo.1.nrrd.sha512
@@ -0,0 +1 @@
+a70928bd262e0ca4b112d686c53bb75912efe7909485426a8e8dfed00459ec61808425b4b7c2d98f8402d46a8ad762757479955d15d6d45abcd854edb9105196
diff --git a/Testing/Data/Baseline/BasicFilters_AdaptiveHistogramEqualizationImageFilter_histo.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_AdaptiveHistogramEqualizationImageFilter_histo.nrrd.md5
new file mode 100644
index 0000000..acf152d
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AdaptiveHistogramEqualizationImageFilter_histo.nrrd.md5
@@ -0,0 +1 @@
+cb1101685e7d817ee6be4eeb948a76dd
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_AdaptiveHistogramEqualizationImageFilter_histo.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_AdaptiveHistogramEqualizationImageFilter_histo.nrrd.sha512
new file mode 100644
index 0000000..2d96aa3
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AdaptiveHistogramEqualizationImageFilter_histo.nrrd.sha512
@@ -0,0 +1 @@
+7d376b5d470f84fecfe8b6fd051ee790bdce50aaa5d454b211003f787e19e67ebf04ec7a49607efcd6cea8a8019ada643c462305efe631131d7b0164ead1be55
diff --git a/Testing/Data/Baseline/BasicFilters_AdditiveGaussianNoiseImageFilter_2d.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_AdditiveGaussianNoiseImageFilter_2d.nrrd.md5
new file mode 100644
index 0000000..353cd24
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AdditiveGaussianNoiseImageFilter_2d.nrrd.md5
@@ -0,0 +1 @@
+a69e5de3e1082e4ab8a02adf3b4e41f9
diff --git a/Testing/Data/Baseline/BasicFilters_AdditiveGaussianNoiseImageFilter_2d.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_AdditiveGaussianNoiseImageFilter_2d.nrrd.sha512
new file mode 100644
index 0000000..97736a5
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AdditiveGaussianNoiseImageFilter_2d.nrrd.sha512
@@ -0,0 +1 @@
+d1bfcefb3e66dbac4e84a791e2d459864d2ed9a6439417a935e626bd3f8bf82daa351868f5e39e005023ca3f7cbed9c09362263ec39958f14af0adbd663b826a
diff --git a/Testing/Data/Baseline/BasicFilters_AdditiveGaussianNoiseImageFilter_3d.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_AdditiveGaussianNoiseImageFilter_3d.nrrd.md5
new file mode 100644
index 0000000..79e20eb
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AdditiveGaussianNoiseImageFilter_3d.nrrd.md5
@@ -0,0 +1 @@
+2c7d2a654961d2b9d1d997d1f20e2ed2
diff --git a/Testing/Data/Baseline/BasicFilters_AdditiveGaussianNoiseImageFilter_3d.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_AdditiveGaussianNoiseImageFilter_3d.nrrd.sha512
new file mode 100644
index 0000000..e185aa7
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AdditiveGaussianNoiseImageFilter_3d.nrrd.sha512
@@ -0,0 +1 @@
+9b59323317a5bf93c0e1d209fd50f0ba496335de31fe5115f508fffe92417840cc40c6226d07b6311a92474c7a476da9600cdacfacf4c1812a7d946265aa048e
diff --git a/Testing/Data/Baseline/BasicFilters_AdditiveGaussianNoiseImageFilter_rgb.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_AdditiveGaussianNoiseImageFilter_rgb.nrrd.md5
new file mode 100644
index 0000000..6dc94c8
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AdditiveGaussianNoiseImageFilter_rgb.nrrd.md5
@@ -0,0 +1 @@
+8997bfcb80a429e089709b291e5b4ba2
diff --git a/Testing/Data/Baseline/BasicFilters_AdditiveGaussianNoiseImageFilter_rgb.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_AdditiveGaussianNoiseImageFilter_rgb.nrrd.sha512
new file mode 100644
index 0000000..00db5f2
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AdditiveGaussianNoiseImageFilter_rgb.nrrd.sha512
@@ -0,0 +1 @@
+8f7820db5d4f464d17560b032e271e39c1d61168ee6529f59454b4488b2d94143ff80a60c0037ab1652a35b92dfd441a16ebfe0e367ae7c9c743493d2c36d363
diff --git a/Testing/Data/Baseline/BasicFilters_AntiAliasBinaryImageFilter_cthead.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_AntiAliasBinaryImageFilter_cthead.nrrd.md5
new file mode 100644
index 0000000..bea7e0d
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AntiAliasBinaryImageFilter_cthead.nrrd.md5
@@ -0,0 +1 @@
+6672c754701745de1f6aced9cb16e31b
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_AntiAliasBinaryImageFilter_cthead.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_AntiAliasBinaryImageFilter_cthead.nrrd.sha512
new file mode 100644
index 0000000..90ec48f
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AntiAliasBinaryImageFilter_cthead.nrrd.sha512
@@ -0,0 +1 @@
+8a0212f6c262364d6d6bb8a309b4dbc9bb8e4582f94aff2eb240f8172df48eef0a7d30882bd1bf5f4390f34fd5e0d1859679f80c1d155805b379bf460e90414f
diff --git a/Testing/Data/Baseline/BasicFilters_ApproximateSignedDistanceMapImageFilter_default.1.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ApproximateSignedDistanceMapImageFilter_default.1.nrrd.md5
new file mode 100644
index 0000000..ad19190
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ApproximateSignedDistanceMapImageFilter_default.1.nrrd.md5
@@ -0,0 +1 @@
+607fda60a271c0963ecba199a546d439
diff --git a/Testing/Data/Baseline/BasicFilters_ApproximateSignedDistanceMapImageFilter_default.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ApproximateSignedDistanceMapImageFilter_default.nrrd.md5
new file mode 100644
index 0000000..2cc4995
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ApproximateSignedDistanceMapImageFilter_default.nrrd.md5
@@ -0,0 +1 @@
+3b9bdb244fbf030c83a034f71ac46f8a
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_ApproximateSignedDistanceMapImageFilter_default.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_ApproximateSignedDistanceMapImageFilter_default.nrrd.sha512
new file mode 100644
index 0000000..a63e126
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ApproximateSignedDistanceMapImageFilter_default.nrrd.sha512
@@ -0,0 +1 @@
+8c0462263c05daf46b8550fd9da046b4abbca163f73904da04bb124e4d42f11fab87d978869ef558133cae306ea9ac1353f990cc5bf253a7224bc1d9abd98ba3
diff --git a/Testing/Data/Baseline/BasicFilters_ApproximateSignedDistanceMapImageFilter_modified_parms.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ApproximateSignedDistanceMapImageFilter_modified_parms.nrrd.md5
new file mode 100644
index 0000000..b62b818
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ApproximateSignedDistanceMapImageFilter_modified_parms.nrrd.md5
@@ -0,0 +1 @@
+068f40a06b09350a7d019198165bf44c
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_ApproximateSignedDistanceMapImageFilter_modified_parms.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_ApproximateSignedDistanceMapImageFilter_modified_parms.nrrd.sha512
new file mode 100644
index 0000000..6036d8a
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ApproximateSignedDistanceMapImageFilter_modified_parms.nrrd.sha512
@@ -0,0 +1 @@
+004e2df89f63efc3d9276e9128786b7253fea43c0eee8afc488d08183b35f375a356080f72cc76159104bac38635091f9d3d355b32ddef4c771522fa5d5ae70a
diff --git a/Testing/Data/Baseline/BasicFilters_AsinImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_AsinImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..a7e3984
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AsinImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+3e15c3bc5d5ccdb290dce33e03a42644
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_AsinImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_AsinImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..93fffa9
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AsinImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+39a07cdbd316fb468dad2c3fb41dab45082e3f9298504ae0f3eedf2553bc2ad02b912b16386d066e022591fd5754fbd120c53dc7273b301657ad8b0da38b660f
diff --git a/Testing/Data/Baseline/BasicFilters_Atan2ImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_Atan2ImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..34df715
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_Atan2ImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+7c29e6e4ecf6135edd6a2170f6e98a5f
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_Atan2ImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_Atan2ImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..cdf016d
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_Atan2ImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+eef4f6acf5244ac62744257597d1a4a91f378bae7014a5484c5b2a6986b489dc40fdf6ea59a41c005ff2bad458cb6fe94d871d6b87e73589ba9dc81ca7d81951
diff --git a/Testing/Data/Baseline/BasicFilters_AtanImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_AtanImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..82de003
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AtanImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+779451803d29db0bf6e342010bf1b0b5
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_AtanImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_AtanImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..a399d6c
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AtanImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+c7056e5a41b9b965d7f3d1f2b7c305afc75e8642f99ea8af80565ee9b8e5d7b6f0c8704769a743c9ecb8d4a46f7fee1fa1620e546c4da4ea85758d53c94b376f
diff --git a/Testing/Data/Baseline/BasicFilters_AtanImageFilter_vector.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_AtanImageFilter_vector.nrrd.md5
new file mode 100644
index 0000000..daab410
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AtanImageFilter_vector.nrrd.md5
@@ -0,0 +1 @@
+8d6e12a750d16132a397bdcd1d0dee01
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_AtanImageFilter_vector.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_AtanImageFilter_vector.nrrd.sha512
new file mode 100644
index 0000000..4ff9c72
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_AtanImageFilter_vector.nrrd.sha512
@@ -0,0 +1 @@
+2f611dd2dc58e6fd57eaf5550651e2501b778d63170b8bcc585a064ee4563afcc1d94d2e17a710bd35a88e678560add4efc4c4195d19fa330258ab13132a92d0
diff --git a/Testing/Data/Baseline/BasicFilters_BilateralImageFilter_3d.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_BilateralImageFilter_3d.nrrd.md5
new file mode 100644
index 0000000..a7d36ab
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_BilateralImageFilter_3d.nrrd.md5
@@ -0,0 +1 @@
+c1fedbb3a9c8093fcb0d0c4e74da3239
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_BilateralImageFilter_3d.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_BilateralImageFilter_3d.nrrd.sha512
new file mode 100644
index 0000000..9d023a2
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_BilateralImageFilter_3d.nrrd.sha512
@@ -0,0 +1 @@
+c0a9ee83c158a411f2504d770eb2e6ae132b5f2f2184546a6ce2916e60f88eea71727c2187d7a51db437ca6be57e88bd6807e2d8452705d829bbb5a6c8f2ba7e
diff --git a/Testing/Data/Baseline/BasicFilters_BinaryMagnitudeImageFilter_3d.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_BinaryMagnitudeImageFilter_3d.nrrd.md5
new file mode 100644
index 0000000..fdd00b5
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_BinaryMagnitudeImageFilter_3d.nrrd.md5
@@ -0,0 +1 @@
+736f80072fcc908bacd2b9f640f6d5a0
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_BinaryMagnitudeImageFilter_3d.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_BinaryMagnitudeImageFilter_3d.nrrd.sha512
new file mode 100644
index 0000000..8802bac
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_BinaryMagnitudeImageFilter_3d.nrrd.sha512
@@ -0,0 +1 @@
+942fc573ca4d2490b49965a442c027cc5bc495c9c4b032c31f4358c3ab6e1f7103d8224da58d17d07211e424401303cfb277a969f730b2f7966700d1441390c9
diff --git a/Testing/Data/Baseline/BasicFilters_BinaryMinMaxCurvatureFlowImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_BinaryMinMaxCurvatureFlowImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..a1947a0
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_BinaryMinMaxCurvatureFlowImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+aefe3f464f648d6c51d8b46fe8e67cad
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_BinaryMinMaxCurvatureFlowImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_BinaryMinMaxCurvatureFlowImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..3915c6b
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_BinaryMinMaxCurvatureFlowImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+6ecdb2dc38eae69b43674a2a1adff5bdfda502e631902c6952c872d5e753d60f8208c30c7acdf543902c64ae7906a79a8402542ba6e85fb4ed2d7b74ad214b89
diff --git a/Testing/Data/Baseline/BasicFilters_BinaryMinMaxCurvatureFlowImageFilter_longer.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_BinaryMinMaxCurvatureFlowImageFilter_longer.nrrd.md5
new file mode 100644
index 0000000..d22bf4c
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_BinaryMinMaxCurvatureFlowImageFilter_longer.nrrd.md5
@@ -0,0 +1 @@
+35ab8690ee1e1ca4bfce40c7950770af
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_BinaryMinMaxCurvatureFlowImageFilter_longer.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_BinaryMinMaxCurvatureFlowImageFilter_longer.nrrd.sha512
new file mode 100644
index 0000000..65b23f8
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_BinaryMinMaxCurvatureFlowImageFilter_longer.nrrd.sha512
@@ -0,0 +1 @@
+62d174aaa4b4598599aee624cc53d8757d0034c385ae4bcd39ad366f9fa3fe4bab8815b975c60e5c7faf82ca47c4639b52d7a0a1fa1a0a67bac00aa858a93a42
diff --git a/Testing/Data/Baseline/BasicFilters_BoundedReciprocalImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_BoundedReciprocalImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..499fecf
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_BoundedReciprocalImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+cf18602654ef1943c877bd9ccf3de40b
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_BoundedReciprocalImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_BoundedReciprocalImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..0d46d85
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_BoundedReciprocalImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+6a5d82f56d9f7cbfa0725ec109261d29d2236cc9550a4ba12d5cfd633cb04d4d1d038ccbbc6957fb26397b6573c9a7330d21e4214252c9352334e6c2979d7239
diff --git a/Testing/Data/Baseline/BasicFilters_BoundedReciprocalImageFilter_vector.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_BoundedReciprocalImageFilter_vector.nrrd.md5
new file mode 100644
index 0000000..2c3b7cb
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_BoundedReciprocalImageFilter_vector.nrrd.md5
@@ -0,0 +1 @@
+3ef93ff5e8a4eb690d487aeb8fca7e5d
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_BoundedReciprocalImageFilter_vector.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_BoundedReciprocalImageFilter_vector.nrrd.sha512
new file mode 100644
index 0000000..653bb2e
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_BoundedReciprocalImageFilter_vector.nrrd.sha512
@@ -0,0 +1 @@
+12d7a3fde11eeac6d5ba6fe13274dc503338a1eadc1c503404b8260e5eaf31a0fcbdeb0a0ecbf34e69970379c8960271af88d8313f39b62340dad93a454acb4b
diff --git a/Testing/Data/Baseline/BasicFilters_ClampImageFilter_double.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ClampImageFilter_double.nrrd.md5
new file mode 100644
index 0000000..3ab1440
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ClampImageFilter_double.nrrd.md5
@@ -0,0 +1 @@
+a53e9c3e966e96cdb71ca93ffac8f621
diff --git a/Testing/Data/Baseline/BasicFilters_ClampImageFilter_double.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_ClampImageFilter_double.nrrd.sha512
new file mode 100644
index 0000000..50e83d3
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ClampImageFilter_double.nrrd.sha512
@@ -0,0 +1 @@
+680cd9da2b583e9bbdc1c745ab25ff1b3e4031cd24347bb549ea15bcd1726ef9ad37a3b48ff1f8e5804d8a5028ed7c5f0f70dde5279144f4e12ffd24a2554711
diff --git a/Testing/Data/Baseline/BasicFilters_CollidingFrontsImageFilter_around_dots.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_CollidingFrontsImageFilter_around_dots.nrrd.md5
new file mode 100644
index 0000000..33b7e6b
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_CollidingFrontsImageFilter_around_dots.nrrd.md5
@@ -0,0 +1 @@
+a838f534dd1645e01e85cd813994c456
diff --git a/Testing/Data/Baseline/BasicFilters_CollidingFrontsImageFilter_around_dots.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_CollidingFrontsImageFilter_around_dots.nrrd.sha512
new file mode 100644
index 0000000..8d960c8
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_CollidingFrontsImageFilter_around_dots.nrrd.sha512
@@ -0,0 +1 @@
+9251f8f5006b411eb01935ca3ede7bf4b8c909248d1b1a552658c4aef7d49359ba25438d9ed0897bd1cdddb96345eaec412d16d465c7c47aea930badf4e6b98a
diff --git a/Testing/Data/Baseline/BasicFilters_ComplexToModulusImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ComplexToModulusImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..b05092a
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ComplexToModulusImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+96718455b11636c22aeb2c208dd2006d
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_ComplexToModulusImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_ComplexToModulusImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..acc87e0
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ComplexToModulusImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+8a1aa17906b79afa6d3cad4ea5248a9748a7f8eb0d30f456210608919e4a4bca116319dad6c25cff88e6dffc6955eb8354895125d56328893bc05a7eb1195093
diff --git a/Testing/Data/Baseline/BasicFilters_ComplexToPhaseImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ComplexToPhaseImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..1f0e46c
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ComplexToPhaseImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+1473956c389899d311c837105532618e
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_ComplexToPhaseImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_ComplexToPhaseImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..5915358
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ComplexToPhaseImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+63c22ea6da9862a7041ef5a02136bd702262175362fc05d7e7ab6966964e43a113ece759270f4c02b8f0fef4cb4167fca535e6a6147cce6d1cf42f842b93cbdf
diff --git a/Testing/Data/Baseline/BasicFilters_ConvolutionImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ConvolutionImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..ba9bb29
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ConvolutionImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+3050849aa59e82b6f1905fd7ebabf73a
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_ConvolutionImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_ConvolutionImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..f67f734
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ConvolutionImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+22bc59e107322032838f708ab672ee8742a08ada9aab86fafbebd4a46caa2a8ca9491e841681ec8a7f5c58bcf9a0e540d98030c9f6b5f59f21ce8ce25f78fc9b
diff --git a/Testing/Data/Baseline/BasicFilters_CosImageFilter_float.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_CosImageFilter_float.nrrd.md5
new file mode 100644
index 0000000..c2bccf4
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_CosImageFilter_float.nrrd.md5
@@ -0,0 +1 @@
+cfdad459f24d9d60ec490206fc8478f6
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_CosImageFilter_float.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_CosImageFilter_float.nrrd.sha512
new file mode 100644
index 0000000..0a0e077
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_CosImageFilter_float.nrrd.sha512
@@ -0,0 +1 @@
+e626a23d0adb419bc1bc6f35ac7be306163c162f16addd9c27ec9b3ce8a10bf30f4ba10d63915491041c494f70c15e82a40d923ff13e56c5c78d702c28fcc943
diff --git a/Testing/Data/Baseline/BasicFilters_CosImageFilter_short.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_CosImageFilter_short.nrrd.md5
new file mode 100644
index 0000000..21c5904
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_CosImageFilter_short.nrrd.md5
@@ -0,0 +1 @@
+95c844603b837c1f84805e4b5acf5241
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_CosImageFilter_short.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_CosImageFilter_short.nrrd.sha512
new file mode 100644
index 0000000..8bbde4f
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_CosImageFilter_short.nrrd.sha512
@@ -0,0 +1 @@
+4703e598399d3026f8c03cb5d172ed9d38a112dff57abb1f703064a57857359cd4e69e9624d5accbded276e175491e2fe308558c65e12a18577a35ff17334f92
diff --git a/Testing/Data/Baseline/BasicFilters_CosImageFilter_vector.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_CosImageFilter_vector.nrrd.md5
new file mode 100644
index 0000000..4fed0d2
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_CosImageFilter_vector.nrrd.md5
@@ -0,0 +1 @@
+283531b2b58b124c0eefb8bac36347e1
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_CosImageFilter_vector.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_CosImageFilter_vector.nrrd.sha512
new file mode 100644
index 0000000..667ad19
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_CosImageFilter_vector.nrrd.sha512
@@ -0,0 +1 @@
+e174ef6bc2645052d7a9ea49866b6865174b89e1bbf32791f16ab82bd6125cb2aa8325468da4b7ebd001e56ee49b06dcba846546956bc8320cfedbf59279167c
diff --git a/Testing/Data/Baseline/BasicFilters_CurvatureAnisotropicDiffusionImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_CurvatureAnisotropicDiffusionImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..0d96866
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_CurvatureAnisotropicDiffusionImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+e1dfe637c7781e1022488e884c516148
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_CurvatureAnisotropicDiffusionImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_CurvatureAnisotropicDiffusionImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..00e0972
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_CurvatureAnisotropicDiffusionImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+c136871fedddfd4d5e479f654cebe40f2b214ad0948e47d68fd23fd301f55cf3c4c3521ebcf2380ebf3aa9467210036cfb122f84150db2994d693b7084d59ea9
diff --git a/Testing/Data/Baseline/BasicFilters_CurvatureAnisotropicDiffusionImageFilter_longer.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_CurvatureAnisotropicDiffusionImageFilter_longer.nrrd.md5
new file mode 100644
index 0000000..9e5966a
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_CurvatureAnisotropicDiffusionImageFilter_longer.nrrd.md5
@@ -0,0 +1 @@
+1034591338d279a4904bb87a670943a2
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_CurvatureAnisotropicDiffusionImageFilter_longer.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_CurvatureAnisotropicDiffusionImageFilter_longer.nrrd.sha512
new file mode 100644
index 0000000..728fbf0
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_CurvatureAnisotropicDiffusionImageFilter_longer.nrrd.sha512
@@ -0,0 +1 @@
+4b5ba14a93be6447207ced152218385bcbe29ac2a94e0010e18cd343b13ae5c02237761b49e986108e972079c8dd2c2e74db82a97b55b95e49d3c081c3c73100
diff --git a/Testing/Data/Baseline/BasicFilters_CurvatureFlowImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_CurvatureFlowImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..66acc5b
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_CurvatureFlowImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+d3713fc4b100da700ff3c0d90b9af229
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_CurvatureFlowImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_CurvatureFlowImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..62151c1
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_CurvatureFlowImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+a96d83cac876745f2dcb52b6352895ee6e23d1d9dfa70a40930693cdb68eb0234b3f66a9d3bb3ce3dd682fd0109134fb60eecacfa8422c5d5ede93b50878e543
diff --git a/Testing/Data/Baseline/BasicFilters_CurvatureFlowImageFilter_longer.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_CurvatureFlowImageFilter_longer.nrrd.md5
new file mode 100644
index 0000000..0704a3a
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_CurvatureFlowImageFilter_longer.nrrd.md5
@@ -0,0 +1 @@
+67a71e63921eb2f08f816a51983e3ef2
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_CurvatureFlowImageFilter_longer.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_CurvatureFlowImageFilter_longer.nrrd.sha512
new file mode 100644
index 0000000..157dacd
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_CurvatureFlowImageFilter_longer.nrrd.sha512
@@ -0,0 +1 @@
+8357b7d1cffd8443d97ba60bbba6e3cd955ed2ee2c350cf14e1b08ddac95d94b745c397ad537d9b84dac014d760e4eae3cb81a188595c82121dc9c489726485f
diff --git a/Testing/Data/Baseline/BasicFilters_DanielssonDistanceMapImageFilter_default.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_DanielssonDistanceMapImageFilter_default.nrrd.md5
new file mode 100644
index 0000000..6df1e4b
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DanielssonDistanceMapImageFilter_default.nrrd.md5
@@ -0,0 +1 @@
+79987be0aa720216d2adb8c896c59a05
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_DanielssonDistanceMapImageFilter_default.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_DanielssonDistanceMapImageFilter_default.nrrd.sha512
new file mode 100644
index 0000000..5f665fc
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DanielssonDistanceMapImageFilter_default.nrrd.sha512
@@ -0,0 +1 @@
+32dcdb1ee11379127ef511060977dec9e52d4444e38c912e5d8ea530ece3be80eaa65e71be4e8ad729afb93211d369b87ac132de7f7740d30609e76ceab54686
diff --git a/Testing/Data/Baseline/BasicFilters_DemonsRegistrationFilter_2d.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_DemonsRegistrationFilter_2d.nrrd.md5
new file mode 100644
index 0000000..553793e
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DemonsRegistrationFilter_2d.nrrd.md5
@@ -0,0 +1 @@
+ef7843afe869fa10a70e6a431976d9aa
diff --git a/Testing/Data/Baseline/BasicFilters_DemonsRegistrationFilter_2d.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_DemonsRegistrationFilter_2d.nrrd.sha512
new file mode 100644
index 0000000..2c22e6c
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DemonsRegistrationFilter_2d.nrrd.sha512
@@ -0,0 +1 @@
+7430387994a959bc72cbcc77c1f6ea90a2abaeaa7f8d6d646a394832f1201d29a157849a7529c5dd13ac8664b9aa33af6f0b2fe1f18aee6ebd05fb82088f9e14
diff --git a/Testing/Data/Baseline/BasicFilters_DemonsRegistrationFilter_2d_with_initial.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_DemonsRegistrationFilter_2d_with_initial.nrrd.md5
new file mode 100644
index 0000000..1de6f42
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DemonsRegistrationFilter_2d_with_initial.nrrd.md5
@@ -0,0 +1 @@
+1251f0509f87a61589353b2dc7cb4670
diff --git a/Testing/Data/Baseline/BasicFilters_DemonsRegistrationFilter_2d_with_initial.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_DemonsRegistrationFilter_2d_with_initial.nrrd.sha512
new file mode 100644
index 0000000..ea65131
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DemonsRegistrationFilter_2d_with_initial.nrrd.sha512
@@ -0,0 +1 @@
+e726aaff5cb6fdbb626633c063d7f161610dd3baafc2535e8c60219174a2ddee1aa73e2f6a2d10d32752fdc6e4005459625da7645ddea6dc7e685aa91a417161
diff --git a/Testing/Data/Baseline/BasicFilters_DerivativeImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_DerivativeImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..1f22c37
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DerivativeImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+fd4e809e6b2529292e15e3e02773be37
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_DerivativeImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_DerivativeImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..919fce2
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DerivativeImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+6667920ba611119a334d7ff344758d0701df2e8846ec77d1fd4147902f0af292deb161d0d2eaa3c51490032d024918017aea7f37b2b7a27f920e5647f62b40ad
diff --git a/Testing/Data/Baseline/BasicFilters_DerivativeImageFilter_zsecondorder.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_DerivativeImageFilter_zsecondorder.nrrd.md5
new file mode 100644
index 0000000..98bd4be
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DerivativeImageFilter_zsecondorder.nrrd.md5
@@ -0,0 +1 @@
+50feae81e860de04a3d7fa29b74442cb
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_DerivativeImageFilter_zsecondorder.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_DerivativeImageFilter_zsecondorder.nrrd.sha512
new file mode 100644
index 0000000..40ad2f6
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DerivativeImageFilter_zsecondorder.nrrd.sha512
@@ -0,0 +1 @@
+42bd95fbe9ebc628ff7ed1316fa77a7375a1e14020f4ecd2d98d1ae2b6e88b9e66587e0117d07aa983673c53677bb1c15b449b8fe90f39bd271dabe9177a125f
diff --git a/Testing/Data/Baseline/BasicFilters_DiffeomorphicDemonsRegistrationFilter_2d.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_DiffeomorphicDemonsRegistrationFilter_2d.nrrd.md5
new file mode 100644
index 0000000..9662984
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DiffeomorphicDemonsRegistrationFilter_2d.nrrd.md5
@@ -0,0 +1 @@
+66ee861a199ef23e7a6392ca162b3da1
diff --git a/Testing/Data/Baseline/BasicFilters_DiffeomorphicDemonsRegistrationFilter_2d.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_DiffeomorphicDemonsRegistrationFilter_2d.nrrd.sha512
new file mode 100644
index 0000000..ecfcb62
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DiffeomorphicDemonsRegistrationFilter_2d.nrrd.sha512
@@ -0,0 +1 @@
+1bd7c0ef88462d59d30f343efbac55974c2b5f1fe9e35e6f9e08f701e1ef303a1f6d3f74fab1dddb6f253b87a68242625f2bd40b68dac664b760edd71b2b9504
diff --git a/Testing/Data/Baseline/BasicFilters_DiffeomorphicDemonsRegistrationFilter_2d_with_initial.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_DiffeomorphicDemonsRegistrationFilter_2d_with_initial.nrrd.md5
new file mode 100644
index 0000000..145e148
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DiffeomorphicDemonsRegistrationFilter_2d_with_initial.nrrd.md5
@@ -0,0 +1 @@
+fe9a10248552ef1f122ef76ee2fc081e
diff --git a/Testing/Data/Baseline/BasicFilters_DiffeomorphicDemonsRegistrationFilter_2d_with_initial.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_DiffeomorphicDemonsRegistrationFilter_2d_with_initial.nrrd.sha512
new file mode 100644
index 0000000..2b60ba0
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DiffeomorphicDemonsRegistrationFilter_2d_with_initial.nrrd.sha512
@@ -0,0 +1 @@
+7900f6ae022d1325f93a5da09b7b0d99de8a50b6bfcb1a97aa574f2d9fba31d59f831a3c7d4e3e28264a73b66c73fba7d70490e3c76dd575c8e2414076734b98
diff --git a/Testing/Data/Baseline/BasicFilters_DilateObjectMorphologyImageFilter_float.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_DilateObjectMorphologyImageFilter_float.nrrd.md5
new file mode 100644
index 0000000..fe6932a
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DilateObjectMorphologyImageFilter_float.nrrd.md5
@@ -0,0 +1 @@
+1b5092c4cb11f846977f1fc175accd3c
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_DilateObjectMorphologyImageFilter_float.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_DilateObjectMorphologyImageFilter_float.nrrd.sha512
new file mode 100644
index 0000000..ed9f314
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DilateObjectMorphologyImageFilter_float.nrrd.sha512
@@ -0,0 +1 @@
+0fef8b24aba7b5177934909c136fae870d84797ea953f636a91d38dfe233c4a93272c7fd98e5128722c19430eaddcca2a8495fe9f7518a395e360316391dd4ed
diff --git a/Testing/Data/Baseline/BasicFilters_DilateObjectMorphologyImageFilter_short.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_DilateObjectMorphologyImageFilter_short.nrrd.md5
new file mode 100644
index 0000000..74b4764
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DilateObjectMorphologyImageFilter_short.nrrd.md5
@@ -0,0 +1 @@
+bbe245e3cbf925edcf5d023203bd6b82
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_DilateObjectMorphologyImageFilter_short.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_DilateObjectMorphologyImageFilter_short.nrrd.sha512
new file mode 100644
index 0000000..fa4aae3
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DilateObjectMorphologyImageFilter_short.nrrd.sha512
@@ -0,0 +1 @@
+c7f8ca866501145b9befc6a2297832ea4bc90f51ce1ac184b1e2917457c201de2cc10695c143f886368773a0dc65bba1a01580248ca38d8552fdc141df7807a2
diff --git a/Testing/Data/Baseline/BasicFilters_DiscreteGaussianDerivativeImageFilter_float1.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_DiscreteGaussianDerivativeImageFilter_float1.nrrd.md5
new file mode 100644
index 0000000..9c420f6
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DiscreteGaussianDerivativeImageFilter_float1.nrrd.md5
@@ -0,0 +1 @@
+50e6c855fcee80a195980421bdd71140
diff --git a/Testing/Data/Baseline/BasicFilters_DiscreteGaussianDerivativeImageFilter_float1.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_DiscreteGaussianDerivativeImageFilter_float1.nrrd.sha512
new file mode 100644
index 0000000..fd3a879
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DiscreteGaussianDerivativeImageFilter_float1.nrrd.sha512
@@ -0,0 +1 @@
+d4258f61c3658c660b52427ae964790a61b623de7dde2c2482b92724e0c2e405c77774aa37e3c17ca068b717b09650030c39052ecf57ffc2f732135b57b3db39
diff --git a/Testing/Data/Baseline/BasicFilters_DiscreteGaussianDerivativeImageFilter_float_10.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_DiscreteGaussianDerivativeImageFilter_float_10.nrrd.md5
new file mode 100644
index 0000000..13e3ca9
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DiscreteGaussianDerivativeImageFilter_float_10.nrrd.md5
@@ -0,0 +1 @@
+39b1d744b15679e43c40fb21c3057ff0
diff --git a/Testing/Data/Baseline/BasicFilters_DiscreteGaussianDerivativeImageFilter_float_10.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_DiscreteGaussianDerivativeImageFilter_float_10.nrrd.sha512
new file mode 100644
index 0000000..ce91899
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DiscreteGaussianDerivativeImageFilter_float_10.nrrd.sha512
@@ -0,0 +1 @@
+8f5850fa6754c4b709e45a593f7b9893170e2734137491a4abebc03b61ab236234d0fefed66da2b7eb0f6595fc368732b717f773fa49010d778df32188ebe9aa
diff --git a/Testing/Data/Baseline/BasicFilters_DiscreteGaussianDerivativeImageFilter_float_dx.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_DiscreteGaussianDerivativeImageFilter_float_dx.nrrd.md5
new file mode 100644
index 0000000..a755aee
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DiscreteGaussianDerivativeImageFilter_float_dx.nrrd.md5
@@ -0,0 +1 @@
+3a1d580c01b3ac705fefc280f3947d3a
diff --git a/Testing/Data/Baseline/BasicFilters_DiscreteGaussianDerivativeImageFilter_float_dx.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_DiscreteGaussianDerivativeImageFilter_float_dx.nrrd.sha512
new file mode 100644
index 0000000..06e9cf6
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DiscreteGaussianDerivativeImageFilter_float_dx.nrrd.sha512
@@ -0,0 +1 @@
+9377d3fc61b386f0305f61ab7ed560180212455744894d6aa63befd7d4700caef1184ca75d272f87fc046ef2c928e0a8826c85ab571e27b173bfb652053fafb1
diff --git a/Testing/Data/Baseline/BasicFilters_DiscreteGaussianDerivativeImageFilter_float_dy2.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_DiscreteGaussianDerivativeImageFilter_float_dy2.nrrd.md5
new file mode 100644
index 0000000..0f21673
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DiscreteGaussianDerivativeImageFilter_float_dy2.nrrd.md5
@@ -0,0 +1 @@
+f7305c52c69b75f737eb6364497024ff
diff --git a/Testing/Data/Baseline/BasicFilters_DiscreteGaussianDerivativeImageFilter_float_dy2.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_DiscreteGaussianDerivativeImageFilter_float_dy2.nrrd.sha512
new file mode 100644
index 0000000..4c3fcb4
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DiscreteGaussianDerivativeImageFilter_float_dy2.nrrd.sha512
@@ -0,0 +1 @@
+badcfd614aeb314d31529359518ebf25c8da48698069acf749c556827ac3991ed9136f73f193ea0b061d6f296ef12d99cec43538ac17b9a7bb61a1f3687b919c
diff --git a/Testing/Data/Baseline/BasicFilters_DiscreteGaussianImageFilter_float.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_DiscreteGaussianImageFilter_float.nrrd.md5
new file mode 100644
index 0000000..da7c348
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DiscreteGaussianImageFilter_float.nrrd.md5
@@ -0,0 +1 @@
+f6725d2a11a1d934b1a22f7cfec8a215
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_DiscreteGaussianImageFilter_float.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_DiscreteGaussianImageFilter_float.nrrd.sha512
new file mode 100644
index 0000000..eee7b37
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DiscreteGaussianImageFilter_float.nrrd.sha512
@@ -0,0 +1 @@
+d2f9b5a53a311b4a609a91bc5e1769460654bc4a2e28d0da8e0e62f328458e17cd156b823f764ef1a89b0319ad33edd9884e0361ddb6395c7910ed155ade74da
diff --git a/Testing/Data/Baseline/BasicFilters_DiscreteGaussianImageFilter_short.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_DiscreteGaussianImageFilter_short.nrrd.md5
new file mode 100644
index 0000000..7d44277
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DiscreteGaussianImageFilter_short.nrrd.md5
@@ -0,0 +1 @@
+146277cf45f28feffc9e2a18b97ccbf3
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_DiscreteGaussianImageFilter_short.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_DiscreteGaussianImageFilter_short.nrrd.sha512
new file mode 100644
index 0000000..752fcc4
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DiscreteGaussianImageFilter_short.nrrd.sha512
@@ -0,0 +1 @@
+bd41ca9d6ae3f1d1d5d4f5c6768c4efee2cbd62d6f463640e7fd102ab67cff6fb996fc9fe881ba3bd1a8a7bcae708fde9e7c1cb40002ed79b25324362ac7b100
diff --git a/Testing/Data/Baseline/BasicFilters_DisplacementFieldJacobianDeterminantFilter_2d.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_DisplacementFieldJacobianDeterminantFilter_2d.nrrd.md5
new file mode 100644
index 0000000..e2b7895
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DisplacementFieldJacobianDeterminantFilter_2d.nrrd.md5
@@ -0,0 +1 @@
+c17e5e3e68062a94a9785e2fe603bd39
diff --git a/Testing/Data/Baseline/BasicFilters_DisplacementFieldJacobianDeterminantFilter_2d.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_DisplacementFieldJacobianDeterminantFilter_2d.nrrd.sha512
new file mode 100644
index 0000000..b9d1d1e
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DisplacementFieldJacobianDeterminantFilter_2d.nrrd.sha512
@@ -0,0 +1 @@
+b47fd2bd46d7090bd6d2bec7a1d4672cf3b0e4162505860387dfe247d5ce55feeb2b07354e6306e96eb08fc6d5048c0c405c8cd7fec284df3dfa94b48593702d
diff --git a/Testing/Data/Baseline/BasicFilters_DisplacementFieldJacobianDeterminantFilter_2d_weights.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_DisplacementFieldJacobianDeterminantFilter_2d_weights.nrrd.md5
new file mode 100644
index 0000000..f87201c
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DisplacementFieldJacobianDeterminantFilter_2d_weights.nrrd.md5
@@ -0,0 +1 @@
+146051c2bf30cf847f88fce59fba4ff7
diff --git a/Testing/Data/Baseline/BasicFilters_DisplacementFieldJacobianDeterminantFilter_2d_weights.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_DisplacementFieldJacobianDeterminantFilter_2d_weights.nrrd.sha512
new file mode 100644
index 0000000..e4eead1
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DisplacementFieldJacobianDeterminantFilter_2d_weights.nrrd.sha512
@@ -0,0 +1 @@
+04a0df1da3ec39a3d4c8994630f8189bb5b4fec9bc41bd4b5b23ca4ed33afcf5e642dd578aa4814679eca107323f9f46b7244f159a9abec2cb701139ed9486ba
diff --git a/Testing/Data/Baseline/BasicFilters_DivideRealImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_DivideRealImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..9f0af2b
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DivideRealImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+a0afe9d9aaf61b334a8635bd08ec65ba
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_DivideRealImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_DivideRealImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..840b2da
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_DivideRealImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+95c3223f2c8d51906de2ddc0407e8e701b33cd802fc699d850a063c8628c05c028b7e1ecf29f18a4f4f7167d64553cefba790ed170748a4301ea19d6cccdd177
diff --git a/Testing/Data/Baseline/BasicFilters_EdgePotentialImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_EdgePotentialImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..a6b92ee
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_EdgePotentialImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+378c52e56aa415145da3dd085c97d881
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_EdgePotentialImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_EdgePotentialImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..04325c4
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_EdgePotentialImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+80ddc68ef4e9648ae849264ab509ad9bb9831f8c5a96755a43d08c6d4bac4a8d70b673edb838b278b9747556d0ce6f0200d9487975d432cc733e8aaacbb77b53
diff --git a/Testing/Data/Baseline/BasicFilters_ErodeObjectMorphologyImageFilter_float.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ErodeObjectMorphologyImageFilter_float.nrrd.md5
new file mode 100644
index 0000000..fe6932a
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ErodeObjectMorphologyImageFilter_float.nrrd.md5
@@ -0,0 +1 @@
+1b5092c4cb11f846977f1fc175accd3c
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_ErodeObjectMorphologyImageFilter_float.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_ErodeObjectMorphologyImageFilter_float.nrrd.sha512
new file mode 100644
index 0000000..ed9f314
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ErodeObjectMorphologyImageFilter_float.nrrd.sha512
@@ -0,0 +1 @@
+0fef8b24aba7b5177934909c136fae870d84797ea953f636a91d38dfe233c4a93272c7fd98e5128722c19430eaddcca2a8495fe9f7518a395e360316391dd4ed
diff --git a/Testing/Data/Baseline/BasicFilters_ErodeObjectMorphologyImageFilter_short.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ErodeObjectMorphologyImageFilter_short.nrrd.md5
new file mode 100644
index 0000000..74b4764
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ErodeObjectMorphologyImageFilter_short.nrrd.md5
@@ -0,0 +1 @@
+bbe245e3cbf925edcf5d023203bd6b82
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_ErodeObjectMorphologyImageFilter_short.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_ErodeObjectMorphologyImageFilter_short.nrrd.sha512
new file mode 100644
index 0000000..fa4aae3
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ErodeObjectMorphologyImageFilter_short.nrrd.sha512
@@ -0,0 +1 @@
+c7f8ca866501145b9befc6a2297832ea4bc90f51ce1ac184b1e2917457c201de2cc10695c143f886368773a0dc65bba1a01580248ca38d8552fdc141df7807a2
diff --git a/Testing/Data/Baseline/BasicFilters_ExpImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ExpImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..e7c0f8e
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ExpImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+5df678da0f93c87e7d1db59f2a3ad3cb
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_ExpImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_ExpImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..5e74e93
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ExpImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+61052d424aa9a8ef78cb327c73b22cd257ff2cb01c575be91d7dc1f8837c5037ab208df216036162f4ec8bc0f527c8ca84a26a99838c4096a6f3b87252604488
diff --git a/Testing/Data/Baseline/BasicFilters_ExpImageFilter_vector.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ExpImageFilter_vector.nrrd.md5
new file mode 100644
index 0000000..51daaca
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ExpImageFilter_vector.nrrd.md5
@@ -0,0 +1 @@
+838e98cdf86af069ff66c078ac3e0dd9
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_ExpImageFilter_vector.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_ExpImageFilter_vector.nrrd.sha512
new file mode 100644
index 0000000..ddbb282
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ExpImageFilter_vector.nrrd.sha512
@@ -0,0 +1 @@
+8eb80815ec01378afd4cd780c1f53fea10bc8f1201c8d1afee5b08016a81d5db887173752cef7c40a33f997281ced1b8e61c2ec3de2a9af5568b5c19c3a15a24
diff --git a/Testing/Data/Baseline/BasicFilters_ExpNegativeImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ExpNegativeImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..e81bc2a
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ExpNegativeImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+2bbf15c53a6e9d1e5d9b6912ebac7f2f
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_ExpNegativeImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_ExpNegativeImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..1ef730a
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ExpNegativeImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+c0f3688261fc951684619c82cf7ff8b3b7070b2a2371dab68b586105161a3e6a92eaf191ac96dcf4df8f6179ad3383e01d70dc86b8cadf8384231a45c54a0e1e
diff --git a/Testing/Data/Baseline/BasicFilters_ExpNegativeImageFilter_vector.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ExpNegativeImageFilter_vector.nrrd.md5
new file mode 100644
index 0000000..daeb1f9
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ExpNegativeImageFilter_vector.nrrd.md5
@@ -0,0 +1 @@
+08059625205b2c39e14d636aa9d29520
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_ExpNegativeImageFilter_vector.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_ExpNegativeImageFilter_vector.nrrd.sha512
new file mode 100644
index 0000000..3380da7
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ExpNegativeImageFilter_vector.nrrd.sha512
@@ -0,0 +1 @@
+dc48679507f0680f47499f0891169ae0f7bcc43e9fad664f2e312bec8a12238369d525df86285696e3fa422237a2ee4faed817522e2d2ae0f222288630ac8149
diff --git a/Testing/Data/Baseline/BasicFilters_ExpandImageFilter_Expand2x3.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ExpandImageFilter_Expand2x3.nrrd.md5
new file mode 100644
index 0000000..af6484e
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ExpandImageFilter_Expand2x3.nrrd.md5
@@ -0,0 +1 @@
+b5019ba71afd28fb7424ed39e850ef23
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_ExpandImageFilter_Expand2x3.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_ExpandImageFilter_Expand2x3.nrrd.sha512
new file mode 100644
index 0000000..aa4b119
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ExpandImageFilter_Expand2x3.nrrd.sha512
@@ -0,0 +1 @@
+71ffc573043d259052468adac0a3acf862c9af43ab7f92b825f6e5a840e853de989811111b8142f14cd8a638de1fd765083c8fce1802f382b65d443276d1bcfd
diff --git a/Testing/Data/Baseline/BasicFilters_ExpandImageFilter_Interpolator_BSpline.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ExpandImageFilter_Interpolator_BSpline.nrrd.md5
new file mode 100644
index 0000000..4afef98
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ExpandImageFilter_Interpolator_BSpline.nrrd.md5
@@ -0,0 +1 @@
+67ff0f7e48928916bdec4f7afd5e4574
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_ExpandImageFilter_Interpolator_BSpline.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_ExpandImageFilter_Interpolator_BSpline.nrrd.sha512
new file mode 100644
index 0000000..b291c18
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ExpandImageFilter_Interpolator_BSpline.nrrd.sha512
@@ -0,0 +1 @@
+5021f9052a677c1072e8ac1ceeec94e215b435210ca8aed383ce7799b5d3a7ef2f1a218e8a4e80d44cf6caa65d50875421801509dbccad297442aec00a0cefc5
diff --git a/Testing/Data/Baseline/BasicFilters_ExpandImageFilter_Interpolator_Gaussian.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ExpandImageFilter_Interpolator_Gaussian.nrrd.md5
new file mode 100644
index 0000000..b87e868
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ExpandImageFilter_Interpolator_Gaussian.nrrd.md5
@@ -0,0 +1 @@
+238556b8f784284b64aec7259b1568a5
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_ExpandImageFilter_Interpolator_Gaussian.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_ExpandImageFilter_Interpolator_Gaussian.nrrd.sha512
new file mode 100644
index 0000000..0b3859c
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ExpandImageFilter_Interpolator_Gaussian.nrrd.sha512
@@ -0,0 +1 @@
+5dd8d7551395d8a3943957f1580007940448bc51f1a93c212e8a8d10a9ecca1ff8397ad41d5b6afc70ac3544601fc1ef8c3a88a4bb4ff723583349565f2a1fc5
diff --git a/Testing/Data/Baseline/BasicFilters_ExpandImageFilter_Vector.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ExpandImageFilter_Vector.nrrd.md5
new file mode 100644
index 0000000..b1e5bda
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ExpandImageFilter_Vector.nrrd.md5
@@ -0,0 +1 @@
+e26a86d2559079cdc629ba67864598f2
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_ExpandImageFilter_Vector.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_ExpandImageFilter_Vector.nrrd.sha512
new file mode 100644
index 0000000..57d074c
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ExpandImageFilter_Vector.nrrd.sha512
@@ -0,0 +1 @@
+af379d85942ec82fc3a182342c1bbeac3065c87f2064ec31cc49bbf0b7d308e7d5bf2fac983fd8684816b15beac65c6421d6df9d76e3090bdd29d9f0383ff8ed
diff --git a/Testing/Data/Baseline/BasicFilters_FFTConvolutionImageFilter_defaults.1.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_FFTConvolutionImageFilter_defaults.1.nrrd.md5
new file mode 100644
index 0000000..6c5f290
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_FFTConvolutionImageFilter_defaults.1.nrrd.md5
@@ -0,0 +1 @@
+6579847e807d468278a56c289eb28288
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_FFTConvolutionImageFilter_defaults.1.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_FFTConvolutionImageFilter_defaults.1.nrrd.sha512
new file mode 100644
index 0000000..aaed280
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_FFTConvolutionImageFilter_defaults.1.nrrd.sha512
@@ -0,0 +1 @@
+be6300ad901d31751efe8389b9cf61b206c231b7866e8b7cff31cac0044edfd5b1896ac3f435ea6b6b3794f7488c803840a36e938a08dcc9e49b91f540e69d4e
diff --git a/Testing/Data/Baseline/BasicFilters_FFTConvolutionImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_FFTConvolutionImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..af5580c
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_FFTConvolutionImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+287c913079332c7d924143fd0601038e
diff --git a/Testing/Data/Baseline/BasicFilters_FFTConvolutionImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_FFTConvolutionImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..1815e2e
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_FFTConvolutionImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+983ed4b6a1435fa9e12b6e1fd01254dc2ae0a26524b2034caa917ec14dd07fb94b79352db117f4690f468afc5d6fcb4c77ee18dbe3d6fce9ba1557cd966283b9
diff --git a/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_3D.1.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_3D.1.nrrd.md5
new file mode 100644
index 0000000..608b2d0
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_3D.1.nrrd.md5
@@ -0,0 +1 @@
+fda191030c45a5f88166c98ba6fc0d90
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_3D.1.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_3D.1.nrrd.sha512
new file mode 100644
index 0000000..c6b7603
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_3D.1.nrrd.sha512
@@ -0,0 +1 @@
+9f8b3c68260c1de6bc4c606ca459f5c1a612e4483bc7fda4bcfe120541b26bc422653f543a83f5c17a3ebfdd51f1089ca48f7f0d24ee71077537ba6e226d05f4
diff --git a/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_3D.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_3D.nrrd.md5
new file mode 100644
index 0000000..5de684a
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_3D.nrrd.md5
@@ -0,0 +1 @@
+53b68a3bc02def098ac1cd38b28b494a
diff --git a/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_3D.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_3D.nrrd.sha512
new file mode 100644
index 0000000..e909d50
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_3D.nrrd.sha512
@@ -0,0 +1 @@
+0a3c4491b9983e90ed7db5166ed1b1832138ac27cc921bf12d374fa9ed8d4ec9f4528538fb5f6026aac3b60262300bf0662db20ccea2b5198a5633ec3faf6b68
diff --git a/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_EvenKernel.1.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_EvenKernel.1.nrrd.md5
new file mode 100644
index 0000000..8d3ed53
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_EvenKernel.1.nrrd.md5
@@ -0,0 +1 @@
+c9516efe9e3167ae67ee3d015c9a3d0e
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_EvenKernel.1.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_EvenKernel.1.nrrd.sha512
new file mode 100644
index 0000000..89df803
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_EvenKernel.1.nrrd.sha512
@@ -0,0 +1 @@
+574bc6d2a9880854827b3afe4667ad78ce33df55a9f619ab8928ffc81f18df29135d71649962130b2dc741bc3f8d6ba7edf16ea07d63618989ef627160acc0fe
diff --git a/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_EvenKernel.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_EvenKernel.nrrd.md5
new file mode 100644
index 0000000..7f80310
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_EvenKernel.nrrd.md5
@@ -0,0 +1 @@
+6aff753cb0e5e8c56ad170fa4bcdc1e8
diff --git a/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_EvenKernel.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_EvenKernel.nrrd.sha512
new file mode 100644
index 0000000..18b20d1
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_EvenKernel.nrrd.sha512
@@ -0,0 +1 @@
+4c351f0876b16729073ca483896dc1be2e4932000a64339835dd0724365fb06ef1328a7265706ee78f884376799e219b9c6d5e97e6d67437112728579e8a8b52
diff --git a/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_defaults.1.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_defaults.1.nrrd.md5
new file mode 100644
index 0000000..4cad99b
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_defaults.1.nrrd.md5
@@ -0,0 +1 @@
+03f553511c60c0f3d8aa7637e446a237
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_defaults.1.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_defaults.1.nrrd.sha512
new file mode 100644
index 0000000..fb23194
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_defaults.1.nrrd.sha512
@@ -0,0 +1 @@
+0eae88924d0b74fcd6e71e908f8e562cbf09a61c6a71c7601e70559fb391611af9fb91cc5685a74b1970e37967788ad8748643cf84a4cdb807432d4adb59ee36
diff --git a/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..7d56cc2
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+368b198113c8125237b7a1a3ffbf6c2f
diff --git a/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..49ceb23
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_FFTNormalizedCorrelationImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+eb269809e2a0ffc0e89bbd47aa69f12bef5fc90f603dfe74763d3902cad61ea7eddad6e98d0281c75e0ef894dd2092b0658a22a14c04dfc8bfea13d7ac98ac23
diff --git a/Testing/Data/Baseline/BasicFilters_FastMarchingImageFilter_default.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_FastMarchingImageFilter_default.nrrd.md5
new file mode 100644
index 0000000..4a46974
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_FastMarchingImageFilter_default.nrrd.md5
@@ -0,0 +1 @@
+7d88b6fe5235d1d27ade4bde1f67710d
diff --git a/Testing/Data/Baseline/BasicFilters_FastMarchingImageFilter_default.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_FastMarchingImageFilter_default.nrrd.sha512
new file mode 100644
index 0000000..6e9f431
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_FastMarchingImageFilter_default.nrrd.sha512
@@ -0,0 +1 @@
+a80c6b6019cc67283bed97af94f57336db37ae73061fd6d27ccac64aa3bd00d5932be137d9dc5bee3ea9dd4a47d9bae9547f25dde9fc7d6c8aa339ebedd3d94e
diff --git a/Testing/Data/Baseline/BasicFilters_FastMarchingUpwindGradientImageFilter_default.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_FastMarchingUpwindGradientImageFilter_default.nrrd.md5
new file mode 100644
index 0000000..f23a275
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_FastMarchingUpwindGradientImageFilter_default.nrrd.md5
@@ -0,0 +1 @@
+64bdbe959708265931c62b9b90df3e61
diff --git a/Testing/Data/Baseline/BasicFilters_FastMarchingUpwindGradientImageFilter_default.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_FastMarchingUpwindGradientImageFilter_default.nrrd.sha512
new file mode 100644
index 0000000..8c33baa
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_FastMarchingUpwindGradientImageFilter_default.nrrd.sha512
@@ -0,0 +1 @@
+1dd546135861b6c9dfe40fcdac35fabeb75c1cb97dcf03e56bc89b90305475429462fdb5482d2d43ac96d202cf1e8ec87408f06783b3f60434f7d7769372d03d
diff --git a/Testing/Data/Baseline/BasicFilters_FastSymmetricForcesDemonsRegistrationFilter_2d.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_FastSymmetricForcesDemonsRegistrationFilter_2d.nrrd.md5
new file mode 100644
index 0000000..cff6e48
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_FastSymmetricForcesDemonsRegistrationFilter_2d.nrrd.md5
@@ -0,0 +1 @@
+caee43bdb17214e9ad9e3b64c16dfb70
diff --git a/Testing/Data/Baseline/BasicFilters_FastSymmetricForcesDemonsRegistrationFilter_2d.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_FastSymmetricForcesDemonsRegistrationFilter_2d.nrrd.sha512
new file mode 100644
index 0000000..79eefbe
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_FastSymmetricForcesDemonsRegistrationFilter_2d.nrrd.sha512
@@ -0,0 +1 @@
+3e4546894030477845287bc5a066c0103a466d82327212631551ae633b35cd78001b9006493aad995a43f2b95bb28b648da8bbc4950f30db136d21c305bc2276
diff --git a/Testing/Data/Baseline/BasicFilters_FastSymmetricForcesDemonsRegistrationFilter_2d_with_initial.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_FastSymmetricForcesDemonsRegistrationFilter_2d_with_initial.nrrd.md5
new file mode 100644
index 0000000..ac41ed4
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_FastSymmetricForcesDemonsRegistrationFilter_2d_with_initial.nrrd.md5
@@ -0,0 +1 @@
+73f7d156b10ce68e871f05fab2dc6de2
diff --git a/Testing/Data/Baseline/BasicFilters_FastSymmetricForcesDemonsRegistrationFilter_2d_with_initial.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_FastSymmetricForcesDemonsRegistrationFilter_2d_with_initial.nrrd.sha512
new file mode 100644
index 0000000..9dfcfa1
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_FastSymmetricForcesDemonsRegistrationFilter_2d_with_initial.nrrd.sha512
@@ -0,0 +1 @@
+90e6bbb84cfccb9eb1ca7605ae9f8a0035aca17a394ffddd953bc4e32045d5e1e69dbf687480cb7baf715e9fecfaae1f074edf5b5364348c5319751529a79c4b
diff --git a/Testing/Data/Baseline/BasicFilters_ForwardFFTImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ForwardFFTImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..931044d
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ForwardFFTImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+fa5962abbcfb984aaf42774a81457fed
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_ForwardFFTImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_ForwardFFTImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..82a87f4
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ForwardFFTImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+5aa8f0e9ea55321c3297c075ca5481c9a30b52e985e992cee933781d326fdb471a39893a986bec9756a64020023f1139d5f2eaf6fcc59fc947f0f01601f1f7d5
diff --git a/Testing/Data/Baseline/BasicFilters_GaborImageSource_default.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_GaborImageSource_default.nrrd.md5
new file mode 100644
index 0000000..e550110
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GaborImageSource_default.nrrd.md5
@@ -0,0 +1 @@
+02744de5f4990b6b61556b1447739263
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_GaborImageSource_default.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_GaborImageSource_default.nrrd.sha512
new file mode 100644
index 0000000..b11b83c
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GaborImageSource_default.nrrd.sha512
@@ -0,0 +1 @@
+9d224afbe9955d9871cc6908e0f6000de9d628474df2d5e462c7a131392b906c35f2450b200784694308baf113d01f198483dfe15ccbec5f150ebcf9e576322e
diff --git a/Testing/Data/Baseline/BasicFilters_GaborSourceImageFilter_default.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_GaborSourceImageFilter_default.nrrd.md5
new file mode 100644
index 0000000..e550110
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GaborSourceImageFilter_default.nrrd.md5
@@ -0,0 +1 @@
+02744de5f4990b6b61556b1447739263
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_GaborSourceImageFilter_default.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_GaborSourceImageFilter_default.nrrd.sha512
new file mode 100644
index 0000000..b11b83c
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GaborSourceImageFilter_default.nrrd.sha512
@@ -0,0 +1 @@
+9d224afbe9955d9871cc6908e0f6000de9d628474df2d5e462c7a131392b906c35f2450b200784694308baf113d01f198483dfe15ccbec5f150ebcf9e576322e
diff --git a/Testing/Data/Baseline/BasicFilters_GaussianImageSource_default.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_GaussianImageSource_default.nrrd.md5
new file mode 100644
index 0000000..f86f6a6
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GaussianImageSource_default.nrrd.md5
@@ -0,0 +1 @@
+013c84e2b924eb8ff658b75ba63b989c
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_GaussianImageSource_default.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_GaussianImageSource_default.nrrd.sha512
new file mode 100644
index 0000000..77ea3cd
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GaussianImageSource_default.nrrd.sha512
@@ -0,0 +1 @@
+a20c589e9a6d003363adf238610318fc4932ab9da6c084438ed16277d519f7bfd5b3ba3c13b53343b8f29dee2db63284cfe3768fa819411d7fa3929ceff5f317
diff --git a/Testing/Data/Baseline/BasicFilters_GaussianSourceImageFilter_default.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_GaussianSourceImageFilter_default.nrrd.md5
new file mode 100644
index 0000000..f86f6a6
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GaussianSourceImageFilter_default.nrrd.md5
@@ -0,0 +1 @@
+013c84e2b924eb8ff658b75ba63b989c
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_GaussianSourceImageFilter_default.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_GaussianSourceImageFilter_default.nrrd.sha512
new file mode 100644
index 0000000..77ea3cd
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GaussianSourceImageFilter_default.nrrd.sha512
@@ -0,0 +1 @@
+a20c589e9a6d003363adf238610318fc4932ab9da6c084438ed16277d519f7bfd5b3ba3c13b53343b8f29dee2db63284cfe3768fa819411d7fa3929ceff5f317
diff --git a/Testing/Data/Baseline/BasicFilters_GeodesicActiveContourLevelSetImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_GeodesicActiveContourLevelSetImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..bcdec52
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GeodesicActiveContourLevelSetImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+b513a975094f16472f5c9b6713a72c60
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_GeodesicActiveContourLevelSetImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_GeodesicActiveContourLevelSetImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..fae3aa8
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GeodesicActiveContourLevelSetImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+50fb0180ee6ae271c0afe31ab7f78a50e1366f43e750657b1697023908a1e0d28b3320dd2e76d24fbb226f9b1704222faec409b4e7f036a8404ededab9cd5c36
diff --git a/Testing/Data/Baseline/BasicFilters_GradientAnisotropicDiffusionImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_GradientAnisotropicDiffusionImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..1dcd8f7
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GradientAnisotropicDiffusionImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+757eefaf9501ba4b43c64459d705891f
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_GradientAnisotropicDiffusionImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_GradientAnisotropicDiffusionImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..3fd1b09
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GradientAnisotropicDiffusionImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+001dc902da266b54e4ee4058e5f138d1df2aacfb4de6a0b28e047dbc8f8c0af63a1bd7e7aeb6fb789ffd35e9d16ff6fca1f187562b38ea11ae276b2427808dfc
diff --git a/Testing/Data/Baseline/BasicFilters_GradientAnisotropicDiffusionImageFilter_longer.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_GradientAnisotropicDiffusionImageFilter_longer.nrrd.md5
new file mode 100644
index 0000000..f18b36f
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GradientAnisotropicDiffusionImageFilter_longer.nrrd.md5
@@ -0,0 +1 @@
+ac3b7df50e79bdbb67ff8b89263f03f3
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_GradientAnisotropicDiffusionImageFilter_longer.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_GradientAnisotropicDiffusionImageFilter_longer.nrrd.sha512
new file mode 100644
index 0000000..9d64648
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GradientAnisotropicDiffusionImageFilter_longer.nrrd.sha512
@@ -0,0 +1 @@
+708bfdf4420cb8d5ee45b872ad16ec9b213436fe03825bb0ebf64635e03f0f0d2f16e894c49638b45d77c75dbfd1e1b41d280c3bf3c2bfa4900c253c52b7775c
diff --git a/Testing/Data/Baseline/BasicFilters_GradientImageFilter_default.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_GradientImageFilter_default.nrrd.md5
new file mode 100644
index 0000000..dfa5d9b
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GradientImageFilter_default.nrrd.md5
@@ -0,0 +1 @@
+ecc217e9396303e2bf0fcba322d6ef28
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_GradientImageFilter_default.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_GradientImageFilter_default.nrrd.sha512
new file mode 100644
index 0000000..7efa57b
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GradientImageFilter_default.nrrd.sha512
@@ -0,0 +1 @@
+1710f937a60b2afd4358a5ebee946fb8f65d406fb27919fa50431edf4407e02dce8773ea96a9a12381daa02aef754a097c8f248ef15706393c9b347214d7f850
diff --git a/Testing/Data/Baseline/BasicFilters_GradientImageFilter_default_float.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_GradientImageFilter_default_float.nrrd.md5
new file mode 100644
index 0000000..5db3a90
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GradientImageFilter_default_float.nrrd.md5
@@ -0,0 +1 @@
+fd0136d5fd3f708d8d9712fe796385be
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_GradientImageFilter_default_float.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_GradientImageFilter_default_float.nrrd.sha512
new file mode 100644
index 0000000..4d5572a
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GradientImageFilter_default_float.nrrd.sha512
@@ -0,0 +1 @@
+d4e7b31293ed5a75b957614bd53ebc3bb06e53bb13235db6a25832a927f34e038d4ba7b480e2f463a7dcca8722b132be3e175d317046dd1119a461795109f15c
diff --git a/Testing/Data/Baseline/BasicFilters_GradientMagnitudeImageFilter_default.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_GradientMagnitudeImageFilter_default.nrrd.md5
new file mode 100644
index 0000000..4ad8fd2
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GradientMagnitudeImageFilter_default.nrrd.md5
@@ -0,0 +1 @@
+7a985895c1f926118dee50aef12856ef
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_GradientMagnitudeImageFilter_default.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_GradientMagnitudeImageFilter_default.nrrd.sha512
new file mode 100644
index 0000000..23e582c
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GradientMagnitudeImageFilter_default.nrrd.sha512
@@ -0,0 +1 @@
+28d3d76fc5cb39843f3bd534c37bd54955e1044333ef0dcfd482847537214249d39c07dd49268f4548d3bf7cc53f5c25ed0588fda50f538ec0cfe63cfe14bbfe
diff --git a/Testing/Data/Baseline/BasicFilters_GradientMagnitudeRecursiveGaussianImageFilter_default.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_GradientMagnitudeRecursiveGaussianImageFilter_default.nrrd.md5
new file mode 100644
index 0000000..5f5dd7f
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GradientMagnitudeRecursiveGaussianImageFilter_default.nrrd.md5
@@ -0,0 +1 @@
+7a86f3b164dae7684d2e5c40399028fe
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_GradientMagnitudeRecursiveGaussianImageFilter_default.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_GradientMagnitudeRecursiveGaussianImageFilter_default.nrrd.sha512
new file mode 100644
index 0000000..d277d5d
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GradientMagnitudeRecursiveGaussianImageFilter_default.nrrd.sha512
@@ -0,0 +1 @@
+1be006c796dd3a36e1937a778bf45940aa04906fc4c91d4dec3ae62bd20888be2d1e36f8a0a3ce8838a999955f66b498b3a912748184bd7bbc540d8a29556707
diff --git a/Testing/Data/Baseline/BasicFilters_GradientRecursiveGaussianImageFilter_default.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_GradientRecursiveGaussianImageFilter_default.nrrd.md5
new file mode 100644
index 0000000..ff90609
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GradientRecursiveGaussianImageFilter_default.nrrd.md5
@@ -0,0 +1 @@
+36ba9922bf82a81692198a126ead8cc4
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_GradientRecursiveGaussianImageFilter_default.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_GradientRecursiveGaussianImageFilter_default.nrrd.sha512
new file mode 100644
index 0000000..171c035
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GradientRecursiveGaussianImageFilter_default.nrrd.sha512
@@ -0,0 +1 @@
+ca37aaf8d216d855b43cc10e510faba9fbc2bf4abf930c43d61d56656f42035ca50fc9852dea3939dfc3cfde8742e6fd712e952b514d72dddeed91e4d36a5028
diff --git a/Testing/Data/Baseline/BasicFilters_GradientRecursiveGaussianImageFilter_vector.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_GradientRecursiveGaussianImageFilter_vector.nrrd.md5
new file mode 100644
index 0000000..039d094
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GradientRecursiveGaussianImageFilter_vector.nrrd.md5
@@ -0,0 +1 @@
+7ad00981b969c430ad7247c95eaefb95
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_GradientRecursiveGaussianImageFilter_vector.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_GradientRecursiveGaussianImageFilter_vector.nrrd.sha512
new file mode 100644
index 0000000..aabf7e9
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GradientRecursiveGaussianImageFilter_vector.nrrd.sha512
@@ -0,0 +1 @@
+109636fc7e5c55dc1da294b002d672f586fa70e76020e132306bd8e3ab1dffb46777a1cd1047ee5df6b52867bfed6e95faad3edaaa074207905a6d0d665de62a
diff --git a/Testing/Data/Baseline/BasicFilters_GridImageSource_default.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_GridImageSource_default.nrrd.md5
new file mode 100644
index 0000000..016b06b
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GridImageSource_default.nrrd.md5
@@ -0,0 +1 @@
+3b6e25b80225dafaacfdbf233f36b9b7
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_GridImageSource_default.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_GridImageSource_default.nrrd.sha512
new file mode 100644
index 0000000..80e0640
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GridImageSource_default.nrrd.sha512
@@ -0,0 +1 @@
+f014706cdb5841236aad0139ec87ddf343cfb413cb07fabfee70c829c41255113a3e19734c60a941416e6917b436d90222cc2294a458ef7327b4365d66f64049
diff --git a/Testing/Data/Baseline/BasicFilters_GridSourceImageFilter_default.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_GridSourceImageFilter_default.nrrd.md5
new file mode 100644
index 0000000..016b06b
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GridSourceImageFilter_default.nrrd.md5
@@ -0,0 +1 @@
+3b6e25b80225dafaacfdbf233f36b9b7
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_GridSourceImageFilter_default.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_GridSourceImageFilter_default.nrrd.sha512
new file mode 100644
index 0000000..80e0640
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_GridSourceImageFilter_default.nrrd.sha512
@@ -0,0 +1 @@
+f014706cdb5841236aad0139ec87ddf343cfb413cb07fabfee70c829c41255113a3e19734c60a941416e6917b436d90222cc2294a458ef7327b4365d66f64049
diff --git a/Testing/Data/Baseline/BasicFilters_HalfHermitianToRealInverseFFTImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_HalfHermitianToRealInverseFFTImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..ca23517
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_HalfHermitianToRealInverseFFTImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+e4d82f1b622fb34fbfe17cffbb3b3af2
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_HalfHermitianToRealInverseFFTImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_HalfHermitianToRealInverseFFTImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..5383d14
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_HalfHermitianToRealInverseFFTImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+42aaf96e1a3609e7869ecc50ed2d591759ee8f5a82d7f1aa663e5e82c24ad540ea36ea72ace95c5574daa7bdba560280bb9c8ce25ed0e44c13e02224b49db4d4
diff --git a/Testing/Data/Baseline/BasicFilters_HistogramMatchingImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_HistogramMatchingImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..015f501
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_HistogramMatchingImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+c7c25f7ac51ca4634858303986832dea
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_HistogramMatchingImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_HistogramMatchingImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..e9cc87b
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_HistogramMatchingImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+5b8876ea5db0bb57bbbe0e65277aa4533c8738c52b4ee0f953f3438384fa5201d836d01c1915c1759258667feea6a04fcce13a0685c1214ad00634db15a4bc41
diff --git a/Testing/Data/Baseline/BasicFilters_InverseDeconvolutionImageFilter_defaults.1.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_InverseDeconvolutionImageFilter_defaults.1.nrrd.md5
new file mode 100644
index 0000000..e9265e1
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_InverseDeconvolutionImageFilter_defaults.1.nrrd.md5
@@ -0,0 +1 @@
+ade10e95c97fdc72399e210bc77e1a27
diff --git a/Testing/Data/Baseline/BasicFilters_InverseDeconvolutionImageFilter_defaults.1.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_InverseDeconvolutionImageFilter_defaults.1.nrrd.sha512
new file mode 100644
index 0000000..c738744
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_InverseDeconvolutionImageFilter_defaults.1.nrrd.sha512
@@ -0,0 +1 @@
+846278629b54d6410956c7282adbc0e537f8ff91879e67c59d3f56c119670cbee3fa440fed384ce68d6ca4a07708cb4c5e37a3b5d626cdf9828039a0a15ed49b
diff --git a/Testing/Data/Baseline/BasicFilters_InverseDeconvolutionImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_InverseDeconvolutionImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..52c9864
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_InverseDeconvolutionImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+df7e6ed58e1c53243307c34a909cb1f5
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_InverseDeconvolutionImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_InverseDeconvolutionImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..8fd038e
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_InverseDeconvolutionImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+6e97f27c90b1da338b033c467535034cd8ff36ed37cc21db0a3cdf3303679835284b24d6a4780c3099fb5dc20bfc87c311f007bcdc5ed5d3749e75f01a1933bb
diff --git a/Testing/Data/Baseline/BasicFilters_InverseDisplacementFieldImageFilter_2d.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_InverseDisplacementFieldImageFilter_2d.nrrd.md5
new file mode 100644
index 0000000..86a9299
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_InverseDisplacementFieldImageFilter_2d.nrrd.md5
@@ -0,0 +1 @@
+3b6925c5797024cf3e433642f96caf05
diff --git a/Testing/Data/Baseline/BasicFilters_InverseDisplacementFieldImageFilter_2d.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_InverseDisplacementFieldImageFilter_2d.nrrd.sha512
new file mode 100644
index 0000000..2e178d1
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_InverseDisplacementFieldImageFilter_2d.nrrd.sha512
@@ -0,0 +1 @@
+fbe7ffd722abc7f8336ea0a0abfe89f33a027e4f1415d103c734419a385aed97073cf7097f524e9159132f6503237e95d0f3d508e64e5d5a883441cede15b27a
diff --git a/Testing/Data/Baseline/BasicFilters_InverseFFTImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_InverseFFTImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..ff7e34e
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_InverseFFTImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+5cefe54ac1a93a84be84480875e7c6de
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_InverseFFTImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_InverseFFTImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..2c2096a
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_InverseFFTImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+5c63de27792d10f82e7fade348b6f359d62c12467051802287d3af4f87cce535a6828cf760d8ae110647a7ac34b06e3579799fd3a4820a5d1573af97f031ae1e
diff --git a/Testing/Data/Baseline/BasicFilters_InvertDisplacementFieldImageFilter_2d.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_InvertDisplacementFieldImageFilter_2d.nrrd.md5
new file mode 100644
index 0000000..356ad14
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_InvertDisplacementFieldImageFilter_2d.nrrd.md5
@@ -0,0 +1 @@
+f218d9b9ffff761bb35fffe099237ca7
diff --git a/Testing/Data/Baseline/BasicFilters_InvertDisplacementFieldImageFilter_2d.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_InvertDisplacementFieldImageFilter_2d.nrrd.sha512
new file mode 100644
index 0000000..bf1bc4e
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_InvertDisplacementFieldImageFilter_2d.nrrd.sha512
@@ -0,0 +1 @@
+d6049b62b739f74ef5b5b5ae4d85567e908aacb54e4cb6ff411b6298635db18072a3e4b773c1dd104f3f69372386867ebca36c8dadae4bda6ef2c92f31b3b2af
diff --git a/Testing/Data/Baseline/BasicFilters_IsoContourDistanceImageFilter_default.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_IsoContourDistanceImageFilter_default.nrrd.md5
new file mode 100644
index 0000000..5d739a9
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_IsoContourDistanceImageFilter_default.nrrd.md5
@@ -0,0 +1 @@
+f1c92a79d9ef24a6fdaa8f43bd4bb3c5
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_IsoContourDistanceImageFilter_default.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_IsoContourDistanceImageFilter_default.nrrd.sha512
new file mode 100644
index 0000000..fd069c9
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_IsoContourDistanceImageFilter_default.nrrd.sha512
@@ -0,0 +1 @@
+7fa9fae63a6f596f0a844598059b4b679be54eaccdfdb9df31d4a184933e02acf1cbebf2a9ffceece4e22aece116ca73a61c2fa447700c63cb2d8ccf4eae6084
diff --git a/Testing/Data/Baseline/BasicFilters_LandweberDeconvolutionImageFilter_defaults.1.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_LandweberDeconvolutionImageFilter_defaults.1.nrrd.md5
new file mode 100644
index 0000000..5d8b5e5
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_LandweberDeconvolutionImageFilter_defaults.1.nrrd.md5
@@ -0,0 +1 @@
+6ab6025929136899d3e3f91fe62fae15
diff --git a/Testing/Data/Baseline/BasicFilters_LandweberDeconvolutionImageFilter_defaults.1.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_LandweberDeconvolutionImageFilter_defaults.1.nrrd.sha512
new file mode 100644
index 0000000..f1fe046
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_LandweberDeconvolutionImageFilter_defaults.1.nrrd.sha512
@@ -0,0 +1 @@
+0d23a4b5fa00f7a770ad66b424747f8c29cb04e57cc57d5b081d33b46ffd86a6fb2aabae8228d7fefad6b3d848a243de5ae5d08f97fd29d75f56cfbdb2a60b54
diff --git a/Testing/Data/Baseline/BasicFilters_LandweberDeconvolutionImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_LandweberDeconvolutionImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..3a088a7
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_LandweberDeconvolutionImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+2f2b1eb279357c2bdd75f70a865bdb40
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_LandweberDeconvolutionImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_LandweberDeconvolutionImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..488edb4
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_LandweberDeconvolutionImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+5c5a735ee06dc4dfbf5cad4685b7a065e27838f31844ab932b5c623e308eed6d38f5a17bcfa6663535d507dbf2172b5fd891d843e4d5dcec03ce4e66471d775e
diff --git a/Testing/Data/Baseline/BasicFilters_LaplacianImageFilter_default.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_LaplacianImageFilter_default.nrrd.md5
new file mode 100644
index 0000000..cf4ba71
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_LaplacianImageFilter_default.nrrd.md5
@@ -0,0 +1 @@
+f535d9da1587b8e3546118f54513b10b
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_LaplacianImageFilter_default.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_LaplacianImageFilter_default.nrrd.sha512
new file mode 100644
index 0000000..62a9d65
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_LaplacianImageFilter_default.nrrd.sha512
@@ -0,0 +1 @@
+d273af93fc93ff3fffb6074a761e59d6d97fe7bd4aecd0d70fbe769e7f9e69f25caeee19063fc5f8e99824affbb05bd6344f4cd470941ef03ba217e9ea3a8fcb
diff --git a/Testing/Data/Baseline/BasicFilters_LaplacianRecursiveGaussianImageFilter_default.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_LaplacianRecursiveGaussianImageFilter_default.nrrd.md5
new file mode 100644
index 0000000..cb65f28
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_LaplacianRecursiveGaussianImageFilter_default.nrrd.md5
@@ -0,0 +1 @@
+8521ac77f502bfe853eafc59570140b3
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_LaplacianRecursiveGaussianImageFilter_default.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_LaplacianRecursiveGaussianImageFilter_default.nrrd.sha512
new file mode 100644
index 0000000..f299d7e
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_LaplacianRecursiveGaussianImageFilter_default.nrrd.sha512
@@ -0,0 +1 @@
+8fc34e9d1dc3f2475403a0f2b349507cf1e19929c995d3d1608eebe49ddd8cbd3024891c14d1c81c37d34bdbdb4baf7e10f7ab4f867aed87dc9902d79f35e4e2
diff --git a/Testing/Data/Baseline/BasicFilters_LaplacianSegmentationLevelSetImageFilter_cthead.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_LaplacianSegmentationLevelSetImageFilter_cthead.nrrd.md5
new file mode 100644
index 0000000..549064e
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_LaplacianSegmentationLevelSetImageFilter_cthead.nrrd.md5
@@ -0,0 +1 @@
+93de39d24dd71864c1afee13f9418d40
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_LaplacianSegmentationLevelSetImageFilter_cthead.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_LaplacianSegmentationLevelSetImageFilter_cthead.nrrd.sha512
new file mode 100644
index 0000000..eb16000
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_LaplacianSegmentationLevelSetImageFilter_cthead.nrrd.sha512
@@ -0,0 +1 @@
+d4bf4f1e4e64dcc9881e5a0783cab32d7757ec0621da50e806851935cae5a9e02b5fac8a2b1f8c54c4c68e4576708e782cfd786a1c8920f1af97c6a553209b90
diff --git a/Testing/Data/Baseline/BasicFilters_LaplacianSharpeningImageFilter_default.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_LaplacianSharpeningImageFilter_default.nrrd.md5
new file mode 100644
index 0000000..1337972
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_LaplacianSharpeningImageFilter_default.nrrd.md5
@@ -0,0 +1 @@
+1dd7f6cc56938b1b1f3b06a2a5e45dbb
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_LaplacianSharpeningImageFilter_default.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_LaplacianSharpeningImageFilter_default.nrrd.sha512
new file mode 100644
index 0000000..a448d24
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_LaplacianSharpeningImageFilter_default.nrrd.sha512
@@ -0,0 +1 @@
+8a9f04ae2bc51bec4e98c252c2a714f51658eef7a60f1b9861723cbe695f9566ee3731fc2fb1f3368b3bdcbca52a47ca1e5feb2eceedda6bbf384c5b2013a6e7
diff --git a/Testing/Data/Baseline/BasicFilters_LevelSetMotionRegistrationFilter_2d.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_LevelSetMotionRegistrationFilter_2d.nrrd.md5
new file mode 100644
index 0000000..b26b2a1
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_LevelSetMotionRegistrationFilter_2d.nrrd.md5
@@ -0,0 +1 @@
+c62ce79035715645be603a8bd7e19eb5
diff --git a/Testing/Data/Baseline/BasicFilters_LevelSetMotionRegistrationFilter_2d.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_LevelSetMotionRegistrationFilter_2d.nrrd.sha512
new file mode 100644
index 0000000..7249e9b
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_LevelSetMotionRegistrationFilter_2d.nrrd.sha512
@@ -0,0 +1 @@
+f1ca2777274b9cde56001cc2c1abef668d21c360ba56049ff9d13f50a0d5971c7b40efa8311f9b02c07cbf9ec6e22ab2aeba27157334430bf404f8a89324e638
diff --git a/Testing/Data/Baseline/BasicFilters_Log10ImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_Log10ImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..e81db97
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_Log10ImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+58a3778027be2dc4471258a6da94b7b2
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_Log10ImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_Log10ImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..df37550
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_Log10ImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+b48f90a9dde7f41a3d6a1c234b5de317b515c97f35545af7e0fe816f3bf073c7a711b5ba33687b3418349289e8f9f64e6cc76220e68063553daff5cadf23d411
diff --git a/Testing/Data/Baseline/BasicFilters_LogImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_LogImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..1f326bc
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_LogImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+282c1cc32168ee4c55e88c9006743277
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_LogImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_LogImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..ec514ac
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_LogImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+5a9739183a40268f05c902c6f211b87033a73ea177ac82e870273f34564fc8fd6596e00119fc5e241298ecc16e0da66b34c9debc51544f5c12788c135e5a4313
diff --git a/Testing/Data/Baseline/BasicFilters_LogImageFilter_vector.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_LogImageFilter_vector.nrrd.md5
new file mode 100644
index 0000000..b0ecf49
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_LogImageFilter_vector.nrrd.md5
@@ -0,0 +1 @@
+aef2e096cc43fb1e19147936b01722fa
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_LogImageFilter_vector.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_LogImageFilter_vector.nrrd.sha512
new file mode 100644
index 0000000..16afcbc
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_LogImageFilter_vector.nrrd.sha512
@@ -0,0 +1 @@
+80bacbd0e2e19bbd0de72978e29a370f76fe1906332dcf0ea24f1ad90721cf75d2a25b60fcfee2ae0217bc1b000a63aba780b6a22dc5c3bd3826b286ad3bd589
diff --git a/Testing/Data/Baseline/BasicFilters_MagnitudeAndPhaseToComplexImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_MagnitudeAndPhaseToComplexImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..7f158f7
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_MagnitudeAndPhaseToComplexImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+c5a88626e8461cf03934ea67f2532b87
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_MagnitudeAndPhaseToComplexImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_MagnitudeAndPhaseToComplexImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..bb0b90b
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_MagnitudeAndPhaseToComplexImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+05fcd2459ce205892602c5225f0f8ada2aa85ff401e5d147ce13a65a9851d488ec4cd06685980b007c83f472a8cfea74cd6908baafc5ccb57fe8bfbc1ca2f6a3
diff --git a/Testing/Data/Baseline/BasicFilters_MaskedFFTNormalizedCorrelationImageFilter_3D.1.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_MaskedFFTNormalizedCorrelationImageFilter_3D.1.nrrd.md5
new file mode 100644
index 0000000..ea83b1f
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_MaskedFFTNormalizedCorrelationImageFilter_3D.1.nrrd.md5
@@ -0,0 +1 @@
+b1d283e9edf5ff174f6e61a5cec6a1d8
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_MaskedFFTNormalizedCorrelationImageFilter_3D.1.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_MaskedFFTNormalizedCorrelationImageFilter_3D.1.nrrd.sha512
new file mode 100644
index 0000000..86a0e44
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_MaskedFFTNormalizedCorrelationImageFilter_3D.1.nrrd.sha512
@@ -0,0 +1 @@
+4a41c259b830167846e709dcc3fb854d186bd8b597484710ded1aa24ca12114a7a4dacda2e5b57fcf5fe2234dc6646459634f6258d197880a4e52f577ff793e5
diff --git a/Testing/Data/Baseline/BasicFilters_MaskedFFTNormalizedCorrelationImageFilter_3D.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_MaskedFFTNormalizedCorrelationImageFilter_3D.nrrd.md5
new file mode 100644
index 0000000..20c8b16
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_MaskedFFTNormalizedCorrelationImageFilter_3D.nrrd.md5
@@ -0,0 +1 @@
+083918d2115d313927180b088e8147d4
diff --git a/Testing/Data/Baseline/BasicFilters_MaskedFFTNormalizedCorrelationImageFilter_3D.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_MaskedFFTNormalizedCorrelationImageFilter_3D.nrrd.sha512
new file mode 100644
index 0000000..a5079d1
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_MaskedFFTNormalizedCorrelationImageFilter_3D.nrrd.sha512
@@ -0,0 +1 @@
+7fc22e9f6dfb2b4e746c8ce98db9f4cc8495cfbdc2aee1465ebe5074bd75134ccc8b9f448f7386f5eeb3dbfb5b386dec9232e846959e09fe5b6daf4601efbea0
diff --git a/Testing/Data/Baseline/BasicFilters_MaskedFFTNormalizedCorrelationImageFilter_defaults.1.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_MaskedFFTNormalizedCorrelationImageFilter_defaults.1.nrrd.md5
new file mode 100644
index 0000000..82202aa
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_MaskedFFTNormalizedCorrelationImageFilter_defaults.1.nrrd.md5
@@ -0,0 +1 @@
+2bae98b0565eaaa7f6ccc49d3490ddda
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_MaskedFFTNormalizedCorrelationImageFilter_defaults.1.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_MaskedFFTNormalizedCorrelationImageFilter_defaults.1.nrrd.sha512
new file mode 100644
index 0000000..7263e4e
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_MaskedFFTNormalizedCorrelationImageFilter_defaults.1.nrrd.sha512
@@ -0,0 +1 @@
+9d6f156b377353335a8691e2373ec399d1a07f5c021322f4e9eed9ef88420a278738f0c56fd88c209b489f464af06ee8c25a37f70c6bfafd7391e4f0fe0c275d
diff --git a/Testing/Data/Baseline/BasicFilters_MaskedFFTNormalizedCorrelationImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_MaskedFFTNormalizedCorrelationImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..797e070
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_MaskedFFTNormalizedCorrelationImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+2f9abc34f4ae45e2347f940df04b9ed6
diff --git a/Testing/Data/Baseline/BasicFilters_MaskedFFTNormalizedCorrelationImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_MaskedFFTNormalizedCorrelationImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..4daeef4
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_MaskedFFTNormalizedCorrelationImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+8574de37aff75e6df7cb4a85c6f2ad789338c0b0eb1212384f2ae35f6025d0d54ae2a1e462f896afb27e3d03869864c761c5ec0a5ec7406cf5d4eb56ab0e69a7
diff --git a/Testing/Data/Baseline/BasicFilters_MeanProjectionImageFilter_z_projection.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_MeanProjectionImageFilter_z_projection.nrrd.md5
new file mode 100644
index 0000000..d26fa3d
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_MeanProjectionImageFilter_z_projection.nrrd.md5
@@ -0,0 +1 @@
+c4abe94c3c280f5074fcfd9bcc402330
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_MeanProjectionImageFilter_z_projection.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_MeanProjectionImageFilter_z_projection.nrrd.sha512
new file mode 100644
index 0000000..ad5281e
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_MeanProjectionImageFilter_z_projection.nrrd.sha512
@@ -0,0 +1 @@
+f2333971eb05911b760b7b2feeb0c35ae4d03f5ac4e4ec5a7696285ad996404b7569ecc1c7b9d25c0adab062914cbb9b0fadfc04a8df76678ee09d8861ac1ff4
diff --git a/Testing/Data/Baseline/BasicFilters_MinMaxCurvatureFlowImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_MinMaxCurvatureFlowImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..51028ad
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_MinMaxCurvatureFlowImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+1eff97fdb9d327928b7176d17f63782d
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_MinMaxCurvatureFlowImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_MinMaxCurvatureFlowImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..c434e60
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_MinMaxCurvatureFlowImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+20a5bec4cd693458b8eea6a3c66a6ea9de1590b79cc74721d177ebbca6d7526b1d001f24c3e70fbfc3939258ed5b969deed42dd5040a9c6a3854b21e7ea81a6a
diff --git a/Testing/Data/Baseline/BasicFilters_MinMaxCurvatureFlowImageFilter_longer.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_MinMaxCurvatureFlowImageFilter_longer.nrrd.md5
new file mode 100644
index 0000000..71bc484
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_MinMaxCurvatureFlowImageFilter_longer.nrrd.md5
@@ -0,0 +1 @@
+bdd72f979216f08500f7356cc3c6b4a2
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_MinMaxCurvatureFlowImageFilter_longer.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_MinMaxCurvatureFlowImageFilter_longer.nrrd.sha512
new file mode 100644
index 0000000..fcfe92b
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_MinMaxCurvatureFlowImageFilter_longer.nrrd.sha512
@@ -0,0 +1 @@
+d446bc6b47dcda2ae0713d297068f9021132b7131faf3c561455accece1af29fc64442e27a594066fa1b4acb3964065f94a44261fe3e0138cf69b68255e843dd
diff --git a/Testing/Data/Baseline/BasicFilters_N4BiasFieldCorrectionImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_N4BiasFieldCorrectionImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..0e904b4
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_N4BiasFieldCorrectionImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+a64bdaa642e3d5bd40ef15a27c73d4f4
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_N4BiasFieldCorrectionImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_N4BiasFieldCorrectionImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..e4d89a7
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_N4BiasFieldCorrectionImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+750757ff72573cac08e0924e5f25239670ced83486ff19a99b34cde07892d0fb7bc3745414a633bfbb1a7cdd4d493cb12ea79aceebb135908bd749f3ce474ec7
diff --git a/Testing/Data/Baseline/BasicFilters_NeighborhoodConnectedImageFilter_2d.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_NeighborhoodConnectedImageFilter_2d.nrrd.md5
new file mode 100644
index 0000000..0e89289
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_NeighborhoodConnectedImageFilter_2d.nrrd.md5
@@ -0,0 +1 @@
+4fab0a2cf4b9c8805dee5076be1829f8
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_NeighborhoodConnectedImageFilter_2d.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_NeighborhoodConnectedImageFilter_2d.nrrd.sha512
new file mode 100644
index 0000000..037a24f
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_NeighborhoodConnectedImageFilter_2d.nrrd.sha512
@@ -0,0 +1 @@
+64660ebedc5bf016fce4911e6187d8c4c3975389b27c77fb22ceb30de9fe362bb29d63f5c308add717d691d28a6b7d83dd7c665f450a444cf3d19ecadf802d60
diff --git a/Testing/Data/Baseline/BasicFilters_NormalizeImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_NormalizeImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..1ffe9e9
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_NormalizeImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+44b4327d5dfb341dfda56391d1a9d261
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_NormalizeImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_NormalizeImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..9934dd9
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_NormalizeImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+3c9eb0336d287c2d1ead7922c4ce9b45a56769ebb9ed7c9d190c8409f9e72421abc07c13de83f8ef837424b7ddc0c4c71c3b44dd75341be27f6bf42f5eb09200
diff --git a/Testing/Data/Baseline/BasicFilters_NormalizeImageFilter_vector.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_NormalizeImageFilter_vector.nrrd.md5
new file mode 100644
index 0000000..29c5090
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_NormalizeImageFilter_vector.nrrd.md5
@@ -0,0 +1 @@
+bcae996a3cce0bf203c7a737297991df
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_NormalizeImageFilter_vector.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_NormalizeImageFilter_vector.nrrd.sha512
new file mode 100644
index 0000000..3b6f342
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_NormalizeImageFilter_vector.nrrd.sha512
@@ -0,0 +1 @@
+dcb8e0d7253f68c3cebe2960d2909736f869bc90d60f4eabe04202e73c5baa5c5e0e5b7177b2d713d2858696d6598d4d545a3e7a7f055e0003e48e38f69bb293
diff --git a/Testing/Data/Baseline/BasicFilters_NormalizeToConstantImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_NormalizeToConstantImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..1a3b11f
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_NormalizeToConstantImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+acad12ef7a397be141336e872a74aa72
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_NormalizeToConstantImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_NormalizeToConstantImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..dc4f8a2
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_NormalizeToConstantImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+c5f84585f46c33d516745606e05f4e916555bf6f61a12933b706d1227fc5d09a160c29dc7e7e7457e127891ba1fcc4ce2c9fbaa058bb26516daa701bd39569f3
diff --git a/Testing/Data/Baseline/BasicFilters_NormalizeToConstantImageFilter_vector.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_NormalizeToConstantImageFilter_vector.nrrd.md5
new file mode 100644
index 0000000..edd0dd0
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_NormalizeToConstantImageFilter_vector.nrrd.md5
@@ -0,0 +1 @@
+74e30f08e9cd6d28a9dcf26533b57aef
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_NormalizeToConstantImageFilter_vector.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_NormalizeToConstantImageFilter_vector.nrrd.sha512
new file mode 100644
index 0000000..ffa3519
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_NormalizeToConstantImageFilter_vector.nrrd.sha512
@@ -0,0 +1 @@
+68350408a8aa7b98a4dede4caeaa0d40e1a2f3fea5b90f5777c38ffd5ef0409c770e64570ecdf3d2a848b6872b9a35f63c80c65ecafd0a8acdc4088db166a6d3
diff --git a/Testing/Data/Baseline/BasicFilters_NormalizedCorrelationImageFilter_EvenKernel.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_NormalizedCorrelationImageFilter_EvenKernel.nrrd.md5
new file mode 100644
index 0000000..710f601
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_NormalizedCorrelationImageFilter_EvenKernel.nrrd.md5
@@ -0,0 +1 @@
+1fc06256e3ad4d5f0f45a7e152f7021a
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_NormalizedCorrelationImageFilter_EvenKernel.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_NormalizedCorrelationImageFilter_EvenKernel.nrrd.sha512
new file mode 100644
index 0000000..151c99b
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_NormalizedCorrelationImageFilter_EvenKernel.nrrd.sha512
@@ -0,0 +1 @@
+19f748a264ac498236e3a691301c40714cbfacb4f4fbf3afbd99c907d55978064524fbf27c16d832c28fd4a86582913ff240851580ea7a46560f1d597bfdfb37
diff --git a/Testing/Data/Baseline/BasicFilters_NormalizedCorrelationImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_NormalizedCorrelationImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..5d88272
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_NormalizedCorrelationImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+504b5fe9ee6273fa5e40d7f31ae50ff7
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_NormalizedCorrelationImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_NormalizedCorrelationImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..e2346c5
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_NormalizedCorrelationImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+726f907e2923f645de07327b08d303391319c3f65ca32e9aa408c8e0a245f32eedcb606ce52d9ec8d1e59383be0a3d858ef4ad02fe49d483b53340005783a1ea
diff --git a/Testing/Data/Baseline/BasicFilters_PatchBasedDenoisingImageFilter_default.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_PatchBasedDenoisingImageFilter_default.nrrd.md5
new file mode 100644
index 0000000..94fa625
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_PatchBasedDenoisingImageFilter_default.nrrd.md5
@@ -0,0 +1 @@
+1682d737596d036a1d8d62755bdc0554
diff --git a/Testing/Data/Baseline/BasicFilters_PatchBasedDenoisingImageFilter_default.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_PatchBasedDenoisingImageFilter_default.nrrd.sha512
new file mode 100644
index 0000000..cda12c1
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_PatchBasedDenoisingImageFilter_default.nrrd.sha512
@@ -0,0 +1 @@
+79501f469bc159d752431fe50078562b5dd0886dcf4d22a02a869d845eb9f5a18073e51fcdfd514bdfe9bb944cf9033a83bc3fc4ca91069eda655450250dc057
diff --git a/Testing/Data/Baseline/BasicFilters_PowImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_PowImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..b313977
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_PowImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+3bd4fa6ee34378b2318dd9bf55a2b8df
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_PowImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_PowImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..62a6d16
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_PowImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+506a7053747643dd5c8dd59973ba802316780d7d885832c554401fbf10c4abc34d929ef7b07c11e8f5826aa08f63f94a5429f74107de87fb0585095633cc791c
diff --git a/Testing/Data/Baseline/BasicFilters_PowToConstantImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_PowToConstantImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..9e3bb52
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_PowToConstantImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+35acd568f8ca9324e0e7346a77f255fc
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_PowToConstantImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_PowToConstantImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..3e08515
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_PowToConstantImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+82556e982bf32fe804c6ee31d1230d4f42a3c483abbc4afaf24f10cce2d017fd6b744c8b4884e8c16276beb02e41fcebe5d95112f5116610fdc550458192f572
diff --git a/Testing/Data/Baseline/BasicFilters_PowToConstantImageFilter_setting_constant.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_PowToConstantImageFilter_setting_constant.nrrd.md5
new file mode 100644
index 0000000..ef9e78d
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_PowToConstantImageFilter_setting_constant.nrrd.md5
@@ -0,0 +1 @@
+c2e73eb99072452592ad9ab566d6c5d5
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_PowToConstantImageFilter_setting_constant.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_PowToConstantImageFilter_setting_constant.nrrd.sha512
new file mode 100644
index 0000000..2973b87
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_PowToConstantImageFilter_setting_constant.nrrd.sha512
@@ -0,0 +1 @@
+73c5ad939d67ba86c01dbb29bf4fb34df69af156216679aea7b3c459b6319f4f8e60c3bbc308d953fcbd3f39573b588115af826efdd08506cc93a18da214bd3f
diff --git a/Testing/Data/Baseline/BasicFilters_ProjectedLandweberDeconvolutionImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ProjectedLandweberDeconvolutionImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..c57dc7b
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ProjectedLandweberDeconvolutionImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+9d7295e53861e4fa19b5abf9cda5df5e
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_ProjectedLandweberDeconvolutionImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_ProjectedLandweberDeconvolutionImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..aadb6b0
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ProjectedLandweberDeconvolutionImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+7d91d1410f26961375fcb9297cfda4c6ee3f73a6323c37684c0d3bff38798ddb96961be0fa6fca1b1b740a5bf928a8438a6f2326b1cabf665f57f8c753889b5d
diff --git a/Testing/Data/Baseline/BasicFilters_RealToHalfHermitianForwardFFTImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_RealToHalfHermitianForwardFFTImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..b6f41dd
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_RealToHalfHermitianForwardFFTImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+00da43039a19ec8777cd493efccb16d9
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_RealToHalfHermitianForwardFFTImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_RealToHalfHermitianForwardFFTImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..4b7aed8
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_RealToHalfHermitianForwardFFTImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+6c3a10eed0c346a72d5426716b07a9b8a4ee15e6d7a257704ce1c2b2f185ece8ea8174bcec54b18a4e46877642ba49ee9065433200809936eb58beeb76556f0e
diff --git a/Testing/Data/Baseline/BasicFilters_RecursiveGaussianImageFilter_default.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_RecursiveGaussianImageFilter_default.nrrd.md5
new file mode 100644
index 0000000..37403c7
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_RecursiveGaussianImageFilter_default.nrrd.md5
@@ -0,0 +1 @@
+19e2eefeaf79b3a1eeafed0f8e53abd1
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_RecursiveGaussianImageFilter_default.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_RecursiveGaussianImageFilter_default.nrrd.sha512
new file mode 100644
index 0000000..38c7297
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_RecursiveGaussianImageFilter_default.nrrd.sha512
@@ -0,0 +1 @@
+f6e193060c443ee3bcc1716bc12ccbbaed817afe8eaa67f7ba0ec0080dcf10c11038ba7b407b4dfd3c5672c3242d4f4733e62962c41f7026aad499c3a14d44a3
diff --git a/Testing/Data/Baseline/BasicFilters_RecursiveGaussianImageFilter_rgb_image.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_RecursiveGaussianImageFilter_rgb_image.nrrd.md5
new file mode 100644
index 0000000..9b7f607
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_RecursiveGaussianImageFilter_rgb_image.nrrd.md5
@@ -0,0 +1 @@
+b5c69b60a6feccda5b65773ae3ddee58
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_RecursiveGaussianImageFilter_rgb_image.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_RecursiveGaussianImageFilter_rgb_image.nrrd.sha512
new file mode 100644
index 0000000..7b1f5a3
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_RecursiveGaussianImageFilter_rgb_image.nrrd.sha512
@@ -0,0 +1 @@
+51b8374ce8598b41c8aacdae382fac197930fda4c48a2a8a0f3bf43dd511ee62af9cfc134156bf91621d8b3c26c747c8d7d6ed7eb8a3733c80fdd1bb7622d785
diff --git a/Testing/Data/Baseline/BasicFilters_ResampleImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ResampleImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..c7e460b
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ResampleImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+c72fda16dbac9167962b871a539def78
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_ResampleImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_ResampleImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..400f38d
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ResampleImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+fb7e406b17ac8a8e211c2dbc55426db26d93ed35580940a261e6f093cf8e78909b249ce518e27a5fbc23dfe624fd1aafa262a7696026618e58e4c5cbb119d991
diff --git a/Testing/Data/Baseline/BasicFilters_ResampleImageFilter_vector.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ResampleImageFilter_vector.nrrd.md5
new file mode 100644
index 0000000..a77e2a3
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ResampleImageFilter_vector.nrrd.md5
@@ -0,0 +1 @@
+a7dc892acf626377065878b38b99ca54
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_ResampleImageFilter_vector.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_ResampleImageFilter_vector.nrrd.sha512
new file mode 100644
index 0000000..dc540a8
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ResampleImageFilter_vector.nrrd.sha512
@@ -0,0 +1 @@
+37615c0b3f261dec7e1f56862e466fea43bda06e76ad5c5d87caeee653ff4909a59cc6ee885c0776bc65ef581765c96e377b3ce4f5df252d64d6c86b74bc7d0a
diff --git a/Testing/Data/Baseline/BasicFilters_ResampleImageFilter_wCastwInterpolator.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ResampleImageFilter_wCastwInterpolator.nrrd.md5
new file mode 100644
index 0000000..f7e7db2
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ResampleImageFilter_wCastwInterpolator.nrrd.md5
@@ -0,0 +1 @@
+46c83ad189ea2e0800e7df0f1d4c0025
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_ResampleImageFilter_wCastwInterpolator.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_ResampleImageFilter_wCastwInterpolator.nrrd.sha512
new file mode 100644
index 0000000..b11705d
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ResampleImageFilter_wCastwInterpolator.nrrd.sha512
@@ -0,0 +1 @@
+db82ce5f5f8fadad2dc01156245393a35a4c9edf673d7e53d0a7f6737391db5a9da7f300cec032351c173a3b31a4a2097939062220d081481d1e4f2da678b6d1
diff --git a/Testing/Data/Baseline/BasicFilters_RescaleIntensityImageFilter_3d.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_RescaleIntensityImageFilter_3d.nrrd.md5
new file mode 100644
index 0000000..c646af1
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_RescaleIntensityImageFilter_3d.nrrd.md5
@@ -0,0 +1 @@
+dc79562f168bdda5fd3743c6adf997e9
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_RescaleIntensityImageFilter_3d.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_RescaleIntensityImageFilter_3d.nrrd.sha512
new file mode 100644
index 0000000..ca16361
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_RescaleIntensityImageFilter_3d.nrrd.sha512
@@ -0,0 +1 @@
+71bc2a0ea3fdf01f4a2c4cf65e9f89bf70582d01b1b2ac05e115a685054a33276ac9d1b7ae06cbdee3a3574621091c07395b2f9f4ef39a29687e102de52e266a
diff --git a/Testing/Data/Baseline/BasicFilters_RichardsonLucyDeconvolutionImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_RichardsonLucyDeconvolutionImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..5ea59aa
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_RichardsonLucyDeconvolutionImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+9dd64abe00b86a82b88bf46a9d3f3e9c
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_RichardsonLucyDeconvolutionImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_RichardsonLucyDeconvolutionImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..753715e
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_RichardsonLucyDeconvolutionImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+06f07d76ef5e651e7efed2bb067476260f81513cd6190ed9ff90cc65285b47a98337a2abf874dd76e90f68404fb202e630bd69a40dc6e88cdabfa731e955c64b
diff --git a/Testing/Data/Baseline/BasicFilters_STAPLEImageFilter_basic.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_STAPLEImageFilter_basic.nrrd.md5
new file mode 100644
index 0000000..79b5830
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_STAPLEImageFilter_basic.nrrd.md5
@@ -0,0 +1 @@
+3dc1d9ebe8e603598bf2f55b996e7f3e
diff --git a/Testing/Data/Baseline/BasicFilters_STAPLEImageFilter_basic.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_STAPLEImageFilter_basic.nrrd.sha512
new file mode 100644
index 0000000..80c8e45
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_STAPLEImageFilter_basic.nrrd.sha512
@@ -0,0 +1 @@
+7f841e94a05dd51416ce86b51c45c10d7cd46ffa3fc849ab7590f339db6ed685380af8b83ea09d4a5e20808dc748108cdeb56e3390bf4b4ee85acdc9ca3648bd
diff --git a/Testing/Data/Baseline/BasicFilters_SaltAndPepperNoiseImageFilter_2d.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_SaltAndPepperNoiseImageFilter_2d.nrrd.md5
new file mode 100644
index 0000000..353cd24
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SaltAndPepperNoiseImageFilter_2d.nrrd.md5
@@ -0,0 +1 @@
+a69e5de3e1082e4ab8a02adf3b4e41f9
diff --git a/Testing/Data/Baseline/BasicFilters_SaltAndPepperNoiseImageFilter_2d.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_SaltAndPepperNoiseImageFilter_2d.nrrd.sha512
new file mode 100644
index 0000000..97736a5
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SaltAndPepperNoiseImageFilter_2d.nrrd.sha512
@@ -0,0 +1 @@
+d1bfcefb3e66dbac4e84a791e2d459864d2ed9a6439417a935e626bd3f8bf82daa351868f5e39e005023ca3f7cbed9c09362263ec39958f14af0adbd663b826a
diff --git a/Testing/Data/Baseline/BasicFilters_SaltAndPepperNoiseImageFilter_3d.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_SaltAndPepperNoiseImageFilter_3d.nrrd.md5
new file mode 100644
index 0000000..79e20eb
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SaltAndPepperNoiseImageFilter_3d.nrrd.md5
@@ -0,0 +1 @@
+2c7d2a654961d2b9d1d997d1f20e2ed2
diff --git a/Testing/Data/Baseline/BasicFilters_SaltAndPepperNoiseImageFilter_3d.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_SaltAndPepperNoiseImageFilter_3d.nrrd.sha512
new file mode 100644
index 0000000..e185aa7
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SaltAndPepperNoiseImageFilter_3d.nrrd.sha512
@@ -0,0 +1 @@
+9b59323317a5bf93c0e1d209fd50f0ba496335de31fe5115f508fffe92417840cc40c6226d07b6311a92474c7a476da9600cdacfacf4c1812a7d946265aa048e
diff --git a/Testing/Data/Baseline/BasicFilters_SaltAndPepperNoiseImageFilter_rgb.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_SaltAndPepperNoiseImageFilter_rgb.nrrd.md5
new file mode 100644
index 0000000..6dc94c8
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SaltAndPepperNoiseImageFilter_rgb.nrrd.md5
@@ -0,0 +1 @@
+8997bfcb80a429e089709b291e5b4ba2
diff --git a/Testing/Data/Baseline/BasicFilters_SaltAndPepperNoiseImageFilter_rgb.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_SaltAndPepperNoiseImageFilter_rgb.nrrd.sha512
new file mode 100644
index 0000000..00db5f2
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SaltAndPepperNoiseImageFilter_rgb.nrrd.sha512
@@ -0,0 +1 @@
+8f7820db5d4f464d17560b032e271e39c1d61168ee6529f59454b4488b2d94143ff80a60c0037ab1652a35b92dfd441a16ebfe0e367ae7c9c743493d2c36d363
diff --git a/Testing/Data/Baseline/BasicFilters_ScalarChanAndVeseDenseLevelSetImageFilter_cthead.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ScalarChanAndVeseDenseLevelSetImageFilter_cthead.nrrd.md5
new file mode 100644
index 0000000..fcef116
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ScalarChanAndVeseDenseLevelSetImageFilter_cthead.nrrd.md5
@@ -0,0 +1 @@
+0e8d3a203f0c1fc585b15717d5771cad
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_ScalarChanAndVeseDenseLevelSetImageFilter_cthead.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_ScalarChanAndVeseDenseLevelSetImageFilter_cthead.nrrd.sha512
new file mode 100644
index 0000000..3e72957
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ScalarChanAndVeseDenseLevelSetImageFilter_cthead.nrrd.sha512
@@ -0,0 +1 @@
+fcc3c9077c53bf98ca2bf2fd79326156aaf61e23c28255f6f6d7357ec0cdee91775d34235cec174f8b9d84946ff7e84b52b790464e5f9aa217ae46e35e25ee2a
diff --git a/Testing/Data/Baseline/BasicFilters_ShapeDetectionLevelSetImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ShapeDetectionLevelSetImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..ccad7da
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ShapeDetectionLevelSetImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+05336a7e84d56f110741f46b38163a8c
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_ShapeDetectionLevelSetImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_ShapeDetectionLevelSetImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..c58311a
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ShapeDetectionLevelSetImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+536001f1cea130b16ae671ed4a0919a51d7c575c531c53e66ee259d98416015521a5cbea01f17d65db1b1c2e3a905214461e8afb7f8b1ea500c1e3eab2a25429
diff --git a/Testing/Data/Baseline/BasicFilters_ShotNoiseImageFilter_2d.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ShotNoiseImageFilter_2d.nrrd.md5
new file mode 100644
index 0000000..353cd24
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ShotNoiseImageFilter_2d.nrrd.md5
@@ -0,0 +1 @@
+a69e5de3e1082e4ab8a02adf3b4e41f9
diff --git a/Testing/Data/Baseline/BasicFilters_ShotNoiseImageFilter_2d.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_ShotNoiseImageFilter_2d.nrrd.sha512
new file mode 100644
index 0000000..97736a5
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ShotNoiseImageFilter_2d.nrrd.sha512
@@ -0,0 +1 @@
+d1bfcefb3e66dbac4e84a791e2d459864d2ed9a6439417a935e626bd3f8bf82daa351868f5e39e005023ca3f7cbed9c09362263ec39958f14af0adbd663b826a
diff --git a/Testing/Data/Baseline/BasicFilters_ShotNoiseImageFilter_3d.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ShotNoiseImageFilter_3d.nrrd.md5
new file mode 100644
index 0000000..79e20eb
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ShotNoiseImageFilter_3d.nrrd.md5
@@ -0,0 +1 @@
+2c7d2a654961d2b9d1d997d1f20e2ed2
diff --git a/Testing/Data/Baseline/BasicFilters_ShotNoiseImageFilter_3d.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_ShotNoiseImageFilter_3d.nrrd.sha512
new file mode 100644
index 0000000..e185aa7
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ShotNoiseImageFilter_3d.nrrd.sha512
@@ -0,0 +1 @@
+9b59323317a5bf93c0e1d209fd50f0ba496335de31fe5115f508fffe92417840cc40c6226d07b6311a92474c7a476da9600cdacfacf4c1812a7d946265aa048e
diff --git a/Testing/Data/Baseline/BasicFilters_ShotNoiseImageFilter_rgb.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ShotNoiseImageFilter_rgb.nrrd.md5
new file mode 100644
index 0000000..6dc94c8
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ShotNoiseImageFilter_rgb.nrrd.md5
@@ -0,0 +1 @@
+8997bfcb80a429e089709b291e5b4ba2
diff --git a/Testing/Data/Baseline/BasicFilters_ShotNoiseImageFilter_rgb.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_ShotNoiseImageFilter_rgb.nrrd.sha512
new file mode 100644
index 0000000..00db5f2
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ShotNoiseImageFilter_rgb.nrrd.sha512
@@ -0,0 +1 @@
+8f7820db5d4f464d17560b032e271e39c1d61168ee6529f59454b4488b2d94143ff80a60c0037ab1652a35b92dfd441a16ebfe0e367ae7c9c743493d2c36d363
diff --git a/Testing/Data/Baseline/BasicFilters_SignedDanielssonDistanceMapImageFilter_default.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_SignedDanielssonDistanceMapImageFilter_default.nrrd.md5
new file mode 100644
index 0000000..be4c27a
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SignedDanielssonDistanceMapImageFilter_default.nrrd.md5
@@ -0,0 +1 @@
+970cd3c90e677e4422923cef5cdf61b3
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_SignedDanielssonDistanceMapImageFilter_default.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_SignedDanielssonDistanceMapImageFilter_default.nrrd.sha512
new file mode 100644
index 0000000..7c6c60d
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SignedDanielssonDistanceMapImageFilter_default.nrrd.sha512
@@ -0,0 +1 @@
+0209697082bd8a8d3c951b7ae6b85990b7bffcd0b5f5b9d5a0ae29478f738d017eded220d679a25e096fb292a5a171de3913466d2b3f42d52d5ab73261b14aac
diff --git a/Testing/Data/Baseline/BasicFilters_SignedMaurerDistanceMapImageFilter_default.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_SignedMaurerDistanceMapImageFilter_default.nrrd.md5
new file mode 100644
index 0000000..88b2328
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SignedMaurerDistanceMapImageFilter_default.nrrd.md5
@@ -0,0 +1 @@
+239d33db0b6f03fdceb9b4807460a81d
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_SignedMaurerDistanceMapImageFilter_default.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_SignedMaurerDistanceMapImageFilter_default.nrrd.sha512
new file mode 100644
index 0000000..2bdca93
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SignedMaurerDistanceMapImageFilter_default.nrrd.sha512
@@ -0,0 +1 @@
+993306e900d0c2cc5aef3e81c10965e8c80a30237dd15f1cba440f494c58578063f90e2ccc238f114d699ee5b52ed2d580d70edcd0ce281b60b0a42ba9e5b020
diff --git a/Testing/Data/Baseline/BasicFilters_SinImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_SinImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..28df44e
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SinImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+3cade3f7b90d71d1020ee024a01ce15f
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_SinImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_SinImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..8082838
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SinImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+bdd6d4ef4edfa94d2b7fba228f74da94bb1caf0554fe9383014f11561389853e7256324f81522422330073eb4e4ca731b78d1b2ed2248c27ff747bdb580014c4
diff --git a/Testing/Data/Baseline/BasicFilters_SinImageFilter_vector.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_SinImageFilter_vector.nrrd.md5
new file mode 100644
index 0000000..2232e29
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SinImageFilter_vector.nrrd.md5
@@ -0,0 +1 @@
+a4a7aac9f929f9e19f8b78c7f0cc82d7
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_SinImageFilter_vector.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_SinImageFilter_vector.nrrd.sha512
new file mode 100644
index 0000000..78c8b97
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SinImageFilter_vector.nrrd.sha512
@@ -0,0 +1 @@
+e4ec9e3f6df910499fbf339e8e99d1357bdcfbf3180cbb19a89121d75f0f20bb7f552a5922a3622b6ad56726945f75e9b77f1446c3b7aa47642bc2d75ccdb9b8
diff --git a/Testing/Data/Baseline/BasicFilters_SmoothingRecursiveGaussianImageFilter_default.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_SmoothingRecursiveGaussianImageFilter_default.nrrd.md5
new file mode 100644
index 0000000..4ae4606
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SmoothingRecursiveGaussianImageFilter_default.nrrd.md5
@@ -0,0 +1 @@
+2a0f8ee9d1d0f30855771c49d868d8d4
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_SmoothingRecursiveGaussianImageFilter_default.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_SmoothingRecursiveGaussianImageFilter_default.nrrd.sha512
new file mode 100644
index 0000000..39ebadc
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SmoothingRecursiveGaussianImageFilter_default.nrrd.sha512
@@ -0,0 +1 @@
+56d6bcf55548e6d1ef35d8b0633ffaf9c359eebac5183fdf0bdc18a7f5fad4f57780aa9699f88ac37ae4e39936f20475a12f623a3ef967595bd7d504c79ab6be
diff --git a/Testing/Data/Baseline/BasicFilters_SmoothingRecursiveGaussianImageFilter_rgb_image.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_SmoothingRecursiveGaussianImageFilter_rgb_image.nrrd.md5
new file mode 100644
index 0000000..f816150
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SmoothingRecursiveGaussianImageFilter_rgb_image.nrrd.md5
@@ -0,0 +1 @@
+9a10eeacd4f926ea94bbe00c45448136
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_SmoothingRecursiveGaussianImageFilter_rgb_image.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_SmoothingRecursiveGaussianImageFilter_rgb_image.nrrd.sha512
new file mode 100644
index 0000000..8dccc26
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SmoothingRecursiveGaussianImageFilter_rgb_image.nrrd.sha512
@@ -0,0 +1 @@
+08c3f96ec33fb256ff26b8ce63938214c019f2c9696bcf3deb40f43c7321c9a7e7805d449aef482fc0f55b161ad7ed968de858c76c22554c408ca440338dd768
diff --git a/Testing/Data/Baseline/BasicFilters_SobelEdgeDetectionImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_SobelEdgeDetectionImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..0ee4c4b
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SobelEdgeDetectionImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+1517e9756dfcb07633b00b575edc3766
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_SobelEdgeDetectionImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_SobelEdgeDetectionImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..5637175
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SobelEdgeDetectionImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+3a93bb866d0da14c1cfbab94920b86087fa5bbd3665fc5bce8a5f7b42ce3d2d2f9ed99310e3f473096f75b827f09f8f9234de25a0468351bdf2f5c0792d8de36
diff --git a/Testing/Data/Baseline/BasicFilters_SpeckleNoiseImageFilter_2d.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_SpeckleNoiseImageFilter_2d.nrrd.md5
new file mode 100644
index 0000000..353cd24
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SpeckleNoiseImageFilter_2d.nrrd.md5
@@ -0,0 +1 @@
+a69e5de3e1082e4ab8a02adf3b4e41f9
diff --git a/Testing/Data/Baseline/BasicFilters_SpeckleNoiseImageFilter_2d.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_SpeckleNoiseImageFilter_2d.nrrd.sha512
new file mode 100644
index 0000000..97736a5
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SpeckleNoiseImageFilter_2d.nrrd.sha512
@@ -0,0 +1 @@
+d1bfcefb3e66dbac4e84a791e2d459864d2ed9a6439417a935e626bd3f8bf82daa351868f5e39e005023ca3f7cbed9c09362263ec39958f14af0adbd663b826a
diff --git a/Testing/Data/Baseline/BasicFilters_SpeckleNoiseImageFilter_3d.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_SpeckleNoiseImageFilter_3d.nrrd.md5
new file mode 100644
index 0000000..79e20eb
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SpeckleNoiseImageFilter_3d.nrrd.md5
@@ -0,0 +1 @@
+2c7d2a654961d2b9d1d997d1f20e2ed2
diff --git a/Testing/Data/Baseline/BasicFilters_SpeckleNoiseImageFilter_3d.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_SpeckleNoiseImageFilter_3d.nrrd.sha512
new file mode 100644
index 0000000..e185aa7
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SpeckleNoiseImageFilter_3d.nrrd.sha512
@@ -0,0 +1 @@
+9b59323317a5bf93c0e1d209fd50f0ba496335de31fe5115f508fffe92417840cc40c6226d07b6311a92474c7a476da9600cdacfacf4c1812a7d946265aa048e
diff --git a/Testing/Data/Baseline/BasicFilters_SpeckleNoiseImageFilter_rgb.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_SpeckleNoiseImageFilter_rgb.nrrd.md5
new file mode 100644
index 0000000..6dc94c8
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SpeckleNoiseImageFilter_rgb.nrrd.md5
@@ -0,0 +1 @@
+8997bfcb80a429e089709b291e5b4ba2
diff --git a/Testing/Data/Baseline/BasicFilters_SpeckleNoiseImageFilter_rgb.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_SpeckleNoiseImageFilter_rgb.nrrd.sha512
new file mode 100644
index 0000000..00db5f2
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SpeckleNoiseImageFilter_rgb.nrrd.sha512
@@ -0,0 +1 @@
+8f7820db5d4f464d17560b032e271e39c1d61168ee6529f59454b4488b2d94143ff80a60c0037ab1652a35b92dfd441a16ebfe0e367ae7c9c743493d2c36d363
diff --git a/Testing/Data/Baseline/BasicFilters_SqrtImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_SqrtImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..7369180
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SqrtImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+fb9b000917392dc835a7c45f686f7a23
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_SqrtImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_SqrtImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..68cd731
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SqrtImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+ccce239f31d10fa05e9b109fc2719e6963834857555e1dcceea0659038ae3a51cd914b8fc53fe9a630e56783e065ca70bbe521313c05711b17360cc7d53ca5d6
diff --git a/Testing/Data/Baseline/BasicFilters_SqrtImageFilter_vector.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_SqrtImageFilter_vector.nrrd.md5
new file mode 100644
index 0000000..109b4bf
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SqrtImageFilter_vector.nrrd.md5
@@ -0,0 +1 @@
+81865a31269864cb5aad15b42de57549
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_SqrtImageFilter_vector.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_SqrtImageFilter_vector.nrrd.sha512
new file mode 100644
index 0000000..00b62e5
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SqrtImageFilter_vector.nrrd.sha512
@@ -0,0 +1 @@
+04439607b41d57607372b8b2a9924f0206e5425632e0046f9c96159bf7b49e79d98f52d0440848b2c1845493428425704a21871bf0b72bbc6c188d1e0d64be98
diff --git a/Testing/Data/Baseline/BasicFilters_SquaredDifferenceImageFilter_2DStapleImages.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_SquaredDifferenceImageFilter_2DStapleImages.nrrd.md5
new file mode 100644
index 0000000..eb6d90e
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SquaredDifferenceImageFilter_2DStapleImages.nrrd.md5
@@ -0,0 +1 @@
+31995770b31eaeb212ebf59695e5f250
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_SquaredDifferenceImageFilter_2DStapleImages.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_SquaredDifferenceImageFilter_2DStapleImages.nrrd.sha512
new file mode 100644
index 0000000..4e5b057
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SquaredDifferenceImageFilter_2DStapleImages.nrrd.sha512
@@ -0,0 +1 @@
+e134b1ab6fa2d10d6bd404d8b80690181f4fba62e49fa0779171b97354629c2aa59859f4c0a8fa67ceb97098f95528be1c5d212dcb1c285a5d63827a0217c44e
diff --git a/Testing/Data/Baseline/BasicFilters_SquaredDifferenceImageFilter_Ramp_Short1.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_SquaredDifferenceImageFilter_Ramp_Short1.nrrd.md5
new file mode 100644
index 0000000..48bf049
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SquaredDifferenceImageFilter_Ramp_Short1.nrrd.md5
@@ -0,0 +1 @@
+2b8f66caa1b6dd0b945e579357c0517f
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_SquaredDifferenceImageFilter_Ramp_Short1.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_SquaredDifferenceImageFilter_Ramp_Short1.nrrd.sha512
new file mode 100644
index 0000000..350775c
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SquaredDifferenceImageFilter_Ramp_Short1.nrrd.sha512
@@ -0,0 +1 @@
+8e6b0591c47975780e73853c373018fd68d441194aee5101c87cc807c4748a43304daf5a1f3c0fd19bce11020c80ce16f7ff798b44c0c4236e6a80d8b7c34537
diff --git a/Testing/Data/Baseline/BasicFilters_SquaredDifferenceImageFilter_Ramp_Short2.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_SquaredDifferenceImageFilter_Ramp_Short2.nrrd.md5
new file mode 100644
index 0000000..51689e6
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SquaredDifferenceImageFilter_Ramp_Short2.nrrd.md5
@@ -0,0 +1 @@
+2386d6ea4c8958e0b4f6b82d28a4fc00
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_SquaredDifferenceImageFilter_Ramp_Short2.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_SquaredDifferenceImageFilter_Ramp_Short2.nrrd.sha512
new file mode 100644
index 0000000..75283f7
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SquaredDifferenceImageFilter_Ramp_Short2.nrrd.sha512
@@ -0,0 +1 @@
+d5a9fb11b67041b77b8d63aa59a2f9d2590d4d9af344f597e2bc1dffd7c20820aaac6a1dc4ac58d07dffdd6edae3af63a513e59f4f38a83adde828bec1f9a520
diff --git a/Testing/Data/Baseline/BasicFilters_StandardDeviationProjectionImageFilter_z_projection.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_StandardDeviationProjectionImageFilter_z_projection.nrrd.md5
new file mode 100644
index 0000000..8ff0f4e
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_StandardDeviationProjectionImageFilter_z_projection.nrrd.md5
@@ -0,0 +1 @@
+fc0ec7b3808f1c906b9c3450852fb68e
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_StandardDeviationProjectionImageFilter_z_projection.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_StandardDeviationProjectionImageFilter_z_projection.nrrd.sha512
new file mode 100644
index 0000000..329cb55
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_StandardDeviationProjectionImageFilter_z_projection.nrrd.sha512
@@ -0,0 +1 @@
+246eb75ed23f5fba392783ac63440dd5543ff48ed1fe90b36cee59cad97c3a58786c48aabc3bd84184e7641c8b5eb9d6b0cbce1b79f4283bce0e6bd84170870f
diff --git a/Testing/Data/Baseline/BasicFilters_SumProjectionImageFilter_z_projection.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_SumProjectionImageFilter_z_projection.nrrd.md5
new file mode 100644
index 0000000..509d7ed
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SumProjectionImageFilter_z_projection.nrrd.md5
@@ -0,0 +1 @@
+4b3eeb33cfe1f4e2a8e3df5cbe185c7e
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_SumProjectionImageFilter_z_projection.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_SumProjectionImageFilter_z_projection.nrrd.sha512
new file mode 100644
index 0000000..b772a65
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SumProjectionImageFilter_z_projection.nrrd.sha512
@@ -0,0 +1 @@
+c131a1f372ab5f523ef96cd92f074c141a1adb535f18fc806c9b1436904769d9db760fafacdd9b6b09ee5c71e5f3ae0d26902cd3d0ad88573a0caa3592c8ffc0
diff --git a/Testing/Data/Baseline/BasicFilters_SymmetricForcesDemonsRegistrationFilter_2d.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_SymmetricForcesDemonsRegistrationFilter_2d.nrrd.md5
new file mode 100644
index 0000000..7b78efa
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SymmetricForcesDemonsRegistrationFilter_2d.nrrd.md5
@@ -0,0 +1 @@
+0018a552a6a1f951943a6e7bbce24d04
diff --git a/Testing/Data/Baseline/BasicFilters_SymmetricForcesDemonsRegistrationFilter_2d.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_SymmetricForcesDemonsRegistrationFilter_2d.nrrd.sha512
new file mode 100644
index 0000000..e79e74c
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SymmetricForcesDemonsRegistrationFilter_2d.nrrd.sha512
@@ -0,0 +1 @@
+bcc7758f133ea6d62e864fec13b0de70d8b3ddb19b8c37e2119c6d7d105da6fb038ff497e2e6e1cff9464acdc8c2d994f6c2d23e2eb0dff3ac713e3adcbd89ab
diff --git a/Testing/Data/Baseline/BasicFilters_SymmetricForcesDemonsRegistrationFilter_2d_with_initial.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_SymmetricForcesDemonsRegistrationFilter_2d_with_initial.nrrd.md5
new file mode 100644
index 0000000..cef5db3
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SymmetricForcesDemonsRegistrationFilter_2d_with_initial.nrrd.md5
@@ -0,0 +1 @@
+85f1400b374d38312d03dc8acb874b7c
diff --git a/Testing/Data/Baseline/BasicFilters_SymmetricForcesDemonsRegistrationFilter_2d_with_initial.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_SymmetricForcesDemonsRegistrationFilter_2d_with_initial.nrrd.sha512
new file mode 100644
index 0000000..8687b95
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_SymmetricForcesDemonsRegistrationFilter_2d_with_initial.nrrd.sha512
@@ -0,0 +1 @@
+883530d3b09d0ed7075ecc7dbf7b94ff47f87081c3ab57c0cf5f2945acabaf7ffe300ec57bccef73ca8516aa3fda64e0330be592ba3193d5951403303bcdaaba
diff --git a/Testing/Data/Baseline/BasicFilters_TanImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_TanImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..90bf27a
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_TanImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+bfa527fe87f6938731546a2323955ba2
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_TanImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_TanImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..f2b6325
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_TanImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+faac69a007f6892a1b150ab2eab39cd617b27dd7c336871255536840db9a0fd79eedb7a9b1443f944326d15c9b403931d3ccdfebe51cfdfe589ac6c0114f1b72
diff --git a/Testing/Data/Baseline/BasicFilters_TanImageFilter_vector.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_TanImageFilter_vector.nrrd.md5
new file mode 100644
index 0000000..285e9d1
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_TanImageFilter_vector.nrrd.md5
@@ -0,0 +1 @@
+c24561fcdefaa7af0e650f55994fb96d
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_TanImageFilter_vector.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_TanImageFilter_vector.nrrd.sha512
new file mode 100644
index 0000000..0ed9dbd
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_TanImageFilter_vector.nrrd.sha512
@@ -0,0 +1 @@
+1359723d7051161a976f0d3d08e47a8837936fef1dff2ca14d7f269f434280323a508db4ee05e09f21cde7dc226389aeb603905f0be3cd29f3a18daf6386be95
diff --git a/Testing/Data/Baseline/BasicFilters_TernaryMagnitudeImageFilter_3d.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_TernaryMagnitudeImageFilter_3d.nrrd.md5
new file mode 100644
index 0000000..f05358c
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_TernaryMagnitudeImageFilter_3d.nrrd.md5
@@ -0,0 +1 @@
+404c49e9e4caec16efea719d8d061b02
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_TernaryMagnitudeImageFilter_3d.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_TernaryMagnitudeImageFilter_3d.nrrd.sha512
new file mode 100644
index 0000000..5caaea7
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_TernaryMagnitudeImageFilter_3d.nrrd.sha512
@@ -0,0 +1 @@
+62b1058112fcda5103070aadaa9dc4b1c23a5a28691212ab282bf1b1175e19851facf0bffd0b985d86cffbf4c7672625ab8610e1bcff7406bf6f18551706d801
diff --git a/Testing/Data/Baseline/BasicFilters_TernaryMagnitudeSquaredImageFilter_3d.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_TernaryMagnitudeSquaredImageFilter_3d.nrrd.md5
new file mode 100644
index 0000000..17eb40a
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_TernaryMagnitudeSquaredImageFilter_3d.nrrd.md5
@@ -0,0 +1 @@
+6e882edcffbc57024eedd35334c0142f
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_TernaryMagnitudeSquaredImageFilter_3d.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_TernaryMagnitudeSquaredImageFilter_3d.nrrd.sha512
new file mode 100644
index 0000000..80ef731
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_TernaryMagnitudeSquaredImageFilter_3d.nrrd.sha512
@@ -0,0 +1 @@
+efe47d6d8cefe4f030150082dc843c63a1deaee50485ee67774215b77f0228790d7b1bfc5fc27c324070642b01e2f3977e813e8e9fa75b0b05c245eca7b4225d
diff --git a/Testing/Data/Baseline/BasicFilters_ThresholdSegmentationLevelSetImageFilter_cthead.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ThresholdSegmentationLevelSetImageFilter_cthead.nrrd.md5
new file mode 100644
index 0000000..e0d60cf
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ThresholdSegmentationLevelSetImageFilter_cthead.nrrd.md5
@@ -0,0 +1 @@
+c480d7f2e7659c12e42895af1593084d
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_ThresholdSegmentationLevelSetImageFilter_cthead.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_ThresholdSegmentationLevelSetImageFilter_cthead.nrrd.sha512
new file mode 100644
index 0000000..88d73fd
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ThresholdSegmentationLevelSetImageFilter_cthead.nrrd.sha512
@@ -0,0 +1 @@
+f570566686b65542d7b021b827da299fc7502848e2949c6461e149e0d65413b9aa5414299f61fe5cfe1c0a693f82c81836012af3108db1de648fd90fb25fc37d
diff --git a/Testing/Data/Baseline/BasicFilters_TikhonovDeconvolutionImageFilter_defaults.1.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_TikhonovDeconvolutionImageFilter_defaults.1.nrrd.md5
new file mode 100644
index 0000000..9e551d1
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_TikhonovDeconvolutionImageFilter_defaults.1.nrrd.md5
@@ -0,0 +1 @@
+788099cb89927e7a5039313cc8476388
diff --git a/Testing/Data/Baseline/BasicFilters_TikhonovDeconvolutionImageFilter_defaults.1.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_TikhonovDeconvolutionImageFilter_defaults.1.nrrd.sha512
new file mode 100644
index 0000000..f036146
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_TikhonovDeconvolutionImageFilter_defaults.1.nrrd.sha512
@@ -0,0 +1 @@
+71a1fd4e453d1771e1951451b43a49464b49f665536de9e34c639464f55abd8d6e139b295b429c02594043e717e5acc113cfdec7dd15c1c055d53694d1346633
diff --git a/Testing/Data/Baseline/BasicFilters_TikhonovDeconvolutionImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_TikhonovDeconvolutionImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..b41cd9a
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_TikhonovDeconvolutionImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+d3e41fb89c9fd36d0c55e51450794d25
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_TikhonovDeconvolutionImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_TikhonovDeconvolutionImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..be6a728
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_TikhonovDeconvolutionImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+dd1b5ae6f02bb08b37e3b10c3cb835466e30e8a96d1f7b423f212e80ccdba61c43b4dcd18625ec24b7d0eedb9036e00226b91dd0ef9a6b1e778a927283ac892e
diff --git a/Testing/Data/Baseline/BasicFilters_TransformToDisplacementFieldFilter_32.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_TransformToDisplacementFieldFilter_32.nrrd.md5
new file mode 100644
index 0000000..f9d26ba
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_TransformToDisplacementFieldFilter_32.nrrd.md5
@@ -0,0 +1 @@
+977d220e392168a93607c4d0e88347a5
diff --git a/Testing/Data/Baseline/BasicFilters_TransformToDisplacementFieldFilter_32.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_TransformToDisplacementFieldFilter_32.nrrd.sha512
new file mode 100644
index 0000000..3361b63
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_TransformToDisplacementFieldFilter_32.nrrd.sha512
@@ -0,0 +1 @@
+d1ec6f83982cfb3a812c29760e27d62202c4e3aeb0127547771ffd3feb80d37298ea1179053a5c42a8739285ae13ea5f2a41a7b2507b4a47e88d500deb4ca0d0
diff --git a/Testing/Data/Baseline/BasicFilters_TransformToDisplacementFieldFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_TransformToDisplacementFieldFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..7bd84bf
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_TransformToDisplacementFieldFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+573fda07c579e017396b4e6ff0e53f42
diff --git a/Testing/Data/Baseline/BasicFilters_TransformToDisplacementFieldFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_TransformToDisplacementFieldFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..10b5b72
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_TransformToDisplacementFieldFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+77e2d58e4d8a2e56191fc04c64a63f026dc620aabb30708c750e7e7f5cf4a7cb10ceddc3176bf812d01a340263b7a7e5a2fc38075f21728f27884d41e84a1efc
diff --git a/Testing/Data/Baseline/BasicFilters_VectorMagnitudeImageFilter_3d.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_VectorMagnitudeImageFilter_3d.nrrd.md5
new file mode 100644
index 0000000..9c2332e
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_VectorMagnitudeImageFilter_3d.nrrd.md5
@@ -0,0 +1 @@
+55dacdce3013e4e086cb5a3e3bdfd2f9
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_VectorMagnitudeImageFilter_3d.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_VectorMagnitudeImageFilter_3d.nrrd.sha512
new file mode 100644
index 0000000..ef47bdb
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_VectorMagnitudeImageFilter_3d.nrrd.sha512
@@ -0,0 +1 @@
+edcb129189b5234d734b9560069deeba008216a5e20bb6b7a389a934ece3420fb4c9bb07739fc0e5f74856326eaa17a2110a08089b0b0a5b464f701484555f3d
diff --git a/Testing/Data/Baseline/BasicFilters_WarpImageFilter_cthead1.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_WarpImageFilter_cthead1.nrrd.md5
new file mode 100644
index 0000000..51b37e1
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_WarpImageFilter_cthead1.nrrd.md5
@@ -0,0 +1 @@
+dc36e35d7b966829f3a6ec4d870a3a9a
diff --git a/Testing/Data/Baseline/BasicFilters_WarpImageFilter_cthead1.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_WarpImageFilter_cthead1.nrrd.sha512
new file mode 100644
index 0000000..fdb765a
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_WarpImageFilter_cthead1.nrrd.sha512
@@ -0,0 +1 @@
+13058e2d874f39c86e571c5242bcc07fcad8b2ecf81bf77961555234e61cd27d0bda42730a3fa2d69984b5cc8eaa3db068a87f1b200084bd3fac6a927092e71f
diff --git a/Testing/Data/Baseline/BasicFilters_WarpImageFilter_vm.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_WarpImageFilter_vm.nrrd.md5
new file mode 100644
index 0000000..26c172c
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_WarpImageFilter_vm.nrrd.md5
@@ -0,0 +1 @@
+30e08f2e5cf9126e2a09707c25507a74
diff --git a/Testing/Data/Baseline/BasicFilters_WarpImageFilter_vm.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_WarpImageFilter_vm.nrrd.sha512
new file mode 100644
index 0000000..c815d9d
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_WarpImageFilter_vm.nrrd.sha512
@@ -0,0 +1 @@
+8556fd57b27b271c0ec36bbe6fe78ab4a830978c0bfbfb4bfa37096565466c748683ef329bcf65df1cf840a03fe2250d798296a6b87dbd8f906a64fb3e170a1b
diff --git a/Testing/Data/Baseline/BasicFilters_WienerDeconvolutionImageFilter_defaults.1.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_WienerDeconvolutionImageFilter_defaults.1.nrrd.md5
new file mode 100644
index 0000000..9e551d1
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_WienerDeconvolutionImageFilter_defaults.1.nrrd.md5
@@ -0,0 +1 @@
+788099cb89927e7a5039313cc8476388
diff --git a/Testing/Data/Baseline/BasicFilters_WienerDeconvolutionImageFilter_defaults.1.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_WienerDeconvolutionImageFilter_defaults.1.nrrd.sha512
new file mode 100644
index 0000000..f036146
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_WienerDeconvolutionImageFilter_defaults.1.nrrd.sha512
@@ -0,0 +1 @@
+71a1fd4e453d1771e1951451b43a49464b49f665536de9e34c639464f55abd8d6e139b295b429c02594043e717e5acc113cfdec7dd15c1c055d53694d1346633
diff --git a/Testing/Data/Baseline/BasicFilters_WienerDeconvolutionImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_WienerDeconvolutionImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..b41cd9a
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_WienerDeconvolutionImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+d3e41fb89c9fd36d0c55e51450794d25
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_WienerDeconvolutionImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_WienerDeconvolutionImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..be6a728
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_WienerDeconvolutionImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+dd1b5ae6f02bb08b37e3b10c3cb835466e30e8a96d1f7b423f212e80ccdba61c43b4dcd18625ec24b7d0eedb9036e00226b91dd0ef9a6b1e778a927283ac892e
diff --git a/Testing/Data/Baseline/BasicFilters_ZeroCrossingBasedEdgeDetectionImageFilter_defaults.nrrd.md5 b/Testing/Data/Baseline/BasicFilters_ZeroCrossingBasedEdgeDetectionImageFilter_defaults.nrrd.md5
new file mode 100644
index 0000000..bbd2036
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ZeroCrossingBasedEdgeDetectionImageFilter_defaults.nrrd.md5
@@ -0,0 +1 @@
+023dc8f62b17cf627f55cfbb28fec730
\ No newline at end of file
diff --git a/Testing/Data/Baseline/BasicFilters_ZeroCrossingBasedEdgeDetectionImageFilter_defaults.nrrd.sha512 b/Testing/Data/Baseline/BasicFilters_ZeroCrossingBasedEdgeDetectionImageFilter_defaults.nrrd.sha512
new file mode 100644
index 0000000..e9c3fb6
--- /dev/null
+++ b/Testing/Data/Baseline/BasicFilters_ZeroCrossingBasedEdgeDetectionImageFilter_defaults.nrrd.sha512
@@ -0,0 +1 @@
+f56d0f2ffa5dc053941726f541088107122008be5164114246486619275f58a93f711e13527096ea70f0971baafeff12e7abca381dcc1b3e288cb3d971c5fddd
diff --git a/Testing/Data/Baseline/DemonsRegistration1Test_displacement.mha.md5 b/Testing/Data/Baseline/DemonsRegistration1Test_displacement.mha.md5
new file mode 100644
index 0000000..3370fe9
--- /dev/null
+++ b/Testing/Data/Baseline/DemonsRegistration1Test_displacement.mha.md5
@@ -0,0 +1 @@
+f0998498df32e1321a045082a0e5000c
diff --git a/Testing/Data/Baseline/DemonsRegistration1Test_displacement.mha.sha512 b/Testing/Data/Baseline/DemonsRegistration1Test_displacement.mha.sha512
new file mode 100644
index 0000000..38669bd
--- /dev/null
+++ b/Testing/Data/Baseline/DemonsRegistration1Test_displacement.mha.sha512
@@ -0,0 +1 @@
+34ac50a97de28071c425447f2a511dfc78b6cf1cad49c91775417330374b7bd87bee557aa8eb9b3e8aacd25d339bb0c3370c2caf9ba7069cea55fb0bd8b79bb7
diff --git a/Testing/Data/Baseline/DemonsRegistration2Test_displacement.mha.md5 b/Testing/Data/Baseline/DemonsRegistration2Test_displacement.mha.md5
new file mode 100644
index 0000000..db99471
--- /dev/null
+++ b/Testing/Data/Baseline/DemonsRegistration2Test_displacement.mha.md5
@@ -0,0 +1 @@
+059a97d1e6f0a9b05162b9b44a2fd786
diff --git a/Testing/Data/Baseline/DemonsRegistration2Test_displacement.mha.sha512 b/Testing/Data/Baseline/DemonsRegistration2Test_displacement.mha.sha512
new file mode 100644
index 0000000..d84dc12
--- /dev/null
+++ b/Testing/Data/Baseline/DemonsRegistration2Test_displacement.mha.sha512
@@ -0,0 +1 @@
+3c063840e285dea70601f33c6e4a330232b9772e923be556c6f1eb7e81724ca94638b860717d6f64f296dd5b2777f56fd17440cd2cc806e43e2788a0dfa2f560
diff --git a/Testing/Data/Baseline/Example_SimpleDerivative.nrrd.md5 b/Testing/Data/Baseline/Example_SimpleDerivative.nrrd.md5
new file mode 100644
index 0000000..ba9ef77
--- /dev/null
+++ b/Testing/Data/Baseline/Example_SimpleDerivative.nrrd.md5
@@ -0,0 +1 @@
+2e0a58005a74a02147c5e0517615ce58
diff --git a/Testing/Data/Baseline/Example_SimpleDerivative.nrrd.sha512 b/Testing/Data/Baseline/Example_SimpleDerivative.nrrd.sha512
new file mode 100644
index 0000000..ed740d9
--- /dev/null
+++ b/Testing/Data/Baseline/Example_SimpleDerivative.nrrd.sha512
@@ -0,0 +1 @@
+2668dad6eb365be1c51b3b7e569eddf5e289f8bd4618757874b52187004d7975c325b0e9c74d9e20217b6046305aa1811bfc201275d18348eebb35765a1ffa14
diff --git a/Testing/Data/Baseline/Example_SimpleGaussian_2.0.nrrd.md5 b/Testing/Data/Baseline/Example_SimpleGaussian_2.0.nrrd.md5
new file mode 100644
index 0000000..5d2ce73
--- /dev/null
+++ b/Testing/Data/Baseline/Example_SimpleGaussian_2.0.nrrd.md5
@@ -0,0 +1 @@
+df1d5f49dfcf581cbcd866709840c1e8
\ No newline at end of file
diff --git a/Testing/Data/Baseline/Example_SimpleGaussian_2.0.nrrd.sha512 b/Testing/Data/Baseline/Example_SimpleGaussian_2.0.nrrd.sha512
new file mode 100644
index 0000000..fba2857
--- /dev/null
+++ b/Testing/Data/Baseline/Example_SimpleGaussian_2.0.nrrd.sha512
@@ -0,0 +1 @@
+e531213a40def58baf7562b78513c719b45a726ac78f5b316fc7ef26bafd58e7fc279216ba28c526f8ae1afc56252ccad7b3ddae07fb65bd2783f9e178b060d5
diff --git a/Testing/Data/Baseline/ImageRegistrationMethod3Test1.mha.md5 b/Testing/Data/Baseline/ImageRegistrationMethod3Test1.mha.md5
new file mode 100644
index 0000000..0238182
--- /dev/null
+++ b/Testing/Data/Baseline/ImageRegistrationMethod3Test1.mha.md5
@@ -0,0 +1 @@
+7dd22432002df480c761923405e82097
diff --git a/Testing/Data/Baseline/ImageRegistrationMethod3Test1.mha.sha512 b/Testing/Data/Baseline/ImageRegistrationMethod3Test1.mha.sha512
new file mode 100644
index 0000000..349d7ee
--- /dev/null
+++ b/Testing/Data/Baseline/ImageRegistrationMethod3Test1.mha.sha512
@@ -0,0 +1 @@
+483b0d93845418fdf2d6084bb073092ddc8621b09554b21aadb83b8a320f0caa852bb5d79fc72ed0c3a2f0ce0afa66079890bcabdd0370ab561ebd2761ab960a
diff --git a/Testing/Data/Baseline/ImageRegistrationMethod3Test2.mha.md5 b/Testing/Data/Baseline/ImageRegistrationMethod3Test2.mha.md5
new file mode 100644
index 0000000..b7cf8ed
--- /dev/null
+++ b/Testing/Data/Baseline/ImageRegistrationMethod3Test2.mha.md5
@@ -0,0 +1 @@
+79670de66f750e0b67432f80faf020ff
diff --git a/Testing/Data/Baseline/ImageRegistrationMethod3Test2.mha.sha512 b/Testing/Data/Baseline/ImageRegistrationMethod3Test2.mha.sha512
new file mode 100644
index 0000000..f5ffa6b
--- /dev/null
+++ b/Testing/Data/Baseline/ImageRegistrationMethod3Test2.mha.sha512
@@ -0,0 +1 @@
+664fc20bbff638955fa017ef077632a9017ac374f6094082089b41dcabeab8dd204c7221f1ebb3c30bf07aa9268ad2752b5b667a2018b805549002434a52ac3a
diff --git a/Testing/Data/Baseline/ImageRegistrationMethodBSpline1.1.mha.md5 b/Testing/Data/Baseline/ImageRegistrationMethodBSpline1.1.mha.md5
new file mode 100644
index 0000000..7b8e744
--- /dev/null
+++ b/Testing/Data/Baseline/ImageRegistrationMethodBSpline1.1.mha.md5
@@ -0,0 +1 @@
+75c41e20d6af0ec74e407348fabf8724
diff --git a/Testing/Data/Baseline/ImageRegistrationMethodBSpline1.1.mha.sha512 b/Testing/Data/Baseline/ImageRegistrationMethodBSpline1.1.mha.sha512
new file mode 100644
index 0000000..462829e
--- /dev/null
+++ b/Testing/Data/Baseline/ImageRegistrationMethodBSpline1.1.mha.sha512
@@ -0,0 +1 @@
+0798665ea62ca7b731d90ee30316ab6d7736dcbb4307c966d0af28ee9f73f0be92bb920593538fde18eaef5287ead39797cffea196704499e033faa0d292ddfe
diff --git a/Testing/Data/Baseline/ImageRegistrationMethodBSpline1.mha.md5 b/Testing/Data/Baseline/ImageRegistrationMethodBSpline1.mha.md5
new file mode 100644
index 0000000..d76c0cb
--- /dev/null
+++ b/Testing/Data/Baseline/ImageRegistrationMethodBSpline1.mha.md5
@@ -0,0 +1 @@
+7b2072f5318f1e8022e6253ffc65404e
diff --git a/Testing/Data/Baseline/ImageRegistrationMethodBSpline1.mha.sha512 b/Testing/Data/Baseline/ImageRegistrationMethodBSpline1.mha.sha512
new file mode 100644
index 0000000..d173b80
--- /dev/null
+++ b/Testing/Data/Baseline/ImageRegistrationMethodBSpline1.mha.sha512
@@ -0,0 +1 @@
+3d7bf2fc1d87efd662c8288cf3fa73f33f5b0b22de83937876d3f171b596b356f88f1df3f3d66589c700814177a756daa475b9a8bd14855e8594e10c77cf5219
diff --git a/Testing/Data/Baseline/ImageRegistrationMethodBSpline2.1.mha.md5 b/Testing/Data/Baseline/ImageRegistrationMethodBSpline2.1.mha.md5
new file mode 100644
index 0000000..eae1fd0
--- /dev/null
+++ b/Testing/Data/Baseline/ImageRegistrationMethodBSpline2.1.mha.md5
@@ -0,0 +1 @@
+3c2ba33cff5fd6e7ba9d9a396d55ecb1
diff --git a/Testing/Data/Baseline/ImageRegistrationMethodBSpline2.1.mha.sha512 b/Testing/Data/Baseline/ImageRegistrationMethodBSpline2.1.mha.sha512
new file mode 100644
index 0000000..96f325c
--- /dev/null
+++ b/Testing/Data/Baseline/ImageRegistrationMethodBSpline2.1.mha.sha512
@@ -0,0 +1 @@
+9c0d07134621ad0f208716b5d23270ffdbebc6d9e92fcf6ba0dac9db01f67fe88abd86e2920999dceb57d85e60beee07dac0bd96c074ef53902be3c6b9855049
diff --git a/Testing/Data/Baseline/ImageRegistrationMethodBSpline2.mha.md5 b/Testing/Data/Baseline/ImageRegistrationMethodBSpline2.mha.md5
new file mode 100644
index 0000000..6279501
--- /dev/null
+++ b/Testing/Data/Baseline/ImageRegistrationMethodBSpline2.mha.md5
@@ -0,0 +1 @@
+62f8f57ba22917a9ad2aa4d120d12fa9
diff --git a/Testing/Data/Baseline/ImageRegistrationMethodBSpline2.mha.sha512 b/Testing/Data/Baseline/ImageRegistrationMethodBSpline2.mha.sha512
new file mode 100644
index 0000000..4d8042c
--- /dev/null
+++ b/Testing/Data/Baseline/ImageRegistrationMethodBSpline2.mha.sha512
@@ -0,0 +1 @@
+31050248385d881d9d7ee4c257107710ef108bd86b20a50c90172276a4093c570c79ef1ac899b64612ea072a0ee52c46c2bc5d16974c2a53c46e43ece1e4fbb6
diff --git a/Testing/Data/Baseline/ImageRegistrationMethodDisplacement1.mha.md5 b/Testing/Data/Baseline/ImageRegistrationMethodDisplacement1.mha.md5
new file mode 100644
index 0000000..471706d
--- /dev/null
+++ b/Testing/Data/Baseline/ImageRegistrationMethodDisplacement1.mha.md5
@@ -0,0 +1 @@
+68d9fb40ae60af52190f347dbecbbab7
diff --git a/Testing/Data/Baseline/ImageRegistrationMethodDisplacement1.mha.sha512 b/Testing/Data/Baseline/ImageRegistrationMethodDisplacement1.mha.sha512
new file mode 100644
index 0000000..58c5ebc
--- /dev/null
+++ b/Testing/Data/Baseline/ImageRegistrationMethodDisplacement1.mha.sha512
@@ -0,0 +1 @@
+a185feadb36d188fc70e20793b37130b915f77e639499c92fda87355337d809ca6ee628ef687dae7ecf4f6495c36b58dd99f473e983f3610e270f3a7a4b21c3d
diff --git a/Testing/Data/Baseline/ImageRegistrationMethodDisplacement1Test2.mha.md5 b/Testing/Data/Baseline/ImageRegistrationMethodDisplacement1Test2.mha.md5
new file mode 100644
index 0000000..62b2cf2
--- /dev/null
+++ b/Testing/Data/Baseline/ImageRegistrationMethodDisplacement1Test2.mha.md5
@@ -0,0 +1 @@
+2f356fdb6b9229d3c14599e19b5d5bae
diff --git a/Testing/Data/Baseline/ImageRegistrationMethodDisplacement1Test2.mha.sha512 b/Testing/Data/Baseline/ImageRegistrationMethodDisplacement1Test2.mha.sha512
new file mode 100644
index 0000000..0bc4535
--- /dev/null
+++ b/Testing/Data/Baseline/ImageRegistrationMethodDisplacement1Test2.mha.sha512
@@ -0,0 +1 @@
+fb260906e793236452052654358565e0b116b716e8c50a4a0a04bbc1b61b83d60b6227582d977e6c174a0bc532d91a49bac695500eb4d7a3508bd104e1196a4f
diff --git a/Testing/Data/Baseline/ImageRegistrationMethodExhaustiveTest1.mha.md5 b/Testing/Data/Baseline/ImageRegistrationMethodExhaustiveTest1.mha.md5
new file mode 100644
index 0000000..01f817c
--- /dev/null
+++ b/Testing/Data/Baseline/ImageRegistrationMethodExhaustiveTest1.mha.md5
@@ -0,0 +1 @@
+744f66e30e2f58b4909a583a9594becf
diff --git a/Testing/Data/Baseline/ImageRegistrationMethodExhaustiveTest1.mha.sha512 b/Testing/Data/Baseline/ImageRegistrationMethodExhaustiveTest1.mha.sha512
new file mode 100644
index 0000000..cb68fdb
--- /dev/null
+++ b/Testing/Data/Baseline/ImageRegistrationMethodExhaustiveTest1.mha.sha512
@@ -0,0 +1 @@
+b66bbc142832d0af9d5dc8002d8671fc922ebc3924e2d013f63e2f5fc8930df322592f01f874f1af70000f66ada0026b771631602862b7d69647d864296608ec
diff --git a/Testing/Data/Baseline/Registration_Resample_Resample.nrrd.md5 b/Testing/Data/Baseline/Registration_Resample_Resample.nrrd.md5
new file mode 100644
index 0000000..81ff327
--- /dev/null
+++ b/Testing/Data/Baseline/Registration_Resample_Resample.nrrd.md5
@@ -0,0 +1 @@
+1cbe1c6627fe6d1429e783a88756ebe4
\ No newline at end of file
diff --git a/Testing/Data/Baseline/Registration_Resample_Resample.nrrd.sha512 b/Testing/Data/Baseline/Registration_Resample_Resample.nrrd.sha512
new file mode 100644
index 0000000..b5bd648
--- /dev/null
+++ b/Testing/Data/Baseline/Registration_Resample_Resample.nrrd.sha512
@@ -0,0 +1 @@
+d8a604b3b50f3c651631950f4da9810b40a99ee3de6f5389c77ff3c47358a1afd3cf49e15624f9f20a67de7278c80b60f1448ca14a79cf02b7e39fbad53e9532
diff --git a/Testing/Data/Baseline/displacement_-13x-17y.mha.md5 b/Testing/Data/Baseline/displacement_-13x-17y.mha.md5
new file mode 100644
index 0000000..aca699e
--- /dev/null
+++ b/Testing/Data/Baseline/displacement_-13x-17y.mha.md5
@@ -0,0 +1 @@
+a0cf117c18fcfed8431636dfb3a8c7aa
diff --git a/Testing/Data/Baseline/displacement_-13x-17y.mha.sha512 b/Testing/Data/Baseline/displacement_-13x-17y.mha.sha512
new file mode 100644
index 0000000..04b41d3
--- /dev/null
+++ b/Testing/Data/Baseline/displacement_-13x-17y.mha.sha512
@@ -0,0 +1 @@
+d5c3cd5abdbbf8bf0fe9cffde85b0c6064b1fe85724ed02a9a97489863d8b274ecd482f76b0e2c06efaff97cff99bf75cf28047d4ef121a2bbd8a64c8619ecb6
diff --git a/Testing/Data/Baseline/displacement_13x17y.mha.md5 b/Testing/Data/Baseline/displacement_13x17y.mha.md5
new file mode 100644
index 0000000..52d19d5
--- /dev/null
+++ b/Testing/Data/Baseline/displacement_13x17y.mha.md5
@@ -0,0 +1 @@
+07106ed67d0da496856c7a2a8daf7125
diff --git a/Testing/Data/Baseline/displacement_13x17y.mha.sha512 b/Testing/Data/Baseline/displacement_13x17y.mha.sha512
new file mode 100644
index 0000000..2166129
--- /dev/null
+++ b/Testing/Data/Baseline/displacement_13x17y.mha.sha512
@@ -0,0 +1 @@
+e74af150bb8f6db12d68cef5500e9ec5487a1c77f434e8ba8c6285a312daa77ccc5fc9cdd73d91e9a416190296d262bfe31116b58023fd37986d9b19568d66b1
diff --git a/Testing/Data/Input/2th_cthead1.mha.md5 b/Testing/Data/Input/2th_cthead1.mha.md5
new file mode 100644
index 0000000..fbabe51
--- /dev/null
+++ b/Testing/Data/Input/2th_cthead1.mha.md5
@@ -0,0 +1 @@
+6d5d80a2ea307fa15d41aaabad466751
\ No newline at end of file
diff --git a/Testing/Data/Input/2th_cthead1.mha.sha512 b/Testing/Data/Input/2th_cthead1.mha.sha512
new file mode 100644
index 0000000..bba57a2
--- /dev/null
+++ b/Testing/Data/Input/2th_cthead1.mha.sha512
@@ -0,0 +1 @@
+551c189c6ac4d49df4469ec94dc586e329acc4d1007bbb224baa9bfd1a9b1916eb549a3088da022cbcf71a46de1fd730e3904932208e073f6937e95ad03dd882
diff --git a/Testing/Data/Input/2th_cthead1.png.md5 b/Testing/Data/Input/2th_cthead1.png.md5
new file mode 100644
index 0000000..9903efc
--- /dev/null
+++ b/Testing/Data/Input/2th_cthead1.png.md5
@@ -0,0 +1 @@
+40a0feefdbb30c6f852f5c6f0d1814b9
diff --git a/Testing/Data/Input/2th_cthead1.png.sha512 b/Testing/Data/Input/2th_cthead1.png.sha512
new file mode 100644
index 0000000..9367248
--- /dev/null
+++ b/Testing/Data/Input/2th_cthead1.png.sha512
@@ -0,0 +1 @@
+d6a59581d34f463cf23eefed40f0ccbd43092d59601d1473290bd212053acca6b00640984a648cf8ab7dbb0ba04057fe5c003695b32026651bd486edd350562a
diff --git a/Testing/Data/Input/2th_cthead1_distance.nrrd.md5 b/Testing/Data/Input/2th_cthead1_distance.nrrd.md5
new file mode 100644
index 0000000..2180d7e
--- /dev/null
+++ b/Testing/Data/Input/2th_cthead1_distance.nrrd.md5
@@ -0,0 +1 @@
+c049894935864bd2fef8e5d254d3b242
\ No newline at end of file
diff --git a/Testing/Data/Input/2th_cthead1_distance.nrrd.sha512 b/Testing/Data/Input/2th_cthead1_distance.nrrd.sha512
new file mode 100644
index 0000000..c0657c3
--- /dev/null
+++ b/Testing/Data/Input/2th_cthead1_distance.nrrd.sha512
@@ -0,0 +1 @@
+8697e9938c6d583777e848e37cf44419916703f44546dbedbf72b34ef2c80eda42a44e72e73d46e02cb4fa7f71232e97729632dae00aeb379a95c024d7171304
diff --git a/Testing/Data/Input/4D.nii.gz.md5 b/Testing/Data/Input/4D.nii.gz.md5
new file mode 100644
index 0000000..6a33501
--- /dev/null
+++ b/Testing/Data/Input/4D.nii.gz.md5
@@ -0,0 +1 @@
+58e10b6898a5d5271a890eecf25093c2
diff --git a/Testing/Data/Input/4D.nii.gz.sha512 b/Testing/Data/Input/4D.nii.gz.sha512
new file mode 100644
index 0000000..864a590
--- /dev/null
+++ b/Testing/Data/Input/4D.nii.gz.sha512
@@ -0,0 +1 @@
+c6354cf274d959bc9e837cbab8ff8476dedfe1ae9a4d1d3f381c73f79d3d3c885ce3f193a33978a762f1804981af648822a547db0e98015143224e312aa57ff7
diff --git a/Testing/Data/Input/BlackDots.png.md5 b/Testing/Data/Input/BlackDots.png.md5
new file mode 100644
index 0000000..6ab5fe3
--- /dev/null
+++ b/Testing/Data/Input/BlackDots.png.md5
@@ -0,0 +1 @@
+4a91cbab8f591cb6a7799136de3f39b6
diff --git a/Testing/Data/Input/BlackDots.png.sha512 b/Testing/Data/Input/BlackDots.png.sha512
new file mode 100644
index 0000000..7897a39
--- /dev/null
+++ b/Testing/Data/Input/BlackDots.png.sha512
@@ -0,0 +1 @@
+128000c81e8ba1aa00e326f5446a0a74a70a2e84a6d4a38d5bc13ae64ad7bc1676a32697146fd1783939b487e7a88d84a503a6f1e4135a779d8cb26a0c66984c
diff --git a/Testing/Data/Input/BrainProtonDensitySlice.png.md5 b/Testing/Data/Input/BrainProtonDensitySlice.png.md5
new file mode 100644
index 0000000..274d1da
--- /dev/null
+++ b/Testing/Data/Input/BrainProtonDensitySlice.png.md5
@@ -0,0 +1 @@
+073df8eb397d1746d2343c78dd4bd964
diff --git a/Testing/Data/Input/BrainProtonDensitySlice.png.sha512 b/Testing/Data/Input/BrainProtonDensitySlice.png.sha512
new file mode 100644
index 0000000..99c659d
--- /dev/null
+++ b/Testing/Data/Input/BrainProtonDensitySlice.png.sha512
@@ -0,0 +1 @@
+db3a15caea5f4d5fd8632116d0ab1dbf02a140b019594411537f77a3ffe2340972436b4f82684a6170b0624601182749b6c45f7a46f7dd32616674f57ec874cd
diff --git a/Testing/Data/Input/BrainProtonDensitySlice20InitialDisplacement.mha.md5 b/Testing/Data/Input/BrainProtonDensitySlice20InitialDisplacement.mha.md5
new file mode 100644
index 0000000..38e5be8
--- /dev/null
+++ b/Testing/Data/Input/BrainProtonDensitySlice20InitialDisplacement.mha.md5
@@ -0,0 +1 @@
+0afc39fa47bc5582f6de48d3273c39e2
diff --git a/Testing/Data/Input/BrainProtonDensitySlice20InitialDisplacement.mha.sha512 b/Testing/Data/Input/BrainProtonDensitySlice20InitialDisplacement.mha.sha512
new file mode 100644
index 0000000..669ebcb
--- /dev/null
+++ b/Testing/Data/Input/BrainProtonDensitySlice20InitialDisplacement.mha.sha512
@@ -0,0 +1 @@
+dddf2ca5e0e6b012c7866aaa1514aa935163d770da70caa50650a139aab487fb0d0fdaa393184a9bc1e64cfb0aafd732d7dcdedab21772a5c8f3bd9e48aab49f
diff --git a/Testing/Data/Input/BrainProtonDensitySliceBSplined10.png.md5 b/Testing/Data/Input/BrainProtonDensitySliceBSplined10.png.md5
new file mode 100644
index 0000000..c6ab3aa
--- /dev/null
+++ b/Testing/Data/Input/BrainProtonDensitySliceBSplined10.png.md5
@@ -0,0 +1 @@
+4ced84b250c6799a472f569779022044
diff --git a/Testing/Data/Input/BrainProtonDensitySliceBSplined10.png.sha512 b/Testing/Data/Input/BrainProtonDensitySliceBSplined10.png.sha512
new file mode 100644
index 0000000..d22bb90
--- /dev/null
+++ b/Testing/Data/Input/BrainProtonDensitySliceBSplined10.png.sha512
@@ -0,0 +1 @@
+55d0cc81d2b25a4fc1a02abd7a8c9055a029a9167649d82d102c04be644d3aa1bcaaf7ff8d9a6dfc969e586526ff49c67517574b8e763e669c6e572c752bf39b
diff --git a/Testing/Data/Input/BrainProtonDensitySliceBorder20.png.md5 b/Testing/Data/Input/BrainProtonDensitySliceBorder20.png.md5
new file mode 100644
index 0000000..6302135
--- /dev/null
+++ b/Testing/Data/Input/BrainProtonDensitySliceBorder20.png.md5
@@ -0,0 +1 @@
+9967b9c9bae3af9c3aac9676663ee05d
diff --git a/Testing/Data/Input/BrainProtonDensitySliceBorder20.png.sha512 b/Testing/Data/Input/BrainProtonDensitySliceBorder20.png.sha512
new file mode 100644
index 0000000..0990c7a
--- /dev/null
+++ b/Testing/Data/Input/BrainProtonDensitySliceBorder20.png.sha512
@@ -0,0 +1 @@
+b6c74f498117bea094cc9010b8b3c25ee3b48f9534807e18073d40c62de0b8d6f98da28d5d09ada9dcfeec8a69954c45eca45f4aa28c35247c962a30de72a5bc
diff --git a/Testing/Data/Input/BrainProtonDensitySliceBorder20Mask.png.md5 b/Testing/Data/Input/BrainProtonDensitySliceBorder20Mask.png.md5
new file mode 100644
index 0000000..3e5cf3a
--- /dev/null
+++ b/Testing/Data/Input/BrainProtonDensitySliceBorder20Mask.png.md5
@@ -0,0 +1 @@
+646be5659d98e7cef40b63b3dff86726
diff --git a/Testing/Data/Input/BrainProtonDensitySliceBorder20Mask.png.sha512 b/Testing/Data/Input/BrainProtonDensitySliceBorder20Mask.png.sha512
new file mode 100644
index 0000000..8c2e7c6
--- /dev/null
+++ b/Testing/Data/Input/BrainProtonDensitySliceBorder20Mask.png.sha512
@@ -0,0 +1 @@
+43896618d14d8b75e1436fb61677ca867580768dc918a1f5f664cfa40d7a0997c0a3b04405d521f641ca11440fe08ee2596a75d61c8ab84a25d131c38f675821
diff --git a/Testing/Data/Input/BrainProtonDensitySliceR10X13Y17.png.md5 b/Testing/Data/Input/BrainProtonDensitySliceR10X13Y17.png.md5
new file mode 100644
index 0000000..8058585
--- /dev/null
+++ b/Testing/Data/Input/BrainProtonDensitySliceR10X13Y17.png.md5
@@ -0,0 +1 @@
+610392a128986d934dfc0a1b0dc27e91
diff --git a/Testing/Data/Input/BrainProtonDensitySliceR10X13Y17.png.sha512 b/Testing/Data/Input/BrainProtonDensitySliceR10X13Y17.png.sha512
new file mode 100644
index 0000000..7215399
--- /dev/null
+++ b/Testing/Data/Input/BrainProtonDensitySliceR10X13Y17.png.sha512
@@ -0,0 +1 @@
+239f9bac60fd05faffb665795be48fa2a0954f829bd44f1229a60fcbc19573406a98bfb7913f6ab246c57f5ff9dd8cf40c9753d111c3dfd538dca746336d03dc
diff --git a/Testing/Data/Input/BrainProtonDensitySliceR10X13Y17S12.png.md5 b/Testing/Data/Input/BrainProtonDensitySliceR10X13Y17S12.png.md5
new file mode 100644
index 0000000..42e5aa4
--- /dev/null
+++ b/Testing/Data/Input/BrainProtonDensitySliceR10X13Y17S12.png.md5
@@ -0,0 +1 @@
+eefa617b3220c1cea47bdc4672541b2d
diff --git a/Testing/Data/Input/BrainProtonDensitySliceR10X13Y17S12.png.sha512 b/Testing/Data/Input/BrainProtonDensitySliceR10X13Y17S12.png.sha512
new file mode 100644
index 0000000..7e89791
--- /dev/null
+++ b/Testing/Data/Input/BrainProtonDensitySliceR10X13Y17S12.png.sha512
@@ -0,0 +1 @@
+31151230a485bda60f52060f50c588bc0a8a11ef6fd14acde9bbd8e990318953ab0c31ecc7caf3fbd2cc98bd16bd760331ba7188725796f4c25867a4bfd72da1
diff --git a/Testing/Data/Input/BrainProtonDensitySliceShifted13x17y.png.md5 b/Testing/Data/Input/BrainProtonDensitySliceShifted13x17y.png.md5
new file mode 100644
index 0000000..98dda29
--- /dev/null
+++ b/Testing/Data/Input/BrainProtonDensitySliceShifted13x17y.png.md5
@@ -0,0 +1 @@
+d3568c0d5c44afedb78305f620c0a79b
diff --git a/Testing/Data/Input/BrainProtonDensitySliceShifted13x17y.png.sha512 b/Testing/Data/Input/BrainProtonDensitySliceShifted13x17y.png.sha512
new file mode 100644
index 0000000..adac928
--- /dev/null
+++ b/Testing/Data/Input/BrainProtonDensitySliceShifted13x17y.png.sha512
@@ -0,0 +1 @@
+2e896b0aec5538059d2a1527f1f2e35dfe5753d3b39b2402abab96a14be91cee4d411dc2a388d7b26a1f48eeb4b44651cfdfd45b7c49d1b04d0c49e32732fb85
diff --git a/Testing/Data/Input/BrainT1SliceBorder20.png.md5 b/Testing/Data/Input/BrainT1SliceBorder20.png.md5
new file mode 100644
index 0000000..b51fb43
--- /dev/null
+++ b/Testing/Data/Input/BrainT1SliceBorder20.png.md5
@@ -0,0 +1 @@
+9413fa5d446c05593a53f810e3ddc241
diff --git a/Testing/Data/Input/BrainT1SliceBorder20.png.sha512 b/Testing/Data/Input/BrainT1SliceBorder20.png.sha512
new file mode 100644
index 0000000..5b35e50
--- /dev/null
+++ b/Testing/Data/Input/BrainT1SliceBorder20.png.sha512
@@ -0,0 +1 @@
+5c56e4f7dd4846172c057994368ade624aec385027176fa9258c6495b3f6e8d89234e7de3dc58717e6f99799d1e95b857df6f963b2b01240075c47a4eef12d36
diff --git a/Testing/Data/Input/DeconvolutionInput.nrrd.md5 b/Testing/Data/Input/DeconvolutionInput.nrrd.md5
new file mode 100644
index 0000000..6274aea
--- /dev/null
+++ b/Testing/Data/Input/DeconvolutionInput.nrrd.md5
@@ -0,0 +1 @@
+76eef439e0eb023945d94c1bb656948e
\ No newline at end of file
diff --git a/Testing/Data/Input/DeconvolutionInput.nrrd.sha512 b/Testing/Data/Input/DeconvolutionInput.nrrd.sha512
new file mode 100644
index 0000000..2bb7e13
--- /dev/null
+++ b/Testing/Data/Input/DeconvolutionInput.nrrd.sha512
@@ -0,0 +1 @@
+0fac3c53bfc6ffc6ac3198c703fccaeff0afa3515758af8ad73dbea4c8ceff20ccb6830265675f04153bb5d1a29e80e02d770343364ce044c73f9557735f6628
diff --git a/Testing/Data/Input/DeconvolutionKernel.nrrd.md5 b/Testing/Data/Input/DeconvolutionKernel.nrrd.md5
new file mode 100644
index 0000000..9d7302f
--- /dev/null
+++ b/Testing/Data/Input/DeconvolutionKernel.nrrd.md5
@@ -0,0 +1 @@
+a6659d27180f14085a5f4db3563c0557
\ No newline at end of file
diff --git a/Testing/Data/Input/DeconvolutionKernel.nrrd.sha512 b/Testing/Data/Input/DeconvolutionKernel.nrrd.sha512
new file mode 100644
index 0000000..5a847af
--- /dev/null
+++ b/Testing/Data/Input/DeconvolutionKernel.nrrd.sha512
@@ -0,0 +1 @@
+a341bf59166f31d5ceb01c56d135f446d46883855a6b05b74a9e9f574f89cf704315062505b01ec819a41c8bf5446a6fd4612693baa4d81354b54f279c638b79
diff --git a/Testing/Data/Input/DicomSeries/Image0075.dcm.md5 b/Testing/Data/Input/DicomSeries/Image0075.dcm.md5
new file mode 100644
index 0000000..a3e0ff8
--- /dev/null
+++ b/Testing/Data/Input/DicomSeries/Image0075.dcm.md5
@@ -0,0 +1 @@
+ccc05a53f8c4a7f74b75a07b2cfba7b1
\ No newline at end of file
diff --git a/Testing/Data/Input/DicomSeries/Image0075.dcm.sha512 b/Testing/Data/Input/DicomSeries/Image0075.dcm.sha512
new file mode 100644
index 0000000..1f3606b
--- /dev/null
+++ b/Testing/Data/Input/DicomSeries/Image0075.dcm.sha512
@@ -0,0 +1 @@
+bd5a51ec6a605e5123a58ffa52145a67b0b7a92289963d5ff1350b6df30a5cdc427d8f2aaf873fc42bff0fd55d5865e1da00da8ccd431efa565a0b23ec1247bb
diff --git a/Testing/Data/Input/DicomSeries/Image0076.dcm.md5 b/Testing/Data/Input/DicomSeries/Image0076.dcm.md5
new file mode 100644
index 0000000..2974cfe
--- /dev/null
+++ b/Testing/Data/Input/DicomSeries/Image0076.dcm.md5
@@ -0,0 +1 @@
+0866419dc414715fddc551d6a30fd423
\ No newline at end of file
diff --git a/Testing/Data/Input/DicomSeries/Image0076.dcm.sha512 b/Testing/Data/Input/DicomSeries/Image0076.dcm.sha512
new file mode 100644
index 0000000..5df6c48
--- /dev/null
+++ b/Testing/Data/Input/DicomSeries/Image0076.dcm.sha512
@@ -0,0 +1 @@
+f1dd06a843eb7ace911c1036ab0dc78a5b6e85f521f834313d289bb6f58c94881ee13244393f4587a7273111449c7bb86fcdfa998a3e7a441f45a10b984c3743
diff --git a/Testing/Data/Input/DicomSeries/Image0077.dcm.md5 b/Testing/Data/Input/DicomSeries/Image0077.dcm.md5
new file mode 100644
index 0000000..1ec4903
--- /dev/null
+++ b/Testing/Data/Input/DicomSeries/Image0077.dcm.md5
@@ -0,0 +1 @@
+94241ced01d7cff864c6371b9f68bf72
\ No newline at end of file
diff --git a/Testing/Data/Input/DicomSeries/Image0077.dcm.sha512 b/Testing/Data/Input/DicomSeries/Image0077.dcm.sha512
new file mode 100644
index 0000000..d51149b
--- /dev/null
+++ b/Testing/Data/Input/DicomSeries/Image0077.dcm.sha512
@@ -0,0 +1 @@
+e87433a821c4ba97cb8792adc7572f7837c1dbb05c2447b482ac175a9bc0fbaf54a0a443034bf0dc68a32e32ddfbe7e36d3a248bbb3e7be7e667379e8bc6937b
diff --git a/Testing/Data/Input/Gaussian_1.5.nrrd.md5 b/Testing/Data/Input/Gaussian_1.5.nrrd.md5
new file mode 100644
index 0000000..43fb20c
--- /dev/null
+++ b/Testing/Data/Input/Gaussian_1.5.nrrd.md5
@@ -0,0 +1 @@
+efdb1c71a617fbfea06d2f748417b9de
\ No newline at end of file
diff --git a/Testing/Data/Input/Gaussian_1.5.nrrd.sha512 b/Testing/Data/Input/Gaussian_1.5.nrrd.sha512
new file mode 100644
index 0000000..72fa6c1
--- /dev/null
+++ b/Testing/Data/Input/Gaussian_1.5.nrrd.sha512
@@ -0,0 +1 @@
+6476cb9bd1580474dab9db623e242785ba4c6d4d4da49616209130734ddf0e08ca841536b7bf4d49ec6dc25df0d79492079bf1ecd767d9134b137bdb1871fc2c
diff --git a/Testing/Data/Input/LargeWhiteCircle.nrrd.md5 b/Testing/Data/Input/LargeWhiteCircle.nrrd.md5
new file mode 100644
index 0000000..875dca6
--- /dev/null
+++ b/Testing/Data/Input/LargeWhiteCircle.nrrd.md5
@@ -0,0 +1 @@
+34592e2640fe5f18ec00c2e1792e2ed4
\ No newline at end of file
diff --git a/Testing/Data/Input/LargeWhiteCircle.nrrd.sha512 b/Testing/Data/Input/LargeWhiteCircle.nrrd.sha512
new file mode 100644
index 0000000..6b148af
--- /dev/null
+++ b/Testing/Data/Input/LargeWhiteCircle.nrrd.sha512
@@ -0,0 +1 @@
+a286709820abed24fa9aaa63d0ea05dfcef9958865a2b53e9468497d25b0daf6a7ebd5d8ee02b17d4a9ca6870d31b81e41f5eadf749b44665426dd817a12e421
diff --git a/Testing/Data/Input/LargeWhiteCircle_Float.nrrd.md5 b/Testing/Data/Input/LargeWhiteCircle_Float.nrrd.md5
new file mode 100644
index 0000000..75e1ca1
--- /dev/null
+++ b/Testing/Data/Input/LargeWhiteCircle_Float.nrrd.md5
@@ -0,0 +1 @@
+fe1150a03de8937341b470a52ab6fd28
\ No newline at end of file
diff --git a/Testing/Data/Input/LargeWhiteCircle_Float.nrrd.sha512 b/Testing/Data/Input/LargeWhiteCircle_Float.nrrd.sha512
new file mode 100644
index 0000000..fee334a
--- /dev/null
+++ b/Testing/Data/Input/LargeWhiteCircle_Float.nrrd.sha512
@@ -0,0 +1 @@
+0d74fb613bb3ec20d3f5c5d50b6168525fa4e53ea185331dce1304254b6b2b657b1757bd5e7fec8e4a7e56ac45d7af21c51340302c9d46a23385a7f8d4eb49e2
diff --git a/Testing/Data/Input/OAS1_0001_MR1_mpr-1_anon.nrrd.md5 b/Testing/Data/Input/OAS1_0001_MR1_mpr-1_anon.nrrd.md5
new file mode 100644
index 0000000..52d8753
--- /dev/null
+++ b/Testing/Data/Input/OAS1_0001_MR1_mpr-1_anon.nrrd.md5
@@ -0,0 +1 @@
+034e616e71ade1535cba4a77180ad79d
\ No newline at end of file
diff --git a/Testing/Data/Input/OAS1_0001_MR1_mpr-1_anon.nrrd.sha512 b/Testing/Data/Input/OAS1_0001_MR1_mpr-1_anon.nrrd.sha512
new file mode 100644
index 0000000..6d2d76b
--- /dev/null
+++ b/Testing/Data/Input/OAS1_0001_MR1_mpr-1_anon.nrrd.sha512
@@ -0,0 +1 @@
+875ba2928c00e4b37fe21de08077e9c015f75ae6134e5fd97d55011d3e04d13e32253f37d9474f00429da44d0aedd86cdb1accb0edb4ac56799035b0774f4c85
diff --git a/Testing/Data/Input/OAS1_0002_MR1_mpr-1_anon.nrrd.md5 b/Testing/Data/Input/OAS1_0002_MR1_mpr-1_anon.nrrd.md5
new file mode 100644
index 0000000..151510a
--- /dev/null
+++ b/Testing/Data/Input/OAS1_0002_MR1_mpr-1_anon.nrrd.md5
@@ -0,0 +1 @@
+49129770e7152ea5d203a519ac17be43
\ No newline at end of file
diff --git a/Testing/Data/Input/OAS1_0002_MR1_mpr-1_anon.nrrd.sha512 b/Testing/Data/Input/OAS1_0002_MR1_mpr-1_anon.nrrd.sha512
new file mode 100644
index 0000000..0c2c86f
--- /dev/null
+++ b/Testing/Data/Input/OAS1_0002_MR1_mpr-1_anon.nrrd.sha512
@@ -0,0 +1 @@
+9fd6d5a2c4df51e6b36704f2c91c52fc6069859b25ff3f6a69c0c5b2f5d1727c716c8a781004bb3c0e717756b954f568013a3d1a7a97448c118c1176fe33587a
diff --git a/Testing/Data/Input/RA-FFT-Complex.nrrd.md5 b/Testing/Data/Input/RA-FFT-Complex.nrrd.md5
new file mode 100644
index 0000000..bbdea42
--- /dev/null
+++ b/Testing/Data/Input/RA-FFT-Complex.nrrd.md5
@@ -0,0 +1 @@
+11bda04eb63e37b655cd8a21bb2d01ac
\ No newline at end of file
diff --git a/Testing/Data/Input/RA-FFT-Complex.nrrd.sha512 b/Testing/Data/Input/RA-FFT-Complex.nrrd.sha512
new file mode 100644
index 0000000..e5afd69
--- /dev/null
+++ b/Testing/Data/Input/RA-FFT-Complex.nrrd.sha512
@@ -0,0 +1 @@
+8d19de85019eff9687bd2a2989840690b0c687142c7593eeaa6ea4c792c597930c23d7619291c6489383254249875d633d224d9b197beb6b2f17c7d80eb6b187
diff --git a/Testing/Data/Input/RA-Float.nrrd.md5 b/Testing/Data/Input/RA-Float.nrrd.md5
new file mode 100644
index 0000000..ff876ba
--- /dev/null
+++ b/Testing/Data/Input/RA-Float.nrrd.md5
@@ -0,0 +1 @@
+6f397b22835e552c14d762e5ff73c288
\ No newline at end of file
diff --git a/Testing/Data/Input/RA-Float.nrrd.sha512 b/Testing/Data/Input/RA-Float.nrrd.sha512
new file mode 100644
index 0000000..c29594c
--- /dev/null
+++ b/Testing/Data/Input/RA-Float.nrrd.sha512
@@ -0,0 +1 @@
+7d642e9ac12a1d4e7e73aaceed13dc38baa676535b589ee62546ac8beecbc1e0dd38b8c5625c6c842413812229f3f1f337d8f6a1dd4b6b2fde7f51b31a9cfdeb
diff --git a/Testing/Data/Input/RA-Gradient.nrrd.md5 b/Testing/Data/Input/RA-Gradient.nrrd.md5
new file mode 100644
index 0000000..4ffb681
--- /dev/null
+++ b/Testing/Data/Input/RA-Gradient.nrrd.md5
@@ -0,0 +1 @@
+ff9e33e423f9ff38944cc05982b9eea9
\ No newline at end of file
diff --git a/Testing/Data/Input/RA-Gradient.nrrd.sha512 b/Testing/Data/Input/RA-Gradient.nrrd.sha512
new file mode 100644
index 0000000..28a26cb
--- /dev/null
+++ b/Testing/Data/Input/RA-Gradient.nrrd.sha512
@@ -0,0 +1 @@
+b8c92186d564576c247583a6c740fb0e492ac827545d85e01e324d4ecc74478c5ef9b758376891c5e7dbbc1058618053962aeadb68243ec519addc5e1a69da22
diff --git a/Testing/Data/Input/RA-HalfFFT-Complex.nrrd.md5 b/Testing/Data/Input/RA-HalfFFT-Complex.nrrd.md5
new file mode 100644
index 0000000..b6f41dd
--- /dev/null
+++ b/Testing/Data/Input/RA-HalfFFT-Complex.nrrd.md5
@@ -0,0 +1 @@
+00da43039a19ec8777cd493efccb16d9
\ No newline at end of file
diff --git a/Testing/Data/Input/RA-HalfFFT-Complex.nrrd.sha512 b/Testing/Data/Input/RA-HalfFFT-Complex.nrrd.sha512
new file mode 100644
index 0000000..4b7aed8
--- /dev/null
+++ b/Testing/Data/Input/RA-HalfFFT-Complex.nrrd.sha512
@@ -0,0 +1 @@
+6c3a10eed0c346a72d5426716b07a9b8a4ee15e6d7a257704ce1c2b2f185ece8ea8174bcec54b18a4e46877642ba49ee9065433200809936eb58beeb76556f0e
diff --git a/Testing/Data/Input/RA-Short.nrrd.md5 b/Testing/Data/Input/RA-Short.nrrd.md5
new file mode 100644
index 0000000..d060d60
--- /dev/null
+++ b/Testing/Data/Input/RA-Short.nrrd.md5
@@ -0,0 +1 @@
+5a9cdc76f66bb911460cb99f14955a6f
\ No newline at end of file
diff --git a/Testing/Data/Input/RA-Short.nrrd.sha512 b/Testing/Data/Input/RA-Short.nrrd.sha512
new file mode 100644
index 0000000..c45b6d2
--- /dev/null
+++ b/Testing/Data/Input/RA-Short.nrrd.sha512
@@ -0,0 +1 @@
+a8d0a877d0994f199542ed01200e68089f144cea86a97fedd744b969ddbc9957265a17b510425ca074340966eb69768ae71d7a00fc60ecb495517b1583681950
diff --git a/Testing/Data/Input/RA-Slice-Float.nrrd.md5 b/Testing/Data/Input/RA-Slice-Float.nrrd.md5
new file mode 100644
index 0000000..8c3b043
--- /dev/null
+++ b/Testing/Data/Input/RA-Slice-Float.nrrd.md5
@@ -0,0 +1 @@
+231f8de5271265dbcc49bac754ae1ad8
\ No newline at end of file
diff --git a/Testing/Data/Input/RA-Slice-Float.nrrd.sha512 b/Testing/Data/Input/RA-Slice-Float.nrrd.sha512
new file mode 100644
index 0000000..b54a5db
--- /dev/null
+++ b/Testing/Data/Input/RA-Slice-Float.nrrd.sha512
@@ -0,0 +1 @@
+f1906e3e11e8a37bf569db5d40c7548047d13a8d9ac7d91338fda40348ea0fe1a72f60a2e7b70cd491db39eb595ec9297843997d84c5c41be07e648ff0f19ae0
diff --git a/Testing/Data/Input/RA-Slice-Short.nrrd.md5 b/Testing/Data/Input/RA-Slice-Short.nrrd.md5
new file mode 100644
index 0000000..f4f8902
--- /dev/null
+++ b/Testing/Data/Input/RA-Slice-Short.nrrd.md5
@@ -0,0 +1 @@
+6d7b447232907ddf7b898b94b688416a
\ No newline at end of file
diff --git a/Testing/Data/Input/RA-Slice-Short.nrrd.sha512 b/Testing/Data/Input/RA-Slice-Short.nrrd.sha512
new file mode 100644
index 0000000..c05d63e
--- /dev/null
+++ b/Testing/Data/Input/RA-Slice-Short.nrrd.sha512
@@ -0,0 +1 @@
+0db1a79b435fe6237c0d99c05828080c477fed354d35e31cb49ae2e570570f2031622ee20b8e6c75aabb0fe413b8946349ced6ebfa1380b6e54b55f5d3f1c4c8
diff --git a/Testing/Data/Input/RA-Slice-Short.png.md5 b/Testing/Data/Input/RA-Slice-Short.png.md5
new file mode 100644
index 0000000..aab9aaf
--- /dev/null
+++ b/Testing/Data/Input/RA-Slice-Short.png.md5
@@ -0,0 +1 @@
+c6032ffd5d006e092204d195d5bd7f66
diff --git a/Testing/Data/Input/RA-Slice-Short.png.sha512 b/Testing/Data/Input/RA-Slice-Short.png.sha512
new file mode 100644
index 0000000..a8d2436
--- /dev/null
+++ b/Testing/Data/Input/RA-Slice-Short.png.sha512
@@ -0,0 +1 @@
+ff3714e8134dac36a1b4b7aaf3933a29f3ac4bf7ba76b5590df7648c3f69c358017dda393b027ceb529830c917ee92bf0ed69665299a1f4cd427b86802d347f8
diff --git a/Testing/Data/Input/Ramp-Down-Short.nrrd.md5 b/Testing/Data/Input/Ramp-Down-Short.nrrd.md5
new file mode 100644
index 0000000..9be4b91
--- /dev/null
+++ b/Testing/Data/Input/Ramp-Down-Short.nrrd.md5
@@ -0,0 +1 @@
+a96ab975b6dcca318a554ae586e77bcc
\ No newline at end of file
diff --git a/Testing/Data/Input/Ramp-Down-Short.nrrd.sha512 b/Testing/Data/Input/Ramp-Down-Short.nrrd.sha512
new file mode 100644
index 0000000..8cb41bd
--- /dev/null
+++ b/Testing/Data/Input/Ramp-Down-Short.nrrd.sha512
@@ -0,0 +1 @@
+645c7872c50d86dfd2738b4f66a7479aa0834d3616762099e518cd426ed449a4920ad5be4396b7343d62475a875cba4c3a81c575cdd7e5a392da6da8eea87893
diff --git a/Testing/Data/Input/Ramp-One-Zero-Float.nrrd.md5 b/Testing/Data/Input/Ramp-One-Zero-Float.nrrd.md5
new file mode 100644
index 0000000..6c95a66
--- /dev/null
+++ b/Testing/Data/Input/Ramp-One-Zero-Float.nrrd.md5
@@ -0,0 +1 @@
+020ea32135e137235cb3031607fca59a
\ No newline at end of file
diff --git a/Testing/Data/Input/Ramp-One-Zero-Float.nrrd.sha512 b/Testing/Data/Input/Ramp-One-Zero-Float.nrrd.sha512
new file mode 100644
index 0000000..d0a43d2
--- /dev/null
+++ b/Testing/Data/Input/Ramp-One-Zero-Float.nrrd.sha512
@@ -0,0 +1 @@
+e3172b4bae0ef0e71982c49489a4d21be9752ac4f60a48313f0bb8fe7814b152b08f21314c4719ab274102ab061e1a8e49cac98d654595c5ef33b21423bcf508
diff --git a/Testing/Data/Input/Ramp-Up-Short.nrrd.md5 b/Testing/Data/Input/Ramp-Up-Short.nrrd.md5
new file mode 100644
index 0000000..a2013ca
--- /dev/null
+++ b/Testing/Data/Input/Ramp-Up-Short.nrrd.md5
@@ -0,0 +1 @@
+35c331f3f43dfe1dd5f3825b0d2707ef
\ No newline at end of file
diff --git a/Testing/Data/Input/Ramp-Up-Short.nrrd.sha512 b/Testing/Data/Input/Ramp-Up-Short.nrrd.sha512
new file mode 100644
index 0000000..b64ae47
--- /dev/null
+++ b/Testing/Data/Input/Ramp-Up-Short.nrrd.sha512
@@ -0,0 +1 @@
+7c4ba39e08f0cabd60208b37f464a56d872f5ac02ef2d581948f89a79aa49cf65b4e94314c977ac295ce164096190ff77ea57638f41633e35a2a28d58dcc30d3
diff --git a/Testing/Data/Input/Ramp-Zero-One-Float.nrrd.md5 b/Testing/Data/Input/Ramp-Zero-One-Float.nrrd.md5
new file mode 100644
index 0000000..44cf76b
--- /dev/null
+++ b/Testing/Data/Input/Ramp-Zero-One-Float.nrrd.md5
@@ -0,0 +1 @@
+b040816b6e4da7984bf0187944789163
\ No newline at end of file
diff --git a/Testing/Data/Input/Ramp-Zero-One-Float.nrrd.sha512 b/Testing/Data/Input/Ramp-Zero-One-Float.nrrd.sha512
new file mode 100644
index 0000000..f62b66c
--- /dev/null
+++ b/Testing/Data/Input/Ramp-Zero-One-Float.nrrd.sha512
@@ -0,0 +1 @@
+90b22dad41967697889ff0f6859d134023d9cabd06fa0b4f2d2aee8717f43704956b482ebaf3d03ad90bcfe3d8e878b56a6539713f42383120854c2fb3b3c6e2
diff --git a/Testing/Data/Input/STAPLE1-binary.png.md5 b/Testing/Data/Input/STAPLE1-binary.png.md5
new file mode 100644
index 0000000..19af73f
--- /dev/null
+++ b/Testing/Data/Input/STAPLE1-binary.png.md5
@@ -0,0 +1 @@
+e25c66ea26dce2141c7857ee05392857
diff --git a/Testing/Data/Input/STAPLE1-binary.png.sha512 b/Testing/Data/Input/STAPLE1-binary.png.sha512
new file mode 100644
index 0000000..3777990
--- /dev/null
+++ b/Testing/Data/Input/STAPLE1-binary.png.sha512
@@ -0,0 +1 @@
+d7bda62c4c658e191087ddb422cf2614ae0cb48cb0ae0f4c62e9c6e63a7db75ee27fcf997f000b37f0c1422bda3b481fe243cd18ca1de11ec7ac8f708e7f7f34
diff --git a/Testing/Data/Input/STAPLE1.png.md5 b/Testing/Data/Input/STAPLE1.png.md5
new file mode 100644
index 0000000..c1caa82
--- /dev/null
+++ b/Testing/Data/Input/STAPLE1.png.md5
@@ -0,0 +1 @@
+a5f3879544aa56e12bfa2d3f7fdf155b
diff --git a/Testing/Data/Input/STAPLE1.png.sha512 b/Testing/Data/Input/STAPLE1.png.sha512
new file mode 100644
index 0000000..97ecb28
--- /dev/null
+++ b/Testing/Data/Input/STAPLE1.png.sha512
@@ -0,0 +1 @@
+7ba8b5c96c1ea8b4723c4ff5c7216ed50f98020f1bdd64a70d0889695eab139371a41780e94c3f39080a9baa33d9505ed8b9b5d060e65e40b38230eca4d587dc
diff --git a/Testing/Data/Input/STAPLE2-binary.png.md5 b/Testing/Data/Input/STAPLE2-binary.png.md5
new file mode 100644
index 0000000..17485e8
--- /dev/null
+++ b/Testing/Data/Input/STAPLE2-binary.png.md5
@@ -0,0 +1 @@
+103bda839c77c0fafac2cc0ef3fc3a6e
diff --git a/Testing/Data/Input/STAPLE2-binary.png.sha512 b/Testing/Data/Input/STAPLE2-binary.png.sha512
new file mode 100644
index 0000000..f27c465
--- /dev/null
+++ b/Testing/Data/Input/STAPLE2-binary.png.sha512
@@ -0,0 +1 @@
+bc108aa26944f04e3447d76b2785083f6ccb361784538fd1f48ed98829834d11fd2e56b205157d8c553f129f01e217e176999670d22509c6ba32e62efbdcc045
diff --git a/Testing/Data/Input/STAPLE2.png.md5 b/Testing/Data/Input/STAPLE2.png.md5
new file mode 100644
index 0000000..f2fa930
--- /dev/null
+++ b/Testing/Data/Input/STAPLE2.png.md5
@@ -0,0 +1 @@
+591eeda7a3b79c067532360bf069ee3e
diff --git a/Testing/Data/Input/STAPLE2.png.sha512 b/Testing/Data/Input/STAPLE2.png.sha512
new file mode 100644
index 0000000..160cf0e
--- /dev/null
+++ b/Testing/Data/Input/STAPLE2.png.sha512
@@ -0,0 +1 @@
+ec2c7716a38920339ce9065a93d19376a1bdb31e5d8ebfb919b8ea9b84e4e408a1fcc246c1f2098404a6ae66e2cea5e697722f4a0e82b6686df09b9eca36ce01
diff --git a/Testing/Data/Input/SmallWhiteCircle.nrrd.md5 b/Testing/Data/Input/SmallWhiteCircle.nrrd.md5
new file mode 100644
index 0000000..d0669dc
--- /dev/null
+++ b/Testing/Data/Input/SmallWhiteCircle.nrrd.md5
@@ -0,0 +1 @@
+ac608d7f74d0574a7a43f53104cef7c5
\ No newline at end of file
diff --git a/Testing/Data/Input/SmallWhiteCircle.nrrd.sha512 b/Testing/Data/Input/SmallWhiteCircle.nrrd.sha512
new file mode 100644
index 0000000..891cd79
--- /dev/null
+++ b/Testing/Data/Input/SmallWhiteCircle.nrrd.sha512
@@ -0,0 +1 @@
+02144b73f2e105373868dfc1ca73b1306e7a546ef359037c84fcd3d79ed36a388347cd5ae053ea24b6eef3e1585d03bf3ea1466847fe95f206b0463b883e2bd8
diff --git a/Testing/Data/Input/SmallWhiteCircle_Float.nrrd.md5 b/Testing/Data/Input/SmallWhiteCircle_Float.nrrd.md5
new file mode 100644
index 0000000..fdd8bb1
--- /dev/null
+++ b/Testing/Data/Input/SmallWhiteCircle_Float.nrrd.md5
@@ -0,0 +1 @@
+2de60c03217b0e6684b8a69bdfe48ec3
\ No newline at end of file
diff --git a/Testing/Data/Input/SmallWhiteCircle_Float.nrrd.sha512 b/Testing/Data/Input/SmallWhiteCircle_Float.nrrd.sha512
new file mode 100644
index 0000000..74c1fe8
--- /dev/null
+++ b/Testing/Data/Input/SmallWhiteCircle_Float.nrrd.sha512
@@ -0,0 +1 @@
+799502000b98b92e7a43813669558ba526da39b96e5e9e3713dca56048974c082080e8622ee947b7d0f7f8cd527f9d562575df41dd354af6b7301f809dda5bf3
diff --git a/Testing/Data/Input/VM1111Shrink-RGB.png.md5 b/Testing/Data/Input/VM1111Shrink-RGB.png.md5
new file mode 100644
index 0000000..288bc4d
--- /dev/null
+++ b/Testing/Data/Input/VM1111Shrink-RGB.png.md5
@@ -0,0 +1 @@
+baff8620519e23330f77c65b0fe5bc01
diff --git a/Testing/Data/Input/VM1111Shrink-RGB.png.sha512 b/Testing/Data/Input/VM1111Shrink-RGB.png.sha512
new file mode 100644
index 0000000..cf1572e
--- /dev/null
+++ b/Testing/Data/Input/VM1111Shrink-RGB.png.sha512
@@ -0,0 +1 @@
+b7be0879ee7a9d1d9c378cd34544f0752a0c6369682f58b218146caedac5aae2735d8c5b7a383cdf8c55f12978adcfda3ea25d00e37d837afa9762570f8e174c
diff --git a/Testing/Data/Input/VM1111Shrink-RGBFloat.nrrd.md5 b/Testing/Data/Input/VM1111Shrink-RGBFloat.nrrd.md5
new file mode 100644
index 0000000..362cac1
--- /dev/null
+++ b/Testing/Data/Input/VM1111Shrink-RGBFloat.nrrd.md5
@@ -0,0 +1 @@
+b7634fc4ab8598e937f2245d15f4155c
\ No newline at end of file
diff --git a/Testing/Data/Input/VM1111Shrink-RGBFloat.nrrd.sha512 b/Testing/Data/Input/VM1111Shrink-RGBFloat.nrrd.sha512
new file mode 100644
index 0000000..4d37725
--- /dev/null
+++ b/Testing/Data/Input/VM1111Shrink-RGBFloat.nrrd.sha512
@@ -0,0 +1 @@
+99a240a4aa3185f782fee6a0d50e4671caecf021e2c4f5ea8211dbc60e13035bbc4436cf2e60dbc44f24f85f319334898df419752bbc80e338fa0d9759c9121c
diff --git a/Testing/Data/Input/VM1111Shrink-RGBNorm.nrrd.md5 b/Testing/Data/Input/VM1111Shrink-RGBNorm.nrrd.md5
new file mode 100644
index 0000000..c28e39e
--- /dev/null
+++ b/Testing/Data/Input/VM1111Shrink-RGBNorm.nrrd.md5
@@ -0,0 +1 @@
+efd7cf9f6ce3b3e7e235413092371873
\ No newline at end of file
diff --git a/Testing/Data/Input/VM1111Shrink-RGBNorm.nrrd.sha512 b/Testing/Data/Input/VM1111Shrink-RGBNorm.nrrd.sha512
new file mode 100644
index 0000000..5cc7576
--- /dev/null
+++ b/Testing/Data/Input/VM1111Shrink-RGBNorm.nrrd.sha512
@@ -0,0 +1 @@
+8eb4115f9fe5a6bd2eaa60241f24acff5dd2389b17b82227fe88cb08500b45fa7d5646d1393e7ffe857875289ac02d90550f0069524ac37f81b3344945fba59a
diff --git a/Testing/Data/Input/VM1111Shrink-dis1.nrrd.md5 b/Testing/Data/Input/VM1111Shrink-dis1.nrrd.md5
new file mode 100644
index 0000000..2773c45
--- /dev/null
+++ b/Testing/Data/Input/VM1111Shrink-dis1.nrrd.md5
@@ -0,0 +1 @@
+b8467e10c1f01ca47ab25324f95a1a00
diff --git a/Testing/Data/Input/VM1111Shrink-dis1.nrrd.sha512 b/Testing/Data/Input/VM1111Shrink-dis1.nrrd.sha512
new file mode 100644
index 0000000..4ffe54b
--- /dev/null
+++ b/Testing/Data/Input/VM1111Shrink-dis1.nrrd.sha512
@@ -0,0 +1 @@
+400f55eed3fd0e4d9fffefbd52a18a4cf52f9e489e80e7f96cbea01b60f8eb7816284827fcb566ff9a60fd9292f9744cbd8dce335b7bcf9930cd18b32592b7ee
diff --git a/Testing/Data/Input/VM1111Shrink-mask.png.md5 b/Testing/Data/Input/VM1111Shrink-mask.png.md5
new file mode 100644
index 0000000..448e8bd
--- /dev/null
+++ b/Testing/Data/Input/VM1111Shrink-mask.png.md5
@@ -0,0 +1 @@
+887994459da44cf9fb4f3f0db2987d29
diff --git a/Testing/Data/Input/VM1111Shrink-mask.png.sha512 b/Testing/Data/Input/VM1111Shrink-mask.png.sha512
new file mode 100644
index 0000000..d3d5f46
--- /dev/null
+++ b/Testing/Data/Input/VM1111Shrink-mask.png.sha512
@@ -0,0 +1 @@
+0585fc335aa709f3e6257880f4e618503b41663444bd57b077e8c7c3c14d65078b39869c5b9827c4b08a3e28eaaf29e331b7d597f7fb1e4d92358f7e5ed20738
diff --git a/Testing/Data/Input/WhiteDots.png.md5 b/Testing/Data/Input/WhiteDots.png.md5
new file mode 100644
index 0000000..aaf85f0
--- /dev/null
+++ b/Testing/Data/Input/WhiteDots.png.md5
@@ -0,0 +1 @@
+55d916b5b65201c6e9c5d362899bc808
diff --git a/Testing/Data/Input/WhiteDots.png.sha512 b/Testing/Data/Input/WhiteDots.png.sha512
new file mode 100644
index 0000000..5382a2d
--- /dev/null
+++ b/Testing/Data/Input/WhiteDots.png.sha512
@@ -0,0 +1 @@
+5627e06681c2fe30631cf9057d132644341b0efb0f8bd64069871dc8c62d38beeb0f66aa58aa57b0007472c26c76a33285d323f2ae144e3d58f44479cf6d35b5
diff --git a/Testing/Data/Input/cthead1-Float.mha.md5 b/Testing/Data/Input/cthead1-Float.mha.md5
new file mode 100644
index 0000000..8153004
--- /dev/null
+++ b/Testing/Data/Input/cthead1-Float.mha.md5
@@ -0,0 +1 @@
+25de5707b18c0c684fd5fa30351bf787
\ No newline at end of file
diff --git a/Testing/Data/Input/cthead1-Float.mha.sha512 b/Testing/Data/Input/cthead1-Float.mha.sha512
new file mode 100644
index 0000000..0636239
--- /dev/null
+++ b/Testing/Data/Input/cthead1-Float.mha.sha512
@@ -0,0 +1 @@
+6a99d4f3edaf5238ab585f9b8445720a8d71157157acb0a461ca568e10ece671fb8f2af3d348d6cbe5b43560536f149cc1a4102ce9a4b8b4936ae23e3d9101b8
diff --git a/Testing/Data/Input/cthead1-dis1.nrrd.md5 b/Testing/Data/Input/cthead1-dis1.nrrd.md5
new file mode 100644
index 0000000..37e1214
--- /dev/null
+++ b/Testing/Data/Input/cthead1-dis1.nrrd.md5
@@ -0,0 +1 @@
+b76b61c345883fc9870a1ec9839bdf08
diff --git a/Testing/Data/Input/cthead1-dis1.nrrd.sha512 b/Testing/Data/Input/cthead1-dis1.nrrd.sha512
new file mode 100644
index 0000000..8a85b91
--- /dev/null
+++ b/Testing/Data/Input/cthead1-dis1.nrrd.sha512
@@ -0,0 +1 @@
+7ef2b0c77a9ec5e4f06b6e4977614a14cafd9abe3735e59b69e19deaaf4ce09555585663bfafb106978d8317b8d024f8b0fdcd616b73508760fd4473ba16d708
diff --git a/Testing/Data/Input/cthead1-grad-mag.nrrd.md5 b/Testing/Data/Input/cthead1-grad-mag.nrrd.md5
new file mode 100644
index 0000000..c895c6f
--- /dev/null
+++ b/Testing/Data/Input/cthead1-grad-mag.nrrd.md5
@@ -0,0 +1 @@
+9b4b931636f25786ee9e13436f26a5b7
\ No newline at end of file
diff --git a/Testing/Data/Input/cthead1-grad-mag.nrrd.sha512 b/Testing/Data/Input/cthead1-grad-mag.nrrd.sha512
new file mode 100644
index 0000000..7dc393f
--- /dev/null
+++ b/Testing/Data/Input/cthead1-grad-mag.nrrd.sha512
@@ -0,0 +1 @@
+4ea626bdb5618e1da0e91997800a5ef9d88af0c7106ee540c9197d8f2a4a3253ed1581c99d5921b06dbe173a93ba7e780503e0b88f781283fa2534e573bfd1bb
diff --git a/Testing/Data/Input/cthead1-ls-seed.nrrd.md5 b/Testing/Data/Input/cthead1-ls-seed.nrrd.md5
new file mode 100644
index 0000000..e3db754
--- /dev/null
+++ b/Testing/Data/Input/cthead1-ls-seed.nrrd.md5
@@ -0,0 +1 @@
+c4d636321830bfbf1a623d315a45cb2d
\ No newline at end of file
diff --git a/Testing/Data/Input/cthead1-ls-seed.nrrd.sha512 b/Testing/Data/Input/cthead1-ls-seed.nrrd.sha512
new file mode 100644
index 0000000..18275b4
--- /dev/null
+++ b/Testing/Data/Input/cthead1-ls-seed.nrrd.sha512
@@ -0,0 +1 @@
+2fca86796ea1a37f958a7457ada57ca7b92e7fa06db934943911c00f75d5252c97e1c2d9a401d258f9ae636fa44ece4114de685b422a9ef916ead2331d1942d4
diff --git a/Testing/Data/Input/cthead1-marker.png.md5 b/Testing/Data/Input/cthead1-marker.png.md5
new file mode 100644
index 0000000..1786a76
--- /dev/null
+++ b/Testing/Data/Input/cthead1-marker.png.md5
@@ -0,0 +1 @@
+e06d0a2bdb16ac6ed5ceb5618e88d5e6
diff --git a/Testing/Data/Input/cthead1-marker.png.sha512 b/Testing/Data/Input/cthead1-marker.png.sha512
new file mode 100644
index 0000000..b3db96d
--- /dev/null
+++ b/Testing/Data/Input/cthead1-marker.png.sha512
@@ -0,0 +1 @@
+3426b3cd0e4217dcd6fd37233c5e86eca111af02a91fb961df46debe45a64aada5ab21fd518358390666550d4dfecfb84744769509c0fd9f5623c2d24b8b1475
diff --git a/Testing/Data/Input/cthead1-mask.png.md5 b/Testing/Data/Input/cthead1-mask.png.md5
new file mode 100644
index 0000000..b28a66a
--- /dev/null
+++ b/Testing/Data/Input/cthead1-mask.png.md5
@@ -0,0 +1 @@
+324b302006c8897110167b794a1ff65e
diff --git a/Testing/Data/Input/cthead1-mask.png.sha512 b/Testing/Data/Input/cthead1-mask.png.sha512
new file mode 100644
index 0000000..e9dba07
--- /dev/null
+++ b/Testing/Data/Input/cthead1-mask.png.sha512
@@ -0,0 +1 @@
+5f130baea5187237996ed413c456d60da7bdb34da282829ff83a5949a29b044e33af73948beebac4999ed5028de211a8983be0d576f5f35da1d68b2c36628861
diff --git a/Testing/Data/Input/cthead1-seed.png.md5 b/Testing/Data/Input/cthead1-seed.png.md5
new file mode 100644
index 0000000..ecb03f2
--- /dev/null
+++ b/Testing/Data/Input/cthead1-seed.png.md5
@@ -0,0 +1 @@
+46b46ab71376789e5e998d0591f08818
diff --git a/Testing/Data/Input/cthead1-seed.png.sha512 b/Testing/Data/Input/cthead1-seed.png.sha512
new file mode 100644
index 0000000..5b38548
--- /dev/null
+++ b/Testing/Data/Input/cthead1-seed.png.sha512
@@ -0,0 +1 @@
+1a0af8300a0db48e17afc5f9ba53488248c4182e4e4afdcb58dc3026b7717c892019f507bb3a15c606ba4f53108e714b2933083377e86175a3e2e10616bf556e
diff --git a/Testing/Data/Input/cthead1.png.md5 b/Testing/Data/Input/cthead1.png.md5
new file mode 100644
index 0000000..1602731
--- /dev/null
+++ b/Testing/Data/Input/cthead1.png.md5
@@ -0,0 +1 @@
+b23198c9e44a48edfd5b83f075eb455c
diff --git a/Testing/Data/Input/cthead1.png.sha512 b/Testing/Data/Input/cthead1.png.sha512
new file mode 100644
index 0000000..385939c
--- /dev/null
+++ b/Testing/Data/Input/cthead1.png.sha512
@@ -0,0 +1 @@
+07fde89ac38926e4cd1746282071c8d3fb0b6222aed9d70f5fdcabb10a8caee3ad8c040d103924e55aa484d6f8ab5310cde52a6a0ecf83a9d87f0501f23c0cc1
diff --git a/Testing/Data/Input/displacement.mha.md5 b/Testing/Data/Input/displacement.mha.md5
new file mode 100644
index 0000000..c7f0733
--- /dev/null
+++ b/Testing/Data/Input/displacement.mha.md5
@@ -0,0 +1 @@
+d924c8865957a8b9be899ed66dd438de
diff --git a/Testing/Data/Input/displacement.mha.sha512 b/Testing/Data/Input/displacement.mha.sha512
new file mode 100644
index 0000000..0e22174
--- /dev/null
+++ b/Testing/Data/Input/displacement.mha.sha512
@@ -0,0 +1 @@
+07c0096db828fb7adfb3ac5f0ffdad77125502e5231c2ebf4439efaebec0b32bdd7ccc1273d994e7c0d1c771dc6a04d4f3e0751d0949d195c823cc32b77997f4
diff --git a/Testing/Data/Input/fruit.png.md5 b/Testing/Data/Input/fruit.png.md5
new file mode 100644
index 0000000..0434072
--- /dev/null
+++ b/Testing/Data/Input/fruit.png.md5
@@ -0,0 +1 @@
+fff3603333662de0b5344531810017d8
diff --git a/Testing/Data/Input/fruit.png.sha512 b/Testing/Data/Input/fruit.png.sha512
new file mode 100644
index 0000000..472b27a
--- /dev/null
+++ b/Testing/Data/Input/fruit.png.sha512
@@ -0,0 +1 @@
+a5bd80d89fd0f99307662ce8fb9566e6422d87061a11510d9ecf922e276551895bbb2890cc1334415f79a799d581090a53d509b0532e3753508584525066ec01
diff --git a/Testing/Data/Input/noisy-vector-grid.nrrd.md5 b/Testing/Data/Input/noisy-vector-grid.nrrd.md5
new file mode 100644
index 0000000..6fa9d8a
--- /dev/null
+++ b/Testing/Data/Input/noisy-vector-grid.nrrd.md5
@@ -0,0 +1 @@
+c152ebd08f40d65ddb9214fe2acc721e
\ No newline at end of file
diff --git a/Testing/Data/Input/noisy-vector-grid.nrrd.sha512 b/Testing/Data/Input/noisy-vector-grid.nrrd.sha512
new file mode 100644
index 0000000..a631569
--- /dev/null
+++ b/Testing/Data/Input/noisy-vector-grid.nrrd.sha512
@@ -0,0 +1 @@
+ccc897da66706d456963e7213b275bf23eab439aa065ac5e4e12fca456899634f8bd92d9bc8ae3bcbd68a3e9cf0775e994a3293779415ad6c8d5ef3e92689601
diff --git a/Testing/Data/Input/r16slice.nii.gz b/Testing/Data/Input/r16slice.nii.gz
new file mode 100644
index 0000000..a7ebdc7
Binary files /dev/null and b/Testing/Data/Input/r16slice.nii.gz differ
diff --git a/Testing/Data/Input/r16slice_rigid.nii.gz b/Testing/Data/Input/r16slice_rigid.nii.gz
new file mode 100644
index 0000000..0c9e294
Binary files /dev/null and b/Testing/Data/Input/r16slice_rigid.nii.gz differ
diff --git a/Testing/Data/Input/r64slice.nii.gz b/Testing/Data/Input/r64slice.nii.gz
new file mode 100644
index 0000000..7af9333
Binary files /dev/null and b/Testing/Data/Input/r64slice.nii.gz differ
diff --git a/Testing/Data/Input/simple-label-b.png.md5 b/Testing/Data/Input/simple-label-b.png.md5
new file mode 100644
index 0000000..12d84fe
--- /dev/null
+++ b/Testing/Data/Input/simple-label-b.png.md5
@@ -0,0 +1 @@
+4cec8cbcd795d40d7be1c3d920e1e024
diff --git a/Testing/Data/Input/simple-label-b.png.sha512 b/Testing/Data/Input/simple-label-b.png.sha512
new file mode 100644
index 0000000..4322540
--- /dev/null
+++ b/Testing/Data/Input/simple-label-b.png.sha512
@@ -0,0 +1 @@
+9da37ea669b341bb338e622fcd08f5ee808fecd98b4c1efcf44856382ce075e3f6855d2ef6a8586d7f5862555a1e19f1c10713d4403c2b86cdc71ef92f30cd4e
diff --git a/Testing/Data/Input/simple-label-c.png.md5 b/Testing/Data/Input/simple-label-c.png.md5
new file mode 100644
index 0000000..e2b2678
--- /dev/null
+++ b/Testing/Data/Input/simple-label-c.png.md5
@@ -0,0 +1 @@
+d4ca7f23ff5fc72c52ef3ad37d10f2cb
diff --git a/Testing/Data/Input/simple-label-c.png.sha512 b/Testing/Data/Input/simple-label-c.png.sha512
new file mode 100644
index 0000000..36ac2cc
--- /dev/null
+++ b/Testing/Data/Input/simple-label-c.png.sha512
@@ -0,0 +1 @@
+d36e231f72f4322126df9c5673578ecfb480e0bbfb1b2335c57a846c3a5eae684c96bfc250b5b77d72b9ec3114d0e558f77296405da917a4c3f73e8daa65c4f7
diff --git a/Testing/Data/Input/simple-label-d.png.md5 b/Testing/Data/Input/simple-label-d.png.md5
new file mode 100644
index 0000000..9f1e9bd
--- /dev/null
+++ b/Testing/Data/Input/simple-label-d.png.md5
@@ -0,0 +1 @@
+862d9806e7d6fced2ac0c06d52925b72
diff --git a/Testing/Data/Input/simple-label-d.png.sha512 b/Testing/Data/Input/simple-label-d.png.sha512
new file mode 100644
index 0000000..87e3ea7
--- /dev/null
+++ b/Testing/Data/Input/simple-label-d.png.sha512
@@ -0,0 +1 @@
+02f690b4a5074f25b3caf79b59ff311a5edaf3dacaceb217953356f32aa0282f9e819d96e75cf915db79cb4ff3c229cb135bf46dfd0585a61135786652893804
diff --git a/Testing/Data/Input/simple-label-e.png.md5 b/Testing/Data/Input/simple-label-e.png.md5
new file mode 100644
index 0000000..c38a237
--- /dev/null
+++ b/Testing/Data/Input/simple-label-e.png.md5
@@ -0,0 +1 @@
+97e5a051efb6d8691f867958da58baa4
diff --git a/Testing/Data/Input/simple-label-e.png.sha512 b/Testing/Data/Input/simple-label-e.png.sha512
new file mode 100644
index 0000000..7d38a25
--- /dev/null
+++ b/Testing/Data/Input/simple-label-e.png.sha512
@@ -0,0 +1 @@
+9671d28bafaa18a1183b971928cd7d5fb9fd27f6d11124ec11c791ad63928fb6cbcf33e475cf141cc5b4045acc573e2e0c8fe65329cbb50ea33d88cfdac3c187
diff --git a/Testing/Data/Input/xforms/affine_i_3.txt.md5 b/Testing/Data/Input/xforms/affine_i_3.txt.md5
new file mode 100644
index 0000000..e596ac6
--- /dev/null
+++ b/Testing/Data/Input/xforms/affine_i_3.txt.md5
@@ -0,0 +1 @@
+a55260196088347b84534faeed9d8233
\ No newline at end of file
diff --git a/Testing/Data/Input/xforms/affine_i_3.txt.sha512 b/Testing/Data/Input/xforms/affine_i_3.txt.sha512
new file mode 100644
index 0000000..550bd72
--- /dev/null
+++ b/Testing/Data/Input/xforms/affine_i_3.txt.sha512
@@ -0,0 +1 @@
+099aade14db5606240bd079fe022dd306344ac63d9216a81122e35615f419a3329648ca5525f9c25afe2442ce70d0f5875b71034fa1bd55224aa0ea8452e0ea7
diff --git a/Testing/Data/Input/xforms/composite_i_3.txt.md5 b/Testing/Data/Input/xforms/composite_i_3.txt.md5
new file mode 100644
index 0000000..247e739
--- /dev/null
+++ b/Testing/Data/Input/xforms/composite_i_3.txt.md5
@@ -0,0 +1 @@
+434dabc647640c80c239440b49e8ee13
\ No newline at end of file
diff --git a/Testing/Data/Input/xforms/composite_i_3.txt.sha512 b/Testing/Data/Input/xforms/composite_i_3.txt.sha512
new file mode 100644
index 0000000..f1cf9a3
--- /dev/null
+++ b/Testing/Data/Input/xforms/composite_i_3.txt.sha512
@@ -0,0 +1 @@
+131a0f49778623db47cf60d682cea60d4a43e26c399f9d1d9da964c078484c2a37dfefdf2421ce5cf2df85a13674365e28ec3a65ee08592ff827e6bf3c8bb829
diff --git a/Testing/Data/Input/xforms/displacement_-13x-17y.txt.md5 b/Testing/Data/Input/xforms/displacement_-13x-17y.txt.md5
new file mode 100644
index 0000000..1930e50
--- /dev/null
+++ b/Testing/Data/Input/xforms/displacement_-13x-17y.txt.md5
@@ -0,0 +1 @@
+0ab6f55004ed273f0666b5d03cb4c95b
diff --git a/Testing/Data/Input/xforms/displacement_-13x-17y.txt.sha512 b/Testing/Data/Input/xforms/displacement_-13x-17y.txt.sha512
new file mode 100644
index 0000000..db6bc57
--- /dev/null
+++ b/Testing/Data/Input/xforms/displacement_-13x-17y.txt.sha512
@@ -0,0 +1 @@
+a3c78d3d8dba0d6120e0b890c5a8ce3e628a978536a70db812b60b98ae5220d005dcdaa0c1a0f70d516503051e5abd543a735808d6a37a51e18f16a883d6c80d
diff --git a/Testing/Data/Input/xforms/i_3.txt.md5 b/Testing/Data/Input/xforms/i_3.txt.md5
new file mode 100644
index 0000000..30b0382
--- /dev/null
+++ b/Testing/Data/Input/xforms/i_3.txt.md5
@@ -0,0 +1 @@
+15d4c05e69d3fb2e5bc879fd7190a440
\ No newline at end of file
diff --git a/Testing/Data/Input/xforms/i_3.txt.sha512 b/Testing/Data/Input/xforms/i_3.txt.sha512
new file mode 100644
index 0000000..fceefce
--- /dev/null
+++ b/Testing/Data/Input/xforms/i_3.txt.sha512
@@ -0,0 +1 @@
+365925175dbf26a1505c3f1b676e54cbad477c2af92bb654885fd1e01a7b8dcc4c7991527897f4b24c74dd6381969c5125105e18ab917d7125f3fa90235c19f2
diff --git a/Testing/Data/Input/xforms/quaternion_rigid_i_3.txt.md5 b/Testing/Data/Input/xforms/quaternion_rigid_i_3.txt.md5
new file mode 100644
index 0000000..161f1f1
--- /dev/null
+++ b/Testing/Data/Input/xforms/quaternion_rigid_i_3.txt.md5
@@ -0,0 +1 @@
+095fd41dca46f9651e623c62aec8989e
\ No newline at end of file
diff --git a/Testing/Data/Input/xforms/quaternion_rigid_i_3.txt.sha512 b/Testing/Data/Input/xforms/quaternion_rigid_i_3.txt.sha512
new file mode 100644
index 0000000..c353633
--- /dev/null
+++ b/Testing/Data/Input/xforms/quaternion_rigid_i_3.txt.sha512
@@ -0,0 +1 @@
+72b95c86d5a51ae9794b7f6965ef9f1e1a931b3dd87be6fc6f872bdda02e952287b290db62d3c5e2dedeaefadb2ca6abc29c1c88f5c02361f2a77c9221847b07
diff --git a/Testing/Data/Input/xforms/scale_i_3.txt.md5 b/Testing/Data/Input/xforms/scale_i_3.txt.md5
new file mode 100644
index 0000000..8781f27
--- /dev/null
+++ b/Testing/Data/Input/xforms/scale_i_3.txt.md5
@@ -0,0 +1 @@
+b6ad0c0c35458afeb93dd0b1d46679dc
diff --git a/Testing/Data/Input/xforms/scale_i_3.txt.sha512 b/Testing/Data/Input/xforms/scale_i_3.txt.sha512
new file mode 100644
index 0000000..67305c4
--- /dev/null
+++ b/Testing/Data/Input/xforms/scale_i_3.txt.sha512
@@ -0,0 +1 @@
+3f9995204026eaf4f5d34449e7d3f52cc4ba1828a51fd6f210a031e004292a3c61c0299d9b6770226500ca2a8e5235a146983f5b83d388fa6dd781d3f7b9918c
diff --git a/Testing/Data/Input/xforms/scale_logarithmic_i_3.txt.md5 b/Testing/Data/Input/xforms/scale_logarithmic_i_3.txt.md5
new file mode 100644
index 0000000..74e0d9b
--- /dev/null
+++ b/Testing/Data/Input/xforms/scale_logarithmic_i_3.txt.md5
@@ -0,0 +1 @@
+6ce23a65b0e176d3d1bf2ea68c2f7033
diff --git a/Testing/Data/Input/xforms/scale_logarithmic_i_3.txt.sha512 b/Testing/Data/Input/xforms/scale_logarithmic_i_3.txt.sha512
new file mode 100644
index 0000000..5ceecc3
--- /dev/null
+++ b/Testing/Data/Input/xforms/scale_logarithmic_i_3.txt.sha512
@@ -0,0 +1 @@
+1ec920538e72b01d7f119fd5965249c7febf88bc5a69765549dfd36eea59ba493aeac26466aeb4843a405694130fa45654b32336a01767d60bb4338b9051682d
diff --git a/Testing/Data/Input/xforms/translation_-13x-17y.txt.md5 b/Testing/Data/Input/xforms/translation_-13x-17y.txt.md5
new file mode 100644
index 0000000..b16d5af
--- /dev/null
+++ b/Testing/Data/Input/xforms/translation_-13x-17y.txt.md5
@@ -0,0 +1 @@
+a53598c8213ff83630739e1ab1621b2f
diff --git a/Testing/Data/Input/xforms/translation_-13x-17y.txt.sha512 b/Testing/Data/Input/xforms/translation_-13x-17y.txt.sha512
new file mode 100644
index 0000000..17590ea
--- /dev/null
+++ b/Testing/Data/Input/xforms/translation_-13x-17y.txt.sha512
@@ -0,0 +1 @@
+73ab33c51131568958efb629c266a512bfe3c5ce4f8673085a279c56011427f9ca08fa71502aa435f0b8d24415c1b1293a3ad56cf019279477529b25915b3910
diff --git a/Testing/Data/Input/xforms/translation_i_3.txt.md5 b/Testing/Data/Input/xforms/translation_i_3.txt.md5
new file mode 100644
index 0000000..962ca78
--- /dev/null
+++ b/Testing/Data/Input/xforms/translation_i_3.txt.md5
@@ -0,0 +1 @@
+08a33cd9429e453c57eeb8ff242cc489
\ No newline at end of file
diff --git a/Testing/Data/Input/xforms/translation_i_3.txt.sha512 b/Testing/Data/Input/xforms/translation_i_3.txt.sha512
new file mode 100644
index 0000000..adcdd0f
--- /dev/null
+++ b/Testing/Data/Input/xforms/translation_i_3.txt.sha512
@@ -0,0 +1 @@
+009083f12a6a5a906e92b4872593842d6405a84228749850a539285421ee3b357e8664f5680454a3d713b56de744303f418d1809761d43e48faca4edb2f068bc
diff --git a/Testing/Data/Input/xforms/versor_i_3.txt.md5 b/Testing/Data/Input/xforms/versor_i_3.txt.md5
new file mode 100644
index 0000000..e3aee5c
--- /dev/null
+++ b/Testing/Data/Input/xforms/versor_i_3.txt.md5
@@ -0,0 +1 @@
+efae3d661dd824cf11d6233e0c00889f
\ No newline at end of file
diff --git a/Testing/Data/Input/xforms/versor_i_3.txt.sha512 b/Testing/Data/Input/xforms/versor_i_3.txt.sha512
new file mode 100644
index 0000000..71166dd
--- /dev/null
+++ b/Testing/Data/Input/xforms/versor_i_3.txt.sha512
@@ -0,0 +1 @@
+972b0002e86ec2248ba30469375c46edefffb17df83e0eb9e4bacaa47ee610b982a80b3ee6d55620a67ce4d13ae412dc956b817a53ffa7b034c5cd773f3e43d8
diff --git a/Testing/Unit/AdditionalTests.cmake b/Testing/Unit/AdditionalTests.cmake
new file mode 100644
index 0000000..c30374a
--- /dev/null
+++ b/Testing/Unit/AdditionalTests.cmake
@@ -0,0 +1,89 @@
+
+#
+# Additional CXX tests
+#
+sitk_add_test(NAME CompareDriver1
+  COMMAND
+    $<TARGET_FILE:sitkCompareDriver>
+    --compareTransform
+      DATA{${SimpleITK_DATA_ROOT}/Input/xforms/translation_-13x-17y.txt}
+      DATA{${SimpleITK_DATA_ROOT}/Baseline/displacement_-13x-17y.mha}
+  )
+
+sitk_add_test(NAME CompareDriver2
+  COMMAND
+    ${CMAKE_COMMAND} -E echo "Running command"
+  TRANSFORM_COMPARE
+    DATA{${SimpleITK_DATA_ROOT}/Input/xforms/translation_-13x-17y.txt}
+    DATA{${SimpleITK_DATA_ROOT}/Baseline/displacement_-13x-17y.mha}
+  )
+
+
+#
+# Python Tests
+#
+sitk_add_python_test( Test.ImageTests
+  "${SimpleITK_SOURCE_DIR}/Testing/Unit/sitkImageTests.py" )
+
+sitk_add_python_test( Test.ImageIndexing
+  "${SimpleITK_SOURCE_DIR}/Testing/Unit/ImageIndexingTest.py" )
+
+sitk_add_python_test( Test.IOTest
+  "${SimpleITK_SOURCE_DIR}/Testing/Unit/IOTest.py"
+  "${TEST_HARNESS_TEMP_DIRECTORY}")
+
+# Numpy test.
+sitk_add_python_test( Test.Numpy
+  "${SimpleITK_SOURCE_DIR}/Testing/Unit/sitkNumpyArrayConversionTest.py"
+  )
+
+sitk_add_python_test( Test.ProcessObject
+  "${SimpleITK_SOURCE_DIR}/Testing/Unit/sitkProcessObjectTest.py"
+  )
+
+sitk_add_python_test( Test.ConcurrentImageRead
+  "${SimpleITK_SOURCE_DIR}/Testing/Unit/ConcurrentImageRead.py"
+  )
+
+sitk_add_python_test( Test.ArrayView
+  "${SimpleITK_SOURCE_DIR}/Testing/Unit/sitkGetArrayViewFromImageTest.py"
+  )
+
+
+#
+# Java Tests
+#
+sitk_add_java_test( ProcessObjectTest
+  "${SimpleITK_SOURCE_DIR}/Testing/Unit/sitkProcessObjectTest.java" )
+
+sitk_add_java_test( ImageTests
+  "${SimpleITK_SOURCE_DIR}/Testing/Unit/sitkImageTests.java" )
+
+#
+# R Tests
+#
+sitk_add_r_test( Arithmetic
+  "--file=${SimpleITK_SOURCE_DIR}/Testing/Unit/RArithmeticTest.R"
+  )
+sitk_add_r_test( PixelIndexing
+  "--file=${SimpleITK_SOURCE_DIR}/Testing/Unit/RPixelAccess.R"
+  )
+sitk_add_r_test( ImageListArguments
+  "--file=${SimpleITK_SOURCE_DIR}/Testing/Unit/RImageListArguments.R"
+  )
+sitk_add_r_test( SwigVectorConversion
+  "--file=${SimpleITK_SOURCE_DIR}/Testing/Unit/RSwigVectorConversionTests.R"
+  )
+sitk_add_r_test( ImageSlicing
+  "--file=${SimpleITK_SOURCE_DIR}/Testing/Unit/RImageSlicingTests.R"
+  )
+sitk_add_r_test( Transform
+  "--file=${SimpleITK_SOURCE_DIR}/Testing/Unit/RTransformTests.R"
+  )
+
+
+#
+# CSharp Tests
+#
+sitk_add_csharp_test( Test.ImageTest
+  "${SimpleITK_SOURCE_DIR}/Testing/Unit/CSharpImageTest.cs" )
diff --git a/Testing/Unit/CMakeLists.txt b/Testing/Unit/CMakeLists.txt
new file mode 100644
index 0000000..33a0073
--- /dev/null
+++ b/Testing/Unit/CMakeLists.txt
@@ -0,0 +1,299 @@
+# remove me
+set ( ITK_NO_IO_FACTORY_REGISTER_MANAGER 1 )
+include(${ITK_USE_FILE})
+
+include(sitkUseGTest)
+
+set ( SimpleITKUnitTestSourceBase
+  SimpleITKTestHarness.cxx
+  sitkImageCompare.cxx
+  sitkTransformCompare.cxx
+)
+add_library ( SimpleITKUnitTestBase STATIC ${SimpleITKUnitTestSourceBase} )
+add_dependencies( SimpleITKUnitTestBase BasicFiltersSourceCode  )
+target_link_libraries( SimpleITKUnitTestBase GTest::GTest ${SimpleITK_LIBRARIES} ${ITK_LIBRARIES} )
+target_include_directories( SimpleITKUnitTestBase
+  PUBLIC
+    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
+    $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
+)
+target_compile_options( SimpleITKUnitTestBase
+  PUBLIC
+    ${SimpleITK_PUBLIC_COMPILE_OPTIONS}
+  PRIVATE
+    ${SimpleITK_PRIVATE_COMPILE_OPTIONS} )
+
+
+add_executable( sitkCompareDriver sitkCompareDriver.cxx )
+target_link_libraries( sitkCompareDriver SimpleITKUnitTestBase ${SimpleITK_LIBRARIES} ${ITK_LIBRARIES})
+target_compile_options( sitkCompareDriver
+  PRIVATE
+    ${SimpleITK_PRIVATE_COMPILE_OPTIONS} )
+
+sitk_install_exported_target(sitkCompareDriver)
+
+# Find tests generated in the binary directory
+# To add a new file, just add it to this list.  Any GoogleTests inside will be automatically
+# added to ctest.
+set ( SimpleITKUnitTestSource
+  sitkImageTests.cxx
+  sitkCommonTests.cxx
+  sitkImageRegistrationMethodTests.cxx
+  sitkImageIOTests.cxx
+  sitkTypeListsTests.cxx
+  sitkBasicFiltersTests.cxx
+  sitkLabelStatisticsTest.cxx
+  sitkTransformToDisplacementFieldFilterTest.cxx
+  sitkOperatorTests.cxx
+  sitkExceptionsTests.cxx
+  sitkTransformTests.cxx
+  sitkImportImageTest.cxx
+  itkHashImageFilterTest.cxx
+  itkSliceImageFilterTest.cxx
+  )
+
+if ( SimpleITK_4D_IMAGES )
+  list(APPEND SimpleITKUnitTestSource sitkImage4DTests.cxx )
+endif()
+
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/CTest)
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/PythonTests)
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/LuaTests)
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/TclTests)
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/RTests)
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/RubyTests)
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/JavaTests)
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/CSharpTests)
+
+# Test data directory
+set(TEST_HARNESS_TEMP_DIRECTORY ${SimpleITK_BINARY_DIR}/Testing/Temporary)
+set(TEST_HARNESS_DATA_DIRECTORY ${SimpleITK_BINARY_DIR}/ExternalData/Testing/Data)
+
+set( ITK_TEST_DRIVER  "$<TARGET_FILE:itkTestDriver>" )
+
+# Adjust Python to run in the virtualenv
+set( PythonVirtualenvHome  ${SimpleITK_BINARY_DIR}/Testing/Installation/PythonVirtualenv )
+
+
+add_executable(SimpleITKUnitTestDriver0 SimpleITKUnitTestDriver.cxx ${SimpleITKUnitTestSource})
+target_link_libraries ( SimpleITKUnitTestDriver0 GTest::GTest SimpleITKUnitTestBase ${SimpleITK_LIBRARIES} ${ITK_LIBRARIES} )
+target_compile_options( SimpleITKUnitTestDriver0
+  PRIVATE
+    ${SimpleITK_PRIVATE_COMPILE_OPTIONS} )
+
+
+#
+# Glob for necessary template files up front, before the foreach loop over
+# the filters:
+#
+file ( GLOB CXX_TEMPLATE_FILES "*Template*.cxx.in" )
+file ( GLOB LUA_TEMPLATE_FILES "*Template*.lua.in" )
+file ( GLOB PYTHON_TEMPLATE_FILES "*Template*py.in" )
+file ( GLOB TCL_TEMPLATE_FILES "*Template*.tcl.in" )
+file ( GLOB R_TEMPLATE_FILES "*Template*.R.in" )
+file ( GLOB RUBY_TEMPLATE_FILES "*Template*rb.in" )
+file ( GLOB JAVA_TEMPLATE_FILES "*Template*.java.in" )
+file ( GLOB CSHARP_TEMPLATE_FILES "*Template*.cs.in" )
+
+
+#
+# Generate code for the tests in different languages
+#
+# Break all these source files into a bunch of separate executables
+# base on every n files in the list.
+message( STATUS "Generating tests...")
+set ( _stride 50 )
+set ( _exec_i 1 ) # exec 0 is the manual tests
+set ( _i 0 )
+foreach ( FILTERNAME ${GENERATED_FILTER_LIST} )
+
+  if ( NOT _i LESS _stride )
+    add_executable(SimpleITKUnitTestDriver${_exec_i} SimpleITKUnitTestDriver.cxx ${GENERATED_TEST_SOURCE})
+    target_link_libraries ( SimpleITKUnitTestDriver${_exec_i} GTest::GTest SimpleITKUnitTestBase ${SimpleITK_LIBRARIES} )
+    target_compile_options( SimpleITKUnitTestDriver${_exec_i}
+      PRIVATE
+        ${SimpleITK_PRIVATE_COMPILE_OPTIONS} )
+
+    math(EXPR _exec_i "${_exec_i}+1")
+    set(GENERATED_TEST_SOURCE "")
+    set ( _i 0 )
+  endif ()
+
+  # Set up some convenience variables
+  set (filter_json_file ${SimpleITK_SOURCE_DIR}/Code/BasicFilters/json/${FILTERNAME}.json)
+  set (template_expansion_script ${SimpleITK_SOURCE_DIR}/ExpandTemplateGenerator/ExpandTemplate.lua)
+  set (template_include_dir
+  ${SimpleITK_SOURCE_DIR}/ExpandTemplateGenerator/Components)
+
+
+  ######
+  # Figure out which template file gets used
+  ######
+
+  # Get the line from the json file that indicates the correct template
+  file(STRINGS ${filter_json_file} template_line REGEX ".*template_test_filename.*")
+
+  # strip down to what in between the "" after the :
+  string(REGEX MATCH ":.*\"([^\"]+)\"" _out "${template_line}")
+  set(template_name "${CMAKE_MATCH_1}" )
+
+  if (template_name)
+    set(OUTPUT_TEST_FILENAME "${SimpleITK_BINARY_DIR}/Testing/Unit/CTest/${FILTERNAME}.cmake")
+    file(REMOVE "${OUTPUT_TEST_FILENAME}")
+    set(cmd ${SimpleITK_LUA_EXECUTABLE} ${template_expansion_script} test ${filter_json_file} ${SimpleITK_SOURCE_DIR}/Testing/Unit/ ${template_include_dir} CTestTemplate.cmake.in "${OUTPUT_TEST_FILENAME}")
+    execute_process(
+      COMMAND ${cmd}
+      RESULT_VARIABLE failed
+      ERROR_VARIABLE error
+      )
+    if ( failed )
+      string (REPLACE ";" " " cmd "${cmd}")
+      message( FATAL_ERROR "Failed to generate \"${OUTPUT_TEST_FILENAME}\"\nCOMMAND: ${cmd} \n${error}" )
+    endif()
+    include("${OUTPUT_TEST_FILENAME}")
+
+    set(OUTPUT_TEST_FILENAME "${SimpleITK_BINARY_DIR}/Testing/Unit/sitk${FILTERNAME}Test.cxx")
+    add_custom_command (
+      OUTPUT  ${OUTPUT_TEST_FILENAME}
+      COMMAND ${CMAKE_COMMAND} -E remove -f "${OUTPUT_TEST_FILENAME}"
+      COMMAND ${SimpleITK_LUA_EXECUTABLE} ${template_expansion_script} test ${filter_json_file} ${SimpleITK_SOURCE_DIR}/Testing/Unit/sitk ${template_include_dir} TestTemplate.cxx.in "${OUTPUT_TEST_FILENAME}"
+      DEPENDS ${filter_json_file} ${CXX_TEMPLATE_FILES}
+      )
+    add_test( NAME BasicFilters.${FILTERNAME} COMMAND SimpleITKUnitTestDriver${_exec_i} --gtest_filter=BasicFilters.${FILTERNAME}:BasicFilters.${FILTERNAME}_* )
+    set ( GENERATED_TEST_SOURCE ${GENERATED_TEST_SOURCE} ${OUTPUT_TEST_FILENAME})
+
+    if ( WRAP_LUA )
+      set(OUTPUT_TEST_FILENAME "${SimpleITK_BINARY_DIR}/Testing/Unit/LuaTests/${FILTERNAME}Test.lua")
+      add_custom_command (
+        OUTPUT "${OUTPUT_TEST_FILENAME}"
+        COMMAND ${CMAKE_COMMAND} -E remove -f "${OUTPUT_TEST_FILENAME}"
+        COMMAND ${SimpleITK_LUA_EXECUTABLE} ${template_expansion_script} test ${filter_json_file} ${SimpleITK_SOURCE_DIR}/Testing/Unit/Lua ${template_include_dir} TestTemplate.lua.in "${OUTPUT_TEST_FILENAME}"
+        DEPENDS ${filter_json_file} ${LUA_TEMPLATE_FILES}
+        )
+      set ( WRAPPED_GENERATED_TEST_SOURCE ${WRAPPED_GENERATED_TEST_SOURCE} ${OUTPUT_TEST_FILENAME})
+    endif()
+
+    if ( WRAP_PYTHON )
+      set(OUTPUT_TEST_FILENAME "${SimpleITK_BINARY_DIR}/Testing/Unit/PythonTests/${FILTERNAME}Test.py")
+      add_custom_command (
+        OUTPUT  "${OUTPUT_TEST_FILENAME}"
+        COMMAND ${CMAKE_COMMAND} -E remove -f "${OUTPUT_TEST_FILENAME}"
+        COMMAND ${SimpleITK_LUA_EXECUTABLE} ${template_expansion_script} test ${filter_json_file} ${SimpleITK_SOURCE_DIR}/Testing/Unit/Python ${template_include_dir} TestTemplate.py.in "${OUTPUT_TEST_FILENAME}"
+        DEPENDS ${filter_json_file} ${PYTHON_TEMPLATE_FILES}
+        )
+      set ( WRAPPED_GENERATED_TEST_SOURCE ${WRAPPED_GENERATED_TEST_SOURCE} ${OUTPUT_TEST_FILENAME})
+    endif()
+
+    if ( WRAP_TCL )
+      set(OUTPUT_TEST_FILENAME "${SimpleITK_BINARY_DIR}/Testing/Unit/TclTests/${FILTERNAME}Test.tcl")
+      add_custom_command (
+        OUTPUT  "${OUTPUT_TEST_FILENAME}"
+        COMMAND ${CMAKE_COMMAND} -E remove -f "${OUTPUT_TEST_FILENAME}"
+        COMMAND ${SimpleITK_LUA_EXECUTABLE} ${template_expansion_script} test ${filter_json_file} ${SimpleITK_SOURCE_DIR}/Testing/Unit/Tcl ${template_include_dir} TestTemplate.tcl.in "${OUTPUT_TEST_FILENAME}"
+        DEPENDS ${filter_json_file} ${TCL_TEMPLATE_FILES}
+        )
+      set ( WRAPPED_GENERATED_TEST_SOURCE ${WRAPPED_GENERATED_TEST_SOURCE} ${OUTPUT_TEST_FILENAME})
+    endif()
+
+    if ( WRAP_R )
+      set(OUTPUT_TEST_FILENAME "${SimpleITK_BINARY_DIR}/Testing/Unit/RTests/${FILTERNAME}Test.R")
+      add_custom_command (
+        OUTPUT  "${OUTPUT_TEST_FILENAME}"
+        COMMAND ${CMAKE_COMMAND} -E remove -f "${OUTPUT_TEST_FILENAME}"
+        COMMAND ${SimpleITK_LUA_EXECUTABLE} ${template_expansion_script} test ${filter_json_file} ${SimpleITK_SOURCE_DIR}/Testing/Unit/R ${template_include_dir} TestTemplate.R.in "${OUTPUT_TEST_FILENAME}"
+        DEPENDS ${filter_json_file} ${R_TEMPLATE_FILES}
+        )
+      set ( WRAPPED_GENERATED_TEST_SOURCE ${WRAPPED_GENERATED_TEST_SOURCE} ${OUTPUT_TEST_FILENAME})
+    endif()
+
+    if ( WRAP_RUBY )
+      set(OUTPUT_TEST_FILENAME "${SimpleITK_BINARY_DIR}/Testing/Unit/RubyTests/${FILTERNAME}Test.rb")
+      add_custom_command (
+        OUTPUT  "${OUTPUT_TEST_FILENAME}"
+        COMMAND ${CMAKE_COMMAND} -E remove -f "${OUTPUT_TEST_FILENAME}"
+        COMMAND ${SimpleITK_LUA_EXECUTABLE} ${template_expansion_script} test ${filter_json_file} ${SimpleITK_SOURCE_DIR}/Testing/Unit/Ruby ${template_include_dir} TestTemplate.rb.in "${OUTPUT_TEST_FILENAME}"
+        DEPENDS ${filter_json_file} ${RUBY_TEMPLATE_FILES}
+        )
+      set ( WRAPPED_GENERATED_TEST_SOURCE ${WRAPPED_GENERATED_TEST_SOURCE} ${OUTPUT_TEST_FILENAME})
+    endif()
+
+    # Java Tests
+    if ( WRAP_JAVA )
+      set(OUTPUT_TEST_FILENAME "${SimpleITK_BINARY_DIR}/Testing/Unit/JavaTests/${FILTERNAME}Test.java")
+      add_custom_command (
+        OUTPUT  "${OUTPUT_TEST_FILENAME}"
+        COMMAND ${CMAKE_COMMAND} -E remove -f "${OUTPUT_TEST_FILENAME}"
+        COMMAND ${SimpleITK_LUA_EXECUTABLE} ${template_expansion_script} test ${filter_json_file} ${SimpleITK_SOURCE_DIR}/Testing/Unit/Java ${template_include_dir} TestTemplate.java.in "${OUTPUT_TEST_FILENAME}"
+        DEPENDS ${filter_json_file} ${JAVA_TEMPLATE_FILES}  ${SWIG_MODULE_SimpleITKJava_TARGET_NAME}        )
+      set ( WRAPPED_GENERATED_TEST_SOURCE ${WRAPPED_GENERATED_TEST_SOURCE} ${OUTPUT_TEST_FILENAME})
+    endif()
+
+    # C# Tests
+    if ( WRAP_CSHARP )
+      set( OUTPUT_TEST_FILENAME "${SimpleITK_BINARY_DIR}/Testing/Unit/CSharpTests/${FILTERNAME}Test.cs" )
+      add_custom_command (
+        OUTPUT "${OUTPUT_TEST_FILENAME}"
+        COMMAND ${CMAKE_COMMAND} -E remove -f "${OUTPUT_TEST_FILENAME}"
+        COMMAND ${SimpleITK_LUA_EXECUTABLE} ${template_expansion_script} test ${filter_json_file} ${SimpleITK_SOURCE_DIR}/Testing/Unit/CSharp ${template_include_dir} TestTemplate.cs.in "${OUTPUT_TEST_FILENAME}"
+        DEPENDS ${filter_json_file} ${CSHARP_TEMPLATE_FILES}
+        )
+      set ( WRAPPED_GENERATED_TEST_SOURCE ${WRAPPED_GENERATED_TEST_SOURCE} ${OUTPUT_TEST_FILENAME})
+    endif()
+  endif() # if template_name
+  math(EXPR _i "${_i}+1")
+
+endforeach()
+
+message( STATUS "Generating tests...Done")
+
+add_executable(SimpleITKUnitTestDriver${_exec_i} SimpleITKUnitTestDriver.cxx ${GENERATED_TEST_SOURCE})
+target_link_libraries ( SimpleITKUnitTestDriver${_exec_i} GTest::GTest SimpleITKUnitTestBase ${SimpleITK_LIBRARIES} )
+target_compile_options( SimpleITKUnitTestDriver${_exec_i}
+  PRIVATE
+    ${SimpleITK_PRIVATE_COMPILE_OPTIONS} )
+
+# Set some variables
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/SimpleITKTestHarnessPaths.h.in
+               ${CMAKE_CURRENT_BINARY_DIR}/SimpleITKTestHarnessPaths.h ESCAPE_QUOTES)
+
+add_custom_target(WrappedGeneratedTests ALL
+  DEPENDS ${WRAPPED_GENERATED_TEST_SOURCE}
+)
+
+if(MSVC_VERSION EQUAL 1700)
+  # Tuples are limited by _VARIADIC_MAX in VS11. The variadic
+  # templates are not deep enough by default. We are not currently
+  # using the GTest features which require tuple, so just disable them
+  # and hope that upstream premanetly addresses the problem, with out
+  # required more CMake core for compiler issues.
+  add_definitions(-DGTEST_HAS_TR1_TUPLE=0 )
+endif()
+
+add_executable(sitkShowTest sitkShowTest.cxx )
+target_link_libraries ( sitkShowTest  GTest::GTest ${SimpleITK_LIBRARIES} SimpleITKUnitTestBase )
+target_compile_options( sitkShowTest
+  PRIVATE
+    ${SimpleITK_PRIVATE_COMPILE_OPTIONS} )
+
+
+add_executable( sitkSystemInformationTest sitkSystemInformationTest.cxx )
+target_link_libraries( sitkSystemInformationTest ${SimpleITK_LIBRARIES} ${ITK_LIBRARIES})
+add_test( NAME sitkSystemInformaionTest COMMAND sitkSystemInformationTest ${CMAKE_BINARY_DIR} )
+target_compile_options( sitkSystemInformationTest
+  PRIVATE
+    ${SimpleITK_PRIVATE_COMPILE_OPTIONS} )
+
+
+
+gtest_add_tests(SimpleITKUnitTestDriver0 "" ${SimpleITKUnitTestSource})
+
+
+#######################################################
+#
+# Tests which use the itkTestDriver
+#
+#######################################################
+
+
+include(${CMAKE_CURRENT_SOURCE_DIR}/AdditionalTests.cmake)
+
diff --git a/Testing/Unit/CSharpImageFilterTestTemplate.cs.in b/Testing/Unit/CSharpImageFilterTestTemplate.cs.in
new file mode 100644
index 0000000..eec51a9
--- /dev/null
+++ b/Testing/Unit/CSharpImageFilterTestTemplate.cs.in
@@ -0,0 +1,197 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the Licfense is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+/*
+ * WARNING: DO NOT EDIT THIS FILE!
+ * THIS FILE IS AUTOMATICALLY GENERATED BY THE SIMPLEITK BUILD PROCESS.
+ * Please look at CSharpImageFilterTestTemplate.cs.in to make changes.
+ */
+
+// This is C# code to test ${name}
+using System;
+using System.Collections.Generic;
+using itk.simple;
+
+public class Test${name} {
+
+    public static int Main(string[] args) {
+
+        try {
+
+            // Get the right number of inputs
+            int num_inputs = 1;
+$(if number_of_inputs then
+            OUT=[[
+            num_inputs = ${number_of_inputs};]]
+end)
+
+            // Check the command line arguments
+            if ( args.Length < num_inputs + 1 ) {
+                Console.WriteLine("Usage: ${name} tag <input(s)> output");
+                return 1;
+            }
+
+            String tag = args[1];
+
+            // Instantiate objects
+            ImageFileReader reader = new ImageFileReader();
+            ${name} filter = new ${name}();
+			List<Image> inputs = new List<Image>();
+$(if #tests == 0 then
+            OUT=[[
+            // No tests defined => exit with error code
+            Console.WriteLine ( "No tests defined!" );
+            return 1;]]
+end)
+            // Run each test
+$(foreach tests
+            if (tag.Equals( "${tag}" )) {
+
+                // Read image(s)
+				for ( int i = 2; i < args.Length-1; i++ ) {
+                                  reader.SetFileName( args[i] );
+                                  inputs.Add( reader.Execute() );
+				}
+
+$(if inputA_cast then
+                 OUT=[[
+                 CastImageFilter caster = new CastImageFilter();
+                 caster.SetOutputPixelType( PixelIDValueEnum.${inputA_cast} );
+                 inputs[0] = caster.Execute( inputs[0] );]]
+end)
+
+$(if inputB_cast then
+                 OUT=[[
+                 caster = new CastImageFilter();
+                 caster.SetOutputPixelType( PixelIDValueEnum.${inputB_cast} );
+                 inputs[1] = caster.Execute( inputs[1] );]]
+end)
+
+
+$(when settings
+                // Set parameters
+$(foreach settings
+$(if parameter == "SeedList" then
+                OUT=[[
+                filter.ClearSeeds();
+$(for i=1,#value do OUT=OUT .. "\
+                {\
+                VectorUInt32 idx = new VectorUInt32( new uint[] " .. value[i] .. " );\
+                filter.AddSeed( idx );\
+                }\
+" end)]]
+elseif parameter == "TrialPoints" then
+                OUT=[[
+                filter.ClearTrialPoints();
+$(for i=1,#value do OUT=OUT .. "\
+                {\
+                VectorUInt32 idx = new VectorUInt32( new uint[] " .. value[i] .. " );\
+                filter.AddTrialPoint( idx );\
+                }\
+" end)]]
+elseif point_vec and point_vec == 1 then
+    OUT=[[
+                filter.Clear${parameter}();
+]]
+    for i=1,#value do
+      OUT=OUT.. [[
+                {
+                  VectorUInt32 pt = new VectorUInt32( new uint[] ]] .. value[i] .. [[ );
+                  filter.Add${parameter:gsub('s([0-9]?)$','%1')}(pt);
+                }
+]]
+    end
+elseif dim_vec == 1 then
+  A='{'
+  for i=1,#value-1 do
+    A=A..value[i]..", "
+  end
+  A=A..value[#value]
+  A=A..'}'
+  OUT=[[
+    {
+  $(if type == "bool" then
+      OUT="VectorBool idx = new VectorBool( new bool[] "..A.." );"
+  elseif type == "unsigned int" then
+      OUT="VectorUInt32 idx = new VectorUInt32( new uint[] "..A.." );"
+  elseif type == "int" then
+      OUT="VectorInt32 idx = new VectorInt32( new int[] "..A.." );"
+  elseif type == "unsigned long" then
+      OUT="VectorULong idx = new VectorULong( new ulong[] "..A.." );"
+  elseif type == "long" then
+      OUT="VectorLong idx = new VectorLong( new long[] "..A.." );"
+  elseif type == "unsigned short" then
+      OUT="VectorUShort idx = new VectorUShort( new ushort[] "..A.." );"
+  elseif type == "short" then
+      OUT="VectorShort idx = new VectorShort( new short[] "..A.." );"
+  elseif type == "float" then
+      OUT="VectorFloat idx = new VectorFloat( new float[] "..A.." );"
+  elseif type == "double" then
+      OUT="VectorDouble idx = new VectorDouble( new double[] "..A.." );"
+  elseif type == "uint8_t" then
+      OUT="VectorUInt8 idx = new VectorUInt8( new byte[] "..A.." );"
+  elseif type == "uint16_t" then
+      OUT="VectorUInt16 idx = new VectorUInt16( new ushort[] "..A.." );"
+  elseif type == "uint32_t" then
+      OUT="VectorUInt32 idx = new VectorUInt32( new uint[] "..A.." );"
+  elseif type == "uint64_t" then
+      OUT="VectorUInt64 idx = new VectorUInt64( new ulong[] "..A.." );"
+  elseif type == "int8_t" then
+      OUT="VectorInt8 idx = new VectorInt8( new sbyte[] "..A.." );"
+  elseif type == "int16_t" then
+      OUT="VectorInt16 idx = new VectorInt16( new short[] "..A.." );"
+  elseif type == "int32_t" then
+      OUT="VectorInt32 idx = new VectorInt32( new int[] "..A.." );"
+  elseif type == "int64_t" then
+      OUT="VectorInt64 idx = new VectorInt64( new long[] "..A.." );"
+  end)
+  filter.Set${parameter}( idx );
+  }]]
+else
+                OUT=[[
+                filter.Set${parameter}( $(if csharp_value then OUT='${csharp_value}' else OUT='${value}' end) );]]
+end)
+)
+)
+                // Run the filter
+                $(if not no_return_image then OUT=[[Image output = ]] end)filter.Execute ( $(if #inputs > 0 then OUT=[[inputs[0] ]] end)$(for inum=1,#inputs-1 do OUT=OUT..", inputs["..inum.."]" end) );
+
+$(if not no_return_image then
+OUT=[[
+                PixelIDValueEnum[] labelIDs = { PixelIDValueEnum.sitkLabelUInt8, PixelIDValueEnum.sitkLabelUInt16, PixelIDValueEnum.sitkLabelUInt32, PixelIDValueEnum.sitkLabelUInt64 };
+                if (Array.IndexOf(labelIDs, output.GetPixelID()) != -1 )
+                {
+                  LabelMapToLabelImageFilter toImage = new LabelMapToLabelImageFilter();
+                  output = toImage.Execute(output);
+                }
+
+                // Write output
+                ImageFileWriter writer = new ImageFileWriter();
+                writer.SetFileName( args[args.Length-1] );
+                writer.Execute( output );
+]]
+end)
+
+            }
+)
+        } catch (Exception ex) {
+            Console.WriteLine( "ERROR: " + ex.ToString() );
+            return 1;
+        }
+        return 0;
+    }
+}
diff --git a/Testing/Unit/CSharpImageTest.cs b/Testing/Unit/CSharpImageTest.cs
new file mode 100644
index 0000000..7f1da59
--- /dev/null
+++ b/Testing/Unit/CSharpImageTest.cs
@@ -0,0 +1,96 @@
+using System;
+using itk.simple;
+using sitk = itk.simple.SimpleITK;
+using PixelId = itk.simple.PixelIDValueEnum;
+
+namespace itk.simple {
+    /// <summary>Test itk.simple.Image.</summary>
+    public class CSharpImageTest {
+        public const int ExitSuccess = 0;
+        public const int ExitFailure = 1;
+
+        public static int CheckHash(Image img, string expectedHash, ref int success)
+        {
+        HashImageFilter hasher = new HashImageFilter();
+        string actualHash = hasher.Execute(img);
+        if (actualHash != expectedHash)
+        {
+         success = ExitFailure;
+         Console.WriteLine("Expected hash: \"{0}\" actual hash: \"{1}\".", expectedHash, actualHash );         
+        }       
+        return 0;
+        }       
+
+        /// <summary>Main entry point.</summary>
+        public static int Main (string[] args) {
+            int success = ExitSuccess;
+            try {
+                Image image = new Image(100, 100, PixelId.sitkInt8);
+                Image image2 = new Image(100, 100, PixelId.sitkInt8);
+
+                
+                image += 10;
+                image -= 1;
+                CheckHash(image, "1cda91cc1bf474a25d6365f7fa7ef1fc75b3c7c9", ref success);
+                image *= 2;
+                image /= 3;
+                CheckHash(image, "856f68940ff670209aa9d60f38fc4cca1880f647", ref success);
+                
+
+                // image with just one 7 reset zero
+                image *= 0;
+                VectorUInt32 idx = new VectorUInt32();
+                idx.Add(0);
+                idx.Add(0);
+                image.SetPixelAsInt8( idx, 7 );
+                
+                // Unary operators
+                CheckHash(-image, "fe7e0c8ac8252189cf5766a352397bc62dd42e4d", ref success);
+                CheckHash(+image, "6cccaa2d5c958e79ebd5ca4a0b00bee747797c8d", ref success);
+                CheckHash(!image, "f4695dbf5bc9ea2796b2e4f360ea4b5ecbf70c37", ref success);
+                CheckHash(~image, "746470f03126f653cc23265e0b1c1fe16a952745", ref success);
+                CheckHash(image, "6cccaa2d5c958e79ebd5ca4a0b00bee747797c8d", ref success);     
+
+
+                // Comparison operators
+                CheckHash( image < 7, "f4695dbf5bc9ea2796b2e4f360ea4b5ecbf70c37", ref success);  
+                CheckHash( image > 7, "f907b7bf318b79fd6b9da589646f8b1dac77d0c8", ref success);  
+                CheckHash( image <= 7, "cef864600fc947062ac359fe9a7cc049c7273b8e", ref success);  
+                CheckHash( image >= 7, "52f583bfeb07a6c4c5a26b28f8ae180bf8e0079b", ref success);  
+
+                CheckHash( image < image2, "f907b7bf318b79fd6b9da589646f8b1dac77d0c8", ref success);  
+                CheckHash( image > image2, "52f583bfeb07a6c4c5a26b28f8ae180bf8e0079b", ref success);  
+                CheckHash( image <= image2, "f4695dbf5bc9ea2796b2e4f360ea4b5ecbf70c37", ref success);  
+                CheckHash( image >= image2, "cef864600fc947062ac359fe9a7cc049c7273b8e", ref success);  
+
+                // Binary bitwise operators 
+                image &= 5;;
+                image |= 7;
+                image ^= 8;
+                CheckHash(image, "0c26e6610c876b83cf681688eb8e80b952a394ce", ref success);
+
+                image &= image;
+                image ^= image;
+                image |= image;
+                CheckHash( image, "f907b7bf318b79fd6b9da589646f8b1dac77d0c8", ref success);  // just zeros
+
+                
+                // image of 1s
+                image *= 0;
+                image += 1;
+
+                image += image;
+                image -= image;
+                image *= image;
+                image /= image;
+                CheckHash(image, "287046eafd10b9984977f6888ea50ea50fe846b5", ref success);  
+
+
+            } catch (Exception ex) {
+                success = ExitFailure;
+                Console.WriteLine(ex);
+            }
+            return success;
+        }
+    }
+}
diff --git a/Testing/Unit/ConcurrentImageRead.py b/Testing/Unit/ConcurrentImageRead.py
new file mode 100644
index 0000000..4435e0d
--- /dev/null
+++ b/Testing/Unit/ConcurrentImageRead.py
@@ -0,0 +1,86 @@
+#==========================================================================
+#
+#   Copyright Insight Software Consortium
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#          http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#==========================================================================*/
+from __future__ import print_function
+import sys
+import os
+import unittest
+
+
+import SimpleITK as sitk
+from multiprocessing.pool import ThreadPool
+
+
+class ConcurrentImageRead(unittest.TestCase):
+    """Testing thread concurrent reading of Images"""
+
+    temp_directory = ""
+
+    def setUp(self):
+        pass
+
+    def _create_data(self, img_extension, img_type):
+        """Method to create the many temporary image for reading"""
+        n = 64
+        s = 128
+        t = img_type
+
+        files = []
+
+        for i in range(0,n):
+            img = sitk.GaussianSource(t, [s,s], mean=[256*(i+1)]*2)
+            fname = "g_{0}.{1}".format(i, img_extension)
+            if ConcurrentImageRead.temp_directory:
+                fname = os.path.join(ConcurrentImageRead.temp_directory, fname)
+            files.append(fname)
+            sitk.WriteImage(img, files[-1])
+
+        return files
+
+    def _threaded_read_test(self, files, expected_hash):
+        """Reads a list of files with thread parallelism, and verifies the hash of the resulting volume."""
+        p = ThreadPool()
+        img = sitk.JoinSeries(p.map(sitk.ReadImage, files))
+        self.assertEqual(img.GetSize()[2], len(files))
+        self.assertEqual(sitk.Hash(img), expected_hash)
+
+    @staticmethod
+    def generate_test(img_extension, expected_hash, img_type=sitk.sitkUInt32):
+        """Generate additional test by adding a generated member function """
+        def do_test(self):
+            files = self._create_data(img_extension,img_type)
+            files *= 64
+            self._threaded_read_test(files, expected_hash)
+
+        test_method = do_test
+        test_method.__name__ = "test_threaded_read_{0}".format(p_ext_hash[0]);
+        setattr(ConcurrentImageRead, test_method.__name__, test_method)
+
+
+# Programmatically generate tests for different file formats
+for p_ext_hash in [("jpg","44fac4bedde4df04b9572ac665d3ac2c5cd00c7d"),
+                   ("tiff", "ba713b819c1202dcb0d178df9d2b3222ba1bba44", sitk.sitkUInt16),
+                   ("png", "ba713b819c1202dcb0d178df9d2b3222ba1bba44", sitk.sitkUInt16),
+                   ("mha","7b91dbdc56c5781edf6c8847b4aa6965566c5c75")]:
+    ConcurrentImageRead.generate_test(*p_ext_hash)
+
+
+if __name__ == '__main__':
+    # hacky to get a temporary directory
+    if len(sys.argv) > 1:
+        ConcurrentImageRead.temp_directory = sys.argv.pop()
+    unittest.main()
diff --git a/Testing/Unit/IOTest.py b/Testing/Unit/IOTest.py
new file mode 100644
index 0000000..95f710d
--- /dev/null
+++ b/Testing/Unit/IOTest.py
@@ -0,0 +1,36 @@
+#==========================================================================
+#
+#   Copyright Insight Software Consortium
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#          http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#==========================================================================*/
+from __future__ import print_function
+
+import SimpleITK as sitk
+import sys
+
+# this test is suppose to test the python interface to the IO classs
+
+if len ( sys.argv ) != 2:
+    print( "Usage: %s outputPath" % ( sys.argv[0] ) )
+
+outputPath = sys.argv[1]
+
+image = sitk.Image( 10, 10, sitk.sitkInt32 )
+
+
+try:
+    sitk.WriteImage( image, "this.isafilenamewithnoimageio" )
+except RuntimeError as e:
+    print( "Caught expected error" )
diff --git a/Testing/Unit/IOTests.cxx b/Testing/Unit/IOTests.cxx
new file mode 100644
index 0000000..e653631
--- /dev/null
+++ b/Testing/Unit/IOTests.cxx
@@ -0,0 +1,186 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include <SimpleITKTestHarness.h>
+#include <sitkImageFileReader.h>
+#include <sitkImageSeriesReader.h>
+#include <sitkImageFileWriter.h>
+#include <sitkHashImageFilter.h>
+
+TEST(IO,ImageFileReader) {
+  itk::simple::HashImageFilter hasher;
+  itk::simple::ImageFileReader reader;
+
+  typedef std::map<std::string,std::string> MapType;
+  MapType mapping;
+
+  // Configure the mapping between filename and MD5 hash
+  mapping["Input/RA-Short.nrrd"]            = "a963bd6a755b853103a2d195e01a50d3";
+  mapping["Input/RA-Float.nrrd"]            = "3ccccde44efaa3d688a86e94335c1f16";
+  mapping["Input/RA-Slice-Short.nrrd"]      = "22cdc0af7d51934a744b9c4fd4748cd1";
+  mapping["Input/RA-Slice-Float.nrrd"]      = "999078d36a4491d691cc93d8c3ed29fc";
+  mapping["Input/Ramp-Zero-One-Float.nrrd"] = "f47efe1a6f48cb5cfe1aa23232f1168b";
+  mapping["Input/Ramp-One-Zero-Float.nrrd"] = "0b18fac85955571d069b3666ff987119";
+  mapping["Input/Ramp-Up-Short.nrrd"]       = "86f2ea8a68b3069f33f2271829a30aa2";
+  mapping["Input/Ramp-Down-Short.nrrd"]     = "71f5c852a6251069fa1d60f796463343";
+  mapping["Input/STAPLE1.png"]              = "095f00a68a84df4396914fa758f34dcc";
+  mapping["Input/STAPLE2.png"]              = "301858f5eee39b092d28d9837f008fb8";
+
+
+  // Loop over the map, load each file, and compare the hash value
+  for ( MapType::iterator it = mapping.begin(); it != mapping.end(); ++it ) {
+    reader.SetFileName ( dataFinder.GetFile ( it->first ) );
+    EXPECT_EQ ( reader.GetFileName(), dataFinder.GetFile ( it->first ) );
+    itk::simple::Image image = reader.Execute();
+    ASSERT_TRUE ( image.GetITKBase() != NULL );
+    hasher.SetHashFunction ( itk::simple::HashImageFilter::MD5 );
+    EXPECT_EQ ( it->second, hasher.Execute ( image ) ) << " reading " << it->first;
+    // Try the functional interface
+    EXPECT_EQ ( it->second, hasher.Execute ( itk::simple::ReadImage ( dataFinder.GetFile ( it->first ) ) ) ) << "Functional interface";
+  }
+
+}
+
+TEST(IO,ReadWrite) {
+  itk::simple::HashImageFilter hasher;
+  itk::simple::ImageFileReader reader;
+  itk::simple::ImageFileWriter writer;
+
+  // From the command line utility
+  std::string md5 = "a963bd6a755b853103a2d195e01a50d3";
+  std::string sha1 = "126ea8c3ef5573ca1e4e0deece920c2c4a4f38b5";
+
+
+  itk::simple::Image image = reader.SetFileName ( dataFinder.GetFile ( "Input/RA-Short.nrrd" ) ).Execute();
+  ASSERT_TRUE ( image.GetITKBase() != NULL );
+  hasher.SetHashFunction ( itk::simple::HashImageFilter::MD5 );
+  EXPECT_EQ ( md5, hasher.Execute ( image ) );
+  hasher.SetHashFunction ( itk::simple::HashImageFilter::SHA1 );
+  EXPECT_EQ ( sha1, hasher.Execute ( image ) );
+
+  // Write it out
+  std::string filename = dataFinder.GetOutputFile ( "IO.ReadWrite.nrrd" );
+  writer.SetFileName ( filename ).Execute ( image );
+  ASSERT_TRUE ( dataFinder.FileExists ( filename ) );
+
+  image = reader.SetFileName ( filename ).Execute();
+  ASSERT_TRUE ( image.GetITKBase() != NULL );
+
+  // Make sure we wrote and read the file correctly
+  hasher.SetHashFunction ( itk::simple::HashImageFilter::MD5 );
+  EXPECT_EQ ( md5, hasher.Execute ( image ) );
+  hasher.SetHashFunction ( itk::simple::HashImageFilter::SHA1 );
+  EXPECT_EQ ( sha1, hasher.Execute ( image ) );
+
+  // Again, with the functional interface
+  filename = dataFinder.GetOutputFile ( "IO.ReadWrite-Functional.nrrd" );
+  itk::simple::WriteImage ( image, filename );
+  ASSERT_TRUE ( dataFinder.FileExists ( filename ) );
+
+  image = reader.SetFileName ( filename ).Execute();
+  ASSERT_TRUE ( image.GetITKBase() != NULL );
+
+  // Make sure we wrote and read the file correctly
+  hasher.SetHashFunction ( itk::simple::HashImageFilter::MD5 );
+  EXPECT_EQ ( md5, hasher.Execute ( image ) );
+  hasher.SetHashFunction ( itk::simple::HashImageFilter::SHA1 );
+  EXPECT_EQ ( sha1, hasher.Execute ( image ) );
+
+}
+
+
+TEST(IO,2DFormats) {
+  itk::simple::HashImageFilter hasher;
+  itk::simple::ImageFileReader reader;
+
+  itk::simple::Image image = reader.SetFileName ( dataFinder.GetFile ( "Input/RA-Slice-Short.png" ) ).Execute();
+  ASSERT_TRUE ( image.GetITKBase() != NULL );
+  hasher.SetHashFunction ( itk::simple::HashImageFilter::SHA1 );
+  EXPECT_EQ ( "bf0f7bae60b0322222e224941c31f37a981901aa", hasher.Execute ( image ) );
+  ASSERT_EQ ( 2u, image.GetDimension() );
+  EXPECT_EQ ( 64u, image.GetWidth() );
+  EXPECT_EQ ( 64u, image.GetHeight() );
+  EXPECT_EQ ( 0u, image.GetDepth() );
+
+}
+
+namespace sitk = itk::simple;
+
+TEST(IO, SeriesReader) {
+
+  std::vector< std::string > fileNames;
+  fileNames.push_back( dataFinder.GetFile ( "Input/BlackDots.png" ) );
+  fileNames.push_back( dataFinder.GetFile ( "Input/BlackDots.png" ) );
+  fileNames.push_back( dataFinder.GetFile ( "Input/BlackDots.png" ) );
+
+  sitk::ImageSeriesReader reader;
+  sitk::Image image = reader.SetFileNames ( fileNames ).Execute();
+  EXPECT_EQ ( "b13c0a17109e3a5058e8f225c9ef2dbcf79ac240", sitk::Hash( image ) );
+  EXPECT_EQ ( 3u, image.GetDimension() );
+  EXPECT_EQ ( 256u, image.GetWidth() );
+  EXPECT_EQ ( 256u, image.GetHeight() );
+  EXPECT_EQ ( 3u, image.GetDepth() );
+
+  fileNames.push_back( dataFinder.GetFile ( "Input/WhiteDots.png" ));
+  image = sitk::ReadImage( fileNames );
+  EXPECT_EQ ( "62fff5903956f108fbafd506e31c1e733e527820", sitk::Hash( image ) );
+  EXPECT_EQ ( 4u, image.GetDepth() );
+
+  fileNames.resize(0);
+  fileNames.push_back( dataFinder.GetFile ( "Input/VM1111Shrink-RGB.png" ) );
+  fileNames.push_back( dataFinder.GetFile ( "Input/VM1111Shrink-RGB.png" ) );
+  fileNames.push_back( dataFinder.GetFile ( "Input/VM1111Shrink-RGB.png" ) );
+  reader.SetFileNames ( fileNames );
+  image = reader.Execute();
+  EXPECT_EQ ( 3u, image.GetDepth() );
+  EXPECT_EQ ( "bb42b8d3991132b4860adbc4b3f6c38313f52b4c", sitk::Hash( image ) );
+
+}
+
+TEST(IO,WriteOptions) {
+
+  sitk::ImageFileWriter writer;
+
+  EXPECT_EQ( false, writer.GetUseCompression() );
+
+  writer.SetUseCompression( false );
+  EXPECT_EQ( false, writer.GetUseCompression() );
+
+  writer.UseCompressionOn();
+  EXPECT_EQ( true, writer.GetUseCompression() );
+
+  writer.UseCompressionOff();
+  EXPECT_EQ( false, writer.GetUseCompression() );
+
+  sitk::Image image = sitk::ReadImage( dataFinder.GetFile ( "Input/BlackDots.png" ) );
+  EXPECT_EQ ( "0188164c9932359b3f33f176d0d73661c4dc04a8", sitk::Hash( image ) );
+
+  writer.Execute( image, dataFinder.GetOutputFile( "with_compression.nrrd" ), true );
+  EXPECT_EQ( true, writer.GetUseCompression() );
+
+  writer.Execute( image, dataFinder.GetOutputFile( "without_compression.nrrd" ), false );
+  EXPECT_EQ( false, writer.GetUseCompression() );
+
+}
+
+TEST(IO,Write) {
+
+  sitk::Image image = sitk::ReadImage( dataFinder.GetFile ( "Input/BlackDots.png" ) );
+  EXPECT_EQ ( "0188164c9932359b3f33f176d0d73661c4dc04a8", sitk::Hash( image ) );
+
+  ASSERT_THROW(sitk::WriteImage( image, dataFinder.GetOutputFile ( "this.isafilenamewithnoimageio" ) ),  std::exception ) << "Checking for assert on bad output image name.";
+}
diff --git a/Testing/Unit/ImageFilterCTestTemplate.cmake.in b/Testing/Unit/ImageFilterCTestTemplate.cmake.in
new file mode 100644
index 0000000..f09d2f3
--- /dev/null
+++ b/Testing/Unit/ImageFilterCTestTemplate.cmake.in
@@ -0,0 +1,144 @@
+# TODO
+# - test output
+
+#
+# Lua Tests
+#
+$(for i=1,#tests do
+local script = "$${SimpleITK_BINARY_DIR}/Testing/Unit/LuaTests/${name}Test.lua"
+OUT=OUT..[[
+ sitk_add_lua_test( ${name}.]]..tests[i].tag..[[
+  "]]..script..[["
+  ]]..tests[i].tag..[[
+]]
+for j=1,#tests[i].inputs do
+    OUT=OUT..[[
+  "DATA{$${SimpleITK_DATA_ROOT}/]]..tests[i].inputs[j]..[[}"
+]]
+end
+OUT=OUT..[[
+  "$${TEST_HARNESS_TEMP_DIRECTORY}/Lua-${name}-]]..tests[i].tag..[[.nrrd"  )
+]]
+end)
+
+
+#
+# Python Tests
+#
+$(for i=1,#tests do
+local script = "$${SimpleITK_BINARY_DIR}/Testing/Unit/PythonTests/${name}Test.py"
+OUT=OUT..[[
+ sitk_add_python_test( ${name}.]]..tests[i].tag..[[
+  "]]..script..[["
+  ]]..tests[i].tag..[[
+]]
+for j=1,#tests[i].inputs do
+    OUT=OUT..[[
+  "DATA{$${SimpleITK_DATA_ROOT}/]]..tests[i].inputs[j]..[[}"
+]]
+end
+OUT=OUT..[[
+  "$${TEST_HARNESS_TEMP_DIRECTORY}/Python-${name}-]]..tests[i].tag..[[.nrrd"  )
+]]
+end)
+
+#
+# Ruby Tests
+#
+$(for i=1,#tests do
+local script = "$${SimpleITK_BINARY_DIR}/Testing/Unit/RubyTests/${name}Test.rb"
+OUT=OUT..[[
+ sitk_add_ruby_test( ${name}.]]..tests[i].tag..[[
+  "]]..script..[["
+  ]]..tests[i].tag..[[
+]]
+for j=1,#tests[i].inputs do
+    OUT=OUT..[[
+  "DATA{$${SimpleITK_DATA_ROOT}/]]..tests[i].inputs[j]..[[}"
+]]
+end
+OUT=OUT..[[
+  "$${TEST_HARNESS_TEMP_DIRECTORY}/Ruby-${name}-]]..tests[i].tag..[[.nrrd"  )
+]]
+end)
+
+#
+# R Tests
+#
+$(for i=1,#tests do
+local script = "$${SimpleITK_BINARY_DIR}/Testing/Unit/RTests/${name}Test.R"
+OUT=OUT..[[
+ sitk_add_r_test( ${name}.]]..tests[i].tag..[[
+  "--file=]]..script..[["
+  --args
+  ]]..tests[i].tag..[[
+]]
+for j=1,#tests[i].inputs do
+    OUT=OUT..[[
+  "DATA{$${SimpleITK_DATA_ROOT}/]]..tests[i].inputs[j]..[[}"
+]]
+end
+OUT=OUT..[[
+  "$${TEST_HARNESS_TEMP_DIRECTORY}/R-${name}-]]..tests[i].tag..[[.nrrd"  )
+]]
+end)
+
+#
+# Tcl Tests
+#
+$(for i=1,#tests do
+OUT=OUT..[[
+ sitk_add_tcl_test( ${name}.]]..tests[i].tag..[[
+  "$${SimpleITK_BINARY_DIR}/Testing/Unit/TclTests/${name}Test.tcl"
+  ]]..tests[i].tag..[[
+]]
+for j=1,#tests[i].inputs do
+    OUT=OUT..[[
+  "DATA{$${SimpleITK_DATA_ROOT}/]]..tests[i].inputs[j]..[[}"
+]]
+end
+OUT=OUT..[[
+  "$${TEST_HARNESS_TEMP_DIRECTORY}/Tcl-${name}-]]..tests[i].tag..[[.nrrd"  )
+]]
+end)
+
+
+#
+# Java Tests
+#
+$(for i=1,#tests do
+OUT=OUT..[[
+ sitk_add_java_test( ${name}.]]..tests[i].tag..[[
+  "$${SimpleITK_BINARY_DIR}/Testing/Unit/JavaTests/${name}Test.java"
+  ]]..tests[i].tag..[[
+]]
+for j=1,#tests[i].inputs do
+    OUT=OUT..[[
+  "DATA{$${SimpleITK_DATA_ROOT}/]]..tests[i].inputs[j]..[[}"
+]]
+end
+OUT=OUT..[[
+  "$${TEST_HARNESS_TEMP_DIRECTORY}/Java-${name}-]]..tests[i].tag..[[.nrrd"  )
+]]
+end)
+
+
+
+#
+# CSharp Tests
+#
+$(for i=1,#tests do
+OUT=OUT..[[
+ sitk_add_csharp_test( ${name}.]]..tests[i].tag..[[
+  "$${SimpleITK_BINARY_DIR}/Testing/Unit/CSharpTests/${name}Test.cs"
+  ]]..tests[i].tag..[[
+]]
+for j=1,#tests[i].inputs do
+    OUT=OUT..[[
+  "DATA{$${SimpleITK_DATA_ROOT}/]]..tests[i].inputs[j]..[[}"
+]]
+end
+OUT=OUT..[[
+  "$${TEST_HARNESS_TEMP_DIRECTORY}/CSharp-${name}-]]..tests[i].tag..[[.nrrd"  )
+]]
+end)
diff --git a/Testing/Unit/ImageIndexingTest.py b/Testing/Unit/ImageIndexingTest.py
new file mode 100644
index 0000000..2740f6e
--- /dev/null
+++ b/Testing/Unit/ImageIndexingTest.py
@@ -0,0 +1,198 @@
+#==========================================================================
+#
+#   Copyright Insight Software Consortium
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#          http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#==========================================================================*/
+from __future__ import print_function
+import sys
+import unittest
+
+
+import SimpleITK as sitk
+import numpy as np
+
+
+class TestImageIndexingInterface(unittest.TestCase):
+    """This tests the indexing feature for the Image class. """
+
+
+    def setUp(self):
+        pass
+
+    def assertImageNDArrayEquals(self, img, nda, msg=""):
+        for p,n in zip(img, nda.flat):
+            self.assertEqual( p, n, msg )
+
+
+    def _helper_check_sitk_to_numpy_type(self, sitkType, numpyType):
+        image = sitk.Image( (9, 10), sitkType, 1 )
+        a = sitk.GetArrayFromImage( image )
+        self.assertEqual( numpyType, a.dtype )
+        self.assertEqual( (10, 9), a.shape )
+
+
+    def test_2d(self):
+        """testing __getitem__ for 2D image"""
+
+        nda = np.linspace(0, 14, 15 ).reshape(3,5)
+
+        img = sitk.GetImageFromArray( nda )
+
+        self.assertEqual( img.GetSize(), (5,3) )
+
+        # check basic indexing
+        self.assertEqual( img[0,0], 0.0 )
+        self.assertEqual( img[(1,0)], 1.0 )
+        self.assertEqual( img[[2,0]], 2.0 )
+        self.assertEqual( img[1,2], 11.0 )
+        self.assertEqual( img[-1,-2], 9.0 )
+
+        # check default slice indexing
+        self.assertImageNDArrayEquals(img[:,:],nda)
+        self.assertImageNDArrayEquals(img[:],nda)
+        self.assertImageNDArrayEquals(img[::-1,::-1],nda[::-1,::-1])
+
+        # out of bounds cases and empty
+        self.assertEqual(len(img[:,5:6]), 0)
+        self.assertEqual(len(img[:,2:1]), 0)
+        self.assertEqual(len(img[-6:0,:]), 0)
+        self.assertEqual(len(img[0:0,:]), 0)
+
+
+
+        self.assertImageNDArrayEquals(img[1:3,0:2], nda[0:2,1:3])
+        self.assertImageNDArrayEquals(img[1:,2:],nda[2:,1:])
+        self.assertImageNDArrayEquals(img[:3,:4],nda[:4,:3])
+        self.assertImageNDArrayEquals(img[1:,2:],nda[2:,1:])
+
+        self.assertImageNDArrayEquals(img[1:4:2,0:2:2],nda[0:2:2,1:4:2])
+        self.assertImageNDArrayEquals(img[1::2,0::2],nda[0::2,1::2])
+        self.assertImageNDArrayEquals(img[:3:2,:2:2],nda[:2:2,:3:2])
+
+
+        # some negative cases
+        self.assertImageNDArrayEquals(img[-4:-1,-2:-1],nda[-2:-1,-4:-1])
+        self.assertImageNDArrayEquals(img[-4:-1:-2,-2:-1:1],nda[-2:-1:1,-4:-1:-2])
+        self.assertImageNDArrayEquals(img[::-1,:],nda[:,::-1])
+
+        # check some exceptions
+        self.assertRaises(IndexError, lambda : img[0,3] )
+        self.assertRaises(IndexError, lambda : img[5,0] )
+        self.assertRaises(IndexError, lambda : img[5,0] )
+        self.assertRaises(IndexError, lambda : img[-6,0] )
+        self.assertRaises(IndexError, lambda : img[-5,-4] )
+        self.assertRaises(IndexError, lambda : img[1] )
+        self.assertRaises(IndexError, lambda : img[1,1,1] )
+
+
+    def test_3d_extract(self):
+         """testing __getitem__ for extrating 2D slices from 3D image"""
+
+         nda = np.linspace(0, 59, 60 ).reshape(3,4,5)
+
+         img = sitk.GetImageFromArray( nda )
+
+         # check some exceptions
+         self.assertRaises(IndexError, lambda : img[0,3] )
+         self.assertRaises(IndexError, lambda : img[:,0,3] )
+         self.assertRaises(IndexError, lambda : img[:,1:1,3] )
+         self.assertRaises(IndexError, lambda : img[:,1:0,3] )
+
+         self.assertImageNDArrayEquals(img[1], nda[:,:,1])
+         self.assertImageNDArrayEquals(img[-1], nda[:,:,-1])
+         self.assertImageNDArrayEquals(img[:,-2], nda[:,-2])
+         self.assertImageNDArrayEquals(img[:,:,2], nda[2])
+
+         self.assertImageNDArrayEquals(img[::-1,:,-2], nda[-2,:,::-1])
+         self.assertImageNDArrayEquals(img[::-1,0,1:-1], nda[1:-1,0,::-1])
+
+
+    def test_3d(self):
+         """testing __getitem__ for extrating 2D slices from 3D image"""
+
+         nda = np.linspace(0, 59, 60 ).reshape(3,4,5)
+
+         img = sitk.GetImageFromArray( nda )
+
+         # check some exceptions
+         self.assertRaises(IndexError, lambda : img[0,3,0,0] )
+         self.assertRaises(IndexError, lambda : img[0,4,0] )
+         self.assertRaises(IndexError, lambda : img[0,0,3] )
+         self.assertRaises(IndexError, lambda : img[-6,0,0] )
+         self.assertRaises(IndexError, lambda : img[0,0,-4] )
+
+         # check basic indexing
+         self.assertEqual( img[0,0,0], 0.0 )
+         self.assertEqual( img[(1,0,0)], 1.0 )
+         self.assertEqual( img[[2,0,0]], 2.0 )
+         self.assertEqual( img[3,2,1], 33.0 )
+         self.assertEqual( img[-3,-2,-1], 52.0 )
+
+
+         self.assertImageNDArrayEquals(img[1:-1,1:-1,1:-1], nda[1:-1,1:-1,1:-1])
+         self.assertImageNDArrayEquals(img[:,:,1:2],nda[1:2,:,:])
+         self.assertImageNDArrayEquals(img[1:5,2:4,0:2],nda[0:2,2:4,1:5])
+         self.assertImageNDArrayEquals(img[1:,2:,:2],nda[:2,2:,1:])
+
+         # some negative cases
+         self.assertImageNDArrayEquals(img[::-1,::-1,::-1], nda[::-1,::-1,::-1])
+         self.assertImageNDArrayEquals(img[:,::-2,::-1], nda[::-1,::-2,:])
+         self.assertImageNDArrayEquals(img[-1:-4:-1,:,:], nda[:,:,-1:-4:-1])
+
+    def test_compare(self):
+
+        img = sitk.Image(1,1,sitk.sitkFloat32)
+        self.assertEqual(img.GetPixel(0,0), 0.0)
+
+        self.assertEqual((img<0).GetPixel(0,0), 0)
+        self.assertEqual((img<=0).GetPixel(0,0), 1)
+
+        self.assertEqual((0>img).GetPixel(0,0), 0)
+        self.assertEqual((0>=img).GetPixel(0,0), 1)
+
+        self.assertEqual((img>0).GetPixel(0,0), 0)
+        self.assertEqual((img>=0).GetPixel(0,0), 1)
+
+        self.assertEqual((0<img).GetPixel(0,0), 0)
+        self.assertEqual((0<=img).GetPixel(0,0), 1)
+
+        img.SetPixel(0,0, 0.5)
+
+        self.assertEqual((img<0.5).GetPixel(0,0), 0)
+        self.assertEqual((img<=0.5).GetPixel(0,0), 1)
+
+        self.assertEqual((0.5>img).GetPixel(0,0), 0)
+        self.assertEqual((0.5>=img).GetPixel(0,0), 1)
+
+        self.assertEqual((img>0.5).GetPixel(0,0), 0)
+        self.assertEqual((img>=0.5).GetPixel(0,0), 1)
+
+        self.assertEqual((0.5<img).GetPixel(0,0), 0)
+        self.assertEqual((0.5<=img).GetPixel(0,0), 1)
+
+        self.assertEqual((img<-1).GetPixel(0,0), 0)
+        self.assertEqual((img<=-1).GetPixel(0,0), 0)
+
+        self.assertEqual((-1>img).GetPixel(0,0), 0)
+        self.assertEqual((-1>=img).GetPixel(0,0), 0)
+
+        self.assertEqual((img>-1).GetPixel(0,0), 1)
+        self.assertEqual((img>=-1).GetPixel(0,0), 1)
+
+        self.assertEqual((-1<img).GetPixel(0,0), 1)
+        self.assertEqual((-1<=img).GetPixel(0,0), 1)
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/Testing/Unit/JavaImageFilterTestTemplate.java.in b/Testing/Unit/JavaImageFilterTestTemplate.java.in
new file mode 100644
index 0000000..fea0a7f
--- /dev/null
+++ b/Testing/Unit/JavaImageFilterTestTemplate.java.in
@@ -0,0 +1,247 @@
+/*=========================================================================
+ *
+ *  Copyright Insight Software Consortium
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *         http://www.apache.org/licenses/LICENSE-2.0.txt
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ *=========================================================================*/
+
+/*
+ * WARNING: DO NOT EDIT THIS FILE!
+ * THIS FILE IS AUTOMATICALLY GENERATED BY THE SIMPLEITK BUILD PROCESS.
+ * Please look at JavaImageFilterTestTemplate.java.in to make changes.
+ */
+
+import java.math.BigInteger;
+// This is Java code to test ${name}
+import org.itk.simple.*;
+import java.util.Arrays;
+
+
+class BigIntergerFix {
+  public static long Convert( long referenceType, long value) {
+    return value;
+  }
+
+  public static BigInteger Convert(BigInteger referenceType, long value)
+  {
+    return BigInteger.valueOf(value);
+  }
+}
+
+class ${name}Test {
+
+  public static void main( String argv[] ) {
+
+    // Get the right number of inputs
+    int num_inputs = 1;
+    $(if number_of_inputs then
+        OUT=[[num_inputs = ${number_of_inputs};]]
+      end)
+
+    // Check the command line arguments
+    if ( argv.length < num_inputs + 1 ) {
+      System.out.println("Usage: ${name} tag <input(s)> output");
+      return;
+    }
+
+    String tag = argv[0];
+
+    // Instantiate objects
+    ImageFileReader reader = new ImageFileReader();
+    ImageFileWriter writer = new ImageFileWriter();
+    ${name} filter = new ${name}();
+
+    $(if #tests == 0 then
+    OUT=[[
+    // No tests defined => exit with error code
+    System.out.println ( "No tests defined!" );
+    System.exit ( 1 );
+    ]]
+    end)
+
+    // Run each testzf
+$(foreach tests
+    if (tag.equals( "${tag}" )) {
+
+
+      Image[] inputs;
+      inputs = new Image[ ${#inputs} ];
+
+     // Read image(s)
+$(for i=0,#inputs-1 do
+OUT=OUT..[[
+      reader.setFileName( argv[]]..i..[[+1] );
+      inputs[]]..i..[[] = reader.execute();
+]]
+end)
+
+      CastImageFilter caster = new CastImageFilter();
+$(if inputA_cast then
+ OUT=[[
+      caster.setOutputPixelType( PixelIDValueEnum.${inputA_cast} );
+      inputs[0]  = caster.execute( inputs[0] );
+]]
+end)$(if inputB_cast then
+ OUT=[[
+      caster.setOutputPixelType( PixelIDValueEnum.${inputB_cast} );
+      inputs[1]  = caster.execute( inputs[1] );
+]]
+end)
+
+      $(when settings
+      // Set parameters
+      $(foreach settings
+$(if parameter == "SeedList" then
+      OUT=[[filter.clearSeeds();
+      $(for i=1,#value do OUT=OUT .. "{\
+        int v[] = " .. value[i] .. ";\
+        VectorUInt32 idx = new VectorUInt32();\
+        for (int i = 0; i < inputs[0].getDimension(); i++) {\
+          idx.add(v[i]);\
+        }\
+        filter.addSeed(idx);\
+      }\
+      " end)]]
+elseif parameter == "TrialPoints" then
+      OUT=[[filter.clearTrialPoints();
+      $(for i=1,#value do OUT=OUT .. "{\
+        int v[] = " .. value[i] .. ";\
+        VectorUInt32 idx = new VectorUInt32();\
+        for (int i = 0; i < inputs[0].getDimension(); i++) {\
+          idx.add(v[i]);\
+        }\
+        filter.addTrialPoint(idx);\
+      }\
+      " end)]]
+elseif point_vec and point_vec == 1 then
+    OUT=[[
+                filter.clear${parameter}();
+]]
+    for i=1,#value do
+      OUT=OUT.. [[
+                {
+                  int v[] = ]] .. value[i] .. [[;
+                  VectorUInt32 pts = new VectorUInt32( );
+                  for (int i = 0; i < inputs[0].getDimension(); i++) {
+                    pts.add(v[i]);
+                  }
+                  filter.add${parameter:gsub('s([0-9]?)$','%1')}(pts);
+                }
+]]
+     end
+elseif dim_vec == 1 then
+      OUT=[[
+      {
+        $(if type == "bool" then
+          OUT="Boolean"
+        elseif type == "unsigned int" then
+          OUT="int"
+        elseif type == "unsigned long" then
+          OUT="long"
+        elseif type == "unsigned short" then
+          OUT="short"
+        elseif type == "uint8_t" then
+          OUT="short"
+        elseif type == "uint16_t" then
+          OUT="short"
+        elseif type == "uint32_t" then
+          OUT="int"
+        elseif type == "uint64_t" then
+          OUT="long"
+        else
+          OUT="${type}"
+        end) v[] = $(if java_value then
+          OUT=OUT..java_value
+          else
+            OUT=OUT..'{'
+            for i=1,#value-1 do
+              OUT=OUT..value[i]..", "
+            end
+          OUT=OUT..value[#value]..'}'
+          end);
+        $(if type == "bool" then
+          OUT="VectorBool idx = new VectorBool( v.length );"
+        elseif type == "unsigned int" then
+          OUT="VectorUInt32 idx = new VectorUInt32( v.length );"
+        elseif type == "int" then
+          OUT="VectorInt32 idx = new VectorInt32( v.length );"
+        elseif type == "unsigned long" then
+         OUT="VectorULong idx = new VectorULong( v.length );"
+        elseif type == "long" then
+         OUT="VectorLong idx = new VectorLong( v.length );"
+        elseif type == "unsigned short" then
+          OUT="VectorUShort idx = new VectorUShort( v.length );"
+        elseif type == "short" then
+          OUT="VectorShort idx = new VectorShort( v.length );"
+        elseif type == "float" then
+          OUT="VectorFloat idx = new VectorFloat( v.length );"
+        elseif type == "double" then
+          OUT="VectorDouble idx = new VectorDouble( v.length );"
+        elseif type == "uint8_t" then
+          OUT="VectorUInt8 idx = new VectorUInt8( v.length );"
+        elseif type == "uint16_t" then
+          OUT="VectorUInt16 idx = new VectorUInt16( v.length );"
+        elseif type == "uint32_t" then
+          OUT="VectorUInt32 idx = new VectorUInt32( v.length );"
+        elseif type == "uint64_t" then
+          OUT="VectorUInt64 idx = new VectorUInt64( v.length );"
+        elseif type == "int8_t" then
+          OUT="VectorInt8 idx = new VectorInt8( v.length );"
+        elseif type == "int16_t" then
+          OUT="VectorInt16 idx = new VectorInt16( v.length );"
+        elseif type == "int32_t" then
+          OUT="VectorInt32 idx = new VectorInt32( v.length );"
+        elseif type == "int64_t" then
+          OUT="VectorInt64 idx = new VectorInt64( v.length );"
+        end)
+
+        for (int i = 0; i < v.length; i++) {
+          idx.set( i, v[i] );
+        }
+        filter.set${parameter}(idx);
+      }]]
+elseif type == "uint64_t" then
+OUT=[[
+  filter.set${parameter}( BigIntergerFix.Convert( filter.get${parameter}(), $(if java_value then OUT='${java_value}' else OUT='${value}' end) ) );
+]]
+else
+OUT=[[
+      filter.set${parameter}( $(if java_value then OUT='${java_value}' else OUT='${value}' end) );
+]]
+end)
+)
+)
+
+      // Run the filter
+      $(if not no_return_image then OUT=[[Image output =]] end) filter.execute ( $(if #inputs > 0 then OUT=[[inputs[0] ]] end)$(for inum=1,#inputs-1 do OUT=OUT..", inputs["..inum.."]" end) );
+
+      PixelIDValueEnum[] labelIDs = { PixelIDValueEnum.sitkLabelUInt8, PixelIDValueEnum.sitkLabelUInt16, PixelIDValueEnum.sitkLabelUInt32, PixelIDValueEnum.sitkLabelUInt64 };
+
+$(if not no_return_image then
+OUT=[[
+      if (Arrays.asList(labelIDs).contains(output.getPixelID()))
+        {
+          LabelMapToLabelImageFilter toImage = new LabelMapToLabelImageFilter();
+          output = toImage.execute(output);
+        }
+
+      // Write output
+      writer.setFileName( argv[argv.length - 1] );
+      writer.execute( output );
+]]
+end)
+    }
+)
+  }
+}
diff --git a/Testing/Unit/LuaImageFilterTestTemplate.lua.in b/Testing/Unit/LuaImageFilterTestTemplate.lua.in
new file mode 100644
index 0000000..e11549f
--- /dev/null
+++ b/Testing/Unit/LuaImageFilterTestTemplate.lua.in
@@ -0,0 +1,157 @@
+--==========================================================================
+--
+--   Copyright Insight Software Consortium
+--
+--   Licensed under the Apache License, Version 2.0 (the "License");
+--   you may not use this file except in compliance with the License.
+--   You may obtain a copy of the License at
+--
+--          http://www.apache.org/licenses/LICENSE-2.0.txt
+--
+--   Unless required by applicable law or agreed to in writing, software
+--   distributed under the License is distributed on an "AS IS" BASIS,
+--   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+--   See the License for the specific language governing permissions and
+--   limitations under the License.
+--
+--==========================================================================*/
+
+--
+-- WARNING: DO NOT EDIT THIS FILE!
+-- THIS FILE IS AUTOMATICALLY GENERATED BY THE SIMPLEITK BUILD PROCESS.
+-- Please look at LuaImageFilterTestTemplate.lua.in to make changes.
+--
+
+
+-- This is Lua code to test ${name}
+
+require "SimpleITK"
+
+inputs = 1
+$(if number_of_inputs then
+    OUT=[[inputs = ${number_of_inputs}]]
+  end)
+
+if #arg < inputs + 2 then
+  print ( "Usage: ${name} tag <input(s)> output" )
+  os.exit ( 1 )
+end
+
+tag = arg[1];
+
+reader = SimpleITK.ImageFileReader()
+writer = SimpleITK.ImageFileWriter()
+filter = SimpleITK.${name}()
+
+$(if #tests == 0 then
+    OUT=[[print ( "No tests defined!" ); os.exit ( 1 );]]
+  end)
+
+$(foreach tests
+  if tag == "${tag}" then
+    $(when settings
+$(foreach settings
+$(if parameter == "SeedList" and lua_value then
+    OUT=[[filter:ClearSeeds();
+    $(for i=1,#lua_value do OUT=OUT .. "\
+    idx = SimpleITK.VectorUInt32();\
+    for _,v in ipairs(".. lua_value[i] ..") do idx:push_back(v) end\
+    filter:AddSeed( idx );"end)]]
+elseif parameter == "SeedList" then
+    OUT=[[filter:ClearSeeds();
+    $(for i=1,#value do OUT=OUT .. "\
+    idx = SimpleITK.VectorUInt32();\
+    for _,v in ipairs(".. value[i] ..") do idx:push_back(v) end\
+    filter:AddSeed( idx );"end)]]
+elseif parameter == "TrialPoints" and lua_value then
+    OUT=[[filter:ClearTrialPoints();
+    $(for i=1,#lua_value do OUT=OUT .. "\
+    idx = SimpleITK.VectorUInt32();\
+    for _,v in ipairs(".. lua_value[i] ..") do idx:push_back(v) end\
+    filter:AddTrialPoint( idx );"end)]]
+elseif parameter == "TrialPoints" then
+    OUT=[[filter:ClearTrialPoints();
+    $(for i=1,#value do OUT=OUT .. "\
+    idx = SimpleITK.VectorUInt32();\
+    for _,v in ipairs(".. value[i] ..") do idx:push_back(v) end\
+    filter:AddTrialPoint( idx );"end)]]
+elseif point_vec and point_vec == 1 then
+    OUT=[[filter:Clear${parameter}();
+]]
+    for i=1,#value do
+      OUT=OUT .. [[
+      pts = SimpleITK.VectorUInt32();
+      for _,v in ipairs(]].. value[i] ..[[) do pts:push_back(v) end
+      filter:Add${parameter:gsub('s([0-9]?)$','%1')}( pts );]]
+    end
+elseif dim_vec and dim_vec == 1 then
+   if type == "bool" then
+     OUT="idx = SimpleITK.VectorBool();"
+   elseif type == "uint8_t" then
+     OUT="idx = SimpleITK.VectorUInt8();"
+   elseif type == "int" then
+      OUT="idx = SimpleITK.VectorInt32();"
+   elseif type == "double" then
+      OUT="idx = SimpleITK.VectorDouble();"
+   else
+     OUT="idx = SimpleITK.VectorUInt32();"
+   end
+
+   OUT=OUT.. [[
+
+    for _,v in ipairs(]]
+if lua_value then
+  OUT=OUT..'${lua_value}'
+else
+  OUT=OUT..'{'
+  for i=1,#value-1 do
+    OUT=OUT..value[i]..", "
+  end
+  OUT=OUT..value[#value]..'}'
+end
+OUT=OUT..[[) do idx:push_back(v) end
+    filter:Set${parameter}( idx );]]
+else
+OUT=[[
+    filter:Set${parameter}( $(if lua_value then OUT='${lua_value}' else OUT='${value}' end) );]]
+end)
+)
+)
+
+    inputs = {}
+    for i=2,#arg-1 do
+       print( "reading..."..arg[i] );
+       reader:SetFileName ( arg[i] );
+       table.insert( inputs, reader:Execute() );
+    end
+
+$(if inputA_cast then
+OUT=[[
+      inputs[1] = SimpleITK.Cast( inputs[1], SimpleITK.${inputA_cast} );
+     ]]
+end)
+$(if inputB_cast then
+OUT=[[
+      inputs[2] = SimpleITK.Cast( inputs[2], SimpleITK.${inputB_cast} );
+     ]]
+end)
+
+
+
+    output = filter:Execute ( unpack( inputs ) )
+$(if not no_return_image then
+OUT=[[
+    labelIDs = { SimpleITK.sitkLabelUInt8, SimpleITK.sitkLabelUInt16, SimpleITK.sitkLabelUInt32, SimpleITK.sitkLabelUInt64 }
+    for _,v in pairs( labelIDs ) do
+        if v == output:GetPixelID()  then
+          output = SimpleITK.LabelMapToLabel(output)
+        end
+    end
+
+    writer:SetFileName ( arg[#arg] )
+    writer:Execute ( output )
+]]
+end)
+
+  end
+)
diff --git a/Testing/Unit/PythonImageFilterTestTemplate.py.in b/Testing/Unit/PythonImageFilterTestTemplate.py.in
new file mode 100644
index 0000000..8b64d7d
--- /dev/null
+++ b/Testing/Unit/PythonImageFilterTestTemplate.py.in
@@ -0,0 +1,117 @@
+#==========================================================================
+#
+#   Copyright Insight Software Consortium
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#          http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#==========================================================================*/
+
+#
+# WARNING: DO NOT EDIT THIS FILE!
+# THIS FILE IS AUTOMATICALLY GENERATED BY THE SIMPLEITK BUILD PROCESS.
+# Please look at PythonImageFilterTestTemplate.py.in to make changes.
+#
+
+from __future__ import print_function
+
+# This is Python code to test ${name}
+import SimpleITK
+import sys
+
+inputs = 1
+$(if number_of_inputs then
+    OUT=[[inputs = ${number_of_inputs}]]
+  end)
+
+if len ( sys.argv ) < inputs + 2:
+    print( "Usage: ${name} tag <input(s)> output" )
+    sys.exit ( 1 )
+
+tag = sys.argv[1]
+
+reader = SimpleITK.ImageFileReader()
+writer = SimpleITK.ImageFileWriter()
+filter = SimpleITK.${name}()
+
+$(if #tests == 0 then
+    OUT=[[
+print( "No tests defined!" )
+sys.exit ( 1 )
+    ]]
+  end)
+
+$(foreach tests
+if tag == "${tag}":
+$(when settings
+$(foreach settings
+$(if parameter == "SeedList" and python_value then
+    OUT=[[    filter.ClearSeeds()
+    $(for i=1,#python_value do OUT=OUT .. "\n    filter.AddSeed( " .. python_value[i] .. " )\n" end)]]
+elseif parameter == "SeedList" then
+    OUT=[[  filter.ClearSeeds()
+    $(for i=1,#value do OUT=OUT .. "\n    filter.AddSeed( " .. value[i] .. " )\n" end)]]
+elseif parameter == "TrialPoints" and python_value then
+    OUT=[[    filter.ClearTrialPoints()
+    $(for i=1,#python_value do OUT=OUT .. "\n    filter.AddTrialPoint( " .. python_value[i] .. " )\n" end)]]
+elseif parameter == "TrialPoints" then
+    OUT=[[  filter.ClearTrialPoints()
+    $(for i=1,#value do OUT=OUT .. "\n    filter.AddTrialPoint( " .. value[i] .. " )" end)]]
+elseif python_value then
+OUT=[[
+    filter.Set${parameter}( ${python_value} )]]
+elseif dim_vec and dim_vec==1 then
+OUT=[[
+    filter.Set${parameter}( ( ]]
+  for i=1,#value-1 do
+    OUT=OUT..value[i]..", "
+  end
+  OUT=OUT..value[#value]..' ) )'
+else
+OUT=[[
+    filter.Set${parameter}( ${value} )]]
+end)
+)
+)
+
+    inputs = []
+
+    for i in range(2, len(sys.argv)-1 ):
+      print( "reading ", sys.argv[i] )
+      inputs.append( SimpleITK.ReadImage( sys.argv[i] ) );
+
+
+$(if inputA_cast then
+OUT=[[
+    inputs[0] = SimpleITK.Cast( inputs[0], SimpleITK.${inputA_cast} );
+     ]]
+end)
+
+$(if inputB_cast then
+OUT=[[
+    inputs[1] = SimpleITK.Cast( inputs[1], SimpleITK.${inputB_cast} );
+     ]]
+end)
+
+    $(if not no_return_image then OUT=[[output = ]] end)filter.Execute( *tuple(inputs) )
+
+    labelIDs = [SimpleITK.sitkLabelUInt8, SimpleITK.sitkLabelUInt16, SimpleITK.sitkLabelUInt32, SimpleITK.sitkLabelUInt64]
+$(if not no_return_image then
+OUT=[[
+    if output.GetPixelIDValue() in labelIDs:
+       output = SimpleITK.LabelMapToLabel(output)
+
+    writer.SetFileName ( sys.argv[-1] )
+    writer.Execute ( output )
+]]
+end)
+)
diff --git a/Testing/Unit/RArithmeticTest.R b/Testing/Unit/RArithmeticTest.R
new file mode 100644
index 0000000..53ffb4f
--- /dev/null
+++ b/Testing/Unit/RArithmeticTest.R
@@ -0,0 +1,442 @@
+## simple arithmetic tests for R. We are ensuring that operator overloading
+## works and that the results are the same as for R arithmetic. We also
+## use the image/array conversion routines
+##
+## do everything using floating point, to avoid dealing with 8bit precision
+
+library(SimpleITK)
+
+testimA <- ReadImage(system.file("data/cthead1-Float.mha", package="SimpleITK"))
+testimB <- ReadImage(system.file("data/cthead1-Float.mha", package="SimpleITK"))
+
+# need to cast to signed types to compare with R arithmetic
+testimInt <- ReadImage(system.file("data/cthead1.png", package="SimpleITK"))
+testimInt <- Cast(testimInt, 'sitkInt16')
+
+testArrayA <- as.array(testimA)
+testArrayB <- as.array(testimB)
+
+compareImArray <- function(im, Arr)
+  {
+    imA <- as.array(im)
+    if (any(is.nan(imA) != is.nan(Arr))) {
+      return(FALSE)
+    }
+    Arr[is.nan(Arr)] <- 0
+    imA[is.nan(imA)] <- 0
+    return(all(imA == Arr))
+  }
+compareBinImArray <- function(im, Arr)
+  {
+    imA <- as.array(im) > 0
+    if (any(is.nan(imA) != is.nan(Arr))) {
+      return(FALSE)
+    }
+    Arr[is.nan(Arr)] <- 0
+    imA[is.nan(imA)] <- 0
+    return(all(imA == Arr))
+  }
+compareImArrayTol <- function(im, Arr, tol=1e-06)
+  {
+    # first check the NaNs - should match
+    imA <- as.array(im)
+    if (any(is.nan(imA) != is.nan(Arr))) {
+      return(FALSE)
+    }
+    if (any(is.infinite(imA) != is.infinite(Arr))) {
+      return(FALSE)
+    }
+    # reset NaN
+    Arr[is.nan(Arr)] <- 0
+    imA[is.nan(imA)] <- 0
+    # reset inf
+    Arr[is.infinite(Arr)] <- 0
+    imA[is.infinite(imA)] <- 0
+
+    return(all(abs(imA - Arr)< tol) )
+  }
+
+plusTest <- function()
+  {
+    fname <- deparse(sys.call(0)[[1]])
+
+    Im <- testimA + testimB
+    A <- testArrayA + testArrayB
+
+    if (!compareImArray(Im, A)) {
+      cat("failure in", fname, "\n")
+      quit(save="no", status=1)
+    }
+
+    ImC <- testimA + 101
+    AC <- testArrayA + 101
+    if (!compareImArray(ImC, AC)) {
+      cat("failure in", fname, "\n")
+      quit(save="no", status=1)
+    }
+    ImC <- 101 + testimA
+    AC <- 101 + testArrayA
+    if (!compareImArray(ImC, AC)) {
+      cat("failure in", fname, "\n")
+      quit(save="no", status=1)
+    }
+
+  }
+
+minusTest <- function()
+  {
+    fname <- deparse(sys.call(0)[[1]])
+
+    Im <- testimA - testimB
+    A <- testArrayA - testArrayB
+
+    if (!compareImArray(Im, A)) {
+      cat("failure in", fname, "\n")
+      quit(save="no", status=1)
+    }
+    ImC <- testimA - 101
+    AC <- testArrayA - 101
+    if (!compareImArray(ImC, AC)) {
+      cat("failure in", fname, "\n")
+      quit(save="no", status=1)
+    }
+    ImC <- 101 - testimA
+    AC <- 101 - testArrayA
+    if (!compareImArray(ImC, AC)) {
+      cat("failure in", fname, "\n")
+      quit(save="no", status=1)
+    }  }
+
+multTest <- function()
+  {
+    fname <- deparse(sys.call(0)[[1]])
+
+    Im <- testimA * testimB
+    A <- testArrayA * testArrayB
+
+    if (!compareImArray(Im, A)) {
+      cat("failure in", fname, "\n")
+      quit(save="no", status=1)
+    }
+    ImC <- testimA * 101
+    AC <- testArrayA * 101
+    if (!compareImArray(ImC, AC)) {
+      cat("failure in", fname, "\n")
+      quit(save="no", status=1)
+    }
+    ImC <- 101 * testimA
+    AC <- 101 * testArrayA
+    if (!compareImArray(ImC, AC)) {
+      cat("failure in", fname, "\n")
+      quit(save="no", status=1)
+    }
+  }
+divTest <- function()
+  {
+    fname <- deparse(sys.call(0)[[1]])
+    ## need to avoid 0/0. Also there is a difference in precision.
+    ## image is floating point, array is double precision, so we need
+    ## to include a tolerance
+    Im <- testimA / (testimB + 1)
+    A <- testArrayA / (testArrayB+1)
+
+    if (!compareImArrayTol(Im, A)) {
+      cat("A failure in", fname, "\n")
+      quit(save="no", status=1)
+    }
+    ImC <- testimA / 101
+    AC <- testArrayA / 101
+    if (!compareImArrayTol(ImC, AC)) {
+      cat("B failure in", fname, "\n")
+      quit(save="no", status=1)
+    }
+    # sitk doesn't return infs
+    ImC <- 101/(testimA+1)
+    AC <- 101/(testArrayA+1)
+    if (!compareImArrayTol(ImC, AC, tol=1e-05)) {
+      cat("C failure in", fname, "\n")
+      quit(save="no", status=1)
+    }
+  }
+powTest <- function()
+  {
+    fname <- deparse(sys.call(0)[[1]])
+    ## There is a difference in precision.
+    ## image is floating point, array is double precision, so we need
+    ## to include a tolerance
+    p <- array(data=0.9, dim=dim(testArrayA))
+    ip <- testimA * 0 + 0.9
+    Im <- testimA ^ ip
+    A <- testArrayA ^ p
+
+    if (!compareImArrayTol(Im, A, tol=5e-05)) {
+      cat("A failure in", fname, "\n")
+      quit(save="no", status=1)
+    }
+    ImC <- testimA ^ 0.9
+    AC <- testArrayA ^ 0.9
+    if (!compareImArrayTol(ImC, AC, tol=5e-05)) {
+      cat("B failure in", fname, "\n")
+      quit(save="no", status=1)
+    }
+    # there isn't a SimpleITK function for this
+    #ImC <- 3.1^testimA
+    #AC <- 3.1^testArrayA
+    #if (!compareImArrayTol(ImC, AC)) {
+    #  cat("failure in", fname, "\n")
+    #  #quit(save="no", status=1)
+    #}
+  }
+modTest <- function()
+  {
+    fname <- deparse(sys.call(0)[[1]])
+    ## needs to use integer dividend and integer images. No support
+    ## for float in underlying sitk filter
+    ImC <- testimInt %% 3
+    AC <- as.array(testimInt) %% 3
+    if (!compareImArray(ImC, AC)) {
+      cat("failure in", fname, "\n")
+      quit(save="no", status=1)
+    }
+  }
+
+mathTest <- function()
+  {
+    # this will produce NaNs - need to compare them
+    mnames <- c('cos', 'sin', 'tan', 'acos', 'asin', 'atan', 'abs', 'exp', 'sqrt',
+                 'log', 'log10')
+    for (n in mnames) {
+      Im <- eval(parse(text=paste(n, "(testimA/256)")))
+      A <- eval(parse(text=paste(n, "(testArrayA/256)")))
+      print(n)
+      if (!compareImArrayTol(Im, A, 1e-05))
+        {
+          cat("failure in mathGroup", n, "\n")
+          quit(save="no", status=1)
+        }
+    }
+
+  }
+
+logicTest <- function()
+  {
+    bin1 <- testimInt > 100
+    bin2 <- testimInt > 120
+    bA1 <- as.array(bin1)
+    bA2 <- as.array(bin2)
+
+    r1 <- bin1 & bin2
+    r2 <- bA1 & bA2
+    if (!compareBinImArray(r1, r2))
+      {
+        cat("failure in &\n")
+        quit(save="no", status=1)
+      }
+
+    r1 <- bin1 | bin2
+    r2 <- bA1 | bA2
+    if (!compareBinImArray(r1, r2))
+      {
+        cat("failure in |\n")
+        quit(save="no", status=1)
+      }
+    r1 <- xor(bin1, bin2)
+    r2 <- xor(bA1, bA2)
+    if (!compareBinImArray(r1, r2))
+      {
+        cat("failure in xor\n")
+        quit(save="no", status=1)
+      }
+
+    r1 <- !bin1
+    r2 <- !bA1
+    if (!compareBinImArray(r1, r2))
+      {
+        cat("failure in !\n")
+        quit(save="no", status=1)
+      }
+  }
+
+compareTest <- function()
+  {
+    i0 <- testimInt
+    i1 <- 113
+    i2 <- i0 + 1
+
+    a0 <- as.array(testimInt)
+    a1 <- 113
+    a2 <- a0 + 1
+
+    r1 <- i0 == i1
+    r2 <- a0 == a1
+
+    if (!compareBinImArray(r1, r2))
+      {
+        cat("failure in ==\n")
+        quit(save="no", status=1)
+      }
+
+    r1 <- i0 != i1
+    r2 <- a0 != a1
+
+    if (!compareBinImArray(r1, r2))
+      {
+        cat("failure in !=\n")
+        quit(save="no", status=1)
+      }
+
+    r1 <- i0 <= i1
+    r2 <- a0 <= a1
+
+    if (!compareBinImArray(r1, r2))
+      {
+        cat("failure in <=\n")
+        quit(save="no", status=1)
+      }
+
+    r1 <- i0 >= i1
+    r2 <- a0 >= a1
+
+    if (!compareBinImArray(r1, r2))
+      {
+        cat("failure in <=\n")
+        quit(save="no", status=1)
+      }
+    r1 <- i0 < i1
+    r2 <- a0 < a1
+
+    if (!compareBinImArray(r1, r2))
+      {
+        cat("failure in <\n")
+        quit(save="no", status=1)
+      }
+
+    r1 <- i0 > i1
+    r2 <- a0 > a1
+
+    if (!compareBinImArray(r1, r2))
+      {
+        cat("failure in >\n")
+        quit(save="no", status=1)
+      }
+###################################
+    r1 <- i1 == i0
+    r2 <- a1 == a0
+
+    if (!compareBinImArray(r1, r2))
+      {
+        cat("failure in ==\n")
+        quit(save="no", status=1)
+      }
+
+    r1 <- i1 != i0
+    r2 <- a1 != a0
+
+    if (!compareBinImArray(r1, r2))
+      {
+        cat("failure in !=\n")
+        quit(save="no", status=1)
+      }
+
+    r1 <- i1 <= i0
+    r2 <- a1 <= a0
+
+    if (!compareBinImArray(r1, r2))
+      {
+        cat("failure in <=\n")
+        quit(save="no", status=1)
+      }
+
+    r1 <- i1 >= i0
+    r2 <- a1 >= a0
+
+    if (!compareBinImArray(r1, r2))
+      {
+        cat("failure in >=\n")
+        quit(save="no", status=1)
+      }
+    r1 <- i1 < i0
+    r2 <- a1 < a0
+
+    if (!compareBinImArray(r1, r2))
+      {
+        cat("failure in <\n")
+        quit(save="no", status=1)
+      }
+
+    r1 <- i1 > i0
+    r2 <- a1 > a0
+
+    if (!compareBinImArray(r1, r2))
+      {
+        cat("failure in >\n")
+        quit(save="no", status=1)
+      }
+    ## will need to be extended to support image comparison ops.
+###################################
+    r1 <- i0 == i2
+    r2 <- a0 == a2
+
+    if (!compareBinImArray(r1, r2))
+      {
+        cat("failure in ==\n")
+        quit(save="no", status=1)
+      }
+
+    r1 <- i0 != i2
+    r2 <- a0 != a2
+
+    if (!compareBinImArray(r1, r2))
+      {
+        cat("failure in !=\n")
+        quit(save="no", status=1)
+      }
+
+    r1 <- i0 <= i2
+    r2 <- a0 <= a2
+
+    if (!compareBinImArray(r1, r2))
+      {
+        cat("failure in <=\n")
+        quit(save="no", status=1)
+      }
+
+    r1 <- i0 >= i2
+    r2 <- a0 >= a2
+
+    if (!compareBinImArray(r1, r2))
+      {
+        cat("failure in >=\n")
+        quit(save="no", status=1)
+      }
+    r1 <- i0 < i2
+    r2 <- a0 < a2
+
+    if (!compareBinImArray(r1, r2))
+      {
+        cat("failure in <\n")
+        quit(save="no", status=1)
+      }
+
+    r1 <- i0 > i2
+    r2 <- a0 > a2
+
+    if (!compareBinImArray(r1, r2))
+      {
+        cat("failure in >\n")
+        quit(save="no", status=1)
+      }
+
+  }
+
+plusTest()
+minusTest()
+multTest()
+divTest()
+powTest()
+modTest()
+mathTest()
+logicTest()
+compareTest()
+
+quit(save="no", status=0)
diff --git a/Testing/Unit/RImageFilterTestTemplate.R.in b/Testing/Unit/RImageFilterTestTemplate.R.in
new file mode 100644
index 0000000..37a227c
--- /dev/null
+++ b/Testing/Unit/RImageFilterTestTemplate.R.in
@@ -0,0 +1,126 @@
+#==========================================================================
+#
+#   Copyright Insight Software Consortium
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#          http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#==========================================================================*/
+
+#
+# WARNING: DO NOT EDIT THIS FILE!
+# THIS FILE IS AUTOMATICALLY GENERATED BY THE SIMPLEITK BUILD PROCESS.
+# Please look at RImageFilterTestTemplate.R.in to make changes.
+#
+
+#
+# This is R code to test ${name}
+#
+
+library(SimpleITK)
+
+inputs <- 1
+$(if number_of_inputs then
+    OUT=[[inputs <- ${number_of_inputs}]]
+  end)
+
+# arguments after --args
+args <- commandArgs( TRUE )
+
+numberOfArguments <- length(args)
+
+if ( numberOfArguments < inputs + 2) {
+    print ( "Usage: ${name} tag <input(s)> output" )
+    quit( save="no", status=1 )
+}
+
+tag <- args[[1]]
+# Turn this on for a slow but through testing
+#gctorture()
+writer <- ImageFileWriter()
+filter <- ${name}()
+
+$(if #tests == 0 then
+    OUT=[[
+print ( 'No tests defined!' )
+quit( save="no", status=1 )
+    ]]
+  end)
+
+lastargument <- args[[numberOfArguments]]
+
+$(foreach tests
+if(tag == "${tag}") {
+  $(when settings
+$(foreach settings
+$(if parameter == "SeedList" then
+    OUT=[[
+      filter$$ClearSeeds()
+      $(for i=1,#value do
+        OUT=OUT .. "filter$$AddSeed( " .. R_value[i] .. " )\n"
+       end)
+    ]]
+elseif R_value then
+OUT=[[
+    filter$$Set${parameter}( ${R_value} )
+  ]]
+elseif dim_vec and dim_vec==1 then
+OUT=[[
+    filter$$Set${parameter}( c( ]]
+  for i=1,#value-1 do
+    OUT=OUT..value[i]..", "
+  end
+  OUT=OUT..value[#value]..' ) )'
+else
+OUT=[[
+   filter$$Set${parameter}( ${value} )
+  ]]
+end)
+)
+)
+
+  inputs <- list()
+  if (length(args) >= 3)
+  {
+    for ( i in 3:length(args)-1 )
+    {
+    inputs[[length(inputs)+1]] <- ReadImage( args[[i]] )
+    }
+  }
+
+$(if inputA_cast then
+ OUT="  inputs[[1]] = Cast( inputs[[1]], '${inputA_cast}' )"
+end)
+$(if inputB_cast then
+ OUT="  inputs[[2]] = Cast( inputs[[2]], '${inputB_cast}' )"
+end)
+
+  output <- filter$$Execute ( $(if #inputs > 0 then OUT="inputs[[1]] " end)$(for inum=2,#inputs do OUT=OUT..", inputs[["..inum.."]]" end) )
+
+$(if not no_return_image then
+OUT=[[
+  pixelID <- output$$GetPixelID()
+
+  if ( pixelID == 'sitkLabelUInt8' | pixelID == 'sitkLabelUInt16' | pixelID == 'sitkLabelUInt32' | pixelID == 'sitkLabelUInt64' )
+  {
+  output <- LabelMapToLabel(output)
+  }
+
+  writer$$SetFileName( lastargument )
+  writer$$Execute( output )
+]]
+end)
+
+  }
+)
+
+quit( save="no", status=0 )
diff --git a/Testing/Unit/RImageListArguments.R b/Testing/Unit/RImageListArguments.R
new file mode 100644
index 0000000..e82f3bb
--- /dev/null
+++ b/Testing/Unit/RImageListArguments.R
@@ -0,0 +1,18 @@
+## tests of image pixel access.
+## helps to check whether the rtype entries for std:vector in R.i are OK.
+library(SimpleITK)
+
+imsize <- 64
+img1 = Image(imsize, imsize, "sitkFloat32")
+img2 = Image(imsize, imsize, "sitkFloat32")
+
+arglist <- list(img1, img2, img1)
+
+h<-Tile(arglist, c(length(arglist),1))
+sz <- h$GetSize()
+
+if (any(sz != c(imsize*length(arglist), imsize)))
+{
+    cat("Failure in tiling with image list arguments\n")
+    quit(save="no", status=1)
+}
diff --git a/Testing/Unit/RImageSlicingTests.R b/Testing/Unit/RImageSlicingTests.R
new file mode 100644
index 0000000..a66a4ec
--- /dev/null
+++ b/Testing/Unit/RImageSlicingTests.R
@@ -0,0 +1,245 @@
+## Test image slicing operators. They need to conform to rules that are slightly
+## different to those for R matrices.
+##
+## These rules are: spacing needs to be uniform per dimension
+## i.e. im[c(1,2,11),] is not accepted
+## This means that creating reflected images isn't possible
+## with slicing - use slicing + Tile.
+## Dropping dimensions is the default, but SimpleITK does not
+## support 1D images. The slicing operator will issue a warning if
+## this is attempted.
+##
+## The bracket operator used for slicing now constructs calls to Slice and Extract,
+## rather than using special C routines. This means that the operation is multithreaded
+## and preserves spacing, origin and direction.
+library(SimpleITK)
+slicingOperatorUnitSpacingTest<- function()
+{
+    ## Cropping test - unit spacing
+    im <- Image(15,15,"sitkFloat64")
+    im$SetSpacing(c(0.3,0.6))
+    t <- 0.4
+    ct <- cos(t)
+    st <- sin(t)
+    im$SetDirection(c(ct,-st,st,ct))
+
+    e1 <- im[2:10,3:5]
+
+    ef <- ExtractImageFilter()
+    ef$SetSize(c(9,3))
+    ef$SetIndex(c(1,2))
+    e2 <- ef$Execute(im)
+
+    ## meta-data for slicing operator should match the metadata for the extract
+    ## filter which we know to be correct.
+    if(!all(e1$GetOrigin() == e2$GetOrigin()))
+    {
+        cat("slicing operator failed, origins don't match")
+        quit(save="no", status=1)
+    }
+    if(!all(e1$GetSpacing() == e2$GetSpacing()))
+    {
+        cat("slicing operator failed, spacings don't match")
+        quit(save="no", status=1)
+    }
+    if(!all(e1$GetDirection() == e2$GetDirection()))
+    {
+        cat("slicing operator failed, directions don't match")
+        quit(save="no", status=1)
+    }
+}
+
+
+dirToMat <- function(im)
+{
+    ## produce an R formatted direction matrix
+    d1 <- im$GetDirection()
+    dim(d1) <- c(2,2)
+    d1 <- t(d1)
+    return(d1)
+}
+slicingOperatorNegativeSpacingTest<- function()
+{
+    ## Cropping test - unit spacing
+    im <- Image(15,15,"sitkFloat64")
+    im$SetSpacing(c(0.3,0.6))
+    t <- 0.4
+    ct <- cos(t)
+    st <- sin(t)
+    im$SetDirection(c(ct,-st,st,ct))
+
+    e1 <- im[2:10,5:3]
+
+
+    ## meta-data for slicing operator should match the metadata for the extract
+    ## filter which we know to be correct.
+    if(!all(e1$GetOrigin() == im$TransformIndexToPhysicalPoint(c(1,4))))
+    {
+        cat("slicing operator failed, origins don't match")
+        quit(save="no", status=1)
+    }
+    d1 <- dirToMat(im)
+    d2 <- dirToMat(e1)
+    ## reversed the second dimension, so d2[,2] == -d1[,2]
+    ## negate the second column and compare to original
+    d2[,2] <- -d2[,2]
+    if(!all(d1 == d2))
+    {
+        cat("slicing operator failed, directions incorrect")
+        quit(save="no", status=1)
+    }
+}
+
+slicingPositionChecks <- function()
+{
+    x<-rep(1:10, rep(12, 10))
+    dim(x) <- c(12, 10)
+    x[5:9, 6:9] <- 21
+    xim <- as.image(x)
+
+    row3 <- as.array(xim[,3,drop=FALSE])
+    if (!(all(row3 == 3))) {
+        cat("Incorrect pixel values - should be all 3\n")
+        quit(save="no", status=1)
+
+    }
+
+    b <- as.array(xim[5:9, 6:9])
+    if (!all(b==21)) {
+        cat("Failed block extract - voxels should have value 21\n")
+        quit(save="no", status=1)
+    }
+}
+slicingOperatorWarningsErrors <- function()
+{
+    im <- Image(15,15,"sitkFloat64")
+
+    ## this should issue a warning
+    msg <- list()
+    try(msg <- tools::assertWarning(im[1, 2:3]), silent=TRUE)
+    if (length(msg) == 0) {
+        cat("Slicing operator should have issued a warning, but did not.\n")
+        quit(save="no", status=1)
+    }
+    ## Turning drop off - no warning
+    msg <- list()
+    try(msg <- tools::assertCondition(im[1, 2:3, ,drop=FALSE]), silent=TRUE)
+    if (length(msg) != 0) {
+        cat("Slicing operator issued a warning/error, but should not.\n")
+        quit(save="no", status=1)
+    }
+
+    ## Irregular spacing - should issue an error
+    msg <- list()
+    try(msg <- tools::assertError(im[c(1,2, 4), 2:3]), silent=TRUE)
+    if (length(msg) == 0) {
+        cat("Slicing operator should have issued an error, but did not.\n")
+        quit(save="no", status=1)
+    }
+}
+
+slicingSyntaxTrials <- function()
+{
+    im2 <- Image(15,15,"sitkFloat64")
+    im3 <- Image(15,15, 15, "sitkFloat64")
+
+    ## slicing requires all dimensions to be included - these should produce an
+    ## error
+    msg <- list()
+    try(msg <- tools::assertError(im3[1:2, 2:3]), silent=TRUE)
+    if (length(msg) == 0) {
+        cat("Slicing operator should have issued an error, but did not.\n")
+        quit(save="no", status=1)
+    }
+
+    msg <- list()
+    try(msg <- tools::assertError(im3[1, 2:3,drop=TRUE]), silent=TRUE)
+    if (length(msg) == 0) {
+        cat("Slicing operator should have issued an error, but did not.\n")
+        quit(save="no", status=1)
+    }
+    ## this should be OK
+    msg <- list()
+    try(msg <- tools::assertCondition(im3[1:2, 2:3,]), silent=TRUE)
+    if (length(msg) != 0) {
+        cat("Slicing issued an error/warning, but should not.\n")
+        quit(save="no", status=1)
+    }
+    msg <- list()
+    try(msg <- tools::assertCondition(im3[1:2, 2:3,,drop=FALSE]), silent=TRUE)
+    if (length(msg) != 0) {
+        cat("Slicing issued an error/warning, but should not.\n")
+        quit(save="no", status=1)
+    }
+    ## this should be OK
+    msg <- list()
+    try(msg <- tools::assertCondition(im3[1:2, ,2:3,]), silent=TRUE)
+    if (length(msg) != 0) {
+        cat("Slicing issued an error/warning, but should not.\n")
+        quit(save="no", status=1)
+    }
+
+    ## dropping tests
+    j<-im3[,,3,drop=FALSE]
+    if (any(j$GetSize() != c(15, 15, 1))) {
+        cat("Image slicing error - incorrect dimensions returned\n")
+        cat("Expected [15, 15, 1] - got [", j$GetSize(), "]\n")
+        quit(save="no", status=1)
+    }
+    j<-im3[,,3,drop=TRUE]
+    if (any(j$GetSize() != c(15, 15))) {
+        cat("Image slicing error - incorrect dimensions returned\n")
+        cat("Expected [15, 15] - got [", j$GetSize(), "]\n")
+        quit(save="no", status=1)
+    }
+    ## logical indexing, with variables
+    xidx <- (1:im3$GetWidth()) > 5
+    msg <- list()
+    try(msg <- tools::assertCondition(im3[xidx, ,2:3]), silent=TRUE)
+    if (length(msg) != 0) {
+        cat("Slicing using logical issued an error/warning, but should not.\n")
+        quit(save="no", status=1)
+    }
+}
+
+slicingZeroIndexTrials <- function()
+{
+    ## various forms of indexes are illegal because we can't support
+    ## an "empty" image in the way R supports an "empty" array
+    im3 <- Image(15,15, 15, "sitkFloat64")
+
+    ## error caused by calling with c()
+    msg <- list()
+    try(msg <- tools::assertError(im3[c(), 2:3,]), silent=TRUE)
+    if (length(msg) == 0) {
+        cat("Slicing operator should have issued an error, but did not.\n")
+        quit(save="no", status=1)
+    }
+    ## check the 3rd dimension, which is handled differently to the first 2
+    msg <- list()
+    try(msg <- tools::assertError(im3[2:3, 2:3, c()]), silent=TRUE)
+    if (length(msg) == 0) {
+        cat("Slicing operator should have issued an error, but did not.\n")
+        quit(save="no", status=1)
+    }
+    ## check 0
+    msg <- list()
+    try(msg <- tools::assertError(im3[2:3, 0, 2:3]), silent=TRUE)
+    if (length(msg) == 0) {
+        cat("Slicing operator should have issued an error, but did not.\n")
+        quit(save="no", status=1)
+    }
+    msg <- list()
+    try(msg <- tools::assertError(im3[2:3, 2:3, 0]), silent=TRUE)
+    if (length(msg) == 0) {
+        cat("Slicing operator should have issued an error, but did not.\n")
+        quit(save="no", status=1)
+    }
+
+
+}
+slicingOperatorUnitSpacingTest()
+slicingOperatorNegativeSpacingTest()
+slicingPositionChecks()
+slicingSyntaxTrials()
+slicingZeroIndexTrials()
diff --git a/Testing/Unit/RPixelAccess.R b/Testing/Unit/RPixelAccess.R
new file mode 100644
index 0000000..90b5e9a
--- /dev/null
+++ b/Testing/Unit/RPixelAccess.R
@@ -0,0 +1,103 @@
+## tests of image pixel access.
+## helps to check whether the rtype entries for std:vector in R.i are OK.
+library(SimpleITK)
+
+## generate a test image with 2 components.
+pp <- PhysicalPointImageSource()
+x <- Image(c(25,25), 'sitkUInt8')
+pp$SetReferenceImage(x)
+fr <- pp$Execute()
+
+## first component has rows with equal value, starting from 0.
+## second component has columns with equal value, stating from 0.
+# cast to lots of different types
+targs <- c("sitkVectorUInt8", "sitkVectorInt8", "sitkVectorUInt16",
+           "sitkVectorInt16", "sitkVectorUInt32", "sitkVectorInt32",
+           "sitkVectorUInt64", "sitkVectorInt64", "sitkVectorFloat32",
+           "sitkVectorFloat64")
+names(targs) <- targs
+
+
+castims <- lapply(targs, function(m)Cast(fr, m))
+
+vectorextract <- sapply(castims, function(K)K[3,4])
+channelextract <- sapply(castims, function(K)K[[1]][3,4])
+
+if (any(vectorextract[1,] != 2) | any(vectorextract[2,] != 3))
+{
+    cat("Failure in vector extraction\n")
+    cat("Pixel type :", targs[(vectorextract[1,] != 2) |
+                              (vectorextract[2,] != 3)], "\n")
+    quit(save="no", status=1)
+}
+
+if (any(channelextract != 2) )
+{
+    cat("Failure in channel extraction\n")
+    cat("Pixel type: ", targs[channelextract != 2], "\n")
+    quit(save="no", status=1)
+}
+
+## Test the methods introduced via the "extend" mechanism
+
+vectorextractGet <-sapply(castims, function(K)K$GetPixel(c(3,4)-1))
+channelextractGet <- sapply(castims, function(K)K[[1]]$GetPixel(c(3,4)-1))
+
+if (any(vectorextractGet[1,] != 2) | any(vectorextractGet[2,] != 3))
+{
+    cat("Failure in vector extraction using GetPixel\n")
+    cat("Pixel type :", targs[(vectorextractGet[1,] != 2) |
+                              (vectorextractGet[2,] != 3)], "\n")
+    quit(save="no", status=1)
+}
+
+## testing reading scalar
+if (any(channelextractGet != 2) )
+{
+    cat("Failure in channel extraction\n")
+    cat("Pixel type: ", targs[channelextractGet != 2], "\n")
+    quit(save="no", status=1)
+}
+
+## Test the SetPixel method - this tests setting vector
+## recreate castims so we can write to it
+castims <- lapply(targs, function(m)Cast(fr, m))
+
+sapply(castims, function(K)K$SetPixel(c(0,0), c(10,11)))
+VecModified <- sapply(castims, function(K)K$GetPixel(c(0,0)))
+if (any(VecModified[1,] != 10) | any(VecModified[2,] != 11) )
+{
+    cat("Failure in SetPixel vector test\n")
+    cat("Pixel type: ", targs[(VecModified[1,] != 10) | (VecModified[2,] != 11)], "\n")
+    quit(save="no", status=1)
+}
+
+## Test the SetPixel method - this tests setting scalar
+## recreate castims so we can write to it
+castims <- lapply(targs, function(m)Cast(fr, m))
+
+FirstChannel <- lapply(castims, function(K)K[[1]])
+sapply(FirstChannel, function(K)K$SetPixel(c(0,0), 12))
+channelModified <- sapply(FirstChannel, function(K)K$GetPixel(c(0,0)))
+if (any(channelModified != 12) )
+{
+    cat("Failure in SetPixel scalar test\n")
+    cat("Pixel type: ", targs[channelModified != 12], "\n")
+    quit(save="no", status=1)
+}
+
+## Test label pixels
+labtargs <- c("sitkLabelUInt8", "sitkLabelUInt16", "sitkLabelUInt32", "sitkLabelUInt64")
+names(labtargs) <- labtargs
+
+labims <- lapply(labtargs, function(tt)Image(c(5,5), tt))
+
+l <- lapply(labims, function(K)K$SetPixel(c(1,2), 7))
+labvals <- sapply(labims, function(K)K$GetPixel(c(1,2)))
+
+if (any(labvals != 7))
+{
+    cat("Failure in SetPixel/GetPixel label test\n")
+    print(labvals)
+    quit(save="no", status=1)
+}
diff --git a/Testing/Unit/RSwigVectorConversionTests.R b/Testing/Unit/RSwigVectorConversionTests.R
new file mode 100644
index 0000000..a03b333
--- /dev/null
+++ b/Testing/Unit/RSwigVectorConversionTests.R
@@ -0,0 +1,56 @@
+## Test automatic conversion of C++ std::vector types
+## Note that RPixelAccess tests all the options for numeric vectors
+## being converted to R vectors, but it doesn't test conversion
+## from R to C++
+## Dicom example deals with std::vector<std::string> cases
+## Some problems have occurred in the past due to references not being
+## included specifically in the swig definitions.
+library(SimpleITK)
+options(warn=2)
+img = Image(64, 64, "sitkFloat32")
+img$SetOrigin(c(0.3,0.6))
+img$SetSpacing(c(0.4,1.0))
+p1<-c(0.1,0.1)
+
+## This is a problem with swig and unsupported vector types
+## Will need to address it.
+## R to const std::vector< double > &point
+## and std::vector< int64_t > to R
+p1Indexes <-img$TransformPhysicalPointToIndex(p1)
+sprintf("Point coordinates: %.1f %.1f Point indexes: %d %d",p1[1],p1[2],p1Indexes[1], p1Indexes[2])
+
+
+
+# R to const std::vector< int64_t > &index)
+# std::vector<double> to R
+p2Location <- img$TransformIndexToPhysicalPoint(c(1,1))
+print(p2Location)
+
+# R to const std::vector<uint32_t>  &r
+bd <- BinaryDilateImageFilter()
+bd$SetKernelRadius(c(3,4))
+# std::vector<uint32_t> to R
+bd$GetKernelRadius()
+
+# R to const std::vector<unsigned int> & Radius
+bm <- BinaryMedianImageFilter()
+bm$SetRadius(c(7,7))
+# std::vector<unsigned int> to R
+bm$GetRadius()
+
+# R to std::vector<float>
+st <- MultiLabelSTAPLEImageFilter()
+st$SetPriorProbabilities(c(0.25, 0.25, 0.1))
+# std::vector<float> to R
+st$GetPriorProbabilities()
+
+# R to const std::vector< std::string >
+given_file_names <- c('1.dcm', '2.dcm')
+reader <- ImageSeriesReader()
+reader$SetFileNames(given_file_names)
+reader_file_names <- c()
+try(reader_file_names <- reader$GetFileNames(), silent=TRUE)
+if(!identical(given_file_names, reader_file_names)) {
+    cat("Problem with ImageSeriesReader::GetFileNames.\n")
+    quit(save="no", status=1)
+}
diff --git a/Testing/Unit/RTransformTests.R b/Testing/Unit/RTransformTests.R
new file mode 100644
index 0000000..652ebd4
--- /dev/null
+++ b/Testing/Unit/RTransformTests.R
@@ -0,0 +1,43 @@
+## test that the transformation interface works in R.
+
+library(SimpleITK)
+
+translationTest <- function()
+{
+  fname <- deparse(sys.call(0)[[1]])
+
+  dimension <- 3
+  tx <- c(1,2,3)
+  translation <- TranslationTransform(dimension, tx)
+  offset <- translation$GetOffset()
+  if (! (tx[1] == offset[1] && tx[2] == offset[2] && tx[3] == offset[3]))
+  {
+    cat("failure in", fname, "\n")
+    quit(save="no", status=1)
+   }
+}
+
+compositeAddTransformTest <- function()
+{
+  fname <- deparse(sys.call(0)[[1]])
+
+  dimension <- 2
+
+  tx1 <- c(1,2)
+  translation1 <- TranslationTransform(dimension, tx1)
+
+  tx2 <- c(3,4)
+  translation2 <- TranslationTransform(dimension, tx2)
+
+  composite_transform <- Transform(translation1)
+  dummy <- composite_transform$AddTransform(translation2)
+  if (!is.null(dummy))
+  {
+    cat("failure in", fname, "\n")
+    quit(save="no", status=1)
+   }
+}
+
+translationTest()
+compositeAddTransformTest()
+quit(save="no", status=0)
diff --git a/Testing/Unit/RubyImageFilterTestTemplate.rb.in b/Testing/Unit/RubyImageFilterTestTemplate.rb.in
new file mode 100644
index 0000000..135dddc
--- /dev/null
+++ b/Testing/Unit/RubyImageFilterTestTemplate.rb.in
@@ -0,0 +1,152 @@
+#==========================================================================
+#
+#   Copyright Insight Software Consortium
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#          http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#==========================================================================*/
+
+#
+# WARNING: DO NOT EDIT THIS FILE!
+# THIS FILE IS AUTOMATICALLY GENERATED BY THE SIMPLEITK BUILD PROCESS.
+# Please look at RubyImageFilterTestTemplate.rb.in to make changes.
+#
+
+
+# This is Ruby code to test ${name}
+require 'simpleitk'
+
+inputs = 1
+$(if number_of_inputs then
+    OUT=[[inputs = ${number_of_inputs}]]
+  end)
+
+if ARGV.length < inputs + 2 then
+    puts( "Usage: ${name} tag <input(s)> output" )
+    exit( 1 )
+end
+
+tag = ARGV[0];
+
+reader = Simpleitk::ImageFileReader.new
+writer = Simpleitk::ImageFileWriter.new
+filter = Simpleitk::${name}.new
+
+$(if #tests == 0 then
+    OUT=[[
+puts( "No tests defined!" );
+exit( 1 );
+    ]]
+  end)
+
+$(foreach tests
+if tag == "${tag}" then
+  $(when settings
+$(foreach settings
+$(if parameter == "SeedList" and ruby_value then
+    OUT=[[  filter.clear_seeds()
+    $(for i=1,#ruby_value do OUT=OUT .. "\
+    v = Simpleitk::VectorUInt32.new\
+    for i in ".. ruby_value[i] .." do v << i end\
+    filter.add_seed(v)" end)]]
+elseif parameter == "SeedList"then
+    OUT=[[  filter.clear_seeds()
+    $(for i=1,#value do OUT=OUT .. "\
+    v = Simpleitk::VectorUInt32.new\
+    for i in ".. value[i] .." do v << i end\
+    filter.add_seed(v)" end)]]
+elseif parameter == "TrialPoints" and ruby_value then
+    OUT=[[  filter.clear_trial_points()
+    $(for i=1,#ruby_value do OUT=OUT .. "\
+    v = Simpleitk::VectorUInt32.new\
+    for i in ".. ruby_value[i] .." do v << i end\
+    filter.add_trial_point(v)" end)]]
+elseif parameter == "TrialPoints"then
+    OUT=[[  filter.clear_trial_points()
+    $(for i=1,#value do OUT=OUT .. "\
+    v = Simpleitk::VectorUInt32.new\
+    for i in ".. value[i] .." do v << i end\
+    filter.add_trial_point(v)" end)]]
+elseif dim_vec and dim_vec == 1 then 
+
+   if type == "bool" then
+     OUT="v = Simpleitk::VectorBool.new"
+   elseif type == "uint8_t" then
+     OUT="v = Simpleitk::VectorUInt8.new"
+   elseif type == "int" then
+     OUT="v = Simpleitk::VectorInt32.new"
+   elseif type == "double" then
+     OUT="v = Simpleitk::VectorDouble.new"
+   else
+     OUT="v = Simpleitk::VectorUInt32.new"
+   end
+
+OUT=OUT..[[
+
+  for i in ]]
+if ruby_value then
+  OUT='${ruby_value}'
+else
+  OUT=OUT..'[ '
+  for i=1,#value-1 do
+    OUT=OUT..value[i]..", "
+  end
+  OUT=OUT..value[#value]..' ]'
+end
+OUT=OUT..[[do v << i end
+  filter.set_${parameter:gsub ( "([a-z])([A-Z])", "%1_%2" ):lower()}(v)]]
+else
+OUT=[[
+    filter.set_${parameter:gsub ( "([a-z])([A-Z])", "%1_%2" ):lower()}( $(if ruby_value then OUT='${ruby_value}' else OUT='${value}' end) ) ]]
+end)
+)
+)
+  inputs = Array.new
+
+  for i in 1..ARGV.length-2
+    puts "reading.."+ARGV[i]
+    inputs.push( Simpleitk::read_image( ARGV[i] ) )
+  end
+$(if inputA_cast then
+
+-- the first char of the string needs to be converted to upper case
+OUT=[[
+  caster = Simpleitk::CastImageFilter.new
+  caster.set_output_pixel_type( Simpleitk::${inputA_cast:gsub("^%l", inputA_cast.upper ) })
+  inputs[0] = caster.execute( inputs[0] ) ]]
+end)
+$(if inputB_cast then
+
+-- the first char of the string needs to be converted to upper case
+OUT=[[
+  caster = Simpleitk::CastImageFilter.new
+  caster.set_output_pixel_type( Simpleitk::${inputB_cast:gsub("^%l", inputB_cast.upper ) })
+  inputs[1] = caster.execute( inputs[1] ) ]]
+end)
+
+  output = filter.execute( *inputs )
+
+$(if not no_return_image then
+OUT=[[
+  labelIDs = [ Simpleitk::SitkLabelUInt8, Simpleitk::SitkLabelUInt16, Simpleitk::SitkLabelUInt32, Simpleitk::SitkLabelUInt64 ]
+  if labelIDs.include?(output.get_pixel_id()) then
+    caster = Simpleitk::LabelMapToLabelImageFilter.new
+    output = caster.execute( output )
+  end
+  writer.set_file_name( ARGV[ARGV.length-1] )
+  writer.execute( output )
+]]
+end)
+end
+)
+
diff --git a/Testing/Unit/SimpleITKTestHarness.cxx b/Testing/Unit/SimpleITKTestHarness.cxx
new file mode 100644
index 0000000..ac24f78
--- /dev/null
+++ b/Testing/Unit/SimpleITKTestHarness.cxx
@@ -0,0 +1,164 @@
+
+#include "SimpleITKTestHarness.h"
+#include "sitkProcessObject.h"
+
+#include <itksys/SystemTools.hxx>
+#include <itksys/Process.h>
+
+
+DataFinder::DataFinder() :
+  mDirectory(TEST_HARNESS_DATA_DIRECTORY),
+  mOutputDirectory(TEST_HARNESS_TEMP_DIRECTORY)
+{
+}
+
+void DataFinder::SetDirectory ( const char* dir )
+{
+  mDirectory = dir;
+}
+
+
+void DataFinder::SetDirectory ( std::string dir )
+{
+  mDirectory = dir;
+}
+
+
+void DataFinder::SetOutputDirectory ( std::string dir )
+{
+  mOutputDirectory = dir;
+}
+
+
+
+std::string DataFinder::GetDirectory () const
+{
+  return mDirectory;
+}
+
+std::string DataFinder::GetOutputDirectory () const
+{
+  return mOutputDirectory;
+}
+
+std::string DataFinder::GetOutputFile ( std::string filename ) const
+{
+  return mOutputDirectory + "/" + filename;
+}
+
+std::string DataFinder::GetBuildDirectory () const
+{
+  return std::string ( SIMPLEITK_BINARY_DIR );
+}
+
+std::string DataFinder::GetPathSeparator () const
+{
+#ifdef WIN32
+  return ";";
+#else
+  return ":";
+#endif
+}
+
+bool DataFinder::FileExists ( const std::string &filename ) const
+{
+  return itksys::SystemTools::FileExists ( filename.c_str() );
+}
+
+std::string DataFinder::GetFile ( const std::string &filename ) const
+{
+  std::string name;
+
+  name = mDirectory + "/" + filename;
+  if (this->FileExists(name))
+    return name;
+
+  // fall back to source code path
+  name = std::string(SIMPLEITK_SOURCE_DIR) + "/Testing/Data/" + filename;
+
+  return name;
+}
+
+
+//
+//
+//
+
+
+ProcessObjectCommand::ProcessObjectCommand(itk::simple::ProcessObject &po)
+  : m_Process(po)
+{
+}
+
+ProgressUpdate::ProgressUpdate(itk::simple::ProcessObject &po)
+  : ProcessObjectCommand(po),
+    m_Progress(0.0)
+{
+}
+
+void ProgressUpdate::Execute( )
+{
+  std::cout << "Progress: " << m_Process.GetProgress() << std::endl;
+  m_Progress =  m_Process.GetProgress();
+}
+
+AbortAtCommand::AbortAtCommand(itk::simple::ProcessObject &po, float abortAt)
+  : ProcessObjectCommand(po),
+    m_AbortAt(abortAt)
+{
+}
+
+void AbortAtCommand::Execute( )
+{
+  std::cout << "p: " << m_Process.GetProgress() << std::endl;
+  if ( m_Process.GetProgress() >= m_AbortAt )
+    {
+    std::cout << "aborting..." << std::endl;
+    m_Process.Abort();
+    }
+}
+
+CountCommand::CountCommand(itk::simple::ProcessObject &po)
+  : ProcessObjectCommand(po),
+    m_Count(0)
+{
+}
+
+void CountCommand::Execute( )
+{
+  ++m_Count;
+}
+
+
+
+::testing::AssertionResult VectorDoubleRMSPredFormat(const char* expr1,
+                                                     const char* expr2,
+                                                     const char* rms_error_expr,
+                                                     const std::vector<double> &val1,
+                                                     const std::vector<double> &val2,
+                                                     double rms_error) {
+  if (val1.size() != val2.size())
+    {
+    return testing::AssertionFailure()
+      << "The size of " << expr1 << " and " << expr2
+      << " different, where\n"
+      << expr1 << " evaluates to " << val1 << ",\n"
+      << expr2 << " evaluates to " << val2 << ".";
+
+    }
+  double total = 0.0;
+  for ( unsigned int i = 0; i < val1.size(); ++i )
+    {
+    double temp = (val1[i]-val2[i]);
+    total += temp*temp;
+    }
+  const double rms = sqrt(total);
+  if (rms <= rms_error) return ::testing::AssertionSuccess();
+
+  return ::testing::AssertionFailure()
+      << "The RMS difference between " << expr1 << " and " << expr2
+      << " is " << rms << ",\n  which exceeds " << rms_error_expr << ", where\n"
+      << expr1 << " evaluates to " << val1 << ",\n"
+      << expr2 << " evaluates to " << val2 << ", and\n"
+      << rms_error_expr << " evaluates to " << rms_error << ".";
+}
diff --git a/Testing/Unit/SimpleITKTestHarness.h b/Testing/Unit/SimpleITKTestHarness.h
new file mode 100644
index 0000000..9ff8817
--- /dev/null
+++ b/Testing/Unit/SimpleITKTestHarness.h
@@ -0,0 +1,224 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef __SimpleITKTestHarness_h
+#define __SimpleITKTestHarness_h
+
+
+#include <ostream>
+#include <vector>
+#include <iterator>
+#include <algorithm>
+
+// This is needed before the gtest include for lookup of the operator
+// to work with clang 5.1
+inline std::ostream& operator<< (std::ostream& os, const std::vector<double>& v)
+ {
+   if ( v.empty() )
+     {
+     return os << "[ ]";
+     }
+
+   os << "[ ";
+   std::copy( v.begin(), v.end()-1, std::ostream_iterator<double>(os, ", ") );
+   return os << v.back() << " ]";
+ }
+
+#include <string>
+#include <vector>
+#include <gtest/gtest.h>
+#include <SimpleITKTestHarnessPaths.h>
+
+#include "sitkImage.h"
+#include "sitkCommand.h"
+
+// Class to help us find test data
+//
+/*
+ * DataFinder maintains several directory paths.  It also
+ * helps us find executables.
+ *
+ * Set/GetDirectory  -- Test Data directory
+ *                      should be ITK/Testing/Data
+ * Set/GetOutputDirectory -- Temporary directory
+ *                      SimpleITK-build/Testing/Temporary
+ * GetOutputFile --     File in the temp directory
+ * GetBuildDirectory -- SimpleITK-build
+ *                      Returns GetExecutableDirectory + "/" + filename
+ */
+class DataFinder
+{
+
+public:
+  DataFinder ();
+
+  void SetDirectory ( const char* dir );
+
+  void SetDirectory ( std::string dir );
+
+  void SetOutputDirectory ( std::string dir );
+
+  std::string GetDirectory () const;
+  std::string GetOutputDirectory () const;
+  std::string GetOutputFile ( std::string filename ) const;
+  std::string GetBuildDirectory ()    const;
+  std::string GetPathSeparator () const;
+
+
+  bool FileExists ( const std::string &filename ) const;
+
+  std::string GetFile ( const std::string &filename ) const;
+
+protected:
+  std::string mDirectory;
+  std::string mOutputDirectory;
+  std::string mRuntimeDirectory;
+};
+
+extern DataFinder dataFinder;
+
+
+
+/** Base Command Class which holds onto a process object
+ */
+class ProcessObjectCommand
+  : public itk::simple::Command
+{
+public:
+  ProcessObjectCommand(itk::simple::ProcessObject &po);
+
+protected:
+  itk::simple::ProcessObject &m_Process;
+};
+
+/** Print the progress to the std::cout
+ */
+class ProgressUpdate
+  : public ProcessObjectCommand
+{
+public:
+  ProgressUpdate(itk::simple::ProcessObject &po);
+
+  virtual void Execute( );
+
+  float m_Progress;
+};
+
+/** Command which will invoke ProcessObject::Abort when AbortAt
+ * progress is reached.
+ */
+class AbortAtCommand
+  : public ProcessObjectCommand
+{
+public:
+  AbortAtCommand(itk::simple::ProcessObject &po, float abortAt);
+
+  virtual void Execute( );
+
+  float m_AbortAt;
+};
+
+/** Command which counts the number of time the command has been
+ * invoked.
+ */
+class CountCommand
+  : public ProcessObjectCommand
+{
+public:
+  CountCommand(itk::simple::ProcessObject &po);
+
+  virtual void Execute( );
+
+  int m_Count;
+};
+
+
+
+inline std::vector<double> v2(double v1, double v2)
+{
+  std::vector<double> temp(2);
+  temp[0]=v1;temp[1]=v2;
+  return temp;
+}
+
+inline std::vector<double> v3(double v1, double v2, double v3)
+{
+  std::vector<double> temp(3);
+  temp[0]=v1;temp[1]=v2;temp[2]=v3;
+  return temp;
+}
+
+inline std::vector<double> v4(double v1, double v2, double v3, double v4)
+{
+  std::vector<double> temp(4);
+  temp[0]=v1;temp[1]=v2;temp[2]=v3;temp[3]=v4;
+  return temp;
+}
+
+inline std::vector<double> v6(double v1, double v2, double v3,
+                              double v4, double v5, double v6)
+{
+  std::vector<double> temp(6);
+  temp[0]=v1;temp[1]=v2;temp[2]=v3;
+  temp[3]=v4;temp[4]=v5;temp[5]=v6;
+  return temp;
+}
+
+
+inline std::vector<double> v9(double v1, double v2, double v3,
+                              double v4, double v5, double v6,
+                              double v7, double v8, double v9)
+{
+  std::vector<double> temp(9);
+  temp[0]=v1;temp[1]=v2;temp[2]=v3;
+  temp[3]=v4;temp[4]=v5;temp[5]=v6;
+  temp[6]=v7;temp[7]=v8;temp[8]=v9;
+  return temp;
+}
+
+inline std::vector<double> v12(double v1, double v2, double v3,
+                               double v4, double v5, double v6,
+                               double v7, double v8, double v9,
+                               double v10, double v11, double v12)
+{
+  std::vector<double> temp(12);
+  temp[0]=v1;temp[1]=v2;temp[2]=v3;
+  temp[3]=v4;temp[4]=v5;temp[5]=v6;
+  temp[6]=v7;temp[7]=v8;temp[8]=v9;
+  temp[9]=v10;temp[10]=v11;temp[11]=v12;
+  return temp;
+}
+
+
+::testing::AssertionResult VectorDoubleRMSPredFormat(const char* expr1,
+                                                     const char* expr2,
+                                                     const char* rms_error_expr,
+                                                     const std::vector<double> &val1,
+                                                     const std::vector<double> &val2,
+                                                     double rms_error);
+
+
+
+#define EXPECT_VECTOR_DOUBLE_NEAR(val1, val2, rms_error)                \
+  EXPECT_PRED_FORMAT3(VectorDoubleRMSPredFormat,                        \
+                      val1, val2, rms_error)
+
+
+
+#include "sitkImageCompare.h"
+
+#endif
diff --git a/Testing/Unit/SimpleITKTestHarnessPaths.h.in b/Testing/Unit/SimpleITKTestHarnessPaths.h.in
new file mode 100644
index 0000000..c3e657c
--- /dev/null
+++ b/Testing/Unit/SimpleITKTestHarnessPaths.h.in
@@ -0,0 +1,26 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef __SimpleITKTestHarnessPaths_h
+#define __SimpleITKTestHarnessPaths_h
+
+#define SIMPLEITK_SOURCE_DIR "@SimpleITK_SOURCE_DIR@"
+#define SIMPLEITK_BINARY_DIR "@SimpleITK_BINARY_DIR@"
+#define TEST_HARNESS_TEMP_DIRECTORY "@TEST_HARNESS_TEMP_DIRECTORY@"
+#define TEST_HARNESS_DATA_DIRECTORY "@TEST_HARNESS_DATA_DIRECTORY@"
+
+#endif
diff --git a/Testing/Unit/SimpleITKUnitTestDriver.cxx b/Testing/Unit/SimpleITKUnitTestDriver.cxx
new file mode 100644
index 0000000..fe8b288
--- /dev/null
+++ b/Testing/Unit/SimpleITKUnitTestDriver.cxx
@@ -0,0 +1,49 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include <iostream>
+
+#include "SimpleITKTestHarness.h"
+#include <itksys/SystemTools.hxx>
+
+DataFinder dataFinder;
+int main(int argc, char* argv[])
+{
+  for ( int i = 0; i < argc; i++ ) {
+    std::string arg = argv[i];
+    if ( arg == "--help" ) {
+      std::cout << "GTest flags" << std::endl;
+      std::cout << "\t--gtest_list_tests  List the tests" << std::endl;
+      std::cout << "\t--gtest_repeat      Number of times to repeat each test" << std::endl;
+      std::cout << "\t--gtest_filter      Glob filter of test name" << std::endl;
+      std::cout << "\t--gtest_print_time  Time required to run" << std::endl;
+      std::cout << "\nBy default, a Google Test program runs all tests the user has defined. Sometimes, you want to run only a subset of the tests (e.g. for debugging or quickly verifying a change). If you set the GTEST_FILTER environment variable or the --gtest_filter flag to a filter string, Google Test will only run the tests whose full names (in the form of TestCaseName.TestName) match the filter.\n"
+        "The format of a filter is a ':'-separated list of wildcard patterns (called the positive patterns) optionally followed by a '-' and another ':'-separated pattern list (called the negative patterns). A test matches the filter if and only if it matches any of the positive patterns but does not match any of the negative patterns.\n"
+        "A pattern may contain '*' (matches any string) or '?' (matches any single character). For convenience, the filter '*-NegativePatterns' can be also written as '-NegativePatterns'.\n"
+        "For example:\n\n"
+        "    * ./foo_test Has no flag, and thus runs all its tests.\n"
+        "    * ./foo_test --gtest_filter=* Also runs everything, due to the single match-everything * value.\n"
+        "    * ./foo_test --gtest_filter=FooTest.* Runs everything in test case FooTest.\n"
+        "    * ./foo_test --gtest_filter=*Null*:*Constructor* Runs any test whose full name contains either \"Null\" or \"Constructor\".\n"
+        "    * ./foo_test --gtest_filter=-*DeathTest.* Runs all non-death tests.\n"
+        "    * ./foo_test --gtest_filter=FooTest.*-FooTest.Bar Runs everything in test case FooTest except FooTest.Bar. " << std::endl; 
+      return 0;
+    }
+  }
+  testing::InitGoogleTest ( &argc, argv );
+  return RUN_ALL_TESTS();
+}
diff --git a/Testing/Unit/TclImageFilterTestTemplate.tcl.in b/Testing/Unit/TclImageFilterTestTemplate.tcl.in
new file mode 100644
index 0000000..46c6280
--- /dev/null
+++ b/Testing/Unit/TclImageFilterTestTemplate.tcl.in
@@ -0,0 +1,118 @@
+#==========================================================================
+#
+#   Copyright Insight Software Consortium
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#          http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#==========================================================================*/
+
+#
+# WARNING: DO NOT EDIT THIS FILE!
+# THIS FILE IS AUTOMATICALLY GENERATED BY THE SIMPLEITK BUILD PROCESS.
+# Please look at TclImageFilterTestTemplate.tcl.in to make changes.
+#
+
+
+# This is Tcl code to test ${name}
+
+$(if number_of_inputs then
+    OUT=[[set inputs ${number_of_inputs}]]
+  else
+    OUT=[[set inputs 1]]
+  end)
+
+if { [llength [set argv]] < ( [set inputs] + 1 ) } {
+  puts "Usage: ${name} tag <input(s)> output"
+  exit 1
+}
+set tag [lindex [set argv] 0]
+set ValidTags ""
+ImageFileWriter writer
+${name} filter
+
+$(if #tests == 0 then
+    OUT=[[puts "No tests defined!"; exit 1;]]
+  end)
+
+$(foreach tests
+lappend ValidTags "${tag}"
+if { [set tag] == "${tag}" } {
+
+$(when settings
+$(foreach settings
+$(if parameter == "SeedList" and tcl_value then
+OUT=[[  filter ClearSeeds
+$(for i=1,#tcl_value do OUT=OUT .. "  filter AddSeed [list ".. tcl_value[i] .. "]\n" end)]]
+elseif parameter == "SeedList" then
+OUT=[[  filter ClearSeeds
+$(for i=1,#value do OUT=OUT .. "  filter AddSeed [list ".. value[i] .. "]\n" end)]]
+elseif parameter == "TrialPoints" and tcl_value then
+OUT=[[  filter ClearTrialPoints
+$(for i=1,#tcl_value do OUT=OUT .. "  filter AddTrialPoint [list ".. tcl_value[i] .. "]\n" end)]]
+elseif parameter == "TrialPoints" then
+OUT=[[  filter ClearTrialPoints
+$(for i=1,#value do OUT=OUT .. "  filter AddTrialPoint [list ".. value[i] .. "]\n" end)]]
+elseif point_vec and point_vec==1 then
+OUT=[[  filter Clear${parameter}
+]]
+  for i=1,#value do
+    OUT=OUT .. "   filter Add${parameter:gsub('s([0-9]?)$','%1')} [list ".. tcl_value[i] .. "]\n"
+  end
+elseif tcl_value then
+OUT=[[
+  filter Set${parameter} ${tcl_value}]]
+elseif dim_vec and dim_vec==1 then
+OUT=[[
+  filter Set${parameter} [list $(for i=1,#value do OUT=OUT..value[i]..' ' end)] ]]
+else
+OUT=[[
+  filter Set${parameter} ${value}]]
+end)
+))
+
+  set inputs {}
+
+  for {set i 1} { $$i < $$argc-1 } {incr i } {
+      puts "reading [lindex $$argv $$i]"
+      lappend inputs [ ReadImage [lindex $$argv $$i] ]
+  }
+
+$(if inputA_cast then
+OUT=[[
+      set inputs [lreplace $$inputs 0 0 [ Cast [lindex $$inputs 0] [set ${inputA_cast}] ] ]
+     ]]
+end)
+$(if inputB_cast then
+OUT=[[
+      set inputs [lreplace $$inputs 1 1 [ Cast [lindex $$inputs 1] [set ${inputB_cast}] ] ]
+     ]]
+end)
+
+  set output [eval filter Execute $$inputs ]
+$(if not no_return_image then
+OUT=[[
+  set labelIDs [ list [set sitkLabelUInt8] [set sitkLabelUInt16] [set sitkLabelUInt32] [set sitkLabelUInt64] ]
+  if { [lsearch $labelIDs [$$output GetPixelIDValue] ] >= 0 } {
+      set output [ LabelMapToLabel $$output ]
+  }
+
+  writer SetFileName [lindex $$argv end]
+  writer Execute $$output
+]]
+end)
+  exit
+}
+)
+
+puts stderr "Tag [set tag] was not found, must be one of [set ValidTags]"
+exit 1
diff --git a/Testing/Unit/itkHashImageFilterTest.cxx b/Testing/Unit/itkHashImageFilterTest.cxx
new file mode 100644
index 0000000..0d097a5
--- /dev/null
+++ b/Testing/Unit/itkHashImageFilterTest.cxx
@@ -0,0 +1,200 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include <SimpleITKTestHarness.h>
+#include <itkImageFileReader.h>
+#include <itkHashImageFilter.h>
+#include <sitkHashImageFilter.h>
+#include <sitkImageFileReader.h>
+#include <sitkCastImageFilter.h>
+
+class HashImageFilterTest
+  : public ::testing::Test {
+public:
+
+  template <typename TPixelType, unsigned int IDimension>
+  void CheckImageHashMD5( const std::string &fname, const std::string &expectedHash )
+  {
+
+    typedef itk::ImageFileReader<itk::Image<TPixelType, IDimension > > ReaderType;
+    typename ReaderType::Pointer reader = ReaderType::New();
+    reader->SetFileName( dataFinder.GetFile ( fname ) );
+    reader->Update();
+
+    typedef itk::HashImageFilter< itk::Image<TPixelType, IDimension> > HasherType;
+    typename HasherType::Pointer  hasher = HasherType::New();
+    hasher->SetHashFunction( HasherType::MD5 );
+    hasher->SetInput( reader->GetOutput() );
+    hasher->Update();
+
+    EXPECT_EQ ( expectedHash, hasher->GetHash() );
+
+  }
+
+  template <typename TPixelType, unsigned int IDimension>
+  void CheckImageHashSHA1( const std::string &fname, const std::string &expectedHash )
+  {
+
+    typedef itk::ImageFileReader<itk::Image<TPixelType, IDimension > > ReaderType;
+    typename ReaderType::Pointer reader = ReaderType::New();
+    reader->SetFileName( dataFinder.GetFile ( fname ) );
+    reader->Update();
+
+    typedef itk::HashImageFilter< itk::Image<TPixelType, IDimension> > HasherType;
+    typename HasherType::Pointer  hasher = HasherType::New();
+    hasher->SetHashFunction( HasherType::SHA1 );
+    hasher->SetInput( reader->GetOutput() );
+    hasher->Update();
+
+    EXPECT_EQ ( expectedHash, hasher->GetHash() );
+
+  }
+};
+
+TEST_F(HashImageFilterTest, InstantiateTest) {
+
+  typedef itk::HashImageFilter< itk::Image< unsigned char, 1> > UCHAR1HasherType;
+  EXPECT_TRUE( UCHAR1HasherType::New().IsNotNull() );
+
+  typedef itk::HashImageFilter< itk::Image< unsigned char, 2> > UCHAR2HasherType;
+  EXPECT_TRUE( UCHAR2HasherType::New().IsNotNull() );
+
+  typedef itk::HashImageFilter< itk::Image< unsigned char, 3> > UCHAR3HasherType;
+  EXPECT_TRUE( UCHAR3HasherType::New().IsNotNull() );
+
+  typedef itk::HashImageFilter< itk::Image< unsigned int, 3> > UINT23HasherType;
+  EXPECT_TRUE( UINT23HasherType::New().IsNotNull() );
+
+  typedef itk::HashImageFilter< itk::Image<int, 3> > INT23HasherType;
+  EXPECT_TRUE( INT23HasherType::New().IsNotNull() );
+
+  typedef itk::HashImageFilter< itk::Image<float, 3> > FLOATHasherType;
+  EXPECT_TRUE( FLOATHasherType::New().IsNotNull() );
+
+  typedef itk::HashImageFilter< itk::Image<double, 3> > DOUBLEHasherType;
+  EXPECT_TRUE( DOUBLEHasherType::New().IsNotNull() );
+
+#ifdef SITK_4D_IMAGES
+  typedef itk::HashImageFilter< itk::Image<double, 4> > DOUBLE4DHasherType;
+  EXPECT_TRUE( DOUBLE4DHasherType::New().IsNotNull() );
+#endif
+};
+
+
+TEST_F(HashImageFilterTest, MD5HashValues ) {
+
+  this->CheckImageHashMD5<float,3>("Input/RA-Float.nrrd", "3ccccde44efaa3d688a86e94335c1f16");
+
+  this->CheckImageHashMD5<float,2>("Input/RA-Float.nrrd", "16142594b185c50d64dd629750b94c90");
+
+  this->CheckImageHashMD5<float,1>("Input/RA-Float.nrrd", "606f0ee67f5b181f90286e17e6f49926");
+
+  this->CheckImageHashMD5<short, 3>("Input/Ramp-Down-Short.nrrd", "71f5c852a6251069fa1d60f796463343" );
+
+  this->CheckImageHashMD5<int, 3>("Input/Ramp-Down-Short.nrrd", "f945b2b5384ba6f21a0fd50a970fb5ff");
+}
+
+
+TEST_F(HashImageFilterTest, SHA1HashValues ) {
+
+  this->CheckImageHashSHA1<float,3>("Input/RA-Float.nrrd", "b187541bdcc89843d0a25a3761f344c358f3518a" );
+
+  this->CheckImageHashSHA1<float,2>("Input/RA-Float.nrrd", "7bd2146732f1e6f38fe5ed387332d3ad3541b182" );
+
+  this->CheckImageHashSHA1<float,1>("Input/RA-Float.nrrd",  "0eac9ac1f19b27743dfeabe76e69ae251c02b641" );
+
+  this->CheckImageHashSHA1<short, 3>("Input/Ramp-Down-Short.nrrd", "4b0bd9dcf1f7d78101ce24da7f51de212f302ae9" );
+
+  this->CheckImageHashSHA1<int, 3>("Input/Ramp-Down-Short.nrrd",  "3dc54908746f25fd42f17c5fe44935013e508b1b" );
+
+#ifdef SITK_4D_IMAGES
+  this->CheckImageHashSHA1<short, 4>("Input/4D.nii.gz", "9e81d4b3cdf10a4da5d54c8cd7c4954449d76d5d" );
+#endif
+}
+
+TEST_F(HashImageFilterTest, VectorImages ) {
+
+  // test image of vectors
+  {
+  typedef itk::Image<itk::Vector<float, 1>, 3 > VectorImageType;
+
+  typedef itk::ImageFileReader<VectorImageType > ReaderType;
+  ReaderType::Pointer reader = ReaderType::New();
+  reader->SetFileName( dataFinder.GetFile ( "Input/RA-Float.nrrd" ) );
+  reader->Update();
+
+  typedef itk::HashImageFilter< VectorImageType > HasherType;
+  HasherType::Pointer  hasher = HasherType::New();
+  hasher->SetHashFunction( HasherType::MD5 );
+  hasher->SetInput( reader->GetOutput() );
+  hasher->Update();
+
+  EXPECT_EQ( hasher->GetHash(), "3ccccde44efaa3d688a86e94335c1f16" );
+  }
+
+  // test vector image
+  {
+  typedef itk::VectorImage<float, 3> VectorImageType;
+
+  typedef itk::ImageFileReader<VectorImageType > ReaderType;
+  ReaderType::Pointer reader = ReaderType::New();
+  reader->SetFileName( dataFinder.GetFile ( "Input/RA-Float.nrrd" ) );
+  reader->Update();
+
+  typedef itk::HashImageFilter< VectorImageType > HasherType;
+  HasherType::Pointer  hasher = HasherType::New();
+  hasher->SetHashFunction( HasherType::MD5 );
+  hasher->SetInput( reader->GetOutput() );
+  hasher->Update();
+
+
+  EXPECT_EQ( hasher->GetHash(), "3ccccde44efaa3d688a86e94335c1f16" );
+  }
+}
+
+TEST_F(HashImageFilterTest, LabelMap ) {
+
+  itk::simple::Image img = itk::simple::ReadImage( dataFinder.GetFile ( "Input/2th_cthead1.png" ) );
+
+  std::string hash;
+
+  EXPECT_NO_THROW( hash = itk::simple::Hash( itk::simple::Cast( img, itk::simple::sitkLabelUInt16 ) ) );
+  EXPECT_EQ( hash, "134248ff026387fe17bd0bfa62357fa390d52985" );
+
+  EXPECT_NO_THROW( hash = itk::simple::Hash( itk::simple::Cast( img, itk::simple::sitkLabelUInt32 ) ) );
+  EXPECT_EQ( hash, "c4dc6e128902159fe04cacec27b784cd995533af" );
+
+}
+
+TEST_F(HashImageFilterTest, Coverage ) {
+
+ typedef itk::HashImageFilter< itk::Image< unsigned char, 2> > UCHAR2HasherType;
+ UCHAR2HasherType::Pointer hasher = UCHAR2HasherType::New();
+
+ // PrintSelf
+ std::ostringstream out;
+ out << hasher;
+ EXPECT_NE ( out.str(), "" );  // So the test fails if we don’t have any print self output...
+
+
+ // Set/Get Methods
+ hasher->SetHashFunction( UCHAR2HasherType::MD5 );
+ EXPECT_EQ(  hasher->GetHashFunction(), UCHAR2HasherType::MD5 ) << "expected default hash type to be MD5";
+
+ hasher->SetHashFunction( UCHAR2HasherType::SHA1 );
+ EXPECT_EQ(  hasher->GetHashFunction(), UCHAR2HasherType::SHA1 ) << "expected default hash type to be SHA1";
+}
diff --git a/Testing/Unit/itkSliceImageFilterTest.cxx b/Testing/Unit/itkSliceImageFilterTest.cxx
new file mode 100644
index 0000000..cb54188
--- /dev/null
+++ b/Testing/Unit/itkSliceImageFilterTest.cxx
@@ -0,0 +1,368 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+#include <SimpleITKTestHarness.h>
+#include <itkSliceImageFilter.h>
+
+#include "itkPhysicalPointImageSource.h"
+#include "itkGaussianImageSource.h"
+#include "itkImageRegionConstIterator.h"
+
+// This test verifies the principle that the SliceImageFilter should
+// not change the physical location of the signal. This is done by
+// constructing an image of points, each corresponding to the phycical
+// location of the center of the voxel, then verifying that the value
+// still matches the physcial location.
+
+namespace
+{
+
+// This function checks that all values in an image are equivalent to
+// the physical point of the image.
+template <typename TImageType>
+bool CheckValueIsPhysicalPoint( const TImageType *img )
+{
+
+  typedef itk::ImageRegionConstIterator<TImageType> IteratorType;
+  IteratorType it(img, img->GetBufferedRegion() );
+
+  bool match = true;
+
+  typename TImageType::PointType pt;
+  img->TransformIndexToPhysicalPoint( it.GetIndex(), pt );
+  while( !it.IsAtEnd() )
+    {
+    for ( unsigned int i = 0; i < TImageType::ImageDimension; ++i )
+      {
+      img->TransformIndexToPhysicalPoint( it.GetIndex(), pt );
+
+      EXPECT_DOUBLE_EQ( pt[i], it.Get()[i] ) << "Index: " << it.GetIndex() << " Point: " << pt << " Value: " << it.Get() << std::endl, match = false;
+      }
+
+    ++it;
+    }
+  return match;
+}
+
+template <typename TImageType>
+typename TImageType::Pointer RunFilter( const TImageType *img,
+                                        typename TImageType::IndexType start,
+                                        typename TImageType::IndexType stop,
+                                        int step[TImageType::ImageDimension]
+  )
+{
+  typedef itk::SliceImageFilter<TImageType, TImageType> FilterType;
+  typename FilterType::Pointer sliceFilter = FilterType::New();
+
+  sliceFilter->SetInput( img );
+  sliceFilter->SetStart( start );
+  sliceFilter->SetStop( stop );
+  sliceFilter->SetStep( step );
+  sliceFilter->UpdateLargestPossibleRegion();
+
+  return sliceFilter->GetOutput();
+}
+
+
+}
+
+TEST(SliceImageFilterTests, PhysicalPoint1)
+{
+  const unsigned int ImageDimension = 2;
+  typedef itk::Point<double, ImageDimension> PixelType;
+  typedef itk::Image<PixelType, ImageDimension> ImageType;
+
+  typedef itk::PhysicalPointImageSource<ImageType> SourceType;
+  SourceType::Pointer source = SourceType::New();
+
+
+  // these size are chossen as a power of two and a prime number.
+  SourceType::SizeValueType size[] = {128,127};
+  source->SetSize( size );
+
+  float origin[] = {1.1f, 2.22f};
+  source->SetOrigin( origin );
+
+
+  int step[ImageDimension];
+  ImageType::IndexType start;
+  ImageType::IndexType stop;
+  stop[0] = size[0];
+  stop[1] = size[1];
+
+  for( start[0] = 0; start[0] < 10; ++start[0] )
+    for( start[1] = 0; start[1] < 10; ++start[1] )
+      for( step[0] = 1; step[0] < 10; ++step[0] )
+        for( step[1] = 1; step[1] < 10; ++step[1] )
+          {
+
+          ImageType::Pointer img;
+
+          img = RunFilter<ImageType>( source->GetOutput(), start, stop, step );
+
+          EXPECT_TRUE( CheckValueIsPhysicalPoint( img.GetPointer() ) ) << "== Failed - step:" << step[0] << " " << step[1] << " start: " <<start[0] << " " << start[1] << std::endl;
+          }
+
+}
+
+TEST(SliceImageFilterTests, PhysicalPoint2)
+{
+  const unsigned int ImageDimension = 2;
+  typedef itk::Point<double, ImageDimension> PixelType;
+  typedef itk::Image<PixelType, ImageDimension> ImageType;
+
+  typedef itk::PhysicalPointImageSource<ImageType> SourceType;
+  SourceType::Pointer source = SourceType::New();
+
+
+  // these size are chossen as a power of two and a prime number.
+  SourceType::SizeValueType size[] = {128,127};
+  source->SetSize( size );
+
+  float origin[] = {3.33f, 4.4444f};
+  source->SetOrigin( origin );
+
+
+  int step[ImageDimension] = {3,4};
+  ImageType::IndexType start;
+  ImageType::IndexType stop;
+
+  ASSERT_TRUE(size[0] > 10);
+  ASSERT_TRUE(size[1] > 10);
+
+  for( start[0] = 0; start[0] < 10; ++start[0] )
+    for( start[1] = 0; start[1] < 10; ++start[1] )
+      for( stop[0] = size[0]; stop[0] > (ImageType::IndexValueType)(size[0] - 10); --stop[0] )
+        for( stop[1] = size[1]; stop[1] > (ImageType::IndexValueType)(size[1] -10); --stop[1] )
+          {
+
+          ImageType::Pointer img;
+
+          img = RunFilter<ImageType>( source->GetOutput(), start, stop, step );
+
+          EXPECT_TRUE( CheckValueIsPhysicalPoint( img.GetPointer() ) ) << "== Failed - step:" << step[0] << " " << step[1] << " start: " <<start[0] << " " << start[1]  << " stop: " << stop[0] << " " << stop[1] << std::endl;
+          }
+
+}
+
+
+
+TEST(SliceImageFilterTests, PhysicalPoint3)
+{
+  const unsigned int ImageDimension = 2;
+  typedef itk::Point<double, ImageDimension> PixelType;
+  typedef itk::Image<PixelType, ImageDimension> ImageType;
+
+  typedef itk::PhysicalPointImageSource<ImageType> SourceType;
+  SourceType::Pointer source = SourceType::New();
+
+
+  // these size are chossen as a power of two and a prime number.
+  SourceType::SizeValueType size[] = {16,17};
+  source->SetSize( size );
+
+  float origin[] = {3.33f, 4.4444f};
+  source->SetOrigin( origin );
+
+  int step[ImageDimension] = {-2,-2};
+  ImageType::IndexType start;
+  ImageType::IndexType stop;
+
+  for( start[0] = 10; start[0] < 20; ++start[0] )
+    for( start[1] = 10; start[1] < 20; ++start[1] )
+      for( stop[0] = -5; stop[0] > 12; --stop[0] )
+        for( stop[1] = -5; stop[1] > 12; --stop[1] )
+          {
+
+          ImageType::Pointer img;
+
+          img = RunFilter<ImageType>( source->GetOutput(), start, stop, step );
+
+          EXPECT_TRUE( CheckValueIsPhysicalPoint( img.GetPointer() ) ) << "== Failed - step:" << step[0] << " " << step[1] << " start: " <<start[0] << " " << start[1]  << " stop: " << stop[0] << " " << stop[1] << std::endl;
+          }
+
+}
+
+
+TEST(SliceImageFilterTests,Empty)
+{
+  const unsigned int ImageDimension = 2;
+  typedef itk::Point<double, ImageDimension> PixelType;
+  typedef itk::Image<PixelType, ImageDimension> ImageType;
+
+  typedef itk::PhysicalPointImageSource<ImageType> SourceType;
+  SourceType::Pointer source = SourceType::New();
+
+
+  // these size are chossen as a power of two and a prime number.
+  SourceType::SizeValueType size[] = {32,32};
+  source->SetSize( size );
+
+  int step[ImageDimension] = {1,1};
+  ImageType::IndexType start;
+  start.Fill( 10 );
+  ImageType::IndexType stop;
+  stop.Fill( 10 );
+
+
+  ImageType::Pointer img;
+
+  img = RunFilter<ImageType>( source->GetOutput(), start, stop, step );
+  std::cout << img;
+
+  for( unsigned int i = 0; i < ImageDimension; ++i)
+    {
+    EXPECT_EQ( 0u, img->GetLargestPossibleRegion().GetSize()[i] );
+    }
+
+  start[0] = 2;
+  start[1] = 2;
+  stop[0] = 10;
+  stop[1] = 2;
+
+  img = RunFilter<ImageType>( source->GetOutput(), start, stop, step );
+
+  EXPECT_EQ( 8u, img->GetLargestPossibleRegion().GetSize()[0] );
+  EXPECT_EQ( 0u, img->GetLargestPossibleRegion().GetSize()[1] );
+
+}
+
+TEST(SliceImageFilterTests,Coverage)
+{
+  const unsigned int ImageDimension = 3;
+  typedef itk::Image<float, ImageDimension> ImageType;
+
+  typedef itk::SliceImageFilter<ImageType, ImageType> FilterType;
+
+  FilterType::Pointer filter = FilterType::New();
+  std::cout << filter;
+
+  FilterType::IndexType idx;
+  idx.Fill( 10 );
+
+  filter->SetStart(idx);
+  EXPECT_EQ( idx, filter->GetStart() );
+
+  idx.Fill(11);
+  filter->SetStart(11);
+  EXPECT_EQ( idx, filter->GetStart() );
+
+  idx.Fill(12);
+  filter->SetStop(idx);
+  EXPECT_EQ( idx, filter->GetStop() );
+
+  idx.Fill(13);
+  filter->SetStop(13);
+  EXPECT_EQ( idx, filter->GetStop() );
+
+  FilterType::ArrayType a;
+  a.Fill(14);
+  filter->SetStep(a);
+  EXPECT_EQ( a, filter->GetStep() );
+
+  a.Fill(15);
+  filter->SetStep(15);
+  EXPECT_EQ(a, filter->GetStep() );
+}
+
+TEST(SliceImageFilterTests,Sizes)
+{
+  const unsigned int ImageDimension = 3;
+  typedef itk::Image<float, ImageDimension> ImageType;
+
+  typedef itk::GaussianImageSource<ImageType> SourceType;
+  SourceType::Pointer source = SourceType::New();
+
+  SourceType::SizeType size = {{64,64,64}};
+  source->SetSize(size);
+  source->ReleaseDataFlagOn();
+
+  typedef itk::SliceImageFilter<ImageType, ImageType> FilterType;
+
+  FilterType::Pointer filter = FilterType::New();
+  filter->SetInput( source->GetOutput() );
+  // check with default start, stop, step
+  EXPECT_NO_THROW(filter->Update());
+  EXPECT_EQ(filter->GetOutput()->GetLargestPossibleRegion().GetSize(), size) << "Check full size for defaults";
+
+
+  filter = FilterType::New();
+  filter->SetInput( source->GetOutput() );
+  filter->SetStart( 64 );
+  filter->SetStop(-1);
+  filter->SetStep(-1);
+  EXPECT_NO_THROW(filter->Update());
+  EXPECT_EQ(filter->GetOutput()->GetLargestPossibleRegion().GetSize(), size) << "Check full size for negative step";
+
+  std::cout << "Filter size: " << filter->GetOutput()->GetLargestPossibleRegion() << std::endl;
+  std::cout << "Filter buffered size: " << filter->GetOutput()->GetBufferedRegion() << std::endl;
+  std::cout << "Input size: " << size << std::endl;
+}
+
+TEST(SliceImageFilterTests,ExceptionalCases)
+{
+  const unsigned int ImageDimension = 3;
+  typedef itk::Image<float, ImageDimension> ImageType;
+
+  typedef itk::GaussianImageSource<ImageType> SourceType;
+  SourceType::Pointer source = SourceType::New();
+
+
+  typedef itk::SliceImageFilter<ImageType, ImageType> FilterType;
+
+  FilterType::Pointer filter = FilterType::New();
+  filter->SetInput( source->GetOutput() );
+
+  filter->SetStep( 0 );
+  EXPECT_ANY_THROW( filter->Update() ) << "Check with 0 step";
+
+  // for some reason after the above exception, the pipeline is not
+  // clean, and Verify input information will not get executed again,
+  // so just create a new filter...
+  filter = FilterType::New();
+  filter->SetInput( source->GetOutput() );
+  filter->SetStart(10000);
+  filter->SetStop(10001);
+  EXPECT_NO_THROW( filter->Update() ) << "Check with over-sized start stop are clamped to zero";
+  EXPECT_EQ( 0u, filter->GetOutput()->GetLargestPossibleRegion().GetNumberOfPixels() );
+
+
+  filter = FilterType::New();
+  filter->SetInput( source->GetOutput() );
+  filter->SetStart(12);
+  filter->SetStop(10);
+  EXPECT_NO_THROW( filter->Update() ) << "Check stop is clamped" ;
+  EXPECT_EQ( 0u, filter->GetOutput()->GetLargestPossibleRegion().GetNumberOfPixels() );
+
+
+  filter = FilterType::New();
+  filter->SetInput( source->GetOutput() );
+  filter->SetStart(-12);
+  filter->SetStop(-10);
+  EXPECT_NO_THROW( filter->Update() ) << "Check undersized start and stop" ;
+  EXPECT_EQ( 0u, filter->GetOutput()->GetLargestPossibleRegion().GetNumberOfPixels() );
+
+  filter = FilterType::New();
+  filter->SetInput( source->GetOutput() );
+  filter->SetStart(-12);
+  filter->SetStop(-10);
+  filter->SetStep(-1);
+  EXPECT_NO_THROW( filter->Update() ) << "Check undersized start and stop" ;
+  EXPECT_EQ( 0u, filter->GetOutput()->GetLargestPossibleRegion().GetNumberOfPixels() );
+
+}
diff --git a/Testing/Unit/sitkBasicFiltersTests.cxx b/Testing/Unit/sitkBasicFiltersTests.cxx
new file mode 100644
index 0000000..139ff73
--- /dev/null
+++ b/Testing/Unit/sitkBasicFiltersTests.cxx
@@ -0,0 +1,914 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include <SimpleITKTestHarness.h>
+
+#include <sitkImage.h>
+#include <sitkImageFileReader.h>
+#include <sitkImageFileWriter.h>
+#include <sitkHashImageFilter.h>
+#include <sitkGaussianImageSource.h>
+#include <sitkRecursiveGaussianImageFilter.h>
+#include <sitkCastImageFilter.h>
+#include <sitkPixelIDValues.h>
+#include <sitkStatisticsImageFilter.h>
+#include <sitkLabelStatisticsImageFilter.h>
+#include <sitkExtractImageFilter.h>
+#include <sitkFastMarchingBaseImageFilter.h>
+#include <sitkInverseDeconvolutionImageFilter.h>
+#include <sitkTikhonovDeconvolutionImageFilter.h>
+#include <sitkWienerDeconvolutionImageFilter.h>
+#include <sitkLandweberDeconvolutionImageFilter.h>
+#include <sitkProjectedLandweberDeconvolutionImageFilter.h>
+#include <sitkRichardsonLucyDeconvolutionImageFilter.h>
+#include <sitkScalarToRGBColormapImageFilter.h>
+#include <sitkJoinSeriesImageFilter.h>
+#include <sitkGradientAnisotropicDiffusionImageFilter.h>
+#include <sitkCurvatureAnisotropicDiffusionImageFilter.h>
+#include <sitkLabelMapContourOverlayImageFilter.h>
+#include <sitkPatchBasedDenoisingImageFilter.h>
+#include <sitkConnectedThresholdImageFilter.h>
+#include <sitkMergeLabelMapFilter.h>
+#include <sitkDiffeomorphicDemonsRegistrationFilter.h>
+#include <sitkFastSymmetricForcesDemonsRegistrationFilter.h>
+#include <sitkOtsuThresholdImageFilter.h>
+#include <sitkBSplineTransformInitializerFilter.h>
+#include <sitkCenteredTransformInitializerFilter.h>
+#include <sitkCenteredVersorTransformInitializerFilter.h>
+#include <sitkLandmarkBasedTransformInitializerFilter.h>
+#include <sitkAdditionalProcedures.h>
+#include <sitkCommand.h>
+
+#include "itkVectorImage.h"
+#include "itkVector.h"
+#include "itkRecursiveGaussianImageFilter.h"
+#include "itkExtractImageFilter.h"
+#include "itkFastMarchingImageFilterBase.h"
+#include "itkScalarToRGBColormapImageFilter.h"
+#include "itkInverseDeconvolutionImageFilter.h"
+#include "itkTikhonovDeconvolutionImageFilter.h"
+#include "itkWienerDeconvolutionImageFilter.h"
+#include "itkLandweberDeconvolutionImageFilter.h"
+#include "itkProjectedLandweberDeconvolutionImageFilter.h"
+#include "itkRichardsonLucyDeconvolutionImageFilter.h"
+#include "itkLabelMapContourOverlayImageFilter.h"
+#include "itkPatchBasedDenoisingImageFilter.h"
+#include "itkConnectedThresholdImageFilter.h"
+#include "itkMergeLabelMapFilter.h"
+#include "itkDiffeomorphicDemonsRegistrationFilter.h"
+#include "itkFastSymmetricForcesDemonsRegistrationFilter.h"
+
+#include "sitkShow.h"
+
+#include "sitkVersorRigid3DTransform.h"
+#include "sitkSimilarity3DTransform.h"
+#include "sitkAffineTransform.h"
+#include "sitkEuler2DTransform.h"
+#include "sitkSimilarity2DTransform.h"
+#include "sitkVersorTransform.h"
+#include "sitkScaleVersor3DTransform.h"
+
+TEST(BasicFilter,FastSymmetricForcesDemonsRegistrationFilter_ENUMCHECK) {
+  typedef itk::Image<float,3> ImageType;
+  typedef itk::Image<itk::Vector<float,3>,3> DisplacementType;
+  typedef itk::FastSymmetricForcesDemonsRegistrationFilter<ImageType,ImageType,DisplacementType>::DemonsRegistrationFunctionType ITKType;
+
+  EXPECT_EQ( (int)ITKType::Symmetric, (int)itk::simple::FastSymmetricForcesDemonsRegistrationFilter::Symmetric);
+  EXPECT_EQ( (int)ITKType::Fixed, (int)itk::simple::FastSymmetricForcesDemonsRegistrationFilter::Fixed);
+  EXPECT_EQ( (int)ITKType::WarpedMoving, (int)itk::simple::FastSymmetricForcesDemonsRegistrationFilter::WarpedMoving);
+  EXPECT_EQ( (int)ITKType::MappedMoving, (int)itk::simple::FastSymmetricForcesDemonsRegistrationFilter::MappedMoving);
+}
+
+
+TEST(BasicFilter,DiffeomorphicDemonsRegistrationFilter_ENUMCHECK) {
+  typedef itk::Image<float,3> ImageType;
+  typedef itk::Image<itk::Vector<float,3>,3> DisplacementType;
+  typedef itk::DiffeomorphicDemonsRegistrationFilter<ImageType,ImageType,DisplacementType>::DemonsRegistrationFunctionType ITKType;
+
+  EXPECT_EQ( (int)ITKType::Symmetric, (int)itk::simple::DiffeomorphicDemonsRegistrationFilter::Symmetric);
+  EXPECT_EQ( (int)ITKType::Fixed, (int)itk::simple::DiffeomorphicDemonsRegistrationFilter::Fixed);
+  EXPECT_EQ( (int)ITKType::WarpedMoving, (int)itk::simple::DiffeomorphicDemonsRegistrationFilter::WarpedMoving);
+  EXPECT_EQ( (int)ITKType::MappedMoving, (int)itk::simple::DiffeomorphicDemonsRegistrationFilter::MappedMoving);
+}
+
+TEST(BasicFilters,MergeLabelMap_ENUMCHECK) {
+  typedef itk::MergeLabelMapFilter< itk::LabelMap< itk::LabelObject<int, 3> > >  ITKType;
+  EXPECT_EQ( (int)ITKType::KEEP, (int)itk::simple::MergeLabelMapFilter::Keep);
+  EXPECT_EQ( (int)ITKType::AGGREGATE, (int)itk::simple::MergeLabelMapFilter::Aggregate);
+  EXPECT_EQ( (int)ITKType::PACK, (int)itk::simple::MergeLabelMapFilter::Pack);
+  EXPECT_EQ( (int)ITKType::STRICT, (int)itk::simple::MergeLabelMapFilter::Strict);
+}
+
+TEST(BasicFilters,ScalarToRGBColormap_ENUMCHECK) {
+  typedef itk::ScalarToRGBColormapImageFilter< itk::Image<float,3>, itk::Image< itk::RGBPixel<float>,3> > ITKType;
+  EXPECT_EQ( (int)ITKType::Red, (int)itk::simple::ScalarToRGBColormapImageFilter::Red);
+  EXPECT_EQ( (int)ITKType::Green, (int)itk::simple::ScalarToRGBColormapImageFilter::Green);
+  EXPECT_EQ( (int)ITKType::Blue, (int)itk::simple::ScalarToRGBColormapImageFilter::Blue);
+  EXPECT_EQ( (int)ITKType::Grey, (int)itk::simple::ScalarToRGBColormapImageFilter::Grey);
+  EXPECT_EQ( (int)ITKType::Hot, (int)itk::simple::ScalarToRGBColormapImageFilter::Hot);
+  EXPECT_EQ( (int)ITKType::Cool, (int)itk::simple::ScalarToRGBColormapImageFilter::Cool);
+  EXPECT_EQ( (int)ITKType::Spring, (int)itk::simple::ScalarToRGBColormapImageFilter::Spring);
+  EXPECT_EQ( (int)ITKType::Summer, (int)itk::simple::ScalarToRGBColormapImageFilter::Summer);
+  EXPECT_EQ( (int)ITKType::Autumn, (int)itk::simple::ScalarToRGBColormapImageFilter::Autumn);
+  EXPECT_EQ( (int)ITKType::Winter, (int)itk::simple::ScalarToRGBColormapImageFilter::Winter);
+  EXPECT_EQ( (int)ITKType::Copper, (int)itk::simple::ScalarToRGBColormapImageFilter::Copper);
+  EXPECT_EQ( (int)ITKType::Jet, (int)itk::simple::ScalarToRGBColormapImageFilter::Jet);
+  EXPECT_EQ( (int)ITKType::HSV, (int)itk::simple::ScalarToRGBColormapImageFilter::HSV);
+  EXPECT_EQ( (int)ITKType::OverUnder, (int)itk::simple::ScalarToRGBColormapImageFilter::OverUnder);
+}
+
+TEST(BasicFilters,RecursiveGaussian_ENUMCHECK) {
+  typedef itk::RecursiveGaussianImageFilter< itk::Image<float,3> > ITKRecursiveGausianType;
+  EXPECT_EQ( (int)ITKRecursiveGausianType::ZeroOrder, (int)itk::simple::RecursiveGaussianImageFilter::ZeroOrder );
+  EXPECT_EQ( (int)ITKRecursiveGausianType::FirstOrder, (int)itk::simple::RecursiveGaussianImageFilter::FirstOrder );
+  EXPECT_EQ( (int)ITKRecursiveGausianType::SecondOrder, (int)itk::simple::RecursiveGaussianImageFilter::SecondOrder );
+}
+
+TEST(BasicFilters,Extract_ENUMCHECK) {
+  typedef itk::ExtractImageFilter< itk::Image<float,3>, itk::Image<float,3> > ITKExtractType;
+  EXPECT_EQ( (int)ITKExtractType::DIRECTIONCOLLAPSETOUNKOWN, (int)itk::simple::ExtractImageFilter::DIRECTIONCOLLAPSETOUNKOWN );
+  EXPECT_EQ( (int)ITKExtractType::DIRECTIONCOLLAPSETOIDENTITY, (int)itk::simple::ExtractImageFilter::DIRECTIONCOLLAPSETOIDENTITY );
+  EXPECT_EQ( (int)ITKExtractType::DIRECTIONCOLLAPSETOSUBMATRIX, (int)itk::simple::ExtractImageFilter::DIRECTIONCOLLAPSETOSUBMATRIX );
+  EXPECT_EQ( (int)ITKExtractType::DIRECTIONCOLLAPSETOGUESS, (int)itk::simple::ExtractImageFilter::DIRECTIONCOLLAPSETOGUESS );
+}
+
+TEST(BasicFilters,FastMarching_ENUMCHECK) {
+  typedef itk::FastMarchingImageFilterBase< itk::Image<float,3>, itk::Image<float,3> > ITKType;
+  EXPECT_EQ( (int) ITKType::Nothing, (int) itk::simple::FastMarchingBaseImageFilter::Nothing );
+  EXPECT_EQ( (int) ITKType::NoHandles, (int) itk::simple::FastMarchingBaseImageFilter::NoHandles );
+  EXPECT_EQ( (int) ITKType::Strict, (int) itk::simple::FastMarchingBaseImageFilter::Strict );
+}
+
+TEST(BasicFilters,InverseDeconvolution_ENUMCHECK) {
+  typedef itk::InverseDeconvolutionImageFilter< itk::Image<float,3>, itk::Image<float,3> > ITKType;
+  EXPECT_EQ( (int) ITKType::SAME, (int) itk::simple::InverseDeconvolutionImageFilter::SAME );
+  EXPECT_EQ( (int) ITKType::VALID, (int) itk::simple::InverseDeconvolutionImageFilter::VALID );
+}
+
+TEST(BasicFilters,TikhonovDeconvolution_ENUMCHECK) {
+  typedef itk::TikhonovDeconvolutionImageFilter< itk::Image<float,3>, itk::Image<float,3> > ITKType;
+  EXPECT_EQ( (int) ITKType::SAME, (int) itk::simple::TikhonovDeconvolutionImageFilter::SAME );
+  EXPECT_EQ( (int) ITKType::VALID, (int) itk::simple::TikhonovDeconvolutionImageFilter::VALID );
+}
+
+TEST(BasicFilters,WienerDeconvolution_ENUMCHECK) {
+  typedef itk::WienerDeconvolutionImageFilter< itk::Image<float,3>, itk::Image<float,3> > ITKType;
+  EXPECT_EQ( (int) ITKType::SAME, (int) itk::simple::WienerDeconvolutionImageFilter::SAME );
+  EXPECT_EQ( (int) ITKType::VALID, (int) itk::simple::WienerDeconvolutionImageFilter::VALID );
+}
+
+TEST(BasicFilters,LandweberDeconvolution_ENUMCHECK) {
+  typedef itk::LandweberDeconvolutionImageFilter< itk::Image<float,3>, itk::Image<float,3> > ITKType;
+  EXPECT_EQ( (int) ITKType::SAME, (int) itk::simple::LandweberDeconvolutionImageFilter::SAME );
+  EXPECT_EQ( (int) ITKType::VALID, (int) itk::simple::LandweberDeconvolutionImageFilter::VALID );
+}
+
+TEST(BasicFilters,ProjectedLandweberDeconvolution_ENUMCHECK) {
+  typedef itk::ProjectedLandweberDeconvolutionImageFilter< itk::Image<float,3>, itk::Image<float,3> > ITKType;
+  EXPECT_EQ( (int) ITKType::SAME, (int) itk::simple::ProjectedLandweberDeconvolutionImageFilter::SAME );
+  EXPECT_EQ( (int) ITKType::VALID, (int) itk::simple::ProjectedLandweberDeconvolutionImageFilter::VALID );
+}
+
+TEST(BasicFilters,RichardsonLucyDeconvolution_ENUMCHECK) {
+  typedef itk::RichardsonLucyDeconvolutionImageFilter< itk::Image<float,3>, itk::Image<float,3> > ITKType;
+  EXPECT_EQ( (int) ITKType::SAME, (int) itk::simple::RichardsonLucyDeconvolutionImageFilter::SAME );
+  EXPECT_EQ( (int) ITKType::VALID, (int) itk::simple::RichardsonLucyDeconvolutionImageFilter::VALID );
+}
+
+TEST(BasicFilters,LabelMapContourOverlay_ENUMCHECK) {
+  typedef itk::LabelMapContourOverlayImageFilter< itk::LabelMap<itk::LabelObject<int,3> >, itk::Image<float,3>, itk::VectorImage<int,3> > ITKType;
+  EXPECT_EQ( (int) ITKType::PLAIN, (int)         itk::simple::LabelMapContourOverlayImageFilter::PLAIN );
+  EXPECT_EQ( (int) ITKType::CONTOUR, (int)       itk::simple::LabelMapContourOverlayImageFilter::CONTOUR );
+  EXPECT_EQ( (int) ITKType::SLICE_CONTOUR, (int) itk::simple::LabelMapContourOverlayImageFilter::SLICE_CONTOUR );
+
+
+  EXPECT_EQ( (int) ITKType::HIGH_LABEL_ON_TOP, (int) itk::simple::LabelMapContourOverlayImageFilter::HIGH_LABEL_ON_TOP );
+  EXPECT_EQ( (int) ITKType::LOW_LABEL_ON_TOP, (int) itk::simple::LabelMapContourOverlayImageFilter::LOW_LABEL_ON_TOP );
+
+}
+
+TEST(BasicFilters,PatchBasedBaseDenoising_ENUMCHECK) {
+  typedef itk::PatchBasedDenoisingImageFilter< itk::Image<float,3>, itk::Image<float,3> > ITKType;
+  EXPECT_EQ( (int) ITKType::NOMODEL, (int) itk::simple::PatchBasedDenoisingImageFilter::NOMODEL );
+  EXPECT_EQ( (int) ITKType::GAUSSIAN, (int) itk::simple::PatchBasedDenoisingImageFilter::GAUSSIAN );
+  EXPECT_EQ( (int) ITKType::RICIAN, (int) itk::simple::PatchBasedDenoisingImageFilter::RICIAN );
+  EXPECT_EQ( (int) ITKType::POISSON, (int) itk::simple::PatchBasedDenoisingImageFilter::POISSON );
+}
+
+
+TEST(BasicFilters,ConnectedThreshold_ENUMCHECK) {
+  typedef itk::ConnectedThresholdImageFilter< itk::Image<float,3>, itk::Image<float,3> > ITKType;
+  EXPECT_EQ( (int) ITKType::FaceConnectivity, (int) itk::simple::ConnectedThresholdImageFilter::FaceConnectivity );
+  EXPECT_EQ( (int) ITKType::FullConnectivity, (int) itk::simple::ConnectedThresholdImageFilter::FullConnectivity );
+}
+
+TEST(BasicFilter,GradientAnisotropicDiffusion_EstimateOptimalTimeStep) {
+  // This test is to check the correctness of the
+  // EstimateOptimalTimeStep
+
+  namespace sitk = itk::simple;
+
+  sitk::Image img;
+  ASSERT_NO_THROW( img = sitk::ReadImage( dataFinder.GetFile ( "Input/RA-Float.nrrd" ) ) ) << "Reading input Image.";
+
+  std::vector<double> spacing( 3, 1.0 );
+
+  img.SetSpacing( spacing );
+  sitk::GradientAnisotropicDiffusionImageFilter filter;
+
+  filter.SetTimeStep( 0 );
+
+  EXPECT_EQ( filter.EstimateOptimalTimeStep( img ), 0.125 );
+  EXPECT_EQ( filter.GetTimeStep(), 0.125 );
+
+  spacing[0] = 2.0;
+  spacing[1] = 2.0;
+  spacing[2] = 10.0;
+  img.SetSpacing( spacing );
+
+  EXPECT_EQ( filter.EstimateOptimalTimeStep( img ), 0.25 );
+  EXPECT_EQ( filter.GetTimeStep(), 0.25 );
+
+  img = sitk::Image( 100, 100, sitk::sitkUInt32 );
+
+  spacing[0] = 10.0;
+  spacing[1] = 100.0;
+  img.SetSpacing( spacing );
+
+  EXPECT_EQ( filter.EstimateOptimalTimeStep( img ), 2.5 );
+  EXPECT_EQ( filter.GetTimeStep(), 2.5 );
+
+}
+
+
+TEST(BasicFilter,CurvatureAnisotropicDiffusion_EstimateOptimalTimeStep) {
+  // This test is to check the correctness of the
+  // EstimateOptimalTimeStep
+
+  namespace sitk = itk::simple;
+
+  sitk::Image img;
+  ASSERT_NO_THROW( img = sitk::ReadImage( dataFinder.GetFile ( "Input/RA-Float.nrrd" ) ) ) << "Reading input Image.";
+
+  std::vector<double> spacing( 3, 1.0 );
+  img.SetSpacing( spacing );
+
+  sitk::CurvatureAnisotropicDiffusionImageFilter filter;
+
+  filter.SetTimeStep( 0 );
+
+  EXPECT_EQ( filter.EstimateOptimalTimeStep( img ), 0.0625 );
+  EXPECT_EQ( filter.GetTimeStep(), 0.0625 );
+
+  spacing[0] = 2.0;
+  spacing[1] = 2.0;
+  spacing[2] = 10.0;
+  img.SetSpacing( spacing );
+
+  EXPECT_EQ( filter.EstimateOptimalTimeStep( img ), 0.125 );
+  EXPECT_EQ( filter.GetTimeStep(), 0.125 );
+
+  img = sitk::Image( 100, 100, sitk::sitkUInt32 );
+
+  spacing[0] = 10.0;
+  spacing[1] = 100.0;
+  img.SetSpacing( spacing );
+
+  EXPECT_EQ( filter.EstimateOptimalTimeStep( img ), 1.25 );
+  EXPECT_EQ( filter.GetTimeStep(), 1.25 );
+
+}
+
+TEST(BasicFilters,ImageFilter) {
+  namespace sitk = itk::simple;
+
+  sitk::CastImageFilter caster;
+  sitk::ImageFilter<1> &filter = caster;
+
+  filter.DebugOn();
+}
+
+TEST(BasicFilters,ProcessObject_Debug) {
+  namespace sitk = itk::simple;
+
+  sitk::CastImageFilter caster;
+  sitk::ProcessObject &filter = caster;
+
+  EXPECT_FALSE(filter.GetGlobalDefaultDebug());
+  EXPECT_FALSE(filter.GetDebug());
+
+  filter.DebugOff();
+  EXPECT_FALSE(filter.GetDebug());
+  EXPECT_FALSE(filter.GetGlobalDefaultDebug());
+
+  filter.DebugOn();
+  EXPECT_TRUE(filter.GetDebug());
+  EXPECT_FALSE(filter.GetGlobalDefaultDebug());
+
+  filter.GlobalDefaultDebugOn();
+  EXPECT_TRUE(filter.GetDebug());
+  EXPECT_TRUE(filter.GetGlobalDefaultDebug());
+
+  filter.GlobalDefaultDebugOff();
+  EXPECT_TRUE(filter.GetDebug());
+  EXPECT_FALSE(filter.GetGlobalDefaultDebug());
+
+  filter.GlobalDefaultDebugOn();
+
+  sitk::CastImageFilter caster2;
+  EXPECT_TRUE(caster2.GetDebug());
+  EXPECT_TRUE(caster2.GetGlobalDefaultDebug());
+
+}
+
+TEST(BasicFilters,ProcessObject_NumberOfThreads) {
+  namespace sitk = itk::simple;
+
+  sitk::CastImageFilter caster;
+  sitk::ProcessObject &filter = caster;
+
+  unsigned int gNum = filter.GetGlobalDefaultNumberOfThreads();
+  EXPECT_NE(filter.GetGlobalDefaultNumberOfThreads(), 0u);
+  EXPECT_NE(filter.GetNumberOfThreads(), 0u);
+  EXPECT_EQ(filter.GetNumberOfThreads(), filter.GetGlobalDefaultNumberOfThreads());
+
+  filter.SetNumberOfThreads(3);
+  EXPECT_EQ(3u, filter.GetNumberOfThreads());
+  EXPECT_EQ(gNum, filter.GetGlobalDefaultNumberOfThreads());
+
+  filter.SetGlobalDefaultNumberOfThreads(gNum+1);
+  EXPECT_EQ(gNum+1, filter.GetGlobalDefaultNumberOfThreads());
+  EXPECT_EQ(3u, filter.GetNumberOfThreads());
+
+  sitk::CastImageFilter caster2;
+  EXPECT_EQ(gNum+1, caster2.GetNumberOfThreads());
+  EXPECT_EQ(gNum+1, caster2.GetGlobalDefaultNumberOfThreads());
+}
+
+TEST(BasicFilters,Cast) {
+  itk::simple::HashImageFilter hasher;
+  itk::simple::ImageFileReader reader;
+
+  reader.SetFileName ( dataFinder.GetFile ( "Input/RA-Float.nrrd" ) );
+  itk::simple::Image image = reader.Execute();
+  ASSERT_TRUE ( image.GetITKBase() != NULL );
+  hasher.SetHashFunction ( itk::simple::HashImageFilter::MD5 );
+  EXPECT_EQ ( "3ccccde44efaa3d688a86e94335c1f16", hasher.Execute ( image ) );
+
+  EXPECT_EQ ( image.GetPixelIDValue(), itk::simple::sitkFloat32 );
+  EXPECT_EQ ( image.GetPixelID(), itk::simple::sitkFloat32 );
+  EXPECT_EQ ( image.GetPixelIDTypeAsString(), "32-bit float" );
+
+  typedef std::map<std::string,itk::simple::PixelIDValueEnum> MapType;
+  MapType mapping;
+  mapping["2f27e9260baeba84fb83dd35de23fa2d"] = itk::simple::sitkUInt8;
+  mapping["2f27e9260baeba84fb83dd35de23fa2d"] = itk::simple::sitkInt8;
+  mapping["a963bd6a755b853103a2d195e01a50d3"] = itk::simple::sitkUInt16;
+  mapping["a963bd6a755b853103a2d195e01a50d3"] = itk::simple::sitkInt16;
+  mapping["6ceea0011178a955b5be2d545d107199"] = itk::simple::sitkUInt32;
+  mapping["6ceea0011178a955b5be2d545d107199"] = itk::simple::sitkInt32;
+  mapping["efa4c3b27349b97b02a64f3d2b5ca9ed"] = itk::simple::sitkUInt64;
+  mapping["efa4c3b27349b97b02a64f3d2b5ca9ed"] = itk::simple::sitkInt64;
+  mapping["3ccccde44efaa3d688a86e94335c1f16"] = itk::simple::sitkFloat32;
+  mapping["ac0228acc17038fd1f1ed28eb2841c73"] = itk::simple::sitkFloat64;
+  mapping["226dabda8fc07f20e2b9e44ca1c83955"] = itk::simple::sitkComplexFloat32;
+  mapping["e92cbb187a92610068d7de0cb23364db"] = itk::simple::sitkComplexFloat64;
+  mapping["2f27e9260baeba84fb83dd35de23fa2d"] = itk::simple::sitkVectorUInt8;
+  mapping["2f27e9260baeba84fb83dd35de23fa2d"] = itk::simple::sitkVectorInt8;
+  mapping["a963bd6a755b853103a2d195e01a50d3"] = itk::simple::sitkVectorUInt16;
+  mapping["a963bd6a755b853103a2d195e01a50d3"] = itk::simple::sitkVectorInt16;
+  mapping["6ceea0011178a955b5be2d545d107199"] = itk::simple::sitkVectorUInt32;
+  mapping["6ceea0011178a955b5be2d545d107199"] = itk::simple::sitkVectorInt32;
+  mapping["efa4c3b27349b97b02a64f3d2b5ca9ed"] = itk::simple::sitkVectorUInt64;
+  mapping["efa4c3b27349b97b02a64f3d2b5ca9ed"] = itk::simple::sitkVectorInt64;
+  mapping["3ccccde44efaa3d688a86e94335c1f16"] = itk::simple::sitkVectorFloat32;
+  mapping["ac0228acc17038fd1f1ed28eb2841c73"] = itk::simple::sitkVectorFloat64;
+  mapping["sitkLabelUInt8"] = itk::simple::sitkLabelUInt8;
+  mapping["sitkLabelUInt16"] = itk::simple::sitkLabelUInt16;
+  mapping["sitkLabelUInt32"] = itk::simple::sitkLabelUInt32;
+  mapping["sitkLabelUInt64"] = itk::simple::sitkLabelUInt64;
+
+  bool failed = false;
+
+  // Loop over the map, load each file, and compare the hash value
+  for ( MapType::iterator it = mapping.begin(); it != mapping.end(); ++it )
+    {
+    itk::simple::PixelIDValueEnum pixelID = it->second;
+    std::string hash = it->first;
+
+    std::cerr << std::flush;
+    std::cerr << std::flush;
+    if ( pixelID == itk::simple::sitkUnknown )
+      {
+      std::cerr << "Enum value: " << pixelID << " (" << hash << ") is unknown and not instantiated" << std::endl;
+      continue;
+      }
+
+    std::cerr << "Testing casting to pixelID: " << pixelID << " is " << itk::simple::GetPixelIDValueAsString ( pixelID ) << std::endl;
+
+    try
+      {
+      itk::simple::CastImageFilter caster;
+      itk::simple::Image test = caster.SetOutputPixelType ( pixelID ).Execute ( image );
+
+      hasher.SetHashFunction ( itk::simple::HashImageFilter::MD5 );
+      EXPECT_EQ ( hash, hasher.Execute ( test ) ) << "Cast to " << itk::simple::GetPixelIDValueAsString ( pixelID );
+
+      }
+    catch ( ::itk::simple::GenericException &e )
+      {
+
+      // hashing currently doesn't work for label images
+      if ( hash.find( "sitkLabel" ) == 0 )
+        {
+        std::cerr << "Hashing currently is not implemented for Label Images" << std::endl;
+        }
+      else
+        {
+        failed = true;
+        std::cerr << "Failed to hash: " << e.what() << std::endl;
+        }
+
+      continue;
+      }
+
+  }
+  EXPECT_FALSE ( failed ) << "Cast failed, or could not take the hash of the imoge";
+
+}
+
+TEST(BasicFilters,HashImageFilter) {
+  itk::simple::HashImageFilter hasher;
+  std::string out = hasher.ToString();
+  EXPECT_TRUE ( out.find("itk::simple::HashImageFilter") != std::string::npos );
+  EXPECT_TRUE ( out.find("HashFunction: SHA1") != std::string::npos );
+  EXPECT_TRUE ( out.find("Debug:") != std::string::npos );
+  EXPECT_TRUE ( out.find("NumberOfThreads:") != std::string::npos );
+  EXPECT_EQ ( itk::simple::HashImageFilter::SHA1, hasher.SetHashFunction ( itk::simple::HashImageFilter::SHA1 ).GetHashFunction() );
+  EXPECT_EQ ( itk::simple::HashImageFilter::MD5, hasher.SetHashFunction ( itk::simple::HashImageFilter::MD5 ).GetHashFunction() );
+}
+
+
+TEST(BasicFilters,BSplineTransformInitializer) {
+  namespace sitk = itk::simple;
+
+  sitk::BSplineTransformInitializerFilter filter;
+
+  EXPECT_EQ ( "BSplineTransformInitializerFilter", filter.GetName() );
+  EXPECT_EQ ( std::vector<uint32_t>(3,1u), filter.GetTransformDomainMeshSize() );
+  EXPECT_EQ ( std::vector<uint32_t>(3,10u), filter.SetTransformDomainMeshSize(std::vector<uint32_t>(3,10u)).GetTransformDomainMeshSize() );
+
+  const double cs = 0.5*itk::Math::sqrt2; // cos(pi/4) = sin(pi/4)
+  sitk::Image img( 100, 100, sitk::sitkUInt32 );
+  img.SetDirection(v4(cs,-cs,cs,cs) );
+  img.SetSpacing( v2(2,2) );
+
+
+  sitk::BSplineTransform outTx = filter.Execute( img );
+  EXPECT_EQ ( std::vector<uint32_t>(2,10u), outTx.GetTransformDomainMeshSize() );
+  EXPECT_VECTOR_DOUBLE_NEAR ( v4(cs,-cs,cs,cs), outTx.GetTransformDomainDirection(), 1e-6 );
+   EXPECT_VECTOR_DOUBLE_NEAR ( v2(0, -1.7677669525146484 ), outTx.GetTransformDomainOrigin(), 1e-6 );
+  EXPECT_VECTOR_DOUBLE_NEAR ( v2(10.025, 20.05), outTx.GetTransformDomainPhysicalDimensions(), 1e6);
+  EXPECT_EQ ( 10u, outTx.GetFixedParameters().size() );
+
+  // 3D
+  img = sitk::Image(10,10,10,  sitk::sitkUInt32 );
+
+  outTx = sitk::BSplineTransformInitializer( img, std::vector<uint32_t>(3,5u) );
+  EXPECT_EQ( std::vector<uint32_t>(3,5u), outTx.GetTransformDomainMeshSize() );
+
+  // check that it's identity
+  EXPECT_VECTOR_DOUBLE_NEAR( outTx.TransformPoint( v3(0.0,0.0,0.0) ), v3(0.0,0.0,0.0), 1e-17);
+  EXPECT_VECTOR_DOUBLE_NEAR( outTx.TransformPoint( v3(1.123,0.0,2.0) ), v3(1.123,0.0,2.0), 1e-17);
+  EXPECT_VECTOR_DOUBLE_NEAR( outTx.TransformPoint( v3(0.0,0.0,5.0) ), v3(0.0,0.0,5.0), 1e-17);
+  EXPECT_VECTOR_DOUBLE_NEAR( outTx.TransformPoint( v3(5.0,7.0,9.0) ), v3(5.0,7.0,9.0), 1e-17);
+
+}
+
+TEST(BasicFilters, BSplineTransformInitializerRequestedRegion) {
+  namespace sitk = itk::simple;
+
+  //check that changing the image's requested region does not change
+  //the BSplineTransformInitializer
+  sitk::Image img( 482, 360, 141, sitk::sitkFloat32 );
+  img.SetSpacing( v3(0.97656, 0.97656, 2) );
+  std::vector<unsigned int> extractSize(3);
+  extractSize[0] = 482;
+  extractSize[1] = 0;
+  extractSize[2] = 141;
+  std::vector<int> extractIndex(3);
+  extractIndex[0] = 0;
+  extractIndex[1] = 176;
+  extractIndex[2] = 0;
+
+  std::vector<uint32_t> transformDomainMeshSize(3);
+  transformDomainMeshSize[0] = 9;
+  transformDomainMeshSize[1] = 7;
+  transformDomainMeshSize[2] = 6;
+  sitk::BSplineTransform transformBefore(3), transformAfter(3);
+  transformBefore = sitk::BSplineTransformInitializer( img, transformDomainMeshSize );
+
+  sitk::Extract(img, extractSize, extractIndex);
+
+  transformAfter = sitk::BSplineTransformInitializer( img, transformDomainMeshSize );
+
+  //the extract filter should not have any effect on the
+  //BSplineTransformInitializer, it only changed the image's
+  //requested region
+  EXPECT_VECTOR_DOUBLE_NEAR( transformBefore.GetTransformDomainPhysicalDimensions(), transformAfter.GetTransformDomainPhysicalDimensions(), 1e-17 );
+  EXPECT_VECTOR_DOUBLE_NEAR( transformBefore.GetTransformDomainOrigin(), transformAfter.GetTransformDomainOrigin(), 1e-17 );
+
+}
+
+TEST(BasicFilters,CenteredTransformInitializer) {
+  namespace sitk = itk::simple;
+
+  sitk::CenteredTransformInitializerFilter filter;
+
+  EXPECT_EQ ( "CenteredTransformInitializerFilter", filter.GetName() );
+  EXPECT_EQ ( sitk::CenteredTransformInitializerFilter::MOMENTS, filter.GetOperationMode() );
+  filter.GeometryOn();
+  EXPECT_EQ ( sitk::CenteredTransformInitializerFilter::GEOMETRY, filter.GetOperationMode() );
+  filter.MomentsOn();
+  EXPECT_EQ ( sitk::CenteredTransformInitializerFilter::MOMENTS, filter.GetOperationMode() );
+
+  sitk::Image fixed = sitk::ReadImage( dataFinder.GetFile( "Input/BrainProtonDensitySliceBorder20.png") );
+  sitk::Image moving = sitk::ReadImage( dataFinder.GetFile( "Input/BrainProtonDensitySliceShifted13x17y.png" ) );
+
+  sitk::Transform tx = sitk::Transform(2, sitk::sitkAffine);
+
+  sitk::Transform outTx = filter.Execute( fixed, moving , tx );
+
+  std::vector<double> params = outTx.GetFixedParameters();
+
+  ASSERT_EQ( 2u, params.size() );
+  EXPECT_EQ( 0.0, tx.GetFixedParameters()[0] );
+  EXPECT_EQ( 0.0, tx.GetFixedParameters()[1] );
+  EXPECT_FLOAT_EQ ( 111.20356, params[0] );
+  EXPECT_FLOAT_EQ ( 131.59097, params[1] );
+
+
+  tx = sitk::Transform(2, sitk::sitkEuler);
+
+  outTx = sitk::CenteredTransformInitializer( fixed, moving, tx );
+
+  params = outTx.GetFixedParameters();
+
+  ASSERT_EQ( 2u, params.size() );
+  EXPECT_EQ( 0.0, tx.GetFixedParameters()[0] );
+  EXPECT_EQ( 0.0, tx.GetFixedParameters()[1] );
+  EXPECT_FLOAT_EQ ( 111.20356, params[0] );
+  EXPECT_FLOAT_EQ ( 131.59097, params[1] );
+
+}
+
+
+TEST(BasicFilters,CenteredVersorTransformInitializer) {
+  namespace sitk = itk::simple;
+
+  sitk::CenteredVersorTransformInitializerFilter filter;
+
+  EXPECT_EQ ( "CenteredVersorTransformInitializerFilter", filter.GetName() );
+  EXPECT_EQ ( filter.GetComputeRotation(), false );
+  EXPECT_EQ ( filter.ComputeRotationOn().GetComputeRotation(), true );
+  EXPECT_EQ ( filter.ComputeRotationOff().GetComputeRotation(), false );
+
+  // generate a few basic test images from gaussian blobs
+
+  sitk::GaussianImageSource source;
+  source.SetOutputPixelType( sitk::sitkFloat32 );
+  source.SetSize( std::vector< unsigned int >(3, 128) );
+  source.SetMean( v3(64.0, 64.0, 64.0) );
+  source.SetSigma( v3( 10.0, 15.0, 20.0) );
+
+  const sitk::Image g1 = source.Execute();
+
+  source.SetMean( v3(63.0, 62.0, 61.0) );
+  const sitk::Image g2 = source.Execute();
+
+  source.SetMean( v3(63.0, 62.0, 61.0) );
+  source.SetSigma( v3( 15.0, 20.0, 10) );
+  const sitk::Image g3 = source.Execute();
+
+  {
+  sitk::VersorRigid3DTransform tx;
+
+  filter.ComputeRotationOff();
+  tx = sitk::VersorRigid3DTransform( filter.Execute(g1, g2, sitk::VersorRigid3DTransform() ) );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.GetTranslation(), v3(-1.0,-2.0,-3.0), 0.1 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.GetCenter(), v3(64.0,64.0,64.0), 0.1 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.GetVersor(), v4(0.0, 0.0,0.0,1.0), 1e-15 );
+  tx = sitk::VersorRigid3DTransform( filter.Execute(g1, g3, sitk::VersorRigid3DTransform() ) );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.GetTranslation(), v3(-1.0,-2.0,-3.0), 0.1 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.GetCenter(), v3(64.0,64.0,64.0), 0.1 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.GetVersor(), v4(0.0, 0.0,0.0,1.0), 1e-15 );
+
+  filter.ComputeRotationOn();
+  tx = sitk::VersorRigid3DTransform( filter.Execute(g1, g2, sitk::VersorRigid3DTransform() ) );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.GetTranslation(), v3(-1.0,-2.0,-3.0), 0.1 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.GetCenter(), v3(64.0,64.0,64.0), 0.1 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.GetVersor(), v4(0.0, 0.0,0.0,1.0), 1e-5 );
+  tx = sitk::VersorRigid3DTransform( filter.Execute(g1, g3, sitk::VersorRigid3DTransform() ) );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.GetTranslation(), v3(-1.0,-2.0,-3.0), 0.1 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.GetCenter(), v3(64.0,64.0,64.0), 0.1 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.GetVersor(), v4(-0.5, -0.5,0.5,0.5), 1e-5 );
+  }
+
+  {
+  sitk::Similarity3DTransform tx;
+
+  filter.ComputeRotationOff();
+  tx = sitk::Similarity3DTransform( filter.Execute(g1, g2, sitk::Similarity3DTransform() ) );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.GetTranslation(), v3(-1.0,-2.0,-3.0), 0.1 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.GetCenter(), v3(64.0,64.0,64.0), 0.1 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.GetVersor(), v4(0.0, 0.0,0.0,1.0), 1e-15 );
+  tx = sitk::Similarity3DTransform( filter.Execute(g1, g3, sitk::Similarity3DTransform() ) );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.GetTranslation(), v3(-1.0,-2.0,-3.0), 0.1 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.GetCenter(), v3(64.0,64.0,64.0), 0.1 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.GetVersor(), v4(0.0, 0.0,0.0,1.0), 1e-15 );
+
+  filter.ComputeRotationOn();
+  tx = sitk::Similarity3DTransform( filter.Execute(g1, g2, sitk::Similarity3DTransform() ) );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.GetTranslation(), v3(-1.0,-2.0,-3.0), 0.1 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.GetCenter(), v3(64.0,64.0,64.0), 0.1 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.GetVersor(), v4(0.0, 0.0,0.0,1.0), 1e-5 );
+  tx = sitk::Similarity3DTransform( filter.Execute(g1, g3, sitk::Similarity3DTransform() ) );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.GetTranslation(), v3(-1.0,-2.0,-3.0), 0.1 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.GetCenter(), v3(64.0,64.0,64.0), 0.1 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.GetVersor(), v4(-0.5, -0.5,0.5,0.5), 1e-5 );
+  }
+
+  EXPECT_THROW( sitk::CenteredVersorTransformInitializer(g1, g2, sitk::Transform(2,sitk::sitkSimilarity)), sitk::GenericException );
+  EXPECT_THROW( sitk::CenteredVersorTransformInitializer(g1, g2, sitk::Transform(3,sitk::sitkVersor)), sitk::GenericException );
+  EXPECT_THROW( sitk::CenteredVersorTransformInitializer(g1, g2, sitk::Transform(3,sitk::sitkAffine)), sitk::GenericException );
+  EXPECT_THROW( sitk::CenteredVersorTransformInitializer(g1, g2, sitk::Transform(3,sitk::sitkQuaternionRigid)), sitk::GenericException );
+  EXPECT_THROW( sitk::CenteredVersorTransformInitializer(g1, g2, sitk::Transform(3,sitk::sitkTranslation)), sitk::GenericException );
+
+
+}
+
+
+
+TEST(BasicFilters,LandmarkBasedTransformInitializer) {
+  namespace sitk = itk::simple;
+
+  sitk::LandmarkBasedTransformInitializerFilter filter;
+
+
+  const double points2d[] = { 0.0,0.0, 1.0,1.0, 1.0,0.0, 1.1,1.0,  2.34, 10.98};
+
+  std::vector<double> fixedPoints(&points2d[0], &points2d[10]);
+  std::vector<double> movingPoints(&points2d[0], &points2d[10]);
+
+
+  sitk::Transform out;
+
+  filter.SetFixedLandmarks( fixedPoints );
+  filter.SetMovingLandmarks( movingPoints );
+
+
+  EXPECT_EQ ( "LandmarkBasedTransformInitializerFilter", filter.GetName() );
+
+  out = filter.Execute( sitk::Euler2DTransform() );
+  EXPECT_VECTOR_DOUBLE_NEAR(v3(0.0, 0.0, 0.0), out.GetParameters(), 1e-15);
+
+  out = filter.Execute( sitk::Similarity2DTransform() );
+  EXPECT_VECTOR_DOUBLE_NEAR(v4(1.0, 0.0, 0.0, 0.0), out.GetParameters(), 1e-15);
+
+
+  EXPECT_ANY_THROW( filter.Execute( sitk::VersorTransform() ) );
+
+  out = filter.Execute( sitk::VersorRigid3DTransform() );
+  EXPECT_VECTOR_DOUBLE_NEAR(v6(0.0, 0.0, 0.0, 0.0, 0.0, 0.0), out.GetParameters(), 1e-25);
+
+  out = filter.Execute( sitk::ScaleVersor3DTransform() );
+  EXPECT_VECTOR_DOUBLE_NEAR(v9(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0), out.GetParameters(), 1e-25);
+
+
+  out = filter.Execute( sitk::AffineTransform(2) );
+  EXPECT_VECTOR_DOUBLE_NEAR(v6(1.0, 0.0, 0.0, 1.0, 0.0, 0.0), out.GetParameters(), 1e-8);
+
+  const double fixedImagePoints3d[] = {127.53915086334257, 102.12639903012848, 44.0,
+                                       198.641578144495, 101.59971438360141, 44.0,
+                                       156.82957119036902, 215.70110997158648, 48.0,
+                                       176.63477775277258, 144.97363079485118, 64.0};
+
+  const double movingImagePoints3d[] = {181.40169895047495, 242.55513079230616, 24.0,
+                                        112.90638157274341, 246.938831104481, 24.0,
+                                        141.07588005861425, 134.62809649982117, 28.0,
+                                        126.66162032855607, 208.7334122120106, 44.0};
+  fixedPoints.clear();
+  fixedPoints.insert(fixedPoints.begin(), &fixedImagePoints3d[0], &fixedImagePoints3d[12]);
+  movingPoints.clear();
+  movingPoints.insert(movingPoints.begin(), &movingImagePoints3d[0], &movingImagePoints3d[12]);
+  filter.SetFixedLandmarks( fixedPoints );
+  filter.SetMovingLandmarks( movingPoints );
+
+  out = filter.Execute( sitk::AffineTransform(3) );
+
+  EXPECT_VECTOR_DOUBLE_NEAR(v12(-9.64081213e-01, -1.01003445e-01, -1.54009453e-01,
+                                5.44421946e-02, -9.73501195e-01, 2.60861955e-01,
+                                -2.64945988e-14, -3.95920761e-14, 1.00000000e+00,
+                                321.45133233, 323.55386506, -20.0), out.GetParameters(), 1e-8);
+
+  const double pointsBSplineTest2D[] = {0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.1, 1.0, 2.34, 10.98};
+  fixedPoints.clear();
+  fixedPoints.insert(fixedPoints.begin(), &pointsBSplineTest2D[0], &pointsBSplineTest2D[10]);
+  movingPoints.clear();
+  movingPoints.insert(movingPoints.begin(), &pointsBSplineTest2D[0], &pointsBSplineTest2D[10]);
+  filter.SetFixedLandmarks( fixedPoints );
+  filter.SetMovingLandmarks( movingPoints );
+  filter.SetBSplineNumberOfControlPoints( 5 );
+
+  // Image isn't set so we expect an exception
+  EXPECT_ANY_THROW( filter.Execute( sitk::BSplineTransform( 2 ) ) );
+
+  std::vector< double > spacing;
+  spacing.push_back(0.5);
+  spacing.push_back(1);
+  std::vector< double > origin;
+  origin.push_back(-5.0);
+  origin.push_back(-5.0);
+  sitk::Image referenceImage( 25, 50, sitk::sitkFloat32 );
+  referenceImage.SetSpacing( spacing );
+  referenceImage.SetOrigin( origin );
+  filter.SetReferenceImage( referenceImage );
+
+  // Expecting the identity transform (BSpline parameters are all zero)
+  out = filter.Execute(sitk::BSplineTransform(2));
+  EXPECT_VECTOR_DOUBLE_NEAR(std::vector<double>(out.GetParameters().size(), 0.0), out.GetParameters(), 1e-25);
+
+  // Translate the moving points in the x direction
+  double dxSize = 3.5;
+  for( unsigned int i = 0; i<movingPoints.size(); i+=2 )
+    {
+    movingPoints[i]+=dxSize;
+    }
+  filter.SetMovingLandmarks( movingPoints );
+
+  out = filter.Execute( sitk::BSplineTransform(2) );
+
+  // Transform the fixed points using the estimated BSpline transform
+  // and compare the to moving points.
+  for( unsigned int i = 0; i<fixedPoints.size(); i+=2 )
+    {
+    EXPECT_VECTOR_DOUBLE_NEAR( out.TransformPoint(v2(fixedPoints[i], fixedPoints[i+1])), v2(movingPoints[i], movingPoints[i+1]), 0.1 );
+    }
+
+  // The ITK filter only supports BSplines of order 3. Unfortunately,
+  // because the transform is templated we don't have a way for
+  // obtaining the spline order so we just check that ITK throws the
+  // expected exception when we use a spline order of 2.
+  EXPECT_ANY_THROW( filter.Execute( sitk::BSplineTransform( 2, 2 ) ) );
+}
+
+
+TEST(BasicFilters,Cast_Commands) {
+  // test cast filter with a bunch of commands
+
+  namespace sitk = itk::simple;
+  sitk::Image img = sitk::ReadImage( dataFinder.GetFile ( "Input/RA-Short.nrrd" ) );
+  EXPECT_EQ ( "a963bd6a755b853103a2d195e01a50d3", sitk::Hash(img, sitk::HashImageFilter::MD5));
+
+  sitk::CastImageFilter caster;
+  caster.SetOutputPixelType( sitk::sitkInt32 );
+
+  ProgressUpdate progressCmd(caster);
+  caster.AddCommand(sitk::sitkProgressEvent, progressCmd);
+
+  CountCommand abortCmd(caster);
+  caster.AddCommand(sitk::sitkAbortEvent, abortCmd);
+
+  CountCommand deleteCmd(caster);
+  caster.AddCommand(sitk::sitkDeleteEvent, deleteCmd);
+
+  CountCommand endCmd(caster);
+  caster.AddCommand(sitk::sitkEndEvent, endCmd);
+
+  CountCommand iterCmd(caster);
+  caster.AddCommand(sitk::sitkIterationEvent, iterCmd);
+
+  CountCommand startCmd(caster);
+  caster.AddCommand(sitk::sitkStartEvent, startCmd);
+
+  CountCommand userCmd(caster);
+  caster.AddCommand(sitk::sitkUserEvent, userCmd);
+
+
+  sitk::Image out = caster.Execute(img);
+  EXPECT_EQ ( "6ceea0011178a955b5be2d545d107199", sitk::Hash(out, sitk::HashImageFilter::MD5));
+
+  EXPECT_EQ ( 1.0f, caster.GetProgress() );
+  EXPECT_EQ ( 1.0f, progressCmd.m_Progress );
+  EXPECT_EQ ( 0, abortCmd.m_Count );
+  EXPECT_EQ ( 1, deleteCmd.m_Count );
+  EXPECT_EQ ( 1, endCmd.m_Count );
+  EXPECT_EQ ( 0, iterCmd.m_Count );
+  EXPECT_EQ ( 1, startCmd.m_Count );
+  EXPECT_EQ ( 0, userCmd.m_Count );
+
+}
+
+TEST(BasicFilters,Statistics_Abort) {
+  // test Statistics filter with a bunch of commands
+
+  namespace sitk = itk::simple;
+  sitk::Image img = sitk::ReadImage( dataFinder.GetFile ( "Input/RA-Short.nrrd" ) );
+  EXPECT_EQ ( "a963bd6a755b853103a2d195e01a50d3", sitk::Hash(img, sitk::HashImageFilter::MD5));
+
+  sitk::StatisticsImageFilter stats;
+  stats.SetNumberOfThreads(1);
+
+  AbortAtCommand progressCmd(stats,.05);
+  stats.AddCommand(sitk::sitkProgressEvent, progressCmd);
+
+  CountCommand abortCmd(stats);
+  stats.AddCommand(sitk::sitkAbortEvent, abortCmd);
+
+  CountCommand deleteCmd(stats);
+  stats.AddCommand(sitk::sitkDeleteEvent, deleteCmd);
+
+  CountCommand endCmd(stats);
+  stats.AddCommand(sitk::sitkEndEvent, endCmd);
+
+  CountCommand iterCmd(stats);
+  stats.AddCommand(sitk::sitkIterationEvent, iterCmd);
+
+  CountCommand startCmd(stats);
+  stats.AddCommand(sitk::sitkStartEvent, startCmd);
+
+  CountCommand userCmd(stats);
+  stats.AddCommand(sitk::sitkUserEvent, userCmd);
+
+  EXPECT_ANY_THROW( stats.Execute(img) );
+
+  EXPECT_EQ ( 1, abortCmd.m_Count );
+  EXPECT_EQ ( 1, deleteCmd.m_Count );
+  EXPECT_EQ ( 0, endCmd.m_Count );
+  EXPECT_EQ ( 0, iterCmd.m_Count );
+  EXPECT_EQ ( 1, startCmd.m_Count );
+  EXPECT_EQ ( 0, userCmd.m_Count );
+
+}
+
+TEST(BasicFilters,ResampleImageFilter_AdditionalProcedures)
+{
+  namespace sitk = itk::simple;
+
+  sitk::Image img;
+  ASSERT_NO_THROW( img = sitk::ReadImage( dataFinder.GetFile ( "Input/RA-Float.nrrd" ) ) ) << "Reading input Image.";
+
+  sitk::Transform xf = sitk::Transform(); // identity transform
+
+  // self reference image
+   sitk::Image out = sitk::Resample( img,
+                                     xf,
+                                     sitk::sitkNearestNeighbor );
+  EXPECT_EQ( "b187541bdcc89843d0a25a3761f344c358f3518a", sitk::Hash( out )) << " Procedural Interface 1 identity transform.";
+
+  // additional parameter reference image
+   out = sitk::Resample( img,
+                         img,
+                         xf,
+                         sitk::sitkNearestNeighbor );
+  EXPECT_EQ( "b187541bdcc89843d0a25a3761f344c358f3518a", sitk::Hash( out )) << " Procedural Interface 2 identity transform.";
+
+  // manual specification of output domain
+ out = sitk::Resample( img,
+                       img.GetSize(),
+                       xf,
+                       sitk::sitkNearestNeighbor,
+                       img.GetOrigin(),
+                       img.GetSpacing(),
+                       img.GetDirection() );
+  EXPECT_EQ( "b187541bdcc89843d0a25a3761f344c358f3518a", sitk::Hash( out )) << " Procedural Interface 3 identity transform.";
+}
+
+
+TEST(BasicFilters,OtsuThreshold_CheckNamesInputCompatibility)
+{
+  namespace sitk = itk::simple;
+
+  sitk::Image input(10,10,sitk::sitkFloat32);
+  sitk::Image mask1(10,10,10,sitk::sitkUInt8);
+  sitk::Image mask2(11,10,sitk::sitkUInt8);
+
+  // check that if the dimension or size does not match an exception
+  // is thrown.
+  EXPECT_THROW( sitk::OtsuThreshold(input, mask1), sitk::GenericException );
+  EXPECT_THROW( sitk::OtsuThreshold(input, mask2), sitk::GenericException );
+}
diff --git a/Testing/Unit/sitkCommonTests.cxx b/Testing/Unit/sitkCommonTests.cxx
new file mode 100644
index 0000000..b2dfd32
--- /dev/null
+++ b/Testing/Unit/sitkCommonTests.cxx
@@ -0,0 +1,668 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include <SimpleITKTestHarness.h>
+
+#include <sitkConditional.h>
+#include <sitkCommand.h>
+#include <sitkFunctionCommand.h>
+#include <sitkCastImageFilter.h>
+
+#include <sitkKernel.h>
+
+namespace nsstd = itk::simple::nsstd;
+
+TEST( ConditionalTest, ConditionalTest1 ) {
+
+  // a quick check to make sure the conditional works
+  typedef itk::simple::Conditional<true, int, float>::Type IntType;
+  typedef itk::simple::Conditional<false, int, float>::Type FloatType;
+
+
+  EXPECT_EQ ( typeid( IntType ).name(), typeid( int ).name() );
+  EXPECT_EQ ( typeid( FloatType ).name(), typeid( float ).name() );
+
+  return;
+
+}
+
+
+TEST( ProcessObject, GlobalTolerance ) {
+  // basic coverage test of setting and getting
+
+  namespace sitk = itk::simple;
+
+  EXPECT_EQ( sitk::ProcessObject::GetGlobalDefaultCoordinateTolerance(), 1e-6 );
+  EXPECT_EQ( sitk::ProcessObject::GetGlobalDefaultDirectionTolerance(), 1e-6 );
+
+  sitk::ProcessObject::SetGlobalDefaultCoordinateTolerance( 1e-5 );
+  EXPECT_EQ( sitk::ProcessObject::GetGlobalDefaultCoordinateTolerance(), 1e-5 );
+  EXPECT_EQ( sitk::ProcessObject::GetGlobalDefaultDirectionTolerance(), 1e-6 );
+
+  sitk::ProcessObject::SetGlobalDefaultDirectionTolerance( 1e-4);
+  EXPECT_EQ( sitk::ProcessObject::GetGlobalDefaultCoordinateTolerance(), 1e-5 );
+  EXPECT_EQ( sitk::ProcessObject::GetGlobalDefaultDirectionTolerance(), 1e-4 );
+
+}
+
+TEST( ProcessObject, GlobalWarning ) {
+  // Basic coverage test of setting and getting. Need separate
+  // specific check for propagation of warning to ITK.
+
+  namespace sitk = itk::simple;
+
+  EXPECT_TRUE( sitk::ProcessObject::GetGlobalWarningDisplay() );
+
+  sitk::ProcessObject::GlobalWarningDisplayOff();
+  EXPECT_FALSE( sitk::ProcessObject::GetGlobalWarningDisplay() );
+
+  sitk::ProcessObject::GlobalWarningDisplayOn();
+  EXPECT_TRUE( sitk::ProcessObject::GetGlobalWarningDisplay() );
+
+  sitk::ProcessObject::SetGlobalWarningDisplay(false);
+  EXPECT_FALSE( sitk::ProcessObject::GetGlobalWarningDisplay() );
+
+}
+
+
+TEST( ProcessObject, Command_Register ) {
+  // Test the references between Process Objects and command.
+  // Try to be mean and break stuff
+
+  namespace sitk = itk::simple;
+
+  // Case 0a: stack,  command first
+  {
+  sitk::Command cmd;
+  sitk::CastImageFilter po1;
+  po1.AddCommand(sitk::sitkAnyEvent, cmd);
+  EXPECT_TRUE(po1.HasCommand(sitk::sitkAnyEvent));
+  }
+
+  // Case 0b: stack, process first
+  {
+  sitk::CastImageFilter po1;
+  sitk::Command cmd;
+  po1.AddCommand(sitk::sitkAnyEvent, cmd);
+  EXPECT_TRUE(po1.HasCommand(sitk::sitkAnyEvent));
+  }
+
+  // Case 1a: single command, command deleted first
+  {
+  nsstd::auto_ptr<sitk::CastImageFilter> po1(new sitk::CastImageFilter());
+  nsstd::auto_ptr<sitk::Command> cmd(new sitk::Command());
+  po1->AddCommand(sitk::sitkAnyEvent, *cmd);
+
+  EXPECT_TRUE(po1->HasCommand(sitk::sitkAnyEvent));
+  cmd.reset();
+  EXPECT_FALSE(po1->HasCommand(sitk::sitkAnyEvent));
+  }
+
+  // Case 1b: single command, process deleted first
+  {
+  nsstd::auto_ptr<sitk::CastImageFilter> po1( new sitk::CastImageFilter());
+  nsstd::auto_ptr<sitk::Command> cmd(new sitk::Command());
+  po1->AddCommand(sitk::sitkAnyEvent, *cmd);
+  po1.reset();
+  }
+
+  // Case 2a: single command, multiple processes, command deleted first
+  {
+  nsstd::auto_ptr<sitk::CastImageFilter> po1(new sitk::CastImageFilter());
+  nsstd::auto_ptr<sitk::CastImageFilter> po2(new sitk::CastImageFilter());
+  nsstd::auto_ptr<sitk::CastImageFilter> po3(new sitk::CastImageFilter());
+
+  nsstd::auto_ptr<sitk::Command> cmd(new sitk::Command());
+  po1->AddCommand(sitk::sitkAnyEvent, *cmd);
+  po2->AddCommand(sitk::sitkStartEvent, *cmd);
+  po3->AddCommand(sitk::sitkEndEvent, *cmd);
+  cmd.reset();
+  }
+
+  // Case 2b: single command, multiple processes, processes mostly deleted first
+  {
+  nsstd::auto_ptr<sitk::CastImageFilter> po1(new sitk::CastImageFilter());
+  nsstd::auto_ptr<sitk::CastImageFilter> po2(new sitk::CastImageFilter());
+  nsstd::auto_ptr<sitk::CastImageFilter> po3(new sitk::CastImageFilter());
+
+  nsstd::auto_ptr<sitk::Command> cmd(new sitk::Command());
+  po1->AddCommand(sitk::sitkAnyEvent, *cmd);
+  po2->AddCommand(sitk::sitkStartEvent, *cmd);
+  po3->AddCommand(sitk::sitkEndEvent, *cmd);
+
+  EXPECT_TRUE(po1->HasCommand(sitk::sitkAnyEvent));
+  EXPECT_TRUE(po2->HasCommand(sitk::sitkStartEvent));
+  EXPECT_TRUE(po3->HasCommand(sitk::sitkEndEvent));
+
+  po1.reset();
+  EXPECT_TRUE(po2->HasCommand(sitk::sitkStartEvent));
+  EXPECT_TRUE(po3->HasCommand(sitk::sitkEndEvent));
+  po2.reset();
+  EXPECT_TRUE(po3->HasCommand(sitk::sitkEndEvent));
+  cmd.reset();
+  EXPECT_FALSE(po3->HasCommand(sitk::sitkEndEvent));
+  }
+
+  // Case 3a: multiple commands, command deleted mostly first
+  {
+  nsstd::auto_ptr<sitk::CastImageFilter> po1(new sitk::CastImageFilter());
+  nsstd::auto_ptr<sitk::Command> cmd1(new sitk::Command());
+  nsstd::auto_ptr<sitk::Command> cmd2(new sitk::Command());
+  nsstd::auto_ptr<sitk::Command> cmd3(new sitk::Command());
+
+  po1->AddCommand(sitk::sitkAnyEvent, *cmd1);
+  po1->AddCommand(sitk::sitkStartEvent, *cmd2);
+  po1->AddCommand(sitk::sitkEndEvent, *cmd3);
+
+  EXPECT_TRUE(po1->HasCommand(sitk::sitkAnyEvent));
+  EXPECT_TRUE(po1->HasCommand(sitk::sitkStartEvent));
+  EXPECT_TRUE(po1->HasCommand(sitk::sitkEndEvent));
+
+  cmd1.reset();
+  EXPECT_FALSE(po1->HasCommand(sitk::sitkAnyEvent));
+  EXPECT_TRUE(po1->HasCommand(sitk::sitkStartEvent));
+  EXPECT_TRUE(po1->HasCommand(sitk::sitkEndEvent));
+  cmd2.reset();
+  EXPECT_FALSE(po1->HasCommand(sitk::sitkAnyEvent));
+  EXPECT_FALSE(po1->HasCommand(sitk::sitkStartEvent));
+  EXPECT_TRUE(po1->HasCommand(sitk::sitkEndEvent));
+  po1.reset();
+  }
+
+  // Case 3b: multiple commands, process object deleted first
+  {
+  nsstd::auto_ptr<sitk::CastImageFilter> po1(new sitk::CastImageFilter());
+  nsstd::auto_ptr<sitk::Command> cmd1(new sitk::Command());
+  nsstd::auto_ptr<sitk::Command> cmd2(new sitk::Command());
+  nsstd::auto_ptr<sitk::Command> cmd3(new sitk::Command());
+  po1->AddCommand(sitk::sitkAnyEvent, *cmd1);
+  po1->AddCommand(sitk::sitkStartEvent, *cmd2);
+  po1->AddCommand(sitk::sitkEndEvent, *cmd3);
+  po1.reset();
+
+  }
+
+
+}
+
+TEST( ProcessObject, Command_Add ) {
+  // Add command for events and verifies the state
+
+  namespace sitk = itk::simple;
+
+  sitk::CastImageFilter po1;
+  sitk::Command cmd;
+
+  // check initial state
+  EXPECT_FALSE(po1.HasCommand(sitk::sitkAnyEvent));
+  EXPECT_FALSE(po1.HasCommand(sitk::sitkAbortEvent));
+  EXPECT_FALSE(po1.HasCommand(sitk::sitkDeleteEvent));
+  EXPECT_FALSE(po1.HasCommand(sitk::sitkEndEvent));
+  EXPECT_FALSE(po1.HasCommand(sitk::sitkIterationEvent));
+  EXPECT_FALSE(po1.HasCommand(sitk::sitkProgressEvent));
+  EXPECT_FALSE(po1.HasCommand(sitk::sitkStartEvent));
+  EXPECT_FALSE(po1.HasCommand(sitk::sitkUserEvent));
+  EXPECT_FALSE(po1.HasCommand(sitk::sitkMultiResolutionIterationEvent));
+
+  po1.AddCommand(sitk::sitkAnyEvent, cmd);
+  EXPECT_TRUE(po1.HasCommand(sitk::sitkAnyEvent));
+  EXPECT_FALSE(po1.HasCommand(sitk::sitkAbortEvent));
+  EXPECT_FALSE(po1.HasCommand(sitk::sitkDeleteEvent));
+  EXPECT_FALSE(po1.HasCommand(sitk::sitkEndEvent));
+  EXPECT_FALSE(po1.HasCommand(sitk::sitkIterationEvent));
+  EXPECT_FALSE(po1.HasCommand(sitk::sitkProgressEvent));
+  EXPECT_FALSE(po1.HasCommand(sitk::sitkStartEvent));
+  EXPECT_FALSE(po1.HasCommand(sitk::sitkUserEvent));
+  EXPECT_FALSE(po1.HasCommand(sitk::sitkMultiResolutionIterationEvent));
+
+  po1.RemoveAllCommands();
+  EXPECT_FALSE(po1.HasCommand(sitk::sitkAnyEvent));
+  EXPECT_FALSE(po1.HasCommand(sitk::sitkAbortEvent));
+  EXPECT_FALSE(po1.HasCommand(sitk::sitkDeleteEvent));
+  EXPECT_FALSE(po1.HasCommand(sitk::sitkEndEvent));
+  EXPECT_FALSE(po1.HasCommand(sitk::sitkIterationEvent));
+  EXPECT_FALSE(po1.HasCommand(sitk::sitkProgressEvent));
+  EXPECT_FALSE(po1.HasCommand(sitk::sitkStartEvent));
+  EXPECT_FALSE(po1.HasCommand(sitk::sitkUserEvent));
+  EXPECT_FALSE(po1.HasCommand(sitk::sitkMultiResolutionIterationEvent));
+
+  po1.AddCommand(sitk::sitkAnyEvent, cmd);
+  po1.AddCommand(sitk::sitkAbortEvent, cmd);
+  po1.AddCommand(sitk::sitkDeleteEvent, cmd);
+  po1.AddCommand(sitk::sitkEndEvent, cmd);
+  po1.AddCommand(sitk::sitkIterationEvent, cmd);
+  po1.AddCommand(sitk::sitkProgressEvent, cmd);
+  po1.AddCommand(sitk::sitkStartEvent, cmd);
+  po1.AddCommand(sitk::sitkUserEvent, cmd);
+  po1.AddCommand(sitk::sitkMultiResolutionIterationEvent, cmd);
+
+  EXPECT_TRUE(po1.HasCommand(sitk::sitkAnyEvent));
+  EXPECT_TRUE(po1.HasCommand(sitk::sitkAbortEvent));
+  EXPECT_TRUE(po1.HasCommand(sitk::sitkDeleteEvent));
+  EXPECT_TRUE(po1.HasCommand(sitk::sitkEndEvent));
+  EXPECT_TRUE(po1.HasCommand(sitk::sitkIterationEvent));
+  EXPECT_TRUE(po1.HasCommand(sitk::sitkProgressEvent));
+  EXPECT_TRUE(po1.HasCommand(sitk::sitkStartEvent));
+  EXPECT_TRUE(po1.HasCommand(sitk::sitkUserEvent));
+  EXPECT_TRUE(po1.HasCommand(sitk::sitkMultiResolutionIterationEvent));
+}
+
+TEST( ProcessObject, DeleteCommandActiveProcess )
+{
+  // Test the case of deleting the command while the process is active.
+  namespace sitk = itk::simple;
+
+  class DeleteCommandAtCommand
+  : public ProcessObjectCommand
+  {
+  public:
+    DeleteCommandAtCommand(itk::simple::ProcessObject &po, float abortAt, Command *cmd)
+      : ProcessObjectCommand(po),
+        m_AbortAt(abortAt),
+        m_Cmd(cmd)
+      {
+      }
+
+    virtual void Execute( )
+      {
+        if ( m_Process.GetProgress() >= m_AbortAt )
+          delete m_Cmd;
+      }
+
+    float m_AbortAt;
+    Command *m_Cmd;
+  };
+
+  sitk::CastImageFilter po;
+  sitk::Image img(100,100,100, sitk::sitkUInt16);
+
+  sitk::Command *cmd1 = new sitk::Command();
+  DeleteCommandAtCommand cmd2(po, .01f, cmd1);
+
+  po.AddCommand(sitk::sitkAnyEvent, *cmd1);
+  po.AddCommand(sitk::sitkProgressEvent, cmd2);
+
+
+  ASSERT_NO_THROW(po.Execute(img)) << "Exception with deleting command";
+
+  EXPECT_FALSE(po.HasCommand(sitk::sitkAnyEvent));
+  EXPECT_TRUE(po.HasCommand(sitk::sitkProgressEvent));
+}
+
+TEST( ProcessObject, RemoveAllCommandsActiveProcess )
+{
+  // Test the case of deleting the command while the process is active.
+  namespace sitk = itk::simple;
+
+  class RemoveAllCommandsAtCommand
+  : public ProcessObjectCommand
+  {
+  public:
+    RemoveAllCommandsAtCommand(itk::simple::ProcessObject &po, float abortAt )
+      : ProcessObjectCommand(po),
+        m_AbortAt(abortAt)
+      {
+      }
+
+    virtual void Execute( )
+      {
+        if ( m_Process.GetProgress() >= m_AbortAt )
+          {
+          std::cout << "Removing All Commands" << std::endl;
+          m_Process.RemoveAllCommands();
+          std::cout << "Done" << std::endl;
+          }
+      }
+
+    float m_AbortAt;
+  };
+
+  sitk::CastImageFilter po;
+  sitk::Image img(100,100,100, sitk::sitkUInt16);
+
+  sitk::Command cmd1;
+  RemoveAllCommandsAtCommand cmd2(po, .01f);
+
+  po.AddCommand(sitk::sitkAnyEvent, cmd1);
+  po.AddCommand(sitk::sitkProgressEvent, cmd2);
+
+
+  ASSERT_NO_THROW(po.Execute(img)) << "Exception with remove all commands";
+
+  EXPECT_FALSE(po.HasCommand(sitk::sitkAnyEvent));
+  EXPECT_FALSE(po.HasCommand(sitk::sitkProgressEvent));
+}
+
+
+TEST( Event, Test1 )
+{
+  // Test print of EventEnum with output operator
+  namespace sitk = itk::simple;
+
+  std::stringstream ss;
+  ss << sitk::sitkAnyEvent;
+  EXPECT_EQ("AnyEvent", ss.str());
+  ss.str("");
+  ss << sitk::sitkAbortEvent;
+  EXPECT_EQ("AbortEvent", ss.str());
+  ss.str("");
+  ss << sitk::sitkDeleteEvent;
+  EXPECT_EQ("DeleteEvent", ss.str());
+  ss.str("");
+  ss << sitk::sitkEndEvent;
+  EXPECT_EQ("EndEvent", ss.str());
+  ss.str("");
+  ss << sitk::sitkIterationEvent;
+  EXPECT_EQ("IterationEvent", ss.str());
+  ss.str("");
+  ss << sitk::sitkProgressEvent;
+  EXPECT_EQ("ProgressEvent", ss.str());
+  ss.str("");
+  ss << sitk::sitkStartEvent;
+  EXPECT_EQ("StartEvent", ss.str());
+  ss.str("");
+  ss << sitk::sitkUserEvent;
+  EXPECT_EQ("UserEvent", ss.str());
+  ss.str("");
+  ss << sitk::sitkMultiResolutionIterationEvent;
+  EXPECT_EQ("MultiResolutionIterationEvent", ss.str());
+}
+
+
+TEST( Command, Test1 ) {
+  // Basic test.
+  namespace sitk = itk::simple;
+
+  sitk::Command cmd1;
+  // not copy construct able
+  //sitk::Command cmd2(cmd1);
+
+  // not assignable
+  //cmd1 = cmd1;
+
+  // Does nothing
+  cmd1.Execute();
+
+  EXPECT_EQ( "Command", cmd1.GetName() );
+  cmd1.SetName("SomeName");
+  EXPECT_EQ( "SomeName", cmd1.GetName() );
+
+}
+
+
+TEST( ProcessObject, Command_Ownership ) {
+  // Test the functionality of the ProcessObject Owning the Command
+  namespace sitk = itk::simple;
+
+  static int destroyedCount = 0;
+
+  class HeapCommand
+    : public sitk::Command
+  {
+  public:
+    HeapCommand() : v(false) {};
+    ~HeapCommand() {++destroyedCount;}
+    virtual void Execute() {v=true;}
+    using Command::SetOwnedByProcessObjects;
+    using Command::GetOwnedByProcessObjects;
+    using Command::OwnedByProcessObjectsOn;
+    using Command::OwnedByProcessObjectsOff;
+
+    bool v;
+  };
+
+  {
+  // test set/get/on/off
+  HeapCommand cmd;
+  EXPECT_FALSE(cmd.GetOwnedByProcessObjects());
+  cmd.SetOwnedByProcessObjects(true);
+  EXPECT_TRUE(cmd.GetOwnedByProcessObjects());
+  cmd.OwnedByProcessObjectsOff();
+  EXPECT_FALSE(cmd.GetOwnedByProcessObjects());
+  cmd.OwnedByProcessObjectsOn();
+  EXPECT_TRUE(cmd.GetOwnedByProcessObjects());
+
+  HeapCommand *cmd1 = new HeapCommand();
+  cmd1->OwnedByProcessObjectsOn();
+  EXPECT_EQ(0,destroyedCount);
+  delete cmd1;
+  EXPECT_EQ(1,destroyedCount);
+  }
+  EXPECT_EQ(2,destroyedCount);
+
+  // case 1
+  // single po, multiple cmds
+  {
+  sitk::CastImageFilter po;
+  sitk::Image img(5,5, sitk::sitkUInt16);
+
+  HeapCommand *cmd2 = new HeapCommand();
+  cmd2->OwnedByProcessObjectsOn();
+  po.AddCommand(sitk::sitkAnyEvent, *cmd2);
+
+  EXPECT_FALSE(cmd2->v);
+  EXPECT_NO_THROW( po.Execute(img) );
+  EXPECT_TRUE(cmd2->v);
+  cmd2->v = false;
+
+  HeapCommand *cmd3 = new HeapCommand();
+  cmd3->OwnedByProcessObjectsOn();
+  po.AddCommand(sitk::sitkAnyEvent, *cmd3);
+
+  EXPECT_FALSE(cmd2->v);
+  EXPECT_FALSE(cmd3->v);
+  EXPECT_NO_THROW( po.Execute(img) );
+  EXPECT_TRUE(cmd2->v);
+  EXPECT_TRUE(cmd3->v);
+  cmd2->v = false;
+
+  delete cmd3;
+  EXPECT_EQ(3,destroyedCount);
+  }
+  EXPECT_EQ(4,destroyedCount);
+
+  // case 2
+  // cmd registered to multiple PO
+  {
+  nsstd::auto_ptr<sitk::CastImageFilter> po1(new sitk::CastImageFilter());
+  nsstd::auto_ptr<sitk::CastImageFilter> po2(new sitk::CastImageFilter());
+
+  HeapCommand *cmd = new HeapCommand();
+  cmd->OwnedByProcessObjectsOn();
+
+  po1->AddCommand(sitk::sitkAnyEvent, *cmd);
+  po1->AddCommand(sitk::sitkStartEvent, *cmd);
+
+  EXPECT_TRUE(po1->HasCommand(sitk::sitkAnyEvent));
+  EXPECT_TRUE(po1->HasCommand(sitk::sitkStartEvent));
+
+  po2->AddCommand(sitk::sitkAnyEvent, *cmd);
+  EXPECT_TRUE(po2->HasCommand(sitk::sitkAnyEvent));
+
+
+  po2.reset();
+
+  EXPECT_TRUE(po1->HasCommand(sitk::sitkAnyEvent));
+  EXPECT_TRUE(po1->HasCommand(sitk::sitkStartEvent));
+  EXPECT_EQ(4,destroyedCount);
+  }
+  EXPECT_EQ(5,destroyedCount);
+
+
+}
+
+TEST( Command, Test2 ) {
+  // Check basic name functionality
+  namespace sitk = itk::simple;
+
+  sitk::Command cmd1;
+
+
+}
+
+TEST( FunctionCommand, Test1 ) {
+  // Basic test.
+  namespace sitk = itk::simple;
+
+  sitk::FunctionCommand cmd1;
+  // not copy construct able
+  //sitk::Command cmd2(cmd1);
+
+  // not assignable
+  //cmd1 = cmd1;
+
+  // Does nothing
+  cmd1.Execute();
+
+  EXPECT_EQ( "FunctionCommand", cmd1.GetName() );
+  cmd1.SetName("AnotherName");
+  EXPECT_EQ( "AnotherName", cmd1.GetName() );
+}
+
+namespace
+{
+
+struct MemberFunctionCommandTest
+{
+  MemberFunctionCommandTest():v(0){}
+
+  void DoSomething() {v=99;}
+  int v;
+};
+
+int gValue = 0;
+void functionCommand(void)
+{
+  gValue = 98;
+}
+
+void functionCommandWithClientData(void *_data)
+{
+  int &data = *reinterpret_cast<int*>(_data);
+  data = 97;
+}
+
+}
+
+TEST( FunctionCommand, Test2 ) {
+  // check execution of different callbacks types
+  namespace sitk = itk::simple;
+
+  MemberFunctionCommandTest mfct;
+  EXPECT_EQ(0,mfct.v);
+
+  sitk::FunctionCommand cmd1;
+  cmd1.SetCallbackFunction( &mfct, &MemberFunctionCommandTest::DoSomething );
+  cmd1.Execute();
+  EXPECT_EQ(99,mfct.v);
+  mfct.v = 0;
+
+  EXPECT_EQ(0,gValue);
+  cmd1.SetCallbackFunction(functionCommand);
+  cmd1.Execute();
+  EXPECT_EQ(98,gValue);
+  EXPECT_EQ(0,mfct.v);
+
+
+  cmd1.SetCallbackFunction(functionCommandWithClientData, &gValue);
+  cmd1.Execute();
+  EXPECT_EQ(97,gValue);
+  EXPECT_EQ(0,mfct.v);
+}
+
+TEST( Interpolator, Test1 )
+{
+  // Test print of InterpolatorEnum with output operator
+  namespace sitk = itk::simple;
+
+  std::stringstream ss;
+  ss << sitk::sitkNearestNeighbor;
+  EXPECT_EQ("NearestNeighbor", ss.str());
+  ss.str("");
+  ss << sitk::sitkLinear;
+  EXPECT_EQ("Linear", ss.str());
+  ss.str("");
+  ss << sitk::sitkBSpline;
+  EXPECT_EQ("BSpline", ss.str());
+  ss.str("");
+  ss << sitk::sitkGaussian;
+  EXPECT_EQ("Gaussian", ss.str());
+  ss.str("");
+  ss << sitk::sitkLabelGaussian;
+  EXPECT_EQ("LabelGaussian", ss.str());
+  ss.str("");
+  ss << sitk::sitkHammingWindowedSinc;
+  EXPECT_EQ("HammingWindowedSinc", ss.str());
+  ss.str("");
+  ss << sitk::sitkCosineWindowedSinc;
+  EXPECT_EQ("CosineWindowedSinc", ss.str());
+  ss.str("");
+  ss << sitk::sitkWelchWindowedSinc;
+  EXPECT_EQ("WelchWindowedSinc", ss.str());
+  ss.str("");
+  ss << sitk::sitkLanczosWindowedSinc;
+  EXPECT_EQ("LanczosWindowedSinc", ss.str());
+  ss.str("");
+  ss << sitk::sitkBlackmanWindowedSinc;
+  EXPECT_EQ("BlackmanWindowedSinc", ss.str());
+
+}
+
+
+TEST( Kernel, Test1 )
+{
+  // Test print of KernelEnum with output operator
+  namespace sitk = itk::simple;
+
+  std::stringstream ss;
+  ss << sitk::sitkAnnulus;
+  EXPECT_EQ("Annulus", ss.str());
+  ss.str("");
+  ss << sitk::sitkBall;
+  EXPECT_EQ("Ball", ss.str());
+  ss.str("");
+  ss << sitk::sitkBox;
+  EXPECT_EQ("Box", ss.str());
+  ss.str("");
+  ss << sitk::sitkCross;
+  EXPECT_EQ("Cross", ss.str());
+  ss.str("");
+  ss << sitk::sitkPolygon3;
+  EXPECT_EQ("Polygon3", ss.str());
+  ss.str("");
+  ss << sitk::sitkPolygon4;
+  EXPECT_EQ("Polygon4", ss.str());
+  ss.str("");
+  ss << sitk::sitkPolygon4;
+  EXPECT_EQ("Polygon4", ss.str());
+  ss.str("");
+  ss << sitk::sitkPolygon5;
+  EXPECT_EQ("Polygon5", ss.str());
+  ss.str("");
+  ss << sitk::sitkPolygon6;
+  EXPECT_EQ("Polygon6", ss.str());
+  ss.str("");
+  ss << sitk::sitkPolygon7;
+  EXPECT_EQ("Polygon7", ss.str());
+  ss.str("");
+  ss << sitk::sitkPolygon8;
+  EXPECT_EQ("Polygon8", ss.str());
+  ss.str("");
+  ss << sitk::sitkPolygon9;
+  EXPECT_EQ("Polygon9", ss.str());
+
+}
diff --git a/Testing/Unit/sitkCompareDriver.cxx b/Testing/Unit/sitkCompareDriver.cxx
new file mode 100644
index 0000000..137ce6a
--- /dev/null
+++ b/Testing/Unit/sitkCompareDriver.cxx
@@ -0,0 +1,326 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+#include "SimpleITK.h"
+#include "SimpleITKTestHarness.h"
+
+#include "sitkTransformCompare.h"
+
+#include "itksys/Process.h"
+#include <iostream>
+
+DataFinder dataFinder;
+
+namespace sitk = itk::simple;
+
+struct TransformCompareType
+{
+  char * transform;
+  char * displacement;
+  float tolerance;
+};
+typedef std::vector< char * > ArgumentsList;
+typedef char ** ArgumentStringType;
+
+// A structure to hold regression test parameters
+typedef struct
+{
+  std::vector< TransformCompareType > transformTestList;
+  double intensityTolerance;
+  unsigned int numberOfPixelsTolerance;
+  unsigned int radiusTolerance;
+} RegressionTestParameters;
+
+RegressionTestParameters regressionTestParameters;
+
+
+
+struct ProcessedOutputType
+{
+  bool externalProcessMustBeCalled;
+
+  ArgumentsList args;
+};
+
+void usage()
+{
+  std::cerr << "usage: sitkCompareDriver [options] -- prg [args]" << std::endl;
+  std::cerr << "       sitkCompareDriver [options]" << std::endl;
+  std::cerr << std::endl;
+  std::cerr << "sitkTestDriver run a test program and compare the images or transforms" << std::endl;
+  std::cerr << "produced." << std::endl;
+  std::cerr << std::endl;
+  std::cerr << "Options:" << std::endl;
+  std::cerr << "  --compareTransform TRANSFORM DISPLACEMENT [tolerance]" << std::endl;
+  std::cerr << "      Compare a test TRANSFORM file to a displacement field image." << std::endl;
+  std::cerr << "      The displacement of the TRANSFORM is sampled onto the domain of the DISPLACEMENT image." << std::endl;
+  std::cerr << "       The optional tolerance is a root mean squares of the difference between the displacement fields." << std::endl;
+  std::cerr << std::endl;
+  std::cerr << "  --full-output" << std::endl;
+  std::cerr << "      Causes the full output of the test to be passed to cdash." << std::endl;
+  std::cerr << std::endl;
+  std::cerr << "  --" << std::endl;
+  std::cerr << "      The options after -- are not interpreted by this program and passed" << std::endl;
+  std::cerr << "      directly to the test program." << std::endl;
+  std::cerr << std::endl;
+  std::cerr << "  --help" << std::endl;
+  std::cerr << "      Display this message and exit." << std::endl;
+  std::cerr << std::endl;
+}
+
+
+int TestDriverInvokeProcess(  const ArgumentsList & args )
+{
+  // a ITK_NULLPTR is required at the end of the table
+  char ** argv = new char *[args.size() + 1];
+  for ( unsigned int i = 0; i < args.size(); i++ )
+    {
+    argv[i] = args[i];
+    }
+  argv[args.size()] = SITK_NULLPTR;
+
+  itksysProcess *process = itksysProcess_New();
+  itksysProcess_SetCommand(process, argv);
+  itksysProcess_SetPipeShared(process, itksysProcess_Pipe_STDOUT, true);
+  itksysProcess_SetPipeShared(process, itksysProcess_Pipe_STDERR, true);
+  itksysProcess_Execute(process);
+  itksysProcess_WaitForExit(process, SITK_NULLPTR);
+
+  delete[] argv;
+
+  int state = itksysProcess_GetState(process);
+  switch( state )
+    {
+    case itksysProcess_State_Error:
+      {
+      std::cerr << "sitkCompareDriver: Process error: " << itksysProcess_GetErrorString(process) << std::endl;
+      itksysProcess_Delete(process);
+      return 1;
+      }
+    case itksysProcess_State_Exception:
+      {
+      std::cerr << "sitkCompareDriver: Process exception: " << itksysProcess_GetExceptionString(process) << std::endl;
+      itksysProcess_Delete(process);
+      return 1;
+      }
+    case itksysProcess_State_Executing:
+      {
+      // this is not a possible state after itksysProcess_WaitForExit
+      std::cerr << "sitkCompareDriver: Internal error: process can't be in Executing State." << std::endl;
+      itksysProcess_Delete(process);
+      return 1;
+      }
+    case itksysProcess_State_Exited:
+      {
+      // this is the normal case - it is treated later
+      break;
+      }
+    case itksysProcess_State_Expired:
+      {
+      // this is not a possible state after itksysProcess_WaitForExit
+      std::cerr << "sitkCompareDriver: Internal error: process can't be in Expired State." << std::endl;
+      itksysProcess_Delete(process);
+      return 1;
+      }
+    case itksysProcess_State_Killed:
+      {
+      std::cerr << "sitkCompareDriver: The process has been killed." << std::endl;
+      itksysProcess_Delete(process);
+      return 1;
+      }
+    case itksysProcess_State_Disowned:
+      {
+      std::cerr << "sitkCompareDriver: Process disowned." << std::endl;
+      itksysProcess_Delete(process);
+      return 1;
+      }
+    default:
+      {
+      // this is not a possible state after itksysProcess_WaitForExit
+      std::cerr << "sitkCompareDriver: Internal error: unknown State." << std::endl;
+      itksysProcess_Delete(process);
+      return 1;
+      }
+    }
+
+  int retCode = itksysProcess_GetExitValue(process);
+  if ( retCode != 0 )
+    {
+    std::cerr << "sitkCompareDriver: Process exited with return value: " << retCode << std::endl;
+    }
+  itksysProcess_Delete(process);
+return retCode;
+}
+
+
+
+int ProcessArguments(int *ac, ArgumentStringType *av, ProcessedOutputType * processedOutput = SITK_NULLPTR )
+{
+
+  regressionTestParameters.intensityTolerance  = 2.0;
+  regressionTestParameters.numberOfPixelsTolerance = 0;
+  regressionTestParameters.radiusTolerance = 0;
+
+  if( processedOutput )
+    {
+    processedOutput->externalProcessMustBeCalled = false;
+    }
+
+  // parse the command line
+  int  i = 1;
+  bool skip = false;
+  while ( i < *ac )
+  {
+     if ( !skip && strcmp((*av)[i], "--") == 0 )
+      {
+      skip = true;
+      i += 1;
+      }
+    else if ( !skip && strcmp((*av)[i], "--help") == 0 )
+      {
+      usage();
+      return 1;
+      }
+    else if ( !skip && strcmp((*av)[i], "--compareTransform") == 0 )
+      {
+      if ( i + 2 >= *ac )
+        {
+        usage();
+        return 1;
+        }
+      char * transform = (*av)[i + 1];
+      char * displacement = (*av)[i + 2];
+      (*av) += 3;
+      *ac -= 3;
+
+      float tolerance = 0.0;
+      if (i  < *ac && strncmp((*av)[i], "--", 2) != 0)
+        {
+        const float f = atof( (*av)[i] );
+
+        if ( f == 0.0 )
+          usage();
+
+        tolerance = f;
+        ++(*av);
+        --(*ac);
+        }
+
+      TransformCompareType c = {transform, displacement, tolerance};
+      regressionTestParameters.transformTestList.push_back( c );
+      }
+    else if ( !skip && strcmp((*av)[i], "--full-output") == 0 )
+      {
+      // emit the string to tell ctest that the full output should be
+      // passed to cdash.
+      std::cout << "CTEST_FULL_OUTPUT" << std::endl;
+      (*av) += 1;
+      *ac -= 1;
+      }
+    else if ( !skip && strcmp((*av)[i], "--no-process") == 0 )
+      {
+      // The test driver needs to invoke another executable
+      // For example, the python interpreter to run Wrapping tests.
+      if( processedOutput )
+        {
+        processedOutput->externalProcessMustBeCalled = false;
+        }
+      (*av) += 1;
+      *ac -= 1;
+      }
+    else if ( skip &&  processedOutput )
+      {
+      processedOutput->externalProcessMustBeCalled = true;
+      processedOutput->args.push_back((*av)[i]);
+      i += 1;
+      }
+    else
+      {
+      std::cerr << "Unhandled argument \"" << (*av)[i] << "\"." << std::endl;
+      usage();
+      return 1;
+      }
+  }
+
+  return 0;
+}
+
+
+
+
+int main(int argc, char *argv[])
+{
+
+  ProcessedOutputType po;
+
+  int result = ProcessArguments(&argc, &argv, &po);
+
+  if( result )
+    {
+    // There was a problem parsing the arguments, so usage has already
+    // been printed, just return
+    return EXIT_FAILURE;
+    }
+
+  if ( po.externalProcessMustBeCalled && po.args.empty() )
+    {
+    usage();
+    return 1;
+    }
+
+  if ( !po.externalProcessMustBeCalled && !po.args.empty() )
+    {
+    std::cerr << "args: " << po.args[0] << std::endl;
+    usage();
+    return 1;
+    }
+
+  if ( !result && po.externalProcessMustBeCalled )
+    {
+    result = TestDriverInvokeProcess( po.args );
+    }
+
+  if( result==0 )
+    {
+
+    // compare transforms
+    for (size_t i = 0; i < regressionTestParameters.transformTestList.size(); ++i )
+      {
+      const char * transformFileName =  regressionTestParameters.transformTestList[i].transform;
+      const char * baselineFileName = regressionTestParameters.transformTestList[i].displacement;
+      const float tolerance = regressionTestParameters.transformTestList[i].tolerance;
+      std::cout << "Reading test transform: \"" <<  transformFileName << "\"..." << std::endl;
+      sitk::Transform transform = sitk::ReadTransform(transformFileName);
+
+      std::cout << "Reading baseline displacement: \"" << baselineFileName << "\"..." << std::endl;
+      sitk::Image baseline = sitk::ReadImage(baselineFileName);
+
+      TransformCompare compare;
+      compare.SetTolerance(tolerance);
+      if (!compare.Compare(transform, baseline))
+        {
+        result += 1;
+        }
+      }
+
+
+    }
+
+
+  return result;
+}
diff --git a/Testing/Unit/sitkExceptionsTests.cxx b/Testing/Unit/sitkExceptionsTests.cxx
new file mode 100644
index 0000000..68a80e5
--- /dev/null
+++ b/Testing/Unit/sitkExceptionsTests.cxx
@@ -0,0 +1,108 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include "sitkMacro.h"
+
+#include "SimpleITKTestHarness.h"
+
+static const char * DESCRIPTION = "We expect this exception";
+
+class sitkExceptionsTest
+  : public ::testing::Test
+{
+public:
+
+  void ThrowsitkException( void )
+  {
+    sitkExceptionMacro( << DESCRIPTION );
+  }
+};
+
+TEST_F(sitkExceptionsTest, Test1) {
+  ASSERT_THROW( ThrowsitkException(), ::itk::simple::GenericException );
+
+  try
+    {
+    ThrowsitkException();
+    }
+  catch ( ::itk::simple::GenericException &e )
+    {
+    // could do some nifty testing here too
+    EXPECT_EQ ( e.GetNameOfClass(), std::string("GenericException") );
+    //EXPECT_NE ( std::string ( e.GetLocation() ),  "" ); HACK FIXME
+    // exception revision
+    return;
+    }
+
+  // should gotten that exception
+  FAIL();
+}
+
+TEST_F(sitkExceptionsTest, Test2) {
+
+  // this can only be tested when true, if it was false the file won't compile
+  sitkStaticAssert( true, "this is just a test" );
+
+  SUCCEED();
+}
+
+TEST_F(sitkExceptionsTest, Test3) {
+
+  // This test is designed to improve coverage of the GenericException class
+
+  // Default constructor
+  const itk::simple::GenericException empty;
+  itk::simple::GenericException e0;
+
+
+  itk::simple::GenericException e1( __FILE__, __LINE__ );
+
+  itk::simple::GenericException e2( __FILE__, __LINE__, "testing yet another constructor" );
+
+  // copy constructor
+  itk::simple::GenericException e3( e2 );
+
+
+  // asignment
+  e0 = e2;
+  e0 = e1;
+  e0 = empty;
+
+  // test self assigment too
+  e0 = e0;
+
+
+  EXPECT_TRUE( e1 == e1 );
+  EXPECT_TRUE( empty == empty );
+  EXPECT_FALSE( e2 == e1 );
+
+  EXPECT_NO_THROW( e2.ToString() );
+  EXPECT_NO_THROW( e2.GetLocation() );
+  EXPECT_NO_THROW( e2.GetDescription() );
+  EXPECT_NO_THROW( e2.GetFile() );
+  EXPECT_NO_THROW( e2.GetLine() );
+  EXPECT_NO_THROW( e2.what() );
+
+  // check accessor for empty/null
+  EXPECT_NO_THROW( empty.ToString() );
+  EXPECT_NO_THROW( empty.GetLocation() );
+  EXPECT_NO_THROW( empty.GetDescription() );
+  EXPECT_NO_THROW( empty.GetFile() );
+  EXPECT_NO_THROW( empty.GetLine() );
+  EXPECT_NO_THROW( empty.what() );
+
+}
diff --git a/Testing/Unit/sitkGetArrayViewFromImageTest.py b/Testing/Unit/sitkGetArrayViewFromImageTest.py
new file mode 100644
index 0000000..4abdac3
--- /dev/null
+++ b/Testing/Unit/sitkGetArrayViewFromImageTest.py
@@ -0,0 +1,156 @@
+#==========================================================================
+#
+#   Copyright Insight Software Consortium
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#          http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#==========================================================================*/
+from __future__ import print_function
+import sys
+import unittest
+import datetime as dt
+import timeit
+
+
+import SimpleITK as sitk
+import numpy as np
+
+sizeX = 4
+sizeY = 5
+sizeZ = 3
+newSimpleITKPixelValueInt32 = -3000
+newNumPyElementValueInt32   = 200
+
+
+
+class TestNumpySimpleITKMemoryviewInterface(unittest.TestCase):
+    """ This tests numpy array <-> SimpleITK Image conversion. """
+
+    def setUp(self):
+        pass
+
+    def _helper_check_sitk_to_numpy_type(self, sitkType, numpyType):
+        if sitkType == sitk.sitkUnknown:
+            return
+        image = sitk.Image((9, 10), sitkType, 1)
+        a = sitk.GetArrayViewFromImage(image)
+        self.assertEqual(numpyType, a.dtype)
+        self.assertEqual((10, 9), a.shape)
+
+    def test_type_to_numpy(self):
+        "try all sitk pixel types to convert to NumPy array view"
+
+        self._helper_check_sitk_to_numpy_type(sitk.sitkUInt8, np.uint8)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkUInt16, np.uint16)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkUInt32, np.uint32)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkUInt64, np.uint64)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkInt8, np.int8)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkInt16, np.int16)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkInt32, np.int32)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkInt64, np.int64)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkFloat32, np.float32)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkFloat64, np.float64)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkVectorUInt8, np.uint8)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkVectorInt8, np.int8)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkVectorUInt16, np.uint16)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkVectorInt16, np.int16)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkVectorUInt32, np.uint32)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkVectorInt32, np.int32)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkVectorUInt64, np.uint64)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkVectorInt64, np.int64)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkVectorFloat32, np.float32)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkVectorFloat64, np.float64)
+
+    def test_to_numpy_and_back(self):
+        """Test converting an image to NumPy array view and back"""
+
+        img = sitk.GaussianSource( sitk.sitkFloat32, [100,100], sigma=[10]*3, mean=[50,50] )
+
+        h = sitk.Hash( img )
+
+        img2 = sitk.GetImageFromArray( sitk.GetArrayViewFromImage(img))
+        self.assertEqual( h, sitk.Hash( img2 ))
+
+    def test_vector_image_to_numpy(self):
+        """Test converting back and forth between NumPy array view and SimpleITK
+        images where the SimpleITK image has multiple components and
+        stored as a VectorImage."""
+
+
+        # Check 2D
+        img = sitk.PhysicalPointSource(sitk.sitkVectorFloat32, [3,4])
+        h = sitk.Hash( img )
+
+        nda = sitk.GetArrayViewFromImage(img)
+
+        self.assertEqual(nda.shape, (4,3,2))
+        self.assertEqual(nda[0,0].tolist(), [0,0])
+        self.assertEqual(nda[2,1].tolist(), [1,2])
+        self.assertEqual(nda[0,:,0].tolist(), [0,1,2])
+
+        img2 = sitk.GetImageFromArray(nda, isVector=True)
+        self.assertEqual(h, sitk.Hash(img2))
+
+
+        # check 3D
+        img = sitk.PhysicalPointSource(sitk.sitkVectorFloat32, [3,4,5])
+        h = sitk.Hash(img)
+
+        nda = sitk.GetArrayViewFromImage(img)
+
+        self.assertEqual(nda.shape, (5,4,3,3))
+        self.assertEqual(nda[0,0,0].tolist(), [0,0,0])
+        self.assertEqual(nda[0,0,:,0].tolist(), [0,1,2])
+        self.assertEqual(nda[0,:,1,1].tolist(), [0,1,2,3])
+
+
+        img2 = sitk.GetImageFromArray(nda)
+        self.assertEqual(img2.GetSize(), img.GetSize())
+        self.assertEqual(img2.GetNumberOfComponentsPerPixel(), img.GetNumberOfComponentsPerPixel())
+        self.assertEqual(h, sitk.Hash(img2))
+
+    def test_arrayview_writable(self):
+        """Test correct behavior of writablity to the returned array view."""
+
+        img = sitk.Image((9, 10), sitk.sitkFloat32, 1)
+
+        a = sitk.GetArrayViewFromImage(img)
+
+        with self.assertRaises(ValueError):
+            a.fill(0)
+
+
+    def test_processing_time(self):
+      """Check the processing time the conversions from SimpleITK Image
+         to numpy array (GetArrayViewFromImage) and
+         numpy memoryview (GetArrayViewFromImage)."""
+
+      # Performance test for SimpleITK Image -> NumPy array
+      img = sitk.GaussianSource(sitk.sitkFloat32, [3000,3000], sigma=[10]*3, mean=[50,50])
+
+      print("\nGet NumPy array from 3000x3000 SimpleITK Image")
+      nparray_time_elapsed = min(timeit.repeat(lambda: sitk.GetArrayFromImage(img), repeat=5, number=1))
+      print ("Processing time of GetArrayFromImage (Copy operation)  :: {0} (us)".format(nparray_time_elapsed*1e6))
+
+      npview_time_elapsed = min(timeit.repeat(lambda: sitk.GetArrayViewFromImage(img), repeat=5, number=1))
+      print ("Processing time of GetArrayViewFromImage (Array view)      :: {0} (us)".format(npview_time_elapsed*1e6))
+
+      self.assertTrue( nparray_time_elapsed > npview_time_elapsed)
+
+      # Performance test for NumPy array -> SimpleITK Image
+      Big_nparray = np.zeros((3000,3000), dtype=np.int64);
+
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/Testing/Unit/sitkImage4DTests.cxx b/Testing/Unit/sitkImage4DTests.cxx
new file mode 100644
index 0000000..af6c16a
--- /dev/null
+++ b/Testing/Unit/sitkImage4DTests.cxx
@@ -0,0 +1,582 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include <SimpleITKTestHarness.h>
+
+#include <sitkImageFileReader.h>
+#include <sitkImageFileWriter.h>
+#include <sitkHashImageFilter.h>
+
+#include "sitkAddImageFilter.h"
+#include "sitkSubtractImageFilter.h"
+#include "sitkMultiplyImageFilter.h"
+
+#include "sitkImageOperators.h"
+
+#include "sitkComplexToRealImageFilter.h"
+#include "sitkComplexToImaginaryImageFilter.h"
+#include "sitkRealAndImaginaryToComplexImageFilter.h"
+#include "sitkImportImageFilter.h"
+
+#include "sitkJoinSeriesImageFilter.h"
+#include "sitkExtractImageFilter.h"
+
+#include <itkIntTypes.h>
+
+#include "itkImage.h"
+#include "itkVectorImage.h"
+#include "itkMetaDataObject.h"
+
+namespace nsstd = itk::simple::nsstd;
+
+const double adir[] = { 0.0,  0.0,  0.0, 1.0,
+                       -1.0,  0.0,  0.0, 0.0,
+                        0.0, -1.0,  0.0, 0.0,
+                        0.0,  0.0, -1.0, 0.0 };
+
+using  itk::simple::InstantiatedPixelIDTypeList;
+
+class Image4D : public ::testing::Test {
+public:
+  typedef nsstd::auto_ptr<itk::simple::Image> sitkAutoImagePointer;
+
+  virtual void SetUp() {
+    itk::ImageBase<4>::IndexType index;
+    itk::ImageBase<4>::SizeType size;
+    itk::ImageBase<4>::RegionType region;
+    itk::ImageBase<4>::PointType origin;
+    itk::ImageBase<4>::SpacingType spacing;
+
+    // Create an image
+    for ( int i = 0; i < 4; i++ )
+    {
+      index[i] = 0;
+      size[i] = 64+i;
+    }
+
+    origin[0] = 0.0;
+    origin[1] = 1.1;
+    origin[2] = 2.2;
+    origin[3] = 3.3;
+
+    spacing[0] = 10.0;
+    spacing[1] = 11.0;
+    spacing[2] = 12.0;
+    spacing[3] = 13.0;
+
+    region.SetSize( size );
+    region.SetIndex( index );
+    itk::Image<short,4>::Pointer im = itk::Image<short,4>::New();
+    im->SetRegions( region );
+    im->SetOrigin( origin );
+    im->SetSpacing( spacing );
+    im->Allocate();
+    im->FillBuffer( 100 );
+    itkShortImage = im;
+    shortImage = sitkAutoImagePointer( new itk::simple::Image( im.GetPointer() ) );
+
+    itk::Image<float,4>::Pointer fim = itk::Image<float,4>::New();
+    fim->SetRegions( region );
+    fim->SetOrigin( origin );
+    fim->SetSpacing( spacing );
+    fim->Allocate();
+    fim->FillBuffer( 0 );
+    itkFloatImage = fim;
+    floatImage = sitkAutoImagePointer( new itk::simple::Image( fim.GetPointer() ) );
+
+    itkFloatVectorImage = FloatVectorImageType::New();
+    floatVectorImage = sitkAutoImagePointer( new itk::simple::Image( itkFloatVectorImage.GetPointer() ) );
+
+    directionI4D = std::vector<double>(16, 0.0 );
+    directionI4D[0] = directionI4D[5] = directionI4D[10] = directionI4D[15] = 1.0;
+
+  }
+
+  itk::ImageBase< 4 >::Pointer itkShortImage;
+
+  typedef itk::Image< short, 4 > ShortImageType;
+  sitkAutoImagePointer shortImage;
+
+  typedef itk::Image< float, 4 > FloatImageType;
+  sitkAutoImagePointer floatImage;
+  FloatImageType::Pointer itkFloatImage;
+
+  typedef itk::VectorImage<float, 4 > FloatVectorImageType;
+  sitkAutoImagePointer floatVectorImage;
+  FloatVectorImageType::Pointer itkFloatVectorImage;
+
+  sitkAutoImagePointer differentSizedImage;
+  ShortImageType::Pointer itkDifferentSizedImage;
+
+  std::vector<double> directionI4D;
+
+};
+
+TEST_F(Image4D,Create) {
+  ASSERT_TRUE ( shortImage->GetITKBase() != NULL );
+  EXPECT_EQ ( shortImage->GetWidth(), itkShortImage->GetLargestPossibleRegion().GetSize()[0] ) << " Checking image width";
+  EXPECT_EQ ( shortImage->GetHeight(), itkShortImage->GetLargestPossibleRegion().GetSize()[1] ) << " Checking image height";
+  EXPECT_EQ ( shortImage->GetDepth(), itkShortImage->GetLargestPossibleRegion().GetSize()[2] ) << " Checking image depth";
+  EXPECT_EQ ( shortImage->GetSize()[3], itkShortImage->GetLargestPossibleRegion().GetSize()[3] ) << " Checking dim4";
+
+}
+
+TEST_F(Image4D,ImageDataType) {
+
+  // this test checks that the DataType of the images are correct
+  int result;
+
+  result = typelist::IndexOf< InstantiatedPixelIDTypeList, itk::simple::BasicPixelID<short> >::Result;
+  EXPECT_EQ( shortImage->GetPixelIDValue(), result);
+  EXPECT_EQ( shortImage->GetPixelID(), result);
+
+  result = typelist::IndexOf< InstantiatedPixelIDTypeList, itk::simple::BasicPixelID<float> >::Result;
+  EXPECT_EQ( floatImage->GetPixelIDValue(), result );
+  EXPECT_EQ( floatImage->GetPixelID(), result );
+
+  result = typelist::IndexOf< InstantiatedPixelIDTypeList, itk::simple::VectorPixelID<float> >::Result;
+  EXPECT_EQ( floatVectorImage->GetPixelIDValue(), result );
+  EXPECT_EQ( floatVectorImage->GetPixelID(), result );
+
+
+
+  result = itk::simple::PixelIDToPixelIDValue< itk::simple::BasicPixelID<short> >::Result;
+  EXPECT_EQ( shortImage->GetPixelIDValue(), result);
+  EXPECT_EQ( shortImage->GetPixelID(), result);
+
+  result = itk::simple::PixelIDToPixelIDValue< itk::simple::BasicPixelID<float> >::Result;
+  EXPECT_EQ( floatImage->GetPixelIDValue(), result );
+  EXPECT_EQ( floatImage->GetPixelID(), result );
+
+  result = itk::simple::PixelIDToPixelIDValue< itk::simple::VectorPixelID<float> >::Result;
+  EXPECT_EQ( floatVectorImage->GetPixelIDValue(), result );
+  EXPECT_EQ( floatVectorImage->GetPixelID(), result );
+
+
+
+  result = typelist::IndexOf< InstantiatedPixelIDTypeList,  itk::simple::ImageTypeToPixelID<ShortImageType>::PixelIDType >::Result;
+  EXPECT_EQ( shortImage->GetPixelIDValue(), result );
+  EXPECT_EQ( shortImage->GetPixelID(), result );
+
+  result = typelist::IndexOf< InstantiatedPixelIDTypeList,  itk::simple::ImageTypeToPixelID<FloatVectorImageType>::PixelIDType >::Result;
+  EXPECT_EQ( floatVectorImage->GetPixelIDValue(), result );
+  EXPECT_EQ( floatVectorImage->GetPixelID(), result );
+
+
+
+  result = itk::simple::ImageTypeToPixelIDValue<ShortImageType>::Result;
+  EXPECT_EQ( shortImage->GetPixelIDValue(), result );
+  EXPECT_EQ( shortImage->GetPixelID(), result );
+
+  result = itk::simple::ImageTypeToPixelIDValue<FloatVectorImageType>::Result;
+  EXPECT_EQ( floatVectorImage->GetPixelIDValue(), result );
+  EXPECT_EQ( floatVectorImage->GetPixelID(), result );
+
+}
+
+TEST_F(Image4D,Constructors) {
+  itk::simple::HashImageFilter hasher;
+  int result;
+
+  {
+  itk::simple::Image image;
+  EXPECT_EQ ( 0u, image.GetWidth() );
+  EXPECT_EQ ( 0u, image.GetHeight() );
+  EXPECT_EQ ( 0u, image.GetDepth() );
+  EXPECT_EQ ( 2u, image.GetSize().size() );
+  }
+
+  std::vector<unsigned int> s4d6(4);
+  s4d6[0] = 64;
+  s4d6[1] = 65;
+  s4d6[2] = 66;
+  s4d6[3] = 67;
+  itk::simple::Image image ( s4d6, itk::simple::sitkUInt8 );
+  EXPECT_EQ ( "d2ed3a9bceae811402dcb5223fb16990cd89537d", hasher.SetHashFunction ( itk::simple::HashImageFilter::SHA1 ).Execute ( image ) ) << " SHA1 hash value sitkUInt8";
+  result = typelist::IndexOf< InstantiatedPixelIDTypeList, itk::simple::BasicPixelID<unsigned char> >::Result;
+  EXPECT_EQ ( image.GetPixelIDValue(), result );
+  EXPECT_EQ ( image.GetPixelIDTypeAsString(), "8-bit unsigned integer" );
+  EXPECT_EQ ( image.GetDimension(), 4u );
+  EXPECT_EQ ( 64u, image.GetWidth() );
+  EXPECT_EQ ( 65u, image.GetHeight() );
+  EXPECT_EQ ( 66u, image.GetDepth() );
+  EXPECT_EQ ( 67u, image.GetSize()[3]  );
+  EXPECT_EQ( image.GetDirection(), directionI4D );
+
+  image = itk::simple::Image ( s4d6, itk::simple::sitkInt16 );
+  EXPECT_EQ ( "0e444ec26123b59643b58f84dd8f685a991dfb4b", hasher.SetHashFunction ( itk::simple::HashImageFilter::SHA1 ).Execute ( image ) ) << " SHA1 hash value sitkUInt16";
+  result = typelist::IndexOf< InstantiatedPixelIDTypeList, itk::simple::BasicPixelID<short> >::Result;
+  EXPECT_EQ ( image.GetPixelIDValue(), result );
+  EXPECT_EQ ( image.GetPixelIDTypeAsString(), "16-bit signed integer" );
+  EXPECT_EQ ( image.GetDimension(), 4u );
+  EXPECT_EQ ( 64u, image.GetWidth() );
+  EXPECT_EQ ( 65u, image.GetHeight() );
+  EXPECT_EQ ( 66u, image.GetDepth() );
+  EXPECT_EQ ( 67u, image.GetSize()[3] );
+  EXPECT_EQ( image.GetDirection(), directionI4D );
+
+  // Test the constructors for vector images
+  std::vector<unsigned int>  s4d(4, 5);
+
+  image = itk::simple::Image( s4d, itk::simple::sitkVectorUInt8 );
+  EXPECT_EQ ( image.GetDimension(), 4u );
+  EXPECT_EQ ( 4u, image.GetNumberOfComponentsPerPixel() );
+
+  image = itk::simple::Image( s4d, itk::simple::sitkVectorFloat32 );
+  EXPECT_EQ ( image.GetDimension(), 4u );
+  EXPECT_EQ ( 4u, image.GetNumberOfComponentsPerPixel() );
+
+  image = itk::simple::Image( s4d, itk::simple::sitkVectorInt16, 5 );
+  EXPECT_EQ ( image.GetDimension(), 4u );
+  EXPECT_EQ ( 5u, image.GetNumberOfComponentsPerPixel() );
+
+  image = itk::simple::Image( s4d, itk::simple::sitkVectorFloat64, 10 );
+  EXPECT_EQ ( image.GetDimension(), 4u );
+  EXPECT_EQ ( 10u, image.GetNumberOfComponentsPerPixel() );
+
+  // check for error when incorrect number of dimensions are requested
+  std::vector<unsigned int> s5d(5, 100);
+  ASSERT_ANY_THROW( itk::simple::Image( s5d, itk::simple::sitkVectorFloat64 ) );
+
+  // check for error with bad pixelID
+  ASSERT_ANY_THROW( itk::simple::Image( s4d, itk::simple::sitkUnknown ) );
+  ASSERT_ANY_THROW( itk::simple::Image( s4d, itk::simple::PixelIDValueEnum(-100) ) );
+
+  // check for error when non-vector type requests components ( should
+  // this be an error or should we just be converted to a vector )
+  ASSERT_ANY_THROW( itk::simple::Image( s4d, itk::simple::sitkInt16, 10 ) );
+  ASSERT_ANY_THROW( itk::simple::Image( s4d, itk::simple::sitkLabelUInt8, 10 ) );
+
+  // currently we don't have a good interface to check the values of
+  // these images, let just construct these types need todo better
+  // testing!
+
+  image = itk::simple::Image ( s4d6, itk::simple::sitkLabelUInt8 );
+  EXPECT_EQ ( 64u, image.GetWidth() );
+  EXPECT_EQ ( 65u, image.GetHeight() );
+  EXPECT_EQ ( 66u, image.GetDepth() );
+  EXPECT_EQ ( 67u, image.GetSize()[3] );
+  EXPECT_EQ ( 1u, image.GetNumberOfComponentsPerPixel() );
+  EXPECT_EQ( image.GetDirection(), directionI4D );
+
+  image = itk::simple::Image ( s4d6, itk::simple::sitkLabelUInt16 );
+
+  image = itk::simple::Image ( s4d6, itk::simple::sitkLabelUInt32 );
+
+  image = itk::simple::Image ( s4d6, itk::simple::sitkVectorUInt8 );
+
+  EXPECT_EQ ( 64u, image.GetWidth() );
+  EXPECT_EQ ( 65u, image.GetHeight() );
+  EXPECT_EQ ( 66u, image.GetDepth() );
+  EXPECT_EQ ( 67u, image.GetSize()[3] );
+  EXPECT_EQ ( 4u, image.GetNumberOfComponentsPerPixel() );
+
+  image = itk::simple::Image ( s4d6, itk::simple::sitkVectorUInt16 );
+  EXPECT_EQ ( 4u, image.GetNumberOfComponentsPerPixel() );
+
+}
+
+TEST_F(Image4D,Transforms) {
+
+  // Origin is [0.0, 1.1, 2.2, 3.3]
+  // Spacing is [10, 11, 12, 13]
+
+  {
+    // Index to Physical Point
+    std::vector<int64_t> idx(4,1u);
+    std::vector<double> pt = shortImage->TransformIndexToPhysicalPoint(idx);
+    EXPECT_EQ(10.0, pt[0]) << " Pt to Idx [0]";
+    EXPECT_EQ(12.1, pt[1]) << " Pt to Idx [1]";
+    EXPECT_EQ(14.2, pt[2]) << " Pt to Idx [2]";
+    EXPECT_EQ(16.3, pt[3]) << " Pt to Idx [3]";
+
+
+    // Physical Point to Index
+    idx = shortImage->TransformPhysicalPointToIndex(pt);
+    EXPECT_EQ(1u, idx[0]) << " Idx to Pt [0]";
+    EXPECT_EQ(1u, idx[1]) << " Idx to Pt [1]";
+    EXPECT_EQ(1u, idx[2]) << " Idx to Pt [2]";
+    EXPECT_EQ(1u, idx[3]) << " Idx to Pt [3]";
+  }
+
+  {
+    // Continuous Index to Physical Point
+    std::vector<double> idx(4,2.0);
+    std::vector<double> pt = shortImage->TransformContinuousIndexToPhysicalPoint(idx);
+    EXPECT_EQ(20.0, pt[0]) << " Pt to Idx [0]";
+    EXPECT_EQ(23.1, pt[1]) << " Pt to Idx [1]";
+    EXPECT_EQ(26.2, pt[2]) << " Pt to Idx [2]";
+    EXPECT_EQ(29.3, pt[3]) << " Pt to Idx [3]";
+
+    // Physical Point to Coninuous Index
+    idx = shortImage->TransformPhysicalPointToContinuousIndex(pt);
+    EXPECT_EQ(2.0, idx[0]) << " Idx to Pt [0]";
+    EXPECT_EQ(2.0, idx[1]) << " Idx to Pt [1]";
+    EXPECT_EQ(2.0, idx[2]) << " Idx to Pt [2]";
+    EXPECT_EQ(2.0, idx[3]) << " Idx to Pt [3]";
+  }
+}
+
+TEST_F(Image4D,Properties) {
+
+  // GetOrigin
+  std::vector<double> origin = shortImage->GetOrigin();
+  EXPECT_EQ(origin[0], 0.0) << " GetOrigin[0]";
+  EXPECT_EQ(origin[1], 1.1) << " GetOrigin[1]";
+  EXPECT_EQ(origin[2], 2.2) << " GetOrigin[2]";
+  EXPECT_EQ(origin[3], 3.3) << " GetOrigin[4]";
+
+  // SetOrigin
+  std::vector<double> newOrigin;
+  newOrigin.push_back(0.1);
+  newOrigin.push_back(0.2);
+  newOrigin.push_back(0.3);
+  newOrigin.push_back(0.4);
+  shortImage->SetOrigin( newOrigin );
+  EXPECT_EQ(shortImage->GetOrigin()[0], 0.1) << " SetOrigin[0]";
+  EXPECT_EQ(shortImage->GetOrigin()[1], 0.2) << " SetOrigin[1]";
+  EXPECT_EQ(shortImage->GetOrigin()[2], 0.3) << " SetOrigin[2]";
+  EXPECT_EQ(shortImage->GetOrigin()[3], 0.4) << " SetOrigin[3]";
+  shortImage->SetOrigin( origin );
+
+  // GetSpacing
+  std::vector<double> spacing = shortImage->GetSpacing();
+  EXPECT_EQ(spacing[0], 10.0) << " GetSpacing[0]";
+  EXPECT_EQ(spacing[1], 11.0) << " GetSpacing[1]";
+  EXPECT_EQ(spacing[2], 12.0) << " GetSpacing[2]";
+  EXPECT_EQ(spacing[3], 13.0) << " GetSpacing[3]";
+
+  // SetSpacing
+  std::vector<double> newSpacing;
+  newSpacing.push_back(1.9);
+  newSpacing.push_back(2.8);
+  newSpacing.push_back(3.7);
+  newSpacing.push_back(4.6);
+  shortImage->SetSpacing( newSpacing );
+  EXPECT_EQ(shortImage->GetSpacing()[0], 1.9) << " SetSpacing[0]";
+  EXPECT_EQ(shortImage->GetSpacing()[1], 2.8) << " SetSpacing[1]";
+  EXPECT_EQ(shortImage->GetSpacing()[2], 3.7) << " SetSpacing[2]";
+  EXPECT_EQ(shortImage->GetSpacing()[3], 4.6) << " SetSpacing[3]";
+  shortImage->SetOrigin( spacing );
+
+  // Check Error conditions for setting Spacing and Origin
+  newSpacing.clear();
+  newSpacing.push_back( 99 );
+  newSpacing.push_back( 99 );
+  newSpacing.push_back( 99 );
+  ASSERT_ANY_THROW( shortImage->SetSpacing( newSpacing ) ) << " setting with too short spacing";
+
+  newOrigin.clear();
+  newOrigin.push_back( -99.99 );
+  ASSERT_ANY_THROW( shortImage->SetOrigin( newOrigin ) ) << "setting with too short origin";
+
+  // GetDirection
+  EXPECT_EQ ( shortImage->GetDirection(), directionI4D ) << " Checking Get Direction matrix for identity";
+
+  // SetDirection
+  std::vector<double> vdir( adir, adir+16 );
+  shortImage->SetDirection( vdir );
+  for( unsigned int i = 0 ; i < 16; ++i )
+  {
+    EXPECT_EQ ( shortImage->GetDirection()[i], vdir[i] ) << " Checking Direction matrix at index " << i;
+   }
+
+  // Check Error Conditions for setting Directions
+  ASSERT_ANY_THROW( shortImage->SetDirection( std::vector<double>( adir, adir + 4 ) ) );
+  ASSERT_ANY_THROW( shortImage->SetDirection( std::vector<double>( adir, adir + 8 ) ) );
+}
+
+namespace sitk = itk::simple;
+
+TEST_F(Image4D, CopyInformation)
+{
+  std::vector<unsigned int> s4d(4,10);
+  sitk::Image img1d( 10, 20, sitk::sitkFloat32 );
+  sitk::Image img4d( s4d, sitk::sitkUInt32 );
+
+  // number if dimension are different
+  EXPECT_ANY_THROW( img1d.CopyInformation( img4d ) );
+
+  // image sizes don't match
+  s4d[3] = 20;
+  sitk::Image img4d2( s4d, sitk::sitkUInt16 );
+  EXPECT_ANY_THROW( img4d.CopyInformation( img4d2 ) );
+
+  // fix the size to match
+  sitk::Image img4d3 = sitk::Image( img4d.GetSize(), sitk::sitkFloat64);
+  img4d3.SetOrigin( shortImage->GetOrigin() );
+  img4d3.SetSpacing( shortImage->GetSpacing() );
+
+  EXPECT_NO_THROW( img4d.CopyInformation( img4d3 ) );
+  EXPECT_EQ( img4d.GetSpacing(), img4d3.GetSpacing() );
+  EXPECT_EQ( img4d.GetOrigin(), img4d3.GetOrigin() );
+  EXPECT_EQ( img4d.GetDirection(), img4d3.GetDirection() );
+
+}
+
+TEST_F(Image4D, CopyOnWrite)
+{
+  std::vector<unsigned int> s4d(4,10);
+  // test that a just constructed image only have 1 referecne
+  sitk::Image img( s4d, sitk::sitkUInt8 );
+  EXPECT_EQ(static_cast<const sitk::Image *>(&img)->GetITKBase()->GetReferenceCount(), 1 )
+    << " Reference Count for just constructed Image";
+
+  // use the image from the fixture to test some copy constructor
+  EXPECT_EQ(static_cast<const sitk::Image *>(shortImage.get())->GetITKBase()->GetReferenceCount(), 2 )
+    << " Reference Count for shared shortImage initial";
+  sitk::Image img0 = *shortImage;
+  EXPECT_EQ(static_cast<const sitk::Image *>(shortImage.get())->GetITKBase()->GetReferenceCount(), 3 )
+    << " Reference Count for shared shortImage copy";
+  sitk::Image imgCopy = img0;
+  EXPECT_EQ(static_cast<const sitk::Image *>(shortImage.get())->GetITKBase()->GetReferenceCount(), 4 )
+    << " Reference Count for shared shortImage second copy";
+
+  // check set origin for copy on write
+  imgCopy.SetOrigin( std::vector<double>( 4, 2.123 ) );
+  EXPECT_EQ(static_cast<const sitk::Image *>(&imgCopy)->GetITKBase()->GetReferenceCount(), 1 )
+    << " Reference Count for copy after set origin";
+  EXPECT_EQ(static_cast<const sitk::Image *>(&img0)->GetITKBase()->GetReferenceCount(), 3 )
+    << " Reference Count for shared after set origin";
+
+  // check shallow copy on assignment
+  imgCopy = img0;
+  EXPECT_EQ(static_cast<const sitk::Image *>(&imgCopy)->GetITKBase()->GetReferenceCount(), 4 )
+    << " Reference Count for copy after assigment";
+  EXPECT_EQ(static_cast<const sitk::Image *>(&img0)->GetITKBase()->GetReferenceCount(), 4 )
+    << " Reference Count for shared after assignment";
+
+  // check copy on write with set spacing
+  imgCopy.SetSpacing( std::vector<double>( 4, 3.45 ) );
+  EXPECT_EQ(static_cast<const sitk::Image *>(&imgCopy)->GetITKBase()->GetReferenceCount(), 1 )
+    << " Reference Count for copy after set spacing";
+  EXPECT_EQ(static_cast<const sitk::Image *>(&img0)->GetITKBase()->GetReferenceCount(), 3 )
+    << " Reference Count for shared after set spacing";
+
+  // Requires 4D hash image filter, we have that
+  EXPECT_EQ( sitk::Hash( imgCopy ), sitk::Hash( img0 ) ) << "Hash for shared and copy after set spacing";
+}
+
+
+TEST( IO, Image4D )
+{
+  // Image
+
+  std::vector<unsigned int> size(4);
+  size[0] = 10;
+  size[1] = 11;
+  size[2] = 12;
+  size[3] = 13;
+  sitk::Image image = sitk::Image( size, sitk::sitkUInt8 );
+  sitk::Image imageRead;
+
+  EXPECT_EQ( 10u, image.GetWidth() );
+  EXPECT_EQ( 11u, image.GetHeight() );
+  EXPECT_EQ( 12u, image.GetDepth() );
+  EXPECT_EQ( 13u, image.GetSize()[3] );
+  EXPECT_EQ( 1u, image.GetNumberOfComponentsPerPixel() );
+
+  sitk::ImageFileWriter imageWriter;
+  imageWriter.SetFileName( dataFinder.GetOutputDirectory()+"image4d.nii" );
+  ASSERT_NO_THROW( imageWriter.Execute( image ) );
+
+  sitk::ImageFileReader imageReader;
+  imageReader.SetFileName( dataFinder.GetOutputDirectory()+"image4d.nii" );
+  ASSERT_NO_THROW( imageRead = imageReader.Execute() );
+  EXPECT_EQ ( sitk::Hash( image ), sitk::Hash( imageRead ) );
+
+  sitk::Image imageRead2;
+  imageReader.SetFileName( dataFinder.GetFile( "Input/4D.nii.gz" ) );
+  ASSERT_NO_THROW( imageRead2 = imageReader.Execute() );
+  EXPECT_EQ ( "9e81d4b3cdf10a4da5d54c8cd7c4954449d76d5d", sitk::Hash( imageRead2 ) );
+
+  EXPECT_EQ( 36u, imageRead2.GetWidth() );
+  EXPECT_EQ( 48u, imageRead2.GetHeight() );
+  EXPECT_EQ( 21u, imageRead2.GetDepth() );
+  EXPECT_EQ( 4u, imageRead2.GetSize()[3] );
+
+  imageWriter.SetFileName( dataFinder.GetOutputDirectory()+"image4d2.nii" );
+  ASSERT_NO_THROW( imageWriter.Execute( imageRead2 ) );
+
+  sitk::Image imageRead3;
+  ASSERT_NO_THROW( imageRead3 = imageReader.Execute() );
+  imageReader.SetFileName( dataFinder.GetOutputDirectory()+"image4d2.nii" );
+  EXPECT_EQ ( "9e81d4b3cdf10a4da5d54c8cd7c4954449d76d5d", sitk::Hash( imageRead3 ) );
+
+  // VectorImage
+  sitk::Image vectorImage = sitk::Image( size, sitk::sitkVectorUInt8 );
+  sitk::Image vectorImageRead;
+
+  EXPECT_EQ( 10u, vectorImage.GetWidth() );
+  EXPECT_EQ( 11u, vectorImage.GetHeight() );
+  EXPECT_EQ( 12u, vectorImage.GetDepth() );
+  ASSERT_EQ( 4u, vectorImage.GetSize().size() );
+  EXPECT_EQ( 13u, vectorImage.GetSize()[3] );
+  EXPECT_EQ( 4u, vectorImage.GetNumberOfComponentsPerPixel() );
+
+  sitk::ImageFileWriter vectorImageWriter;
+  vectorImageWriter.SetFileName( "image4d.nii" );
+  ASSERT_NO_THROW( vectorImageWriter.Execute( vectorImage ) );
+
+  sitk::ImageFileReader vectorImageReader;
+  vectorImageReader.SetFileName( "image4d.nii" );
+  ASSERT_NO_THROW( vectorImageRead = vectorImageReader.Execute() );
+
+  EXPECT_EQ ( sitk::Hash( vectorImage ), sitk::Hash( vectorImageRead ) );
+
+}
+
+
+TEST_F(Image4D, JoinSeriesImageFilter)
+{
+  std::vector<unsigned int> size(3);
+  size[0] = 10;
+  size[1] = 11;
+  size[2] = 12;
+
+  sitk::Image img = sitk::Image( size, sitk::sitkUInt8 );
+
+  sitk::Image out = sitk::JoinSeries(img, img, img);
+
+  ASSERT_EQ ( out.GetDimension(), 4 );
+  EXPECT_EQ ( out.GetSize()[3], 3 );
+}
+
+TEST_F(Image4D, ExtractImageFilter)
+{
+  std::vector<unsigned int> size(4);
+  size[0] = 10;
+  size[1] = 11;
+  size[2] = 12;
+  size[3] = 13;
+
+  sitk::Image img = sitk::Image( size, sitk::sitkUInt8 );
+
+  std::vector<unsigned int> extractSize(4);
+  extractSize[0] = 10;
+  extractSize[1] = 11;
+  extractSize[2] = 0;
+  extractSize[3] = 13;
+
+  sitk::Image out = sitk::Extract(img, extractSize);
+
+  ASSERT_EQ ( 3u, out.GetDimension() );
+  EXPECT_EQ ( 10u, out.GetSize().at(0) );
+  EXPECT_EQ ( 11u, out.GetSize().at(1) );
+  EXPECT_EQ ( 13u, out.GetSize().at(2) );
+  EXPECT_EQ ( 1430u, out.GetNumberOfPixels() );
+}
diff --git a/Testing/Unit/sitkImageCompare.cxx b/Testing/Unit/sitkImageCompare.cxx
new file mode 100644
index 0000000..b46c9e7
--- /dev/null
+++ b/Testing/Unit/sitkImageCompare.cxx
@@ -0,0 +1,332 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include <SimpleITK.h>
+#include <memory>
+#include <itksys/SystemTools.hxx>
+
+#include "sitkImageCompare.h"
+
+namespace sitk = itk::simple;
+
+void ImageCompare::NormalizeAndSave ( const sitk::Image &input, const std::string &filename )
+{
+  sitk::Image image = input;
+
+  if (image.GetPixelIDValue() == sitk::sitkLabelUInt8)
+    {
+    image = sitk::Cast( image, sitk::sitkUInt8);
+    }
+  else if (image.GetPixelIDValue() == sitk::sitkLabelUInt16)
+    {
+    image = sitk::Cast( image, sitk::sitkUInt16);
+    }
+  else if (image.GetPixelIDValue() == sitk::sitkLabelUInt32)
+    {
+    image = sitk::Cast( image, sitk::sitkUInt32);
+    }
+  else if (image.GetPixelIDValue() == sitk::sitkLabelUInt64)
+    {
+    image = sitk::Cast( image, sitk::sitkUInt64);
+    }
+  else if (image.GetPixelIDValue() == sitk::sitkComplexFloat64
+           || image.GetPixelIDValue() == sitk::sitkComplexFloat32)
+    {
+    image = sitk::ComplexToModulus(image);
+    }
+  else if (image.GetNumberOfComponentsPerPixel() != 1)
+    {
+    // just use the magnitude for vector images
+    image = sitk::VectorMagnitude(image);
+    }
+
+  // Extract the center slice of our image
+  if ( input.GetDimension() == 3 )
+    {
+    std::vector<int> idx( 3, 0 );
+    std::vector<unsigned int> sz = input.GetSize();
+
+    // set to just the center slice
+    idx[2] = (int)( input.GetDepth() / 2 );
+    sz[2] = 0;
+    image = sitk::Extract( input, sz, idx );
+    }
+
+  sitk::Image out = sitk::RescaleIntensity( image, 0, 255 );
+
+  out = sitk::Cast ( out, sitk::sitkUInt8 );
+  sitk::WriteImage ( out, filename );
+}
+
+
+ImageCompare::ImageCompare()
+{
+  mTolerance = 0.0;
+  mMessage = "";
+}
+
+float ImageCompare::testImages( const itk::simple::Image& testImage,
+                                const itk::simple::Image& baselineImage,
+                                bool reportErrors,
+                                const std::string &baselineImageFilename)
+{
+
+  const std::string OutputDir = dataFinder.GetOutputDirectory();
+
+  const std::string shortFilename = itksys::SystemTools::GetFilenameName( baselineImageFilename );
+
+    // verify they have the same size
+  if ( baselineImage.GetHeight() != testImage.GetHeight()
+       || baselineImage.GetWidth() != testImage.GetWidth()
+       || baselineImage.GetDepth() != testImage.GetDepth() )
+    {
+    mMessage = "ImageCompare: Image dimensions are different";
+    return -1;
+    }
+
+
+    // Compute image difference squared
+    sitk::Image diffSquared( 0, 0, itk::simple::sitkUInt8 );
+    try
+      {
+
+      if ( baselineImage.GetPixelID() == sitk::sitkComplexFloat32 ||
+           baselineImage.GetPixelID() == sitk::sitkComplexFloat64 )
+        {
+
+        const sitk::Image diff =  sitk::Subtract( testImage, baselineImage );
+        // for complex number we multiply the image by it's complex
+        // conjugate, this will produce only a real value result
+        const sitk::Image conj = sitk::RealAndImaginaryToComplex( sitk::ComplexToReal( diff ),
+                                                                  sitk::Multiply( sitk::ComplexToImaginary( diff ), -1.0 ) );
+        diffSquared = sitk::ComplexToReal( sitk::Multiply( diff, conj ) );
+        }
+      else if ( baselineImage.GetNumberOfComponentsPerPixel() > 1 )
+        {
+        const sitk::Image diff =  sitk::Subtract( sitk::Cast( testImage, sitk::sitkVectorFloat32 ), sitk::Cast( baselineImage, sitk::sitkVectorFloat32 ) );
+
+        // for vector image just do a sum of the components
+        diffSquared  = sitk::Pow( sitk::VectorIndexSelectionCast( diff, 0 ), 2.0 );
+        for ( unsigned int i = 1; i < diff.GetNumberOfComponentsPerPixel(); ++i )
+          {
+          const sitk::Image temp = sitk::Pow( sitk::VectorIndexSelectionCast( diff, i ), 2.0 );
+          diffSquared = sitk::Add( temp, diffSquared );
+          }
+
+        diffSquared = sitk::Divide( diffSquared, diff.GetNumberOfComponentsPerPixel() );
+        }
+      else
+        {
+        sitk::Image diff =  sitk::Subtract( sitk::Cast( testImage, sitk::sitkFloat32 ), sitk::Cast( baselineImage, sitk::sitkFloat32 ) );
+        diffSquared = sitk::Multiply( diff, diff );
+        }
+
+      }
+    catch ( std::exception& e )
+      {
+      mMessage = "ImageCompare: Failed to subtract image " + baselineImageFilename + " because: " + e.what();
+      return -1;
+      }
+
+
+
+    sitk::StatisticsImageFilter stats;
+    stats.Execute ( diffSquared );
+    const double rms = std::sqrt ( stats.GetMean() );
+
+    if ( !reportErrors )
+      {
+      // The measurement errors should be reported for both success and errors
+      // to facilitate setting tight tolerances of tests.
+      std::cout << "<DartMeasurement name=\"RMSeDifference " << shortFilename <<  "\" type=\"numeric/float\">" << rms << "</DartMeasurement>" << std::endl;
+      }
+    else
+      {
+      std::ostringstream msg;
+      msg << "ImageCompare: image Root Mean Square (RMS) difference was " << rms << " which exceeds the tolerance of " << mTolerance;
+      msg << "\n";
+      mMessage = msg.str();
+
+      std::cout << "<DartMeasurement name=\"RMSeDifference\" type=\"numeric/float\">" << rms << "</DartMeasurement>" << std::endl;
+      std::cout << "<DartMeasurement name=\"Tolerance\" type=\"numeric/float\">" << mTolerance << "</DartMeasurement>" << std::endl;
+
+      std::string volumeName = OutputDir + "/" + shortFilename + ".nrrd";
+      sitk::ImageFileWriter().SetFileName ( volumeName ).Execute ( testImage );
+
+      // Save pngs
+      std::string ExpectedImageFilename = OutputDir + "/" + shortFilename + "_Expected.png";
+      std::string ActualImageFilename = OutputDir + "/" + shortFilename + "_Actual.png";
+      std::string DifferenceImageFilename = OutputDir + "/" + shortFilename + "_Difference.png";
+
+      try
+        {
+        NormalizeAndSave ( baselineImage, ExpectedImageFilename );
+        NormalizeAndSave ( testImage, ActualImageFilename );
+        NormalizeAndSave ( sitk::Sqrt(diffSquared), DifferenceImageFilename );
+
+        // Let ctest know about it
+        std::cout << "<DartMeasurementFile name=\"ExpectedImage\" type=\"image/png\">";
+        std::cout << ExpectedImageFilename << "</DartMeasurementFile>" << std::endl;
+        std::cout << "<DartMeasurementFile name=\"ActualImage\" type=\"image/png\">";
+        std::cout << ActualImageFilename << "</DartMeasurementFile>" << std::endl;
+        std::cout << "<DartMeasurementFile name=\"DifferenceImage\" type=\"image/png\">";
+        std::cout << DifferenceImageFilename << "</DartMeasurementFile>" << std::endl;
+
+        }
+      catch( std::exception &e )
+        {
+        std::cerr << "Exception encountered while trying to normalize and save images for dashboard!" << std::endl;
+        std::cerr << e.what() << std::endl;
+        }
+      catch(...)
+        {
+        std::cerr << "Unexpected error while trying to normalize and save images for dashboard!" << std::endl;
+        }
+
+
+      }
+
+    return (rms > fabs ( mTolerance )) ? rms  : 0.0;
+}
+
+
+bool ImageCompare::compare ( const sitk::Image& image, std::string inTestCase, std::string inTag )
+{
+  sitk::Image centerSlice( 0, 0, sitk::sitkUInt8 );
+  std::string testCase = inTestCase;
+  std::string tag = inTag;
+  std::string testName = ::testing::UnitTest::GetInstance()->current_test_info()->name();
+
+  if ( testCase == "" )
+    {
+    testCase = ::testing::UnitTest::GetInstance()->current_test_info()->test_case_name();
+    }
+
+  // Does the baseline exist?
+  std::string extension = ".nrrd";
+  std::string OutputDir = dataFinder.GetOutputDirectory();
+
+  std::string name = testCase
+    .append( "_" )
+    .append(testName);
+
+  if ( tag != "" )
+    {
+    name.append("_").append ( tag );
+    }
+
+
+  // Extract the center slice of our test image
+  if ( image.GetDimension() == 3 )
+    {
+    std::vector<int> idx( 3, 0 );
+    std::vector<unsigned int> sz = image.GetSize();
+
+    // set to just the center slice
+    idx[2] = (int)( image.GetDepth() / 2 );
+    sz[2] = 1;
+    centerSlice = sitk::RegionOfInterest( image, sz, idx );
+    }
+  else
+    {
+    centerSlice = image;
+    }
+
+  const std::string baselineFileName = dataFinder.GetFile( "Baseline/" + name + extension );
+
+
+
+  if ( !itksys::SystemTools::FileExists ( baselineFileName.c_str(), true ) )
+    {
+    // Baseline does not exist, write out what we've been given
+    std::string newBaselineDir = OutputDir + "/Newbaseline/";
+    itksys::SystemTools::MakeDirectory ( newBaselineDir.c_str() );
+    std::cout << "Making directory " << newBaselineDir << std::endl;
+    std::string newBaseline = newBaselineDir + name + extension;
+    sitk::ImageFileWriter().SetFileName ( newBaseline ).Execute ( centerSlice );
+    mMessage = "Baseline does not exist, wrote " + newBaseline + "\ncp " + newBaseline + " " + baselineFileName;
+    return false;
+    }
+
+  // Generate all possible baseline filenames
+  std::vector<std::string> baselineFileNames;
+
+  {
+  int x = 0;
+
+  baselineFileNames.push_back(baselineFileName);
+
+
+  while ( ++x )
+    {
+    std::ostringstream filename_stream;
+    filename_stream <<  "Baseline/" << name  << "." << x << extension;
+
+    std::string filename = dataFinder.GetFile( filename_stream.str() );
+
+    if (!itksys::SystemTools::FileExists ( filename, true ) )
+      {
+      break;
+      }
+    baselineFileNames.push_back(filename);
+    }
+
+  }
+
+  std::vector<std::string>::const_iterator iterName;
+
+  std::string bestBaselineName =  *baselineFileNames.begin();
+  float bestRMS = std::numeric_limits<float>::max();
+
+  for ( iterName = baselineFileNames.begin(); iterName != baselineFileNames.end(); ++iterName )
+    {
+
+    sitk::Image baseline( 0, 0, sitk::sitkUInt8 );
+
+    try
+      {
+      baseline = sitk::ImageFileReader().SetFileName (*iterName ).Execute();
+      }
+    catch ( std::exception& e )
+      {
+      mMessage = "ImageCompare: Failed to load image " +*iterName + " because: " + e.what();
+      return false;
+      }
+
+    float RMS = testImages( centerSlice, baseline, false,  *iterName);
+
+    if ( RMS >= 0.0 && RMS < bestRMS )
+      {
+      bestBaselineName = *iterName;
+      bestRMS = RMS;
+      }
+
+    }
+
+
+  if ( bestRMS > fabs ( mTolerance ) )
+    {
+    sitk::Image baseline =  sitk::ImageFileReader().SetFileName (bestBaselineName ).Execute();
+    testImages( centerSlice, baseline, true, bestBaselineName );
+    return false;
+    }
+  else
+    {
+    return true;
+    }
+
+}
diff --git a/Testing/Unit/sitkImageCompare.h b/Testing/Unit/sitkImageCompare.h
new file mode 100644
index 0000000..3f6ca0e
--- /dev/null
+++ b/Testing/Unit/sitkImageCompare.h
@@ -0,0 +1,114 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef __ImageCompare_h
+#define __ImageCompare_h
+#include <SimpleITKTestHarness.h>
+#include <sitkImage.h>
+
+class ImageCompare {
+public:
+  typedef ImageCompare Self;
+  ImageCompare();
+
+  // Compare the image to the named baseline image slice by slice, display the difference in the center slice
+  // If the baseline does not exist, fail, and write a baseline image in the output directory
+  bool compare ( const itk::simple::Image& image, std::string testGroup, std::string tag );
+
+  float testImages( const itk::simple::Image& testImage,
+                    const itk::simple::Image& baselineImage,
+                    bool retportErrors,
+                    const std::string &baselineImageFilename );
+
+
+  // Return the message from the previous image comparison.
+  std::string getMessage() { return mMessage; }
+  void setTolerance ( double t ) { mTolerance = t; }
+  double getTolerance() { return mTolerance; }
+
+  static void NormalizeAndSave ( const itk::simple::Image &image, const std::string &filename );
+protected:
+  std::string mMessage;
+  double mTolerance;
+};
+
+#define IMAGECOMPARE( x, tag )                  \
+  { \
+ImageCompare imageCompare;  \
+ EXPECT_TRUE( imageCompare.compare( x, "", tag ) ) << imageCompare.getMessage(); \
+ }
+#define IMAGECOMPAREWITHTOLERANCE( x, tag, tolerance )        \
+  { \
+  ImageCompare imageCompare;  \
+  imageCompare.setTolerance(tolerance); \
+  EXPECT_TRUE( imageCompare.compare( x, "", tag ) ) << imageCompare.getMessage(); \
+  }
+
+#define IMAGECOMPAREWITHHASH( hash, hashType, image, message )        \
+  { \
+  std::string actualHashValue = itk::simple::Hash( image, itk::simple::HashImageFilter::hashType ); \
+  EXPECT_EQ ( hash, actualHashValue  ) << message;                      \
+  if ( hash != actualHashValue )                                        \
+    {                                                                   \
+    std::string TestImageFilename = dataFinder.GetOutputFile ( actualHashValue + ".png"); \
+    try {                                                               \
+      ImageCompare::NormalizeAndSave( image, TestImageFilename );       \
+                                                                        \
+      std::cout << "<DartMeasurementFile name=\"TestImage\" type=\"image/png\">"; \
+      std::cout << TestImageFilename << "</DartMeasurementFile>" << std::endl; \
+    } catch (std::exception &e) {                                       \
+      std::cerr << "Unexpected error while writing image:" << e.what() << std::endl; \
+    } catch (...) {                                                     \
+      std::cerr << "Unknow Error while writing image for measurement" << std::endl; \
+    }                                                                   \
+                                                                        \
+    itk::simple::Image timage = image;                                  \
+    if (timage.GetPixelIDValue() == itk::simple::sitkLabelUInt8) \
+      {                                                                 \
+      timage = itk::simple::Cast( timage, itk::simple::sitkUInt8); \
+      }                                                                 \
+    else if (timage.GetPixelIDValue() == itk::simple::sitkLabelUInt16) \
+      {                                                                 \
+      timage = itk::simple::Cast( timage, itk::simple::sitkUInt16); \
+      }                                                                 \
+    else if (timage.GetPixelIDValue() == itk::simple::sitkLabelUInt32) \
+      {                                                                 \
+      timage = itk::simple::Cast( timage, itk::simple::sitkUInt32); \
+      }                                                                 \
+    else if (timage.GetPixelIDValue() == itk::simple::sitkLabelUInt64) \
+      {                                                                 \
+      timage = itk::simple::Cast( timage, itk::simple::sitkUInt64); \
+      }                                                                 \
+    itk::simple::WriteImage ( timage, dataFinder.GetOutputFile ( actualHashValue + ".nrrd" ) ); \
+    std::cout << "Saved actual image as " << dataFinder.GetOutputFile ( actualHashValue + ".nrrd" ) << std::endl; \
+    }                                                                   \
+  }
+
+#define IMAGECOMPARE_WITH_TESTCASE( x, testCase, tag )  \
+  { \
+ImageCompare imageCompare;  \
+ EXPECT_TRUE( imageCompare.compare( x, testCase, tag ) ) << imageCompare.getMessage(); \
+ }
+#define IMAGECOMPAREWITHTOLERANCE_WITH_TESTCASE( x, testCase, tag, tolerance ) \
+  { \
+  ImageCompare imageCompare;  \
+  imageCompare.setTolerance(tolerance); \
+  EXPECT_TRUE( imageCompare.compare( x, testCase, tag ) ) << imageCompare.getMessage(); \
+  }
+
+
+#endif
diff --git a/Testing/Unit/sitkImageFilterTestTemplate.cxx.in b/Testing/Unit/sitkImageFilterTestTemplate.cxx.in
new file mode 100644
index 0000000..638cf55
--- /dev/null
+++ b/Testing/Unit/sitkImageFilterTestTemplate.cxx.in
@@ -0,0 +1,404 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+/*
+ * WARNING: DO NOT EDIT THIS FILE!
+ * THIS FILE IS AUTOMATICALLY GENERATED BY THE SIMPLEITK BUILD PROCESS.
+ * Please look at sitkImageFilterTestTemplate.cxx.in to make changes.
+ */
+
+#include <SimpleITKTestHarness.h>
+
+#include <sitk${name}.h>
+#include <sitkImageFileReader.h>
+#include <sitkImageFileWriter.h>
+#include <sitkHashImageFilter.h>
+#include <sitkCastImageFilter.h>
+#include <sitkConditional.h>
+#include <sitkVersion.h>
+
+namespace {
+void * GetBufferAsVoid( itk::simple::Image &sitkImage)
+{
+
+  namespace sitk = itk::simple;
+  void *sitkBufferPtr = NULL;
+
+  switch( sitkImage.GetPixelIDValue() )
+    {
+    case sitk::sitkUnknown:
+      break;
+    case sitk::ConditionalValue< sitk::sitkVectorUInt8 != sitk::sitkUnknown, sitk::sitkVectorUInt8, -14 >::Value:
+    case sitk::ConditionalValue< sitk::sitkUInt8 != sitk::sitkUnknown, sitk::sitkUInt8, -2 >::Value:
+      sitkBufferPtr = (void *)sitkImage.GetBufferAsUInt8();
+      break;
+    case sitk::ConditionalValue< sitk::sitkVectorInt8 != sitk::sitkUnknown, sitk::sitkVectorInt8, -15 >::Value:
+    case sitk::ConditionalValue< sitk::sitkInt8 != sitk::sitkUnknown, sitk::sitkInt8, -3 >::Value:
+      sitkBufferPtr = (void *)sitkImage.GetBufferAsInt8();
+      break;
+    case sitk::ConditionalValue< sitk::sitkVectorUInt16 != sitk::sitkUnknown, sitk::sitkVectorUInt16, -16 >::Value:
+    case sitk::ConditionalValue< sitk::sitkUInt16 != sitk::sitkUnknown, sitk::sitkUInt16, -4 >::Value:
+      sitkBufferPtr = (void *)sitkImage.GetBufferAsUInt16();
+      break;
+    case sitk::ConditionalValue< sitk::sitkVectorInt16 != sitk::sitkUnknown, sitk::sitkVectorInt16, -17 >::Value:
+    case sitk::ConditionalValue< sitk::sitkInt16 != sitk::sitkUnknown, sitk::sitkInt16, -5 >::Value:
+      sitkBufferPtr = (void *)sitkImage.GetBufferAsInt16();
+      break;
+    case sitk::ConditionalValue< sitk::sitkVectorUInt32 != sitk::sitkUnknown, sitk::sitkVectorUInt32, -18 >::Value:
+    case sitk::ConditionalValue< sitk::sitkUInt32 != sitk::sitkUnknown, sitk::sitkUInt32, -6 >::Value:
+      sitkBufferPtr = (void *)sitkImage.GetBufferAsUInt32();
+      break;
+    case sitk::ConditionalValue< sitk::sitkVectorInt32 != sitk::sitkUnknown, sitk::sitkVectorInt32, -19 >::Value:
+    case sitk::ConditionalValue< sitk::sitkInt32 != sitk::sitkUnknown, sitk::sitkInt32, -7 >::Value:
+      sitkBufferPtr = (void *)sitkImage.GetBufferAsInt32();
+      break;
+    case sitk::ConditionalValue< sitk::sitkVectorUInt64 != sitk::sitkUnknown, sitk::sitkVectorUInt64, -20 >::Value:
+    case sitk::ConditionalValue< sitk::sitkUInt64 != sitk::sitkUnknown, sitk::sitkUInt64, -8 >::Value:
+      sitkBufferPtr = (void *)sitkImage.GetBufferAsUInt64();
+      break;
+    case sitk::ConditionalValue< sitk::sitkVectorInt64 != sitk::sitkUnknown, sitk::sitkVectorInt64, -21 >::Value:
+    case sitk::ConditionalValue< sitk::sitkInt64 != sitk::sitkUnknown, sitk::sitkInt64, -9 >::Value:
+      sitkBufferPtr = (void *)sitkImage.GetBufferAsInt64();
+     break;
+    case sitk::ConditionalValue< sitk::sitkVectorFloat32 != sitk::sitkUnknown, sitk::sitkVectorFloat32, -22 >::Value:
+    case sitk::ConditionalValue< sitk::sitkFloat32 != sitk::sitkUnknown, sitk::sitkFloat32, -10 >::Value:
+      sitkBufferPtr = (void *)sitkImage.GetBufferAsFloat();
+      break;
+    case sitk::ConditionalValue< sitk::sitkVectorFloat64 != sitk::sitkUnknown, sitk::sitkVectorFloat64, -23 >::Value:
+    case sitk::ConditionalValue< sitk::sitkFloat64 != sitk::sitkUnknown, sitk::sitkFloat64, -11 >::Value:
+      sitkBufferPtr = (void *)sitkImage.GetBufferAsDouble();
+      break;
+    case sitk::ConditionalValue< sitk::sitkComplexFloat32 != sitk::sitkUnknown, sitk::sitkComplexFloat32, -12 >::Value:
+      //sitkBufferPtr = (void *)sitkImage.GetBufferAsComplexFloat32();
+      break;
+    case sitk::ConditionalValue< sitk::sitkComplexFloat64 != sitk::sitkUnknown, sitk::sitkComplexFloat64, -13 >::Value:
+      //sitkBufferPtr = (void *)sitkImage.GetBufferAsComplexFloat64();
+      break;
+      break;
+  default:
+    ;
+    }
+  return sitkBufferPtr;
+}
+
+}
+
+
+TEST(BasicFilters,${name}) {
+  itk::simple::ImageFileReader reader;
+  itk::simple::${name} filter;
+  itk::simple::Image inputA( 0, 0, itk::simple::sitkUInt8 );
+  itk::simple::Image inputB( 0, 0, itk::simple::sitkUInt8 );
+  itk::simple::Image output( 0, 0, itk::simple::sitkUInt8 );
+  std::string inputSHA1hash;
+
+  $(if #tests == 0 then
+    OUT=[[
+  FAIL() << "Filter ${name} has no tests defined";
+        ]]
+    end)
+
+$(foreach members
+  $(if dim_vec and dim_vec == 1 then
+  OUT=[[for(unsigned int i = 0; i < filter.Get${name}().size(); ++i)
+    {
+    EXPECT_EQ ( filter.Get${name}()[i], ${default}[i] ) << "Testing get for ${name} at " << i;
+    }]]
+  elseif no_print == nil then
+  OUT=[[EXPECT_EQ ( filter.Get${name}(), ${default} ) << "Testing get for ${name}";]]
+end)
+)
+  EXPECT_NE ( filter.ToString(), "" ) << "empty ToString method!";
+  EXPECT_EQ ( filter.GetName(), "${name}" ) << "checking GetName method!";
+
+  // Test sets / gets
+$(foreach members
+  $(if dim_vec and dim_vec == 1 then
+  OUT=[[filter.Set${name} ( ${default} );
+  for(unsigned int i = 0; i < filter.Get${name}().size(); ++i)
+    {
+    EXPECT_EQ ( filter.Get${name}()[i], ${default}[i] ) << "Testing set/get for ${name} at " << i;
+    }]]
+  elseif no_print == nil then
+  OUT=[[filter.Set${name} ( ${default} );
+  EXPECT_EQ ( filter.Get${name}(), ${default} ) << "Testing set/get for ${name}";]]
+end)
+)
+
+$(if template_type and template_type == "RegionGrowing" then OUT=[[
+  // Test size of default SeedList
+  EXPECT_EQ ( filter.GetSeedList().size(), (unsigned int)0 ) << "Testing empty seed list as default";]]
+end)
+
+$(if template_code_filename and template_code_filename == "FastMarchingImageFilter" then OUT=[[
+  // Test size of default TrialPoints
+  EXPECT_EQ ( filter.GetTrialPoints().size(), (unsigned int)0 ) << "Testing empty trial points as default";]]
+end)
+
+$(if number_of_inputs == 2 then
+   OUT=[[ {
+  itk::simple::Image smallImage( 1,1,1,itk::simple::sitkUInt8 );
+  itk::simple::Image largeImage( 10,10,10,itk::simple::sitkUInt8 );
+  itk::simple::Image smallShortImage( 1,1,1,itk::simple::sitkUInt16 );
+  try
+    {
+    // Try executing with different size images.
+    // This will either work or throw an exception, either is OK. So
+    // this is here just to make sure that the behavior does not cause
+    // undefined behavior such as segfault, or other errouneos behavior.
+    filter.Execute ( largeImage, smallImage );
+    } catch (... )
+    { }
+]]
+  if template_code_filename and template_code_filename == "DualImageFilter" then
+    OUT = OUT .. [=[
+        // todo add intelligence to determin some image types to test
+        //ASSERT_NO_THROW ( filter.Execute ( smallImage, smallShortImage ) ) << " Image types are different";
+]=]
+  else
+    OUT = OUT .. [=[
+
+  ASSERT_THROW ( filter.Execute ( smallImage, smallShortImage ), itk::simple::GenericException ) << " Image types are different"; ]=]
+  end
+  OUT = OUT .. [[
+  }]]
+   end)
+  // This block is to verify that the input images for named inputs are
+  // check if the sizes match for computation.
+$(if inputs then
+OUT = OUT .. [[
+  itk::simple::Image smallImage( 1,1,1,itk::simple::sitkUInt8 );
+  itk::simple::Image largeImage( 10,10,10,itk::simple::sitkUInt8 );
+]]
+    for inum=2,#inputs do
+      if  not inputs[inum].optional and not inputs[inum].no_size_check then
+        OUT = OUT .. [[
+  EXPECT_THROW ( filter.Execute ( largeImage]]
+        for jnum=2,#inputs do
+         if jnum == inum then
+           OUT = OUT .. [[, smallImage]]
+         elseif not inputs[jnum].optional then
+           OUT = OUT .. [[, largeImage]]
+         end
+        end
+        OUT = OUT .. [[ ), itk::simple::GenericException);
+]]
+      end
+     end
+
+  end)
+}
+
+$(foreach tests
+TEST(BasicFilters,${name}_${tag})
+  { // BEGIN FOR EACH TEST
+  /* TAG: ${tag} DESCRIPTION: ${description} */
+
+  itk::simple::ImageFileReader reader;
+  itk::simple::${name} filter;
+  itk::simple::Image output;
+  itk::simple::HashImageFilter hasher;
+  std::string inputSHA1hash;
+
+  std::vector<itk::simple::Image> inputs;
+  std::vector<std::string> inputFileNames;
+
+$(for inum=1,#inputs do
+    OUT=OUT..[[
+  inputFileNames.push_back( "]]..inputs[inum]..[["  );
+]]
+end)
+
+  for ( unsigned int i = 0; i < inputFileNames.size(); ++i )
+    {
+    ASSERT_NO_THROW ( inputs.push_back( reader.SetFileName ( dataFinder.GetFile ( inputFileNames[i]  ) ).Execute() ) ) << "Failed to load " << inputFileNames[i] << " from " << dataFinder.GetFile ( inputFileNames[i]  );
+
+$(if inputA_cast then
+      OUT=[[
+      if ( i == 0 )
+        {
+          ASSERT_NO_THROW( inputs[i]  = itk::simple::Cast( inputs[i], itk::simple::${inputA_cast } ) ) << "Failed to cast inputA to ${inputA_cast}";
+        }
+]] end)$(if inputB_cast then
+      OUT=[[
+    if ( i == 1 )
+      {
+      ASSERT_NO_THROW( inputs[i] = itk::simple::Cast( inputs[i], itk::simple::${inputB_cast } ) ) << "Failed to cast inputB to ${inputB_cast}";
+      }
+]] end)
+    ASSERT_TRUE ( inputs[i].GetITKBase() != NULL ) << "Could not read " << inputFileNames[i];
+    }
+
+    if ( !inputs.empty() )
+      {
+      inputSHA1hash =  itk::simple::Hash( inputs[0] );
+      }
+
+  $(if (not no_procedure) or (no_procedure ==0) then
+OUT=[=[
+
+      // Do we get the same image back, if we use the functional interface?
+      itk::simple::Image fromFunctional( 0, 0, itk::simple::sitkUInt8 );
+      itk::simple::Image fromProcedural( 0, 0, itk::simple::sitkUInt8 );
+      EXPECT_NO_THROW ( fromProcedural = filter.Execute ( $(if #inputs > 0 then OUT=[[inputs[0] ]] end)$(for inum=1,#inputs-1 do OUT=OUT..", inputs["..inum.."]" end) ) ) << "Procedural interface to ${name}";
+      EXPECT_NO_THROW ( fromFunctional = itk::simple::${name:gsub("ImageFilter$", ""):gsub("Filter$", ""):gsub("ImageSource$", "Source")} ( $(if true then
+local count = 0
+if #inputs > 0 then
+  OUT=[[inputs[0] ]]
+  count = count + 1
+end
+for inum=1,#inputs-1 do
+  OUT=OUT..", inputs["..inum.."]"
+  count = count + 1
+end
+if template_type and template_type == "RegionGrowing" then
+  OUT=OUT..", std::vector< std::vector<unsigned int> >()"
+  count = count + 1
+end
+if template_code_filename and template_code_filename == "FastMarchingImageFilter" then
+  OUT=OUT..", std::vector< std::vector<unsigned int> >()"
+  count = count + 1
+end
+if template_code_filename and template_code_filename == "KernelImageFilter" then
+  OUT=OUT..[[, 1, itk::simple::sitkBall]]
+  count = count + 1
+end
+for i = 1,#members do
+  if count > 0 then
+    OUT = OUT .. ", "
+  end
+  count = count + 1
+  OUT= OUT .. members[i].default
+end
+end)) ) << "Functional interface to ${name}";
+      hasher.SetHashFunction ( itk::simple::HashImageFilter::MD5 );
+      EXPECT_EQ ( hasher.Execute ( fromProcedural ), hasher.Execute ( fromFunctional ) ) << "procedural and functional are not the same!";
+]=] end)
+
+
+$(if settings then
+OUT=[[
+$(foreach settings
+  $(if parameter == "SeedList" then
+  OUT='filter.ClearSeeds();\
+  $(for i=1,#value do OUT=OUT .. "{unsigned int __seed[] = " .. value[i] .. "; filter.AddSeed( std::vector<unsigned int>(__seed, __seed + inputs[0].GetDimension()) );}" end);'
+  elseif parameter == "TrialPoints" then
+  OUT='filter.ClearTrialPoints();\
+  $(for i=1,#value do OUT=OUT .. "{unsigned int __point[] = " .. value[i] .. "; filter.AddTrialPoint( std::vector<unsigned int>(__point, __point + inputs[0].GetDimension()) );}" end);'
+  elseif point_vec and point_vec == 1 then
+    OUT="filter.Clear${parameter}();"
+    for i=1,#value do
+      OUT=OUT.. "{unsigned int __point[] = " .. value[i].. ";"
+      OUT=OUT.."filter.Add${parameter:gsub('s([0-9]?)$','%1')}( std::vector<unsigned int>(__point, __point + inputs[0].GetDimension()) );}"
+     end
+  elseif dim_vec and dim_vec == 1 then
+  OUT='{\
+  ${type} arr[] = {'
+  for i=1,#value-1 do
+    OUT=OUT..value[i]..", "
+  end
+  OUT=OUT..value[#value]
+  OUT=OUT..'};\
+  std::vector< ${type} > vec(arr, arr + sizeof(arr)/sizeof(${type}));\
+  filter.Set${parameter} ( vec );\
+  for(unsigned int i = 0; i < filter.Get${parameter}().size(); ++i)\
+    {\
+    ASSERT_EQ ( filter.Get${parameter}()[i], vec[i] ) << "Failed to set ${parameter} to ${value}";\
+    }\
+  }'
+  else
+    if cxx_value then
+      temp = cxx_value
+    else
+      temp = value
+    end
+    OUT='filter.Set${parameter} ( ${temp} );'
+      if (not no_get_method) then
+        if (temp == "true") then
+          OUT = OUT .. '\
+  ASSERT_TRUE ( filter.Get${parameter}() ) << "Failed to set ${parameter} to ${temp}";'
+        elseif (temp == "false") then
+          OUT = OUT .. '\
+  ASSERT_FALSE ( filter.Get${parameter}() ) << "Failed to set ${parameter} to ${temp}";'
+        else
+          OUT = OUT .. '\
+  ASSERT_EQ ( ${temp}, filter.Get${parameter}() ) << "Failed to set ${parameter} to ${temp}";'
+        end
+      end
+end)
+)]]
+end)
+
+
+   filter.DebugOn();
+  ASSERT_NO_THROW ( $(if not no_return_image then OUT=[[output =]] end) filter.Execute ( $(if #inputs > 0 then OUT=[[inputs[0] ]] end)$(for inum=1,#inputs-1 do OUT=OUT..", inputs["..inum.."]" end) ) );
+
+  if ( !inputs.empty() )
+      {
+      // Check that the input is not modified
+      // This will fail if the filter is being run in-place
+      EXPECT_EQ ( inputSHA1hash,  itk::simple::Hash( inputs[0] ) ) << "Input was modified by filter.";
+
+      // Check that the input buffer is different that the output
+      // buffer, this does not check complex or label map pixel types.
+      if (GetBufferAsVoid(output) != SITK_NULLPTR && GetBufferAsVoid(inputs[0]) != SITK_NULLPTR)
+        {
+        EXPECT_NE(GetBufferAsVoid(output), GetBufferAsVoid(inputs[0]) ) << "Input buffer was copyied to output!";
+        }
+      }
+
+  $(if md5hash then
+  OUT = [[
+  // Check the hash
+  IMAGECOMPAREWITHHASH("${md5hash}",MD5,output,"Output MD5 hash failed in ${tag}");]]
+  end)
+  $(if sha1hash then
+  OUT = [[
+  // Check the hash
+  IMAGECOMPAREWITHHASH("${sha1hash}",SHA1,output,"Output SHA1 hash failed in ${tag}"); ]]
+  end) $(if tolerance then
+  OUT = [[
+ IMAGECOMPAREWITHTOLERANCE ( output, "", ${tolerance} );
+  ]]end)
+$(when measurements_results
+$(for i = 1,#measurements_results do
+  PARAMS=''
+  if measurements_results[i].parameters then
+    for pnum=1,#measurements_results[i].parameters do
+    if not pnum == 1 then
+        PARAMS=PARAM..','
+      end
+       PARAMS=PARAMS..' '..measurements_results[i].parameters[pnum]
+    end
+    PARAMS=PARAMS..' '
+  end
+  if measurements_results[i].tolerance then
+    OUT=OUT..'  EXPECT_NEAR( '..measurements_results[i].value..', filter.Get'..measurements_results[i].name..'('..PARAMS..'), '..measurements_results[i].tolerance..' ) << "Measurement failure";'
+  else
+    if (measurements_results[i].value == "true") then
+      OUT=OUT..'  EXPECT_TRUE( filter.Get'..measurements_results[i].name..'('..PARAMS..') ) << "Measurement failure";'
+    elseif (measurements_results[i].value == "false") then
+      OUT=OUT..'  EXPECT_FALSE( filter.Get'..measurements_results[i].name..'('..PARAMS..') ) << "Measurement failure"; '
+    else
+      OUT=OUT..'  EXPECT_EQ( '..measurements_results[i].value..', filter.Get'..measurements_results[i].name..'('..PARAMS..') ) << "Measurement failure";'
+    end
+  end
+  OUT=OUT..'\n'
+end))
+
+} // END FOR EACH TEST
+)
diff --git a/Testing/Unit/sitkImageIOTests.cxx b/Testing/Unit/sitkImageIOTests.cxx
new file mode 100644
index 0000000..8021d15
--- /dev/null
+++ b/Testing/Unit/sitkImageIOTests.cxx
@@ -0,0 +1,452 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include <SimpleITKTestHarness.h>
+#include <sitkImageFileReader.h>
+#include <sitkImageSeriesReader.h>
+#include <sitkImageFileWriter.h>
+#include <sitkImageSeriesWriter.h>
+#include <sitkHashImageFilter.h>
+#include <sitkPhysicalPointImageSource.h>
+
+TEST(IO,ImageFileReader) {
+
+  namespace sitk = itk::simple;
+
+  sitk::HashImageFilter hasher;
+  sitk::ImageFileReader reader;
+
+  EXPECT_EQ( reader.GetOutputPixelType(), sitk::sitkUnknown );
+
+  EXPECT_EQ( reader.GetLoadPrivateTags(), false );
+  reader.LoadPrivateTagsOn();
+  EXPECT_EQ( reader.GetLoadPrivateTags(), true );
+  reader.LoadPrivateTagsOff();
+  EXPECT_EQ( reader.GetLoadPrivateTags(), false );
+
+  reader.SetLoadPrivateTags(true);
+  EXPECT_EQ( reader.GetLoadPrivateTags(), true );
+
+  reader.SetLoadPrivateTags(false);
+  EXPECT_EQ( reader.GetLoadPrivateTags(), false );
+
+
+  typedef std::map<std::string,std::string> MapType;
+  MapType mapping;
+
+  // Configure the mapping between filename and MD5 hash
+  mapping["Input/RA-Short.nrrd"]            = "a963bd6a755b853103a2d195e01a50d3";
+  mapping["Input/RA-Float.nrrd"]            = "3ccccde44efaa3d688a86e94335c1f16";
+  mapping["Input/RA-Slice-Short.nrrd"]      = "22cdc0af7d51934a744b9c4fd4748cd1";
+  mapping["Input/RA-Slice-Float.nrrd"]      = "999078d36a4491d691cc93d8c3ed29fc";
+  mapping["Input/Ramp-Zero-One-Float.nrrd"] = "f47efe1a6f48cb5cfe1aa23232f1168b";
+  mapping["Input/Ramp-One-Zero-Float.nrrd"] = "0b18fac85955571d069b3666ff987119";
+  mapping["Input/Ramp-Up-Short.nrrd"]       = "86f2ea8a68b3069f33f2271829a30aa2";
+  mapping["Input/Ramp-Down-Short.nrrd"]     = "71f5c852a6251069fa1d60f796463343";
+  mapping["Input/STAPLE1.png"]              = "095f00a68a84df4396914fa758f34dcc";
+  mapping["Input/STAPLE2.png"]              = "301858f5eee39b092d28d9837f008fb8";
+
+
+  // Loop over the map, load each file, and compare the hash value
+  for ( MapType::iterator it = mapping.begin(); it != mapping.end(); ++it ) {
+    reader.SetFileName ( dataFinder.GetFile ( it->first ) );
+    EXPECT_EQ ( reader.GetFileName(), dataFinder.GetFile ( it->first ) );
+    sitk::Image image = reader.Execute();
+    ASSERT_TRUE ( image.GetITKBase() != NULL );
+    hasher.SetHashFunction ( sitk::HashImageFilter::MD5 );
+    EXPECT_EQ ( it->second, hasher.Execute ( image ) ) << " reading " << it->first;
+    // Try the functional interface
+    EXPECT_EQ ( it->second, hasher.Execute ( sitk::ReadImage ( dataFinder.GetFile ( it->first ) ) ) ) << "Functional interface";
+  }
+
+  EXPECT_EQ ( "ImageFileReader", reader.GetName() );
+  EXPECT_NO_THROW ( reader.ToString() );
+
+  std::string fileName =  dataFinder.GetFile( "Input/RA-Short.nrrd" );
+  sitk::Image image;
+
+  image = sitk::ReadImage( fileName, sitk::sitkInt32 );
+  EXPECT_EQ( image.GetPixelID(), sitk::sitkInt32 );
+  EXPECT_EQ( sitk::Hash(image), "f1045032b6862753b7e6b71771b552c40b8eaf32") << "Short to " <<  sitk::sitkInt32;
+
+  image = sitk::ReadImage( fileName, sitk::sitkVectorInt16 );
+  EXPECT_EQ( image.GetPixelID(), sitk::sitkVectorInt16 );
+  EXPECT_EQ( sitk::Hash(image), "126ea8c3ef5573ca1e4e0deece920c2c4a4f38b5") << "Short to " <<  sitk::sitkVectorInt16;
+
+  reader.SetOutputPixelType( sitk::sitkVectorInt32 );
+  EXPECT_EQ( reader.GetOutputPixelType(), sitk::sitkVectorInt32 );
+
+  reader.SetFileName( fileName );
+  image = reader.Execute();
+}
+
+TEST(IO,ImageFileWriter) {
+  namespace sitk = itk::simple;
+
+  sitk::ImageFileWriter writer;
+
+  sitk::Image img = sitk::Image(10,10, sitk::sitkUInt16);
+
+  std::string filename = dataFinder.GetOutputFile ( "IO.ImageFileWriter1.mha" );
+  writer.SetFileName(filename);
+
+  ProgressUpdate progressCmd(writer);
+  writer.AddCommand(sitk::sitkProgressEvent, progressCmd);
+
+  CountCommand abortCmd(writer);
+  writer.AddCommand(sitk::sitkAbortEvent, abortCmd);
+
+  CountCommand deleteCmd(writer);
+  writer.AddCommand(sitk::sitkDeleteEvent, deleteCmd);
+
+  CountCommand endCmd(writer);
+  writer.AddCommand(sitk::sitkEndEvent, endCmd);
+
+  CountCommand iterCmd(writer);
+  writer.AddCommand(sitk::sitkIterationEvent, iterCmd);
+
+  CountCommand startCmd(writer);
+  writer.AddCommand(sitk::sitkStartEvent, startCmd);
+
+  CountCommand userCmd(writer);
+  writer.AddCommand(sitk::sitkUserEvent, userCmd);
+
+  EXPECT_NO_THROW ( writer.Execute(img) );
+
+  EXPECT_EQ ( 1.0, progressCmd.m_Progress );
+  EXPECT_EQ ( 0, abortCmd.m_Count );
+  EXPECT_EQ ( 1, deleteCmd.m_Count );
+  EXPECT_EQ ( 1, endCmd.m_Count );
+  EXPECT_EQ ( 0, iterCmd.m_Count );
+  EXPECT_EQ ( 1, startCmd.m_Count );
+  EXPECT_EQ ( 0, userCmd.m_Count );
+
+  EXPECT_EQ ( "ImageFileWriter", writer.GetName() );
+  EXPECT_NO_THROW ( writer.ToString() );
+}
+
+TEST(IO,ReadWrite) {
+  namespace sitk = itk::simple;
+  sitk::HashImageFilter hasher;
+  sitk::ImageFileReader reader;
+  sitk::ImageFileWriter writer;
+
+  // From the command line utility
+  std::string md5 = "a963bd6a755b853103a2d195e01a50d3";
+  std::string sha1 = "126ea8c3ef5573ca1e4e0deece920c2c4a4f38b5";
+
+
+  ProgressUpdate progressCmd(reader);
+  reader.AddCommand(sitk::sitkProgressEvent, progressCmd);
+
+  CountCommand abortCmd(reader);
+  reader.AddCommand(sitk::sitkAbortEvent, abortCmd);
+
+  CountCommand deleteCmd(reader);
+  reader.AddCommand(sitk::sitkDeleteEvent, deleteCmd);
+
+  CountCommand endCmd(reader);
+  reader.AddCommand(sitk::sitkEndEvent, endCmd);
+
+  CountCommand iterCmd(reader);
+  reader.AddCommand(sitk::sitkIterationEvent, iterCmd);
+
+  CountCommand startCmd(reader);
+  reader.AddCommand(sitk::sitkStartEvent, startCmd);
+
+  CountCommand userCmd(reader);
+  reader.AddCommand(sitk::sitkUserEvent, userCmd);
+
+
+  sitk::Image image = reader.SetFileName ( dataFinder.GetFile ( "Input/RA-Short.nrrd" ) ).Execute();
+  ASSERT_TRUE ( image.GetITKBase() != NULL );
+  hasher.SetHashFunction ( sitk::HashImageFilter::MD5 );
+  EXPECT_EQ ( md5, hasher.Execute ( image ) );
+  hasher.SetHashFunction ( sitk::HashImageFilter::SHA1 );
+  EXPECT_EQ ( sha1, hasher.Execute ( image ) );
+  // JIRA SIMPLEITK-459 reader does not report any progress
+  //EXPECT_EQ ( 1.0, progressCmd.m_Progress );
+  EXPECT_EQ ( 0, abortCmd.m_Count );
+  EXPECT_EQ ( 1, deleteCmd.m_Count );
+  EXPECT_EQ ( 1, endCmd.m_Count );
+  EXPECT_EQ ( 0, iterCmd.m_Count );
+  EXPECT_EQ ( 1, startCmd.m_Count );
+  EXPECT_EQ ( 0, userCmd.m_Count );
+
+
+  // Write it out
+  std::string filename = dataFinder.GetOutputFile ( "IO.ReadWrite.nrrd" );
+  writer.SetFileName ( filename ).Execute ( image );
+  ASSERT_TRUE ( dataFinder.FileExists ( filename ) );
+
+  image = reader.SetFileName ( filename ).Execute();
+  ASSERT_TRUE ( image.GetITKBase() != NULL );
+
+  // Make sure we wrote and read the file correctly
+  hasher.SetHashFunction ( sitk::HashImageFilter::MD5 );
+  EXPECT_EQ ( md5, hasher.Execute ( image ) );
+  hasher.SetHashFunction ( sitk::HashImageFilter::SHA1 );
+  EXPECT_EQ ( sha1, hasher.Execute ( image ) );
+
+  // Again, with the functional interface
+  filename = dataFinder.GetOutputFile ( "IO.ReadWrite-Functional.nrrd" );
+  sitk::WriteImage ( image, filename );
+  ASSERT_TRUE ( dataFinder.FileExists ( filename ) );
+
+  image = reader.SetFileName ( filename ).Execute();
+  ASSERT_TRUE ( image.GetITKBase() != NULL );
+
+  // Make sure we wrote and read the file correctly
+  hasher.SetHashFunction ( sitk::HashImageFilter::MD5 );
+  EXPECT_EQ ( md5, hasher.Execute ( image ) );
+  hasher.SetHashFunction ( sitk::HashImageFilter::SHA1 );
+  EXPECT_EQ ( sha1, hasher.Execute ( image ) );
+
+}
+
+
+TEST(IO,2DFormats) {
+  itk::simple::HashImageFilter hasher;
+  itk::simple::ImageFileReader reader;
+
+  itk::simple::Image image = reader.SetFileName ( dataFinder.GetFile ( "Input/RA-Slice-Short.png" ) ).Execute();
+  ASSERT_TRUE ( image.GetITKBase() != NULL );
+  hasher.SetHashFunction ( itk::simple::HashImageFilter::SHA1 );
+  EXPECT_EQ ( "bf0f7bae60b0322222e224941c31f37a981901aa", hasher.Execute ( image ) );
+  ASSERT_EQ ( 2u, image.GetDimension() );
+  EXPECT_EQ ( 64u, image.GetWidth() );
+  EXPECT_EQ ( 64u, image.GetHeight() );
+  EXPECT_EQ ( 0u, image.GetDepth() );
+
+}
+
+namespace sitk = itk::simple;
+
+TEST(IO, SeriesReader) {
+
+  std::vector< std::string > fileNames;
+  fileNames.push_back( dataFinder.GetFile ( "Input/BlackDots.png" ) );
+  fileNames.push_back( dataFinder.GetFile ( "Input/BlackDots.png" ) );
+  fileNames.push_back( dataFinder.GetFile ( "Input/BlackDots.png" ) );
+
+  sitk::ImageSeriesReader reader;
+
+  EXPECT_THROW( reader.Execute(), sitk::GenericException );
+
+  EXPECT_EQ( reader.GetOutputPixelType(), sitk::sitkUnknown );
+  EXPECT_EQ( 0u, reader.GetFileNames().size());
+
+  ProgressUpdate progressCmd(reader);
+  reader.AddCommand(sitk::sitkProgressEvent, progressCmd);
+
+  CountCommand abortCmd(reader);
+  reader.AddCommand(sitk::sitkAbortEvent, abortCmd);
+
+  CountCommand deleteCmd(reader);
+  reader.AddCommand(sitk::sitkDeleteEvent, deleteCmd);
+
+  CountCommand endCmd(reader);
+  reader.AddCommand(sitk::sitkEndEvent, endCmd);
+
+  CountCommand iterCmd(reader);
+  reader.AddCommand(sitk::sitkIterationEvent, iterCmd);
+
+  CountCommand startCmd(reader);
+  reader.AddCommand(sitk::sitkStartEvent, startCmd);
+
+  CountCommand userCmd(reader);
+  reader.AddCommand(sitk::sitkUserEvent, userCmd);
+
+  sitk::Image image = reader.SetFileNames ( fileNames ).Execute();
+  EXPECT_EQ ( "b13c0a17109e3a5058e8f225c9ef2dbcf79ac240", sitk::Hash( image ) );
+  EXPECT_EQ( 3u, reader.GetFileNames().size());
+  EXPECT_EQ ( 3u, image.GetDimension() );
+  EXPECT_EQ ( 256u, image.GetWidth() );
+  EXPECT_EQ ( 256u, image.GetHeight() );
+  EXPECT_EQ ( 3u, image.GetDepth() );
+  EXPECT_EQ ( 1.0, progressCmd.m_Progress );
+  EXPECT_EQ ( 0, abortCmd.m_Count );
+  EXPECT_EQ ( 1, deleteCmd.m_Count );
+  EXPECT_EQ ( 1, endCmd.m_Count );
+  EXPECT_EQ ( 0, iterCmd.m_Count );
+  EXPECT_EQ ( 1, startCmd.m_Count );
+  EXPECT_EQ ( 0, userCmd.m_Count );
+
+
+  fileNames.push_back( dataFinder.GetFile ( "Input/WhiteDots.png" ));
+  image = sitk::ReadImage( fileNames );
+  EXPECT_EQ ( "62fff5903956f108fbafd506e31c1e733e527820", sitk::Hash( image ) );
+  EXPECT_EQ ( 4u, image.GetDepth() );
+
+  fileNames.resize(0);
+  fileNames.push_back( dataFinder.GetFile ( "Input/VM1111Shrink-RGB.png" ) );
+  fileNames.push_back( dataFinder.GetFile ( "Input/VM1111Shrink-RGB.png" ) );
+  fileNames.push_back( dataFinder.GetFile ( "Input/VM1111Shrink-RGB.png" ) );
+  reader.SetFileNames ( fileNames );
+  image = reader.Execute();
+  EXPECT_EQ ( 3u, image.GetDepth() );
+  EXPECT_EQ ( "bb42b8d3991132b4860adbc4b3f6c38313f52b4c", sitk::Hash( image ) );
+
+  EXPECT_EQ ( "ImageSeriesReader", reader.GetName() );
+  EXPECT_NO_THROW( reader.ToString() );
+
+  reader.SetOutputPixelType(sitk::sitkUInt8);
+  EXPECT_EQ(reader.GetOutputPixelType(), sitk::sitkUInt8);
+  image = reader.Execute();
+  EXPECT_EQ ( 3u, image.GetDepth() );
+  EXPECT_EQ ( "a51361940fdf6c33cf700e1002e5f5ca5b88cc42", sitk::Hash( image ) );
+
+  fileNames.resize(0);
+  reader.SetFileNames ( fileNames );
+  EXPECT_THROW( reader.Execute(), sitk::GenericException );
+}
+
+
+TEST(IO,Write_BadName) {
+
+  sitk::Image image = sitk::ReadImage( dataFinder.GetFile ( "Input/BlackDots.png" ) );
+  EXPECT_EQ ( "0188164c9932359b3f33f176d0d73661c4dc04a8", sitk::Hash( image ) );
+
+  ASSERT_THROW(sitk::WriteImage( image, dataFinder.GetOutputFile ( "this.isafilenamewithnoimageio" ) ),  std::exception ) << "Checking for assert on bad output image name.";
+}
+
+
+TEST(IO, DicomSeriesReader) {
+
+  std::vector< std::string > fileNames;
+  std::vector< std::string > seriesIDs;
+  std::string dicomDir;
+
+  sitk::ImageSeriesReader reader;
+
+  dicomDir = dataFinder.GetDirectory( ) + "/Input/DicomSeries";
+
+  seriesIDs = reader.GetGDCMSeriesIDs( dicomDir );
+
+  ASSERT_FALSE ( seriesIDs.empty() );
+  EXPECT_EQ( "1.2.840.113619.2.133.1762890640.1886.1055165015.999", seriesIDs[0] );
+
+  fileNames = reader.GetGDCMSeriesFileNames( dicomDir );
+
+  reader.SetFileNames( fileNames );
+  sitk::Image image = reader.Execute();
+  EXPECT_EQ( "f5ad2854d68fc87a141e112e529d47424b58acfb", sitk::Hash( image ) );
+
+  fileNames = reader.GetGDCMSeriesFileNames( dicomDir, "1.2.840.113619.2.133.1762890640.1886.1055165015.999" );
+  EXPECT_EQ( 3u, fileNames.size() );
+
+  // When reading a series each slice has its own meta-data dictionary
+  // so the user has to decide on how to combine them, our image will
+  // return an empty dictionary.
+  std::vector< std::string > metaDataKeys = image.GetMetaDataKeys();
+  EXPECT_EQ( 0u, metaDataKeys.size() );
+}
+
+
+TEST(IO, ImageSeriesWriter )
+{
+
+  sitk::ImageSeriesWriter writer;
+
+  EXPECT_FALSE(writer.GetUseCompression());
+  writer.UseCompressionOn();
+  EXPECT_TRUE(writer.GetUseCompression());
+  writer.UseCompressionOff();
+  EXPECT_FALSE(writer.GetUseCompression());
+
+  EXPECT_NO_THROW ( writer.ToString() );
+
+
+
+  std::vector< std::string > fileNames;
+  fileNames.push_back( dataFinder.GetOutputDirectory()+"/ImageSeriesWriter_1.png" );
+  fileNames.push_back( dataFinder.GetOutputDirectory()+"/ImageSeriesWriter_2.png" );
+  fileNames.push_back( dataFinder.GetOutputDirectory()+"/ImageSeriesWriter_3.png" );
+
+  std::vector<unsigned int> size;
+  size.push_back(10);
+  size.push_back(10);
+  size.push_back(3);
+
+  sitk::Image image( size, sitk::sitkUInt8 );
+
+  EXPECT_ANY_THROW(writer.Execute(image));
+
+  writer.SetFileNames( fileNames );
+
+  EXPECT_EQ( writer.GetFileNames().size(), 3u );
+
+  EXPECT_NO_THROW( writer.Execute( image ) );
+
+  fileNames.push_back( dataFinder.GetOutputDirectory()+"/ImageSeriesWriter_4.png" );
+  EXPECT_ANY_THROW( sitk::WriteImage( image, fileNames ) );
+
+  fileNames.pop_back();
+  fileNames.pop_back();
+
+  EXPECT_ANY_THROW( sitk::WriteImage( image, fileNames ) );
+
+  fileNames.resize(0);
+  writer.SetFileNames( fileNames );
+  EXPECT_ANY_THROW(writer.Execute(image));
+
+  // Check writing DICOM series throws an exception
+  fileNames.clear();
+  fileNames.push_back( dataFinder.GetOutputDirectory()+"/ImageSeriesWriter_1.dcm" );
+  fileNames.push_back( dataFinder.GetOutputDirectory()+"/ImageSeriesWriter_2.dcm" );
+  fileNames.push_back( dataFinder.GetOutputDirectory()+"/ImageSeriesWriter_3.dcm" );
+
+  EXPECT_ANY_THROW( sitk::WriteImage( image, fileNames ) );
+
+  writer.SetFileNames(fileNames);
+  EXPECT_ANY_THROW(writer.Execute(image));
+
+  fileNames.clear();
+  fileNames.push_back( dataFinder.GetOutputDirectory()+"/ImageSeriesWriter_1.DICOM" );
+  fileNames.push_back( dataFinder.GetOutputDirectory()+"/ImageSeriesWriter_2.DICOM" );
+  fileNames.push_back( dataFinder.GetOutputDirectory()+"/ImageSeriesWriter_3.DICOM" );
+
+  EXPECT_ANY_THROW( sitk::WriteImage( image, fileNames ) );
+}
+
+
+TEST(IO, VectorImageSeriesWriter )
+{
+
+
+  std::vector< std::string > fileNames;
+  fileNames.push_back( dataFinder.GetOutputDirectory()+"/VectorImageSeriesWriter_1.png" );
+  fileNames.push_back( dataFinder.GetOutputDirectory()+"/VectorImageSeriesWriter_2.png" );
+  fileNames.push_back( dataFinder.GetOutputDirectory()+"/VectorImageSeriesWriter_3.png" );
+
+  std::vector<unsigned int> size;
+  size.push_back(10);
+  size.push_back(10);
+  size.push_back(3);
+
+  sitk::Image image = sitk::PhysicalPointSource(sitk::sitkVectorUInt8, size);
+
+  sitk::ImageSeriesWriter writer;
+  writer.SetFileNames( fileNames );
+
+  EXPECT_NO_THROW( writer.Execute( image ) );
+
+
+  sitk::Image result = sitk::ReadImage(fileNames[0]);
+
+  EXPECT_EQ ( "1729319806705e94181c9b9f4bd5e0ac854935db", sitk::Hash( result ) );
+}
diff --git a/Testing/Unit/sitkImageRegistrationMethodTests.cxx b/Testing/Unit/sitkImageRegistrationMethodTests.cxx
new file mode 100644
index 0000000..305429d
--- /dev/null
+++ b/Testing/Unit/sitkImageRegistrationMethodTests.cxx
@@ -0,0 +1,1035 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include <SimpleITKTestHarness.h>
+#include <SimpleITK.h>
+
+#include <memory>
+
+namespace
+{
+
+
+class IterationUpdate
+  : public itk::simple::Command
+{
+public:
+  IterationUpdate( const itk::simple::ImageRegistrationMethod &m)
+    : m_Method(m)
+    {}
+
+  std::vector<double> scales;
+  std::string toString;
+
+  virtual void Execute( )
+    {
+      // use sitk's output operator for std::vector etc..
+      using itk::simple::operator<<;
+
+      // stash the stream state
+      std::ios  state(NULL);
+      state.copyfmt(std::cout);
+
+      if ( m_Method.GetOptimizerIteration() == 0 )
+        {
+        std::cout << "\tLevel: " << std::setw(3) << m_Method.GetCurrentLevel() << std::endl;
+        std::cout << "\tScales: " << m_Method.GetOptimizerScales() << std::endl;
+        std::cout << "\tLearning Rate: " <<  m_Method.GetOptimizerLearningRate() << std::endl;
+        this->scales = m_Method.GetOptimizerScales();
+        this->toString = m_Method.ToString();
+        }
+
+      std::cout << std::fixed << std::setfill(' ') << std::setprecision( 5 );
+      std::cout << std::setw(3) << m_Method.GetOptimizerIteration();
+      std::cout << " = " << std::setw(10) << m_Method.GetMetricValue();
+      std::cout << " : " << m_Method.GetOptimizerPosition();
+      if ( m_Method.GetOptimizerConvergenceValue() != 0.0 )
+        {
+        std::cout << " ( " << m_Method.GetOptimizerConvergenceValue() << " )";
+        }
+      std::cout << std::endl;
+
+      std::cout.copyfmt(state);
+    }
+
+private:
+  const itk::simple::ImageRegistrationMethod &m_Method;
+
+};
+
+}
+
+//
+//
+//
+
+TEST(Registration,ImageRegistrationMethod_Basic) {
+  // This test is to perform some basic coverage of methods.
+
+  namespace sitk = itk::simple;
+
+  sitk::ImageRegistrationMethod registration;
+  std::cout << registration.ToString();
+}
+
+
+//
+// Fixture based tests
+//
+
+namespace sitk = itk::simple;
+
+class sitkRegistrationMethodTest
+  : public ::testing::Test
+{
+public:
+
+  sitk::Image MakeGaussianBlob( const std::vector<double> &pt,
+                               const std::vector<unsigned int> &size)
+    {
+      sitk::GaussianImageSource source;
+      source.SetMean(pt);
+      source.SetScale(1.0);
+
+      std::vector<double> sigma;
+      for(unsigned int i = 0; i < size.size(); ++i)
+        {
+        sigma.push_back(size[i]/10.0);
+        }
+      source.SetSigma(sigma);
+      source.SetSize(size);
+      source.SetOutputPixelType(sitk::sitkFloat32);
+
+
+      return source.Execute();
+    }
+
+  sitk::Image MakeDualGaussianBlobs(const std::vector<double> &pt0,
+                                    const std::vector<double> &pt1,
+                                    const std::vector<unsigned int> &size)
+    {
+      sitk::GaussianImageSource source1;
+      source1.SetMean(pt0);
+      source1.SetScale(1.0);
+
+      std::vector<double> sigma;
+      for(unsigned int i = 0; i < size.size(); ++i)
+        {
+        sigma.push_back(size[i]/10.0);
+        }
+      source1.SetSigma(sigma);
+      source1.SetSize(size);
+      source1.SetOutputPixelType(sitk::sitkFloat32);
+
+      sitk::GaussianImageSource source2;
+      source2.SetMean(pt1);
+      source2.SetScale(-1.0);
+      source2.SetSigma(sigma);
+      source2.SetSize(size);
+      source2.SetOutputPixelType(sitk::sitkFloat32);
+
+      return sitk::Add(source1.Execute(), source2.Execute());
+    }
+
+protected:
+  virtual void SetUp()
+  {
+    fixedBlobs = MakeDualGaussianBlobs(v2(64,64), v2(192,192), std::vector<unsigned int>(2,256));
+    movingBlobs = MakeDualGaussianBlobs(v2(54,74), v2(192,192), std::vector<unsigned int>(2,256));
+  }
+
+
+  // virtual void TearDown() {}
+
+  sitk::Image fixedBlobs;
+  sitk::Image movingBlobs;
+
+};
+
+
+TEST_F(sitkRegistrationMethodTest, Metric_Evaluate)
+{
+  sitk::Image fixed = fixedBlobs;
+  sitk::Image moving = fixedBlobs;
+
+  sitk::ImageRegistrationMethod R;
+  R.SetInitialTransform(sitk::Transform(fixed.GetDimension(),sitk::sitkIdentity));
+
+  EXPECT_NEAR(-1.5299437083119216, R.MetricEvaluate(fixed,moving), 1e-10 );
+
+  R.SetMetricAsCorrelation();
+  EXPECT_NEAR(-1.0, R.MetricEvaluate(fixed,moving), 1e-10 );
+
+  // tolerance adjusted for i386, why is it so much more?
+  R.SetMetricAsJointHistogramMutualInformation( 20, 1.5);
+  EXPECT_NEAR(-0.52624100016564002, R.MetricEvaluate(fixed,moving), 2e-6 );
+
+  R.SetMetricAsMeanSquares();
+  EXPECT_NEAR(0.0, R.MetricEvaluate(fixed,moving), 1e-10 );
+
+  R.SetMetricAsMattesMutualInformation();
+  EXPECT_NEAR(-1.5299437083119216, R.MetricEvaluate(fixed,moving), 1e-10 );
+
+  R.SetMetricAsMeanSquares();
+
+  // test that the transforms are used
+
+  R.SetInitialTransform(sitk::TranslationTransform(fixed.GetDimension(),v2(5,-7)));
+  EXPECT_NEAR(0.0036468516797954148, R.MetricEvaluate(fixed,moving), 1e-10 );
+
+  R.SetMovingInitialTransform(sitk::TranslationTransform(fixed.GetDimension(),v2(-5,7)));
+  EXPECT_NEAR(0.0, R.MetricEvaluate(fixed,moving), 1e-10 );
+
+  R.SetFixedInitialTransform(sitk::TranslationTransform(fixed.GetDimension(),v2(-5,7)));
+  EXPECT_NEAR(0.0036468516797954148, R.MetricEvaluate(fixed,moving), 1e-10 );
+
+  sitk::ImageRegistrationMethod R2;
+  R2.SetInitialTransform(sitk::Transform(fixed.GetDimension(),sitk::sitkIdentity));
+  R2.SetMetricAsMeanSquares();
+  R2.SetMetricFixedMask(sitk::Greater(fixedBlobs,0));
+  EXPECT_NEAR(0.0091550861657971119,R2.MetricEvaluate(fixedBlobs,movingBlobs), 1e-10);
+
+  sitk::ImageRegistrationMethod R3;
+  R3.SetInitialTransform(sitk::Transform(fixed.GetDimension(),sitk::sitkIdentity));
+  R3.SetMetricAsMeanSquares();
+  R3.SetMetricMovingMask(sitk::Less(movingBlobs,0));
+  EXPECT_NEAR(3.34e-09 ,R3.MetricEvaluate(fixedBlobs,movingBlobs), 1e-10);
+}
+
+TEST_F(sitkRegistrationMethodTest, Transform_InPlaceOn)
+{
+  // This test is to check the inplace operation of the initial
+  // transform
+  sitk::ImageRegistrationMethod R;
+  EXPECT_TRUE(R.GetInitialTransformInPlace());
+
+  sitk::Image fixed = fixedBlobs;
+  sitk::Image moving = fixedBlobs;
+
+  double minStep=1e-4;
+  unsigned int numberOfIterations=100;
+  double relaxationFactor=0.5;
+  double gradientMagnitudeTolerance = 1e-10;
+  R.SetOptimizerAsRegularStepGradientDescent(1.0,
+                                             minStep,
+                                             numberOfIterations,
+                                             relaxationFactor,
+                                             gradientMagnitudeTolerance);
+
+  R.SetInterpolator(sitk::sitkLinear);
+
+  sitk::TranslationTransform tx(fixed.GetDimension());
+  tx.SetOffset(v2(1.1,-2.2));
+  R.SetInitialTransform(tx,false);
+  EXPECT_TRUE(!R.GetInitialTransformInPlace());
+
+  R.SetMetricAsMeanSquares();
+
+  IterationUpdate cmd(R);
+  R.AddCommand(sitk::sitkIterationEvent, cmd);
+
+  sitk::Transform outTx = R.Execute(fixed,moving);
+
+  EXPECT_VECTOR_DOUBLE_NEAR(v2(0.0,0.0), outTx.GetParameters(), 1e-4);
+  // expect input not to be modified
+  EXPECT_EQ(v2(1.1,-2.2), tx.GetParameters());
+
+  // optimize in place this time
+  R.SetInitialTransform(tx,true);
+  EXPECT_TRUE(R.GetInitialTransformInPlace());
+  outTx = R.Execute(fixed,moving);
+
+  EXPECT_VECTOR_DOUBLE_NEAR(v2(0.0,0.0), outTx.GetParameters(), 1e-4);
+  // expect input to have been modified
+  EXPECT_VECTOR_DOUBLE_NEAR(v2(0.0,0.0), tx.GetParameters(), 1e-4);
+
+
+  // set with const method, with inplace constant
+  const sitk::Transform &ctx =  sitk::TranslationTransform(fixed.GetDimension(),v2(0.1,-0.2));
+  R.SetInitialTransform(ctx);
+  EXPECT_TRUE(R.GetInitialTransformInPlace());
+  outTx = R.Execute(fixed,moving);
+
+  EXPECT_VECTOR_DOUBLE_NEAR(v2(0.0,0.0), outTx.GetParameters(), 1e-4);
+  // expect input not to be modified
+  EXPECT_EQ(v2(0.1,-0.2), ctx.GetParameters());
+
+}
+
+TEST_F(sitkRegistrationMethodTest, Transform_Initial)
+{
+  // This test is to check the initial transforms
+  sitk::ImageRegistrationMethod R;
+
+  sitk::Image fixed = fixedBlobs;
+  sitk::Image moving = fixedBlobs;
+
+  double minStep=1e-4;
+  unsigned int numberOfIterations=100;
+  double relaxationFactor=0.5;
+  double gradientMagnitudeTolerance = 1e-10;
+  R.SetOptimizerAsRegularStepGradientDescent(1.0,
+                                             minStep,
+                                             numberOfIterations,
+                                             relaxationFactor,
+                                             gradientMagnitudeTolerance);
+
+  R.SetInterpolator(sitk::sitkLinear);
+
+  sitk::TranslationTransform tx(fixed.GetDimension());
+  sitk::TranslationTransform txMoving(fixed.GetDimension());
+  sitk::TranslationTransform txFixed(fixed.GetDimension());
+  R.SetInitialTransform(tx,false);
+  R.SetMovingInitialTransform(txMoving);
+  R.SetFixedInitialTransform(txFixed);
+
+  R.SetMetricAsMeanSquares();
+
+  IterationUpdate cmd(R);
+  R.AddCommand(sitk::sitkIterationEvent, cmd);
+
+  sitk::Transform outTx = R.Execute(fixed,moving);
+
+  EXPECT_VECTOR_DOUBLE_NEAR(v2(0.0,0.0), outTx.GetParameters(), 1e-4);
+
+  txMoving.SetOffset(v2(0.0,3.0));
+  R.SetInitialTransform(tx,false);
+  R.SetMovingInitialTransform(txMoving);
+  R.SetFixedInitialTransform(txFixed);
+
+  outTx = R.Execute(fixed,moving);
+
+  EXPECT_VECTOR_DOUBLE_NEAR(v2(0.0,-3.0), outTx.GetParameters(), 1e-4);
+
+  txMoving.SetOffset(v2(0.0,3.0));
+  txFixed.SetOffset(v2(0.0,2.0));
+  R.SetInitialTransform(tx,false);
+  R.SetMovingInitialTransform(txMoving);
+  R.SetFixedInitialTransform(txFixed);
+
+  outTx = R.Execute(fixed,moving);
+
+  EXPECT_VECTOR_DOUBLE_NEAR(v2(0.0,-1.0), outTx.GetParameters(), 1e-4);
+
+  EXPECT_EQ(R.GetMovingInitialTransform().GetParameters(), v2(0.0,3.0));
+  EXPECT_EQ(R.GetFixedInitialTransform().GetParameters(), v2(0.0,2.0));
+
+  // test some expected exception cases
+
+  R.SetInitialTransform(tx,false);
+  R.SetMovingInitialTransform(sitk::TranslationTransform(3));
+  R.SetFixedInitialTransform(txFixed);
+
+  EXPECT_THROW(R.Execute(fixed,moving), sitk::GenericException);
+
+  R.SetInitialTransform(tx,false);
+  R.SetMovingInitialTransform(txMoving);
+  R.SetFixedInitialTransform(sitk::TranslationTransform(3));
+
+  EXPECT_THROW(R.Execute(fixed,moving), sitk::GenericException);
+
+}
+
+
+
+TEST_F(sitkRegistrationMethodTest, Mask_Test0)
+{
+  // This test is to check some excpetional cases for using masks
+  sitk::ImageRegistrationMethod R;
+
+  R.SetOptimizerAsGradientDescent(1.0, 100);
+
+  R.SetInterpolator(sitk::sitkLinear);
+
+
+  sitk::TranslationTransform tx(fixedBlobs.GetDimension());
+  R.SetInitialTransform(tx);
+
+  // wrong dimension should produce error
+  R.SetMetricFixedMask(sitk::Image(100,100,100,sitk::sitkUInt8));
+
+  EXPECT_THROW(R.Execute(fixedBlobs,movingBlobs), sitk::GenericException);
+
+  R.SetMetricFixedMask(sitk::Image());
+  // wrong dimension should produce error
+  R.SetMetricMovingMask(sitk::Image(100,100,100,sitk::sitkUInt8));
+
+  EXPECT_THROW(R.Execute(fixedBlobs,movingBlobs), sitk::GenericException);
+}
+
+
+TEST_F(sitkRegistrationMethodTest, Mask_Test1)
+{
+  // This test is to check that the metric masks have the correct
+  // effect.
+
+  sitk::ImageRegistrationMethod R;
+
+  double learningRate=2.0;
+  double minStep=1e-7;
+  unsigned int numberOfIterations=100;
+  double relaxationFactor=0.5;
+  double gradientMagnitudeTolerance=1e-8;
+  R.SetOptimizerAsRegularStepGradientDescent(learningRate,
+                                             minStep,
+                                             numberOfIterations,
+                                             relaxationFactor,
+                                             gradientMagnitudeTolerance );
+  R.SetInterpolator(sitk::sitkLinear);
+
+
+  sitk::TranslationTransform tx(fixedBlobs.GetDimension());
+  R.SetInitialTransform(tx);
+
+  R.SetMetricAsCorrelation();
+  R.SetMetricFixedMask(sitk::Cast(sitk::Greater(fixedBlobs,0),sitk::sitkFloat32));
+
+  IterationUpdate cmd(R);
+  R.AddCommand(sitk::sitkIterationEvent, cmd);
+
+  sitk::Transform outTx = R.Execute(fixedBlobs,movingBlobs);
+
+  EXPECT_VECTOR_DOUBLE_NEAR(v2(-10,10), outTx.GetParameters(), 1e-4);
+}
+
+
+TEST_F(sitkRegistrationMethodTest, Mask_Test2)
+{
+  // This test is to check that the metric masks have the correct
+  // effect.
+
+  sitk::ImageRegistrationMethod R;
+
+  double learningRate=1.0;
+  double minStep=1e-7;
+  unsigned int numberOfIterations=100;
+  double relaxationFactor=0.5;
+  double gradientMagnitudeTolerance=1e-8;
+  R.SetOptimizerAsRegularStepGradientDescent(learningRate,
+                                             minStep,
+                                             numberOfIterations,
+                                             relaxationFactor,
+                                             gradientMagnitudeTolerance );
+  R.SetInterpolator(sitk::sitkLinear);
+
+
+  sitk::TranslationTransform tx(fixedBlobs.GetDimension());
+  tx.SetOffset(v2(120,99));
+  R.SetInitialTransform(tx);
+
+  R.SetMetricAsCorrelation();
+  R.SetMetricFixedMask(sitk::Greater(fixedBlobs,0));
+  R.SetMetricMovingMask(sitk::Less(movingBlobs,0));
+
+  IterationUpdate cmd(R);
+  R.AddCommand(sitk::sitkIterationEvent, cmd);
+
+  sitk::Transform outTx = R.Execute(fixedBlobs,movingBlobs);
+
+  EXPECT_VECTOR_DOUBLE_NEAR(v2(128.0,128.0), outTx.GetParameters(), 1e-3);
+}
+
+
+TEST_F(sitkRegistrationMethodTest, VirtualDomain_Test)
+{
+  // Test usage of setting virtual domain
+
+  sitk::ImageRegistrationMethod R;
+  R.SetInterpolator(sitk::sitkLinear);
+  //R.DebugOn();
+  sitk::Image virtualImage = MakeGaussianBlob( v2(32,32), std::vector<unsigned int>(2,64) );
+
+  R.SetVirtualDomainFromImage(virtualImage);
+
+  // transform to optimize
+  sitk::TranslationTransform tx(virtualImage.GetDimension());
+  tx.SetOffset(v2(3.2,-1.2));
+  R.SetInitialTransform(tx, false);
+
+  sitk::Image fixedImage = virtualImage;
+  fixedImage.SetOrigin(v2(100, 0));
+
+  // virtual image to fixed image
+  sitk::TranslationTransform fixedTransform(fixedImage.GetDimension());
+  fixedTransform.SetOffset(v2(100, 0));
+  R.SetFixedInitialTransform(fixedTransform);
+
+  sitk::Image movingImage = virtualImage;
+  movingImage.SetOrigin(v2(0, 200));
+
+  // transform from virtual domain to moving image with "optimizing" transform
+  sitk::TranslationTransform movingTransform(movingImage.GetDimension());
+  movingTransform.SetOffset(v2(0, 200));
+  R.SetMovingInitialTransform(movingTransform);
+
+  R.SetMetricAsCorrelation();
+
+  double minStep=1e-5;
+  unsigned int numberOfIterations=100;
+  double relaxationFactor=0.75;
+  double gradientMagnitudeTolerance = 1e-20;
+  R.SetOptimizerAsRegularStepGradientDescent(.1,
+                                             minStep,
+                                             numberOfIterations,
+                                             relaxationFactor,
+                                             gradientMagnitudeTolerance);
+
+
+  IterationUpdate cmd(R);
+  R.AddCommand(sitk::sitkIterationEvent, cmd);
+
+  sitk::Transform outTx = R.Execute(fixedImage, movingImage);
+
+
+  std::cout << "-------" << std::endl;
+  std::cout << outTx.ToString() << std::endl;
+  std::cout << "Optimizer stop condition: " << R.GetOptimizerStopConditionDescription() << std::endl;
+  std::cout << " Iteration: " << R.GetOptimizerIteration() << std::endl;
+  std::cout << " Metric value: " << R.GetMetricValue() << std::endl;
+
+  EXPECT_VECTOR_DOUBLE_NEAR(v2(0.0,0.0), outTx.GetParameters(), 1e-3);
+  EXPECT_GT( R.GetOptimizerIteration(), 1u );
+
+}
+
+TEST_F(sitkRegistrationMethodTest, VirtualDomain_MultiRes_Test)
+{
+  // Test usage of setting virtual domain
+
+  sitk::ImageRegistrationMethod R;
+  R.SetInterpolator(sitk::sitkLinear);
+  //R.DebugOn();
+  sitk::Image virtualImage = MakeGaussianBlob( v3(32,32,32), std::vector<unsigned int>(3,64) );
+
+  R.SetVirtualDomainFromImage(virtualImage);
+
+  // transform to optimize
+  sitk::TranslationTransform tx(virtualImage.GetDimension());
+  tx.SetOffset(v3(5.21231, 3.2,-1.2));
+  R.SetInitialTransform(tx, false);
+
+  sitk::Image fixedImage = virtualImage;
+  fixedImage.SetOrigin(v3(1000, 100, 0));
+
+  // virtual image to fixed image
+  sitk::TranslationTransform fixedTransform(fixedImage.GetDimension());
+  fixedTransform.SetOffset(v3(1000, 100, 0));
+  R.SetFixedInitialTransform(fixedTransform);
+
+  sitk::Image movingImage = virtualImage;
+  movingImage.SetOrigin(v3(0, 200, 512));
+
+  // transform from virtual domain to moving image with "optimizing" transform
+  sitk::TranslationTransform movingTransform(movingImage.GetDimension());
+  movingTransform.SetOffset(v3(0, 200, 512));
+  R.SetMovingInitialTransform(movingTransform);
+
+  R.SetMetricAsMeanSquares();
+
+  double minStep=1e-3;
+  unsigned int numberOfIterations=10;
+  double relaxationFactor=0.6;
+  double gradientMagnitudeTolerance = 1e-10;
+  sitk::ImageRegistrationMethod::EstimateLearningRateType estimateLearningRate = sitk::ImageRegistrationMethod::Never;
+  R.SetOptimizerAsRegularStepGradientDescent(2,
+                                             minStep,
+                                             numberOfIterations,
+                                             relaxationFactor,
+                                             gradientMagnitudeTolerance,
+                                             estimateLearningRate);
+
+  std::vector<unsigned int> shrinkFactors(2);
+  shrinkFactors[0] = 8;
+  shrinkFactors[1] = 1;
+  R.SetShrinkFactorsPerLevel( shrinkFactors );
+  R.SetSmoothingSigmasPerLevel( v2(0.0, 0.0) );
+
+  R.SetOptimizerScalesFromJacobian();
+
+  IterationUpdate cmd(R);
+  R.AddCommand(sitk::sitkIterationEvent, cmd);
+
+  sitk::Transform outTx = R.Execute(fixedImage, movingImage);
+
+
+  std::cout << "-------" << std::endl;
+  std::cout << outTx.ToString() << std::endl;
+  std::cout << "Optimizer stop condition: " << R.GetOptimizerStopConditionDescription() << std::endl;
+  std::cout << " Iteration: " << R.GetOptimizerIteration() << std::endl;
+  std::cout << " Metric value: " << R.GetMetricValue() << std::endl;
+
+  EXPECT_VECTOR_DOUBLE_NEAR(v3(0.0,0.0,0.0), outTx.GetParameters(), 1e-1);
+  EXPECT_GT( R.GetOptimizerIteration(), 1u );
+
+}
+
+
+
+TEST_F(sitkRegistrationMethodTest, VirtualDomain_Parameters)
+{
+
+  sitk::ImageRegistrationMethod R;
+  R.SetInterpolator(sitk::sitkLinear);
+
+  sitk::Image virtualImage = MakeGaussianBlob( v3(32,32,32), std::vector<unsigned int>(3,64) );
+
+  std::vector<uint32_t> size(3, 64);
+
+  EXPECT_NO_THROW(
+    R.SetVirtualDomain(size,
+                       v3(0.0,0.0,0.0),
+                       v3(1.0,1.0,1.0),
+                       v9(1.0,0.0,0.0,
+                          0.0,1.0,0.0,
+                          0.0,0.0,1.0)) );
+
+  EXPECT_THROW(
+    R.SetVirtualDomain(size,
+                       v2(0.0,0.0),
+                       v3(1.0,1.0,1.0),
+                       v9(1.0,0.0,0.0,
+                          0.0,1.0,0.0,
+                          0.0,0.0,1.0)),
+    sitk::GenericException);
+
+
+  EXPECT_THROW(
+    R.SetVirtualDomain(size,
+                       v3(0.0,0.0,0.0),
+                       v2(1.0,1.0),
+                       v9(1.0,0.0,0.0,
+                          0.0,1.0,0.0,
+                          0.0,0.0,1.0)),
+    sitk::GenericException );
+
+  EXPECT_THROW(
+    R.SetVirtualDomain(size,
+                       v3(0.0,0.0,0.0),
+                       v3(1.0,1.0,1.0),
+                       v3(1.0,0.0,0.0)),
+    sitk::GenericException );
+}
+
+TEST_F(sitkRegistrationMethodTest, OptimizerWeights_Test)
+{
+  // Test the usage of optimizer weights
+
+  sitk::ImageRegistrationMethod R;
+
+  double learningRate=1.0;
+  double minStep=1e-7;
+  unsigned int numberOfIterations=100;
+  double relaxationFactor=0.5;
+  double gradientMagnitudeTolerance=1e-8;
+  R.SetOptimizerAsRegularStepGradientDescent(learningRate,
+                                             minStep,
+                                             numberOfIterations,
+                                             relaxationFactor,
+                                             gradientMagnitudeTolerance );
+  R.SetInterpolator(sitk::sitkLinear);
+
+  sitk::Image &fixedImage = fixedBlobs;
+  sitk::Image &movingImage = fixedBlobs;
+
+  sitk::TranslationTransform tx(fixedImage.GetDimension());
+  tx.SetOffset(v2(12,9));
+  R.SetInitialTransform(tx);
+
+  R.SetMetricAsCorrelation();
+
+
+
+  IterationUpdate cmd(R);
+  R.AddCommand(sitk::sitkIterationEvent, cmd);
+
+  std::cout << "check1\n";
+  R.SetOptimizerWeights(v3(1.0,2.0,3.0));
+  std::cout << "check2\n";
+  EXPECT_ANY_THROW(R.Execute(fixedImage, movingImage));
+
+  std::cout << "check3\n";
+  R.SetOptimizerWeights(v2(1.0,1e10));
+  sitk::Transform outTx = R.Execute(fixedImage, movingImage);
+
+  EXPECT_VECTOR_DOUBLE_NEAR(v2(12.0,0.0031), outTx.GetParameters(), 1e-3);
+}
+
+
+
+TEST_F(sitkRegistrationMethodTest, Optimizer_LBFGSB)
+{
+  sitk::Image image = MakeGaussianBlob( v2(64, 64), std::vector<unsigned int>(2,256) );
+
+
+  sitk::ImageRegistrationMethod R;
+  R.SetInterpolator(sitk::sitkLinear);
+
+  sitk::TranslationTransform tx(image.GetDimension());
+  tx.SetOffset(v2(-1,-2));
+  R.SetInitialTransform(tx, false);
+
+  R.SetMetricAsMeanSquares();
+  R.SetOptimizerScalesFromIndexShift();
+  R.SetOptimizerAsLBFGSB(1e-20,
+                         20,
+                         5,
+                         2000,
+                         1e10,
+                         std::numeric_limits<double>::min(),
+                         std::numeric_limits<double>::max(),
+                         true);
+
+  IterationUpdate cmd(R);
+  R.AddCommand(sitk::sitkIterationEvent, cmd);
+
+  sitk::Transform outTx = R.Execute(image, image);
+
+
+  std::cout << "-------" << std::endl;
+  std::cout << outTx.ToString() << std::endl;
+  std::cout << "Optimizer stop condition: " << R.GetOptimizerStopConditionDescription() << std::endl;
+  std::cout << " Iteration: " << R.GetOptimizerIteration() << std::endl;
+  std::cout << " Metric value: " << R.GetMetricValue() << std::endl;
+
+  EXPECT_VECTOR_DOUBLE_NEAR(v2(0.0,0.0), outTx.GetParameters(), 1e-3);
+  EXPECT_VECTOR_DOUBLE_NEAR(v2(1.0,1.0), cmd.scales, 1e-1);
+
+  tx.SetOffset(v2(-1,-2));
+  R.SetOptimizerAsLBFGSB(1e-20,
+                         1,
+                         5,
+                         2000,
+                         1e10,
+                         std::numeric_limits<double>::min(),
+                         std::numeric_limits<double>::max(),
+                         true);
+
+  outTx = R.Execute(image, image);
+  EXPECT_EQ(1u, R.GetOptimizerIteration()) << "Checking iteration.";
+}
+
+
+TEST_F(sitkRegistrationMethodTest, Optimizer_Exhaustive)
+{
+  sitk::Image image = MakeGaussianBlob( v2(64, 64), std::vector<unsigned int>(2,256) );
+
+
+  sitk::ImageRegistrationMethod R;
+  R.SetInterpolator(sitk::sitkLinear);
+
+  sitk::TranslationTransform tx(image.GetDimension());
+  tx.SetOffset(v2(-1,-2));
+  R.SetInitialTransform(tx, false);
+
+  R.SetMetricAsMeanSquares();
+
+  // Search grid of size 11x11
+  R.SetOptimizerAsExhaustive(std::vector<unsigned int>(2,5), 0.5);
+
+  IterationUpdate cmd(R);
+  R.AddCommand(sitk::sitkIterationEvent, cmd);
+
+  sitk::Transform outTx = R.Execute(image, image);
+
+
+  std::cout << "-------" << std::endl;
+  std::cout << outTx.ToString() << std::endl;
+  std::cout << "Optimizer stop condition: " << R.GetOptimizerStopConditionDescription() << std::endl;
+  std::cout << " Iteration: " << R.GetOptimizerIteration() << std::endl;
+  std::cout << " Metric value: " << R.GetMetricValue() << std::endl;
+
+  // We expect the returned metric value after registration to
+  // correspond to the best value and not necessarily to the last value
+  double metric_value = R.GetMetricValue();
+  R.SetInitialTransform(outTx);
+  EXPECT_DOUBLE_EQ(R.MetricEvaluate(image,image), metric_value);
+  //final metric value is expected to be zero as this is the same image
+  EXPECT_DOUBLE_EQ(0.0, metric_value);
+
+  EXPECT_VECTOR_DOUBLE_NEAR(v2(0.0,0.0), outTx.GetParameters(), 1e-3);
+  EXPECT_EQ(0u, cmd.scales.size());
+
+  // Execute in place
+
+  R.SetOptimizerScalesFromIndexShift();
+
+  tx.SetOffset(v2(-1,-2));
+  R.SetInitialTransform(tx, true);
+
+  R.SetOptimizerAsExhaustive( std::vector<unsigned int>(2,5), 0.5);
+
+  outTx = R.Execute(image, image);
+
+
+  std::cout << "-------" << std::endl;
+  std::cout << outTx.ToString() << std::endl;
+  std::cout << "Optimizer stop condition: " << R.GetOptimizerStopConditionDescription() << std::endl;
+  std::cout << " Iteration: " << R.GetOptimizerIteration() << std::endl;
+  std::cout << " Metric value: " << R.GetMetricValue() << std::endl;
+
+  EXPECT_VECTOR_DOUBLE_NEAR(v2(0.0,0.0), outTx.GetParameters(), 1e-3);
+  EXPECT_VECTOR_DOUBLE_NEAR(v2(1.0,1.0), cmd.scales, 1e-1);
+}
+
+
+TEST_F(sitkRegistrationMethodTest, Optimizer_Amoeba)
+{
+  sitk::Image image = MakeGaussianBlob( v2(64, 64), std::vector<unsigned int>(2,256) );
+
+
+  sitk::ImageRegistrationMethod R;
+  R.SetInterpolator(sitk::sitkLinear);
+
+  sitk::TranslationTransform tx(image.GetDimension());
+  tx.SetOffset(v2(-1,-2));
+  R.SetInitialTransform(tx, false);
+
+  R.SetMetricAsMeanSquares();
+
+  R.SetOptimizerScalesFromIndexShift();
+
+  R.SetOptimizerAsAmoeba(2.0, 200);
+
+  IterationUpdate cmd(R);
+  R.AddCommand(sitk::sitkIterationEvent, cmd);
+
+  sitk::Transform outTx = R.Execute(image, image);
+
+
+  std::cout << "-------" << std::endl;
+  std::cout << outTx.ToString() << std::endl;
+  std::cout << "Optimizer stop condition: " << R.GetOptimizerStopConditionDescription() << std::endl;
+  std::cout << " Iteration: " << R.GetOptimizerIteration() << std::endl;
+  std::cout << " Metric value: " << R.GetMetricValue() << std::endl;
+
+  EXPECT_VECTOR_DOUBLE_NEAR(v2(0.0,0.0), outTx.GetParameters(), 1e-3);
+  EXPECT_VECTOR_DOUBLE_NEAR(v2(1.0,1.0), cmd.scales, 1e-1);
+
+}
+
+
+
+TEST_F(sitkRegistrationMethodTest, Optimizer_Powell)
+{
+  sitk::Image image = MakeGaussianBlob( v2(64, 64), std::vector<unsigned int>(2,256) );
+
+
+  sitk::ImageRegistrationMethod R;
+  R.SetInterpolator(sitk::sitkLinear);
+
+  sitk::TranslationTransform tx(image.GetDimension());
+  tx.SetOffset(v2(-1,-2));
+  R.SetInitialTransform(tx, false);
+
+  R.SetMetricAsMeanSquares();
+
+  R.SetOptimizerScalesFromIndexShift();
+
+  R.SetOptimizerAsPowell(10, 50, .2, .01, .0001 );
+
+  IterationUpdate cmd(R);
+  R.AddCommand(sitk::sitkIterationEvent, cmd);
+
+  sitk::Transform outTx = R.Execute(image, image);
+
+
+  std::cout << "-------" << std::endl;
+  std::cout << outTx.ToString() << std::endl;
+  std::cout << "Optimizer stop condition: " << R.GetOptimizerStopConditionDescription() << std::endl;
+  std::cout << " Iteration: " << R.GetOptimizerIteration() << std::endl;
+  std::cout << " Metric value: " << R.GetMetricValue() << std::endl;
+
+  EXPECT_VECTOR_DOUBLE_NEAR(v2(0.0,0.0), outTx.GetParameters(), 1e-3);
+  EXPECT_VECTOR_DOUBLE_NEAR(v2(1.0,1.0), cmd.scales, 1e-1);
+
+}
+
+TEST_F(sitkRegistrationMethodTest, Optimizer_OnePlusOneEvolutionary)
+{
+  sitk::Image image = MakeGaussianBlob( v2(64, 64), std::vector<unsigned int>(2,256) );
+
+
+  sitk::ImageRegistrationMethod R;
+  R.SetInterpolator(sitk::sitkLinear);
+
+  sitk::TranslationTransform tx(image.GetDimension());
+  tx.SetOffset(v2(-1,-2));
+  R.SetInitialTransform(tx, false);
+
+  R.SetMetricAsMeanSquares();
+
+  R.SetOptimizerScalesFromIndexShift();
+
+  R.SetOptimizerAsOnePlusOneEvolutionary(200,
+                                         1.5e-4,
+                                         1.0,
+                                         1.1,
+                                         .9,
+                                         1u);
+
+  IterationUpdate cmd(R);
+  R.AddCommand(sitk::sitkIterationEvent, cmd);
+
+  sitk::Transform outTx = R.Execute(image, image);
+
+
+  std::cout << "-------" << std::endl;
+  std::cout << outTx.ToString() << std::endl;
+  std::cout << "Optimizer stop condition: " << R.GetOptimizerStopConditionDescription() << std::endl;
+  std::cout << " Iteration: " << R.GetOptimizerIteration() << std::endl;
+  std::cout << " Convergence value: " << R.GetOptimizerConvergenceValue() << std::endl;
+  std::cout << " Metric value: " << R.GetMetricValue() << std::endl;
+
+  EXPECT_VECTOR_DOUBLE_NEAR(v2(0.0,0.0), outTx.GetParameters(), 1e-3);
+  EXPECT_VECTOR_DOUBLE_NEAR(v2(1.0,1.0), cmd.scales, 1e-1);
+
+}
+
+
+TEST_F(sitkRegistrationMethodTest, Optimizer_ScalesEstimator)
+{
+  sitk::Image fixedImage = MakeDualGaussianBlobs( v2(64, 64), v2(54, 74), std::vector<unsigned int>(2,256) );
+  sitk::Image movingImage = MakeDualGaussianBlobs( v2(61.2, 73.5), v2(51.2, 83.5), std::vector<unsigned int>(2,256) );
+
+
+  sitk::ImageRegistrationMethod R;
+  R.SetInterpolator(sitk::sitkLinear);
+
+  sitk::Euler2DTransform tx;
+  R.SetInitialTransform(tx, false);
+
+  R.SetMetricAsMeanSquares();
+
+  unsigned int numberOfIterations=100;
+  double convergenceMinimumValue = 1e-6;
+  unsigned int convergenceWindowSize = 2;
+  R.SetOptimizerAsConjugateGradientLineSearch( 1.0,
+                                               numberOfIterations,
+                                               convergenceMinimumValue,
+                                               convergenceWindowSize );
+
+
+  IterationUpdate cmd(R);
+  R.AddCommand(sitk::sitkIterationEvent, cmd);
+
+  R.SetOptimizerScalesFromIndexShift();
+  sitk::Transform outTx = R.Execute(fixedImage, movingImage);
+
+  EXPECT_VECTOR_DOUBLE_NEAR(v3(0.0,-2.8,9.5), outTx.GetParameters(), 0.6);
+  EXPECT_VECTOR_DOUBLE_NEAR(v3(130049,1.0,1.0), cmd.scales, 1.0);\
+  EXPECT_TRUE( cmd.toString.find("ScalesFromIndexShift") != std::string::npos );
+
+
+  R.SetOptimizerScalesFromJacobian();
+  outTx = R.Execute(fixedImage, movingImage);
+
+  EXPECT_VECTOR_DOUBLE_NEAR(v3(0.0,-2.8,9.5), outTx.GetParameters(), 0.6);
+  EXPECT_VECTOR_DOUBLE_NEAR(v3(65025,1.0,1.0), cmd.scales, 1.0);
+  EXPECT_TRUE( cmd.toString.find("ScalesFromJacobian") != std::string::npos );
+
+
+  R.SetOptimizerScalesFromPhysicalShift();
+  outTx = R.Execute(fixedImage, movingImage);
+
+  EXPECT_VECTOR_DOUBLE_NEAR(v3(0.0,-2.8,9.5), outTx.GetParameters(), 0.6);
+  EXPECT_VECTOR_DOUBLE_NEAR(v3(130049,1.0,1.0), cmd.scales, 1.0);
+  EXPECT_TRUE( cmd.toString.find("ScalesFromPhysicalShift") != std::string::npos );
+
+  R.SetOptimizerScales(v3(200000,1.0,1.0));
+  outTx = R.Execute(fixedImage, movingImage);
+
+  EXPECT_VECTOR_DOUBLE_NEAR(v3(0.0,-2.8,9.5), outTx.GetParameters(), 0.4);
+  EXPECT_VECTOR_DOUBLE_NEAR(v3(200000,1.0,1.0), cmd.scales, 1e-10);
+
+
+}
+
+
+TEST_F(sitkRegistrationMethodTest, Optimizer_Sampling)
+{
+  sitk::Image fixedImage = MakeDualGaussianBlobs( v2(64, 64), v2(54, 74), std::vector<unsigned int>(2,256) );
+  sitk::Image movingImage = MakeDualGaussianBlobs( v2(61.2, 65.5), v2(51.2, 75.5), std::vector<unsigned int>(2,256) );
+
+  fixedImage = sitk::AdditiveGaussianNoise(fixedImage,  0.5, 0, 1u);
+
+  sitk::ImageRegistrationMethod R;
+  R.SetInterpolator(sitk::sitkLinear);
+
+  sitk::TranslationTransform tx(2u);
+  R.SetInitialTransform(tx, false);
+
+  R.SetMetricAsMeanSquares();
+
+  double minStep=1e-4;
+  unsigned int numberOfIterations=100;
+  double relaxationFactor=0.5;
+  double gradientMagnitudeTolerance = 1e-5;
+  R.SetOptimizerAsRegularStepGradientDescent(1.0,
+                                             minStep,
+                                             numberOfIterations,
+                                             relaxationFactor,
+                                             gradientMagnitudeTolerance);
+
+  IterationUpdate cmd(R);
+  R.AddCommand(sitk::sitkIterationEvent, cmd);
+
+  sitk::Transform outTx1, outTx2;
+
+
+  // set fixed seed and expect the same results
+  R.SetMetricSamplingStrategy(R.RANDOM);
+  R.SetMetricSamplingPercentage(.02,1u);
+
+  outTx1 = R.Execute(fixedImage, movingImage);
+  outTx2 = R.Execute(fixedImage, movingImage);
+
+  EXPECT_VECTOR_DOUBLE_NEAR(outTx1.GetParameters(), outTx1.GetParameters(), 1e-10) << "Same registration with fixed seed and random sampling";
+
+  // set fixed seed and expect the same results
+  R.SetMetricSamplingStrategy(R.REGULAR);
+  R.SetMetricSamplingPercentage(.02,1u);
+
+  outTx1 = R.Execute(fixedImage, movingImage);
+  outTx2 = R.Execute(fixedImage, movingImage);
+
+  EXPECT_VECTOR_DOUBLE_NEAR(outTx1.GetParameters(), outTx1.GetParameters(), 1e-10)  << "Same registration with fixed seed and regular sampling";
+
+  // set wall clock seed and expect the same results with full sampling
+  R.SetMetricSamplingStrategy(R.NONE);
+  R.SetMetricSamplingPercentage(.02,sitk::sitkWallClock);
+
+  outTx1 = R.Execute(fixedImage, movingImage);
+  outTx2 = R.Execute(fixedImage, movingImage);
+
+  EXPECT_VECTOR_DOUBLE_NEAR(outTx1.GetParameters(), outTx1.GetParameters(), 1e-10)  << "Same registration with fixed seed and regular sampling";
+
+
+  // Use wall clock random seed.
+ R.SetMetricSamplingStrategy(R.RANDOM);
+ R.SetMetricSamplingPercentage(.02,sitk::sitkWallClock);
+
+ R.Execute(fixedImage, movingImage);
+ double firstValue = R.GetMetricValue();
+ double totalDiff = 0.0;
+
+ for( unsigned int i=1; i<5; ++i)
+   {
+   R.Execute(fixedImage, movingImage);
+   totalDiff += std::abs(firstValue -R.GetMetricValue());
+   }
+ EXPECT_TRUE(totalDiff > 1e-10) << "Expect difference between metric values with random sampling\n";
+}
diff --git a/Testing/Unit/sitkImageTests.cxx b/Testing/Unit/sitkImageTests.cxx
new file mode 100644
index 0000000..35ebf44
--- /dev/null
+++ b/Testing/Unit/sitkImageTests.cxx
@@ -0,0 +1,1669 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include <SimpleITKTestHarness.h>
+
+#include <sitkImageFileReader.h>
+#include <sitkImageFileWriter.h>
+#include <sitkHashImageFilter.h>
+
+#include "sitkAddImageFilter.h"
+#include "sitkSubtractImageFilter.h"
+#include "sitkMultiplyImageFilter.h"
+
+#include "sitkImageOperators.h"
+
+#include "sitkComplexToRealImageFilter.h"
+#include "sitkComplexToImaginaryImageFilter.h"
+#include "sitkRealAndImaginaryToComplexImageFilter.h"
+#include "sitkImportImageFilter.h"
+
+#include <itkIntTypes.h>
+
+#include "itkImage.h"
+#include "itkVectorImage.h"
+#include "itkMetaDataObject.h"
+
+const double adir[] = {0.0, 0.0, 1.0,
+                       -1.0, 0.0, 0.0,
+                       0.0, -1.0, 0.0};
+
+using  itk::simple::InstantiatedPixelIDTypeList;
+namespace nsstd = itk::simple::nsstd;
+
+
+
+class Image : public ::testing::Test {
+public:
+  typedef nsstd::auto_ptr<itk::simple::Image> sitkAutoImagePointer;
+
+  virtual void SetUp() {
+    itk::ImageBase<3>::IndexType index;
+    itk::ImageBase<3>::SizeType size;
+    itk::ImageBase<3>::RegionType region;
+    itk::ImageBase<3>::PointType origin;
+    itk::ImageBase<3>::SpacingType spacing;
+    // Create an image
+    for ( int i = 0; i < 3; i++ ) {
+      index[i] = 0;
+      size[i] = 64+i;
+    }
+    origin[0] = 1.1;
+    origin[1] = 2.2;
+    origin[2] = 3.3;
+    spacing[0] = 0.5;
+    spacing[1] = 0.5;
+    spacing[2] = 1.5;
+
+    region.SetSize ( size );
+    region.SetIndex ( index );
+    itk::Image<short,3>::Pointer im = itk::Image<short,3>::New();
+    im->SetRegions ( region );
+    im->SetOrigin( origin );
+    im->SetSpacing( spacing );
+    im->Allocate();
+    im->FillBuffer ( 100 );
+    itkShortImage = im;
+    shortImage = sitkAutoImagePointer( new itk::simple::Image( im.GetPointer() ) );
+
+    itk::Image<float,3>::Pointer fim = itk::Image<float,3>::New();
+    fim->SetRegions ( region );
+    fim->SetOrigin( origin );
+    fim->SetSpacing( spacing );
+    fim->Allocate();
+    fim->FillBuffer ( 0 );
+    itkFloatImage = fim;
+    floatImage = sitkAutoImagePointer( new itk::simple::Image( fim.GetPointer() ) );
+
+    itkFloatVectorImage = FloatVectorImageType::New();
+    floatVectorImage = sitkAutoImagePointer( new itk::simple::Image( itkFloatVectorImage.GetPointer() ) );
+
+    itkFloatVector2DImage = FloatVector2DImageType::New();
+    floatVector2DImage = sitkAutoImagePointer( new itk::simple::Image( itkFloatVector2DImage ) );
+
+    directionI2D = std::vector<double>(4, 0.0 );
+    directionI3D = std::vector<double>(9, 0.0 );
+
+    directionI2D[0] = directionI2D[3] = 1.0;
+
+    directionI3D[0] = directionI3D[4] = directionI3D[8] = 1.0;
+  }
+
+  itk::ImageBase<3>::Pointer itkShortImage;
+
+  typedef itk::Image<short,3> ShortImageType;
+  sitkAutoImagePointer shortImage;
+
+  typedef itk::Image<float,3> FloatImageType;
+  sitkAutoImagePointer floatImage;
+  FloatImageType::Pointer itkFloatImage;
+
+  typedef itk::VectorImage<float,3> FloatVectorImageType;
+  sitkAutoImagePointer floatVectorImage;
+  FloatVectorImageType::Pointer itkFloatVectorImage;
+
+  typedef itk::VectorImage<float,2> FloatVector2DImageType;
+  sitkAutoImagePointer floatVector2DImage;
+  FloatVector2DImageType::Pointer itkFloatVector2DImage;
+
+  sitkAutoImagePointer differentSizedImage;
+  ShortImageType::Pointer itkDifferentSizedImage;
+
+
+  std::vector<double> directionI2D;
+  std::vector<double> directionI3D;
+
+};
+
+
+TEST_F(Image,Create) {
+  ASSERT_TRUE ( shortImage->GetITKBase() != NULL );
+  EXPECT_EQ ( shortImage->GetWidth(), itkShortImage->GetLargestPossibleRegion().GetSize()[0] ) << " Checking image width";
+  EXPECT_EQ ( shortImage->GetHeight(), itkShortImage->GetLargestPossibleRegion().GetSize()[1] ) << " Checking image height";
+  EXPECT_EQ ( shortImage->GetDepth(), itkShortImage->GetLargestPossibleRegion().GetSize()[2] ) << " Checking image depth";
+
+  EXPECT_EQ ( shortImage->GetSize()[0], shortImage->GetWidth() );
+  EXPECT_EQ ( shortImage->GetSize()[1], shortImage->GetHeight() );
+  EXPECT_EQ ( shortImage->GetSize()[2], shortImage->GetDepth() );
+
+  std::vector< unsigned int > size = shortImage->GetSize();
+
+  EXPECT_EQ ( size[0], shortImage->GetWidth() );
+  EXPECT_EQ ( size[1], shortImage->GetHeight() );
+  EXPECT_EQ ( size[2], shortImage->GetDepth() );
+
+  EXPECT_EQ ( 274560u, shortImage->GetNumberOfPixels() );
+
+}
+
+TEST_F(Image,ImageDataType) {
+
+  // this test checks that the DataType of the images are correct
+  int result;
+
+
+  result = typelist::IndexOf< InstantiatedPixelIDTypeList, itk::simple::BasicPixelID<short> >::Result;
+  EXPECT_EQ( shortImage->GetPixelIDValue(), result);
+  EXPECT_EQ( shortImage->GetPixelID(), result);
+
+  result = typelist::IndexOf< InstantiatedPixelIDTypeList, itk::simple::BasicPixelID<float> >::Result;
+  EXPECT_EQ( floatImage->GetPixelIDValue(), result );
+  EXPECT_EQ( floatImage->GetPixelID(), result );
+
+  result = typelist::IndexOf< InstantiatedPixelIDTypeList, itk::simple::VectorPixelID<float> >::Result;
+  EXPECT_EQ( floatVectorImage->GetPixelIDValue(), result );
+  EXPECT_EQ( floatVectorImage->GetPixelID(), result );
+
+  result = typelist::IndexOf< InstantiatedPixelIDTypeList, itk::simple::VectorPixelID<float> >::Result;
+  EXPECT_EQ( floatVector2DImage->GetPixelIDValue(), result );
+  EXPECT_EQ( floatVector2DImage->GetPixelID(), result );
+
+
+  result = itk::simple::PixelIDToPixelIDValue< itk::simple::BasicPixelID<short> >::Result;
+  EXPECT_EQ( shortImage->GetPixelIDValue(), result);
+  EXPECT_EQ( shortImage->GetPixelID(), result);
+
+  result = itk::simple::PixelIDToPixelIDValue< itk::simple::BasicPixelID<float> >::Result;
+  EXPECT_EQ( floatImage->GetPixelIDValue(), result );
+  EXPECT_EQ( floatImage->GetPixelID(), result );
+
+  result = itk::simple::PixelIDToPixelIDValue< itk::simple::VectorPixelID<float> >::Result;
+  EXPECT_EQ( floatVectorImage->GetPixelIDValue(), result );
+  EXPECT_EQ( floatVectorImage->GetPixelID(), result );
+
+  result = itk::simple::PixelIDToPixelIDValue< itk::simple::VectorPixelID<float> >::Result;
+  EXPECT_EQ( floatVector2DImage->GetPixelIDValue(), result );
+  EXPECT_EQ( floatVector2DImage->GetPixelID(), result );
+
+
+
+  result = typelist::IndexOf< InstantiatedPixelIDTypeList,  itk::simple::ImageTypeToPixelID<ShortImageType>::PixelIDType >::Result;
+  EXPECT_EQ( shortImage->GetPixelIDValue(), result );
+  EXPECT_EQ( shortImage->GetPixelID(), result );
+
+  result = typelist::IndexOf< InstantiatedPixelIDTypeList,  itk::simple::ImageTypeToPixelID<FloatVectorImageType>::PixelIDType >::Result;
+  EXPECT_EQ( floatVectorImage->GetPixelIDValue(), result );
+  EXPECT_EQ( floatVectorImage->GetPixelID(), result );
+
+
+  result = itk::simple::ImageTypeToPixelIDValue<ShortImageType>::Result;
+  EXPECT_EQ( shortImage->GetPixelIDValue(), result );
+  EXPECT_EQ( shortImage->GetPixelID(), result );
+
+  result = itk::simple::ImageTypeToPixelIDValue<FloatVectorImageType>::Result;
+  EXPECT_EQ( floatVectorImage->GetPixelIDValue(), result );
+  EXPECT_EQ( floatVectorImage->GetPixelID(), result );
+
+
+}
+
+TEST_F(Image,Constructors) {
+  itk::simple::HashImageFilter hasher;
+  int result;
+
+  {
+  itk::simple::Image image;
+  EXPECT_EQ ( 0u, image.GetWidth() );
+  EXPECT_EQ ( 0u, image.GetHeight() );
+  EXPECT_EQ ( 0u, image.GetDepth() );
+  EXPECT_EQ ( 0u, image.GetNumberOfPixels() );
+  }
+
+  itk::simple::Image image ( 64, 65, 66, itk::simple::sitkUInt8 );
+  EXPECT_EQ ( "08183e1b0c50fd2cf6f070b58e218443fb7d5317", hasher.SetHashFunction ( itk::simple::HashImageFilter::SHA1 ).Execute ( image ) ) << " SHA1 hash value sitkUInt8";
+  result = typelist::IndexOf< InstantiatedPixelIDTypeList, itk::simple::BasicPixelID<unsigned char> >::Result;
+  EXPECT_EQ ( image.GetPixelIDValue(), result );
+  EXPECT_EQ ( image.GetPixelIDTypeAsString(), "8-bit unsigned integer" );
+  EXPECT_EQ ( image.GetDimension(), 3u );
+  EXPECT_EQ ( 64u, image.GetWidth() );
+  EXPECT_EQ ( 65u, image.GetHeight() );
+  EXPECT_EQ ( 66u, image.GetDepth() );
+  EXPECT_EQ ( 274560u, image.GetNumberOfPixels() );
+  EXPECT_EQ( image.GetDirection(), directionI3D );
+
+  image = itk::simple::Image ( 64, 65, 66, itk::simple::sitkInt16 );
+  EXPECT_EQ ( "645b71695b94923c868e16b943d8acf8f6788617", hasher.SetHashFunction ( itk::simple::HashImageFilter::SHA1 ).Execute ( image ) ) << " SHA1 hash value sitkUInt16";
+  result = typelist::IndexOf< InstantiatedPixelIDTypeList, itk::simple::BasicPixelID<short> >::Result;
+  EXPECT_EQ ( image.GetPixelIDValue(), result );
+  EXPECT_EQ ( image.GetPixelIDTypeAsString(), "16-bit signed integer" );
+  EXPECT_EQ ( image.GetDimension(), 3u );
+  EXPECT_EQ ( 64u, image.GetWidth() );
+  EXPECT_EQ ( 65u, image.GetHeight() );
+  EXPECT_EQ ( 66u, image.GetDepth() );
+  EXPECT_EQ ( 274560u, image.GetNumberOfPixels() );
+  EXPECT_EQ( image.GetDirection(), directionI3D );
+
+  image = itk::simple::Image ( 64, 65, itk::simple::sitkUInt16 );
+  EXPECT_EQ ( "e3c464cc1b73df3f48bacf238a80f88b5ab0d3e6", hasher.SetHashFunction ( itk::simple::HashImageFilter::SHA1 ).Execute ( image ) ) << " SHA1 hash value sitkUInt16";
+  result = typelist::IndexOf< InstantiatedPixelIDTypeList, itk::simple::BasicPixelID<unsigned short> >::Result;
+  EXPECT_EQ ( image.GetPixelIDValue(), result );
+  EXPECT_EQ ( image.GetPixelIDTypeAsString(), "16-bit unsigned integer" );
+  EXPECT_EQ ( image.GetDimension(), 2u );
+  EXPECT_EQ ( 64u, image.GetWidth() );
+  EXPECT_EQ ( 65u, image.GetHeight() );
+  EXPECT_EQ ( 0u, image.GetDepth() );
+  EXPECT_EQ ( 4160u, image.GetNumberOfPixels() );
+  EXPECT_EQ ( 1u, image.GetNumberOfComponentsPerPixel() );
+  EXPECT_EQ( image.GetDirection(), directionI2D );
+
+  // Test the constructors for vector images
+  std::vector<unsigned int> s2d(2, 10);
+  std::vector<unsigned int> s3d(3, 5);
+
+  image = itk::simple::Image( s2d, itk::simple::sitkVectorUInt8 );
+
+  EXPECT_EQ ( image.GetDimension(), 2u );
+  EXPECT_EQ ( 2u, image.GetNumberOfComponentsPerPixel() );
+  image = itk::simple::Image( s3d, itk::simple::sitkVectorFloat32 );
+  EXPECT_EQ ( image.GetDimension(), 3u );
+  EXPECT_EQ ( 3u, image.GetNumberOfComponentsPerPixel() );
+
+  image = itk::simple::Image( s2d, itk::simple::sitkVectorInt16, 5 );
+  EXPECT_EQ ( image.GetDimension(), 2u );
+  EXPECT_EQ ( 5u, image.GetNumberOfComponentsPerPixel() );
+  image = itk::simple::Image( s3d, itk::simple::sitkVectorFloat64, 10 );
+  EXPECT_EQ ( image.GetDimension(), 3u );
+  EXPECT_EQ ( 10u, image.GetNumberOfComponentsPerPixel() );
+
+
+  // check for error when incorrect number of dimensions are requested
+  std::vector<unsigned int> s1d(1, 100);
+  std::vector<unsigned int> s5d(5, 100);
+  ASSERT_ANY_THROW( itk::simple::Image( s1d, itk::simple::sitkVectorFloat64 ) );
+  ASSERT_ANY_THROW( itk::simple::Image( s5d, itk::simple::sitkVectorFloat64 ) );
+
+  // check for error with bad pixelID
+  ASSERT_ANY_THROW( itk::simple::Image( s2d, itk::simple::sitkUnknown ) );
+  ASSERT_ANY_THROW( itk::simple::Image( s2d, itk::simple::PixelIDValueEnum(-100) ) );
+
+  // check for error when non-vector type requests components ( should
+  // this be an error or should we just be converted to a vector )
+  ASSERT_ANY_THROW( itk::simple::Image( s2d, itk::simple::sitkInt16, 10 ) );
+  ASSERT_ANY_THROW( itk::simple::Image( s2d, itk::simple::sitkLabelUInt8, 10 ) );
+
+  // currently we don't have a good interface to check the values of
+  // these images, let just construct these types need todo better
+  // testing!
+
+  image = itk::simple::Image ( 64, 65, 66, itk::simple::sitkLabelUInt8 );
+  EXPECT_EQ ( 64u, image.GetWidth() );
+  EXPECT_EQ ( 65u, image.GetHeight() );
+  EXPECT_EQ ( 66u, image.GetDepth() );
+  EXPECT_EQ ( 274560u, image.GetNumberOfPixels() );
+  EXPECT_EQ ( 1u, image.GetNumberOfComponentsPerPixel() );
+  EXPECT_EQ( image.GetDirection(), directionI3D );
+
+  image = itk::simple::Image ( 64, 65, 66, itk::simple::sitkLabelUInt16 );
+
+  image = itk::simple::Image ( 64, 65, 66, itk::simple::sitkLabelUInt32 );
+
+  image = itk::simple::Image ( 64, 65, 66, itk::simple::sitkVectorUInt8 );
+
+  EXPECT_EQ ( 64u, image.GetWidth() );
+  EXPECT_EQ ( 65u, image.GetHeight() );
+  EXPECT_EQ ( 66u, image.GetDepth() );
+  EXPECT_EQ ( 3u, image.GetNumberOfComponentsPerPixel() );
+
+  image = itk::simple::Image ( 64, 65, 66, itk::simple::sitkVectorUInt16 );
+  EXPECT_EQ ( 3u, image.GetNumberOfComponentsPerPixel() );
+  EXPECT_EQ ( 274560u, image.GetNumberOfPixels() );
+}
+
+TEST_F(Image,Hash) {
+  itk::simple::HashImageFilter hasher;
+  EXPECT_EQ ( "a998ea8b4999b4db9cbad033a52fe6d654211ff9", hasher.SetHashFunction ( itk::simple::HashImageFilter::SHA1 ).Execute ( *shortImage ) ) << " SHA1 hash value";
+  EXPECT_EQ ( "8cdd56962c5b3aabbfac56cd4dce1c7e", hasher.SetHashFunction ( itk::simple::HashImageFilter::MD5 ).Execute ( *shortImage ) ) << " MD5 hash value";
+
+  EXPECT_EQ ( "3b6bfcb1922bf8b29b171062ad722c82f8aa3f50", hasher.SetHashFunction ( itk::simple::HashImageFilter::SHA1 ).Execute ( *floatImage ) ) << " SHA1 hash value";
+  EXPECT_EQ ( "e5eba8af943d7911220c9f2fb9b5b9c8", hasher.SetHashFunction ( itk::simple::HashImageFilter::MD5 ).Execute ( *floatImage ) ) << " MD5 hash value";
+}
+
+TEST_F(Image,Transforms) {
+
+  // Origin is [1.1, 2.2, 3.3]
+  // Spacing is [0.5, 0.5, 1.5]
+
+  {
+  // Index to Physical Point
+  std::vector<int64_t> idx(3,1u);
+  std::vector<double> pt = shortImage->TransformIndexToPhysicalPoint(idx);
+  EXPECT_EQ(1.6, pt[0]) << " Pt to Idx [0]";
+  EXPECT_EQ(2.7, pt[1]) << " Pt to Idx [1]";
+  EXPECT_EQ(4.8, pt[2]) << " Pt to Idx [2]";
+
+
+  // Physical Point to Index
+  idx = shortImage->TransformPhysicalPointToIndex(pt);
+  EXPECT_EQ(1u, idx[0]) << " Idx to Pt [0]";
+  EXPECT_EQ(1u, idx[1]) << " Idx to Pt [1]";
+  EXPECT_EQ(1u, idx[2]) << " Idx to Pt [2]";
+  }
+
+  {
+  std::vector<double> idx(3,0.5);
+  std::vector<double> pt = shortImage->TransformContinuousIndexToPhysicalPoint(idx);
+  EXPECT_EQ(1.35, pt[0]) << " Pt to Idx [0]";
+  EXPECT_EQ(2.45, pt[1]) << " Pt to Idx [1]";
+  EXPECT_EQ(4.05, pt[2]) << " Pt to Idx [2]";
+
+  idx = shortImage->TransformPhysicalPointToContinuousIndex(pt);
+  EXPECT_EQ(.5, idx[0]) << " Idx to Pt [0]";
+  EXPECT_EQ(.5, idx[1]) << " Idx to Pt [1]";
+  EXPECT_EQ(.5, idx[2]) << " Idx to Pt [2]";
+  }
+}
+
+TEST_F(Image,Properties) {
+
+  // GetOrigin
+  std::vector<double> origin = shortImage->GetOrigin();
+  EXPECT_EQ(origin[0], 1.1) << " GetOrigin[0]";
+  EXPECT_EQ(origin[1], 2.2) << " GetOrigin[1]";
+  EXPECT_EQ(origin[2], 3.3) << " GetOrigin[2]";
+
+  // SetOrigin
+  std::vector<double> newOrigin;
+  newOrigin.push_back(0.1);
+  newOrigin.push_back(0.2);
+  newOrigin.push_back(0.3);
+  shortImage->SetOrigin( newOrigin );
+  EXPECT_EQ(shortImage->GetOrigin()[0], 0.1) << " SetOrigin[0]";
+  EXPECT_EQ(shortImage->GetOrigin()[1], 0.2) << " SetOrigin[1]";
+  EXPECT_EQ(shortImage->GetOrigin()[2], 0.3) << " SetOrigin[2]";
+  shortImage->SetOrigin( origin );
+
+  // GetSpacing
+  std::vector<double> spacing = shortImage->GetSpacing();
+  EXPECT_EQ(spacing[0], 0.5) << " GetSpacing[0]";
+  EXPECT_EQ(spacing[1], 0.5) << " GetSpacing[1]";
+  EXPECT_EQ(spacing[2], 1.5) << " GetSpacing[2]";
+
+  // SetSpacing
+  std::vector<double> newSpacing;
+  newSpacing.push_back(1.9);
+  newSpacing.push_back(2.8);
+  newSpacing.push_back(3.7);
+  shortImage->SetSpacing( newSpacing );
+  EXPECT_EQ(shortImage->GetSpacing()[0], 1.9) << " SetSpacing[0]";
+  EXPECT_EQ(shortImage->GetSpacing()[1], 2.8) << " SetSpacing[1]";
+  EXPECT_EQ(shortImage->GetSpacing()[2], 3.7) << " SetSpacing[2]";
+  shortImage->SetOrigin( spacing );
+
+  // Check Error conditions for setting Spacing and Origin
+  newSpacing.clear();
+  newSpacing.push_back( 99 );
+  newSpacing.push_back( 99 );
+  ASSERT_ANY_THROW( shortImage->SetSpacing( newSpacing ) ) << " setting with too short spacing";
+
+  newOrigin.clear();
+  newOrigin.push_back( -99.99 );
+  ASSERT_ANY_THROW( shortImage->SetOrigin( newOrigin ) ) << "setting with too short origin";
+
+  // GetDirection
+  EXPECT_EQ ( shortImage->GetDirection(), directionI3D ) << " Checking Get Direction matrix for identity";
+
+
+  // SetDirection
+  std::vector<double> vdir( adir, adir+9);
+  shortImage->SetDirection( vdir );
+  for( unsigned int i = 0 ; i < 9; ++i )
+    {
+    EXPECT_EQ ( shortImage->GetDirection()[i], vdir[i] ) << " Checking Direction matrix at index " << i;
+    }
+
+  // Check Error Conditions for setting Directions
+  ASSERT_ANY_THROW( shortImage->SetDirection( std::vector<double>( adir, adir + 4 ) ) );
+  ASSERT_ANY_THROW( shortImage->SetDirection( std::vector<double>( adir, adir + 8 ) ) );
+}
+
+namespace sitk = itk::simple;
+
+
+TEST_F(Image, CopyInformation)
+{
+
+  sitk::Image img1( 10, 20, sitk::sitkFloat32 );
+  sitk::Image img3d( 10, 10, 10, sitk::sitkUInt32 );
+
+
+  // number if dimension are different
+  EXPECT_ANY_THROW( img1.CopyInformation( img3d ) );
+
+  sitk::Image img2( 10, 10, sitk::sitkUInt16 );
+
+  // image sizes don't match
+  EXPECT_ANY_THROW( img1.CopyInformation( img2 ) );
+
+  // fix the size to match
+
+  img2 = sitk::Image( img1.GetSize(), sitk::sitkFloat64);
+  img2.SetOrigin( shortImage->GetOrigin() );
+  img2.SetSpacing( shortImage->GetSpacing() );
+
+  EXPECT_NO_THROW( img1.CopyInformation( img2 ) );
+  EXPECT_EQ( img1.GetSpacing(), img2.GetSpacing() );
+  EXPECT_EQ( img1.GetOrigin(), img2.GetOrigin() );
+  EXPECT_EQ( img1.GetDirection(), img2.GetDirection() );
+  EXPECT_EQ( img1.GetNumberOfPixels(), img2.GetNumberOfPixels() );
+}
+
+TEST_F(Image, CopyOnWrite)
+{
+  // test that a just constructed image only have 1 referecne
+  sitk::Image img( 10, 10, sitk::sitkInt16 );
+  EXPECT_EQ(static_cast<const sitk::Image *>(&img)->GetITKBase()->GetReferenceCount(), 1 )
+    << " Reference Count for just constructed Image";
+
+  // use the image from the fixture to test some copy constructor
+  EXPECT_EQ(static_cast<const sitk::Image *>(shortImage.get())->GetITKBase()->GetReferenceCount(), 2 )
+    << " Reference Count for shared shortImage initial";
+  sitk::Image img0 = *shortImage;
+  EXPECT_EQ(static_cast<const sitk::Image *>(shortImage.get())->GetITKBase()->GetReferenceCount(), 3 )
+    << " Reference Count for shared shortImage copy";
+  sitk::Image imgCopy = img0;
+  EXPECT_EQ(static_cast<const sitk::Image *>(shortImage.get())->GetITKBase()->GetReferenceCount(), 4 )
+    << " Reference Count for shared shortImage second copy";
+
+  // check set origin for copy on write
+  imgCopy.SetOrigin( std::vector<double>( 3, 2.123 ) );
+  EXPECT_EQ(static_cast<const sitk::Image *>(&imgCopy)->GetITKBase()->GetReferenceCount(), 1 )
+    << " Reference Count for copy after set origin";
+  EXPECT_EQ(static_cast<const sitk::Image *>(&img0)->GetITKBase()->GetReferenceCount(), 3 )
+    << " Reference Count for shared after set origin";
+
+  // check shallow copy on assignment
+  imgCopy = img0;
+  EXPECT_EQ(static_cast<const sitk::Image *>(&imgCopy)->GetITKBase()->GetReferenceCount(), 4 )
+    << " Reference Count for copy after assigment";
+  EXPECT_EQ(static_cast<const sitk::Image *>(&img0)->GetITKBase()->GetReferenceCount(), 4 )
+    << " Reference Count for shared after assignment";
+
+  // check copy on write with set spacing
+  imgCopy.SetSpacing( std::vector<double>( 3, 3.45 ) );
+  EXPECT_EQ(static_cast<const sitk::Image *>(&imgCopy)->GetITKBase()->GetReferenceCount(), 1 )
+    << " Reference Count for copy after set spacing";
+  EXPECT_EQ(static_cast<const sitk::Image *>(&img0)->GetITKBase()->GetReferenceCount(), 3 )
+    << " Reference Count for shared after set spacing";
+  EXPECT_EQ( sitk::Hash( imgCopy ), sitk::Hash( img0 ) ) << "Hash for shared and copy after set spacing";
+}
+
+TEST_F(Image,Operators)
+{
+
+  // the float image should begin as all zeros
+  sitk::Image imgA = *floatImage;
+  sitk::Image imgB = *floatImage;
+  sitk::Image imgC = *floatImage;
+
+  itk::Index<3> idx;
+  idx.Fill( 0 );
+
+  std::cout << "Testing Arithmetic operators" << std::endl;
+  imgA += 1; // all 1s
+  imgB = imgA;
+
+  // 2 = 1 + 1
+  imgC = imgA + imgB;
+
+  // 1 = 2 - 1
+  imgA = imgC - imgA;
+
+  float v =  dynamic_cast<itk::Image<float,3>*>( imgA.GetITKBase() )->GetPixel( idx);
+  EXPECT_EQ( v, 1 ) << "value check 1";
+
+  // 4 = 2 * 2
+  imgB = imgC * imgC;
+
+  // 2 = 4 / 2
+  imgA = imgB / imgC;
+
+  // .4 = 4 * .1
+  imgC = imgB * .1;
+
+  // 20 = .4 * 50;
+  imgA = imgC * 50;
+
+  v =  dynamic_cast<itk::Image<float,3>*>( imgA.GetITKBase() )->GetPixel( idx);
+  EXPECT_EQ( v, 20 ) << "value check 2";
+
+  // original value should have never changed
+  v =  dynamic_cast<itk::Image<float,3>*>( floatImage->GetITKBase() )->GetPixel( idx);
+  EXPECT_EQ( v, 0 ) << "value check 3";
+
+  // 0 = 20 + -20
+  imgC = imgA + -20;
+
+  // 10 = 6 + 4
+  imgB = 6 + imgB;
+
+  // 2 = 10 - 8
+  imgA = imgB - 8;
+
+  // .5 = 2 / 4
+  imgC = imgA / 4;
+
+  std::cout << "Testing Logical Operators" << std::endl;
+  imgA = ~*shortImage;
+
+  v =  dynamic_cast<itk::Image<short,3>*>( imgA.GetITKBase() )->GetPixel( idx);
+  EXPECT_EQ( v, -101 );
+
+  imgA = sitk::Image(10,10,10, sitk::sitkUInt8)+1;
+  imgB = ~imgA; // <- 253
+
+  v =  dynamic_cast<itk::Image<uint8_t,3>*>( imgB.GetITKBase() )->GetPixel( idx);
+  EXPECT_EQ( 254, v );
+
+  // 0 = 1 & 254
+  imgC = imgA & imgB;
+
+  // 254 = 254 | 0
+  imgA = imgB | imgC;
+
+  // 254 = 254 ^ 0
+  imgB = imgA ^ imgC;
+
+  // 0 = 254 ^ 254
+  imgA = imgB ^ imgA;
+
+  v =  dynamic_cast<itk::Image<uint8_t,3>*>( imgA.GetITKBase() )->GetPixel( idx);
+  EXPECT_EQ( 0 ,v ) << "value check 4";
+  v =  dynamic_cast<itk::Image<uint8_t,3>*>( imgB.GetITKBase() )->GetPixel( idx);
+  EXPECT_EQ( v, 254 ) << "value check 5";
+
+  std::cout << "Testing Compoung assignment operators" << std::endl;
+  imgA = *floatImage;
+
+  // 1.5 = 0 + 1.5
+  imgA += 1.5;
+
+  // 3.0 = 1.5 + 1.5
+  imgA += imgA;
+
+  // 0 = 1.5 - 1.5
+  imgA -= imgA;
+
+  // -8 = 0 - 8
+  imgA -= 8;
+
+  // 4 = 8 * .5
+  imgA *= .5;
+
+  // 16 = 4 * 4
+  imgA *= imgA;
+
+  // 8 = 16 / 2
+  imgA /= 2;
+
+  v =  dynamic_cast<itk::Image<float,3>*>( imgA.GetITKBase() )->GetPixel( idx);
+  EXPECT_EQ( v, 8 ) << "value check 6";
+
+  // 1 = 8 / 8
+  imgA /= imgA;
+
+  // 100 = ~~100
+  imgA = ~~*shortImage;
+
+  // 100 = 100  & 100
+  imgA &= imgA;
+
+  v =  dynamic_cast<itk::Image<short,3>*>( imgA.GetITKBase() )->GetPixel( idx);
+  EXPECT_EQ( v, 100 ) << "value check 7";
+
+  // 100 = 100 | 100
+  imgA |= *shortImage;
+
+  // 1 = 100 ^ 100
+  imgA ^= *shortImage;
+
+
+  v =  dynamic_cast<itk::Image<short,3>*>( imgA.GetITKBase() )->GetPixel( idx);
+  EXPECT_EQ( 0, v ) << "value check 8";
+}
+
+TEST_F(Image,SetPixel)
+{
+
+  // this test is designed to run all SetPixel methods
+
+  sitk::Image img = sitk::Image( 10, 10, sitk::sitkFloat64 );
+
+
+  ASSERT_NO_THROW( img.SetPixelAsDouble( std::vector<uint32_t>( 2, 0 ), 99.0 ) ) << " correct setting";
+  EXPECT_EQ( img.GetPixelAsDouble( std::vector<uint32_t>( 2, 0 ) ), 99.0 ) << "Set value check";
+  ASSERT_NO_THROW( img.SetPixelAsDouble( std::vector<uint32_t>( 3, 0 ), 99.0 ) ) << " correct setting, with extra size index";
+  EXPECT_EQ( img.GetPixelAsDouble( std::vector<uint32_t>( 2, 0 ) ), 99.0 ) << "Set value check";
+  ASSERT_ANY_THROW( img.SetPixelAsDouble( std::vector<uint32_t>( 1, 0 ), 99.0 ) ) << " too short index";
+
+  ASSERT_ANY_THROW( img.SetPixelAsInt8( std::vector<uint32_t>( 2, 0 ), 99 ) ) <<  " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsUInt8( std::vector<uint32_t>( 2, 0 ), 99u ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsInt16( std::vector<uint32_t>( 2, 0 ), 99 ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsUInt16( std::vector<uint32_t>( 2, 0 ), 99u ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsInt32( std::vector<uint32_t>( 2, 0 ), 99 ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsUInt32( std::vector<uint32_t>( 2, 0 ), 99u ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsInt64( std::vector<uint32_t>( 2, 0 ), 99 ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsUInt64( std::vector<uint32_t>( 2, 0 ), 99u ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsFloat( std::vector<uint32_t>( 2, 0 ), 99.0 ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorInt8( std::vector<uint32_t>( 2, 0 ), std::vector<int8_t>(3,99) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorUInt8( std::vector<uint32_t>( 2, 0 ), std::vector<uint8_t>(3,99u) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorInt16( std::vector<uint32_t>( 2, 0 ), std::vector<int16_t>(3,99) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorUInt16( std::vector<uint32_t>( 2, 0 ), std::vector<uint16_t>(3,99u) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorInt32( std::vector<uint32_t>( 2, 0 ), std::vector<int32_t>(3,99) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorUInt32( std::vector<uint32_t>( 2, 0 ), std::vector<uint32_t>(3,99u) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorInt64( std::vector<uint32_t>( 2, 0 ), std::vector<int64_t>(3,99) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorUInt64( std::vector<uint32_t>( 2, 0 ), std::vector<uint64_t>(3,99u) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorFloat32( std::vector<uint32_t>( 2, 0 ), std::vector<float>(3,99.0) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ), std::vector<double>(3,99.0) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsComplexFloat32( std::vector<uint32_t>( 2, 0 ), std::complex<float>(99.0,1.0) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsComplexFloat64( std::vector<uint32_t>( 2, 0 ), std::complex<float>(99, -1.0) ) ) << " Get with wrong type";
+
+
+  img = sitk::Image( 10, 10, sitk::sitkVectorFloat64 );
+
+  ASSERT_NO_THROW( img.SetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ), std::vector<double>(2,99.0 ) ) ) << " correct setting";
+  EXPECT_EQ( img.GetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ) ), std::vector<double>(2,99.0 )) << "Set value check";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ), std::vector<double>(3,99.0 ) ) ) << " too long length";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ), std::vector<double>(1,99.0 ) ) ) << " too short length";
+  ASSERT_NO_THROW( img.SetPixelAsVectorFloat64( std::vector<uint32_t>( 3, 0 ), std::vector<double>(2,98.0 ) ) ) << " correct setting, long idx ";
+  EXPECT_EQ( img.GetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ) ), std::vector<double>(2,98.0 )) << "Set value check";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorFloat64( std::vector<uint32_t>( 1, 0 ), std::vector<double>(2,98.0 ) ) ) << " too short idx ";
+
+  ASSERT_ANY_THROW( img.SetPixelAsInt8( std::vector<uint32_t>( 2, 0 ), 99 ) ) <<  " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsUInt8( std::vector<uint32_t>( 2, 0 ), 99u ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsInt16( std::vector<uint32_t>( 2, 0 ), 99 ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsUInt16( std::vector<uint32_t>( 2, 0 ), 99u ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsInt32( std::vector<uint32_t>( 2, 0 ), 99 ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsUInt32( std::vector<uint32_t>( 2, 0 ), 99u ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsInt64( std::vector<uint32_t>( 2, 0 ), 99 ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsUInt64( std::vector<uint32_t>( 2, 0 ), 99u ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsFloat( std::vector<uint32_t>( 2, 0 ), 99.0 ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsDouble( std::vector<uint32_t>( 2, 0 ), 99.0 ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorInt8( std::vector<uint32_t>( 2, 0 ), std::vector<int8_t>(3,99) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorUInt8( std::vector<uint32_t>( 2, 0 ), std::vector<uint8_t>(3,99u) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorInt16( std::vector<uint32_t>( 2, 0 ), std::vector<int16_t>(3,99) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorUInt16( std::vector<uint32_t>( 2, 0 ), std::vector<uint16_t>(3,99u) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorInt32( std::vector<uint32_t>( 2, 0 ), std::vector<int32_t>(3,99) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorUInt32( std::vector<uint32_t>( 2, 0 ), std::vector<uint32_t>(3,99u) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorInt64( std::vector<uint32_t>( 2, 0 ), std::vector<int64_t>(3,99) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorUInt64( std::vector<uint32_t>( 2, 0 ), std::vector<uint64_t>(3,99u) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorFloat32( std::vector<uint32_t>( 2, 0 ), std::vector<float>(3,99.0) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ), std::vector<double>(3,99.0) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsComplexFloat32( std::vector<uint32_t>( 2, 0 ), std::complex<float>(99.0,1.0) ) ) << " Get with wrong type";
+
+
+  img = sitk::Image( 10, 10, sitk::sitkLabelUInt8 );
+
+  try
+    {
+    img.SetPixelAsUInt8( std::vector<uint32_t>( 2, 0 ), 99u );
+    }
+  catch( std::exception &e)
+    {
+    std::cerr << e.what() << std::endl;
+    }
+  EXPECT_EQ( img.GetPixelAsUInt8( std::vector<uint32_t>( 2, 0 ) ), 99.0 ) << "Set value check";
+  ASSERT_NO_THROW( img.SetPixelAsUInt8( std::vector<uint32_t>( 3, 0 ), 99u ) ) << " correct setting, with extra size index";
+  EXPECT_EQ( img.GetPixelAsUInt8( std::vector<uint32_t>( 2, 0 ) ), 99.0 ) << "Set value check";
+  ASSERT_ANY_THROW( img.SetPixelAsUInt8( std::vector<uint32_t>( 1, 0 ), 99u ) ) << " too short index";
+
+  std::cout << "check\n";
+  ASSERT_ANY_THROW( img.SetPixelAsInt8( std::vector<uint32_t>( 2, 0 ), 99 ) ) <<  " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsInt16( std::vector<uint32_t>( 2, 0 ), 99 ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsUInt16( std::vector<uint32_t>( 2, 0 ), 99u ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsInt32( std::vector<uint32_t>( 2, 0 ), 99 ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsUInt32( std::vector<uint32_t>( 2, 0 ), 99u ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsInt64( std::vector<uint32_t>( 2, 0 ), 99 ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsUInt64( std::vector<uint32_t>( 2, 0 ), 99u ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsFloat( std::vector<uint32_t>( 2, 0 ), 99.0 ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsDouble( std::vector<uint32_t>( 2, 0 ), 99.0 ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorInt8( std::vector<uint32_t>( 2, 0 ), std::vector<int8_t>(3,99) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorUInt8( std::vector<uint32_t>( 2, 0 ), std::vector<uint8_t>(3,99u) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorInt16( std::vector<uint32_t>( 2, 0 ), std::vector<int16_t>(3,99) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorUInt16( std::vector<uint32_t>( 2, 0 ), std::vector<uint16_t>(3,99u) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorInt32( std::vector<uint32_t>( 2, 0 ), std::vector<int32_t>(3,99) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorUInt32( std::vector<uint32_t>( 2, 0 ), std::vector<uint32_t>(3,99u) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorInt64( std::vector<uint32_t>( 2, 0 ), std::vector<int64_t>(3,99) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorUInt64( std::vector<uint32_t>( 2, 0 ), std::vector<uint64_t>(3,99u) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorFloat32( std::vector<uint32_t>( 2, 0 ), std::vector<float>(3,99.0) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ), std::vector<double>(3,99.0) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsComplexFloat32( std::vector<uint32_t>( 2, 0 ), std::complex<float>(99.0,1.0) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.SetPixelAsComplexFloat64( std::vector<uint32_t>( 2, 0 ), std::complex<float>(99, -1.0) ) ) << " Get with wrong type";
+
+
+  img = sitk::Image( 10, 10, sitk::sitkFloat64 );
+
+  // Check that out of bounds throw
+  uint32_t xOOB[] = {10,0,0};
+  uint32_t yOOB[] = {0,10,0};
+  uint32_t zOOB[] = {0,0,10};
+  ASSERT_THROW( img.SetPixelAsDouble(  std::vector<uint32_t>( xOOB, xOOB+3 ), 0.0 ), itk::simple::GenericException ) << "x out of bounds";
+  ASSERT_THROW( img.SetPixelAsDouble(  std::vector<uint32_t>( yOOB, yOOB+3 ), 0.0 ), itk::simple::GenericException ) << "y out of bounds";
+  ASSERT_NO_THROW( img.SetPixelAsDouble(  std::vector<uint32_t>( zOOB, zOOB+3 ), 0.0 ) ) << "z out of bounds, expect truncation of z-dim";
+
+}
+
+
+TEST_F(Image,GetPixel)
+{
+
+  // this test is designed to run all GetPixel methods for scalar types
+
+  sitk::Image img = sitk::Image( 10, 10, sitk::sitkInt8 );
+  EXPECT_EQ( img.GetPixelAsInt8( std::vector<uint32_t>( 2, 0 ) ), 0 ) << " Get 2D with 2D ";
+  EXPECT_EQ( img.GetPixelAsInt8( std::vector<uint32_t>( 3, 0 ) ), 0 ) << " Get 2D with 3D ";
+  ASSERT_ANY_THROW( img.GetPixelAsInt8( std::vector<uint32_t>( 1, 0 ) ) ) << " Get with idx too small";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsFloat( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsDouble( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+
+  img = sitk::Image( 10, 10, sitk::sitkUInt8 );
+  EXPECT_EQ( img.GetPixelAsUInt8( std::vector<uint32_t>( 2, 0 ) ), 0 ) << " Get 2D with 2D ";
+  EXPECT_EQ( img.GetPixelAsUInt8( std::vector<uint32_t>( 3, 0 ) ), 0 ) << " Get 2D with 3D ";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt8( std::vector<uint32_t>( 1, 0 ) ) ) << " Get with idx too small";
+  ASSERT_ANY_THROW( img.GetPixelAsInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsFloat( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsDouble( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+
+  img = sitk::Image( 10, 10, 10, sitk::sitkUInt8 );
+  EXPECT_EQ( img.GetPixelAsUInt8( std::vector<uint32_t>( 3, 0 ) ), 0 ) << " Get 3D with 3D ";
+  EXPECT_EQ( img.GetPixelAsUInt8( std::vector<uint32_t>( 4, 0 ) ), 0 ) << " Get 3D with 4D ";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with idx too small";
+  ASSERT_ANY_THROW( img.GetPixelAsInt16( std::vector<uint32_t>( 3, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt16( std::vector<uint32_t>( 3, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt32( std::vector<uint32_t>( 3, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt32( std::vector<uint32_t>( 3, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsFloat( std::vector<uint32_t>( 3, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsDouble( std::vector<uint32_t>( 3, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+
+
+  img = sitk::Image( 10, 10, sitk::sitkInt16 );
+  EXPECT_EQ( img.GetPixelAsInt16( std::vector<uint32_t>( 2, 0 ) ), 0 ) << " Get 2D with 2D ";
+  EXPECT_EQ( img.GetPixelAsInt16( std::vector<uint32_t>( 3, 0 ) ), 0 ) << " Get 2D with 3D ";
+  ASSERT_ANY_THROW( img.GetPixelAsInt16( std::vector<uint32_t>( 1, 0 ) ) ) << " Get with idx too small";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsFloat( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsDouble( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+
+  img = sitk::Image( 10, 10, sitk::sitkUInt16 );
+  EXPECT_EQ( img.GetPixelAsUInt16( std::vector<uint32_t>( 2, 0 ) ), 0 ) << " Get 2D with 2D ";
+  EXPECT_EQ( img.GetPixelAsUInt16( std::vector<uint32_t>( 3, 0 ) ), 0 ) << " Get 2D with 3D ";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt16( std::vector<uint32_t>( 1, 0 ) ) ) << " Get with idx too small";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt8( std::vector<uint32_t>( 1, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsFloat( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsDouble( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+
+  img = sitk::Image( 10, 10, sitk::sitkInt32 );
+  EXPECT_EQ( img.GetPixelAsInt32( std::vector<uint32_t>( 2, 0 ) ), 0 ) << " Get 2D with 2D ";
+  EXPECT_EQ( img.GetPixelAsInt32( std::vector<uint32_t>( 3, 0 ) ), 0 ) << " Get 2D with 3D ";
+  ASSERT_ANY_THROW( img.GetPixelAsInt32( std::vector<uint32_t>( 1, 0 ) ) ) << " Get with idx too small";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsFloat( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsDouble( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+
+  img = sitk::Image( 10, 10, sitk::sitkUInt32 );
+  EXPECT_EQ( img.GetPixelAsUInt32( std::vector<uint32_t>( 2, 0 ) ), 0u ) << " Get 2D with 2D ";
+  EXPECT_EQ( img.GetPixelAsUInt32( std::vector<uint32_t>( 3, 0 ) ), 0u ) << " Get 2D with 3D ";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt32( std::vector<uint32_t>( 1, 0 ) ) ) << " Get with idx too small";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsFloat( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsDouble( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+
+  if ( sitk::sitkInt64 != sitk::sitkUnknown )
+    {
+    img = sitk::Image( 10, 10, sitk::sitkInt64 );
+    EXPECT_EQ( img.GetPixelAsInt64( std::vector<uint32_t>( 2, 0 ) ), 0 ) << " Get 2D with 2D ";
+    EXPECT_EQ( img.GetPixelAsInt64( std::vector<uint32_t>( 3, 0 ) ), 0 ) << " Get 2D with 3D ";
+    ASSERT_ANY_THROW( img.GetPixelAsInt64( std::vector<uint32_t>( 1, 0 ) ) ) << " Get with idx too small";
+    ASSERT_ANY_THROW( img.GetPixelAsUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsFloat( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsDouble( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsComplexFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsComplexFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    }
+
+ if ( sitk::sitkUInt64 != sitk::sitkUnknown )
+    {
+    img = sitk::Image( 10, 10, sitk::sitkUInt64 );
+    EXPECT_EQ( img.GetPixelAsUInt64( std::vector<uint32_t>( 2, 0 ) ), 0u ) << " Get 2D with 2D ";
+    EXPECT_EQ( img.GetPixelAsUInt64( std::vector<uint32_t>( 3, 0 ) ), 0u ) << " Get 2D with 3D ";
+    ASSERT_ANY_THROW( img.GetPixelAsUInt64( std::vector<uint32_t>( 1, 0 ) ) ) << " Get with idx too small";
+    ASSERT_ANY_THROW( img.GetPixelAsUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsFloat( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsDouble( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsComplexFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsComplexFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    }
+
+  img = sitk::Image( 10, 10, sitk::sitkFloat32 );
+  EXPECT_EQ( img.GetPixelAsFloat( std::vector<uint32_t>( 2, 0 ) ), 0u ) << " Get 2D with 2D ";
+  EXPECT_EQ( img.GetPixelAsFloat( std::vector<uint32_t>( 3, 0 ) ), 0u ) << " Get 2D with 3D ";
+  ASSERT_ANY_THROW( img.GetPixelAsFloat( std::vector<uint32_t>( 1, 0 ) ) ) << " Get with idx too small";
+  ASSERT_ANY_THROW( img.GetPixelAsInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsDouble( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+
+  img = sitk::Image( 10, 10, sitk::sitkFloat64 );
+  EXPECT_EQ( img.GetPixelAsDouble( std::vector<uint32_t>( 2, 0 ) ), 0 ) << " Get 2D with 2D ";
+  EXPECT_EQ( img.GetPixelAsDouble( std::vector<uint32_t>( 3, 0 ) ), 0 ) << " Get 2D with 3D ";
+  ASSERT_ANY_THROW( img.GetPixelAsDouble( std::vector<uint32_t>( 1, 0 ) ) ) << " Get with idx too small";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsFloat( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+
+  img = sitk::Image( 10, 10, sitk::sitkComplexFloat32 );
+  EXPECT_EQ( img.GetPixelAsComplexFloat32( std::vector<uint32_t>( 2, 0 ) ), std::complex<float>(0.0) ) << " Get 2D with 2D ";
+  EXPECT_EQ( img.GetPixelAsComplexFloat32( std::vector<uint32_t>( 3, 0 ) ), std::complex<float>(0.0) ) << " Get 2D with 3D ";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat32( std::vector<uint32_t>( 1, 0 ) ) ) << " Get with idx too small";
+  ASSERT_ANY_THROW( img.GetPixelAsInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsDouble( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+
+  img = sitk::Image( 10, 10, sitk::sitkComplexFloat64 );
+  EXPECT_EQ( img.GetPixelAsComplexFloat64( std::vector<uint32_t>( 2, 0 ) ), std::complex<double>(0.0) ) << " Get 2D with 2D ";
+  EXPECT_EQ( img.GetPixelAsComplexFloat64( std::vector<uint32_t>( 3, 0 ) ), std::complex<double>(0.0) ) << " Get 2D with 3D ";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat64( std::vector<uint32_t>( 1, 0 ) ) ) << " Get with idx too small";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsFloat( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+
+
+
+  img = sitk::Image( 10, 10, sitk::sitkFloat64 );
+
+  // Check that out of bounds throw
+  uint32_t xOOB[] = {10,0,0};
+  uint32_t yOOB[] = {0,10,0};
+  uint32_t zOOB[] = {0,0,10};
+  ASSERT_THROW( img.GetPixelAsDouble(  std::vector<uint32_t>( xOOB, xOOB+3 ) ), itk::simple::GenericException ) << "x out of bounds";
+  ASSERT_THROW( img.GetPixelAsDouble(  std::vector<uint32_t>( yOOB, yOOB+3 ) ), itk::simple::GenericException ) << "y out of bounds";
+  ASSERT_NO_THROW( img.GetPixelAsDouble(  std::vector<uint32_t>( zOOB, zOOB+3 ) ) ) << "z out of bounds, expect truncation of z-dim";
+
+}
+
+
+
+TEST_F(Image,GetPixelVector)
+{
+
+  std::vector<unsigned char> zero(2,0);
+
+
+  // this test is designed to run all GetPixel methods for Vector types
+
+  sitk::Image img = sitk::Image( 10, 10, sitk::sitkVectorInt8 );
+  EXPECT_EQ( img.GetPixelAsVectorInt8( std::vector<uint32_t>( 2, 0 ) ), std::vector<int8_t>(zero.begin(),zero.end()) ) << " Get 2D with 2D ";
+  EXPECT_EQ( img.GetPixelAsVectorInt8( std::vector<uint32_t>( 3, 0 ) ), std::vector<int8_t>(zero.begin(),zero.end()) ) << " Get 2D with 3D ";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt8( std::vector<uint32_t>( 1, 0 ) ) ) << " Get with idx too small";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsFloat( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsDouble( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+
+  img = sitk::Image( 10, 10, sitk::sitkVectorUInt8 );
+  EXPECT_EQ( img.GetPixelAsVectorUInt8( std::vector<uint32_t>( 2, 0 ) ), std::vector<uint8_t>(zero.begin(),zero.end()) ) << " Get 2D with 2D ";
+  EXPECT_EQ( img.GetPixelAsVectorUInt8( std::vector<uint32_t>( 3, 0 ) ), std::vector<uint8_t>(zero.begin(),zero.end()) ) << " Get 2D with 3D ";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt8( std::vector<uint32_t>( 1, 0 ) ) ) << " Get with idx too small";
+  ASSERT_ANY_THROW( img.GetPixelAsInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsFloat( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsDouble( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+
+  img = sitk::Image( 10, 10, 10, sitk::sitkVectorUInt8 );
+  EXPECT_EQ( img.GetPixelAsVectorUInt8( std::vector<uint32_t>( 3, 0 ) ), std::vector<uint8_t>(3,0) ) << " Get 3D with 3D ";
+  EXPECT_EQ( img.GetPixelAsVectorUInt8( std::vector<uint32_t>( 4, 0 ) ), std::vector<uint8_t>(3,0) ) << " Get 3D with 4D ";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with idx too small";
+  ASSERT_ANY_THROW( img.GetPixelAsInt16( std::vector<uint32_t>( 3, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt16( std::vector<uint32_t>( 3, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt32( std::vector<uint32_t>( 3, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt32( std::vector<uint32_t>( 3, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsFloat( std::vector<uint32_t>( 3, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsDouble( std::vector<uint32_t>( 3, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+
+
+  img = sitk::Image( 10, 10, sitk::sitkVectorInt16 );
+  EXPECT_EQ( img.GetPixelAsVectorInt16( std::vector<uint32_t>( 2, 0 ) ), std::vector<int16_t>(zero.begin(),zero.end())  ) << " Get 2D with 2D ";
+  EXPECT_EQ( img.GetPixelAsVectorInt16( std::vector<uint32_t>( 3, 0 ) ), std::vector<int16_t>(zero.begin(),zero.end())  ) << " Get 2D with 3D ";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt16( std::vector<uint32_t>( 1, 0 ) ) ) << " Get with idx too small";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsFloat( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsDouble( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+
+  img = sitk::Image( 10, 10, sitk::sitkVectorUInt16 );
+  EXPECT_EQ( img.GetPixelAsVectorUInt16( std::vector<uint32_t>( 2, 0 ) ), std::vector<uint16_t>(zero.begin(),zero.end()) ) << " Get 2D with 2D ";
+  EXPECT_EQ( img.GetPixelAsVectorUInt16( std::vector<uint32_t>( 3, 0 ) ), std::vector<uint16_t>(zero.begin(),zero.end()) ) << " Get 2D with 3D ";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt16( std::vector<uint32_t>( 1, 0 ) ) ) << " Get with idx too small";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt8( std::vector<uint32_t>( 1, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsFloat( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsDouble( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+
+  img = sitk::Image( 10, 10, sitk::sitkVectorInt32 );
+  EXPECT_EQ( img.GetPixelAsVectorInt32( std::vector<uint32_t>( 2, 0 ) ), std::vector<int32_t>(zero.begin(),zero.end()) ) << " Get 2D with 2D ";
+  EXPECT_EQ( img.GetPixelAsVectorInt32( std::vector<uint32_t>( 3, 0 ) ), std::vector<int32_t>(zero.begin(),zero.end()) ) << " Get 2D with 3D ";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt32( std::vector<uint32_t>( 1, 0 ) ) ) << " Get with idx too small";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsFloat( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsDouble( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+
+  img = sitk::Image( 10, 10, sitk::sitkVectorUInt32 );
+  EXPECT_EQ( img.GetPixelAsVectorUInt32( std::vector<uint32_t>( 2, 0 ) ), std::vector<uint32_t>(zero.begin(),zero.end()) ) << " Get 2D with 2D ";
+  EXPECT_EQ( img.GetPixelAsVectorUInt32( std::vector<uint32_t>( 3, 0 ) ), std::vector<uint32_t>(zero.begin(),zero.end()) ) << " Get 2D with 3D ";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt32( std::vector<uint32_t>( 1, 0 ) ) ) << " Get with idx too small";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsFloat( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsDouble( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+
+  if ( sitk::sitkVectorInt64 != sitk::sitkUnknown )
+    {
+    img = sitk::Image( 10, 10, sitk::sitkVectorInt64 );
+    EXPECT_EQ( img.GetPixelAsVectorInt64( std::vector<uint32_t>( 2, 0 ) ), std::vector<int64_t>(zero.begin(),zero.end()) ) << " Get 2D with 2D ";
+    EXPECT_EQ( img.GetPixelAsVectorInt64( std::vector<uint32_t>( 3, 0 ) ), std::vector<int64_t>(zero.begin(),zero.end()) ) << " Get 2D with 3D ";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorInt64( std::vector<uint32_t>( 1, 0 ) ) ) << " Get with idx too small";
+    ASSERT_ANY_THROW( img.GetPixelAsUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsFloat( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsDouble( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsComplexFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsComplexFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    }
+
+  if ( sitk::sitkVectorUInt64 != sitk::sitkUnknown )
+    {
+    img = sitk::Image( 10, 10, sitk::sitkVectorUInt64 );
+    EXPECT_EQ( img.GetPixelAsVectorUInt64( std::vector<uint32_t>( 2, 0 ) ), std::vector<uint64_t>(zero.begin(),zero.end()) ) << " Get 2D with 2D ";
+    EXPECT_EQ( img.GetPixelAsVectorUInt64( std::vector<uint32_t>( 3, 0 ) ), std::vector<uint64_t>(zero.begin(),zero.end()) ) << " Get 2D with 3D ";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorUInt64( std::vector<uint32_t>( 1, 0 ) ) ) << " Get with idx too small";
+    ASSERT_ANY_THROW( img.GetPixelAsUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsFloat( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsDouble( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsComplexFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsComplexFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    }
+
+  img = sitk::Image( 10, 10, sitk::sitkVectorFloat32 );
+  EXPECT_EQ( img.GetPixelAsVectorFloat32( std::vector<uint32_t>( 2, 0 ) ), std::vector<float>(zero.begin(),zero.end()) ) << " Get 2D with 2D ";
+  EXPECT_EQ( img.GetPixelAsVectorFloat32( std::vector<uint32_t>( 3, 0 ) ), std::vector<float>(zero.begin(),zero.end()) ) << " Get 2D with 3D ";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat32( std::vector<uint32_t>( 1, 0 ) ) ) << " Get with idx too small";
+  ASSERT_ANY_THROW( img.GetPixelAsInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsDouble( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsComplexFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+    ASSERT_ANY_THROW( img.GetPixelAsComplexFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+
+  img = sitk::Image( 10, 10, sitk::sitkVectorFloat64 );
+  EXPECT_EQ( img.GetPixelAsVectorFloat64( std::vector<uint32_t>( 2, 0 ) ), std::vector<double>(zero.begin(),zero.end()) ) << " Get 2D with 2D ";
+  EXPECT_EQ( img.GetPixelAsVectorFloat64( std::vector<uint32_t>( 3, 0 ) ), std::vector<double>(zero.begin(),zero.end()) ) << " Get 2D with 3D ";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat64( std::vector<uint32_t>( 1, 0 ) ) ) << " Get with idx too small";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsFloat( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt8( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt16( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorUInt64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsVectorFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat32( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetPixelAsComplexFloat64( std::vector<uint32_t>( 2, 0 ) ) ) << " Get with wrong type";
+
+
+  // Check that out of bounds throw
+  uint32_t xOOB[] = {10,0,0};
+  uint32_t yOOB[] = {0,10,0};
+  uint32_t zOOB[] = {0,0,10};
+  ASSERT_THROW( img.GetPixelAsVectorFloat64(  std::vector<uint32_t>( xOOB, xOOB+3 ) ), itk::simple::GenericException ) << "x out of bounds";
+  ASSERT_THROW( img.GetPixelAsVectorFloat64(  std::vector<uint32_t>( yOOB, yOOB+3 ) ), itk::simple::GenericException ) << "y out of bounds";
+  ASSERT_NO_THROW( img.GetPixelAsVectorFloat64(  std::vector<uint32_t>( zOOB, zOOB+3 ) ) ) << "z out of bounds, expect truncation of z-dim";
+
+}
+
+TEST_F(Image, GetBuffer)
+{
+
+  // this test is designed to run all GetBuffer methods
+  sitk::Image img = sitk::Image( 10, 10, sitk::sitkUInt8 );
+  EXPECT_EQ( img.GetBufferAsUInt8()[99], 0 ) << " Get last element in buffer ";
+  ASSERT_ANY_THROW( img.GetBufferAsInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt64() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt64() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsFloat() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsDouble() ) << " Get with wrong type";
+
+  img = sitk::Image( 10, 10, sitk::sitkInt8 );
+  EXPECT_EQ( img.GetBufferAsInt8()[99], 0 ) << " Get last element in buffer ";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt8() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt64() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt64() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsFloat() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsDouble() ) << " Get with wrong type";
+
+  img = sitk::Image( 10, 10, 10, sitk::sitkUInt8 );
+  EXPECT_EQ( img.GetBufferAsUInt8()[99], 0 ) << " Get 3D with 3D ";
+  ASSERT_ANY_THROW( img.GetBufferAsInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsFloat() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsDouble() ) << " Get with wrong type";
+
+
+  img = sitk::Image( 10, 10, sitk::sitkInt16 );
+  EXPECT_EQ( img.GetBufferAsInt16()[99], 0 ) << " Get last element in buffer ";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt8() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsFloat() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsDouble() ) << " Get with wrong type";
+
+  img = sitk::Image( 10, 10, sitk::sitkUInt16 );
+  EXPECT_EQ( img.GetBufferAsUInt16()[99], 0 ) << " Get last element in buffer ";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt8() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsFloat() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsDouble() ) << " Get with wrong type";
+
+  img = sitk::Image( 10, 10, sitk::sitkInt32 );
+  EXPECT_EQ( img.GetBufferAsInt32()[99], 0 ) << " Get last element in buffer ";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt8() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsFloat() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsDouble() ) << " Get with wrong type";
+
+  img = sitk::Image( 10, 10, sitk::sitkUInt32 );
+  EXPECT_EQ( img.GetBufferAsUInt32()[99], 0u ) << " Get last element in buffer ";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt8() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsFloat() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsDouble() ) << " Get with wrong type";
+
+
+  // currently Int64 pixel types are instantiated yet,
+  // so an exception will be thrown.
+  try
+    {
+    img = sitk::Image( 10, 10, sitk::sitkUInt64 );
+    EXPECT_EQ( img.GetBufferAsUInt64()[99], 0u ) << " Get last element in buffer ";
+
+    img = sitk::Image( 10, 10, sitk::sitkInt64 );
+    EXPECT_EQ( img.GetBufferAsInt64()[99], 0u ) << " Get last element in buffer ";
+    }
+  catch ( std::exception &e)
+    {
+    std::cout << "Exception: " << e.what() << std::endl;
+    }
+
+  img = sitk::Image( 10, 10, sitk::sitkFloat32 );
+  EXPECT_EQ( img.GetBufferAsFloat()[99], 0u ) << " Get last element in buffer ";
+  ASSERT_ANY_THROW( img.GetBufferAsInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsDouble() ) << " Get with wrong type";
+
+  img = sitk::Image( 10, 10, sitk::sitkFloat64 );
+  EXPECT_EQ( img.GetBufferAsDouble()[99], 0 ) << " Get last element in buffer ";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt8() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsFloat() ) << " Get with wrong type";
+
+}
+
+
+TEST_F(Image, GetBufferVector)
+{
+
+  // this test is designed to run all GetBuffer methods for vector images
+  sitk::Image img = sitk::Image( 10, 10, sitk::sitkVectorUInt8 );
+
+  EXPECT_EQ( img.GetBufferAsUInt8()[99], 0 ) << " Get last element in buffer ";
+  ASSERT_ANY_THROW( img.GetBufferAsInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt64() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt64() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsFloat() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsDouble() ) << " Get with wrong type";
+
+  img = sitk::Image( 10, 10, sitk::sitkVectorInt8 );
+  EXPECT_EQ( img.GetBufferAsInt8()[99], 0 ) << " Get last element in buffer ";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt8() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt64() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt64() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsFloat() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsDouble() ) << " Get with wrong type";
+
+  img = sitk::Image( 10, 10, 10, sitk::sitkVectorUInt8 );
+  EXPECT_EQ( img.GetBufferAsUInt8()[99], 0 ) << " Get 3D with 3D ";
+  ASSERT_ANY_THROW( img.GetBufferAsInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsFloat() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsDouble() ) << " Get with wrong type";
+
+
+  img = sitk::Image( 10, 10, sitk::sitkVectorInt16 );
+  EXPECT_EQ( img.GetBufferAsInt16()[99], 0 ) << " Get last element in buffer ";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt8() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsFloat() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsDouble() ) << " Get with wrong type";
+
+  img = sitk::Image( 10, 10, sitk::sitkVectorUInt16 );
+  EXPECT_EQ( img.GetBufferAsUInt16()[99], 0 ) << " Get last element in buffer ";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt8() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsFloat() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsDouble() ) << " Get with wrong type";
+
+  img = sitk::Image( 10, 10, sitk::sitkVectorInt32 );
+  EXPECT_EQ( img.GetBufferAsInt32()[99], 0 ) << " Get last element in buffer ";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt8() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsFloat() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsDouble() ) << " Get with wrong type";
+
+  img = sitk::Image( 10, 10, sitk::sitkVectorUInt32 );
+  EXPECT_EQ( img.GetBufferAsUInt32()[99], 0u ) << " Get last element in buffer ";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt8() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsFloat() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsDouble() ) << " Get with wrong type";
+
+
+  // currently Int64 pixel types are instantiated yet,
+  // so an exception will be thrown.
+  try
+    {
+    img = sitk::Image( 10, 10, sitk::sitkVectorUInt64 );
+    EXPECT_EQ( img.GetBufferAsUInt64()[99], 0u ) << " Get last element in buffer ";
+
+    img = sitk::Image( 10, 10, sitk::sitkVectorInt64 );
+    EXPECT_EQ( img.GetBufferAsInt64()[99], 0u ) << " Get last element in buffer ";
+    }
+  catch ( std::exception &e)
+    {
+    std::cout << "Exception: " << e.what() << std::endl;
+    }
+
+  img = sitk::Image( 10, 10, sitk::sitkVectorFloat32 );
+  EXPECT_EQ( img.GetBufferAsFloat()[99], 0u ) << " Get last element in buffer ";
+  ASSERT_ANY_THROW( img.GetBufferAsInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsDouble() ) << " Get with wrong type";
+
+  img = sitk::Image( 10, 10, sitk::sitkVectorFloat64 );
+  EXPECT_EQ( img.GetBufferAsDouble()[99], 0 ) << " Get last element in buffer ";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt8() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt16() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsUInt32() ) << " Get with wrong type";
+  ASSERT_ANY_THROW( img.GetBufferAsFloat() ) << " Get with wrong type";
+
+}
+
+TEST_F(Image,MetaDataDictionary)
+{
+  sitk::Image img = sitk::Image( 10,10, 10, sitk::sitkFloat32 );
+
+
+  EXPECT_EQ( 0u, img.GetMetaDataKeys().size() );
+  EXPECT_FALSE( img.HasMetaDataKey("nothing") );
+  EXPECT_ANY_THROW( img.GetMetaData("anything") );
+
+  {
+  itk::DataObject::Pointer dataObject = img.GetITKBase();
+
+  itk::MetaDataDictionary &mdd = dataObject->GetMetaDataDictionary();
+
+  itk::EncapsulateMetaData<float>(mdd,"Float",static_cast<float>(1.234560F));
+  itk::EncapsulateMetaData<std::string>(mdd,"String",std::string("std::string"));
+  }
+
+  EXPECT_EQ( 2u, img.GetMetaDataKeys().size() );
+  EXPECT_FALSE( img.HasMetaDataKey("nothing") );
+  EXPECT_TRUE( img.HasMetaDataKey("Float") );
+  EXPECT_TRUE( img.HasMetaDataKey("String") );
+
+  EXPECT_EQ( "std::string", img.GetMetaData("String") );
+
+  std::vector<std::string> keys = img.GetMetaDataKeys();
+  for ( size_t i = 0; i < keys.size(); ++i )
+    {
+    std::string value;
+
+    EXPECT_NO_THROW( value = img.GetMetaData( keys[i]) );
+    std::cout << "Key = \"" << keys[i] << "\" Value = \"" << value << "\"" << std::endl;
+    }
+
+  img = sitk::Image( 10,10, 10, sitk::sitkFloat32 );
+  img.SetMetaData( "k1", "somevalue");
+
+  EXPECT_EQ( 1u, img.GetMetaDataKeys().size() );
+  EXPECT_TRUE( img.HasMetaDataKey("k1") );
+  EXPECT_EQ( "somevalue", img.GetMetaData("k1") );
+
+  EXPECT_FALSE( img.EraseMetaData("wrong") );
+  EXPECT_EQ( 1u, img.GetMetaDataKeys().size() );
+  EXPECT_TRUE( img.HasMetaDataKey("k1") );
+
+  EXPECT_TRUE( img.EraseMetaData("k1") );
+  EXPECT_FALSE( img.HasMetaDataKey("k1") );
+  EXPECT_EQ( 0u, img.GetMetaDataKeys().size() );
+
+  EXPECT_FALSE( img.EraseMetaData("k1") );
+
+}
+
+
+TEST_F(Image,Mandelbrot)
+{
+  unsigned int xs = 35*100;
+  unsigned int ys = 20*100;
+
+  sitk::Image real = sitk::Image( xs, ys, sitk::sitkFloat32 );
+  sitk::Image imagine = sitk::Image( xs, ys, sitk::sitkFloat32 );
+
+  for (unsigned int i = 0; i < xs; ++i )
+    {
+    for ( unsigned int j = 0; j < ys; ++j )
+      {
+      std::vector<unsigned int> idx(2);
+      idx[0] = i;
+      idx[1] = j;
+
+      real.SetPixelAsFloat( idx, -2.5 + ( double(i)/xs ) * 3.5 );
+      imagine.SetPixelAsFloat( idx, -1 + ( double(j)/ys ) * 2 );
+      }
+    }
+
+  sitk::Image C = sitk::RealAndImaginaryToComplex( real, imagine );
+  std::cout << "Generated C" << std::endl;
+
+  // initial image filled with 0s
+  sitk::Image img( xs, ys, sitk::sitkComplexFloat32 );
+
+  for ( unsigned int i = 0; i < 25; ++i )
+    {
+    img *= img;
+    img += C;
+    }
+
+  sitk::Image R = sitk::ComplexToReal( img );
+  sitk::Image I = sitk::ComplexToImaginary( img );
+  img = R*R + I*I;
+
+  sitk::WriteImage( img, "mandelbrot.nrrd" );
+}
diff --git a/Testing/Unit/sitkImageTests.java b/Testing/Unit/sitkImageTests.java
new file mode 100644
index 0000000..7795ad7
--- /dev/null
+++ b/Testing/Unit/sitkImageTests.java
@@ -0,0 +1,198 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+import java.math.BigInteger;
+import org.itk.simple.*;
+
+/* This class is needed because on some systems uint64_t gets converted to long
+ * while on others it becomes a BigInteger. */
+class BigIntegerFix
+  {
+  public static long Convert( long value )
+    {
+    return value;
+    }
+
+  public static long Convert( BigInteger value )
+    {
+    return value.longValue();
+    }
+  }
+
+class sitkImageTests
+  {
+
+  public static void main(String argv[])
+    {
+    int ntests = 2;
+    int npass = 0;
+    int nfail = 0;
+
+    System.out.println("[==========] Running Java.ImageTests");
+
+
+    System.out.println("[----------]");
+    System.out.println("[ RUN      ] Java.BasicImageTest");
+    if (BasicImageTest())
+      {
+      System.out.println("[       OK ] Java.BasicImageTest");
+      npass++;
+      }
+    else
+      {
+      System.out.println("[     FAIL ] Java.BasicImageTest");
+      nfail++;
+      }
+    System.out.println("[----------]");
+
+    System.out.println("[----------]");
+    System.out.println("[ RUN      ] Java.LabelShapeStatisticsTest");
+    if (LabelShapeStatisticsTest())
+      {
+      System.out.println("[       OK ] Java.LabelShapeStatisticsTest");
+      npass++;
+      }
+    else
+      {
+      System.out.println("[     FAIL ] Java.LabelShapeStatisticsTest");
+      nfail++;
+      }
+    System.out.println("[----------]");
+    System.out.println("[==========]");
+    if (npass == ntests)
+      {
+      System.out.println("[  PASSED  ]");
+      }
+    else
+      {
+      System.out.println("[  FAILED  ]");
+      System.exit(1);
+      }
+    }
+
+  public static boolean BasicImageTest()
+    {
+    int[] v = {1,1};
+    VectorUInt32 idx = new VectorUInt32( v.length );
+
+    for (int i = 0; i < v.length; i++)
+      {
+      idx.set( i, v[i] );
+      }
+
+    int size = 10;
+    short val = 42;
+
+    Image image = new Image(size, size, PixelIDValueEnum.sitkUInt8);
+
+    image.setPixelAsUInt8(idx, val);
+
+    try
+      {
+      if (size != image.getWidth())
+        {
+        throw new Exception("Bad width");
+        }
+      }
+    catch (Exception e)
+      {
+      return false;
+      }
+
+    short newval;
+
+    newval = image.getPixelAsUInt8(idx);
+
+    try
+      {
+      if (newval != val)
+        {
+        throw new Exception("Bad pixel value");
+        }
+      }
+    catch (Exception e)
+      {
+      return false;
+      }
+    return true;
+    }
+
+  public static boolean LabelShapeStatisticsTest()
+    {
+    int size = 10;
+    int i;
+    long j;
+    short val = 1;
+
+
+    /* Make a 10x10 test image */
+    Image image = new Image(size, size, PixelIDValueEnum.sitkUInt8);
+    VectorUInt32 idx = new VectorUInt32( 2 );
+
+    /* Fill in a 4x4 square in the middle of the image */
+    for (j=4; j<8; j++)
+      {
+      idx.set(1, j);
+      for (i=4; i<8; i++)
+        {
+        idx.set(0, i);
+        image.setPixelAsUInt8(idx, val);
+        }
+      }
+
+    try
+      {
+      /* Run statistics on the test image */
+      LabelShapeStatisticsImageFilter filter = new LabelShapeStatisticsImageFilter();
+      filter.execute(image);
+
+      VectorInt64 labels = filter.getLabels();
+      j = BigIntegerFix.Convert( filter.getNumberOfLabels() );
+      if (j != 1)
+        {
+        throw new Exception("Wrong number of labels");
+        }
+      long npix;
+      double perim;
+
+      System.out.println("Label,\t#pix,\tperimeter");
+      for (i=0; i<j; i++)
+        {
+        npix = BigIntegerFix.Convert( filter.getNumberOfPixels(labels.get(i)) );
+        perim = filter.getPerimeter( labels.get(i) );
+        System.out.format( "%d,\t%d,\t%f\n", labels.get(i), npix, perim );
+
+        /* The first (and only) label should have 16 pixels */
+        if (i==0)
+          {
+          if (npix != 16)
+            {
+            throw new Exception("Wrong number of pixels");
+            }
+          }
+        }
+      }
+    catch (Exception e)
+      {
+      return false;
+      }
+
+    return true;
+  }
+
+}
diff --git a/Testing/Unit/sitkImageTests.py b/Testing/Unit/sitkImageTests.py
new file mode 100644
index 0000000..115c453
--- /dev/null
+++ b/Testing/Unit/sitkImageTests.py
@@ -0,0 +1,83 @@
+#==========================================================================
+#
+#   Copyright Insight Software Consortium
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#          http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#==========================================================================*/
+
+from __future__ import print_function
+import unittest
+
+import SimpleITK as sitk
+import sys
+
+
+class ImageTests(unittest.TestCase):
+    """These tests are suppose to test the python interface to the sitk::Image"""
+
+
+
+    def setUp(self):
+        pass
+
+    def test_legacy(self):
+        """ This is old testing cruft before tehe unittest enlightenment """
+
+        image = sitk.Image( 10, 10, sitk.sitkInt32 )
+
+        image + image
+        image + 1
+        1 + image
+        image - image
+        image - 1
+        1 - image
+        image * image
+        image * 1
+        1 * image
+        image / image
+        1.0 / image
+        image / 1.0
+        image // image
+        image // 1
+        1 // image
+        image & image
+        image | image
+        image ^ image
+        ~image
+
+        image += image
+        image -= image
+        image *= image
+        image /= image
+        image //= image
+
+        image = image * 0
+
+        image.SetPixel( 0, 0, 1 )
+        image[ [0,1] ]  = 2
+        image[ 9,9 ]  = 3
+        image.SetPixel( [0, 2], 4 )
+
+        self.assertEqual(image.GetPixel(1,1), 0 )
+        self.assertEqual(image.GetPixel([0,2]), 4 )
+        image[1,1]
+        image[ [ 1,1 ] ]
+
+        self.assertEqual(sum( image ), 10)
+
+        self.assertEqual(len( image ), 100)
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/Testing/Unit/sitkImportImageTest.cxx b/Testing/Unit/sitkImportImageTest.cxx
new file mode 100644
index 0000000..b905717
--- /dev/null
+++ b/Testing/Unit/sitkImportImageTest.cxx
@@ -0,0 +1,449 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include <sitkImportImageFilter.h>
+#include <sitkHashImageFilter.h>
+#include <SimpleITKTestHarness.h>
+
+// Common fixture for Import tests
+class Import
+  : public ::testing::Test {
+public:
+  virtual void SetUp() {
+    spacing1 = std::vector<double>( 3, 1.0 );
+    spacing2.push_back( 1.1 );
+    spacing2.push_back( 1.2 );
+
+    origin0 = std::vector<double>( 3, 0.0 );
+    origin1 = std::vector<double>( 3, 1.0 );
+    origin2.push_back( 2.71828183 );
+    origin2.push_back( 3.14159265 );
+    direction2D = std::vector<double>(4, 0.0 );
+    direction3D = std::vector<double>(9, 0.0 );
+
+    direction2D[0] = direction2D[3] = 1.0;
+
+    direction3D[0] = direction3D[4] = direction3D[8] = 1.0;
+  }
+
+  std::vector<double> spacing1;
+  std::vector<double> spacing2;
+
+  std::vector<double> origin0;
+  std::vector<double> origin1;
+  std::vector<double> origin2;
+
+  std::vector< uint8_t > uint8_buffer;
+  std::vector< int8_t > int8_buffer;
+  std::vector< uint16_t > uint16_buffer;
+  std::vector< int16_t > int16_buffer;
+  std::vector< uint32_t > uint32_buffer;
+  std::vector< int32_t > int32_buffer;
+  std::vector< uint64_t > uint64_buffer;
+  std::vector< int64_t > int64_buffer;
+  std::vector< float > float_buffer;
+  std::vector< double > double_buffer;
+
+  std::vector<double> direction2D;
+  std::vector<double> direction3D;
+};
+
+namespace sitk = itk::simple;
+
+TEST_F(Import,Required) {
+  // the purpose of this test is to verify that the filter has certain
+  // methods, and to imporve coverage
+
+  // Check has Self
+  typedef itk::simple::ImportImageFilter::Self ImportFilterType;
+
+  // default constructable
+  ImportFilterType  importer;
+
+  // has ToString method
+  std::cout << importer.ToString() << std::endl;
+
+  EXPECT_EQ( "ImportImageFilter", importer.GetName() );
+}
+
+TEST_F(Import,BasicUsage) {
+
+  // This test is designed to set everything and verify it
+
+  uint8_buffer = std::vector< uint8_t >( 128*128*128, 17 );
+
+  sitk::ImportImageFilter importer;
+  importer.SetSize( std::vector< unsigned int >( 3, 128u ) );
+  importer.SetSpacing( spacing1 );
+  importer.SetOrigin( origin0 );
+  importer.SetDirection( direction3D );
+  importer.SetBufferAsUInt8( &uint8_buffer[0] );
+
+  sitk::Image image = importer.Execute();
+
+  ASSERT_EQ( image.GetDimension(), 3u ) << "image dimension check";
+
+  EXPECT_EQ( image.GetSize()[0], 128u ) << "X size check";
+  EXPECT_EQ( image.GetSize()[1], 128u ) << "Y size check";
+  EXPECT_EQ( image.GetSize()[2], 128u ) << "Z size check";
+
+  EXPECT_EQ( image.GetOrigin(), origin0 ) << "origin check";
+  EXPECT_EQ( image.GetSpacing(), spacing1 ) << "spacing check";
+
+
+  for ( unsigned int k = 0; k < image.GetSize()[2]; ++k )
+    {
+    std::vector<uint32_t> idx(3, 0 );
+    idx[2] = k;
+    for ( unsigned int j = 0; j < image.GetSize()[1]; ++j )
+      {
+      idx[1] = j;
+      for ( unsigned int i = 0; i < image.GetSize()[0]; ++i )
+          {
+          idx[0] = i;
+          EXPECT_EQ( image.GetPixelAsUInt8( idx ), 17 ) << " expect all pixel to be 17";
+          }
+      }
+    }
+
+
+  EXPECT_EQ ( "a2178ce2d158a4a7c5a9ef3d03a33a6099b9c5be", sitk::Hash( image ) ) << " hash value for basic uin8_t";
+
+  // ================================================
+  //
+  // TEST FOR 2D IMAGE
+  //
+  int32_buffer = std::vector< int32_t >( 73*73, 21 );
+
+  importer.SetSize( std::vector< unsigned int >( 2, 73u ) );
+  importer.SetSpacing( spacing2 );
+  importer.SetOrigin( origin2 );
+  importer.SetDirection( direction2D );
+  importer.SetBufferAsInt32( &int32_buffer[0] );
+
+  image = importer.Execute();
+
+  ASSERT_EQ( image.GetDimension(), 2u ) << "image dimension check";
+
+  EXPECT_EQ( image.GetSize()[0], 73u ) << "X size check";
+  EXPECT_EQ( image.GetSize()[1], 73u ) << "Y size check";
+
+  EXPECT_EQ( image.GetOrigin(), origin2 ) << "origin check";
+  EXPECT_EQ( image.GetSpacing(), spacing2 ) << "spacing check";
+
+  for ( unsigned int j = 0; j < image.GetSize()[1]; ++j )
+    {
+    std::vector<uint32_t> idx(2, 0 );
+    idx[1] = j;
+    for ( unsigned int i = 0; i < image.GetSize()[0]; ++i )
+      {
+      idx[0] = i;
+      EXPECT_EQ( image.GetPixelAsInt32( idx ), 21 ) << " expect all pixel to be 21";
+      }
+    }
+
+
+  EXPECT_EQ ( "6f6eefc4c1833e3e29b0968023ead2141fdbee3f", sitk::Hash( image ) ) << " hash value for basic uin32_t";
+}
+
+TEST_F(Import,Direction) {
+
+  // This test is to run the direction parameter though it's passes
+
+  sitk::Image img(0,0,sitk::sitkUInt8);
+
+  uint8_buffer = std::vector< uint8_t >( 128*128*128, 17 );
+
+
+  {
+  sitk::ImportImageFilter importer;
+  importer.SetSize( std::vector< unsigned int >( 3, 128u ) );
+  importer.SetBufferAsUInt8( &uint8_buffer[0] );
+
+  // check defaults to identity
+  ASSERT_NO_THROW( img = importer.Execute() );
+  EXPECT_EQ( img.GetDirection(), direction3D );
+
+
+  importer.SetDirection( direction2D );
+  ASSERT_ANY_THROW( importer.Execute() ) << "Checking 2D direction to 3D import ";
+  }
+
+  {
+  sitk::ImportImageFilter importer;
+  importer.SetSize( std::vector< unsigned int >( 2, 128u ) );
+  importer.SetBufferAsUInt8( &uint8_buffer[0] );
+
+  // check defaults to identity
+  ASSERT_NO_THROW( img = importer.Execute() );
+  EXPECT_EQ( img.GetDirection(), direction2D );
+
+  importer.SetDirection( direction3D  );
+  ASSERT_ANY_THROW( importer.Execute() ) << "Checking 3D direction to 2D import";
+  }
+
+}
+
+
+TEST_F(Import,Shallow) {
+
+  // This test is designed to verify the buffer is shared
+
+  uint8_buffer = std::vector< uint8_t >( 128*128*128, 17 );
+
+  sitk::ImportImageFilter importer;
+  importer.SetSize( std::vector< unsigned int >( 3, 128u ) );
+  importer.SetBufferAsUInt8( &uint8_buffer[0] );
+
+  sitk::Image image = importer.Execute();
+
+  ASSERT_EQ( image.GetDimension(), 3u ) << "image dimension check";
+
+
+
+  EXPECT_EQ ( "a2178ce2d158a4a7c5a9ef3d03a33a6099b9c5be", sitk::Hash( image ) ) << " hash value for basic uin8_t";
+
+  std::vector<uint32_t> idx(3, 0 );
+  uint8_buffer[0] = 19;
+  EXPECT_EQ ( 19,  uint8_buffer[0] ) << " direct setting of buffer";
+  EXPECT_EQ ( 19,  image.GetPixelAsUInt8(idx) ) << " buffer modifying image";
+
+  image.SetPixelAsUInt8(idx, 23);
+  EXPECT_EQ ( 23,  image.GetPixelAsUInt8(idx) ) << " direct setting of image";
+  EXPECT_EQ ( 23,  uint8_buffer[0] ) << " image modifying buffer";
+
+}
+
+TEST_F(Import,ExhaustiveTypes) {
+
+  sitk::ImportImageFilter importer;
+
+  importer.SetSize( std::vector< unsigned int >( 2, 16u ) );
+  importer.SetSpacing( spacing1 );
+  importer.SetOrigin( origin0 );
+
+  EXPECT_EQ( importer.GetSize()[0], 16u );
+  EXPECT_EQ( importer.GetSpacing()[0], spacing1[0] );
+  EXPECT_EQ( importer.GetOrigin()[0], origin0[1] );
+  importer.GetDirection();
+
+
+  uint8_buffer = std::vector< uint8_t >( 16*16, 1 );
+  importer.SetBufferAsUInt8( &uint8_buffer[0] );
+  EXPECT_EQ ( "ac458b067c6b021c7e9358229b636e9d1e4cb154", sitk::Hash( importer.Execute() ) ) << " hash value for uint8";
+
+  int8_buffer = std::vector< int8_t >( 16*16, -1 );
+  importer.SetBufferAsInt8( &int8_buffer[0] );
+  EXPECT_EQ ( "c744cac6af7621524fc3a2b0a9a135a32b33c81b", sitk::Hash( importer.Execute() ) ) << " hash value for int8";
+
+  uint16_buffer = std::vector< uint16_t >( 16*16, 2 );
+  importer.SetBufferAsUInt16( &uint16_buffer[0] );
+  EXPECT_EQ ( "adbc44d359d3b3c032629bab34e3ee62c4563223", sitk::Hash( importer.Execute() ) ) << " hash value for uint16";
+
+  int16_buffer = std::vector< int16_t >( 16*16, -3 );
+  importer.SetBufferAsInt16( &int16_buffer[0] );
+  EXPECT_EQ ( "8111171305e02db2276c7366d117598b1f6789ff", sitk::Hash( importer.Execute() ) ) << " hash value for int16";
+
+  uint32_buffer = std::vector< uint32_t >( 16*16, 8 );
+  importer.SetBufferAsUInt32( &uint32_buffer[0] );
+  EXPECT_EQ ( "4b710847b34bc5e96520de8a1d7b97563077423c", sitk::Hash( importer.Execute() ) ) << " hash value for uint32";
+
+  int32_buffer = std::vector< int32_t >( 16*16, -123 );
+  importer.SetBufferAsInt32( &int32_buffer[0] );
+  EXPECT_EQ ( "d5748f3800b837611dc94c089ac7926f2bbea973" , sitk::Hash( importer.Execute() ) ) << " hash value for int32";
+
+  if ( sitk::sitkUInt64 != sitk::sitkUnknown )
+    {
+    uint64_buffer = std::vector< uint64_t >( 16*16, 8 );
+    importer.SetBufferAsUInt64( &uint64_buffer[0] );
+    EXPECT_EQ ( "95c3884597103a98cf6f1def52cab572c41f0eb5", sitk::Hash( importer.Execute() ) ) << " hash value for uint64";
+    }
+
+  if ( sitk::sitkInt64 != sitk::sitkUnknown )
+    {
+
+    int64_buffer = std::vector< int64_t >( 16*16, -123 );
+    importer.SetBufferAsInt64( &int64_buffer[0] );
+    EXPECT_EQ ( "d0a23a11b2f39b46cfc09bd71fc4c9661b68a826" , sitk::Hash( importer.Execute() ) ) << " hash value for int64";
+    }
+
+  float_buffer = std::vector< float >( 16*16, 1.123f );
+  importer.SetBufferAsFloat( &float_buffer[0] );
+  EXPECT_EQ ( "8588f5624f56bb55693d54505388dc06b93d2f14", sitk::Hash( importer.Execute() ) ) << " hash value for float";
+
+  double_buffer = std::vector< double >( 16*16, 321.123 );
+  importer.SetBufferAsDouble( &double_buffer[0] );
+  EXPECT_EQ ( "00393fe0b94729ff0f777ce848104697ce689c70", sitk::Hash( importer.Execute() ) ) << " hash value for double";
+
+
+  uint8_buffer = std::vector< uint8_t >( 16*16*2, 1 );
+  importer.SetBufferAsUInt8( &uint8_buffer[0], 2 );
+  EXPECT_EQ ( "3ef8a08ec90e244fe2a8948b701eafcc1d065712", sitk::Hash( importer.Execute() ) ) << " hash value for vector of uint8";
+
+  int8_buffer = std::vector< int8_t >( 16*16*3, -1 );
+  importer.SetBufferAsInt8( &int8_buffer[0], 3 );
+  EXPECT_EQ ( "fc1b469729f5a061d4b8b5eb1efba13a7b52d5a7", sitk::Hash( importer.Execute() ) ) << " hash value for vector of int8";
+
+  uint16_buffer = std::vector< uint16_t >( 16*16*4, 2 );
+  importer.SetBufferAsUInt16( &uint16_buffer[0], 4 );
+  EXPECT_EQ ( "f449215906661bacee88ef886c38f3049d9a232b", sitk::Hash( importer.Execute() ) ) << " hash value for vector of uint16";
+
+  int16_buffer = std::vector< int16_t >( 16*16*5, -3 );
+  importer.SetBufferAsInt16( &int16_buffer[0], 5 );
+  EXPECT_EQ ( "7bce93764d2393b987ed2b17281073ddb520af46", sitk::Hash( importer.Execute() ) ) << " hash value for vector of int16";
+
+  uint32_buffer = std::vector< uint32_t >( 16*16*6, 8 );
+  importer.SetBufferAsUInt32( &uint32_buffer[0], 6 );
+  EXPECT_EQ ( "c558884e4bf07ece6a2644307aa3b4eb84be8a11", sitk::Hash( importer.Execute() ) ) << " hash value for vector of uint32";
+
+  int32_buffer = std::vector< int32_t >( 16*16*7, -123 );
+  importer.SetBufferAsInt32( &int32_buffer[0], 7 );
+  EXPECT_EQ ( "c65dc5820f3691fc4b6b3b9aaba1f506ca3f697e" , sitk::Hash( importer.Execute() ) ) << " hash value for vector of int32";
+
+  if ( sitk::sitkVectorUInt64 != sitk::sitkUnknown )
+    {
+    uint64_buffer = std::vector< uint64_t >( 16*16*6, 8 );
+    importer.SetBufferAsUInt64( &uint64_buffer[0], 6 );
+    EXPECT_EQ ( "cac37cb71f23cd41ed1e2b60d1e325ee8de4ca71", sitk::Hash( importer.Execute() ) ) << " hash value for vector of uint64";
+    }
+
+  if ( sitk::sitkVectorInt64 != sitk::sitkUnknown )
+    {
+    int64_buffer = std::vector< int64_t >( 16*16*7, -123 );
+    importer.SetBufferAsInt64( &int64_buffer[0], 7 );
+    EXPECT_EQ ( "91a61e519faf128747bf2d2bbd860d4f05d79ac6" , sitk::Hash( importer.Execute() ) ) << " hash value for vector of int64";
+    }
+
+  float_buffer = std::vector< float >( 16*16*8, 1.123f );
+  importer.SetBufferAsFloat( &float_buffer[0], 8 );
+  EXPECT_EQ ( "9fb1d83b9c9a5645e7b136761d6924ea7d859284", sitk::Hash( importer.Execute() ) ) << " hash value for vector of float";
+
+  double_buffer = std::vector< double >( 16*16*9, 321.123 );
+  importer.SetBufferAsDouble( &double_buffer[0], 9 );
+  EXPECT_EQ ( "80514b97613fc659c9ceb45bb44c8a02fec9c4db", sitk::Hash( importer.Execute() ) ) << " hash value for vector of double";
+
+  importer.SetSize( std::vector< unsigned int >( 5, 16u ) );
+  EXPECT_ANY_THROW( importer.Execute() );
+  importer.SetBufferAsDouble( &double_buffer[0], 0 );
+  EXPECT_ANY_THROW( importer.Execute() );
+
+
+
+}
+
+TEST_F(Import,Procedual) {
+
+  sitk::Image img(0,0,sitk::sitkUInt8);
+  std::vector< unsigned int > size( 2, 16u );
+
+  direction2D[0] = direction2D[3] = -1.0;
+
+  uint8_buffer = std::vector< uint8_t >( 16*16, 1 );
+  img = sitk::ImportAsUInt8( &uint8_buffer[0],
+                             size,
+                             spacing2,
+                             origin2,
+                             direction2D );
+  EXPECT_EQ ( "ac458b067c6b021c7e9358229b636e9d1e4cb154", sitk::Hash( img ) ) << " hash value for uint8";
+  EXPECT_EQ ( img.GetSpacing(), spacing2 ) << " spacing for uint8";
+  EXPECT_EQ ( img.GetOrigin(), origin2 ) << " origin for uint8";
+  EXPECT_EQ ( img.GetDirection(), direction2D ) << " direction for uint8";
+
+  int8_buffer = std::vector< int8_t >( 16*16, -1 );
+  img = sitk::ImportAsInt8( &int8_buffer[0],
+                            size,
+                            spacing2,
+                            origin2,
+                            direction2D );
+  EXPECT_EQ ( "c744cac6af7621524fc3a2b0a9a135a32b33c81b", sitk::Hash( img ) ) << " hash value for int8";
+  EXPECT_EQ ( img.GetSpacing(), spacing2 ) << " spacing for int8";
+  EXPECT_EQ ( img.GetOrigin(), origin2 )  << " origin for int8";
+  EXPECT_EQ ( img.GetDirection(), direction2D ) << " direction for int8";
+
+
+  uint16_buffer = std::vector< uint16_t >( 16*16, 2 );
+  img = sitk::ImportAsUInt16( &uint16_buffer[0],
+                              size,
+                              spacing2,
+                              origin2,
+                              direction2D );
+  EXPECT_EQ ( "adbc44d359d3b3c032629bab34e3ee62c4563223", sitk::Hash( img ) ) << " hash value for uint16";
+  EXPECT_EQ ( img.GetSpacing(), spacing2 ) << " spacing for uint16";
+  EXPECT_EQ ( img.GetOrigin(), origin2 ) << " origin for uint16";
+  EXPECT_EQ ( img.GetDirection(), direction2D ) << " direction for uint16";
+
+
+  int16_buffer = std::vector< int16_t >( 16*16, -3 );
+  img = sitk::ImportAsInt16( &int16_buffer[0],
+                             size,
+                             spacing2,
+                             origin2,
+                             direction2D );
+  EXPECT_EQ ( "8111171305e02db2276c7366d117598b1f6789ff", sitk::Hash( img ) ) << " hash value for int16";
+  EXPECT_EQ ( img.GetSpacing(), spacing2 ) << " spacing for int16";
+  EXPECT_EQ ( img.GetOrigin(), origin2 )  << " origin for int16";
+  EXPECT_EQ ( img.GetDirection(), direction2D ) << " direction for int16";
+
+
+  uint32_buffer = std::vector< uint32_t >( 16*16, 8 );
+  img = sitk::ImportAsUInt32( &uint32_buffer[0],
+                              size,
+                              spacing2,
+                              origin2,
+                              direction2D );
+  EXPECT_EQ ( "4b710847b34bc5e96520de8a1d7b97563077423c", sitk::Hash( img ) ) << " hash value for uint32";
+  EXPECT_EQ ( img.GetSpacing(), spacing2 )  << " spacing for uint32";
+  EXPECT_EQ ( img.GetOrigin(), origin2 )  << " origin for uint32";
+  EXPECT_EQ ( img.GetDirection(), direction2D ) << " direction for uint32";
+
+
+  int32_buffer = std::vector< int32_t >( 16*16, -123 );
+  img = sitk::ImportAsInt32( &int32_buffer[0],
+                             size,
+                             spacing2,
+                             origin2,
+                             direction2D );
+  EXPECT_EQ ( "d5748f3800b837611dc94c089ac7926f2bbea973" , sitk::Hash( img ) ) << " hash value for int32";
+  EXPECT_EQ ( img.GetSpacing(), spacing2 ) << " spacing for int32";
+  EXPECT_EQ ( img.GetOrigin(), origin2 )  << " origin for int32";
+  EXPECT_EQ ( img.GetDirection(), direction2D ) << " direction for int32";
+
+
+  float_buffer = std::vector< float >( 16*16, 1.123f );
+  img = sitk::ImportAsFloat( &float_buffer[0],
+                             size,
+                             spacing2,
+                             origin2,
+                             direction2D );
+  EXPECT_EQ ( "8588f5624f56bb55693d54505388dc06b93d2f14", sitk::Hash( img ) ) << " hash value for float";
+  EXPECT_EQ ( img.GetSpacing(), spacing2 ) << " spacing for float";
+  EXPECT_EQ ( img.GetOrigin(), origin2 ) << " origin for float";
+  EXPECT_EQ ( img.GetDirection(), direction2D ) << " direction for float";
+
+
+  double_buffer = std::vector< double >( 16*16, 321.123 );
+  img = sitk::ImportAsDouble( &double_buffer[0],
+                              size,
+                              spacing2,
+                              origin2,
+                              direction2D );
+  EXPECT_EQ ( "00393fe0b94729ff0f777ce848104697ce689c70", sitk::Hash( img ) ) << " hash value for double";
+  EXPECT_EQ ( img.GetSpacing(), spacing2 ) << " spacing for double";
+  EXPECT_EQ ( img.GetOrigin(), origin2 ) << " origin for float";
+  EXPECT_EQ ( img.GetDirection(), direction2D ) << " direction for double";
+
+}
diff --git a/Testing/Unit/sitkLabelStatisticsTest.cxx b/Testing/Unit/sitkLabelStatisticsTest.cxx
new file mode 100644
index 0000000..88a31af
--- /dev/null
+++ b/Testing/Unit/sitkLabelStatisticsTest.cxx
@@ -0,0 +1,150 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include <SimpleITKTestHarness.h>
+#include <SimpleITK.h>
+#include "itkImage.h"
+#include "itkVectorImage.h"
+
+#include <memory>
+
+TEST(LabelStatistics,Simple) {
+  itk::simple::ImageFileReader reader;
+
+  //By using the same image, the label min/max values should equal the label itself.
+  itk::simple::Image intensityImage = reader.SetFileName ( dataFinder.GetFile ( "Input/2th_cthead1.png" ) ).Execute();
+  itk::simple::Image labelImage     = reader.SetFileName ( dataFinder.GetFile ( "Input/2th_cthead1.png" ) ).Execute();
+
+  itk::simple::LabelStatisticsImageFilter lsFilter;
+
+  EXPECT_TRUE(lsFilter.GetUseHistograms());
+  lsFilter.UseHistogramsOff();
+  EXPECT_FALSE(lsFilter.GetUseHistograms());
+  lsFilter.UseHistogramsOn();
+  EXPECT_TRUE(lsFilter.GetUseHistograms());
+  lsFilter.SetUseHistograms(false);
+  EXPECT_FALSE(lsFilter.GetUseHistograms());
+  lsFilter.SetUseHistograms(true);
+  EXPECT_TRUE(lsFilter.GetUseHistograms());
+
+  try {
+    lsFilter.Execute ( intensityImage, labelImage );
+  } catch ( itk::ExceptionObject e ) {
+    std::cout << "LabelStatistics failed: " << e.what() << std::endl;
+  }
+
+  std::vector<int64_t> labels = lsFilter.GetLabels();
+  for(std::vector<int64_t>::const_iterator i = labels.begin(); i != labels.end(); ++i)
+    {
+    //By using the same image, the label min/max/mean values should equal the label itself.
+    ASSERT_EQ(lsFilter.GetMinimum (*i) , *i);
+    ASSERT_EQ(lsFilter.GetMaximum (*i) , *i);
+    ASSERT_EQ(lsFilter.GetMean    (*i) , *i);
+    ASSERT_EQ(lsFilter.GetMedian  (*i) , *i);
+    //By using the same image, the label variance values should equal to Zero.
+    ASSERT_EQ(lsFilter.GetSigma   (*i) , 0.0      );
+    ASSERT_EQ(lsFilter.GetVariance(*i) , 0.0      );
+    }
+
+  ASSERT_EQ(lsFilter.GetSum  (0) , 0     );
+  ASSERT_EQ(lsFilter.GetCount(0) , 33390u );
+}
+
+
+TEST(LabelStatistics,Commands) {
+  namespace sitk = itk::simple;
+
+  sitk::Image image = sitk::ReadImage ( dataFinder.GetFile ( "Input/cthead1.png" ) );
+  sitk::Image labels = sitk::ReadImage ( dataFinder.GetFile ( "Input/2th_cthead1.mha" ) );
+
+  sitk::LabelStatisticsImageFilter stats;
+
+
+  ProgressUpdate progressCmd(stats);
+  stats.AddCommand(sitk::sitkProgressEvent, progressCmd);
+
+  CountCommand abortCmd(stats);
+  stats.AddCommand(sitk::sitkAbortEvent, abortCmd);
+
+  CountCommand deleteCmd(stats);
+  stats.AddCommand(sitk::sitkDeleteEvent, deleteCmd);
+
+  CountCommand endCmd(stats);
+  stats.AddCommand(sitk::sitkEndEvent, endCmd);
+
+  CountCommand iterCmd(stats);
+  stats.AddCommand(sitk::sitkIterationEvent, iterCmd);
+
+  CountCommand startCmd(stats);
+  stats.AddCommand(sitk::sitkStartEvent, startCmd);
+
+  CountCommand userCmd(stats);
+  stats.AddCommand(sitk::sitkUserEvent, userCmd);
+
+  stats.DebugOn();
+
+  stats.Execute ( image, labels );
+
+  EXPECT_EQ( stats.GetName(), "LabelStatisticsImageFilter" );
+  EXPECT_NO_THROW( stats.ToString() );
+  EXPECT_TRUE ( stats.HasLabel ( 0 ) );
+  EXPECT_TRUE ( stats.HasLabel ( 1 ) );
+  EXPECT_TRUE ( stats.HasLabel ( 2 ) );
+  EXPECT_FALSE ( stats.HasLabel ( 99 ) );
+  EXPECT_FALSE ( stats.HasLabel ( 1024 ) );
+
+  EXPECT_NEAR ( stats.GetMinimum ( 0 ), 0, 0.01 );
+  EXPECT_NEAR ( stats.GetMaximum ( 0 ), 99, 0.01 );
+  EXPECT_NEAR ( stats.GetMean ( 0 ), 13.0911, 0.001 );
+  EXPECT_NEAR ( stats.GetSigma ( 0 ),  16.4065, 0.01 );
+  EXPECT_NEAR ( stats.GetVariance ( 0 ),  269.173, 0.01 );
+  EXPECT_NEAR ( stats.GetCount ( 0 ),  36172, 0.01 );
+  EXPECT_NEAR ( stats.GetSum ( 0 ),  473533, 0.01 );
+  EXPECT_NEAR ( stats.GetMedian ( 0 ), 12.0, 0.001 );
+
+  ASSERT_EQ( 4u, stats.GetBoundingBox(0).size() );
+  EXPECT_EQ( 0, stats.GetBoundingBox(0)[0] );
+  EXPECT_EQ( 255, stats.GetBoundingBox(0)[1] );
+  EXPECT_EQ( 0, stats.GetBoundingBox(0)[2] );
+  EXPECT_EQ( 255, stats.GetBoundingBox(0)[3] );
+
+  EXPECT_EQ ( 1.0f, stats.GetProgress() );
+  EXPECT_EQ ( 1.0f, progressCmd.m_Progress );
+  EXPECT_EQ ( 0, abortCmd.m_Count );
+  EXPECT_EQ ( 1, endCmd.m_Count );
+  EXPECT_EQ ( 0, iterCmd.m_Count );
+  EXPECT_EQ ( 1, startCmd.m_Count );
+  EXPECT_EQ ( 0, userCmd.m_Count );
+
+ // internal filter does not get deleted since there are active measurements
+  EXPECT_EQ ( 0, deleteCmd.m_Count );
+
+  const std::vector<int64_t> myLabels = stats.GetLabels();
+  EXPECT_EQ ( myLabels.size() , 3u);
+
+  // const sitk::LabelStatisticsImageFilter::LabelStatisticsMap myMap = stats.GetLabelStatisticsMap();
+  // EXPECT_EQ( myLabels.size() , myMap.size() );
+
+  // const sitk::MeasurementMap myMeasurementMap = stats.GetMeasurementMap(0);
+  // EXPECT_EQ( myMeasurementMap.size(), 8u ); //4 measurements produced
+
+  // const sitk::BasicMeasurementMap myBasicMeasurementMap =
+  //   myMeasurementMap.GetBasicMeasurementMap();
+  // EXPECT_EQ( myBasicMeasurementMap.size(), 8u ); //4 measurements produced
+
+  // EXPECT_EQ ( myMeasurementMap.ToString(), "Count, Maximum, Mean, Minimum, Sigma, Sum, Variance, approxMedian, \n36172, 99, 13.0911, 0, 16.4065, 473533, 269.173, 12, \n" );
+}
diff --git a/Testing/Unit/sitkNumpyArrayConversionTest.py b/Testing/Unit/sitkNumpyArrayConversionTest.py
new file mode 100644
index 0000000..eacb39b
--- /dev/null
+++ b/Testing/Unit/sitkNumpyArrayConversionTest.py
@@ -0,0 +1,178 @@
+#==========================================================================
+#
+#   Copyright Insight Software Consortium
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#          http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#==========================================================================*/
+from __future__ import print_function
+import sys
+import unittest
+
+
+import SimpleITK as sitk
+import numpy as np
+
+sizeX = 4
+sizeY = 5
+sizeZ = 3
+
+
+class TestNumpySimpleITKInterface(unittest.TestCase):
+    """ This tests numpy array <-> SimpleITK Image conversion. """
+
+
+    def setUp(self):
+        pass
+
+
+    def _helper_check_sitk_to_numpy_type(self, sitkType, numpyType):
+        image = sitk.Image( (9, 10), sitkType, 1 )
+        a = sitk.GetArrayFromImage( image )
+        self.assertEqual( numpyType, a.dtype )
+        self.assertEqual( (10, 9), a.shape )
+
+    def test_type_to_numpy(self):
+        "try all sitk pixel type to convert to numpy"
+
+        self._helper_check_sitk_to_numpy_type(sitk.sitkUInt8, np.uint8)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkUInt16, np.uint16)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkUInt32, np.uint32)
+        if sitk.sitkUInt64 != sitk.sitkUnknown:
+            self._helper_check_sitk_to_numpy_type(sitk.sitkUInt64, np.uint64)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkInt8, np.int8)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkInt16, np.int16)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkInt32, np.int32)
+        if sitk.sitkInt64 != sitk.sitkUnknown:
+            self._helper_check_sitk_to_numpy_type(sitk.sitkInt64, np.int64)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkFloat32, np.float32)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkFloat64, np.float64)
+        #self._helper_check_sitk_to_numpy_type(sitk.sitkComplexFloat32, np.complex64)
+        #self._helper_check_sitk_to_numpy_type(sitk.sitkComplexFloat64, np.complex128)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkVectorUInt8, np.uint8)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkVectorInt8, np.int8)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkVectorUInt16, np.uint16)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkVectorInt16, np.int16)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkVectorUInt32, np.uint32)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkVectorInt32, np.int32)
+        if sitk.sitkVectorUInt64 != sitk.sitkUnknown:
+            self._helper_check_sitk_to_numpy_type(sitk.sitkVectorUInt64, np.uint64)
+        if sitk.sitkVectorInt64 != sitk.sitkUnknown:
+            self._helper_check_sitk_to_numpy_type(sitk.sitkVectorInt64, np.int64)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkVectorFloat32, np.float32)
+        self._helper_check_sitk_to_numpy_type(sitk.sitkVectorFloat64, np.float64)
+        #self._helper_check_sitk_to_numpy_type(sitk.sitkLabelUInt8, np.uint8)
+        #self._helper_check_sitk_to_numpy_type(sitk.sitkLabelUInt16, np.uint16)
+        #self._helper_check_sitk_to_numpy_type(sitk.sitkLabelUInt32, np.uint32)
+        #self._helper_check_sitk_to_numpy_type(sitk.sitkLabelUInt64, np.uint64)
+
+    def test_to_numpy_and_back(self):
+        """Test converting an image to numpy and back"""
+
+        img = sitk.GaussianSource( sitk.sitkFloat32,  [100,100], sigma=[10]*3, mean = [50,50] )
+
+        h = sitk.Hash( img )
+
+        # convert the image to and fro a numpy array
+        img = sitk.GetImageFromArray( sitk.GetArrayFromImage( img ) )
+
+        self.assertEqual( h, sitk.Hash( img ))
+
+    def test_vector_image_to_numpy(self):
+        """Test converting back and forth between numpy and SimpleITK
+        images were the SimpleITK image has multiple componets and
+        stored as a VectorImage."""
+
+
+        # Check 2D
+        img = sitk.PhysicalPointSource(sitk.sitkVectorFloat32, [3,4])
+        h = sitk.Hash( img )
+
+        nda = sitk.GetArrayFromImage(img)
+
+        self.assertEqual(nda.shape, (4,3,2))
+        self.assertEqual(nda[0,0].tolist(), [0,0])
+        self.assertEqual(nda[2,1].tolist(), [1,2])
+        self.assertEqual(nda[0,:,0].tolist(), [0,1,2])
+
+        img2 = sitk.GetImageFromArray( nda, isVector=True)
+        self.assertEqual( h, sitk.Hash(img2) )
+
+        # check 3D
+        img = sitk.PhysicalPointSource(sitk.sitkVectorFloat32, [3,4,5])
+        h = sitk.Hash( img )
+
+        nda = sitk.GetArrayFromImage(img)
+
+        self.assertEqual(nda.shape, (5,4,3,3))
+        self.assertEqual(nda[0,0,0].tolist(), [0,0,0])
+        self.assertEqual(nda[0,0,:,0].tolist(), [0,1,2])
+        self.assertEqual(nda[0,:,1,1].tolist(), [0,1,2,3])
+
+
+        img2 = sitk.GetImageFromArray(nda)
+        self.assertEqual(img2.GetSize(), img.GetSize())
+        self.assertEqual(img2.GetNumberOfComponentsPerPixel(), img.GetNumberOfComponentsPerPixel())
+        self.assertEqual(h, sitk.Hash(img2))
+
+
+    def test_legacy(self):
+      """Test SimpleITK Image to numpy array."""
+
+      #     self.assertRaises(TypeError, sitk.GetArrayFromImage, 3)
+
+      # 2D image
+      image = sitk.Image(sizeX, sizeY, sitk.sitkInt32)
+      for j in range(sizeY):
+          for i in range(sizeX):
+              image[i, j] = j*sizeX + i
+
+      print(sitk.GetArrayFromImage(image))
+
+      self.assertEqual( type (sitk.GetArrayFromImage(image)),  np.ndarray )
+
+      # 3D image
+      image = sitk.Image(sizeX, sizeY, sizeZ, sitk.sitkFloat32)
+      for k in range(sizeZ):
+          for j in range(sizeY):
+              for i in range(sizeX):
+                  image[i, j, k] = (sizeY*k +j)*sizeX + i
+
+      print(sitk.GetArrayFromImage(image))
+
+      self.assertEqual( type (sitk.GetArrayFromImage(image)),  np.ndarray )
+
+    def test_legacy_array2sitk(self):
+      """Test numpy array to SimpleITK Image."""
+
+      arr = np.arange(20, dtype=np.float64)
+      arr.shape = (sizeY, sizeX)
+
+      image = sitk.GetImageFromArray(arr)
+      self.assertEqual(image.GetSize(), (sizeX, sizeY))
+      self.assertEqual(image[0,0], 0.0)
+      self.assertEqual(image[1,1], 5.0)
+      self.assertEqual(image[2,2], 10.0)
+
+      arr = np.arange(60, dtype=np.int16)
+      arr.shape = (sizeZ, sizeY, sizeX)
+
+      image = sitk.GetImageFromArray(arr)
+
+      self.assertEqual(image.GetSize(), (sizeX, sizeY, sizeZ))
+      self.assertEqual(image[0,0,0], 0)
+      self.assertEqual(image[1,1,1], 25)
+      self.assertEqual(image[2,2,2], 50)
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/Testing/Unit/sitkOperatorTests.cxx b/Testing/Unit/sitkOperatorTests.cxx
new file mode 100644
index 0000000..4aeeac4
--- /dev/null
+++ b/Testing/Unit/sitkOperatorTests.cxx
@@ -0,0 +1,162 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+#include "sitkImageOperators.h"
+#include "SimpleITK.h"
+#include "SimpleITKTestHarness.h"
+
+
+
+namespace sitk = itk::simple;
+
+TEST(OperatorTests,ComparisonLogic)
+{
+
+  sitk::Image img1 ( 10, 10, sitk::sitkUInt8 );
+  sitk::Image img2 ( 10, 10, sitk::sitkUInt8 );
+
+  img1 += 1;
+  img2 += 2;
+
+  EXPECT_EQ( sitk::Hash( img1 ), "3f3feea4f73d400fe98b7518a4b21ad4fc80476d" ) << "original";
+  EXPECT_EQ( sitk::Hash( img2 ), "aca12668dde9598b74907488ae060a9c1cb71bd9" ) << "original";
+
+
+  EXPECT_EQ( sitk::Hash( sitk::Greater( img1, 0 )), "3f3feea4f73d400fe98b7518a4b21ad4fc80476d" );
+  EXPECT_EQ( sitk::Hash( sitk::Greater( 2,  img1 )), "3f3feea4f73d400fe98b7518a4b21ad4fc80476d" );
+  EXPECT_EQ( sitk::Hash( sitk::Greater( img1, img2 )), "ed4a77d1b56a118938788fc53037759b6c501e3d" );
+
+  EXPECT_EQ( sitk::Hash( sitk::GreaterEqual( img1, 0 )), "3f3feea4f73d400fe98b7518a4b21ad4fc80476d" ) ;
+  EXPECT_EQ( sitk::Hash( sitk::GreaterEqual( 1,  img1 )), "3f3feea4f73d400fe98b7518a4b21ad4fc80476d" );
+  EXPECT_EQ( sitk::Hash( sitk::GreaterEqual( img1, img2 )), "ed4a77d1b56a118938788fc53037759b6c501e3d" );
+
+
+  EXPECT_EQ( sitk::Hash( sitk::Less( img1, 1 )), "ed4a77d1b56a118938788fc53037759b6c501e3d" );
+  EXPECT_EQ( sitk::Hash( sitk::Less( 2,  img1 )),  "ed4a77d1b56a118938788fc53037759b6c501e3d" );
+  EXPECT_EQ( sitk::Hash( sitk::Less( img1, img2 )), "3f3feea4f73d400fe98b7518a4b21ad4fc80476d" );
+
+  EXPECT_EQ( sitk::Hash( sitk::LessEqual( img1, 1 )), "3f3feea4f73d400fe98b7518a4b21ad4fc80476d" );
+  EXPECT_EQ( sitk::Hash( sitk::LessEqual( 2,  img1 )), "ed4a77d1b56a118938788fc53037759b6c501e3d" );
+  EXPECT_EQ( sitk::Hash( sitk::LessEqual( img1, img2 )), "3f3feea4f73d400fe98b7518a4b21ad4fc80476d" );
+
+
+  EXPECT_EQ( sitk::Hash( sitk::Equal( img1, 1 )), "3f3feea4f73d400fe98b7518a4b21ad4fc80476d" );
+  EXPECT_EQ( sitk::Hash( sitk::Equal( 2,  img2 )),  "3f3feea4f73d400fe98b7518a4b21ad4fc80476d" );
+  EXPECT_EQ( sitk::Hash( sitk::Equal( img1, img2 )), "ed4a77d1b56a118938788fc53037759b6c501e3d" );
+
+  EXPECT_EQ( sitk::Hash( sitk::NotEqual( img1, 1 )), "ed4a77d1b56a118938788fc53037759b6c501e3d" );
+  EXPECT_EQ( sitk::Hash( sitk::NotEqual( 2,  img2 )), "ed4a77d1b56a118938788fc53037759b6c501e3d" );
+  EXPECT_EQ( sitk::Hash( sitk::NotEqual( img1, img2 )), "3f3feea4f73d400fe98b7518a4b21ad4fc80476d" );
+
+}
+
+
+
+TEST(OperatorTests,BinaryLogic)
+{
+
+  sitk::Image img1 ( 10, 10, sitk::sitkUInt8 );
+  sitk::Image img2 ( 10, 10, sitk::sitkUInt8 );
+
+  img1 += 1;
+  img2 += 2;
+
+  EXPECT_EQ( "f7463d12320e59d6f359abde8e957a7f3babf6e2", sitk::Hash( ~img1 ) );
+  EXPECT_EQ( "5c74df2a1c141d6aaa817464c4db000c944d0068", sitk::Hash( ~img2 ) );
+
+  EXPECT_EQ( "ed4a77d1b56a118938788fc53037759b6c501e3d", sitk::Hash( img1&2 ) );
+  EXPECT_EQ( "ed4a77d1b56a118938788fc53037759b6c501e3d", sitk::Hash( 1&img2 ) );
+  EXPECT_EQ( "ed4a77d1b56a118938788fc53037759b6c501e3d", sitk::Hash( img1&img2 ) );
+
+  EXPECT_EQ( "69521af7751e8475fa976e49d9568a808f5a4bfa", sitk::Hash( img1|2 ) );
+  EXPECT_EQ( "69521af7751e8475fa976e49d9568a808f5a4bfa", sitk::Hash( 1|img2 ) );
+  EXPECT_EQ( "69521af7751e8475fa976e49d9568a808f5a4bfa", sitk::Hash( img1|img2 ));
+
+  EXPECT_EQ( "69521af7751e8475fa976e49d9568a808f5a4bfa", sitk::Hash( img1^2 ) );
+  EXPECT_EQ( "69521af7751e8475fa976e49d9568a808f5a4bfa", sitk::Hash( 1^img2 ) );
+  EXPECT_EQ( "69521af7751e8475fa976e49d9568a808f5a4bfa", sitk::Hash( img1^img2 ));
+
+}
+
+
+TEST(OperatorTests, Arithmetic)
+{
+
+  sitk::Image img1 ( 10, 10, sitk::sitkInt32 );
+  sitk::Image img2 ( 10, 10, sitk::sitkInt32 );
+
+  img1 += 1;
+  img2 += 2;
+
+  EXPECT_EQ( "0dfef91fb04d1c86259591af2bb8c47498910af1", sitk::Hash( -img1 ) );
+  EXPECT_EQ( "c6de42ea986ac4d0614de084ac2b08353ab01304", sitk::Hash( -img2 ) );
+
+  EXPECT_EQ( "9477ff236835c28038e92121453738c7d4e9b471", sitk::Hash( img1+2 ) );
+  EXPECT_EQ( "9477ff236835c28038e92121453738c7d4e9b471", sitk::Hash( 1+img2 ) );
+  EXPECT_EQ( "9477ff236835c28038e92121453738c7d4e9b471", sitk::Hash( img1+img2 ) );
+
+  EXPECT_EQ( "0dfef91fb04d1c86259591af2bb8c47498910af1", sitk::Hash( img1-2 ) );
+  EXPECT_EQ( "0dfef91fb04d1c86259591af2bb8c47498910af1", sitk::Hash( 1-img2 ) );
+  EXPECT_EQ( "0dfef91fb04d1c86259591af2bb8c47498910af1", sitk::Hash( img1-img2 ));
+
+  EXPECT_EQ( "01e56888e4d212385251a2697aaf24a4287c1745", sitk::Hash( img1*2 ) );
+  EXPECT_EQ( "61ca6324796009ce9132e8e1e364a2557241d1c5", sitk::Hash( 3*img2 ) );
+  EXPECT_EQ( "01e56888e4d212385251a2697aaf24a4287c1745", sitk::Hash( img1*img2 ));
+
+  EXPECT_EQ( "9477ff236835c28038e92121453738c7d4e9b471", sitk::Hash( 3/img1 ) );
+  EXPECT_EQ( "116d707122e1c00c7328c57232a904df3a1f629d", sitk::Hash( img2/2 ) );
+  EXPECT_EQ( "01e56888e4d212385251a2697aaf24a4287c1745", sitk::Hash( img2/img1 ));
+
+
+  img1 = sitk::Image( 10,10, sitk::sitkUInt32 );
+  img2 = sitk::Image( 10,10, sitk::sitkUInt32 );
+
+  img1 += 10;
+  img2 += 3;
+
+  EXPECT_EQ( "116d707122e1c00c7328c57232a904df3a1f629d", sitk::Hash( img1%img2 ) );
+  EXPECT_EQ( "01e56888e4d212385251a2697aaf24a4287c1745", sitk::Hash( img1%4 ) );
+  EXPECT_EQ( "3d59f8de55a42cc13fb2ebda6de3a5193f2ee561", sitk::Hash( 3%img2 ));
+
+}
+
+
+TEST(OperatorTests, AdditionalDivide)
+{
+
+  sitk::Image img1 ( 10, 10, sitk::sitkInt32 );
+  sitk::Image img2 ( 10, 10, sitk::sitkInt32 );
+
+  img1 += 1;
+  img2 += 2;
+
+  std::vector<uint32_t> idx( 2, 4);
+
+  EXPECT_EQ( "3d59f8de55a42cc13fb2ebda6de3a5193f2ee561", sitk::Hash( sitk::DivideFloor(img1, img2) ) );
+  EXPECT_EQ( "0dfef91fb04d1c86259591af2bb8c47498910af1", sitk::Hash( sitk::DivideFloor(-img1, img2) ) );
+
+  EXPECT_EQ( "3d59f8de55a42cc13fb2ebda6de3a5193f2ee561", sitk::Hash( sitk::DivideFloor(1, img2) ) );
+  EXPECT_EQ( "0dfef91fb04d1c86259591af2bb8c47498910af1", sitk::Hash( sitk::DivideFloor(img1, -2) ) );
+
+  EXPECT_EQ( 0.5,  sitk::DivideReal(img1, img2).GetPixelAsDouble(idx) );
+  EXPECT_EQ( -0.5,  sitk::DivideReal(-img1, img2).GetPixelAsDouble(idx) );
+
+  EXPECT_EQ( 0.5,  sitk::DivideReal(1, img2).GetPixelAsDouble(idx) );
+  EXPECT_EQ( -0.25,  sitk::DivideReal(img1, -4).GetPixelAsDouble(idx) );
+
+}
diff --git a/Testing/Unit/sitkProcessObjectTest.java b/Testing/Unit/sitkProcessObjectTest.java
new file mode 100644
index 0000000..73cfeb3
--- /dev/null
+++ b/Testing/Unit/sitkProcessObjectTest.java
@@ -0,0 +1,31 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+import org.itk.simple.*;
+
+
+class sitkProcessObjectTest {
+
+  public static void main(String argv[]) {
+
+    CastImageFilter filter = new CastImageFilter();
+    filter.getProgress();
+
+ }
+
+}
diff --git a/Testing/Unit/sitkProcessObjectTest.py b/Testing/Unit/sitkProcessObjectTest.py
new file mode 100644
index 0000000..25dc8bc
--- /dev/null
+++ b/Testing/Unit/sitkProcessObjectTest.py
@@ -0,0 +1,98 @@
+#==========================================================================
+#
+#   Copyright Insight Software Consortium
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#          http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#==========================================================================*/
+from __future__ import print_function
+import sys
+import unittest
+
+
+import SimpleITK as sitk
+
+
+class ProcessObjectTest(unittest.TestCase):
+    """Test the SimpleITK Process Object and related Command classes"""
+
+    def setUp(self):
+        pass
+
+    def test_ProcessObject_base(self):
+        " Check that ProcessObject is super class of filters"
+
+        # check some manually written filters
+        self.assertTrue(issubclass(sitk.CastImageFilter,sitk.ProcessObject))
+        self.assertTrue(issubclass(sitk.HashImageFilter,sitk.ProcessObject))
+        self.assertTrue(issubclass(sitk.StatisticsImageFilter,sitk.ProcessObject))
+        self.assertTrue(issubclass(sitk.LabelStatisticsImageFilter,sitk.ProcessObject))
+
+        # Check some of the different types of generated
+        self.assertTrue(issubclass(sitk.AddImageFilter,sitk.ProcessObject))
+        self.assertTrue(issubclass(sitk.FastMarchingImageFilter,sitk.ProcessObject))
+        self.assertTrue(issubclass(sitk.BinaryDilateImageFilter,sitk.ProcessObject))
+        self.assertTrue(issubclass(sitk.GaussianImageSource,sitk.ProcessObject))
+        self.assertTrue(issubclass(sitk.JoinSeriesImageFilter,sitk.ProcessObject))
+
+
+    def test_ProcessObject_lambda_Command(self):
+        """Check that the lambda Command on event works"""
+
+        f = sitk.CastImageFilter();
+
+        def s(var,value):
+            var[0] = value
+
+        # int/floats are passed by value, use lists to be passed by reference
+        start = [0]
+        stop = [0]
+        p = [0.0]
+        f.AddCommand(sitk.sitkStartEvent, lambda start=start: s(start,start[0]+1) )
+        f.AddCommand(sitk.sitkStartEvent, lambda stop=stop: s(stop, stop[0]+1) )
+        f.AddCommand(sitk.sitkProgressEvent, lambda p=p: s(p, f.GetProgress()) );
+        f.Execute(sitk.Image(10,10,sitk.sitkFloat32))
+
+        print( "start: {0} stop: {1} p: {2}".format(start,stop,p))
+        self.assertEqual(start,[1])
+        self.assertEqual(stop,[1])
+        self.assertEqual(p,[1.0])
+
+
+    def test_ProcessObject_PyCommand(self):
+        """Testing PyCommand Class"""
+
+        f = sitk.CastImageFilter();
+
+        p = [0.0]
+        def prog():
+            p[0] = f.GetProgress();
+
+        cmd = sitk.PyCommand()
+        cmd.SetCallbackPyCallable(prog)
+
+
+        f.AddCommand(sitk.sitkProgressEvent, cmd );
+        f.Execute(sitk.Image(10,10,sitk.sitkFloat32))
+        self.assertEqual(p,[1.0])
+
+        p = [0.0]
+        del cmd
+
+
+        f.Execute(sitk.Image(10,10,sitk.sitkFloat32))
+        self.assertEqual(p,[0.0])
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/Testing/Unit/sitkShowTest.cxx b/Testing/Unit/sitkShowTest.cxx
new file mode 100644
index 0000000..97276c8
--- /dev/null
+++ b/Testing/Unit/sitkShowTest.cxx
@@ -0,0 +1,118 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+#include <cstdlib>
+#include <SimpleITKTestHarness.h>
+#include <SimpleITK.h>
+
+
+namespace sitk = itk::simple;
+
+DataFinder dataFinder;
+
+int main (int argc, char *argv[])
+{
+
+  sitk::Image img;
+
+  std::cout << "Starting sitkShowTest\n";
+
+  if (argc > 1)
+    {
+    for (int i=1; i<argc; i++)
+      {
+      try
+        {
+        std::cout << "Reading " << argv[i] << std::endl;
+        img = sitk::ReadImage( argv[i] );
+        std::cout << "Showing " << argv[i] << std::endl;
+        sitk::Show(img);
+        }
+      catch (std::exception &e)
+        {
+        std::cout << "Exception: " << e.what() << std::endl;
+        return EXIT_FAILURE;
+        }
+      catch (...)
+        {
+        std::cout << "Default exception\n";
+        return EXIT_FAILURE;
+        }
+      }
+    }
+
+  else
+    {
+    try
+      {
+      std::cout << "Read 1\n";
+      img = sitk::ReadImage( dataFinder.GetFile ( "Input/RA-Float.nrrd" ) );
+      std::cout << "Show 1\n";
+      sitk::Show(img);
+      }
+    catch (std::exception &e)
+      {
+      std::cout << "Exception: " << e.what() << std::endl;
+      return EXIT_FAILURE;
+      }
+    catch (...)
+      {
+      std::cout << "Default exception\n";
+      return EXIT_FAILURE;
+      }
+
+
+    try
+      {
+      std::cout << "Read 2\n";
+      img = sitk::ReadImage( dataFinder.GetFile ( "Input/VM1111Shrink-RGB.png" ) );
+      std::cout << "Show 2\n";
+      sitk::Show(img);
+      }
+    catch (std::exception &e)
+      {
+      std::cout << "Exception: " << e.what() << std::endl;
+      return EXIT_FAILURE;
+      }
+    catch (...)
+      {
+      std::cout << "Default exception\n";
+      return EXIT_FAILURE;
+      }
+
+    try
+      {
+      std::cout << "Read 3\n";
+      img = sitk::ReadImage( dataFinder.GetFile ( "Input/cthead1-Float.mha" ) );
+      std::cout << "Show 3\n";
+      sitk::Show(img, "Dave was here", true);
+      }
+    catch (std::exception &e)
+      {
+      std::cout << "Exception: " << e.what() << std::endl;
+      return EXIT_FAILURE;
+      }
+    catch (...)
+      {
+      std::cout << "Default exception\n";
+      return EXIT_FAILURE;
+      }
+    }
+
+  return EXIT_SUCCESS;
+}
diff --git a/Testing/Unit/sitkSystemInformationTest.cxx b/Testing/Unit/sitkSystemInformationTest.cxx
new file mode 100644
index 0000000..af00b99
--- /dev/null
+++ b/Testing/Unit/sitkSystemInformationTest.cxx
@@ -0,0 +1,164 @@
+/*=========================================================================
+ *
+ *  Copyright Insight Software Consortium
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *         http://www.apache.org/licenses/LICENSE-2.0.txt
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ *=========================================================================*/
+
+#include "itksys/SystemTools.hxx"
+#include "itksys/SystemInformation.hxx"
+
+#include <iostream>
+#include <fstream>
+#include <string>
+#include <cstdlib>
+
+
+
+namespace
+{
+
+void SystemInformationPrintFile(const std::string &name, std::ostream& os)
+{
+  const char* div = "=======================================================================";
+  os << "System Information File \"" << name << "\"";
+
+  if(! itksys::SystemTools::FileExists( name.c_str(), true) )
+    {
+    os << " does not exist.\n";
+    return;
+    }
+
+  std::ifstream fin(name.c_str());
+  if(fin)
+    {
+    os << ":\n[" << div << "[\n";
+    os << fin.rdbuf();
+    os << "]" << div << "]\n";
+    os.flush();
+    }
+  else
+    {
+    os << " but cannot be opened for read.\n";
+    }
+}
+
+
+void SystemInformationPrint(std::ostream& os)
+{
+  itksys::SystemInformation mySys;
+  mySys.RunCPUCheck();
+  mySys.RunOSCheck();
+  mySys.RunMemoryCheck();
+
+  os << "---------- System Information ----------" << std::endl;
+
+  os << "VendorString:                 "
+     << mySys.GetVendorString() << std::endl;
+  os << "VendorID:                     "
+     << mySys.GetVendorID() << std::endl;
+  os << "TypeID:                       "
+     << mySys.GetTypeID() << std::endl;
+  os << "FamilyID:                     "
+     << mySys.GetFamilyID() << std::endl;
+  os << "ModelID:                      "
+     << mySys.GetModelID() << std::endl;
+  os << "SteppingCode:                 "
+     << mySys.GetSteppingCode() << std::endl;
+  os << "ExtendedProcessorName:        "
+     << mySys.GetExtendedProcessorName() << std::endl;
+  os << "DoesCPUSupportCPUID:          "
+     << mySys.DoesCPUSupportCPUID() << std::endl;;
+  os << "ProcessorSerialNumber:        "
+     << mySys.GetProcessorSerialNumber() << std::endl;
+  os << "ProcessorCacheSize:           "
+     << mySys.GetProcessorCacheSize() << std::endl;
+  os << "LogicalProcessorsPerPhysical: "
+     << mySys.GetLogicalProcessorsPerPhysical() << std::endl;
+  os << "ProcessorClockFrequency:      "
+     << mySys.GetProcessorClockFrequency() << std::endl;
+  os << "ProcessorAPICID:              "
+     << mySys.GetProcessorAPICID() << std::endl;
+
+  os << "OSName:                       "
+     << mySys.GetOSName() << std::endl;
+  os << "Hostname:                     "
+     << mySys.GetHostname() << std::endl;
+  os << "OSRelease:                    "
+     << mySys.GetOSRelease() << std::endl;
+  os << "OSVersion:                    "
+     << mySys.GetOSVersion() << std::endl;
+  os << "OSPlatform:                   "
+     << mySys.GetOSPlatform() << std::endl;
+
+  os << "Is64Bits:                     "
+     << mySys.Is64Bits() << std::endl;
+
+  os << "NumberOfLogicalCPU:           "
+     << mySys.GetNumberOfLogicalCPU() << std::endl;
+  os << "NumberOfPhysicalCPU:          "
+     << mySys.GetNumberOfPhysicalCPU() << std::endl;
+
+  // Retrieve memory information in megabyte.
+  os << "TotalVirtualMemory:           "
+     << mySys.GetTotalVirtualMemory() << std::endl;
+  os << "AvailableVirtualMemory:       "
+     << mySys.GetAvailableVirtualMemory() << std::endl;
+  os << "TotalPhysicalMemory:          "
+     << mySys.GetTotalPhysicalMemory() << std::endl;
+  os << "AvailablePhysicalMemory:      "
+     << mySys.GetAvailablePhysicalMemory() << std::endl;
+}
+
+
+
+}
+
+int main(int argc, char* argv[])
+{
+  if(argc != 2)
+    {
+    std::cerr << "Usage: itkSystemInformationTest <top-of-build-tree>\n";
+    return EXIT_FAILURE;
+    }
+  std::string build_dir = argv[1];
+  build_dir += "/";
+
+  const char* files[] =
+    {
+      "CMakeCache.txt",
+      "CMakeCacheInit.txt",
+      "sitkConfigure.h",
+      "CMakeFiles/CMakeOutput.log",
+      "CMakeFiles/CMakeError.log",
+      "SimpleITKConfig.cmake",
+      "SimpleITKConfigVersion.cmake",
+      "SimpleITKTargets.cmake",
+      0
+    };
+
+  // Preserve valuable output regardless of the limits set in
+  // CMake/CTestCustom.cmake
+  std::cout << "CTEST_FULL_OUTPUT" << std::endl;
+
+  for(const char** f = files; *f; ++f)
+    {
+    std::string fname = build_dir + *f;
+    SystemInformationPrintFile(fname.c_str(), std::cout);
+    }
+
+  SystemInformationPrint( std::cout );
+
+  return EXIT_SUCCESS;
+}
diff --git a/Testing/Unit/sitkTransformCompare.cxx b/Testing/Unit/sitkTransformCompare.cxx
new file mode 100644
index 0000000..c1e490b
--- /dev/null
+++ b/Testing/Unit/sitkTransformCompare.cxx
@@ -0,0 +1,79 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include <SimpleITK.h>
+#include <memory>
+#include "sitkTransformCompare.h"
+#include "sitkTransformToDisplacementFieldFilter.h"
+
+TransformCompare::TransformCompare()
+  : m_Tolerance(0.0)
+{
+}
+
+
+
+bool TransformCompare::Compare( const itk::simple::Transform &transform,
+                                const itk::simple::Transform &baselineTransform,
+                                const itk::simple::Image &fixedImage )
+{
+  namespace sitk = itk::simple;
+
+  sitk::TransformToDisplacementFieldFilter toDisplacementField;
+  toDisplacementField.SetOutputPixelType( sitk::sitkVectorFloat64 );
+  toDisplacementField.SetReferenceImage( fixedImage );
+  sitk::Image baselineDisplacement = toDisplacementField.Execute( baselineTransform );
+
+  return this->Compare( transform, baselineDisplacement );
+}
+
+
+bool TransformCompare::Compare( const itk::simple::Transform &transform,
+                                const itk::simple::Image &baselineDisplacement )
+{
+  namespace sitk = itk::simple;
+
+  sitk::TransformToDisplacementFieldFilter toDisplacementField;
+  toDisplacementField.SetOutputPixelType( baselineDisplacement.GetPixelID() );
+  toDisplacementField.SetReferenceImage( baselineDisplacement );
+  sitk::Image displacement = toDisplacementField.Execute( transform );
+
+  sitk::Image diff =  sitk::Subtract( displacement, baselineDisplacement );
+
+  diff = sitk::VectorMagnitude(diff);
+  diff = sitk::Multiply(diff, diff);
+
+  sitk::StatisticsImageFilter stats;
+  stats.Execute ( diff );
+  double rms = std::sqrt ( stats.GetMean() );
+
+  std::cout << "<DartMeasurement name=\"RMSDifference\" type=\"numeric/float\">" << rms << "</DartMeasurement>" << std::endl;
+
+  if ( rms > m_Tolerance )
+    {
+    std::ostringstream msg;
+    msg << "TransformCompare: transformed image points Root Mean Square (RMS) difference was " << rms << " which exceeds the tolerance of " << m_Tolerance;
+    msg << "\n";
+    m_Message = msg.str();
+
+    std::cout << "<DartMeasurement name=\"Tolerance\" type=\"numeric/float\">" << m_Tolerance << "</DartMeasurement>" << std::endl;
+
+    return false;
+    }
+
+  return true;
+}
diff --git a/Testing/Unit/sitkTransformCompare.h b/Testing/Unit/sitkTransformCompare.h
new file mode 100644
index 0000000..af601e9
--- /dev/null
+++ b/Testing/Unit/sitkTransformCompare.h
@@ -0,0 +1,50 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#ifndef __TransformCompare_h
+#define __TransformCompare_h
+
+#include <string>
+#include <SimpleITKTestHarness.h>
+#include <sitkImage.h>
+#include <sitkTransform.h>
+
+
+class TransformCompare
+{
+
+public:
+  TransformCompare();
+
+   bool Compare( const itk::simple::Transform &transform,
+                 const itk::simple::Transform &baselineTransform,
+                 const itk::simple::Image &fixedImage );
+
+  bool Compare( const itk::simple::Transform &transform,
+                const itk::simple::Image &baselineDisplacement );
+
+  // Return the message from the previous image comparison.
+  const std::string &GetMessage() const { return m_Message; }
+  void SetTolerance ( double t ) { m_Tolerance = t; }
+  double GetTolerance() const { return m_Tolerance; }
+
+protected:
+  std::string m_Message;
+  double m_Tolerance;
+};
+
+#endif // __TransformCompare_h
diff --git a/Testing/Unit/sitkTransformTests.cxx b/Testing/Unit/sitkTransformTests.cxx
new file mode 100644
index 0000000..99d3831
--- /dev/null
+++ b/Testing/Unit/sitkTransformTests.cxx
@@ -0,0 +1,2174 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+#include "SimpleITKTestHarness.h"
+#include "sitkImageFileReader.h"
+#include "sitkTransform.h"
+#include "sitkAffineTransform.h"
+#include "sitkBSplineTransform.h"
+#include "sitkDisplacementFieldTransform.h"
+#include "sitkTranslationTransform.h"
+#include "sitkEuler2DTransform.h"
+#include "sitkEuler3DTransform.h"
+#include "sitkScaleTransform.h"
+#include "sitkScaleVersor3DTransform.h"
+#include "sitkScaleSkewVersor3DTransform.h"
+#include "sitkSimilarity2DTransform.h"
+#include "sitkSimilarity3DTransform.h"
+#include "sitkVersorRigid3DTransform.h"
+#include "sitkVersorTransform.h"
+#include "sitkAdditionalProcedures.h"
+#include "sitkResampleImageFilter.h"
+#include "sitkHashImageFilter.h"
+
+
+#include "itkMath.h"
+
+namespace sitk = itk::simple;
+namespace nsstd = itk::simple::nsstd;
+
+TEST(TransformTest, Construction) {
+
+
+  sitk::Transform tx0( 2, sitk::sitkIdentity);
+  std::cout << tx0.ToString() << std::endl;
+  sitk::Transform tx1( 3, sitk::sitkIdentity);
+  std::cout << tx1.ToString() << std::endl;
+
+  sitk::Transform tx2( 2, sitk::sitkTranslation);
+  std::cout << tx2.ToString() << std::endl;
+  sitk::Transform tx3( 3, sitk::sitkTranslation);
+  std::cout << tx3.ToString() << std::endl;
+
+  sitk::Transform tx4( 2, sitk::sitkScale);
+  std::cout << tx4.ToString() << std::endl;
+  sitk::Transform tx5( 3, sitk::sitkScale);
+  std::cout << tx5.ToString() << std::endl;
+
+  sitk::Transform tx6( 2, sitk::sitkScaleLogarithmic);
+  std::cout << tx6.ToString() << std::endl;
+  sitk::Transform tx7( 3, sitk::sitkScaleLogarithmic);
+  std::cout << tx7.ToString() << std::endl;
+
+  sitk::Transform tx_0( 2, sitk::sitkEuler);
+  std::cout << tx_0.ToString() << std::endl;
+  sitk::Transform tx_1( 3, sitk::sitkEuler);
+  std::cout << tx_1.ToString() << std::endl;
+
+  sitk::Transform tx_2( 2, sitk::sitkSimilarity);
+  std::cout << tx_2.ToString() << std::endl;
+  sitk::Transform tx_3( 3, sitk::sitkSimilarity);
+  std::cout << tx_3.ToString() << std::endl;
+
+  EXPECT_ANY_THROW( sitk::Transform tx8( 2, sitk::sitkQuaternionRigid) );
+  sitk::Transform tx9( 3, sitk::sitkQuaternionRigid);
+  std::cout << tx9.ToString() << std::endl;
+
+  EXPECT_ANY_THROW( sitk::Transform tx10( 2, sitk::sitkVersor) );
+  sitk::Transform tx11( 3, sitk::sitkVersor);
+  std::cout << tx11.ToString() << std::endl;
+
+  EXPECT_ANY_THROW( sitk::Transform tx12( 2, sitk::sitkVersorRigid) );
+  sitk::Transform tx13( 3, sitk::sitkVersorRigid);
+  std::cout << tx13.ToString() << std::endl;
+
+  sitk::Transform tx14( 2, sitk::sitkAffine);
+  std::cout << tx14.ToString() << std::endl;
+  sitk::Transform tx15( 3, sitk::sitkAffine);
+  std::cout << tx15.ToString() << std::endl;
+
+  sitk::Transform tx16( 2, sitk::sitkAffine);
+  std::cout << tx16.ToString() << std::endl;
+  sitk::Transform tx17( 3, sitk::sitkAffine);
+  std::cout << tx17.ToString() << std::endl;
+
+
+  // default constructable
+  sitk::Transform tx18;
+  std::cout << tx18.ToString() << std::endl;
+
+  // displacement fields
+  sitk::Image displacement = sitk::Image( 100, 100, sitk::sitkVectorFloat64 );
+
+  sitk::Transform tx19( displacement );
+  std::cout <<  tx19.ToString() << std::endl;
+  EXPECT_EQ( displacement.GetSize()[0], 0u );
+  EXPECT_EQ( displacement.GetSize()[1], 0u );
+
+  displacement = sitk::Image( 100,100, 100, sitk::sitkVectorFloat64 );
+  sitk::Transform tx20( displacement );
+  std::cout << tx20.ToString() << std::endl;
+  EXPECT_EQ( displacement.GetSize()[0], 0u );
+  EXPECT_EQ( displacement.GetSize()[1], 0u );
+
+  ASSERT_THROW( sitk::Transform( 3, sitk::sitkDisplacementField ), sitk::GenericException );
+  ASSERT_THROW( sitk::Transform( 2, sitk::sitkDisplacementField ), sitk::GenericException );
+
+
+  sitk::Image bsplineReference = sitk::Image(10,10, sitk::sitkUInt8);
+  sitk::Transform tx21( bsplineReference, sitk::sitkBSplineTransform );
+
+  bsplineReference = sitk::Image(10,10, 10, sitk::sitkUInt8);
+  sitk::Transform tx22( bsplineReference, sitk::sitkBSplineTransform );
+
+  ASSERT_THROW( sitk::Transform( 3, sitk::sitkBSplineTransform ), sitk::GenericException );
+  ASSERT_THROW( sitk::Transform( 2, sitk::sitkBSplineTransform ), sitk::GenericException );
+
+}
+
+TEST(TransformTest, Copy) {
+
+  // Test the copy constructor and asignment operators
+
+  sitk::Transform tx1( 2, sitk::sitkTranslation);
+  sitk::Transform tx2( tx1 );
+  sitk::Transform tx3 = sitk::Transform();
+
+  tx1 = sitk::Transform();
+  tx2 = tx1;
+
+  // check self assignment
+  tx3 = tx3;
+
+}
+
+TEST(TransformTest, SetGetParameters) {
+#if (ITK_VERSION_MAJOR*100+ITK_VERSION_MINOR) >= 410
+  const unsigned int euler3DNumberOfFixedParameters = 4u;
+#else
+  const unsigned int euler3DNumberOfFixedParameters = 3u;
+#endif
+
+
+
+  sitk::Transform tx;
+  EXPECT_TRUE( tx.GetParameters().empty() );
+  EXPECT_TRUE( tx.GetFixedParameters().empty() );
+
+  tx = sitk::Transform( 3, sitk::sitkTranslation );
+  EXPECT_EQ( tx.GetParameters().size(), 3u );
+  EXPECT_TRUE( tx.GetFixedParameters().empty() );
+  EXPECT_TRUE(tx.IsLinear());
+
+  tx = sitk::Transform( 2, sitk::sitkScale );
+  EXPECT_EQ( tx.GetParameters().size(), 2u );
+  EXPECT_EQ( tx.GetFixedParameters().size(), 2u );
+  EXPECT_TRUE(tx.IsLinear());
+
+  tx = sitk::Transform( 3, sitk::sitkScaleLogarithmic );
+  EXPECT_EQ( tx.GetParameters().size(), 3u );
+  EXPECT_EQ( tx.GetFixedParameters().size(), 3u );
+  EXPECT_TRUE(tx.IsLinear());
+
+  tx = sitk::Transform( 2, sitk::sitkEuler );
+  EXPECT_EQ( tx.GetParameters().size(), 3u );
+  EXPECT_EQ( tx.GetFixedParameters().size(), 2u );
+  EXPECT_TRUE(tx.IsLinear());
+
+  tx = sitk::Transform( 3, sitk::sitkEuler );
+  EXPECT_EQ( tx.GetParameters().size(), 6u );
+  EXPECT_EQ( tx.GetFixedParameters().size(), euler3DNumberOfFixedParameters );
+  EXPECT_TRUE(tx.IsLinear());
+
+  tx = sitk::Transform( 2, sitk::sitkSimilarity );
+  EXPECT_EQ( tx.GetParameters().size(), 4u );
+  EXPECT_EQ( tx.GetFixedParameters().size(), 2u );
+  EXPECT_TRUE(tx.IsLinear());
+
+  tx = sitk::Transform( 3, sitk::sitkSimilarity );
+  EXPECT_EQ( tx.GetParameters().size(), 7u );
+  EXPECT_EQ( tx.GetFixedParameters().size(), 3u );
+  EXPECT_TRUE(tx.IsLinear());
+
+  tx = sitk::Transform( 3, sitk::sitkQuaternionRigid );
+  EXPECT_EQ( tx.GetParameters().size(), 7u );
+  EXPECT_EQ( tx.GetFixedParameters().size(), 3u );
+  EXPECT_TRUE(tx.IsLinear());
+
+  tx = sitk::Transform( 3, sitk::sitkVersor );
+  EXPECT_EQ( tx.GetParameters().size(), 3u );
+  EXPECT_EQ( tx.GetFixedParameters().size(), 3u );
+  EXPECT_TRUE(tx.IsLinear());
+
+  tx = sitk::Transform( 3, sitk::sitkVersorRigid );
+  EXPECT_EQ( tx.GetParameters().size(), 6u );
+  EXPECT_EQ( tx.GetFixedParameters().size(), 3u );
+  EXPECT_TRUE(tx.IsLinear());
+
+  tx = sitk::Transform( 2, sitk::sitkAffine );
+  EXPECT_EQ( tx.GetParameters().size(), 6u );
+  EXPECT_EQ( tx.GetFixedParameters().size(), 2u );
+  EXPECT_TRUE(tx.IsLinear());
+
+  sitk::Image displacement = sitk::Image( 10, 10, sitk::sitkVectorFloat64 );
+
+  tx =  sitk::Transform ( displacement );
+  EXPECT_EQ( tx.GetParameters().size(), 200u );
+  EXPECT_EQ( tx.GetFixedParameters().size(), 10u );
+  EXPECT_TRUE(!tx.IsLinear());
+
+  displacement = sitk::Image( 10, 10, 10, sitk::sitkVectorFloat64 );
+
+  tx =  sitk::Transform ( displacement );
+  EXPECT_EQ( tx.GetParameters().size(), 3000u );
+  EXPECT_EQ( tx.GetFixedParameters().size(), 18u );
+
+  tx = sitk::Transform(3,sitk::sitkIdentity);
+  tx.SetFixedParameters(std::vector<double>());
+  tx.SetParameters(std::vector<double>());
+  tx.SetIdentity();
+}
+
+TEST(TransformTest, CopyOnWrite) {
+
+  sitk::Transform tx1 = sitk::Transform( 2, sitk::sitkAffine );
+  sitk::Transform tx2 = tx1;
+  sitk::Transform tx3 = tx1;
+
+  std::vector<double> params = tx1.GetParameters();
+  params[1] = 0.2;
+
+  tx2.SetParameters( params );
+
+  ASSERT_EQ( tx1.GetParameters().size(), 6u );
+  EXPECT_EQ( tx1.GetParameters()[1], 0.0 );
+
+  ASSERT_EQ( tx2.GetParameters().size(), 6u );
+  EXPECT_EQ( tx2.GetParameters()[1], 0.2 );
+
+  ASSERT_EQ( tx3.GetParameters().size(), 6u );
+  EXPECT_EQ( tx3.GetParameters()[1], 0.0 );
+
+  params[1] = 0.3;
+  tx3.SetParameters( params );
+
+  ASSERT_EQ( tx1.GetParameters().size(), 6u );
+  EXPECT_EQ( tx1.GetParameters()[1], 0.0 );
+
+  ASSERT_EQ( tx2.GetParameters().size(), 6u );
+  EXPECT_EQ( tx2.GetParameters()[1], 0.2 );
+
+  ASSERT_EQ( tx3.GetParameters().size(), 6u );
+  EXPECT_EQ( tx3.GetParameters()[1], 0.3 );
+
+  tx1 = tx2;
+
+  ASSERT_EQ( tx1.GetParameters().size(), 6u );
+  EXPECT_EQ( tx1.GetParameters()[1], 0.2 );
+
+  ASSERT_EQ( tx2.GetParameters().size(), 6u );
+  EXPECT_EQ( tx2.GetParameters()[1], 0.2 );
+
+  ASSERT_EQ( tx3.GetParameters().size(), 6u );
+  EXPECT_EQ( tx3.GetParameters()[1], 0.3 );
+
+
+  params[1] = 0.4;
+  tx1.SetParameters( params );
+
+  ASSERT_EQ( tx1.GetParameters().size(), 6u );
+  EXPECT_EQ( tx1.GetParameters()[1], 0.4 );
+
+  ASSERT_EQ( tx2.GetParameters().size(), 6u );
+  EXPECT_EQ( tx2.GetParameters()[1], 0.2 );
+
+  ASSERT_EQ( tx3.GetParameters().size(), 6u );
+  EXPECT_EQ( tx3.GetParameters()[1], 0.3 );
+
+}
+
+
+
+TEST(TransformTest, AddTransform) {
+
+  sitk::Transform tx1 = sitk::Transform( 2, sitk::sitkAffine );
+  tx1.AddTransform( sitk::Transform( 2, sitk::sitkAffine ) );
+  // check we can't add miss match dimension
+  ASSERT_ANY_THROW( tx1.AddTransform( sitk::Transform( 3, sitk::sitkAffine ) ) );
+
+
+  sitk::Transform tx2 = tx1;
+  tx1.AddTransform( sitk::Transform( 2, sitk::sitkIdentity ) );
+
+
+  sitk::Transform tx3( 3, sitk::sitkComposite );
+  tx1 = tx3;
+  tx3.AddTransform( sitk::Transform( 3, sitk::sitkAffine ) );
+
+}
+
+TEST(TransformTest, ReadTransformResample) {
+
+  const char *txFiles[] = {
+    "Input/xforms/affine_i_3.txt",
+    "Input/xforms/composite_i_3.txt",
+    "Input/xforms/i_3.txt",
+    "Input/xforms/scale_i_3.txt",
+    "Input/xforms/translation_i_3.txt",
+    "Input/xforms/quaternion_rigid_i_3.txt",
+    "Input/xforms/scale_logarithmic_i_3.txt",
+    "Input/xforms/versor_i_3.txt",
+    "" // end with zero length string
+  };
+
+  sitk::Transform tx;
+
+  sitk::Image img = sitk::ReadImage( dataFinder.GetFile("Input/RA-Short.nrrd" ) );
+
+  const char **ptxFiles = txFiles;
+  while( strlen( *ptxFiles ) != 0 )
+    {
+    std::string fname = dataFinder.GetFile( *ptxFiles );
+    std::cout << "Reading: " << *ptxFiles << std::endl;
+
+    EXPECT_NO_THROW( tx = sitk::ReadTransform( fname ) );
+
+    sitk::Image out = sitk::Resample( img, tx, sitk::sitkNearestNeighbor );
+
+    EXPECT_EQ( "126ea8c3ef5573ca1e4e0deece920c2c4a4f38b5", sitk::Hash( out ) ) << "Resampling with identity matrix:" << tx.ToString();
+
+    ++ptxFiles;
+    }
+
+
+}
+
+
+TEST(TransformTest, ReadTransformConvert) {
+
+  EXPECT_NO_THROW(sitk::AffineTransform(sitk::ReadTransform( dataFinder.GetFile( "Input/xforms/affine_i_3.txt" ) ) ) );
+  EXPECT_NO_THROW(sitk::Transform(sitk::ReadTransform( dataFinder.GetFile( "Input/xforms/composite_i_3.txt" ) ) ) );
+  EXPECT_NO_THROW(sitk::Transform(sitk::ReadTransform( dataFinder.GetFile( "Input/xforms/i_3.txt" ) ) ) );
+  EXPECT_NO_THROW(sitk::ScaleTransform(sitk::ReadTransform( dataFinder.GetFile( "Input/xforms/scale_i_3.txt" ) ) ) );
+  EXPECT_NO_THROW(sitk::TranslationTransform(sitk::ReadTransform( dataFinder.GetFile( "Input/xforms/translation_i_3.txt" ) ) ) );
+  EXPECT_NO_THROW(sitk::Transform(sitk::ReadTransform( dataFinder.GetFile( "Input/xforms/quaternion_rigid_i_3.txt" ) ) ) );
+  EXPECT_NO_THROW(sitk::Transform(sitk::ReadTransform( dataFinder.GetFile( "Input/xforms/scale_logarithmic_i_3.txt" ) ) ) );
+  EXPECT_NO_THROW(sitk::VersorTransform(sitk::ReadTransform( dataFinder.GetFile( "Input/xforms/versor_i_3.txt" ) ) ) );
+
+  std::string filename = dataFinder.GetOutputFile ( "TransformTest.ReadTransformConvert.txt" );
+  {
+  sitk::AffineTransform tx(2);
+  sitk::WriteTransform(tx, filename);
+  EXPECT_NO_THROW(tx = sitk::AffineTransform( sitk::ReadTransform(filename) ) );
+  EXPECT_EQ(tx.GetDimension(), 2u);
+  }
+  {
+  sitk::Euler2DTransform tx;
+  sitk::WriteTransform(tx, filename);
+  EXPECT_NO_THROW(tx = sitk::Euler2DTransform( sitk::ReadTransform(filename) ) );
+  EXPECT_EQ(tx.GetDimension(), 2u);
+  }
+  {
+  sitk::Euler3DTransform tx;
+  sitk::WriteTransform(tx, filename);
+  EXPECT_NO_THROW(tx = sitk::Euler3DTransform( sitk::ReadTransform(filename) ) );
+  EXPECT_EQ(tx.GetDimension(), 3u);
+  }
+  {
+  sitk::ScaleSkewVersor3DTransform tx;
+  sitk::WriteTransform(tx, filename);
+  EXPECT_NO_THROW(tx = sitk::ScaleSkewVersor3DTransform( sitk::ReadTransform(filename) ) );
+  EXPECT_EQ(tx.GetDimension(), 3u);
+  }
+  {
+  sitk::ScaleTransform tx(2);
+  sitk::WriteTransform(tx, filename);
+  EXPECT_NO_THROW( tx = sitk::ScaleTransform( sitk::ReadTransform(filename) ) );
+  EXPECT_EQ(tx.GetDimension(), 2u);
+  }
+  {
+  sitk::ScaleVersor3DTransform tx;
+  sitk::WriteTransform(tx, filename);
+  EXPECT_NO_THROW(tx = sitk::ScaleVersor3DTransform( sitk::ReadTransform(filename) ) );
+  EXPECT_EQ(tx.GetDimension(), 3u);
+  }
+  {
+  sitk::Similarity2DTransform tx;
+  sitk::WriteTransform(tx, filename);
+  EXPECT_NO_THROW(tx = sitk::Similarity2DTransform( sitk::ReadTransform(filename) ) );
+  EXPECT_EQ(tx.GetDimension(), 2u);
+  }
+  {
+  sitk::Similarity3DTransform tx;
+  sitk::WriteTransform(tx, filename);
+  EXPECT_NO_THROW(tx = sitk::Similarity3DTransform( sitk::ReadTransform(filename) ) );
+  EXPECT_EQ(tx.GetDimension(), 3u);
+  }
+  {
+  sitk::TranslationTransform tx(3);
+  sitk::WriteTransform(tx, filename);
+  EXPECT_NO_THROW(tx = sitk::TranslationTransform( sitk::ReadTransform(filename) ) );
+  EXPECT_EQ(tx.GetDimension(), 3u);
+  }
+  {
+  sitk::VersorRigid3DTransform tx;
+  sitk::WriteTransform(tx, filename);
+  EXPECT_NO_THROW(tx = sitk::VersorRigid3DTransform( sitk::ReadTransform(filename) ) );
+  EXPECT_EQ(tx.GetDimension(), 3u);
+  }
+  {
+  sitk::VersorTransform tx;
+  sitk::WriteTransform(tx, filename);
+  EXPECT_NO_THROW(tx = sitk::VersorTransform( sitk::ReadTransform(filename) ) );
+  EXPECT_EQ(tx.GetDimension(), 3u);
+  }
+  {
+  sitk::DisplacementFieldTransform tx(2);
+  sitk::WriteTransform(tx, filename);
+  EXPECT_NO_THROW( tx = sitk::DisplacementFieldTransform( sitk::ReadTransform(filename) ) );
+  EXPECT_EQ(tx.GetDimension(), 2u);
+  }
+  {
+  sitk::DisplacementFieldTransform tx(2);
+  tx.SetSmoothingGaussianOnUpdate();
+  sitk::WriteTransform(tx, filename);
+  EXPECT_NO_THROW( tx = sitk::DisplacementFieldTransform( sitk::ReadTransform(filename) ) );
+  EXPECT_EQ(tx.GetDimension(), 2u);
+  }
+  {
+  sitk::BSplineTransform tx(2);
+  sitk::WriteTransform(tx, filename);
+  EXPECT_NO_THROW( tx = sitk::BSplineTransform( sitk::ReadTransform(filename) ) );
+  EXPECT_EQ(tx.GetDimension(), 2u);
+  EXPECT_EQ(tx.GetOrder(), 3u);
+  }
+  {
+  sitk::BSplineTransform tx(3);
+  sitk::WriteTransform(tx, filename);
+  EXPECT_NO_THROW( tx = sitk::BSplineTransform( sitk::ReadTransform(filename) ) );
+  EXPECT_EQ(tx.GetDimension(), 3u);
+  EXPECT_EQ(tx.GetOrder(), 3u);
+  }
+
+}
+
+TEST(TransformTest, TransformPoint) {
+  sitk::Transform tx2 = sitk::Transform( 2, sitk::sitkIdentity );
+  sitk::Transform tx3 = sitk::Transform( 3, sitk::sitkIdentity );
+
+  std::vector<double> ipt;
+  ipt.push_back( 1.1 );
+  ipt.push_back( 2.22 );
+
+  std::vector<double> opt;
+
+  opt = tx2.TransformPoint( ipt );
+  ASSERT_EQ( opt.size(), 2u );
+  EXPECT_EQ( opt[0], 1.1 );
+  EXPECT_EQ( opt[1], 2.22 );
+
+  EXPECT_ANY_THROW( tx3.TransformPoint( ipt ) );
+
+  ipt.push_back( 3.333 );
+
+  EXPECT_ANY_THROW( opt = tx2.TransformPoint( ipt ) );
+  ASSERT_EQ( opt.size(), 2u );
+  EXPECT_EQ( opt[0], 1.1 );
+  EXPECT_EQ( opt[1], 2.22 );
+
+  opt = tx3.TransformPoint( ipt );
+  ASSERT_EQ( opt.size(), 3u );
+  EXPECT_EQ( opt[0], 1.1 );
+  EXPECT_EQ( opt[1], 2.22 );
+  EXPECT_EQ( opt[2], 3.333 );
+
+}
+
+
+TEST(TransformTest,AffineTransform)
+{
+  // test AffineTransform
+
+  const std::vector<double> zeros(3,0.0);
+  const std::vector<double> trans2d = v2(2.2,2.2);
+  const std::vector<double> trans3d = v3(3.3,3.3,3.3);
+
+  const std::vector<double> center2d(2, 10);
+  const std::vector<double> center3d(3, 20);
+
+  const std::vector<double> scale2d = v2(1,2);
+  const std::vector<double> scale3d = v3(1,1.2,1.3);
+
+  nsstd::auto_ptr<sitk::AffineTransform> tx;
+
+  // 2d
+  EXPECT_NO_THROW( tx.reset( new sitk::AffineTransform(2) ) );
+  std::cout << tx->ToString() << std::endl;
+  EXPECT_EQ( tx->GetParameters().size(), 6u );
+  EXPECT_EQ( tx->GetFixedParameters().size(), 2u );
+  EXPECT_EQ( tx->GetMatrix(), v4(1.0,0.0, 0.0,1.0) );
+
+  EXPECT_EQ( tx->SetTranslation( trans2d ).GetTranslation(), trans2d );
+  EXPECT_EQ( tx->SetCenter( center2d ).GetCenter(), center2d );
+
+  tx.reset( new sitk::AffineTransform(2) );
+  tx->Scale( v2(1,2));
+  EXPECT_VECTOR_DOUBLE_NEAR( tx->TransformPoint( v2(0,0) ), v2(0,0),1e-15);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx->TransformPoint( v2(1,1) ), v2(1,2),1e-15);
+  tx->Scale( 2 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx->TransformPoint( v2(0,0) ), v2(0,0),1e-15);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx->TransformPoint( v2(1,1) ), v2(2,4),1e-15);
+
+  tx.reset( new sitk::AffineTransform(2) );
+  tx->Shear(0,1, 2.0);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx->TransformPoint( v2(0,0) ), v2(0,0),1e-15);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx->TransformPoint( v2(1,2) ), v2(5,2),1e-15);
+
+  tx.reset( new sitk::AffineTransform(2) );
+  tx->Translate(v2(10.0,-10.0));
+  EXPECT_VECTOR_DOUBLE_NEAR( tx->TransformPoint( v2(0,0) ), v2(10.0,-10.0),1e-15);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx->TransformPoint( v2(1,2) ), v2(11.0,-8.0),1e-15);
+
+  tx.reset( new sitk::AffineTransform(2) );
+  tx->Rotate(0,1,itk::Math::pi_over_2);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx->TransformPoint( v2(0,0) ), v2(0,0),1e-15);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx->TransformPoint( v2(1,2) ), v2(2,-1),1e-14);
+
+  sitk::AffineTransform tx0(v4(1.0,2.0,3.0,4.0), v2(5.0,6.0));
+  EXPECT_EQ( tx0.GetMatrix(), v4(1.0,2.0,3.0,4.0) );
+  EXPECT_EQ( tx0.GetTranslation(), v2(5.0,6.0) );
+
+  // 3d
+  EXPECT_NO_THROW( tx.reset( new sitk::AffineTransform(3) ) );
+  EXPECT_EQ( tx->GetParameters().size(), 12u );
+  EXPECT_EQ( tx->GetFixedParameters().size(), 3u );
+
+  EXPECT_EQ( tx->SetTranslation( trans3d ).GetTranslation(), trans3d );
+  EXPECT_EQ( tx->SetCenter( center3d ).GetCenter(), center3d );
+
+  sitk::AffineTransform tx00(v9(1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0), v3(10.0,11.0,12.0));
+  EXPECT_EQ( tx00.GetMatrix(), v9(1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0) );
+  EXPECT_EQ( tx00.GetTranslation(), v3(10.0,11.0,12.0) );
+
+  // copy and assignment
+  sitk::AffineTransform tx1(*tx);
+  EXPECT_EQ( tx1.GetDimension(), 3u );
+  EXPECT_EQ( tx1.GetCenter(), center3d );
+  EXPECT_EQ( tx1.GetParameters(), tx->GetParameters() );
+  EXPECT_EQ( tx1.GetFixedParameters(), tx->GetFixedParameters() );
+
+
+  tx1 = sitk::AffineTransform(2);
+  EXPECT_EQ( tx1.GetDimension(), 2u );
+  EXPECT_EQ( tx1.GetParameters().size(), 6u );
+  EXPECT_EQ( tx1.GetFixedParameters().size(), 2u );
+  EXPECT_EQ( tx1.GetCenter(), std::vector<double>(2, 0.0) );
+  EXPECT_EQ( tx1.GetTranslation(), std::vector<double>(2, 0.0) );
+
+  // copy on write
+
+  // exceptions
+  EXPECT_THROW( sitk::AffineTransform(1), sitk::GenericException );
+  EXPECT_THROW( sitk::AffineTransform(4), sitk::GenericException );
+  EXPECT_THROW( tx->SetParameters( std::vector<double>(11) ), sitk::GenericException );
+  EXPECT_NO_THROW( tx->SetParameters( std::vector<double>(13) ) );
+  EXPECT_THROW( tx->SetFixedParameters( std::vector<double>(2) ), sitk::GenericException );
+  EXPECT_NO_THROW( tx->SetFixedParameters( std::vector<double>(4) ) );
+
+}
+
+
+TEST(TransformTest,AffineTransform_3DPoints)
+{
+  // Test Affine by transforming some points
+  sitk::AffineTransform tx(3);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,0.0,0.0) ), v3(0.0,0.0,0.0),1e-15 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,1.0,1.0) ), v3(1.0,1.0,1.0),1e-15 );
+
+  tx.Translate(v3(1.0,2.0,3.0));
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,0.0,0.0) ), v3(1.0,2.0,3.0),1e-15 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,1.0,1.0) ), v3(2.0,3.0,4.0),1e-15 );
+
+  // apply transform after and inverse before
+  tx.Scale(v3(2.0,2.0,2.0),false).Scale(.5,true);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,0.0,0.0) ), v3(2.0,4.0,6.0),1e-15 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,1.0,1.0) ), v3(3.0,5.0,7.0),1e-15 );
+
+  tx = sitk::AffineTransform(3);
+  tx.Translate(v3(1.0,2.0,3.0));
+  tx.Shear(0,1,1.0, false).Shear(0,1,-1.0,true);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,0.0,0.0) ), v3(3.0,2.0,3.0),1e-15 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,1.0,1.0) ), v3(4.0,3.0,4.0),1e-15 );
+
+  tx = sitk::AffineTransform(3);
+  tx.Translate(v3(1.0,2.0,3.0));
+  tx.Rotate(0,1,1.0, false).Rotate(0,1,-1.0);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,0.0,0.0) ), v3(1.0,2.0,3.0),1e-15 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,0.0,1.0) ), v3(2.0,2.0,4.0),1e-15 );
+
+  // inverse
+  tx.SetInverse();
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,2.0,3.0) ), v3(0.0,0.0,0.0),1e-15 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(2.0,2.0,4.0) ), v3(1.0,0.0,1.0),1e-15 );
+  EXPECT_NO_THROW(tx.GetCenter());
+
+  tx.SetIdentity();
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,0.0,0.0) ), v3(0.0,0.0,0.0),1e-15 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,1.0,1.0) ), v3(1.0,1.0,1.0),1e-15 );
+
+  sitk::AffineTransform tx3(tx.GetInverse());
+  EXPECT_VECTOR_DOUBLE_NEAR( tx3.TransformPoint( v3(0.0,0.0,0.0) ), v3(0.0,0.0,0.0),1e-15 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx3.TransformPoint( v3(1.0,1.0,1.0) ), v3(1.0,1.0,1.0),1e-15 );
+
+}
+
+TEST(TransformTest,AffineTransform_Matrix)
+{
+  // Test the Set/Get Matrix
+  sitk::AffineTransform tx(3);
+  EXPECT_EQ( v9(1.0,0.0,0.0, 0.0,1.0,0.0, 0.0,0.0,1.0), tx.GetMatrix() );
+  tx.SetMatrix( v9(1.0,1.0,0.0, 0.0,2.0,0.0, 0.0,0.0,3.0) );
+  EXPECT_EQ( v9(1.0,1.0,0.0, 0.0,2.0,0.0, 0.0,0.0,3.0), tx.GetMatrix() );
+
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,1.0,0.0) ), v3(2.0,2.0,0.0),1e-15 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,1.0,1.0) ), v3(1.0,2.0,3.0),1e-15 );
+
+  tx.SetMatrix( v9(1.0,0.0,0.0, 0.0,0.0,0.0, 0.0,0.0,1.0) );
+  EXPECT_THROW(tx.GetInverse(), sitk::GenericException);
+  EXPECT_TRUE( !tx.SetInverse() );
+}
+TEST(TransformTest,BSplineTransform)
+{ // test BSplineTransform
+
+
+  nsstd::auto_ptr<sitk::BSplineTransform> tx(new sitk::BSplineTransform(2));
+  std::cout << tx->ToString() << std::endl;
+  EXPECT_EQ( tx->GetParameters().size(), 32u );
+  EXPECT_EQ( tx->GetFixedParameters().size(), 10u );
+  EXPECT_EQ( tx->GetTransformDomainDirection(), v4(1.0,0.0,0.0,1.0) );
+  EXPECT_EQ( tx->GetTransformDomainMeshSize(), std::vector<unsigned int>(2,1u) );
+  EXPECT_EQ( tx->GetTransformDomainOrigin(), v2(0.0,0.0) );
+  EXPECT_EQ( tx->GetTransformDomainPhysicalDimensions(), v2(1.0,1.0) );
+
+  tx.reset(new sitk::BSplineTransform(3));
+  EXPECT_EQ( tx->GetParameters().size(), 192u );
+  EXPECT_EQ( tx->GetFixedParameters().size(), 18u );
+
+  tx.reset(new sitk::BSplineTransform(2));
+  EXPECT_EQ( tx->SetTransformDomainDirection(v4(-1.0,0.0,0.0,-1.0)).GetTransformDomainDirection(), v4(-1.0,0.0,0.0,-1.0) );
+  EXPECT_EQ( tx->SetTransformDomainOrigin( v2(1.1,1.2) ).GetTransformDomainOrigin(), v2(1.1,1.2) );
+
+  // copy constructor
+  sitk::BSplineTransform tx1( *(tx.get()) );
+  EXPECT_EQ( tx1.GetParameters().size(), 32u );
+  EXPECT_EQ( tx1.GetFixedParameters().size(), 10u );
+  EXPECT_EQ( tx1.GetTransformDomainDirection(), v4(-1.0,0.0,0.0,-1.0) );
+  EXPECT_EQ( tx1.GetTransformDomainMeshSize(), std::vector<unsigned int>(2,1u) );
+  EXPECT_EQ( tx1.GetTransformDomainOrigin(), v2(1.1,1.2) );
+  EXPECT_EQ( tx1.GetTransformDomainPhysicalDimensions(), v2(1.0,1.0) );
+
+  sitk::BSplineTransform tx2(2);
+
+  // assignment operator
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetDimension(), 2u );
+  EXPECT_EQ( tx1.GetTransformDomainOrigin(), v2(0.0,0.0) );
+
+  // copy on write
+  tx1.SetTransformDomainOrigin( v2(1.3,1.4) );
+  EXPECT_EQ( tx1.GetTransformDomainOrigin(), v2(1.3,1.4) );
+  EXPECT_EQ( tx2.GetTransformDomainOrigin(), v2(0.0,0.0) );
+
+  // todo test other attributes...
+
+  sitk::Transform tx3( *tx );
+  tx.reset();
+  EXPECT_EQ( tx3.GetParameters().size(), 32u );
+  EXPECT_EQ( tx3.GetFixedParameters().size(), 10u );
+
+  tx.reset( new sitk::BSplineTransform(2));
+
+  // test member setters/getters
+  EXPECT_EQ( tx->SetTransformDomainDirection(v4(0.0,1.0,1.0,0.0)).GetTransformDomainDirection(), v4(0.0,1.0,1.0,0.0) );
+  EXPECT_EQ( tx->SetTransformDomainMeshSize(std::vector<unsigned int>(2,4u)).GetTransformDomainMeshSize(), std::vector<unsigned int>(2,4u) );
+  EXPECT_EQ( tx->SetTransformDomainOrigin( v2(2.0,2.0) ).GetTransformDomainOrigin(), v2(2.0,2.0) );
+  EXPECT_EQ( tx->SetTransformDomainPhysicalDimensions(v2(4.0,4.0)).GetTransformDomainPhysicalDimensions(), v2(4.0,4.0) );
+
+  std::vector<sitk::Image> coefficientImages = tx->GetCoefficientImages();
+  ASSERT_EQ( 2u, coefficientImages.size() );
+  EXPECT_EQ( std::vector<unsigned int>(2, 7u), coefficientImages[0].GetSize() );
+  EXPECT_EQ( std::vector<unsigned int>(2, 7u), coefficientImages[1].GetSize() );
+
+  EXPECT_NO_THROW(tx->SetIdentity());
+  EXPECT_EQ( tx3.GetParameters(), std::vector<double>(32,0.0));
+  tx.reset( new sitk::BSplineTransform(2));
+  EXPECT_NO_THROW(tx->SetIdentity());
+
+  // no inverse
+  EXPECT_TRUE(!tx->SetInverse());
+  EXPECT_NO_THROW(tx->GetOrder());
+  EXPECT_THROW(tx->GetInverse(),sitk::GenericException);
+}
+
+TEST(TransformTest,BSplineTransform_order)
+{
+  // test features with bspline order
+  EXPECT_THROW(sitk::BSplineTransform(4), sitk::GenericException);
+  EXPECT_THROW(sitk::BSplineTransform(2,4), sitk::GenericException);
+  EXPECT_THROW(sitk::BSplineTransform(2,20), sitk::GenericException);
+  EXPECT_THROW(sitk::BSplineTransform(3,4), sitk::GenericException);
+  EXPECT_THROW(sitk::BSplineTransform(3,99), sitk::GenericException);
+
+  nsstd::auto_ptr<sitk::BSplineTransform> tx;
+  EXPECT_NO_THROW(tx.reset(new sitk::BSplineTransform(3)));
+  EXPECT_EQ(3u, tx->GetOrder());
+  EXPECT_NO_THROW( tx.reset(new sitk::BSplineTransform(3,0)));
+  EXPECT_EQ(0u, tx->GetOrder());
+  EXPECT_EQ(v3(0,0,0), tx->TransformPoint(v3(0,0,0)));
+  EXPECT_NO_THROW(tx.reset(new sitk::BSplineTransform(3,1)));
+  EXPECT_EQ(1u, tx->GetOrder());
+  EXPECT_EQ(v3(0,0,0), tx->TransformPoint(v3(0,0,0)));
+  EXPECT_NO_THROW(tx.reset(new sitk::BSplineTransform(3,2)));
+  EXPECT_EQ(2u, tx->GetOrder());
+  EXPECT_EQ(v3(0,0,0), tx->TransformPoint(v3(0,0,0)));
+  EXPECT_NO_THROW(tx.reset(new sitk::BSplineTransform(3,3)));
+  EXPECT_EQ(3u, tx->GetOrder());
+  EXPECT_EQ(v3(0,0,0), tx->TransformPoint(v3(0,0,0)));
+
+  sitk::BSplineTransform tx1(*tx);
+  EXPECT_EQ(3u, tx1.GetOrder());
+
+  tx.reset(new sitk::BSplineTransform(3,1));
+  EXPECT_EQ(3u, tx1.GetOrder());
+  tx1 = *tx;
+  EXPECT_EQ(1u, tx1.GetOrder());
+
+  // deep copy
+  tx1.SetParameters(tx1.GetParameters());
+  EXPECT_EQ(1u, tx1.GetOrder());
+}
+
+
+
+TEST(TransformTest,DisplacementFieldTransform)
+{
+  // test DisplacementFieldTransform
+  const std::vector<double> center(3,1.1);
+  const std::vector<double> zeros(3,0.0);
+  const std::vector<double> trans(3, 2.2);
+
+  const std::vector<unsigned int> size(2,10u);
+  const std::vector<unsigned int> idx(2,1u);
+
+  nsstd::auto_ptr<sitk::DisplacementFieldTransform> tx(new sitk::DisplacementFieldTransform(2));
+  std::cout << tx->ToString() << std::endl;
+  EXPECT_EQ( tx->GetParameters().size(), 0u );
+  EXPECT_EQ( tx->GetFixedParameters().size(), 10u );
+  EXPECT_EQ( tx->GetDimension(), 2u );
+
+  // copy constructor
+  sitk::DisplacementFieldTransform tx1( *tx );
+  EXPECT_EQ( tx1.GetParameters().size(), 0u );
+  EXPECT_EQ( tx1.GetFixedParameters().size(), 10u );
+  EXPECT_EQ( tx1.GetDimension(), 2u );
+
+  sitk::DisplacementFieldTransform tx2(3);
+
+
+
+  // assignment operator
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetParameters().size(), 0u );
+  EXPECT_EQ( tx1.GetFixedParameters().size(), 18u );
+  EXPECT_EQ( tx1.GetDimension(), 3u );
+
+
+  sitk::Image disImage(size, sitk::sitkVectorFloat64);
+
+  sitk::DisplacementFieldTransform tx3(disImage);
+  EXPECT_EQ( tx3.GetDimension(), 2u );
+  EXPECT_EQ( tx3.GetParameters().size(), 200u );
+  EXPECT_EQ( tx3.GetFixedParameters().size(), 10u );
+  EXPECT_EQ( tx3.GetFixedParameters()[0], 10.0 );
+
+  EXPECT_EQ( disImage.GetSize()[0], 0u);
+  EXPECT_EQ( disImage.GetSize()[1], 0u);
+
+  tx3.SetSmoothingGaussianOnUpdate();
+  tx3.SetSmoothingBSplineOnUpdate();
+  tx3.SetSmoothingOff();
+
+
+  // test conversion methods with initial values
+  tx1 = sitk::DisplacementFieldTransform(2);
+  tx1.SetSmoothingGaussianOnUpdate();
+  tx1.SetSmoothingBSplineOnUpdate();
+  tx1.SetSmoothingOff();
+
+  const double fixedParametersArray[] = {5.0, 5.0, 0.1, 0.2, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0};
+  std::vector<double> fixedParameters(fixedParametersArray, fixedParametersArray+10);
+
+  tx1.SetFixedParameters(fixedParameters);
+  EXPECT_EQ( tx1.GetFixedParameters()[0], 5.0 );
+
+  sitk::Image disImage2 = tx1.GetDisplacementField();
+  EXPECT_EQ( disImage2.GetSize()[0], 5u);
+  EXPECT_EQ( disImage2.GetOrigin()[1], 0.2);
+  EXPECT_EQ( disImage2.GetSpacing()[1], 1.0);
+
+  // EXPECT_EQ( tx1.GetInterpolator(), sitk::Linear );
+  tx1.SetInterpolator( sitk::sitkNearestNeighbor );
+  // EXPECT_EQ( tx1.GetInterpolator(), sitk::NearestNeighbor );
+  tx1.SetInterpolator( sitk::sitkLinear );
+  // EXPECT_EQ( tx1.GetInterpolator(), sitk::Linear );
+  EXPECT_THROW( tx1.SetInterpolator( sitk::sitkBSpline ), sitk::GenericException );
+
+}
+
+TEST(TransformTest,DisplacementFieldTransform_CopyOnWrite)
+{
+  const std::vector<unsigned int> size(2,10u);
+
+  sitk::DisplacementFieldTransform tx(2);
+  sitk::DisplacementFieldTransform copy_tx = tx;
+
+  sitk::Image disImage(size, sitk::sitkVectorFloat64);
+
+  // check copy with initial state
+  EXPECT_EQ( tx.GetFixedParameters()[0], 0.0 );
+  tx.SetSmoothingOff();
+  EXPECT_EQ( tx.GetFixedParameters()[0], 0.0 );
+  EXPECT_EQ( copy_tx.GetFixedParameters()[0], 0.0 );
+
+
+  // check make unique with set displacement
+  tx = sitk::DisplacementFieldTransform(2);
+  copy_tx = tx;
+
+  EXPECT_EQ( tx.GetFixedParameters()[0], 0.0 );
+  EXPECT_EQ( copy_tx.GetFixedParameters()[0], 0.0 );
+  tx.SetDisplacementField( disImage );
+  EXPECT_EQ( tx.GetFixedParameters()[0], 10.0 );
+  EXPECT_EQ( copy_tx.GetFixedParameters()[0], 0.0 );
+
+}
+
+TEST(TransformTest,DisplacementFieldTransform_Points)
+{
+  const std::vector<unsigned int> size(3,5u);
+  sitk::Image disImage(size, sitk::sitkVectorFloat64);
+
+  // Test displacement field transform by transforming some points
+  sitk::DisplacementFieldTransform tx(disImage);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,0.0,0.0) ), v3(0.0,0.0,0.0), 1e-15 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,1.0,1.0) ), v3(1.0,1.0,1.0),1e-15 );
+
+  const std::vector<unsigned int> idx(2,0u);
+
+  disImage = sitk::Image( std::vector<unsigned int>(2,5u), sitk::sitkVectorFloat64 );
+  disImage.SetPixelAsVectorFloat64( idx, v2(0.5,0.5) );
+  tx = sitk::DisplacementFieldTransform(disImage);
+
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v2(0.0,0.0) ), v2(0.5,0.5), 1e-15 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v2(0.5, 0.0) ), v2(0.75,0.25), 1e-15 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v2(0.5, 0.5) ), v2(0.625,0.625), 1e-15 );
+
+
+  tx.SetInterpolator( sitk::sitkNearestNeighbor );
+
+
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v2(0.0,0.0) ), v2(0.5,0.5), 1e-15 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v2(0.4, 0.4) ), v2(0.9,0.9), 1e-15 );
+
+  // 0.5 is a difficult case to nearest neighbor does it, it rounds up
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v2(0.5, 0.5) ), v2(0.5,0.5), 1e-15 );
+
+}
+
+TEST(TransformTest,Euler2DTransform)
+{
+  // test Euler2DTransform
+
+  const std::vector<double> center(2,1.1);
+  const std::vector<double> zeros(2,0.0);
+  const std::vector<double> trans(2, 2.2);
+
+  nsstd::auto_ptr<sitk::Euler2DTransform> tx(new sitk::Euler2DTransform());
+  std::cout << tx->ToString() << std::endl;
+  EXPECT_EQ( tx->GetParameters().size(), 3u );
+  EXPECT_EQ( tx->GetFixedParameters().size(), 2u );
+  EXPECT_EQ( tx->GetMatrix(), v4(1.0,0.0, 0.0,1.0) );
+
+
+  tx.reset( new sitk::Euler2DTransform(center));
+  EXPECT_EQ( tx->GetParameters().size(), 3u );
+  EXPECT_EQ( tx->GetFixedParameters().size(), 2u );
+  EXPECT_EQ( tx->GetFixedParameters()[0], 1.1 );
+  EXPECT_EQ( tx->GetFixedParameters()[1], 1.1 );
+  EXPECT_EQ( tx->GetCenter(), center );
+
+
+  tx.reset( new sitk::Euler2DTransform(center, 1.0 ));
+  EXPECT_EQ( tx->GetParameters().size(), 3u );
+  EXPECT_EQ( tx->GetFixedParameters().size(), 2u );
+  EXPECT_EQ( tx->GetFixedParameters()[0], 1.1 );
+  EXPECT_EQ( tx->GetFixedParameters()[1], 1.1 );
+  EXPECT_EQ( tx->GetParameters()[0], 1.0 );
+  EXPECT_EQ( tx->GetParameters()[1], 0.0 );
+  EXPECT_EQ( tx->GetParameters()[2], 0.0 );
+  EXPECT_EQ( tx->GetCenter(), center );
+
+  // copy constructor
+  sitk::Euler2DTransform tx1( *(tx.get()) );
+  EXPECT_EQ( tx1.GetFixedParameters()[0], 1.1 );
+  EXPECT_EQ( tx1.GetFixedParameters()[1], 1.1 );
+  EXPECT_EQ( tx1.GetParameters()[0], 1.0 );
+  EXPECT_EQ( tx1.GetCenter(), center );
+
+  sitk::Euler2DTransform tx2;
+
+  // assignment operator
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetCenter(), zeros );
+
+  // copy on write
+  tx1.SetFixedParameters(center);
+  EXPECT_EQ( tx1.GetFixedParameters()[0], 1.1 );
+  EXPECT_EQ( tx1.GetFixedParameters()[1], 1.1 );
+  EXPECT_EQ( tx2.GetFixedParameters()[0], 0.0 );
+  EXPECT_EQ( tx2.GetFixedParameters()[1], 0.0 );
+  EXPECT_EQ( tx1.GetCenter(), center );
+  EXPECT_EQ( tx2.GetCenter(), zeros );
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetCenter(), zeros );
+  EXPECT_EQ( tx2.GetCenter(), zeros );
+  tx1.SetCenter(center);
+  EXPECT_EQ( tx1.GetCenter(), center );
+  EXPECT_EQ( tx2.GetCenter(), zeros );
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetTranslation(), zeros );
+  EXPECT_EQ( tx2.GetTranslation(), zeros );
+  tx1.SetTranslation(trans);
+  EXPECT_EQ( tx1.GetTranslation(), trans );
+  EXPECT_EQ( tx2.GetTranslation(), zeros );
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetAngle(), 0.0 );
+  EXPECT_EQ( tx2.GetAngle(), 0.0 );
+  tx1.SetAngle(0.1);
+  EXPECT_EQ( tx1.GetAngle(), 0.1 );
+  EXPECT_EQ( tx2.GetAngle(), 0.0 );
+
+  sitk::Transform tx3( *tx );
+  tx.reset();
+
+  EXPECT_EQ( tx3.GetParameters().size(), 3u );
+  EXPECT_EQ( tx3.GetFixedParameters().size(), 2u );
+  EXPECT_EQ( tx3.GetFixedParameters()[0], 1.1 );
+  EXPECT_EQ( tx3.GetFixedParameters()[1], 1.1 );
+  EXPECT_EQ( tx3.GetParameters()[0], 1.0 );
+  EXPECT_EQ( tx3.GetParameters()[1], 0.0 );
+  EXPECT_EQ( tx3.GetParameters()[2], 0.0 );
+
+
+  tx.reset( new sitk::Euler2DTransform());
+
+  // test member setters/getters
+  EXPECT_EQ(tx->GetCenter(), zeros);
+  EXPECT_EQ(tx->SetCenter(center).GetCenter(), center);
+
+  EXPECT_EQ(tx->GetAngle(), 0.0);
+  EXPECT_EQ(tx->SetAngle(1.0).GetAngle(), 1.0);
+
+  sitk::Euler2DTransform etx;
+  etx.SetCenter(v2(1.0,1.0));
+  etx.SetAngle(itk::Math::pi);
+  EXPECT_VECTOR_DOUBLE_NEAR( etx.TransformPoint( v2(1,1) ), v2(1,1),1e-15);
+  EXPECT_VECTOR_DOUBLE_NEAR( etx.TransformPoint( v2(0,0) ), v2(2,2),1e-15);
+
+  etx.SetTranslation(v2(-1.0,-2.0));
+
+  EXPECT_VECTOR_DOUBLE_NEAR( etx.TransformPoint( v2(1,1) ), v2(0,-1),1e-15);
+  EXPECT_VECTOR_DOUBLE_NEAR( etx.TransformPoint( v2(0,0) ), v2(1,0),1e-15);
+
+  etx.SetIdentity();
+  EXPECT_VECTOR_DOUBLE_NEAR( etx.TransformPoint( v2(1,1) ), v2(1,1),1e-15);
+  EXPECT_VECTOR_DOUBLE_NEAR( etx.TransformPoint( v2(0,0) ), v2(0,0),1e-15);
+
+  // inverse
+  EXPECT_TRUE(etx.SetInverse());
+  EXPECT_NO_THROW(etx.GetAngle());
+
+  sitk::Euler2DTransform etx2(etx.GetInverse());
+  EXPECT_NO_THROW(etx2.GetAngle());
+
+  etx.SetMatrix(v4(1.0,0.0, 0.0,1.0));
+  EXPECT_EQ( etx.GetMatrix(), v4(1.0,0.0, 0.0,1.0) );
+  EXPECT_EQ( etx.GetAngle(), 0.0 );
+
+  etx.SetMatrix(v4(0.0,-1.0, 1.0,0.0));
+  EXPECT_EQ( etx.GetMatrix(), v4(0.0,-1.0, 1.0,0.0) );
+  EXPECT_DOUBLE_EQ(etx.GetAngle(), itk::Math::pi/2.0);
+
+}
+
+
+TEST(TransformTest,Euler3DTransform)
+{
+  // test Euler3DTransform
+
+  const std::vector<double> center(3,1.1);
+  const std::vector<double> zeros(3,0.0);
+  const std::vector<double> trans(3, 2.2);
+
+#if (ITK_VERSION_MAJOR*100+ITK_VERSION_MINOR) >= 410
+  const unsigned int numberOfFixedParameters = 4u;
+#else
+  const unsigned int numberOfFixedParameters =  numberOfFixedParameters;
+#endif
+
+  nsstd::auto_ptr<sitk::Euler3DTransform> tx(new sitk::Euler3DTransform());
+  std::cout << tx->ToString() << std::endl;
+  EXPECT_EQ( tx->GetParameters().size(), 6u );
+  EXPECT_EQ( tx->GetFixedParameters().size(),  numberOfFixedParameters );
+  EXPECT_EQ( tx->GetMatrix(), v9(1.0,0.0,0.0, 0.0,1.0,0.0, 0.0,0.0,1.0) );
+
+
+  tx.reset( new sitk::Euler3DTransform(center));
+  EXPECT_EQ( tx->GetParameters().size(), 6u );
+  EXPECT_EQ( tx->GetFixedParameters().size(),  numberOfFixedParameters );
+  EXPECT_EQ( tx->GetFixedParameters()[0], 1.1 );
+  EXPECT_EQ( tx->GetFixedParameters()[1], 1.1 );
+  EXPECT_EQ( tx->GetFixedParameters()[2], 1.1 );
+  EXPECT_EQ( tx->GetCenter(), center );
+
+
+  tx.reset( new sitk::Euler3DTransform(center, 1.0, 2.0, 3.0));
+  EXPECT_EQ( tx->GetParameters().size(), 6u );
+  EXPECT_EQ( tx->GetFixedParameters().size(),  numberOfFixedParameters );
+  EXPECT_EQ( tx->GetFixedParameters()[0], 1.1 );
+  EXPECT_EQ( tx->GetFixedParameters()[1], 1.1 );
+  EXPECT_EQ( tx->GetFixedParameters()[2], 1.1 );
+  EXPECT_EQ( tx->GetParameters()[0], 1.0 );
+  EXPECT_EQ( tx->GetParameters()[1], 2.0 );
+  EXPECT_EQ( tx->GetParameters()[2], 3.0 );
+  EXPECT_EQ( tx->GetCenter(), center );
+
+  // copy constructor
+  sitk::Euler3DTransform tx1( *(tx.get()) );
+  EXPECT_EQ( tx1.GetFixedParameters()[0], 1.1 );
+  EXPECT_EQ( tx1.GetFixedParameters()[1], 1.1 );
+  EXPECT_EQ( tx1.GetFixedParameters()[2], 1.1 );
+  EXPECT_EQ( tx1.GetParameters()[0], 1.0 );
+  EXPECT_EQ( tx1.GetParameters()[1], 2.0 );
+  EXPECT_EQ( tx1.GetParameters()[2], 3.0 );
+  EXPECT_EQ( tx1.GetCenter(), center );
+
+  sitk::Euler3DTransform tx2;
+
+  // assignment operator
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetCenter(), zeros );
+
+  // copy on write
+  std::vector<double> fixed = center;
+#if (ITK_VERSION_MAJOR*100+ITK_VERSION_MINOR) >= 410
+  fixed.push_back(0.0);
+#endif
+  tx1.SetFixedParameters(fixed);//
+  EXPECT_EQ( tx1.GetFixedParameters()[0], 1.1 );
+  EXPECT_EQ( tx1.GetFixedParameters()[1], 1.1 );
+  EXPECT_EQ( tx1.GetFixedParameters()[2], 1.1 );
+  EXPECT_EQ( tx2.GetFixedParameters()[0], 0.0 );
+  EXPECT_EQ( tx2.GetFixedParameters()[1], 0.0 );
+  EXPECT_EQ( tx2.GetFixedParameters()[2], 0.0 );
+  EXPECT_EQ( tx1.GetCenter(), center );
+  EXPECT_EQ( tx2.GetCenter(), zeros );
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetCenter(), zeros );
+  EXPECT_EQ( tx2.GetCenter(), zeros );
+  tx1.SetCenter(center);
+  EXPECT_EQ( tx1.GetCenter(), center );
+  EXPECT_EQ( tx2.GetCenter(), zeros );
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetTranslation(), zeros );
+  EXPECT_EQ( tx2.GetTranslation(), zeros );
+  tx1.SetTranslation(trans);
+  EXPECT_EQ( tx1.GetTranslation(), trans );
+  EXPECT_EQ( tx2.GetTranslation(), zeros );
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetAngleX(), 0.0 );
+  EXPECT_EQ( tx2.GetAngleX(), 0.0 );
+  tx1.SetRotation(.1,.2,.3);
+  EXPECT_EQ( tx1.GetAngleX(), 0.1 );
+  EXPECT_EQ( tx2.GetAngleX(), 0.0 );
+
+  sitk::Transform tx3( *tx );
+  tx.reset();
+
+  EXPECT_EQ( tx3.GetParameters().size(), 6u );
+  EXPECT_EQ( tx3.GetFixedParameters().size(),  numberOfFixedParameters );
+  EXPECT_EQ( tx3.GetFixedParameters()[0], 1.1 );
+  EXPECT_EQ( tx3.GetFixedParameters()[1], 1.1 );
+  EXPECT_EQ( tx3.GetFixedParameters()[2], 1.1 );
+  EXPECT_EQ( tx3.GetParameters()[0], 1.0 );
+  EXPECT_EQ( tx3.GetParameters()[1], 2.0 );
+  EXPECT_EQ( tx3.GetParameters()[2], 3.0 );
+
+  tx.reset( new sitk::Euler3DTransform());
+
+  // test member setters/getters
+  EXPECT_EQ(tx->GetCenter(), zeros);
+  tx->SetCenter(center);
+  EXPECT_EQ(tx->GetCenter(), center);
+
+  EXPECT_EQ(tx->GetAngleX(), 0.0);
+  EXPECT_EQ(tx->GetAngleY(), 0.0);
+  EXPECT_EQ(tx->GetAngleZ(), 0.0);
+  tx->SetRotation(1.0,2.0,3.0);
+  EXPECT_EQ(tx->GetAngleX(), 1.0);
+  EXPECT_EQ(tx->GetAngleY(), 2.0);
+  EXPECT_EQ(tx->GetAngleZ(), 3.0);
+
+  EXPECT_EQ(tx->GetTranslation(), zeros);
+  tx->SetTranslation(trans);
+  EXPECT_EQ(tx->GetTranslation(),trans);
+
+  EXPECT_FALSE(tx->GetComputeZYX());
+  tx->SetComputeZYX(true);
+  EXPECT_TRUE(tx->GetComputeZYX());
+  tx->ComputeZYXOff();
+  EXPECT_FALSE(tx->GetComputeZYX());
+  tx->ComputeZYXOn();
+  EXPECT_TRUE(tx->GetComputeZYX());
+
+  // inverse
+  EXPECT_TRUE(tx->SetInverse());
+  EXPECT_NO_THROW(tx->GetCenter());
+
+  tx.reset( new sitk::Euler3DTransform());
+  tx->SetMatrix( v9(0.0,-1.0,0.0, 1.0,0.0,0.0, 0.0,0.0,1.0) );
+  std::cout << tx->ToString();
+  EXPECT_VECTOR_DOUBLE_NEAR( tx->GetMatrix(), v9(0.0,-1.0,0.0, 1.0,0.0,0.0, 0.0,0.0,1.0), 1e-15 );
+  EXPECT_DOUBLE_EQ(tx->GetAngleX(), 0.0);
+  EXPECT_DOUBLE_EQ(tx->GetAngleY(), 0.0);
+  EXPECT_DOUBLE_EQ(tx->GetAngleZ(),  itk::Math::pi/2.0);
+}
+
+
+TEST(TransformTest,Similarity2DTransform)
+{
+  // test Similarity2DTransform
+  const std::vector<double> center(2,1.1);
+  const std::vector<double> zeros(2,0.0);
+  const std::vector<double> trans(2, 2.2);
+
+  nsstd::auto_ptr<sitk::Similarity2DTransform> tx(new sitk::Similarity2DTransform());
+  std::cout << tx->ToString() << std::endl;
+  EXPECT_EQ( tx->GetParameters().size(), 4u );
+  EXPECT_EQ( tx->GetFixedParameters().size(), 2u );
+  EXPECT_EQ( tx->GetTranslation(), v2(0.0,0.0) );
+  EXPECT_EQ( tx->GetScale(), 1.0);
+  EXPECT_EQ( tx->GetAngle(), 0.0 );
+  EXPECT_EQ( tx->GetMatrix(), v4(1.0,0.0, 0.0,1.0) );
+
+  EXPECT_NO_THROW( tx.reset( new sitk::Similarity2DTransform(0.5, -1.0, v2(1.1,1.1), center) ) );
+  EXPECT_EQ( tx->GetCenter(), center );
+  EXPECT_EQ( tx->GetAngle(), -1.0 );
+  EXPECT_EQ( tx->GetTranslation(), v2(1.1,1.1) );
+  EXPECT_EQ( tx->GetScale(), 0.5 );
+
+  EXPECT_THROW( sitk::Similarity2DTransform( 1.0, -1.0, v2(1.1,1.1), std::vector<double>(1, 0.0) ), sitk::GenericException );
+  EXPECT_THROW( sitk::Similarity2DTransform( 1.0, -1.0, std::vector<double>(1, 0.0), center ), sitk::GenericException );
+
+
+  EXPECT_EQ( tx->SetScale(2.0).GetScale(), 2.0 );
+  EXPECT_EQ( tx->SetTranslation(trans).GetTranslation(), trans );
+  EXPECT_EQ( tx->SetCenter(center).GetCenter(), center );
+  EXPECT_EQ( tx->SetAngle(1.0).GetAngle(), 1.0 );
+
+
+  // copy constructor
+  sitk::Similarity2DTransform tx1( *(tx.get()) );
+  EXPECT_EQ( tx->GetParameters().size(), 4u );
+  EXPECT_EQ( tx->GetFixedParameters().size(), 2u );
+  EXPECT_EQ( tx1.GetFixedParameters()[0], 1.1 );
+  EXPECT_EQ( tx1.GetFixedParameters()[1], 1.1 );
+  EXPECT_EQ( tx1.GetParameters()[0], 2.0 ); // scale
+  EXPECT_EQ( tx1.GetParameters()[1], 1.0 ); // angle
+  EXPECT_EQ( tx1.GetCenter(), center );
+  EXPECT_EQ( tx1.GetTranslation(), trans );
+
+  sitk::Similarity2DTransform tx2;
+
+  // assignment operator
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetCenter(), zeros );
+  EXPECT_EQ( tx1.GetParameters().size(), 4u );
+  EXPECT_EQ( tx1.GetFixedParameters().size(), 2u );
+  EXPECT_EQ( tx1.GetTranslation(), zeros );
+  EXPECT_EQ( tx1.GetScale(), 1.0);
+  EXPECT_EQ( tx1.GetAngle(), 0.0);
+
+
+  // copy on write
+  tx1.SetFixedParameters(center);
+  EXPECT_EQ( tx1.GetCenter(), center);
+  EXPECT_EQ( tx1.GetFixedParameters(), center );
+  EXPECT_EQ( tx2.GetFixedParameters(), zeros );
+  EXPECT_EQ( tx1.GetCenter(), center );
+  EXPECT_EQ( tx2.GetCenter(), zeros );
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetCenter(), zeros );
+  EXPECT_EQ( tx2.GetCenter(), zeros );
+  tx1.SetCenter(center);
+  EXPECT_EQ( tx1.GetCenter(), center );
+  EXPECT_EQ( tx2.GetCenter(), zeros );
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetTranslation(), zeros );
+  EXPECT_EQ( tx2.GetTranslation(), zeros );
+  tx1.SetTranslation(trans);
+  EXPECT_EQ( tx1.GetTranslation(), trans );
+  EXPECT_EQ( tx2.GetTranslation(), zeros );
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetScale(), 1.0 );
+  EXPECT_EQ( tx2.GetScale(), 1.0 );
+  tx1.SetScale(2.0);
+  EXPECT_EQ( tx1.GetScale(), 2.0 );
+  EXPECT_EQ( tx2.GetScale(), 1.0 );
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetAngle(), 0.0 );
+  EXPECT_EQ( tx2.GetAngle(), 0.0 );
+  tx1.SetAngle( itk::Math::pi );
+  EXPECT_NEAR( tx1.GetAngle(),  itk::Math::pi, 1e-15 );
+  EXPECT_EQ( tx2.GetAngle(), 0.0 );
+
+  sitk::Transform tx3( *tx );
+  tx.reset();
+
+  EXPECT_EQ( tx3.GetParameters().size(), 4u );
+  EXPECT_EQ( tx3.GetFixedParameters().size(), 2u );
+  EXPECT_EQ( tx3.GetFixedParameters()[0], 1.1 );
+  EXPECT_EQ( tx3.GetFixedParameters()[1], 1.1 );
+  EXPECT_EQ( tx3.GetParameters()[0], 2.0 );
+  EXPECT_EQ( tx3.GetParameters()[1], 1.0 );
+  EXPECT_EQ( tx3.GetParameters()[2], 2.2 );
+  EXPECT_EQ( tx3.GetParameters()[3], 2.2 );
+
+  // inverse
+  EXPECT_TRUE(tx1.SetInverse());
+  EXPECT_NO_THROW(tx1.GetAngle());
+
+
+  tx1.SetMatrix(v4(1.0,0.0, 0.0,1.0));
+  EXPECT_EQ( tx1.GetMatrix(), v4(1.0,0.0, 0.0,1.0) );
+  EXPECT_EQ( tx1.GetAngle(), 0.0 );
+
+  tx1.SetMatrix(v4(0.0,-1.0, 1.0,0.0));
+  EXPECT_EQ( tx1.GetMatrix(), v4(0.0,-1.0, 1.0,0.0) );
+  EXPECT_DOUBLE_EQ(tx1.GetAngle(), itk::Math::pi/2.0);
+}
+
+
+TEST(TransformTest,ScaleTransform)
+{
+  // test ScaleTransform
+  const std::vector<double> center(3,1.1);
+  const std::vector<double> zeros(3,0.0);
+
+
+  nsstd::auto_ptr<sitk::ScaleTransform> tx(new sitk::ScaleTransform(2));
+  std::cout << tx->ToString() << std::endl;
+  ASSERT_EQ( tx->GetParameters().size(), 2u );
+  ASSERT_EQ( tx->GetFixedParameters().size(), 2u );
+  EXPECT_EQ( tx->GetScale(), v2(1.0,1.0) );
+  EXPECT_EQ( tx->GetCenter(), v2(0.0,0.0) );
+  EXPECT_EQ( tx->GetMatrix(), v4(1.0,0.0,0.0,1.0) );
+
+  EXPECT_EQ( tx->SetScale(v2(2.0,3.0)).GetScale(), v2(2.0,3.0) );
+  EXPECT_EQ( tx->SetCenter(v2(1.2,1.2)).GetCenter(), v2(1.2,1.2) );
+
+  // copy constructor
+  sitk::ScaleTransform tx1( *(tx.get()) );
+  EXPECT_EQ( tx1.GetFixedParameters()[0], 1.2 );
+  EXPECT_EQ( tx1.GetFixedParameters()[1], 1.2 );
+  EXPECT_EQ( tx1.GetParameters()[0], 2.0 ); // scale x
+  EXPECT_EQ( tx1.GetParameters(), tx->GetParameters() );
+  EXPECT_EQ( tx1.GetCenter(), v2(1.2,1.2) );
+
+  sitk::ScaleTransform tx2(3);
+
+  // assignment operator
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetCenter(), zeros );
+  ASSERT_EQ( tx1.GetParameters().size(), 3u );
+  ASSERT_EQ( tx1.GetFixedParameters().size(), 3u );
+  EXPECT_EQ( tx1.GetScale(), v3(1.0,1.0,1.0) );
+
+
+  // copy on write
+  tx1.SetFixedParameters(center);
+  EXPECT_EQ( tx1.GetCenter(), center);
+  EXPECT_EQ( tx2.GetCenter(), zeros );
+  EXPECT_EQ( tx1.GetFixedParameters(), center );
+  EXPECT_EQ( tx2.GetFixedParameters(), zeros );
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetCenter(), zeros );
+  EXPECT_EQ( tx2.GetCenter(), zeros );
+  tx1.SetCenter(center);
+  EXPECT_EQ( tx1.GetCenter(), center );
+  EXPECT_EQ( tx2.GetCenter(), zeros );
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetScale(), v3(1.0,1.0,1.0) );
+  EXPECT_EQ( tx2.GetScale(), v3(1.0,1.0,1.0) );
+  tx1.SetScale(v3(3.0,2.0,1.0));
+  EXPECT_EQ( tx1.GetScale(), v3(3.0,2.0,1.0) );
+  EXPECT_EQ( tx2.GetScale(), v3(1.0,1.0,1.0) );
+
+
+  sitk::Transform tx3( *tx );
+  tx.reset();
+
+  ASSERT_EQ( tx3.GetParameters().size(), 2u );
+  ASSERT_EQ( tx3.GetFixedParameters().size(), 2u );
+  EXPECT_EQ( tx3.GetFixedParameters()[0], 1.2 );
+  EXPECT_EQ( tx3.GetFixedParameters()[1], 1.2 );
+  EXPECT_EQ( tx3.GetParameters()[0], 2.0 );
+  EXPECT_EQ( tx3.GetParameters()[1], 3.0 );
+
+  tx.reset( new sitk::ScaleTransform(3));
+
+  // test member setters/getters
+  EXPECT_EQ(tx->GetCenter(), zeros);
+  tx->SetCenter(center);
+  EXPECT_EQ(tx->GetCenter(), center);
+  tx->SetScale( v3(2.0,1.0,4.0) );
+
+  EXPECT_NO_THROW( tx->SetInverse() );
+  EXPECT_EQ( tx->GetScale(), v3(0.5,1.0,0.25) );
+
+}
+
+
+TEST(TransformTest,ScaleTransform_Points)
+{
+  // Test Scale by transforming some points
+  sitk::ScaleTransform tx(3);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,0.0,0.0) ), v3(0.0,0.0,0.0),1e-15 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,1.0,1.0) ), v3(1.0,1.0,1.0),1e-15 );
+
+  tx.SetScale(v3(1.0,2.0,3.0));
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,0.0,0.0) ), v3(0.0,0.0,0.0),1e-15 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,1.0,1.0) ), v3(1.0,2.0,3.0),1e-15 );
+
+  tx.SetCenter(v3(1.0,1.0,1.0));
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,0.0,0.0) ), v3(0.0,-1.0,-2.0),1e-15 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,1.0,1.0) ), v3(1.0,1.0,1.0),1e-15 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(2.0,2.0,2.0) ), v3(2.0,3.0,4.0),1e-15 );
+}
+
+
+TEST(TransformTest,ScaleSkewVersor3DTransform)
+{
+  // test ScaleSkewVersor3DTransform
+  const std::vector<double> center(3,1.1);
+  const std::vector<double> zeros(3,0.0);
+  const std::vector<double> trans(3, 2.2);
+  const std::vector<double> skew(6,2.7);
+
+  nsstd::auto_ptr<sitk::ScaleSkewVersor3DTransform> tx(new sitk::ScaleSkewVersor3DTransform());
+  std::cout << tx->ToString() << std::endl;
+  EXPECT_EQ( tx->GetParameters().size(), 15u );
+  EXPECT_EQ( tx->GetFixedParameters().size(), 3u );
+  EXPECT_EQ( tx->GetTranslation(), v3(0.0,0.0,0.0) );
+  EXPECT_EQ( tx->GetScale(), v3(1.0,1.0,1.0) );
+  EXPECT_EQ( tx->GetVersor(), v4(0.0,0.0,0.0,1.0) );
+  EXPECT_EQ( tx->GetMatrix(), v9(1.0,0.0,0.0, 0.0,1.0,0.0, 0.0,0.0,1.0) );
+
+  EXPECT_EQ( tx->SetScale(v3(1.0,2.0,3.0)).GetScale(), v3(1.0,2.0,3.0) );
+  EXPECT_EQ( tx->SetTranslation(trans).GetTranslation(), trans );
+
+  EXPECT_EQ( tx->SetCenter(center).GetCenter(), center );
+
+  sitk::ScaleSkewVersor3DTransform tx0(v3(0.4,0.5,0.6), skew, v4(0.0,0.0,0.0,1.0), trans );
+  EXPECT_EQ( tx0.GetCenter(), v3(0.0,0.0,0.0) );
+  EXPECT_EQ( tx0.GetTranslation(), trans );
+  EXPECT_EQ( tx0.GetScale(), v3(0.4,0.5,0.6) );
+  EXPECT_EQ( tx0.GetSkew(), skew );
+  EXPECT_EQ( tx0.GetVersor(),  v4(0.0,0.0,0.0,1.0) );
+
+  //constructor using axis-angle (rotation of 90 degrees around z)
+  sitk::ScaleSkewVersor3DTransform tx00(v3(0.4,0.5,0.6), skew, v3(0.0,0.0,1.0),1.5707963267948966, trans );
+  EXPECT_EQ( tx00.GetCenter(), v3(0.0,0.0,0.0) );
+  EXPECT_EQ( tx00.GetTranslation(), trans );
+  EXPECT_EQ( tx00.GetScale(), v3(0.4,0.5,0.6) );
+  EXPECT_EQ( tx00.GetSkew(), skew );
+  EXPECT_VECTOR_DOUBLE_NEAR(tx00.GetVersor(), v4(0.0,0.0,0.70710678118654757,0.70710678118654757), 1e-15);
+
+  // copy constructor
+  sitk::ScaleSkewVersor3DTransform tx1( *(tx.get()) );
+  EXPECT_EQ( tx1.GetFixedParameters()[0], 1.1 );
+  EXPECT_EQ( tx1.GetFixedParameters()[1], 1.1 );
+  EXPECT_EQ( tx1.GetFixedParameters()[2], 1.1 );
+  EXPECT_EQ( tx1.GetParameters()[7], 2.0 ); // scale y
+  EXPECT_EQ( tx1.GetParameters(), tx->GetParameters() );
+  EXPECT_EQ( tx1.GetCenter(), center );
+
+  sitk::ScaleSkewVersor3DTransform tx2;
+
+  // assignment operator
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetCenter(), zeros );
+  EXPECT_EQ( tx1.GetParameters().size(), 15u );
+  EXPECT_EQ( tx1.GetFixedParameters().size(), 3u );
+  EXPECT_EQ( tx1.GetTranslation(), v3(0.0,0.0,0.0) );
+  EXPECT_EQ( tx1.GetScale(), v3(1.0,1.0,1.0) );
+  EXPECT_EQ( tx1.GetVersor(), v4(0.0,0.0,0.0,1.0) );
+
+
+  // copy on write
+  tx1.SetFixedParameters(center);
+  EXPECT_EQ( tx1.GetCenter(), center);
+  EXPECT_EQ( tx1.GetFixedParameters(), center );
+  EXPECT_EQ( tx2.GetFixedParameters(), zeros );
+  EXPECT_EQ( tx1.GetCenter(), center );
+  EXPECT_EQ( tx2.GetCenter(), zeros );
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetCenter(), zeros );
+  EXPECT_EQ( tx2.GetCenter(), zeros );
+  tx1.SetCenter(center);
+  EXPECT_EQ( tx1.GetCenter(), center );
+  EXPECT_EQ( tx2.GetCenter(), zeros );
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetTranslation(), zeros );
+  EXPECT_EQ( tx2.GetTranslation(), zeros );
+  tx1.SetTranslation(trans);
+  EXPECT_EQ( tx1.GetTranslation(), trans );
+  EXPECT_EQ( tx2.GetTranslation(), zeros );
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetScale(), v3(1.0,1.0,1.0) );
+  EXPECT_EQ( tx2.GetScale(), v3(1.0,1.0,1.0) );
+  tx1.SetScale(v3(3.0,2.0,1.0));
+  EXPECT_EQ( tx1.GetScale(), v3(3.0,2.0,1.0) );
+  EXPECT_EQ( tx2.GetScale(), v3(1.0,1.0,1.0) );
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetVersor(), v4(0.0,0.0,0.0,1.0) );
+  EXPECT_EQ( tx2.GetVersor(), v4(0.0,0.0,0.0,1.0) );
+  tx1.SetRotation(v3(1.0,0.0,0.0), itk::Math::pi);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx1.GetVersor(), v4(1.0,0.0,0.0,0.0), 1e-15 );
+  EXPECT_EQ( tx2.GetVersor(), v4(0.0,0.0,0.0,1.0) );
+
+
+  sitk::Transform tx3( *tx );
+  tx.reset();
+
+  EXPECT_EQ( tx3.GetParameters().size(), 15u );
+  EXPECT_EQ( tx3.GetFixedParameters().size(), 3u );
+  EXPECT_EQ( tx3.GetFixedParameters()[0], 1.1 );
+  EXPECT_EQ( tx3.GetFixedParameters()[1], 1.1 );
+  EXPECT_EQ( tx3.GetFixedParameters()[2], 1.1 );
+  EXPECT_EQ( tx3.GetParameters()[0], 0.0 );
+  EXPECT_EQ( tx3.GetParameters()[1], 0.0 );
+  EXPECT_EQ( tx3.GetParameters()[2], 0.0 );
+  EXPECT_EQ( tx3.GetParameters()[7], 2.0 );
+
+
+  tx.reset( new sitk::ScaleSkewVersor3DTransform());
+
+  // test member setters/getters
+  EXPECT_EQ(tx->GetCenter(), zeros);
+  tx->SetCenter(center);
+  EXPECT_EQ(tx->GetCenter(), center);
+
+  EXPECT_EQ( tx->SetRotation(v4(0.0,1.0,0.0,0.0)).GetVersor(), v4(0.0,1.0,0.0,0.0) );
+  EXPECT_THROW( tx->SetRotation(v3(1.0,0.0,0.0)).GetVersor(), sitk::GenericException );
+
+  EXPECT_EQ(tx->GetTranslation(), zeros);
+  tx->SetTranslation(trans);
+  EXPECT_EQ(tx->GetTranslation(),trans);
+
+  // BUG: inverse does not work!!!!
+  //EXPECT_NO_THROW(tx->SetInverse());
+
+}
+
+
+TEST(TransformTest,ScaleVersor3DTransform)
+{
+  // test ScaleVersor3DTransform
+  const std::vector<double> center(3,1.1);
+  const std::vector<double> zeros(3,0.0);
+  const std::vector<double> trans(3, 2.2);
+
+  nsstd::auto_ptr<sitk::ScaleVersor3DTransform> tx(new sitk::ScaleVersor3DTransform());
+  EXPECT_EQ( tx->GetParameters().size(), 9u );
+  EXPECT_EQ( tx->GetFixedParameters().size(), 3u );
+  EXPECT_EQ( tx->GetTranslation(), v3(0.0,0.0,0.0) );
+  EXPECT_EQ( tx->GetScale(), v3(1.0,1.0,1.0) );
+  EXPECT_EQ( tx->GetVersor(), v4(0.0,0.0,0.0,1.0) );
+  EXPECT_EQ( tx->GetMatrix(), v9(1.0,0.0,0.0, 0.0,1.0,0.0, 0.0,0.0,1.0) );
+
+  EXPECT_EQ( tx->SetScale(v3(1.0,2.0,3.0)).GetScale(), v3(1.0,2.0,3.0) );
+  EXPECT_EQ( tx->SetTranslation(trans).GetTranslation(), trans );
+  EXPECT_EQ( tx->SetCenter(center).GetCenter(), center );
+
+  sitk::ScaleVersor3DTransform tx0(v3(0.4,0.5,0.6), v4(0.0,0.0,0.0,1.0), trans );
+  EXPECT_EQ( tx0.GetCenter(), v3(0.0,0.0,0.0) );
+  EXPECT_EQ( tx0.GetTranslation(), trans );
+  EXPECT_EQ( tx0.GetScale(), v3(0.4,0.5,0.6) );
+  EXPECT_EQ( tx0.GetVersor(),  v4(0.0,0.0,0.0,1.0) );
+
+  //constructor using axis-angle (rotation of 90 degrees around z)
+  sitk::ScaleVersor3DTransform tx00(v3(0.4,0.5,0.6), v3(0.0,0.0,1.0),1.5707963267948966, trans );
+  EXPECT_EQ( tx00.GetCenter(), v3(0.0,0.0,0.0) );
+  EXPECT_EQ( tx00.GetTranslation(), trans );
+  EXPECT_EQ( tx00.GetScale(), v3(0.4,0.5,0.6) );
+   EXPECT_VECTOR_DOUBLE_NEAR(tx00.GetVersor(), v4(0.0,0.0,0.70710678118654757,0.70710678118654757), 1e-15);
+
+  // copy constructor
+  sitk::ScaleVersor3DTransform tx1( *(tx.get()) );
+  EXPECT_EQ( tx1.GetFixedParameters()[0], 1.1 );
+  EXPECT_EQ( tx1.GetFixedParameters()[1], 1.1 );
+  EXPECT_EQ( tx1.GetFixedParameters()[2], 1.1 );
+  EXPECT_EQ( tx1.GetParameters()[7], 2.0 ); // scale y
+  EXPECT_EQ( tx1.GetParameters(), tx->GetParameters() );
+  EXPECT_EQ( tx1.GetCenter(), center );
+
+  sitk::ScaleVersor3DTransform tx2;
+
+  // assignment operator
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetCenter(), zeros );
+  EXPECT_EQ( tx1.GetParameters().size(), 9u );
+  EXPECT_EQ( tx1.GetFixedParameters().size(), 3u );
+  EXPECT_EQ( tx1.GetTranslation(), v3(0.0,0.0,0.0) );
+  EXPECT_EQ( tx1.GetScale(), v3(1.0,1.0,1.0) );
+  EXPECT_EQ( tx1.GetVersor(), v4(0.0,0.0,0.0,1.0) );
+
+
+  // copy on write
+  tx1.SetFixedParameters(center);
+  EXPECT_EQ( tx1.GetCenter(), center);
+  EXPECT_EQ( tx1.GetFixedParameters(), center );
+  EXPECT_EQ( tx2.GetFixedParameters(), zeros );
+  EXPECT_EQ( tx1.GetCenter(), center );
+  EXPECT_EQ( tx2.GetCenter(), zeros );
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetCenter(), zeros );
+  EXPECT_EQ( tx2.GetCenter(), zeros );
+  tx1.SetCenter(center);
+  EXPECT_EQ( tx1.GetCenter(), center );
+  EXPECT_EQ( tx2.GetCenter(), zeros );
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetTranslation(), zeros );
+  EXPECT_EQ( tx2.GetTranslation(), zeros );
+  tx1.SetTranslation(trans);
+  EXPECT_EQ( tx1.GetTranslation(), trans );
+  EXPECT_EQ( tx2.GetTranslation(), zeros );
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetScale(), v3(1.0,1.0,1.0) );
+  EXPECT_EQ( tx2.GetScale(), v3(1.0,1.0,1.0) );
+  tx1.SetScale(v3(3.0,2.0,1.0));
+  EXPECT_EQ( tx1.GetScale(), v3(3.0,2.0,1.0) );
+  EXPECT_EQ( tx2.GetScale(), v3(1.0,1.0,1.0) );
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetVersor(), v4(0.0,0.0,0.0,1.0) );
+  EXPECT_EQ( tx2.GetVersor(), v4(0.0,0.0,0.0,1.0) );
+  tx1.SetRotation(v3(1.0,0.0,0.0), itk::Math::pi);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx1.GetVersor(), v4(1.0,0.0,0.0,0.0), 1e-15 );
+  EXPECT_EQ( tx2.GetVersor(), v4(0.0,0.0,0.0,1.0) );
+
+
+  sitk::Transform tx3( *tx );
+  tx.reset();
+
+  EXPECT_EQ( tx3.GetParameters().size(), 9u );
+  EXPECT_EQ( tx3.GetFixedParameters().size(), 3u );
+  EXPECT_EQ( tx3.GetFixedParameters()[0], 1.1 );
+  EXPECT_EQ( tx3.GetFixedParameters()[1], 1.1 );
+  EXPECT_EQ( tx3.GetFixedParameters()[2], 1.1 );
+  EXPECT_EQ( tx3.GetParameters()[0], 0.0 );
+  EXPECT_EQ( tx3.GetParameters()[1], 0.0 );
+  EXPECT_EQ( tx3.GetParameters()[2], 0.0 );
+  EXPECT_EQ( tx3.GetParameters()[7], 2.0 );
+
+
+  tx.reset( new sitk::ScaleVersor3DTransform());
+
+  // test member setters/getters
+  EXPECT_EQ(tx->GetCenter(), zeros);
+  tx->SetCenter(center);
+  EXPECT_EQ(tx->GetCenter(), center);
+
+  EXPECT_EQ( tx->SetRotation(v4(0.0,1.0,0.0,0.0)).GetVersor(), v4(0.0,1.0,0.0,0.0) );
+  EXPECT_THROW( tx->SetRotation(v3(1.0,0.0,0.0)).GetVersor(), sitk::GenericException );
+
+  EXPECT_EQ(tx->GetTranslation(), zeros);
+  tx->SetTranslation(trans);
+  EXPECT_EQ(tx->GetTranslation(),trans);
+
+  // BUG: inverse does not work!!!!
+  //EXPECT_NO_THROW(tx->SetInverse());
+}
+
+
+TEST(TransformTest,ScaleSkewVersor3DTransform_Points)
+{
+  // Test ScaleSkewVersor3D by transforming some points
+  sitk::ScaleSkewVersor3DTransform tx;
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,0.0,0.0) ), v3(0.0,0.0,0.0),1e-15 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,1.0,1.0) ), v3(1.0,1.0,1.0),1e-15 );
+
+  EXPECT_EQ( tx.Translate(v3(1.0,2.0,3.0)).GetTranslation(), v3(1.0,2.0,3.0) );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,0.0,0.0) ), v3(1.0,2.0,3.0),1e-15);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,1.0,1.0) ), v3(2.0,3.0,4.0),1e-15);
+
+  tx = sitk::ScaleSkewVersor3DTransform();
+  EXPECT_EQ( tx.SetRotation(v4(0.0,1.0,0.0,0.0)).GetVersor(), v4(0.0,1.0,0.0,0.0) );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,0.0,0.0) ), v3(0.0,0.0,0.0),1e-15 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,0.0,0.0) ), v3(-1.0,0.0,0.0),1e-15 );
+
+  EXPECT_EQ( tx.Translate(v3(1.0,2.0,3.0)).GetTranslation(), v3(1.0,2.0,3.0) );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,0.0,0.0) ), v3(1.0,2.0,3.0),1e-15);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,0.0,0.0) ), v3(0.0,2.0,3.0),1e-15);
+
+
+  tx = sitk::ScaleSkewVersor3DTransform();
+  const std::vector<double> zeroSkew = tx.GetSkew();
+
+  std::vector<double> skew = zeroSkew;
+  skew[0] = 1.0;
+  EXPECT_EQ( tx.SetSkew(skew).GetSkew(), skew );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,0.0,0.0) ), v3(0.0,0.0,0.0), 1e-17);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,0.0,0.0) ), v3(1.0,0.0,0.0), 1e-17);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,1.0,0.0) ), v3(2.0,1.0,0.0), 1e-17);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,1.0,1.0) ), v3(1.0,1.0,1.0), 1e-17);
+
+  skew = zeroSkew;
+  skew[3] = 1.0;
+  EXPECT_EQ( tx.SetSkew(skew).GetSkew(), skew );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,0.0,0.0) ), v3(0.0,0.0,0.0), 1e-17);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,0.0,0.0) ), v3(1.0,0.0,0.0), 1e-17);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,1.0,0.0) ), v3(1.0,1.0,0.0), 1e-17);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,1.0,1.0) ), v3(0.0,2.0,1.0), 1e-17);
+
+  tx.SetIdentity();
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,1.0,0.0) ), v3(1.0,1.0,0.0), 1e-17);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,1.0,1.0) ), v3(0.0,1.0,1.0), 1e-17);
+}
+
+
+TEST(TransformTest,Similarity3DTransform)
+{
+  // test Similarity3DTransform
+  const std::vector<double> center(3,1.1);
+  const std::vector<double> zeros(3,0.0);
+  const std::vector<double> trans(3, 2.2);
+
+  nsstd::auto_ptr<sitk::Similarity3DTransform> tx(new sitk::Similarity3DTransform());
+  std::cout << tx->ToString() << std::endl;
+  EXPECT_EQ( tx->GetParameters().size(), 7u );
+  EXPECT_EQ( tx->GetFixedParameters().size(), 3u );
+  EXPECT_EQ( tx->GetTranslation(), v3(0.0,0.0,0.0) );
+  EXPECT_EQ( tx->GetScale(), 1.0);
+  EXPECT_EQ( tx->GetVersor(), v4(0.0,0.0,0.0,1.0) );
+  EXPECT_EQ( tx->GetMatrix(), v9(1.0,0.0,0.0, 0.0,1.0,0.0, 0.0,0.0,1.0) );
+
+  EXPECT_EQ( tx->SetScale(2.0).GetScale(), 2.0 );
+  EXPECT_EQ( tx->SetTranslation(trans).GetTranslation(), trans );
+
+  EXPECT_EQ( tx->SetCenter(center).GetCenter(), center );
+
+  sitk::Similarity3DTransform tx0(0.5, v4(1.0,0.0,0.0,0.0), trans );
+  EXPECT_EQ( tx0.GetCenter(), v3(0.0,0.0,0.0) );
+  EXPECT_EQ( tx0.GetTranslation(), trans );
+  EXPECT_EQ( tx0.GetScale(), 0.5 );
+  EXPECT_EQ( tx0.GetVersor(), v4(1.0,0.0,0.0,0.0));
+
+  // copy constructor
+  sitk::Similarity3DTransform tx1( *(tx.get()) );
+  EXPECT_EQ( tx1.GetFixedParameters()[0], 1.1 );
+  EXPECT_EQ( tx1.GetFixedParameters()[1], 1.1 );
+  EXPECT_EQ( tx1.GetFixedParameters()[2], 1.1 );
+  EXPECT_EQ( tx1.GetParameters()[6], 2.0 ); // scale
+  EXPECT_EQ( tx1.GetCenter(), center );
+
+  sitk::Similarity3DTransform tx2;
+
+  // assignment operator
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetCenter(), zeros );
+  EXPECT_EQ( tx1.GetParameters().size(), 7u );
+  EXPECT_EQ( tx1.GetFixedParameters().size(), 3u );
+  EXPECT_EQ( tx1.GetTranslation(), v3(0.0,0.0,0.0) );
+  EXPECT_EQ( tx1.GetScale(), 1.0);
+  EXPECT_EQ( tx1.GetVersor(), v4(0.0,0.0,0.0,1.0) );
+
+
+  // copy on write
+  tx1.SetFixedParameters(center);
+  EXPECT_EQ( tx1.GetCenter(), center);
+  EXPECT_EQ( tx1.GetFixedParameters(), center );
+  EXPECT_EQ( tx2.GetFixedParameters(), zeros );
+  EXPECT_EQ( tx1.GetCenter(), center );
+  EXPECT_EQ( tx2.GetCenter(), zeros );
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetCenter(), zeros );
+  EXPECT_EQ( tx2.GetCenter(), zeros );
+  tx1.SetCenter(center);
+  EXPECT_EQ( tx1.GetCenter(), center );
+  EXPECT_EQ( tx2.GetCenter(), zeros );
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetTranslation(), zeros );
+  EXPECT_EQ( tx2.GetTranslation(), zeros );
+  tx1.SetTranslation(trans);
+  EXPECT_EQ( tx1.GetTranslation(), trans );
+  EXPECT_EQ( tx2.GetTranslation(), zeros );
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetScale(), 1.0 );
+  EXPECT_EQ( tx2.GetScale(), 1.0 );
+  tx1.SetScale(2.0);
+  EXPECT_EQ( tx1.GetScale(), 2.0 );
+  EXPECT_EQ( tx2.GetScale(), 1.0 );
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetVersor(), v4(0.0,0.0,0.0,1.0) );
+  EXPECT_EQ( tx2.GetVersor(), v4(0.0,0.0,0.0,1.0) );
+  tx1.SetRotation(v3(1.0,0.0,0.0), itk::Math::pi);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx1.GetVersor(), v4(1.0,0.0,0.0,0.0), 1e-15 );
+  EXPECT_EQ( tx2.GetVersor(), v4(0.0,0.0,0.0,1.0) );
+
+
+  sitk::Transform tx3( *tx );
+  tx.reset();
+
+  EXPECT_EQ( tx3.GetParameters().size(), 7u );
+  EXPECT_EQ( tx3.GetFixedParameters().size(), 3u );
+  EXPECT_EQ( tx3.GetFixedParameters()[0], 1.1 );
+  EXPECT_EQ( tx3.GetFixedParameters()[1], 1.1 );
+  EXPECT_EQ( tx3.GetFixedParameters()[2], 1.1 );
+  EXPECT_EQ( tx3.GetParameters()[0], 0.0 );
+  EXPECT_EQ( tx3.GetParameters()[1], 0.0 );
+  EXPECT_EQ( tx3.GetParameters()[2], 0.0 );
+  EXPECT_EQ( tx3.GetParameters()[6], 2.0 );
+
+
+  tx.reset( new sitk::Similarity3DTransform());
+
+  // test member setters/getters
+  EXPECT_EQ(tx->GetCenter(), zeros);
+  tx->SetCenter(center);
+  EXPECT_EQ(tx->GetCenter(), center);
+
+  EXPECT_EQ( tx->SetRotation(v4(0.0,1.0,0.0,0.0)).GetVersor(), v4(0.0,1.0,0.0,0.0) );
+  EXPECT_THROW( tx->SetRotation(v3(1.0,0.0,0.0)).GetVersor(), sitk::GenericException );
+
+  EXPECT_EQ(tx->GetTranslation(), zeros);
+  tx->SetTranslation(trans);
+  EXPECT_EQ(tx->GetTranslation(),trans);
+
+  // inverse
+  EXPECT_TRUE(tx->SetInverse());
+  EXPECT_NO_THROW(tx->GetVersor());
+
+  tx.reset( new sitk::Similarity3DTransform());
+  tx->SetMatrix(v9(-1.0,0.0,0.0, 0.0,-1.0,0.0, 0.0,0.0,1.0));
+  EXPECT_EQ( tx->GetMatrix(), v9(-1.0,0.0,0.0, 0.0,-1.0,0.0, 0.0,0.0,1.0) );
+  EXPECT_VECTOR_DOUBLE_NEAR(tx->GetVersor(),  v4(0.0,0.0,1.0,0.0), 1e-15);
+}
+
+
+TEST(TransformTest,Similarity3DTransform_Points)
+{
+  // Test Similarity3D by transforming some points
+  sitk::Similarity3DTransform tx;
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,0.0,0.0) ), v3(0.0,0.0,0.0),1e-15 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,1.0,1.0) ), v3(1.0,1.0,1.0),1e-15 );
+
+  EXPECT_EQ( tx.Translate(v3(1.0,2.0,3.0)).GetTranslation(), v3(1.0,2.0,3.0) );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,0.0,0.0) ), v3(1.0,2.0,3.0),1e-15);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,1.0,1.0) ), v3(2.0,3.0,4.0),1e-15);
+
+  tx = sitk::Similarity3DTransform();
+  EXPECT_EQ( tx.SetRotation(v4(0.0,1.0,0.0,0.0)).GetVersor(), v4(0.0,1.0,0.0,0.0) );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,0.0,0.0) ), v3(0.0,0.0,0.0),1e-15 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,0.0,0.0) ), v3(-1.0,0.0,0.0),1e-15 );
+
+  EXPECT_EQ( tx.Translate(v3(1.0,2.0,3.0)).GetTranslation(), v3(1.0,2.0,3.0) );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,0.0,0.0) ), v3(1.0,2.0,3.0),1e-15);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,0.0,0.0) ), v3(0.0,2.0,3.0),1e-15);
+
+  tx.SetIdentity();
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,0.0,0.0) ), v3(0.0,0.0,0.0),1e-15);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,0.0,0.0) ), v3(1.0,0.0,0.0),1e-15);
+
+}
+
+
+TEST(TransformTest,TranslationTransform)
+{
+  // test TranslationTransform
+
+  const std::vector<double> zeros(3,0.0);
+  const std::vector<double> trans2d(2, 2.2);
+  const std::vector<double> trans3d(3, 3.3);
+
+  nsstd::auto_ptr<sitk::TranslationTransform> tx;
+
+  EXPECT_NO_THROW( tx.reset( new sitk::TranslationTransform(2) ) );
+  std::cout << tx->ToString() << std::endl;
+  EXPECT_EQ( tx->GetParameters().size(), 2u );
+  EXPECT_EQ( tx->GetParameters()[0], 0.0 );
+  EXPECT_EQ( tx->GetParameters()[1], 0.0 );
+  EXPECT_EQ( tx->GetFixedParameters().size(), 0u );
+  EXPECT_EQ( tx->GetOffset(), std::vector<double>(2,0.0));
+
+  EXPECT_NO_THROW( tx.reset( new sitk::TranslationTransform(3) ) );
+  EXPECT_EQ( tx->GetParameters().size(), 3u );
+  EXPECT_EQ( tx->GetParameters()[0], 0.0 );
+  EXPECT_EQ( tx->GetParameters()[1], 0.0 );
+  EXPECT_EQ( tx->GetParameters()[2], 0.0 );
+  EXPECT_EQ( tx->GetFixedParameters().size(), 0u );
+  EXPECT_EQ( tx->GetOffset(), std::vector<double>(3,0.0));
+
+  EXPECT_NO_THROW( tx.reset( new sitk::TranslationTransform(2, trans2d) ) );
+  EXPECT_EQ( tx->GetParameters().size(), 2u );
+  EXPECT_EQ( tx->GetParameters()[0], 2.2 );
+  EXPECT_EQ( tx->GetParameters()[1], 2.2 );
+  EXPECT_EQ( tx->GetFixedParameters().size(), 0u );
+  EXPECT_EQ( tx->GetOffset(), trans2d);
+
+  // copy constructor
+  sitk::TranslationTransform tx1(*(tx.get()));
+  EXPECT_EQ( tx1.GetParameters().size(), 2u );
+  EXPECT_EQ( tx1.GetParameters()[0], 2.2 );
+  EXPECT_EQ( tx1.GetParameters()[1], 2.2 );
+  EXPECT_EQ( tx1.GetFixedParameters().size(), 0u );;
+  EXPECT_EQ( tx->GetOffset(), trans2d);
+
+  // shallow assignment
+  sitk::TranslationTransform tx2(3);
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetDimension(), 3u );
+  EXPECT_EQ( tx->GetDimension(), 2u );
+  EXPECT_EQ( tx1.GetOffset(), std::vector<double>(3,0.0));
+  EXPECT_EQ( tx->GetOffset(), trans2d);
+
+  // copy on write
+  tx1.SetParameters(std::vector<double>(3, 9.9));
+  EXPECT_EQ( tx2.GetOffset(), std::vector<double>(3,0.0) );
+
+  tx2.SetOffset( trans3d );
+  EXPECT_EQ(tx2.GetOffset(), trans3d);
+
+  EXPECT_THROW( tx.reset( new sitk::TranslationTransform(3, trans2d) ), sitk::GenericException );
+  EXPECT_THROW( tx1.SetOffset(trans2d), sitk::GenericException );
+
+  // inverse
+  EXPECT_TRUE(tx1.SetInverse());
+  EXPECT_NO_THROW(tx1.GetOffset());
+
+}
+
+TEST(TransformTest,VersorRigid3DTransform)
+{
+  // test VersorRigid3DTransform
+  const std::vector<double> center(3,1.1);
+  const std::vector<double> zeros(3,0.0);
+  const std::vector<double> trans(3, 2.2);
+
+  nsstd::auto_ptr<sitk::VersorRigid3DTransform> tx(new sitk::VersorRigid3DTransform());
+  std::cout << tx->ToString() << std::endl;
+  EXPECT_EQ( tx->GetParameters().size(), 6u );
+  EXPECT_EQ( tx->GetFixedParameters().size(), 3u );
+  EXPECT_EQ( tx->GetTranslation(), v3(0.0,0.0,0.0) );
+  EXPECT_EQ( tx->GetVersor(), v4(0.0,0.0,0.0,1.0) );
+  EXPECT_EQ( tx->GetMatrix(), v9(1.0,0.0,0.0, 0.0,1.0,0.0, 0.0,0.0,1.0) );
+
+  EXPECT_EQ( tx->SetTranslation(trans).GetTranslation(), trans );
+  EXPECT_EQ( tx->SetCenter(center).GetCenter(), center );
+
+  //constructor using versor
+  sitk::VersorRigid3DTransform tx0(v4(1.0,0.0,0.0,0.0), trans);
+  EXPECT_EQ( tx0.GetVersor(), v4(1.0,0.0,0.0,0.0) );
+  EXPECT_EQ( tx0.GetTranslation(), trans );
+  EXPECT_EQ( tx0.GetCenter(), v3(0.0,0.0,0.0) );
+
+  //constructor using axis-angle (rotation of 90 degrees around z)
+  sitk::VersorRigid3DTransform tx00(v3(0.0,0.0,1.0),1.5707963267948966);
+  EXPECT_VECTOR_DOUBLE_NEAR(tx00.GetVersor(), v4(0.0,0.0,0.70710678118654757,0.70710678118654757), 1e-15);
+
+  // copy constructor
+  sitk::VersorRigid3DTransform tx1( *(tx.get()) );
+  EXPECT_EQ( tx1.GetFixedParameters()[0], 1.1 );
+  EXPECT_EQ( tx1.GetFixedParameters()[1], 1.1 );
+  EXPECT_EQ( tx1.GetFixedParameters()[2], 1.1 );
+  EXPECT_EQ( tx1.GetCenter(), center );
+
+  sitk::VersorRigid3DTransform tx2;
+
+  // assignment operator
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetCenter(), zeros );
+  EXPECT_EQ( tx1.GetParameters().size(), 6u );
+  EXPECT_EQ( tx1.GetFixedParameters().size(), 3u );
+  EXPECT_EQ( tx1.GetTranslation(), v3(0.0,0.0,0.0) );
+  EXPECT_EQ( tx1.GetVersor(), v4(0.0,0.0,0.0,1.0) );
+
+
+  // copy on write
+  tx1.SetFixedParameters(center);
+  EXPECT_EQ( tx1.GetCenter(), center);
+  EXPECT_EQ( tx1.GetFixedParameters(), center );
+  EXPECT_EQ( tx2.GetFixedParameters(), zeros );
+  EXPECT_EQ( tx1.GetCenter(), center );
+  EXPECT_EQ( tx2.GetCenter(), zeros );
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetCenter(), zeros );
+  EXPECT_EQ( tx2.GetCenter(), zeros );
+  tx1.SetCenter(center);
+  EXPECT_EQ( tx1.GetCenter(), center );
+  EXPECT_EQ( tx2.GetCenter(), zeros );
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetTranslation(), zeros );
+  EXPECT_EQ( tx2.GetTranslation(), zeros );
+  tx1.SetTranslation(trans);
+  EXPECT_EQ( tx1.GetTranslation(), trans );
+  EXPECT_EQ( tx2.GetTranslation(), zeros );
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetVersor(), v4(0.0,0.0,0.0,1.0) );
+  EXPECT_EQ( tx2.GetVersor(), v4(0.0,0.0,0.0,1.0) );
+  tx1.SetRotation(v3(1.0,0.0,0.0), itk::Math::pi);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx1.GetVersor(), v4(1.0,0.0,0.0,0.0), 1e-15 );
+  EXPECT_EQ( tx2.GetVersor(), v4(0.0,0.0,0.0,1.0) );
+
+
+  sitk::Transform tx3( *tx );
+  tx.reset();
+
+  EXPECT_EQ( tx3.GetParameters().size(), 6u );
+  EXPECT_EQ( tx3.GetFixedParameters().size(), 3u );
+  EXPECT_EQ( tx3.GetFixedParameters()[0], 1.1 );
+  EXPECT_EQ( tx3.GetFixedParameters()[1], 1.1 );
+  EXPECT_EQ( tx3.GetFixedParameters()[2], 1.1 );
+  EXPECT_EQ( tx3.GetParameters()[0], 0.0 );
+  EXPECT_EQ( tx3.GetParameters()[1], 0.0 );
+  EXPECT_EQ( tx3.GetParameters()[2], 0.0 );
+
+
+  tx.reset( new sitk::VersorRigid3DTransform());
+
+  // test member setters/getters
+  EXPECT_EQ(tx->GetCenter(), zeros);
+  tx->SetCenter(center);
+  EXPECT_EQ(tx->GetCenter(), center);
+
+  EXPECT_EQ( tx->SetRotation(v4(0.0,1.0,0.0,0.0)).GetVersor(), v4(0.0,1.0,0.0,0.0) );
+  EXPECT_THROW( tx->SetRotation(v3(1.0,0.0,0.0)).GetVersor(), sitk::GenericException );
+
+  EXPECT_EQ(tx->GetTranslation(), zeros);
+  tx->SetTranslation(trans);
+  EXPECT_EQ(tx->GetTranslation(),trans);
+
+  // inverse
+  EXPECT_TRUE(tx->SetInverse());
+  EXPECT_NO_THROW(tx->GetTranslation());
+
+  tx->SetIdentity();
+  EXPECT_EQ(tx->GetTranslation(), zeros);
+
+
+  tx.reset( new sitk::VersorRigid3DTransform());
+  tx->SetMatrix(v9(-1.0,0.0,0.0, 0.0,-1.0,0.0, 0.0,0.0,1.0));
+  EXPECT_EQ( tx->GetMatrix(), v9(-1.0,0.0,0.0, 0.0,-1.0,0.0, 0.0,0.0,1.0) );
+  EXPECT_VECTOR_DOUBLE_NEAR(tx->GetVersor(),  v4(0.0,0.0,1.0,0.0), 1e-15);
+}
+
+TEST(TransformTest,VersorRigid3DTransform_Points)
+{
+  // Test VersorRigid3D by transforming some points
+  sitk::VersorRigid3DTransform tx;
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,0.0,0.0) ), v3(0.0,0.0,0.0),1e-15 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,1.0,1.0) ), v3(1.0,1.0,1.0),1e-15 );
+
+  EXPECT_EQ( tx.Translate(v3(1.0,2.0,3.0)).GetTranslation(), v3(1.0,2.0,3.0) );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,0.0,0.0) ), v3(1.0,2.0,3.0),1e-15);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,1.0,1.0) ), v3(2.0,3.0,4.0),1e-15);
+
+  tx = sitk::VersorRigid3DTransform();
+  EXPECT_EQ( tx.SetRotation(v4(0.0,1.0,0.0,0.0)).GetVersor(), v4(0.0,1.0,0.0,0.0) );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,0.0,0.0) ), v3(0.0,0.0,0.0),1e-15 );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,0.0,0.0) ), v3(-1.0,0.0,0.0),1e-15 );
+
+  EXPECT_EQ( tx.Translate(v3(1.0,2.0,3.0)).GetTranslation(), v3(1.0,2.0,3.0) );
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(0.0,0.0,0.0) ), v3(1.0,2.0,3.0),1e-15);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,0.0,0.0) ), v3(0.0,2.0,3.0),1e-15);
+
+  // inverse
+  EXPECT_TRUE(tx.SetInverse());
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint( v3(1.0,2.0,3.0) ), v3(0.0,0.0,0.0),1e-15);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx.TransformPoint(  v3(0.0,2.0,3.0) ), v3(1.0,0.0,0.0),1e-15);
+  EXPECT_NO_THROW(tx.GetCenter());
+
+}
+
+
+TEST(TransformTest,VersorRigid3DTransform_NoPolymorphicCast)
+{
+  sitk::ScaleSkewVersor3DTransform ssv3dt;
+//  sitk::ScaleVersor3DTransform sv3dt;
+  sitk::Similarity3DTransform s3dt;
+  sitk::VersorRigid3DTransform tx;
+
+  EXPECT_THROW( tx = sitk::VersorRigid3DTransform(ssv3dt), sitk::GenericException );
+//  EXPECT_THROW( sitk::VersorRigid3DTransform( sv3dt), sitk::GenericException );
+  EXPECT_THROW(  tx = sitk::VersorRigid3DTransform( s3dt), sitk::GenericException );
+}
+
+TEST(TransformTest,VersorTransform)
+{
+  // test VersorTransform
+  const std::vector<double> center(3,1.1);
+  const std::vector<double> zeros(3,0.0);
+  const std::vector<double> trans(3, 2.2);
+
+  nsstd::auto_ptr<sitk::VersorTransform> tx(new sitk::VersorTransform());
+  std::cout << tx->ToString() << std::endl;
+  EXPECT_EQ( tx->GetParameters().size(), 3u );
+  EXPECT_EQ( tx->GetFixedParameters().size(), 3u );
+  EXPECT_EQ( tx->GetVersor(), v4(0.0,0.0,0.0,1.0) );
+  EXPECT_EQ( tx->GetCenter(), zeros );
+  EXPECT_EQ( tx->GetMatrix(), v9(1.0,0.0,0.0, 0.0,1.0,0.0, 0.0,0.0,1.0) );
+
+  EXPECT_EQ( tx->SetCenter(center).GetCenter(), center );
+
+  //constructor using versor
+  sitk::VersorTransform tx0(v4(1.0,0.0,0.0,0.0));
+  EXPECT_EQ( tx0.GetVersor(), v4(1.0,0.0,0.0,0.0) );
+  EXPECT_EQ( tx0.GetCenter(), v3(0.0,0.0,0.0) );
+
+  //constructor using axis-angle (rotation of 90 degrees around z)
+  sitk::VersorTransform tx00(v3(0.0,0.0,1.0),1.5707963267948966);
+  EXPECT_VECTOR_DOUBLE_NEAR(tx00.GetVersor(), v4(0.0,0.0,0.70710678118654757,0.70710678118654757), 1e-15);
+
+  // copy constructor
+  sitk::VersorTransform tx1( *(tx.get()) );
+  EXPECT_EQ( tx1.GetFixedParameters()[0], 1.1 );
+  EXPECT_EQ( tx1.GetFixedParameters()[1], 1.1 );
+  EXPECT_EQ( tx1.GetFixedParameters()[2], 1.1 );
+  EXPECT_EQ( tx1.GetCenter(), center );
+
+  sitk::VersorTransform tx2;
+
+  // assignment operator
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetCenter(), zeros );
+  EXPECT_EQ( tx1.GetParameters().size(), 3u );
+  EXPECT_EQ( tx1.GetFixedParameters().size(), 3u );
+  EXPECT_EQ( tx1.GetVersor(), v4(0.0,0.0,0.0,1.0) );
+
+
+  // copy on write
+  tx1.SetFixedParameters(center);
+  EXPECT_EQ( tx1.GetCenter(), center);
+  EXPECT_EQ( tx1.GetFixedParameters(), center );
+  EXPECT_EQ( tx2.GetFixedParameters(), zeros );
+  EXPECT_EQ( tx1.GetCenter(), center );
+  EXPECT_EQ( tx2.GetCenter(), zeros );
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetCenter(), zeros );
+  EXPECT_EQ( tx2.GetCenter(), zeros );
+  tx1.SetCenter(center);
+  EXPECT_EQ( tx1.GetCenter(), center );
+  EXPECT_EQ( tx2.GetCenter(), zeros );
+
+
+  tx1 = tx2;
+  EXPECT_EQ( tx1.GetVersor(), v4(0.0,0.0,0.0,1.0) );
+  EXPECT_EQ( tx2.GetVersor(), v4(0.0,0.0,0.0,1.0) );
+  tx1.SetRotation(v3(1.0,0.0,0.0), itk::Math::pi);
+  EXPECT_VECTOR_DOUBLE_NEAR( tx1.GetVersor(), v4(1.0,0.0,0.0,0.0), 1e-15 );
+  EXPECT_EQ( tx2.GetVersor(), v4(0.0,0.0,0.0,1.0) );
+
+
+  sitk::Transform tx3( *tx );
+  tx.reset();
+
+  EXPECT_EQ( tx3.GetParameters().size(), 3u );
+  EXPECT_EQ( tx3.GetFixedParameters().size(), 3u );
+  EXPECT_EQ( tx3.GetFixedParameters()[0], 1.1 );
+  EXPECT_EQ( tx3.GetFixedParameters()[1], 1.1 );
+  EXPECT_EQ( tx3.GetFixedParameters()[2], 1.1 );
+  EXPECT_EQ( tx3.GetParameters()[0], 0.0 );
+  EXPECT_EQ( tx3.GetParameters()[1], 0.0 );
+  EXPECT_EQ( tx3.GetParameters()[2], 0.0 );
+
+
+  tx.reset( new sitk::VersorTransform());
+
+  // test member setters/getters
+  EXPECT_EQ(tx->GetCenter(), zeros);
+  tx->SetCenter(center);
+  EXPECT_EQ(tx->GetCenter(), center);
+
+  EXPECT_EQ( tx->SetRotation(v4(0.0,1.0,0.0,0.0)).GetVersor(), v4(0.0,1.0,0.0,0.0) );
+  EXPECT_THROW( tx->SetRotation(v3(1.0,0.0,0.0)).GetVersor(), sitk::GenericException );
+  EXPECT_NO_THROW(tx->SetIdentity());
+
+  // inverse
+  EXPECT_TRUE(tx->SetInverse());
+  EXPECT_NO_THROW(tx->GetVersor());
+
+  tx.reset( new sitk::VersorTransform());
+  tx->SetMatrix(v9(-1.0,0.0,0.0, 0.0,-1.0,0.0, 0.0,0.0,1.0));
+  EXPECT_EQ( tx->GetMatrix(), v9(-1.0,0.0,0.0, 0.0,-1.0,0.0, 0.0,0.0,1.0) );
+  EXPECT_VECTOR_DOUBLE_NEAR(tx->GetVersor(),  v4(0.0,0.0,1.0,0.0), 1e-15);
+}
+
+
+
+TEST(TransformTest,VersorTransform_NoPolymorphicCast)
+{
+  sitk::ScaleSkewVersor3DTransform ssv3dt;
+//  sitk::ScaleVersor3DTransform sv3dt;
+  sitk::Similarity3DTransform s3dt;
+  sitk::VersorRigid3DTransform vr3dt;
+
+  sitk::VersorTransform tx;
+
+  EXPECT_THROW( tx = sitk::VersorTransform( ssv3dt), sitk::GenericException );
+//  EXPECT_THROW( sitk::VersorTransform( sv3dt), sitk::GenericException );
+  EXPECT_THROW( tx = sitk::VersorTransform( s3dt), sitk::GenericException );
+  EXPECT_THROW( tx = sitk::VersorTransform( vr3dt), sitk::GenericException );
+}
diff --git a/Testing/Unit/sitkTransformToDisplacementFieldFilterTest.cxx b/Testing/Unit/sitkTransformToDisplacementFieldFilterTest.cxx
new file mode 100644
index 0000000..eaf3ad9
--- /dev/null
+++ b/Testing/Unit/sitkTransformToDisplacementFieldFilterTest.cxx
@@ -0,0 +1,131 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+
+#include <SimpleITKTestHarness.h>
+
+#include <sitkTransformToDisplacementFieldFilter.h>
+#include <sitkImageFileReader.h>
+#include <sitkImageFileWriter.h>
+#include <sitkHashImageFilter.h>
+#include <sitkCastImageFilter.h>
+#include <sitkVersion.h>
+
+
+TEST(BasicFilters,TransformToDisplacementFieldFilter) {
+  itk::simple::TransformToDisplacementFieldFilter filter;
+
+  itk::simple::Image output( 0, 0, itk::simple::sitkUInt8 );
+
+  EXPECT_EQ ( filter.GetOutputPixelType(), itk::simple::sitkVectorFloat64 ) << "Testing get for OutputPixelType";
+  for(unsigned int i = 0; i < filter.GetSize().size(); ++i)
+    {
+    EXPECT_EQ ( filter.GetSize()[i], std::vector<unsigned int>(3, 64)[i] ) << "Testing get for Size at " << i;
+    }
+  for(unsigned int i = 0; i < filter.GetOutputOrigin().size(); ++i)
+    {
+    EXPECT_EQ ( filter.GetOutputOrigin()[i], std::vector<double>(3, 0.0)[i] ) << "Testing get for OutputOrigin at " << i;
+    }
+  for(unsigned int i = 0; i < filter.GetOutputSpacing().size(); ++i)
+    {
+    EXPECT_EQ ( filter.GetOutputSpacing()[i], std::vector<double>(3, 1.0)[i] ) << "Testing get for OutputSpacing at " << i;
+    }
+  EXPECT_EQ ( filter.GetOutputDirection(), std::vector<double>() ) << "Testing get for OutputDirection";
+
+  EXPECT_NE ( filter.ToString(), "" ) << "empty ToString method!";
+  EXPECT_EQ ( filter.GetName(), "TransformToDisplacementFieldFilter" ) << "checking GetName method!";
+
+  // Test sets / gets
+  filter.SetOutputPixelType ( itk::simple::sitkVectorFloat32 );
+  EXPECT_EQ ( filter.GetOutputPixelType(), itk::simple::sitkVectorFloat32 ) << "Testing set/get for OutputPixelType";
+  filter.SetSize ( std::vector<unsigned int>(3, 64) );
+  for(unsigned int i = 0; i < filter.GetSize().size(); ++i)
+    {
+    EXPECT_EQ ( filter.GetSize()[i], std::vector<unsigned int>(3, 64)[i] ) << "Testing set/get for Size at " << i;
+    }
+  filter.SetOutputOrigin ( std::vector<double>(3, 0.0) );
+  for(unsigned int i = 0; i < filter.GetOutputOrigin().size(); ++i)
+    {
+    EXPECT_EQ ( filter.GetOutputOrigin()[i], std::vector<double>(3, 0.0)[i] ) << "Testing set/get for OutputOrigin at " << i;
+    }
+  filter.SetOutputSpacing ( std::vector<double>(3, 1.0) );
+  for(unsigned int i = 0; i < filter.GetOutputSpacing().size(); ++i)
+    {
+    EXPECT_EQ ( filter.GetOutputSpacing()[i], std::vector<double>(3, 1.0)[i] ) << "Testing set/get for OutputSpacing at " << i;
+    }
+  filter.SetOutputDirection ( std::vector<double>() );
+  EXPECT_EQ ( filter.GetOutputDirection(), std::vector<double>() ) << "Testing set/get for OutputDirection";
+ }
+
+TEST(BasicFilters,TransformToDisplacementFieldFilter_defaults)
+  {
+
+  itk::simple::TransformToDisplacementFieldFilter filter;
+  itk::simple::Image output;
+  itk::simple::HashImageFilter hasher;
+
+  itk::simple::Transform input;
+
+  input = itk::simple::ReadTransform( dataFinder.GetFile( "Input/xforms/affine_i_3.txt" ) );
+
+  ASSERT_TRUE ( input.GetITKBase() != NULL ) << "Could not read.";
+
+  // Do we get the same image back, if we use the functional interface?
+  itk::simple::Image fromFunctional( 0, 0, itk::simple::sitkUInt8 );
+  itk::simple::Image fromProcedural( 0, 0, itk::simple::sitkUInt8 );
+  ASSERT_NO_THROW ( fromProcedural = filter.Execute ( input  ) ) << "Procedural interface to TransformToDisplacementFieldFilter";
+  ASSERT_NO_THROW ( fromFunctional = itk::simple::TransformToDisplacementField ( input ) ) << "Functional interface to TransformToDisplacementFieldFilter";
+
+  hasher.SetHashFunction ( itk::simple::HashImageFilter::MD5 );
+  EXPECT_EQ ( hasher.Execute ( fromProcedural ), hasher.Execute ( fromFunctional ) ) << "procedural and functional are not the same!";
+
+   filter.DebugOn();
+   ASSERT_NO_THROW ( output =  filter.Execute ( input  ) );
+   EXPECT_EQ ( output.GetPixelID(), itk::simple::sitkVectorFloat64 ) << "Testing for OutputPixelType results";
+   IMAGECOMPAREWITHTOLERANCE ( output, "", 5e-4 );
+}
+
+TEST(BasicFilters,TransformToDisplacementFieldFilter_32)
+  {
+
+  itk::simple::TransformToDisplacementFieldFilter filter;
+  itk::simple::Image output;
+  itk::simple::HashImageFilter hasher;
+
+  itk::simple::Transform input;
+
+  input = itk::simple::ReadTransform( dataFinder.GetFile( "Input/xforms/affine_i_3.txt" ) );
+
+  ASSERT_TRUE ( input.GetITKBase() != NULL ) << "Could not read.";
+
+  // Do we get the same image back, if we use the functional interface?
+  itk::simple::Image fromFunctional( 0, 0, itk::simple::sitkUInt8 );
+  itk::simple::Image fromProcedural( 0, 0, itk::simple::sitkUInt8 );
+  ASSERT_NO_THROW ( fromProcedural = filter.Execute ( input  ) ) << "Procedural interface to TransformToDisplacementFieldFilter";
+  ASSERT_NO_THROW ( fromFunctional = itk::simple::TransformToDisplacementField ( input ) ) << "Functional interface to TransformToDisplacementFieldFilter";
+
+  hasher.SetHashFunction ( itk::simple::HashImageFilter::MD5 );
+  EXPECT_EQ ( hasher.Execute ( fromProcedural ), hasher.Execute ( fromFunctional ) ) << "procedural and functional are not the same!";
+
+   filter.DebugOn();
+   filter.SetOutputPixelType ( itk::simple::sitkVectorFloat32 );
+   ASSERT_NO_THROW ( output =  filter.Execute ( input  ) );
+   EXPECT_EQ ( output.GetPixelID(), itk::simple::sitkVectorFloat32 ) << "Testing for OutputPixelType results";
+
+   IMAGECOMPAREWITHTOLERANCE ( output, "", 5e-4 );
+}
diff --git a/Testing/Unit/sitkTypeListsTests.cxx b/Testing/Unit/sitkTypeListsTests.cxx
new file mode 100644
index 0000000..95d3129
--- /dev/null
+++ b/Testing/Unit/sitkTypeListsTests.cxx
@@ -0,0 +1,87 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include "SimpleITKTestHarness.h"
+#include <sitkPixelIDTypeLists.h>
+
+class TypeListTest
+  : public ::testing::Test
+{
+public:
+  TypeListTest() {};
+  struct CountPredicate
+  {
+    CountPredicate( void ) : count(0) {}
+
+    template<class TType>
+    void operator()( void )
+      {
+        ++count;
+      }
+
+    template<class TType1, class TType2>
+    void operator()( void )
+      {
+        ++count;
+      }
+
+    template<class TType>
+    void operator()( void ) const
+      {
+        ++count;
+      }
+
+    template<class TType1, class TType2>
+    void operator()( void ) const
+      {
+        ++count;
+        std::cout << typeid(TType1).name() << " " << typeid( TType2 ).name() << std::endl;
+      }
+
+    mutable int count;
+  };
+
+  CountPredicate pred;
+  const CountPredicate constPred;
+};
+
+
+TEST_F(TypeListTest, Visit) {
+
+  typedef typelist::MakeTypeList<int, char, void>::Type MyTypeList;
+
+  typelist::Visit<MyTypeList> ListVisitor;
+  ListVisitor( pred );
+  ListVisitor( constPred );
+
+  EXPECT_EQ( pred.count, 3 );
+  EXPECT_EQ( constPred.count, 3 );
+
+}
+
+TEST_F(TypeListTest, DualVisit) {
+
+  typedef typelist::MakeTypeList<int, char, short>::Type MyTypeList;
+
+  typelist::DualVisit<MyTypeList,MyTypeList> ListVisitor;
+  ListVisitor( pred );
+  ListVisitor( constPred );
+
+  EXPECT_EQ( pred.count, 9 );
+  EXPECT_EQ( constPred.count, 9 );
+
+}
diff --git a/UseSimpleITK.cmake.in b/UseSimpleITK.cmake.in
new file mode 100644
index 0000000..612a8c0
--- /dev/null
+++ b/UseSimpleITK.cmake.in
@@ -0,0 +1,12 @@
+#
+# This file sets up include directories, link directories, and
+# compiler settings for a project to use SimpleITK.  It should not be
+# included directly, but rather through the SimpleITK_USE_FILE setting
+# obtained from SimpleITKConfig.cmake.
+#
+
+# Add include directories needed to use SimpleITK.
+include_directories(${SimpleITK_INCLUDE_DIRS})
+
+# Add link directories needed to use SimpleITK.
+link_directories(${SimpleITK_LIBRARY_DIRS})
diff --git a/Utilities/ApplyApacheLicense.sh b/Utilities/ApplyApacheLicense.sh
new file mode 100755
index 0000000..149dc0c
--- /dev/null
+++ b/Utilities/ApplyApacheLicense.sh
@@ -0,0 +1,128 @@
+#!/usr/bin/env bash
+#==========================================================================
+#
+#   Copyright Insight Software Consortium
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#          http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#==========================================================================
+
+# This script is a crude process which adds the Appache License boiler
+# plate to the start of files. It has some ad-hoc rule for choosing
+# the comment style needed based on the file extension.
+
+# Usage: ApplyApacheLicense.sh file1.cxx file2.py ... fileN.ext
+
+
+
+header_c='/*=========================================================================\
+ *\
+ *  Copyright Insight Software Consortium\
+ *\
+ *  Licensed under the Apache License, Version 2.0 (the "License");\
+ *  you may not use this file except in compliance with the License.\
+ *  You may obtain a copy of the License at\
+ *\
+ *         http://www.apache.org/licenses/LICENSE-2.0.txt\
+ *\
+ *  Unless required by applicable law or agreed to in writing, software\
+ *  distributed under the License is distributed on an "AS IS" BASIS,\
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\
+ *  See the License for the specific language governing permissions and\
+ *  limitations under the License.\
+ *\
+ *=========================================================================*/\
+'
+header_pound='#=========================================================================\
+ #\
+ #  Copyright Insight Software Consortium\
+ #\
+ #  Licensed under the Apache License, Version 2.0 (the "License");\
+ #  you may not use this file except in compliance with the License.\
+ #  You may obtain a copy of the License at\
+ #\
+ #         http://www.apache.org/licenses/LICENSE-2.0.txt\
+ #\
+ #  Unless required by applicable law or agreed to in writing, software\
+ #  distributed under the License is distributed on an "AS IS" BASIS,\
+ #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\
+ #  See the License for the specific language governing permissions and\
+ #  limitations under the License.\
+ #\
+ #=========================================================================\
+'
+header_lua='--=========================================================================\
+ --\
+ --  Copyright Insight Software Consortium\
+ --\
+ --  Licensed under the Apache License, Version 2.0 (the "License");\
+ --  you may not use this file except in compliance with the License.\
+ --  You may obtain a copy of the License at\
+ --\
+ --         http://www.apache.org/licenses/LICENSE-2.0.txt\
+ --\
+ --  Unless required by applicable law or agreed to in writing, software\
+ --  distributed under the License is distributed on an "AS IS" BASIS,\
+ --  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\
+ --  See the License for the specific language governing permissions and\
+ --  limitations under the License.\
+ --\
+ --=========================================================================\
+'
+
+while (( "$#" )); do
+
+    f="$1"
+
+    # extract the extension, removing the possible trailing .in
+    ext="${f#*.}"
+    ext="${ext%.in}"
+
+    echo "FILE: ${1}"
+    echo "extension: ${ext}"
+
+    header="$header_c"
+
+    if [ -d "$1" ]
+    then
+        shift
+        continue
+    fi
+
+    if [ "$1" = "CMakeLists.txt" ]
+    then
+        shift
+        continue
+    fi
+
+    if [ "${ext}" = "lua" ]
+    then
+        header="${header_lua}"
+    fi
+
+
+    if [ "${ext}" = "py" ] ||
+        [ "${ext}" = "R" ] ||
+        [ "${ext}" = "tcl" ] ||
+        [ "${ext}" = "rb" ] ||
+        [ "${ext}" = "sh" ] ||
+        [ "${ext}" = "cmake" ]
+    then
+        header="${header_pound}"
+    fi
+
+    grep -q 'Copyright Insight Software Consortium' "$1" || (
+    sed '1 i\
+'"$header" $1 > $1.tmp && mv $1.tmp $1 )
+    shift
+done
\ No newline at end of file
diff --git a/Utilities/C99/CMakeLists.txt b/Utilities/C99/CMakeLists.txt
new file mode 100644
index 0000000..0676bc0
--- /dev/null
+++ b/Utilities/C99/CMakeLists.txt
@@ -0,0 +1,3 @@
+install(FILES "stdint.h" "inttypes.h"
+  DESTINATION  ${SimpleITK_INSTALL_INCLUDE_DIR}
+  COMPONENT Development)
diff --git a/Utilities/C99/inttypes.h b/Utilities/C99/inttypes.h
new file mode 100644
index 0000000..4b3828a
--- /dev/null
+++ b/Utilities/C99/inttypes.h
@@ -0,0 +1,305 @@
+// ISO C9x  compliant inttypes.h for Microsoft Visual Studio
+// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 
+// 
+//  Copyright (c) 2006 Alexander Chemeris
+// 
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+// 
+//   1. Redistributions of source code must retain the above copyright notice,
+//      this list of conditions and the following disclaimer.
+// 
+//   2. Redistributions in binary form must reproduce the above copyright
+//      notice, this list of conditions and the following disclaimer in the
+//      documentation and/or other materials provided with the distribution.
+// 
+//   3. The name of the author may be used to endorse or promote products
+//      derived from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
+// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _MSC_VER // [
+#error "Use this header only with Microsoft Visual C++ compilers!"
+#endif // _MSC_VER ]
+
+#ifndef _MSC_INTTYPES_H_ // [
+#define _MSC_INTTYPES_H_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif
+
+#include "stdint.h"
+
+// 7.8 Format conversion of integer types
+
+typedef struct {
+   intmax_t quot;
+   intmax_t rem;
+} imaxdiv_t;
+
+// 7.8.1 Macros for format specifiers
+
+#if !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS) // [   See footnote 185 at page 198
+
+// The fprintf macros for signed integers are:
+#define PRId8       "d"
+#define PRIi8       "i"
+#define PRIdLEAST8  "d"
+#define PRIiLEAST8  "i"
+#define PRIdFAST8   "d"
+#define PRIiFAST8   "i"
+
+#define PRId16       "hd"
+#define PRIi16       "hi"
+#define PRIdLEAST16  "hd"
+#define PRIiLEAST16  "hi"
+#define PRIdFAST16   "hd"
+#define PRIiFAST16   "hi"
+
+#define PRId32       "I32d"
+#define PRIi32       "I32i"
+#define PRIdLEAST32  "I32d"
+#define PRIiLEAST32  "I32i"
+#define PRIdFAST32   "I32d"
+#define PRIiFAST32   "I32i"
+
+#define PRId64       "I64d"
+#define PRIi64       "I64i"
+#define PRIdLEAST64  "I64d"
+#define PRIiLEAST64  "I64i"
+#define PRIdFAST64   "I64d"
+#define PRIiFAST64   "I64i"
+
+#define PRIdMAX     "I64d"
+#define PRIiMAX     "I64i"
+
+#define PRIdPTR     "Id"
+#define PRIiPTR     "Ii"
+
+// The fprintf macros for unsigned integers are:
+#define PRIo8       "o"
+#define PRIu8       "u"
+#define PRIx8       "x"
+#define PRIX8       "X"
+#define PRIoLEAST8  "o"
+#define PRIuLEAST8  "u"
+#define PRIxLEAST8  "x"
+#define PRIXLEAST8  "X"
+#define PRIoFAST8   "o"
+#define PRIuFAST8   "u"
+#define PRIxFAST8   "x"
+#define PRIXFAST8   "X"
+
+#define PRIo16       "ho"
+#define PRIu16       "hu"
+#define PRIx16       "hx"
+#define PRIX16       "hX"
+#define PRIoLEAST16  "ho"
+#define PRIuLEAST16  "hu"
+#define PRIxLEAST16  "hx"
+#define PRIXLEAST16  "hX"
+#define PRIoFAST16   "ho"
+#define PRIuFAST16   "hu"
+#define PRIxFAST16   "hx"
+#define PRIXFAST16   "hX"
+
+#define PRIo32       "I32o"
+#define PRIu32       "I32u"
+#define PRIx32       "I32x"
+#define PRIX32       "I32X"
+#define PRIoLEAST32  "I32o"
+#define PRIuLEAST32  "I32u"
+#define PRIxLEAST32  "I32x"
+#define PRIXLEAST32  "I32X"
+#define PRIoFAST32   "I32o"
+#define PRIuFAST32   "I32u"
+#define PRIxFAST32   "I32x"
+#define PRIXFAST32   "I32X"
+
+#define PRIo64       "I64o"
+#define PRIu64       "I64u"
+#define PRIx64       "I64x"
+#define PRIX64       "I64X"
+#define PRIoLEAST64  "I64o"
+#define PRIuLEAST64  "I64u"
+#define PRIxLEAST64  "I64x"
+#define PRIXLEAST64  "I64X"
+#define PRIoFAST64   "I64o"
+#define PRIuFAST64   "I64u"
+#define PRIxFAST64   "I64x"
+#define PRIXFAST64   "I64X"
+
+#define PRIoMAX     "I64o"
+#define PRIuMAX     "I64u"
+#define PRIxMAX     "I64x"
+#define PRIXMAX     "I64X"
+
+#define PRIoPTR     "Io"
+#define PRIuPTR     "Iu"
+#define PRIxPTR     "Ix"
+#define PRIXPTR     "IX"
+
+// The fscanf macros for signed integers are:
+#define SCNd8       "d"
+#define SCNi8       "i"
+#define SCNdLEAST8  "d"
+#define SCNiLEAST8  "i"
+#define SCNdFAST8   "d"
+#define SCNiFAST8   "i"
+
+#define SCNd16       "hd"
+#define SCNi16       "hi"
+#define SCNdLEAST16  "hd"
+#define SCNiLEAST16  "hi"
+#define SCNdFAST16   "hd"
+#define SCNiFAST16   "hi"
+
+#define SCNd32       "ld"
+#define SCNi32       "li"
+#define SCNdLEAST32  "ld"
+#define SCNiLEAST32  "li"
+#define SCNdFAST32   "ld"
+#define SCNiFAST32   "li"
+
+#define SCNd64       "I64d"
+#define SCNi64       "I64i"
+#define SCNdLEAST64  "I64d"
+#define SCNiLEAST64  "I64i"
+#define SCNdFAST64   "I64d"
+#define SCNiFAST64   "I64i"
+
+#define SCNdMAX     "I64d"
+#define SCNiMAX     "I64i"
+
+#ifdef _WIN64 // [
+#  define SCNdPTR     "I64d"
+#  define SCNiPTR     "I64i"
+#else  // _WIN64 ][
+#  define SCNdPTR     "ld"
+#  define SCNiPTR     "li"
+#endif  // _WIN64 ]
+
+// The fscanf macros for unsigned integers are:
+#define SCNo8       "o"
+#define SCNu8       "u"
+#define SCNx8       "x"
+#define SCNX8       "X"
+#define SCNoLEAST8  "o"
+#define SCNuLEAST8  "u"
+#define SCNxLEAST8  "x"
+#define SCNXLEAST8  "X"
+#define SCNoFAST8   "o"
+#define SCNuFAST8   "u"
+#define SCNxFAST8   "x"
+#define SCNXFAST8   "X"
+
+#define SCNo16       "ho"
+#define SCNu16       "hu"
+#define SCNx16       "hx"
+#define SCNX16       "hX"
+#define SCNoLEAST16  "ho"
+#define SCNuLEAST16  "hu"
+#define SCNxLEAST16  "hx"
+#define SCNXLEAST16  "hX"
+#define SCNoFAST16   "ho"
+#define SCNuFAST16   "hu"
+#define SCNxFAST16   "hx"
+#define SCNXFAST16   "hX"
+
+#define SCNo32       "lo"
+#define SCNu32       "lu"
+#define SCNx32       "lx"
+#define SCNX32       "lX"
+#define SCNoLEAST32  "lo"
+#define SCNuLEAST32  "lu"
+#define SCNxLEAST32  "lx"
+#define SCNXLEAST32  "lX"
+#define SCNoFAST32   "lo"
+#define SCNuFAST32   "lu"
+#define SCNxFAST32   "lx"
+#define SCNXFAST32   "lX"
+
+#define SCNo64       "I64o"
+#define SCNu64       "I64u"
+#define SCNx64       "I64x"
+#define SCNX64       "I64X"
+#define SCNoLEAST64  "I64o"
+#define SCNuLEAST64  "I64u"
+#define SCNxLEAST64  "I64x"
+#define SCNXLEAST64  "I64X"
+#define SCNoFAST64   "I64o"
+#define SCNuFAST64   "I64u"
+#define SCNxFAST64   "I64x"
+#define SCNXFAST64   "I64X"
+
+#define SCNoMAX     "I64o"
+#define SCNuMAX     "I64u"
+#define SCNxMAX     "I64x"
+#define SCNXMAX     "I64X"
+
+#ifdef _WIN64 // [
+#  define SCNoPTR     "I64o"
+#  define SCNuPTR     "I64u"
+#  define SCNxPTR     "I64x"
+#  define SCNXPTR     "I64X"
+#else  // _WIN64 ][
+#  define SCNoPTR     "lo"
+#  define SCNuPTR     "lu"
+#  define SCNxPTR     "lx"
+#  define SCNXPTR     "lX"
+#endif  // _WIN64 ]
+
+#endif // __STDC_FORMAT_MACROS ]
+
+// 7.8.2 Functions for greatest-width integer types
+
+// 7.8.2.1 The imaxabs function
+#define imaxabs _abs64
+
+// 7.8.2.2 The imaxdiv function
+
+// This is modified version of div() function from Microsoft's div.c found
+// in %MSVC.NET%\crt\src\div.c
+#ifdef STATIC_IMAXDIV // [
+static
+#else // STATIC_IMAXDIV ][
+_inline
+#endif // STATIC_IMAXDIV ]
+imaxdiv_t __cdecl imaxdiv(intmax_t numer, intmax_t denom)
+{
+   imaxdiv_t result;
+
+   result.quot = numer / denom;
+   result.rem = numer % denom;
+
+   if (numer < 0 && result.rem > 0) {
+      // did division wrong; must fix up
+      ++result.quot;
+      result.rem -= denom;
+   }
+
+   return result;
+}
+
+// 7.8.2.3 The strtoimax and strtoumax functions
+#define strtoimax _strtoi64
+#define strtoumax _strtoui64
+
+// 7.8.2.4 The wcstoimax and wcstoumax functions
+#define wcstoimax _wcstoi64
+#define wcstoumax _wcstoui64
+
+
+#endif // _MSC_INTTYPES_H_ ]
diff --git a/Utilities/C99/stdint.h b/Utilities/C99/stdint.h
new file mode 100644
index 0000000..d02608a
--- /dev/null
+++ b/Utilities/C99/stdint.h
@@ -0,0 +1,247 @@
+// ISO C9x  compliant stdint.h for Microsoft Visual Studio
+// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 
+// 
+//  Copyright (c) 2006-2008 Alexander Chemeris
+// 
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+// 
+//   1. Redistributions of source code must retain the above copyright notice,
+//      this list of conditions and the following disclaimer.
+// 
+//   2. Redistributions in binary form must reproduce the above copyright
+//      notice, this list of conditions and the following disclaimer in the
+//      documentation and/or other materials provided with the distribution.
+// 
+//   3. The name of the author may be used to endorse or promote products
+//      derived from this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
+// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// 
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _MSC_VER // [
+#error "Use this header only with Microsoft Visual C++ compilers!"
+#endif // _MSC_VER ]
+
+#ifndef _MSC_STDINT_H_ // [
+#define _MSC_STDINT_H_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif
+
+#include <limits.h>
+
+// For Visual Studio 6 in C++ mode and for many Visual Studio versions when
+// compiling for ARM we should wrap <wchar.h> include with 'extern "C++" {}'
+// or compiler give many errors like this:
+//   error C2733: second C linkage of overloaded function 'wmemchr' not allowed
+#ifdef __cplusplus
+extern "C" {
+#endif
+#  include <wchar.h>
+#ifdef __cplusplus
+}
+#endif
+
+// Define _W64 macros to mark types changing their size, like intptr_t.
+#ifndef _W64
+#  if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300
+#     define _W64 __w64
+#  else
+#     define _W64
+#  endif
+#endif
+
+
+// 7.18.1 Integer types
+
+// 7.18.1.1 Exact-width integer types
+
+// Visual Studio 6 and Embedded Visual C++ 4 doesn't
+// realize that, e.g. char has the same size as __int8
+// so we give up on __intX for them.
+#if (_MSC_VER < 1300)
+   typedef signed char       int8_t;
+   typedef signed short      int16_t;
+   typedef signed int        int32_t;
+   typedef unsigned char     uint8_t;
+   typedef unsigned short    uint16_t;
+   typedef unsigned int      uint32_t;
+#else
+   typedef signed __int8     int8_t;
+   typedef signed __int16    int16_t;
+   typedef signed __int32    int32_t;
+   typedef unsigned __int8   uint8_t;
+   typedef unsigned __int16  uint16_t;
+   typedef unsigned __int32  uint32_t;
+#endif
+typedef signed __int64       int64_t;
+typedef unsigned __int64     uint64_t;
+
+
+// 7.18.1.2 Minimum-width integer types
+typedef int8_t    int_least8_t;
+typedef int16_t   int_least16_t;
+typedef int32_t   int_least32_t;
+typedef int64_t   int_least64_t;
+typedef uint8_t   uint_least8_t;
+typedef uint16_t  uint_least16_t;
+typedef uint32_t  uint_least32_t;
+typedef uint64_t  uint_least64_t;
+
+// 7.18.1.3 Fastest minimum-width integer types
+typedef int8_t    int_fast8_t;
+typedef int16_t   int_fast16_t;
+typedef int32_t   int_fast32_t;
+typedef int64_t   int_fast64_t;
+typedef uint8_t   uint_fast8_t;
+typedef uint16_t  uint_fast16_t;
+typedef uint32_t  uint_fast32_t;
+typedef uint64_t  uint_fast64_t;
+
+// 7.18.1.4 Integer types capable of holding object pointers
+#ifdef _WIN64 // [
+   typedef signed __int64    intptr_t;
+   typedef unsigned __int64  uintptr_t;
+#else // _WIN64 ][
+   typedef _W64 signed int   intptr_t;
+   typedef _W64 unsigned int uintptr_t;
+#endif // _WIN64 ]
+
+// 7.18.1.5 Greatest-width integer types
+typedef int64_t   intmax_t;
+typedef uint64_t  uintmax_t;
+
+
+// 7.18.2 Limits of specified-width integer types
+
+#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [   See footnote 220 at page 257 and footnote 221 at page 259
+
+// 7.18.2.1 Limits of exact-width integer types
+#define INT8_MIN     ((int8_t)_I8_MIN)
+#define INT8_MAX     _I8_MAX
+#define INT16_MIN    ((int16_t)_I16_MIN)
+#define INT16_MAX    _I16_MAX
+#define INT32_MIN    ((int32_t)_I32_MIN)
+#define INT32_MAX    _I32_MAX
+#define INT64_MIN    ((int64_t)_I64_MIN)
+#define INT64_MAX    _I64_MAX
+#define UINT8_MAX    _UI8_MAX
+#define UINT16_MAX   _UI16_MAX
+#define UINT32_MAX   _UI32_MAX
+#define UINT64_MAX   _UI64_MAX
+
+// 7.18.2.2 Limits of minimum-width integer types
+#define INT_LEAST8_MIN    INT8_MIN
+#define INT_LEAST8_MAX    INT8_MAX
+#define INT_LEAST16_MIN   INT16_MIN
+#define INT_LEAST16_MAX   INT16_MAX
+#define INT_LEAST32_MIN   INT32_MIN
+#define INT_LEAST32_MAX   INT32_MAX
+#define INT_LEAST64_MIN   INT64_MIN
+#define INT_LEAST64_MAX   INT64_MAX
+#define UINT_LEAST8_MAX   UINT8_MAX
+#define UINT_LEAST16_MAX  UINT16_MAX
+#define UINT_LEAST32_MAX  UINT32_MAX
+#define UINT_LEAST64_MAX  UINT64_MAX
+
+// 7.18.2.3 Limits of fastest minimum-width integer types
+#define INT_FAST8_MIN    INT8_MIN
+#define INT_FAST8_MAX    INT8_MAX
+#define INT_FAST16_MIN   INT16_MIN
+#define INT_FAST16_MAX   INT16_MAX
+#define INT_FAST32_MIN   INT32_MIN
+#define INT_FAST32_MAX   INT32_MAX
+#define INT_FAST64_MIN   INT64_MIN
+#define INT_FAST64_MAX   INT64_MAX
+#define UINT_FAST8_MAX   UINT8_MAX
+#define UINT_FAST16_MAX  UINT16_MAX
+#define UINT_FAST32_MAX  UINT32_MAX
+#define UINT_FAST64_MAX  UINT64_MAX
+
+// 7.18.2.4 Limits of integer types capable of holding object pointers
+#ifdef _WIN64 // [
+#  define INTPTR_MIN   INT64_MIN
+#  define INTPTR_MAX   INT64_MAX
+#  define UINTPTR_MAX  UINT64_MAX
+#else // _WIN64 ][
+#  define INTPTR_MIN   INT32_MIN
+#  define INTPTR_MAX   INT32_MAX
+#  define UINTPTR_MAX  UINT32_MAX
+#endif // _WIN64 ]
+
+// 7.18.2.5 Limits of greatest-width integer types
+#define INTMAX_MIN   INT64_MIN
+#define INTMAX_MAX   INT64_MAX
+#define UINTMAX_MAX  UINT64_MAX
+
+// 7.18.3 Limits of other integer types
+
+#ifdef _WIN64 // [
+#  define PTRDIFF_MIN  _I64_MIN
+#  define PTRDIFF_MAX  _I64_MAX
+#else  // _WIN64 ][
+#  define PTRDIFF_MIN  _I32_MIN
+#  define PTRDIFF_MAX  _I32_MAX
+#endif  // _WIN64 ]
+
+#define SIG_ATOMIC_MIN  INT_MIN
+#define SIG_ATOMIC_MAX  INT_MAX
+
+#ifndef SIZE_MAX // [
+#  ifdef _WIN64 // [
+#     define SIZE_MAX  _UI64_MAX
+#  else // _WIN64 ][
+#     define SIZE_MAX  _UI32_MAX
+#  endif // _WIN64 ]
+#endif // SIZE_MAX ]
+
+// WCHAR_MIN and WCHAR_MAX are also defined in <wchar.h>
+#ifndef WCHAR_MIN // [
+#  define WCHAR_MIN  0
+#endif  // WCHAR_MIN ]
+#ifndef WCHAR_MAX // [
+#  define WCHAR_MAX  _UI16_MAX
+#endif  // WCHAR_MAX ]
+
+#define WINT_MIN  0
+#define WINT_MAX  _UI16_MAX
+
+#endif // __STDC_LIMIT_MACROS ]
+
+
+// 7.18.4 Limits of other integer types
+
+#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [   See footnote 224 at page 260
+
+// 7.18.4.1 Macros for minimum-width integer constants
+
+#define INT8_C(val)  val##i8
+#define INT16_C(val) val##i16
+#define INT32_C(val) val##i32
+#define INT64_C(val) val##i64
+
+#define UINT8_C(val)  val##ui8
+#define UINT16_C(val) val##ui16
+#define UINT32_C(val) val##ui32
+#define UINT64_C(val) val##ui64
+
+// 7.18.4.2 Macros for greatest-width integer constants
+#define INTMAX_C   INT64_C
+#define UINTMAX_C  UINT64_C
+
+#endif // __STDC_CONSTANT_MACROS ]
+
+
+#endif // _MSC_STDINT_H_ ]
diff --git a/Utilities/CMakeLists.txt b/Utilities/CMakeLists.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/Utilities/CMakeLists.txt
@@ -0,0 +1 @@
+
diff --git a/Utilities/CSVtoTable.py b/Utilities/CSVtoTable.py
new file mode 100755
index 0000000..c15da0d
--- /dev/null
+++ b/Utilities/CSVtoTable.py
@@ -0,0 +1,191 @@
+#!/usr/bin/env python
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+from __future__ import print_function
+import sys, csv, getopt, re
+import os, os.path
+
+"""Create a HTML table from a CSV file that has been generated by CompareITKandSITKFilters.py
+
+By default it reads in filters.csv (the default file produced by CompareITKandSITKFilters.py)
+and writes out filters.html.
+"""
+
+class bcolors:
+    """A class to print colored text."""
+    HEADER='\033[95m';  OKBLUE='\033[94m'; OKGREEN='\033[92m';
+    WARNING='\033[93m'; FAIL='\033[91m';   ENDC='\033[0m';
+
+def usage():
+    """How to use this script"""
+    print("")
+    print("CSVtoTable.py [options] [input_file [output_file]]")
+    print("")
+    print("    -h    This help message")
+    print("    -d    Make a Doxygen file")
+    print("")
+
+#   Variables
+#
+inname   = "filters.csv"
+outname   = "filters.html"
+doxyFlag = False
+
+fieldnames      = ( 'Filter', 'ITK', 'SITK', 'Remark', 'ToDo' )    # fields in the CSV file
+
+
+#
+#   Handle command line options
+#
+
+try:
+    opts, args = getopt.getopt(sys.argv[1:], "hd",
+        [ "help", "doxygen" ] )
+except getopt.GetoptError as err:
+    print(str(err))
+    usage()
+    sys.exit(2)
+
+for o, a in opts:
+    if o in ("-h", "--help"):
+        usage()
+        sys.exit()
+    elif o in ("-d", "--doxygen"):
+        doxyFlag = True
+    else:
+        assert False, "unhandled option"
+
+#  get the input and output file names
+if len(args):
+    inname = args[0]
+    if len(args)>1:
+        outname = args[1]
+
+
+print( inname, outname )
+
+# if outname includes a path that doesn't exist, create that path
+if not os.path.isdir( os.path.dirname( outname ) ):
+    if len(os.path.dirname(outname)):
+        os.makedirs( os.path.dirname( outname ) )
+
+outfile = open(outname, "w")
+color = "FFFFFF"
+
+try:
+    if doxyFlag:
+        outfile.write( "/** \page Filter_Coverage Filter Coverage\n" )
+        outfile.write( "\n" )
+
+    outfile.write( "<table>\n" )
+    outfile.write( "<tr>\n" )
+    outfile.write( "<th>Filter name</th>\n" )
+    outfile.write( "<th>ITK</th>\n" )
+    outfile.write( "<th>SimpleITK</th>\n" )
+    outfile.write( "<th>Remarks</th>\n" )
+    outfile.write( "<th>ToDo</th>\n" )
+    outfile.write( "</tr>\n" )
+
+    with open(inname,"rU") as fp:
+        reader = csv.DictReader(fp)
+        for row in reader:
+
+            filt = row[fieldnames[0]]
+            remark = ""
+            todo = False
+
+            iflag = sflag = False
+            if len(row[fieldnames[1]]):
+                iflag = row[fieldnames[1]].lower() == "true"
+            if len(row[fieldnames[2]]):
+                sflag = row[fieldnames[2]].lower() == "true"
+
+            # Get the remark field from the file.
+            if row[fieldnames[3]] != None:
+                if len(row[fieldnames[3]]):
+                    remark = row[fieldnames[3]]
+
+            # Get the ToDo flag
+            if len(row[fieldnames[4]]):
+                todo =  row[fieldnames[4]].lower() == "true"
+
+            if sflag:
+                if iflag:
+                    color = "20FF20"    # Green
+                else:
+                    color = "C0FFC0"    # Light Green
+            else:
+                if todo:
+                    color = "FFFFFF"    # White
+                else:
+                    color = "FF7070"    # Red
+
+
+            outfile.write( "<tr bgcolor="+color+">\n" )
+            outfile.write( "<td>"+filt+"</td>\n" )
+            outfile.write( "<td>"+str(iflag)+"</td>\n" )
+            outfile.write( "<td>"+str(sflag)+"</td>\n" )
+            outfile.write( "<td>"+remark+"</td>\n" )
+            if not sflag:
+                outfile.write( "<td>"+str(todo)+"</td>\n" )
+            else:
+                outfile.write( "<td></td>\n" )
+            outfile.write( "</tr>\n" )
+
+except:
+    print("Failed to read input file ", inname)
+    print(sys.exc_info()[0])
+    sys.exit(1)
+
+outfile.write( "</table>\n" )
+
+# Legend table
+outfile.write( "<p style=\"font-size:20px; margin-bottom:0px;\"><b>Legend</b></p>\n" )
+
+outfile.write( "<table border=1>\n" )
+
+outfile.write( "<tr>\n" )
+outfile.write( "<th>Color</th>\n" )
+outfile.write( "<th>Meaning</th>\n" )
+outfile.write( "</tr>\n" )
+
+outfile.write( "<tr>\n" )
+outfile.write( "<td bgcolor=20FF20> </th>\n" )
+outfile.write( "<td>Supported by SimpleITK and ITK</td>\n" )
+outfile.write( "</tr>\n" )
+
+outfile.write( "<tr>\n" )
+outfile.write( "<td bgcolor=C0FFC0> </th>\n" )
+outfile.write( "<td>SimpleITK only filter</td>\n" )
+outfile.write( "</tr>\n" )
+
+outfile.write( "<tr>\n" )
+outfile.write( "<td bgcolor=FFFFFF> </th>\n" )
+outfile.write( "<td>ITK filter that we plan to support in the future</td>\n" )
+outfile.write( "</tr>\n" )
+
+outfile.write( "<tr>\n" )
+outfile.write( "<td bgcolor=FF7070> </th>\n" )
+outfile.write( "<td>ITK filter that we will not support</td>\n" )
+outfile.write( "</tr>\n" )
+outfile.write( "</table>\n" )
+
+if doxyFlag:
+    outfile.write( "*/\n" )
+
+outfile.close()
diff --git a/Utilities/CompareITKandSITKFilters.py b/Utilities/CompareITKandSITKFilters.py
new file mode 100755
index 0000000..8b3b854
--- /dev/null
+++ b/Utilities/CompareITKandSITKFilters.py
@@ -0,0 +1,308 @@
+#!/usr/bin/env python
+#=========================================================================
+#
+#  Copyright Insight Software Consortium
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#=========================================================================
+
+import re, getopt, sys, csv
+import SimpleITK
+import itk
+
+
+class bcolors:
+    """A class to print colored text."""
+    HEADER='\033[95m';  OKBLUE='\033[94m'; OKGREEN='\033[92m';
+    WARNING='\033[93m'; FAIL='\033[91m';   ENDC='\033[0m';
+
+
+class FilterSet:
+    """The main data structure for holding the filter data"""
+    filters = list()    # a list of all the filters
+    itk     = set()     # a set of all the ITK filters
+    sitk    = set()     # a set of all the SimpleITK filters
+    todo    = set()     # a set of the ITK filters not yet in SimpleITK but to be done
+    remarks = dict()    # a dictionary of remarks, indexed by filter name
+
+
+# Global variables
+fs              = FilterSet()   # the filter data structure
+remarkFile      = ""
+onlyRemarksFlag = False
+sortByType      = False
+quietMode       = False
+writelessMode   = False
+
+fieldnames      = ( 'Filter', 'ITK', 'SITK', 'Remark', 'ToDo' )    # fields in the CSV file
+
+
+#
+#
+class unix_dialect(csv.Dialect):
+    """Describe the usual properties of unix-generated CSV files."""
+    delimiter = ','
+    quotechar = '"'
+    doublequote = True
+    skipinitialspace = False
+    lineterminator = '\n'
+    quoting = csv.QUOTE_MINIMAL
+
+def writeCSV(name):
+    """Write the results out to a common-spaced-value file (readable by any spreadsheet program)"""
+    csv.register_dialect("unix_dialect", unix_dialect)
+    try:
+        with open(name, "w") as fp:
+            writer = csv.DictWriter(fp, fieldnames=fieldnames, dialect="unix_dialect")
+            headers = dict( (n,n) for n in fieldnames)
+            writer.writerow(headers)
+            for filt in fs.filters:
+                if filt in fs.remarks:
+                    rem = fs.remarks[filt]
+                else:
+                    rem = ""
+                if len(rem) or not onlyRemarksFlag:
+                    writer.writerow( { fieldnames[0]:filt,
+                                       fieldnames[1]:filt in fs.itk,
+                                       fieldnames[2]:filt in fs.sitk,
+                                       fieldnames[3]:rem,
+                                       fieldnames[4]:filt in fs.todo,
+                                       } )
+    except:
+        print bcolors.FAIL, "Error:", bcolors.ENDC, "Couldn't write output file", name, "\n"
+        sys.exit(-1)
+
+#
+#
+def readCSV(name):
+    """Read the filters from a CSV file.
+
+    Note that the only the Remark and ToDo fields are taken from the CSV file.
+    The filter names and which toolkits have each filter comes from is not read
+    from the file.  Rather that information is loaded from the ITK and SimpleITK
+    Python symbol tables.
+    """
+    try:
+        with open(name, "rU") as fp:
+            reader = csv.DictReader(fp)
+            for row in reader:
+                filt = row[fieldnames[0]]
+
+                # Check the file to see if the ITK/SITK flags match what we've pulled from Python.
+                iflag = sflag = False
+                if len(row[fieldnames[1]]):
+                    iflag = row[fieldnames[1]].lower() == "true"
+                if len(row[fieldnames[2]]):
+                    sflag = row[fieldnames[2]].lower() == "true"
+
+                initk = filt in fs.itk
+                insitk = filt in fs.sitk
+
+                if not initk and not insitk:
+                    print bcolors.FAIL, "Warning: ", bcolors.ENDC, "Filter ", filt, \
+                                        "not found in either ITK or SimpleITK"
+
+                if (iflag != initk) or (sflag != insitk):
+                    print bcolors.FAIL, "Warning: ", bcolors.ENDC, \
+                                        "mismatch between file and symbol table for filter ", filt
+                    print "    ", row
+
+                # Get the remark field from the file.
+                if row[fieldnames[3]] != None:
+                    if len(row[fieldnames[3]]):
+                        fs.remarks[filt] = row[fieldnames[3]]
+
+                # Get the ToDo flag
+                if len(row[fieldnames[4]]):
+                    if row[fieldnames[4]].lower() == "true":
+                        fs.todo.add(filt)
+
+    except:
+        print bcolors.FAIL, "Warning:", bcolors.ENDC, "Couldn't read input file", name, \
+                            ".  Proceeding without it.\n"
+    else:
+        if not quietMode:
+            print "Read file", remarkFile, "\n"
+
+
+#
+#
+def filterKey(filter_name):
+    """Function that produces a key for sorting filters by toolkit.
+
+    If a filter is in ITK, an 'I' gets prepended to the name, if not an 'i'.
+    Similarly if the filter is in SimpleITK it gets a 'S', if not an 's'.
+    The SimpleITK letter comes after the ITK.  So if the filter # is in both toolkits,
+    it gets "IS"; only in ITK gets "Is"; only in SimpleITK gets "iS".
+    """
+    itag = 'I' if filter_name in fs.itk else 'i'
+    stag = 'S' if filter_name in fs.sitk else 's'
+    return itag + stag + filter_name
+
+
+#
+#
+def usage():
+    """command line usage message"""
+    print ""
+    print "CompareITKandSITKFilters.py [options] [output_file.csv]"
+    print ""
+    print "  -h         This help message."
+    print "  -t         Sort printed filters by toolkit type."
+    print "  -r string  Add a remark entry in the format \"filter_name:remark string\"."
+    print "  -o         Only output filters with remarks."
+    print "  -q         Quiet mode, don't print filter list."
+    print "  -w         Writeless mode, don't write the output file."
+    print ""
+    print "This script compares what image filters ITK (via WrapITK) and SimpleITK implement."
+    print "It works by comparing the symbol tables of their respective python modules."
+    print "If no output file name is given, by default, the script writes results to filters.csv."
+    print ""
+
+
+
+#
+#   Handle command line options
+#
+
+try:
+    opts, args = getopt.getopt(sys.argv[1:], "htoqwr:",
+        [ "help", "type", "only", "quiet", "writeless", "remark" ] )
+except getopt.GetoptError, err:
+    print str(err)
+    usage()
+    sys.exit(2)
+
+for o, a in opts:
+    if o in ("-h", "--help"):
+        usage()
+        sys.exit()
+    elif o in ("-t", "--type"):
+        sortByType = True
+    elif o in ("-o", "--only"):
+        onlyRemarksFlag = True
+    elif o in ("-q", "--quiet"):
+        quietMode = True
+    elif o in ("-w", "--writeless"):
+        writelessMode = True
+    elif o in ("-r", "--remark"):
+        words = a.partition(':')
+        remarks[words[0]] = words[2]
+        print words[0], remarks[words[0]]
+    else:
+        assert False, "unhandled option"
+
+# take the last word left from the args list as the output file name
+if len(args):
+    remarkFile = args[len(args)-1]
+
+
+
+#
+#   Get all the ITK and SimpleITK classes from Python symbol tables.
+#
+
+sclasses = dir(SimpleITK)
+iclasses = dir(itk)
+
+#   Find all the SimpleITK class names that end with "ImageFilter".
+#   SimpleITK has a base class that is just "ImageFilter" that we want to omit.
+for s in sclasses:
+    if re.search(r'ImageFilter$', s):
+        if s != "ImageFilter":
+            fs.sitk.add(s)
+
+if not quietMode:
+    print "\nSimpleITK has", bcolors.OKBLUE, len(fs.sitk), bcolors.ENDC, "filters."
+
+
+#   Find all the ITK class names that end with "ImageFilter" or "ImageSource"
+#   ITK has a base class that is just "ImageSource" that we want to omit.
+for i in iclasses:
+    if re.search(r'ImageFilter$', i) or re.search(r'ImageSource$', i):
+        if i != "ImageSource":
+            fs.itk.add(i)
+
+if not quietMode:
+    print "ITK has", bcolors.OKBLUE, len(fs.itk), bcolors.ENDC, "filters.\n"
+
+fs.filters = list(fs.itk.union(fs.sitk))
+
+
+#
+# Sort the filters either by name or toolkit and name
+#
+
+if sortByType:
+    fs.filters = sorted(fs.filters, key=filterKey)
+else:
+    fs.filters.sort()
+
+
+
+#
+#  Read the remarks from file
+
+if remarkFile != "":
+    readCSV(remarkFile)
+
+
+
+#
+#    Print all the filters
+#
+
+if not quietMode:
+    bothcount = icount = scount = 0
+    word = ""
+
+    for filt in fs.filters:
+        inI = filt in fs.itk
+        inS = filt in fs.sitk
+        if inI and inS:
+            color = bcolors.OKBLUE
+            word = "Both"
+            bothcount+=1
+        elif inI:
+            color = bcolors.OKGREEN
+            word = "ITK "
+            icount+=1
+        else:
+            color = bcolors.FAIL
+            word = "SITK"
+            scount+=1
+
+        rem = ""
+        if filt in fs.remarks:
+            rem = fs.remarks[filt]
+        print "%50s %s %s %s      %s" % (filt, color, word, bcolors.ENDC, rem)
+
+    print ""
+    print "%3d filters in both toolkits." % bothcount
+    print "%3d filters in ITK only." % icount
+    print "%3d filters in SimpleITK only." % scount
+    print ""
+
+
+#
+#   Write out the new CSV file
+#
+
+if not writelessMode:
+    if remarkFile == "":
+        remarkFile = "filters.csv"
+    writeCSV(remarkFile)
+    if not quietMode:
+        print "Wrote file", remarkFile
+        print ""
diff --git a/Utilities/DevelopmentSetupScripts/GitTips.sh b/Utilities/DevelopmentSetupScripts/GitTips.sh
new file mode 100755
index 0000000..0292ac9
--- /dev/null
+++ b/Utilities/DevelopmentSetupScripts/GitTips.sh
@@ -0,0 +1,63 @@
+#!/usr/bin/env bash
+#==========================================================================
+#
+#   Copyright Insight Software Consortium
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#          http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#==========================================================================*/
+
+
+# This script makes optional suggestions for working with git.
+
+egrep-q() {
+  egrep "$@" >/dev/null 2>/dev/null
+}
+
+if test "$(git config color.ui)" != "auto"; then
+  cat << EOF
+
+You may want to enable color output from Git commands with
+
+  git config --global color.ui auto
+
+EOF
+fi
+
+if ! bash -i -c 'echo $PS1' | egrep-q '__git_ps1'; then
+  cat << EOF
+
+A dynamic, informative Git shell prompt can be obtained by sourcing the git
+bash-completion script in your ~/.bashrc.  Set the PS1 environmental variable as
+suggested in the comments at the top of the bash-completion script.  You may
+need to install the bash-completion package from your distribution to obtain the
+script.
+
+EOF
+fi
+
+if ! git config merge.tool >/dev/null; then
+  cat << EOF
+
+A merge tool can be configured with
+
+  git config merge.tool <toolname>
+
+For more information, see
+
+  git help mergetool
+
+EOF
+fi
+
+echo "Done."
diff --git a/Utilities/DevelopmentSetupScripts/SetupGerrit.sh b/Utilities/DevelopmentSetupScripts/SetupGerrit.sh
new file mode 100755
index 0000000..1c1857b
--- /dev/null
+++ b/Utilities/DevelopmentSetupScripts/SetupGerrit.sh
@@ -0,0 +1,116 @@
+#!/usr/bin/env bash
+#==========================================================================
+#
+#   Copyright Insight Software Consortium
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#          http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#==========================================================================*/
+
+
+# Run this script to set up the git repository to push to the Gerrit code review
+# system.
+die() {
+  echo 'Failure during Gerrit setup.' 1>&2
+  echo '----------------------------' 1>&2
+  echo '' 1>&2
+  echo "$@" 1>&2
+  exit 1
+}
+
+gerrit_user() {
+  read -ep "Enter your gerrit user (set in Gerrit Settings/Profile) [$USER]: " gu
+  if [ "$gu" == "" ]; then
+   # Use current user name.
+   gu=$USER
+  fi
+  echo -e "\nConfiguring 'gerrit' remote with user '$gu'..."
+  if git config remote.gerrit.url >/dev/null; then
+    # Correct the remote url
+    git remote set-url gerrit $gu at review.source.kitware.com:SimpleITK || \
+      die "Could not amend gerrit remote."
+  else
+    # Add a new one
+    git remote add gerrit $gu at review.source.kitware.com:SimpleITK || \
+      die "Could not add gerrit remote."
+  fi
+  cat << EOF
+
+For more information on Gerrit usage, see the ITK development process
+
+  https://www.itk.org/Wiki/ITK/Develop
+EOF
+}
+
+# Make sure we are inside the repository.
+cd "$(echo "$0"|sed 's/[^/]*$//')"
+
+if git config remote.gerrit.url >/dev/null; then
+  echo "Gerrit was already configured. The configured remote URL is:"
+  echo
+  git config remote.gerrit.url
+  echo
+  read -ep "Is the username correct? [Y/n]: " correct
+  if [ "$correct" == "n" ] || [ "$correct" == "N" ]; then
+    gerrit_user
+  fi
+else
+  cat << EOF
+Gerrit is a code review system that works with Git.
+
+In order to use Gerrit, an account must be registered at the review site:
+
+  http://review.source.kitware.com/p/SimpleITK
+
+If you already have an account for ITK, VTK, etc. it should work for
+SimpleITK. To create a new account you will need an OpenID:
+
+  http://openid.net/get-an-openid/
+
+EOF
+  gerrit_user
+fi
+
+read -ep "Would you like to verify authentication to Gerrit? [y/N]: " ans
+if [ "$ans" == "y" ] || [ "$ans" == "Y" ]; then
+  echo
+  echo "Fetching from gerrit to test SSH key configuration (Settings/SSH Public Keys)"
+  git fetch gerrit ||
+    die "Could not fetch gerrit remote. You need to upload your public SSH key to Gerrit."
+  echo "Done."
+fi
+
+echo -e "\nConfiguring GerritId hook..."
+if git config hooks.GerritId >/dev/null; then
+  echo "GerritId hook already configured."
+else
+    cat << EOF
+This hook automatically add a "Change-Id" footer to commit messages
+to make interaction with Gerrit easier.
+EOF
+
+    read -ep "Would you like to enable it? [Y/n]: " ans
+    if [ "$ans" != "n" ] && [ "$ans" != "N" ]; then
+        git config hooks.GerritId true
+
+        cat << EOF
+
+To disable this feature, run
+
+  git config hooks.GerritId false
+
+EOF
+    fi
+
+    echo "Done."
+fi
diff --git a/Utilities/DevelopmentSetupScripts/SetupGitAliases.sh b/Utilities/DevelopmentSetupScripts/SetupGitAliases.sh
new file mode 100755
index 0000000..593cf8b
--- /dev/null
+++ b/Utilities/DevelopmentSetupScripts/SetupGitAliases.sh
@@ -0,0 +1,49 @@
+#!/usr/bin/env bash
+
+# Set up some useful git aliases, global aliases for general things
+echo -n "Would you like general Git aliases to be global? [y/N]:"
+read answer
+
+if [ "$answer" == "y" ]; then
+  global="--global"
+elif [ "$answer" == "yes" ]; then
+  global="--global"
+elif [ "$answer" == "Yes" ]; then
+  global="--global"
+else
+  global=""
+fi
+
+GIT=git
+
+GITCONFIG="${GIT} config ${global}"
+
+# General aliases that could be global
+
+# Pull all updates - first a general pull and then submodules.
+${GITCONFIG} alias.pullall "!bash -c \"git pull && git submodule update --init\""
+# Useful alias to see what commits are on the current branch with respect
+# to origin/master.
+${GITCONFIG} alias.prepush 'log --graph --stat origin/master..'
+
+# Staging aliases - can help streamline staging topic branches.
+GITCONFIG="${GIT} config"
+stage_cmd='ssh git at itk.org stage SimpleITK'
+git_branch="\$(git symbolic-ref HEAD | sed -e 's|^refs/heads/||')"
+# General alias to run the SSH command, e.g. git stage-cmd merge -b master mytopic.
+${GITCONFIG} alias.stage-cmd "!${stage_cmd}"
+# Push the current topic branch to the stage.
+${GITCONFIG} alias.stage-push "!bash -c \"git fetch stage --prune && git push stage HEAD\""
+# List all staged topic branches.
+${GITCONFIG} alias.stage-branch "!bash -c \"${stage_cmd} print\""
+${GITCONFIG} alias.stage-print "!bash -c \"${stage_cmd} print\""
+# Merge the current topic branch (if staged) into the next branch.
+${GITCONFIG} alias.stage-merge "!bash -c \"${stage_cmd} merge -b next ${git_branch}\""
+# Merge the current topic branch (if staged) into the master branch.
+# this should be harder to do, and only done by a few, so no alias is provided
+#${GITCONFIG} alias.stage-merge "!bash -c \"${stage_cmd} merge ${git_branch}\""
+
+# Alias to push the current topic branch to Gerrit
+${GITCONFIG} alias.gerrit-push "!bash -c \"git fetch gerrit && git push gerrit HEAD:refs/for/master/${git_branch}\""
+# while we currently don't need a script, it may make a future need easier
+${GITCONFIG} alias.gerrit-push "!bash Utilities/Git/git-gerrit-push"
\ No newline at end of file
diff --git a/Utilities/DevelopmentSetupScripts/SetupHooks.sh b/Utilities/DevelopmentSetupScripts/SetupHooks.sh
new file mode 100755
index 0000000..fecd2a6
--- /dev/null
+++ b/Utilities/DevelopmentSetupScripts/SetupHooks.sh
@@ -0,0 +1,74 @@
+#!/usr/bin/env bash
+#==========================================================================
+#
+#   Copyright Insight Software Consortium
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#          http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#==========================================================================*/
+
+
+# Run this script to set up the git hooks for committing changes to SimpleITK.
+# For more information, see:
+#   https://www.itk.org/Wiki/Git/Hooks
+
+egrep-q() {
+  egrep "$@" >/dev/null 2>/dev/null
+}
+
+die() {
+	echo 'failure during hook setup' 1>&2
+	echo '-------------------------' 1>&2
+	echo '' 1>&2
+	echo "$@" 1>&2
+	exit 1
+}
+
+u=$(cd "$(echo "$0"|sed 's/[^/]*$//')"; pwd)
+cd "$u/../../.git/hooks"
+
+# We need to have a git repository to do a pull.
+if ! test -d ./.git; then
+  git init || die "Could not run git init."
+fi
+
+# Grab the hooks.
+# Use the local hooks if possible.
+echo "Pulling the hooks..."
+if GIT_DIR=.. git for-each-ref refs/remotes/origin/hooks 2>/dev/null | \
+  egrep-q 'refs/remotes/origin/hooks$'; then
+  git fetch .. remotes/origin/hooks
+else
+  # we are actually going to use the ITK hooks, since we don't want to
+  # maintian separate SimpleITK ones
+  git fetch http://public.kitware.com/ITK.git hooks
+fi &&
+git reset --hard FETCH_HEAD || die "Failed to install hooks"
+cd ../..
+
+# Disable the 'hooks' branch submodule check.
+# We have a check that blocks addition of submodules.
+git config hooks.submodule false
+
+# We don't have as must style setup as ITK, but we may...
+# Set up KWStyle hook.
+git config hooks.KWStyle.conf "Utilities/KWStyle/SITK.kws.xml.in"
+git config hooks.KWStyle.overwriteRulesConf "Utilities/KWStyle/SITKOverwrite.txt"
+
+
+echo "Setting up JSON validation with python..."
+PYTHON_EXECUTABLE=$(which python) || die "No python found for hooks."
+git config hooks.python ${PYTHON_EXECUTABLE}
+git config hooks.ValidateJSON true
+
+echo "Done."
diff --git a/Utilities/DevelopmentSetupScripts/SetupTopicStage.sh b/Utilities/DevelopmentSetupScripts/SetupTopicStage.sh
new file mode 100755
index 0000000..ace5238
--- /dev/null
+++ b/Utilities/DevelopmentSetupScripts/SetupTopicStage.sh
@@ -0,0 +1,113 @@
+#!/usr/bin/env bash
+#==========================================================================
+#
+#   Copyright Insight Software Consortium
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#          http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#==========================================================================*/
+
+
+# Run this script to set up the topic stage for pushing changes.
+
+egrep-q() {
+  egrep "$@" >/dev/null 2>/dev/null
+}
+
+die() {
+  echo 'Failure during topic stage setup.' 1>&2
+  echo '---------------------------------' 1>&2
+  echo '' 1>&2
+  echo "$@" 1>&2
+  exit 1
+}
+
+# Make sure we are inside the repository.
+cd "$(echo "$0"|sed 's/[^/]*$//')"
+
+if git config remote.stage.url >/dev/null; then
+  echo "Topic stage remote was already configured."
+else
+  echo "Configuring the topic stage remote..."
+  git remote add stage git://itk.org/stage/SimpleITK.git || \
+    die "Could not add the topic stage remote."
+  git config remote.stage.pushurl git at itk.org:stage/SimpleITK.git
+fi
+
+read -ep "Do you want to test push access itk.org? [y/N]: " access
+if [ "$access" == "y" ] || [ "$access" == "Y" ]; then
+
+  echo "Configuring push urls..."
+  if [ "`git config remote.origin.url`" == "git://itk.org/SimpleITK.git" ]; then
+    git config remote.origin.pushurl git at itk.org:SimpleITK.git
+  fi
+
+  pushd ../../Testing/Data >/dev/null
+  # not sure how the SimpleITKData should be managed... so do as if the one at
+  # itk.org was the only where we want to push
+  git config remote.origin.pushurl git at itk.org:SimpleITKData.git
+  popd >/dev/null
+  echo -e "Done.\n"
+
+  # We will have the private key corresponding the public key at itk.org at
+  # ~/.ssh/id_git_itk.  This allows the developer to keep a single public key
+  # on file with the server across multiple machines.
+  if ! egrep-q 'Host itk\.org' ~/.ssh/config; then
+    echo "Configuring the IdentityFile for itk.org to be ~/.ssh/id_git_itk..."
+    mkdir -p ~/.ssh
+    chmod og-rwx ~/.ssh
+    echo "Host itk.org" >> ~/.ssh/config
+    echo "  IdentityFile=~/.ssh/id_git_itk" >> ~/.ssh/config
+    chmod 600 ~/.ssh/config
+  fi
+  if ! test -e ~/.ssh/id_git_itk; then
+    if test -f ~/.ssh/id_rsa; then
+      # Take care of the common case.
+      pushd ~/.ssh >/dev/null
+      ln -s id_rsa id_git_itk
+      popd >/dev/null
+      cat << EOF
+
+Assuming ~/.ssh/id_rsa is the private key corresponding to the public key given
+for the 'git' user at itk.org.  If this is not the case, please place the
+appropriate private key at ~/.ssh/id_git_itk.
+
+EOF
+      read -e -n 1 -p "Press any key to continue..."
+    else
+      cat << EOF
+
+Please place the private key corresponding to the public key registered at
+itk.org in '~/.ssh/id_git_itk'.
+
+EOF
+      read -e -n 1 -p "Press any key to continue..."
+    fi
+  fi
+  echo "Testing ssh capabilities..."
+  git ls-remote git at itk.org:stage/SimpleITK.git refs/heads/master || \
+    die "SSH test to git at itk.org failed. You may need to request access at:
+
+https://www.kitware.com/Admin/SendPassword.cgi
+
+Note that push access to the stage/SimpleITK is separate to Gerrit.
+"
+
+  echo "Test successful! SimpleITK push access confirmed. Summary of project access:"
+  echo
+  # This command queries gitolite for your access privileges
+  ssh git at itk.org info
+
+fi
+
+echo "Done."
diff --git a/Utilities/DevelopmentSetupScripts/SetupUser.sh b/Utilities/DevelopmentSetupScripts/SetupUser.sh
new file mode 100755
index 0000000..41fbfb9
--- /dev/null
+++ b/Utilities/DevelopmentSetupScripts/SetupUser.sh
@@ -0,0 +1,64 @@
+#!/usr/bin/env bash
+#==========================================================================
+#
+#   Copyright Insight Software Consortium
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#          http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#==========================================================================*/
+
+
+# Run this script to set up basic user information.
+
+
+die() {
+  echo 'Failure during user information setup.' 1>&2
+  echo '--------------------------------------' 1>&2
+  echo '' 1>&2
+  echo "$@" 1>&2
+  exit 1
+}
+
+setup_user() {
+  read -ep "Please enter your full name, such as 'John Doe': " name
+  echo "Setting name to '$name'"
+  git config user.name "$name"
+  read -ep "Please enter your email address, such as 'john at gmail.com': " email
+  echo "Setting email address to '$email'"
+  git config user.email "$email"
+}
+
+# Added some logic to introduce yourself to Git.
+gitName=$(git config user.name)
+gitEmail=$(git config user.email)
+if [ "$gitName" == "" ] || [ "$gitEmail" == "" ]; then
+  setup_user
+fi
+
+# Loop until the user is happy with the authorship information
+for (( ; ; ))
+do
+  # Display the final user information.
+  gitName=$(git config user.name)
+  gitEmail=$(git config user.email)
+  echo "Your commits will have the following author:
+
+  $gitName <$gitEmail>
+"
+  read -ep "Is the author name and email address above correct? [Y/n] " correct
+  if [ "$correct" == "n" ] || [ "$correct" == "N" ]; then
+    setup_user
+  else
+    break
+  fi
+done
diff --git a/Utilities/Distribution/manylinux/Dockerfile-i686 b/Utilities/Distribution/manylinux/Dockerfile-i686
new file mode 100644
index 0000000..f561598
--- /dev/null
+++ b/Utilities/Distribution/manylinux/Dockerfile-i686
@@ -0,0 +1,14 @@
+FROM quay.io/pypa/manylinux1_i686
+MAINTAINER Insight Software Consortium <community at itk.org>
+
+
+ADD https://cmake.org/files/v3.7/cmake-3.7.2.tar.gz \
+    https://www.openssl.org/source/openssl-1.0.2h.tar.gz \
+    /tmp/
+
+WORKDIR /tmp/
+COPY ./imagefiles/install.sh ./
+RUN /usr/bin/linux32 bash -v install.sh && rm -rf /tmp/*
+
+# User is expected to mount directory to "/work"
+ENTRYPOINT [ "/usr/bin/linux32", "bash", "-c", "groupadd -o -g $_GROUPID $_USER && useradd -m -o -g $_GROUPID $_USER -u $_USERID && su $_USER /work/io/imagefiles/cmd.sh" ]
diff --git a/Utilities/Distribution/manylinux/Dockerfile-x86_64 b/Utilities/Distribution/manylinux/Dockerfile-x86_64
new file mode 100644
index 0000000..a7080f9
--- /dev/null
+++ b/Utilities/Distribution/manylinux/Dockerfile-x86_64
@@ -0,0 +1,13 @@
+FROM quay.io/pypa/manylinux1_x86_64
+MAINTAINER Insight Software Consortium <community at itk.org>
+
+ADD https://cmake.org/files/v3.7/cmake-3.7.2.tar.gz \
+    https://www.openssl.org/source/openssl-1.0.2h.tar.gz \
+    /tmp/
+
+WORKDIR /tmp/
+COPY ./imagefiles/install.sh ./
+RUN bash -v install.sh && rm -rf /tmp/*
+
+# User is expected to mount directory to "/work"
+ENTRYPOINT ["bash", "-c", "groupadd -o -g $_GROUPID $_USER && useradd -m -o -g $_GROUPID $_USER -u $_USERID && su $_USER /work/io/imagefiles/cmd.sh" ]
diff --git a/Utilities/Distribution/manylinux/imagefiles/cmd.sh b/Utilities/Distribution/manylinux/imagefiles/cmd.sh
new file mode 100755
index 0000000..e2b75af
--- /dev/null
+++ b/Utilities/Distribution/manylinux/imagefiles/cmd.sh
@@ -0,0 +1,83 @@
+#!/bin/sh
+
+set -x
+
+export SRC_DIR="/tmp/SimpleITK"
+export BLD_DIR="/tmp/SimpleITK-build"
+export OUT_DIR="/work/io"
+
+SIMPLEITK_GIT_TAG=${SIMPLEITK_GIT_TAG:-v1.0rc3}
+
+PYTHON_VERSIONS=${PYTHON_VERSIONS:-$(ls /opt/python | sed -e 's/cp2[0-6][^ ]\+ \?//g')}
+
+NPROC=$(grep -c processor /proc/cpuinfo)
+export MAKEFLAGS="-j ${NPROC}"
+
+
+function build_simpleitk {
+
+    echo "SIMPLEITK_GIT_TAG: ${SIMPLEITK_GIT_TAG}"
+
+    git clone https://github.com/SimpleITK/SimpleITK.git ${SRC_DIR} &&
+    (cd ${SRC_DIR}  && git checkout ${SIMPLEITK_GIT_TAG}  ) &&
+    rm -rf ${BLD_DIR} &&
+    mkdir -p ${BLD_DIR} && cd ${BLD_DIR} &&
+    cmake \
+        -DSimpleITK_BUILD_DISTRIBUTE:BOOL=ON \
+        -DSimpleITK_BUILD_STRIP:BOOL=ON \
+        -DCMAKE_BUILD_TYPE:STRING=Release \
+        -DBUILD_TESTING:BOOL=ON \
+        -DBUILD_EXAMPLES:BOOL=OFF \
+        -DBUILD_SHARED_LIBS:BOOL=OFF \
+        -DWRAP_DEFAULT:BOOL=OFF \
+        -DITK_REPOSITORY:STRING="https://github.com/InsightSoftwareConsortium/ITK.git" \
+        ${SRC_DIR}/SuperBuild &&
+    make  &&
+    find ./ -name \*.o -delete
+}
+
+
+
+
+function build_simpleitk_python {
+
+    PYTHON_EXECUTABLE=/opt/python/${PYTHON}/bin/python
+    PYTHON_INCLUDE_DIR="$( find -L /opt/python/${PYTHON}/include/ -name Python.h -exec dirname {} \; )"
+
+    echo ""
+    echo "PYTHON_EXECUTABLE:${PYTHON_EXECUTABLE}"
+    echo "PYTHON_INCLUDE_DIR:${PYTHON_INCLUDE_DIR}"
+    echo "PYTHON_LIBRARY:${PYTHON_LIBRARY}"
+
+    rm -rf ${BLD_DIR}-${PYTHON} &&
+    mkdir -p ${BLD_DIR}-${PYTHON} &&
+    cd ${BLD_DIR}-${PYTHON} &&
+    cmake \
+        -D "CMAKE_CXX_FLAGS:STRING=-fvisibility=hidden -fvisibility-inlines-hidden ${CFLAGS}" \
+        -D "CMAKE_C_FLAGS:STRING=-fvisibility=hidden ${CXXFLAGS}" \
+        -DCMAKE_MODULE_PATH:PATH=${SRC_DIR} \
+        -DCMAKE_PREFIX_PATH:PATH=${BLD_DIR} \
+        -DCMAKE_BUILD_TYPE:STRING=Release \
+        -DSWIG_EXECUTABLE:FILEPATH=${BLD_DIR}/Swig/bin/swig \
+        -DSWIG_DIR:PATH=${BLD_DIR}/Swig/ \
+        -DSimpleITK_BUILD_DISTRIBUTE:BOOL=ON \
+        -DSimpleITK_BUILD_STRIP:BOOL=ON \
+        -DSimpleITK_PYTHON_WHEEL:BOOL=ON \
+        -DSimpleITK_PYTHON_EGG:BOOL=OFF \
+        -DPYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE} \
+        -DPYTHON_INCLUDE_DIR:PATH=${PYTHON_INCLUDE_DIR} \
+        -DPYTHON_VIRTUALENV_SCRIPT:FILEPATH=${BLD_DIR}/virtualenv/virtualenv.py \
+        ${SRC_DIR}/Wrapping/Python &&
+    make &&
+    make dist
+
+}
+
+build_simpleitk || exit 1
+
+
+for PYTHON in ${PYTHON_VERSIONS}; do
+    build_simpleitk_python &&
+    ctest -j ${NPROC} &&
+    auditwheel repair $(find ${BLD_DIR}-${PYTHON}/ -name SimpleITK*.whl) -w ${OUT_DIR}/wheelhouse/
+done
diff --git a/Utilities/Distribution/manylinux/imagefiles/install.sh b/Utilities/Distribution/manylinux/imagefiles/install.sh
new file mode 100644
index 0000000..e482548
--- /dev/null
+++ b/Utilities/Distribution/manylinux/imagefiles/install.sh
@@ -0,0 +1,60 @@
+NPROC=$(grep -c processor /proc/cpuinfo)
+
+export MAKEFLAGS="-j ${NPROC}"
+
+OPENSSL_ROOT=openssl-1.0.2h
+OPENSSL_HASH=1d4007e53aad94a5b2002fe045ee7bb0b3d98f1a47f8b2bc851dcd1c74332919
+CMAKE_ROOT=cmake-3.7.2
+
+function check_var {
+    if [ -z "$1" ]; then
+        echo "required variable not defined"
+        exit 1
+    fi
+}
+
+function do_openssl_build {
+
+    ./config no-ssl2 no-shared -fPIC --prefix=/usr/local/ssl &&
+    MAKEFLAGS="" make &&
+    MAKEFLAGS="" make install
+}
+
+function check_sha256sum {
+    local fname=$1
+    check_var ${fname}
+    local sha256=$2
+    check_var ${sha256}
+
+    echo "${sha256}  ${fname}" > ${fname}.sha256
+    sha256sum -c ${fname}.sha256
+    rm -f ${fname}.sha256
+}
+
+
+function build_openssl {
+    local openssl_fname=$1
+    check_var ${openssl_fname}
+    local openssl_sha256=$2
+    check_var ${openssl_sha256} &&
+    check_sha256sum ${openssl_fname}.tar.gz ${openssl_sha256} &&
+    tar -xzf ${openssl_fname}.tar.gz &&
+    (cd ${openssl_fname} && do_openssl_build) &&
+    rm -rf ${openssl_fname} ${openssl_fname}.tar.gz
+}
+
+build_openssl $OPENSSL_ROOT $OPENSSL_HASH || exit 1
+
+tar xvzf ${CMAKE_ROOT}.tar.gz &&
+mkdir /tmp/cmake-build &&
+(cd /tmp/cmake-build &&
+    ../${CMAKE_ROOT}/bootstrap --parallel=${NPROC} -- \
+        -DCMAKE_BUILD_TYPE:STRING=Release \
+        -DCMAKE_USE_OPENSSL:BOOL=ON \
+        -DOPENSSL_ROOT_DIR:PATH=/usr/local/ssl \
+        -DCMAKE_USE_SYSTEM_CURL:BOOL=OFF  &&
+    make  &&
+    make install) ||
+exit 1
+
+rm -rf /usr/local/ssl
diff --git a/Utilities/Distribution/manylinux/run.sh b/Utilities/Distribution/manylinux/run.sh
new file mode 100755
index 0000000..e7d5175
--- /dev/null
+++ b/Utilities/Distribution/manylinux/run.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+if [ -n "$ExternalData_OBJECT_STORES" -a -d "$ExternalData_OBJECT_STORES" ] ; then
+    extra_args="-v ${ExternalData_OBJECT_STORES}:/var/io/.ExternalData -e ExternalData_OBJECT_STORES=/var/io/.ExternalData"
+fi
+
+if [ ! -z "${SIMPLEITK_GIT_TAG}" ] ; then
+    extra_args="${extra_args} -e SIMPLEITK_GIT_TAG=${SIMPLEITK_GIT_TAG}"
+fi
+
+# example versions: "cp27-cp27m cp27-cp27mu cp36-cp36m"
+if [ ! -z "${PYTHON_VERSIONS}" ] ; then
+    extra_args="${extra_args} -e PYTHON_VERSIONS=${PYTHON_VERSIONS}"
+fi
+
+for ARCH in i686 x86_64; do
+    docker build --pull=true  --rm=true -t simpleitk_manylinux_${ARCH} -f Dockerfile-${ARCH} .
+
+    docker run --storage-opt size=150G --rm -e _USER=$(id -un)  -e _USERID=$(id -u)  -e_GROUPID=$(id -g) $extra_args -v $(pwd):/work/io -t simpleitk_manylinux_${ARCH}
+
+    # use this command to get an interactive prompt to debug behavior
+    #docker run --rm -i -t --entrypoint=/bin/bash -u=root $extra_args -v $(pwd):/var/io simpleitk_manylinux_${ARCH}
+done
diff --git a/Utilities/Doxygen/Doxygen.cmake b/Utilities/Doxygen/Doxygen.cmake
new file mode 100644
index 0000000..b861af3
--- /dev/null
+++ b/Utilities/Doxygen/Doxygen.cmake
@@ -0,0 +1,78 @@
+#
+# Build the documentation
+#
+
+option( BUILD_DOXYGEN "Build SimpleITK Doxygen" OFF )
+
+if (BUILD_DOXYGEN)
+
+  find_package( Doxygen )
+
+  #
+  # Add option to use ITK tags, will download during configuration
+  # time if needed.
+  #
+
+  option(USE_ITK_DOXYGEN_TAGS "Download ITK's Doxygen tags" ON)
+
+  if (USE_ITK_DOXYGEN_TAGS)
+    set(ITK_DOXYGEN_TAGFILE "" CACHE PATH "ITK Doxygen tag file location. Empty string automatically downloads." )
+
+    if ("${ITK_DOXYGEN_TAGFILE}" STREQUAL "")
+      sitk_enforce_forbid_downloads("InsightDoxygen.tag")
+      set(ITK_DOXYGEN_TAGFILE "${PROJECT_BINARY_DIR}/Documentation/Doxygen/InsightDoxygen.tag")
+      add_custom_command( OUTPUT "${ITK_DOXYGEN_TAGFILE}"
+        COMMAND ${CMAKE_COMMAND} -D "PROJECT_SOURCE_DIR:PATH=${PROJECT_SOURCE_DIR}"
+        -D "OUTPUT_PATH:PATH=${PROJECT_BINARY_DIR}/Documentation/Doxygen"
+        -P "${PROJECT_SOURCE_DIR}/Utilities/Doxygen/ITKDoxygenTags.cmake"
+        DEPENDS "${PROJECT_SOURCE_DIR}/Utilities/Doxygen/ITKDoxygenTags.cmake"
+        )
+    endif()
+
+    set(ITK_DOXYGEN_ROOT_URL "https://www.itk.org/Doxygen/html/" CACHE STRING "URL for the ITK Doxygen web root")
+    set(DOXYGEN_TAGFILES_PARAMETER "${ITK_DOXYGEN_TAGFILE}=${ITK_DOXYGEN_ROOT_URL}")
+
+  endif()
+
+  set(SIMPLEITK_DOXYGEN_TAGFILE "${PROJECT_BINARY_DIR}/Utilities/Doxygen/SimpleITKDoxygen.tag")
+
+  #
+  # Configure the script and the doxyfile, then add target
+  #
+  configure_file(${PROJECT_SOURCE_DIR}/Utilities/Doxygen/doxygen.config.in
+    ${PROJECT_BINARY_DIR}/Utilities/Doxygen/doxygen.config)
+
+  add_custom_command( OUTPUT "${PROJECT_BINARY_DIR}/Documentation/Doxygen/Examples.dox"
+    COMMAND ${CMAKE_COMMAND} -D "PROJECT_SOURCE_DIR:PATH=${PROJECT_SOURCE_DIR}"
+    -D "OUTPUT_FILE:PATH=${PROJECT_BINARY_DIR}/Documentation/Doxygen/Examples.dox"
+    -P "${PROJECT_SOURCE_DIR}/Utilities/Doxygen/GenerateExamplesDox.cmake"
+    WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/Examples"
+    DEPENDS "${PROJECT_SOURCE_DIR}/Examples" "${PROJECT_SOURCE_DIR}/Utilities/Doxygen/GenerateExamplesDox.cmake"
+    )
+
+  add_custom_command( OUTPUT "${PROJECT_BINARY_DIR}/Documentation/Doxygen/FilterCoverage.dox"
+    COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/Utilities/CSVtoTable.py -d ${PROJECT_SOURCE_DIR}/Utilities/filters.csv ${PROJECT_BINARY_DIR}/Documentation/Doxygen/FilterCoverage.dox
+    WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/Utilities"
+    DEPENDS "${PROJECT_SOURCE_DIR}/Utilities/filters.csv" "${PROJECT_SOURCE_DIR}/Utilities/CSVtoTable.py"
+    )
+
+  if (USE_ITK_DOXYGEN_TAGS)
+    set(TAGS_DEPENDS DEPENDS ${ITK_DOXYGEN_TAGFILE})
+  endif ()
+
+  add_custom_target(Documentation ALL
+    COMMAND ${DOXYGEN_EXECUTABLE} ${PROJECT_BINARY_DIR}/Utilities/Doxygen/doxygen.config
+    MAIN_DEPENDENCY ${PROJECT_BINARY_DIR}/Utilities/Doxygen/doxygen.config
+    DEPENDS "${PROJECT_BINARY_DIR}/Documentation/Doxygen/Examples.dox"
+    DEPENDS "${PROJECT_BINARY_DIR}/Documentation/Doxygen/FilterCoverage.dox"
+    ${TAGS_DEPENDS}
+    WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/Utilities/Doxygen
+    )
+
+
+
+  message( STATUS
+    "To generate Doxygen's documentation, you need to build the Documentation target"
+    )
+
+endif (BUILD_DOXYGEN)
diff --git a/Utilities/Doxygen/GenerateExamplesDox.cmake b/Utilities/Doxygen/GenerateExamplesDox.cmake
new file mode 100644
index 0000000..0788f1c
--- /dev/null
+++ b/Utilities/Doxygen/GenerateExamplesDox.cmake
@@ -0,0 +1,35 @@
+#
+# Usage: cmake -D "PROJECT_SOURCE_DIR:PATH=${PROJECT_SOURCE_DIR}" 
+#              -D "OUTPUT_FILE:PATH=${PROJECT_BINARY_DIR}/Examples.dox"
+#              -P GenerateExamplesDox.cmake 
+
+# This cmake script gets a lists of examples for the project and
+# generates a file suitable for doxygen. The file is a list of
+# "\examples filename", where doxygen will search for fileanme in it's
+# example path. Doxygen should then generate an examples page with the
+# referenced files.
+
+# glob the examples for each language
+file( GLOB_RECURSE EXAMPLES_LIST
+  RELATIVE "${PROJECT_SOURCE_DIR}/Examples"
+  "*.cxx"
+  "*.py"
+  "*.java"
+  "*.tcl"
+  "*.rb"
+  "*.R"
+  "*.cs"
+)
+
+# remove the file before we begin appending
+file( REMOVE ${OUTPUT_FILE} )
+
+# begin comment
+file( APPEND ${OUTPUT_FILE} "namespace sitk = itk::simple;/**\n")
+
+FOREACH( f IN LISTS EXAMPLES_LIST )
+  file( APPEND ${OUTPUT_FILE}  "\\example ${f}\n" )
+ENDFOREACH( )
+
+# end comment
+file( APPEND ${OUTPUT_FILE}  "*/\n" )
diff --git a/Utilities/Doxygen/ITKDoxygenTags.cmake b/Utilities/Doxygen/ITKDoxygenTags.cmake
new file mode 100644
index 0000000..3cdb7a1
--- /dev/null
+++ b/Utilities/Doxygen/ITKDoxygenTags.cmake
@@ -0,0 +1,39 @@
+
+# Information on how to retrieve the ITK documentation tag file
+set(ITK_DOXYGEN_TAG_LOCATION "http://public.kitware.com/pub/itk/NightlyDoxygen/InsightDoxygenDocTag.gz")
+set(ITK_DOXYGEN_COMPRESSED_TAG_FILE ${OUTPUT_PATH}/InsightDoxygen.tag.gz)
+set(ITK_DOXYGEN_TAG_FILE ${OUTPUT_PATH}/InsightDoxygen.tag)
+
+
+# Get the compressed ITK documentation tag file
+if(NOT EXISTS ${ITK_DOXYGEN_COMPRESSED_TAG_FILE})
+  message("Download ITK tag file")
+  file( DOWNLOAD
+        ${ITK_DOXYGEN_TAG_LOCATION}
+        ${ITK_DOXYGEN_COMPRESSED_TAG_FILE}
+        TIMEOUT 60
+        STATUS statusITKDoxygenTagFile
+        SHOW_PROGRESS )
+  list(GET statusITKDoxygenTagFile 0 statusVal)
+  list(GET statusITKDoxygenTagFile 1 statusMessage)
+  if(statusVal)
+    message(WARNING "Warning: failed to download ITK tag file.")
+    message("Message: " ${statusMessage} )
+    file(REMOVE ${ITK_DOXYGEN_COMPRESSED_TAG_FILE})
+  endif()
+endif(NOT EXISTS ${ITK_DOXYGEN_COMPRESSED_TAG_FILE})
+
+# Uncompress the ITK tag file
+if(EXISTS ${ITK_DOXYGEN_COMPRESSED_TAG_FILE})
+  find_program(GZIP_TOOL NAMES gzip)
+  if(GZIP_TOOL)
+    message("Decompressing ITK tag file")
+    execute_process(COMMAND ${GZIP_TOOL} -df ${ITK_DOXYGEN_COMPRESSED_TAG_FILE} RESULT_VARIABLE GZIP_OUT)
+    if (${GZIP_OUT} )
+        MESSAGE(WARNING "gzip result message: " ${GZIP_OUT})
+    endif()
+    set(DOXYGEN_TAGFILES_PARAMETER "${ITK_DOXYGEN_TAG_FILE}=https://www.itk.org/Doxygen/html/")
+  endif()
+else()
+  set(DOXYGEN_TAGFILES_PARAMETER "")
+endif()
diff --git a/Utilities/Doxygen/doxygen.config.in b/Utilities/Doxygen/doxygen.config.in
new file mode 100644
index 0000000..e4d1b16
--- /dev/null
+++ b/Utilities/Doxygen/doxygen.config.in
@@ -0,0 +1,2379 @@
+# Doxyfile 1.8.9.1
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project.
+#
+# All text after a double hash (##) is considered a comment and is placed in
+# front of the TAG it is preceding.
+#
+# All text after a single hash (#) is considered a comment and will be ignored.
+# The format is:
+# TAG = value [value, ...]
+# For lists, items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (\" \").
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all text
+# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
+# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
+# for the list of possible encodings.
+# The default value is: UTF-8.
+
+DOXYFILE_ENCODING      = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
+# double-quotes, unless you are using Doxywizard) that should identify the
+# project for which the documentation is generated. This name is used in the
+# title of most generated pages and in a few other places.
+# The default value is: My Project.
+
+PROJECT_NAME           = SimpleITK
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
+# could be handy for archiving the generated documentation or if some version
+# control system is used.
+
+PROJECT_NUMBER         = @SimpleITK_VERSION@
+
+# Using the PROJECT_BRIEF tag one can provide an optional one line description
+# for a project that appears at the top of each page and should give viewer a
+# quick idea about the purpose of the project. Keep the description short.
+
+PROJECT_BRIEF          =
+
+# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
+# in the documentation. The maximum height of the logo should not exceed 55
+# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
+# the logo to the output directory.
+
+PROJECT_LOGO           =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
+# into which the generated documentation will be written. If a relative path is
+# entered, it will be relative to the location where doxygen was started. If
+# left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = @PROJECT_BINARY_DIR@/Documentation
+
+# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
+# directories (in 2 levels) under the output directory of each output format and
+# will distribute the generated files over these directories. Enabling this
+# option can be useful when feeding doxygen a huge amount of source files, where
+# putting all generated files in the same directory would otherwise causes
+# performance problems for the file system.
+# The default value is: NO.
+
+CREATE_SUBDIRS         = NO
+
+# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
+# characters to appear in the names of generated files. If set to NO, non-ASCII
+# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
+# U+3044.
+# The default value is: NO.
+
+ALLOW_UNICODE_NAMES    = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
+# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
+# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
+# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
+# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
+# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
+# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
+# Ukrainian and Vietnamese.
+# The default value is: English.
+
+OUTPUT_LANGUAGE        = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
+# descriptions after the members that are listed in the file and class
+# documentation (similar to Javadoc). Set to NO to disable this.
+# The default value is: YES.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
+# description of a member or function before the detailed description
+#
+# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+# The default value is: YES.
+
+REPEAT_BRIEF           = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator that is
+# used to form the text in various listings. Each string in this list, if found
+# as the leading text of the brief description, will be stripped from the text
+# and the result, after processing the whole list, is used as the annotated
+# text. Otherwise, the brief description is used as-is. If left blank, the
+# following values are used ($name is automatically replaced with the name of
+# the entity):The $name class, The $name widget, The $name file, is, provides,
+# specifies, contains, represents, a, an and the.
+
+ABBREVIATE_BRIEF       =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# doxygen will generate a detailed section even if there is only a brief
+# description.
+# The default value is: NO.
+
+ALWAYS_DETAILED_SEC    = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+# The default value is: NO.
+
+INLINE_INHERITED_MEMB  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
+# before files name in the file list and in the header files. If set to NO the
+# shortest path that makes the file name unique will be used
+# The default value is: YES.
+
+FULL_PATH_NAMES        = NO
+
+# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
+# Stripping is only done if one of the specified strings matches the left-hand
+# part of the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the path to
+# strip.
+#
+# Note that you can specify absolute paths here, but also relative paths, which
+# will be relative from the directory where doxygen is started.
+# This tag requires that the tag FULL_PATH_NAMES is set to YES.
+
+STRIP_FROM_PATH        = "@PROJECT_BINARY_DIR@"
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
+# path mentioned in the documentation of a class, which tells the reader which
+# header file to include in order to use a class. If left blank only the name of
+# the header file containing the class definition is used. Otherwise one should
+# specify the list of include paths that are normally passed to the compiler
+# using the -I flag.
+
+STRIP_FROM_INC_PATH    =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
+# less readable) file names. This can be useful is your file systems doesn't
+# support long names like on DOS, Mac, or CD-ROM.
+# The default value is: NO.
+
+SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
+# first line (until the first dot) of a Javadoc-style comment as the brief
+# description. If set to NO, the Javadoc-style will behave just like regular Qt-
+# style comments (thus requiring an explicit @brief command for a brief
+# description.)
+# The default value is: NO.
+
+JAVADOC_AUTOBRIEF      = NO
+
+# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
+# line (until the first dot) of a Qt-style comment as the brief description. If
+# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
+# requiring an explicit \brief command for a brief description.)
+# The default value is: NO.
+
+QT_AUTOBRIEF           = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
+# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
+# a brief description. This used to be the default behavior. The new default is
+# to treat a multi-line C++ comment block as a detailed description. Set this
+# tag to YES if you prefer the old behavior instead.
+#
+# Note that setting this tag to YES also means that rational rose comments are
+# not recognized any more.
+# The default value is: NO.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
+# documentation from any documented member that it re-implements.
+# The default value is: YES.
+
+INHERIT_DOCS           = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new
+# page for each member. If set to NO, the documentation of a member will be part
+# of the file/class/namespace that contains it.
+# The default value is: NO.
+
+SEPARATE_MEMBER_PAGES  = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
+# uses this value to replace tabs by spaces in code fragments.
+# Minimum value: 1, maximum value: 16, default value: 4.
+
+TAB_SIZE               = 2
+
+# This tag can be used to specify a number of aliases that act as commands in
+# the documentation. An alias has the form:
+# name=value
+# For example adding
+# "sideeffect=@par Side Effects:\n"
+# will allow you to put the command \sideeffect (or @sideeffect) in the
+# documentation, which will result in a user-defined paragraph with heading
+# "Side Effects:". You can put \n's in the value part of an alias to insert
+# newlines.
+
+ALIASES                =
+
+# This tag can be used to specify a number of word-keyword mappings (TCL only).
+# A mapping has the form "name=value". For example adding "class=itcl::class"
+# will allow you to use the command class in the itcl::class meaning.
+
+TCL_SUBST              =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
+# only. Doxygen will then generate output that is more tailored for C. For
+# instance, some of the names that are used will be different. The list of all
+# members will be omitted, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_FOR_C  = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
+# Python sources only. Doxygen will then generate output that is more tailored
+# for that language. For instance, namespaces will be presented as packages,
+# qualified scopes will look different, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_JAVA   = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources. Doxygen will then generate output that is tailored for Fortran.
+# The default value is: NO.
+
+OPTIMIZE_FOR_FORTRAN   = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for VHDL.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_VHDL   = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given
+# extension. Doxygen has a built-in mapping, but you can override or extend it
+# using this tag. The format is ext=language, where ext is a file extension, and
+# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
+# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
+# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
+# Fortran. In the later case the parser tries to guess whether the code is fixed
+# or free formatted code, this is the default for Fortran type files), VHDL. For
+# instance to make doxygen treat .inc files as Fortran files (default is PHP),
+# and .f files as C (default is Fortran), use: inc=Fortran f=C.
+#
+# Note: For files without extension you can use no_extension as a placeholder.
+#
+# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
+# the files are not read by doxygen.
+
+EXTENSION_MAPPING      =
+
+# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
+# according to the Markdown format, which allows for more readable
+# documentation. See http://daringfireball.net/projects/markdown/ for details.
+# The output of markdown processing is further processed by doxygen, so you can
+# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
+# case of backward compatibilities issues.
+# The default value is: YES.
+
+MARKDOWN_SUPPORT       = YES
+
+# When enabled doxygen tries to link words that correspond to documented
+# classes, or namespaces to their corresponding documentation. Such a link can
+# be prevented in individual cases by putting a % sign in front of the word or
+# globally by setting AUTOLINK_SUPPORT to NO.
+# The default value is: YES.
+
+AUTOLINK_SUPPORT       = YES
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should set this
+# tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string);
+# versus func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+# The default value is: NO.
+
+BUILTIN_STL_SUPPORT    = YES
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+# The default value is: NO.
+
+CPP_CLI_SUPPORT        = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
+# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
+# will parse them like normal C++ but will assume all classes use public instead
+# of private inheritance when no explicit protection keyword is present.
+# The default value is: NO.
+
+SIP_SUPPORT            = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate
+# getter and setter methods for a property. Setting this option to YES will make
+# doxygen to replace the get and set methods by a property in the documentation.
+# This will only work if the methods are indeed getting or setting a simple
+# type. If this is not the case, or you want to show the methods anyway, you
+# should set this option to NO.
+# The default value is: YES.
+
+IDL_PROPERTY_SUPPORT   = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+# The default value is: NO.
+
+DISTRIBUTE_GROUP_DOC   = YES
+
+# Set the SUBGROUPING tag to YES to allow class member groups of the same type
+# (for instance a group of public functions) to be put as a subgroup of that
+# type (e.g. under the Public Functions section). Set it to NO to prevent
+# subgrouping. Alternatively, this can be done per class using the
+# \nosubgrouping command.
+# The default value is: YES.
+
+SUBGROUPING            = YES
+
+# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
+# are shown inside the group in which they are included (e.g. using \ingroup)
+# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
+# and RTF).
+#
+# Note that this feature does not work in combination with
+# SEPARATE_MEMBER_PAGES.
+# The default value is: NO.
+
+INLINE_GROUPED_CLASSES = NO
+
+# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
+# with only public data fields or simple typedef fields will be shown inline in
+# the documentation of the scope in which they are defined (i.e. file,
+# namespace, or group documentation), provided this scope is documented. If set
+# to NO, structs, classes, and unions are shown on a separate page (for HTML and
+# Man pages) or section (for LaTeX and RTF).
+# The default value is: NO.
+
+INLINE_SIMPLE_STRUCTS  = NO
+
+# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
+# enum is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically be
+# useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+# The default value is: NO.
+
+TYPEDEF_HIDES_STRUCT   = NO
+
+# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
+# cache is used to resolve symbols given their name and scope. Since this can be
+# an expensive process and often the same symbol appears multiple times in the
+# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
+# doxygen will become slower. If the cache is too large, memory is wasted. The
+# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
+# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
+# symbols. At the end of a run doxygen will report the cache usage and suggest
+# the optimal cache size from a speed point of view.
+# Minimum value: 0, maximum value: 9, default value: 0.
+
+LOOKUP_CACHE_SIZE      = 2
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
+# documentation are documented, even if no documentation was available. Private
+# class members and static file members will be hidden unless the
+# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
+# Note: This will also disable the warnings about undocumented members that are
+# normally produced when WARNINGS is set to YES.
+# The default value is: NO.
+
+EXTRACT_ALL            = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
+# be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PRIVATE        = YES
+
+# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
+# scope will be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PACKAGE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be
+# included in the documentation.
+# The default value is: NO.
+
+EXTRACT_STATIC         = YES
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
+# locally in source files will be included in the documentation. If set to NO,
+# only classes defined in header files are included. Does not have any effect
+# for Java sources.
+# The default value is: YES.
+
+EXTRACT_LOCAL_CLASSES  = YES
+
+# This flag is only useful for Objective-C code. If set to YES, local methods,
+# which are defined in the implementation section but not in the interface are
+# included in the documentation. If set to NO, only methods in the interface are
+# included.
+# The default value is: NO.
+
+EXTRACT_LOCAL_METHODS  = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base name of
+# the file that contains the anonymous namespace. By default anonymous namespace
+# are hidden.
+# The default value is: NO.
+
+EXTRACT_ANON_NSPACES   = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
+# undocumented members inside documented classes or files. If set to NO these
+# members will be included in the various overviews, but no documentation
+# section is generated. This option has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy. If set
+# to NO, these classes will be included in the various overviews. This option
+# has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
+# (class|struct|union) declarations. If set to NO, these declarations will be
+# included in the documentation.
+# The default value is: NO.
+
+HIDE_FRIEND_COMPOUNDS  = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
+# documentation blocks found inside the body of a function. If set to NO, these
+# blocks will be appended to the function's detailed documentation block.
+# The default value is: NO.
+
+HIDE_IN_BODY_DOCS      = NO
+
+# The INTERNAL_DOCS tag determines if documentation that is typed after a
+# \internal command is included. If the tag is set to NO then the documentation
+# will be excluded. Set it to YES to include the internal documentation.
+# The default value is: NO.
+
+INTERNAL_DOCS          = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
+# names in lower-case letters. If set to YES, upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+# The default value is: system dependent.
+
+CASE_SENSE_NAMES       = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
+# their full class and namespace scopes in the documentation. If set to YES, the
+# scope will be hidden.
+# The default value is: NO.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will
+# append additional text to a page's title, such as Class Reference. If set to
+# YES the compound reference will be hidden.
+# The default value is: NO.
+
+HIDE_COMPOUND_REFERENCE= NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
+# the files that are included by a file in the documentation of that file.
+# The default value is: YES.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
+# grouped member an include statement to the documentation, telling the reader
+# which file to include in order to use the member.
+# The default value is: NO.
+
+SHOW_GROUPED_MEMB_INC  = NO
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
+# files with double quotes in the documentation rather than with sharp brackets.
+# The default value is: NO.
+
+FORCE_LOCAL_INCLUDES   = NO
+
+# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
+# documentation for inline members.
+# The default value is: YES.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
+# (detailed) documentation of file and class members alphabetically by member
+# name. If set to NO, the members will appear in declaration order.
+# The default value is: YES.
+
+SORT_MEMBER_DOCS       = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
+# descriptions of file, namespace and class members alphabetically by member
+# name. If set to NO, the members will appear in declaration order. Note that
+# this will also influence the order of the classes in the class list.
+# The default value is: NO.
+
+SORT_BRIEF_DOCS        = YES
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
+# (brief and detailed) documentation of class members so that constructors and
+# destructors are listed first. If set to NO the constructors will appear in the
+# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
+# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
+# member documentation.
+# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
+# detailed member documentation.
+# The default value is: NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
+# of group names into alphabetical order. If set to NO the group names will
+# appear in their defined order.
+# The default value is: NO.
+
+SORT_GROUP_NAMES       = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
+# fully-qualified names, including namespaces. If set to NO, the class list will
+# be sorted only by class name, not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the alphabetical
+# list.
+# The default value is: NO.
+
+SORT_BY_SCOPE_NAME     = NO
+
+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
+# type resolution of all parameters of a function it will reject a match between
+# the prototype and the implementation of a member function even if there is
+# only one candidate or it is obvious which candidate to choose by doing a
+# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
+# accept a match between prototype and implementation in such cases.
+# The default value is: NO.
+
+STRICT_PROTO_MATCHING  = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo
+# list. This list is created by putting \todo commands in the documentation.
+# The default value is: YES.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
+# list. This list is created by putting \test commands in the documentation.
+# The default value is: YES.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug
+# list. This list is created by putting \bug commands in the documentation.
+# The default value is: YES.
+
+GENERATE_BUGLIST       = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)
+# the deprecated list. This list is created by putting \deprecated commands in
+# the documentation.
+# The default value is: YES.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional documentation
+# sections, marked by \if <section_label> ... \endif and \cond <section_label>
+# ... \endcond blocks.
+
+ENABLED_SECTIONS       =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
+# initial value of a variable or macro / define can have for it to appear in the
+# documentation. If the initializer consists of more lines than specified here
+# it will be hidden. Use a value of 0 to hide initializers completely. The
+# appearance of the value of individual variables and macros / defines can be
+# controlled using \showinitializer or \hideinitializer command in the
+# documentation regardless of this setting.
+# Minimum value: 0, maximum value: 10000, default value: 30.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
+# the bottom of the documentation of classes and structs. If set to YES, the
+# list will mention the files that were used to generate the documentation.
+# The default value is: YES.
+
+SHOW_USED_FILES        = YES
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
+# will remove the Files entry from the Quick Index and from the Folder Tree View
+# (if specified).
+# The default value is: YES.
+
+SHOW_FILES             = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
+# page. This will remove the Namespaces entry from the Quick Index and from the
+# Folder Tree View (if specified).
+# The default value is: YES.
+
+SHOW_NAMESPACES        = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command command input-file, where command is the value of the
+# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
+# by doxygen. Whatever the program writes to standard output is used as the file
+# version. For an example see the documentation.
+
+FILE_VERSION_FILTER    =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. To create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option. You can
+# optionally specify a file name after the option, if omitted DoxygenLayout.xml
+# will be used as the name of the layout file.
+#
+# Note that if you run doxygen from a directory containing a file called
+# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
+# tag is left empty.
+
+LAYOUT_FILE            =
+
+# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
+# the reference definitions. This must be a list of .bib files. The .bib
+# extension is automatically appended if omitted. This requires the bibtex tool
+# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
+# For LaTeX the style of the bibliography can be controlled using
+# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
+# search path. See also \cite for info how to create references.
+
+CITE_BIB_FILES         =
+
+#---------------------------------------------------------------------------
+# Configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated to
+# standard output by doxygen. If QUIET is set to YES this implies that the
+# messages are off.
+# The default value is: NO.
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES
+# this implies that the warnings are on.
+#
+# Tip: Turn warnings on while writing the documentation.
+# The default value is: YES.
+
+WARNINGS               = YES
+
+# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate
+# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
+# will automatically be disabled.
+# The default value is: YES.
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some parameters
+# in a documented function, or documenting parameters that don't exist or using
+# markup commands wrongly.
+# The default value is: YES.
+
+WARN_IF_DOC_ERROR      = YES
+
+# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
+# are documented, but have no documentation for their parameters or return
+# value. If set to NO, doxygen will only warn about wrong or incomplete
+# parameter documentation, but not about the absence of documentation.
+# The default value is: NO.
+
+WARN_NO_PARAMDOC       = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that doxygen
+# can produce. The string should contain the $file, $line, and $text tags, which
+# will be replaced by the file and line number from which the warning originated
+# and the warning text. Optionally the format may contain $version, which will
+# be replaced by the version of the file (if it could be obtained via
+# FILE_VERSION_FILTER)
+# The default value is: $file:$line: $text.
+
+WARN_FORMAT            = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning and error
+# messages should be written. If left blank the output is written to standard
+# error (stderr).
+
+WARN_LOGFILE           =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag is used to specify the files and/or directories that contain
+# documented source files. You may enter file names like myfile.cpp or
+# directories like /usr/src/myproject. Separate the files or directories with
+# spaces.
+# Note: If this tag is empty the current directory is searched.
+
+INPUT                  = "@PROJECT_SOURCE_DIR@/Code" \
+                         "@PROJECT_SOURCE_DIR@/Documentation/Doxygen" \
+                         "@PROJECT_BINARY_DIR@/Documentation/Doxygen" \
+                         "@PROJECT_BINARY_DIR@/Code"
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
+# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
+# documentation (see: http://www.gnu.org/software/libiconv) for the list of
+# possible encodings.
+# The default value is: UTF-8.
+
+INPUT_ENCODING         = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank the
+# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii,
+# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp,
+# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
+# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
+# *.qsf, *.as and *.js.
+
+FILE_PATTERNS          = *.h \
+                         *.dox
+
+# The RECURSIVE tag can be used to specify whether or not subdirectories should
+# be searched for input files as well.
+# The default value is: NO.
+
+RECURSIVE              = YES
+
+# The EXCLUDE tag can be used to specify files and/or directories that should be
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+#
+# Note that relative paths are relative to the directory from which doxygen is
+# run.
+
+EXCLUDE                =
+
+# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
+# directories that are symbolic links (a Unix file system feature) are excluded
+# from the input.
+# The default value is: NO.
+
+EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories.
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories for example use the pattern */test/*
+
+EXCLUDE_PATTERNS       = "*.json" \
+                         "*/Ancillary/*"
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories use the pattern */test/*
+
+EXCLUDE_SYMBOLS        =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or directories
+# that contain example code fragments that are included (see the \include
+# command).
+
+EXAMPLE_PATH           = "@PROJECT_SOURCE_DIR@/Examples/"
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank all
+# files are included.
+
+EXAMPLE_PATTERNS       = "*.cxx" \
+                         "*.R" \
+                         "*.py" \
+                         "*.java" \
+                         "*.lua" \
+                         "*.rb" \
+                         "*.cs" \
+                         "*.tcl"
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude commands
+# irrespective of the value of the RECURSIVE tag.
+# The default value is: NO.
+
+EXAMPLE_RECURSIVE      = YES
+
+# The IMAGE_PATH tag can be used to specify one or more files or directories
+# that contain images that are to be included in the documentation (see the
+# \image command).
+
+IMAGE_PATH             = "@PROJECT_SOURCE_DIR@/Documentation/Images"
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command:
+#
+# <filter> <input-file>
+#
+# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
+# name of an input file. Doxygen will then use the output that the filter
+# program writes to standard output. If FILTER_PATTERNS is specified, this tag
+# will be ignored.
+#
+# Note that the filter must not add or remove lines; it is applied before the
+# code is scanned, but not when the output code is generated. If lines are added
+# or removed, the anchors will not be placed correctly.
+
+INPUT_FILTER           =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form: pattern=filter
+# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
+# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
+# patterns match the file name, INPUT_FILTER is applied.
+
+FILTER_PATTERNS        =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will also be used to filter the input files that are used for
+# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
+# The default value is: NO.
+
+FILTER_SOURCE_FILES    = NO
+
+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
+# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
+# it is also possible to disable source filtering for a specific pattern using
+# *.ext= (so without naming a filter).
+# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
+
+FILTER_SOURCE_PATTERNS =
+
+# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
+# is part of the input, its contents will be placed on the main page
+# (index.html). This can be useful if you have a project on for instance GitHub
+# and want to reuse the introduction page also for the doxygen output.
+
+USE_MDFILE_AS_MAINPAGE =
+
+#---------------------------------------------------------------------------
+# Configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
+# generated. Documented entities will be cross-referenced with these sources.
+#
+# Note: To get rid of all source code in the generated output, make sure that
+# also VERBATIM_HEADERS is set to NO.
+# The default value is: NO.
+
+SOURCE_BROWSER         = YES
+
+# Setting the INLINE_SOURCES tag to YES will include the body of functions,
+# classes and enums directly into the documentation.
+# The default value is: NO.
+
+INLINE_SOURCES         = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
+# special comment blocks from generated source code fragments. Normal C, C++ and
+# Fortran comments will always remain visible.
+# The default value is: YES.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
+# function all documented functions referencing it will be listed.
+# The default value is: NO.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES then for each documented function
+# all documented entities called/used by that function will be listed.
+# The default value is: NO.
+
+REFERENCES_RELATION    = YES
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
+# to YES then the hyperlinks from functions in REFERENCES_RELATION and
+# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
+# link to the documentation.
+# The default value is: YES.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
+# source code will show a tooltip with additional information such as prototype,
+# brief description and links to the definition and documentation. Since this
+# will make the HTML file larger and loading of large files a bit slower, you
+# can opt to disable this feature.
+# The default value is: YES.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+SOURCE_TOOLTIPS        = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code will
+# point to the HTML generated by the htags(1) tool instead of doxygen built-in
+# source browser. The htags tool is part of GNU's global source tagging system
+# (see http://www.gnu.org/software/global/global.html). You will need version
+# 4.8.6 or higher.
+#
+# To use it do the following:
+# - Install the latest version of global
+# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
+# - Make sure the INPUT points to the root of the source tree
+# - Run doxygen as normal
+#
+# Doxygen will invoke htags (and that will in turn invoke gtags), so these
+# tools must be available from the command line (i.e. in the search path).
+#
+# The result: instead of the source browser generated by doxygen, the links to
+# source code will now point to the output of htags.
+# The default value is: NO.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+USE_HTAGS              = NO
+
+# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
+# verbatim copy of the header file for each class for which an include is
+# specified. Set to NO to disable this.
+# See also: Section \class.
+# The default value is: YES.
+
+VERBATIM_HEADERS       = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
+# compounds will be generated. Enable this if the project contains a lot of
+# classes, structs, unions or interfaces.
+# The default value is: YES.
+
+ALPHABETICAL_INDEX     = YES
+
+# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
+# which the alphabetical index list will be split.
+# Minimum value: 1, maximum value: 20, default value: 5.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+COLS_IN_ALPHA_INDEX    = 3
+
+# In case all classes in a project start with a common prefix, all classes will
+# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
+# can be used to specify a prefix (or a list of prefixes) that should be ignored
+# while generating the index headers.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+IGNORE_PREFIX          =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
+# The default value is: YES.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_OUTPUT            = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
+# generated HTML page (for example: .htm, .php, .asp).
+# The default value is: .html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FILE_EXTENSION    = .html
+
+# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
+# each generated HTML page. If the tag is left blank doxygen will generate a
+# standard header.
+#
+# To get valid HTML the header file that includes any scripts and style sheets
+# that doxygen needs, which is dependent on the configuration options used (e.g.
+# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
+# default header using
+# doxygen -w html new_header.html new_footer.html new_stylesheet.css
+# YourConfigFile
+# and then modify the file new_header.html. See also section "Doxygen usage"
+# for information on how to generate the default header that doxygen normally
+# uses.
+# Note: The header is subject to change so you typically have to regenerate the
+# default header when upgrading to a newer version of doxygen. For a description
+# of the possible markers and block names see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_HEADER            =
+
+# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
+# generated HTML page. If the tag is left blank doxygen will generate a standard
+# footer. See HTML_HEADER for more information on how to generate a default
+# footer and what special commands can be used inside the footer. See also
+# section "Doxygen usage" for information on how to generate the default footer
+# that doxygen normally uses.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FOOTER            =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
+# sheet that is used by each HTML page. It can be used to fine-tune the look of
+# the HTML output. If left blank doxygen will generate a default style sheet.
+# See also section "Doxygen usage" for information on how to generate the style
+# sheet that doxygen normally uses.
+# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
+# it is more robust and this tag (HTML_STYLESHEET) will in the future become
+# obsolete.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_STYLESHEET        =
+
+# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# cascading style sheets that are included after the standard style sheets
+# created by doxygen. Using this option one can overrule certain style aspects.
+# This is preferred over using HTML_STYLESHEET since it does not replace the
+# standard style sheet and is therefore more robust against future updates.
+# Doxygen will copy the style sheet files to the output directory.
+# Note: The order of the extra style sheet files is of importance (e.g. the last
+# style sheet in the list overrules the setting of the previous ones in the
+# list). For an example see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_STYLESHEET  =
+
+# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the HTML output directory. Note
+# that these files will be copied to the base HTML output directory. Use the
+# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
+# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
+# files will be copied as-is; there are no commands or markers available.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_FILES       =
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
+# will adjust the colors in the style sheet and background images according to
+# this color. Hue is specified as an angle on a colorwheel, see
+# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
+# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
+# purple, and 360 is red again.
+# Minimum value: 0, maximum value: 359, default value: 220.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_HUE    = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
+# in the HTML output. For a value of 0 the output will use grayscales only. A
+# value of 255 will produce the most vivid colors.
+# Minimum value: 0, maximum value: 255, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_SAT    = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
+# luminance component of the colors in the HTML output. Values below 100
+# gradually make the output lighter, whereas values above 100 make the output
+# darker. The value divided by 100 is the actual gamma applied, so 80 represents
+# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
+# change the gamma.
+# Minimum value: 40, maximum value: 240, default value: 80.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_GAMMA  = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting this
+# to NO can help when comparing the output of multiple runs.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_TIMESTAMP         = YES
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_DYNAMIC_SECTIONS  = YES
+
+# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
+# shown in the various tree structured indices initially; the user can expand
+# and collapse entries dynamically later on. Doxygen will expand the tree to
+# such a level that at most the specified number of entries are visible (unless
+# a fully collapsed tree already exceeds this amount). So setting the number of
+# entries 1 will produce a full collapsed tree by default. 0 is a special value
+# representing an infinite number of entries and will result in a full expanded
+# tree by default.
+# Minimum value: 0, maximum value: 9999, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_INDEX_NUM_ENTRIES = 100
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files will be
+# generated that can be used as input for Apple's Xcode 3 integrated development
+# environment (see: http://developer.apple.com/tools/xcode/), introduced with
+# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
+# Makefile in the HTML output directory. Running make will produce the docset in
+# that directory and running make install will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
+# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# for more information.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_DOCSET        = NO
+
+# This tag determines the name of the docset feed. A documentation feed provides
+# an umbrella under which multiple documentation sets from a single provider
+# (such as a company or product suite) can be grouped.
+# The default value is: Doxygen generated docs.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_FEEDNAME        = "Doxygen generated docs"
+
+# This tag specifies a string that should uniquely identify the documentation
+# set bundle. This should be a reverse domain-name style string, e.g.
+# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_BUNDLE_ID       = org.doxygen.Project
+
+# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
+# The default value is: org.doxygen.Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
+
+# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+# The default value is: Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_NAME  = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
+# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
+# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
+# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
+# Windows.
+#
+# The HTML Help Workshop contains a compiler that can convert all HTML output
+# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
+# files are now used as the Windows 98 help format, and will replace the old
+# Windows help format (.hlp) on all Windows platforms in the future. Compressed
+# HTML files also contain an index, a table of contents, and you can search for
+# words in the documentation. The HTML workshop also contains a viewer for
+# compressed HTML files.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_HTMLHELP      = NO
+
+# The CHM_FILE tag can be used to specify the file name of the resulting .chm
+# file. You can add a path in front of the file if the result should not be
+# written to the html output directory.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_FILE               =
+
+# The HHC_LOCATION tag can be used to specify the location (absolute path
+# including file name) of the HTML help compiler (hhc.exe). If non-empty,
+# doxygen will try to run the HTML help compiler on the generated index.hhp.
+# The file has to be specified with full path.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+HHC_LOCATION           =
+
+# The GENERATE_CHI flag controls if a separate .chi index file is generated
+# (YES) or that it should be included in the master .chm file (NO).
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+GENERATE_CHI           = NO
+
+# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)
+# and project file content.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_INDEX_ENCODING     =
+
+# The BINARY_TOC flag controls whether a binary table of contents is generated
+# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
+# enables the Previous and Next buttons.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members to
+# the table of contents of the HTML help documentation and to the tree view.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+TOC_EXPAND             = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
+# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
+# (.qch) of the generated HTML documentation.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_QHP           = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
+# the file name of the resulting .qch file. The path specified is relative to
+# the HTML output folder.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QCH_FILE               =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
+# Project output. For more information please see Qt Help Project / Namespace
+# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_NAMESPACE          = org.doxygen.Project
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
+# Help Project output. For more information please see Qt Help Project / Virtual
+# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
+# folders).
+# The default value is: doc.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_VIRTUAL_FOLDER     = doc
+
+# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
+# filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_NAME   =
+
+# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_ATTRS  =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's filter section matches. Qt Help Project / Filter Attributes (see:
+# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_SECT_FILTER_ATTRS  =
+
+# The QHG_LOCATION tag can be used to specify the location of Qt's
+# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
+# generated .qhp file.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHG_LOCATION           =
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
+# generated, together with the HTML files, they form an Eclipse help plugin. To
+# install this plugin and make it available under the help contents menu in
+# Eclipse, the contents of the directory containing the HTML and XML files needs
+# to be copied into the plugins directory of eclipse. The name of the directory
+# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
+# After copying Eclipse needs to be restarted before the help appears.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_ECLIPSEHELP   = NO
+
+# A unique identifier for the Eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have this
+# name. Each documentation set should have its own identifier.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
+
+ECLIPSE_DOC_ID         = org.doxygen.Project
+
+# If you want full control over the layout of the generated HTML pages it might
+# be necessary to disable the index and replace it with your own. The
+# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
+# of each HTML page. A value of NO enables the index and the value YES disables
+# it. Since the tabs in the index contain the same information as the navigation
+# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+DISABLE_INDEX          = NO
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information. If the tag
+# value is set to YES, a side panel will be generated containing a tree-like
+# index structure (just like the one that is generated for HTML Help). For this
+# to work a browser that supports JavaScript, DHTML, CSS and frames is required
+# (i.e. any modern browser). Windows users are probably better off using the
+# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
+# further fine-tune the look of the index. As an example, the default style
+# sheet generated by doxygen has an example that shows how to put an image at
+# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
+# the same information as the tab index, you could consider setting
+# DISABLE_INDEX to YES when enabling this option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_TREEVIEW      = NO
+
+# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
+# doxygen will group on one line in the generated HTML documentation.
+#
+# Note that a value of 0 will completely suppress the enum values from appearing
+# in the overview section.
+# Minimum value: 0, maximum value: 20, default value: 4.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+ENUM_VALUES_PER_LINE   = 1
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
+# to set the initial width (in pixels) of the frame in which the tree is shown.
+# Minimum value: 0, maximum value: 1500, default value: 250.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+TREEVIEW_WIDTH         = 250
+
+# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to
+# external symbols imported via tag files in a separate window.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+EXT_LINKS_IN_WINDOW    = NO
+
+# Use this tag to change the font size of LaTeX formulas included as images in
+# the HTML documentation. When you change the font size after a successful
+# doxygen run you need to manually remove any form_*.png images from the HTML
+# output directory to force them to be regenerated.
+# Minimum value: 8, maximum value: 50, default value: 10.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_FONTSIZE       = 10
+
+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are not
+# supported properly for IE 6.0, but are supported on all modern browsers.
+#
+# Note that when changing this option you need to delete any form_*.png files in
+# the HTML output directory before the changes have effect.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_TRANSPARENT    = YES
+
+# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
+# http://www.mathjax.org) which uses client side Javascript for the rendering
+# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
+# installed or if you want to formulas look prettier in the HTML output. When
+# enabled you may also need to install MathJax separately and configure the path
+# to it using the MATHJAX_RELPATH option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+USE_MATHJAX            = NO
+
+# When MathJax is enabled you can set the default output format to be used for
+# the MathJax output. See the MathJax site (see:
+# http://docs.mathjax.org/en/latest/output.html) for more details.
+# Possible values are: HTML-CSS (which is slower, but has the best
+# compatibility), NativeMML (i.e. MathML) and SVG.
+# The default value is: HTML-CSS.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_FORMAT         = HTML-CSS
+
+# When MathJax is enabled you need to specify the location relative to the HTML
+# output directory using the MATHJAX_RELPATH option. The destination directory
+# should contain the MathJax.js script. For instance, if the mathjax directory
+# is located at the same level as the HTML output directory, then
+# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
+# Content Delivery Network so you can quickly see the result without installing
+# MathJax. However, it is strongly recommended to install a local copy of
+# MathJax from http://www.mathjax.org before deployment.
+# The default value is: http://cdn.mathjax.org/mathjax/latest.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_RELPATH        = http://cdn.mathjax.org/mathjax/latest
+
+# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
+# extension names that should be enabled during MathJax rendering. For example
+# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_EXTENSIONS     =
+
+# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
+# of code that will be used on startup of the MathJax code. See the MathJax site
+# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
+# example see the documentation.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_CODEFILE       =
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
+# the HTML output. The underlying search engine uses javascript and DHTML and
+# should work on any modern browser. Note that when using HTML help
+# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
+# there is already a search function so this one should typically be disabled.
+# For large projects the javascript based search engine can be slow, then
+# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
+# search using the keyboard; to jump to the search box use <access key> + S
+# (what the <access key> is depends on the OS and browser, but it is typically
+# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
+# key> to jump into the search results window, the results can be navigated
+# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
+# the search. The filter options can be selected when the cursor is inside the
+# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
+# to select a filter and <Enter> or <escape> to activate or cancel the filter
+# option.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+SEARCHENGINE           = NO
+
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a web server instead of a web client using Javascript. There
+# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
+# setting. When disabled, doxygen will generate a PHP script for searching and
+# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
+# and searching needs to be provided by external tools. See the section
+# "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SERVER_BASED_SEARCH    = NO
+
+# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
+# script for searching. Instead the search results are written to an XML file
+# which needs to be processed by an external indexer. Doxygen will invoke an
+# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
+# search results.
+#
+# Doxygen ships with an example indexer (doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/).
+#
+# See the section "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH        = NO
+
+# The SEARCHENGINE_URL should point to a search engine hosted by a web server
+# which will return the search results when EXTERNAL_SEARCH is enabled.
+#
+# Doxygen ships with an example indexer (doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/). See the section "External Indexing and
+# Searching" for details.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHENGINE_URL       =
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
+# search data is written to a file for indexing by an external tool. With the
+# SEARCHDATA_FILE tag the name of this file can be specified.
+# The default file is: searchdata.xml.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHDATA_FILE        = searchdata.xml
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
+# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
+# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
+# projects and redirect the results back to the right project.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH_ID     =
+
+# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
+# projects other than the one defined by this configuration file, but that are
+# all added to the same external search index. Each project needs to have a
+# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
+# to a relative location where the documentation can be found. The format is:
+# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTRA_SEARCH_MAPPINGS  =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
+# The default value is: YES.
+
+GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_OUTPUT           = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked.
+#
+# Note that when enabling USE_PDFLATEX this option is only used for generating
+# bitmaps for formulas in the HTML output, but not in the Makefile that is
+# written to the output directory.
+# The default file is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_CMD_NAME         = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
+# index for LaTeX.
+# The default file is: makeindex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+MAKEINDEX_CMD_NAME     = makeindex
+
+# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used by the
+# printer.
+# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
+# 14 inches) and executive (7.25 x 10.5 inches).
+# The default value is: a4.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+PAPER_TYPE             = letter
+
+# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
+# that should be included in the LaTeX output. To get the times font for
+# instance you can specify
+# EXTRA_PACKAGES=times
+# If left blank no extra packages will be included.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+EXTRA_PACKAGES         = amsmath \
+                         amsfonts
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
+# generated LaTeX document. The header should contain everything until the first
+# chapter. If it is left blank doxygen will generate a standard header. See
+# section "Doxygen usage" for information on how to let doxygen write the
+# default header to a separate file.
+#
+# Note: Only use a user-defined header if you know what you are doing! The
+# following commands have a special meaning inside the header: $title,
+# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
+# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
+# string, for the replacement values of the other commands the user is referred
+# to HTML_HEADER.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HEADER           =
+
+# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
+# generated LaTeX document. The footer should contain everything after the last
+# chapter. If it is left blank doxygen will generate a standard footer. See
+# LATEX_HEADER for more information on how to generate a default footer and what
+# special commands can be used inside the footer.
+#
+# Note: Only use a user-defined footer if you know what you are doing!
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_FOOTER           =
+
+# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# LaTeX style sheets that are included after the standard style sheets created
+# by doxygen. Using this option one can overrule certain style aspects. Doxygen
+# will copy the style sheet files to the output directory.
+# Note: The order of the extra style sheet files is of importance (e.g. the last
+# style sheet in the list overrules the setting of the previous ones in the
+# list).
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EXTRA_STYLESHEET =
+
+# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the LATEX_OUTPUT output
+# directory. Note that the files will be copied as-is; there are no commands or
+# markers available.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EXTRA_FILES      =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
+# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
+# contain links (just like the HTML output) instead of page references. This
+# makes the output suitable for online browsing using a PDF viewer.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+PDF_HYPERLINKS         = YES
+
+# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
+# the PDF file directly from the LaTeX files. Set this option to YES, to get a
+# higher quality PDF documentation.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+USE_PDFLATEX           = YES
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
+# command to the generated LaTeX files. This will instruct LaTeX to keep running
+# if errors occur, instead of asking the user for help. This option is also used
+# when generating formulas in HTML.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BATCHMODE        = YES
+
+# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
+# index chapters (such as File Index, Compound Index, etc.) in the output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HIDE_INDICES     = NO
+
+# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
+# code with syntax highlighting in the LaTeX output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_SOURCE_CODE      = NO
+
+# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
+# bibliography, e.g. plainnat, or ieeetr. See
+# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
+# The default value is: plain.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BIB_STYLE        = plain
+
+#---------------------------------------------------------------------------
+# Configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The
+# RTF output is optimized for Word 97 and may not look too pretty with other RTF
+# readers/editors.
+# The default value is: NO.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: rtf.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
+# contain hyperlink fields. The RTF file will contain links (just like the HTML
+# output) instead of page references. This makes the output suitable for online
+# browsing using Word or some other Word compatible readers that support those
+# fields.
+#
+# Note: WordPad (write) and others do not support links.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's config
+# file, i.e. a series of assignments. You only have to provide replacements,
+# missing definitions are set to their default value.
+#
+# See also section "Doxygen usage" for information on how to generate the
+# default style sheet that doxygen normally uses.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_STYLESHEET_FILE    =
+
+# Set optional variables used in the generation of an RTF document. Syntax is
+# similar to doxygen's config file. A template extensions file can be generated
+# using doxygen -e rtf extensionFile.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_EXTENSIONS_FILE    =
+
+# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code
+# with syntax highlighting in the RTF output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_SOURCE_CODE        = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for
+# classes and files.
+# The default value is: NO.
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it. A directory man3 will be created inside the directory specified by
+# MAN_OUTPUT.
+# The default directory is: man.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to the generated
+# man pages. In case the manual section does not start with a number, the number
+# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
+# optional.
+# The default value is: .3.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_EXTENSION          = .3
+
+# The MAN_SUBDIR tag determines the name of the directory created within
+# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
+# MAN_EXTENSION with the initial . removed.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_SUBDIR             =
+
+# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
+# will generate one additional man file for each entity documented in the real
+# man page(s). These additional files only source the real man page, but without
+# them the man command would be unable to find the correct page.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that
+# captures the structure of the code including all documentation.
+# The default value is: NO.
+
+GENERATE_XML           = YES
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: xml.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_OUTPUT             = xml
+
+# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program
+# listings (including syntax highlighting and cross-referencing information) to
+# the XML output. Note that enabling this will significantly increase the size
+# of the XML output.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_PROGRAMLISTING     = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to the DOCBOOK output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files
+# that can be used to generate PDF.
+# The default value is: NO.
+
+GENERATE_DOCBOOK       = NO
+
+# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
+# front of it.
+# The default directory is: docbook.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_OUTPUT         = docbook
+
+# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
+# program listings (including syntax highlighting and cross-referencing
+# information) to the DOCBOOK output. Note that enabling this will significantly
+# increase the size of the DOCBOOK output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_PROGRAMLISTING = NO
+
+#---------------------------------------------------------------------------
+# Configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
+# AutoGen Definitions (see http://autogen.sf.net) file that captures the
+# structure of the code including all documentation. Note that this feature is
+# still experimental and incomplete at the moment.
+# The default value is: NO.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module
+# file that captures the structure of the code including all documentation.
+#
+# Note that this feature is still experimental and incomplete at the moment.
+# The default value is: NO.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary
+# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
+# output from the Perl module output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_LATEX          = NO
+
+# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely
+# formatted so it can be parsed by a human reader. This is useful if you want to
+# understand what is going on. On the other hand, if this tag is set to NO, the
+# size of the Perl module output will be much smaller and Perl will parse it
+# just the same.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_PRETTY         = YES
+
+# The names of the make variables in the generated doxyrules.make file are
+# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
+# so different doxyrules.make files included by the same Makefile don't
+# overwrite each other's variables.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all
+# C-preprocessor directives found in the sources and include files.
+# The default value is: YES.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
+# in the source code. If set to NO, only conditional compilation will be
+# performed. Macro expansion can be done in a controlled way by setting
+# EXPAND_ONLY_PREDEF to YES.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+MACRO_EXPANSION        = YES
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
+# the macro expansion is limited to the macros specified with the PREDEFINED and
+# EXPAND_AS_DEFINED tags.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+EXPAND_ONLY_PREDEF     = YES
+
+# If the SEARCH_INCLUDES tag is set to YES, the include files in the
+# INCLUDE_PATH will be searched if a #include is found.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+SEARCH_INCLUDES        = NO
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by the
+# preprocessor.
+# This tag requires that the tag SEARCH_INCLUDES is set to YES.
+
+INCLUDE_PATH           =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will be
+# used.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+INCLUDE_FILE_PATTERNS  =
+
+# The PREDEFINED tag can be used to specify one or more macro names that are
+# defined before the preprocessor is started (similar to the -D option of e.g.
+# gcc). The argument of the tag is a list of macros of the form: name or
+# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
+# is assumed. To prevent a macro definition from being undefined via #undef or
+# recursively expanded use the := operator instead of the = operator.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+PREDEFINED             = "itkNotUsed(x)=" \
+                         "SITKBasicFilters_EXPORT= " \
+                         "SITKITKIO_EXPORT= " \
+                         "SITKITKCommon_EXPORT= " \
+                         "SITK_RETURN_SELF_TYPE_HEADER=Self &"
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
+# tag can be used to specify a list of macro names that should be expanded. The
+# macro definition that is found in the sources will be used. Use the PREDEFINED
+# tag if you want to use a different macro definition that overrules the
+# definition found in the source code.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+EXPAND_AS_DEFINED      =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
+# remove all references to function-like macros that are alone on a line, have
+# an all uppercase name, and do not end with a semicolon. Such function macros
+# are typically used for boiler-plate code, and will confuse the parser if not
+# removed.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES tag can be used to specify one or more tag files. For each tag
+# file the location of the external documentation should be added. The format of
+# a tag file without this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where loc1 and loc2 can be relative or absolute paths or URLs. See the
+# section "Linking to external documentation" for more information about the use
+# of tag files.
+# Note: Each tag file must have a unique name (where the name does NOT include
+# the path). If a tag file is not located in the directory in which doxygen is
+# run, you must also specify the path to the tagfile here.
+
+TAGFILES               = @DOXYGEN_TAGFILES_PARAMETER@
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
+# tag file that is based on the input files it reads. See section "Linking to
+# external documentation" for more information about the usage of tag files.
+
+GENERATE_TAGFILE       = @SIMPLEITK_DOXYGEN_TAGFILE@
+
+# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
+# the class index. If set to NO, only the inherited external classes will be
+# listed.
+# The default value is: NO.
+
+ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will be
+# listed.
+# The default value is: YES.
+
+EXTERNAL_GROUPS        = YES
+
+# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in
+# the related pages index. If set to NO, only the current project's pages will
+# be listed.
+# The default value is: YES.
+
+EXTERNAL_PAGES         = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of 'which perl').
+# The default file (with absolute path) is: /usr/bin/perl.
+
+PERL_PATH              = @PERL_EXECUTABLE@
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
+# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
+# NO turns the diagrams off. Note that this option also works with HAVE_DOT
+# disabled, but it is recommended to install and use dot, since it yields more
+# powerful graphs.
+# The default value is: YES.
+
+CLASS_DIAGRAMS         = YES
+
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see:
+# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# default search path.
+
+MSCGEN_PATH            =
+
+# You can include diagrams made with dia in doxygen documentation. Doxygen will
+# then run dia to produce the diagram and insert it in the documentation. The
+# DIA_PATH tag allows you to specify the directory where the dia binary resides.
+# If left empty dia is assumed to be found in the default search path.
+
+DIA_PATH               =
+
+# If set to YES the inheritance and collaboration graphs will hide inheritance
+# and usage relations if the target is undocumented or is not a class.
+# The default value is: YES.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz (see:
+# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
+# Bell Labs. The other options in this section have no effect if this option is
+# set to NO
+# The default value is: NO.
+
+HAVE_DOT               = YES
+
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
+# to run in parallel. When set to 0 doxygen will base this on the number of
+# processors available in the system. You can set it explicitly to a value
+# larger than 0 to get control over the balance between CPU load and processing
+# speed.
+# Minimum value: 0, maximum value: 32, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_NUM_THREADS        = 0
+
+# When you want a differently looking font in the dot files that doxygen
+# generates you can specify the font name using DOT_FONTNAME. You need to make
+# sure dot is able to find the font, which can be done by putting it in a
+# standard location or by setting the DOTFONTPATH environment variable or by
+# setting DOT_FONTPATH to the directory containing the font.
+# The default value is: Helvetica.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTNAME           =
+
+# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
+# dot graphs.
+# Minimum value: 4, maximum value: 24, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTSIZE           = 10
+
+# By default doxygen will tell dot to use the default font as specified with
+# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
+# the path where dot can find it using this tag.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTPATH           =
+
+# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
+# each documented class showing the direct and indirect inheritance relations.
+# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
+# graph for each documented class showing the direct and indirect implementation
+# dependencies (inheritance, containment, and class references variables) of the
+# class with other documented classes.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+COLLABORATION_GRAPH    = YES
+
+# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
+# groups, showing the direct groups dependencies.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GROUP_GRAPHS           = YES
+
+# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LOOK               = NO
+
+# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
+# class node. If there are many fields or methods and many nodes the graph may
+# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
+# number of items for each type to make the size more manageable. Set this to 0
+# for no limit. Note that the threshold may be exceeded by 50% before the limit
+# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
+# but if the number exceeds 15, the total amount of fields shown is limited to
+# 10.
+# Minimum value: 0, maximum value: 100, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LIMIT_NUM_FIELDS   = 10
+
+# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
+# collaboration graphs will show the relations between templates and their
+# instances.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+TEMPLATE_RELATIONS     = YES
+
+# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
+# YES then doxygen will generate a graph for each documented file showing the
+# direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INCLUDE_GRAPH          = YES
+
+# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
+# set to YES then doxygen will generate a graph for each documented file showing
+# the direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
+# functions only using the \callgraph command.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CALL_GRAPH             = NO
+
+# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable caller graphs for selected
+# functions only using the \callergraph command.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CALLER_GRAPH           = NO
+
+# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
+# hierarchy of all classes instead of a textual one.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
+# dependencies a directory has on other directories in a graphical way. The
+# dependency relations are determined by the #include relations between the
+# files in the directories.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DIRECTORY_GRAPH        = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot.
+# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
+# to make the SVG files visible in IE 9+ (other browsers do not have this
+# requirement).
+# Possible values are: png, jpg, gif and svg.
+# The default value is: png.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_IMAGE_FORMAT       = png
+
+# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
+# enable generation of interactive SVG images that allow zooming and panning.
+#
+# Note that this requires a modern browser other than Internet Explorer. Tested
+# and working are Firefox, Chrome, Safari, and Opera.
+# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
+# the SVG files visible. Older versions of IE do not have SVG support.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INTERACTIVE_SVG        = NO
+
+# The DOT_PATH tag can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_PATH               =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the \dotfile
+# command).
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOTFILE_DIRS           =
+
+# The MSCFILE_DIRS tag can be used to specify one or more directories that
+# contain msc files that are included in the documentation (see the \mscfile
+# command).
+
+MSCFILE_DIRS           =
+
+# The DIAFILE_DIRS tag can be used to specify one or more directories that
+# contain dia files that are included in the documentation (see the \diafile
+# command).
+
+DIAFILE_DIRS           =
+
+# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
+# path where java can find the plantuml.jar file. If left blank, it is assumed
+# PlantUML is not used or called during a preprocessing step. Doxygen will
+# generate a warning when it encounters a \startuml command in this case and
+# will not generate output for the diagram.
+
+PLANTUML_JAR_PATH      =
+
+# When using plantuml, the specified paths are searched for files specified by
+# the !include statement in a plantuml block.
+
+PLANTUML_INCLUDE_PATH  =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
+# that will be shown in the graph. If the number of nodes in a graph becomes
+# larger than this value, doxygen will truncate the graph, which is visualized
+# by representing a node as a red box. Note that doxygen if the number of direct
+# children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
+# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+# Minimum value: 0, maximum value: 10000, default value: 50.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_GRAPH_MAX_NODES    = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
+# generated by dot. A depth value of 3 means that only nodes reachable from the
+# root by following a path via at most 3 edges will be shown. Nodes that lay
+# further from the root node will be omitted. Note that setting this option to 1
+# or 2 may greatly reduce the computation time needed for large code bases. Also
+# note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+# Minimum value: 0, maximum value: 1000, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+MAX_DOT_GRAPH_DEPTH    = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not seem
+# to support this out of the box.
+#
+# Warning: Depending on the platform used, enabling this option may lead to
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
+# read).
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_TRANSPARENT        = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10) support
+# this, this feature is disabled by default.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_MULTI_TARGETS      = YES
+
+# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
+# explaining the meaning of the various boxes and arrows in the dot generated
+# graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot
+# files that are used to generate the various graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_CLEANUP            = YES
diff --git a/Utilities/GenerateDocs/GenerateDoc.py b/Utilities/GenerateDocs/GenerateDoc.py
new file mode 100755
index 0000000..2ab86d8
--- /dev/null
+++ b/Utilities/GenerateDocs/GenerateDoc.py
@@ -0,0 +1,240 @@
+#!/usr/bin/env python
+
+from __future__ import print_function
+import os, sys, io, json, re
+import xml.etree.ElementTree as ET
+from collections import OrderedDict
+
+
+#
+#  This script updates the documentation of a SimpleITK class in its
+#  JSON file.  The documentation is pulled from the correpsonding ITK
+#  class XML file.  The SimpleITKClass.json file is modified in place.
+#
+#  The script is a re-write of the GenerateDocumentation.groovy script in python.
+#
+#  usage: GenerateDoc.py <SimpleITKClass.json> <Path/To/ITK-build/With/Doxygen>
+#
+
+if len(sys.argv) != 3:
+    print("usage: GenerateDoc.py <SimpleITKClass.json> <Path/To/ITK-build/With/Doxygen>\n")
+
+sitk_json = sys.argv[1]
+itk_path  = sys.argv[2]
+
+blue_text = "\033[0;34m"
+end_color = "\033[0m"
+
+# Load the JSON file
+with open(sitk_json, "r") as fp:
+  json_obj = json.load(fp, object_pairs_hook=OrderedDict)
+
+#print(json.dumps(json_obj, indent=1))
+
+
+itk_name = ''
+if 'itk_name' in json_obj:
+  itk_name = json_obj['itk_name']
+
+name = ''
+if 'name' in json_obj:
+  name = json_obj['name']
+
+template_code_filename = ''
+if 'template_code_filename' in json_obj:
+  template_code_filename = json_obj['template_code_filename']
+
+  XMLFileOptions = ["classitk_1_1" + itk_name + ".xml",
+                    "classitk_1_1" + name + template_code_filename + ".xml",
+                    "classitk_1_1" + name + ".xml"]
+#print( XMLFileOptions )
+
+
+# Find the XML file
+XMLFile = None
+for xf in XMLFileOptions:
+  xname = itk_path + '/' + xf
+  if os.path.isfile(xname):
+    try:
+      XMLFile = io.open(xname, "r")
+      print("xml file: ", xname)
+    except:
+      XMLFile = None
+      print("no xml file: ", xname)
+
+if not XMLFile:
+  print( "Tried to read a file for " + name)
+  print(XMLFileOptions)
+  sys.exit ( 1 )
+
+
+# Load the XML file
+tree = ET.parse(XMLFile)
+root = tree.getroot()
+
+
+#
+# traverse an XML subtree to produced a formated description string
+#
+def traverseXML( xml_node, depth=0, Debug=False ):
+  result = ""
+  prefix = { 'listitem' : "\\li ",
+             'itemizedlist' : "\n",
+             'computeroutput' : " ",
+             'programlisting' : "\\code\n"}
+  postfix = { 'para' : "\n\n",
+              'title' : "\n",
+              'computeroutput' : " ",
+              'ref' : " ",
+              'ulink' : " ",
+              'codeline' : "\n",
+              'programlisting' : "\\endcode\n",
+              'sp' : " "}
+  if Debug:
+    print( "\nNode: ", xml_node )
+    for i in range(depth):
+      sys.stdout.write("  ")
+    print( xml_node.tag, ": ", xml_node.attrib, xml_node.text)
+
+  # handle simplesection nodes (particularly See nodes)
+  if xml_node.tag == 'simplesect':
+    if xml_node.attrib['kind'] == 'see':
+      for child in xml_node:
+        child_desc = traverseXML( child, depth+1 )
+        if (len(child_desc)):
+          result = result + "\\see " + child_desc + "\n"
+          if Debug:
+            print("See result: ", repr(result))
+      return result
+    else:
+      result = result + "\\" + xml_node.attrib['kind'] + " "
+
+  # iterate through the children
+  for child in xml_node:
+    if Debug:
+      print ("Child: ", child, child.text)
+    result = result + traverseXML(child, depth+1 )
+
+  text = xml_node.text
+
+  # handle formula nodes
+  if xml_node.tag == 'formula':
+    if Debug:
+      print(blue_text, "\nFormula", end_color)
+      print(text)
+    text = text.replace("\[", " \\f[", 1)
+    text = text.replace( "\\]", "\\f] " )
+    text = text.replace( "$", "\\f$" ) +  " "
+    if Debug:
+      print(text)
+
+
+  # add the prefix and postfixes
+  if xml_node.tag in prefix:
+    result = prefix[xml_node.tag] + result
+  if text != None:
+    result = text + result
+  if xml_node.tag in postfix:
+    result = result + postfix[xml_node.tag]
+  if xml_node.tail:
+    result = result + xml_node.tail
+
+  # finished
+  if Debug:
+    for i in range(depth):
+      sys.stdout.write("  ")
+    print ("result: ", repr(result))
+
+  return result
+
+
+# Call the recursive XML traversal function, then clean up some white space
+def formatDescription( xml_node ):
+  result = traverseXML( xml_node )
+  result = result.replace("\n\n\n", "\n\n")
+  result = re.sub( ' +', ' ', result)
+  result = result.strip()
+  return result
+
+
+# Class brief description
+briefdesc = root.find( './compounddef/briefdescription' )
+# Class detailed description
+detaileddesc = root.find( './compounddef/detaileddescription' )
+
+
+
+#
+# Set the class detailed description in the JSON to the formated text from the XML tree
+#
+json_obj['detaileddescription'] = formatDescription(detaileddesc)
+print ( blue_text, "\nDetailed description\n", end_color, repr(json_obj['detaileddescription']) )
+
+#
+# Set the class brief description in the JSON to the formated text from the XML tree
+#
+json_obj['briefdescription'] = formatDescription(briefdesc)
+print ( blue_text, "\nBrief description\n", end_color, repr(json_obj['briefdescription']) )
+
+
+#
+# Build a dict of class member functions in the XML
+#
+member_dict = {}
+print ( blue_text, "\nBuilding XML member function dict\n", end_color )
+for m in root.findall("./compounddef/sectiondef/memberdef[@kind='function']"):
+  name_node = m.find("./name")
+  if name_node != None:
+    print (name_node.text, " : ", repr(m))
+    member_dict[name_node.text] = m
+
+
+#
+# Loop through the class members and measurements in the JSON
+#
+print ( blue_text, "\nJSON class members and measurements\n", end_color )
+obj_list = []
+
+# Create a list of members and measurements
+if 'members' in json_obj:
+  obj_list = obj_list + json_obj['members']
+if 'measurements' in json_obj:
+  obj_list = obj_list + json_obj['measurements']
+
+
+for m in obj_list:
+  name = m['name']
+  print( blue_text, name, end_color )
+
+  # Iterate through the possible prefixes
+  for prefix in [ "", "Set", "Get" ]:
+    funcname = prefix+name
+
+    if funcname in member_dict:
+      # find the item in the XML that corresponds to the JSON member function
+      m_xml = member_dict[funcname]
+      print (funcname, repr(m_xml))
+
+      # pull the brief and detailed descriptions from the XML to the JSON
+      for dtype in ['briefdescription', 'detaileddescription']:
+          desc_prefix = dtype + prefix
+          print( "Setting", desc_prefix )
+          desc_node = m_xml.find("./"+dtype)
+          if desc_node != None:
+            m[desc_prefix] = formatDescription( desc_node )
+            print( "  ", m[desc_prefix] )
+          else:
+            print ("./"+dtype+ " not found in the XML")
+
+
+#
+# We done.  Write out the results.
+#
+backup_flag = False
+if backup_flag:
+  os.rename(sitk_json, sitk_json+".BAK")
+
+fp = file(sitk_json, "w")
+json.dump(json_obj, fp, indent=2, separators=(',', ' : '))
+print ( "", file=fp )
+fp.close()
diff --git a/Utilities/GenerateDocs/JSONDocUpdate.sh b/Utilities/GenerateDocs/JSONDocUpdate.sh
new file mode 100755
index 0000000..42f5ec8
--- /dev/null
+++ b/Utilities/GenerateDocs/JSONDocUpdate.sh
@@ -0,0 +1,33 @@
+#!/usr/bin/env bash
+
+# Updates the documentation strings in the JSON files from the ITK Doxygen.
+#
+# Configuration for directories need to be manually done in the
+# config_vars.sh file. The ITK Doxygen XML will automatically be
+# downloaded if needed.
+#
+# Usage: JSONDocUpdate.sh Code/BasicFilters/json/SomeFilter.json
+#
+
+die() {
+    echo "$@" 1>&2
+    exit 1
+}
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+# Load configuration variable from file
+. ${DIR}/config_vars.sh || die 'Unable to find local \"config_vars.sh\" configuration file.'
+
+# Download the nightly Doxygen XML if needed
+[ -e ${ITK_XML}/itkImage_8h.xml ] ||
+      ( cd ${ITK_XML} &&
+        echo "Downloading ITK Doxygen XML..." &&
+        curl -O http://public.kitware.com/pub/itk/NightlyDoxygen/InsightDoxygenDocXml.tar.gz &&
+        cd .. &&
+        tar -zxf xml/InsightDoxygenDocXml.tar.gz ) ||
+      die 'Unable to get ITK Doxygen XML'
+
+# Does the work of extracting the string from the XML, and putting them into the JSON
+${PYTHON_EXECUTABLE} "${DIR}/GenerateDoc.py" "$1"  ${ITK_XML} ||
+  die 'Error running GenerateDoc.py'
diff --git a/Utilities/GenerateDocs/README b/Utilities/GenerateDocs/README
new file mode 100644
index 0000000..f6e9e50
--- /dev/null
+++ b/Utilities/GenerateDocs/README
@@ -0,0 +1,25 @@
+
+This directory contains scripts used to process and generate documentation for SimpleITK.
+
+Overview:
+Much of the SimpleITK documentation that is in the form of doxygen strings and
+API language docs is derived from ITK's Doxygen. The process starts
+when Doxygen is run on ITK and it produces the ITK Doxygen in XML
+format. This can either be generated locally or the nightly can be
+automatically downloaded. Next the JSONDocUpdate.sh script can be run
+to extract the strings from the ITK XML Doxygen and update the
+SimpleITK JSON filter descriptions. When SimpleITK is built the JSON
+is used as source for the C++ code. Then when SimpleITK's Documentation
+target is made, the SimpleITK Doxygen in XML will be generated. Lastly
+the SwigDocUpdate.sh script can be run to convert the SimpleITK
+Doxygen XML into Swig .i files so that when SimpleITK is built, inline
+documenation for some wrapped languages will be available.
+
+Important end use scripts (see script files for more details:
+        JSONDocUpdate.sh - Copies ITK Doxygen into SimpleITK JSON
+        SwigDocUpdate.sh - Copies SimpleITK Doxygen into Swig .i files
+
+Configuration:
+        The config_vars.sh file needs to be manually modified for the system and build configuration.
+
+These scripts are manually run to modify and create files in the source tree with the derived documentation.
diff --git a/Utilities/GenerateDocs/SwigDocUpdate.sh b/Utilities/GenerateDocs/SwigDocUpdate.sh
new file mode 100755
index 0000000..6660784
--- /dev/null
+++ b/Utilities/GenerateDocs/SwigDocUpdate.sh
@@ -0,0 +1,35 @@
+#!/usr/bin/env bash
+
+
+# Updates Swig .i documentation files from SimpleITK's Doxygen XML.
+#
+# To generate the input to this script, the SimpleITK Doxygen must be built.
+#
+# Configuration for directories need to be manually done in the
+# config_vars.sh file. The ITK Doxygen XML will automatically be
+# downloaded if needed.
+#
+# Usage: SWigDocUpdate.sh
+#
+
+die() {
+    echo "$@" 1>&2
+    exit 1
+}
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+# Load configuration variable from file
+. ${DIR}/config_vars.sh || die 'Unable to find local \"config_vars.sh\" configuration file.'
+
+
+[ -e ${SITK_BUILD_DIR}/Documentation/xml/sitkImage_8h.xml ] ||
+   die "Uable to find SimpleITK Doxygen XML! SimpleITK Doxygen needs to be generated with the Documentation target!"
+
+${PYTHON_EXECUTABLE} doxyall.py ${SITK_BUILD_DIR}/Documentation/xml/ ${SIMPLEITK}/Wrapping/Python/PythonDocstrings.i
+${PYTHON_EXECUTABLE} doxyall.py -j ${SITK_BUILD_DIR}/Documentation/xml/ ${SIMPLEITK}/Wrapping/Java/JavaDoc.i
+
+if [ ! -d ${SIMPLEITK}/Wrapping/R/Packaging/SimpleITK/man/ ] ; then
+    mkdir -p ${SIMPLEITK}/Wrapping/R/Packaging/SimpleITK/man/
+fi
+${PYTHON_EXECUTABLE} doxyall.py -r ${SITK_BUILD_DIR}/Documentation/xml/ ${SIMPLEITK}/Wrapping/R/Packaging/SimpleITK/man/
diff --git a/Utilities/GenerateDocs/config_vars.sh b/Utilities/GenerateDocs/config_vars.sh
new file mode 100644
index 0000000..2440b87
--- /dev/null
+++ b/Utilities/GenerateDocs/config_vars.sh
@@ -0,0 +1,9 @@
+#! /bin/sh
+
+SIMPLEITK="${HOME}/src/SimpleITK"
+
+ITK_XML="${HOME}/temp/xml"
+
+SITK_BUILD_DIR="/dev/shm/SimpleITK/SimpleITK-build"
+
+PYTHON_EXECUTABLE="python"
diff --git a/Utilities/GenerateDocs/doxy2swig.py b/Utilities/GenerateDocs/doxy2swig.py
new file mode 100755
index 0000000..97ad529
--- /dev/null
+++ b/Utilities/GenerateDocs/doxy2swig.py
@@ -0,0 +1,736 @@
+#!/usr/bin/env python
+"""Doxygen XML to SWIG docstring converter.
+
+Converts Doxygen generated XML files into a file containing docstrings
+that can be used by SWIG-1.3.x.  Note that you need to get SWIG
+version > 1.3.23 or use Robin Dunn's docstring patch to be able to use
+the resulting output.
+
+Usage:
+
+  doxy2swig.py input.xml output.i
+
+input.xml is your doxygen generated XML file and output.i is where the
+output will be written (the file will be clobbered).
+
+"""
+
+# This code is implemented using Mark Pilgrim's code as a guideline:
+#   http://www.faqs.org/docs/diveintopython/kgp_divein.html
+#
+# Author: Prabhu Ramachandran
+# License: BSD style
+
+
+#  This version of the script originated from ITK/Wrapping/Generators/Doc/doxy2swig.py.
+#  My mods:
+#    self.multi is always 1 (0 was cutting lines improperly)
+#    added self.java to enable output for JavaDocs
+#
+#  Dave Chen
+
+from xml.dom import minidom
+import re
+import textwrap
+import sys
+import types
+import os.path
+
+
+def my_open_read(source):
+    if hasattr(source, "read"):
+        return source
+    else:
+        return open(source)
+
+def my_open_write(dest, mode='w'):
+    if hasattr(dest, "write"):
+        return dest
+    else:
+        return open(dest, mode)
+
+
+class Doxy2SWIG:
+    """Converts Doxygen generated XML files into a file containing
+    docstrings that can be used by SWIG-1.3.x that have support for
+    feature("docstring").  Once the data is parsed it is stored in
+    self.pieces.
+
+    """
+
+    def __init__(self, src, javaFlag=0):
+        """Initialize the instance given a source object (file or
+        filename).
+
+        """
+        f = my_open_read(src)
+        self.my_dir = os.path.dirname(f.name)
+        self.xmldoc = minidom.parse(f).documentElement
+        f.close()
+
+        self.pieces = []
+#        self.pieces.append('\n// File: %s\n'%os.path.basename(f.name))
+
+        self.space_re = re.compile(r'\s+')
+        self.lead_spc = re.compile(r'^(%feature\S+\s+\S+\s*?)"\s+(\S)')
+
+        self.java = javaFlag
+
+        # self.multi was 0, but it was cutting lines improperly -Dave Chen
+        self.multi = 1
+
+        self.ignores = ('inheritancegraph', 'param', 'listofallmembers',
+                        'innerclass', 'name', 'declname', 'incdepgraph',
+                        'invincdepgraph', 'programlisting', 'type',
+                        'references', 'referencedby', 'location',
+                        'collaborationgraph', 'reimplements',
+                        'reimplementedby', 'derivedcompoundref',
+                        'basecompoundref')
+        #self.generics = []
+
+        # flag to tell when we're inside a <simplesect> node with kind=="see".
+        self.insideSee = False
+
+    def generate(self):
+        """Parses the file set in the initialization.  The resulting
+        data is stored in `self.pieces`.
+
+        """
+        self.parse(self.xmldoc)
+
+    def parse(self, node):
+        """Parse a given node.  This function in turn calls the
+        `parse_<nodeType>` functions which handle the respective
+        nodes.
+
+        """
+        pm = getattr(self, "parse_%s"%node.__class__.__name__)
+        pm(node)
+
+    def parse_Document(self, node):
+        self.parse(node.documentElement)
+
+    def parse_Text(self, node):
+        txt = node.data
+        txt = txt.replace('\\', r'\\\\')
+        txt = txt.replace('"', r'\"')
+        # ignore pure whitespace
+        m = self.space_re.match(txt)
+        if m and len(m.group()) == len(txt):
+            pass
+        else:
+            #if we're in a "See" node and starting a new line, indent one space
+            if self.insideSee and len(self.pieces) and self.pieces[-1][-1] == '\n':
+                self.add_text(' ')
+            self.add_text(textwrap.fill(txt))
+
+    def parse_Element(self, node):
+        """Parse an `ELEMENT_NODE`.  This calls specific
+        `do_<tagName>` handers for different elements.  If no handler
+        is available the `generic_parse` method is called.  All
+        tagNames specified in `self.ignores` are simply ignored.
+
+        """
+        name = node.tagName
+        ignores = self.ignores
+        if name in ignores:
+            return
+        attr = "do_%s" % name
+        if hasattr(self, attr):
+            handlerMethod = getattr(self, attr)
+            handlerMethod(node)
+        else:
+            self.generic_parse(node)
+            #if name not in self.generics: self.generics.append(name)
+
+    def add_text(self, value):
+        """Adds text corresponding to `value` into `self.pieces`."""
+        if type(value) in (list, tuple):
+            self.pieces.extend(value)
+        else:
+            self.pieces.append(value)
+
+    def get_specific_nodes(self, node, names):
+        """Given a node and a sequence of strings in `names`, return a
+        dictionary containing the names as keys and child
+        `ELEMENT_NODEs`, that have a `tagName` equal to the name.
+
+        """
+        nodes = [(x.tagName, x) for x in node.childNodes \
+                 if x.nodeType == x.ELEMENT_NODE and \
+                 x.tagName in names]
+        return dict(nodes)
+
+    def generic_parse(self, node, pad=0):
+        """A Generic parser for arbitrary tags in a node.
+
+        Parameters:
+
+         - node:  A node in the DOM.
+         - pad: `int` (default: 0)
+
+           If 0 the node data is not padded with newlines.  If 1 it
+           appends a newline after parsing the childNodes.  If 2 it
+           pads before and after the nodes are processed.  Defaults to
+           0.
+
+        """
+        npiece = 0
+        if pad:
+            npiece = len(self.pieces)
+            if pad == 2:
+                self.add_text('\n')
+        for n in node.childNodes:
+            self.parse(n)
+        if pad:
+            if len(self.pieces) > npiece:
+                self.add_text('\n')
+
+    def space_parse(self, node):
+        """ Only output a space if the last character outputed was not a new line.
+            I.e., don't allow a line to lead with a space.
+        """
+	if len(self.pieces) and self.pieces[-1][-1] != '\n':
+          self.add_text(' ')
+        self.generic_parse(node)
+
+    # The handlers for all these node types get mapped to a space
+    do_ref = space_parse
+    do_ulink = space_parse
+    do_emphasis = space_parse
+    do_bold = space_parse
+    do_computeroutput = space_parse
+    do_formula = space_parse
+
+    def do_compoundname(self, node):
+        self.add_text('\n\n')
+        data = node.firstChild.data
+        if self.java:
+            self.add_text('%%typemap(javaimports) %s "/**\n'%data)
+        else:
+            self.add_text('%%feature("docstring") %s "\n'%data)
+
+    def do_compounddef(self, node):
+        kind = node.attributes['kind'].value
+        if kind in ('class', 'struct'):
+            prot = node.attributes['prot'].value
+            if prot != 'public':
+                return
+            names = ('compoundname', 'briefdescription',
+                     'detaileddescription', 'includes')
+            first = self.get_specific_nodes(node, names)
+            for n in names:
+                if n in first:
+                    self.parse(first[n])
+            if self.java:
+                self.add_text(['*/"','\n'])
+            else:
+                self.add_text(['";','\n'])
+            for n in node.childNodes:
+                if n not in list(first.values()):
+                    self.parse(n)
+        elif kind in ('file', 'namespace'):
+            nodes = node.getElementsByTagName('sectiondef')
+            for n in nodes:
+                self.parse(n)
+
+    def do_includes(self, node):
+        self.add_text('C++ includes: ')
+        self.generic_parse(node, pad=1)
+
+    def do_parameterlist(self, node):
+        self.add_text(['\n', '\n', 'Parameters:', '\n'])
+        self.generic_parse(node, pad=1)
+
+    def do_para(self, node):
+        self.add_text('\n')
+        self.generic_parse(node, pad=1)
+
+    def do_parametername(self, node):
+        self.add_text('\n')
+        self.add_text("%s: "%node.firstChild.data)
+
+    def do_parameterdefinition(self, node):
+        self.generic_parse(node, pad=1)
+
+    def do_detaileddescription(self, node):
+        self.generic_parse(node, pad=1)
+
+    def do_briefdescription(self, node):
+        self.generic_parse(node, pad=1)
+
+    def do_memberdef(self, node):
+        prot = node.attributes['prot'].value
+        id = node.attributes['id'].value
+        kind = node.attributes['kind'].value
+        tmp = node.parentNode.parentNode.parentNode
+        compdef = tmp.getElementsByTagName('compounddef')[0]
+        cdef_kind = compdef.attributes['kind'].value
+
+        if prot == 'public':
+            first = self.get_specific_nodes(node, ('definition', 'name'))
+            name = first['name'].firstChild.data
+            if name[:8] == 'operator': # Don't handle operators yet.
+                return
+
+            defn = first['definition'].firstChild.data
+            self.add_text('\n')
+            if self.java:
+                self.add_text('%javamethodmodifiers ')
+            else:
+                self.add_text('%feature("docstring") ')
+
+            anc = node.parentNode.parentNode
+            if cdef_kind in ('file', 'namespace'):
+                ns_node = anc.getElementsByTagName('innernamespace')
+                if not ns_node and cdef_kind == 'namespace':
+                    ns_node = anc.getElementsByTagName('compoundname')
+                if ns_node:
+                    ns = ns_node[0].firstChild.data
+                    if self.java:
+                        self.add_text(' %s::%s "/**\n%s'%(ns, name, defn))
+                    else:
+                        self.add_text(' %s::%s "\n'%(ns, name))
+                else:
+                    if self.java:
+                        self.add_text(' %s "/**\n%s'%(name, defn))
+                    else:
+                        self.add_text(' %s "\n'%(name))
+            elif cdef_kind in ('class', 'struct'):
+                # Get the full function name.
+                anc_node = anc.getElementsByTagName('compoundname')
+                cname = anc_node[0].firstChild.data
+                if self.java:
+                    self.add_text(' %s::%s "/**\n%s'%(cname, name, defn))
+                else:
+                    self.add_text(' %s::%s "\n'%(cname, name))
+
+            for n in node.childNodes:
+                if n not in list(first.values()):
+                    self.parse(n)
+            if self.java:
+              self.add_text(['*/\npublic ";', '\n'])
+            else:
+              self.add_text(['";', '\n'])
+
+    def do_definition(self, node):
+        data = node.firstChild.data
+        self.add_text('%s "\n%s'%(data, data))
+
+    def do_sectiondef(self, node):
+        kind = node.attributes['kind'].value
+        if kind in ('public-func', 'func'):
+            self.generic_parse(node)
+
+    def do_simplesect(self, node):
+        kind = node.attributes['kind'].value
+        if kind in ('date', 'rcs', 'version'):
+            pass
+        elif kind == 'warning':
+            self.add_text(['\n', 'WARNING:'])
+            self.generic_parse(node)
+        elif kind == 'see':
+            self.add_text('\n')
+            self.add_text('See:')
+            self.insideSee = True
+            self.generic_parse(node)
+            self.insideSee = False
+        else:
+            self.generic_parse(node)
+
+    def do_argsstring(self, node):
+        if self.java:
+            self.generic_parse(node, pad=1)
+
+    def do_member(self, node):
+        kind = node.attributes['kind'].value
+        refid = node.attributes['refid'].value
+        if kind == 'function' and refid[:9] == 'namespace':
+            self.generic_parse(node)
+
+    def do_doxygenindex(self, node):
+        self.multi = 1
+        comps = node.getElementsByTagName('compound')
+        for c in comps:
+            refid = c.attributes['refid'].value
+            fname = refid + '.xml'
+            if not os.path.exists(fname):
+                fname = os.path.join(self.my_dir,  fname)
+#            print "parsing file: %s"%fname
+            p = Doxy2SWIG(fname)
+            p.generate()
+            self.pieces.extend(self.clean_pieces(p.pieces))
+
+    def write(self, fname, mode='w'):
+        o = my_open_write(fname, mode)
+        if self.multi:
+            o.write("".join(self.pieces))
+        else:
+            o.write("".join(self.clean_pieces(self.pieces)))
+        o.close()
+
+    def clean_pieces(self, pieces):
+        """Cleans the list of strings given as `pieces`.  It replaces
+        multiple newlines by a maximum of 2 and returns a new list.
+        It also wraps the paragraphs nicely.
+
+        """
+        ret = []
+        count = 0
+        for i in pieces:
+            if i == '\n':
+                count = count + 1
+            else:
+                if i == '";':
+                    if count:
+                        ret.append('\n')
+                elif count > 2:
+                    ret.append('\n\n')
+                elif count:
+                    ret.append('\n'*count)
+                count = 0
+                ret.append(i)
+
+        _data = "".join(ret)
+        ret = []
+        for i in _data.split('\n\n'):
+            if i == 'Parameters:':
+                ret.extend(['Parameters:\n-----------', '\n\n'])
+            elif i.find('// File:') > -1: # leave comments alone.
+                ret.extend([i, '\n'])
+            else:
+                _tmp = textwrap.fill(i.strip())
+                _tmp = self.lead_spc.sub(r'\1"\2', _tmp)
+                ret.extend([_tmp, '\n\n'])
+        return ret
+
+
+class Doxy2R(Doxy2SWIG):
+    def __init__(self, src, javaFlag=0):
+        Doxy2SWIG.__init__(self, src, javaFlag)
+        """ Turns on the title, brief description and detailed description markup.
+        Turn them off when inside member documentatation.
+
+        """
+        self.FilterTitle = True
+        self.sitkClassName=''
+        self.EmptyText = False
+        self.dollarFormula = re.compile("^\\$(.+)\\$$")
+        self.arrayFormula = re.compile("^\\\\\\[(.+)\\\\\\]$")
+    def parse_Text(self, node):
+        txt = node.data
+        txt = txt.replace('\\', r'\\\\')
+        txt = txt.replace('"', r'\"')
+        # ignore pure whitespace
+        m = self.space_re.match(txt)
+        if m and len(m.group()) == len(txt):
+            # Flag the text being empty
+            self.EmptyText = True
+            pass
+        else:
+            self.add_text(textwrap.fill(txt))
+
+    def do_formula(self, node):
+        # need to apply different tags if it is $$ or \[
+        if len(self.pieces):
+            txt = node.firstChild.data
+            # does txt contain $
+            f1 = self.dollarFormula.match(txt)
+            f2 = self.arrayFormula.match(txt)
+            if f1 is not None:
+                self.add_text(' \\eqn{')
+                self.add_text(f1.group(1))
+            elif f2 is not None:
+                self.add_text(' \\deqn{')
+                self.add_text(f2.group(1))
+            else:
+                print("Unmatched formula")
+                print(txt)
+
+            self.add_text("}")
+
+    def do_compoundname(self, node):
+        self.add_text('\n\n')
+        data = node.firstChild.data
+        self.add_text('\\name{%s}\n'%data)
+        self.add_text('\\Rdversion{1.1}\n\\docType{class}\n')
+        self.sitkClassName=data
+
+    def do_compounddef(self, node):
+        kind = node.attributes['kind'].value
+        if kind in ('class', 'struct'):
+            prot = node.attributes['prot'].value
+            if prot != 'public':
+                return
+            names = ('compoundname', 'briefdescription',
+                     'detaileddescription', 'includes')
+            first = self.get_specific_nodes(node, names)
+            for n in names:
+                if n in first:
+                    self.parse(first[n])
+            for n in node.childNodes:
+                if n not in list(first.values()):
+                    self.parse(n)
+        elif kind in ('file', 'namespace'):
+            nodes = node.getElementsByTagName('sectiondef')
+            for n in nodes:
+                self.parse(n)
+
+    def do_includes(self, node):
+        self.add_text('%C++ includes: ')
+        self.generic_parse(node, pad=1)
+
+    def do_detaileddescription(self, node):
+        if self.FilterTitle:
+            self.add_text('\\details{')
+        self.generic_parse(node, pad=1)
+        if self.FilterTitle:
+            # check that we actually got a detailed description.
+            # Not having a title is illegal in R
+            # use the class name otherwise
+            self.add_text('}\n')
+    def do_briefdescription(self, node):
+        # there are brief descriptions all over the place and
+        # we don't want them all to be titles
+        if self.FilterTitle:
+            self.add_text('\\description{')
+        self.generic_parse(node, pad=0)
+        if self.FilterTitle:
+            # if the title is empty, then we'll use the name
+            if self.EmptyText:
+                self.add_text(self.sitkClassName)
+            self.add_text('}\n')
+        self.EmptyText = False
+
+    def do_memberdef(self, node):
+        prot = node.attributes['prot'].value
+        id = node.attributes['id'].value
+        kind = node.attributes['kind'].value
+        tmp = node.parentNode.parentNode.parentNode
+        compdef = tmp.getElementsByTagName('compounddef')[0]
+        cdef_kind = compdef.attributes['kind'].value
+
+        self.FilterTitle = False;
+
+        if prot == 'public':
+            first = self.get_specific_nodes(node, ('definition', 'name'))
+            name = first['name'].firstChild.data
+            if name[:8] == 'operator': # Don't handle operators yet.
+                return
+
+            defn = first['definition'].firstChild.data
+            self.add_text('\n')
+            self.add_text('\\item{')
+            anc = node.parentNode.parentNode
+            # don't need to worry about documenting these in sitk
+            if cdef_kind in ('file', 'namespace'):
+                ns_node = anc.getElementsByTagName('innernamespace')
+                if not ns_node and cdef_kind == 'namespace':
+                    ns_node = anc.getElementsByTagName('compoundname')
+                if ns_node:
+                    ns = ns_node[0].firstChild.data
+                    self.add_text('%s %s'%(name, defn))
+                    if self.java:
+                        self.add_text(' %s::%s "/**\n%s'%(ns, name, defn))
+                    else:
+                        self.add_text(' %s::%s "\n'%(ns, name))
+                else:
+                    self.add_text('YY %s TT %s'%(name, defn))
+                    if self.java:
+                        self.add_text(' %s "/**\n%s'%(name, defn))
+                    else:
+                        self.add_text(' %s "\n'%(name))
+            ## everything will be a class
+            elif cdef_kind in ('class', 'struct'):
+                # Get the full function name.
+                anc_node = anc.getElementsByTagName('compoundname')
+                cname = anc_node[0].firstChild.data
+                argstring = node.getElementsByTagName('argsstring')[0]
+                arguments = argstring.firstChild.data
+                returnType = node.getElementsByTagName('type')[0]
+                if returnType.firstChild == None:
+                    returnType = ''
+                else:
+                    ## search through the return type - 2 levels should be enough
+                    ## usually there's a link around it.
+                    if returnType.firstChild.firstChild != None:
+                        returnType = returnType.firstChild.firstChild.nodeValue
+                    else:
+                        returnType = returnType.firstChild.nodeValue
+
+                self.add_text('%s %s%s:}{'%(returnType, name, arguments))
+
+            for n in node.childNodes:
+                if n not in list(first.values()):
+                    self.parse(n)
+            self.add_text('}\n')
+            self.FilterTitle=True;
+
+    def do_sectiondef(self, node):
+        kind = node.attributes['kind'].value
+        if kind in ('public-func', 'func'):
+            self.add_text('\\section{Methods}{\n\describe{')
+            self.generic_parse(node)
+            self.add_text('}\n}\n')
+
+    def do_doxygenindex(self, node):
+        self.multi = 1
+        comps = node.getElementsByTagName('compound')
+        for c in comps:
+            refid = c.attributes['refid'].value
+            fname = refid + '.xml'
+            if not os.path.exists(fname):
+                fname = os.path.join(self.my_dir,  fname)
+#            print "parsing file: %s"%fname
+            p = Doxy2R(fname)
+            p.generate()
+            self.pieces.extend(self.clean_pieces(p.pieces))
+
+## For the procedural interface
+## This will produce multiple Rd files, and is therefore
+## quite different to the others
+## Text is now stored in piecesdict
+## add_text uses a variable to track the name
+
+class Doxy2RProc(Doxy2SWIG):
+    def __init__(self, src, javaFlag=0):
+        Doxy2SWIG.__init__(self, src, javaFlag)
+        """ Turns on the title, brief description and detailed description markup.
+        Turn them off when inside member documentatation.
+
+        """
+        self.FilterTitle = True
+        self.EmptyText = False
+        self.piecesdict = dict()
+        self.currentFunc=''
+        self.Usage=dict()
+
+    def parse_Text(self, node):
+        txt = node.data
+        txt = txt.replace('\\', r'\\\\')
+        txt = txt.replace('"', r'\"')
+        # ignore pure whitespace
+        m = self.space_re.match(txt)
+        if m and len(m.group()) == len(txt):
+            # Flag the text being empty
+            self.EmptyText = True
+            pass
+        else:
+            self.add_text(textwrap.fill(txt))
+
+    def add_text(self, value):
+        """Adds text corresponding to `value` into `self.pieces`."""
+        if not self.currentname in self.piecesdict:
+            self.piecesdict[self.currentname]=[]
+        if type(value) in (list, tuple):
+            self.piecesdict[self.currentname].extend(value)
+        else:
+            self.piecesdict[self.currentname].append(value)
+
+
+    def do_includes(self, node):
+        self.add_text('%C++ includes: ')
+        self.generic_parse(node, pad=1)
+
+    def do_detaileddescription(self, node):
+        if self.FilterTitle:
+            self.add_text('\\details{')
+        self.generic_parse(node, pad=1)
+        if self.FilterTitle:
+            # check that we actually got a detailed description.
+            # Not having a title is illegal in R
+            # use the class name otherwise
+            self.add_text('}\n')
+    def do_briefdescription(self, node):
+        # there are brief descriptions all over the place and
+        # we don't want them all to be titles
+        if self.FilterTitle:
+            self.add_text('\\description{')
+        self.generic_parse(node, pad=0)
+        if self.FilterTitle:
+            # if the title is empty, then we'll use the name
+            if self.EmptyText:
+                self.add_text(self.sitkClassName)
+            self.add_text('}\n')
+        self.EmptyText = False
+
+    def do_memberdef(self, node):
+        prot = node.attributes['prot'].value
+        id = node.attributes['id'].value
+        kind = node.attributes['kind'].value
+        tmp = node.parentNode.parentNode.parentNode
+        compdef = tmp.getElementsByTagName('compounddef')[0]
+        cdef_kind = compdef.attributes['kind'].value
+
+        self.FilterTitle = False;
+
+        if prot == 'public':
+            first = self.get_specific_nodes(node, ('definition', 'name'))
+            name = first['name'].firstChild.data
+            if name[:8] == 'operator': # Don't handle operators yet.
+                return
+            # names are overloaded, of course, and need
+            # to be collected into the same R file
+            defn = first['definition'].firstChild.data
+            anc = node.parentNode.parentNode
+            # need to worry about documenting these for the procedural interface
+            # We want to document overloaded names in the same file,
+            # which means we'll need to store a map of individual
+            # file contents
+            if cdef_kind in ('namespace'):
+                # do we already have something by this name
+                self.currentname=name
+                others = self.get_specific_nodes(node, ('argsstring', 'briefdescription',
+                                                        'detaileddescription'))
+                argstring = others['argsstring'].firstChild.data
+                if not name in self.piecesdict:
+                    # first time we've hit this name, so add the name, alias and title
+                    self.add_text('\\title{%s}\n' %(name))
+                    self.add_text('\\name{%s}\n' %(name))
+                    self.add_text('\\alias{%s}\n' %(name))
+                    self.add_text('\\description{\n')
+                    self.generic_parse(others['briefdescription'])
+                    self.add_text('\n}\n\n')
+                    self.add_text('\\details{\n')
+                    self.generic_parse(others['detaileddescription'])
+                    self.add_text('\n}\n\n')
+
+                # now the potentially repeated bits (overloading)
+                # Rd doesn't allow multiple usage statements, so
+                # collect them
+                usage=defn + argstring
+                if not name in self.Usage:
+                    self.Usage[self.currentname]=""
+
+                self.Usage[self.currentname] = self.Usage[self.currentname] + '\n\n' + usage
+
+    def do_sectiondef(self, node):
+        kind = node.attributes['kind'].value
+        if kind in ('public-func', 'func'):
+            self.generic_parse(node)
+
+    def write(self, fname, mode='w'):
+        ## fname is the destination folder
+        if os.path.isdir(fname):
+            for FuncName in self.piecesdict:
+                outname=os.path.join(fname, FuncName + ".Rd")
+                ## add the usage to the end
+                if FuncName in self.Usage:
+                    self.currentname=FuncName
+                    usage = '\\usage{\n%s\n}\n' % self.Usage[FuncName]
+                    self.add_text(usage)
+                self.pieces = self.piecesdict[FuncName]
+                Doxy2SWIG.write(self,outname)
+        else:
+            assert False, "Destination path doesn't exist"
+
+def main(input, output):
+    p = Doxy2SWIG(input)
+    p.generate()
+    p.write(output)
+
+if __name__ == '__main__':
+    if len(sys.argv) != 3:
+        print (__doc__)
+        sys.exit(1)
+    main(sys.argv[1], sys.argv[2])
diff --git a/Utilities/GenerateDocs/doxyall.py b/Utilities/GenerateDocs/doxyall.py
new file mode 100755
index 0000000..aa01090
--- /dev/null
+++ b/Utilities/GenerateDocs/doxyall.py
@@ -0,0 +1,150 @@
+
+#!/usr/bin/env python
+
+
+import glob, os, getopt, sys, tempfile
+from doxy2swig import *
+
+
+def usage():
+    print( "\ndoxyall.py [options] doxygen_xml_dir output.i|output_directory" )
+    print( "" )
+    print( "     -h, --help    This help message" )
+    print( "     -j, --java    Java style output" )
+    print( "     -r, --R       R style output - note that output directory must be specified for R" )
+    print( "" )
+
+
+javaFlag = 0
+rFlag = 0
+
+try:
+    opts, args = getopt.getopt(sys.argv[1:], "hjr", [ "help", "java", "R" ] )
+except getopt.GetoptErr, err:
+    print( str(err) )
+    usage()
+    sys.exit(1)
+
+for o, a in opts:
+    if o in ("-h", "--help"):
+        usage()
+        sys.exit()
+    elif o in ("-j", "--java"):
+        javaFlag = 1
+    elif o in ("-r", "--R"):
+        rFlag = 1
+    else:
+        assert False, "Unhandled option"
+
+
+if len(args) < 2:
+    usage()
+    exit(1);
+
+indir = args[0]
+outfile = args[1]
+
+if rFlag:
+    outdir = args[1]
+
+files = glob.glob(indir+"/*.xml")
+files.sort()
+
+tmpfd, tmpfile = tempfile.mkstemp(suffix=".i", text=True)
+#tmpfile = "/tmp/doxyall." + str(os.getpid()) + ".i"
+
+logfd, logfile = tempfile.mkstemp(suffix=".txt", prefix="doxyall.", text=True)
+
+if not rFlag:
+    fout = open(outfile, "w")
+
+flog = open(logfile, "w")
+
+flog.write("tempfile: " + tmpfile + "\n")
+errorCount = 0
+
+for x in files:
+
+# exclude the index file and tcl files.  the xml parse chokes on them
+    if x.find("index")>=0 or x.find("tcl")>=0:
+        continue
+
+    flog.write("Processing " + x + "\n")
+
+    try:
+        if (rFlag):
+            p = Doxy2R(x)
+        else:
+            p = Doxy2SWIG(x, javaFlag)
+
+        p.generate()
+        p.write(tmpfile)
+
+        if (rFlag):
+            ThisClassName = p.sitkClassName;
+            # also exclude ones starting with detail or that are template instantiations
+            if ThisClassName.find("detail::") >=0 or ThisClassName.find("<") >=0:
+                continue
+
+            ThisClassName = ThisClassName.replace("itk::simple::", "")
+            ThisClassName = ThisClassName.replace("itk::Functor::", "")
+            ## Get rid of the ITK classes
+            if ThisClassName.find("itk::") >=0 or ThisClassName.find("<") >=0:
+                continue
+
+            outfile=outdir + "/" + ThisClassName + ".Rd"
+            fout = open(outfile, "w")
+
+
+
+        fin = open(tmpfile, "r")
+
+        for line in fin:
+            if (rFlag):
+                if line in ('\n', '\r\n'):
+                    continue
+                line2 = line.replace("itk::simple::detail::", "")
+                line2 = line.replace("itk::simple::", "")
+            else:
+                line2 = line.replace("itk::simple::detail::", "itk::simple::")
+            line2 = line2.rstrip()
+            fout.write(line2)
+            fout.write('\n')
+            if (rFlag):
+                ## Need to duplicate the name entry to alias
+                if line2.find("\\name{") >= 0:
+                    line3=line2.replace("\\name{", "\\alias{")
+                    line4=line2.replace("\\name{", "\\title{")
+                    fout.write(line3)
+                    fout.write('\n')
+                    fout.write(line4)
+                    fout.write('\n')
+
+        if (rFlag):
+            fout.close()
+        fin.close()
+    except:
+        flog.write( "Error on file " + x + "\n")
+        print( "Error on file " + x + "\n")
+        errorCount = errorCount+1
+if ( not rFlag):
+    fout.close()
+
+flog.close()
+
+# the procedural interface
+if rFlag:
+    nspacefile=os.path.join(indir, "namespaceitk_1_1simple.xml")
+    p = Doxy2RProc(nspacefile)
+    p.generate()
+    p.write(outdir)
+
+os.close(tmpfd)
+os.close(logfd)
+
+if errorCount==0:
+    os.remove(tmpfile)
+    os.remove(logfile)
+    print ("doxyall.py generated " + args[1])
+else:
+    print ("Warning: doxyall.py had " + str(errorCount) + "errors.  Log in " + logfile)
diff --git a/Utilities/Git/git-gerrit-push b/Utilities/Git/git-gerrit-push
new file mode 100755
index 0000000..bd4e80d
--- /dev/null
+++ b/Utilities/Git/git-gerrit-push
@@ -0,0 +1,79 @@
+#!/usr/bin/env bash
+#==========================================================================
+#
+#   Copyright Insight Software Consortium
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#          http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#==========================================================================*/
+
+USAGE="[<remote>] [--no-topic] [--dry-run] [--]"
+OPTIONS_SPEC=
+SUBDIRECTORY_OK=Yes
+. "$(git --exec-path)/git-sh-setup"
+
+egrep-q() {
+  egrep "$@" >/dev/null 2>/dev/null
+}
+
+remote=''
+refspecs=''
+no_topic=''
+dry_run=''
+
+# Parse command line options.
+while test $# != 0; do
+  case "$1" in
+    --no-topic)  no_topic=1 ;;
+    --dry-run)   dry_run=--dry-run ;;
+    --) shift; break ;;
+    -*) usage ;;
+    *) test -z "$remote" || usage ; remote="$1" ;;
+  esac
+  shift
+done
+test $# = 0 || usage
+
+# Default remote.
+test -n "$remote" || remote="gerrit"
+
+if test -z "$no_topic"; then
+  # Identify and validate the topic branch name.
+  topic="$(git symbolic-ref HEAD | sed -e 's|^refs/heads/||')"
+  if test "$topic" = "master"; then
+    die 'Please name your topic:
+  git checkout -b descriptive-name'
+  fi
+  # The topic branch will be pushed by name.
+  refspecs="HEAD:refs/for/master/$topic $refspecs"
+fi
+
+# Fetch the current upstream master branch head.
+# This helps computation of a minimal pack to push.
+echo "Fetching $remote master"
+fetch_out=$(git fetch "$remote" master 2>&1) || die "$fetch_out"
+master=$(git rev-parse FETCH_HEAD) || exit
+
+# Exit early if we have nothing to push.
+if test -z "$refspecs"; then
+  echo 'Nothing to push!'
+  exit 0
+fi
+
+# Push.  Save output and exit code.
+echo "Pushing to $remote"
+push_stdout=$(git push --porcelain $dry_run "$remote" $refspecs); push_exit=$?
+echo "$push_stdout"
+
+# Reproduce the push exit code.
+exit $push_exit
diff --git a/Utilities/Hooks/pre-commit b/Utilities/Hooks/pre-commit
new file mode 100755
index 0000000..a7b910d
--- /dev/null
+++ b/Utilities/Hooks/pre-commit
@@ -0,0 +1,107 @@
+#!/usr/bin/env bash
+#==========================================================================
+#
+#   Copyright Insight Software Consortium
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#          http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#==========================================================================*/
+
+egrep-q() {
+  egrep "$@" >/dev/null 2>/dev/null
+}
+
+die() {
+  echo 'pre-commit hook failure' 1>&2
+  echo '-----------------------' 1>&2
+  echo '' 1>&2
+  echo "$@" 1>&2
+  exit 1
+}
+
+#-----------------------------------------------------------------------------
+
+# Check that developmer setup is up-to-date.
+lastSetupForDevelopment=$(git config --get hooks.SetupForDevelopment || echo 0)
+eval $(grep '^SetupForDevelopment_VERSION=' "${BASH_SOURCE%/*}/../SetupForDevelopment.sh")
+test -n "$SetupForDevelopment_VERSION" || SetupForDevelopment_VERSION=0
+if test $lastSetupForDevelopment -lt $SetupForDevelopment_VERSION; then
+  die 'Developer setup in this work tree is out of date.  Please re-run
+
+  Utilities/SetupForDevelopment.sh
+'
+fi
+
+#-----------------------------------------------------------------------------
+# Check files added by commit
+
+added=$(git diff-index --diff-filter=A --cached HEAD --)
+added_normal=$(echo "$added" | grep -v '^:...... 160000')
+added_module=$(echo "$added" | grep    '^:...... 160000')
+
+# Do not allow adding of files with .txx extension.
+added_txx=$(echo "$added_normal" | grep '\.txx$')
+bad=$(
+  test -n "$added_txx" &&
+  echo "Files with the .txx extension are deprecated -- please use .hxx instead:" &&
+  echo "$added_txx" | awk '{printf("  %s\n",$6)}'
+)
+test -z "$bad" || die "$bad"
+
+# Do not allow addition of submodules.
+bad=$(
+  test -n "$added_module" &&
+  echo "Submodules may not be added to SimpleITK at this time:" &&
+  echo "$added_module" | awk '{printf("  %s\n",$6)}'
+)
+test -z "$bad" || die "$bad"
+
+#-----------------------------------------------------------------------------
+# Style hooks.
+. "${BASH_SOURCE%/*}/pre-commit-style.bash"
+
+# Validate json files
+validate_json() {
+    changes=$(git diff-files -- "$1") &&
+    if test -n "$changes"; then
+        die "Cannot validate '$1' with work tree changes."
+    fi &&
+    out=$($python_exe -c "import sys, json; json.load( open( sys.argv[1], 'r' ) )" "$1" 2>&1) || die "JSON Validation error with \"$file\".
+$out"
+}
+
+json_files=$(git diff-index --cached HEAD --diff-filter=AM ) &&
+if test -n "$json_files"; then
+    validate=$(git config --get --bool hooks.ValidateJSON || echo true) &&
+    if test "$validate" = "true"; then
+        python_exe=$(git config hooks.python || type -p python) &&
+        if test -z "$python_exe"; then
+            die 'Cannont validate SimpleITK JSON files with out Python.
+Configure the Python location with:
+
+  git config hooks.python "/path/to/python"
+
+It is NOT recommended to disable this check with:
+
+  git config hooks.validatejson false
+'
+        fi
+        echo "$json_files" |
+        while read src_mode dst_mode src_obj dst_obj status file; do
+            if echo "$file" | egrep-q '\.json$'; then
+                echo "validating $file"
+                validate_json "$file"
+            fi
+        done
+    fi
+fi
diff --git a/Utilities/Hooks/pre-commit-style.bash b/Utilities/Hooks/pre-commit-style.bash
new file mode 100644
index 0000000..a59de64
--- /dev/null
+++ b/Utilities/Hooks/pre-commit-style.bash
@@ -0,0 +1,266 @@
+#=============================================================================
+# Copyright 2010-2011 Kitware, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#=============================================================================
+
+# Run uncrustify and KWStyle pre-commit hooks.
+#
+# 'git config' is used to enable the hooks and set their configuration files.
+# The repository .gitattributes must also enable the hooks on the targeted
+# files.
+
+do_KWStyle=$(git config --bool hooks.KWStyle) || do_KWStyle=false
+
+do_uncrustify=$(git config --bool hooks.uncrustify) || do_uncrustify=false
+
+#-----------------------------------------------------------------------------
+# Check if we want to run the style on a given file.  Uses git attributes.  If
+# the hook.style attribute is set, then all styles are executed.  If the
+# hook.style attribute is set to a value, only the values given are executed.
+# Also, do not run the style check if there are unstaged changes in the file.
+# The first positional parameter is the file to check.
+# The second positional parameter is the style to check.
+# Returns 0 for execute, 1 for don't execute.
+run_style_on_file() {
+  # Do not run on submodule changes.
+  if git diff-index --cached HEAD -- "$1" | grep -q '^:...... 160000'; then
+    return 1
+  fi
+  if ! git diff-files --quiet -- "$1"; then
+    # A way to always allow skipping.
+    skip_unstaged=$(git config --bool hooks.styleSkipUnstaged) ||
+    skip_unstaged=false
+    file_sha=$(git diff-index --cached --abbrev=7 HEAD -- "$1" | \
+    awk '{print substr($3,1,9) substr($4,1,7)}')
+    if file_skip_unstaged=$(git config "hooks.$1.styleSkipUnstaged"); then
+      if test ",$file_skip_unstaged," = ",$file_sha," -o \
+        ",$file_skip_unstaged," = ",true,"; then
+        skip_unstaged=true
+      fi
+    fi
+
+    if $skip_unstaged; then
+      echo "The file '$1' contains unstaged stages.  Skipping style \
+check '$2'."
+    else
+      die "Style check '$2' cannot run on '$1' with unstaged stages.
+
+Allow skipping the style check for this commit with
+
+  git config \"hooks.$1.styleSkipUnstaged\" $file_sha"
+    fi
+    return 1
+  fi
+  style=$(git check-attr hooks.style -- "$1" |
+      sed 's/^[^:]*: hooks.style: //')
+  case "$style" in
+    'unset')        return 1 ;;
+    'set')          return 0 ;;
+    'unspecified')  return 1 ;;
+    *)              echo ",$style," | grep -iq ",$2," && return 0 ;;
+  esac
+  return 1
+}
+
+#-----------------------------------------------------------------------------
+# KWStyle.
+check_for_KWStyle() {
+  KWStyle_path=$(git config hooks.KWStyle.path) ||
+  KWStyle_path=$(which KWStyle)
+  if [ $? != 0 ] ; then
+    echo "KWStyle executable was not found.
+
+  No style verification will be performed with KWStyle!
+
+Please install KWStyle or set the executable location with
+
+  git config hooks.KWStyle.path /path/to/KWStyle
+
+See http://public.kitware.com/KWStyle/
+" >&2
+    return 1
+  fi
+  KWStyle_conf=$(git config hooks.KWStyle.conf)
+  if ! test -f "$KWStyle_conf"; then
+    die "The file '$KWStyle_conf' does not exist.
+
+Please run
+
+  git config hooks.KWStyle.conf path/to/KWStyle.conf.xml"
+  fi
+  KWStyle_overWriteRulesConf=$(git config hooks.KWStyle.overwriteRulesConf)
+  if test $? -eq 0 && ! test -f "$KWStyle_overWriteRulesConf"; then
+    die "The hooks.KWStyle.overwriteRulesConf file '$KWStyle_overWriteRulesConf' does not exist."
+  fi
+}
+
+run_KWStyle_on_file() {
+  if test -z "$KWStyle_overWriteRulesConf"; then
+    "$KWStyle_path" -v -xml "$KWStyle_conf" "$1"
+  else
+    "$KWStyle_path" -v -xml "$KWStyle_conf" -o "$KWStyle_overWriteRulesConf" "$1"
+  fi
+
+  if test $? -ne 0; then
+    cp -- "$1"{,.kws}
+    die "KWStyle check failed.
+
+Line numbers in the errors shown refer to the file:
+${1}.kws"
+  fi
+}
+
+run_KWStyle() {
+  git diff-index --cached --diff-filter=ACMR --name-only HEAD -- |
+  while read f; do
+    if run_style_on_file "$f" KWStyle; then
+      run_KWStyle_on_file "$f"
+    fi || return
+  done
+}
+
+#-----------------------------------------------------------------------------
+# uncrustify.
+check_for_uncrustify() {
+  uncrustify_path=$(git config hooks.uncrustify.path) ||
+  uncrustify_path=$(which uncrustify) ||
+  die "uncrustify executable was not found.
+
+Please install uncrustify or set the executable location with
+
+  git config hooks.uncrustify.path /path/to/uncrustify
+
+  See http://uncrustify.sourceforge.net/"
+
+  uncrustify_conf=$(git config hooks.uncrustify.conf)
+  if ! test -f "$uncrustify_conf"; then
+    die "The file '$uncrustify_conf' does not exist.
+
+Please run
+
+  git config hooks.uncrustify.conf path/to/uncrustify.conf"
+  fi
+}
+
+run_uncrustify_on_file() {
+  MERGED="$1"
+  if run_style_on_file "$MERGED" uncrustify; then
+    ext="$$$(expr "$MERGED" : '.*\(\.[^/]*\)$')"
+    BACKUP="./$MERGED.BACKUP.$ext"
+    LOCAL="./$MERGED.STAGED.$ext"
+    REMOTE="./$MERGED.UNCRUSTIFY.$ext"
+    NEW_MERGED="./$MERGED.NEW.$ext"
+    OLD_MERGED="$MERGED"
+
+    mv -- "$MERGED" "$BACKUP"
+    # We temporarily change MERGED because the file might already be open, and
+    # the text editor may complain.
+    MERGED="$NEW_MERGED"
+    cp -- "$BACKUP" "$MERGED"
+    cp -- "$BACKUP" "$LOCAL"
+
+    if ! "$uncrustify_path" -c "$uncrustify_conf" -f "$LOCAL" \
+      -o "$REMOTE" 2> /dev/null; then
+      mv -- "$BACKUP" "$OLD_MERGED"
+
+      if test "$merge_keep_temporaries" = "false"; then
+        rm -f -- "$LOCAL" "$REMOTE" "$BACKUP"
+      fi
+
+      die "error when running uncrustify on $OLD_MERGED"
+    fi
+
+    if test $(git hash-object -- "$LOCAL") != $(git hash-object -- "$REMOTE") &&
+      ! run_merge_tool "$merge_tool" "false" </dev/tty; then
+      mv -- "$BACKUP" "$OLD_MERGED"
+
+      if test "$merge_keep_temporaries" = "false"; then
+        rm -f -- "$LOCAL" "$REMOTE" "$BACKUP" "$NEW_MERGED"
+      fi
+
+      die "uncrustify merge of $OLD_MERGED failed"
+    fi
+
+    mv -- "$NEW_MERGED" "$OLD_MERGED"
+    MERGED="$OLD_MERGED"
+
+    if test "$merge_keep_backup" = "true"; then
+      mv -- "$BACKUP" "$MERGED.orig"
+    else
+      rm -- "$BACKUP"
+    fi
+
+    git add -- "$MERGED"
+    rm -f -- "$LOCAL" "$REMOTE" "$BACKUP"
+
+  fi # end if run uncrustify on file
+
+  if $do_KWStyle &&
+    $have_KWStyle &&
+    run_style_on_file "$MERGED" KWStyle
+  then
+    run_KWStyle_on_file "$MERGED"
+  else
+    return 0
+  fi
+}
+
+run_uncrustify() {
+  $do_KWStyle && check_for_KWStyle
+  if test $?; then
+    have_KWStyle=false
+  else
+    have_KWStyle=true
+  fi
+
+  merge_tool=$(get_merge_tool "$merge_tool") || die "Merge tool not configured.
+
+Set the merge tool with
+
+  git config merge.tool <toolname>
+
+For more information, see
+
+  git help mergetool"
+  merge_keep_backup="$(git config --bool mergetool.keepBackup || echo true)"
+  merge_keep_temporaries="$(git config --bool mergetool.keepTemporaries || echo false)"
+  git diff-index --cached --diff-filter=ACMR --name-only HEAD -- |
+  while read MERGED; do
+    run_uncrustify_on_file "$MERGED" || return
+  done # end for changed files
+}
+
+# Do not run during merge commits for now.
+if test -f "$GIT_DIR/MERGE_HEAD"; then
+  :
+elif $do_uncrustify; then
+  # We use git-mergetool settings to review the uncrustify changes.
+  TOOL_MODE=merge
+  . "$(git --exec-path)/git-mergetool--lib"
+  # Redefine check_unchanged because we do not need to check if the merge was
+  # successful.
+  check_unchanged() {
+    status=0
+  }
+  check_for_uncrustify
+  run_uncrustify || exit 1
+# do_uncrustify will run KWStyle on the files incrementally so excessive
+# uncrustify merges do not have to occur.
+elif $do_KWStyle; then
+  if check_for_KWStyle; then
+    run_KWStyle || exit 1
+  fi
+fi
+
+# vim: set filetype=sh tabstop=8 softtabstop=8 shiftwidth=8 noexpandtab :
diff --git a/Utilities/Hooks/prepare-commit-msg b/Utilities/Hooks/prepare-commit-msg
new file mode 100755
index 0000000..093e039
--- /dev/null
+++ b/Utilities/Hooks/prepare-commit-msg
@@ -0,0 +1,47 @@
+#!/usr/bin/env bash
+#==========================================================================
+#
+#   Copyright Insight Software Consortium
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#          http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#==========================================================================*/
+
+egrep-q() {
+  egrep "$@" >/dev/null 2>/dev/null
+}
+
+# First argument is file containing commit message.
+commit_msg="$1"
+
+# Check for our extra instructions.
+egrep-q "^# Start SimpleITK commit messages" -- "$commit_msg" && return 0
+
+# Insert our extra instructions.
+commit_msg_tmp="$commit_msg.$$"
+instructions='#\
+# Standard SimpleITK commit message prefix (follow with a space):\
+#   BUG:    - fix for runtime crash or incorrect result\
+#   COMP:   - compiler error or warning fix\
+#   DOC:    - documentation change\
+#   ENH:    - new functionality\
+#   PERF:   - performance improvement\
+#   STYLE:  - no logic impact (indentation, comments)\
+#   WIP:    - Work In Progress not ready for merge\
+#' &&
+sed '/^# On branch.*$/ a\
+'"$instructions"'
+/^# Not currently on any branch.*$/ a\
+'"$instructions"'
+' "$commit_msg" > "$commit_msg_tmp" &&
+mv "$commit_msg_tmp" "$commit_msg"
diff --git a/Utilities/JSON/JSONBeautify.py b/Utilities/JSON/JSONBeautify.py
new file mode 100755
index 0000000..4fb985e
--- /dev/null
+++ b/Utilities/JSON/JSONBeautify.py
@@ -0,0 +1,25 @@
+#!/usr/bin/env python
+import json
+import sys
+try:
+    from collections import OrderedDict
+except ImportError:
+    import ordereddict as OrderedDict
+
+# This script takes one argument the name of a json file.
+#
+
+
+fname = sys.argv[1]
+
+print "Processing ", fname
+
+fp = file( fname, "r" )
+j = json.load( fp,object_pairs_hook=OrderedDict )
+fp.close()
+
+
+fp = file( fname, "w" )
+json.dump( j, fp, indent=2, separators=(',',' : ') )
+print  >>fp, ""
+fp.close()
diff --git a/Utilities/JSON/JSONInputAtoInputs.py b/Utilities/JSON/JSONInputAtoInputs.py
new file mode 100755
index 0000000..2700962
--- /dev/null
+++ b/Utilities/JSON/JSONInputAtoInputs.py
@@ -0,0 +1,56 @@
+#!/usr/bin/env python
+import json
+import sys
+import collections
+
+# this script takes one argument the name of a json file.
+# it converts the old style "inputA", "inputB" to the new style
+# "inputs[]" for the testing fields in the json. Example of the change
+# below:
+
+#   "tests" : [ {
+#    "tag" : "2d",
+#    "description" : "2D",
+#    "inputA" : "Input/STAPLE1.png",
+#    "inputB" : "Input/STAPLE2.png",
+#    "settings" : [ ],
+#    "md5hash" : "bc458a17e18c79ae767e8be47451d1b4"
+#  } ...
+
+#  "tests" : [
+#    {
+#      "tag" : "2d",
+#      "description" : "2D",
+#      "settings" : [],
+#      "md5hash" : "bc458a17e18c79ae767e8be47451d1b4",
+#      "inputs" : [
+#        "Input/STAPLE1.png",
+#        "Input/STAPLE2.png"
+#      ]
+#    }
+
+fname = sys.argv[1]
+
+print "Processing ", fname
+
+fp = file( fname, "r" )
+j = json.load( fp,object_pairs_hook=collections.OrderedDict )
+fp.close()
+
+for test in j["tests"]:
+    inputs = []
+    if "inputA" in test:
+        inputs.append( test["inputA"] )
+        del test["inputA"]
+
+    if "inputB" in test:
+        inputs.append( test["inputB"] )
+        del test["inputB"]
+
+    if( len( inputs ) ):
+       test["inputs"] = inputs
+
+
+fp = file( fname, "w" )
+json.dump( j, fp, indent=2, separators=(',',' : ') )
+fp.close()
diff --git a/Utilities/JSON/JSONUpdateITKModules.py b/Utilities/JSON/JSONUpdateITKModules.py
new file mode 100755
index 0000000..ca9e55b
--- /dev/null
+++ b/Utilities/JSON/JSONUpdateITKModules.py
@@ -0,0 +1,102 @@
+#!/usr/bin/env python
+"""
+Add and update the "itk_module" and "itk_group" fields in the
+SimpleITK json file based on ITK source directory.
+"""
+
+import os, sys
+import re
+import json, collections
+
+
+def IncludesToPaths(path):
+  """Build a dict that maps include files to paths"""
+
+  includeToPath = dict()
+  prog = re.compile(r"(itk.*\.h)")
+  for root, dirs, files in os.walk(path):
+      for f in files:
+          if prog.match(f):
+              includeFile = prog.findall(f)[0]
+              parts = root.split("/")
+              module = parts[len(parts)-3] + parts[len(parts)-2]
+              includeToPath[includeFile] = module
+  return includeToPath
+
+def FindModules(path):
+    """Build a dict that maps paths to modules"""
+
+    pathToModule = dict()
+    fileProg = re.compile(r"itk-module.cmake")
+    moduleProg = re.compile('.*itk_module[^(]*\(([^ \n]*)',re.S)
+    for root, dirs, files in os.walk(path):
+        for f in files:
+            if fileProg.match(f):
+                fid = open(root + "/" + f,"r")
+                contents = fid.read()
+                m = moduleProg.match(contents)
+                if m:
+                    moduleName = m.group(1)
+                    parts = root.split("/")
+                    pathToModule[parts[len(parts)-2] + parts[len(parts)-1]] = moduleName
+                fid.close()
+    return pathToModule
+
+def FindGroups(path):
+    """Build a dict that maps paths to groups"""
+
+    pathToGroups = dict()
+    fileProg = re.compile(r"itk-module.cmake")
+    moduleProg = re.compile('.*itk_module[^(]*\(([^ \n]*)',re.S)
+    for root, dirs, files in os.walk(path):
+        for f in files:
+            if fileProg.match(f):
+                fid = open(root + "/" + f,"r")
+                contents = fid.read()
+                m = moduleProg.match(contents)
+                if m:
+                    groupName = os.path.basename(root)
+                    parts = root.split("/")
+                    pathToGroups[parts[len(parts)-2] + parts[len(parts)-1]] = groupName
+                fid.close()
+    return pathToGroups
+
+
+pathToITK="/home/blowekamp/src/ITK"
+
+# Generate dict's for mapping includes to modules
+includesToPaths = IncludesToPaths(pathToITK + "/Modules")
+pathsToModules = FindModules(pathToITK+"/Modules")
+pathsToGroups = FindGroups(pathToITK+"/Modules")
+
+# Test to see if ITK source is provided
+if len(pathsToModules) == 0:
+    print program + ": " + pathToITK + " is not an ITK source directory. It does not contain any itk-module.cmake files."
+    exit(1)
+
+
+
+for fname in sys.argv[1:]:
+
+  print "Processing ", fname
+
+  fp = file( fname, "r" )
+  j = json.load( fp,object_pairs_hook=collections.OrderedDict )
+  fp.close()
+
+  if "itk_name" in j:
+    inc=j["itk_name"]
+  else:
+    inc=j["name"]
+
+  inc="itk"+inc+".h"
+
+  if inc in includesToPaths:
+    module = includesToPaths[inc]
+    j["itk_module"]=pathsToModules[includesToPaths[inc]]
+    j["itk_group"]=pathsToGroups[includesToPaths[inc]]
+
+    with file( fname, "w" ) as fp:
+      json.dump( j, fp, indent=2, separators=(',',' : ') )
+  else:
+    print "Unable to find include:",inc
diff --git a/Utilities/JSON/JSONValidate.py b/Utilities/JSON/JSONValidate.py
new file mode 100755
index 0000000..c7d2000
--- /dev/null
+++ b/Utilities/JSON/JSONValidate.py
@@ -0,0 +1,14 @@
+#!/usr/bin/env python
+from __future__ import print_function
+import json, sys
+
+try:
+    json.load( open( sys.argv[1], "r" ))
+except ValueError as e:
+    print( "ValueError: {0}".format( e ) )
+    print( "{0}:0:0: error: validating json file.".format( sys.argv[1] ) )
+    sys.exit(1)
+except TypeError as e:
+    print( "TypeError: {0}".format( e ) )
+    print( "{0}:0:0: error: validating json file.".format( sys.argv[1] ) )
+    sys.exit(1)
diff --git a/Utilities/KWStyle/CMakeLists.txt b/Utilities/KWStyle/CMakeLists.txt
new file mode 100644
index 0000000..e69de29
diff --git a/Utilities/KWStyle/KWStyle.cmake b/Utilities/KWStyle/KWStyle.cmake
new file mode 100644
index 0000000..bf482c3
--- /dev/null
+++ b/Utilities/KWStyle/KWStyle.cmake
@@ -0,0 +1,112 @@
+# Set the required KWStyle version
+SET(KWSTYLE_REQ_MAJOR 1)
+SET(KWSTYLE_REQ_MINOR 0)
+SET(KWSTYLE_REQ_PATCH 1)
+
+OPTION(KWSTYLE_USE_VIM_FORMAT "Set KWStyle to generate errors with a VIM-compatible format." OFF)
+OPTION(KWSTYLE_USE_MSVC_FORMAT "Set KWStyle to generate errors with a VisualStudio-compatible format." OFF)
+
+FIND_PROGRAM(KWSTYLE_EXECUTABLE
+NAMES KWStyle 
+PATHS
+/usr/local/bin
+)
+
+IF(KWSTYLE_EXECUTABLE)
+  
+  EXECUTE_PROCESS(
+  COMMAND ${KWSTYLE_EXECUTABLE} -version
+  OUTPUT_VARIABLE KWSTYLE_VERSION_TEXT
+  ) 
+
+string(STRIP ${KWSTYLE_VERSION_TEXT} KWSTYLE_VERSION_TEXT)
+
+IF(KWSTYLE_VERSION_TEXT STREQUAL "Version: Not defined")
+  MESSAGE("This project requires a newer version of KWStyle. Please upgrade the KWStyle executable.")
+ELSE(${KWSTYLE_VERSION_TEXT} STREQUAL "Version: Not defined")
+
+  string(LENGTH ${KWSTYLE_VERSION_TEXT} KWSTYLE_VERSION_LENGTH)
+  math(EXPR KWSTYLE_VERSION_FINAL_LENGTH "${KWSTYLE_VERSION_LENGTH}-9")
+  string(SUBSTRING ${KWSTYLE_VERSION_TEXT} 9 ${KWSTYLE_VERSION_FINAL_LENGTH} KWSTYLE_VERSION)
+
+  # now parse the parts of the user given version string into variables
+  STRING(REGEX REPLACE "^([0-9]+)\\.[0-9]+\\.[0-9]+" "\\1" KWSTYLE_MAJOR_VERSION "${KWSTYLE_VERSION}")
+  STRING(REGEX REPLACE "^[0-9]+\\.([0-9])+\\.[0-9]+" "\\1" KWSTYLE_MINOR_VERSION "${KWSTYLE_VERSION}")
+  STRING(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+)" "\\1" KWSTYLE_PATCH_VERSION "${KWSTYLE_VERSION}")
+
+  MATH(EXPR KWSTYLE_REQ_VERSION "${KWSTYLE_REQ_MAJOR}*10000 + ${KWSTYLE_REQ_MINOR}*100 + ${KWSTYLE_REQ_PATCH}")
+  MATH(EXPR KWSTYLE_LONG_VERSION "${KWSTYLE_MAJOR_VERSION}*10000 + ${KWSTYLE_MINOR_VERSION}*100 + ${KWSTYLE_PATCH_VERSION}")
+  
+  # Set the minimum require version for batchmake
+  IF(KWSTYLE_LONG_VERSION LESS KWSTYLE_REQ_VERSION)
+    MESSAGE(FATAL_ERROR "This project requires a newer version of KWStyle. Please upgrade the KWStyle executable.")
+  ELSE(KWSTYLE_LONG_VERSION LESS KWSTYLE_REQ_VERSION)
+    SET(KWSTYLE_FOUND 1)
+  ENDIF(KWSTYLE_LONG_VERSION LESS KWSTYLE_REQ_VERSION)
+ENDIF(KWSTYLE_VERSION_TEXT STREQUAL "Version: Not defined")
+
+IF(KWSTYLE_FOUND)
+#
+#  Define file names
+#
+SET(KWSTYLE_CONFIGURATION_FILE 
+  ${PROJECT_BINARY_DIR}/Utilities/KWStyle/SITK.kws.xml)
+
+SET(KWSTYLE_SITK_FILES_LIST
+  ${PROJECT_BINARY_DIR}/Utilities/KWStyle/SITKFiles.txt)
+
+SET(KWSTYLE_SITK_OVERWRITE_FILE
+  ${PROJECT_SOURCE_DIR}/Utilities/KWStyle/SITKOverwrite.txt )
+
+#
+# Configure the files
+#
+CONFIGURE_FILE(
+  ${PROJECT_SOURCE_DIR}/Utilities/KWStyle/SITKFiles.txt.in
+  ${KWSTYLE_SITK_FILES_LIST})
+
+CONFIGURE_FILE(
+  ${PROJECT_SOURCE_DIR}/Utilities/KWStyle/SITK.kws.xml.in
+  ${KWSTYLE_CONFIGURATION_FILE})
+
+
+#
+#  Define formatting for error messages
+#
+SET(KWSTYLE_EDITOR_FORMAT " ")
+SET(KWSTYLE_EDITOR_FORMAT "")
+
+IF(${CMAKE_CXX_COMPILER} MATCHES "cl.exe$")
+  SET(KWSTYLE_USE_MSVC_FORMAT 1)
+ENDIF(${CMAKE_CXX_COMPILER} MATCHES "cl.exe$")
+
+IF(${CMAKE_C_COMPILER} MATCHES "g[cx][cx]$")
+  SET(KWSTYLE_USE_VIM_FORMAT 1)
+ENDIF(${CMAKE_C_COMPILER} MATCHES "g[cx][cx]$")
+
+IF(KWSTYLE_USE_VIM_FORMAT)
+  SET(KWSTYLE_EDITOR_FORMAT -vim)
+ENDIF(KWSTYLE_USE_VIM_FORMAT)
+
+IF(KWSTYLE_USE_MSVC_FORMAT)
+  SET(KWSTYLE_EDITOR_FORMAT -msvc)
+ENDIF(KWSTYLE_USE_MSVC_FORMAT)
+
+SET(KWSTYLE_ARGUMENTS_CODE
+  -xml ${KWSTYLE_CONFIGURATION_FILE} -v -D ${KWSTYLE_SITK_FILES_LIST}
+  -o ${KWSTYLE_SITK_OVERWRITE_FILE} ${KWSTYLE_EDITOR_FORMAT}
+  )
+
+ADD_CUSTOM_COMMAND(
+  OUTPUT  ${PROJECT_BINARY_DIR}/KWStyleCodeReport.txt
+  COMMAND ${KWSTYLE_EXECUTABLE}
+  ARGS    ${KWSTYLE_ARGUMENTS_CODE}
+  COMMENT "Coding Style Checker"
+  )
+
+ADD_CUSTOM_TARGET(StyleCheckCode DEPENDS ${PROJECT_BINARY_DIR}/KWStyleCodeReport.txt)
+
+ADD_TEST(KWStyleCodeTest ${KWSTYLE_EXECUTABLE} ${KWSTYLE_ARGUMENTS_CODE})
+
+ENDIF(KWSTYLE_FOUND)
+ENDIF(KWSTYLE_EXECUTABLE)
diff --git a/Utilities/KWStyle/SITK.kws.xml.in b/Utilities/KWStyle/SITK.kws.xml.in
new file mode 100644
index 0000000..3afd7a6
--- /dev/null
+++ b/Utilities/KWStyle/SITK.kws.xml.in
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<Description>
+<LineLength>200</LineLength>
+<Typedefs>[A-Z]</Typedefs>
+<InternalVariables>m_[A-Z]</InternalVariables>
+<SemicolonSpace>0</SemicolonSpace>
+<EndOfFileNewLine>1</EndOfFileNewLine>
+<Tabs>1</Tabs>
+<Spaces>3</Spaces>
+<Comments>/**, *, */,true</Comments>
+<Namespace>itk</Namespace>
+<NameOfClass>[NameOfClass],itk</NameOfClass>
+<IfNDefDefine>__[NameOfClass]_[Extension]</IfNDefDefine>
+<EmptyLines>2</EmptyLines>
+<Template>[TNV]</Template>
+<Operator>1,1</Operator>
+</Description>
diff --git a/Utilities/KWStyle/SITKFiles.txt.in b/Utilities/KWStyle/SITKFiles.txt.in
new file mode 100644
index 0000000..208e8c5
--- /dev/null
+++ b/Utilities/KWStyle/SITKFiles.txt.in
@@ -0,0 +1,18 @@
+ at PROJECT_SOURCE_DIR@/Code/Common/*.h
+ at PROJECT_SOURCE_DIR@/Code/Common/*.cxx
+ at PROJECT_SOURCE_DIR@/Code/Common/*.hxx
+ at PROJECT_SOURCE_DIR@/Code/IO/*.h
+ at PROJECT_SOURCE_DIR@/Code/IO/*.cxx
+ at PROJECT_SOURCE_DIR@/Code/IO/*.hxx
+ at PROJECT_SOURCE_DIR@/Code/BasicFilters/*.h
+ at PROJECT_SOURCE_DIR@/Code/BasicFilters/*.cxx
+ at PROJECT_SOURCE_DIR@/Code/BasicFilters/*.hxx
+ at PROJECT_BINARY_DIR@/Code/Common/*.h
+ at PROJECT_BINARY_DIR@/Code/Common/*.cxx
+ at PROJECT_BINARY_DIR@/Code/Common/*.hxx
+ at PROJECT_BINARY_DIR@/Code/IO/*.h
+ at PROJECT_BINARY_DIR@/Code/IO/*.cxx
+ at PROJECT_BINARY_DIR@/Code/IO/*.hxx
+ at PROJECT_BINARY_DIR@/Code/BasicFilters/*.h
+ at PROJECT_BINARY_DIR@/Code/BasicFilters/*.cxx
+ at PROJECT_BINARY_DIR@/Code/BasicFilters/*.hxx
diff --git a/Utilities/KWStyle/SITKOverwrite.txt b/Utilities/KWStyle/SITKOverwrite.txt
new file mode 100644
index 0000000..e69de29
diff --git a/Utilities/Maintenance/ContentLinkSynchronization.sh b/Utilities/Maintenance/ContentLinkSynchronization.sh
new file mode 100755
index 0000000..d5adc02
--- /dev/null
+++ b/Utilities/Maintenance/ContentLinkSynchronization.sh
@@ -0,0 +1,111 @@
+#!/usr/bin/env bash
+#==========================================================================
+#
+#   Copyright Insight Software Consortium
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#          http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#==========================================================================*/
+
+# This script, given an ExternalData object store, checks all ExternalData
+# .md5 and .sha512 content links in the ITK source, verifies that hashes
+# correspond to the same file, and creates both .md5 and .sha512 hashes if
+# they are missing.
+#
+# If content link verification fails, the script notifies the caller and exits.
+# The error should be resolved manually before re-execution.
+#
+# Once executed, a commit can be created from the result.
+#
+# This script should be executed prior to releases. After any missing content
+# links have been merged, the scripts to archive testing data on the Midas and
+# Girder stores should be executed.
+
+die() {
+  echo "$@" 1>&2; exit 1
+}
+
+if test $# -lt 1 || test "$1" = "-h" || test "$1" = "--help"; then
+  die "Usage: $0 <ExternalData_OBJECT_STORES path>"
+fi
+
+if ! type md5sum > /dev/null; then
+  die "Please install the md5sum executable."
+fi
+if ! type sha512sum > /dev/null; then
+  die "Please install the sha512sum executable."
+fi
+
+top_level_dir=$(git rev-parse --show-toplevel)
+cd "$top_level_dir"
+
+object_store=$1
+
+mkdir -p ${object_store}/{MD5,SHA512}
+
+verify_and_create() {
+  algo=$1
+  alt_algo=$2
+
+  algo_upper=$(echo $algo | awk '{print toupper($0)}')
+  alt_algo_upper=$(echo $alt_algo | awk '{print toupper($0)}')
+
+  find . -name "*.${algo}" -print0 | while read -d ''  -r algo_file; do
+    echo "Content link ${algo_file} ..."
+    if test -z "${algo_file}"; then
+      die "Empty content link!"
+      continue
+    fi
+    algo_hash=$(cat "${algo_file}" | tr -d '[[:space:]]')
+    alt_algo_file=${algo_file%\.*}.${alt_algo}
+    if test ! -e "${object_store}/${algo_upper}/${algo_hash}"; then
+      if test -e "${alt_algo_file}"; then
+        alt_algo_hash=$(cat "${alt_algo_file}" | tr -d '[[:space:]]')
+        if test -e "${object_store}/${alt_algo_upper}/${alt_algo_hash}"; then
+          echo "Found object in ${alt_algo} store, copying to ${algo} store..."
+          cp "${object_store}/${alt_algo_upper}/${alt_algo_hash}" "${object_store}/${algo_upper}/${algo_hash}"
+        else
+          die "Could not find data object in store!"
+        fi
+      else
+        die "Could not find data object in store!"
+      fi
+    fi
+    echo "Verifying    ${algo_file}..."
+    object_algo_hash=$(${algo}sum "${object_store}/${algo_upper}/${algo_hash}" | cut -f 1 -d ' ')
+    if test "${algo_hash}" != "${object_algo_hash}"; then
+      die "${algo}sum for ${object_store}/${algo_upper}/${algo_hash} does not equal hash in ${algo_file}!"
+    fi
+
+    object_alt_algo_hash=$(${alt_algo}sum "${object_store}/${algo_upper}/${algo_hash}" | cut -f 1 -d ' ')
+    if test -e  "${alt_algo_file}"; then
+      echo "Verifying    ${alt_algo_file}..."
+      alt_algo_hash=$(cat "${alt_algo_file}" | tr -d '[[:space:]]')
+      if test "${alt_algo_hash}" != "${object_alt_algo_hash}"; then
+        die "${alt_algo}sum for ${object_store}/${algo_upper}/${algo_hash} does not equal hash in ${alt_algo_file}!"
+      fi
+    else
+      echo "Creating     ${alt_algo_file}..."
+      echo "${object_alt_algo_hash}" > "${alt_algo_file}"
+      cp "${object_store}/${algo_upper}/${algo_hash}" "${object_store}/${alt_algo_upper}/${alt_algo_hash}"
+    fi
+  done || exit 1
+}
+
+verify_and_create md5 sha512
+verify_and_create sha512 md5
+
+echo ""
+echo "Verification completed successfully."
+echo ""
+echo "Commit new content links as necessary."
diff --git a/Utilities/Maintenance/JIRAHTMLReleaseNoteToWiki.py b/Utilities/Maintenance/JIRAHTMLReleaseNoteToWiki.py
new file mode 100755
index 0000000..d1c3554
--- /dev/null
+++ b/Utilities/Maintenance/JIRAHTMLReleaseNoteToWiki.py
@@ -0,0 +1,112 @@
+#!/usr/bin/env python
+
+from __future__ import print_function
+import xml.dom.minidom
+from  xml.parsers.expat import ExpatError
+import argparse
+import sys
+import re
+
+description = """
+This script converts the default Release Notes from JIRA to a ITK's wiki format.
+
+Specifically input such as:
+
+<h2>        Epic
+</h2>
+<ul>
+<li>[<a href='https://issues.itk.org/jira/browse/SIMPLEITK-1'>SIMPLEITK-1</a>] -         Develop registration framework for ITKv4 Framework
+</li>
+<li>[<a href='https://issues.itk.org/jira/browse/SIMPLEITK-571'>SIMPLEITK-571</a>] -         Add More Registration Examples
+</li>
+</ul>
+
+is converted to:
+
+==Epic==
+
+*[[[https://issues.itk.org/jira/browse/SIMPLEITK-1SIMPLEITK-1]]] - Develop registration framework for ITKv4 Framework
+*[[[https://issues.itk.org/jira/browse/SIMPLEITK-571SIMPLEITK-571]]] - Add More Registration Examples
+
+"""
+
+
+def do_text(node,strip=False):
+    """Render a text node, with some while space cleanup"""
+    text = node.data.encode('ascii', 'replace');
+    text = re.sub(' +', ' ', text)
+    if strip:
+        text = text.strip()
+    return text;
+
+def do_li(node):
+    """Render a li element into a wiki bullet-ed list"""
+    return ("*"+parse(node)).rstrip('\n')
+
+def do_a(node):
+    """Render a hyperlink node, into a wiki link"""
+    if node.hasAttribute("href"):
+        return "[["+node.attributes["href"].value+' '+parse(node)+"]]"
+
+def do_h(node, level=1):
+    """Render a header title"""
+    s="="*level
+    if len(node.childNodes)==1 and node.firstChild.nodeType == xml.dom.Node.TEXT_NODE:
+        s+=do_text(node.firstChild, strip=True)
+    else:
+        s+=parse(node)
+    s +="="*level
+    return s
+
+def parse_Element(node):
+    """Dispatch to correct handling do method"""
+    if node.tagName == "li":
+        return do_li(node)
+    elif node.tagName == "a":
+        return do_a(node)
+    elif node.tagName == "h1":
+        return do_h(node,1)
+    elif node.tagName == "h2":
+        return do_h(node,2)
+    else:
+        return parse(node)
+
+
+def parse_Document(node):
+    """Dispatch for root document element"""
+    return parse(node.documentElement)
+
+def parse(node):
+    """Core reclusive method for depth-first traversal without state"""
+    s=""
+    for child in node.childNodes:
+        if child.nodeType == xml.dom.Node.TEXT_NODE:
+            s+=do_text(child)
+        elif child.nodeType == xml.dom.Node.DOCUMENT_TYPE_NODE:
+            s+=parse_Document(child)
+        elif child.nodeType == xml.dom.Node.ELEMENT_NODE:
+            s+=parse_Element(child)
+    return s
+
+
+
+def html_fragment_to_wiki(html_fragment):
+    dom = xml.dom.minidom.parseString("<html>"+html_fragment+"</html>")
+    return parse(dom)
+
+if __name__ == "__main__":
+    parser = argparse.ArgumentParser(description=description)
+    parser.add_argument("inputHTMLNotes", help="Input file name containing the HTML fragment of release notes generated by JIRA.")
+
+
+    args = parser.parse_args()
+
+    with open(args.inputHTMLNotes, "r") as myfile:
+        data=myfile.read()
+
+    try:
+        print(html_fragment_to_wiki(data))
+    except ExpatError as e:
+        print(e, file=sys.stderr)
+        # 1 based line index in error
+        print( "   \"{0}\"".format(data.splitlines()[e.lineno-1]), file=sys.stderr)
diff --git a/Utilities/Maintenance/SourceTarball.bash b/Utilities/Maintenance/SourceTarball.bash
new file mode 100755
index 0000000..147def7
--- /dev/null
+++ b/Utilities/Maintenance/SourceTarball.bash
@@ -0,0 +1,239 @@
+#!/usr/bin/env bash
+#==========================================================================
+#
+#   Copyright Insight Software Consortium
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#          http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#==========================================================================*/
+
+usage() {
+  die 'USAGE: SourceTarball.bash [(--tgz|--txz|--zip)...] \
+        [--verbose] [-v <version>] build_dir [<tag>|<commit>]'
+}
+
+info() {
+  echo "$@" 1>&2
+}
+
+die() {
+  echo "$@" 1>&2; exit 1
+}
+
+return_pipe_status() {
+  echo ${PIPESTATUS[@]} |grep -q -v "[1-9]"
+}
+
+find_data_objects() {
+  git ls-tree --full-tree -r "$1" |
+  egrep '\.(md5)$' |
+  while read mode type obj path; do
+    case "$path" in
+      *.md5)  echo MD5/$(git cat-file blob $obj) ;;
+      *)      die "Unknown ExternalData content link: $path" ;;
+    esac
+  done | sort | uniq
+  return_pipe_status
+}
+
+validate_MD5() {
+  md5sum=$(md5sum "$1" | sed 's/ .*//') &&
+  if test "$md5sum" != "$2"; then
+    die "Object MD5/$2 is corrupt: $1"
+  fi
+}
+
+download_object() {
+  algo="$1" ; hash="$2" ; path="$3"
+  mkdir -p $(dirname "$path") &&
+  if wget "https://www.itk.org/files/ExternalData/$algo/$hash" -O "$path.tmp$$" 1>&2; then
+    mv "$path.tmp$$" "$path"
+  elif wget "http://midas3.kitware.com/midas/api/rest?method=midas.bitstream.download&checksum=$hash&algorithm=$algo" -O "$path.tmp$$" 1>&2; then
+    mv "$path.tmp$$" "$path"
+  else
+    rm -f "$path.tmp$$"
+    false
+  fi
+}
+
+index_data_objects() {
+  # Input lines have format <algo>/<hash>
+  while IFS=/ read algo hash; do
+    # Final path in source tarball
+    path=".ExternalData/$algo/$hash"
+    # Find the object file on disk
+    if test -f "$path"; then
+      file="$path" # available in place
+    elif test -f ~/"$path" ; then
+      file=~/"$path" # available in home dir
+    else
+      download_object "$algo" "$hash" "$path" &&
+      file="$path"
+    fi &&
+    validate_$algo "$file" "$hash" &&
+    obj=$(git hash-object -t blob -w "$file") &&
+    echo "100644 blob $obj	$path" ||
+    return
+  done |
+  git update-index --index-info
+  return_pipe_status
+}
+
+index_additional_object() {
+
+   file="$1"
+   path=$file
+   test -n "$2" && path=$2/$(basename $file)
+
+   obj=$(git hash-object -t blob -w "$file") &&
+    echo "100644 blob $obj	$path" |
+    git update-index --index-info
+
+  return_pipe_status
+
+}
+
+
+# NOTE: this methods exports the GIT_ALTERNATE_OBJECT_DIRECTORIES variable to effect later processes
+index_submodule_objects() {
+
+   SUBMODULE_LIST=$(git submodule foreach --quiet 'echo $(git rev-parse --git-dir)/objects')
+   export GIT_ALTERNATE_OBJECT_DIRECTORIES=$SUBMODULE_LIST
+   IFS=' '
+   git submodule foreach --quiet  'git ls-tree --full-tree -r $sha1 | awk  -v path=$path '"'"'{ print path, $1, $2, $3, path "/" $4 }'"'"'' |
+   while read path mode type object file; do
+    echo "$mode $type $object	$file" ||
+    return
+   done  |
+   git update-index --index-info
+   return_pipe_status
+}
+
+load_data_objects() {
+  find_data_objects "$@" |
+  index_data_objects
+  return_pipe_status
+}
+
+load_data_files() {
+  git ls-tree -r "$1" -- '.ExternalData' |
+  git update-index --index-info
+  return_pipe_status
+}
+
+git_archive_tgz() {
+  out="$2.tar.gz" && tmp="$out.tmp$$" &&
+  if test -n "$3"; then prefix="$3"; else prefix="$2"; fi &&
+  git -c core.autocrlf=false archive $verbose --format=tar --prefix=$prefix/ $1 |
+  gzip -9 > "$tmp" &&
+  mv "$tmp" "$out" &&
+  info "Wrote $out"
+}
+
+git_archive_txz() {
+  out="$2.tar.xz" && tmp="$out.tmp$$" &&
+  if test -n "$3"; then prefix="$3"; else prefix="$2"; fi &&
+  git -c core.autocrlf=false archive $verbose --format=tar --prefix=$prefix/ $1 |
+  xz -9 > "$tmp" &&
+  mv "$tmp" "$out" &&
+  info "Wrote $out"
+}
+
+git_archive_zip() {
+  out="$2.zip" && tmp="$out.tmp$$" &&
+  if test -n "$3"; then prefix="$3"; else prefix="$2"; fi &&
+  git -c core.autocrlf=true archive $verbose --format=zip --prefix=$prefix/ $1 > "$tmp" &&
+  mv "$tmp" "$out" &&
+  info "Wrote $out"
+}
+
+#-----------------------------------------------------------------------------
+
+formats=
+commit=
+version=
+verbose=
+build_dir=
+
+# Parse command line options.
+while test $# != 0; do
+  case "$1" in
+    --tgz) formats="$formats tgz" ;;
+    --txz) formats="$formats txz" ;;
+    --zip) formats="$formats zip" ;;
+    --verbose) verbose=-v ;;
+    --) shift; break ;;
+    -v) shift; version="$1" ;;
+    -*) usage ;;
+    *) { test -z "$build_dir" && build_dir="$1"; } ||
+       { test -z "$commit" && commit="$1"; } ||
+       usage ;;
+  esac
+  shift
+done
+test $# = 0 || usage
+test -n "$commit" || commit=HEAD
+test -n "$formats" || formats=tgz
+
+test -n "$build_dir" ||
+  die "Missing required build_dir argument."
+
+test -e "${build_dir}/SimpleITKConfig.cmake" ||
+  die "invalid build directory."
+
+
+if ! git rev-parse --verify -q "$commit" >/dev/null ; then
+  die "'$commit' is not a valid commit"
+fi
+if test -z "$version"; then
+  desc=$(git describe $commit) &&
+  if test "${desc:0:1}" != "v"; then
+    die "'git describe $commit' is '$desc'; use -v <version>"
+  fi &&
+  version=${desc#v} &&
+  echo "$commit is version $version"
+fi
+
+# Create temporary git index to construct source tree
+export GIT_INDEX_FILE="$(pwd)/tmp-$$-index" &&
+trap "rm -f '$GIT_INDEX_FILE'" EXIT &&
+
+
+result=0 &&
+
+
+info "Loading source tree from $commit..." &&
+rm -f "$GIT_INDEX_FILE" &&
+git read-tree -m -i $commit &&
+git rm -rf -q --cached '.ExternalData' &&
+index_additional_object "${build_dir}/sitkSourceVersionVars.cmake" "CMake" &&
+
+
+tree=$(git write-tree) &&
+info "Generating source archive(s)..." &&
+for fmt in $formats; do
+  git_archive_$fmt $tree "SimpleITK-$version" || result=1
+done &&
+
+info "Loading data for $commit..." &&
+rm -f "$GIT_INDEX_FILE" &&
+load_data_objects $commit &&
+load_data_files $commit &&
+tree=$(git write-tree) &&
+
+
+info "Generating data archive(s)..." &&
+for fmt in $formats; do
+  git_archive_$fmt $tree "SimpleITKData-$version" "SimpleITK-$version" || result=1
+done &&
+exit $result
diff --git a/Utilities/ParseForExplicitInstantiation.py b/Utilities/ParseForExplicitInstantiation.py
new file mode 100755
index 0000000..3946319
--- /dev/null
+++ b/Utilities/ParseForExplicitInstantiation.py
@@ -0,0 +1,254 @@
+#!/usr/bin/env python
+"""Parse For Explicit Instantiation
+
+Usage:
+  ParseForExplicitInstantiation.py --classFile <pathToITKTemplateHeader>
+  ParseForExplicitInstantiation.py [--minRepeats=<repeatNum>] --classFile <pathToITKTemplateHeader>
+  ParseForExplicitInstantiation.py (-h | --help)
+
+Options:
+  -h --help                 Show this screen.
+  --version                 Show version.
+  --classFile               An ITK compliant header file with a templated class in it.
+  --minRepeats=<repeatNum>  The minimum number of times an instantiation must show up to make it explicit [default: 10].
+"""
+
+"""
+
+# The following was run to generate a list of symbols used by SimpleITK, without the Explicit library
+
+test_dir=/dev/shm/SimpleITK/SimpleITK-build/Code
+for i in $(find ${test_dir} -name "*.o") ; do     nm $i |c++filt |fgrep -v " U " |fgrep -v "(.eh)"  |fgrep -v "itk::simple::" |grep " W " |grep " itk::" |grep "::~"; done |tee /tmp/Symbols.list
+
+# By counting the symbols the following classes were most frequently used and code was generated
+
+classes="ComposeImageFilter Image ImageSource  VectorImage DefaultPixelAccessor ImageRegionConstIterator ImageToImageFilter  VectorIndexSelectionCastImageFilter DefaultVectorPixelAccessor ImageRegion ImportImageContainer ImageBase ImageScanlineConstIterator InPlaceImageFilter ImageConstIterator ImageScanlineIterator LabelMap"
+
+for i in $classes; do
+  echo "Proccessing $i..."
+  python ~/src/SimpleITK/Utilities/ParseForExplicitInstantiation.py --classFile $i --minRepeats=5 ;
+done
+
+"""
+__author__ = 'johnsonhj'
+
+import os
+import sys
+
+import collections
+import re
+
+
+
+
+class ProcessClassFromFile:
+    def __init__(self, inputHeader, minimumRepeatNumber,inputSymbolsFile='/tmp/Symbols.list' ):
+
+        self.minimumRepeatNumber = minimumRepeatNumber
+
+        self.inputHeaderFullPath=os.path.realpath(inputHeader)
+        self.FileClassToMakeExplicit=os.path.basename(self.inputHeaderFullPath)
+        self.BaseClassName=self.FileClassToMakeExplicit.replace('itk','').replace('.h','')
+        self.basePath=os.path.dirname(os.path.dirname(self.inputHeaderFullPath))
+        print "basePath: ",self.basePath
+        print "BaseClassName: ",self.BaseClassName
+
+        self.ExplicitHeaderFileName = os.path.join(self.basePath,"include","sitkExplicitITK{0}.h".format(self.BaseClassName))
+        self.CodeFileName = os.path.join(self.basePath,"src","sitkExplicitITK{0}.cxx".format(self.BaseClassName))
+        self._ParseForExtraDirectives()
+        self.HeaderString = ""
+        self.CodeString = ""
+        self._ParseSymbolFile(inputSymbolsFile)
+        self._MakeHeaderAndCodeStrings()
+        self._GenerateFiles()
+
+    def _ParseSymbolFile(self,inputSymbolsFile):
+        self.SymbolsMapping = collections.defaultdict(int)
+
+        nm_link_objects = re.compile("[0-9a-f]* [SWwn] itk::"+self.BaseClassName+"<(.*)>::~"+self.BaseClassName+"\(\)")
+
+        with open(inputSymbolsFile,'r') as isf:
+            all_lines = isf.readlines()
+
+        for thisline in all_lines:
+            # Do requested substitutions
+            for subsPat in self.subsPatterns:
+                thisline = thisline.replace("std::__1::","std::")
+                thisline = thisline.replace(subsPat[0],subsPat[1])
+            # Remove items from exclude matches
+            for excludePat in self.excludePatterns:
+                if thisline.find(excludePat) != -1:
+                    thisline = ""
+            nm_search_match = nm_link_objects.search(thisline)
+            if nm_search_match:
+                TemplatePayLoad = nm_search_match.groups()[0]
+                TemplateInstance = "itk::{0}<{1}>".format(self.BaseClassName,TemplatePayLoad)
+                self.SymbolsMapping[TemplateInstance] += 1
+            else:
+                pass
+
+        ## Remove low frequency items
+        for key in self.SymbolsMapping.keys():
+            if self.SymbolsMapping[key] < minRepeats:
+                self.SymbolsMapping.pop(key, None)
+
+
+    description = """A class to process and build the explicit instantiations of ITK
+This file is intended to parse the outputs from nm on the ITK tree
+to help auto-create explicit instantiations that are commonly used
+so that build times are minimized."""
+    author = "Hans J. Johnson"
+    std_substitution = ('std::__1::', 'std::')
+
+    header = """/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+"""
+
+    def _ParseForExtraDirectives(self):
+        exclude_line_re = re.compile("//exclude *([^ ]*) *")
+        subs_line_re = re.compile("//subs  *([^ ]*) *([^ ]*)")
+        self.extraIncludes = list()
+        self.excludePatterns = list()
+        self.subsPatterns = list()
+        if os.path.exists(self.ExplicitHeaderFileName):
+            with open(self.ExplicitHeaderFileName,'r') as readFile:
+                all_lines = readFile.readlines()
+            all_lines = [ thisline.rstrip() for thisline in all_lines ]
+
+            for thisline in all_lines:
+                #if thisline.find("#include") != -1:
+                #    self.extraIncludes.append(thisline)
+                exclude_search_match = exclude_line_re.search(thisline)
+                if exclude_search_match:
+                    self.excludePatterns.append(exclude_search_match.groups()[0])
+                subs_search_match = subs_line_re.search(thisline)
+                if subs_search_match:
+                    self.subsPatterns.append( (subs_search_match.groups()[0],subs_search_match.groups()[1]) )
+            print("#"*80)
+            print("Extra Includes: {0}".format(self.extraIncludes))
+            print("Exclude Pattern: {0}".format(self.excludePatterns))
+            print("Sub Patterns: {0}".format(self.subsPatterns))
+
+    def _NoWorkToDo(self):
+        print(len(self.SymbolsMapping.keys()))
+        print(len(self.excludePatterns))
+        print(len(self.subsPatterns))
+
+        return len(self.SymbolsMapping.keys()) == 0 and len(self.excludePatterns) == 0 and len(self.subsPatterns) == 0
+
+
+    def _MakeHeaderAndCodeStrings(self):
+
+        if self._NoWorkToDo():
+            print("No matching expansions!")
+            return
+
+        HeaderString=self.header
+        HeaderString+="""#ifndef sitkExplicitITK{0}_h__
+#define sitkExplicitITK{0}_h__
+""".format(self.BaseClassName)
+
+        HeaderString+="""#include "sitkExplicit.h"\n"""
+        HeaderString+="""#include "itk{0}.h"\n""".format(self.BaseClassName)
+        HeaderString+="\n"
+
+        for extraInclude in self.extraIncludes:
+            HeaderString += "{0}\n".format(extraInclude)
+        for excludePat in self.excludePatterns:
+            HeaderString += "//exclude {0}\n".format(excludePat)
+        for subsPat in self.subsPatterns:
+            HeaderString += "//subs {0} {1}\n".format(subsPat[0],subsPat[1])
+
+        HeaderString+="""#ifndef SITK_TEMPLATE_EXPLICIT_EXPLICITITK\n"""
+
+        for key in  sorted(self.SymbolsMapping.keys()):
+            HeaderString += "extern template class SITKExplicit_EXPORT_EXPLICIT {0};\n".format(key)
+        HeaderString+="""#endif // SITK_TEMPLATE_EXPLICIT_EXPLICITITK\n"""
+        HeaderString += "#endif // sitkExplicitITK{0}_h__\n".format(self.BaseClassName)
+
+        CodeString=""
+        if len(self.SymbolsMapping.keys()) >= 1:
+            CodeString=self.header
+            CodeString+="""#define  SITK_TEMPLATE_EXPLICIT_EXPLICITITK\n"""
+            CodeString+="""#include "sitkExplicitITK{0}.h"\n""".format(self.BaseClassName)
+            CodeString+="""#undef SITK_TEMPLATE_EXPLICIT_EXPLICITITK\n"""
+            CodeString+="""#include "sitkExplicitITK.h"\n""".format(self.BaseClassName)
+            CodeString+="""\n"""
+            for key in sorted(self.SymbolsMapping.keys()):
+                CodeString += "template class SITKExplicit_EXPORT {0};\n".format(key)
+
+        self.CodeString = CodeString
+        self.HeaderString = HeaderString
+        print "="*90
+        for key in  sorted(self.SymbolsMapping.keys()):
+            print("Found {0:4} instantiations of {1}.".format(self.SymbolsMapping[key],key))
+
+
+    def _GenerateFiles(self):
+        if not self._NoWorkToDo():
+            if len(self.CodeString) > 1:
+                with open(self.CodeFileName,'w') as cf:
+                    cf.write(self.CodeString)
+            else:
+                print("CodeString empty for {0}".format(self.inputHeaderFullPath))
+            if len(self.HeaderString) > 1:
+                with open(self.ExplicitHeaderFileName,'w') as hf:
+                    hf.write(self.HeaderString)
+                #self._FixupHeader()
+            else:
+                print("HeaderString empty for {0}".format(self.inputHeaderFullPath))
+        else:
+            print("No processing required for {0}".format(self.inputHeaderFullPath))
+
+
+    def _FixupHeader(self):
+        payloadToAdd="""#ifdef ITK_COMMON_EXPLICIT_INSTANTIATION
+#include "{0}"
+#endif
+
+""".format(os.path.basename(self.ExplicitHeaderFileName))
+        with open(self.inputHeaderFullPath,'r') as readFile:
+            all_lines = readFile.readlines()
+        PayloadHeaderCount = 0
+        for thisline in all_lines:
+            if thisline.find('#ifdef ITK_COMMON_EXPLICIT_INSTANTIATION') == 0:
+                PayloadHeaderCount += 1
+        if PayloadHeaderCount == 0:
+            all_lines.insert(-1,payloadToAdd) #Add payload one line before end of file
+
+            outCode="".join(all_lines)
+            with open(self.inputHeaderFullPath,'w') as writeFile:
+                writeFile.write(outCode)
+        elif PayloadHeaderCount == 1:
+            print("{0} already has include payload.".format(self.inputHeaderFullPath))
+        else:
+            print("{0} has duplicate include payload: {1}.".format(self.inputHeaderFullPath,PayloadHeaderCount))
+
+
+from docopt import docopt
+if __name__ == '__main__':
+    arguments = docopt(__doc__, version='ParseForExplicitInstantiation 1.0')
+    print(arguments)
+    headFileName=arguments['<pathToITKTemplateHeader>']
+    minRepeats=int(arguments['--minRepeats'])
+    print "minRepeats:",minRepeats
+
+    myProcessor=ProcessClassFromFile(headFileName,minRepeats)
+    #SymbolsMapping = myProcessor.GetSymbolsMapping()
+    #for key in SymbolsMapping.keys():
+    #    print("{0} : {1}".format(SymbolsMapping[key],key))
diff --git a/Utilities/SetupForDevelopment.sh b/Utilities/SetupForDevelopment.sh
new file mode 100755
index 0000000..0187d43
--- /dev/null
+++ b/Utilities/SetupForDevelopment.sh
@@ -0,0 +1,148 @@
+#!/usr/bin/env bash
+#==========================================================================
+#
+#   Copyright Insight Software Consortium
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#          http://www.apache.org/licenses/LICENSE-2.0.txt
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#==========================================================================*/
+
+
+# Run this script to set up development with git.
+
+die() {
+  echo 'Failure during SimpleITK Git development setup' 1>&2
+  echo '----------------------------------------' 1>&2
+  echo '' 1>&2
+  echo "$@" 1>&2
+  exit 1
+}
+
+# Make sure we are inside the repository.
+cd "$(echo "$0"|sed 's/[^/]*$//')"/..
+
+if test -d .git/.git; then
+  die "The directory '.git/.git' exists, indicating a configuration error.
+
+Please 'rm -rf' this directory."
+fi
+
+# Check to make sure we got a new enough git.
+git_required_major_version=1
+git_required_minor_version=6
+git_required_release_version=6
+git_required_bugfix_version="" # Use "" if there is no bugfix version.
+echo "Checking Git version..."
+git_version=$(git --version | awk '{print $3}')
+declare -a git_version_arr
+git_version_arr=(`echo ${git_version//./ }`)
+insufficient_version() {
+  if test -z "${git_required_bugfix_version}"; then
+    git_required_version="${git_required_major_version}.${git_required_minor_version}.${git_required_release_version}"
+  else
+    git_required_version="${git_required_major_version}.${git_required_minor_version}.${git_required_release_version}.${git_required_bugfix_version}"
+  fi
+  die "Insufficient Git version.
+
+Detected version was
+  ${git_version}
+and the minimum required version is
+  ${git_required_version}"
+}
+if test ${git_version_arr[0]} -lt $git_required_major_version; then
+  insufficient_version
+elif test ${git_version_arr[0]} -eq $git_required_major_version; then
+  if test ${git_version_arr[1]} -lt $git_required_minor_version; then
+    insufficient_version
+  elif test ${git_version_arr[1]} -eq $git_required_minor_version; then
+    if test ${git_version_arr[2]} -lt $git_required_release_version; then
+      insufficient_version
+    elif test ${git_version_arr[2]} -eq $git_required_release_version; then
+      if test -n "${git_required_bugfix_version}" -a \
+         -n "${git_version_arr[3]}" -o \
+         ${git_version_arr[3]} -lt $git_required_bugfix_version; then
+        insufficient_version
+      fi
+    fi
+  fi
+fi
+echo -e "Git version $git_version is OK.\n"
+
+# add an "upstream" remote to make easier to maintain a fork outside of itk.org,
+# with an origin which is not itk.org
+if [ "`git config remote.origin.url`" != "git://itk.org/SimpleITK.git" ]; then
+  echo "We advise setting git://itk.org/SimpleITK.git as your origin.
+
+If you choose not to do that, then other instructions will not work as expected."
+
+  read -ep "Do you wish to continue with this non-standard layout? [y/N]: " ans
+
+  if [ "$ans" == "" ] || [ "$ans" == "N" ] || [ "$ans" == "n" ]; then
+    echo "Please fix your origin remote, and re-run this script.
+
+Please run the following to correct the origin url:
+
+git remote set-url origin git://itk.org/SimpleITK.git
+"
+    exit 1
+  else
+    echo "Setting up upstream remote to the itk.org repository..."
+    if ! git config remote.upstream.url > /dev/null ; then
+      git remote add upstream git://itk.org/SimpleITK.git
+      git remote set-url --push upstream git at itk.org:SimpleITK.git
+      echo "Done"
+    else
+      echo "upstream is already configured."
+    fi
+    echo
+    echo "WARNING: continuing with non-standard origin remote."
+  fi
+elif [ "`git config remote.origin.pushurl`" != "git at itk.org:SimpleITK.git" ]; then
+  echo "Setting pushurl for origin."
+  git remote set-url --push origin git at itk.org:SimpleITK.git
+else
+  echo "Configuration of origin verified."
+fi
+echo
+
+cd Utilities/DevelopmentSetupScripts
+
+echo "Checking basic user information..."
+./SetupUser.sh || exit 1
+echo
+
+echo "Setting up git hooks..."
+./SetupHooks.sh || exit 1
+echo
+
+echo "Setting up useful Git aliases..."
+./SetupGitAliases.sh || exit 1
+echo
+
+# Make this non-fatal, as it is useful to get the other stuff set up
+echo "Setting up Gerrit..."
+./SetupGerrit.sh || echo "Gerrit setup failed, continuing. Run this again to setup Gerrit."
+echo
+
+# Make the topic stage a non-fatal error too
+echo "Setting up the topic stage..."
+./SetupTopicStage.sh || echo "Failed to setup topic stage. Run this again to setup stage."
+echo
+
+echo "Suggesting git tips..."
+./GitTips.sh || exit 1
+echo
+
+# Record the version of this setup so Hooks/pre-commit can check it.
+SetupForDevelopment_VERSION=2
+git config hooks.SetupForDevelopment ${SetupForDevelopment_VERSION}
diff --git a/Utilities/UploadBinaryData.py b/Utilities/UploadBinaryData.py
new file mode 100755
index 0000000..a8cab39
--- /dev/null
+++ b/Utilities/UploadBinaryData.py
@@ -0,0 +1,206 @@
+#!/usr/bin/env python
+
+from __future__ import print_function
+
+description = """
+Upload binary data to Midas.
+
+Since every local Git repository contains a copy of the entire project history,
+it is important to avoid adding large binary files directly to the repository.
+Large binary files added and removed through the history of a project will cause
+the repository to become bloated, take up too much disk space, require excessive
+time and bandwidth to download, etc.
+
+The solution to this problem adopted by this project is to store binary files,
+such as images, in a separate location outside the repository, then download the
+files at build time with CMake.
+
+A "content link" file containing an identifying MD5 checksum is stored in the
+Git repository at the path where the file would exist with the ".md5" extension
+added to the file.  CMake will find these content link files at build time,
+download them from a list of server resources, and create symlinks or copies of
+the original files at the corresponding location in the build tree.
+
+The Midas server at
+
+  https://midas3.kitware.com/midas/
+
+is an ITK community resource where any community member can upload binary data
+files.  This script automates the upload of data to the server and generation of
+the content link file.  Before using this script, please go to the Midas
+website, register, and join the ITK community.
+
+This script requires the Python module pydas:
+
+    https://github.com/midasplatform/pydas
+
+which can be installed with::
+
+  pip install pydas
+
+Pass in the input binary files to be uploaded. These should be files
+located in the SimpleITK source tree. They will be uploaded and
+replaced with a *.md5 file that can be added to the current
+commit with "git add -- path/to/file.md5".
+"""
+
+import optparse
+import hashlib
+import os
+import subprocess
+import sys
+import pydas
+
+
+def connect_to_midas(email=None, api_key=None):
+    midas_url = 'https://midas3.kitware.com/midas/'
+    #pydas.login(url=midas_url, email=email, api_key=api_key)
+    try:
+        pydas.login(url=midas_url, email=email, api_key=api_key)
+    except:
+        print('Error occurred while logging in to ' + midas_url)
+        sys.exit(1)
+    session = pydas.session
+    communicator = session.communicator
+    return session, communicator
+
+
+def upload_to_midas(input_file, output_file, folders, session, communicator):
+    # get the MD5 checksum
+    print('Computing MD5 checksum...')
+    md5 = hashlib.md5()
+    with open(input_file, 'rb') as fp:
+        for chunk in iter(lambda: fp.read(128 * md5.block_size), b''):
+            md5.update(chunk)
+    md5hash = md5.hexdigest()
+    print('Checksum: ' + md5hash)
+
+    # upload to Midas
+    def get_child_folder(parent, child_name):
+        children = communicator.folder_children(session.token,
+                                                parent['folder_id'])
+        for folder in children['folders']:
+            if folder['name'] == child_name:
+                return folder
+        return None
+    itk_community = communicator.get_community_by_name('ITK')
+    itk_public = get_child_folder(itk_community, 'Public')
+    simpleitk = get_child_folder(itk_public, 'SimpleITK')
+
+    current_folder = simpleitk
+    for folder in folders:
+        child_folder = get_child_folder(current_folder, folder)
+        if child_folder is None:
+            print('Creating folder: ' + folder)
+            current_folder = \
+                communicator.create_folder(session.token,
+                                           folder,
+                                           current_folder['folder_id'])
+        else:
+            current_folder = child_folder
+
+    # get the existing or create a new item to hold the file
+    item_name = os.path.basename(input_file)
+    item_id = None
+    current_folder_children = \
+        communicator.folder_children(session.token,
+                                     current_folder['folder_id'])
+    if 'items' in current_folder_children:
+        for item in current_folder_children['items']:
+            if item['name'] == item_name:
+                item_id = item['item_id']
+                break
+
+    if item_id is None:
+        new_item = communicator.create_item(session.token, item_name,
+                                            current_folder['folder_id'])
+        item_id = new_item['item_id']
+
+    upload_token = communicator.generate_upload_token(session.token,
+                                                      item_id,
+                                                      item_name,
+                                                      md5hash)
+    if upload_token != "":
+        communicator.perform_upload(upload_token,
+                                    item_name,
+                                    item_id=item_id,
+                                    revision='head',
+                                    filepath=input_file)
+
+    # write the content link file
+    with open(output_file, 'w') as fp:
+        fp.write(md5hash)
+        fp.write('\n')
+
+
+def find_git_dir(filepath):
+    """Find our best estimate of GIT_DIR to locate the root of the SimpleITK
+    repository."""
+    filepath = os.path.abspath(filepath)
+    head, tail = os.path.split(filepath)
+    previous_head = ''
+    while head != previous_head:
+        if os.path.exists(os.path.join(head, '.git')):
+            return head
+        previous_head = head
+        head, tail = os.path.split(head)
+    print('Could not find the root of the SimpleITK repository!')
+    sys.exit(1)
+
+
+def run(input_files, output_files,
+        email=None, api_key=None,
+        no_delete=False):
+    git_dir = find_git_dir(input_files[0])
+
+    git_email_cmd = subprocess.Popen(['git', 'config', 'user.email'],
+                                     cwd=git_dir,
+                                     stdout=subprocess.PIPE)
+    if git_email_cmd.wait() is 0:
+        git_email = git_email_cmd.stdout.readline().strip()
+        email_input = raw_input('Email [' + git_email + ']: ')
+        if email_input == '':
+            email = git_email
+        else:
+            email = email_input
+
+    session, communicator = connect_to_midas(email, api_key)
+
+    for ii in range(len(input_files)):
+        input_abspath = os.path.abspath(input_files[ii])
+        folders = input_abspath[len(git_dir)+1:].split(os.path.sep)[:-1]
+        upload_to_midas(input_files[ii], output_files[ii], folders,
+                        session, communicator)
+
+        if not no_delete:
+            os.remove(input_files[ii])
+
+
+if __name__ == '__main__':
+    usage = "%prog [options] input1 input2 ... inputN"
+    parser = optparse.OptionParser(usage=usage)
+    parser.add_option('--api-key-file', '-k', dest='api_key_file',
+            help="A file that contains your Midas user's API key.")
+    parser.add_option('--email', '-e',
+            help="Email address associated with your Midas account.")
+    parser.add_option('--no-delete', '-n', action='store_true',
+            dest='no_delete',
+            help='Do not remove the input files after upload.')
+    (options, input_files) = parser.parse_args()
+
+    if options.api_key_file:
+        with open(options.api_key_file, 'r') as fp:
+            api_key = fp.readline()
+        api_key = api_key.strip()
+    else:
+        api_key = None
+
+    output_files = []
+    for ii in range(len(input_files)):
+        output_files.append(input_files[ii] + '.md5')
+
+    no_delete = options.no_delete
+
+    run(input_files, output_files,
+        email=options.email, api_key=api_key,
+        no_delete=no_delete)
diff --git a/Utilities/filters.csv b/Utilities/filters.csv
new file mode 100644
index 0000000..935e362
--- /dev/null
+++ b/Utilities/filters.csv
@@ -0,0 +1,388 @@
+Filter,ITK,SITK,Remark,ToDo
+AbsImageFilter,True,True,,False
+AbsoluteValueDifferenceImageFilter,True,True,,False
+AccumulateImageFilter,True,False,Duplicate of Projection filters,False
+AcosImageFilter,True,True,,False
+AdaptiveHistogramEqualizationImageFilter,True,True,,True
+AddImageFilter,True,True,,False
+AdditiveGaussianNoiseImageFilter,True,True,,False
+AndImageFilter,True,True,,False
+AnisotropicDiffusionImageFilter,True,False,base class,False
+AnisotropicFourthOrderLevelSetImageFilter,True,False,,True
+AntiAliasBinaryImageFilter,True,True,,True
+ApproximateSignedDistanceMapImageFilter,True,True,,False
+AreaClosingImageFilter,True,False,,False
+AreaOpeningImageFilter,True,False,,False
+AsinImageFilter,True,True,,False
+Atan2ImageFilter,True,True,,False
+AtanImageFilter,True,True,,False
+BSplineDecompositionImageFilter,True,False,,True
+BSplineDownsampleImageFilter,True,False,,True
+BSplineUpsampleImageFilter,True,False,,True
+BayesianClassifierImageFilter,True,False,,True
+BayesianClassifierInitializationImageFilter,True,False,,True
+BilateralImageFilter,True,True,,False
+BinShrinkImageFilter,True,True,,False
+BinaryClosingByReconstructionImageFilter,True,True,,False
+BinaryContourImageFilter,True,True,,False
+BinaryDilateImageFilter,True,True,,False
+BinaryErodeImageFilter,True,True,,False
+BinaryFillholeImageFilter,True,True,,False
+BinaryGrindPeakImageFilter,True,True,,False
+BinaryMagnitudeImageFilter,True,True,,False
+BinaryMedianImageFilter,True,True,,False
+BinaryMinMaxCurvatureFlowImageFilter,True,True,,False
+BinaryMorphologicalClosingImageFilter,True,True,,False
+BinaryMorphologicalOpeningImageFilter,True,True,,False
+BinaryNotImageFilter,True,True,,True
+BinaryOpeningByReconstructionImageFilter,True,True,,False
+BinaryProjectionImageFilter,True,True,,False
+BinaryPruningImageFilter,True,False,Check functionality in 3D,True
+BinaryReconstructionByDilationImageFilter,True,True,,False
+BinaryReconstructionByErosionImageFilter,True,True,,False
+BinaryShapeKeepNObjectsImageFilter,True,False,,True
+BinaryShapeOpeningImageFilter,True,False,,True
+BinaryStatisticsKeepNObjectsImageFilter,True,False,,True
+BinaryStatisticsOpeningImageFilter,True,False,,True
+BinaryThinningImageFilter,True,True,,False
+BinaryThresholdImageFilter,True,True,,False
+BinaryThresholdProjectionImageFilter,True,True,,True
+BinomialBlurImageFilter,True,True,,False
+BitwiseNotImageFilter,False,True,,False
+BlackTopHatImageFilter,True,True,,False
+BlockMatchingImageFilter,True,False,,False
+BoundedReciprocalImageFilter,True,True,,False
+BoxImageFilter,True,False,base class,False
+BoxMeanImageFilter,True,True,,False
+BoxSigmaImageFilter,True,True,,False
+CannyEdgeDetectionImageFilter,True,True,,False
+CannySegmentationLevelSetImageFilter,True,False,This filter has a large number of parameters,True
+CastImageFilter,True,True,,False
+ChangeInformationImageFilter,True,False,No need for a filter to do this in SimpleITK,False
+ChangeLabelImageFilter,True,True,,True
+CheckerBoardImageFilter,True,True,,False
+ClampImageFilter,True,True,,True
+ClosingByReconstructionImageFilter,True,True,,False
+CollidingFrontsImageFilter,True,True,,True
+ComparisonImageFilter,True,False,,False
+ComplexToComplexFFTImageFilter,True,False,,False
+ComplexToImaginaryImageFilter,True,True,,False
+ComplexToModulusImageFilter,True,True,,False
+ComplexToPhaseImageFilter,True,True,,False
+ComplexToRealImageFilter,True,True,,False
+ComposeImageFilter,True,True,,False
+ConfidenceConnectedImageFilter,True,True,,False
+ConnectedComponentImageFilter,True,True,,False
+ConnectedThresholdImageFilter,True,True,,False
+ConstantPadImageFilter,True,True,,False
+ConstrainedValueAdditionImageFilter,True,False,,True
+ConstrainedValueDifferenceImageFilter,True,False,,True
+ContourDirectedMeanDistanceImageFilter,True,False,,True
+ContourExtractor2DImageFilter,True,False,,False
+ContourMeanDistanceImageFilter,True,False,,True
+ConvolutionImageFilter,True,True,,False
+CosImageFilter,True,True,,False
+CropImageFilter,True,True,,False
+CurvatureAnisotropicDiffusionImageFilter,True,True,,False
+CurvatureFlowImageFilter,True,True,,False
+CurvesLevelSetImageFilter,True,False,,True
+CyclicShiftImageFilter,True,True,,True
+DanielssonDistanceMapImageFilter,True,True,,False
+DenseFiniteDifferenceImageFilter,True,False,base class,False
+DerivativeImageFilter,True,True,,False
+DifferenceOfGaussiansGradientImageFilter,True,False,,True
+DilateObjectMorphologyImageFilter,True,True,,False
+DirectFourierReconstructionImageToImageFilter,True,False,,False
+DirectedHausdorffDistanceImageFilter,True,False,,True
+DiscreteGaussianDerivativeImageFilter,True,True,,True
+DiscreteGaussianImageFilter,True,True,,False
+DivideFloorImageFilter,False,True,,False
+DivideImageFilter,True,True,,False
+DivideRealImageFilter,False,True,,False
+DoubleThresholdImageFilter,True,True,,False
+EdgePotentialImageFilter,True,True,,False
+EigenAnalysis2DImageFilter,True,False,,True
+EqualImageFilter,False,True,,False
+ErodeObjectMorphologyImageFilter,True,True,,False
+ExpImageFilter,True,True,,False
+ExpNegativeImageFilter,True,True,,False
+ExpandImageFilter,True,True,,True
+ExtractImageFilter,True,True,,False
+FFTConvolutionImageFilter,True,True,,False
+FFTNormalizedCorrelationImageFilter,True,True,,False
+FFTPadImageFilter,True,True,,False
+FFTShiftImageFilter,True,True,,False
+FastApproximateRankImageFilter,True,True,,True
+FastChamferDistanceImageFilter,True,False,,True
+FastMarchingBaseImageFilter,False,True,,False
+FastMarchingExtensionImageFilter,True,False,,True
+FastMarchingImageFilter,True,True,,False
+FastMarchingUpwindGradientImageFilter,True,True,,True
+FiniteDifferenceImageFilter,True,False,base class,False
+FlipImageFilter,True,True,,False
+ForwardFFTImageFilter,True,True,,False
+FullToHalfHermitianImageFilter,True,False,,True
+GaborImageSource,True,False,,False
+GaussianImageSource,True,False,,False
+GenerateImageSource,True,False,,False
+GeodesicActiveContourLevelSetImageFilter,True,True,,False
+GeodesicActiveContourShapePriorLevelSetImageFilter,True,False,,False
+GradientAnisotropicDiffusionImageFilter,True,True,,False
+GradientImageFilter,True,True,,False
+GradientMagnitudeImageFilter,True,True,,True
+GradientMagnitudeRecursiveGaussianImageFilter,True,True,,False
+GradientRecursiveGaussianImageFilter,True,True,,True
+GradientVectorFlowImageFilter,True,False,,True
+GrayscaleConnectedClosingImageFilter,True,True,,True
+GrayscaleConnectedOpeningImageFilter,True,True,,True
+GrayscaleDilateImageFilter,True,True,,False
+GrayscaleErodeImageFilter,True,True,,False
+GrayscaleFillholeImageFilter,True,True,,False
+GrayscaleFunctionDilateImageFilter,True,False,,True
+GrayscaleFunctionErodeImageFilter,True,False,,True
+GrayscaleGeodesicDilateImageFilter,True,True,,False
+GrayscaleGeodesicErodeImageFilter,True,True,,False
+GrayscaleGrindPeakImageFilter,True,True,,False
+GrayscaleMorphologicalClosingImageFilter,True,True,,False
+GrayscaleMorphologicalOpeningImageFilter,True,True,,False
+GreaterEqualImageFilter,False,True,,False
+GreaterImageFilter,False,True,,False
+GridForwardWarpImageFilter,True,False,,False
+GridImageSource,True,False,,False
+HConcaveImageFilter,True,True,,False
+HConvexImageFilter,True,True,,False
+HMaximaImageFilter,True,True,,False
+HMinimaImageFilter,True,True,,False
+HalfHermitianToRealInverseFFTImageFilter,True,True,,True
+HalfToFullHermitianImageFilter,True,False,,True
+HardConnectedComponentImageFilter,True,False,,True
+HashImageFilter,False,True,,False
+HausdorffDistanceImageFilter,True,True,,False
+Hessian3DToVesselnessMeasureImageFilter,True,False,,True
+HessianRecursiveGaussianImageFilter,True,False,,True
+HessianToObjectnessMeasureImageFilter,True,False,,False
+HistogramMatchingImageFilter,True,True,,False
+HistogramThresholdImageFilter,True,False,base class,False
+HistogramToEntropyImageFilter,True,False,Requires ITK histogram,False
+HistogramToIntensityImageFilter,True,False,Requires ITK histogram,False
+HistogramToLogProbabilityImageFilter,True,False,Requires ITK histogram,False
+HistogramToProbabilityImageFilter,True,False,Requires ITK histogram,False
+HoughTransform2DCirclesImageFilter,True,False,A solution is needed for the spacial object output,False
+HoughTransform2DLinesImageFilter,True,False,A solution is needed for the spacial object output,False
+HuangThresholdImageFilter,True,True,,False
+ImageToImageFilter,True,False,base class,False
+ImportImageFilter,True,False,Currently manually implemented in SimpleITK,False
+InPlaceImageFilter,True,False,base class,False
+IntensityWindowingImageFilter,True,True,,False
+IntermodesThresholdImageFilter,True,True,,False
+InterpolateImageFilter,True,False,,True
+InverseDeconvolutionImageFilter,True,True,,False
+InverseDisplacementFieldImageFilter,False,True,,False
+InverseFFTImageFilter,True,True,,False
+InvertDisplacementFieldImageFilter,False,True,,False
+InvertIntensityImageFilter,True,True,,False
+IsoContourDistanceImageFilter,True,True,,False
+IsoDataThresholdImageFilter,True,True,,False
+IsolatedConnectedImageFilter,True,True,,False
+IsolatedWatershedImageFilter,True,True,,False
+IsotropicFourthOrderLevelSetImageFilter,True,False,,True
+IterativeDeconvolutionImageFilter,True,False,,False
+JoinSeriesImageFilter,True,True,,False
+KappaSigmaThresholdImageFilter,True,False,,True
+KernelImageFilter,True,False,base class?,False
+KittlerIllingworthThresholdImageFilter,True,True,,False
+LabelContourImageFilter,True,True,,False
+LabelGeometryImageFilter,True,False,,False
+LabelIntensityStatisticsImageFilter,False,True,,False
+LabelMapContourOverlayImageFilter,True,True,,True
+LabelMapMaskImageFilter,True,True,,False
+LabelMapOverlayImageFilter,True,True,,False
+LabelMapToBinaryImageFilter,True,True,,False
+LabelMapToLabelImageFilter,True,True,,False
+LabelMapToRGBImageFilter,True,True,,False
+LabelOverlapMeasuresImageFilter,False,True,,False
+LabelOverlayImageFilter,True,True,,False
+LabelShapeKeepNObjectsImageFilter,True,False,,True
+LabelShapeOpeningImageFilter,True,False,,True
+LabelShapeStatisticsImageFilter,False,True,,False
+LabelStatisticsImageFilter,True,True,,False
+LabelStatisticsKeepNObjectsImageFilter,True,False,,True
+LabelStatisticsOpeningImageFilter,True,False,,True
+LabelToRGBImageFilter,True,True,,False
+LabelVotingImageFilter,True,True,,True
+LandweberDeconvolutionImageFilter,True,True,,False
+LaplacianImageFilter,True,True,,False
+LaplacianRecursiveGaussianImageFilter,True,True,,False
+LaplacianSegmentationLevelSetImageFilter,True,True,,False
+LaplacianSharpeningImageFilter,True,True,,False
+LessEqualImageFilter,False,True,,False
+LessImageFilter,False,True,,False
+LiThresholdImageFilter,True,True,,False
+Log10ImageFilter,True,True,,False
+LogImageFilter,True,True,,False
+MagnitudeAndPhaseToComplexImageFilter,True,True,,False
+MaskImageFilter,True,True,,False
+MaskNegatedImageFilter,True,True,,False
+MaskedFFTNormalizedCorrelationImageFilter,True,True,,False
+MaskedRankImageFilter,True,False,,False
+MaximumEntropyThresholdImageFilter,True,True,,False
+MaximumImageFilter,True,True,,False
+MaximumProjectionImageFilter,True,True,,False
+MeanImageFilter,True,True,,False
+MeanProjectionImageFilter,True,True,,False
+MedianImageFilter,True,True,,False
+MedianProjectionImageFilter,True,True,,False
+MinMaxCurvatureFlowImageFilter,True,True,,False
+MinimumImageFilter,True,True,,False
+MinimumMaximumImageFilter,True,True,,False
+MinimumProjectionImageFilter,True,True,,False
+MirrorPadImageFilter,True,True,,False
+ModulusImageFilter,True,True,,False
+MomentsThresholdImageFilter,True,True,,False
+MorphologicalGradientImageFilter,True,True,,False
+MorphologicalWatershedFromMarkersImageFilter,True,True,,True
+MorphologicalWatershedImageFilter,True,True,,True
+MovingHistogramImageFilter,True,False,,False
+MultiLabelSTAPLEImageFilter,False,True,,False
+MultiResolutionPyramidImageFilter,True,False,How can the multiple output be delt with?,False
+MultiScaleHessianBasedMeasureImageFilter,True,False,,False
+MultiplyImageFilter,True,True,,False
+N4BiasFieldCorrectionImageFilter,False,True,,False
+NarrowBandCurvesLevelSetImageFilter,True,False,,True
+NarrowBandLevelSetImageFilter,True,False,,True
+NarrowBandThresholdSegmentationLevelSetImageFilter,True,False,,True
+NaryAddImageFilter,True,True,,True
+NaryMaximumImageFilter,True,True,,True
+NeighborhoodConnectedImageFilter,True,True,,False
+NoiseBaseImageFilter,True,False,,False
+NoiseImageFilter,True,True,,False
+NormalizeImageFilter,True,True,,False
+NormalizeToConstantImageFilter,True,True,,False
+NormalizedCorrelationImageFilter,False,True,,False
+NotEqualImageFilter,False,True,,False
+NotImageFilter,True,True,,False
+OpeningByReconstructionImageFilter,True,True,,False
+OrImageFilter,True,True,,False
+OrientImageFilter,True,False,,True
+OtsuMultipleThresholdsImageFilter,True,True,,True
+OtsuThresholdImageFilter,True,True,,False
+PadImageFilter,True,False,,True
+ParallelSparseFieldLevelSetImageFilter,True,False,base class,False
+ParametricImageSource,True,False,,False
+PasteImageFilter,True,True,,False
+PatchBasedDenoisingImageFilter,False,True,,False
+PermuteAxesImageFilter,True,True,,False
+PhysicalPointImageSource,True,False,,False
+PipelineMonitorImageFilter,True,False,,False
+PowImageFilter,True,True,,False
+ProjectedLandweberDeconvolutionImageFilter,True,True,,False
+PyImageFilter,True,False,,False
+RGBToLuminanceImageFilter,True,False,,True
+RandomImageSource,True,False,in itk::Testing namespace,False
+RankImageFilter,True,True,,True
+RealAndImaginaryToComplexImageFilter,False,True,,False
+RealToHalfHermitianForwardFFTImageFilter,True,True,,True
+ReconstructionByDilationImageFilter,True,True,,True
+ReconstructionByErosionImageFilter,True,True,,True
+RecursiveGaussianImageFilter,True,True,,False
+RecursiveMultiResolutionPyramidImageFilter,True,False,How can the multiple output be delt with?,False
+RecursiveSeparableImageFilter,True,False,base class,False
+RegionOfInterestImageFilter,True,True,,False
+RegionalMaximaImageFilter,True,True,,True
+RegionalMinimaImageFilter,True,True,,True
+ReinitializeLevelSetImageFilter,True,False,,True
+RelabelComponentImageFilter,True,True,,False
+RenyiEntropyThresholdImageFilter,True,True,,False
+ResampleImageFilter,True,True,,False
+RescaleIntensityImageFilter,True,True,,False
+RichardsonLucyDeconvolutionImageFilter,True,True,,False
+RobustAutomaticThresholdImageFilter,True,False,,False
+RoundImageFilter,True,False,,False
+STAPLEImageFilter,True,True,,True
+SaltAndPepperNoiseImageFilter,True,True,,False
+ScalarChanAndVeseDenseLevelSetImageFilter,True,True,,True
+ScalarChanAndVeseSparseLevelSetImageFilter,True,False,,False
+ScalarConnectedComponentImageFilter,True,True,,False
+ScalarImageKmeansImageFilter,True,True,,False
+ScalarToRGBColormapImageFilter,True,True,,False
+SegmentationLevelSetImageFilter,True,False,base class?,False
+ShanbhagThresholdImageFilter,True,True,,False
+ShapeDetectionLevelSetImageFilter,True,True,,False
+ShapePriorSegmentationLevelSetImageFilter,True,False,,True
+ShapeRelabelImageFilter,True,False,,True
+ShiftScaleImageFilter,True,True,,False
+ShotNoiseImageFilter,True,True,,False
+ShrinkImageFilter,True,True,,False
+SigmoidImageFilter,True,True,,False
+SignedDanielssonDistanceMapImageFilter,True,True,,False
+SignedMaurerDistanceMapImageFilter,True,True,,False
+SimilarityIndexImageFilter,True,True,,True
+SimpleContourExtractorImageFilter,True,True,,False
+SinImageFilter,True,True,,False
+SliceBySliceImageFilter,True,False,This is for pipelines,False
+SliceImageFilter,False,True,,False
+SmoothingRecursiveGaussianImageFilter,True,True,,False
+SobelEdgeDetectionImageFilter,True,True,,False
+SparseFieldFourthOrderLevelSetImageFilter,True,False,,True
+SparseFieldLevelSetImageFilter,True,False,base class?,False
+SpatialObjectToImageFilter,True,False,A solution is needed for spacial object input,False
+SpeckleNoiseImageFilter,True,True,,False
+SqrtImageFilter,True,True,,False
+SquareImageFilter,True,True,,False
+SquaredDifferenceImageFilter,True,True,,False
+StandardDeviationProjectionImageFilter,True,True,,False
+StatisticsImageFilter,True,True,,False
+StatisticsRelabelImageFilter,True,False,,True
+StochasticFractalDimensionImageFilter,True,False,,False
+StreamingImageFilter,True,False,This is for pipelines,False
+SubtractImageFilter,True,True,,False
+SumProjectionImageFilter,True,True,,False
+TanImageFilter,True,True,,False
+TernaryAddImageFilter,True,True,,False
+TernaryMagnitudeImageFilter,True,True,,False
+TernaryMagnitudeSquaredImageFilter,True,True,,False
+ThresholdImageFilter,True,True,,False
+ThresholdLabelerImageFilter,True,False,,True
+ThresholdMaximumConnectedComponentsImageFilter,True,True,,False
+ThresholdSegmentationLevelSetImageFilter,True,True,,False
+TikhonovDeconvolutionImageFilter,True,True,,False
+TileImageFilter,True,True,,True
+TobogganImageFilter,True,False,,True
+TriangleThresholdImageFilter,True,True,,False
+UnaryMinusImageFilter,False,True,,False
+UnsharpMaskImageFilter,True,False,,False
+UnsharpMaskLevelSetImageFilter,True,False,,True
+ValuedRegionalMaximaImageFilter,True,True,,True
+ValuedRegionalMinimaImageFilter,True,True,,True
+VectorCastImageFilter,True,False,Already integrated into the Cast image filter,False
+VectorConfidenceConnectedImageFilter,True,True,,True
+VectorConnectedComponentImageFilter,True,True,,False
+VectorCurvatureAnisotropicDiffusionImageFilter,True,False,,True
+VectorExpandImageFilter,True,False,,True
+VectorGradientAnisotropicDiffusionImageFilter,True,False,,True
+VectorGradientMagnitudeImageFilter,True,False,,True
+VectorIndexSelectionCastImageFilter,True,True,,False
+VectorMagnitudeImageFilter,True,True,,False
+VectorResampleImageFilter,True,False,Same functionality exists in ResampleImageFilter,False
+VectorRescaleIntensityImageFilter,True,False,,True
+VectorThresholdSegmentationLevelSetImageFilter,True,False,,True
+VnlComplexToComplexFFTImageFilter,True,False,,False
+VnlForwardFFTImageFilter,True,False,Internal FFT filter,False
+VnlHalfHermitianToRealInverseFFTImageFilter,True,False,Internal FFT filter,False
+VnlInverseFFTImageFilter,True,False,Internal FFT filter,False
+VnlRealToHalfHermitianForwardFFTImageFilter,True,False,Internal FFT filter,False
+VoronoiSegmentationImageFilter,True,False,`,True
+VotingBinaryHoleFillingImageFilter,True,True,,False
+VotingBinaryImageFilter,True,True,,False
+VotingBinaryIterativeHoleFillingImageFilter,True,True,,False
+WarpImageFilter,True,True,,True
+WatershedImageFilter,True,False,,True
+WeightedAddImageFilter,True,False,,True
+WhiteTopHatImageFilter,True,True,,False
+WienerDeconvolutionImageFilter,True,True,,False
+WrapPadImageFilter,True,True,,False
+XorImageFilter,True,True,,False
+YenThresholdImageFilter,True,True,,False
+ZeroCrossingBasedEdgeDetectionImageFilter,True,True,,False
+ZeroCrossingImageFilter,True,True,,False
+ZeroFluxNeumannPadImageFilter,True,True,,True
diff --git a/Version.cmake b/Version.cmake
new file mode 100644
index 0000000..47f066d
--- /dev/null
+++ b/Version.cmake
@@ -0,0 +1,40 @@
+#
+# ONLY MODIFY TO CHANGE VERSION
+#
+# The number of commits since last this file has changed is used to
+# define "dev" and "post", modification of this file will reset that
+# version.
+#
+
+# Version info
+
+set(SimpleITK_VERSION_MAJOR 1)
+set(SimpleITK_VERSION_MINOR 0)
+set(SimpleITK_VERSION_PATCH 1)
+#set(SimpleITK_VERSION_TWEAK "")
+
+
+include(sitkSourceVersion)
+
+# pre-release codes are defined based on suffix of most recent tags.
+
+# a[N]+<b[N]+<c[N]+=rc[N]+
+if(NOT ${_GIT_VERSION_RC} STREQUAL "" )
+  set(SimpleITK_VERSION_RC "${_GIT_VERSION_RC}")
+endif()
+
+
+# The hash is the current git sha1 hash tag of the HEAD.
+set(SimpleITK_VERSION_HASH "${_GIT_VERSION_HASH}")
+
+# DEV or POST is set to the number of commits since this file has been
+# changed. If the MAJOR.MINOR.[PATCH[.TWEAK]] matches "closest"
+# version tag then its consider in the release branch and POST is set
+# while DEV is undefined, otherwise we are considered under
+# development and DEV is set and POST is undefined.
+if(DEFINED _GIT_VERSION_POST)
+  set(SimpleITK_VERSION_POST "${_GIT_VERSION_POST}")
+elseif(DEFINED _GIT_VERSION_DEV)
+  set(SimpleITK_VERSION_DEV "${_GIT_VERSION_DEV}")
+endif()
+
diff --git a/Wrapping/CMakeLists.txt b/Wrapping/CMakeLists.txt
new file mode 100644
index 0000000..5373502
--- /dev/null
+++ b/Wrapping/CMakeLists.txt
@@ -0,0 +1,54 @@
+
+# A general packaging target, not built by default, to build packages for each
+# language.  This should depend on all language specific targets.
+
+add_custom_target( dist ${CMAKE_COMMAND} -E echo "Finished generating wrapped packages for distribution..." )
+
+#
+# lua SWIG configuration
+#
+if ( WRAP_LUA )
+  add_subdirectory ( Lua )
+endif()
+
+#
+# python SWIG configuration
+#
+if ( WRAP_PYTHON )
+  add_subdirectory ( Python )
+endif()
+
+#
+# ruby SWIG configuration
+#
+if ( WRAP_RUBY )
+  add_subdirectory ( Ruby )
+endif()
+
+#
+# JAVA SWIG configuration
+#
+if ( WRAP_JAVA )
+  add_subdirectory( Java )
+endif()
+
+#
+# C# SWIG configuration
+#
+if ( WRAP_CSHARP )
+  add_subdirectory ( CSharp )
+endif()
+
+#
+# TCL SWIG configuration
+#
+if ( WRAP_TCL )
+  add_subdirectory ( Tcl )
+endif()
+
+#
+# R SWIG configuration
+#
+if ( WRAP_R )
+  add_subdirectory( R )
+endif()
diff --git a/Wrapping/CSharp/AssemblyInfo.cs.in b/Wrapping/CSharp/AssemblyInfo.cs.in
new file mode 100644
index 0000000..26bc4a8
--- /dev/null
+++ b/Wrapping/CSharp/AssemblyInfo.cs.in
@@ -0,0 +1,33 @@
+#region Copyright Insight Software Consortium
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0.txt
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#endregion
+
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyVersion("@SimpleITK_VERSION_CSHARP_AssemblyVersion@")]
+[assembly: AssemblyTitle("@PROJECT_NAME@ C# @CSHARP_PLATFORM@ wrapper @SimpleITK_VERSION@")]
+[assembly: AssemblyCopyright("Copyright Insight Software Consortium, Apache License, Version 2.0")]
+[assembly: AssemblyDescription("@PROJECT_NAME@ C# @CSHARP_PLATFORM@ wrapper @SimpleITK_VERSION@, compiled with @CSHARP_TYPE@ @CSHARP_VERSION@, using ITK @ITK_VERSION_MAJOR at .@ITK_VERSION_MINOR at .@ITK_VERSION_PATCH@")]
+[assembly: AssemblyCompany("Insight Software Consortium")]
+[assembly: AssemblyFileVersion("@SimpleITK_VERSION@")]
+[assembly: AssemblyCulture("")]
+[assembly: AssemblyTrademark("@PROJECT_NAME@")]
+[assembly: AssemblyProduct("@PROJECT_NAME@")]
+[assembly: AssemblyInformationalVersion("@SimpleITK_VERSION@")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyDelaySign(false)]
+[assembly: AssemblyKeyName("")]
+[assembly: AssemblyKeyFile("")]
diff --git a/Wrapping/CSharp/CMakeLists.txt b/Wrapping/CSharp/CMakeLists.txt
new file mode 100644
index 0000000..f461c0c
--- /dev/null
+++ b/Wrapping/CSharp/CMakeLists.txt
@@ -0,0 +1,103 @@
+cmake_minimum_required ( VERSION 2.8.1 FATAL_ERROR )
+
+project( SimpleITK_CSharp )
+
+include(../../CMake/sitkProjectLanguageCommon.cmake NO_POLICY_SCOPE)
+
+
+# Find C#
+find_package( CSharp REQUIRED )
+include( ${CSHARP_USE_FILE} )
+
+include_directories( ${SimpleITK_INCLUDE_DIRS} )
+
+set_source_files_properties ( SimpleITK.i PROPERTIES CPLUSPLUS ON )
+
+# CSharp version requirements: http://msdn.microsoft.com/en-us/library/system.reflection.assemblyversionattribute.aspx
+# major.minor[.build[.revision]] where all components are 16-bit unsigned integers
+set(_build 0)
+if(DEFINED SimpleITK_VERSION_POST AND NOT "${SimpleITK_VERSION_POST}" STREQUAL "")
+  math(EXPR _build "${SimpleITK_VERSION_POST}")
+elseif(DEFINED SimpleITK_VERSION_DEV AND NOT "${SimpleITK_VERSION_DEV}" STREQUAL "")
+  math(EXPR _build "32768+${SimpleITK_VERSION_DEV}")
+endif()
+if(_build GREATER 65535)
+  message(WARNING "CSharp build component overflowed, setting to 65535 instead of ${_build}.")
+  set(_build 65535)
+endif()
+
+set(_revision 0)
+if(DEFINED SimpleITK_VERSION_PATCH)
+  math(EXPR _revision "${SimpleITK_VERSION_PATCH}<<8")
+  if(DEFINED SimpleITK_VERSION_TWEAK)
+    math(EXPR _revision "${_revision}+${SimpleITK_VERSION_TWEAK}")
+  endif()
+endif()
+if(_revision GREATER 65535)
+  message(WARNING "CSharp revision component overflowed, setting to 65535 instead of ${_revision}.")
+  set(_revision 65535)
+endif()
+
+  set(SimpleITK_VERSION_CSHARP_AssemblyVersion "${SimpleITK_VERSION_MAJOR}.${SimpleITK_VERSION_MINOR}.${_build}.${_revision}")
+
+  # Make sure the nested directory structure exists
+  set(CSHARP_SOURCE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/CSharpSources CACHE INTERNAL "")
+  set(CSHARP_BINARY_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/CSharpBinaries CACHE INTERNAL "")
+  file(MAKE_DIRECTORY ${CSHARP_SOURCE_DIRECTORY})
+  file(MAKE_DIRECTORY ${CSHARP_BINARY_DIRECTORY})
+
+  # Create swig target
+  set(CMAKE_SWIG_OUTDIR ${CSHARP_SOURCE_DIRECTORY})
+  if ( UNIX )
+    set(CMAKE_SWIG_FLAGS -dllimport \"libSimpleITKCSharpNative\")
+  else (WIN32 )
+    set(CMAKE_SWIG_FLAGS -dllimport \"SimpleITKCSharpNative\")
+  endif ( UNIX )
+  set(CMAKE_SWIG_FLAGS -I${CMAKE_CURRENT_SOURCE_DIR} -namespace \"itk.simple\" ${CMAKE_SWIG_GLOBAL_FLAGS} ${CMAKE_SWIG_FLAGS})
+  set(SWIG_MODULE_SimpleITKCSharpNative_EXTRA_DEPS ${SWIG_EXTRA_DEPS}
+    ${CMAKE_CURRENT_SOURCE_DIR}/CSharp.i
+    ${CMAKE_CURRENT_SOURCE_DIR}/CSharpTypemapHelper.i )
+  swig_add_module(SimpleITKCSharpNative csharp SimpleITK.i)
+  target_link_libraries(${SWIG_MODULE_SimpleITKCSharpNative_TARGET_NAME} ${SimpleITK_LIBRARIES})
+  set_target_properties(${SWIG_MODULE_SimpleITKCSharpNative_TARGET_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CSHARP_BINARY_DIRECTORY})
+  if ( UNIX )
+    set_target_properties(${SWIG_MODULE_SimpleITKCSharpNative_TARGET_NAME} PROPERTIES PREFIX "lib")
+    set_target_properties(${SWIG_MODULE_SimpleITKCSharpNative_TARGET_NAME} PROPERTIES SUFFIX ".so")
+  else ( WIN32 )
+    set_target_properties(${SWIG_MODULE_SimpleITKCSharpNative_TARGET_NAME} PROPERTIES PREFIX "")
+    set_target_properties(${SWIG_MODULE_SimpleITKCSharpNative_TARGET_NAME} PROPERTIES SUFFIX ".dll")
+    foreach ( CMAKE_CONFIGURATION_TYPE ${CMAKE_CONFIGURATION_TYPES} )
+      string(TOUPPER ${CMAKE_CONFIGURATION_TYPE} CMAKE_CONFIGURATION_TYPE)
+      set_target_properties(${SWIG_MODULE_SimpleITKCSharpNative_TARGET_NAME}
+        PROPERTIES LIBRARY_OUTPUT_DIRECTORY_${CMAKE_CONFIGURATION_TYPE} "${CSHARP_BINARY_DIRECTORY}")
+      set_target_properties(${SWIG_MODULE_SimpleITKCSharpNative_TARGET_NAME}
+        PROPERTIES RUNTIME_OUTPUT_DIRECTORY_${CMAKE_CONFIGURATION_TYPE} "${CSHARP_BINARY_DIRECTORY}")
+    endforeach( )
+  endif( UNIX )
+  sitk_strip_target( ${SWIG_MODULE_SimpleITKCSharpNative_TARGET_NAME} )
+
+  # These CSharp files are generated by SWIG, they are not there
+  # during the first build. But the charp_add_library will add them as
+  # a dependency when the exists. This is needed for CMP0058
+  file(GLOB _files "${CSHARP_SOURCE_DIRECTORY}/*.cs")
+  add_custom_command( TARGET ${SWIG_MODULE_SimpleITKCSharpNative_TARGET_NAME}
+    POST_BUILD
+    BYPRODUCTS ${_files} )
+
+  # Configure AssemblyInfo.cs
+  configure_file(
+    ${CMAKE_CURRENT_SOURCE_DIR}/AssemblyInfo.cs.in
+    ${CSHARP_SOURCE_DIRECTORY}/AssemblyInfo.cs
+    @ONLY
+  )
+
+  # Add managed wrapper
+  csharp_add_library(
+    SimpleITKCSharpManaged
+    ${CSHARP_SOURCE_DIRECTORY}/*.cs
+  )
+  add_dependencies(SimpleITKCSharpManaged ${SWIG_MODULE_SimpleITKCSharpNative_TARGET_NAME})
+
+
+# Packaging for distribution
+add_subdirectory(dist)
diff --git a/Wrapping/CSharp/CSharp.i b/Wrapping/CSharp/CSharp.i
new file mode 100644
index 0000000..4a849eb
--- /dev/null
+++ b/Wrapping/CSharp/CSharp.i
@@ -0,0 +1,268 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+// CSharp wrapping definitions
+
+#if SWIGCSHARP
+%include "enumtypesafe.swg" // csharp/enums.swg can not parse the templated code in PixelIDValueEnum
+%include "arrays_csharp.i"
+%include "std_string.i"
+%include "CSharpTypemapHelper.i"
+
+
+// Enable CSharp classes derived from Command Execute method to be
+// called from C++
+%feature("director") itk::simple::Command;
+
+%CSharpPointerTypemapHelper( itk::DataObject*, System.IntPtr )
+%CSharpPointerTypemapHelper( itk::Object::Pointer, System.IntPtr )
+%CSharpPointerTypemapHelper( itk::Optimizer::Pointer, System.IntPtr )
+%CSharpPointerTypemapHelper( itk::SingleValuedCostFunction::Pointer, System.IntPtr )
+%CSharpPointerTypemapHelper( itk::TransformBase::Pointer, System.IntPtr )
+
+%CSharpTypemapHelper( int8_t*, System.IntPtr )
+%CSharpTypemapHelper( uint8_t*, System.IntPtr )
+%CSharpTypemapHelper( int16_t*, System.IntPtr )
+%CSharpTypemapHelper( uint16_t*, System.IntPtr )
+%CSharpTypemapHelper( int32_t*, System.IntPtr )
+%CSharpTypemapHelper( uint32_t*, System.IntPtr )
+%CSharpTypemapHelper( float*, System.IntPtr )
+%CSharpTypemapHelper( double*, System.IntPtr )
+
+// Add override to ToString method
+%csmethodmodifiers ToString "public override";
+
+// Handle PermuteAxes DefaultOrder
+// TODO:
+//%apply unsigned int INOUT[] {unsigned int DefaultOrder[3]}
+
+// Extend Image class
+%typemap(cscode) itk::simple::Image %{
+
+  #region Unary operators
+
+  ///<summary>Unary negation operator calls SimpleITK.UnaryMinus.</summary>
+  public static Image operator -(Image img1) {
+    return SimpleITK.UnaryMinus(img1);
+  }
+
+  ///<summary>Unary addition operator returns self.</summary>
+  public static Image operator +(Image img1) {
+    return img1;
+  }
+
+  ///<summary>Logical negation operator calls SimpleITK.Not.</summary>
+  public static Image operator !(Image img1) {
+    return SimpleITK.Not(img1);
+  }
+
+  ///<summary>Bitwise complement operator calls SimpleITK.BitwiseNot.</summary>
+  public static Image operator ~(Image img1) {
+    return SimpleITK.BitwiseNot(img1);
+  }
+
+  ///<summary>True operator provided to keep compiler happy. Always returns true.</summary>
+  public static bool operator true(Image img1) {
+    return true;
+  }
+
+  ///<summary>False operator provided to keep compiler happy. Always returns false.</summary>
+  public static bool operator false(Image img1) {
+    return false;
+  }
+
+  #endregion
+
+  #region Binary mathematical operators
+
+  ///<summary>Binary addition operator calls SimpleITK.Add.</summary>
+  public static Image operator +(Image img1, Image img2) {
+    return SimpleITK.Add(img1, img2);
+  }
+
+  ///<summary>Binary addition operator calls SimpleITK.Add.</summary>
+  public static Image operator +(Image img1, double constant) {
+    return SimpleITK.Add(img1, constant);
+  }
+
+  ///<summary>Binary addition operator calls SimpleITK.Add.</summary>
+  public static Image operator +(double constant, Image img1) {
+    return SimpleITK.Add(constant, img1);
+  }
+
+  ///<summary>Binary subtraction operator calls SimpleITK.Subtract.</summary>
+  public static Image operator -(Image img1, Image img2) {
+    return SimpleITK.Subtract(img1, img2);
+  }
+
+  ///<summary>Binary subtraction operator calls SimpleITK.Subtract.</summary>
+  public static Image operator -(Image img1, double constant) {
+    return SimpleITK.Subtract(img1, constant);
+  }
+
+  ///<summary>Binary subtraction operator calls SimpleITK.Subtract.</summary>
+  public static Image operator -(double constant, Image img1) {
+    return SimpleITK.Subtract(constant, img1);
+  }
+
+  ///<summary>Binary multiply operator calls SimpleITK.Multiply.</summary>
+  public static Image operator *(Image img1, Image img2) {
+    return SimpleITK.Multiply(img1, img2);
+  }
+
+  ///<summary>Binary multiply operator calls SimpleITK.Multiply.</summary>
+  public static Image operator *(Image img1, double constant) {
+    return SimpleITK.Multiply(img1, constant);
+  }
+
+  ///<summary>Binary multiply operator calls SimpleITK.Multiply.</summary>
+  public static Image operator *(double constant, Image img1) {
+    return SimpleITK.Multiply(constant, img1);
+  }
+
+  ///<summary>Binary division operator calls SimpleITK.Divide.</summary>
+  public static Image operator /(Image img1, Image img2) {
+    return SimpleITK.Divide(img1, img2);
+  }
+
+  ///<summary>Binary division operator calls SimpleITK.Divide.</summary>
+  public static Image operator /(Image img1, double constant) {
+    return SimpleITK.Divide(img1, constant);
+  }
+
+  ///<summary>Binary division operator calls SimpleITK.Divide.</summary>
+  public static Image operator /(double constant, Image img1) {
+    return SimpleITK.Divide(constant, img1);
+  }
+
+  #endregion
+
+  #region Binary bitwise operators
+
+  ///<summary>Binary bitwise AND operator calls SimpleITK.And.</summary>
+  public static Image operator &(Image img1, Image img2) {
+    return SimpleITK.And(img1, img2);
+  }
+
+  ///<summary>Binary bitwise AND operator calls SimpleITK.And.</summary>
+  public static Image operator &(Image img1, int constant) {
+    return SimpleITK.And(img1, constant);
+  }
+
+  ///<summary>Binary bitwise AND operator calls SimpleITK.And.</summary>
+  public static Image operator &(int constant, Image img1) {
+    return SimpleITK.And(constant, img1);
+  }
+
+  ///<summary>Binary bitwise OR operator calls SimpleITK.Or.</summary>
+  public static Image operator |(Image img1, Image img2) {
+    return SimpleITK.Or(img1, img2);
+  }
+
+  ///<summary>Binary bitwise OR operator calls SimpleITK.Or.</summary>
+  public static Image operator |(Image img1, int constant) {
+    return SimpleITK.Or(img1, constant);
+  }
+
+  ///<summary>Binary bitwise OR operator calls SimpleITK.Or.</summary>
+  public static Image operator |(int constant,Image img1) {
+    return SimpleITK.Or(constant, img1);
+  }
+
+  ///<summary>Binary bitwise XOR operator calls SimpleITK.Xor.</summary>
+  public static Image operator ^(Image img1, Image img2) {
+    return SimpleITK.Xor(img1, img2);
+  }
+
+  ///<summary>Binary bitwise XOR operator calls SimpleITK.Xor.</summary>
+  public static Image operator ^(Image img1, int constant) {
+    return SimpleITK.Xor(img1, constant);
+  }
+
+  ///<summary>Binary bitwise XOR operator calls SimpleITK.Xor.</summary>
+  public static Image operator ^(int constant, Image img1) {
+    return SimpleITK.Xor(constant, img1);
+  }
+
+  #endregion
+
+  #region Comparison operators
+
+  ///<summary>Less than operator calls SimpleITK.Less.</summary>
+  public static Image operator <(Image img1, Image img2) {
+    return SimpleITK.Less(img1, img2);
+  }
+
+  ///<summary>Less than operator calls SimpleITK.Less.</summary>
+  public static Image operator <(Image img1, double constant) {
+    return SimpleITK.Less(img1, constant);
+  }
+
+  ///<summary>Less than operator calls SimpleITK.Less.</summary>
+  public static Image operator <(double constant, Image img1) {
+    return SimpleITK.Less(constant, img1);
+  }
+
+  ///<summary>Greater than operator calls SimpleITK.Greater.</summary>
+  public static Image operator >(Image img1, Image img2) {
+    return SimpleITK.Greater(img1, img2);
+  }
+
+  ///<summary>Greater than operator calls SimpleITK.Greater.</summary>
+  public static Image operator >(Image img1, double constant) {
+    return SimpleITK.Greater(img1, constant);
+  }
+
+  ///<summary>Greater than operator calls SimpleITK.Greater.</summary>
+  public static Image operator >(double constant, Image img1) {
+    return SimpleITK.Greater(constant, img1);
+  }
+
+  ///<summary>Less than or equal to operator calls SimpleITK.LessEqual.</summary>
+  public static Image operator <=(Image img1, Image img2) {
+    return SimpleITK.LessEqual(img1, img2);
+  }
+
+  ///<summary>Less than or equal to operator calls SimpleITK.LessEqual.</summary>
+  public static Image operator <=(Image img1, double constant) {
+    return SimpleITK.LessEqual(img1, constant);
+  }
+
+  ///<summary>Less than or equal to operator calls SimpleITK.LessEqual.</summary>
+  public static Image operator <=(double constant,Image img1) {
+    return SimpleITK.LessEqual(constant, img1);
+  }
+
+  ///<summary>Greater than or equal to operator calls SimpleITK.GreaterEqual.</summary>
+  public static Image operator >=(Image img1, Image img2) {
+    return SimpleITK.GreaterEqual(img1, img2);
+  }
+
+  ///<summary>Greater than or equal to operator calls SimpleITK.GreaterEqual.</summary>
+  public static Image operator >=(Image img1, double constant) {
+    return SimpleITK.GreaterEqual(img1, constant);
+  }
+
+  ///<summary>Greater than or equal to operator calls SimpleITK.GreaterEqual.</summary>
+  public static Image operator >=(double constant, Image img1) {
+    return SimpleITK.GreaterEqual(constant, img1);
+  }
+
+  #endregion
+%}
+
+#endif // End of C# specific sections
diff --git a/Wrapping/CSharp/CSharpTypemapHelper.i b/Wrapping/CSharp/CSharpTypemapHelper.i
new file mode 100644
index 0000000..8d0d1b9
--- /dev/null
+++ b/Wrapping/CSharp/CSharpTypemapHelper.i
@@ -0,0 +1,55 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+/* File : CSharpTypemapHelper.i */
+%define %CSharpTypemapHelper(TYPE, CSTYPE)
+  %typemap(in) TYPE "$1 = ($1_ltype)$input;" // wrap
+  %typemap(imtype) TYPE "CSTYPE" // pinvoke
+  %typemap(cstype, excode=SWIGEXCODE) TYPE "CSTYPE" // cs
+  %typemap(csin, excode=SWIGEXCODE) TYPE "$csinput"
+  %typemap(csout, excode=SWIGEXCODE) TYPE {
+    CSTYPE ret = $imcall;$excode
+    return ret;
+  }
+  %typemap(csvarin, excode=SWIGEXCODE) TYPE "
+      set {
+        $imcall;$excode
+      }"
+  %typemap(csvarout, excode=SWIGEXCODE) TYPE "
+      get {
+        return $imcall;$excode
+      }"
+%enddef
+
+%define %CSharpPointerTypemapHelper(TYPE, CSTYPE)
+  %typemap(in) TYPE "$1 = $1_ltype(($1_ltype::ObjectType*)$input);" // wrap
+  %typemap(imtype) TYPE "CSTYPE" // pinvoke
+  %typemap(cstype, excode=SWIGEXCODE) TYPE "CSTYPE" // cs
+  %typemap(csin, excode=SWIGEXCODE) TYPE "$csinput"
+  %typemap(csout, excode=SWIGEXCODE) TYPE {
+    CSTYPE ret = $imcall;$excode
+    return ret;
+  }
+  %typemap(csvarin, excode=SWIGEXCODE) TYPE "
+      set {
+        $imcall;$excode
+      }"
+  %typemap(csvarout, excode=SWIGEXCODE) TYPE "
+      get {
+        return $imcall;$excode
+      }"
+%enddef
diff --git a/Wrapping/CSharp/SimpleITK.i b/Wrapping/CSharp/SimpleITK.i
new file mode 100644
index 0000000..027d601
--- /dev/null
+++ b/Wrapping/CSharp/SimpleITK.i
@@ -0,0 +1,2 @@
+%include SimpleITK_Common.i
+%include "sitkImportImageFilter.h"
diff --git a/Wrapping/CSharp/dist/CMakeLists.txt b/Wrapping/CSharp/dist/CMakeLists.txt
new file mode 100644
index 0000000..8966fe0
--- /dev/null
+++ b/Wrapping/CSharp/dist/CMakeLists.txt
@@ -0,0 +1,66 @@
+
+#
+# CSharp Packaging
+#
+if( Java_JAR_EXECUTABLE )
+
+  set(_files "")
+  list( APPEND _files
+    ${SimpleITK_DOC_FILES}
+    "${CSHARP_BINARY_DIRECTORY}/SimpleITKCSharpManaged.dll"
+    )
+
+  if(NOT DEFINED SimpleITK_CSHARP_ARCH)
+    if(MSVC)
+      if (CMAKE_CL_64)
+        set(SimpleITK_CSHARP_ARCH "win64")
+      else()
+        set(SimpleITK_CSHARP_ARCH "win32")
+      endif()
+    else()
+      set(SimpleITK_CSHARP_ARCH "unknown")
+    endif()
+
+    if(CSHARP_PLATFORM)
+      set(SimpleITK_CSHARP_ARCH "${SimpleITK_CSHARP_ARCH}-${CSHARP_PLATFORM}")
+    endif()
+  endif()
+
+  set( CSHARP_PACKAGE_STAGE_DIR "SimpleITK-${SimpleITK_VERSION}-CSharp-${SimpleITK_CSHARP_ARCH}")
+
+  add_custom_target( dist.CSharp
+    COMMENT "Creating CSharp package ${CSHARP_PACKAGE_STAGE_DIR}.zip"
+    DEPENDS SimpleITKCSharpManaged
+    )
+
+  add_custom_command( TARGET dist.CSharp
+    PRE_BUILD
+    COMMAND ${CMAKE_COMMAND} -E remove_directory "${CSHARP_PACKAGE_STAGE_DIR}"
+    COMMAND ${CMAKE_COMMAND} -E make_directory "${CSHARP_PACKAGE_STAGE_DIR}"
+    COMMENT "Creating CSharp staging directory..."
+    )
+
+  foreach(_f ${_files})
+    get_filename_component(_f_name ${_f} NAME )
+    add_custom_command( TARGET dist.CSharp
+      POST_BUILD
+      COMMAND ${CMAKE_COMMAND} -E copy_if_different "${_f}" "${CSHARP_PACKAGE_STAGE_DIR}/${_f_name}"
+      COMMENT "Copying ${_f_name} to CSharp stage..."
+    )
+  endforeach()
+
+  add_custom_command( TARGET dist.CSharp
+    POST_BUILD
+    COMMAND ${CMAKE_COMMAND} -E copy "$<TARGET_FILE:${SWIG_MODULE_SimpleITKCSharpNative_TARGET_NAME}>" "${CSHARP_PACKAGE_STAGE_DIR}"
+    COMMENT "Copying $<TARGET_FILE:${SWIG_MODULE_SimpleITKCSharpNative_TARGET_NAME}> to CSharp stage..."
+#    COMMAND ${CMAKE_COMMAND} -E copy "$<TARGET_FILE:SimpleITKCSharpManaged>" "${CSHARP_PACKAGE_STAGE_DIR}"
+#    COMMENT "Copying $<TARGET_FILE:${SimpleITKCSharpManaged}> to CSharp stage..."
+
+    SimpleITKCSharpManaged
+    COMMAND ${Java_JAR_EXECUTABLE} cfM "${CSHARP_PACKAGE_STAGE_DIR}.zip" "${CSHARP_PACKAGE_STAGE_DIR}"
+    COMMENT "Packaging CSHARP distribution..."
+    )
+
+  add_dependencies( dist dist.CSharp )
+
+endif()
diff --git a/Wrapping/Common/SimpleITK_Common.i b/Wrapping/Common/SimpleITK_Common.i
new file mode 100644
index 0000000..289d2b2
--- /dev/null
+++ b/Wrapping/Common/SimpleITK_Common.i
@@ -0,0 +1,210 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+%module(directors="1") SimpleITK
+
+// Remove some warnings
+#pragma SWIG nowarn=362,503,401,389,516,511
+
+// Use STL support
+%include <std_vector.i>
+%include <std_string.i>
+%include <std_map.i>
+#if SWIGPYTHON || SWIGRUBY
+%include <std_complex.i>
+#endif
+// Use C99 int support
+%include <stdint.i>
+
+// Use exceptions
+%include "exception.i"
+
+// Customize exception handling
+%exception {
+  try {
+    $action
+  } catch( std::exception &ex ) {
+    const size_t e_size = 10240;
+    char error_msg[e_size];
+// TODO this should be replaces with some try compile stuff
+
+%#ifdef _MSC_VER
+    _snprintf_s( error_msg, e_size, e_size, "Exception thrown in SimpleITK $symname: %s", ex.what() );
+%#else
+    snprintf( error_msg, e_size, "Exception thrown in SimpleITK $symname: %s", ex.what() );
+%#endif
+
+    SWIG_exception( SWIG_RuntimeError, error_msg );
+  } catch( ... ) {
+    SWIG_exception( SWIG_UnknownError, "Unknown exception thrown in SimpleITK $symname" );
+  }
+}
+
+// Global Tweaks to sitk::Image
+%ignore itk::simple::Image::GetITKBase( void );
+%ignore itk::simple::Image::GetITKBase( void ) const;
+
+#ifndef SWIGCSHARP
+%ignore itk::simple::Image::GetBufferAsInt8;
+%ignore itk::simple::Image::GetBufferAsUInt8;
+%ignore itk::simple::Image::GetBufferAsInt16;
+%ignore itk::simple::Image::GetBufferAsUInt16;
+%ignore itk::simple::Image::GetBufferAsInt32;
+%ignore itk::simple::Image::GetBufferAsUInt32;
+%ignore itk::simple::Image::GetBufferAsInt64;
+%ignore itk::simple::Image::GetBufferAsUInt64;
+%ignore itk::simple::Image::GetBufferAsFloat;
+%ignore itk::simple::Image::GetBufferAsDouble;
+#endif
+
+
+// This section is copied verbatim into the generated source code.
+// Any include files, definitions, etc. need to go here.
+%{
+#include <SimpleITK.h>
+#include <sitkImageOperators.h>
+%}
+
+
+// Help SWIG handle std vectors
+namespace std
+{
+  %template(VectorBool) vector<bool>;
+  %template(VectorUInt8) vector<uint8_t>;
+  %template(VectorInt8) vector<int8_t>;
+  %template(VectorUInt16) vector<uint16_t>;
+  %template(VectorInt16) vector<int16_t>;
+  %template(VectorUInt32) vector<uint32_t>;
+  %template(VectorInt32) vector<int32_t>;
+  %template(VectorUInt64) vector<uint64_t>;
+  %template(VectorInt64) vector<int64_t>;
+  %template(VectorFloat) vector<float>;
+  %template(VectorDouble) vector<double>;
+  %template(VectorOfImage) vector< itk::simple::Image >;
+  %template(VectorUIntList) vector< vector<unsigned int> >;
+  %template(VectorString) vector< std::string >;
+
+  %template(DoubleDoubleMap) map<double, double>;
+}
+
+// Language Specific Sections
+#if SWIGCSHARP
+%include CSharp.i
+#endif
+#if SWIGJAVA
+%include Java.i
+#endif
+#if SWIGTCL
+%include Tcl.i
+#endif
+#if SWIGPYTHON
+%include Python.i
+#endif
+#if SWIGLUA
+%include Lua.i
+#endif
+#if SWIGR
+%include R.i
+#endif
+#if SWIGRUBY
+  %include Ruby.i
+#endif
+
+
+#ifndef SITK_RETURN_SELF_TYPE_HEADER
+#define SITK_RETURN_SELF_TYPE_HEADER void
+#endif
+
+
+
+// define these preprocessor directives to nothing for the swig interface
+#define SITKCommon_EXPORT
+#define SITKCommon_HIDDEN
+#define SITKBasicFilters0_EXPORT
+#define SITKBasicFilters0_HIDDEN
+#define SITKBasicFilters_EXPORT
+#define SITKBasicFilters_HIDDEN
+#define SITKIO_EXPORT
+#define SITKIO_HIDDEN
+#define SITKRegistration_EXPORT
+#define SITKRegistration_HIDDEN
+
+
+// Any new classes need to have an "%include" statement to be wrapped.
+
+// Common
+%include "sitkConfigure.h"
+%include "sitkVersion.h"
+%include "sitkPixelIDValues.h"
+%include "sitkImage.h"
+%include "sitkCommand.h"
+%include "sitkInterpolator.h"
+%include "sitkKernel.h"
+%include "sitkEvent.h"
+%include "sitkRandomSeed.h"
+
+// Transforms
+%include "sitkTransform.h"
+%include "sitkBSplineTransform.h"
+%include "sitkDisplacementFieldTransform.h"
+%include "sitkAffineTransform.h"
+%include "sitkEuler3DTransform.h"
+%include "sitkEuler2DTransform.h"
+%include "sitkScaleTransform.h"
+%include "sitkScaleSkewVersor3DTransform.h"
+%include "sitkScaleVersor3DTransform.h"
+%include "sitkSimilarity2DTransform.h"
+%include "sitkSimilarity3DTransform.h"
+%include "sitkTranslationTransform.h"
+%include "sitkVersorTransform.h"
+%include "sitkVersorRigid3DTransform.h"
+
+
+// Basic Filter Base
+%include "sitkProcessObject.h"
+%include "sitkImageFilter.h"
+
+%template(ImageFilter_0) itk::simple::ImageFilter<0>;
+%template(ImageFilter_1) itk::simple::ImageFilter<1>;
+%template(ImageFilter_2) itk::simple::ImageFilter<2>;
+%template(ImageFilter_3) itk::simple::ImageFilter<3>;
+%template(ImageFilter_4) itk::simple::ImageFilter<4>;
+%template(ImageFilter_5) itk::simple::ImageFilter<5>;
+
+// IO
+%include "sitkShow.h"
+%include "sitkImageFileWriter.h"
+%include "sitkImageSeriesWriter.h"
+%include "sitkImageReaderBase.h"
+%include "sitkImageSeriesReader.h"
+%include "sitkImageFileReader.h"
+
+ // Basic Filters
+%include "sitkHashImageFilter.h"
+%include "sitkBSplineTransformInitializerFilter.h"
+%include "sitkCenteredTransformInitializerFilter.h"
+%include "sitkCenteredVersorTransformInitializerFilter.h"
+%include "sitkLandmarkBasedTransformInitializerFilter.h"
+%include "sitkCastImageFilter.h"
+%include "sitkAdditionalProcedures.h"
+
+// Registration
+%include "sitkImageRegistrationMethod.h"
+
+
+// Auto-generated headers
+%include "SimpleITKBasicFiltersGeneratedHeaders.i"
diff --git a/Wrapping/Java/CMakeLists.txt b/Wrapping/Java/CMakeLists.txt
new file mode 100644
index 0000000..2706d9a
--- /dev/null
+++ b/Wrapping/Java/CMakeLists.txt
@@ -0,0 +1,83 @@
+cmake_minimum_required ( VERSION 2.8.1 FATAL_ERROR )
+
+project( SimpleITK_Java )
+
+include(../../CMake/sitkProjectLanguageCommon.cmake NO_POLICY_SCOPE)
+
+find_package ( Java REQUIRED )
+find_package ( JNI REQUIRED )
+include_directories ( ${SimpleITK_INCLUDE_DIRS} )
+
+set(JAR_FILE "simpleitk-${SimpleITK_VERSION}.jar")
+set(JAVADOC_FILE "simpleitk-javadoc-${SimpleITK_VERSION}.jar")
+set(JAVA_SOURCE_FILE "simpleitk-source-${SimpleITK_VERSION}.jar")
+
+set_source_files_properties ( SimpleITK.i PROPERTIES CPLUSPLUS ON )
+
+FIND_PROGRAM(Java_JAVADOC_EXECUTABLE
+  NAMES javadoc
+  HINTS ${_JAVA_HINTS}
+  PATHS ${_JAVA_PATHS}
+  )
+
+# Make sure the nested directory structure exists
+set(JAVA_SOURCE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/)
+set(JAVA_BINARY_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/build)
+file(MAKE_DIRECTORY ${JAVA_SOURCE_DIRECTORY})
+file(MAKE_DIRECTORY ${JAVA_BINARY_DIRECTORY})
+
+# Nicely write the bridge code in org/itk/simple
+set(CMAKE_SWIG_OUTDIR ${JAVA_SOURCE_DIRECTORY}/org/itk/simple/)
+set(CMAKE_SWIG_FLAGS -I${CMAKE_CURRENT_SOURCE_DIR} -package "org.itk.simple" ${CMAKE_SWIG_GLOBAL_FLAGS})
+set(SWIG_MODULE_SimpleITKJava_EXTRA_DEPS ${SWIG_EXTRA_DEPS} ${CMAKE_CURRENT_SOURCE_DIR}/Java.i ${CMAKE_CURRENT_SOURCE_DIR}/JavaDoc.i)
+SWIG_add_module ( SimpleITKJava java SimpleITK.i )
+target_link_libraries( ${SWIG_MODULE_SimpleITKJava_TARGET_NAME} ${SimpleITK_LIBRARIES})
+target_include_directories( ${SWIG_MODULE_SimpleITKJava_TARGET_NAME}
+  PRIVATE
+     ${JAVA_INCLUDE_PATH} ${JNI_INCLUDE_DIRS} )
+set_source_files_properties(${swig_generated_file_fullname} PROPERTIES COMPILE_FLAGS "-w")
+sitk_strip_target( ${SWIG_MODULE_SimpleITKJava_TARGET_NAME} )
+
+set(JAVA_SOURCE_CODE "${JAVA_SOURCE_DIRECTORY}/org/itk/simple/*.java")
+
+# Oracle Java 1.8 javadoc treats linting errors as build errors by default
+# so linting should be opt-in for this version. OpenJDK is not as
+# consistent with the 1.8.0 versions, so we execute at look for a
+# invalid flag error.
+execute_process(COMMAND "${Java_JAVADOC_EXECUTABLE}" "-Xdoclint:none" ERROR_VARIABLE err OUTPUT_VARIABLE err)
+string(REGEX MATCH "javadoc.*invalid flag" invalid_flag_match "${err}")
+if(invalid_flag_match STREQUAL "")
+  mark_as_advanced( Java_JAVADOC_LINTING )
+  option( Java_JAVADOC_LINTING "Enable javadoc linting for Java 1.8" OFF )
+  if( Java_JAVADOC_LINTING )
+    set( Java_JAVADOC_LINTING_CMD "-Xdoclint:all" )
+  else()
+    set( Java_JAVADOC_LINTING_CMD "-Xdoclint:none" )
+  endif()
+endif()
+
+# Add custom command and target to compile the generated files and put them in a jar file
+# Make sure the commands depend on the output library from SWIG
+add_custom_command(
+  OUTPUT ${JAR_FILE}
+  COMMENT "Creating jar file..."
+  COMMAND ${Java_JAVAC_EXECUTABLE} -d ${JAVA_BINARY_DIRECTORY} ${JAVA_SOURCE_CODE}
+  COMMAND ${Java_JAR_EXECUTABLE} cf ${CMAKE_CURRENT_BINARY_DIR}/${JAR_FILE} -C ${JAVA_BINARY_DIRECTORY} org
+  COMMAND ${Java_JAVADOC_EXECUTABLE} ${Java_JAVADOC_LINTING_CMD} -quiet -d ${JAVA_BINARY_DIRECTORY}/javadoc -sourcepath ${JAVA_SOURCE_DIRECTORY} org.itk.simple
+  COMMAND ${Java_JAR_EXECUTABLE} cf ${CMAKE_CURRENT_BINARY_DIR}/${JAVADOC_FILE} -C ${JAVA_BINARY_DIRECTORY}/javadoc org
+  COMMAND ${Java_JAR_EXECUTABLE} cf ${CMAKE_CURRENT_BINARY_DIR}/${JAVA_SOURCE_FILE} org
+  DEPENDS ${SWIG_MODULE_SimpleITKJava_TARGET_NAME}
+  )
+
+# Add target for org.itk.simple.jar
+add_custom_target(org_itk_simple_jar ALL DEPENDS ${JAR_FILE})
+
+
+# Get the location of the extension directory
+string(REGEX REPLACE "include"  "jre/lib/ext" JAVA_EXTENSION_DIR ${JAVA_INCLUDE_PATH} )
+
+# TODO: add new target to install simpleitk java
+# Add the install target
+# install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${JAR_FILE} DESTINATION ${JAVA_EXTENSION_DIR})
+
+add_subdirectory(dist)
diff --git a/Wrapping/Java/Java.i b/Wrapping/Java/Java.i
new file mode 100644
index 0000000..205ae5d
--- /dev/null
+++ b/Wrapping/Java/Java.i
@@ -0,0 +1,47 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+// Java
+#if SWIGJAVA
+%include "carrays.i"
+%array_class(int8_t, int8Array);
+%array_class(uint8_t, uint8Array);
+%array_class(int16_t, int16Array);
+%array_class(uint16_t, uint16Array);
+%array_class(int32_t, int32Array);
+%array_class(uint32_t, uint32Array);
+%array_class(float, floatArray);
+%array_class(double, doubleArray);
+%pragma(java) jniclasscode=%{
+  static {
+    System.loadLibrary ( "SimpleITKJava" );
+  }
+%}
+
+%include "JavaDoc.i"
+
+// Make Java method names follow the naming conventions
+// See the swig.swg file, and ruby.swg for details on how this works
+// Documented in: http://www.swig.org/Doc2.0/SWIG.html#SWIG_advanced_renaming
+%rename("%(firstlowercase)s", %$isfunction ) "";
+
+// Enable Java classes derived from Command Execute method to be
+// called from C++
+%feature("director") itk::simple::Command;
+
+
+#endif // End of Java specific sections
diff --git a/Wrapping/Java/JavaDoc.i b/Wrapping/Java/JavaDoc.i
new file mode 100644
index 0000000..eb3e19b
--- /dev/null
+++ b/Wrapping/Java/JavaDoc.i
@@ -0,0 +1,50519 @@
+
+
+%typemap(javaimports) itk::Functor::BitwiseNot "/**
+
+Performs the C++ unary bitwise NOT operator.
+
+C++ includes: itkBitwiseNotFunctor.h
+*/"
+
+
+%typemap(javaimports) itk::Functor::DivFloor "/**
+
+Cast arguments to double, performs division then takes the floor.
+
+C++ includes: itkDivideFloorFunctor.h
+*/"
+
+
+%typemap(javaimports) itk::Functor::DivReal "/**
+
+Promotes arguments to real type and performs division.
+
+C++ includes: itkDivideRealFunctor.h
+*/"
+
+
+%typemap(javaimports) itk::Functor::UnaryMinus "/**
+C++ includes: itkUnaryMinusImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::Functor::UnaryMinus::UnaryMinus "/**
+itk::Functor::UnaryMinus< TInput1, TOutput >::UnaryMinus()
+*/
+public ";
+
+%javamethodmodifiers  itk::Functor::UnaryMinus::~UnaryMinus "/**
+itk::Functor::UnaryMinus< TInput1, TOutput >::~UnaryMinus()
+*/
+public ";
+
+
+%typemap(javaimports) itk::HashImageFilter "/**
+
+Generates a hash string from an image.
+
+
+
+This class utlizes low level buffer pointer access, to work with itk::Image and itk::VectorImage. It is modeled after the access an ImageFileWriter provides to an ImageIO.
+Todo
+Update in-place on to default after fixing bug in InPlaceImageFilter
+
+
+C++ includes: itkHashImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::HashImageFilter::GetHash "/**
+std::string itk::HashImageFilter< TImageType >::GetHash() const
+
+Get the computed Hash values
+
+*/
+public ";
+
+%javamethodmodifiers  itk::HashImageFilter::GetHashOutput "/**
+HashObjectType* itk::HashImageFilter< TImageType >::GetHashOutput()
+*/
+public ";
+
+%javamethodmodifiers  itk::HashImageFilter::GetHashOutput "/**
+const HashObjectType* itk::HashImageFilter< TImageType >::GetHashOutput() const
+*/
+public ";
+
+%javamethodmodifiers  itk::HashImageFilter::itkGetMacro "/**
+itk::HashImageFilter< TImageType >::itkGetMacro(HashFunction, HashFunction)
+*/
+public ";
+
+%javamethodmodifiers  itk::HashImageFilter::itkNewMacro "/**
+itk::HashImageFilter< TImageType >::itkNewMacro(Self)
+
+Method for creation through the object factory.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::HashImageFilter::itkSetMacro "/**
+itk::HashImageFilter< TImageType >::itkSetMacro(HashFunction, HashFunction)
+
+Set/Get hashing function as enumerated type
+
+*/
+public ";
+
+%javamethodmodifiers  itk::HashImageFilter::itkTypeMacro "/**
+itk::HashImageFilter< TImageType >::itkTypeMacro(HashImageFilter, CastImageFilter)
+
+Runtime information support.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::HashImageFilter::MakeOutput "/**
+virtual DataObjectPointer itk::HashImageFilter< TImageType >::MakeOutput(DataObjectPointerArraySizeType idx) ITK_OVERRIDE
+*/
+public ";
+
+
+%typemap(javaimports) itk::ImageIOFactoryRegisterManager "/**
+C++ includes: itkImageIOFactoryRegisterManager.h
+*/"
+
+%javamethodmodifiers  itk::ImageIOFactoryRegisterManager::ImageIOFactoryRegisterManager "/**
+itk::ImageIOFactoryRegisterManager::ImageIOFactoryRegisterManager(void(*list[])(void))
+*/
+public ";
+
+%javamethodmodifiers  itk::ImageIOFactoryRegisterManager::ImageIOFactoryRegisterManager "/**
+itk::ImageIOFactoryRegisterManager::ImageIOFactoryRegisterManager(void(*list[])(void))
+*/
+public ";
+
+
+%typemap(javaimports) itk::SliceImageFilter "/**
+
+Slices an image based on a starting index and a stopping index, and a
+step size.
+
+
+This class is designed to facilitate the implementation of extended
+sliced based indexing into images.
+
+The input and output image must be of the same dimension.
+
+The input parameters are a starting and stopping index as well as a
+stepping size. The staring index indicates the first pixels to used
+and for each dimension the index is incremented by the step until the
+index is equal to or \"beyond\" the stopping index. If the step is
+negative then the image will be revered in the dimension, and the
+stopping index is expected to be less then the starting index. If the
+stopping index is already beyond the starting then a image of zero
+size will be returned.
+
+The output image's starting index is always zero. The origin is the
+physical location of the starting index. The output directions cosine
+matrix is that of the input but with sign changes matching that of the
+step's sign.
+
+
+In certain combination such as with start=1, and step>1 while the
+physical location of the center of the pixel remains the same, the
+extent (edge to edge space) of the pixel will beyond the extent of the
+original image.
+
+
+C++ includes: itkSliceImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::SliceImageFilter::GenerateInputRequestedRegion "/**
+virtual void itk::SliceImageFilter< TInputImage, TOutputImage >::GenerateInputRequestedRegion() ITK_OVERRIDE
+*/
+public ";
+
+%javamethodmodifiers  itk::SliceImageFilter::GenerateOutputInformation "/**
+virtual void itk::SliceImageFilter< TInputImage, TOutputImage >::GenerateOutputInformation() ITK_OVERRIDE
+
+SliceImageFilter produces an image which is a different resolution and with a
+different pixel spacing than its input image.
+See:
+ ProcessObject::GenerateOutputInformaton()
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::SliceImageFilter::itkGetConstReferenceMacro "/**
+itk::SliceImageFilter< TInputImage, TOutputImage >::itkGetConstReferenceMacro(Start, IndexType)
+*/
+public ";
+
+%javamethodmodifiers  itk::SliceImageFilter::itkGetConstReferenceMacro "/**
+itk::SliceImageFilter< TInputImage, TOutputImage >::itkGetConstReferenceMacro(Stop, IndexType)
+*/
+public ";
+
+%javamethodmodifiers  itk::SliceImageFilter::itkGetConstReferenceMacro "/**
+itk::SliceImageFilter< TInputImage, TOutputImage >::itkGetConstReferenceMacro(Step, ArrayType)
+*/
+public ";
+
+%javamethodmodifiers  itk::SliceImageFilter::itkNewMacro "/**
+itk::SliceImageFilter< TInputImage, TOutputImage >::itkNewMacro(Self)
+
+Method for creation through the object factory.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::SliceImageFilter::itkSetMacro "/**
+itk::SliceImageFilter< TInputImage, TOutputImage >::itkSetMacro(Start, IndexType)
+
+Set/Get the first index extracted from the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::SliceImageFilter::itkSetMacro "/**
+itk::SliceImageFilter< TInputImage, TOutputImage >::itkSetMacro(Stop, IndexType)
+
+Set/Get the excluded end of the range
+
+*/
+public ";
+
+%javamethodmodifiers  itk::SliceImageFilter::itkSetMacro "/**
+itk::SliceImageFilter< TInputImage, TOutputImage >::itkSetMacro(Step, ArrayType)
+
+Set/Get the stride of indexes extracted
+
+An exception will be generated if 0.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::SliceImageFilter::itkStaticConstMacro "/**
+itk::SliceImageFilter< TInputImage, TOutputImage >::itkStaticConstMacro(ImageDimension, unsigned int, TInputImage::ImageDimension)
+
+ImageDimension enumeration.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::SliceImageFilter::itkStaticConstMacro "/**
+itk::SliceImageFilter< TInputImage, TOutputImage >::itkStaticConstMacro(OutputImageDimension, unsigned int, TOutputImage::ImageDimension)
+*/
+public ";
+
+%javamethodmodifiers  itk::SliceImageFilter::itkTypeMacro "/**
+itk::SliceImageFilter< TInputImage, TOutputImage >::itkTypeMacro(SliceImageFilter, ImageToImageFilter)
+
+Run-time type information (and related methods).
+
+*/
+public ";
+
+%javamethodmodifiers  itk::SliceImageFilter::SetStart "/**
+void itk::SliceImageFilter< TInputImage, TOutputImage >::SetStart(IndexValueType start)
+*/
+public ";
+
+%javamethodmodifiers  itk::SliceImageFilter::SetStep "/**
+void itk::SliceImageFilter< TInputImage, TOutputImage >::SetStep(int step)
+*/
+public ";
+
+%javamethodmodifiers  itk::SliceImageFilter::SetStop "/**
+void itk::SliceImageFilter< TInputImage, TOutputImage >::SetStop(IndexValueType stop)
+*/
+public ";
+
+
+%typemap(javaimports) itk::TransformIOFactoryRegisterManager "/**
+C++ includes: itkTransformIOFactoryRegisterManager.h
+*/"
+
+%javamethodmodifiers  itk::TransformIOFactoryRegisterManager::TransformIOFactoryRegisterManager "/**
+itk::TransformIOFactoryRegisterManager::TransformIOFactoryRegisterManager(void(*list[])(void))
+*/
+public ";
+
+%javamethodmodifiers  itk::TransformIOFactoryRegisterManager::TransformIOFactoryRegisterManager "/**
+itk::TransformIOFactoryRegisterManager::TransformIOFactoryRegisterManager(void(*list[])(void))
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::AbsImageFilter "/**
+
+Computes the absolute value of each pixel.
+
+
+itk::Math::abs() is used to perform the computation.
+
+Wiki Examples:
+
+All Examples
+
+Compute the absolute value of an image
+See:
+ itk::simple::Abs for the procedural interface
+
+ itk::AbsImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkAbsImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::AbsImageFilter::AbsImageFilter "/**
+itk::simple::AbsImageFilter::AbsImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AbsImageFilter::Execute "/**
+Image itk::simple::AbsImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AbsImageFilter::GetName "/**
+std::string itk::simple::AbsImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AbsImageFilter::ToString "/**
+std::string itk::simple::AbsImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AbsImageFilter::~AbsImageFilter "/**
+itk::simple::AbsImageFilter::~AbsImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::AbsoluteValueDifferenceImageFilter "/**
+
+Implements pixel-wise the computation of absolute value difference.
+
+
+This filter is parametrized over the types of the two input images and
+the type of the output image.
+
+Numeric conversions (castings) are done by the C++ defaults.
+
+The filter will walk over all the pixels in the two input images, and
+for each one of them it will do the following:
+
+
+Cast the input 1 pixel value to double .
+
+Cast the input 2 pixel value to double .
+
+Compute the difference of the two pixel values.
+
+Compute the absolute value of the difference.
+
+Cast the double value resulting from the absolute value to the pixel
+type of the output image.
+
+Store the casted value into the output image.
+ The filter expects all images to have the same dimension (e.g. all
+2D, or all 3D, or all ND).
+
+Wiki Examples:
+
+All Examples
+
+Compute the absolute value of the difference of corresponding pixels
+in two images
+See:
+ itk::simple::AbsoluteValueDifference for the procedural interface
+
+ itk::AbsoluteValueDifferenceImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkAbsoluteValueDifferenceImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::AbsoluteValueDifferenceImageFilter::AbsoluteValueDifferenceImageFilter "/**
+itk::simple::AbsoluteValueDifferenceImageFilter::AbsoluteValueDifferenceImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AbsoluteValueDifferenceImageFilter::Execute "/**
+Image itk::simple::AbsoluteValueDifferenceImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AbsoluteValueDifferenceImageFilter::Execute "/**
+Image itk::simple::AbsoluteValueDifferenceImageFilter::Execute(const Image &image1, double constant)
+
+Execute the filter with an image and a constant
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AbsoluteValueDifferenceImageFilter::Execute "/**
+Image itk::simple::AbsoluteValueDifferenceImageFilter::Execute(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AbsoluteValueDifferenceImageFilter::GetName "/**
+std::string itk::simple::AbsoluteValueDifferenceImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AbsoluteValueDifferenceImageFilter::ToString "/**
+std::string itk::simple::AbsoluteValueDifferenceImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AbsoluteValueDifferenceImageFilter::~AbsoluteValueDifferenceImageFilter "/**
+itk::simple::AbsoluteValueDifferenceImageFilter::~AbsoluteValueDifferenceImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::AcosImageFilter "/**
+
+Computes the inverse cosine of each pixel.
+
+
+This filter is templated over the pixel type of the input image and
+the pixel type of the output image.
+
+The filter walks over all the pixels in the input image, and for each
+pixel does do the following:
+
+
+cast the pixel value to double ,
+
+apply the std::acos() function to the double value
+
+cast the double value resulting from std::acos() to the pixel type of
+the output image
+
+store the casted value into the output image.
+ The filter expects both images to have the same dimension (e.g. both
+2D, or both 3D, or both ND).
+See:
+ itk::simple::Acos for the procedural interface
+
+ itk::AcosImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkAcosImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::AcosImageFilter::AcosImageFilter "/**
+itk::simple::AcosImageFilter::AcosImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AcosImageFilter::Execute "/**
+Image itk::simple::AcosImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AcosImageFilter::GetName "/**
+std::string itk::simple::AcosImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AcosImageFilter::ToString "/**
+std::string itk::simple::AcosImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AcosImageFilter::~AcosImageFilter "/**
+itk::simple::AcosImageFilter::~AcosImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::AdaptiveHistogramEqualizationImageFilter "/**
+
+Power Law Adaptive Histogram Equalization.
+
+
+Histogram equalization modifies the contrast in an image. The AdaptiveHistogramEqualizationImageFilter is a superset of many contrast enhancing filters. By modifying its
+parameters (alpha, beta, and window), the AdaptiveHistogramEqualizationImageFilter can produce an adaptively equalized histogram or a version of unsharp
+mask (local mean subtraction). Instead of applying a strict histogram
+equalization in a window about a pixel, this filter prescribes a
+mapping function (power law) controlled by the parameters alpha and
+beta.
+
+The parameter alpha controls how much the filter acts like the
+classical histogram equalization method (alpha=0) to how much the
+filter acts like an unsharp mask (alpha=1).
+
+The parameter beta controls how much the filter acts like an unsharp
+mask (beta=0) to much the filter acts like pass through (beta=1, with
+alpha=1).
+
+The parameter window controls the size of the region over which local
+statistics are calculated.
+
+By altering alpha, beta and window, a host of equalization and unsharp
+masking filters is available.
+
+The boundary condition ignores the part of the neighborhood outside
+the image, and over-weights the valid part of the neighborhood.
+
+For detail description, reference \"Adaptive Image Contrast
+Enhancement using Generalizations of Histogram Equalization.\" J.Alex
+Stark. IEEE Transactions on Image Processing, May 2000.
+
+Wiki Examples:
+
+All Examples
+
+Adaptive histogram equalization
+See:
+ itk::simple::AdaptiveHistogramEqualization for the procedural interface
+
+ itk::AdaptiveHistogramEqualizationImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkAdaptiveHistogramEqualizationImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::AdaptiveHistogramEqualizationImageFilter::AdaptiveHistogramEqualizationImageFilter "/**
+itk::simple::AdaptiveHistogramEqualizationImageFilter::AdaptiveHistogramEqualizationImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdaptiveHistogramEqualizationImageFilter::Execute "/**
+Image itk::simple::AdaptiveHistogramEqualizationImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdaptiveHistogramEqualizationImageFilter::Execute "/**
+Image itk::simple::AdaptiveHistogramEqualizationImageFilter::Execute(const Image &image1, const std::vector< unsigned int > &radius, float
+alpha, float beta, bool useLookupTable)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdaptiveHistogramEqualizationImageFilter::GetAlpha "/**
+float itk::simple::AdaptiveHistogramEqualizationImageFilter::GetAlpha() const
+
+Set/Get the value of alpha. Alpha = 0 produces the adaptive histogram
+equalization (provided beta=0). Alpha = 1 produces an unsharp mask.
+Default is 0.3.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdaptiveHistogramEqualizationImageFilter::GetBeta "/**
+float itk::simple::AdaptiveHistogramEqualizationImageFilter::GetBeta() const
+
+Set/Get the value of beta. If beta = 1 (and alpha = 1), then the
+output image matches the input image. As beta approaches 0, the filter
+behaves as an unsharp mask. Default is 0.3.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdaptiveHistogramEqualizationImageFilter::GetName "/**
+std::string itk::simple::AdaptiveHistogramEqualizationImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdaptiveHistogramEqualizationImageFilter::GetRadius "/**
+std::vector<unsigned int> itk::simple::AdaptiveHistogramEqualizationImageFilter::GetRadius() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdaptiveHistogramEqualizationImageFilter::GetUseLookupTable "/**
+bool itk::simple::AdaptiveHistogramEqualizationImageFilter::GetUseLookupTable() const
+
+Set/Get whether an optimized lookup table for the intensity mapping
+function is used. Default is off. Deprecated
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdaptiveHistogramEqualizationImageFilter::SetAlpha "/**
+Self& itk::simple::AdaptiveHistogramEqualizationImageFilter::SetAlpha(float Alpha)
+
+Set/Get the value of alpha. Alpha = 0 produces the adaptive histogram
+equalization (provided beta=0). Alpha = 1 produces an unsharp mask.
+Default is 0.3.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdaptiveHistogramEqualizationImageFilter::SetBeta "/**
+Self& itk::simple::AdaptiveHistogramEqualizationImageFilter::SetBeta(float Beta)
+
+Set/Get the value of beta. If beta = 1 (and alpha = 1), then the
+output image matches the input image. As beta approaches 0, the filter
+behaves as an unsharp mask. Default is 0.3.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdaptiveHistogramEqualizationImageFilter::SetRadius "/**
+Self& itk::simple::AdaptiveHistogramEqualizationImageFilter::SetRadius(const std::vector< unsigned int > &Radius)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdaptiveHistogramEqualizationImageFilter::SetRadius "/**
+Self& itk::simple::AdaptiveHistogramEqualizationImageFilter::SetRadius(unsigned int value)
+
+Set the values of the Radius vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdaptiveHistogramEqualizationImageFilter::SetUseLookupTable "/**
+Self& itk::simple::AdaptiveHistogramEqualizationImageFilter::SetUseLookupTable(bool UseLookupTable)
+
+Set/Get whether an optimized lookup table for the intensity mapping
+function is used. Default is off. Deprecated
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdaptiveHistogramEqualizationImageFilter::ToString "/**
+std::string itk::simple::AdaptiveHistogramEqualizationImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdaptiveHistogramEqualizationImageFilter::UseLookupTableOff "/**
+Self& itk::simple::AdaptiveHistogramEqualizationImageFilter::UseLookupTableOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdaptiveHistogramEqualizationImageFilter::UseLookupTableOn "/**
+Self& itk::simple::AdaptiveHistogramEqualizationImageFilter::UseLookupTableOn()
+
+Set the value of UseLookupTable to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdaptiveHistogramEqualizationImageFilter::~AdaptiveHistogramEqualizationImageFilter "/**
+itk::simple::AdaptiveHistogramEqualizationImageFilter::~AdaptiveHistogramEqualizationImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::AddImageFilter "/**
+
+Pixel-wise addition of two images.
+
+
+This class is templated over the types of the two input images and the
+type of the output image. Numeric conversions (castings) are done by
+the C++ defaults.
+
+The pixel type of the input 1 image must have a valid definition of
+the operator+ with a pixel type of the image 2. This condition is
+required because internally this filter will perform the operation
+
+
+Additionally the type resulting from the sum, will be cast to the
+pixel type of the output image.
+
+The total operation over one pixel will be
+
+For example, this filter could be used directly for adding images
+whose pixels are vectors of the same dimension, and to store the
+resulting vector in an output image of vector pixels.
+
+The images to be added are set using the methods:
+
+Additionally, this filter can be used to add a constant to every pixel
+of an image by using
+
+
+WARNING:
+No numeric overflow checking is performed in this filter.
+Wiki Examples:
+
+All Examples
+
+Add two images together
+
+Add a constant to every pixel in an image
+See:
+ itk::simple::Add for the procedural interface
+
+ itk::AddImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkAddImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::AddImageFilter::AddImageFilter "/**
+itk::simple::AddImageFilter::AddImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AddImageFilter::Execute "/**
+Image itk::simple::AddImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AddImageFilter::Execute "/**
+Image itk::simple::AddImageFilter::Execute(const Image &image1, double constant)
+
+Execute the filter with an image and a constant
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AddImageFilter::Execute "/**
+Image itk::simple::AddImageFilter::Execute(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AddImageFilter::GetName "/**
+std::string itk::simple::AddImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AddImageFilter::ToString "/**
+std::string itk::simple::AddImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AddImageFilter::~AddImageFilter "/**
+itk::simple::AddImageFilter::~AddImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::AdditiveGaussianNoiseImageFilter "/**
+
+Alter an image with additive Gaussian white noise.
+
+
+Additive Gaussian white noise can be modeled as:
+
+
+$ I = I_0 + N $
+
+where $ I $ is the observed image, $ I_0 $ is the noise-free image and $ N $ is a normally distributed random variable of mean $ \\\\mu $ and variance $ \\\\sigma^2 $ :
+
+$ N \\\\sim \\\\mathcal{N}(\\\\mu, \\\\sigma^2) $
+ The noise is independent of the pixel intensities.
+
+
+Gaetan Lehmann
+ This code was contributed in the Insight Journal paper \"Noise
+Simulation\". https://hdl.handle.net/10380/3158
+See:
+ itk::simple::AdditiveGaussianNoise for the procedural interface
+
+ itk::AdditiveGaussianNoiseImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkAdditiveGaussianNoiseImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::AdditiveGaussianNoiseImageFilter::AdditiveGaussianNoiseImageFilter "/**
+itk::simple::AdditiveGaussianNoiseImageFilter::AdditiveGaussianNoiseImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdditiveGaussianNoiseImageFilter::Execute "/**
+Image itk::simple::AdditiveGaussianNoiseImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdditiveGaussianNoiseImageFilter::Execute "/**
+Image itk::simple::AdditiveGaussianNoiseImageFilter::Execute(const Image &image1, double standardDeviation, double mean, uint32_t
+seed)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdditiveGaussianNoiseImageFilter::GetMean "/**
+double itk::simple::AdditiveGaussianNoiseImageFilter::GetMean() const
+
+Set/Get the mean of the Gaussian distribution. Defaults to 0.0.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdditiveGaussianNoiseImageFilter::GetName "/**
+std::string itk::simple::AdditiveGaussianNoiseImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdditiveGaussianNoiseImageFilter::GetSeed "/**
+uint32_t itk::simple::AdditiveGaussianNoiseImageFilter::GetSeed() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdditiveGaussianNoiseImageFilter::GetStandardDeviation "/**
+double itk::simple::AdditiveGaussianNoiseImageFilter::GetStandardDeviation() const
+
+Set/Get the standard deviation of the Gaussian distribution. Defaults
+to 1.0.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdditiveGaussianNoiseImageFilter::SetMean "/**
+Self& itk::simple::AdditiveGaussianNoiseImageFilter::SetMean(double Mean)
+
+Set/Get the mean of the Gaussian distribution. Defaults to 0.0.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdditiveGaussianNoiseImageFilter::SetSeed "/**
+Self& itk::simple::AdditiveGaussianNoiseImageFilter::SetSeed(uint32_t Seed)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdditiveGaussianNoiseImageFilter::SetStandardDeviation "/**
+Self& itk::simple::AdditiveGaussianNoiseImageFilter::SetStandardDeviation(double StandardDeviation)
+
+Set/Get the standard deviation of the Gaussian distribution. Defaults
+to 1.0.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdditiveGaussianNoiseImageFilter::ToString "/**
+std::string itk::simple::AdditiveGaussianNoiseImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdditiveGaussianNoiseImageFilter::~AdditiveGaussianNoiseImageFilter "/**
+itk::simple::AdditiveGaussianNoiseImageFilter::~AdditiveGaussianNoiseImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::AffineTransform "/**
+
+An affine transformation about a fixed center with translation for a
+2D or 3D coordinate.
+
+
+
+See:
+ itk::AffineTransform
+
+
+C++ includes: sitkAffineTransform.h
+*/"
+
+%javamethodmodifiers  itk::simple::AffineTransform::AffineTransform "/**
+itk::simple::AffineTransform::AffineTransform(unsigned int dimensions)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AffineTransform::AffineTransform "/**
+itk::simple::AffineTransform::AffineTransform(const AffineTransform &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AffineTransform::AffineTransform "/**
+itk::simple::AffineTransform::AffineTransform(const Transform &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AffineTransform::AffineTransform "/**
+itk::simple::AffineTransform::AffineTransform(const std::vector< double > &matrix, const std::vector< double >
+&translation, const std::vector< double > &fixedCenter=std::vector<
+double >(3, 0.0))
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AffineTransform::GetCenter "/**
+std::vector<double> itk::simple::AffineTransform::GetCenter() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AffineTransform::GetMatrix "/**
+std::vector<double> itk::simple::AffineTransform::GetMatrix() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AffineTransform::GetName "/**
+std::string itk::simple::AffineTransform::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AffineTransform::GetTranslation "/**
+std::vector<double> itk::simple::AffineTransform::GetTranslation() const
+
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AffineTransform::Rotate "/**
+Self& itk::simple::AffineTransform::Rotate(int axis1, int axis2, double angle, bool pre=false)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AffineTransform::Scale "/**
+Self& itk::simple::AffineTransform::Scale(const std::vector< double > &factor, bool pre=false)
+
+additional methods
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AffineTransform::Scale "/**
+Self& itk::simple::AffineTransform::Scale(double factor, bool pre=false)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AffineTransform::SetCenter "/**
+Self& itk::simple::AffineTransform::SetCenter(const std::vector< double > &params)
+
+fixed parameter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AffineTransform::SetMatrix "/**
+Self& itk::simple::AffineTransform::SetMatrix(const std::vector< double > &matrix)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AffineTransform::SetTranslation "/**
+Self& itk::simple::AffineTransform::SetTranslation(const std::vector< double > &translation)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AffineTransform::Shear "/**
+Self& itk::simple::AffineTransform::Shear(int axis1, int axis2, double coef, bool pre=false)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AffineTransform::Translate "/**
+Self& itk::simple::AffineTransform::Translate(const std::vector< double > &offset, bool pre=false)
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::AggregateLabelMapFilter "/**
+
+Collapses all labels into the first label.
+
+
+This filter takes a label map as input and visits the pixels of all
+labels and assigns them to the first label of the label map. At the
+end of the execution of this filter, the map will contain a single
+filter.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ ShapeLabelObject , RelabelComponentImageFilter
+
+ itk::simple::AggregateLabelMapFilter for the procedural interface
+
+ itk::AggregateLabelMapFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkAggregateLabelMapFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::AggregateLabelMapFilter::AggregateLabelMapFilter "/**
+itk::simple::AggregateLabelMapFilter::AggregateLabelMapFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AggregateLabelMapFilter::Execute "/**
+Image itk::simple::AggregateLabelMapFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AggregateLabelMapFilter::GetName "/**
+std::string itk::simple::AggregateLabelMapFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AggregateLabelMapFilter::ToString "/**
+std::string itk::simple::AggregateLabelMapFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AggregateLabelMapFilter::~AggregateLabelMapFilter "/**
+itk::simple::AggregateLabelMapFilter::~AggregateLabelMapFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::AndImageFilter "/**
+
+Implements the AND bitwise operator pixel-wise between two images.
+
+
+This class is templated over the types of the two input images and the
+type of the output image. Numeric conversions (castings) are done by
+the C++ defaults.
+
+Since the bitwise AND operation is only defined in C++ for integer
+types, the images passed to this filter must comply with the
+requirement of using integer pixel type.
+
+The total operation over one pixel will be Where \"&\" is the bitwise AND operator in C++.
+
+Wiki Examples:
+
+All Examples
+
+Binary AND two images
+See:
+ itk::simple::And for the procedural interface
+
+ itk::AndImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkAndImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::AndImageFilter::AndImageFilter "/**
+itk::simple::AndImageFilter::AndImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AndImageFilter::Execute "/**
+Image itk::simple::AndImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AndImageFilter::Execute "/**
+Image itk::simple::AndImageFilter::Execute(const Image &image1, int constant)
+
+Execute the filter with an image and a constant
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AndImageFilter::Execute "/**
+Image itk::simple::AndImageFilter::Execute(int constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AndImageFilter::GetName "/**
+std::string itk::simple::AndImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AndImageFilter::ToString "/**
+std::string itk::simple::AndImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AndImageFilter::~AndImageFilter "/**
+itk::simple::AndImageFilter::~AndImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::AntiAliasBinaryImageFilter "/**
+
+A method for estimation of a surface from a binary volume.
+
+
+
+This filter implements a surface-fitting method for estimation of a
+surface from a binary volume. This process can be used to reduce
+aliasing artifacts which result in visualization of binary partitioned
+surfaces.
+
+The binary volume (filter input) is used as a set of constraints in an
+iterative relaxation process of an estimated ND surface. The surface
+is described implicitly as the zero level set of a volume $ \\\\phi $ and allowed to deform under curvature flow. A set of constraints is
+imposed on this movement as follows:
+
+\\\\[ u_{i,j,k}^{n+1} = \\\\left\\\\{ \\\\begin{array}{ll}
+\\\\mbox{max} (u_{i,j,k}^{n} + \\\\Delta t H_{i,j,k}^{n}, 0) &
+\\\\mbox{\\\\f$B_{i,j,k} = 1\\\\f$} \\\\\\\\ \\\\mbox{min}
+(u_{i,j,k}^{n} + \\\\Delta t H_{i,j,k}^{n}, 0) &
+\\\\mbox{\\\\f$B_{i,j,k} = -1\\\\f$} \\\\end{array}\\\\right. \\\\]
+
+where $ u_{i,j,k}^{n} $ is the value of $ \\\\phi $ at discrete index $ (i,j,k) $ and iteration $ n $ , $ H $ is the gradient magnitude times mean curvature of $ \\\\phi $ , and $ B $ is the binary input volume, with 1 denoting an inside pixel and -1
+denoting an outside pixel.
+NOTES
+This implementation uses a sparse field level set solver instead of
+the narrow band implementation described in the reference below, which
+may introduce some differences in how fast and how accurately (in
+terms of RMS error) the solution converges.
+REFERENCES
+Whitaker, Ross. \"Reducing Aliasing Artifacts In Iso-Surfaces of
+Binary Volumes\" IEEE Volume Visualization and Graphics Symposium,
+October 2000, pp.23-32.
+PARAMETERS
+The MaximumRMSChange parameter is used to determine when the solution
+has converged. A lower value will result in a tighter-fitting
+solution, but will require more computations. Too low a value could
+put the solver into an infinite loop. Values should always be less
+than 1.0. A value of 0.07 is a good starting estimate.
+
+The MaximumIterations parameter can be used to halt the solution after
+a specified number of iterations.
+INPUT
+The input is an N-dimensional image of any type. It is assumed to be a
+binary image. The filter will use an isosurface value that is halfway
+between the min and max values in the image. A signed data type is not
+necessary for the input.
+OUTPUT
+The filter will output a level set image of real, signed values. The
+zero crossings of this (N-dimensional) image represent the position of
+the isosurface value of interest. Values outside the zero level set
+are negative and values inside the zero level set are positive values.
+IMPORTANT!
+The output image type you use to instantiate this filter should be a
+real valued scalar type. In other words: doubles or floats.
+USING THIS FILTER
+The filter is relatively straightforward to use. Tests and examples
+exist to illustrate. The important thing is to understand the input
+and output types so you can properly interperet your results.
+
+In the common case, the only parameter that will need to be set is the
+MaximumRMSChange parameter, which determines when the solver halts.
+Wiki Examples:
+
+All Examples
+
+Anti alias a binary image
+See:
+ itk::simple::AntiAliasBinary for the procedural interface
+
+ itk::AntiAliasBinaryImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkAntiAliasBinaryImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::AntiAliasBinaryImageFilter::AntiAliasBinaryImageFilter "/**
+itk::simple::AntiAliasBinaryImageFilter::AntiAliasBinaryImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AntiAliasBinaryImageFilter::Execute "/**
+Image itk::simple::AntiAliasBinaryImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AntiAliasBinaryImageFilter::Execute "/**
+Image itk::simple::AntiAliasBinaryImageFilter::Execute(const Image &image1, double maximumRMSError, uint32_t
+numberOfIterations)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AntiAliasBinaryImageFilter::GetElapsedIterations "/**
+uint32_t itk::simple::AntiAliasBinaryImageFilter::GetElapsedIterations() const
+
+Number of iterations run.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AntiAliasBinaryImageFilter::GetMaximumRMSError "/**
+double itk::simple::AntiAliasBinaryImageFilter::GetMaximumRMSError() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AntiAliasBinaryImageFilter::GetName "/**
+std::string itk::simple::AntiAliasBinaryImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AntiAliasBinaryImageFilter::GetNumberOfIterations "/**
+uint32_t itk::simple::AntiAliasBinaryImageFilter::GetNumberOfIterations() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AntiAliasBinaryImageFilter::GetRMSChange "/**
+double itk::simple::AntiAliasBinaryImageFilter::GetRMSChange() const
+
+The Root Mean Square of the levelset upon termination.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AntiAliasBinaryImageFilter::SetMaximumRMSError "/**
+Self& itk::simple::AntiAliasBinaryImageFilter::SetMaximumRMSError(double MaximumRMSError)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AntiAliasBinaryImageFilter::SetNumberOfIterations "/**
+Self& itk::simple::AntiAliasBinaryImageFilter::SetNumberOfIterations(uint32_t NumberOfIterations)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AntiAliasBinaryImageFilter::ToString "/**
+std::string itk::simple::AntiAliasBinaryImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AntiAliasBinaryImageFilter::~AntiAliasBinaryImageFilter "/**
+itk::simple::AntiAliasBinaryImageFilter::~AntiAliasBinaryImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ApproximateSignedDistanceMapImageFilter "/**
+
+Create a map of the approximate signed distance from the boundaries of
+a binary image.
+
+
+The ApproximateSignedDistanceMapImageFilter takes as input a binary image and produces a signed distance map.
+Each pixel value in the output contains the approximate distance from
+that pixel to the nearest \"object\" in the binary image. This filter
+differs from the DanielssonDistanceMapImageFilter in that it calculates the distance to the \"object edge\" for pixels
+within the object.
+
+Negative values in the output indicate that the pixel at that position
+is within an object in the input image. The absolute value of a
+negative pixel represents the approximate distance to the nearest
+object boundary pixel.
+
+WARNING: This filter requires that the output type be floating-point.
+Otherwise internal calculations will not be performed to the
+appropriate precision, resulting in completely incorrect (read: zero-
+valued) output.
+
+The distances computed by this filter are Chamfer distances, which are
+only an approximation to Euclidian distances, and are not as exact
+approximations as those calculated by the DanielssonDistanceMapImageFilter . On the other hand, this filter is faster.
+
+This filter requires that an \"inside value\" and \"outside value\" be
+set as parameters. The \"inside value\" is the intensity value of the
+binary image which corresponds to objects, and the \"outside value\"
+is the intensity of the background. (A typical binary image often
+represents objects as black (0) and background as white (usually 255),
+or vice-versa.) Note that this filter is slightly faster if the inside
+value is less than the outside value. Otherwise an extra iteration
+through the image is required.
+
+This filter uses the FastChamferDistanceImageFilter and the IsoContourDistanceImageFilter internally to perform the distance calculations.
+
+
+See:
+ DanielssonDistanceMapImageFilter
+
+ SignedDanielssonDistanceMapImageFilter
+
+ SignedMaurerDistanceMapImageFilter
+
+ FastChamferDistanceImageFilter
+
+ IsoContourDistanceImageFilter
+
+Zach Pincus
+Wiki Examples:
+
+All Examples
+
+Compute a distance map from objects in a binary image
+See:
+ itk::simple::ApproximateSignedDistanceMap for the procedural interface
+
+ itk::ApproximateSignedDistanceMapImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkApproximateSignedDistanceMapImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ApproximateSignedDistanceMapImageFilter::ApproximateSignedDistanceMapImageFilter "/**
+itk::simple::ApproximateSignedDistanceMapImageFilter::ApproximateSignedDistanceMapImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ApproximateSignedDistanceMapImageFilter::Execute "/**
+Image itk::simple::ApproximateSignedDistanceMapImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ApproximateSignedDistanceMapImageFilter::Execute "/**
+Image itk::simple::ApproximateSignedDistanceMapImageFilter::Execute(const Image &image1, double insideValue, double outsideValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ApproximateSignedDistanceMapImageFilter::GetInsideValue "/**
+double itk::simple::ApproximateSignedDistanceMapImageFilter::GetInsideValue() const
+
+Set/Get intensity value representing the interior of objects in the
+mask.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ApproximateSignedDistanceMapImageFilter::GetName "/**
+std::string itk::simple::ApproximateSignedDistanceMapImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ApproximateSignedDistanceMapImageFilter::GetOutsideValue "/**
+double itk::simple::ApproximateSignedDistanceMapImageFilter::GetOutsideValue() const
+
+Set/Get intensity value representing non-objects in the mask.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ApproximateSignedDistanceMapImageFilter::SetInsideValue "/**
+Self& itk::simple::ApproximateSignedDistanceMapImageFilter::SetInsideValue(double InsideValue)
+
+Set/Get intensity value representing the interior of objects in the
+mask.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ApproximateSignedDistanceMapImageFilter::SetOutsideValue "/**
+Self& itk::simple::ApproximateSignedDistanceMapImageFilter::SetOutsideValue(double OutsideValue)
+
+Set/Get intensity value representing non-objects in the mask.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ApproximateSignedDistanceMapImageFilter::ToString "/**
+std::string itk::simple::ApproximateSignedDistanceMapImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ApproximateSignedDistanceMapImageFilter::~ApproximateSignedDistanceMapImageFilter "/**
+itk::simple::ApproximateSignedDistanceMapImageFilter::~ApproximateSignedDistanceMapImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::AsinImageFilter "/**
+
+Computes the sine of each pixel.
+
+
+This filter is templated over the pixel type of the input image and
+the pixel type of the output image.
+
+The filter walks over all the pixels in the input image, and for each
+pixel does the following:
+
+
+cast the pixel value to double ,
+
+apply the std::asin() function to the double value,
+
+cast the double value resulting from std::asin() to the pixel type of
+the output image,
+
+store the casted value into the output image.
+ The filter expects both images to have the same dimension (e.g. both
+2D, or both 3D, or both ND)
+See:
+ itk::simple::Asin for the procedural interface
+
+ itk::AsinImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkAsinImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::AsinImageFilter::AsinImageFilter "/**
+itk::simple::AsinImageFilter::AsinImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AsinImageFilter::Execute "/**
+Image itk::simple::AsinImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AsinImageFilter::GetName "/**
+std::string itk::simple::AsinImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AsinImageFilter::ToString "/**
+std::string itk::simple::AsinImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AsinImageFilter::~AsinImageFilter "/**
+itk::simple::AsinImageFilter::~AsinImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::Atan2ImageFilter "/**
+
+Computes two argument inverse tangent.
+
+
+The first argument to the atan function is provided by a pixel in the
+first input image (SetInput1() ) and the corresponding pixel in the
+second input image (SetInput2() ) is used as the second argument.
+
+This class is templated over the types of the two input images and the
+type of the output image. Numeric conversions (castings) are done by
+the C++ defaults.
+
+Both pixel input types are cast to double in order to be used as
+parameters of std::atan2() . The resulting double value is cast to the
+output pixel type.
+
+Wiki Examples:
+
+All Examples
+
+Compute the arctangent of each pixel.
+See:
+ itk::simple::Atan2 for the procedural interface
+
+ itk::Atan2ImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkAtan2ImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::Atan2ImageFilter::Atan2ImageFilter "/**
+itk::simple::Atan2ImageFilter::Atan2ImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Atan2ImageFilter::Execute "/**
+Image itk::simple::Atan2ImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Atan2ImageFilter::Execute "/**
+Image itk::simple::Atan2ImageFilter::Execute(const Image &image1, double constant)
+
+Execute the filter with an image and a constant
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Atan2ImageFilter::Execute "/**
+Image itk::simple::Atan2ImageFilter::Execute(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Atan2ImageFilter::GetName "/**
+std::string itk::simple::Atan2ImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Atan2ImageFilter::ToString "/**
+std::string itk::simple::Atan2ImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Atan2ImageFilter::~Atan2ImageFilter "/**
+itk::simple::Atan2ImageFilter::~Atan2ImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::AtanImageFilter "/**
+
+Computes the one-argument inverse tangent of each pixel.
+
+
+This filter is templated over the pixel type of the input image and
+the pixel type of the output image.
+
+The filter walks over all the pixels in the input image, and for each
+pixel does the following:
+
+
+cast the pixel value to double ,
+
+apply the std::atan() function to the double value,
+
+cast the double value resulting from std::atan() to the pixel type of
+the output image,
+
+store the cast value into the output image.
+See:
+ itk::simple::Atan for the procedural interface
+
+ itk::AtanImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkAtanImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::AtanImageFilter::AtanImageFilter "/**
+itk::simple::AtanImageFilter::AtanImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AtanImageFilter::Execute "/**
+Image itk::simple::AtanImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AtanImageFilter::GetName "/**
+std::string itk::simple::AtanImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AtanImageFilter::ToString "/**
+std::string itk::simple::AtanImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AtanImageFilter::~AtanImageFilter "/**
+itk::simple::AtanImageFilter::~AtanImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BSplineTransform "/**
+
+A deformable transform over a bounded spatial domain using a BSpline
+representation for a 2D or 3D coordinate space.
+
+
+
+See:
+ itk::BSplineTransform
+
+
+C++ includes: sitkBSplineTransform.h
+*/"
+
+%javamethodmodifiers  itk::simple::BSplineTransform::BSplineTransform "/**
+itk::simple::BSplineTransform::BSplineTransform(unsigned int dimensions, unsigned int order=3)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BSplineTransform::BSplineTransform "/**
+itk::simple::BSplineTransform::BSplineTransform(const BSplineTransform &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BSplineTransform::BSplineTransform "/**
+itk::simple::BSplineTransform::BSplineTransform(const Transform &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BSplineTransform::GetCoefficientImages "/**
+std::vector<Image> itk::simple::BSplineTransform::GetCoefficientImages() const
+
+Get a vector of the coefficient images representing the BSpline.
+
+
+A lazy shallow copy of the images from ITK are performed. If they are
+modified in SimpleITK a deep copy will occur. However, if the
+coefficients are modified in ITK, then no copy will occur and the
+images help by SimpleITK may change.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BSplineTransform::GetName "/**
+std::string itk::simple::BSplineTransform::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BSplineTransform::GetOrder "/**
+unsigned int itk::simple::BSplineTransform::GetOrder() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BSplineTransform::GetTransformDomainDirection "/**
+std::vector<double> itk::simple::BSplineTransform::GetTransformDomainDirection() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BSplineTransform::GetTransformDomainMeshSize "/**
+std::vector<unsigned int> itk::simple::BSplineTransform::GetTransformDomainMeshSize() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BSplineTransform::GetTransformDomainOrigin "/**
+std::vector<double> itk::simple::BSplineTransform::GetTransformDomainOrigin() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BSplineTransform::GetTransformDomainPhysicalDimensions "/**
+std::vector<double> itk::simple::BSplineTransform::GetTransformDomainPhysicalDimensions() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BSplineTransform::SetTransformDomainDirection "/**
+Self& itk::simple::BSplineTransform::SetTransformDomainDirection(const std::vector< double > &)
+
+parameters fixed parameter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BSplineTransform::SetTransformDomainMeshSize "/**
+Self& itk::simple::BSplineTransform::SetTransformDomainMeshSize(const std::vector< unsigned int > &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BSplineTransform::SetTransformDomainOrigin "/**
+Self& itk::simple::BSplineTransform::SetTransformDomainOrigin(const std::vector< double > &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BSplineTransform::SetTransformDomainPhysicalDimensions "/**
+Self& itk::simple::BSplineTransform::SetTransformDomainPhysicalDimensions(const std::vector< double > &)
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BSplineTransformInitializerFilter "/**
+
+BSplineTransformInitializerFilter is a helper class intended to initialize the control point grid such
+that it has a physically consistent definition. It sets the transform
+domain origin, physical dimensions and direction from information
+obtained from the image. It also sets the mesh size if asked to do so
+by calling SetTransformDomainMeshSize()before calling InitializeTransform().
+
+
+
+Luis Ibanez
+ Nick Tustison
+See:
+ itk::simple::BSplineTransformInitializer for the procedural interface
+
+ itk::BSplineTransformInitializer for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBSplineTransformInitializerFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BSplineTransformInitializerFilter::BSplineTransformInitializerFilter "/**
+itk::simple::BSplineTransformInitializerFilter::BSplineTransformInitializerFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BSplineTransformInitializerFilter::Execute "/**
+BSplineTransform itk::simple::BSplineTransformInitializerFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BSplineTransformInitializerFilter::Execute "/**
+BSplineTransform itk::simple::BSplineTransformInitializerFilter::Execute(const Image &image1, const std::vector< uint32_t >
+&transformDomainMeshSize, unsigned int order)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BSplineTransformInitializerFilter::GetName "/**
+std::string itk::simple::BSplineTransformInitializerFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BSplineTransformInitializerFilter::GetOrder "/**
+unsigned int itk::simple::BSplineTransformInitializerFilter::GetOrder() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BSplineTransformInitializerFilter::GetTransformDomainMeshSize "/**
+std::vector<uint32_t> itk::simple::BSplineTransformInitializerFilter::GetTransformDomainMeshSize() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BSplineTransformInitializerFilter::SetOrder "/**
+Self& itk::simple::BSplineTransformInitializerFilter::SetOrder(unsigned int order)
+
+The order of the bspline in the output BSplineTransform. This value effects the number of control points.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BSplineTransformInitializerFilter::SetTransformDomainMeshSize "/**
+Self& itk::simple::BSplineTransformInitializerFilter::SetTransformDomainMeshSize(const std::vector< uint32_t > &TransformDomainMeshSize)
+
+Allow the user to set the mesh size of the transform via the
+initializer even though the initializer does not do anything with that
+information. Defeault = 1^ImageDimension.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BSplineTransformInitializerFilter::ToString "/**
+std::string itk::simple::BSplineTransformInitializerFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BSplineTransformInitializerFilter::~BSplineTransformInitializerFilter "/**
+itk::simple::BSplineTransformInitializerFilter::~BSplineTransformInitializerFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BilateralImageFilter "/**
+
+Blurs an image while preserving edges.
+
+
+This filter uses bilateral filtering to blur an image using both
+domain and range \"neighborhoods\". Pixels that are close to a pixel
+in the image domain and similar to a pixel in the image range are used
+to calculate the filtered value. Two gaussian kernels (one in the
+image domain and one in the image range) are used to smooth the image.
+The result is an image that is smoothed in homogeneous regions yet has
+edges preserved. The result is similar to anisotropic diffusion but
+the implementation in non-iterative. Another benefit to bilateral
+filtering is that any distance metric can be used for kernel smoothing
+the image range. Hence, color images can be smoothed as vector images,
+using the CIE distances between intensity values as the similarity
+metric (the Gaussian kernel for the image domain is evaluated using
+CIE distances). A separate version of this filter will be designed for
+color and vector images.
+
+Bilateral filtering is capable of reducing the noise in an image by an
+order of magnitude while maintaining edges.
+
+The bilateral operator used here was described by Tomasi and Manduchi
+(Bilateral Filtering for Gray and ColorImages. IEEE ICCV. 1998.)
+
+
+See:
+ GaussianOperator
+
+ RecursiveGaussianImageFilter
+
+ DiscreteGaussianImageFilter
+
+ AnisotropicDiffusionImageFilter
+
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+ TodoSupport color images
+
+Support vector images
+
+Wiki Examples:
+
+All Examples
+
+Bilateral filter an image
+See:
+ itk::simple::Bilateral for the procedural interface
+
+ itk::BilateralImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkBilateralImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BilateralImageFilter::BilateralImageFilter "/**
+itk::simple::BilateralImageFilter::BilateralImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BilateralImageFilter::Execute "/**
+Image itk::simple::BilateralImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BilateralImageFilter::Execute "/**
+Image itk::simple::BilateralImageFilter::Execute(const Image &image1, double domainSigma, double rangeSigma, unsigned
+int numberOfRangeGaussianSamples)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BilateralImageFilter::GetDomainSigma "/**
+double itk::simple::BilateralImageFilter::GetDomainSigma() const
+
+Standard get/set macros for filter parameters. DomainSigma is
+specified in the same units as the Image spacing. RangeSigma is specified in the units of intensity.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BilateralImageFilter::GetName "/**
+std::string itk::simple::BilateralImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BilateralImageFilter::GetNumberOfRangeGaussianSamples "/**
+unsigned int itk::simple::BilateralImageFilter::GetNumberOfRangeGaussianSamples() const
+
+Set/Get the number of samples in the approximation to the Gaussian
+used for the range smoothing. Samples are only generated in the range
+of [0, 4*m_RangeSigma]. Default is 100.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BilateralImageFilter::GetRangeSigma "/**
+double itk::simple::BilateralImageFilter::GetRangeSigma() const
+
+Standard get/set macros for filter parameters. DomainSigma is
+specified in the same units as the Image spacing. RangeSigma is specified in the units of intensity.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BilateralImageFilter::SetDomainSigma "/**
+Self& itk::simple::BilateralImageFilter::SetDomainSigma(double DomainSigma)
+
+Convenience get/set methods for setting all domain parameters to the
+same values.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BilateralImageFilter::SetNumberOfRangeGaussianSamples "/**
+Self& itk::simple::BilateralImageFilter::SetNumberOfRangeGaussianSamples(unsigned int NumberOfRangeGaussianSamples)
+
+Set/Get the number of samples in the approximation to the Gaussian
+used for the range smoothing. Samples are only generated in the range
+of [0, 4*m_RangeSigma]. Default is 100.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BilateralImageFilter::SetRangeSigma "/**
+Self& itk::simple::BilateralImageFilter::SetRangeSigma(double RangeSigma)
+
+Standard get/set macros for filter parameters. DomainSigma is
+specified in the same units as the Image spacing. RangeSigma is specified in the units of intensity.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BilateralImageFilter::ToString "/**
+std::string itk::simple::BilateralImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BilateralImageFilter::~BilateralImageFilter "/**
+itk::simple::BilateralImageFilter::~BilateralImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BinShrinkImageFilter "/**
+
+Reduce the size of an image by an integer factor in each dimension
+while performing averaging of an input neighborhood.
+
+
+The output image size in each dimension is given by:
+
+outputSize[j] = max( std::floor(inputSize[j]/shrinkFactor[j]), 1 );
+
+The algorithm implemented can be describe with the following equation
+for 2D: \\\\[ \\\\mathsf{I}_{out}(x_o,x_1) =
+\\\\frac{\\\\sum_{i=0}^{f_0}\\\\sum_{j=0}^{f_1}\\\\mathsf{I}_{in}(f_0
+x_o+i,f_1 x_1+j)}{f_0 f_1} \\\\]
+
+This filter is implemented so that the starting extent of the first
+pixel of the output matches that of the input.
+
+The change in image geometry from a 5x5 image binned by a factor of
+2x2. This code was contributed in the Insight Journal paper:
+\"BinShrink: A multi-resolution filter with cache efficient
+averaging\" by Lowekamp B., Chen D. https://hdl.handle.net/10380/3450
+See:
+ itk::simple::BinShrink for the procedural interface
+
+ itk::BinShrinkImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBinShrinkImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BinShrinkImageFilter::BinShrinkImageFilter "/**
+itk::simple::BinShrinkImageFilter::BinShrinkImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinShrinkImageFilter::Execute "/**
+Image itk::simple::BinShrinkImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinShrinkImageFilter::Execute "/**
+Image itk::simple::BinShrinkImageFilter::Execute(const Image &image1, const std::vector< unsigned int >
+&shrinkFactors)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinShrinkImageFilter::GetName "/**
+std::string itk::simple::BinShrinkImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinShrinkImageFilter::GetShrinkFactors "/**
+std::vector<unsigned int> itk::simple::BinShrinkImageFilter::GetShrinkFactors() const
+
+Get the shrink factors.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinShrinkImageFilter::SetShrinkFactor "/**
+Self& itk::simple::BinShrinkImageFilter::SetShrinkFactor(unsigned int s)
+
+Custom public declarations
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinShrinkImageFilter::SetShrinkFactors "/**
+Self& itk::simple::BinShrinkImageFilter::SetShrinkFactors(const std::vector< unsigned int > &ShrinkFactors)
+
+Set the shrink factors. Values are clamped to a minimum value of 1.
+Default is 1 for all dimensions.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinShrinkImageFilter::ToString "/**
+std::string itk::simple::BinShrinkImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinShrinkImageFilter::~BinShrinkImageFilter "/**
+itk::simple::BinShrinkImageFilter::~BinShrinkImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BinaryClosingByReconstructionImageFilter "/**
+
+binary closing by reconstruction of an image.
+
+
+This filter removes small (i.e., smaller than the structuring element)
+holes in the image. It is defined as: Closing(f) =
+ReconstructionByErosion(Dilation(f)).
+
+The structuring element is assumed to be composed of binary values
+(zero or one). Only elements of the structuring element having values
+> 0 are candidates for affecting the center pixel.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+See:
+ MorphologyImageFilter , ClosingByReconstructionImageFilter , BinaryOpeningByReconstructionImageFilter
+
+ itk::simple::BinaryClosingByReconstruction for the procedural interface
+
+ itk::BinaryClosingByReconstructionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBinaryClosingByReconstructionImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BinaryClosingByReconstructionImageFilter::BinaryClosingByReconstructionImageFilter "/**
+itk::simple::BinaryClosingByReconstructionImageFilter::BinaryClosingByReconstructionImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryClosingByReconstructionImageFilter::Execute "/**
+Image itk::simple::BinaryClosingByReconstructionImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryClosingByReconstructionImageFilter::Execute "/**
+Image itk::simple::BinaryClosingByReconstructionImageFilter::Execute(const Image &image1, double foregroundValue, bool fullyConnected)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryClosingByReconstructionImageFilter::FullyConnectedOff "/**
+Self& itk::simple::BinaryClosingByReconstructionImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryClosingByReconstructionImageFilter::FullyConnectedOn "/**
+Self& itk::simple::BinaryClosingByReconstructionImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryClosingByReconstructionImageFilter::GetForegroundValue "/**
+double itk::simple::BinaryClosingByReconstructionImageFilter::GetForegroundValue() const
+
+Get the value in the image considered as \"foreground\". Defaults to
+maximum value of InputPixelType.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryClosingByReconstructionImageFilter::GetFullyConnected "/**
+bool itk::simple::BinaryClosingByReconstructionImageFilter::GetFullyConnected() const
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryClosingByReconstructionImageFilter::GetKernelRadius "/**
+std::vector<uint32_t> itk::simple::BinaryClosingByReconstructionImageFilter::GetKernelRadius() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryClosingByReconstructionImageFilter::GetKernelType "/**
+KernelEnum itk::simple::BinaryClosingByReconstructionImageFilter::GetKernelType() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryClosingByReconstructionImageFilter::GetName "/**
+std::string itk::simple::BinaryClosingByReconstructionImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryClosingByReconstructionImageFilter::SetForegroundValue "/**
+Self& itk::simple::BinaryClosingByReconstructionImageFilter::SetForegroundValue(double ForegroundValue)
+
+Set the value in the image to consider as \"foreground\". Defaults to
+maximum value of InputPixelType.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryClosingByReconstructionImageFilter::SetFullyConnected "/**
+Self& itk::simple::BinaryClosingByReconstructionImageFilter::SetFullyConnected(bool FullyConnected)
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryClosingByReconstructionImageFilter::SetKernelRadius "/**
+Self& itk::simple::BinaryClosingByReconstructionImageFilter::SetKernelRadius(uint32_t r)
+
+Kernel radius as a scale for isotropic structures
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryClosingByReconstructionImageFilter::SetKernelRadius "/**
+Self& itk::simple::BinaryClosingByReconstructionImageFilter::SetKernelRadius(const std::vector< uint32_t > &r)
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryClosingByReconstructionImageFilter::SetKernelType "/**
+Self& itk::simple::BinaryClosingByReconstructionImageFilter::SetKernelType(KernelEnum t)
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryClosingByReconstructionImageFilter::SetKernelType "/**
+Self& itk::simple::BinaryClosingByReconstructionImageFilter::SetKernelType(KernelType t)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryClosingByReconstructionImageFilter::ToString "/**
+std::string itk::simple::BinaryClosingByReconstructionImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryClosingByReconstructionImageFilter::~BinaryClosingByReconstructionImageFilter "/**
+itk::simple::BinaryClosingByReconstructionImageFilter::~BinaryClosingByReconstructionImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BinaryContourImageFilter "/**
+
+Labels the pixels on the border of the objects in a binary image.
+
+
+BinaryContourImageFilter takes a binary image as input, where the pixels in the objects are
+the pixels with a value equal to ForegroundValue. Only the pixels on
+the contours of the objects are kept. The pixels not on the border are
+changed to BackgroundValue.
+
+The connectivity can be changed to minimum or maximum connectivity
+with SetFullyConnected() . Full connectivity produces thicker contours.
+
+https://hdl.handle.net/1926/1352
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ LabelContourImageFilter BinaryErodeImageFilter SimpleContourExtractorImageFilter
+Wiki Examples:
+
+All Examples
+
+Extract the boundaries of connected regions in a binary image
+
+Extract the inner and outer boundaries of blobs in a binary image
+See:
+ itk::simple::BinaryContour for the procedural interface
+
+ itk::BinaryContourImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkBinaryContourImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BinaryContourImageFilter::BinaryContourImageFilter "/**
+itk::simple::BinaryContourImageFilter::BinaryContourImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryContourImageFilter::Execute "/**
+Image itk::simple::BinaryContourImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryContourImageFilter::Execute "/**
+Image itk::simple::BinaryContourImageFilter::Execute(const Image &image1, bool fullyConnected, double backgroundValue,
+double foregroundValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryContourImageFilter::FullyConnectedOff "/**
+Self& itk::simple::BinaryContourImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryContourImageFilter::FullyConnectedOn "/**
+Self& itk::simple::BinaryContourImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryContourImageFilter::GetBackgroundValue "/**
+double itk::simple::BinaryContourImageFilter::GetBackgroundValue() const
+
+Set/Get the background value used to mark the pixels not on the border
+of the objects.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryContourImageFilter::GetForegroundValue "/**
+double itk::simple::BinaryContourImageFilter::GetForegroundValue() const
+
+Set/Get the foreground value used to identify the objects in the input
+and output images.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryContourImageFilter::GetFullyConnected "/**
+bool itk::simple::BinaryContourImageFilter::GetFullyConnected() const
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryContourImageFilter::GetName "/**
+std::string itk::simple::BinaryContourImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryContourImageFilter::SetBackgroundValue "/**
+Self& itk::simple::BinaryContourImageFilter::SetBackgroundValue(double BackgroundValue)
+
+Set/Get the background value used to mark the pixels not on the border
+of the objects.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryContourImageFilter::SetForegroundValue "/**
+Self& itk::simple::BinaryContourImageFilter::SetForegroundValue(double ForegroundValue)
+
+Set/Get the foreground value used to identify the objects in the input
+and output images.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryContourImageFilter::SetFullyConnected "/**
+Self& itk::simple::BinaryContourImageFilter::SetFullyConnected(bool FullyConnected)
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryContourImageFilter::ToString "/**
+std::string itk::simple::BinaryContourImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryContourImageFilter::~BinaryContourImageFilter "/**
+itk::simple::BinaryContourImageFilter::~BinaryContourImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BinaryDilateImageFilter "/**
+
+Fast binary dilation.
+
+
+BinaryDilateImageFilter is a binary dilation morphologic operation. This implementation is
+based on the papers:
+
+L.Vincent \"Morphological transformations of binary images with
+arbitrary structuring elements\", and
+
+N.Nikopoulos et al. \"An efficient algorithm for 3d binary
+morphological transformations with 3d structuring elements for
+arbitrary size and shape\". IEEE Transactions on Image Processing. Vol. 9. No. 3. 2000. pp. 283-286.
+
+Gray scale images can be processed as binary images by selecting a
+\"DilateValue\". Pixel values matching the dilate value are considered
+the \"foreground\" and all other pixels are \"background\". This is
+useful in processing segmented images where all pixels in segment #1
+have value 1 and pixels in segment #2 have value 2, etc. A particular
+\"segment number\" can be processed. DilateValue defaults to the
+maximum possible value of the PixelType.
+
+The structuring element is assumed to be composed of binary values
+(zero or one). Only elements of the structuring element having values
+> 0 are candidates for affecting the center pixel. A reasonable choice
+of structuring element is itk::BinaryBallStructuringElement .
+
+
+See:
+ ImageToImageFilter BinaryErodeImageFilter BinaryMorphologyImageFilter
+Wiki Examples:
+
+All Examples
+
+Dilate a binary image
+See:
+ itk::simple::BinaryDilate for the procedural interface
+
+ itk::BinaryDilateImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkBinaryDilateImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BinaryDilateImageFilter::BinaryDilateImageFilter "/**
+itk::simple::BinaryDilateImageFilter::BinaryDilateImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryDilateImageFilter::BoundaryToForegroundOff "/**
+Self& itk::simple::BinaryDilateImageFilter::BoundaryToForegroundOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryDilateImageFilter::BoundaryToForegroundOn "/**
+Self& itk::simple::BinaryDilateImageFilter::BoundaryToForegroundOn()
+
+Set the value of BoundaryToForeground to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryDilateImageFilter::Execute "/**
+Image itk::simple::BinaryDilateImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryDilateImageFilter::Execute "/**
+Image itk::simple::BinaryDilateImageFilter::Execute(const Image &image1, double backgroundValue, double foregroundValue,
+bool boundaryToForeground)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryDilateImageFilter::GetBackgroundValue "/**
+double itk::simple::BinaryDilateImageFilter::GetBackgroundValue() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryDilateImageFilter::GetBoundaryToForeground "/**
+bool itk::simple::BinaryDilateImageFilter::GetBoundaryToForeground() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryDilateImageFilter::GetForegroundValue "/**
+double itk::simple::BinaryDilateImageFilter::GetForegroundValue() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryDilateImageFilter::GetKernelRadius "/**
+std::vector<uint32_t> itk::simple::BinaryDilateImageFilter::GetKernelRadius() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryDilateImageFilter::GetKernelType "/**
+KernelEnum itk::simple::BinaryDilateImageFilter::GetKernelType() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryDilateImageFilter::GetName "/**
+std::string itk::simple::BinaryDilateImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryDilateImageFilter::SetBackgroundValue "/**
+Self& itk::simple::BinaryDilateImageFilter::SetBackgroundValue(double BackgroundValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryDilateImageFilter::SetBoundaryToForeground "/**
+Self& itk::simple::BinaryDilateImageFilter::SetBoundaryToForeground(bool BoundaryToForeground)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryDilateImageFilter::SetForegroundValue "/**
+Self& itk::simple::BinaryDilateImageFilter::SetForegroundValue(double ForegroundValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryDilateImageFilter::SetKernelRadius "/**
+Self& itk::simple::BinaryDilateImageFilter::SetKernelRadius(uint32_t r)
+
+Kernel radius as a scale for isotropic structures
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryDilateImageFilter::SetKernelRadius "/**
+Self& itk::simple::BinaryDilateImageFilter::SetKernelRadius(const std::vector< uint32_t > &r)
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryDilateImageFilter::SetKernelType "/**
+Self& itk::simple::BinaryDilateImageFilter::SetKernelType(KernelEnum t)
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryDilateImageFilter::SetKernelType "/**
+Self& itk::simple::BinaryDilateImageFilter::SetKernelType(KernelType t)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryDilateImageFilter::ToString "/**
+std::string itk::simple::BinaryDilateImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryDilateImageFilter::~BinaryDilateImageFilter "/**
+itk::simple::BinaryDilateImageFilter::~BinaryDilateImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BinaryErodeImageFilter "/**
+
+Fast binary erosion.
+
+
+BinaryErodeImageFilter is a binary erosion morphologic operation. This implementation is
+based on the papers:
+
+L.Vincent \"Morphological transformations of binary images with
+arbitrary structuring elements\", and
+
+N.Nikopoulos et al. \"An efficient algorithm for 3d binary
+morphological transformations with 3d structuring elements for
+arbitrary size and shape\". IEEE Transactions on Image Processing. Vol. 9. No. 3. 2000. pp. 283-286.
+
+Gray scale images can be processed as binary images by selecting a
+\"ErodeValue\". Pixel values matching the erode value are considered
+the \"foreground\" and all other pixels are \"background\". This is
+useful in processing segmented images where all pixels in segment #1
+have value 1 and pixels in segment #2 have value 2, etc. A particular
+\"segment number\" can be processed. ErodeValue defaults to the
+maximum possible value of the PixelType. The eroded pixels will
+receive the BackgroundValue (defaults to 0).
+
+The structuring element is assumed to be composed of binary values
+(zero or one). Only elements of the structuring element having values
+> 0 are candidates for affecting the center pixel. A reasonable choice
+of structuring element is itk::BinaryBallStructuringElement .
+
+
+See:
+ ImageToImageFilter BinaryDilateImageFilter BinaryMorphologyImageFilter
+Wiki Examples:
+
+All Examples
+
+Erode a binary image
+See:
+ itk::simple::BinaryErode for the procedural interface
+
+ itk::BinaryErodeImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkBinaryErodeImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BinaryErodeImageFilter::BinaryErodeImageFilter "/**
+itk::simple::BinaryErodeImageFilter::BinaryErodeImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryErodeImageFilter::BoundaryToForegroundOff "/**
+Self& itk::simple::BinaryErodeImageFilter::BoundaryToForegroundOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryErodeImageFilter::BoundaryToForegroundOn "/**
+Self& itk::simple::BinaryErodeImageFilter::BoundaryToForegroundOn()
+
+Set the value of BoundaryToForeground to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryErodeImageFilter::Execute "/**
+Image itk::simple::BinaryErodeImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryErodeImageFilter::Execute "/**
+Image itk::simple::BinaryErodeImageFilter::Execute(const Image &image1, double backgroundValue, double foregroundValue,
+bool boundaryToForeground)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryErodeImageFilter::GetBackgroundValue "/**
+double itk::simple::BinaryErodeImageFilter::GetBackgroundValue() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryErodeImageFilter::GetBoundaryToForeground "/**
+bool itk::simple::BinaryErodeImageFilter::GetBoundaryToForeground() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryErodeImageFilter::GetForegroundValue "/**
+double itk::simple::BinaryErodeImageFilter::GetForegroundValue() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryErodeImageFilter::GetKernelRadius "/**
+std::vector<uint32_t> itk::simple::BinaryErodeImageFilter::GetKernelRadius() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryErodeImageFilter::GetKernelType "/**
+KernelEnum itk::simple::BinaryErodeImageFilter::GetKernelType() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryErodeImageFilter::GetName "/**
+std::string itk::simple::BinaryErodeImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryErodeImageFilter::SetBackgroundValue "/**
+Self& itk::simple::BinaryErodeImageFilter::SetBackgroundValue(double BackgroundValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryErodeImageFilter::SetBoundaryToForeground "/**
+Self& itk::simple::BinaryErodeImageFilter::SetBoundaryToForeground(bool BoundaryToForeground)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryErodeImageFilter::SetForegroundValue "/**
+Self& itk::simple::BinaryErodeImageFilter::SetForegroundValue(double ForegroundValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryErodeImageFilter::SetKernelRadius "/**
+Self& itk::simple::BinaryErodeImageFilter::SetKernelRadius(uint32_t r)
+
+Kernel radius as a scale for isotropic structures
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryErodeImageFilter::SetKernelRadius "/**
+Self& itk::simple::BinaryErodeImageFilter::SetKernelRadius(const std::vector< uint32_t > &r)
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryErodeImageFilter::SetKernelType "/**
+Self& itk::simple::BinaryErodeImageFilter::SetKernelType(KernelEnum t)
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryErodeImageFilter::SetKernelType "/**
+Self& itk::simple::BinaryErodeImageFilter::SetKernelType(KernelType t)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryErodeImageFilter::ToString "/**
+std::string itk::simple::BinaryErodeImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryErodeImageFilter::~BinaryErodeImageFilter "/**
+itk::simple::BinaryErodeImageFilter::~BinaryErodeImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BinaryFillholeImageFilter "/**
+
+Remove holes not connected to the boundary of the image.
+
+
+BinaryFillholeImageFilter fills holes in a binary image.
+
+Geodesic morphology and the Fillhole algorithm is described in Chapter
+6 of Pierre Soille's book \"Morphological Image Analysis: Principles
+and Applications\", Second Edition, Springer, 2003.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+See:
+ GrayscaleFillholeImageFilter
+
+ itk::simple::BinaryFillhole for the procedural interface
+
+ itk::BinaryFillholeImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBinaryFillholeImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BinaryFillholeImageFilter::BinaryFillholeImageFilter "/**
+itk::simple::BinaryFillholeImageFilter::BinaryFillholeImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryFillholeImageFilter::Execute "/**
+Image itk::simple::BinaryFillholeImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryFillholeImageFilter::Execute "/**
+Image itk::simple::BinaryFillholeImageFilter::Execute(const Image &image1, bool fullyConnected, double foregroundValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryFillholeImageFilter::FullyConnectedOff "/**
+Self& itk::simple::BinaryFillholeImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryFillholeImageFilter::FullyConnectedOn "/**
+Self& itk::simple::BinaryFillholeImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryFillholeImageFilter::GetForegroundValue "/**
+double itk::simple::BinaryFillholeImageFilter::GetForegroundValue() const
+
+Get the value in the image considered as \"foreground\". Defaults to
+maximum value of InputPixelType.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryFillholeImageFilter::GetFullyConnected "/**
+bool itk::simple::BinaryFillholeImageFilter::GetFullyConnected() const
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryFillholeImageFilter::GetName "/**
+std::string itk::simple::BinaryFillholeImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryFillholeImageFilter::SetForegroundValue "/**
+Self& itk::simple::BinaryFillholeImageFilter::SetForegroundValue(double ForegroundValue)
+
+Set the value in the image to consider as \"foreground\". Defaults to
+maximum value of InputPixelType.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryFillholeImageFilter::SetFullyConnected "/**
+Self& itk::simple::BinaryFillholeImageFilter::SetFullyConnected(bool FullyConnected)
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryFillholeImageFilter::ToString "/**
+std::string itk::simple::BinaryFillholeImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryFillholeImageFilter::~BinaryFillholeImageFilter "/**
+itk::simple::BinaryFillholeImageFilter::~BinaryFillholeImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BinaryGrindPeakImageFilter "/**
+
+Remove the objects not connected to the boundary of the image.
+
+
+BinaryGrindPeakImageFilter ginds peaks in a grayscale image.
+
+Geodesic morphology and the grind peak algorithm is described in
+Chapter 6 of Pierre Soille's book \"Morphological Image Analysis:
+Principles and Applications\", Second Edition, Springer, 2003.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+See:
+ GrayscaleGrindPeakImageFilter
+
+ itk::simple::BinaryGrindPeak for the procedural interface
+
+ itk::BinaryGrindPeakImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBinaryGrindPeakImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BinaryGrindPeakImageFilter::BinaryGrindPeakImageFilter "/**
+itk::simple::BinaryGrindPeakImageFilter::BinaryGrindPeakImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryGrindPeakImageFilter::Execute "/**
+Image itk::simple::BinaryGrindPeakImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryGrindPeakImageFilter::Execute "/**
+Image itk::simple::BinaryGrindPeakImageFilter::Execute(const Image &image1, bool fullyConnected, double foregroundValue,
+double backgroundValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryGrindPeakImageFilter::FullyConnectedOff "/**
+Self& itk::simple::BinaryGrindPeakImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryGrindPeakImageFilter::FullyConnectedOn "/**
+Self& itk::simple::BinaryGrindPeakImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryGrindPeakImageFilter::GetBackgroundValue "/**
+double itk::simple::BinaryGrindPeakImageFilter::GetBackgroundValue() const
+
+Set the value in eroded part of the image. Defaults to zero
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryGrindPeakImageFilter::GetForegroundValue "/**
+double itk::simple::BinaryGrindPeakImageFilter::GetForegroundValue() const
+
+Get the value in the image considered as \"foreground\". Defaults to
+maximum value of InputPixelType.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryGrindPeakImageFilter::GetFullyConnected "/**
+bool itk::simple::BinaryGrindPeakImageFilter::GetFullyConnected() const
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryGrindPeakImageFilter::GetName "/**
+std::string itk::simple::BinaryGrindPeakImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryGrindPeakImageFilter::SetBackgroundValue "/**
+Self& itk::simple::BinaryGrindPeakImageFilter::SetBackgroundValue(double BackgroundValue)
+
+Set the value in eroded part of the image. Defaults to zero
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryGrindPeakImageFilter::SetForegroundValue "/**
+Self& itk::simple::BinaryGrindPeakImageFilter::SetForegroundValue(double ForegroundValue)
+
+Set the value in the image to consider as \"foreground\". Defaults to
+maximum value of InputPixelType.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryGrindPeakImageFilter::SetFullyConnected "/**
+Self& itk::simple::BinaryGrindPeakImageFilter::SetFullyConnected(bool FullyConnected)
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryGrindPeakImageFilter::ToString "/**
+std::string itk::simple::BinaryGrindPeakImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryGrindPeakImageFilter::~BinaryGrindPeakImageFilter "/**
+itk::simple::BinaryGrindPeakImageFilter::~BinaryGrindPeakImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BinaryImageToLabelMapFilter "/**
+
+Label the connected components in a binary image and produce a
+collection of label objects.
+
+
+BinaryImageToLabelMapFilter labels the objects in a binary image. Each distinct object is
+assigned a unique label. The final object labels start with 1 and are
+consecutive. Objects that are reached earlier by a raster order scan
+have a lower label.
+
+The GetOutput() function of this class returns an itk::LabelMap .
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ ConnectedComponentImageFilter , LabelImageToLabelMapFilter , LabelMap , LabelObject
+Wiki Examples:
+
+All Examples
+
+Label binary regions in an image
+See:
+ itk::simple::BinaryImageToLabelMapFilter for the procedural interface
+
+ itk::BinaryImageToLabelMapFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkBinaryImageToLabelMapFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BinaryImageToLabelMapFilter::BinaryImageToLabelMapFilter "/**
+itk::simple::BinaryImageToLabelMapFilter::BinaryImageToLabelMapFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryImageToLabelMapFilter::Execute "/**
+Image itk::simple::BinaryImageToLabelMapFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryImageToLabelMapFilter::Execute "/**
+Image itk::simple::BinaryImageToLabelMapFilter::Execute(const Image &image1, bool fullyConnected, double
+inputForegroundValue, double outputBackgroundValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryImageToLabelMapFilter::FullyConnectedOff "/**
+Self& itk::simple::BinaryImageToLabelMapFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryImageToLabelMapFilter::FullyConnectedOn "/**
+Self& itk::simple::BinaryImageToLabelMapFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryImageToLabelMapFilter::GetFullyConnected "/**
+bool itk::simple::BinaryImageToLabelMapFilter::GetFullyConnected() const
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryImageToLabelMapFilter::GetInputForegroundValue "/**
+double itk::simple::BinaryImageToLabelMapFilter::GetInputForegroundValue() const
+
+Set/Get the value to be consider \"foreground\" in the input image.
+Defaults to NumericTraits<InputPixelType>::max() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryImageToLabelMapFilter::GetName "/**
+std::string itk::simple::BinaryImageToLabelMapFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryImageToLabelMapFilter::GetOutputBackgroundValue "/**
+double itk::simple::BinaryImageToLabelMapFilter::GetOutputBackgroundValue() const
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<OutputPixelType>::NonpositiveMin() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryImageToLabelMapFilter::SetFullyConnected "/**
+Self& itk::simple::BinaryImageToLabelMapFilter::SetFullyConnected(bool FullyConnected)
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryImageToLabelMapFilter::SetInputForegroundValue "/**
+Self& itk::simple::BinaryImageToLabelMapFilter::SetInputForegroundValue(double InputForegroundValue)
+
+Set/Get the value to be consider \"foreground\" in the input image.
+Defaults to NumericTraits<InputPixelType>::max() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryImageToLabelMapFilter::SetOutputBackgroundValue "/**
+Self& itk::simple::BinaryImageToLabelMapFilter::SetOutputBackgroundValue(double OutputBackgroundValue)
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<OutputPixelType>::NonpositiveMin() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryImageToLabelMapFilter::ToString "/**
+std::string itk::simple::BinaryImageToLabelMapFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryImageToLabelMapFilter::~BinaryImageToLabelMapFilter "/**
+itk::simple::BinaryImageToLabelMapFilter::~BinaryImageToLabelMapFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BinaryMagnitudeImageFilter "/**
+
+Computes the square root of the sum of squares of corresponding input
+pixels.
+
+
+This filter is templated over the types of the two input images and
+the type of the output image.
+
+Numeric conversions (castings) are done by the C++ defaults.
+
+The filter walks over all of the pixels in the two input images, and
+for each pixel does the following:
+
+
+cast the input 1 pixel value to double
+
+cast the input 2 pixel value to double
+
+compute the sum of squares of the two pixel values
+
+compute the square root of the sum
+
+cast the double value resulting from std::sqrt() to the pixel type of
+the output image
+
+store the cast value into the output image.
+ The filter expects all images to have the same dimension (e.g. all
+2D, or all 3D, or all ND)
+See:
+ itk::simple::BinaryMagnitude for the procedural interface
+
+ itk::BinaryMagnitudeImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBinaryMagnitudeImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BinaryMagnitudeImageFilter::BinaryMagnitudeImageFilter "/**
+itk::simple::BinaryMagnitudeImageFilter::BinaryMagnitudeImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMagnitudeImageFilter::Execute "/**
+Image itk::simple::BinaryMagnitudeImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMagnitudeImageFilter::GetName "/**
+std::string itk::simple::BinaryMagnitudeImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMagnitudeImageFilter::ToString "/**
+std::string itk::simple::BinaryMagnitudeImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMagnitudeImageFilter::~BinaryMagnitudeImageFilter "/**
+itk::simple::BinaryMagnitudeImageFilter::~BinaryMagnitudeImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BinaryMedianImageFilter "/**
+
+Applies a version of the median filter optimized for binary images.
+
+
+This filter was contributed by Bjorn Hanch Sollie after identifying
+that the generic Median filter performed unnecessary operations when
+the input image is binary.
+
+This filter computes an image where a given pixel is the median value
+of the pixels in a neighborhood about the corresponding input pixel.
+For the case of binary images the median can be obtained by simply
+counting the neighbors that are foreground.
+
+A median filter is one of the family of nonlinear filters. It is used
+to smooth an image without being biased by outliers or shot noise.
+
+
+See:
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+
+ itk::simple::BinaryMedian for the procedural interface
+
+ itk::BinaryMedianImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBinaryMedianImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BinaryMedianImageFilter::BinaryMedianImageFilter "/**
+itk::simple::BinaryMedianImageFilter::BinaryMedianImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMedianImageFilter::Execute "/**
+Image itk::simple::BinaryMedianImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMedianImageFilter::Execute "/**
+Image itk::simple::BinaryMedianImageFilter::Execute(const Image &image1, const std::vector< unsigned int > &radius,
+double foregroundValue, double backgroundValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMedianImageFilter::GetBackgroundValue "/**
+double itk::simple::BinaryMedianImageFilter::GetBackgroundValue() const
+
+Get the value associated with the Foreground (or the object) on the
+binary input image and the Background .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMedianImageFilter::GetForegroundValue "/**
+double itk::simple::BinaryMedianImageFilter::GetForegroundValue() const
+
+Get the value associated with the Foreground (or the object) on the
+binary input image and the Background .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMedianImageFilter::GetName "/**
+std::string itk::simple::BinaryMedianImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMedianImageFilter::GetRadius "/**
+std::vector<unsigned int> itk::simple::BinaryMedianImageFilter::GetRadius() const
+
+Get the radius of the neighborhood used to compute the median
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMedianImageFilter::SetBackgroundValue "/**
+Self& itk::simple::BinaryMedianImageFilter::SetBackgroundValue(double BackgroundValue)
+
+Set the value associated with the Foreground (or the object) on the
+binary input image and the Background .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMedianImageFilter::SetForegroundValue "/**
+Self& itk::simple::BinaryMedianImageFilter::SetForegroundValue(double ForegroundValue)
+
+Set the value associated with the Foreground (or the object) on the
+binary input image and the Background .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMedianImageFilter::SetRadius "/**
+Self& itk::simple::BinaryMedianImageFilter::SetRadius(const std::vector< unsigned int > &Radius)
+
+Set the radius of the neighborhood used to compute the median.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMedianImageFilter::SetRadius "/**
+Self& itk::simple::BinaryMedianImageFilter::SetRadius(unsigned int value)
+
+Set the values of the Radius vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMedianImageFilter::ToString "/**
+std::string itk::simple::BinaryMedianImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMedianImageFilter::~BinaryMedianImageFilter "/**
+itk::simple::BinaryMedianImageFilter::~BinaryMedianImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BinaryMinMaxCurvatureFlowImageFilter "/**
+
+Denoise a binary image using min/max curvature flow.
+
+
+BinaryMinMaxCurvatureFlowImageFilter implements a curvature driven image denosing algorithm. This filter
+assumes that the image is essentially binary: consisting of two
+classes. Iso-brightness contours in the input image are viewed as a
+level set. The level set is then evolved using a curvature-based speed
+function:
+
+\\\\[ I_t = F_{\\\\mbox{minmax}} |\\\\nabla I| \\\\]
+
+where $ F_{\\\\mbox{minmax}} = \\\\min(\\\\kappa,0) $ if $ \\\\mbox{Avg}_{\\\\mbox{stencil}}(x) $ is less than or equal to $ T_{thresold} $ and $ \\\\max(\\\\kappa,0) $ , otherwise. $ \\\\kappa $ is the mean curvature of the iso-brightness contour at point $ x $ .
+
+In min/max curvature flow, movement is turned on or off depending on
+the scale of the noise one wants to remove. Switching depends on the
+average image value of a region of radius $ R $ around each point. The choice of $ R $ , the stencil radius, governs the scale of the noise to be removed.
+
+The threshold value $ T_{threshold} $ is a user specified value which discriminates between the two pixel
+classes.
+
+This filter make use of the multi-threaded finite difference solver
+hierarchy. Updates are computed using a BinaryMinMaxCurvatureFlowFunction object. A zero flux Neumann boundary condition is used when computing
+derivatives near the data boundary.
+
+
+WARNING:
+This filter assumes that the input and output types have the same
+dimensions. This filter also requires that the output image pixels are
+of a real type. This filter works for any dimensional images.
+ Reference: \"Level Set Methods and Fast Marching Methods\", J.A.
+Sethian, Cambridge Press, Chapter 16, Second edition, 1999.
+
+
+See:
+ BinaryMinMaxCurvatureFlowFunction
+
+ CurvatureFlowImageFilter
+
+ MinMaxCurvatureFlowImageFilter
+
+ itk::simple::BinaryMinMaxCurvatureFlow for the procedural interface
+
+ itk::BinaryMinMaxCurvatureFlowImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBinaryMinMaxCurvatureFlowImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BinaryMinMaxCurvatureFlowImageFilter::BinaryMinMaxCurvatureFlowImageFilter "/**
+itk::simple::BinaryMinMaxCurvatureFlowImageFilter::BinaryMinMaxCurvatureFlowImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMinMaxCurvatureFlowImageFilter::Execute "/**
+Image itk::simple::BinaryMinMaxCurvatureFlowImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMinMaxCurvatureFlowImageFilter::Execute "/**
+Image itk::simple::BinaryMinMaxCurvatureFlowImageFilter::Execute(const Image &image1, double timeStep, uint32_t numberOfIterations,
+int stencilRadius, double threshold)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMinMaxCurvatureFlowImageFilter::GetName "/**
+std::string itk::simple::BinaryMinMaxCurvatureFlowImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMinMaxCurvatureFlowImageFilter::GetNumberOfIterations "/**
+uint32_t itk::simple::BinaryMinMaxCurvatureFlowImageFilter::GetNumberOfIterations() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMinMaxCurvatureFlowImageFilter::GetStencilRadius "/**
+int itk::simple::BinaryMinMaxCurvatureFlowImageFilter::GetStencilRadius() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMinMaxCurvatureFlowImageFilter::GetThreshold "/**
+double itk::simple::BinaryMinMaxCurvatureFlowImageFilter::GetThreshold() const
+
+Set/Get the threshold value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMinMaxCurvatureFlowImageFilter::GetTimeStep "/**
+double itk::simple::BinaryMinMaxCurvatureFlowImageFilter::GetTimeStep() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMinMaxCurvatureFlowImageFilter::SetNumberOfIterations "/**
+Self& itk::simple::BinaryMinMaxCurvatureFlowImageFilter::SetNumberOfIterations(uint32_t NumberOfIterations)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMinMaxCurvatureFlowImageFilter::SetStencilRadius "/**
+Self& itk::simple::BinaryMinMaxCurvatureFlowImageFilter::SetStencilRadius(int StencilRadius)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMinMaxCurvatureFlowImageFilter::SetThreshold "/**
+Self& itk::simple::BinaryMinMaxCurvatureFlowImageFilter::SetThreshold(double Threshold)
+
+Set/Get the threshold value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMinMaxCurvatureFlowImageFilter::SetTimeStep "/**
+Self& itk::simple::BinaryMinMaxCurvatureFlowImageFilter::SetTimeStep(double TimeStep)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMinMaxCurvatureFlowImageFilter::ToString "/**
+std::string itk::simple::BinaryMinMaxCurvatureFlowImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMinMaxCurvatureFlowImageFilter::~BinaryMinMaxCurvatureFlowImageFilter "/**
+itk::simple::BinaryMinMaxCurvatureFlowImageFilter::~BinaryMinMaxCurvatureFlowImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BinaryMorphologicalClosingImageFilter "/**
+
+binary morphological closing of an image.
+
+
+This filter removes small (i.e., smaller than the structuring element)
+holes and tube like structures in the interior or at the boundaries of
+the image. The morphological closing of an image \"f\" is defined as:
+Closing(f) = Erosion(Dilation(f)).
+
+The structuring element is assumed to be composed of binary values
+(zero or one). Only elements of the structuring element having values
+> 0 are candidates for affecting the center pixel.
+
+This code was contributed in the Insight Journal paper: \"Binary
+morphological closing and opening image filters\" by Lehmann G. https://hdl.handle.net/1926/141 http://www.insight-journal.org/browse/publication/58
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ MorphologyImageFilter , GrayscaleDilateImageFilter , GrayscaleErodeImageFilter
+
+ itk::simple::BinaryMorphologicalClosing for the procedural interface
+
+ itk::BinaryMorphologicalClosingImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBinaryMorphologicalClosingImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalClosingImageFilter::BinaryMorphologicalClosingImageFilter "/**
+itk::simple::BinaryMorphologicalClosingImageFilter::BinaryMorphologicalClosingImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalClosingImageFilter::Execute "/**
+Image itk::simple::BinaryMorphologicalClosingImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalClosingImageFilter::Execute "/**
+Image itk::simple::BinaryMorphologicalClosingImageFilter::Execute(const Image &image1, double foregroundValue, bool safeBorder)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalClosingImageFilter::GetForegroundValue "/**
+double itk::simple::BinaryMorphologicalClosingImageFilter::GetForegroundValue() const
+
+Get the value in the image considered as \"foreground\". Defaults to
+maximum value of InputPixelType.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalClosingImageFilter::GetKernelRadius "/**
+std::vector<uint32_t> itk::simple::BinaryMorphologicalClosingImageFilter::GetKernelRadius() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalClosingImageFilter::GetKernelType "/**
+KernelEnum itk::simple::BinaryMorphologicalClosingImageFilter::GetKernelType() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalClosingImageFilter::GetName "/**
+std::string itk::simple::BinaryMorphologicalClosingImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalClosingImageFilter::GetSafeBorder "/**
+bool itk::simple::BinaryMorphologicalClosingImageFilter::GetSafeBorder() const
+
+A safe border is added to input image to avoid borders effects and
+remove it once the closing is done
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalClosingImageFilter::SafeBorderOff "/**
+Self& itk::simple::BinaryMorphologicalClosingImageFilter::SafeBorderOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalClosingImageFilter::SafeBorderOn "/**
+Self& itk::simple::BinaryMorphologicalClosingImageFilter::SafeBorderOn()
+
+Set the value of SafeBorder to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalClosingImageFilter::SetForegroundValue "/**
+Self& itk::simple::BinaryMorphologicalClosingImageFilter::SetForegroundValue(double ForegroundValue)
+
+Set the value in the image to consider as \"foreground\". Defaults to
+maximum value of InputPixelType.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalClosingImageFilter::SetKernelRadius "/**
+Self& itk::simple::BinaryMorphologicalClosingImageFilter::SetKernelRadius(uint32_t r)
+
+Kernel radius as a scale for isotropic structures
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalClosingImageFilter::SetKernelRadius "/**
+Self& itk::simple::BinaryMorphologicalClosingImageFilter::SetKernelRadius(const std::vector< uint32_t > &r)
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalClosingImageFilter::SetKernelType "/**
+Self& itk::simple::BinaryMorphologicalClosingImageFilter::SetKernelType(KernelEnum t)
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalClosingImageFilter::SetKernelType "/**
+Self& itk::simple::BinaryMorphologicalClosingImageFilter::SetKernelType(KernelType t)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalClosingImageFilter::SetSafeBorder "/**
+Self& itk::simple::BinaryMorphologicalClosingImageFilter::SetSafeBorder(bool SafeBorder)
+
+A safe border is added to input image to avoid borders effects and
+remove it once the closing is done
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalClosingImageFilter::ToString "/**
+std::string itk::simple::BinaryMorphologicalClosingImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalClosingImageFilter::~BinaryMorphologicalClosingImageFilter "/**
+itk::simple::BinaryMorphologicalClosingImageFilter::~BinaryMorphologicalClosingImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BinaryMorphologicalOpeningImageFilter "/**
+
+binary morphological opening of an image.
+
+
+This filter removes small (i.e., smaller than the structuring element)
+structures in the interior or at the boundaries of the image. The
+morphological opening of an image \"f\" is defined as: Opening(f) =
+Dilatation(Erosion(f)).
+
+The structuring element is assumed to be composed of binary values
+(zero or one). Only elements of the structuring element having values
+> 0 are candidates for affecting the center pixel.
+
+This code was contributed in the Insight Journal paper: \"Binary
+morphological closing and opening image filters\" by Lehmann G. https://hdl.handle.net/1926/141 http://www.insight-journal.org/browse/publication/58
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ MorphologyImageFilter , GrayscaleDilateImageFilter , GrayscaleErodeImageFilter
+
+ itk::simple::BinaryMorphologicalOpening for the procedural interface
+
+ itk::BinaryMorphologicalOpeningImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBinaryMorphologicalOpeningImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalOpeningImageFilter::BinaryMorphologicalOpeningImageFilter "/**
+itk::simple::BinaryMorphologicalOpeningImageFilter::BinaryMorphologicalOpeningImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalOpeningImageFilter::Execute "/**
+Image itk::simple::BinaryMorphologicalOpeningImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalOpeningImageFilter::Execute "/**
+Image itk::simple::BinaryMorphologicalOpeningImageFilter::Execute(const Image &image1, double backgroundValue, double foregroundValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalOpeningImageFilter::GetBackgroundValue "/**
+double itk::simple::BinaryMorphologicalOpeningImageFilter::GetBackgroundValue() const
+
+Set the value in eroded part of the image. Defaults to zero
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalOpeningImageFilter::GetForegroundValue "/**
+double itk::simple::BinaryMorphologicalOpeningImageFilter::GetForegroundValue() const
+
+Get the value in the image considered as \"foreground\". Defaults to
+maximum value of PixelType.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalOpeningImageFilter::GetKernelRadius "/**
+std::vector<uint32_t> itk::simple::BinaryMorphologicalOpeningImageFilter::GetKernelRadius() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalOpeningImageFilter::GetKernelType "/**
+KernelEnum itk::simple::BinaryMorphologicalOpeningImageFilter::GetKernelType() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalOpeningImageFilter::GetName "/**
+std::string itk::simple::BinaryMorphologicalOpeningImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalOpeningImageFilter::SetBackgroundValue "/**
+Self& itk::simple::BinaryMorphologicalOpeningImageFilter::SetBackgroundValue(double BackgroundValue)
+
+Set the value in eroded part of the image. Defaults to zero
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalOpeningImageFilter::SetForegroundValue "/**
+Self& itk::simple::BinaryMorphologicalOpeningImageFilter::SetForegroundValue(double ForegroundValue)
+
+Set the value in the image to consider as \"foreground\". Defaults to
+maximum value of PixelType.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalOpeningImageFilter::SetKernelRadius "/**
+Self& itk::simple::BinaryMorphologicalOpeningImageFilter::SetKernelRadius(uint32_t r)
+
+Kernel radius as a scale for isotropic structures
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalOpeningImageFilter::SetKernelRadius "/**
+Self& itk::simple::BinaryMorphologicalOpeningImageFilter::SetKernelRadius(const std::vector< uint32_t > &r)
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalOpeningImageFilter::SetKernelType "/**
+Self& itk::simple::BinaryMorphologicalOpeningImageFilter::SetKernelType(KernelEnum t)
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalOpeningImageFilter::SetKernelType "/**
+Self& itk::simple::BinaryMorphologicalOpeningImageFilter::SetKernelType(KernelType t)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalOpeningImageFilter::ToString "/**
+std::string itk::simple::BinaryMorphologicalOpeningImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalOpeningImageFilter::~BinaryMorphologicalOpeningImageFilter "/**
+itk::simple::BinaryMorphologicalOpeningImageFilter::~BinaryMorphologicalOpeningImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BinaryNotImageFilter "/**
+
+Implements the BinaryNot logical operator pixel-wise between two
+images.
+
+
+This class is parametrized over the types of the two input images and
+the type of the output image. Numeric conversions (castings) are done
+by the C++ defaults.
+
+The total operation over one pixel will be
+
+output_pixel = static_cast<PixelType>( input1_pixel != input2_pixel )
+
+Where \"!=\" is the equality operator in C++.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+Wiki Examples:
+
+All Examples
+
+Invert an image using the Binary Not operation
+See:
+ itk::simple::BinaryNot for the procedural interface
+
+ itk::BinaryNotImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkBinaryNotImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BinaryNotImageFilter::BinaryNotImageFilter "/**
+itk::simple::BinaryNotImageFilter::BinaryNotImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryNotImageFilter::Execute "/**
+Image itk::simple::BinaryNotImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryNotImageFilter::Execute "/**
+Image itk::simple::BinaryNotImageFilter::Execute(const Image &image1, double foregroundValue, double backgroundValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryNotImageFilter::GetBackgroundValue "/**
+double itk::simple::BinaryNotImageFilter::GetBackgroundValue() const
+
+Get the value used as \"background\". Defaults to NumericTraits<PixelType>::NonpositiveMin() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryNotImageFilter::GetForegroundValue "/**
+double itk::simple::BinaryNotImageFilter::GetForegroundValue() const
+
+Set/Get the value in the image considered as \"foreground\". Defaults
+to maximum value of PixelType.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryNotImageFilter::GetName "/**
+std::string itk::simple::BinaryNotImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryNotImageFilter::SetBackgroundValue "/**
+Self& itk::simple::BinaryNotImageFilter::SetBackgroundValue(double BackgroundValue)
+
+Set the value used as \"background\". Defaults to NumericTraits<PixelType>::NonpositiveMin() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryNotImageFilter::SetForegroundValue "/**
+Self& itk::simple::BinaryNotImageFilter::SetForegroundValue(double ForegroundValue)
+
+Set/Get the value in the image considered as \"foreground\". Defaults
+to maximum value of PixelType.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryNotImageFilter::ToString "/**
+std::string itk::simple::BinaryNotImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryNotImageFilter::~BinaryNotImageFilter "/**
+itk::simple::BinaryNotImageFilter::~BinaryNotImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BinaryOpeningByReconstructionImageFilter "/**
+
+binary morphological closing of an image.
+
+
+This filter removes small (i.e., smaller than the structuring element)
+objects in the image. It is defined as: Opening(f) =
+ReconstructionByDilatation(Erosion(f)).
+
+The structuring element is assumed to be composed of binary values
+(zero or one). Only elements of the structuring element having values
+> 0 are candidates for affecting the center pixel.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+See:
+ MorphologyImageFilter , OpeningByReconstructionImageFilter , BinaryClosingByReconstructionImageFilter
+
+ itk::simple::BinaryOpeningByReconstruction for the procedural interface
+
+ itk::BinaryOpeningByReconstructionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBinaryOpeningByReconstructionImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BinaryOpeningByReconstructionImageFilter::BinaryOpeningByReconstructionImageFilter "/**
+itk::simple::BinaryOpeningByReconstructionImageFilter::BinaryOpeningByReconstructionImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryOpeningByReconstructionImageFilter::Execute "/**
+Image itk::simple::BinaryOpeningByReconstructionImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryOpeningByReconstructionImageFilter::Execute "/**
+Image itk::simple::BinaryOpeningByReconstructionImageFilter::Execute(const Image &image1, double foregroundValue, double backgroundValue,
+bool fullyConnected)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryOpeningByReconstructionImageFilter::FullyConnectedOff "/**
+Self& itk::simple::BinaryOpeningByReconstructionImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryOpeningByReconstructionImageFilter::FullyConnectedOn "/**
+Self& itk::simple::BinaryOpeningByReconstructionImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryOpeningByReconstructionImageFilter::GetBackgroundValue "/**
+double itk::simple::BinaryOpeningByReconstructionImageFilter::GetBackgroundValue() const
+
+Set the value in eroded part of the image. Defaults to zero
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryOpeningByReconstructionImageFilter::GetForegroundValue "/**
+double itk::simple::BinaryOpeningByReconstructionImageFilter::GetForegroundValue() const
+
+Get the value in the image considered as \"foreground\". Defaults to
+maximum value of PixelType.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryOpeningByReconstructionImageFilter::GetFullyConnected "/**
+bool itk::simple::BinaryOpeningByReconstructionImageFilter::GetFullyConnected() const
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryOpeningByReconstructionImageFilter::GetKernelRadius "/**
+std::vector<uint32_t> itk::simple::BinaryOpeningByReconstructionImageFilter::GetKernelRadius() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryOpeningByReconstructionImageFilter::GetKernelType "/**
+KernelEnum itk::simple::BinaryOpeningByReconstructionImageFilter::GetKernelType() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryOpeningByReconstructionImageFilter::GetName "/**
+std::string itk::simple::BinaryOpeningByReconstructionImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryOpeningByReconstructionImageFilter::SetBackgroundValue "/**
+Self& itk::simple::BinaryOpeningByReconstructionImageFilter::SetBackgroundValue(double BackgroundValue)
+
+Set the value in eroded part of the image. Defaults to zero
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryOpeningByReconstructionImageFilter::SetForegroundValue "/**
+Self& itk::simple::BinaryOpeningByReconstructionImageFilter::SetForegroundValue(double ForegroundValue)
+
+Set the value in the image to consider as \"foreground\". Defaults to
+maximum value of PixelType.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryOpeningByReconstructionImageFilter::SetFullyConnected "/**
+Self& itk::simple::BinaryOpeningByReconstructionImageFilter::SetFullyConnected(bool FullyConnected)
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryOpeningByReconstructionImageFilter::SetKernelRadius "/**
+Self& itk::simple::BinaryOpeningByReconstructionImageFilter::SetKernelRadius(uint32_t r)
+
+Kernel radius as a scale for isotropic structures
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryOpeningByReconstructionImageFilter::SetKernelRadius "/**
+Self& itk::simple::BinaryOpeningByReconstructionImageFilter::SetKernelRadius(const std::vector< uint32_t > &r)
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryOpeningByReconstructionImageFilter::SetKernelType "/**
+Self& itk::simple::BinaryOpeningByReconstructionImageFilter::SetKernelType(KernelEnum t)
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryOpeningByReconstructionImageFilter::SetKernelType "/**
+Self& itk::simple::BinaryOpeningByReconstructionImageFilter::SetKernelType(KernelType t)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryOpeningByReconstructionImageFilter::ToString "/**
+std::string itk::simple::BinaryOpeningByReconstructionImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryOpeningByReconstructionImageFilter::~BinaryOpeningByReconstructionImageFilter "/**
+itk::simple::BinaryOpeningByReconstructionImageFilter::~BinaryOpeningByReconstructionImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BinaryProjectionImageFilter "/**
+
+Binary projection.
+
+
+This class was contributed to the Insight Journal by Gaetan Lehmann.
+The original paper can be found at https://hdl.handle.net/1926/164
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ ProjectionImageFilter
+
+ MedianProjectionImageFilter
+
+ MeanProjectionImageFilter
+
+ MeanProjectionImageFilter
+
+ MaximumProjectionImageFilter
+
+ MinimumProjectionImageFilter
+
+ StandardDeviationProjectionImageFilter
+
+ SumProjectionImageFilter
+
+ itk::simple::BinaryProjection for the procedural interface
+
+ itk::BinaryProjectionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBinaryProjectionImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BinaryProjectionImageFilter::BinaryProjectionImageFilter "/**
+itk::simple::BinaryProjectionImageFilter::BinaryProjectionImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryProjectionImageFilter::Execute "/**
+Image itk::simple::BinaryProjectionImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryProjectionImageFilter::Execute "/**
+Image itk::simple::BinaryProjectionImageFilter::Execute(const Image &image1, unsigned int projectionDimension, double
+foregroundValue, double backgroundValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryProjectionImageFilter::GetBackgroundValue "/**
+double itk::simple::BinaryProjectionImageFilter::GetBackgroundValue() const
+
+Get the value used as \"background\". Any pixel value which is not
+DilateValue is considered background. BackgroundValue is used for
+defining boundary conditions. Defaults to NumericTraits<PixelType>::NonpositiveMin() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryProjectionImageFilter::GetForegroundValue "/**
+double itk::simple::BinaryProjectionImageFilter::GetForegroundValue() const
+
+Get the value in the image considered as \"foreground\". Defaults to
+maximum value of PixelType.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryProjectionImageFilter::GetName "/**
+std::string itk::simple::BinaryProjectionImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryProjectionImageFilter::GetProjectionDimension "/**
+unsigned int itk::simple::BinaryProjectionImageFilter::GetProjectionDimension() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryProjectionImageFilter::SetBackgroundValue "/**
+Self& itk::simple::BinaryProjectionImageFilter::SetBackgroundValue(double BackgroundValue)
+
+Set the value used as \"background\". Any pixel value which is not
+DilateValue is considered background. BackgroundValue is used for
+defining boundary conditions. Defaults to NumericTraits<PixelType>::NonpositiveMin() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryProjectionImageFilter::SetForegroundValue "/**
+Self& itk::simple::BinaryProjectionImageFilter::SetForegroundValue(double ForegroundValue)
+
+Set the value in the image to consider as \"foreground\". Defaults to
+maximum value of PixelType. Subclasses may alias this to DilateValue
+or ErodeValue.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryProjectionImageFilter::SetProjectionDimension "/**
+Self& itk::simple::BinaryProjectionImageFilter::SetProjectionDimension(unsigned int ProjectionDimension)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryProjectionImageFilter::ToString "/**
+std::string itk::simple::BinaryProjectionImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryProjectionImageFilter::~BinaryProjectionImageFilter "/**
+itk::simple::BinaryProjectionImageFilter::~BinaryProjectionImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BinaryReconstructionByDilationImageFilter "/**
+
+binary reconstruction by dilation of an image
+
+
+Reconstruction by dilation operates on a \"marker\" image and a
+\"mask\" image, and is defined as the dilation of the marker image
+with respect to the mask image iterated until stability.
+
+Geodesic morphology is described in Chapter 6.2 of Pierre Soille's
+book \"Morphological Image Analysis: Principles and Applications\",
+Second Edition, Springer, 2003.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+See:
+ MorphologyImageFilter , ReconstructionByDilationImageFilter , BinaryReconstructionByErosionImageFilter
+
+ itk::simple::BinaryReconstructionByDilation for the procedural interface
+
+ itk::BinaryReconstructionByDilationImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBinaryReconstructionByDilationImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByDilationImageFilter::BinaryReconstructionByDilationImageFilter "/**
+itk::simple::BinaryReconstructionByDilationImageFilter::BinaryReconstructionByDilationImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByDilationImageFilter::Execute "/**
+Image itk::simple::BinaryReconstructionByDilationImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByDilationImageFilter::Execute "/**
+Image itk::simple::BinaryReconstructionByDilationImageFilter::Execute(const Image &image1, const Image &image2, double backgroundValue,
+double foregroundValue, bool fullyConnected)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByDilationImageFilter::FullyConnectedOff "/**
+Self& itk::simple::BinaryReconstructionByDilationImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByDilationImageFilter::FullyConnectedOn "/**
+Self& itk::simple::BinaryReconstructionByDilationImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByDilationImageFilter::GetBackgroundValue "/**
+double itk::simple::BinaryReconstructionByDilationImageFilter::GetBackgroundValue() const
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByDilationImageFilter::GetForegroundValue "/**
+double itk::simple::BinaryReconstructionByDilationImageFilter::GetForegroundValue() const
+
+Set/Get the value used as \"foreground\" in the output image. Defaults
+to NumericTraits<PixelType>::max() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByDilationImageFilter::GetFullyConnected "/**
+bool itk::simple::BinaryReconstructionByDilationImageFilter::GetFullyConnected() const
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByDilationImageFilter::GetName "/**
+std::string itk::simple::BinaryReconstructionByDilationImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByDilationImageFilter::SetBackgroundValue "/**
+Self& itk::simple::BinaryReconstructionByDilationImageFilter::SetBackgroundValue(double BackgroundValue)
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByDilationImageFilter::SetForegroundValue "/**
+Self& itk::simple::BinaryReconstructionByDilationImageFilter::SetForegroundValue(double ForegroundValue)
+
+Set/Get the value used as \"foreground\" in the output image. Defaults
+to NumericTraits<PixelType>::max() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByDilationImageFilter::SetFullyConnected "/**
+Self& itk::simple::BinaryReconstructionByDilationImageFilter::SetFullyConnected(bool FullyConnected)
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByDilationImageFilter::ToString "/**
+std::string itk::simple::BinaryReconstructionByDilationImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByDilationImageFilter::~BinaryReconstructionByDilationImageFilter "/**
+itk::simple::BinaryReconstructionByDilationImageFilter::~BinaryReconstructionByDilationImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BinaryReconstructionByErosionImageFilter "/**
+
+binary reconstruction by erosion of an image
+
+
+Reconstruction by erosion operates on a \"marker\" image and a
+\"mask\" image, and is defined as the erosion of the marker image with
+respect to the mask image iterated until stability.
+
+Geodesic morphology is described in Chapter 6.2 of Pierre Soille's
+book \"Morphological Image Analysis: Principles and Applications\",
+Second Edition, Springer, 2003.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+See:
+ MorphologyImageFilter , ReconstructionByErosionImageFilter , BinaryReconstructionByDilationImageFilter
+
+ itk::simple::BinaryReconstructionByErosion for the procedural interface
+
+ itk::BinaryReconstructionByErosionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBinaryReconstructionByErosionImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByErosionImageFilter::BinaryReconstructionByErosionImageFilter "/**
+itk::simple::BinaryReconstructionByErosionImageFilter::BinaryReconstructionByErosionImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByErosionImageFilter::Execute "/**
+Image itk::simple::BinaryReconstructionByErosionImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByErosionImageFilter::Execute "/**
+Image itk::simple::BinaryReconstructionByErosionImageFilter::Execute(const Image &image1, const Image &image2, double backgroundValue,
+double foregroundValue, bool fullyConnected)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByErosionImageFilter::FullyConnectedOff "/**
+Self& itk::simple::BinaryReconstructionByErosionImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByErosionImageFilter::FullyConnectedOn "/**
+Self& itk::simple::BinaryReconstructionByErosionImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByErosionImageFilter::GetBackgroundValue "/**
+double itk::simple::BinaryReconstructionByErosionImageFilter::GetBackgroundValue() const
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByErosionImageFilter::GetForegroundValue "/**
+double itk::simple::BinaryReconstructionByErosionImageFilter::GetForegroundValue() const
+
+Set/Get the value used as \"foreground\" in the output image. Defaults
+to NumericTraits<PixelType>::max() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByErosionImageFilter::GetFullyConnected "/**
+bool itk::simple::BinaryReconstructionByErosionImageFilter::GetFullyConnected() const
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByErosionImageFilter::GetName "/**
+std::string itk::simple::BinaryReconstructionByErosionImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByErosionImageFilter::SetBackgroundValue "/**
+Self& itk::simple::BinaryReconstructionByErosionImageFilter::SetBackgroundValue(double BackgroundValue)
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByErosionImageFilter::SetForegroundValue "/**
+Self& itk::simple::BinaryReconstructionByErosionImageFilter::SetForegroundValue(double ForegroundValue)
+
+Set/Get the value used as \"foreground\" in the output image. Defaults
+to NumericTraits<PixelType>::max() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByErosionImageFilter::SetFullyConnected "/**
+Self& itk::simple::BinaryReconstructionByErosionImageFilter::SetFullyConnected(bool FullyConnected)
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByErosionImageFilter::ToString "/**
+std::string itk::simple::BinaryReconstructionByErosionImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByErosionImageFilter::~BinaryReconstructionByErosionImageFilter "/**
+itk::simple::BinaryReconstructionByErosionImageFilter::~BinaryReconstructionByErosionImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BinaryThinningImageFilter "/**
+
+This filter computes one-pixel-wide edges of the input image.
+
+
+This class is parametrized over the type of the input image and the
+type of the output image.
+
+The input is assumed to be a binary image. If the foreground pixels of
+the input image do not have a value of 1, they are rescaled to 1
+internally to simplify the computation.
+
+The filter will produce a skeleton of the object. The output
+background values are 0, and the foreground values are 1.
+
+This filter is a sequential thinning algorithm and known to be
+computational time dependable on the image size. The algorithm
+corresponds with the 2D implementation described in:
+
+Rafael C. Gonzales and Richard E. Woods. Digital Image Processing. Addison Wesley, 491-494, (1993).
+
+To do: Make this filter ND.
+
+
+See:
+ MorphologyImageFilter
+Wiki Examples:
+
+All Examples
+
+Skeletonize/thin an image
+See:
+ itk::simple::BinaryThinning for the procedural interface
+
+ itk::BinaryThinningImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkBinaryThinningImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BinaryThinningImageFilter::BinaryThinningImageFilter "/**
+itk::simple::BinaryThinningImageFilter::BinaryThinningImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThinningImageFilter::Execute "/**
+Image itk::simple::BinaryThinningImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThinningImageFilter::GetName "/**
+std::string itk::simple::BinaryThinningImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThinningImageFilter::ToString "/**
+std::string itk::simple::BinaryThinningImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThinningImageFilter::~BinaryThinningImageFilter "/**
+itk::simple::BinaryThinningImageFilter::~BinaryThinningImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BinaryThresholdImageFilter "/**
+
+Binarize an input image by thresholding.
+
+
+This filter produces an output image whose pixels are either one of
+two values ( OutsideValue or InsideValue ), depending on whether the
+corresponding input image pixels lie between the two thresholds (
+LowerThreshold and UpperThreshold ). Values equal to either threshold
+is considered to be between the thresholds.
+
+More precisely \\\\[ Output(x_i) = \\\\begin{cases} InsideValue & \\\\text{if
+\\\\f$LowerThreshold \\\\leq x_i \\\\leq UpperThreshold\\\\f$}
+\\\\\\\\ OutsideValue & \\\\text{otherwise} \\\\end{cases} \\\\]
+
+This filter is templated over the input image type and the output
+image type.
+
+The filter expect both images to have the same number of dimensions.
+
+The default values for LowerThreshold and UpperThreshold are:
+LowerThreshold = NumericTraits<TInput>::NonpositiveMin() ; UpperThreshold = NumericTraits<TInput>::max() ; Therefore, generally only one of these needs to be set, depending
+on whether the user wants to threshold above or below the desired
+threshold.
+
+Wiki Examples:
+
+All Examples
+
+Threshold an image
+See:
+ itk::simple::BinaryThreshold for the procedural interface
+
+ itk::BinaryThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkBinaryThresholdImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BinaryThresholdImageFilter::BinaryThresholdImageFilter "/**
+itk::simple::BinaryThresholdImageFilter::BinaryThresholdImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThresholdImageFilter::Execute "/**
+Image itk::simple::BinaryThresholdImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThresholdImageFilter::Execute "/**
+Image itk::simple::BinaryThresholdImageFilter::Execute(const Image &image1, double lowerThreshold, double upperThreshold,
+uint8_t insideValue, uint8_t outsideValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThresholdImageFilter::GetInsideValue "/**
+uint8_t itk::simple::BinaryThresholdImageFilter::GetInsideValue() const
+
+Get the \"inside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThresholdImageFilter::GetLowerThreshold "/**
+double itk::simple::BinaryThresholdImageFilter::GetLowerThreshold() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThresholdImageFilter::GetName "/**
+std::string itk::simple::BinaryThresholdImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThresholdImageFilter::GetOutsideValue "/**
+uint8_t itk::simple::BinaryThresholdImageFilter::GetOutsideValue() const
+
+Get the \"outside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThresholdImageFilter::GetUpperThreshold "/**
+double itk::simple::BinaryThresholdImageFilter::GetUpperThreshold() const
+
+Get the threshold values.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThresholdImageFilter::SetInsideValue "/**
+Self& itk::simple::BinaryThresholdImageFilter::SetInsideValue(uint8_t InsideValue)
+
+Set the \"inside\" pixel value. The default value NumericTraits<OutputPixelType>::max()
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThresholdImageFilter::SetLowerThreshold "/**
+Self& itk::simple::BinaryThresholdImageFilter::SetLowerThreshold(double LowerThreshold)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThresholdImageFilter::SetOutsideValue "/**
+Self& itk::simple::BinaryThresholdImageFilter::SetOutsideValue(uint8_t OutsideValue)
+
+Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::ZeroValue() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThresholdImageFilter::SetUpperThreshold "/**
+Self& itk::simple::BinaryThresholdImageFilter::SetUpperThreshold(double UpperThreshold)
+
+Set the thresholds. The default lower threshold is NumericTraits<InputPixelType>::NonpositiveMin() . The default upper threshold is NumericTraits<InputPixelType>::max . An execption is thrown if the lower threshold is greater than the
+upper threshold.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThresholdImageFilter::ToString "/**
+std::string itk::simple::BinaryThresholdImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThresholdImageFilter::~BinaryThresholdImageFilter "/**
+itk::simple::BinaryThresholdImageFilter::~BinaryThresholdImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BinaryThresholdProjectionImageFilter "/**
+
+BinaryThreshold projection.
+
+
+This class was contributed to the Insight Journal by Gaetan Lehmann.
+the original paper can be found at https://hdl.handle.net/1926/164
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ ProjectionImageFilter
+
+ MedianProjectionImageFilter
+
+ MeanProjectionImageFilter
+
+ MeanProjectionImageFilter
+
+ MaximumProjectionImageFilter
+
+ MinimumProjectionImageFilter
+
+ StandardDeviationProjectionImageFilter
+
+ SumProjectionImageFilter
+
+ itk::simple::BinaryThresholdProjection for the procedural interface
+
+ itk::BinaryThresholdProjectionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBinaryThresholdProjectionImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BinaryThresholdProjectionImageFilter::BinaryThresholdProjectionImageFilter "/**
+itk::simple::BinaryThresholdProjectionImageFilter::BinaryThresholdProjectionImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThresholdProjectionImageFilter::Execute "/**
+Image itk::simple::BinaryThresholdProjectionImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThresholdProjectionImageFilter::Execute "/**
+Image itk::simple::BinaryThresholdProjectionImageFilter::Execute(const Image &image1, unsigned int projectionDimension, double
+thresholdValue, uint8_t foregroundValue, uint8_t backgroundValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThresholdProjectionImageFilter::GetBackgroundValue "/**
+uint8_t itk::simple::BinaryThresholdProjectionImageFilter::GetBackgroundValue() const
+
+Set/Get the output value used as \"background\". Defaults to NumericTraits<PixelType>::NonpositiveMin() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThresholdProjectionImageFilter::GetForegroundValue "/**
+uint8_t itk::simple::BinaryThresholdProjectionImageFilter::GetForegroundValue() const
+
+Set/Get the output value used as \"foreground\". Defaults to maximum
+value of PixelType.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThresholdProjectionImageFilter::GetName "/**
+std::string itk::simple::BinaryThresholdProjectionImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThresholdProjectionImageFilter::GetProjectionDimension "/**
+unsigned int itk::simple::BinaryThresholdProjectionImageFilter::GetProjectionDimension() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThresholdProjectionImageFilter::GetThresholdValue "/**
+double itk::simple::BinaryThresholdProjectionImageFilter::GetThresholdValue() const
+
+Set/Get the input value consider as \"threshold\". Defaults to NumericTraits<InputPixelType>::max()
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThresholdProjectionImageFilter::SetBackgroundValue "/**
+Self& itk::simple::BinaryThresholdProjectionImageFilter::SetBackgroundValue(uint8_t BackgroundValue)
+
+Set/Get the output value used as \"background\". Defaults to NumericTraits<PixelType>::NonpositiveMin() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThresholdProjectionImageFilter::SetForegroundValue "/**
+Self& itk::simple::BinaryThresholdProjectionImageFilter::SetForegroundValue(uint8_t ForegroundValue)
+
+Set/Get the output value used as \"foreground\". Defaults to maximum
+value of PixelType.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThresholdProjectionImageFilter::SetProjectionDimension "/**
+Self& itk::simple::BinaryThresholdProjectionImageFilter::SetProjectionDimension(unsigned int ProjectionDimension)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThresholdProjectionImageFilter::SetThresholdValue "/**
+Self& itk::simple::BinaryThresholdProjectionImageFilter::SetThresholdValue(double ThresholdValue)
+
+Set/Get the input value consider as \"threshold\". Defaults to NumericTraits<InputPixelType>::max()
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThresholdProjectionImageFilter::ToString "/**
+std::string itk::simple::BinaryThresholdProjectionImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThresholdProjectionImageFilter::~BinaryThresholdProjectionImageFilter "/**
+itk::simple::BinaryThresholdProjectionImageFilter::~BinaryThresholdProjectionImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BinomialBlurImageFilter "/**
+
+Performs a separable blur on each dimension of an image.
+
+
+The binomial blur consists of a nearest neighbor average along each
+image dimension. The net result after n-iterations approaches
+convultion with a gaussian.
+
+Wiki Examples:
+
+All Examples
+
+Blur an image
+See:
+ itk::simple::BinomialBlur for the procedural interface
+
+ itk::BinomialBlurImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkBinomialBlurImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BinomialBlurImageFilter::BinomialBlurImageFilter "/**
+itk::simple::BinomialBlurImageFilter::BinomialBlurImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinomialBlurImageFilter::Execute "/**
+Image itk::simple::BinomialBlurImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinomialBlurImageFilter::Execute "/**
+Image itk::simple::BinomialBlurImageFilter::Execute(const Image &image1, unsigned int repetitions)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinomialBlurImageFilter::GetName "/**
+std::string itk::simple::BinomialBlurImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinomialBlurImageFilter::GetRepetitions "/**
+unsigned int itk::simple::BinomialBlurImageFilter::GetRepetitions() const
+
+Get and set the number of times to repeat the filter.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinomialBlurImageFilter::SetRepetitions "/**
+Self& itk::simple::BinomialBlurImageFilter::SetRepetitions(unsigned int Repetitions)
+
+Get and set the number of times to repeat the filter.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinomialBlurImageFilter::ToString "/**
+std::string itk::simple::BinomialBlurImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinomialBlurImageFilter::~BinomialBlurImageFilter "/**
+itk::simple::BinomialBlurImageFilter::~BinomialBlurImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BitwiseNotImageFilter "/**
+
+Implements pixel-wise generic operation on one image.
+
+
+This class is parameterized over the type of the input image and the
+type of the output image. It is also parameterized by the operation to
+be applied, using a Functor style.
+
+UnaryFunctorImageFilter allows the output dimension of the filter to be larger than the input
+dimension. Thus subclasses of the UnaryFunctorImageFilter (like the CastImageFilter ) can be used to promote a 2D image to a 3D image, etc.
+
+
+See:
+ BinaryFunctorImageFilter TernaryFunctorImageFilter
+Wiki Examples:
+
+All Examples
+
+Apply a custom operation to each pixel in an image
+See:
+ itk::simple::BitwiseNot for the procedural interface
+
+ itk::UnaryFunctorImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkBitwiseNotImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BitwiseNotImageFilter::BitwiseNotImageFilter "/**
+itk::simple::BitwiseNotImageFilter::BitwiseNotImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BitwiseNotImageFilter::Execute "/**
+Image itk::simple::BitwiseNotImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BitwiseNotImageFilter::GetName "/**
+std::string itk::simple::BitwiseNotImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BitwiseNotImageFilter::ToString "/**
+std::string itk::simple::BitwiseNotImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BitwiseNotImageFilter::~BitwiseNotImageFilter "/**
+itk::simple::BitwiseNotImageFilter::~BitwiseNotImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BlackTopHatImageFilter "/**
+
+Black top hat extracts local minima that are smaller than the
+structuring element.
+
+
+Black top hat extracts local minima that are smaller than the
+structuring element. It subtracts the background from the input image.
+The output of the filter transforms the black valleys into white
+peaks.
+
+Top-hats are described in Chapter 4.5 of Pierre Soille's book
+\"Morphological Image Analysis: Principles and Applications\", Second
+Edition, Springer, 2003.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ itk::simple::BlackTopHat for the procedural interface
+
+ itk::BlackTopHatImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBlackTopHatImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BlackTopHatImageFilter::BlackTopHatImageFilter "/**
+itk::simple::BlackTopHatImageFilter::BlackTopHatImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BlackTopHatImageFilter::Execute "/**
+Image itk::simple::BlackTopHatImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BlackTopHatImageFilter::Execute "/**
+Image itk::simple::BlackTopHatImageFilter::Execute(const Image &image1, bool safeBorder)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BlackTopHatImageFilter::GetKernelRadius "/**
+std::vector<uint32_t> itk::simple::BlackTopHatImageFilter::GetKernelRadius() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BlackTopHatImageFilter::GetKernelType "/**
+KernelEnum itk::simple::BlackTopHatImageFilter::GetKernelType() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BlackTopHatImageFilter::GetName "/**
+std::string itk::simple::BlackTopHatImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BlackTopHatImageFilter::GetSafeBorder "/**
+bool itk::simple::BlackTopHatImageFilter::GetSafeBorder() const
+
+A safe border is added to input image to avoid borders effects and
+remove it once the closing is done
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BlackTopHatImageFilter::SafeBorderOff "/**
+Self& itk::simple::BlackTopHatImageFilter::SafeBorderOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BlackTopHatImageFilter::SafeBorderOn "/**
+Self& itk::simple::BlackTopHatImageFilter::SafeBorderOn()
+
+Set the value of SafeBorder to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BlackTopHatImageFilter::SetKernelRadius "/**
+Self& itk::simple::BlackTopHatImageFilter::SetKernelRadius(uint32_t r)
+
+Kernel radius as a scale for isotropic structures
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BlackTopHatImageFilter::SetKernelRadius "/**
+Self& itk::simple::BlackTopHatImageFilter::SetKernelRadius(const std::vector< uint32_t > &r)
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BlackTopHatImageFilter::SetKernelType "/**
+Self& itk::simple::BlackTopHatImageFilter::SetKernelType(KernelEnum t)
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BlackTopHatImageFilter::SetKernelType "/**
+Self& itk::simple::BlackTopHatImageFilter::SetKernelType(KernelType t)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BlackTopHatImageFilter::SetSafeBorder "/**
+Self& itk::simple::BlackTopHatImageFilter::SetSafeBorder(bool SafeBorder)
+
+A safe border is added to input image to avoid borders effects and
+remove it once the closing is done
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BlackTopHatImageFilter::ToString "/**
+std::string itk::simple::BlackTopHatImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BlackTopHatImageFilter::~BlackTopHatImageFilter "/**
+itk::simple::BlackTopHatImageFilter::~BlackTopHatImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BoundedReciprocalImageFilter "/**
+
+Computes 1/(1+x) for each pixel in the image.
+
+
+The filter expect both the input and output images to have the same
+number of dimensions, and both of a scalar image type.
+See:
+ itk::simple::BoundedReciprocal for the procedural interface
+
+ itk::BoundedReciprocalImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBoundedReciprocalImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BoundedReciprocalImageFilter::BoundedReciprocalImageFilter "/**
+itk::simple::BoundedReciprocalImageFilter::BoundedReciprocalImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BoundedReciprocalImageFilter::Execute "/**
+Image itk::simple::BoundedReciprocalImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BoundedReciprocalImageFilter::GetName "/**
+std::string itk::simple::BoundedReciprocalImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BoundedReciprocalImageFilter::ToString "/**
+std::string itk::simple::BoundedReciprocalImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BoundedReciprocalImageFilter::~BoundedReciprocalImageFilter "/**
+itk::simple::BoundedReciprocalImageFilter::~BoundedReciprocalImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BoxMeanImageFilter "/**
+
+Implements a fast rectangular mean filter using the accumulator
+approach.
+
+
+This code was contributed in the Insight Journal paper: \"Efficient
+implementation of kernel filtering\" by Beare R., Lehmann G https://hdl.handle.net/1926/555 http://www.insight-journal.org/browse/publication/160
+
+
+Richard Beare
+
+See:
+ itk::simple::BoxMean for the procedural interface
+
+ itk::BoxMeanImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBoxMeanImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BoxMeanImageFilter::BoxMeanImageFilter "/**
+itk::simple::BoxMeanImageFilter::BoxMeanImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BoxMeanImageFilter::Execute "/**
+Image itk::simple::BoxMeanImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BoxMeanImageFilter::Execute "/**
+Image itk::simple::BoxMeanImageFilter::Execute(const Image &image1, const std::vector< unsigned int > &radius)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BoxMeanImageFilter::GetName "/**
+std::string itk::simple::BoxMeanImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BoxMeanImageFilter::GetRadius "/**
+std::vector<unsigned int> itk::simple::BoxMeanImageFilter::GetRadius() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BoxMeanImageFilter::SetRadius "/**
+Self& itk::simple::BoxMeanImageFilter::SetRadius(const std::vector< unsigned int > &Radius)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BoxMeanImageFilter::SetRadius "/**
+Self& itk::simple::BoxMeanImageFilter::SetRadius(unsigned int value)
+
+Set the values of the Radius vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BoxMeanImageFilter::ToString "/**
+std::string itk::simple::BoxMeanImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BoxMeanImageFilter::~BoxMeanImageFilter "/**
+itk::simple::BoxMeanImageFilter::~BoxMeanImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BoxSigmaImageFilter "/**
+
+Implements a fast rectangular sigma filter using the accumulator
+approach.
+
+
+This code was contributed in the Insight Journal paper: \"Efficient
+implementation of kernel filtering\" by Beare R., Lehmann G https://hdl.handle.net/1926/555 http://www.insight-journal.org/browse/publication/160
+
+
+Gaetan Lehmann
+
+See:
+ itk::simple::BoxSigma for the procedural interface
+
+ itk::BoxSigmaImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBoxSigmaImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::BoxSigmaImageFilter::BoxSigmaImageFilter "/**
+itk::simple::BoxSigmaImageFilter::BoxSigmaImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BoxSigmaImageFilter::Execute "/**
+Image itk::simple::BoxSigmaImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BoxSigmaImageFilter::Execute "/**
+Image itk::simple::BoxSigmaImageFilter::Execute(const Image &image1, const std::vector< unsigned int > &radius)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BoxSigmaImageFilter::GetName "/**
+std::string itk::simple::BoxSigmaImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BoxSigmaImageFilter::GetRadius "/**
+std::vector<unsigned int> itk::simple::BoxSigmaImageFilter::GetRadius() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BoxSigmaImageFilter::SetRadius "/**
+Self& itk::simple::BoxSigmaImageFilter::SetRadius(const std::vector< unsigned int > &Radius)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BoxSigmaImageFilter::SetRadius "/**
+Self& itk::simple::BoxSigmaImageFilter::SetRadius(unsigned int value)
+
+Set the values of the Radius vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BoxSigmaImageFilter::ToString "/**
+std::string itk::simple::BoxSigmaImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BoxSigmaImageFilter::~BoxSigmaImageFilter "/**
+itk::simple::BoxSigmaImageFilter::~BoxSigmaImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::CannyEdgeDetectionImageFilter "/**
+
+This filter is an implementation of a Canny edge detector for scalar-
+valued images.
+
+
+Based on John Canny's paper \"A Computational Approach to Edge
+Detection\"(IEEE Transactions on Pattern Analysis and Machine
+Intelligence, Vol. PAMI-8, No.6, November 1986), there are four major
+steps used in the edge-detection scheme: (1) Smooth the input image
+with Gaussian filter. (2) Calculate the second directional derivatives
+of the smoothed image. (3) Non-Maximum Suppression: the zero-crossings
+of 2nd derivative are found, and the sign of third derivative is used
+to find the correct extrema. (4) The hysteresis thresholding is
+applied to the gradient magnitude (multiplied with zero-crossings) of
+the smoothed image to find and link edges.
+
+Inputs and Outputs
+The input to this filter should be a scalar, real-valued Itk image of
+arbitrary dimension. The output should also be a scalar, real-value
+Itk image of the same dimensionality.
+Parameters
+There are four parameters for this filter that control the sub-filters
+used by the algorithm.
+
+Variance and Maximum error are used in the Gaussian smoothing of the
+input image. See itkDiscreteGaussianImageFilter for information on
+these parameters.
+
+Threshold is the lowest allowed value in the output image. Its data
+type is the same as the data type of the output image. Any values
+below the Threshold level will be replaced with the OutsideValue
+parameter value, whose default is zero.
+ TodoEdge-linking will be added when an itk connected component
+labeling algorithm is available.
+
+
+See:
+ DiscreteGaussianImageFilter
+
+ ZeroCrossingImageFilter
+
+ ThresholdImageFilter
+
+ itk::simple::CannyEdgeDetection for the procedural interface
+
+ itk::CannyEdgeDetectionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkCannyEdgeDetectionImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::CannyEdgeDetectionImageFilter::CannyEdgeDetectionImageFilter "/**
+itk::simple::CannyEdgeDetectionImageFilter::CannyEdgeDetectionImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CannyEdgeDetectionImageFilter::Execute "/**
+Image itk::simple::CannyEdgeDetectionImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CannyEdgeDetectionImageFilter::Execute "/**
+Image itk::simple::CannyEdgeDetectionImageFilter::Execute(const Image &image1, double lowerThreshold, double upperThreshold,
+const std::vector< double > &variance, const std::vector< double >
+&maximumError)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CannyEdgeDetectionImageFilter::GetLowerThreshold "/**
+double itk::simple::CannyEdgeDetectionImageFilter::GetLowerThreshold() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CannyEdgeDetectionImageFilter::GetMaximumError "/**
+std::vector<double> itk::simple::CannyEdgeDetectionImageFilter::GetMaximumError() const
+
+Set/Get the maximum error of the Gaussian smoothing kernel in each
+dimensional direction.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CannyEdgeDetectionImageFilter::GetName "/**
+std::string itk::simple::CannyEdgeDetectionImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CannyEdgeDetectionImageFilter::GetUpperThreshold "/**
+double itk::simple::CannyEdgeDetectionImageFilter::GetUpperThreshold() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CannyEdgeDetectionImageFilter::GetVariance "/**
+std::vector<double> itk::simple::CannyEdgeDetectionImageFilter::GetVariance() const
+
+Set/Get the variance of the Gaussian smoothing filter.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CannyEdgeDetectionImageFilter::SetLowerThreshold "/**
+Self& itk::simple::CannyEdgeDetectionImageFilter::SetLowerThreshold(double LowerThreshold)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CannyEdgeDetectionImageFilter::SetMaximumError "/**
+Self& itk::simple::CannyEdgeDetectionImageFilter::SetMaximumError(const std::vector< double > &MaximumError)
+
+Set/Get the MaximumError parameter used by the Gaussian smoothing
+filter in this algorithm
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CannyEdgeDetectionImageFilter::SetMaximumError "/**
+Self& itk::simple::CannyEdgeDetectionImageFilter::SetMaximumError(double value)
+
+Set the values of the MaximumError vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CannyEdgeDetectionImageFilter::SetUpperThreshold "/**
+Self& itk::simple::CannyEdgeDetectionImageFilter::SetUpperThreshold(double UpperThreshold)
+
+Set the Threshold value for detected edges. TODO: Document in the
+ITKv4 migration guide that the SetThreshold member function was
+removed from the CannyEdgeDetectionImageFilter , and that both UpperThreshold and LowerThreshold need to be set. To
+get the same results as with the SetThreshold method change
+\"myfilter->SetThrehsold\" to \"myfilter->SetUpperThreshold\", and add
+\"myfilter->SetLowerThreshold(GetUpperThreshold()/2.0)\".
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CannyEdgeDetectionImageFilter::SetVariance "/**
+Self& itk::simple::CannyEdgeDetectionImageFilter::SetVariance(const std::vector< double > &Variance)
+
+Set/Get the variance of the Gaussian smoothing filter.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CannyEdgeDetectionImageFilter::SetVariance "/**
+Self& itk::simple::CannyEdgeDetectionImageFilter::SetVariance(double value)
+
+Set the values of the Variance vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CannyEdgeDetectionImageFilter::ToString "/**
+std::string itk::simple::CannyEdgeDetectionImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CannyEdgeDetectionImageFilter::~CannyEdgeDetectionImageFilter "/**
+itk::simple::CannyEdgeDetectionImageFilter::~CannyEdgeDetectionImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::CastImageFilter "/**
+
+A hybrid cast image filter to convert images to other types of images.
+
+
+Several different ITK classes are implemented under the hood, to
+convert between different image types.
+
+
+See:
+ itk::simple::Cast for the procedural interface
+
+
+C++ includes: sitkCastImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::CastImageFilter::CastImageFilter "/**
+itk::simple::CastImageFilter::CastImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CastImageFilter::Execute "/**
+Image itk::simple::CastImageFilter::Execute(const Image &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CastImageFilter::GetName "/**
+std::string itk::simple::CastImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CastImageFilter::GetOutputPixelType "/**
+PixelIDValueEnum itk::simple::CastImageFilter::GetOutputPixelType(void) const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CastImageFilter::SetOutputPixelType "/**
+Self& itk::simple::CastImageFilter::SetOutputPixelType(PixelIDValueEnum pixelID)
+
+Set/Get the output pixel type
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CastImageFilter::ToString "/**
+std::string itk::simple::CastImageFilter::ToString() const
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::CenteredTransformInitializerFilter "/**
+
+CenteredTransformInitializerFilter is a helper class intended to initialize the center of rotation and
+the translation of Transforms having the center of rotation among
+their parameters.
+
+
+This class is connected to the fixed image, moving image and transform
+involved in the registration. Two modes of operation are possible:
+
+
+Geometrical,
+
+Center of mass
+ In the first mode, the geometrical center of the moving image is
+passed as initial center of rotation to the transform and the vector
+from the center of the fixed image to the center of the moving image
+is passed as the initial translation. This mode basically assumes that
+the anatomical objects to be registered are centered in their
+respective images. Hence the best initial guess for the registration
+is the one that superimposes those two centers.
+
+In the second mode, the moments of gray level values are computed for
+both images. The center of mass of the moving image is then used as
+center of rotation. The vector between the two centers of mass is
+passes as the initial translation to the transform. This second
+approach assumes that the moments of the anatomical objects are
+similar for both images and hence the best initial guess for
+registration is to superimpose both mass centers. Note that this
+assumption will probably not hold in multi-modality registration.   \\\\sa itk::CenteredTransformInitializer
+
+C++ includes: sitkCenteredTransformInitializerFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::CenteredTransformInitializerFilter::CenteredTransformInitializerFilter "/**
+itk::simple::CenteredTransformInitializerFilter::CenteredTransformInitializerFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CenteredTransformInitializerFilter::Execute "/**
+Transform itk::simple::CenteredTransformInitializerFilter::Execute(const Image &fixedImage, const Image &movingImage, const Transform
+&transform)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CenteredTransformInitializerFilter::Execute "/**
+Transform itk::simple::CenteredTransformInitializerFilter::Execute(const Image &fixedImage, const Image &movingImage, const Transform
+&transform, CenteredTransformInitializerFilter::OperationModeType
+operationMode)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CenteredTransformInitializerFilter::GeometryOn "/**
+Self& itk::simple::CenteredTransformInitializerFilter::GeometryOn()
+
+Select between using the geometrical center of the images or using the
+center of mass given by the image intensities.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CenteredTransformInitializerFilter::GetName "/**
+std::string itk::simple::CenteredTransformInitializerFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CenteredTransformInitializerFilter::GetOperationMode "/**
+OperationModeType itk::simple::CenteredTransformInitializerFilter::GetOperationMode() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CenteredTransformInitializerFilter::MomentsOn "/**
+Self& itk::simple::CenteredTransformInitializerFilter::MomentsOn()
+
+Select between using the geometrical center of the images or using the
+center of mass given by the image intensities.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CenteredTransformInitializerFilter::SetOperationMode "/**
+Self& itk::simple::CenteredTransformInitializerFilter::SetOperationMode(OperationModeType OperationMode)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CenteredTransformInitializerFilter::ToString "/**
+std::string itk::simple::CenteredTransformInitializerFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CenteredTransformInitializerFilter::~CenteredTransformInitializerFilter "/**
+itk::simple::CenteredTransformInitializerFilter::~CenteredTransformInitializerFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::CenteredVersorTransformInitializerFilter "/**
+
+CenteredVersorTransformInitializerFilter is a helper class intended to initialize the center of rotation,
+versor, and translation of the VersorRigid3DTransform.
+
+
+This class derived from the CenteredTransformInitializerand uses it in
+a more constrained context. It always uses the Moments mode, and also
+takes advantage of the second order moments in order to initialize the
+Versorrepresenting rotation.
+
+
+See:
+ itk::CenteredVersorTransformInitializer for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkCenteredVersorTransformInitializerFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::CenteredVersorTransformInitializerFilter::CenteredVersorTransformInitializerFilter "/**
+itk::simple::CenteredVersorTransformInitializerFilter::CenteredVersorTransformInitializerFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CenteredVersorTransformInitializerFilter::ComputeRotationOff "/**
+Self& itk::simple::CenteredVersorTransformInitializerFilter::ComputeRotationOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CenteredVersorTransformInitializerFilter::ComputeRotationOn "/**
+Self& itk::simple::CenteredVersorTransformInitializerFilter::ComputeRotationOn()
+
+Set the value of ComputeRotation to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CenteredVersorTransformInitializerFilter::Execute "/**
+Transform itk::simple::CenteredVersorTransformInitializerFilter::Execute(const Image &fixedImage, const Image &movingImage, const Transform
+&transform)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CenteredVersorTransformInitializerFilter::Execute "/**
+Transform itk::simple::CenteredVersorTransformInitializerFilter::Execute(const Image &fixedImage, const Image &movingImage, const Transform
+&transform, bool computeRotation)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CenteredVersorTransformInitializerFilter::GetComputeRotation "/**
+bool itk::simple::CenteredVersorTransformInitializerFilter::GetComputeRotation() const
+
+Enable the use of the principal axes of each image to compute an
+initial rotation that will align them.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CenteredVersorTransformInitializerFilter::GetName "/**
+std::string itk::simple::CenteredVersorTransformInitializerFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CenteredVersorTransformInitializerFilter::SetComputeRotation "/**
+Self& itk::simple::CenteredVersorTransformInitializerFilter::SetComputeRotation(bool ComputeRotation)
+
+Enable the use of the principal axes of each image to compute an
+initial rotation that will align them.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CenteredVersorTransformInitializerFilter::ToString "/**
+std::string itk::simple::CenteredVersorTransformInitializerFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CenteredVersorTransformInitializerFilter::~CenteredVersorTransformInitializerFilter "/**
+itk::simple::CenteredVersorTransformInitializerFilter::~CenteredVersorTransformInitializerFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ChangeLabelImageFilter "/**
+
+Change Sets of Labels.
+
+
+This filter produces an output image whose pixels are either copied
+from the input if they are not being changed or are rewritten based on
+the change parameters
+
+This filter is templated over the input image type and the output
+image type.
+
+The filter expect both images to have the same number of dimensions.
+
+
+Tim Kelliher. GE Research, Niskayuna, NY.
+
+This work was supported by a grant from DARPA, executed by the U.S.
+Army Medical Research and Materiel Command/TATRC Assistance Agreement,
+Contract::W81XWH-05-2-0059.
+
+See:
+ itk::simple::ChangeLabel for the procedural interface
+
+ itk::ChangeLabelImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkChangeLabelImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ChangeLabelImageFilter::ChangeLabelImageFilter "/**
+itk::simple::ChangeLabelImageFilter::ChangeLabelImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ChangeLabelImageFilter::Execute "/**
+Image itk::simple::ChangeLabelImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ChangeLabelImageFilter::Execute "/**
+Image itk::simple::ChangeLabelImageFilter::Execute(const Image &image1, std::map< double, double > changeMap)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ChangeLabelImageFilter::GetChangeMap "/**
+std::map<double,double> itk::simple::ChangeLabelImageFilter::GetChangeMap() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ChangeLabelImageFilter::GetName "/**
+std::string itk::simple::ChangeLabelImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ChangeLabelImageFilter::SetChangeMap "/**
+Self& itk::simple::ChangeLabelImageFilter::SetChangeMap(std::map< double, double > ChangeMap)
+
+Set the entire change map
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ChangeLabelImageFilter::ToString "/**
+std::string itk::simple::ChangeLabelImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ChangeLabelImageFilter::~ChangeLabelImageFilter "/**
+itk::simple::ChangeLabelImageFilter::~ChangeLabelImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ChangeLabelLabelMapFilter "/**
+
+Replace the label Ids of selected LabelObjects with new label Ids.
+
+
+This filter takes as input a label map and a list of pairs of Label
+Ids, to produce as output a new label map where the label Ids have
+been replaced according to the pairs in the list.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ ShapeLabelObject , RelabelComponentImageFilter
+
+ itk::simple::ChangeLabelLabelMapFilter for the procedural interface
+
+ itk::ChangeLabelLabelMapFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkChangeLabelLabelMapFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ChangeLabelLabelMapFilter::ChangeLabelLabelMapFilter "/**
+itk::simple::ChangeLabelLabelMapFilter::ChangeLabelLabelMapFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ChangeLabelLabelMapFilter::Execute "/**
+Image itk::simple::ChangeLabelLabelMapFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ChangeLabelLabelMapFilter::Execute "/**
+Image itk::simple::ChangeLabelLabelMapFilter::Execute(const Image &image1, std::map< double, double > changeMap)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ChangeLabelLabelMapFilter::GetChangeMap "/**
+std::map<double,double> itk::simple::ChangeLabelLabelMapFilter::GetChangeMap() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ChangeLabelLabelMapFilter::GetName "/**
+std::string itk::simple::ChangeLabelLabelMapFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ChangeLabelLabelMapFilter::SetChangeMap "/**
+Self& itk::simple::ChangeLabelLabelMapFilter::SetChangeMap(std::map< double, double > ChangeMap)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ChangeLabelLabelMapFilter::ToString "/**
+std::string itk::simple::ChangeLabelLabelMapFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ChangeLabelLabelMapFilter::~ChangeLabelLabelMapFilter "/**
+itk::simple::ChangeLabelLabelMapFilter::~ChangeLabelLabelMapFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::CheckerBoardImageFilter "/**
+
+Combines two images in a checkerboard pattern.
+
+
+CheckerBoardImageFilter takes two input images that must have the same dimension, size,
+origin and spacing and produces an output image of the same size by
+combinining the pixels from the two input images in a checkerboard
+pattern. This filter is commonly used for visually comparing two
+images, in particular for evaluating the results of an image
+registration process.
+
+This filter is implemented as a multithreaded filter. It provides a
+ThreadedGenerateData() method for its implementation.
+
+Wiki Examples:
+
+All Examples
+
+Combine two images by alternating blocks of a checkerboard pattern
+See:
+ itk::simple::CheckerBoard for the procedural interface
+
+ itk::CheckerBoardImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkCheckerBoardImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::CheckerBoardImageFilter::CheckerBoardImageFilter "/**
+itk::simple::CheckerBoardImageFilter::CheckerBoardImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CheckerBoardImageFilter::Execute "/**
+Image itk::simple::CheckerBoardImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CheckerBoardImageFilter::Execute "/**
+Image itk::simple::CheckerBoardImageFilter::Execute(const Image &image1, const Image &image2, const std::vector< uint32_t
+> &checkerPattern)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CheckerBoardImageFilter::GetCheckerPattern "/**
+std::vector<uint32_t> itk::simple::CheckerBoardImageFilter::GetCheckerPattern() const
+
+Set/Get the checker pattern array, i.e. the number of checker boxes
+per image dimension.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CheckerBoardImageFilter::GetName "/**
+std::string itk::simple::CheckerBoardImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CheckerBoardImageFilter::SetCheckerPattern "/**
+Self& itk::simple::CheckerBoardImageFilter::SetCheckerPattern(const std::vector< uint32_t > &CheckerPattern)
+
+Set/Get the checker pattern array, i.e. the number of checker boxes
+per image dimension.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CheckerBoardImageFilter::SetCheckerPattern "/**
+Self& itk::simple::CheckerBoardImageFilter::SetCheckerPattern(uint32_t value)
+
+Set the values of the CheckerPattern vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CheckerBoardImageFilter::ToString "/**
+std::string itk::simple::CheckerBoardImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CheckerBoardImageFilter::~CheckerBoardImageFilter "/**
+itk::simple::CheckerBoardImageFilter::~CheckerBoardImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ClampImageFilter "/**
+
+Casts input pixels to output pixel type and clamps the output pixel
+values to a specified range.
+
+
+Default range corresponds to the range supported by the pixel type of
+the output image.
+
+This filter is templated over the input image type and the output
+image type.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ UnaryFunctorImageFilter
+
+ CastImageFilter
+Wiki Examples:
+
+All Examples
+
+Cast an image from one type to another but clamp to the output value
+range
+See:
+ itk::simple::Clamp for the procedural interface
+
+ itk::ClampImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkClampImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ClampImageFilter::ClampImageFilter "/**
+itk::simple::ClampImageFilter::ClampImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClampImageFilter::Execute "/**
+Image itk::simple::ClampImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClampImageFilter::Execute "/**
+Image itk::simple::ClampImageFilter::Execute(const Image &image1, PixelIDValueEnum outputPixelType, double
+lowerBound, double upperBound)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClampImageFilter::GetLowerBound "/**
+double itk::simple::ClampImageFilter::GetLowerBound() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClampImageFilter::GetName "/**
+std::string itk::simple::ClampImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClampImageFilter::GetOutputPixelType "/**
+PixelIDValueEnum itk::simple::ClampImageFilter::GetOutputPixelType() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClampImageFilter::GetUpperBound "/**
+double itk::simple::ClampImageFilter::GetUpperBound() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClampImageFilter::SetLowerBound "/**
+Self& itk::simple::ClampImageFilter::SetLowerBound(double LowerBound)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClampImageFilter::SetOutputPixelType "/**
+Self& itk::simple::ClampImageFilter::SetOutputPixelType(PixelIDValueEnum OutputPixelType)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClampImageFilter::SetUpperBound "/**
+Self& itk::simple::ClampImageFilter::SetUpperBound(double UpperBound)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClampImageFilter::ToString "/**
+std::string itk::simple::ClampImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClampImageFilter::~ClampImageFilter "/**
+itk::simple::ClampImageFilter::~ClampImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ClosingByReconstructionImageFilter "/**
+
+Closing by reconstruction of an image.
+
+
+This filter is similar to the morphological closing, but contrary to
+the mophological closing, the closing by reconstruction preserves the
+shape of the components. The closing by reconstruction of an image
+\"f\" is defined as:
+
+ClosingByReconstruction(f) = ErosionByReconstruction(f, Dilation(f)).
+
+Closing by reconstruction not only preserves structures preserved by
+the dilation, but also levels raises the contrast of the darkest
+regions. If PreserveIntensities is on, a subsequent reconstruction by
+dilation using a marker image that is the original image for all
+unaffected pixels.
+
+Closing by reconstruction is described in Chapter 6.3.9 of Pierre
+Soille's book \"Morphological Image Analysis: Principles and
+Applications\", Second Edition, Springer, 2003.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ GrayscaleMorphologicalClosingImageFilter
+
+ itk::simple::ClosingByReconstruction for the procedural interface
+
+ itk::ClosingByReconstructionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkClosingByReconstructionImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ClosingByReconstructionImageFilter::ClosingByReconstructionImageFilter "/**
+itk::simple::ClosingByReconstructionImageFilter::ClosingByReconstructionImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClosingByReconstructionImageFilter::Execute "/**
+Image itk::simple::ClosingByReconstructionImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClosingByReconstructionImageFilter::Execute "/**
+Image itk::simple::ClosingByReconstructionImageFilter::Execute(const Image &image1, bool fullyConnected, bool preserveIntensities)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClosingByReconstructionImageFilter::FullyConnectedOff "/**
+Self& itk::simple::ClosingByReconstructionImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClosingByReconstructionImageFilter::FullyConnectedOn "/**
+Self& itk::simple::ClosingByReconstructionImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClosingByReconstructionImageFilter::GetFullyConnected "/**
+bool itk::simple::ClosingByReconstructionImageFilter::GetFullyConnected() const
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClosingByReconstructionImageFilter::GetKernelRadius "/**
+std::vector<uint32_t> itk::simple::ClosingByReconstructionImageFilter::GetKernelRadius() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClosingByReconstructionImageFilter::GetKernelType "/**
+KernelEnum itk::simple::ClosingByReconstructionImageFilter::GetKernelType() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClosingByReconstructionImageFilter::GetName "/**
+std::string itk::simple::ClosingByReconstructionImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClosingByReconstructionImageFilter::GetPreserveIntensities "/**
+bool itk::simple::ClosingByReconstructionImageFilter::GetPreserveIntensities() const
+
+Set/Get whether the original intensities of the image retained for
+those pixels unaffected by the opening by reconstrcution. If Off, the
+output pixel contrast will be reduced.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClosingByReconstructionImageFilter::PreserveIntensitiesOff "/**
+Self& itk::simple::ClosingByReconstructionImageFilter::PreserveIntensitiesOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClosingByReconstructionImageFilter::PreserveIntensitiesOn "/**
+Self& itk::simple::ClosingByReconstructionImageFilter::PreserveIntensitiesOn()
+
+Set the value of PreserveIntensities to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClosingByReconstructionImageFilter::SetFullyConnected "/**
+Self& itk::simple::ClosingByReconstructionImageFilter::SetFullyConnected(bool FullyConnected)
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClosingByReconstructionImageFilter::SetKernelRadius "/**
+Self& itk::simple::ClosingByReconstructionImageFilter::SetKernelRadius(uint32_t r)
+
+Kernel radius as a scale for isotropic structures
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClosingByReconstructionImageFilter::SetKernelRadius "/**
+Self& itk::simple::ClosingByReconstructionImageFilter::SetKernelRadius(const std::vector< uint32_t > &r)
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClosingByReconstructionImageFilter::SetKernelType "/**
+Self& itk::simple::ClosingByReconstructionImageFilter::SetKernelType(KernelEnum t)
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClosingByReconstructionImageFilter::SetKernelType "/**
+Self& itk::simple::ClosingByReconstructionImageFilter::SetKernelType(KernelType t)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClosingByReconstructionImageFilter::SetPreserveIntensities "/**
+Self& itk::simple::ClosingByReconstructionImageFilter::SetPreserveIntensities(bool PreserveIntensities)
+
+Set/Get whether the original intensities of the image retained for
+those pixels unaffected by the opening by reconstrcution. If Off, the
+output pixel contrast will be reduced.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClosingByReconstructionImageFilter::ToString "/**
+std::string itk::simple::ClosingByReconstructionImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClosingByReconstructionImageFilter::~ClosingByReconstructionImageFilter "/**
+itk::simple::ClosingByReconstructionImageFilter::~ClosingByReconstructionImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::CollidingFrontsImageFilter "/**
+
+Selects a region of space where two independent fronts run towards
+each other.
+
+
+The filter can be used to quickly segment anatomical structures (e.g.
+for level set initialization).
+
+The filter uses two instances of FastMarchingUpwindGradientImageFilter to compute the gradients of arrival times of two wavefronts
+propagating from two sets of seeds. The input of the filter is used as
+the speed of the two wavefronts. The output is the dot product between
+the two gradient vector fields.
+
+The filter works on the following basic idea. In the regions where the
+dot product between the two gradient fields is negative, the two
+fronts propagate in opposite directions. In the regions where the dot
+product is positive, the two fronts propagate in the same direction.
+This can be used to extract the region of space between two sets of
+points.
+
+If StopOnTargets is On, then each front will stop as soon as all seeds
+of the other front have been reached. This can markedly speed up the
+execution of the filter, since wave propagation does not take place on
+the complete image.
+
+Optionally, a connectivity criterion can be applied to the resulting
+dot product image. In this case, the only negative region in the
+output image is the one connected to the seeds.
+
+
+Luca Antiga Ph.D. Biomedical Technologies Laboratory, Bioengineering
+Department, Mario Negri Institute, Italy.
+
+See:
+ itk::simple::CollidingFronts for the procedural interface
+
+ itk::CollidingFrontsImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkCollidingFrontsImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::CollidingFrontsImageFilter::AddSeedPoint1 "/**
+Self& itk::simple::CollidingFrontsImageFilter::AddSeedPoint1(const std::vector< unsigned int > &point)
+
+Add SeedPoints1 point.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CollidingFrontsImageFilter::AddSeedPoint2 "/**
+Self& itk::simple::CollidingFrontsImageFilter::AddSeedPoint2(const std::vector< unsigned int > &point)
+
+Add SeedPoints2 point.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CollidingFrontsImageFilter::ApplyConnectivityOff "/**
+Self& itk::simple::CollidingFrontsImageFilter::ApplyConnectivityOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CollidingFrontsImageFilter::ApplyConnectivityOn "/**
+Self& itk::simple::CollidingFrontsImageFilter::ApplyConnectivityOn()
+
+Set the value of ApplyConnectivity to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CollidingFrontsImageFilter::ClearSeedPoints1 "/**
+Self& itk::simple::CollidingFrontsImageFilter::ClearSeedPoints1()
+
+Remove all SeedPoints1 points.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CollidingFrontsImageFilter::ClearSeedPoints2 "/**
+Self& itk::simple::CollidingFrontsImageFilter::ClearSeedPoints2()
+
+Remove all SeedPoints2 points.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CollidingFrontsImageFilter::CollidingFrontsImageFilter "/**
+itk::simple::CollidingFrontsImageFilter::CollidingFrontsImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CollidingFrontsImageFilter::Execute "/**
+Image itk::simple::CollidingFrontsImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CollidingFrontsImageFilter::Execute "/**
+Image itk::simple::CollidingFrontsImageFilter::Execute(const Image &image1, const std::vector< std::vector< unsigned int > >
+&seedPoints1, const std::vector< std::vector< unsigned int > >
+&seedPoints2, bool applyConnectivity, double negativeEpsilon, bool
+stopOnTargets)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CollidingFrontsImageFilter::GetApplyConnectivity "/**
+bool itk::simple::CollidingFrontsImageFilter::GetApplyConnectivity() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CollidingFrontsImageFilter::GetName "/**
+std::string itk::simple::CollidingFrontsImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CollidingFrontsImageFilter::GetNegativeEpsilon "/**
+double itk::simple::CollidingFrontsImageFilter::GetNegativeEpsilon() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CollidingFrontsImageFilter::GetSeedPoints1 "/**
+std::vector< std::vector<unsigned int> > itk::simple::CollidingFrontsImageFilter::GetSeedPoints1() const
+
+Get the container of Seed Points representing the first initial front.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CollidingFrontsImageFilter::GetSeedPoints2 "/**
+std::vector< std::vector<unsigned int> > itk::simple::CollidingFrontsImageFilter::GetSeedPoints2() const
+
+Get the container of Seed Points representing the second initial
+front.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CollidingFrontsImageFilter::GetStopOnTargets "/**
+bool itk::simple::CollidingFrontsImageFilter::GetStopOnTargets() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CollidingFrontsImageFilter::SetApplyConnectivity "/**
+Self& itk::simple::CollidingFrontsImageFilter::SetApplyConnectivity(bool ApplyConnectivity)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CollidingFrontsImageFilter::SetNegativeEpsilon "/**
+Self& itk::simple::CollidingFrontsImageFilter::SetNegativeEpsilon(double NegativeEpsilon)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CollidingFrontsImageFilter::SetSeedPoints1 "/**
+Self& itk::simple::CollidingFrontsImageFilter::SetSeedPoints1(const std::vector< std::vector< unsigned int > > &SeedPoints1)
+
+Set the container of Seed Points representing the first initial front.
+Seed points are represented as a VectorContainer of LevelSetNodes.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CollidingFrontsImageFilter::SetSeedPoints2 "/**
+Self& itk::simple::CollidingFrontsImageFilter::SetSeedPoints2(const std::vector< std::vector< unsigned int > > &SeedPoints2)
+
+Set the container of Seed Points representing the second initial
+front. Seed points are represented as a VectorContainer of LevelSetNodes.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CollidingFrontsImageFilter::SetStopOnTargets "/**
+Self& itk::simple::CollidingFrontsImageFilter::SetStopOnTargets(bool StopOnTargets)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CollidingFrontsImageFilter::StopOnTargetsOff "/**
+Self& itk::simple::CollidingFrontsImageFilter::StopOnTargetsOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CollidingFrontsImageFilter::StopOnTargetsOn "/**
+Self& itk::simple::CollidingFrontsImageFilter::StopOnTargetsOn()
+
+Set the value of StopOnTargets to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CollidingFrontsImageFilter::ToString "/**
+std::string itk::simple::CollidingFrontsImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CollidingFrontsImageFilter::~CollidingFrontsImageFilter "/**
+itk::simple::CollidingFrontsImageFilter::~CollidingFrontsImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::Command "/**
+
+An implementation of the Command design pattern for callback.
+
+
+This class provides a callback mechanism for event that occur from the ProcessObject. These commands can be utilized to observe these events.
+
+The Command can be created on the stack, and will automatically unregistered it's
+self when destroyed.
+
+For more information see the page Commands and Events for SimpleITK.
+
+C++ includes: sitkCommand.h
+*/"
+
+%javamethodmodifiers  itk::simple::Command::Command "/**
+itk::simple::Command::Command()
+
+Default Constructor.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Command::Execute "/**
+virtual void itk::simple::Command::Execute(void)
+
+The method that defines action to be taken by the command
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Command::GetName "/**
+virtual std::string itk::simple::Command::GetName() const
+
+Set/Get Command Name
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Command::SetName "/**
+virtual void itk::simple::Command::SetName(const std::string &name)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Command::~Command "/**
+virtual itk::simple::Command::~Command(void)
+
+Destructor.
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ComplexToImaginaryImageFilter "/**
+
+Computes pixel-wise the imaginary part of a complex image.
+
+
+
+See:
+ itk::simple::ComplexToImaginary for the procedural interface
+
+ itk::ComplexToImaginaryImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkComplexToImaginaryImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ComplexToImaginaryImageFilter::ComplexToImaginaryImageFilter "/**
+itk::simple::ComplexToImaginaryImageFilter::ComplexToImaginaryImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComplexToImaginaryImageFilter::Execute "/**
+Image itk::simple::ComplexToImaginaryImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComplexToImaginaryImageFilter::GetName "/**
+std::string itk::simple::ComplexToImaginaryImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComplexToImaginaryImageFilter::ToString "/**
+std::string itk::simple::ComplexToImaginaryImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComplexToImaginaryImageFilter::~ComplexToImaginaryImageFilter "/**
+itk::simple::ComplexToImaginaryImageFilter::~ComplexToImaginaryImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ComplexToModulusImageFilter "/**
+
+Computes pixel-wise the Modulus of a complex image.
+
+
+
+See:
+ itk::simple::ComplexToModulus for the procedural interface
+
+ itk::ComplexToModulusImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkComplexToModulusImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ComplexToModulusImageFilter::ComplexToModulusImageFilter "/**
+itk::simple::ComplexToModulusImageFilter::ComplexToModulusImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComplexToModulusImageFilter::Execute "/**
+Image itk::simple::ComplexToModulusImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComplexToModulusImageFilter::GetName "/**
+std::string itk::simple::ComplexToModulusImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComplexToModulusImageFilter::ToString "/**
+std::string itk::simple::ComplexToModulusImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComplexToModulusImageFilter::~ComplexToModulusImageFilter "/**
+itk::simple::ComplexToModulusImageFilter::~ComplexToModulusImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ComplexToPhaseImageFilter "/**
+
+Computes pixel-wise the modulus of a complex image.
+
+
+
+See:
+ itk::simple::ComplexToPhase for the procedural interface
+
+ itk::ComplexToPhaseImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkComplexToPhaseImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ComplexToPhaseImageFilter::ComplexToPhaseImageFilter "/**
+itk::simple::ComplexToPhaseImageFilter::ComplexToPhaseImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComplexToPhaseImageFilter::Execute "/**
+Image itk::simple::ComplexToPhaseImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComplexToPhaseImageFilter::GetName "/**
+std::string itk::simple::ComplexToPhaseImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComplexToPhaseImageFilter::ToString "/**
+std::string itk::simple::ComplexToPhaseImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComplexToPhaseImageFilter::~ComplexToPhaseImageFilter "/**
+itk::simple::ComplexToPhaseImageFilter::~ComplexToPhaseImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ComplexToRealImageFilter "/**
+
+Computes pixel-wise the real(x) part of a complex image.
+
+
+
+See:
+ itk::simple::ComplexToReal for the procedural interface
+
+ itk::ComplexToRealImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkComplexToRealImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ComplexToRealImageFilter::ComplexToRealImageFilter "/**
+itk::simple::ComplexToRealImageFilter::ComplexToRealImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComplexToRealImageFilter::Execute "/**
+Image itk::simple::ComplexToRealImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComplexToRealImageFilter::GetName "/**
+std::string itk::simple::ComplexToRealImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComplexToRealImageFilter::ToString "/**
+std::string itk::simple::ComplexToRealImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComplexToRealImageFilter::~ComplexToRealImageFilter "/**
+itk::simple::ComplexToRealImageFilter::~ComplexToRealImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ComposeImageFilter "/**
+
+ComposeImageFilter combine several scalar images into a multicomponent image.
+
+
+ComposeImageFilter combine several scalar images into an itk::Image of vector pixel ( itk::Vector , itk::RGBPixel , ...), of std::complex pixel, or in an itk::VectorImage .
+
+Inputs and Usage
+ All input images are expected to have the same template parameters
+and have the same size and origin.
+
+See:
+ VectorImage
+
+ VectorIndexSelectionCastImageFilter
+Wiki Examples:
+
+All Examples
+
+Create a vector image from a collection of scalar images
+
+Compose a vector image (with 3 components) from three scalar images
+
+Convert a real image and an imaginary image to a complex image
+
+See:
+ itk::simple::Compose for the procedural interface
+
+
+C++ includes: sitkComposeImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ComposeImageFilter::ComposeImageFilter "/**
+itk::simple::ComposeImageFilter::ComposeImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComposeImageFilter::Execute "/**
+Image itk::simple::ComposeImageFilter::Execute(const std::vector< Image > &images)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComposeImageFilter::Execute "/**
+Image itk::simple::ComposeImageFilter::Execute(const Image &image1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComposeImageFilter::Execute "/**
+Image itk::simple::ComposeImageFilter::Execute(const Image &image1, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComposeImageFilter::Execute "/**
+Image itk::simple::ComposeImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComposeImageFilter::Execute "/**
+Image itk::simple::ComposeImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComposeImageFilter::Execute "/**
+Image itk::simple::ComposeImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4, const Image &image5)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComposeImageFilter::GetName "/**
+std::string itk::simple::ComposeImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComposeImageFilter::ToString "/**
+std::string itk::simple::ComposeImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComposeImageFilter::~ComposeImageFilter "/**
+itk::simple::ComposeImageFilter::~ComposeImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ConfidenceConnectedImageFilter "/**
+
+Segment pixels with similar statistics using connectivity.
+
+
+This filter extracts a connected set of pixels whose pixel intensities
+are consistent with the pixel statistics of a seed point. The mean and
+variance across a neighborhood (8-connected, 26-connected, etc.) are
+calculated for a seed point. Then pixels connected to this seed point
+whose values are within the confidence interval for the seed point are
+grouped. The width of the confidence interval is controlled by the
+\"Multiplier\" variable (the confidence interval is the mean plus or
+minus the \"Multiplier\" times the standard deviation). If the
+intensity variations across a segment were gaussian, a \"Multiplier\"
+setting of 2.5 would define a confidence interval wide enough to
+capture 99% of samples in the segment.
+
+After this initial segmentation is calculated, the mean and variance
+are re-calculated. All the pixels in the previous segmentation are
+used to calculate the mean the standard deviation (as opposed to using
+the pixels in the neighborhood of the seed point). The segmentation is
+then recalculated using these refined estimates for the mean and
+variance of the pixel values. This process is repeated for the
+specified number of iterations. Setting the \"NumberOfIterations\" to
+zero stops the algorithm after the initial segmentation from the seed
+point.
+
+NOTE: the lower and upper threshold are restricted to lie within the
+valid numeric limits of the input data pixel type. Also, the limits
+may be adjusted to contain the seed point's intensity.
+
+Wiki Examples:
+
+All Examples
+
+Segment pixels with similar statistics using connectivity
+See:
+ itk::simple::ConfidenceConnected for the procedural interface
+
+ itk::ConfidenceConnectedImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkConfidenceConnectedImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ConfidenceConnectedImageFilter::AddSeed "/**
+Self& itk::simple::ConfidenceConnectedImageFilter::AddSeed(const std::vector< unsigned int > &idx)
+
+AddSeed - Add a seed to the end of the list
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConfidenceConnectedImageFilter::ClearSeeds "/**
+Self& itk::simple::ConfidenceConnectedImageFilter::ClearSeeds()
+
+ClearSeeds - Clear out all seeds in the list
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConfidenceConnectedImageFilter::ConfidenceConnectedImageFilter "/**
+itk::simple::ConfidenceConnectedImageFilter::ConfidenceConnectedImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConfidenceConnectedImageFilter::Execute "/**
+Image itk::simple::ConfidenceConnectedImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConfidenceConnectedImageFilter::Execute "/**
+Image itk::simple::ConfidenceConnectedImageFilter::Execute(const Image &image1, const std::vector< std::vector< unsigned int > >
+&seedList, unsigned int numberOfIterations, double multiplier,
+unsigned int initialNeighborhoodRadius, uint8_t replaceValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConfidenceConnectedImageFilter::GetInitialNeighborhoodRadius "/**
+unsigned int itk::simple::ConfidenceConnectedImageFilter::GetInitialNeighborhoodRadius() const
+
+Get/Set the radius of the neighborhood over which the statistics are
+evaluated
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConfidenceConnectedImageFilter::GetMean "/**
+double itk::simple::ConfidenceConnectedImageFilter::GetMean() const
+
+Method to get access to the mean of the pixels accepted in the output
+region. This method should only be invoked after the filter has been
+executed using the Update() method.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConfidenceConnectedImageFilter::GetMultiplier "/**
+double itk::simple::ConfidenceConnectedImageFilter::GetMultiplier() const
+
+Set/Get the multiplier to define the confidence interval. Multiplier
+can be anything greater than zero. A typical value is 2.5
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConfidenceConnectedImageFilter::GetName "/**
+std::string itk::simple::ConfidenceConnectedImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConfidenceConnectedImageFilter::GetNumberOfIterations "/**
+unsigned int itk::simple::ConfidenceConnectedImageFilter::GetNumberOfIterations() const
+
+Set/Get the number of iterations
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConfidenceConnectedImageFilter::GetReplaceValue "/**
+uint8_t itk::simple::ConfidenceConnectedImageFilter::GetReplaceValue() const
+
+Set/Get value to replace thresholded pixels
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConfidenceConnectedImageFilter::GetSeedList "/**
+std::vector< std::vector<unsigned int> > itk::simple::ConfidenceConnectedImageFilter::GetSeedList() const
+
+Get SeedList
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConfidenceConnectedImageFilter::GetVariance "/**
+double itk::simple::ConfidenceConnectedImageFilter::GetVariance() const
+
+Method to get access to the variance of the pixels accepted in the
+output region. This method should only be invoked after the filter has
+been executed using the Update() method.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConfidenceConnectedImageFilter::SetInitialNeighborhoodRadius "/**
+Self& itk::simple::ConfidenceConnectedImageFilter::SetInitialNeighborhoodRadius(unsigned int InitialNeighborhoodRadius)
+
+Get/Set the radius of the neighborhood over which the statistics are
+evaluated
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConfidenceConnectedImageFilter::SetMultiplier "/**
+Self& itk::simple::ConfidenceConnectedImageFilter::SetMultiplier(double Multiplier)
+
+Set/Get the multiplier to define the confidence interval. Multiplier
+can be anything greater than zero. A typical value is 2.5
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConfidenceConnectedImageFilter::SetNumberOfIterations "/**
+Self& itk::simple::ConfidenceConnectedImageFilter::SetNumberOfIterations(unsigned int NumberOfIterations)
+
+Set/Get the number of iterations
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConfidenceConnectedImageFilter::SetReplaceValue "/**
+Self& itk::simple::ConfidenceConnectedImageFilter::SetReplaceValue(uint8_t ReplaceValue)
+
+Set/Get value to replace thresholded pixels
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConfidenceConnectedImageFilter::SetSeed "/**
+Self& itk::simple::ConfidenceConnectedImageFilter::SetSeed(const std::vector< unsigned int > &idx)
+
+SetSeed - Set list to a single seed
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConfidenceConnectedImageFilter::SetSeedList "/**
+Self& itk::simple::ConfidenceConnectedImageFilter::SetSeedList(const std::vector< std::vector< unsigned int > > &t)
+
+Set SeedList
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConfidenceConnectedImageFilter::ToString "/**
+std::string itk::simple::ConfidenceConnectedImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConfidenceConnectedImageFilter::~ConfidenceConnectedImageFilter "/**
+itk::simple::ConfidenceConnectedImageFilter::~ConfidenceConnectedImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ConnectedComponentImageFilter "/**
+
+Label the objects in a binary image.
+
+
+ConnectedComponentImageFilter labels the objects in a binary image (non-zero pixels are considered
+to be objects, zero-valued pixels are considered to be background).
+Each distinct object is assigned a unique label. The filter
+experiments with some improvements to the existing implementation, and
+is based on run length encoding along raster lines. The final object
+labels start with 1 and are consecutive. Objects that are reached
+earlier by a raster order scan have a lower label. This is different
+to the behaviour of the original connected component image filter
+which did not produce consecutive labels or impose any particular
+ordering.
+
+After the filter is executed, ObjectCount holds the number of
+connected components.
+
+
+See:
+ ImageToImageFilter
+Wiki Examples:
+
+All Examples
+
+Label connected components in a binary image
+See:
+ itk::simple::ConnectedComponent for the procedural interface
+
+ itk::ConnectedComponentImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkConnectedComponentImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ConnectedComponentImageFilter::ConnectedComponentImageFilter "/**
+itk::simple::ConnectedComponentImageFilter::ConnectedComponentImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedComponentImageFilter::Execute "/**
+Image itk::simple::ConnectedComponentImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedComponentImageFilter::Execute "/**
+Image itk::simple::ConnectedComponentImageFilter::Execute(const Image &image1, bool fullyConnected)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedComponentImageFilter::FullyConnectedOff "/**
+Self& itk::simple::ConnectedComponentImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedComponentImageFilter::FullyConnectedOn "/**
+Self& itk::simple::ConnectedComponentImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedComponentImageFilter::GetFullyConnected "/**
+bool itk::simple::ConnectedComponentImageFilter::GetFullyConnected() const
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedComponentImageFilter::GetName "/**
+std::string itk::simple::ConnectedComponentImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedComponentImageFilter::GetObjectCount "/**
+uint32_t itk::simple::ConnectedComponentImageFilter::GetObjectCount() const
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedComponentImageFilter::SetFullyConnected "/**
+Self& itk::simple::ConnectedComponentImageFilter::SetFullyConnected(bool FullyConnected)
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedComponentImageFilter::ToString "/**
+std::string itk::simple::ConnectedComponentImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedComponentImageFilter::~ConnectedComponentImageFilter "/**
+itk::simple::ConnectedComponentImageFilter::~ConnectedComponentImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ConnectedThresholdImageFilter "/**
+
+Label pixels that are connected to a seed and lie within a range of
+values.
+
+
+ConnectedThresholdImageFilter labels pixels with ReplaceValue that are connected to an initial Seed
+AND lie within a Lower and Upper threshold range.
+See:
+ itk::simple::ConnectedThreshold for the procedural interface
+
+ itk::ConnectedThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkConnectedThresholdImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ConnectedThresholdImageFilter::AddSeed "/**
+Self& itk::simple::ConnectedThresholdImageFilter::AddSeed(const std::vector< unsigned int > &idx)
+
+AddSeed - Add a seed to the end of the list
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedThresholdImageFilter::ClearSeeds "/**
+Self& itk::simple::ConnectedThresholdImageFilter::ClearSeeds()
+
+ClearSeeds - Clear out all seeds in the list
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedThresholdImageFilter::ConnectedThresholdImageFilter "/**
+itk::simple::ConnectedThresholdImageFilter::ConnectedThresholdImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedThresholdImageFilter::Execute "/**
+Image itk::simple::ConnectedThresholdImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedThresholdImageFilter::Execute "/**
+Image itk::simple::ConnectedThresholdImageFilter::Execute(const Image &image1, const std::vector< std::vector< unsigned int > >
+&seedList, double lower, double upper, uint8_t replaceValue,
+ConnectedThresholdImageFilter::ConnectivityType connectivity)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedThresholdImageFilter::GetConnectivity "/**
+ConnectivityType itk::simple::ConnectedThresholdImageFilter::GetConnectivity() const
+
+Type of connectivity to use (fully connected OR 4(2D), 6(3D), 2*N(ND)
+connectivity).
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedThresholdImageFilter::GetLower "/**
+double itk::simple::ConnectedThresholdImageFilter::GetLower() const
+
+Get Upper and Lower Threshold inputs as values.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedThresholdImageFilter::GetName "/**
+std::string itk::simple::ConnectedThresholdImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedThresholdImageFilter::GetReplaceValue "/**
+uint8_t itk::simple::ConnectedThresholdImageFilter::GetReplaceValue() const
+
+Set/Get value to replace thresholded pixels. Pixels that lie * within
+Lower and Upper (inclusive) will be replaced with this value. The
+default is 1.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedThresholdImageFilter::GetSeedList "/**
+std::vector< std::vector<unsigned int> > itk::simple::ConnectedThresholdImageFilter::GetSeedList() const
+
+Get SeedList
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedThresholdImageFilter::GetUpper "/**
+double itk::simple::ConnectedThresholdImageFilter::GetUpper() const
+
+Get Upper and Lower Threshold inputs as values.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedThresholdImageFilter::SetConnectivity "/**
+Self& itk::simple::ConnectedThresholdImageFilter::SetConnectivity(ConnectivityType Connectivity)
+
+Type of connectivity to use (fully connected OR 4(2D), 6(3D), 2*N(ND)
+connectivity).
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedThresholdImageFilter::SetLower "/**
+Self& itk::simple::ConnectedThresholdImageFilter::SetLower(double Lower)
+
+Set Upper and Lower Threshold inputs as values
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedThresholdImageFilter::SetReplaceValue "/**
+Self& itk::simple::ConnectedThresholdImageFilter::SetReplaceValue(uint8_t ReplaceValue)
+
+Set/Get value to replace thresholded pixels. Pixels that lie * within
+Lower and Upper (inclusive) will be replaced with this value. The
+default is 1.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedThresholdImageFilter::SetSeed "/**
+Self& itk::simple::ConnectedThresholdImageFilter::SetSeed(const std::vector< unsigned int > &idx)
+
+SetSeed - Set list to a single seed
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedThresholdImageFilter::SetSeedList "/**
+Self& itk::simple::ConnectedThresholdImageFilter::SetSeedList(const std::vector< std::vector< unsigned int > > &t)
+
+Set SeedList
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedThresholdImageFilter::SetUpper "/**
+Self& itk::simple::ConnectedThresholdImageFilter::SetUpper(double Upper)
+
+Set Upper and Lower Threshold inputs as values
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedThresholdImageFilter::ToString "/**
+std::string itk::simple::ConnectedThresholdImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedThresholdImageFilter::~ConnectedThresholdImageFilter "/**
+itk::simple::ConnectedThresholdImageFilter::~ConnectedThresholdImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ConstantPadImageFilter "/**
+
+Increase the image size by padding with a constant value.
+
+
+ConstantPadImageFilter changes the output image region. If the output image region is larger
+than the input image region, the extra pixels are filled in by a
+constant value. The output image region must be specified.
+
+Visual explanation of padding regions. This filter is implemented as a
+multithreaded filter. It provides a ThreadedGenerateData() method for
+its implementation.
+
+
+See:
+ WrapPadImageFilter , MirrorPadImageFilter
+Wiki Examples:
+
+All Examples
+
+Pad an image with a constant value
+See:
+ itk::simple::ConstantPad for the procedural interface
+
+ itk::ConstantPadImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkConstantPadImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ConstantPadImageFilter::ConstantPadImageFilter "/**
+itk::simple::ConstantPadImageFilter::ConstantPadImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConstantPadImageFilter::Execute "/**
+Image itk::simple::ConstantPadImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConstantPadImageFilter::Execute "/**
+Image itk::simple::ConstantPadImageFilter::Execute(const Image &image1, const std::vector< unsigned int >
+&padLowerBound, const std::vector< unsigned int > &padUpperBound,
+double constant)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConstantPadImageFilter::GetConstant "/**
+double itk::simple::ConstantPadImageFilter::GetConstant() const
+
+Set/Get the pad value. Default is Zero.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConstantPadImageFilter::GetName "/**
+std::string itk::simple::ConstantPadImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConstantPadImageFilter::GetPadLowerBound "/**
+std::vector<unsigned int> itk::simple::ConstantPadImageFilter::GetPadLowerBound() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConstantPadImageFilter::GetPadUpperBound "/**
+std::vector<unsigned int> itk::simple::ConstantPadImageFilter::GetPadUpperBound() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConstantPadImageFilter::SetConstant "/**
+Self& itk::simple::ConstantPadImageFilter::SetConstant(double Constant)
+
+Set/Get the pad value. Default is Zero.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConstantPadImageFilter::SetPadLowerBound "/**
+Self& itk::simple::ConstantPadImageFilter::SetPadLowerBound(const std::vector< unsigned int > &PadLowerBound)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConstantPadImageFilter::SetPadUpperBound "/**
+Self& itk::simple::ConstantPadImageFilter::SetPadUpperBound(const std::vector< unsigned int > &PadUpperBound)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConstantPadImageFilter::ToString "/**
+std::string itk::simple::ConstantPadImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConstantPadImageFilter::~ConstantPadImageFilter "/**
+itk::simple::ConstantPadImageFilter::~ConstantPadImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ConvolutionImageFilter "/**
+
+Convolve a given image with an arbitrary image kernel.
+
+
+This filter operates by centering the flipped kernel at each pixel in
+the image and computing the inner product between pixel values in the
+image and pixel values in the kernel. The center of the kernel is
+defined as $ \\\\lfloor (2*i+s-1)/2 \\\\rfloor $ where $i$ is the index and $s$ is the size of the largest possible region of the kernel image. For
+kernels with odd sizes in all dimensions, this corresponds to the
+center pixel. If a dimension of the kernel image has an even size,
+then the center index of the kernel in that dimension will be the
+largest integral index that is less than the continuous index of the
+image center.
+
+The kernel can optionally be normalized to sum to 1 using NormalizeOn() . Normalization is off by default.
+
+
+WARNING:
+This filter ignores the spacing, origin, and orientation of the kernel
+image and treats them as identical to those in the input image.
+ This code was contributed in the Insight Journal paper:
+
+\"Image Kernel Convolution\" by Tustison N., Gee J. https://hdl.handle.net/1926/1323 http://www.insight-journal.org/browse/publication/208
+
+
+Nicholas J. Tustison
+ James C. Gee
+
+Wiki Examples:
+
+All Examples
+
+Convolve an image with a kernel
+See:
+ itk::simple::Convolution for the procedural interface
+
+ itk::ConvolutionImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkConvolutionImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ConvolutionImageFilter::ConvolutionImageFilter "/**
+itk::simple::ConvolutionImageFilter::ConvolutionImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConvolutionImageFilter::Execute "/**
+Image itk::simple::ConvolutionImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConvolutionImageFilter::Execute "/**
+Image itk::simple::ConvolutionImageFilter::Execute(const Image &image1, const Image &image2, bool normalize,
+ConvolutionImageFilter::BoundaryConditionType boundaryCondition,
+ConvolutionImageFilter::OutputRegionModeType outputRegionMode)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConvolutionImageFilter::GetBoundaryCondition "/**
+BoundaryConditionType itk::simple::ConvolutionImageFilter::GetBoundaryCondition() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConvolutionImageFilter::GetName "/**
+std::string itk::simple::ConvolutionImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConvolutionImageFilter::GetNormalize "/**
+bool itk::simple::ConvolutionImageFilter::GetNormalize() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConvolutionImageFilter::GetOutputRegionMode "/**
+OutputRegionModeType itk::simple::ConvolutionImageFilter::GetOutputRegionMode() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConvolutionImageFilter::NormalizeOff "/**
+Self& itk::simple::ConvolutionImageFilter::NormalizeOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConvolutionImageFilter::NormalizeOn "/**
+Self& itk::simple::ConvolutionImageFilter::NormalizeOn()
+
+Set the value of Normalize to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConvolutionImageFilter::SetBoundaryCondition "/**
+Self& itk::simple::ConvolutionImageFilter::SetBoundaryCondition(BoundaryConditionType BoundaryCondition)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConvolutionImageFilter::SetNormalize "/**
+Self& itk::simple::ConvolutionImageFilter::SetNormalize(bool Normalize)
+
+Normalize the output image by the sum of the kernel components
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConvolutionImageFilter::SetOutputRegionMode "/**
+Self& itk::simple::ConvolutionImageFilter::SetOutputRegionMode(OutputRegionModeType OutputRegionMode)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConvolutionImageFilter::ToString "/**
+std::string itk::simple::ConvolutionImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConvolutionImageFilter::~ConvolutionImageFilter "/**
+itk::simple::ConvolutionImageFilter::~ConvolutionImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::CosImageFilter "/**
+
+Computes the cosine of each pixel.
+
+
+This filter is templated over the pixel type of the input image and
+the pixel type of the output image.
+
+The filter walks over all of the pixels in the input image, and for
+each pixel does the following:
+
+
+cast the pixel value to double ,
+
+apply the std::cos() function to the double value,
+
+cast the double value resulting from std::cos() to the pixel type of
+the output image,
+
+store the cast value into the output image.
+ The filter expects both images to have the same dimension (e.g. both
+2D, or both 3D, or both ND)
+See:
+ itk::simple::Cos for the procedural interface
+
+ itk::CosImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkCosImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::CosImageFilter::CosImageFilter "/**
+itk::simple::CosImageFilter::CosImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CosImageFilter::Execute "/**
+Image itk::simple::CosImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CosImageFilter::GetName "/**
+std::string itk::simple::CosImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CosImageFilter::ToString "/**
+std::string itk::simple::CosImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CosImageFilter::~CosImageFilter "/**
+itk::simple::CosImageFilter::~CosImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::CropImageFilter "/**
+
+Decrease the image size by cropping the image by an itk::Size at both the upper and lower bounds of the largest possible region.
+
+
+CropImageFilter changes the image boundary of an image by removing pixels outside the
+target region. The target region is not specified in advance, but
+calculated in BeforeThreadedGenerateData() .
+
+This filter uses ExtractImageFilter to perform the cropping.
+
+Wiki Examples:
+
+All Examples
+
+Crop an image by specifying the region to throw away
+See:
+ itk::simple::Crop for the procedural interface
+
+ itk::CropImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkCropImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::CropImageFilter::CropImageFilter "/**
+itk::simple::CropImageFilter::CropImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CropImageFilter::Execute "/**
+Image itk::simple::CropImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CropImageFilter::Execute "/**
+Image itk::simple::CropImageFilter::Execute(const Image &image1, const std::vector< unsigned int >
+&lowerBoundaryCropSize, const std::vector< unsigned int >
+&upperBoundaryCropSize)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CropImageFilter::GetLowerBoundaryCropSize "/**
+std::vector<unsigned int> itk::simple::CropImageFilter::GetLowerBoundaryCropSize() const
+
+Set/Get the cropping sizes for the upper and lower boundaries.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CropImageFilter::GetName "/**
+std::string itk::simple::CropImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CropImageFilter::GetUpperBoundaryCropSize "/**
+std::vector<unsigned int> itk::simple::CropImageFilter::GetUpperBoundaryCropSize() const
+
+Set/Get the cropping sizes for the upper and lower boundaries.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CropImageFilter::SetLowerBoundaryCropSize "/**
+Self& itk::simple::CropImageFilter::SetLowerBoundaryCropSize(const std::vector< unsigned int > &LowerBoundaryCropSize)
+
+Set/Get the cropping sizes for the upper and lower boundaries.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CropImageFilter::SetUpperBoundaryCropSize "/**
+Self& itk::simple::CropImageFilter::SetUpperBoundaryCropSize(const std::vector< unsigned int > &UpperBoundaryCropSize)
+
+Set/Get the cropping sizes for the upper and lower boundaries.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CropImageFilter::ToString "/**
+std::string itk::simple::CropImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CropImageFilter::~CropImageFilter "/**
+itk::simple::CropImageFilter::~CropImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::CurvatureAnisotropicDiffusionImageFilter "/**
+
+This filter performs anisotropic diffusion on a scalar itk::Image using the modified curvature diffusion equation (MCDE) implemented in
+itkCurvatureNDAnisotropicDiffusionFunction. For detailed information
+on anisotropic diffusion and the MCDE see
+itkAnisotropicDiffusionFunction and
+itkCurvatureNDAnisotropicDiffusionFunction.
+
+Inputs and Outputs
+The input and output to this filter must be a scalar itk::Image with numerical pixel types (float or double). A user defined type
+which correctly defines arithmetic operations with floating point
+accuracy should also give correct results.
+Parameters
+Please first read all the documentation found in AnisotropicDiffusionImageFilter and AnisotropicDiffusionFunction . Also see CurvatureNDAnisotropicDiffusionFunction .
+ The default time step for this filter is set to the maximum
+theoretically stable value: 0.5 / 2^N, where N is the dimensionality
+of the image. For a 2D image, this means valid time steps are below
+0.1250. For a 3D image, valid time steps are below 0.0625.
+
+
+See:
+ AnisotropicDiffusionImageFilter
+
+ AnisotropicDiffusionFunction
+
+ CurvatureNDAnisotropicDiffusionFunction
+
+ itk::simple::CurvatureAnisotropicDiffusion for the procedural interface
+
+ itk::CurvatureAnisotropicDiffusionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkCurvatureAnisotropicDiffusionImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::CurvatureAnisotropicDiffusionImageFilter::CurvatureAnisotropicDiffusionImageFilter "/**
+itk::simple::CurvatureAnisotropicDiffusionImageFilter::CurvatureAnisotropicDiffusionImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CurvatureAnisotropicDiffusionImageFilter::EstimateOptimalTimeStep "/**
+double itk::simple::CurvatureAnisotropicDiffusionImageFilter::EstimateOptimalTimeStep(Image &inImage)
+
+This method autmatically sets the optimal timestep for an image given
+its spacing.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CurvatureAnisotropicDiffusionImageFilter::Execute "/**
+Image itk::simple::CurvatureAnisotropicDiffusionImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CurvatureAnisotropicDiffusionImageFilter::Execute "/**
+Image itk::simple::CurvatureAnisotropicDiffusionImageFilter::Execute(const Image &image1, double timeStep, double conductanceParameter,
+unsigned int conductanceScalingUpdateInterval, uint32_t
+numberOfIterations)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CurvatureAnisotropicDiffusionImageFilter::GetConductanceParameter "/**
+double itk::simple::CurvatureAnisotropicDiffusionImageFilter::GetConductanceParameter() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CurvatureAnisotropicDiffusionImageFilter::GetConductanceScalingUpdateInterval "/**
+unsigned int itk::simple::CurvatureAnisotropicDiffusionImageFilter::GetConductanceScalingUpdateInterval() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CurvatureAnisotropicDiffusionImageFilter::GetName "/**
+std::string itk::simple::CurvatureAnisotropicDiffusionImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CurvatureAnisotropicDiffusionImageFilter::GetNumberOfIterations "/**
+uint32_t itk::simple::CurvatureAnisotropicDiffusionImageFilter::GetNumberOfIterations() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CurvatureAnisotropicDiffusionImageFilter::GetTimeStep "/**
+double itk::simple::CurvatureAnisotropicDiffusionImageFilter::GetTimeStep() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CurvatureAnisotropicDiffusionImageFilter::SetConductanceParameter "/**
+Self& itk::simple::CurvatureAnisotropicDiffusionImageFilter::SetConductanceParameter(double ConductanceParameter)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CurvatureAnisotropicDiffusionImageFilter::SetConductanceScalingUpdateInterval "/**
+Self& itk::simple::CurvatureAnisotropicDiffusionImageFilter::SetConductanceScalingUpdateInterval(unsigned int ConductanceScalingUpdateInterval)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CurvatureAnisotropicDiffusionImageFilter::SetNumberOfIterations "/**
+Self& itk::simple::CurvatureAnisotropicDiffusionImageFilter::SetNumberOfIterations(uint32_t NumberOfIterations)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CurvatureAnisotropicDiffusionImageFilter::SetTimeStep "/**
+Self& itk::simple::CurvatureAnisotropicDiffusionImageFilter::SetTimeStep(double TimeStep)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CurvatureAnisotropicDiffusionImageFilter::ToString "/**
+std::string itk::simple::CurvatureAnisotropicDiffusionImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CurvatureAnisotropicDiffusionImageFilter::~CurvatureAnisotropicDiffusionImageFilter "/**
+itk::simple::CurvatureAnisotropicDiffusionImageFilter::~CurvatureAnisotropicDiffusionImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::CurvatureFlowImageFilter "/**
+
+Denoise an image using curvature driven flow.
+
+
+CurvatureFlowImageFilter implements a curvature driven image denoising algorithm. Iso-
+brightness contours in the grayscale input image are viewed as a level
+set. The level set is then evolved using a curvature-based speed
+function:
+
+\\\\[ I_t = \\\\kappa |\\\\nabla I| \\\\] where $ \\\\kappa $ is the curvature.
+
+The advantage of this approach is that sharp boundaries are preserved
+with smoothing occurring only within a region. However, it should be
+noted that continuous application of this scheme will result in the
+eventual removal of all information as each contour shrinks to zero
+and disappear.
+
+Note that unlike level set segmentation algorithms, the image to be
+denoised is already the level set and can be set directly as the input
+using the SetInput() method.
+
+This filter has two parameters: the number of update iterations to be
+performed and the timestep between each update.
+
+The timestep should be \"small enough\" to ensure numerical stability.
+Stability is guarantee when the timestep meets the CFL (Courant-
+Friedrichs-Levy) condition. Broadly speaking, this condition ensures
+that each contour does not move more than one grid position at each
+timestep. In the literature, the timestep is typically user specified
+and have to manually tuned to the application.
+
+This filter make use of the multi-threaded finite difference solver
+hierarchy. Updates are computed using a CurvatureFlowFunction object. A zero flux Neumann boundary condition when computing
+derivatives near the data boundary.
+
+This filter may be streamed. To support streaming this filter produces
+a padded output which takes into account edge effects. The size of the
+padding is m_NumberOfIterations on each edge. Users of this filter
+should only make use of the center valid central region.
+
+
+WARNING:
+This filter assumes that the input and output types have the same
+dimensions. This filter also requires that the output image pixels are
+of a floating point type. This filter works for any dimensional
+images.
+ Reference: \"Level Set Methods and Fast Marching Methods\", J.A.
+Sethian, Cambridge Press, Chapter 16, Second edition, 1999.
+
+
+See:
+ DenseFiniteDifferenceImageFilter
+
+ CurvatureFlowFunction
+
+ MinMaxCurvatureFlowImageFilter
+
+ BinaryMinMaxCurvatureFlowImageFilter
+
+ itk::simple::CurvatureFlow for the procedural interface
+
+ itk::CurvatureFlowImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkCurvatureFlowImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::CurvatureFlowImageFilter::CurvatureFlowImageFilter "/**
+itk::simple::CurvatureFlowImageFilter::CurvatureFlowImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CurvatureFlowImageFilter::Execute "/**
+Image itk::simple::CurvatureFlowImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CurvatureFlowImageFilter::Execute "/**
+Image itk::simple::CurvatureFlowImageFilter::Execute(const Image &image1, double timeStep, uint32_t numberOfIterations)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CurvatureFlowImageFilter::GetName "/**
+std::string itk::simple::CurvatureFlowImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CurvatureFlowImageFilter::GetNumberOfIterations "/**
+uint32_t itk::simple::CurvatureFlowImageFilter::GetNumberOfIterations() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CurvatureFlowImageFilter::GetTimeStep "/**
+double itk::simple::CurvatureFlowImageFilter::GetTimeStep() const
+
+Get the timestep parameter.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CurvatureFlowImageFilter::SetNumberOfIterations "/**
+Self& itk::simple::CurvatureFlowImageFilter::SetNumberOfIterations(uint32_t NumberOfIterations)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CurvatureFlowImageFilter::SetTimeStep "/**
+Self& itk::simple::CurvatureFlowImageFilter::SetTimeStep(double TimeStep)
+
+Set the timestep parameter.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CurvatureFlowImageFilter::ToString "/**
+std::string itk::simple::CurvatureFlowImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CurvatureFlowImageFilter::~CurvatureFlowImageFilter "/**
+itk::simple::CurvatureFlowImageFilter::~CurvatureFlowImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::CyclicShiftImageFilter "/**
+
+Perform a cyclic spatial shift of image intensities on the image grid.
+
+
+This filter supports arbitrary cyclic shifts of pixel values on the
+image grid. If the Shift is set to [xOff, yOff], the value of the
+pixel at [0, 0] in the input image will be the value of the pixel in
+the output image at index [xOff modulo xSize, yOff modulo ySize] where
+xSize and ySize are the sizes of the image in the x and y dimensions,
+respectively. If a pixel value is moved across a boundary, the pixel
+value is wrapped around that boundary. For example, if the image is
+40-by-40 and the Shift is [13, 47], then the value of the pixel at [0,
+0] in the input image will be the value of the pixel in the output
+image at index [13, 7].
+
+Negative Shifts are supported. This filter also works with images
+whose largest possible region starts at a non-zero index.
+See:
+ itk::simple::CyclicShift for the procedural interface
+
+ itk::CyclicShiftImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkCyclicShiftImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::CyclicShiftImageFilter::CyclicShiftImageFilter "/**
+itk::simple::CyclicShiftImageFilter::CyclicShiftImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CyclicShiftImageFilter::Execute "/**
+Image itk::simple::CyclicShiftImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CyclicShiftImageFilter::Execute "/**
+Image itk::simple::CyclicShiftImageFilter::Execute(const Image &image1, const std::vector< int > &shift)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CyclicShiftImageFilter::GetName "/**
+std::string itk::simple::CyclicShiftImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CyclicShiftImageFilter::GetShift "/**
+std::vector<int> itk::simple::CyclicShiftImageFilter::GetShift() const
+
+Set/get the shift. Shifts may be positive or negative.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CyclicShiftImageFilter::SetShift "/**
+Self& itk::simple::CyclicShiftImageFilter::SetShift(const std::vector< int > &Shift)
+
+Set/get the shift. Shifts may be positive or negative.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CyclicShiftImageFilter::SetShift "/**
+Self& itk::simple::CyclicShiftImageFilter::SetShift(int value)
+
+Set the values of the Shift vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CyclicShiftImageFilter::ToString "/**
+std::string itk::simple::CyclicShiftImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CyclicShiftImageFilter::~CyclicShiftImageFilter "/**
+itk::simple::CyclicShiftImageFilter::~CyclicShiftImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::DanielssonDistanceMapImageFilter "/**
+
+This filter computes the distance map of the input image as an
+approximation with pixel accuracy to the Euclidean distance.
+
+
+TInputImage
+
+Input Image Type
+
+TOutputImage
+
+Output Image Type
+
+TVoronoiImage
+
+Voronoi Image Type. Note the default value is TInputImage.
+
+The input is assumed to contain numeric codes defining objects. The
+filter will produce as output the following images:
+
+
+A Voronoi partition using the same numeric codes as the input.
+
+A distance map with the approximation to the euclidean distance. from
+a particular pixel to the nearest object to this pixel in the input
+image.
+
+A vector map containing the component of the vector relating the
+current pixel with the closest point of the closest object to this
+pixel. Given that the components of the distance are computed in
+\"pixels\", the vector is represented by an itk::Offset . That is, physical coordinates are not used.
+ This filter is N-dimensional and known to be efficient in
+computational time. The algorithm is the N-dimensional version of the
+4SED algorithm given for two dimensions in:
+
+Danielsson, Per-Erik. Euclidean Distance Mapping. Computer Graphics
+and Image Processing 14, 227-248 (1980).
+See:
+ itk::simple::DanielssonDistanceMap for the procedural interface
+
+ itk::DanielssonDistanceMapImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkDanielssonDistanceMapImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::DanielssonDistanceMapImageFilter::DanielssonDistanceMapImageFilter "/**
+itk::simple::DanielssonDistanceMapImageFilter::DanielssonDistanceMapImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DanielssonDistanceMapImageFilter::Execute "/**
+Image itk::simple::DanielssonDistanceMapImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DanielssonDistanceMapImageFilter::Execute "/**
+Image itk::simple::DanielssonDistanceMapImageFilter::Execute(const Image &image1, bool inputIsBinary, bool squaredDistance, bool
+useImageSpacing)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DanielssonDistanceMapImageFilter::GetInputIsBinary "/**
+bool itk::simple::DanielssonDistanceMapImageFilter::GetInputIsBinary() const
+
+Get if the input is binary. See SetInputIsBinary() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DanielssonDistanceMapImageFilter::GetName "/**
+std::string itk::simple::DanielssonDistanceMapImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DanielssonDistanceMapImageFilter::GetSquaredDistance "/**
+bool itk::simple::DanielssonDistanceMapImageFilter::GetSquaredDistance() const
+
+Get the distance squared.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DanielssonDistanceMapImageFilter::GetUseImageSpacing "/**
+bool itk::simple::DanielssonDistanceMapImageFilter::GetUseImageSpacing() const
+
+Get whether spacing is used.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DanielssonDistanceMapImageFilter::InputIsBinaryOff "/**
+Self& itk::simple::DanielssonDistanceMapImageFilter::InputIsBinaryOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DanielssonDistanceMapImageFilter::InputIsBinaryOn "/**
+Self& itk::simple::DanielssonDistanceMapImageFilter::InputIsBinaryOn()
+
+Set the value of InputIsBinary to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DanielssonDistanceMapImageFilter::SetInputIsBinary "/**
+Self& itk::simple::DanielssonDistanceMapImageFilter::SetInputIsBinary(bool InputIsBinary)
+
+Set if the input is binary. If this variable is set, each nonzero
+pixel in the input image will be given a unique numeric code to be
+used by the Voronoi partition. If the image is binary but you are not
+interested in the Voronoi regions of the different nonzero pixels,
+then you need not set this.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DanielssonDistanceMapImageFilter::SetSquaredDistance "/**
+Self& itk::simple::DanielssonDistanceMapImageFilter::SetSquaredDistance(bool SquaredDistance)
+
+Set if the distance should be squared.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DanielssonDistanceMapImageFilter::SetUseImageSpacing "/**
+Self& itk::simple::DanielssonDistanceMapImageFilter::SetUseImageSpacing(bool UseImageSpacing)
+
+Set if image spacing should be used in computing distances.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DanielssonDistanceMapImageFilter::SquaredDistanceOff "/**
+Self& itk::simple::DanielssonDistanceMapImageFilter::SquaredDistanceOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DanielssonDistanceMapImageFilter::SquaredDistanceOn "/**
+Self& itk::simple::DanielssonDistanceMapImageFilter::SquaredDistanceOn()
+
+Set the value of SquaredDistance to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DanielssonDistanceMapImageFilter::ToString "/**
+std::string itk::simple::DanielssonDistanceMapImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DanielssonDistanceMapImageFilter::UseImageSpacingOff "/**
+Self& itk::simple::DanielssonDistanceMapImageFilter::UseImageSpacingOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DanielssonDistanceMapImageFilter::UseImageSpacingOn "/**
+Self& itk::simple::DanielssonDistanceMapImageFilter::UseImageSpacingOn()
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DanielssonDistanceMapImageFilter::~DanielssonDistanceMapImageFilter "/**
+itk::simple::DanielssonDistanceMapImageFilter::~DanielssonDistanceMapImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::DemonsRegistrationFilter "/**
+
+Deformably register two images using the demons algorithm.
+
+
+DemonsRegistrationFilter implements the demons deformable algorithm that register two images
+by computing the displacement field which will map a moving image onto
+a fixed image.
+
+A displacement field is represented as a image whose pixel type is
+some vector type with at least N elements, where N is the dimension of
+the fixed image. The vector type must support element access via
+operator []. It is assumed that the vector elements behave like
+floating point scalars.
+
+This class is templated over the fixed image type, moving image type
+and the displacement field type.
+
+The input fixed and moving images are set via methods SetFixedImage
+and SetMovingImage respectively. An initial displacement field maybe
+set via SetInitialDisplacementField or SetInput. If no initial field
+is set, a zero field is used as the initial condition.
+
+The algorithm has one parameters: the number of iteration to be
+performed.
+
+The output displacement field can be obtained via methods GetOutput or
+GetDisplacementField.
+
+This class make use of the finite difference solver hierarchy. Update
+for each iteration is computed in DemonsRegistrationFunction .
+
+
+WARNING:
+This filter assumes that the fixed image type, moving image type and
+displacement field type all have the same number of dimensions.
+
+See:
+ DemonsRegistrationFunction
+
+ itk::DemonsRegistrationFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkDemonsRegistrationFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::DemonsRegistrationFilter "/**
+itk::simple::DemonsRegistrationFilter::DemonsRegistrationFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::Execute "/**
+Image itk::simple::DemonsRegistrationFilter::Execute(const Image &fixedImage, const Image &movingImage, const Image
+&initialDisplacementField)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::Execute "/**
+Image itk::simple::DemonsRegistrationFilter::Execute(const Image &fixedImage, const Image &movingImage)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::Execute "/**
+Image itk::simple::DemonsRegistrationFilter::Execute(const Image &fixedImage, const Image &movingImage, const Image
+&initialDisplacementField, const std::vector< double >
+&standardDeviations, uint32_t numberOfIterations, double
+maximumRMSError, bool useMovingImageGradient, bool
+smoothDisplacementField, bool smoothUpdateField, const std::vector<
+double > &updateFieldStandardDeviations, unsigned int
+maximumKernelWidth, double maximumError, double
+intensityDifferenceThreshold, bool useImageSpacing)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::Execute "/**
+Image itk::simple::DemonsRegistrationFilter::Execute(const Image &fixedImage, const Image &movingImage, const std::vector<
+double > &standardDeviations, uint32_t numberOfIterations, double
+maximumRMSError, bool useMovingImageGradient, bool
+smoothDisplacementField, bool smoothUpdateField, const std::vector<
+double > &updateFieldStandardDeviations, unsigned int
+maximumKernelWidth, double maximumError, double
+intensityDifferenceThreshold, bool useImageSpacing)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::GetElapsedIterations "/**
+uint32_t itk::simple::DemonsRegistrationFilter::GetElapsedIterations() const
+
+Number of iterations run.
+
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::GetIntensityDifferenceThreshold "/**
+double itk::simple::DemonsRegistrationFilter::GetIntensityDifferenceThreshold() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::GetMaximumError "/**
+double itk::simple::DemonsRegistrationFilter::GetMaximumError() const
+
+Set/Get the desired maximum error of the Guassian kernel approximate.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::GetMaximumKernelWidth "/**
+unsigned int itk::simple::DemonsRegistrationFilter::GetMaximumKernelWidth() const
+
+Set/Get the desired limits of the Gaussian kernel width.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::GetMaximumRMSError "/**
+double itk::simple::DemonsRegistrationFilter::GetMaximumRMSError() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::GetMetric "/**
+double itk::simple::DemonsRegistrationFilter::GetMetric() const
+
+Get the metric value. The metric value is the mean square difference
+in intensity between the fixed image and transforming moving image
+computed over the the overlapping region between the two images. This
+is value is only available for the previous iteration and NOT the
+current iteration.
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::GetName "/**
+std::string itk::simple::DemonsRegistrationFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::GetNumberOfIterations "/**
+uint32_t itk::simple::DemonsRegistrationFilter::GetNumberOfIterations() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::GetRMSChange "/**
+double itk::simple::DemonsRegistrationFilter::GetRMSChange() const
+
+The Root Mean Square of the levelset upon termination.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::GetSmoothDisplacementField "/**
+bool itk::simple::DemonsRegistrationFilter::GetSmoothDisplacementField() const
+
+Set/Get whether the displacement field is smoothed (regularized).
+Smoothing the displacement yields a solution elastic in nature. If
+SmoothDisplacementField is on, then the displacement field is smoothed
+with a Gaussian whose standard deviations are specified with SetStandardDeviations()
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::GetSmoothUpdateField "/**
+bool itk::simple::DemonsRegistrationFilter::GetSmoothUpdateField() const
+
+Set/Get whether the update field is smoothed (regularized). Smoothing
+the update field yields a solution viscous in nature. If
+SmoothUpdateField is on, then the update field is smoothed with a
+Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::GetStandardDeviations "/**
+std::vector<double> itk::simple::DemonsRegistrationFilter::GetStandardDeviations() const
+
+Set/Get the Gaussian smoothing standard deviations for the
+displacement field. The values are set with respect to pixel
+coordinates.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::GetUpdateFieldStandardDeviations "/**
+std::vector<double> itk::simple::DemonsRegistrationFilter::GetUpdateFieldStandardDeviations() const
+
+Set the Gaussian smoothing standard deviations for the update field.
+The values are set with respect to pixel coordinates.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::GetUseImageSpacing "/**
+bool itk::simple::DemonsRegistrationFilter::GetUseImageSpacing() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::GetUseMovingImageGradient "/**
+bool itk::simple::DemonsRegistrationFilter::GetUseMovingImageGradient() const
+
+Switch between using the fixed image and moving image gradient for
+computing the displacement field updates.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::SetIntensityDifferenceThreshold "/**
+Self& itk::simple::DemonsRegistrationFilter::SetIntensityDifferenceThreshold(double IntensityDifferenceThreshold)
+
+Set/Get the threshold below which the absolute difference of intensity
+yields a match. When the intensities match between a moving and fixed
+image pixel, the update vector (for that iteration) will be the zero
+vector. Default is 0.001.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::SetMaximumError "/**
+Self& itk::simple::DemonsRegistrationFilter::SetMaximumError(double MaximumError)
+
+Set/Get the desired maximum error of the Guassian kernel approximate.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::SetMaximumKernelWidth "/**
+Self& itk::simple::DemonsRegistrationFilter::SetMaximumKernelWidth(unsigned int MaximumKernelWidth)
+
+Set/Get the desired limits of the Gaussian kernel width.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::SetMaximumRMSError "/**
+Self& itk::simple::DemonsRegistrationFilter::SetMaximumRMSError(double MaximumRMSError)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::SetNumberOfIterations "/**
+Self& itk::simple::DemonsRegistrationFilter::SetNumberOfIterations(uint32_t NumberOfIterations)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::SetSmoothDisplacementField "/**
+Self& itk::simple::DemonsRegistrationFilter::SetSmoothDisplacementField(bool SmoothDisplacementField)
+
+Set/Get whether the displacement field is smoothed (regularized).
+Smoothing the displacement yields a solution elastic in nature. If
+SmoothDisplacementField is on, then the displacement field is smoothed
+with a Gaussian whose standard deviations are specified with SetStandardDeviations()
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::SetSmoothUpdateField "/**
+Self& itk::simple::DemonsRegistrationFilter::SetSmoothUpdateField(bool SmoothUpdateField)
+
+Set/Get whether the update field is smoothed (regularized). Smoothing
+the update field yields a solution viscous in nature. If
+SmoothUpdateField is on, then the update field is smoothed with a
+Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::SetStandardDeviations "/**
+Self& itk::simple::DemonsRegistrationFilter::SetStandardDeviations(const std::vector< double > &StandardDeviations)
+
+Set/Get the Gaussian smoothing standard deviations for the
+displacement field. The values are set with respect to pixel
+coordinates.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::SetStandardDeviations "/**
+Self& itk::simple::DemonsRegistrationFilter::SetStandardDeviations(double value)
+
+Set the values of the StandardDeviations vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::SetUpdateFieldStandardDeviations "/**
+Self& itk::simple::DemonsRegistrationFilter::SetUpdateFieldStandardDeviations(const std::vector< double > &UpdateFieldStandardDeviations)
+
+Set the Gaussian smoothing standard deviations for the update field.
+The values are set with respect to pixel coordinates.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::SetUpdateFieldStandardDeviations "/**
+Self& itk::simple::DemonsRegistrationFilter::SetUpdateFieldStandardDeviations(double value)
+
+Set the values of the UpdateFieldStandardDeviations vector all to
+value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::SetUseImageSpacing "/**
+Self& itk::simple::DemonsRegistrationFilter::SetUseImageSpacing(bool UseImageSpacing)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::SetUseMovingImageGradient "/**
+Self& itk::simple::DemonsRegistrationFilter::SetUseMovingImageGradient(bool UseMovingImageGradient)
+
+Switch between using the fixed image and moving image gradient for
+computing the displacement field updates.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::SmoothDisplacementFieldOff "/**
+Self& itk::simple::DemonsRegistrationFilter::SmoothDisplacementFieldOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::SmoothDisplacementFieldOn "/**
+Self& itk::simple::DemonsRegistrationFilter::SmoothDisplacementFieldOn()
+
+Set the value of SmoothDisplacementField to true or false
+respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::SmoothUpdateFieldOff "/**
+Self& itk::simple::DemonsRegistrationFilter::SmoothUpdateFieldOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::SmoothUpdateFieldOn "/**
+Self& itk::simple::DemonsRegistrationFilter::SmoothUpdateFieldOn()
+
+Set the value of SmoothUpdateField to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::ToString "/**
+std::string itk::simple::DemonsRegistrationFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::UseImageSpacingOff "/**
+Self& itk::simple::DemonsRegistrationFilter::UseImageSpacingOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::UseImageSpacingOn "/**
+Self& itk::simple::DemonsRegistrationFilter::UseImageSpacingOn()
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::UseMovingImageGradientOff "/**
+Self& itk::simple::DemonsRegistrationFilter::UseMovingImageGradientOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::UseMovingImageGradientOn "/**
+Self& itk::simple::DemonsRegistrationFilter::UseMovingImageGradientOn()
+
+Set the value of UseMovingImageGradient to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DemonsRegistrationFilter::~DemonsRegistrationFilter "/**
+itk::simple::DemonsRegistrationFilter::~DemonsRegistrationFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::DerivativeImageFilter "/**
+
+Computes the directional derivative of an image. The directional
+derivative at each pixel location is computed by convolution with a
+derivative operator of user-specified order.
+
+
+SetOrder specifies the order of the derivative.
+
+SetDirection specifies the direction of the derivative with respect to
+the coordinate axes of the image.
+
+
+See:
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+Wiki Examples:
+
+All Examples
+
+Compute the derivative of an image in a particular direction
+See:
+ itk::simple::Derivative for the procedural interface
+
+ itk::DerivativeImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkDerivativeImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::DerivativeImageFilter::DerivativeImageFilter "/**
+itk::simple::DerivativeImageFilter::DerivativeImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DerivativeImageFilter::Execute "/**
+Image itk::simple::DerivativeImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DerivativeImageFilter::Execute "/**
+Image itk::simple::DerivativeImageFilter::Execute(const Image &image1, unsigned int direction, unsigned int order, bool
+useImageSpacing)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DerivativeImageFilter::GetDirection "/**
+unsigned int itk::simple::DerivativeImageFilter::GetDirection() const
+
+The output pixel type must be signed. Standard get/set macros for
+filter parameters.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DerivativeImageFilter::GetName "/**
+std::string itk::simple::DerivativeImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DerivativeImageFilter::GetOrder "/**
+unsigned int itk::simple::DerivativeImageFilter::GetOrder() const
+
+The output pixel type must be signed. Standard get/set macros for
+filter parameters.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DerivativeImageFilter::GetUseImageSpacing "/**
+bool itk::simple::DerivativeImageFilter::GetUseImageSpacing() const
+
+Set/Get whether or not the filter will use the spacing of the input
+image in its calculations
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DerivativeImageFilter::SetDirection "/**
+Self& itk::simple::DerivativeImageFilter::SetDirection(unsigned int Direction)
+
+The output pixel type must be signed. Standard get/set macros for
+filter parameters.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DerivativeImageFilter::SetOrder "/**
+Self& itk::simple::DerivativeImageFilter::SetOrder(unsigned int Order)
+
+The output pixel type must be signed. Standard get/set macros for
+filter parameters.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DerivativeImageFilter::SetUseImageSpacing "/**
+Self& itk::simple::DerivativeImageFilter::SetUseImageSpacing(bool UseImageSpacing)
+
+Set/Get whether or not the filter will use the spacing of the input
+image in its calculations
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DerivativeImageFilter::ToString "/**
+std::string itk::simple::DerivativeImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DerivativeImageFilter::UseImageSpacingOff "/**
+Self& itk::simple::DerivativeImageFilter::UseImageSpacingOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DerivativeImageFilter::UseImageSpacingOn "/**
+Self& itk::simple::DerivativeImageFilter::UseImageSpacingOn()
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DerivativeImageFilter::~DerivativeImageFilter "/**
+itk::simple::DerivativeImageFilter::~DerivativeImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::DiffeomorphicDemonsRegistrationFilter "/**
+
+Deformably register two images using a diffeomorphic demons algorithm.
+
+
+This class was contributed by Tom Vercauteren, INRIA & Mauna Kea
+Technologies, based on a variation of the DemonsRegistrationFilter . The basic modification is to use diffeomorphism exponentials.
+
+See T. Vercauteren, X. Pennec, A. Perchant and N. Ayache, \"Non-
+parametric Diffeomorphic Image Registration with the Demons
+Algorithm\", Proc. of MICCAI 2007.
+
+DiffeomorphicDemonsRegistrationFilter implements the demons deformable algorithm that register two images
+by computing the deformation field which will map a moving image onto
+a fixed image.
+
+A deformation field is represented as a image whose pixel type is some
+vector type with at least N elements, where N is the dimension of the
+fixed image. The vector type must support element access via operator
+[]. It is assumed that the vector elements behave like floating point
+scalars.
+
+This class is templated over the fixed image type, moving image type
+and the deformation field type.
+
+The input fixed and moving images are set via methods SetFixedImage
+and SetMovingImage respectively. An initial deformation field maybe
+set via SetInitialDisplacementField or SetInput. If no initial field
+is set, a zero field is used as the initial condition.
+
+The output deformation field can be obtained via methods GetOutput or
+GetDisplacementField.
+
+This class make use of the finite difference solver hierarchy. Update
+for each iteration is computed in DemonsRegistrationFunction .
+
+
+Tom Vercauteren, INRIA & Mauna Kea Technologies
+
+WARNING:
+This filter assumes that the fixed image type, moving image type and
+deformation field type all have the same number of dimensions.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/510
+
+
+See:
+ DemonsRegistrationFilter
+
+ DemonsRegistrationFunction
+
+ itk::DiffeomorphicDemonsRegistrationFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkDiffeomorphicDemonsRegistrationFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::DiffeomorphicDemonsRegistrationFilter "/**
+itk::simple::DiffeomorphicDemonsRegistrationFilter::DiffeomorphicDemonsRegistrationFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::Execute "/**
+Image itk::simple::DiffeomorphicDemonsRegistrationFilter::Execute(const Image &fixedImage, const Image &movingImage, const Image
+&initialDisplacementField)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::Execute "/**
+Image itk::simple::DiffeomorphicDemonsRegistrationFilter::Execute(const Image &fixedImage, const Image &movingImage)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::Execute "/**
+Image itk::simple::DiffeomorphicDemonsRegistrationFilter::Execute(const Image &fixedImage, const Image &movingImage, const Image
+&initialDisplacementField, const std::vector< double >
+&standardDeviations, uint32_t numberOfIterations, double
+maximumRMSError,
+DiffeomorphicDemonsRegistrationFilter::UseGradientTypeType
+useGradientType, bool useFirstOrderExp, double
+maximumUpdateStepLength, bool smoothDisplacementField, bool
+smoothUpdateField, const std::vector< double >
+&updateFieldStandardDeviations, unsigned int maximumKernelWidth,
+double maximumError, double intensityDifferenceThreshold, bool
+useImageSpacing)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::Execute "/**
+Image itk::simple::DiffeomorphicDemonsRegistrationFilter::Execute(const Image &fixedImage, const Image &movingImage, const std::vector<
+double > &standardDeviations, uint32_t numberOfIterations, double
+maximumRMSError,
+DiffeomorphicDemonsRegistrationFilter::UseGradientTypeType
+useGradientType, bool useFirstOrderExp, double
+maximumUpdateStepLength, bool smoothDisplacementField, bool
+smoothUpdateField, const std::vector< double >
+&updateFieldStandardDeviations, unsigned int maximumKernelWidth,
+double maximumError, double intensityDifferenceThreshold, bool
+useImageSpacing)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetElapsedIterations "/**
+uint32_t itk::simple::DiffeomorphicDemonsRegistrationFilter::GetElapsedIterations() const
+
+Number of iterations run.
+
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetIntensityDifferenceThreshold "/**
+double itk::simple::DiffeomorphicDemonsRegistrationFilter::GetIntensityDifferenceThreshold() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetMaximumError "/**
+double itk::simple::DiffeomorphicDemonsRegistrationFilter::GetMaximumError() const
+
+Set/Get the desired maximum error of the Guassian kernel approximate.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetMaximumKernelWidth "/**
+unsigned int itk::simple::DiffeomorphicDemonsRegistrationFilter::GetMaximumKernelWidth() const
+
+Set/Get the desired limits of the Gaussian kernel width.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetMaximumRMSError "/**
+double itk::simple::DiffeomorphicDemonsRegistrationFilter::GetMaximumRMSError() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetMaximumUpdateStepLength "/**
+double itk::simple::DiffeomorphicDemonsRegistrationFilter::GetMaximumUpdateStepLength() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetMetric "/**
+double itk::simple::DiffeomorphicDemonsRegistrationFilter::GetMetric() const
+
+Get the metric value. The metric value is the mean square difference
+in intensity between the fixed image and transforming moving image
+computed over the the overlapping region between the two images. This
+value is calculated for the current iteration
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetName "/**
+std::string itk::simple::DiffeomorphicDemonsRegistrationFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetNumberOfIterations "/**
+uint32_t itk::simple::DiffeomorphicDemonsRegistrationFilter::GetNumberOfIterations() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetRMSChange "/**
+double itk::simple::DiffeomorphicDemonsRegistrationFilter::GetRMSChange() const
+
+Set/Get the root mean squared change of the previous iteration. May
+not be used by all solvers.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetSmoothDisplacementField "/**
+bool itk::simple::DiffeomorphicDemonsRegistrationFilter::GetSmoothDisplacementField() const
+
+Set/Get whether the displacement field is smoothed (regularized).
+Smoothing the displacement yields a solution elastic in nature. If
+SmoothDisplacementField is on, then the displacement field is smoothed
+with a Gaussian whose standard deviations are specified with SetStandardDeviations()
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetSmoothUpdateField "/**
+bool itk::simple::DiffeomorphicDemonsRegistrationFilter::GetSmoothUpdateField() const
+
+Set/Get whether the update field is smoothed (regularized). Smoothing
+the update field yields a solution viscous in nature. If
+SmoothUpdateField is on, then the update field is smoothed with a
+Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetStandardDeviations "/**
+std::vector<double> itk::simple::DiffeomorphicDemonsRegistrationFilter::GetStandardDeviations() const
+
+Set/Get the Gaussian smoothing standard deviations for the
+displacement field. The values are set with respect to pixel
+coordinates.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetUpdateFieldStandardDeviations "/**
+std::vector<double> itk::simple::DiffeomorphicDemonsRegistrationFilter::GetUpdateFieldStandardDeviations() const
+
+Set the Gaussian smoothing standard deviations for the update field.
+The values are set with respect to pixel coordinates.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetUseFirstOrderExp "/**
+bool itk::simple::DiffeomorphicDemonsRegistrationFilter::GetUseFirstOrderExp() const
+
+Use a first-order approximation of the exponential. This amounts to
+using an update rule of the type s <- s o (Id + u) instead of s <- s o
+exp(u)
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetUseGradientType "/**
+UseGradientTypeType itk::simple::DiffeomorphicDemonsRegistrationFilter::GetUseGradientType() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetUseImageSpacing "/**
+bool itk::simple::DiffeomorphicDemonsRegistrationFilter::GetUseImageSpacing() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetIntensityDifferenceThreshold "/**
+Self& itk::simple::DiffeomorphicDemonsRegistrationFilter::SetIntensityDifferenceThreshold(double IntensityDifferenceThreshold)
+
+Set/Get the threshold below which the absolute difference of intensity
+yields a match. When the intensities match between a moving and fixed
+image pixel, the update vector (for that iteration) will be the zero
+vector. Default is 0.001.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetMaximumError "/**
+Self& itk::simple::DiffeomorphicDemonsRegistrationFilter::SetMaximumError(double MaximumError)
+
+Set/Get the desired maximum error of the Guassian kernel approximate.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetMaximumKernelWidth "/**
+Self& itk::simple::DiffeomorphicDemonsRegistrationFilter::SetMaximumKernelWidth(unsigned int MaximumKernelWidth)
+
+Set/Get the desired limits of the Gaussian kernel width.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetMaximumRMSError "/**
+Self& itk::simple::DiffeomorphicDemonsRegistrationFilter::SetMaximumRMSError(double MaximumRMSError)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetMaximumUpdateStepLength "/**
+Self& itk::simple::DiffeomorphicDemonsRegistrationFilter::SetMaximumUpdateStepLength(double MaximumUpdateStepLength)
+
+Set/Get the maximum length in terms of pixels of the vectors in the
+update buffer.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetNumberOfIterations "/**
+Self& itk::simple::DiffeomorphicDemonsRegistrationFilter::SetNumberOfIterations(uint32_t NumberOfIterations)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetSmoothDisplacementField "/**
+Self& itk::simple::DiffeomorphicDemonsRegistrationFilter::SetSmoothDisplacementField(bool SmoothDisplacementField)
+
+Set/Get whether the displacement field is smoothed (regularized).
+Smoothing the displacement yields a solution elastic in nature. If
+SmoothDisplacementField is on, then the displacement field is smoothed
+with a Gaussian whose standard deviations are specified with SetStandardDeviations()
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetSmoothUpdateField "/**
+Self& itk::simple::DiffeomorphicDemonsRegistrationFilter::SetSmoothUpdateField(bool SmoothUpdateField)
+
+Set/Get whether the update field is smoothed (regularized). Smoothing
+the update field yields a solution viscous in nature. If
+SmoothUpdateField is on, then the update field is smoothed with a
+Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetStandardDeviations "/**
+Self& itk::simple::DiffeomorphicDemonsRegistrationFilter::SetStandardDeviations(const std::vector< double > &StandardDeviations)
+
+Set/Get the Gaussian smoothing standard deviations for the
+displacement field. The values are set with respect to pixel
+coordinates.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetStandardDeviations "/**
+Self& itk::simple::DiffeomorphicDemonsRegistrationFilter::SetStandardDeviations(double value)
+
+Set the values of the StandardDeviations vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetUpdateFieldStandardDeviations "/**
+Self& itk::simple::DiffeomorphicDemonsRegistrationFilter::SetUpdateFieldStandardDeviations(const std::vector< double > &UpdateFieldStandardDeviations)
+
+Set the Gaussian smoothing standard deviations for the update field.
+The values are set with respect to pixel coordinates.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetUpdateFieldStandardDeviations "/**
+Self& itk::simple::DiffeomorphicDemonsRegistrationFilter::SetUpdateFieldStandardDeviations(double value)
+
+Set the values of the UpdateFieldStandardDeviations vector all to
+value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetUseFirstOrderExp "/**
+Self& itk::simple::DiffeomorphicDemonsRegistrationFilter::SetUseFirstOrderExp(bool UseFirstOrderExp)
+
+Use a first-order approximation of the exponential. This amounts to
+using an update rule of the type s <- s o (Id + u) instead of s <- s o
+exp(u)
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetUseGradientType "/**
+Self& itk::simple::DiffeomorphicDemonsRegistrationFilter::SetUseGradientType(UseGradientTypeType UseGradientType)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetUseImageSpacing "/**
+Self& itk::simple::DiffeomorphicDemonsRegistrationFilter::SetUseImageSpacing(bool UseImageSpacing)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::SmoothDisplacementFieldOff "/**
+Self& itk::simple::DiffeomorphicDemonsRegistrationFilter::SmoothDisplacementFieldOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::SmoothDisplacementFieldOn "/**
+Self& itk::simple::DiffeomorphicDemonsRegistrationFilter::SmoothDisplacementFieldOn()
+
+Set the value of SmoothDisplacementField to true or false
+respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::SmoothUpdateFieldOff "/**
+Self& itk::simple::DiffeomorphicDemonsRegistrationFilter::SmoothUpdateFieldOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::SmoothUpdateFieldOn "/**
+Self& itk::simple::DiffeomorphicDemonsRegistrationFilter::SmoothUpdateFieldOn()
+
+Set the value of SmoothUpdateField to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::ToString "/**
+std::string itk::simple::DiffeomorphicDemonsRegistrationFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::UseFirstOrderExpOff "/**
+Self& itk::simple::DiffeomorphicDemonsRegistrationFilter::UseFirstOrderExpOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::UseFirstOrderExpOn "/**
+Self& itk::simple::DiffeomorphicDemonsRegistrationFilter::UseFirstOrderExpOn()
+
+Set the value of UseFirstOrderExp to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::UseImageSpacingOff "/**
+Self& itk::simple::DiffeomorphicDemonsRegistrationFilter::UseImageSpacingOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::UseImageSpacingOn "/**
+Self& itk::simple::DiffeomorphicDemonsRegistrationFilter::UseImageSpacingOn()
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiffeomorphicDemonsRegistrationFilter::~DiffeomorphicDemonsRegistrationFilter "/**
+itk::simple::DiffeomorphicDemonsRegistrationFilter::~DiffeomorphicDemonsRegistrationFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::DilateObjectMorphologyImageFilter "/**
+
+dilation of an object in an image
+
+
+Dilate an image using binary morphology. Pixel values matching the
+object value are considered the \"foreground\" and all other pixels
+are \"background\". This is useful in processing mask images
+containing only one object.
+
+If a pixel's value is equal to the object value and the pixel is
+adjacent to a non-object valued pixel, then the kernel is centered on
+the object-value pixel and neighboring pixels covered by the kernel
+are assigned the object value. The structuring element is assumed to
+be composed of binary values (zero or one).
+
+
+See:
+ ObjectMorphologyImageFilter , ErodeObjectMorphologyImageFilter
+
+ BinaryDilateImageFilter
+
+ itk::simple::DilateObjectMorphology for the procedural interface
+
+ itk::DilateObjectMorphologyImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkDilateObjectMorphologyImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::DilateObjectMorphologyImageFilter::DilateObjectMorphologyImageFilter "/**
+itk::simple::DilateObjectMorphologyImageFilter::DilateObjectMorphologyImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DilateObjectMorphologyImageFilter::Execute "/**
+Image itk::simple::DilateObjectMorphologyImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DilateObjectMorphologyImageFilter::Execute "/**
+Image itk::simple::DilateObjectMorphologyImageFilter::Execute(const Image &image1, double objectValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DilateObjectMorphologyImageFilter::GetKernelRadius "/**
+std::vector<uint32_t> itk::simple::DilateObjectMorphologyImageFilter::GetKernelRadius() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DilateObjectMorphologyImageFilter::GetKernelType "/**
+KernelEnum itk::simple::DilateObjectMorphologyImageFilter::GetKernelType() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DilateObjectMorphologyImageFilter::GetName "/**
+std::string itk::simple::DilateObjectMorphologyImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DilateObjectMorphologyImageFilter::GetObjectValue "/**
+double itk::simple::DilateObjectMorphologyImageFilter::GetObjectValue() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DilateObjectMorphologyImageFilter::SetKernelRadius "/**
+Self& itk::simple::DilateObjectMorphologyImageFilter::SetKernelRadius(uint32_t r)
+
+Kernel radius as a scale for isotropic structures
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DilateObjectMorphologyImageFilter::SetKernelRadius "/**
+Self& itk::simple::DilateObjectMorphologyImageFilter::SetKernelRadius(const std::vector< uint32_t > &r)
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DilateObjectMorphologyImageFilter::SetKernelType "/**
+Self& itk::simple::DilateObjectMorphologyImageFilter::SetKernelType(KernelEnum t)
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DilateObjectMorphologyImageFilter::SetKernelType "/**
+Self& itk::simple::DilateObjectMorphologyImageFilter::SetKernelType(KernelType t)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DilateObjectMorphologyImageFilter::SetObjectValue "/**
+Self& itk::simple::DilateObjectMorphologyImageFilter::SetObjectValue(double ObjectValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DilateObjectMorphologyImageFilter::ToString "/**
+std::string itk::simple::DilateObjectMorphologyImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DilateObjectMorphologyImageFilter::~DilateObjectMorphologyImageFilter "/**
+itk::simple::DilateObjectMorphologyImageFilter::~DilateObjectMorphologyImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::DiscreteGaussianDerivativeImageFilter "/**
+
+Calculates image derivatives using discrete derivative gaussian
+kernels. This filter calculates Gaussian derivative by separable
+convolution of an image and a discrete Gaussian derivative operator
+(kernel).
+
+
+The Gaussian operators used here were described by Tony Lindeberg
+(Discrete Scale-Space Theory and the Scale-Space Primal Sketch.
+Dissertation. Royal Institute of Technology, Stockholm, Sweden. May
+1991.)
+
+The variance or standard deviation (sigma) will be evaluated as pixel
+units if SetUseImageSpacing is off (false) or as physical units if
+SetUseImageSpacing is on (true, default). The variance can be set
+independently in each dimension.
+
+When the Gaussian kernel is small, this filter tends to run faster
+than itk::RecursiveGaussianImageFilter .
+
+
+Ivan Macia, VICOMTech, Spain, http://www.vicomtech.es
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/1290
+
+
+See:
+ GaussianDerivativeOperator
+
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ itk::simple::DiscreteGaussianDerivative for the procedural interface
+
+ itk::DiscreteGaussianDerivativeImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkDiscreteGaussianDerivativeImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianDerivativeImageFilter::DiscreteGaussianDerivativeImageFilter "/**
+itk::simple::DiscreteGaussianDerivativeImageFilter::DiscreteGaussianDerivativeImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianDerivativeImageFilter::Execute "/**
+Image itk::simple::DiscreteGaussianDerivativeImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianDerivativeImageFilter::Execute "/**
+Image itk::simple::DiscreteGaussianDerivativeImageFilter::Execute(const Image &image1, const std::vector< double > &variance, const
+std::vector< unsigned int > &order, unsigned int maximumKernelWidth,
+double maximumError, bool useImageSpacing, bool normalizeAcrossScale)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianDerivativeImageFilter::GetMaximumError "/**
+double itk::simple::DiscreteGaussianDerivativeImageFilter::GetMaximumError() const
+
+The algorithm will size the discrete kernel so that the error
+resulting from truncation of the kernel is no greater than
+MaximumError. The default is 0.01 in each dimension.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianDerivativeImageFilter::GetMaximumKernelWidth "/**
+unsigned int itk::simple::DiscreteGaussianDerivativeImageFilter::GetMaximumKernelWidth() const
+
+Set the kernel to be no wider than MaximumKernelWidth pixels, even if
+MaximumError demands it. The default is 32 pixels.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianDerivativeImageFilter::GetName "/**
+std::string itk::simple::DiscreteGaussianDerivativeImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianDerivativeImageFilter::GetNormalizeAcrossScale "/**
+bool itk::simple::DiscreteGaussianDerivativeImageFilter::GetNormalizeAcrossScale() const
+
+Set/Get the flag for calculating scale-space normalized derivatives.
+Normalized derivatives are obtained multiplying by the scale parameter
+t.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianDerivativeImageFilter::GetOrder "/**
+std::vector<unsigned int> itk::simple::DiscreteGaussianDerivativeImageFilter::GetOrder() const
+
+Order of derivatives in each dimension. Sets the derivative order
+independently for each dimension, but see also SetOrder(const unsigned int v) . The default is 1 in each dimension.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianDerivativeImageFilter::GetUseImageSpacing "/**
+bool itk::simple::DiscreteGaussianDerivativeImageFilter::GetUseImageSpacing() const
+
+Set/Get whether or not the filter will use the spacing of the input
+image in its calculations. Default is ImageSpacingOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianDerivativeImageFilter::GetVariance "/**
+std::vector<double> itk::simple::DiscreteGaussianDerivativeImageFilter::GetVariance() const
+
+The variance for the discrete Gaussian kernel. Sets the variance
+independently for each dimension, but see also SetVariance(const double v) . The default is 0.0 in each dimension. If UseImageSpacing is true,
+the units are the physical units of your image. If UseImageSpacing is
+false then the units are pixels.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianDerivativeImageFilter::NormalizeAcrossScaleOff "/**
+Self& itk::simple::DiscreteGaussianDerivativeImageFilter::NormalizeAcrossScaleOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianDerivativeImageFilter::NormalizeAcrossScaleOn "/**
+Self& itk::simple::DiscreteGaussianDerivativeImageFilter::NormalizeAcrossScaleOn()
+
+Set the value of NormalizeAcrossScale to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianDerivativeImageFilter::SetMaximumError "/**
+Self& itk::simple::DiscreteGaussianDerivativeImageFilter::SetMaximumError(double MaximumError)
+
+Convenience Set methods for setting all dimensional parameters to the
+same values.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianDerivativeImageFilter::SetMaximumKernelWidth "/**
+Self& itk::simple::DiscreteGaussianDerivativeImageFilter::SetMaximumKernelWidth(unsigned int MaximumKernelWidth)
+
+Set the kernel to be no wider than MaximumKernelWidth pixels, even if
+MaximumError demands it. The default is 32 pixels.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianDerivativeImageFilter::SetNormalizeAcrossScale "/**
+Self& itk::simple::DiscreteGaussianDerivativeImageFilter::SetNormalizeAcrossScale(bool NormalizeAcrossScale)
+
+Set/Get the flag for calculating scale-space normalized derivatives.
+Normalized derivatives are obtained multiplying by the scale parameter
+t.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianDerivativeImageFilter::SetOrder "/**
+Self& itk::simple::DiscreteGaussianDerivativeImageFilter::SetOrder(const std::vector< unsigned int > &Order)
+
+Convenience Set methods for setting all dimensional parameters to the
+same values.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianDerivativeImageFilter::SetOrder "/**
+Self& itk::simple::DiscreteGaussianDerivativeImageFilter::SetOrder(unsigned int value)
+
+Set the values of the Order vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianDerivativeImageFilter::SetUseImageSpacing "/**
+Self& itk::simple::DiscreteGaussianDerivativeImageFilter::SetUseImageSpacing(bool UseImageSpacing)
+
+Set/Get whether or not the filter will use the spacing of the input
+image in its calculations. Default is ImageSpacingOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianDerivativeImageFilter::SetVariance "/**
+Self& itk::simple::DiscreteGaussianDerivativeImageFilter::SetVariance(const std::vector< double > &Variance)
+
+Convenience Set methods for setting all dimensional parameters to the
+same values.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianDerivativeImageFilter::SetVariance "/**
+Self& itk::simple::DiscreteGaussianDerivativeImageFilter::SetVariance(double value)
+
+Set the values of the Variance vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianDerivativeImageFilter::ToString "/**
+std::string itk::simple::DiscreteGaussianDerivativeImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianDerivativeImageFilter::UseImageSpacingOff "/**
+Self& itk::simple::DiscreteGaussianDerivativeImageFilter::UseImageSpacingOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianDerivativeImageFilter::UseImageSpacingOn "/**
+Self& itk::simple::DiscreteGaussianDerivativeImageFilter::UseImageSpacingOn()
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianDerivativeImageFilter::~DiscreteGaussianDerivativeImageFilter "/**
+itk::simple::DiscreteGaussianDerivativeImageFilter::~DiscreteGaussianDerivativeImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::DiscreteGaussianImageFilter "/**
+
+Blurs an image by separable convolution with discrete gaussian
+kernels. This filter performs Gaussian blurring by separable
+convolution of an image and a discrete Gaussian operator (kernel).
+
+
+The Gaussian operator used here was described by Tony Lindeberg
+(Discrete Scale-Space Theory and the Scale-Space Primal Sketch.
+Dissertation. Royal Institute of Technology, Stockholm, Sweden. May
+1991.) The Gaussian kernel used here was designed so that smoothing
+and derivative operations commute after discretization.
+
+The variance or standard deviation (sigma) will be evaluated as pixel
+units if SetUseImageSpacing is off (false) or as physical units if
+SetUseImageSpacing is on (true, default). The variance can be set
+independently in each dimension.
+
+When the Gaussian kernel is small, this filter tends to run faster
+than itk::RecursiveGaussianImageFilter .
+
+
+See:
+ GaussianOperator
+
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ RecursiveGaussianImageFilter
+Wiki Examples:
+
+All Examples
+
+Smooth an image with a discrete Gaussian filter
+See:
+ itk::simple::DiscreteGaussian for the procedural interface
+
+ itk::DiscreteGaussianImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkDiscreteGaussianImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianImageFilter::DiscreteGaussianImageFilter "/**
+itk::simple::DiscreteGaussianImageFilter::DiscreteGaussianImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianImageFilter::Execute "/**
+Image itk::simple::DiscreteGaussianImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianImageFilter::Execute "/**
+Image itk::simple::DiscreteGaussianImageFilter::Execute(const Image &image1, double variance, unsigned int
+maximumKernelWidth, double maximumError, bool useImageSpacing)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianImageFilter::GetMaximumError "/**
+double itk::simple::DiscreteGaussianImageFilter::GetMaximumError() const
+
+The algorithm will size the discrete kernel so that the error
+resulting from truncation of the kernel is no greater than
+MaximumError. The default is 0.01 in each dimension.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianImageFilter::GetMaximumKernelWidth "/**
+unsigned int itk::simple::DiscreteGaussianImageFilter::GetMaximumKernelWidth() const
+
+Set the kernel to be no wider than MaximumKernelWidth pixels, even if
+MaximumError demands it. The default is 32 pixels.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianImageFilter::GetName "/**
+std::string itk::simple::DiscreteGaussianImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianImageFilter::GetUseImageSpacing "/**
+bool itk::simple::DiscreteGaussianImageFilter::GetUseImageSpacing() const
+
+Set/Get whether or not the filter will use the spacing of the input
+image in its calculations
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianImageFilter::GetVariance "/**
+double itk::simple::DiscreteGaussianImageFilter::GetVariance() const
+
+The variance for the discrete Gaussian kernel. Sets the variance
+independently for each dimension, but see also SetVariance(const double v) . The default is 0.0 in each dimension. If UseImageSpacing is true,
+the units are the physical units of your image. If UseImageSpacing is
+false then the units are pixels.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianImageFilter::SetMaximumError "/**
+Self& itk::simple::DiscreteGaussianImageFilter::SetMaximumError(double MaximumError)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianImageFilter::SetMaximumKernelWidth "/**
+Self& itk::simple::DiscreteGaussianImageFilter::SetMaximumKernelWidth(unsigned int MaximumKernelWidth)
+
+Set the kernel to be no wider than MaximumKernelWidth pixels, even if
+MaximumError demands it. The default is 32 pixels.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianImageFilter::SetUseImageSpacing "/**
+Self& itk::simple::DiscreteGaussianImageFilter::SetUseImageSpacing(bool UseImageSpacing)
+
+Set/Get whether or not the filter will use the spacing of the input
+image in its calculations
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianImageFilter::SetVariance "/**
+Self& itk::simple::DiscreteGaussianImageFilter::SetVariance(double Variance)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianImageFilter::ToString "/**
+std::string itk::simple::DiscreteGaussianImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianImageFilter::UseImageSpacingOff "/**
+Self& itk::simple::DiscreteGaussianImageFilter::UseImageSpacingOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianImageFilter::UseImageSpacingOn "/**
+Self& itk::simple::DiscreteGaussianImageFilter::UseImageSpacingOn()
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianImageFilter::~DiscreteGaussianImageFilter "/**
+itk::simple::DiscreteGaussianImageFilter::~DiscreteGaussianImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::DisplacementFieldJacobianDeterminantFilter "/**
+
+Computes a scalar image from a vector image (e.g., deformation field)
+input, where each output scalar at each pixel is the Jacobian
+determinant of the vector field at that location. This calculation is
+correct in the case where the vector image is a \"displacement\" from
+the current location. The computation for the jacobian determinant is:
+det[ dT/dx ] = det[ I + du/dx ].
+
+
+Overview
+This filter is based on itkVectorGradientMagnitudeImageFilter and
+supports the m_DerivativeWeights weights for partial derivatives.
+ Note that the determinant of a zero vector field is also zero,
+whereas the Jacobian determinant of the corresponding identity warp
+transformation is 1.0. In order to compute the effective deformation
+Jacobian determinant 1.0 must be added to the diagonal elements of
+Jacobian prior to taking the derivative. i.e. det([ (1.0+dx/dx) dx/dy
+dx/dz ; dy/dx (1.0+dy/dy) dy/dz; dz/dx dz/dy (1.0+dz/dz) ])
+
+Template Parameters (Input and Output)
+This filter has one required template parameter which defines the
+input image type. The pixel type of the input image is assumed to be a
+vector (e.g., itk::Vector , itk::RGBPixel , itk::FixedArray ). The scalar type of the vector components must be castable to
+floating point. Instantiating with an image of RGBPixel<unsigned
+short>, for example, is allowed, but the filter will convert it to an
+image of Vector<float,3> for processing.
+ The second template parameter, TRealType, can be optionally specified
+to define the scalar numerical type used in calculations. This is the
+component type of the output image, which will be of
+itk::Vector<TRealType, N>, where N is the number of channels in the
+multiple component input image. The default type of TRealType is
+float. For extra precision, you may safely change this parameter to
+double.
+
+The third template parameter is the output image type. The third
+parameter will be automatically constructed from the first and second
+parameters, so it is not necessary (or advisable) to set this
+parameter explicitly. Given an M-channel input image with
+dimensionality N, and a numerical type specified as TRealType, the
+output image will be of type itk::Image<TRealType, N>.
+
+Filter Parameters
+The method SetUseImageSpacingOn will cause derivatives in the image to
+be scaled (inversely) with the pixel size of the input image,
+effectively taking derivatives in world coordinates (versus isotropic
+image space). SetUseImageSpacingOff turns this functionality off.
+Default is UseImageSpacingOn. The parameter UseImageSpacing can be set
+directly with the method SetUseImageSpacing(bool) .
+ Weights can be applied to the derivatives directly using the
+SetDerivativeWeights method. Note that if UseImageSpacing is set to
+TRUE (ON), then these weights will be overridden by weights derived
+from the image spacing when the filter is updated. The argument to
+this method is a C array of TRealValue type.
+
+Constraints
+We use vnl_det for determinent computation, which only supports square
+matrices. So the vector dimension of the input image values must be
+equal to the image dimensions, which is trivially true for a
+deformation field that maps an n-dimensional space onto itself.
+ Currently, dimensions up to and including 4 are supported. This
+limitation comes from the presence of vnl_det() functions for matrices
+of dimension up to 4x4.
+
+The template parameter TRealType must be floating point (float or
+double) or a user-defined \"real\" numerical type with arithmetic
+operations defined sufficient to compute derivatives.
+
+
+See:
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+
+This class was adapted by
+
+Hans J. Johnson, The University of Iowa from code provided by
+ Tom Vercauteren, INRIA & Mauna Kea Technologies
+
+Torsten Rohlfing, Neuroscience Program, SRI International.
+See:
+ itk::simple::DisplacementFieldJacobianDeterminantFilter for the procedural interface
+
+ itk::DisplacementFieldJacobianDeterminantFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkDisplacementFieldJacobianDeterminantFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::DisplacementFieldJacobianDeterminantFilter::DisplacementFieldJacobianDeterminantFilter "/**
+itk::simple::DisplacementFieldJacobianDeterminantFilter::DisplacementFieldJacobianDeterminantFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DisplacementFieldJacobianDeterminantFilter::Execute "/**
+Image itk::simple::DisplacementFieldJacobianDeterminantFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DisplacementFieldJacobianDeterminantFilter::Execute "/**
+Image itk::simple::DisplacementFieldJacobianDeterminantFilter::Execute(const Image &image1, bool useImageSpacing, const std::vector< double
+> &derivativeWeights)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DisplacementFieldJacobianDeterminantFilter::GetDerivativeWeights "/**
+std::vector<double> itk::simple::DisplacementFieldJacobianDeterminantFilter::GetDerivativeWeights() const
+
+Directly Set/Get the array of weights used in the gradient
+calculations. Note that calling UseImageSpacingOn will clobber these
+values.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DisplacementFieldJacobianDeterminantFilter::GetName "/**
+std::string itk::simple::DisplacementFieldJacobianDeterminantFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DisplacementFieldJacobianDeterminantFilter::GetUseImageSpacing "/**
+bool itk::simple::DisplacementFieldJacobianDeterminantFilter::GetUseImageSpacing() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DisplacementFieldJacobianDeterminantFilter::SetDerivativeWeights "/**
+Self& itk::simple::DisplacementFieldJacobianDeterminantFilter::SetDerivativeWeights(const std::vector< double > &DerivativeWeights)
+
+Directly Set/Get the array of weights used in the gradient
+calculations. Note that calling UseImageSpacingOn will clobber these
+values.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DisplacementFieldJacobianDeterminantFilter::SetUseImageSpacing "/**
+Self& itk::simple::DisplacementFieldJacobianDeterminantFilter::SetUseImageSpacing(bool UseImageSpacing)
+
+Set/Get whether or not the filter will use the spacing of the input
+image in its calculations
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DisplacementFieldJacobianDeterminantFilter::ToString "/**
+std::string itk::simple::DisplacementFieldJacobianDeterminantFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DisplacementFieldJacobianDeterminantFilter::UseImageSpacingOff "/**
+Self& itk::simple::DisplacementFieldJacobianDeterminantFilter::UseImageSpacingOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DisplacementFieldJacobianDeterminantFilter::UseImageSpacingOn "/**
+Self& itk::simple::DisplacementFieldJacobianDeterminantFilter::UseImageSpacingOn()
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DisplacementFieldJacobianDeterminantFilter::~DisplacementFieldJacobianDeterminantFilter "/**
+itk::simple::DisplacementFieldJacobianDeterminantFilter::~DisplacementFieldJacobianDeterminantFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::DisplacementFieldTransform "/**
+
+A dense deformable transform over a bounded spatial domain for 2D or
+3D coordinates space.
+
+
+
+See:
+ itk::DisplacementFieldTransform
+
+
+C++ includes: sitkDisplacementFieldTransform.h
+*/"
+
+%javamethodmodifiers  itk::simple::DisplacementFieldTransform::DisplacementFieldTransform "/**
+itk::simple::DisplacementFieldTransform::DisplacementFieldTransform(unsigned int dimensions)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DisplacementFieldTransform::DisplacementFieldTransform "/**
+itk::simple::DisplacementFieldTransform::DisplacementFieldTransform(Image &)
+
+Consume an image to construct a displacement field transform.
+
+
+
+WARNING:
+The input displacement image is transferred to the constructed
+transform object. The input image is modified to be a default
+constructed Image object.
+Image must be of sitkVectorFloat64 pixel type with the number of components
+equal to the image dimension.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DisplacementFieldTransform::DisplacementFieldTransform "/**
+itk::simple::DisplacementFieldTransform::DisplacementFieldTransform(const DisplacementFieldTransform &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DisplacementFieldTransform::DisplacementFieldTransform "/**
+itk::simple::DisplacementFieldTransform::DisplacementFieldTransform(const Transform &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DisplacementFieldTransform::GetDisplacementField "/**
+Image itk::simple::DisplacementFieldTransform::GetDisplacementField() const
+
+Todo
+The returned image should not directly modify the internal
+displacement field.
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DisplacementFieldTransform::GetInverseDisplacementField "/**
+Image itk::simple::DisplacementFieldTransform::GetInverseDisplacementField() const
+
+Todo
+The returned image is should not directly modify the internal
+displacement field.
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DisplacementFieldTransform::GetName "/**
+std::string itk::simple::DisplacementFieldTransform::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DisplacementFieldTransform::SetDisplacementField "/**
+Self& itk::simple::DisplacementFieldTransform::SetDisplacementField(Image &)
+
+Consume an image, and set the displacement field.
+
+
+parameters
+WARNING:
+The ownership of the input displacement image is transferred to the
+constructed transform object. The input image is modified to be a
+default constructed Image object.
+Image must be of sitkVectorFloat64 pixel type with the number of components
+equal to the image dimension.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DisplacementFieldTransform::SetInterpolator "/**
+Self& itk::simple::DisplacementFieldTransform::SetInterpolator(InterpolatorEnum interp)
+
+Set the interpolator used between the field voxels.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DisplacementFieldTransform::SetInverseDisplacementField "/**
+Self& itk::simple::DisplacementFieldTransform::SetInverseDisplacementField(Image &)
+
+fixed parameter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DisplacementFieldTransform::SetSmoothingBSplineOnUpdate "/**
+Self& itk::simple::DisplacementFieldTransform::SetSmoothingBSplineOnUpdate(const std::vector< unsigned int >
+&numberOfControlPointsForUpdateField=std::vector< unsigned int >(3,
+4), const std::vector< unsigned int >
+&numberOfControlPointsForTotalField=std::vector< unsigned int >(3, 4),
+bool enforceStationaryBoundary=true, unsigned int order=3)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DisplacementFieldTransform::SetSmoothingGaussianOnUpdate "/**
+Self& itk::simple::DisplacementFieldTransform::SetSmoothingGaussianOnUpdate(double varianceForUpdateField=1.75, double varianceForTotalField=0.5)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DisplacementFieldTransform::SetSmoothingOff "/**
+Self& itk::simple::DisplacementFieldTransform::SetSmoothingOff()
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::DivideFloorImageFilter "/**
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This class is parameterized over the types of the two input images and
+the type of the output image. It is also parameterized by the
+operation to be applied. A Functor style is used.
+
+The constant must be of the same type than the pixel type of the
+corresponding image. It is wrapped in a SimpleDataObjectDecorator so it can be updated through the pipeline. The SetConstant() and
+GetConstant() methods are provided as shortcuts to set or get the
+constant value without manipulating the decorator.
+
+
+See:
+ UnaryFunctorImageFilter TernaryFunctorImageFilter
+Wiki Examples:
+
+All Examples
+
+Apply a predefined operation to corresponding pixels in two images
+
+Apply a custom operation to corresponding pixels in two images
+See:
+ itk::simple::DivideFloor for the procedural interface
+
+ itk::BinaryFunctorImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkDivideFloorImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::DivideFloorImageFilter::DivideFloorImageFilter "/**
+itk::simple::DivideFloorImageFilter::DivideFloorImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DivideFloorImageFilter::Execute "/**
+Image itk::simple::DivideFloorImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DivideFloorImageFilter::Execute "/**
+Image itk::simple::DivideFloorImageFilter::Execute(const Image &image1, double constant)
+
+Execute the filter with an image and a constant
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DivideFloorImageFilter::Execute "/**
+Image itk::simple::DivideFloorImageFilter::Execute(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DivideFloorImageFilter::GetName "/**
+std::string itk::simple::DivideFloorImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DivideFloorImageFilter::ToString "/**
+std::string itk::simple::DivideFloorImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DivideFloorImageFilter::~DivideFloorImageFilter "/**
+itk::simple::DivideFloorImageFilter::~DivideFloorImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::DivideImageFilter "/**
+
+Pixel-wise division of two images.
+
+
+This class is templated over the types of the two input images and the
+type of the output image. When the divisor is zero, the division
+result is set to the maximum number that can be represented by default
+to avoid exception. Numeric conversions (castings) are done by the C++
+defaults.
+
+Wiki Examples:
+
+All Examples
+
+Pixel-wise division of two images
+See:
+ itk::simple::Divide for the procedural interface
+
+ itk::DivideImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkDivideImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::DivideImageFilter::DivideImageFilter "/**
+itk::simple::DivideImageFilter::DivideImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DivideImageFilter::Execute "/**
+Image itk::simple::DivideImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DivideImageFilter::Execute "/**
+Image itk::simple::DivideImageFilter::Execute(const Image &image1, double constant)
+
+Execute the filter with an image and a constant
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DivideImageFilter::Execute "/**
+Image itk::simple::DivideImageFilter::Execute(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DivideImageFilter::GetName "/**
+std::string itk::simple::DivideImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DivideImageFilter::ToString "/**
+std::string itk::simple::DivideImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DivideImageFilter::~DivideImageFilter "/**
+itk::simple::DivideImageFilter::~DivideImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::DivideRealImageFilter "/**
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This class is parameterized over the types of the two input images and
+the type of the output image. It is also parameterized by the
+operation to be applied. A Functor style is used.
+
+The constant must be of the same type than the pixel type of the
+corresponding image. It is wrapped in a SimpleDataObjectDecorator so it can be updated through the pipeline. The SetConstant() and
+GetConstant() methods are provided as shortcuts to set or get the
+constant value without manipulating the decorator.
+
+
+See:
+ UnaryFunctorImageFilter TernaryFunctorImageFilter
+Wiki Examples:
+
+All Examples
+
+Apply a predefined operation to corresponding pixels in two images
+
+Apply a custom operation to corresponding pixels in two images
+See:
+ itk::simple::DivideReal for the procedural interface
+
+ itk::BinaryFunctorImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkDivideRealImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::DivideRealImageFilter::DivideRealImageFilter "/**
+itk::simple::DivideRealImageFilter::DivideRealImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DivideRealImageFilter::Execute "/**
+Image itk::simple::DivideRealImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DivideRealImageFilter::Execute "/**
+Image itk::simple::DivideRealImageFilter::Execute(const Image &image1, double constant)
+
+Execute the filter with an image and a constant
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DivideRealImageFilter::Execute "/**
+Image itk::simple::DivideRealImageFilter::Execute(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DivideRealImageFilter::GetName "/**
+std::string itk::simple::DivideRealImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DivideRealImageFilter::ToString "/**
+std::string itk::simple::DivideRealImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DivideRealImageFilter::~DivideRealImageFilter "/**
+itk::simple::DivideRealImageFilter::~DivideRealImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::DoubleThresholdImageFilter "/**
+
+Binarize an input image using double thresholding.
+
+
+Double threshold addresses the difficulty in selecting a threshold
+that will select the objects of interest without selecting extraneous
+objects. Double threshold considers two threshold ranges: a narrow
+range and a wide range (where the wide range encompasses the narrow
+range). If the wide range was used for a traditional threshold (where
+values inside the range map to the foreground and values outside the
+range map to the background), many extraneous pixels may survive the
+threshold operation. If the narrow range was used for a traditional
+threshold, then too few pixels may survive the threshold.
+
+Double threshold uses the narrow threshold image as a marker image and
+the wide threshold image as a mask image in the geodesic dilation.
+Essentially, the marker image (narrow threshold) is dilated but
+constrained to lie within the mask image (wide threshold). Thus, only
+the objects of interest (those pixels that survived the narrow
+threshold) are extracted but the those objects appear in the final
+image as they would have if the wide threshold was used.
+
+
+See:
+ GrayscaleGeodesicDilateImageFilter
+
+ MorphologyImageFilter , GrayscaleDilateImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter
+
+ itk::simple::DoubleThreshold for the procedural interface
+
+ itk::DoubleThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkDoubleThresholdImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::DoubleThresholdImageFilter::DoubleThresholdImageFilter "/**
+itk::simple::DoubleThresholdImageFilter::DoubleThresholdImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DoubleThresholdImageFilter::Execute "/**
+Image itk::simple::DoubleThresholdImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DoubleThresholdImageFilter::Execute "/**
+Image itk::simple::DoubleThresholdImageFilter::Execute(const Image &image1, double threshold1, double threshold2, double
+threshold3, double threshold4, uint8_t insideValue, uint8_t
+outsideValue, bool fullyConnected)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DoubleThresholdImageFilter::FullyConnectedOff "/**
+Self& itk::simple::DoubleThresholdImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DoubleThresholdImageFilter::FullyConnectedOn "/**
+Self& itk::simple::DoubleThresholdImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DoubleThresholdImageFilter::GetFullyConnected "/**
+bool itk::simple::DoubleThresholdImageFilter::GetFullyConnected() const
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DoubleThresholdImageFilter::GetInsideValue "/**
+uint8_t itk::simple::DoubleThresholdImageFilter::GetInsideValue() const
+
+Get the \"inside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DoubleThresholdImageFilter::GetName "/**
+std::string itk::simple::DoubleThresholdImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DoubleThresholdImageFilter::GetOutsideValue "/**
+uint8_t itk::simple::DoubleThresholdImageFilter::GetOutsideValue() const
+
+Get the \"outside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DoubleThresholdImageFilter::GetThreshold1 "/**
+double itk::simple::DoubleThresholdImageFilter::GetThreshold1() const
+
+Get the threshold values.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DoubleThresholdImageFilter::GetThreshold2 "/**
+double itk::simple::DoubleThresholdImageFilter::GetThreshold2() const
+
+Get the threshold values.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DoubleThresholdImageFilter::GetThreshold3 "/**
+double itk::simple::DoubleThresholdImageFilter::GetThreshold3() const
+
+Get the threshold values.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DoubleThresholdImageFilter::GetThreshold4 "/**
+double itk::simple::DoubleThresholdImageFilter::GetThreshold4() const
+
+Get the threshold values.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DoubleThresholdImageFilter::SetFullyConnected "/**
+Self& itk::simple::DoubleThresholdImageFilter::SetFullyConnected(bool FullyConnected)
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DoubleThresholdImageFilter::SetInsideValue "/**
+Self& itk::simple::DoubleThresholdImageFilter::SetInsideValue(uint8_t InsideValue)
+
+Set the \"inside\" pixel value. The default value NumericTraits<OutputPixelType>::max()
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DoubleThresholdImageFilter::SetOutsideValue "/**
+Self& itk::simple::DoubleThresholdImageFilter::SetOutsideValue(uint8_t OutsideValue)
+
+Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::ZeroValue() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DoubleThresholdImageFilter::SetThreshold1 "/**
+Self& itk::simple::DoubleThresholdImageFilter::SetThreshold1(double Threshold1)
+
+Set the thresholds. Four thresholds should be specified. The two lower
+thresholds default to NumericTraits<InputPixelType>::NonpositiveMin() . The two upper thresholds default NumericTraits<InputPixelType>::max . Threshold1 <= Threshold2 <= Threshold3 <= Threshold4.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DoubleThresholdImageFilter::SetThreshold2 "/**
+Self& itk::simple::DoubleThresholdImageFilter::SetThreshold2(double Threshold2)
+
+Set the thresholds. Four thresholds should be specified. The two lower
+thresholds default to NumericTraits<InputPixelType>::NonpositiveMin() . The two upper thresholds default NumericTraits<InputPixelType>::max . Threshold1 <= Threshold2 <= Threshold3 <= Threshold4.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DoubleThresholdImageFilter::SetThreshold3 "/**
+Self& itk::simple::DoubleThresholdImageFilter::SetThreshold3(double Threshold3)
+
+Set the thresholds. Four thresholds should be specified. The two lower
+thresholds default to NumericTraits<InputPixelType>::NonpositiveMin() . The two upper thresholds default NumericTraits<InputPixelType>::max . Threshold1 <= Threshold2 <= Threshold3 <= Threshold4.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DoubleThresholdImageFilter::SetThreshold4 "/**
+Self& itk::simple::DoubleThresholdImageFilter::SetThreshold4(double Threshold4)
+
+Set the thresholds. Four thresholds should be specified. The two lower
+thresholds default to NumericTraits<InputPixelType>::NonpositiveMin() . The two upper thresholds default NumericTraits<InputPixelType>::max . Threshold1 <= Threshold2 <= Threshold3 <= Threshold4.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DoubleThresholdImageFilter::ToString "/**
+std::string itk::simple::DoubleThresholdImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DoubleThresholdImageFilter::~DoubleThresholdImageFilter "/**
+itk::simple::DoubleThresholdImageFilter::~DoubleThresholdImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::EdgePotentialImageFilter "/**
+
+Computes the edge potential of an image from the image gradient.
+
+
+Input to this filter should be a CovariantVector image representing the image gradient.
+
+The filter expect both the input and output images to have the same
+number of dimensions, and the output to be of a scalar image type.
+See:
+ itk::simple::EdgePotential for the procedural interface
+
+ itk::EdgePotentialImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkEdgePotentialImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::EdgePotentialImageFilter::EdgePotentialImageFilter "/**
+itk::simple::EdgePotentialImageFilter::EdgePotentialImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::EdgePotentialImageFilter::Execute "/**
+Image itk::simple::EdgePotentialImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::EdgePotentialImageFilter::GetName "/**
+std::string itk::simple::EdgePotentialImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::EdgePotentialImageFilter::ToString "/**
+std::string itk::simple::EdgePotentialImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::EdgePotentialImageFilter::~EdgePotentialImageFilter "/**
+itk::simple::EdgePotentialImageFilter::~EdgePotentialImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::EqualImageFilter "/**
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This class is parameterized over the types of the two input images and
+the type of the output image. It is also parameterized by the
+operation to be applied. A Functor style is used.
+
+The constant must be of the same type than the pixel type of the
+corresponding image. It is wrapped in a SimpleDataObjectDecorator so it can be updated through the pipeline. The SetConstant() and
+GetConstant() methods are provided as shortcuts to set or get the
+constant value without manipulating the decorator.
+
+
+See:
+ UnaryFunctorImageFilter TernaryFunctorImageFilter
+Wiki Examples:
+
+All Examples
+
+Apply a predefined operation to corresponding pixels in two images
+
+Apply a custom operation to corresponding pixels in two images
+See:
+ itk::simple::Equal for the procedural interface
+
+ itk::BinaryFunctorImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkEqualImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::EqualImageFilter::EqualImageFilter "/**
+itk::simple::EqualImageFilter::EqualImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::EqualImageFilter::Execute "/**
+Image itk::simple::EqualImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::EqualImageFilter::Execute "/**
+Image itk::simple::EqualImageFilter::Execute(const Image &image1, const Image &image2, uint8_t backgroundValue,
+uint8_t foregroundValue)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::EqualImageFilter::Execute "/**
+Image itk::simple::EqualImageFilter::Execute(const Image &image1, double constant)
+
+Execute the filter with an image and a constant
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::EqualImageFilter::Execute "/**
+Image itk::simple::EqualImageFilter::Execute(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::EqualImageFilter::Execute "/**
+Image itk::simple::EqualImageFilter::Execute(const Image &image1, double constant, uint8_t backgroundValue,
+uint8_t foregroundValue)
+
+Execute the filter on an image and a constant with the given
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::EqualImageFilter::Execute "/**
+Image itk::simple::EqualImageFilter::Execute(double constant, const Image &image2, uint8_t backgroundValue,
+uint8_t foregroundValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::EqualImageFilter::GetBackgroundValue "/**
+uint8_t itk::simple::EqualImageFilter::GetBackgroundValue() const
+
+Set/Get the value used to mark the false pixels of the operator.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::EqualImageFilter::GetForegroundValue "/**
+uint8_t itk::simple::EqualImageFilter::GetForegroundValue() const
+
+Set/Get the value used to mark the true pixels of the operator.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::EqualImageFilter::GetName "/**
+std::string itk::simple::EqualImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::EqualImageFilter::SetBackgroundValue "/**
+Self& itk::simple::EqualImageFilter::SetBackgroundValue(uint8_t BackgroundValue)
+
+Set/Get the value used to mark the false pixels of the operator.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::EqualImageFilter::SetForegroundValue "/**
+Self& itk::simple::EqualImageFilter::SetForegroundValue(uint8_t ForegroundValue)
+
+Set/Get the value used to mark the true pixels of the operator.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::EqualImageFilter::ToString "/**
+std::string itk::simple::EqualImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::EqualImageFilter::~EqualImageFilter "/**
+itk::simple::EqualImageFilter::~EqualImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ErodeObjectMorphologyImageFilter "/**
+
+Erosion of an object in an image.
+
+
+Erosion of an image using binary morphology. Pixel values matching the
+object value are considered the \"object\" and all other pixels are
+\"background\". This is useful in processing mask images containing
+only one object.
+
+If the pixel covered by the center of the kernel has the pixel value
+ObjectValue and the pixel is adjacent to a non-object valued pixel,
+then the kernel is centered on the object-value pixel and neighboring
+pixels covered by the kernel are assigned the background value. The
+structuring element is assumed to be composed of binary values (zero
+or one).
+
+
+See:
+ ObjectMorphologyImageFilter , BinaryFunctionErodeImageFilter
+
+ BinaryErodeImageFilter
+
+ itk::simple::ErodeObjectMorphology for the procedural interface
+
+ itk::ErodeObjectMorphologyImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkErodeObjectMorphologyImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ErodeObjectMorphologyImageFilter::ErodeObjectMorphologyImageFilter "/**
+itk::simple::ErodeObjectMorphologyImageFilter::ErodeObjectMorphologyImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ErodeObjectMorphologyImageFilter::Execute "/**
+Image itk::simple::ErodeObjectMorphologyImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ErodeObjectMorphologyImageFilter::Execute "/**
+Image itk::simple::ErodeObjectMorphologyImageFilter::Execute(const Image &image1, double objectValue, double backgroundValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ErodeObjectMorphologyImageFilter::GetBackgroundValue "/**
+double itk::simple::ErodeObjectMorphologyImageFilter::GetBackgroundValue() const
+
+Get the value to be assigned to eroded pixels
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ErodeObjectMorphologyImageFilter::GetKernelRadius "/**
+std::vector<uint32_t> itk::simple::ErodeObjectMorphologyImageFilter::GetKernelRadius() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ErodeObjectMorphologyImageFilter::GetKernelType "/**
+KernelEnum itk::simple::ErodeObjectMorphologyImageFilter::GetKernelType() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ErodeObjectMorphologyImageFilter::GetName "/**
+std::string itk::simple::ErodeObjectMorphologyImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ErodeObjectMorphologyImageFilter::GetObjectValue "/**
+double itk::simple::ErodeObjectMorphologyImageFilter::GetObjectValue() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ErodeObjectMorphologyImageFilter::SetBackgroundValue "/**
+Self& itk::simple::ErodeObjectMorphologyImageFilter::SetBackgroundValue(double BackgroundValue)
+
+Set the value to be assigned to eroded pixels
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ErodeObjectMorphologyImageFilter::SetKernelRadius "/**
+Self& itk::simple::ErodeObjectMorphologyImageFilter::SetKernelRadius(uint32_t r)
+
+Kernel radius as a scale for isotropic structures
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ErodeObjectMorphologyImageFilter::SetKernelRadius "/**
+Self& itk::simple::ErodeObjectMorphologyImageFilter::SetKernelRadius(const std::vector< uint32_t > &r)
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ErodeObjectMorphologyImageFilter::SetKernelType "/**
+Self& itk::simple::ErodeObjectMorphologyImageFilter::SetKernelType(KernelEnum t)
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ErodeObjectMorphologyImageFilter::SetKernelType "/**
+Self& itk::simple::ErodeObjectMorphologyImageFilter::SetKernelType(KernelType t)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ErodeObjectMorphologyImageFilter::SetObjectValue "/**
+Self& itk::simple::ErodeObjectMorphologyImageFilter::SetObjectValue(double ObjectValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ErodeObjectMorphologyImageFilter::ToString "/**
+std::string itk::simple::ErodeObjectMorphologyImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ErodeObjectMorphologyImageFilter::~ErodeObjectMorphologyImageFilter "/**
+itk::simple::ErodeObjectMorphologyImageFilter::~ErodeObjectMorphologyImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::Euler2DTransform "/**
+
+A rigid 2D transform with rotation in radians around a fixed center
+with translation.
+
+
+
+See:
+ itk::Euler2DTransform
+
+
+C++ includes: sitkEuler2DTransform.h
+*/"
+
+%javamethodmodifiers  itk::simple::Euler2DTransform::Euler2DTransform "/**
+itk::simple::Euler2DTransform::Euler2DTransform()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler2DTransform::Euler2DTransform "/**
+itk::simple::Euler2DTransform::Euler2DTransform(const std::vector< double > &fixedCenter, double angle=0.0, const
+std::vector< double > &translation=std::vector< double >(2, 0.0))
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler2DTransform::Euler2DTransform "/**
+itk::simple::Euler2DTransform::Euler2DTransform(const Euler2DTransform &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler2DTransform::Euler2DTransform "/**
+itk::simple::Euler2DTransform::Euler2DTransform(const Transform &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler2DTransform::GetAngle "/**
+double itk::simple::Euler2DTransform::GetAngle() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler2DTransform::GetCenter "/**
+std::vector<double> itk::simple::Euler2DTransform::GetCenter() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler2DTransform::GetMatrix "/**
+std::vector<double> itk::simple::Euler2DTransform::GetMatrix() const
+
+additional methods
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler2DTransform::GetName "/**
+std::string itk::simple::Euler2DTransform::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler2DTransform::GetTranslation "/**
+std::vector<double> itk::simple::Euler2DTransform::GetTranslation() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler2DTransform::SetAngle "/**
+Self& itk::simple::Euler2DTransform::SetAngle(double angle)
+
+parameter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler2DTransform::SetCenter "/**
+Self& itk::simple::Euler2DTransform::SetCenter(const std::vector< double > &params)
+
+fixed parameter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler2DTransform::SetMatrix "/**
+Self& itk::simple::Euler2DTransform::SetMatrix(const std::vector< double > &matrix, double tolerance=1e-10)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler2DTransform::SetTranslation "/**
+Self& itk::simple::Euler2DTransform::SetTranslation(const std::vector< double > &translation)
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::Euler3DTransform "/**
+
+A rigid 3D transform with rotation in radians around a fixed center
+with translation.
+
+
+
+See:
+ itk::Euler3DTransform
+
+
+C++ includes: sitkEuler3DTransform.h
+*/"
+
+%javamethodmodifiers  itk::simple::Euler3DTransform::ComputeZYXOff "/**
+Self& itk::simple::Euler3DTransform::ComputeZYXOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler3DTransform::ComputeZYXOn "/**
+Self& itk::simple::Euler3DTransform::ComputeZYXOn()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler3DTransform::Euler3DTransform "/**
+itk::simple::Euler3DTransform::Euler3DTransform()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler3DTransform::Euler3DTransform "/**
+itk::simple::Euler3DTransform::Euler3DTransform(const std::vector< double > &fixedCenter, double angleX=0.0, double
+angleY=0.0, double angleZ=0.0, const std::vector< double >
+&translation=std::vector< double >(3, 0.0))
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler3DTransform::Euler3DTransform "/**
+itk::simple::Euler3DTransform::Euler3DTransform(const Euler3DTransform &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler3DTransform::Euler3DTransform "/**
+itk::simple::Euler3DTransform::Euler3DTransform(const Transform &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler3DTransform::GetAngleX "/**
+double itk::simple::Euler3DTransform::GetAngleX() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler3DTransform::GetAngleY "/**
+double itk::simple::Euler3DTransform::GetAngleY() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler3DTransform::GetAngleZ "/**
+double itk::simple::Euler3DTransform::GetAngleZ() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler3DTransform::GetCenter "/**
+std::vector<double> itk::simple::Euler3DTransform::GetCenter() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler3DTransform::GetComputeZYX "/**
+bool itk::simple::Euler3DTransform::GetComputeZYX() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler3DTransform::GetMatrix "/**
+std::vector<double> itk::simple::Euler3DTransform::GetMatrix() const
+
+additional methods
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler3DTransform::GetName "/**
+std::string itk::simple::Euler3DTransform::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler3DTransform::GetTranslation "/**
+std::vector<double> itk::simple::Euler3DTransform::GetTranslation() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler3DTransform::SetCenter "/**
+Self& itk::simple::Euler3DTransform::SetCenter(const std::vector< double > &params)
+
+fixed parameter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler3DTransform::SetComputeZYX "/**
+Self& itk::simple::Euler3DTransform::SetComputeZYX(bool _arg)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler3DTransform::SetMatrix "/**
+Self& itk::simple::Euler3DTransform::SetMatrix(const std::vector< double > &matrix, double tolerance=1e-10)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler3DTransform::SetRotation "/**
+Self& itk::simple::Euler3DTransform::SetRotation(double angleX, double angleY, double angleZ)
+
+parameter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Euler3DTransform::SetTranslation "/**
+Self& itk::simple::Euler3DTransform::SetTranslation(const std::vector< double > &translation)
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ExpImageFilter "/**
+
+Computes the exponential function of each pixel.
+
+
+The computation is performed using std::exp(x).
+See:
+ itk::simple::Exp for the procedural interface
+
+ itk::ExpImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkExpImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ExpImageFilter::Execute "/**
+Image itk::simple::ExpImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExpImageFilter::ExpImageFilter "/**
+itk::simple::ExpImageFilter::ExpImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExpImageFilter::GetName "/**
+std::string itk::simple::ExpImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExpImageFilter::ToString "/**
+std::string itk::simple::ExpImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExpImageFilter::~ExpImageFilter "/**
+itk::simple::ExpImageFilter::~ExpImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ExpNegativeImageFilter "/**
+
+Computes the function exp(-K.x) for each input pixel.
+
+
+Every output pixel is equal to std::exp(-K.x ). where x is the
+intensity of the homologous input pixel, and K is a user-provided
+constant.
+See:
+ itk::simple::ExpNegative for the procedural interface
+
+ itk::ExpNegativeImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkExpNegativeImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ExpNegativeImageFilter::Execute "/**
+Image itk::simple::ExpNegativeImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExpNegativeImageFilter::ExpNegativeImageFilter "/**
+itk::simple::ExpNegativeImageFilter::ExpNegativeImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExpNegativeImageFilter::GetName "/**
+std::string itk::simple::ExpNegativeImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExpNegativeImageFilter::ToString "/**
+std::string itk::simple::ExpNegativeImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExpNegativeImageFilter::~ExpNegativeImageFilter "/**
+itk::simple::ExpNegativeImageFilter::~ExpNegativeImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ExpandImageFilter "/**
+
+Expand the size of an image by an integer factor in each dimension.
+
+
+ExpandImageFilter increases the size of an image by an integer factor in each dimension
+using a interpolation method. The output image size in each dimension
+is given by:
+
+OutputSize[j] = InputSize[j] * ExpandFactors[j]
+
+The output values are obtained by interpolating the input image. The
+default interpolation type used is the LinearInterpolateImageFunction . The user can specify a particular interpolation function via SetInterpolator() . Note that the input interpolator must derive from base class InterpolateImageFunction .
+
+This filter will produce an output with different pixel spacing that
+its input image such that:
+
+OutputSpacing[j] = InputSpacing[j] / ExpandFactors[j]
+
+The filter is templated over the input image type and the output image
+type.
+
+This filter is implemented as a multithreaded filter and supports
+streaming.
+
+
+WARNING:
+This filter only works for image with scalar pixel types. For vector
+images use VectorExpandImageFilter .
+ This filter assumes that the input and output image has the same
+number of dimensions.
+
+
+See:
+ InterpolateImageFunction
+
+ LinearInterpolationImageFunction
+
+ VectorExpandImageFilter
+
+ itk::simple::Expand for the procedural interface
+
+ itk::ExpandImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkExpandImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ExpandImageFilter::Execute "/**
+Image itk::simple::ExpandImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExpandImageFilter::Execute "/**
+Image itk::simple::ExpandImageFilter::Execute(const Image &image1, const std::vector< unsigned int >
+&expandFactors, InterpolatorEnum interpolator)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExpandImageFilter::ExpandImageFilter "/**
+itk::simple::ExpandImageFilter::ExpandImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExpandImageFilter::GetExpandFactors "/**
+std::vector<unsigned int> itk::simple::ExpandImageFilter::GetExpandFactors() const
+
+Get the expand factors.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExpandImageFilter::GetInterpolator "/**
+InterpolatorEnum itk::simple::ExpandImageFilter::GetInterpolator() const
+
+Get/Set the interpolator function.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExpandImageFilter::GetName "/**
+std::string itk::simple::ExpandImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExpandImageFilter::SetExpandFactor "/**
+Self& itk::simple::ExpandImageFilter::SetExpandFactor(unsigned int e)
+
+Custom public declarations
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExpandImageFilter::SetExpandFactors "/**
+Self& itk::simple::ExpandImageFilter::SetExpandFactors(const std::vector< unsigned int > &ExpandFactors)
+
+Set the expand factors. Values are clamped to a minimum value of 1.
+Default is 1 for all dimensions.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExpandImageFilter::SetExpandFactors "/**
+Self& itk::simple::ExpandImageFilter::SetExpandFactors(unsigned int value)
+
+Set the values of the ExpandFactors vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExpandImageFilter::SetInterpolator "/**
+Self& itk::simple::ExpandImageFilter::SetInterpolator(InterpolatorEnum Interpolator)
+
+Get/Set the interpolator function.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExpandImageFilter::ToString "/**
+std::string itk::simple::ExpandImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExpandImageFilter::~ExpandImageFilter "/**
+itk::simple::ExpandImageFilter::~ExpandImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ExtractImageFilter "/**
+
+Decrease the image size by cropping the image to the selected region
+bounds.
+
+
+ExtractImageFilter changes the image boundary of an image by removing pixels outside the
+target region. The target region must be specified.
+
+ExtractImageFilter also collapses dimensions so that the input image may have more
+dimensions than the output image (i.e. 4-D input image to a 3-D output
+image). To specify what dimensions to collapse, the ExtractionRegion
+must be specified. For any dimension dim where
+ExtractionRegion.Size[dim] = 0, that dimension is collapsed. The index
+to collapse on is specified by ExtractionRegion.Index[dim]. For
+example, we have a image 4D = a 4x4x4x4 image, and we want to get a 3D
+image, 3D = a 4x4x4 image, specified as [x,y,z,2] from 4D (i.e. the
+3rd \"time\" slice from 4D). The ExtractionRegion.Size = [4,4,4,0] and
+ExtractionRegion.Index = [0,0,0,2].
+
+The number of dimension in ExtractionRegion.Size and Index must = InputImageDimension. The number of non-zero dimensions in
+ExtractionRegion.Size must = OutputImageDimension.
+
+The output image produced by this filter will have the same origin as
+the input image, while the ImageRegion of the output image will start at the starting index value provided
+in the ExtractRegion parameter. If you are looking for a filter that
+will re-compute the origin of the output image, and provide an output
+image region whose index is set to zeros, then you may want to use the RegionOfInterestImageFilter . The output spacing is is simply the collapsed version of the input
+spacing.
+
+Determining the direction of the collapsed output image from an larger
+dimensional input space is an ill defined problem in general. It is
+required that the application developer select the desired
+transformation strategy for collapsing direction cosines. It is
+REQUIRED that a strategy be explicitly requested (i.e. there is no
+working default). Direction Collapsing Strategies: 1)
+DirectionCollapseToUnknown(); This is the default and the filter can
+not run when this is set. The reason is to explicitly force the
+application developer to define their desired behavior. 1)
+DirectionCollapseToIdentity(); Output has identity direction no matter
+what 2) DirectionCollapseToSubmatrix(); Output direction is the sub-
+matrix if it is positive definite, else throw an exception.
+
+This filter is implemented as a multithreaded filter. It provides a
+ThreadedGenerateData() method for its implementation.
+
+
+This filter is derived from InPlaceImageFilter . When the input to this filter matched the output requirested
+region, like with streaming filter for input, then setting this filter
+to run in-place will result in no copying of the bulk pixel data.
+
+See:
+ CropImageFilter
+Wiki Examples:
+
+All Examples
+
+Crop an image by specifying the region to keep
+See:
+ itk::simple::Extract for the procedural interface
+
+ itk::ExtractImageFilter<InputImageType, typename InputImageType::template Rebind for the
+Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkExtractImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ExtractImageFilter::Execute "/**
+Image itk::simple::ExtractImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExtractImageFilter::Execute "/**
+Image itk::simple::ExtractImageFilter::Execute(const Image &image1, const std::vector< unsigned int > &size, const
+std::vector< int > &index,
+ExtractImageFilter::DirectionCollapseToStrategyType
+directionCollapseToStrategy)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExtractImageFilter::ExtractImageFilter "/**
+itk::simple::ExtractImageFilter::ExtractImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExtractImageFilter::GetDirectionCollapseToStrategy "/**
+DirectionCollapseToStrategyType itk::simple::ExtractImageFilter::GetDirectionCollapseToStrategy() const
+
+NOTE: The SetDirectionCollapseToUknown is explicitly not defined. It
+is a state that a filter can be in only when it is first instantiate
+prior to being initialized. Get the currently set strategy for
+collapsing directions of physical space.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExtractImageFilter::GetIndex "/**
+std::vector<int> itk::simple::ExtractImageFilter::GetIndex() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExtractImageFilter::GetName "/**
+std::string itk::simple::ExtractImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExtractImageFilter::GetSize "/**
+std::vector<unsigned int> itk::simple::ExtractImageFilter::GetSize() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExtractImageFilter::SetDirectionCollapseToStrategy "/**
+Self& itk::simple::ExtractImageFilter::SetDirectionCollapseToStrategy(DirectionCollapseToStrategyType DirectionCollapseToStrategy)
+
+     Set the strategy to be used to collapse physical space
+dimensions.
+
+itk::itkExtractImageFilter::DIRECTIONCOLLAPSETOIDENTITY Set the
+strategy so that all collapsed images have an identity direction. Use
+this strategy when you know that retention of the physical space
+orientation of the collapsed image is not important.
+
+itk::itkExtractImageFilter::DIRECTIONCOLLAPSETOGUESS Set the strategy
+so that all collapsed images where output direction is the sub-matrix
+if it is positive definite, else return identity. This is backwards
+compatible with ITKv3, but is highly discouraged because the results
+are difficult to anticipate under differing data scenerios.
+
+itk::itkExtractImageFilter::DIRECTIONCOLLAPSETOSUBMATRIX Set the
+strategy so that all collapsed images where output direction is the
+sub-matrix if it is positive definite, else throw an exception. Use
+this strategy when it is known that properly identified physical space
+sub-volumes can be reliably extracted from a higher dimensional space.
+For example when the application programmer knows that a 4D image is
+3D+time, and that the 3D sub-space is properly defined.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExtractImageFilter::SetIndex "/**
+Self& itk::simple::ExtractImageFilter::SetIndex(const std::vector< int > &Index)
+
+odo the internal setting of the method needs work!!!
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExtractImageFilter::SetSize "/**
+Self& itk::simple::ExtractImageFilter::SetSize(const std::vector< unsigned int > &Size)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExtractImageFilter::ToString "/**
+std::string itk::simple::ExtractImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExtractImageFilter::~ExtractImageFilter "/**
+itk::simple::ExtractImageFilter::~ExtractImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::FFTConvolutionImageFilter "/**
+
+Convolve a given image with an arbitrary image kernel using
+multiplication in the Fourier domain.
+
+
+This filter produces output equivalent to the output of the ConvolutionImageFilter . However, it takes advantage of the convolution theorem to
+accelerate the convolution computation when the kernel is large.
+
+
+WARNING:
+This filter ignores the spacing, origin, and orientation of the kernel
+image and treats them as identical to those in the input image.
+ This code was adapted from the Insight Journal contribution:
+
+\"FFT Based Convolution\" by Gaetan Lehmann https://hdl.handle.net/10380/3154
+
+
+See:
+ ConvolutionImageFilter
+
+ itk::simple::FFTConvolution for the procedural interface
+
+ itk::FFTConvolutionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkFFTConvolutionImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::FFTConvolutionImageFilter::Execute "/**
+Image itk::simple::FFTConvolutionImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTConvolutionImageFilter::Execute "/**
+Image itk::simple::FFTConvolutionImageFilter::Execute(const Image &image1, const Image &image2, bool normalize,
+FFTConvolutionImageFilter::BoundaryConditionType boundaryCondition,
+FFTConvolutionImageFilter::OutputRegionModeType outputRegionMode)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTConvolutionImageFilter::FFTConvolutionImageFilter "/**
+itk::simple::FFTConvolutionImageFilter::FFTConvolutionImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTConvolutionImageFilter::GetBoundaryCondition "/**
+BoundaryConditionType itk::simple::FFTConvolutionImageFilter::GetBoundaryCondition() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTConvolutionImageFilter::GetName "/**
+std::string itk::simple::FFTConvolutionImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTConvolutionImageFilter::GetNormalize "/**
+bool itk::simple::FFTConvolutionImageFilter::GetNormalize() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTConvolutionImageFilter::GetOutputRegionMode "/**
+OutputRegionModeType itk::simple::FFTConvolutionImageFilter::GetOutputRegionMode() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTConvolutionImageFilter::NormalizeOff "/**
+Self& itk::simple::FFTConvolutionImageFilter::NormalizeOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTConvolutionImageFilter::NormalizeOn "/**
+Self& itk::simple::FFTConvolutionImageFilter::NormalizeOn()
+
+Set the value of Normalize to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTConvolutionImageFilter::SetBoundaryCondition "/**
+Self& itk::simple::FFTConvolutionImageFilter::SetBoundaryCondition(BoundaryConditionType BoundaryCondition)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTConvolutionImageFilter::SetNormalize "/**
+Self& itk::simple::FFTConvolutionImageFilter::SetNormalize(bool Normalize)
+
+Normalize the output image by the sum of the kernel components
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTConvolutionImageFilter::SetOutputRegionMode "/**
+Self& itk::simple::FFTConvolutionImageFilter::SetOutputRegionMode(OutputRegionModeType OutputRegionMode)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTConvolutionImageFilter::ToString "/**
+std::string itk::simple::FFTConvolutionImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTConvolutionImageFilter::~FFTConvolutionImageFilter "/**
+itk::simple::FFTConvolutionImageFilter::~FFTConvolutionImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::FFTNormalizedCorrelationImageFilter "/**
+
+Calculate normalized cross correlation using FFTs.
+
+
+This filter calculates the normalized cross correlation (NCC) of two
+images using FFTs instead of spatial correlation. It is much faster
+than spatial correlation for reasonably large structuring elements.
+This filter is a subclass of the more general MaskedFFTNormalizedCorrelationImageFilter and operates by essentially setting the masks in that algorithm to
+images of ones. As described in detail in the references below, there
+is no computational overhead to utilizing the more general masked
+algorithm because the FFTs of the images of ones are still necessary
+for the computations.
+
+Inputs: Two images are required as inputs, fixedImage and movingImage.
+In the context of correlation, inputs are often defined as: \"image\"
+and \"template\". In this filter, the fixedImage plays the role of the
+image, and the movingImage plays the role of the template. However,
+this filter is capable of correlating any two images and is not
+restricted to small movingImages (templates).
+
+Optional parameters: The RequiredNumberOfOverlappingPixels enables the
+user to specify how many voxels of the two images must overlap; any
+location in the correlation map that results from fewer than this
+number of voxels will be set to zero. Larger values zero-out pixels on
+a larger border around the correlation image. Thus, larger values
+remove less stable computations but also limit the capture range. If
+RequiredNumberOfOverlappingPixels is set to 0, the default, no zeroing
+will take place.
+
+Image size: fixedImage and movingImage need not be the same size.
+Furthermore, whereas some algorithms require that the \"template\" be
+smaller than the \"image\" because of errors in the regions where the
+two are not fully overlapping, this filter has no such restriction.
+
+Image spacing: Since the computations are done in the pixel domain, all
+input images must have the same spacing.
+
+Outputs; The output is an image of RealPixelType that is the NCC of
+the two images and its values range from -1.0 to 1.0. The size of this
+NCC image is, by definition, size(fixedImage) + size(movingImage) - 1.
+
+Example filter usage:
+
+
+WARNING:
+The pixel type of the output image must be of real type (float or
+double). ConceptChecking is used to enforce the output pixel type. You
+will get a compilation error if the pixel type of the output image is
+not float or double.
+ References: 1) D. Padfield. \"Masked object registration in the
+Fourier domain.\" Transactions on Image Processing. 2) D. Padfield. \"Masked FFT registration\". In Proc.
+Computer Vision and Pattern Recognition, 2010.
+
+
+: Dirk Padfield, GE Global Research, padfield at research.ge.com
+
+See:
+ itk::simple::FFTNormalizedCorrelation for the procedural interface
+
+ itk::FFTNormalizedCorrelationImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkFFTNormalizedCorrelationImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::FFTNormalizedCorrelationImageFilter::Execute "/**
+Image itk::simple::FFTNormalizedCorrelationImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTNormalizedCorrelationImageFilter::Execute "/**
+Image itk::simple::FFTNormalizedCorrelationImageFilter::Execute(const Image &image1, const Image &image2, uint64_t
+requiredNumberOfOverlappingPixels)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTNormalizedCorrelationImageFilter::FFTNormalizedCorrelationImageFilter "/**
+itk::simple::FFTNormalizedCorrelationImageFilter::FFTNormalizedCorrelationImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTNormalizedCorrelationImageFilter::GetName "/**
+std::string itk::simple::FFTNormalizedCorrelationImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTNormalizedCorrelationImageFilter::GetRequiredNumberOfOverlappingPixels "/**
+uint64_t itk::simple::FFTNormalizedCorrelationImageFilter::GetRequiredNumberOfOverlappingPixels() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTNormalizedCorrelationImageFilter::SetRequiredNumberOfOverlappingPixels "/**
+Self& itk::simple::FFTNormalizedCorrelationImageFilter::SetRequiredNumberOfOverlappingPixels(uint64_t RequiredNumberOfOverlappingPixels)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTNormalizedCorrelationImageFilter::ToString "/**
+std::string itk::simple::FFTNormalizedCorrelationImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTNormalizedCorrelationImageFilter::~FFTNormalizedCorrelationImageFilter "/**
+itk::simple::FFTNormalizedCorrelationImageFilter::~FFTNormalizedCorrelationImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::FFTPadImageFilter "/**
+
+Pad an image to make it suitable for an FFT transformation.
+
+
+FFT filters usually requires a specific image size. The size is
+decomposed in several prime factors, and the filter only supports
+prime factors up to a maximum value. This filter automatically finds
+the greatest prime factor required by the available implementation and
+pads the input appropriately.
+
+This code was adapted from the Insight Journal contribution:
+
+\"FFT Based Convolution\" by Gaetan Lehmann https://hdl.handle.net/10380/3154
+
+
+Gaetan Lehmann
+
+See:
+ FFTShiftImageFilter
+
+ itk::simple::FFTPad for the procedural interface
+
+ itk::FFTPadImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkFFTPadImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::FFTPadImageFilter::Execute "/**
+Image itk::simple::FFTPadImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTPadImageFilter::Execute "/**
+Image itk::simple::FFTPadImageFilter::Execute(const Image &image1, FFTPadImageFilter::BoundaryConditionType
+boundaryCondition, int sizeGreatestPrimeFactor)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTPadImageFilter::FFTPadImageFilter "/**
+itk::simple::FFTPadImageFilter::FFTPadImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTPadImageFilter::GetBoundaryCondition "/**
+BoundaryConditionType itk::simple::FFTPadImageFilter::GetBoundaryCondition() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTPadImageFilter::GetName "/**
+std::string itk::simple::FFTPadImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTPadImageFilter::GetSizeGreatestPrimeFactor "/**
+int itk::simple::FFTPadImageFilter::GetSizeGreatestPrimeFactor() const
+
+Set/Get the greatest prime factor allowed on the size of the padded
+image. The filter increase the size of the image to reach a size with
+the greatest prime factor smaller or equal to the specified value. The
+default value is 13, which is the greatest prime number for which the
+FFT are precomputed in FFTW, and thus gives very good performance. A
+greatest prime factor of 2 produce a size which is a power of 2, and
+thus is suitable for vnl base fft filters. A greatest prime factor of
+1 or less - typically 0 - disable the extra padding.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTPadImageFilter::SetBoundaryCondition "/**
+Self& itk::simple::FFTPadImageFilter::SetBoundaryCondition(BoundaryConditionType BoundaryCondition)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTPadImageFilter::SetSizeGreatestPrimeFactor "/**
+Self& itk::simple::FFTPadImageFilter::SetSizeGreatestPrimeFactor(int SizeGreatestPrimeFactor)
+
+Set/Get the greatest prime factor allowed on the size of the padded
+image. The filter increase the size of the image to reach a size with
+the greatest prime factor smaller or equal to the specified value. The
+default value is 13, which is the greatest prime number for which the
+FFT are precomputed in FFTW, and thus gives very good performance. A
+greatest prime factor of 2 produce a size which is a power of 2, and
+thus is suitable for vnl base fft filters. A greatest prime factor of
+1 or less - typically 0 - disable the extra padding.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTPadImageFilter::ToString "/**
+std::string itk::simple::FFTPadImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTPadImageFilter::~FFTPadImageFilter "/**
+itk::simple::FFTPadImageFilter::~FFTPadImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::FFTShiftImageFilter "/**
+
+Shift the zero-frequency components of a Fourier transform to the
+center of the image.
+
+
+The Fourier transform produces an image where the zero frequency
+components are in the corner of the image, making it difficult to
+understand. This filter shifts the component to the center of the
+image.
+
+
+For images with an odd-sized dimension, applying this filter twice
+will not produce the same image as the original one without using
+SetInverse(true) on one (and only one) of the two filters.
+https://hdl.handle.net/1926/321
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ ForwardFFTImageFilter , InverseFFTImageFilter
+
+ itk::simple::FFTShift for the procedural interface
+
+ itk::FFTShiftImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkFFTShiftImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::FFTShiftImageFilter::Execute "/**
+Image itk::simple::FFTShiftImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTShiftImageFilter::Execute "/**
+Image itk::simple::FFTShiftImageFilter::Execute(const Image &image1, bool inverse)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTShiftImageFilter::FFTShiftImageFilter "/**
+itk::simple::FFTShiftImageFilter::FFTShiftImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTShiftImageFilter::GetInverse "/**
+bool itk::simple::FFTShiftImageFilter::GetInverse() const
+
+Set/Get whether the filter must invert the transform or not. This
+option has no effect if none of the size of the input image is even,
+but is required to restore the original image if at least one of the
+dimensions has an odd size.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTShiftImageFilter::GetName "/**
+std::string itk::simple::FFTShiftImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTShiftImageFilter::InverseOff "/**
+Self& itk::simple::FFTShiftImageFilter::InverseOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTShiftImageFilter::InverseOn "/**
+Self& itk::simple::FFTShiftImageFilter::InverseOn()
+
+Set the value of Inverse to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTShiftImageFilter::SetInverse "/**
+Self& itk::simple::FFTShiftImageFilter::SetInverse(bool Inverse)
+
+Set/Get whether the filter must invert the transform or not. This
+option has no effect if none of the size of the input image is even,
+but is required to restore the original image if at least one of the
+dimensions has an odd size.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTShiftImageFilter::ToString "/**
+std::string itk::simple::FFTShiftImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTShiftImageFilter::~FFTShiftImageFilter "/**
+itk::simple::FFTShiftImageFilter::~FFTShiftImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::FastApproximateRankImageFilter "/**
+
+A separable rank filter.
+
+
+Medians aren't separable, but if you want a large robust smoother to
+be relatively quick then it is worthwhile pretending that they are.
+
+This code was contributed in the Insight Journal paper: \"Efficient
+implementation of kernel filtering\" by Beare R., Lehmann G https://hdl.handle.net/1926/555 http://www.insight-journal.org/browse/publication/160
+
+
+Richard Beare
+
+See:
+ itk::simple::FastApproximateRank for the procedural interface
+
+ itk::FastApproximateRankImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkFastApproximateRankImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::FastApproximateRankImageFilter::Execute "/**
+Image itk::simple::FastApproximateRankImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastApproximateRankImageFilter::Execute "/**
+Image itk::simple::FastApproximateRankImageFilter::Execute(const Image &image1, double rank, const std::vector< unsigned int >
+&radius)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastApproximateRankImageFilter::FastApproximateRankImageFilter "/**
+itk::simple::FastApproximateRankImageFilter::FastApproximateRankImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastApproximateRankImageFilter::GetName "/**
+std::string itk::simple::FastApproximateRankImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastApproximateRankImageFilter::GetRadius "/**
+std::vector<unsigned int> itk::simple::FastApproximateRankImageFilter::GetRadius() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastApproximateRankImageFilter::GetRank "/**
+double itk::simple::FastApproximateRankImageFilter::GetRank() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastApproximateRankImageFilter::SetRadius "/**
+Self& itk::simple::FastApproximateRankImageFilter::SetRadius(const std::vector< unsigned int > &Radius)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastApproximateRankImageFilter::SetRadius "/**
+Self& itk::simple::FastApproximateRankImageFilter::SetRadius(unsigned int value)
+
+Set the values of the Radius vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastApproximateRankImageFilter::SetRank "/**
+Self& itk::simple::FastApproximateRankImageFilter::SetRank(double Rank)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastApproximateRankImageFilter::ToString "/**
+std::string itk::simple::FastApproximateRankImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastApproximateRankImageFilter::~FastApproximateRankImageFilter "/**
+itk::simple::FastApproximateRankImageFilter::~FastApproximateRankImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::FastMarchingBaseImageFilter "/**
+
+Fast Marching Method on Image .
+
+
+The speed function can be specified as a speed image or a speed
+constant. The speed image is set using the method SetInput(). If the
+speed image is ITK_NULLPTR, a constant speed function is used and is
+specified using method the SetSpeedConstant() .
+
+If the speed function is constant and of value one, fast marching
+results is an approximate distance function from the initial alive
+points.
+
+There are two ways to specify the output image information (
+LargestPossibleRegion, Spacing, Origin):
+
+
+it is copied directly from the input speed image
+
+it is specified by the user. Default values are used if the user does
+not specify all the information.
+ The output information is computed as follows.
+
+If the speed image is ITK_NULLPTR or if the OverrideOutputInformation
+is set to true, the output information is set from user specified
+parameters. These parameters can be specified using methods
+
+
+FastMarchingImageFilterBase::SetOutputRegion() ,
+
+FastMarchingImageFilterBase::SetOutputSpacing() ,
+
+FastMarchingImageFilterBase::SetOutputDirection() ,
+
+FastMarchingImageFilterBase::SetOutputOrigin() .
+ Else the output information is copied from the input speed image.
+
+Implementation of this class is based on Chapter 8 of \"Level Set
+Methods and Fast Marching Methods\", J.A. Sethian, Cambridge Press,
+Second edition, 1999.
+
+For an alternative implementation, see itk::FastMarchingImageFilter .
+
+TTraits
+
+traits
+
+
+See:
+ FastMarchingImageFilter
+
+ ImageFastMarchingTraits
+
+ ImageFastMarchingTraits2
+
+ itk::simple::FastMarchingBase for the procedural interface
+
+ itk::FastMarchingImageFilterBase for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkFastMarchingBaseImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::FastMarchingBaseImageFilter::AddTrialPoint "/**
+Self& itk::simple::FastMarchingBaseImageFilter::AddTrialPoint(std::vector< unsigned int > t)
+
+Add trial point
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingBaseImageFilter::ClearTrialPoints "/**
+Self& itk::simple::FastMarchingBaseImageFilter::ClearTrialPoints()
+
+Clear trial points
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingBaseImageFilter::Execute "/**
+Image itk::simple::FastMarchingBaseImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingBaseImageFilter::Execute "/**
+Image itk::simple::FastMarchingBaseImageFilter::Execute(const Image &, std::vector< std::vector< unsigned int > >
+trialPoints, double normalizationFactor, double stoppingValue,
+FastMarchingBaseImageFilter::TopologyCheckType topologyCheck)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingBaseImageFilter::FastMarchingBaseImageFilter "/**
+itk::simple::FastMarchingBaseImageFilter::FastMarchingBaseImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingBaseImageFilter::GetName "/**
+std::string itk::simple::FastMarchingBaseImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingBaseImageFilter::GetNormalizationFactor "/**
+double itk::simple::FastMarchingBaseImageFilter::GetNormalizationFactor() const
+
+Set/Get the Normalization Factor for the Speed Image . The values in the Speed Image is divided by this factor. This allows the use of images with integer
+pixel types to represent the speed.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingBaseImageFilter::GetStoppingValue "/**
+double itk::simple::FastMarchingBaseImageFilter::GetStoppingValue() const
+
+Get the Fast Marching algorithm Stopping Value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingBaseImageFilter::GetTopologyCheck "/**
+TopologyCheckType itk::simple::FastMarchingBaseImageFilter::GetTopologyCheck() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingBaseImageFilter::GetTrialPoints "/**
+std::vector< std::vector<unsigned int> > itk::simple::FastMarchingBaseImageFilter::GetTrialPoints() const
+
+Get trial points
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingBaseImageFilter::SetNormalizationFactor "/**
+Self& itk::simple::FastMarchingBaseImageFilter::SetNormalizationFactor(double NormalizationFactor)
+
+Set/Get the Normalization Factor for the Speed Image . The values in the Speed Image is divided by this factor. This allows the use of images with integer
+pixel types to represent the speed.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingBaseImageFilter::SetStoppingValue "/**
+Self& itk::simple::FastMarchingBaseImageFilter::SetStoppingValue(double StoppingValue)
+
+Set the Fast Marching algorithm Stopping Value. The Fast Marching
+algorithm is terminated when the value of the smallest trial point is
+greater than the stopping value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingBaseImageFilter::SetTopologyCheck "/**
+Self& itk::simple::FastMarchingBaseImageFilter::SetTopologyCheck(TopologyCheckType TopologyCheck)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingBaseImageFilter::SetTrialPoints "/**
+Self& itk::simple::FastMarchingBaseImageFilter::SetTrialPoints(std::vector< std::vector< unsigned int > > t)
+
+Set trial points. The default trial value (i.e. 0.0) is used for each
+index.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingBaseImageFilter::ToString "/**
+std::string itk::simple::FastMarchingBaseImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingBaseImageFilter::~FastMarchingBaseImageFilter "/**
+itk::simple::FastMarchingBaseImageFilter::~FastMarchingBaseImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::FastMarchingImageFilter "/**
+
+Solve an Eikonal equation using Fast Marching.
+
+
+Fast marching solves an Eikonal equation where the speed is always
+non-negative and depends on the position only. Starting from an
+initial position on the front, fast marching systematically moves the
+front forward one grid point at a time.
+
+Updates are preformed using an entropy satisfy scheme where only
+\"upwind\" neighborhoods are used. This implementation of Fast
+Marching uses a std::priority_queue to locate the next proper grid
+position to update.
+
+Fast Marching sweeps through N grid points in (N log N) steps to
+obtain the arrival time value as the front propagates through the
+grid.
+
+Implementation of this class is based on Chapter 8 of \"Level Set
+Methods and Fast Marching Methods\", J.A. Sethian, Cambridge Press,
+Second edition, 1999.
+
+This class is templated over the level set image type and the speed
+image type. The initial front is specified by two containers: one
+containing the known points and one containing the trial points. Alive
+points are those that are already part of the object, and trial points
+are considered for inclusion. In order for the filter to evolve, at
+least some trial points must be specified. These can for instance be
+specified as the layer of pixels around the alive points.
+
+The speed function can be specified as a speed image or a speed
+constant. The speed image is set using the method SetInput() . If the
+speed image is ITK_NULLPTR, a constant speed function is used and is
+specified using method the SetSpeedConstant() .
+
+If the speed function is constant and of value one, fast marching
+results in an approximate distance function from the initial alive
+points. FastMarchingImageFilter is used in the ReinitializeLevelSetImageFilter object to create a signed distance function from the zero level set.
+
+The algorithm can be terminated early by setting an appropriate
+stopping value. The algorithm terminates when the current arrival time
+being processed is greater than the stopping value.
+
+There are two ways to specify the output image information (
+LargestPossibleRegion, Spacing, Origin): (a) it is copied directly
+from the input speed image or (b) it is specified by the user. Default
+values are used if the user does not specify all the information.
+
+The output information is computed as follows. If the speed image is
+ITK_NULLPTR or if the OverrideOutputInformation is set to true, the
+output information is set from user specified parameters. These
+parameters can be specified using methods SetOutputRegion() ,
+SetOutputSpacing() , SetOutputDirection() , and SetOutputOrigin() .
+Else if the speed image is not ITK_NULLPTR, the output information is
+copied from the input speed image.
+
+For an alternative implementation, see itk::FastMarchingImageFilter .
+
+Possible Improvements: In the current implementation,
+std::priority_queue only allows taking nodes out from the front and
+putting nodes in from the back. To update a value already on the heap,
+a new node is added to the heap. The defunct old node is left on the
+heap. When it is removed from the top, it will be recognized as
+invalid and not used. Future implementations can implement the heap in
+a different way allowing the values to be updated. This will generally
+require some sift-up and sift-down functions and an image of back-
+pointers going from the image to heap in order to locate the node
+which is to be updated.
+
+
+See:
+ FastMarchingImageFilterBase
+
+ LevelSetTypeDefault
+
+ itk::simple::FastMarching for the procedural interface
+
+ itk::FastMarchingImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkFastMarchingImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::FastMarchingImageFilter::AddTrialPoint "/**
+Self& itk::simple::FastMarchingImageFilter::AddTrialPoint(const std::vector< unsigned int > &point)
+
+Add TrialPoints point.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingImageFilter::ClearTrialPoints "/**
+Self& itk::simple::FastMarchingImageFilter::ClearTrialPoints()
+
+Remove all TrialPoints points.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingImageFilter::Execute "/**
+Image itk::simple::FastMarchingImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingImageFilter::Execute "/**
+Image itk::simple::FastMarchingImageFilter::Execute(const Image &image1, const std::vector< std::vector< unsigned int > >
+&trialPoints, double normalizationFactor, double stoppingValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingImageFilter::FastMarchingImageFilter "/**
+itk::simple::FastMarchingImageFilter::FastMarchingImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingImageFilter::GetName "/**
+std::string itk::simple::FastMarchingImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingImageFilter::GetNormalizationFactor "/**
+double itk::simple::FastMarchingImageFilter::GetNormalizationFactor() const
+
+Set/Get the Normalization Factor for the Speed Image . The values in the Speed Image is divided by this factor. This allows the use of images with integer
+pixel types to represent the speed.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingImageFilter::GetStoppingValue "/**
+double itk::simple::FastMarchingImageFilter::GetStoppingValue() const
+
+Get the Fast Marching algorithm Stopping Value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingImageFilter::GetTrialPoints "/**
+std::vector< std::vector<unsigned int> > itk::simple::FastMarchingImageFilter::GetTrialPoints() const
+
+Get the container of Trial Points representing the initial front.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingImageFilter::SetNormalizationFactor "/**
+Self& itk::simple::FastMarchingImageFilter::SetNormalizationFactor(double NormalizationFactor)
+
+Set/Get the Normalization Factor for the Speed Image . The values in the Speed Image is divided by this factor. This allows the use of images with integer
+pixel types to represent the speed.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingImageFilter::SetStoppingValue "/**
+Self& itk::simple::FastMarchingImageFilter::SetStoppingValue(double StoppingValue)
+
+Set the Fast Marching algorithm Stopping Value. The Fast Marching
+algorithm is terminated when the value of the smallest trial point is
+greater than the stopping value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingImageFilter::SetTrialPoints "/**
+Self& itk::simple::FastMarchingImageFilter::SetTrialPoints(const std::vector< std::vector< unsigned int > > &TrialPoints)
+
+Set the container of Trial Points representing the initial front.
+Trial points are represented as a VectorContainer of LevelSetNodes.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingImageFilter::ToString "/**
+std::string itk::simple::FastMarchingImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingImageFilter::~FastMarchingImageFilter "/**
+itk::simple::FastMarchingImageFilter::~FastMarchingImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::FastMarchingUpwindGradientImageFilter "/**
+
+Generates the upwind gradient field of fast marching arrival times.
+
+
+This filter adds some extra functionality to its base class. While the
+solution T(x) of the Eikonal equation is being generated by the base
+class with the fast marching method, the filter generates the upwind
+gradient vectors of T(x), storing them in an image.
+
+Since the Eikonal equation generates the arrival times of a wave
+travelling at a given speed, the generated gradient vectors can be
+interpreted as the slowness (1/velocity) vectors of the front (the
+quantity inside the modulus operator in the Eikonal equation).
+
+Gradient vectors are computed using upwind finite differences, that
+is, information only propagates from points where the wavefront has
+already passed. This is consistent with how the fast marching method
+works.
+
+One more extra feature is the possibility to define a set of Target
+points where the propagation stops. This can be used to avoid
+computing the Eikonal solution for the whole domain. The front can be
+stopped either when one Target point is reached or all Target points
+are reached. The propagation can stop after a time TargetOffset has
+passed since the stop condition is met. This way the solution is
+computed a bit downstream the Target points, so that the level sets of
+T(x) corresponding to the Target are smooth.
+
+For an alternative implementation, see itk::FastMarchingUpwindGradientImageFilterBase .
+
+
+Luca Antiga Ph.D. Biomedical Technologies Laboratory, Bioengineering
+Department, Mario Negri Institute, Italy.
+
+See:
+ itk::simple::FastMarchingUpwindGradient for the procedural interface
+
+ itk::FastMarchingUpwindGradientImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkFastMarchingUpwindGradientImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::FastMarchingUpwindGradientImageFilter::AddTargetPoint "/**
+Self& itk::simple::FastMarchingUpwindGradientImageFilter::AddTargetPoint(const std::vector< unsigned int > &point)
+
+Add TargetPoints point.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingUpwindGradientImageFilter::AddTrialPoint "/**
+Self& itk::simple::FastMarchingUpwindGradientImageFilter::AddTrialPoint(const std::vector< unsigned int > &point)
+
+Add TrialPoints point.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingUpwindGradientImageFilter::ClearTargetPoints "/**
+Self& itk::simple::FastMarchingUpwindGradientImageFilter::ClearTargetPoints()
+
+Remove all TargetPoints points.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingUpwindGradientImageFilter::ClearTrialPoints "/**
+Self& itk::simple::FastMarchingUpwindGradientImageFilter::ClearTrialPoints()
+
+Remove all TrialPoints points.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingUpwindGradientImageFilter::Execute "/**
+Image itk::simple::FastMarchingUpwindGradientImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingUpwindGradientImageFilter::Execute "/**
+Image itk::simple::FastMarchingUpwindGradientImageFilter::Execute(const Image &image1, const std::vector< std::vector< unsigned int > >
+&trialPoints, unsigned int numberOfTargets, const std::vector<
+std::vector< unsigned int > > &targetPoints, double targetOffset,
+double normalizationFactor)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingUpwindGradientImageFilter::FastMarchingUpwindGradientImageFilter "/**
+itk::simple::FastMarchingUpwindGradientImageFilter::FastMarchingUpwindGradientImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingUpwindGradientImageFilter::GetGradientImage "/**
+Image itk::simple::FastMarchingUpwindGradientImageFilter::GetGradientImage() const
+
+Get the gradient image.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingUpwindGradientImageFilter::GetName "/**
+std::string itk::simple::FastMarchingUpwindGradientImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingUpwindGradientImageFilter::GetNormalizationFactor "/**
+double itk::simple::FastMarchingUpwindGradientImageFilter::GetNormalizationFactor() const
+
+Set/Get the Normalization Factor for the Speed Image . The values in the Speed Image is divided by this factor. This allows the use of images with integer
+pixel types to represent the speed.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingUpwindGradientImageFilter::GetNumberOfTargets "/**
+unsigned int itk::simple::FastMarchingUpwindGradientImageFilter::GetNumberOfTargets() const
+
+Get the number of targets.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingUpwindGradientImageFilter::GetTargetOffset "/**
+double itk::simple::FastMarchingUpwindGradientImageFilter::GetTargetOffset() const
+
+Get the TargetOffset ivar.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingUpwindGradientImageFilter::GetTargetPoints "/**
+std::vector< std::vector<unsigned int> > itk::simple::FastMarchingUpwindGradientImageFilter::GetTargetPoints() const
+
+Get the container of Target Points.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingUpwindGradientImageFilter::GetTargetValue "/**
+double itk::simple::FastMarchingUpwindGradientImageFilter::GetTargetValue() const
+
+Get the arrival time corresponding to the last reached target. If
+TargetReachedMode is set to NoTargets, TargetValue contains the last
+(aka largest) Eikonal solution value generated.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingUpwindGradientImageFilter::GetTrialPoints "/**
+std::vector< std::vector<unsigned int> > itk::simple::FastMarchingUpwindGradientImageFilter::GetTrialPoints() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingUpwindGradientImageFilter::SetNormalizationFactor "/**
+Self& itk::simple::FastMarchingUpwindGradientImageFilter::SetNormalizationFactor(double NormalizationFactor)
+
+Set/Get the Normalization Factor for the Speed Image . The values in the Speed Image is divided by this factor. This allows the use of images with integer
+pixel types to represent the speed.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingUpwindGradientImageFilter::SetNumberOfTargets "/**
+Self& itk::simple::FastMarchingUpwindGradientImageFilter::SetNumberOfTargets(unsigned int NumberOfTargets)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingUpwindGradientImageFilter::SetTargetOffset "/**
+Self& itk::simple::FastMarchingUpwindGradientImageFilter::SetTargetOffset(double TargetOffset)
+
+Set how long (in terms of arrival times) after targets are reached the
+front must stop. This is useful to ensure that the level set of target
+arrival time is smooth.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingUpwindGradientImageFilter::SetTargetPoints "/**
+Self& itk::simple::FastMarchingUpwindGradientImageFilter::SetTargetPoints(const std::vector< std::vector< unsigned int > > &TargetPoints)
+
+Set the container of Target Points. If a target point is reached, the
+propagation stops. Trial points are represented as a VectorContainer of LevelSetNodes.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingUpwindGradientImageFilter::SetTrialPoints "/**
+Self& itk::simple::FastMarchingUpwindGradientImageFilter::SetTrialPoints(const std::vector< std::vector< unsigned int > > &TrialPoints)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingUpwindGradientImageFilter::ToString "/**
+std::string itk::simple::FastMarchingUpwindGradientImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingUpwindGradientImageFilter::~FastMarchingUpwindGradientImageFilter "/**
+itk::simple::FastMarchingUpwindGradientImageFilter::~FastMarchingUpwindGradientImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::FastSymmetricForcesDemonsRegistrationFilter "/**
+
+Deformably register two images using a symmetric forces demons
+algorithm.
+
+
+This class was contributed by Tom Vercauteren, INRIA & Mauna Kea
+Technologies based on a variation of the DemonsRegistrationFilter .
+
+FastSymmetricForcesDemonsRegistrationFilter implements the demons deformable algorithm that register two images
+by computing the deformation field which will map a moving image onto
+a fixed image.
+
+A deformation field is represented as a image whose pixel type is some
+vector type with at least N elements, where N is the dimension of the
+fixed image. The vector type must support element access via operator
+[]. It is assumed that the vector elements behave like floating point
+scalars.
+
+This class is templated over the fixed image type, moving image type
+and the deformation field type.
+
+The input fixed and moving images are set via methods SetFixedImage
+and SetMovingImage respectively. An initial deformation field maybe
+set via SetInitialDisplacementField or SetInput. If no initial field
+is set, a zero field is used as the initial condition.
+
+The output deformation field can be obtained via methods GetOutput or
+GetDisplacementField.
+
+This class make use of the finite difference solver hierarchy. Update
+for each iteration is computed in DemonsRegistrationFunction .
+
+
+Tom Vercauteren, INRIA & Mauna Kea Technologies
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/510
+
+
+WARNING:
+This filter assumes that the fixed image type, moving image type and
+deformation field type all have the same number of dimensions.
+
+See:
+ DemonsRegistrationFilter
+
+ DemonsRegistrationFunction
+
+ itk::FastSymmetricForcesDemonsRegistrationFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkFastSymmetricForcesDemonsRegistrationFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::Execute "/**
+Image itk::simple::FastSymmetricForcesDemonsRegistrationFilter::Execute(const Image &fixedImage, const Image &movingImage, const Image
+&initialDisplacementField)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::Execute "/**
+Image itk::simple::FastSymmetricForcesDemonsRegistrationFilter::Execute(const Image &fixedImage, const Image &movingImage)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::Execute "/**
+Image itk::simple::FastSymmetricForcesDemonsRegistrationFilter::Execute(const Image &fixedImage, const Image &movingImage, const Image
+&initialDisplacementField, const std::vector< double >
+&standardDeviations, uint32_t numberOfIterations, double
+maximumRMSError,
+FastSymmetricForcesDemonsRegistrationFilter::UseGradientTypeType
+useGradientType, double maximumUpdateStepLength, bool
+smoothDisplacementField, bool smoothUpdateField, const std::vector<
+double > &updateFieldStandardDeviations, unsigned int
+maximumKernelWidth, double maximumError, double
+intensityDifferenceThreshold, bool useImageSpacing)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::Execute "/**
+Image itk::simple::FastSymmetricForcesDemonsRegistrationFilter::Execute(const Image &fixedImage, const Image &movingImage, const std::vector<
+double > &standardDeviations, uint32_t numberOfIterations, double
+maximumRMSError,
+FastSymmetricForcesDemonsRegistrationFilter::UseGradientTypeType
+useGradientType, double maximumUpdateStepLength, bool
+smoothDisplacementField, bool smoothUpdateField, const std::vector<
+double > &updateFieldStandardDeviations, unsigned int
+maximumKernelWidth, double maximumError, double
+intensityDifferenceThreshold, bool useImageSpacing)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::FastSymmetricForcesDemonsRegistrationFilter "/**
+itk::simple::FastSymmetricForcesDemonsRegistrationFilter::FastSymmetricForcesDemonsRegistrationFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetElapsedIterations "/**
+uint32_t itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetElapsedIterations() const
+
+Number of iterations run.
+
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetIntensityDifferenceThreshold "/**
+double itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetIntensityDifferenceThreshold() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetMaximumError "/**
+double itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetMaximumError() const
+
+Set/Get the desired maximum error of the Guassian kernel approximate.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetMaximumKernelWidth "/**
+unsigned int itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetMaximumKernelWidth() const
+
+Set/Get the desired limits of the Gaussian kernel width.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetMaximumRMSError "/**
+double itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetMaximumRMSError() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetMaximumUpdateStepLength "/**
+double itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetMaximumUpdateStepLength() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetMetric "/**
+double itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetMetric() const
+
+Get the metric value. The metric value is the mean square difference
+in intensity between the fixed image and transforming moving image
+computed over the the overlapping region between the two images. This
+value is calculated for the current iteration
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetName "/**
+std::string itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetNumberOfIterations "/**
+uint32_t itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetNumberOfIterations() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetRMSChange "/**
+double itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetRMSChange() const
+
+Set/Get the root mean squared change of the previous iteration. May
+not be used by all solvers.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetSmoothDisplacementField "/**
+bool itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetSmoothDisplacementField() const
+
+Set/Get whether the displacement field is smoothed (regularized).
+Smoothing the displacement yields a solution elastic in nature. If
+SmoothDisplacementField is on, then the displacement field is smoothed
+with a Gaussian whose standard deviations are specified with SetStandardDeviations()
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetSmoothUpdateField "/**
+bool itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetSmoothUpdateField() const
+
+Set/Get whether the update field is smoothed (regularized). Smoothing
+the update field yields a solution viscous in nature. If
+SmoothUpdateField is on, then the update field is smoothed with a
+Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetStandardDeviations "/**
+std::vector<double> itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetStandardDeviations() const
+
+Set/Get the Gaussian smoothing standard deviations for the
+displacement field. The values are set with respect to pixel
+coordinates.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetUpdateFieldStandardDeviations "/**
+std::vector<double> itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetUpdateFieldStandardDeviations() const
+
+Set the Gaussian smoothing standard deviations for the update field.
+The values are set with respect to pixel coordinates.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetUseGradientType "/**
+UseGradientTypeType itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetUseGradientType() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetUseImageSpacing "/**
+bool itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetUseImageSpacing() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetIntensityDifferenceThreshold "/**
+Self& itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetIntensityDifferenceThreshold(double IntensityDifferenceThreshold)
+
+Set/Get the threshold below which the absolute difference of intensity
+yields a match. When the intensities match between a moving and fixed
+image pixel, the update vector (for that iteration) will be the zero
+vector. Default is 0.001.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetMaximumError "/**
+Self& itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetMaximumError(double MaximumError)
+
+Set/Get the desired maximum error of the Guassian kernel approximate.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetMaximumKernelWidth "/**
+Self& itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetMaximumKernelWidth(unsigned int MaximumKernelWidth)
+
+Set/Get the desired limits of the Gaussian kernel width.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetMaximumRMSError "/**
+Self& itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetMaximumRMSError(double MaximumRMSError)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetMaximumUpdateStepLength "/**
+Self& itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetMaximumUpdateStepLength(double MaximumUpdateStepLength)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetNumberOfIterations "/**
+Self& itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetNumberOfIterations(uint32_t NumberOfIterations)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetSmoothDisplacementField "/**
+Self& itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetSmoothDisplacementField(bool SmoothDisplacementField)
+
+Set/Get whether the displacement field is smoothed (regularized).
+Smoothing the displacement yields a solution elastic in nature. If
+SmoothDisplacementField is on, then the displacement field is smoothed
+with a Gaussian whose standard deviations are specified with SetStandardDeviations()
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetSmoothUpdateField "/**
+Self& itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetSmoothUpdateField(bool SmoothUpdateField)
+
+Set/Get whether the update field is smoothed (regularized). Smoothing
+the update field yields a solution viscous in nature. If
+SmoothUpdateField is on, then the update field is smoothed with a
+Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetStandardDeviations "/**
+Self& itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetStandardDeviations(const std::vector< double > &StandardDeviations)
+
+Set/Get the Gaussian smoothing standard deviations for the
+displacement field. The values are set with respect to pixel
+coordinates.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetStandardDeviations "/**
+Self& itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetStandardDeviations(double value)
+
+Set the values of the StandardDeviations vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetUpdateFieldStandardDeviations "/**
+Self& itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetUpdateFieldStandardDeviations(const std::vector< double > &UpdateFieldStandardDeviations)
+
+Set the Gaussian smoothing standard deviations for the update field.
+The values are set with respect to pixel coordinates.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetUpdateFieldStandardDeviations "/**
+Self& itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetUpdateFieldStandardDeviations(double value)
+
+Set the values of the UpdateFieldStandardDeviations vector all to
+value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetUseGradientType "/**
+Self& itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetUseGradientType(UseGradientTypeType UseGradientType)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetUseImageSpacing "/**
+Self& itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetUseImageSpacing(bool UseImageSpacing)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SmoothDisplacementFieldOff "/**
+Self& itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SmoothDisplacementFieldOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SmoothDisplacementFieldOn "/**
+Self& itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SmoothDisplacementFieldOn()
+
+Set the value of SmoothDisplacementField to true or false
+respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SmoothUpdateFieldOff "/**
+Self& itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SmoothUpdateFieldOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SmoothUpdateFieldOn "/**
+Self& itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SmoothUpdateFieldOn()
+
+Set the value of SmoothUpdateField to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::ToString "/**
+std::string itk::simple::FastSymmetricForcesDemonsRegistrationFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::UseImageSpacingOff "/**
+Self& itk::simple::FastSymmetricForcesDemonsRegistrationFilter::UseImageSpacingOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::UseImageSpacingOn "/**
+Self& itk::simple::FastSymmetricForcesDemonsRegistrationFilter::UseImageSpacingOn()
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::~FastSymmetricForcesDemonsRegistrationFilter "/**
+itk::simple::FastSymmetricForcesDemonsRegistrationFilter::~FastSymmetricForcesDemonsRegistrationFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::FlipImageFilter "/**
+
+Flips an image across user specified axes.
+
+
+FlipImageFilter flips an image across user specified axes. The flip axes are set via
+method SetFlipAxes( array ) where the input is a
+FixedArray<bool,ImageDimension>. The image is flipped across axes for
+which array[i] is true.
+
+In terms of grid coordinates the image is flipped within the
+LargestPossibleRegion of the input image. As such, the
+LargestPossibleRegion of the output image is the same as the input.
+
+In terms of geometric coordinates, the output origin is such that the
+image is flipped with respect to the coordinate axes.
+
+Wiki Examples:
+
+All Examples
+
+Flip an image over specified axes
+See:
+ itk::simple::Flip for the procedural interface
+
+ itk::FlipImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkFlipImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::FlipImageFilter::Execute "/**
+Image itk::simple::FlipImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FlipImageFilter::Execute "/**
+Image itk::simple::FlipImageFilter::Execute(const Image &image1, const std::vector< bool > &flipAxes, bool
+flipAboutOrigin)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FlipImageFilter::FlipAboutOriginOff "/**
+Self& itk::simple::FlipImageFilter::FlipAboutOriginOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FlipImageFilter::FlipAboutOriginOn "/**
+Self& itk::simple::FlipImageFilter::FlipAboutOriginOn()
+
+Set the value of FlipAboutOrigin to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FlipImageFilter::FlipImageFilter "/**
+itk::simple::FlipImageFilter::FlipImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FlipImageFilter::GetFlipAboutOrigin "/**
+bool itk::simple::FlipImageFilter::GetFlipAboutOrigin() const
+
+Controls how the output origin is computed. If FlipAboutOrigin is
+\"On\", the flip will occur about the origin of the axis, otherwise,
+the flip will occur about the center of the axis. Default is \"On\".
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FlipImageFilter::GetFlipAxes "/**
+std::vector<bool> itk::simple::FlipImageFilter::GetFlipAxes() const
+
+Set/Get the axis to be flipped. The image is flipped along axes for
+which array[i] is true. Default is false.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FlipImageFilter::GetName "/**
+std::string itk::simple::FlipImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FlipImageFilter::SetFlipAboutOrigin "/**
+Self& itk::simple::FlipImageFilter::SetFlipAboutOrigin(bool FlipAboutOrigin)
+
+Controls how the output origin is computed. If FlipAboutOrigin is
+\"On\", the flip will occur about the origin of the axis, otherwise,
+the flip will occur about the center of the axis. Default is \"On\".
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FlipImageFilter::SetFlipAxes "/**
+Self& itk::simple::FlipImageFilter::SetFlipAxes(const std::vector< bool > &FlipAxes)
+
+Set/Get the axis to be flipped. The image is flipped along axes for
+which array[i] is true. Default is false.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FlipImageFilter::ToString "/**
+std::string itk::simple::FlipImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FlipImageFilter::~FlipImageFilter "/**
+itk::simple::FlipImageFilter::~FlipImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ForwardFFTImageFilter "/**
+
+Base class for forward Fast Fourier Transform .
+
+
+This is a base class for the \"forward\" or \"direct\" discrete
+Fourier Transform . This is an abstract base class: the actual implementation is
+provided by the best child class available on the system when the
+object is created via the object factory system.
+
+This class transforms a real input image into its full complex Fourier
+transform. The Fourier transform of a real input image has Hermitian
+symmetry: $ f(\\\\mathbf{x}) = f^*(-\\\\mathbf{x}) $ . That is, when the result of the transform is split in half along
+the x-dimension, the values in the second half of the transform are
+the complex conjugates of values in the first half reflected about the
+center of the image in each dimension.
+
+This filter works only for real single-component input image types.
+
+
+See:
+ InverseFFTImageFilter , FFTComplexToComplexImageFilter
+
+ itk::simple::ForwardFFT for the procedural interface
+
+ itk::ForwardFFTImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkForwardFFTImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ForwardFFTImageFilter::Execute "/**
+Image itk::simple::ForwardFFTImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ForwardFFTImageFilter::ForwardFFTImageFilter "/**
+itk::simple::ForwardFFTImageFilter::ForwardFFTImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ForwardFFTImageFilter::GetName "/**
+std::string itk::simple::ForwardFFTImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ForwardFFTImageFilter::ToString "/**
+std::string itk::simple::ForwardFFTImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ForwardFFTImageFilter::~ForwardFFTImageFilter "/**
+itk::simple::ForwardFFTImageFilter::~ForwardFFTImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::FunctionCommand "/**
+
+A Command class which allows setting an external function, or member function.
+
+C++ includes: sitkFunctionCommand.h
+*/"
+
+%javamethodmodifiers  itk::simple::FunctionCommand::Execute "/**
+virtual void itk::simple::FunctionCommand::Execute(void)
+
+The method that defines action to be taken by the command
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FunctionCommand::FunctionCommand "/**
+itk::simple::FunctionCommand::FunctionCommand()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FunctionCommand::SetCallbackFunction "/**
+void itk::simple::FunctionCommand::SetCallbackFunction(T *object, void(T::*pMemberFunction)())
+
+Generic method to set a class's member function to be called in the
+Execute method.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FunctionCommand::SetCallbackFunction "/**
+void itk::simple::FunctionCommand::SetCallbackFunction(void(*pFunction)())
+
+Set a C-Style function to be called in the Execute method
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FunctionCommand::SetCallbackFunction "/**
+void itk::simple::FunctionCommand::SetCallbackFunction(void(*pFunction)(void *), void *clientData)
+
+Set a C-Style function with a void* clientData as an argument. The
+caller is responsible for managing the life of the clientData and that
+it's valid when Execute is called with the clientData.
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::GaborImageSource "/**
+
+Generate an n-dimensional image of a Gabor filter.
+
+
+GaborImageSource generates an image of either the real (i.e. symmetric) or complex
+(i.e. antisymmetric) part of the Gabor filter with the orientation
+directed along the x-axis. The GaborKernelFunction is used to evaluate the contribution along the x-axis whereas a non-
+normalized 1-D Gaussian envelope provides the contribution in each of
+the remaining N dimensions. Orientation can be manipulated via the Transform classes of the toolkit.
+
+The output image may be of any dimension.
+
+This implementation was contributed as a paper to the Insight Journal https://hdl.handle.net/1926/500
+See:
+ itk::simple::GaborImageSource for the procedural interface
+
+ itk::GaborImageSource for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkGaborImageSource.h
+*/"
+
+%javamethodmodifiers  itk::simple::GaborImageSource::Execute "/**
+Image itk::simple::GaborImageSource::Execute()
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaborImageSource::Execute "/**
+Image itk::simple::GaborImageSource::Execute(PixelIDValueEnum outputPixelType, const std::vector< unsigned int >
+&size, const std::vector< double > &sigma, const std::vector< double >
+&mean, double frequency, const std::vector< double > &origin, const
+std::vector< double > &spacing, std::vector< double > direction)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaborImageSource::GaborImageSource "/**
+itk::simple::GaborImageSource::GaborImageSource()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaborImageSource::GetDirection "/**
+std::vector<double> itk::simple::GaborImageSource::GetDirection() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaborImageSource::GetFrequency "/**
+double itk::simple::GaborImageSource::GetFrequency() const
+
+Set/Get the modulation frequency of the sine or cosine component.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaborImageSource::GetMean "/**
+std::vector<double> itk::simple::GaborImageSource::GetMean() const
+
+Set/Get the mean in each direction.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaborImageSource::GetName "/**
+std::string itk::simple::GaborImageSource::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaborImageSource::GetOrigin "/**
+std::vector<double> itk::simple::GaborImageSource::GetOrigin() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaborImageSource::GetOutputPixelType "/**
+PixelIDValueEnum itk::simple::GaborImageSource::GetOutputPixelType() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaborImageSource::GetSigma "/**
+std::vector<double> itk::simple::GaborImageSource::GetSigma() const
+
+Set/Get the the standard deviation in each direction.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaborImageSource::GetSize "/**
+std::vector<unsigned int> itk::simple::GaborImageSource::GetSize() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaborImageSource::GetSpacing "/**
+std::vector<double> itk::simple::GaborImageSource::GetSpacing() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaborImageSource::SetDirection "/**
+Self& itk::simple::GaborImageSource::SetDirection(std::vector< double > Direction)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaborImageSource::SetFrequency "/**
+Self& itk::simple::GaborImageSource::SetFrequency(double Frequency)
+
+Set/Get the modulation frequency of the sine or cosine component.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaborImageSource::SetMean "/**
+Self& itk::simple::GaborImageSource::SetMean(const std::vector< double > &Mean)
+
+Set/Get the mean in each direction.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaborImageSource::SetMean "/**
+Self& itk::simple::GaborImageSource::SetMean(double value)
+
+Set the values of the Mean vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaborImageSource::SetOrigin "/**
+Self& itk::simple::GaborImageSource::SetOrigin(const std::vector< double > &Origin)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaborImageSource::SetOutputPixelType "/**
+Self& itk::simple::GaborImageSource::SetOutputPixelType(PixelIDValueEnum OutputPixelType)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaborImageSource::SetSigma "/**
+Self& itk::simple::GaborImageSource::SetSigma(const std::vector< double > &Sigma)
+
+Set/Get the the standard deviation in each direction.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaborImageSource::SetSigma "/**
+Self& itk::simple::GaborImageSource::SetSigma(double value)
+
+Set the values of the Sigma vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaborImageSource::SetSize "/**
+Self& itk::simple::GaborImageSource::SetSize(const std::vector< unsigned int > &Size)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaborImageSource::SetSpacing "/**
+Self& itk::simple::GaborImageSource::SetSpacing(const std::vector< double > &Spacing)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaborImageSource::ToString "/**
+std::string itk::simple::GaborImageSource::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaborImageSource::~GaborImageSource "/**
+itk::simple::GaborImageSource::~GaborImageSource()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::GaussianImageSource "/**
+
+Generate an n-dimensional image of a Gaussian.
+
+
+GaussianImageSource generates an image of a Gaussian. m_Normalized determines whether or
+not the Gaussian is normalized (whether or not the sum over infinite
+space is 1.0) When creating an image, it is preferable to not
+normalize the Gaussian m_Scale scales the output of the Gaussian to
+span a range larger than 0->1, and is typically set to the maximum
+value of the output data type (for instance, 255 for uchars)
+
+The output image may be of any dimension.
+See:
+ itk::simple::GaussianImageSource for the procedural interface
+
+ itk::GaussianImageSource for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkGaussianImageSource.h
+*/"
+
+%javamethodmodifiers  itk::simple::GaussianImageSource::Execute "/**
+Image itk::simple::GaussianImageSource::Execute()
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaussianImageSource::Execute "/**
+Image itk::simple::GaussianImageSource::Execute(PixelIDValueEnum outputPixelType, const std::vector< unsigned int >
+&size, const std::vector< double > &sigma, const std::vector< double >
+&mean, double scale, const std::vector< double > &origin, const
+std::vector< double > &spacing, std::vector< double > direction)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaussianImageSource::GaussianImageSource "/**
+itk::simple::GaussianImageSource::GaussianImageSource()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaussianImageSource::GetDirection "/**
+std::vector<double> itk::simple::GaussianImageSource::GetDirection() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaussianImageSource::GetMean "/**
+std::vector<double> itk::simple::GaussianImageSource::GetMean() const
+
+Set/Get the mean in each direction.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaussianImageSource::GetName "/**
+std::string itk::simple::GaussianImageSource::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaussianImageSource::GetOrigin "/**
+std::vector<double> itk::simple::GaussianImageSource::GetOrigin() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaussianImageSource::GetOutputPixelType "/**
+PixelIDValueEnum itk::simple::GaussianImageSource::GetOutputPixelType() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaussianImageSource::GetScale "/**
+double itk::simple::GaussianImageSource::GetScale() const
+
+Gets and sets for Gaussian parameters Set/Get the scale factor to
+multiply the true value of the Gaussian.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaussianImageSource::GetSigma "/**
+std::vector<double> itk::simple::GaussianImageSource::GetSigma() const
+
+Set/Get the standard deviation in each direction.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaussianImageSource::GetSize "/**
+std::vector<unsigned int> itk::simple::GaussianImageSource::GetSize() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaussianImageSource::GetSpacing "/**
+std::vector<double> itk::simple::GaussianImageSource::GetSpacing() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaussianImageSource::SetDirection "/**
+Self& itk::simple::GaussianImageSource::SetDirection(std::vector< double > Direction)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaussianImageSource::SetMean "/**
+Self& itk::simple::GaussianImageSource::SetMean(const std::vector< double > &Mean)
+
+Set/Get the mean in each direction.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaussianImageSource::SetMean "/**
+Self& itk::simple::GaussianImageSource::SetMean(double value)
+
+Set the values of the Mean vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaussianImageSource::SetOrigin "/**
+Self& itk::simple::GaussianImageSource::SetOrigin(const std::vector< double > &Origin)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaussianImageSource::SetOutputPixelType "/**
+Self& itk::simple::GaussianImageSource::SetOutputPixelType(PixelIDValueEnum OutputPixelType)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaussianImageSource::SetScale "/**
+Self& itk::simple::GaussianImageSource::SetScale(double Scale)
+
+Gets and sets for Gaussian parameters Set/Get the scale factor to
+multiply the true value of the Gaussian.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaussianImageSource::SetSigma "/**
+Self& itk::simple::GaussianImageSource::SetSigma(const std::vector< double > &Sigma)
+
+Set/Get the standard deviation in each direction.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaussianImageSource::SetSigma "/**
+Self& itk::simple::GaussianImageSource::SetSigma(double value)
+
+Set the values of the Sigma vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaussianImageSource::SetSize "/**
+Self& itk::simple::GaussianImageSource::SetSize(const std::vector< unsigned int > &Size)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaussianImageSource::SetSpacing "/**
+Self& itk::simple::GaussianImageSource::SetSpacing(const std::vector< double > &Spacing)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaussianImageSource::ToString "/**
+std::string itk::simple::GaussianImageSource::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaussianImageSource::~GaussianImageSource "/**
+itk::simple::GaussianImageSource::~GaussianImageSource()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::GenericException "/**
+
+The base SimpleITK exception class.
+
+C++ includes: sitkExceptionObject.h
+*/"
+
+%javamethodmodifiers  itk::simple::GenericException::GenericException "/**
+itk::simple::GenericException::GenericException()
+ throw ()
+Default constructor. Needed to ensure the exception object can be
+copied.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GenericException::GenericException "/**
+itk::simple::GenericException::GenericException(const GenericException &e)
+ throw ()*/
+public ";
+
+%javamethodmodifiers  itk::simple::GenericException::GenericException "/**
+itk::simple::GenericException::GenericException(const char *file, unsigned int lineNumber)
+ throw ()
+Constructor. Needed to ensure the exception object can be copied.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GenericException::GenericException "/**
+itk::simple::GenericException::GenericException(const std::string &file, unsigned int lineNumber)
+ throw ()
+Constructor. Needed to ensure the exception object can be copied.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GenericException::GenericException "/**
+itk::simple::GenericException::GenericException(const std::string &file, unsigned int lineNumber, const std::string
+&desc)
+ throw ()
+Constructor. Needed to ensure the exception object can be copied.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GenericException::GetDescription "/**
+virtual const char* itk::simple::GenericException::GetDescription() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GenericException::GetFile "/**
+virtual const char* itk::simple::GenericException::GetFile() const
+
+What file did the exception occur in?
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GenericException::GetLine "/**
+virtual unsigned int itk::simple::GenericException::GetLine() const
+
+What line did the exception occur in?
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GenericException::GetLocation "/**
+virtual const char* itk::simple::GenericException::GetLocation() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GenericException::GetNameOfClass "/**
+virtual const char* itk::simple::GenericException::GetNameOfClass() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GenericException::ToString "/**
+std::string itk::simple::GenericException::ToString() const
+
+Return a description of the error
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GenericException::what "/**
+const char* itk::simple::GenericException::what() const
+ throw ()*/
+public ";
+
+%javamethodmodifiers  itk::simple::GenericException::~GenericException "/**
+virtual itk::simple::GenericException::~GenericException()
+ throw ( )
+Virtual destructor needed for subclasses. Has to have empty throw().
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::GeodesicActiveContourLevelSetImageFilter "/**
+
+Segments structures in images based on a user supplied edge potential
+map.
+
+
+IMPORTANT
+The SegmentationLevelSetImageFilter class and the GeodesicActiveContourLevelSetFunction class contain additional information necessary to gain full
+understanding of how to use this filter.
+OVERVIEW
+This class is a level set method segmentation filter. An initial
+contour is propagated outwards (or inwards) until it ''sticks'' to the
+shape boundaries. This is done by using a level set speed function
+based on a user supplied edge potential map.
+INPUTS
+This filter requires two inputs. The first input is a initial level
+set. The initial level set is a real image which contains the initial
+contour/surface as the zero level set. For example, a signed distance
+function from the initial contour/surface is typically used. Unlike
+the simpler ShapeDetectionLevelSetImageFilter the initial contour does not have to lie wholly within the shape to
+be segmented. The initial contour is allow to overlap the shape
+boundary. The extra advection term in the update equation behaves like
+a doublet and attracts the contour to the boundary. This approach for
+segmentation follows that of Caselles et al (1997).
+
+The second input is the feature image. For this filter, this is the
+edge potential map. General characteristics of an edge potential map
+is that it has values close to zero in regions near the edges and
+values close to one inside the shape itself. Typically, the edge
+potential map is compute from the image gradient, for example:
+\\\\[ g(I) = 1 / ( 1 + | (\\\\nabla * G)(I)| ) \\\\] \\\\[ g(I) = \\\\exp^{-|(\\\\nabla * G)(I)|} \\\\]
+
+where $ I $ is image intensity and $ (\\\\nabla * G) $ is the derivative of Gaussian operator.
+
+
+See SegmentationLevelSetImageFilter and SparseFieldLevelSetImageFilter for more information on Inputs.
+PARAMETERS
+The PropagationScaling parameter can be used to switch from
+propagation outwards (POSITIVE scaling parameter) versus propagating
+inwards (NEGATIVE scaling parameter).
+ This implementation allows the user to set the weights between the
+propagation, advection and curvature term using methods SetPropagationScaling() , SetAdvectionScaling() , SetCurvatureScaling() . In general, the larger the CurvatureScaling, the smoother the
+resulting contour. To follow the implementation in Caselles et al
+paper, set the PropagationScaling to $ c $ (the inflation or ballon force) and AdvectionScaling and
+CurvatureScaling both to 1.0.
+
+OUTPUTS
+The filter outputs a single, scalar, real-valued image. Negative
+values in the output image represent the inside of the segmented
+region and positive values in the image represent the outside of the
+segmented region. The zero crossings of the image correspond to the
+position of the propagating front.
+
+See SparseFieldLevelSetImageFilter and SegmentationLevelSetImageFilter for more information.
+REFERENCES
+
+\"Geodesic Active Contours\", V. Caselles, R. Kimmel and G. Sapiro.
+International Journal on Computer Vision, Vol 22, No. 1, pp 61-97,
+1997
+
+See:
+ SegmentationLevelSetImageFilter
+
+ GeodesicActiveContourLevelSetFunction
+
+ SparseFieldLevelSetImageFilter
+
+ itk::simple::GeodesicActiveContourLevelSet for the procedural interface
+
+ itk::GeodesicActiveContourLevelSetImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkGeodesicActiveContourLevelSetImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::GeodesicActiveContourLevelSetImageFilter::Execute "/**
+Image itk::simple::GeodesicActiveContourLevelSetImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GeodesicActiveContourLevelSetImageFilter::Execute "/**
+Image itk::simple::GeodesicActiveContourLevelSetImageFilter::Execute(const Image &image1, const Image &image2, double maximumRMSError,
+double propagationScaling, double curvatureScaling, double
+advectionScaling, uint32_t numberOfIterations, bool
+reverseExpansionDirection)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GeodesicActiveContourLevelSetImageFilter::GeodesicActiveContourLevelSetImageFilter "/**
+itk::simple::GeodesicActiveContourLevelSetImageFilter::GeodesicActiveContourLevelSetImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GeodesicActiveContourLevelSetImageFilter::GetAdvectionScaling "/**
+double itk::simple::GeodesicActiveContourLevelSetImageFilter::GetAdvectionScaling() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GeodesicActiveContourLevelSetImageFilter::GetCurvatureScaling "/**
+double itk::simple::GeodesicActiveContourLevelSetImageFilter::GetCurvatureScaling() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GeodesicActiveContourLevelSetImageFilter::GetElapsedIterations "/**
+uint32_t itk::simple::GeodesicActiveContourLevelSetImageFilter::GetElapsedIterations() const
+
+Number of iterations run.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GeodesicActiveContourLevelSetImageFilter::GetMaximumRMSError "/**
+double itk::simple::GeodesicActiveContourLevelSetImageFilter::GetMaximumRMSError() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GeodesicActiveContourLevelSetImageFilter::GetName "/**
+std::string itk::simple::GeodesicActiveContourLevelSetImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GeodesicActiveContourLevelSetImageFilter::GetNumberOfIterations "/**
+uint32_t itk::simple::GeodesicActiveContourLevelSetImageFilter::GetNumberOfIterations() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GeodesicActiveContourLevelSetImageFilter::GetPropagationScaling "/**
+double itk::simple::GeodesicActiveContourLevelSetImageFilter::GetPropagationScaling() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GeodesicActiveContourLevelSetImageFilter::GetReverseExpansionDirection "/**
+bool itk::simple::GeodesicActiveContourLevelSetImageFilter::GetReverseExpansionDirection() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GeodesicActiveContourLevelSetImageFilter::GetRMSChange "/**
+double itk::simple::GeodesicActiveContourLevelSetImageFilter::GetRMSChange() const
+
+The Root Mean Square of the levelset upon termination.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GeodesicActiveContourLevelSetImageFilter::ReverseExpansionDirectionOff "/**
+Self& itk::simple::GeodesicActiveContourLevelSetImageFilter::ReverseExpansionDirectionOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GeodesicActiveContourLevelSetImageFilter::ReverseExpansionDirectionOn "/**
+Self& itk::simple::GeodesicActiveContourLevelSetImageFilter::ReverseExpansionDirectionOn()
+
+Set the value of ReverseExpansionDirection to true or false
+respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GeodesicActiveContourLevelSetImageFilter::SetAdvectionScaling "/**
+Self& itk::simple::GeodesicActiveContourLevelSetImageFilter::SetAdvectionScaling(double AdvectionScaling)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GeodesicActiveContourLevelSetImageFilter::SetCurvatureScaling "/**
+Self& itk::simple::GeodesicActiveContourLevelSetImageFilter::SetCurvatureScaling(double CurvatureScaling)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GeodesicActiveContourLevelSetImageFilter::SetMaximumRMSError "/**
+Self& itk::simple::GeodesicActiveContourLevelSetImageFilter::SetMaximumRMSError(double MaximumRMSError)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GeodesicActiveContourLevelSetImageFilter::SetNumberOfIterations "/**
+Self& itk::simple::GeodesicActiveContourLevelSetImageFilter::SetNumberOfIterations(uint32_t NumberOfIterations)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GeodesicActiveContourLevelSetImageFilter::SetPropagationScaling "/**
+Self& itk::simple::GeodesicActiveContourLevelSetImageFilter::SetPropagationScaling(double PropagationScaling)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GeodesicActiveContourLevelSetImageFilter::SetReverseExpansionDirection "/**
+Self& itk::simple::GeodesicActiveContourLevelSetImageFilter::SetReverseExpansionDirection(bool ReverseExpansionDirection)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GeodesicActiveContourLevelSetImageFilter::ToString "/**
+std::string itk::simple::GeodesicActiveContourLevelSetImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GeodesicActiveContourLevelSetImageFilter::~GeodesicActiveContourLevelSetImageFilter "/**
+itk::simple::GeodesicActiveContourLevelSetImageFilter::~GeodesicActiveContourLevelSetImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::GradientAnisotropicDiffusionImageFilter "/**
+
+This filter performs anisotropic diffusion on a scalar itk::Image using the classic Perona-Malik, gradient magnitude based equation
+implemented in itkGradientNDAnisotropicDiffusionFunction. For detailed
+information on anisotropic diffusion, see
+itkAnisotropicDiffusionFunction and
+itkGradientNDAnisotropicDiffusionFunction.
+
+Inputs and Outputs
+The input to this filter should be a scalar itk::Image of any dimensionality. The output image will be a diffused copy of
+the input.
+Parameters
+Please see the description of parameters given in
+itkAnisotropicDiffusionImageFilter.
+
+See:
+ AnisotropicDiffusionImageFilter
+
+ AnisotropicDiffusionFunction
+
+ GradientAnisotropicDiffusionFunction
+
+ itk::simple::GradientAnisotropicDiffusion for the procedural interface
+
+ itk::GradientAnisotropicDiffusionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkGradientAnisotropicDiffusionImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::GradientAnisotropicDiffusionImageFilter::EstimateOptimalTimeStep "/**
+double itk::simple::GradientAnisotropicDiffusionImageFilter::EstimateOptimalTimeStep(Image &inImage)
+
+This method autmatically sets the optimal timestep for an image given
+its spacing.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientAnisotropicDiffusionImageFilter::Execute "/**
+Image itk::simple::GradientAnisotropicDiffusionImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientAnisotropicDiffusionImageFilter::Execute "/**
+Image itk::simple::GradientAnisotropicDiffusionImageFilter::Execute(const Image &image1, double timeStep, double conductanceParameter,
+unsigned int conductanceScalingUpdateInterval, uint32_t
+numberOfIterations)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientAnisotropicDiffusionImageFilter::GetConductanceParameter "/**
+double itk::simple::GradientAnisotropicDiffusionImageFilter::GetConductanceParameter() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientAnisotropicDiffusionImageFilter::GetConductanceScalingUpdateInterval "/**
+unsigned int itk::simple::GradientAnisotropicDiffusionImageFilter::GetConductanceScalingUpdateInterval() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientAnisotropicDiffusionImageFilter::GetName "/**
+std::string itk::simple::GradientAnisotropicDiffusionImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientAnisotropicDiffusionImageFilter::GetNumberOfIterations "/**
+uint32_t itk::simple::GradientAnisotropicDiffusionImageFilter::GetNumberOfIterations() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientAnisotropicDiffusionImageFilter::GetTimeStep "/**
+double itk::simple::GradientAnisotropicDiffusionImageFilter::GetTimeStep() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientAnisotropicDiffusionImageFilter::GradientAnisotropicDiffusionImageFilter "/**
+itk::simple::GradientAnisotropicDiffusionImageFilter::GradientAnisotropicDiffusionImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientAnisotropicDiffusionImageFilter::SetConductanceParameter "/**
+Self& itk::simple::GradientAnisotropicDiffusionImageFilter::SetConductanceParameter(double ConductanceParameter)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientAnisotropicDiffusionImageFilter::SetConductanceScalingUpdateInterval "/**
+Self& itk::simple::GradientAnisotropicDiffusionImageFilter::SetConductanceScalingUpdateInterval(unsigned int ConductanceScalingUpdateInterval)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientAnisotropicDiffusionImageFilter::SetNumberOfIterations "/**
+Self& itk::simple::GradientAnisotropicDiffusionImageFilter::SetNumberOfIterations(uint32_t NumberOfIterations)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientAnisotropicDiffusionImageFilter::SetTimeStep "/**
+Self& itk::simple::GradientAnisotropicDiffusionImageFilter::SetTimeStep(double TimeStep)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientAnisotropicDiffusionImageFilter::ToString "/**
+std::string itk::simple::GradientAnisotropicDiffusionImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientAnisotropicDiffusionImageFilter::~GradientAnisotropicDiffusionImageFilter "/**
+itk::simple::GradientAnisotropicDiffusionImageFilter::~GradientAnisotropicDiffusionImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::GradientImageFilter "/**
+
+Computes the gradient of an image using directional derivatives.
+
+
+Computes the gradient of an image using directional derivatives. The
+directional derivative at each pixel location is computed by
+convolution with a first-order derivative operator.
+
+The second template parameter defines the value type used in the
+derivative operator (defaults to float). The third template parameter
+defines the value type used for output image (defaults to float). The
+output image is defined as a covariant vector image whose value type
+is specified as this third template parameter.
+
+
+See:
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+
+ itk::simple::Gradient for the procedural interface
+
+ itk::GradientImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkGradientImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::GradientImageFilter::Execute "/**
+Image itk::simple::GradientImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientImageFilter::Execute "/**
+Image itk::simple::GradientImageFilter::Execute(const Image &image1, bool useImageSpacing, bool useImageDirection)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientImageFilter::GetName "/**
+std::string itk::simple::GradientImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientImageFilter::GetUseImageDirection "/**
+bool itk::simple::GradientImageFilter::GetUseImageDirection() const
+
+The UseImageDirection flag determines whether image derivatives are
+computed with respect to the image grid or with respect to the
+physical space. When this flag is ON the derivatives are computed with
+respect to the coordinate system of physical space. The difference is
+whether we take into account the image Direction or not. The flag ON
+will take into account the image direction and will result in an extra
+matrix multiplication compared to the amount of computation performed
+when the flag is OFF. The default value of this flag is On.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientImageFilter::GetUseImageSpacing "/**
+bool itk::simple::GradientImageFilter::GetUseImageSpacing() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientImageFilter::GradientImageFilter "/**
+itk::simple::GradientImageFilter::GradientImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientImageFilter::SetUseImageDirection "/**
+Self& itk::simple::GradientImageFilter::SetUseImageDirection(bool UseImageDirection)
+
+The UseImageDirection flag determines whether image derivatives are
+computed with respect to the image grid or with respect to the
+physical space. When this flag is ON the derivatives are computed with
+respect to the coordinate system of physical space. The difference is
+whether we take into account the image Direction or not. The flag ON
+will take into account the image direction and will result in an extra
+matrix multiplication compared to the amount of computation performed
+when the flag is OFF. The default value of this flag is On.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientImageFilter::SetUseImageSpacing "/**
+Self& itk::simple::GradientImageFilter::SetUseImageSpacing(bool UseImageSpacing)
+
+Set/Get whether or not the filter will use the spacing of the input
+image in its calculations
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientImageFilter::ToString "/**
+std::string itk::simple::GradientImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientImageFilter::UseImageDirectionOff "/**
+Self& itk::simple::GradientImageFilter::UseImageDirectionOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientImageFilter::UseImageDirectionOn "/**
+Self& itk::simple::GradientImageFilter::UseImageDirectionOn()
+
+Set the value of UseImageDirection to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientImageFilter::UseImageSpacingOff "/**
+Self& itk::simple::GradientImageFilter::UseImageSpacingOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientImageFilter::UseImageSpacingOn "/**
+Self& itk::simple::GradientImageFilter::UseImageSpacingOn()
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientImageFilter::~GradientImageFilter "/**
+itk::simple::GradientImageFilter::~GradientImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::GradientMagnitudeImageFilter "/**
+
+Computes the gradient magnitude of an image region at each pixel.
+
+
+
+See:
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+Wiki Examples:
+
+All Examples
+
+Compute the gradient magnitude image
+See:
+ itk::simple::GradientMagnitude for the procedural interface
+
+ itk::GradientMagnitudeImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkGradientMagnitudeImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::GradientMagnitudeImageFilter::Execute "/**
+Image itk::simple::GradientMagnitudeImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientMagnitudeImageFilter::Execute "/**
+Image itk::simple::GradientMagnitudeImageFilter::Execute(const Image &image1, bool useImageSpacing)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientMagnitudeImageFilter::GetName "/**
+std::string itk::simple::GradientMagnitudeImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientMagnitudeImageFilter::GetUseImageSpacing "/**
+bool itk::simple::GradientMagnitudeImageFilter::GetUseImageSpacing() const
+
+Set/Get whether or not the filter will use the spacing of the input
+image in its calculations
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientMagnitudeImageFilter::GradientMagnitudeImageFilter "/**
+itk::simple::GradientMagnitudeImageFilter::GradientMagnitudeImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientMagnitudeImageFilter::SetUseImageSpacing "/**
+Self& itk::simple::GradientMagnitudeImageFilter::SetUseImageSpacing(bool UseImageSpacing)
+
+Set/Get whether or not the filter will use the spacing of the input
+image in its calculations
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientMagnitudeImageFilter::ToString "/**
+std::string itk::simple::GradientMagnitudeImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientMagnitudeImageFilter::UseImageSpacingOff "/**
+Self& itk::simple::GradientMagnitudeImageFilter::UseImageSpacingOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientMagnitudeImageFilter::UseImageSpacingOn "/**
+Self& itk::simple::GradientMagnitudeImageFilter::UseImageSpacingOn()
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientMagnitudeImageFilter::~GradientMagnitudeImageFilter "/**
+itk::simple::GradientMagnitudeImageFilter::~GradientMagnitudeImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::GradientMagnitudeRecursiveGaussianImageFilter "/**
+
+Computes the Magnitude of the Gradient of an image by convolution with
+the first derivative of a Gaussian.
+
+
+This filter is implemented using the recursive gaussian filters
+
+Wiki Examples:
+
+All Examples
+
+Find the gradient magnitude of the image first smoothed with a
+Gaussian kernel
+See:
+ itk::simple::GradientMagnitudeRecursiveGaussian for the procedural interface
+
+ itk::GradientMagnitudeRecursiveGaussianImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkGradientMagnitudeRecursiveGaussianImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::Execute "/**
+Image itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::Execute "/**
+Image itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::Execute(const Image &image1, double sigma, bool normalizeAcrossScale)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::GetName "/**
+std::string itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::GetNormalizeAcrossScale "/**
+bool itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::GetNormalizeAcrossScale() const
+
+Define which normalization factor will be used for the Gaussian
+See:
+ RecursiveGaussianImageFilter::SetNormalizeAcrossScale
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::GetSigma "/**
+double itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::GetSigma() const
+
+Set Sigma value. Sigma is measured in the units of image spacing.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::GradientMagnitudeRecursiveGaussianImageFilter "/**
+itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::GradientMagnitudeRecursiveGaussianImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::NormalizeAcrossScaleOff "/**
+Self& itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::NormalizeAcrossScaleOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::NormalizeAcrossScaleOn "/**
+Self& itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::NormalizeAcrossScaleOn()
+
+Set the value of NormalizeAcrossScale to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::SetNormalizeAcrossScale "/**
+Self& itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::SetNormalizeAcrossScale(bool NormalizeAcrossScale)
+
+Define which normalization factor will be used for the Gaussian
+See:
+ RecursiveGaussianImageFilter::SetNormalizeAcrossScale
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::SetSigma "/**
+Self& itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::SetSigma(double Sigma)
+
+Set Sigma value. Sigma is measured in the units of image spacing.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::ToString "/**
+std::string itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::~GradientMagnitudeRecursiveGaussianImageFilter "/**
+itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::~GradientMagnitudeRecursiveGaussianImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::GradientRecursiveGaussianImageFilter "/**
+
+Computes the gradient of an image by convolution with the first
+derivative of a Gaussian.
+
+
+This filter is implemented using the recursive gaussian filters.
+
+This filter supports both scalar and vector pixel types within the
+input image, including VectorImage type.
+
+Wiki Examples:
+
+All Examples
+
+Compute the gradient of an image by convolution with the first
+derivative of a Gaussian
+See:
+ itk::simple::GradientRecursiveGaussian for the procedural interface
+
+ itk::GradientRecursiveGaussianImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkGradientRecursiveGaussianImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::GradientRecursiveGaussianImageFilter::Execute "/**
+Image itk::simple::GradientRecursiveGaussianImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientRecursiveGaussianImageFilter::Execute "/**
+Image itk::simple::GradientRecursiveGaussianImageFilter::Execute(const Image &image1, double sigma, bool normalizeAcrossScale, bool
+useImageDirection)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientRecursiveGaussianImageFilter::GetName "/**
+std::string itk::simple::GradientRecursiveGaussianImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientRecursiveGaussianImageFilter::GetNormalizeAcrossScale "/**
+bool itk::simple::GradientRecursiveGaussianImageFilter::GetNormalizeAcrossScale() const
+
+Define which normalization factor will be used for the Gaussian
+See:
+ RecursiveGaussianImageFilter::SetNormalizeAcrossScale
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientRecursiveGaussianImageFilter::GetSigma "/**
+double itk::simple::GradientRecursiveGaussianImageFilter::GetSigma() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientRecursiveGaussianImageFilter::GetUseImageDirection "/**
+bool itk::simple::GradientRecursiveGaussianImageFilter::GetUseImageDirection() const
+
+The UseImageDirection flag determines whether the gradients are
+computed with respect to the image grid or with respect to the
+physical space. When this flag is ON the gradients are computed with
+respect to the coordinate system of physical space. The difference is
+whether we take into account the image Direction or not. The flag ON
+will take into account the image direction and will result in an extra
+matrix multiplication compared to the amount of computation performed
+when the flag is OFF. The default value of this flag is On.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientRecursiveGaussianImageFilter::GradientRecursiveGaussianImageFilter "/**
+itk::simple::GradientRecursiveGaussianImageFilter::GradientRecursiveGaussianImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientRecursiveGaussianImageFilter::NormalizeAcrossScaleOff "/**
+Self& itk::simple::GradientRecursiveGaussianImageFilter::NormalizeAcrossScaleOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientRecursiveGaussianImageFilter::NormalizeAcrossScaleOn "/**
+Self& itk::simple::GradientRecursiveGaussianImageFilter::NormalizeAcrossScaleOn()
+
+Set the value of NormalizeAcrossScale to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientRecursiveGaussianImageFilter::SetNormalizeAcrossScale "/**
+Self& itk::simple::GradientRecursiveGaussianImageFilter::SetNormalizeAcrossScale(bool NormalizeAcrossScale)
+
+Define which normalization factor will be used for the Gaussian
+See:
+ RecursiveGaussianImageFilter::SetNormalizeAcrossScale
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientRecursiveGaussianImageFilter::SetSigma "/**
+Self& itk::simple::GradientRecursiveGaussianImageFilter::SetSigma(double Sigma)
+
+Set Sigma value. Sigma is measured in the units of image spacing.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientRecursiveGaussianImageFilter::SetUseImageDirection "/**
+Self& itk::simple::GradientRecursiveGaussianImageFilter::SetUseImageDirection(bool UseImageDirection)
+
+The UseImageDirection flag determines whether the gradients are
+computed with respect to the image grid or with respect to the
+physical space. When this flag is ON the gradients are computed with
+respect to the coordinate system of physical space. The difference is
+whether we take into account the image Direction or not. The flag ON
+will take into account the image direction and will result in an extra
+matrix multiplication compared to the amount of computation performed
+when the flag is OFF. The default value of this flag is On.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientRecursiveGaussianImageFilter::ToString "/**
+std::string itk::simple::GradientRecursiveGaussianImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientRecursiveGaussianImageFilter::UseImageDirectionOff "/**
+Self& itk::simple::GradientRecursiveGaussianImageFilter::UseImageDirectionOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientRecursiveGaussianImageFilter::UseImageDirectionOn "/**
+Self& itk::simple::GradientRecursiveGaussianImageFilter::UseImageDirectionOn()
+
+Set the value of UseImageDirection to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientRecursiveGaussianImageFilter::~GradientRecursiveGaussianImageFilter "/**
+itk::simple::GradientRecursiveGaussianImageFilter::~GradientRecursiveGaussianImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::GrayscaleConnectedClosingImageFilter "/**
+
+Enhance pixels associated with a dark object (identified by a seed
+pixel) where the dark object is surrounded by a brigher object.
+
+
+GrayscaleConnectedClosingImagefilter is useful for enhancing dark
+objects that are surrounded by bright borders. This filter makes it
+easier to threshold the image and extract just the object of interest.
+
+Geodesic morphology and the connected closing algorithm are described
+in Chapter 6 of Pierre Soille's book \"Morphological Image Analysis:
+Principles and Applications\", Second Edition, Springer, 2003.
+
+
+See:
+ GrayscaleGeodesicDilateImageFilter
+
+ MorphologyImageFilter , GrayscaleDilateImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter
+
+ itk::simple::GrayscaleConnectedClosing for the procedural interface
+
+ itk::GrayscaleConnectedClosingImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkGrayscaleConnectedClosingImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::GrayscaleConnectedClosingImageFilter::Execute "/**
+Image itk::simple::GrayscaleConnectedClosingImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleConnectedClosingImageFilter::Execute "/**
+Image itk::simple::GrayscaleConnectedClosingImageFilter::Execute(const Image &image1, const std::vector< uint32_t > &seed, bool
+fullyConnected)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleConnectedClosingImageFilter::FullyConnectedOff "/**
+Self& itk::simple::GrayscaleConnectedClosingImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleConnectedClosingImageFilter::FullyConnectedOn "/**
+Self& itk::simple::GrayscaleConnectedClosingImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleConnectedClosingImageFilter::GetFullyConnected "/**
+bool itk::simple::GrayscaleConnectedClosingImageFilter::GetFullyConnected() const
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleConnectedClosingImageFilter::GetName "/**
+std::string itk::simple::GrayscaleConnectedClosingImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleConnectedClosingImageFilter::GetSeed "/**
+std::vector<uint32_t> itk::simple::GrayscaleConnectedClosingImageFilter::GetSeed() const
+
+Set/Get the seed pixel for the segmentation
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleConnectedClosingImageFilter::GrayscaleConnectedClosingImageFilter "/**
+itk::simple::GrayscaleConnectedClosingImageFilter::GrayscaleConnectedClosingImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleConnectedClosingImageFilter::SetFullyConnected "/**
+Self& itk::simple::GrayscaleConnectedClosingImageFilter::SetFullyConnected(bool FullyConnected)
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleConnectedClosingImageFilter::SetSeed "/**
+Self& itk::simple::GrayscaleConnectedClosingImageFilter::SetSeed(const std::vector< uint32_t > &Seed)
+
+Set/Get the seed pixel for the segmentation
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleConnectedClosingImageFilter::ToString "/**
+std::string itk::simple::GrayscaleConnectedClosingImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleConnectedClosingImageFilter::~GrayscaleConnectedClosingImageFilter "/**
+itk::simple::GrayscaleConnectedClosingImageFilter::~GrayscaleConnectedClosingImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::GrayscaleConnectedOpeningImageFilter "/**
+
+Enhance pixels associated with a bright object (identified by a seed
+pixel) where the bright object is surrounded by a darker object.
+
+
+GrayscaleConnectedOpeningImagefilter is useful for enhancing bright
+objects that are surrounded by dark borders. This filter makes it
+easier to threshold the image and extract just the object of interest.
+
+Geodesic morphology and the connected opening algorithm is described
+in Chapter 6 of Pierre Soille's book \"Morphological Image Analysis:
+Principles and Applications\", Second Edition, Springer, 2003.
+
+
+See:
+ GrayscaleGeodesicDilateImageFilter
+
+ MorphologyImageFilter , GrayscaleDilateImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter
+
+ itk::simple::GrayscaleConnectedOpening for the procedural interface
+
+ itk::GrayscaleConnectedOpeningImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkGrayscaleConnectedOpeningImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::GrayscaleConnectedOpeningImageFilter::Execute "/**
+Image itk::simple::GrayscaleConnectedOpeningImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleConnectedOpeningImageFilter::Execute "/**
+Image itk::simple::GrayscaleConnectedOpeningImageFilter::Execute(const Image &image1, const std::vector< unsigned int > &seed, bool
+fullyConnected)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleConnectedOpeningImageFilter::FullyConnectedOff "/**
+Self& itk::simple::GrayscaleConnectedOpeningImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleConnectedOpeningImageFilter::FullyConnectedOn "/**
+Self& itk::simple::GrayscaleConnectedOpeningImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleConnectedOpeningImageFilter::GetFullyConnected "/**
+bool itk::simple::GrayscaleConnectedOpeningImageFilter::GetFullyConnected() const
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleConnectedOpeningImageFilter::GetName "/**
+std::string itk::simple::GrayscaleConnectedOpeningImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleConnectedOpeningImageFilter::GetSeed "/**
+std::vector<unsigned int> itk::simple::GrayscaleConnectedOpeningImageFilter::GetSeed() const
+
+Set/Get the seed pixel for the segmentation
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleConnectedOpeningImageFilter::GrayscaleConnectedOpeningImageFilter "/**
+itk::simple::GrayscaleConnectedOpeningImageFilter::GrayscaleConnectedOpeningImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleConnectedOpeningImageFilter::SetFullyConnected "/**
+Self& itk::simple::GrayscaleConnectedOpeningImageFilter::SetFullyConnected(bool FullyConnected)
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleConnectedOpeningImageFilter::SetSeed "/**
+Self& itk::simple::GrayscaleConnectedOpeningImageFilter::SetSeed(const std::vector< unsigned int > &Seed)
+
+Set/Get the seed pixel for the segmentation
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleConnectedOpeningImageFilter::ToString "/**
+std::string itk::simple::GrayscaleConnectedOpeningImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleConnectedOpeningImageFilter::~GrayscaleConnectedOpeningImageFilter "/**
+itk::simple::GrayscaleConnectedOpeningImageFilter::~GrayscaleConnectedOpeningImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::GrayscaleDilateImageFilter "/**
+
+Grayscale dilation of an image.
+
+
+Dilate an image using grayscale morphology. Dilation takes the maximum
+of all the pixels identified by the structuring element.
+
+The structuring element is assumed to be composed of binary values
+(zero or one). Only elements of the structuring element having values
+> 0 are candidates for affecting the center pixel.
+
+
+See:
+ MorphologyImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter
+Wiki Examples:
+
+All Examples
+
+Dilate a grayscale image
+See:
+ itk::simple::GrayscaleDilate for the procedural interface
+
+ itk::GrayscaleDilateImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkGrayscaleDilateImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::GrayscaleDilateImageFilter::Execute "/**
+Image itk::simple::GrayscaleDilateImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleDilateImageFilter::GetKernelRadius "/**
+std::vector<uint32_t> itk::simple::GrayscaleDilateImageFilter::GetKernelRadius() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleDilateImageFilter::GetKernelType "/**
+KernelEnum itk::simple::GrayscaleDilateImageFilter::GetKernelType() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleDilateImageFilter::GetName "/**
+std::string itk::simple::GrayscaleDilateImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleDilateImageFilter::GrayscaleDilateImageFilter "/**
+itk::simple::GrayscaleDilateImageFilter::GrayscaleDilateImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleDilateImageFilter::SetKernelRadius "/**
+Self& itk::simple::GrayscaleDilateImageFilter::SetKernelRadius(uint32_t r)
+
+Kernel radius as a scale for isotropic structures
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleDilateImageFilter::SetKernelRadius "/**
+Self& itk::simple::GrayscaleDilateImageFilter::SetKernelRadius(const std::vector< uint32_t > &r)
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleDilateImageFilter::SetKernelType "/**
+Self& itk::simple::GrayscaleDilateImageFilter::SetKernelType(KernelEnum t)
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleDilateImageFilter::SetKernelType "/**
+Self& itk::simple::GrayscaleDilateImageFilter::SetKernelType(KernelType t)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleDilateImageFilter::ToString "/**
+std::string itk::simple::GrayscaleDilateImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleDilateImageFilter::~GrayscaleDilateImageFilter "/**
+itk::simple::GrayscaleDilateImageFilter::~GrayscaleDilateImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::GrayscaleErodeImageFilter "/**
+
+Grayscale erosion of an image.
+
+
+Erode an image using grayscale morphology. Erosion takes the maximum
+of all the pixels identified by the structuring element.
+
+The structuring element is assumed to be composed of binary values
+(zero or one). Only elements of the structuring element having values
+> 0 are candidates for affecting the center pixel.
+
+
+See:
+ MorphologyImageFilter , GrayscaleFunctionErodeImageFilter , BinaryErodeImageFilter
+Wiki Examples:
+
+All Examples
+
+Erode a grayscale image
+See:
+ itk::simple::GrayscaleErode for the procedural interface
+
+ itk::GrayscaleErodeImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkGrayscaleErodeImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::GrayscaleErodeImageFilter::Execute "/**
+Image itk::simple::GrayscaleErodeImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleErodeImageFilter::GetKernelRadius "/**
+std::vector<uint32_t> itk::simple::GrayscaleErodeImageFilter::GetKernelRadius() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleErodeImageFilter::GetKernelType "/**
+KernelEnum itk::simple::GrayscaleErodeImageFilter::GetKernelType() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleErodeImageFilter::GetName "/**
+std::string itk::simple::GrayscaleErodeImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleErodeImageFilter::GrayscaleErodeImageFilter "/**
+itk::simple::GrayscaleErodeImageFilter::GrayscaleErodeImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleErodeImageFilter::SetKernelRadius "/**
+Self& itk::simple::GrayscaleErodeImageFilter::SetKernelRadius(uint32_t r)
+
+Kernel radius as a scale for isotropic structures
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleErodeImageFilter::SetKernelRadius "/**
+Self& itk::simple::GrayscaleErodeImageFilter::SetKernelRadius(const std::vector< uint32_t > &r)
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleErodeImageFilter::SetKernelType "/**
+Self& itk::simple::GrayscaleErodeImageFilter::SetKernelType(KernelEnum t)
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleErodeImageFilter::SetKernelType "/**
+Self& itk::simple::GrayscaleErodeImageFilter::SetKernelType(KernelType t)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleErodeImageFilter::ToString "/**
+std::string itk::simple::GrayscaleErodeImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleErodeImageFilter::~GrayscaleErodeImageFilter "/**
+itk::simple::GrayscaleErodeImageFilter::~GrayscaleErodeImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::GrayscaleFillholeImageFilter "/**
+
+Remove local minima not connected to the boundary of the image.
+
+
+GrayscaleFillholeImageFilter fills holes in a grayscale image. Holes are local minima in the
+grayscale topography that are not connected to boundaries of the
+image. Gray level values adjacent to a hole are extrapolated across
+the hole.
+
+This filter is used to smooth over local minima without affecting the
+values of local maxima. If you take the difference between the output
+of this filter and the original image (and perhaps threshold the
+difference above a small value), you'll obtain a map of the local
+minima.
+
+This filter uses the ReconstructionByErosionImageFilter . It provides its own input as the \"mask\" input to the geodesic
+erosion. The \"marker\" image for the geodesic erosion is constructed
+such that boundary pixels match the boundary pixels of the input image
+and the interior pixels are set to the maximum pixel value in the
+input image.
+
+Geodesic morphology and the Fillhole algorithm is described in Chapter
+6 of Pierre Soille's book \"Morphological Image Analysis: Principles
+and Applications\", Second Edition, Springer, 2003.
+
+
+See:
+ ReconstructionByErosionImageFilter
+
+ MorphologyImageFilter , GrayscaleErodeImageFilter , GrayscaleFunctionErodeImageFilter , BinaryErodeImageFilter
+
+ itk::simple::GrayscaleFillhole for the procedural interface
+
+ itk::GrayscaleFillholeImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkGrayscaleFillholeImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::GrayscaleFillholeImageFilter::Execute "/**
+Image itk::simple::GrayscaleFillholeImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleFillholeImageFilter::Execute "/**
+Image itk::simple::GrayscaleFillholeImageFilter::Execute(const Image &image1, bool fullyConnected)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleFillholeImageFilter::FullyConnectedOff "/**
+Self& itk::simple::GrayscaleFillholeImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleFillholeImageFilter::FullyConnectedOn "/**
+Self& itk::simple::GrayscaleFillholeImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleFillholeImageFilter::GetFullyConnected "/**
+bool itk::simple::GrayscaleFillholeImageFilter::GetFullyConnected() const
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleFillholeImageFilter::GetName "/**
+std::string itk::simple::GrayscaleFillholeImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleFillholeImageFilter::GrayscaleFillholeImageFilter "/**
+itk::simple::GrayscaleFillholeImageFilter::GrayscaleFillholeImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleFillholeImageFilter::SetFullyConnected "/**
+Self& itk::simple::GrayscaleFillholeImageFilter::SetFullyConnected(bool FullyConnected)
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleFillholeImageFilter::ToString "/**
+std::string itk::simple::GrayscaleFillholeImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleFillholeImageFilter::~GrayscaleFillholeImageFilter "/**
+itk::simple::GrayscaleFillholeImageFilter::~GrayscaleFillholeImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::GrayscaleGeodesicDilateImageFilter "/**
+
+geodesic gray scale dilation of an image
+
+
+Geodesic dilation operates on a \"marker\" image and a \"mask\" image.
+The marker image is dilated using an elementary structuring element
+(neighborhood of radius one using only the face connected neighbors).
+The resulting image is then compared with the mask image. The output
+image is the pixelwise minimum of the dilated marker image and the
+mask image.
+
+Geodesic dilation is run either one iteration or until convergence. In
+the convergence case, the filter is equivalent to \"reconstruction by
+dilation\". This filter is implemented to handle both scenarios. The
+one iteration case is multi-threaded. The convergence case is
+delegated to another instance of the same filter (but configured to
+run a single iteration).
+
+The marker image must be less than or equal to the mask image (on a
+pixel by pixel basis).
+
+Geodesic morphology is described in Chapter 6 of Pierre Soille's book
+\"Morphological Image Analysis: Principles and Applications\", Second
+Edition, Springer, 2003.
+
+A noniterative version of this algorithm can be found in the ReconstructionByDilationImageFilter . This noniterative solution is much faster than the implementation
+provided here. All ITK filters that previously used
+GrayscaleGeodesicDiliateImageFilter as part of their implementation
+have been converted to use the ReconstructionByDilationImageFilter . The GrayscaleGeodesicDilateImageFilter is maintained for backward compatibility.
+
+
+See:
+ MorphologyImageFilter , GrayscaleDilateImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter , ReconstructionByDilationImageFilter
+
+ itk::simple::GrayscaleGeodesicDilate for the procedural interface
+
+ itk::GrayscaleGeodesicDilateImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkGrayscaleGeodesicDilateImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicDilateImageFilter::Execute "/**
+Image itk::simple::GrayscaleGeodesicDilateImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicDilateImageFilter::Execute "/**
+Image itk::simple::GrayscaleGeodesicDilateImageFilter::Execute(const Image &image1, const Image &image2, bool runOneIteration, bool
+fullyConnected)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicDilateImageFilter::FullyConnectedOff "/**
+Self& itk::simple::GrayscaleGeodesicDilateImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicDilateImageFilter::FullyConnectedOn "/**
+Self& itk::simple::GrayscaleGeodesicDilateImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicDilateImageFilter::GetFullyConnected "/**
+bool itk::simple::GrayscaleGeodesicDilateImageFilter::GetFullyConnected() const
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicDilateImageFilter::GetName "/**
+std::string itk::simple::GrayscaleGeodesicDilateImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicDilateImageFilter::GetRunOneIteration "/**
+bool itk::simple::GrayscaleGeodesicDilateImageFilter::GetRunOneIteration() const
+
+Set/Get whether the filter should run one iteration or until
+convergence. When run to convergence, this filter is equivalent to
+\"reconstruction by dilation\". Default is off.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicDilateImageFilter::GrayscaleGeodesicDilateImageFilter "/**
+itk::simple::GrayscaleGeodesicDilateImageFilter::GrayscaleGeodesicDilateImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicDilateImageFilter::RunOneIterationOff "/**
+Self& itk::simple::GrayscaleGeodesicDilateImageFilter::RunOneIterationOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicDilateImageFilter::RunOneIterationOn "/**
+Self& itk::simple::GrayscaleGeodesicDilateImageFilter::RunOneIterationOn()
+
+Set the value of RunOneIteration to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicDilateImageFilter::SetFullyConnected "/**
+Self& itk::simple::GrayscaleGeodesicDilateImageFilter::SetFullyConnected(bool FullyConnected)
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicDilateImageFilter::SetRunOneIteration "/**
+Self& itk::simple::GrayscaleGeodesicDilateImageFilter::SetRunOneIteration(bool RunOneIteration)
+
+Set/Get whether the filter should run one iteration or until
+convergence. When run to convergence, this filter is equivalent to
+\"reconstruction by dilation\". Default is off.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicDilateImageFilter::ToString "/**
+std::string itk::simple::GrayscaleGeodesicDilateImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicDilateImageFilter::~GrayscaleGeodesicDilateImageFilter "/**
+itk::simple::GrayscaleGeodesicDilateImageFilter::~GrayscaleGeodesicDilateImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::GrayscaleGeodesicErodeImageFilter "/**
+
+geodesic gray scale erosion of an image
+
+
+Geodesic erosion operates on a \"marker\" image and a \"mask\" image.
+The marker image is eroded using an elementary structuring element
+(neighborhood of radius one using only the face connected neighbors).
+The resulting image is then compared with the mask image. The output
+image is the pixelwise maximum of the eroded marker image and the mask
+image.
+
+Geodesic erosion is run either one iteration or until convergence. In
+the convergence case, the filter is equivalent to \"reconstruction by
+erosion\". This filter is implemented to handle both scenarios. The
+one iteration case is multi-threaded. The convergence case is
+delegated to another instance of the same filter (but configured to
+run a single iteration).
+
+The marker image must be greater than or equal to the mask image (on a
+pixel by pixel basis).
+
+Geodesic morphology is described in Chapter 6 of Pierre Soille's book
+\"Morphological Image Analysis: Principles and Applications\", Second
+Edition, Springer, 2003.
+
+A noniterative version of this algorithm can be found in the ReconstructionByErosionImageFilter . This noniterative solution is much faster than the implementation
+provided here. All ITK filters that previously used GrayscaleGeodesicErodeImageFilter as part of their implementation have been converted to use the ReconstructionByErosionImageFilter . The GrayscaleGeodesicErodeImageFilter is maintained for backward compatibility.
+
+
+See:
+ MorphologyImageFilter , GrayscaleErodeImageFilter , GrayscaleFunctionErodeImageFilter , BinaryErodeImageFilter , ReconstructionByErosionImageFilter
+
+ itk::simple::GrayscaleGeodesicErode for the procedural interface
+
+ itk::GrayscaleGeodesicErodeImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkGrayscaleGeodesicErodeImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicErodeImageFilter::Execute "/**
+Image itk::simple::GrayscaleGeodesicErodeImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicErodeImageFilter::Execute "/**
+Image itk::simple::GrayscaleGeodesicErodeImageFilter::Execute(const Image &image1, const Image &image2, bool runOneIteration, bool
+fullyConnected)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicErodeImageFilter::FullyConnectedOff "/**
+Self& itk::simple::GrayscaleGeodesicErodeImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicErodeImageFilter::FullyConnectedOn "/**
+Self& itk::simple::GrayscaleGeodesicErodeImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicErodeImageFilter::GetFullyConnected "/**
+bool itk::simple::GrayscaleGeodesicErodeImageFilter::GetFullyConnected() const
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicErodeImageFilter::GetName "/**
+std::string itk::simple::GrayscaleGeodesicErodeImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicErodeImageFilter::GetRunOneIteration "/**
+bool itk::simple::GrayscaleGeodesicErodeImageFilter::GetRunOneIteration() const
+
+Set/Get whether the filter should run one iteration or until
+convergence. When run to convergence, this filter is equivalent to
+\"reconstruction by erosion\". Default is off.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicErodeImageFilter::GrayscaleGeodesicErodeImageFilter "/**
+itk::simple::GrayscaleGeodesicErodeImageFilter::GrayscaleGeodesicErodeImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicErodeImageFilter::RunOneIterationOff "/**
+Self& itk::simple::GrayscaleGeodesicErodeImageFilter::RunOneIterationOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicErodeImageFilter::RunOneIterationOn "/**
+Self& itk::simple::GrayscaleGeodesicErodeImageFilter::RunOneIterationOn()
+
+Set the value of RunOneIteration to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicErodeImageFilter::SetFullyConnected "/**
+Self& itk::simple::GrayscaleGeodesicErodeImageFilter::SetFullyConnected(bool FullyConnected)
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicErodeImageFilter::SetRunOneIteration "/**
+Self& itk::simple::GrayscaleGeodesicErodeImageFilter::SetRunOneIteration(bool RunOneIteration)
+
+Set/Get whether the filter should run one iteration or until
+convergence. When run to convergence, this filter is equivalent to
+\"reconstruction by erosion\". Default is off.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicErodeImageFilter::ToString "/**
+std::string itk::simple::GrayscaleGeodesicErodeImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicErodeImageFilter::~GrayscaleGeodesicErodeImageFilter "/**
+itk::simple::GrayscaleGeodesicErodeImageFilter::~GrayscaleGeodesicErodeImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::GrayscaleGrindPeakImageFilter "/**
+
+Remove local maxima not connected to the boundary of the image.
+
+
+GrayscaleGrindPeakImageFilter removes peaks in a grayscale image. Peaks are local maxima in the
+grayscale topography that are not connected to boundaries of the
+image. Gray level values adjacent to a peak are extrapolated through
+the peak.
+
+This filter is used to smooth over local maxima without affecting the
+values of local minima. If you take the difference between the output
+of this filter and the original image (and perhaps threshold the
+difference above a small value), you'll obtain a map of the local
+maxima.
+
+This filter uses the GrayscaleGeodesicDilateImageFilter . It provides its own input as the \"mask\" input to the geodesic
+erosion. The \"marker\" image for the geodesic erosion is constructed
+such that boundary pixels match the boundary pixels of the input image
+and the interior pixels are set to the minimum pixel value in the
+input image.
+
+This filter is the dual to the GrayscaleFillholeImageFilter which implements the Fillhole algorithm. Since it is a dual, it is
+somewhat superfluous but is provided as a convenience.
+
+Geodesic morphology and the Fillhole algorithm is described in Chapter
+6 of Pierre Soille's book \"Morphological Image Analysis: Principles
+and Applications\", Second Edition, Springer, 2003.
+
+
+See:
+ GrayscaleGeodesicDilateImageFilter
+
+ MorphologyImageFilter , GrayscaleDilateImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter
+
+ itk::simple::GrayscaleGrindPeak for the procedural interface
+
+ itk::GrayscaleGrindPeakImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkGrayscaleGrindPeakImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::GrayscaleGrindPeakImageFilter::Execute "/**
+Image itk::simple::GrayscaleGrindPeakImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGrindPeakImageFilter::Execute "/**
+Image itk::simple::GrayscaleGrindPeakImageFilter::Execute(const Image &image1, bool fullyConnected)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGrindPeakImageFilter::FullyConnectedOff "/**
+Self& itk::simple::GrayscaleGrindPeakImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGrindPeakImageFilter::FullyConnectedOn "/**
+Self& itk::simple::GrayscaleGrindPeakImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGrindPeakImageFilter::GetFullyConnected "/**
+bool itk::simple::GrayscaleGrindPeakImageFilter::GetFullyConnected() const
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGrindPeakImageFilter::GetName "/**
+std::string itk::simple::GrayscaleGrindPeakImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGrindPeakImageFilter::GrayscaleGrindPeakImageFilter "/**
+itk::simple::GrayscaleGrindPeakImageFilter::GrayscaleGrindPeakImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGrindPeakImageFilter::SetFullyConnected "/**
+Self& itk::simple::GrayscaleGrindPeakImageFilter::SetFullyConnected(bool FullyConnected)
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGrindPeakImageFilter::ToString "/**
+std::string itk::simple::GrayscaleGrindPeakImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGrindPeakImageFilter::~GrayscaleGrindPeakImageFilter "/**
+itk::simple::GrayscaleGrindPeakImageFilter::~GrayscaleGrindPeakImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::GrayscaleMorphologicalClosingImageFilter "/**
+
+gray scale dilation of an image
+
+
+Erode an image using grayscale morphology. Dilation takes the maximum
+of all the pixels identified by the structuring element.
+
+The structuring element is assumed to be composed of binary values
+(zero or one). Only elements of the structuring element having values
+> 0 are candidates for affecting the center pixel.
+
+
+See:
+ MorphologyImageFilter , GrayscaleFunctionErodeImageFilter , BinaryErodeImageFilter
+
+ itk::simple::GrayscaleMorphologicalClosing for the procedural interface
+
+ itk::GrayscaleMorphologicalClosingImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkGrayscaleMorphologicalClosingImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalClosingImageFilter::Execute "/**
+Image itk::simple::GrayscaleMorphologicalClosingImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalClosingImageFilter::Execute "/**
+Image itk::simple::GrayscaleMorphologicalClosingImageFilter::Execute(const Image &image1, bool safeBorder)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalClosingImageFilter::GetKernelRadius "/**
+std::vector<uint32_t> itk::simple::GrayscaleMorphologicalClosingImageFilter::GetKernelRadius() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalClosingImageFilter::GetKernelType "/**
+KernelEnum itk::simple::GrayscaleMorphologicalClosingImageFilter::GetKernelType() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalClosingImageFilter::GetName "/**
+std::string itk::simple::GrayscaleMorphologicalClosingImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalClosingImageFilter::GetSafeBorder "/**
+bool itk::simple::GrayscaleMorphologicalClosingImageFilter::GetSafeBorder() const
+
+A safe border is added to input image to avoid borders effects and
+remove it once the closing is done
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalClosingImageFilter::GrayscaleMorphologicalClosingImageFilter "/**
+itk::simple::GrayscaleMorphologicalClosingImageFilter::GrayscaleMorphologicalClosingImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalClosingImageFilter::SafeBorderOff "/**
+Self& itk::simple::GrayscaleMorphologicalClosingImageFilter::SafeBorderOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalClosingImageFilter::SafeBorderOn "/**
+Self& itk::simple::GrayscaleMorphologicalClosingImageFilter::SafeBorderOn()
+
+Set the value of SafeBorder to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalClosingImageFilter::SetKernelRadius "/**
+Self& itk::simple::GrayscaleMorphologicalClosingImageFilter::SetKernelRadius(uint32_t r)
+
+Kernel radius as a scale for isotropic structures
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalClosingImageFilter::SetKernelRadius "/**
+Self& itk::simple::GrayscaleMorphologicalClosingImageFilter::SetKernelRadius(const std::vector< uint32_t > &r)
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalClosingImageFilter::SetKernelType "/**
+Self& itk::simple::GrayscaleMorphologicalClosingImageFilter::SetKernelType(KernelEnum t)
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalClosingImageFilter::SetKernelType "/**
+Self& itk::simple::GrayscaleMorphologicalClosingImageFilter::SetKernelType(KernelType t)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalClosingImageFilter::SetSafeBorder "/**
+Self& itk::simple::GrayscaleMorphologicalClosingImageFilter::SetSafeBorder(bool SafeBorder)
+
+A safe border is added to input image to avoid borders effects and
+remove it once the closing is done
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalClosingImageFilter::ToString "/**
+std::string itk::simple::GrayscaleMorphologicalClosingImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalClosingImageFilter::~GrayscaleMorphologicalClosingImageFilter "/**
+itk::simple::GrayscaleMorphologicalClosingImageFilter::~GrayscaleMorphologicalClosingImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::GrayscaleMorphologicalOpeningImageFilter "/**
+
+gray scale dilation of an image
+
+
+Dilate an image using grayscale morphology. Dilation takes the maximum
+of all the pixels identified by the structuring element.
+
+The structuring element is assumed to be composed of binary values
+(zero or one). Only elements of the structuring element having values
+> 0 are candidates for affecting the center pixel.
+
+
+See:
+ MorphologyImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter
+
+ itk::simple::GrayscaleMorphologicalOpening for the procedural interface
+
+ itk::GrayscaleMorphologicalOpeningImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkGrayscaleMorphologicalOpeningImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalOpeningImageFilter::Execute "/**
+Image itk::simple::GrayscaleMorphologicalOpeningImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalOpeningImageFilter::Execute "/**
+Image itk::simple::GrayscaleMorphologicalOpeningImageFilter::Execute(const Image &image1, bool safeBorder)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalOpeningImageFilter::GetKernelRadius "/**
+std::vector<uint32_t> itk::simple::GrayscaleMorphologicalOpeningImageFilter::GetKernelRadius() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalOpeningImageFilter::GetKernelType "/**
+KernelEnum itk::simple::GrayscaleMorphologicalOpeningImageFilter::GetKernelType() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalOpeningImageFilter::GetName "/**
+std::string itk::simple::GrayscaleMorphologicalOpeningImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalOpeningImageFilter::GetSafeBorder "/**
+bool itk::simple::GrayscaleMorphologicalOpeningImageFilter::GetSafeBorder() const
+
+A safe border is added to input image to avoid borders effects and
+remove it once the closing is done
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalOpeningImageFilter::GrayscaleMorphologicalOpeningImageFilter "/**
+itk::simple::GrayscaleMorphologicalOpeningImageFilter::GrayscaleMorphologicalOpeningImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalOpeningImageFilter::SafeBorderOff "/**
+Self& itk::simple::GrayscaleMorphologicalOpeningImageFilter::SafeBorderOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalOpeningImageFilter::SafeBorderOn "/**
+Self& itk::simple::GrayscaleMorphologicalOpeningImageFilter::SafeBorderOn()
+
+Set the value of SafeBorder to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalOpeningImageFilter::SetKernelRadius "/**
+Self& itk::simple::GrayscaleMorphologicalOpeningImageFilter::SetKernelRadius(uint32_t r)
+
+Kernel radius as a scale for isotropic structures
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalOpeningImageFilter::SetKernelRadius "/**
+Self& itk::simple::GrayscaleMorphologicalOpeningImageFilter::SetKernelRadius(const std::vector< uint32_t > &r)
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalOpeningImageFilter::SetKernelType "/**
+Self& itk::simple::GrayscaleMorphologicalOpeningImageFilter::SetKernelType(KernelEnum t)
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalOpeningImageFilter::SetKernelType "/**
+Self& itk::simple::GrayscaleMorphologicalOpeningImageFilter::SetKernelType(KernelType t)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalOpeningImageFilter::SetSafeBorder "/**
+Self& itk::simple::GrayscaleMorphologicalOpeningImageFilter::SetSafeBorder(bool SafeBorder)
+
+A safe border is added to input image to avoid borders effects and
+remove it once the closing is done
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalOpeningImageFilter::ToString "/**
+std::string itk::simple::GrayscaleMorphologicalOpeningImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalOpeningImageFilter::~GrayscaleMorphologicalOpeningImageFilter "/**
+itk::simple::GrayscaleMorphologicalOpeningImageFilter::~GrayscaleMorphologicalOpeningImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::GreaterEqualImageFilter "/**
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This class is parameterized over the types of the two input images and
+the type of the output image. It is also parameterized by the
+operation to be applied. A Functor style is used.
+
+The constant must be of the same type than the pixel type of the
+corresponding image. It is wrapped in a SimpleDataObjectDecorator so it can be updated through the pipeline. The SetConstant() and
+GetConstant() methods are provided as shortcuts to set or get the
+constant value without manipulating the decorator.
+
+
+See:
+ UnaryFunctorImageFilter TernaryFunctorImageFilter
+Wiki Examples:
+
+All Examples
+
+Apply a predefined operation to corresponding pixels in two images
+
+Apply a custom operation to corresponding pixels in two images
+See:
+ itk::simple::GreaterEqual for the procedural interface
+
+ itk::BinaryFunctorImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkGreaterEqualImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::GreaterEqualImageFilter::Execute "/**
+Image itk::simple::GreaterEqualImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterEqualImageFilter::Execute "/**
+Image itk::simple::GreaterEqualImageFilter::Execute(const Image &image1, const Image &image2, uint8_t backgroundValue,
+uint8_t foregroundValue)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterEqualImageFilter::Execute "/**
+Image itk::simple::GreaterEqualImageFilter::Execute(const Image &image1, double constant)
+
+Execute the filter with an image and a constant
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterEqualImageFilter::Execute "/**
+Image itk::simple::GreaterEqualImageFilter::Execute(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterEqualImageFilter::Execute "/**
+Image itk::simple::GreaterEqualImageFilter::Execute(const Image &image1, double constant, uint8_t backgroundValue,
+uint8_t foregroundValue)
+
+Execute the filter on an image and a constant with the given
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterEqualImageFilter::Execute "/**
+Image itk::simple::GreaterEqualImageFilter::Execute(double constant, const Image &image2, uint8_t backgroundValue,
+uint8_t foregroundValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterEqualImageFilter::GetBackgroundValue "/**
+uint8_t itk::simple::GreaterEqualImageFilter::GetBackgroundValue() const
+
+Set/Get the value used to mark the false pixels of the operator.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterEqualImageFilter::GetForegroundValue "/**
+uint8_t itk::simple::GreaterEqualImageFilter::GetForegroundValue() const
+
+Set/Get the value used to mark the true pixels of the operator.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterEqualImageFilter::GetName "/**
+std::string itk::simple::GreaterEqualImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterEqualImageFilter::GreaterEqualImageFilter "/**
+itk::simple::GreaterEqualImageFilter::GreaterEqualImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterEqualImageFilter::SetBackgroundValue "/**
+Self& itk::simple::GreaterEqualImageFilter::SetBackgroundValue(uint8_t BackgroundValue)
+
+Set/Get the value used to mark the false pixels of the operator.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterEqualImageFilter::SetForegroundValue "/**
+Self& itk::simple::GreaterEqualImageFilter::SetForegroundValue(uint8_t ForegroundValue)
+
+Set/Get the value used to mark the true pixels of the operator.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterEqualImageFilter::ToString "/**
+std::string itk::simple::GreaterEqualImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterEqualImageFilter::~GreaterEqualImageFilter "/**
+itk::simple::GreaterEqualImageFilter::~GreaterEqualImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::GreaterImageFilter "/**
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This class is parameterized over the types of the two input images and
+the type of the output image. It is also parameterized by the
+operation to be applied. A Functor style is used.
+
+The constant must be of the same type than the pixel type of the
+corresponding image. It is wrapped in a SimpleDataObjectDecorator so it can be updated through the pipeline. The SetConstant() and
+GetConstant() methods are provided as shortcuts to set or get the
+constant value without manipulating the decorator.
+
+
+See:
+ UnaryFunctorImageFilter TernaryFunctorImageFilter
+Wiki Examples:
+
+All Examples
+
+Apply a predefined operation to corresponding pixels in two images
+
+Apply a custom operation to corresponding pixels in two images
+See:
+ itk::simple::Greater for the procedural interface
+
+ itk::BinaryFunctorImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkGreaterImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::GreaterImageFilter::Execute "/**
+Image itk::simple::GreaterImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterImageFilter::Execute "/**
+Image itk::simple::GreaterImageFilter::Execute(const Image &image1, const Image &image2, uint8_t backgroundValue,
+uint8_t foregroundValue)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterImageFilter::Execute "/**
+Image itk::simple::GreaterImageFilter::Execute(const Image &image1, double constant)
+
+Execute the filter with an image and a constant
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterImageFilter::Execute "/**
+Image itk::simple::GreaterImageFilter::Execute(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterImageFilter::Execute "/**
+Image itk::simple::GreaterImageFilter::Execute(const Image &image1, double constant, uint8_t backgroundValue,
+uint8_t foregroundValue)
+
+Execute the filter on an image and a constant with the given
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterImageFilter::Execute "/**
+Image itk::simple::GreaterImageFilter::Execute(double constant, const Image &image2, uint8_t backgroundValue,
+uint8_t foregroundValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterImageFilter::GetBackgroundValue "/**
+uint8_t itk::simple::GreaterImageFilter::GetBackgroundValue() const
+
+Set/Get the value used to mark the false pixels of the operator.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterImageFilter::GetForegroundValue "/**
+uint8_t itk::simple::GreaterImageFilter::GetForegroundValue() const
+
+Set/Get the value used to mark the true pixels of the operator.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterImageFilter::GetName "/**
+std::string itk::simple::GreaterImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterImageFilter::GreaterImageFilter "/**
+itk::simple::GreaterImageFilter::GreaterImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterImageFilter::SetBackgroundValue "/**
+Self& itk::simple::GreaterImageFilter::SetBackgroundValue(uint8_t BackgroundValue)
+
+Set/Get the value used to mark the false pixels of the operator.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterImageFilter::SetForegroundValue "/**
+Self& itk::simple::GreaterImageFilter::SetForegroundValue(uint8_t ForegroundValue)
+
+Set/Get the value used to mark the true pixels of the operator.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterImageFilter::ToString "/**
+std::string itk::simple::GreaterImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterImageFilter::~GreaterImageFilter "/**
+itk::simple::GreaterImageFilter::~GreaterImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::GridImageSource "/**
+
+Generate an n-dimensional image of a grid.
+
+
+GridImageSource generates an image of a grid. From the abstract... \"Certain classes
+of images find disparate use amongst members of the ITK community for
+such purposes as visualization, simulation, testing, etc. Currently
+there exists two derived classes from the ImageSource class used for
+generating specific images for various applications, viz.
+RandomImageSource and GaussianImageSource . We propose to add to this
+set with the class GridImageSource which, obviously enough, produces a
+grid image. Such images are useful for visualizing deformation when
+used in conjunction with the WarpImageFilter , simulating magnetic
+resonance tagging images, or creating optical illusions with which to
+amaze your friends.\"
+
+The output image may be of any dimension.
+
+
+Tustison N., Avants B., Gee J. University of Pennsylvania
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/475
+See:
+ itk::simple::GridImageSource for the procedural interface
+
+ itk::GridImageSource for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkGridImageSource.h
+*/"
+
+%javamethodmodifiers  itk::simple::GridImageSource::Execute "/**
+Image itk::simple::GridImageSource::Execute()
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GridImageSource::Execute "/**
+Image itk::simple::GridImageSource::Execute(PixelIDValueEnum outputPixelType, const std::vector< unsigned int >
+&size, const std::vector< double > &sigma, const std::vector< double >
+&gridSpacing, const std::vector< double > &gridOffset, double scale,
+const std::vector< double > &origin, const std::vector< double >
+&spacing, std::vector< double > direction)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GridImageSource::GetDirection "/**
+std::vector<double> itk::simple::GridImageSource::GetDirection() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GridImageSource::GetGridOffset "/**
+std::vector<double> itk::simple::GridImageSource::GetGridOffset() const
+
+Set/Get the grid offset.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GridImageSource::GetGridSpacing "/**
+std::vector<double> itk::simple::GridImageSource::GetGridSpacing() const
+
+Set/Get the grid spacing of the peaks.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GridImageSource::GetName "/**
+std::string itk::simple::GridImageSource::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GridImageSource::GetOrigin "/**
+std::vector<double> itk::simple::GridImageSource::GetOrigin() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GridImageSource::GetOutputPixelType "/**
+PixelIDValueEnum itk::simple::GridImageSource::GetOutputPixelType() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GridImageSource::GetScale "/**
+double itk::simple::GridImageSource::GetScale() const
+
+Set/Get the scale factor to multiply the true value of the grid.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GridImageSource::GetSigma "/**
+std::vector<double> itk::simple::GridImageSource::GetSigma() const
+
+Set/Get the standard deviation of the Gaussians or width of the box
+functions.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GridImageSource::GetSize "/**
+std::vector<unsigned int> itk::simple::GridImageSource::GetSize() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GridImageSource::GetSpacing "/**
+std::vector<double> itk::simple::GridImageSource::GetSpacing() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GridImageSource::GridImageSource "/**
+itk::simple::GridImageSource::GridImageSource()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GridImageSource::SetDirection "/**
+Self& itk::simple::GridImageSource::SetDirection(std::vector< double > Direction)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GridImageSource::SetGridOffset "/**
+Self& itk::simple::GridImageSource::SetGridOffset(const std::vector< double > &GridOffset)
+
+Set/Get the grid offset.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GridImageSource::SetGridSpacing "/**
+Self& itk::simple::GridImageSource::SetGridSpacing(const std::vector< double > &GridSpacing)
+
+Set/Get the grid spacing of the peaks.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GridImageSource::SetOrigin "/**
+Self& itk::simple::GridImageSource::SetOrigin(const std::vector< double > &Origin)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GridImageSource::SetOutputPixelType "/**
+Self& itk::simple::GridImageSource::SetOutputPixelType(PixelIDValueEnum OutputPixelType)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GridImageSource::SetScale "/**
+Self& itk::simple::GridImageSource::SetScale(double Scale)
+
+Set/Get the scale factor to multiply the true value of the grid.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GridImageSource::SetSigma "/**
+Self& itk::simple::GridImageSource::SetSigma(const std::vector< double > &Sigma)
+
+Set/Get the standard deviation of the Gaussians or width of the box
+functions.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GridImageSource::SetSigma "/**
+Self& itk::simple::GridImageSource::SetSigma(double value)
+
+Set the values of the Sigma vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GridImageSource::SetSize "/**
+Self& itk::simple::GridImageSource::SetSize(const std::vector< unsigned int > &Size)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GridImageSource::SetSpacing "/**
+Self& itk::simple::GridImageSource::SetSpacing(const std::vector< double > &Spacing)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GridImageSource::ToString "/**
+std::string itk::simple::GridImageSource::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GridImageSource::~GridImageSource "/**
+itk::simple::GridImageSource::~GridImageSource()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::HConcaveImageFilter "/**
+
+Identify local minima whose depth below the baseline is greater than
+h.
+
+
+HConcaveImageFilter extract local minima that are more than h intensity units below the
+(local) background. This has the effect of extracting objects that are
+darker than the background by at least h intensity units.
+
+This filter uses the HMinimaImageFilter .
+
+Geodesic morphology and the H-Convex algorithm is described in Chapter
+6 of Pierre Soille's book \"Morphological Image Analysis: Principles
+and Applications\", Second Edition, Springer, 2003.
+
+
+See:
+ GrayscaleGeodesicDilateImageFilter , HMaximaImageFilter ,
+
+ MorphologyImageFilter , GrayscaleDilateImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter
+
+ itk::simple::HConcave for the procedural interface
+
+ itk::HConcaveImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkHConcaveImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::HConcaveImageFilter::Execute "/**
+Image itk::simple::HConcaveImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HConcaveImageFilter::Execute "/**
+Image itk::simple::HConcaveImageFilter::Execute(const Image &image1, double height, bool fullyConnected)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HConcaveImageFilter::FullyConnectedOff "/**
+Self& itk::simple::HConcaveImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HConcaveImageFilter::FullyConnectedOn "/**
+Self& itk::simple::HConcaveImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HConcaveImageFilter::GetFullyConnected "/**
+bool itk::simple::HConcaveImageFilter::GetFullyConnected() const
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HConcaveImageFilter::GetHeight "/**
+double itk::simple::HConcaveImageFilter::GetHeight() const
+
+Set/Get the height that a local maximum must be above the local
+background (local contrast) in order to survive the processing. Local
+maxima below this value are replaced with an estimate of the local
+background.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HConcaveImageFilter::GetName "/**
+std::string itk::simple::HConcaveImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HConcaveImageFilter::HConcaveImageFilter "/**
+itk::simple::HConcaveImageFilter::HConcaveImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HConcaveImageFilter::SetFullyConnected "/**
+Self& itk::simple::HConcaveImageFilter::SetFullyConnected(bool FullyConnected)
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HConcaveImageFilter::SetHeight "/**
+Self& itk::simple::HConcaveImageFilter::SetHeight(double Height)
+
+Set/Get the height that a local maximum must be above the local
+background (local contrast) in order to survive the processing. Local
+maxima below this value are replaced with an estimate of the local
+background.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HConcaveImageFilter::ToString "/**
+std::string itk::simple::HConcaveImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HConcaveImageFilter::~HConcaveImageFilter "/**
+itk::simple::HConcaveImageFilter::~HConcaveImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::HConvexImageFilter "/**
+
+Identify local maxima whose height above the baseline is greater than
+h.
+
+
+HConvexImageFilter extract local maxima that are more than h intensity units above the
+(local) background. This has the effect of extracting objects that are
+brighter than background by at least h intensity units.
+
+This filter uses the HMaximaImageFilter .
+
+Geodesic morphology and the H-Convex algorithm is described in Chapter
+6 of Pierre Soille's book \"Morphological Image Analysis: Principles
+and Applications\", Second Edition, Springer, 2003.
+
+
+See:
+ GrayscaleGeodesicDilateImageFilter , HMinimaImageFilter
+
+ MorphologyImageFilter , GrayscaleDilateImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter
+
+ itk::simple::HConvex for the procedural interface
+
+ itk::HConvexImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkHConvexImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::HConvexImageFilter::Execute "/**
+Image itk::simple::HConvexImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HConvexImageFilter::Execute "/**
+Image itk::simple::HConvexImageFilter::Execute(const Image &image1, double height, bool fullyConnected)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HConvexImageFilter::FullyConnectedOff "/**
+Self& itk::simple::HConvexImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HConvexImageFilter::FullyConnectedOn "/**
+Self& itk::simple::HConvexImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HConvexImageFilter::GetFullyConnected "/**
+bool itk::simple::HConvexImageFilter::GetFullyConnected() const
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HConvexImageFilter::GetHeight "/**
+double itk::simple::HConvexImageFilter::GetHeight() const
+
+Set/Get the height that a local maximum must be above the local
+background (local contrast) in order to survive the processing. Local
+maxima below this value are replaced with an estimate of the local
+background.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HConvexImageFilter::GetName "/**
+std::string itk::simple::HConvexImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HConvexImageFilter::HConvexImageFilter "/**
+itk::simple::HConvexImageFilter::HConvexImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HConvexImageFilter::SetFullyConnected "/**
+Self& itk::simple::HConvexImageFilter::SetFullyConnected(bool FullyConnected)
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HConvexImageFilter::SetHeight "/**
+Self& itk::simple::HConvexImageFilter::SetHeight(double Height)
+
+Set/Get the height that a local maximum must be above the local
+background (local contrast) in order to survive the processing. Local
+maxima below this value are replaced with an estimate of the local
+background.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HConvexImageFilter::ToString "/**
+std::string itk::simple::HConvexImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HConvexImageFilter::~HConvexImageFilter "/**
+itk::simple::HConvexImageFilter::~HConvexImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::HMaximaImageFilter "/**
+
+Suppress local maxima whose height above the baseline is less than h.
+
+
+HMaximaImageFilter suppresses local maxima that are less than h intensity units above
+the (local) background. This has the effect of smoothing over the
+\"high\" parts of the noise in the image without smoothing over large
+changes in intensity (region boundaries). See the HMinimaImageFilter to suppress the local minima whose depth is less than h intensity
+units below the (local) background.
+
+If the output of HMaximaImageFilter is subtracted from the original image, the signicant \"peaks\" in the
+image can be identified. This is what the HConvexImageFilter provides.
+
+This filter uses the ReconstructionByDilationImageFilter . It provides its own input as the \"mask\" input to the geodesic
+dilation. The \"marker\" image for the geodesic dilation is the input
+image minus the height parameter h.
+
+Geodesic morphology and the H-Maxima algorithm is described in Chapter
+6 of Pierre Soille's book \"Morphological Image Analysis: Principles
+and Applications\", Second Edition, Springer, 2003.
+
+The height parameter is set using SetHeight.
+
+
+See:
+ ReconstructionByDilationImageFilter , HMinimaImageFilter , HConvexImageFilter
+
+ MorphologyImageFilter , GrayscaleDilateImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter
+
+ itk::simple::HMaxima for the procedural interface
+
+ itk::HMaximaImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkHMaximaImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::HMaximaImageFilter::Execute "/**
+Image itk::simple::HMaximaImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HMaximaImageFilter::Execute "/**
+Image itk::simple::HMaximaImageFilter::Execute(const Image &image1, double height)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HMaximaImageFilter::GetHeight "/**
+double itk::simple::HMaximaImageFilter::GetHeight() const
+
+Set/Get the height that a local maximum must be above the local
+background (local contrast) in order to survive the processing. Local
+maxima below this value are replaced with an estimate of the local
+background.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HMaximaImageFilter::GetName "/**
+std::string itk::simple::HMaximaImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HMaximaImageFilter::HMaximaImageFilter "/**
+itk::simple::HMaximaImageFilter::HMaximaImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HMaximaImageFilter::SetHeight "/**
+Self& itk::simple::HMaximaImageFilter::SetHeight(double Height)
+
+Set/Get the height that a local maximum must be above the local
+background (local contrast) in order to survive the processing. Local
+maxima below this value are replaced with an estimate of the local
+background.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HMaximaImageFilter::ToString "/**
+std::string itk::simple::HMaximaImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HMaximaImageFilter::~HMaximaImageFilter "/**
+itk::simple::HMaximaImageFilter::~HMaximaImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::HMinimaImageFilter "/**
+
+Suppress local minima whose depth below the baseline is less than h.
+
+
+HMinimaImageFilter suppresses local minima that are less than h intensity units below
+the (local) background. This has the effect of smoothing over the
+\"low\" parts of the noise in the image without smoothing over large
+changes in intensity (region boundaries). See the HMaximaImageFilter to suppress the local maxima whose height is less than h intensity
+units above the (local) background.
+
+If original image is subtracted from the output of HMinimaImageFilter , the signicant \"valleys\" in the image can be identified. This is
+what the HConcaveImageFilter provides.
+
+This filter uses the GrayscaleGeodesicErodeImageFilter . It provides its own input as the \"mask\" input to the geodesic
+dilation. The \"marker\" image for the geodesic dilation is the input
+image plus the height parameter h.
+
+Geodesic morphology and the H-Minima algorithm is described in Chapter
+6 of Pierre Soille's book \"Morphological Image Analysis: Principles
+and Applications\", Second Edition, Springer, 2003.
+
+
+See:
+ GrayscaleGeodesicDilateImageFilter , HMinimaImageFilter , HConvexImageFilter
+
+ MorphologyImageFilter , GrayscaleDilateImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter
+
+ itk::simple::HMinima for the procedural interface
+
+ itk::HMinimaImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkHMinimaImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::HMinimaImageFilter::Execute "/**
+Image itk::simple::HMinimaImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HMinimaImageFilter::Execute "/**
+Image itk::simple::HMinimaImageFilter::Execute(const Image &image1, double height, bool fullyConnected)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HMinimaImageFilter::FullyConnectedOff "/**
+Self& itk::simple::HMinimaImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HMinimaImageFilter::FullyConnectedOn "/**
+Self& itk::simple::HMinimaImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HMinimaImageFilter::GetFullyConnected "/**
+bool itk::simple::HMinimaImageFilter::GetFullyConnected() const
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HMinimaImageFilter::GetHeight "/**
+double itk::simple::HMinimaImageFilter::GetHeight() const
+
+Set/Get the height that a local maximum must be above the local
+background (local contrast) in order to survive the processing. Local
+maxima below this value are replaced with an estimate of the local
+background.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HMinimaImageFilter::GetName "/**
+std::string itk::simple::HMinimaImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HMinimaImageFilter::HMinimaImageFilter "/**
+itk::simple::HMinimaImageFilter::HMinimaImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HMinimaImageFilter::SetFullyConnected "/**
+Self& itk::simple::HMinimaImageFilter::SetFullyConnected(bool FullyConnected)
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HMinimaImageFilter::SetHeight "/**
+Self& itk::simple::HMinimaImageFilter::SetHeight(double Height)
+
+Set/Get the height that a local maximum must be above the local
+background (local contrast) in order to survive the processing. Local
+maxima below this value are replaced with an estimate of the local
+background.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HMinimaImageFilter::ToString "/**
+std::string itk::simple::HMinimaImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HMinimaImageFilter::~HMinimaImageFilter "/**
+itk::simple::HMinimaImageFilter::~HMinimaImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::HalfHermitianToRealInverseFFTImageFilter "/**
+
+Base class for specialized complex-to-real inverse Fast Fourier Transform .
+
+
+This is a base class for the \"inverse\" or \"reverse\" Discrete
+Fourier Transform . This is an abstract base class: the actual implementation is
+provided by the best child class available on the system when the
+object is created via the object factory system.
+
+The input to this filter is assumed to have the same format as the
+output of the RealToHalfHermitianForwardFFTImageFilter . That is, the input is assumed to consist of roughly half the full
+complex image resulting from a real-to-complex discrete Fourier
+transform. This half is expected to be the first half of the image in
+the X-dimension. Because this filter assumes that the input stores
+only about half of the non-redundant complex pixels, the output is
+larger in the X-dimension than it is in the input. To determine the
+actual size of the output image, this filter needs additional
+information in the form of a flag indicating whether the output image
+has an odd size in the X-dimension. Use SetActualXDimensionIsOdd() to set this flag.
+
+
+See:
+ ForwardFFTImageFilter , HalfHermitianToRealInverseFFTImageFilter
+
+ itk::simple::HalfHermitianToRealInverseFFT for the procedural interface
+
+ itk::HalfHermitianToRealInverseFFTImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkHalfHermitianToRealInverseFFTImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::HalfHermitianToRealInverseFFTImageFilter::ActualXDimensionIsOddOff "/**
+Self& itk::simple::HalfHermitianToRealInverseFFTImageFilter::ActualXDimensionIsOddOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HalfHermitianToRealInverseFFTImageFilter::ActualXDimensionIsOddOn "/**
+Self& itk::simple::HalfHermitianToRealInverseFFTImageFilter::ActualXDimensionIsOddOn()
+
+Set the value of ActualXDimensionIsOdd to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HalfHermitianToRealInverseFFTImageFilter::Execute "/**
+Image itk::simple::HalfHermitianToRealInverseFFTImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HalfHermitianToRealInverseFFTImageFilter::Execute "/**
+Image itk::simple::HalfHermitianToRealInverseFFTImageFilter::Execute(const Image &image1, bool actualXDimensionIsOdd)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HalfHermitianToRealInverseFFTImageFilter::GetActualXDimensionIsOdd "/**
+bool itk::simple::HalfHermitianToRealInverseFFTImageFilter::GetActualXDimensionIsOdd() const
+
+Was the original truncated dimension size odd?
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HalfHermitianToRealInverseFFTImageFilter::GetName "/**
+std::string itk::simple::HalfHermitianToRealInverseFFTImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HalfHermitianToRealInverseFFTImageFilter::HalfHermitianToRealInverseFFTImageFilter "/**
+itk::simple::HalfHermitianToRealInverseFFTImageFilter::HalfHermitianToRealInverseFFTImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HalfHermitianToRealInverseFFTImageFilter::SetActualXDimensionIsOdd "/**
+Self& itk::simple::HalfHermitianToRealInverseFFTImageFilter::SetActualXDimensionIsOdd(bool ActualXDimensionIsOdd)
+
+Was the original truncated dimension size odd?
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HalfHermitianToRealInverseFFTImageFilter::ToString "/**
+std::string itk::simple::HalfHermitianToRealInverseFFTImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HalfHermitianToRealInverseFFTImageFilter::~HalfHermitianToRealInverseFFTImageFilter "/**
+itk::simple::HalfHermitianToRealInverseFFTImageFilter::~HalfHermitianToRealInverseFFTImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::HashImageFilter "/**
+
+Compute the sha1 or md5 hash of an image.
+
+
+
+See:
+ itk::simple::Hash for the procedural interface
+
+
+C++ includes: sitkHashImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::HashImageFilter::Execute "/**
+std::string itk::simple::HashImageFilter::Execute(const Image &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HashImageFilter::GetHashFunction "/**
+HashFunction itk::simple::HashImageFilter::GetHashFunction() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HashImageFilter::GetName "/**
+std::string itk::simple::HashImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HashImageFilter::HashImageFilter "/**
+itk::simple::HashImageFilter::HashImageFilter()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HashImageFilter::SetHashFunction "/**
+Self& itk::simple::HashImageFilter::SetHashFunction(HashFunction hashFunction)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HashImageFilter::ToString "/**
+std::string itk::simple::HashImageFilter::ToString() const
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::HausdorffDistanceImageFilter "/**
+
+Computes the Hausdorff distance between the set of non-zero pixels of
+two images.
+
+
+HausdorffDistanceImageFilter computes the distance between the set non-zero pixels of two images
+using the following formula: \\\\[ H(A,B) = \\\\max(h(A,B),h(B,A)) \\\\] where \\\\[ h(A,B) = \\\\max_{a \\\\in A} \\\\min_{b \\\\in B} \\\\| a -
+b\\\\| \\\\] is the directed Hausdorff distance and $A$ and $B$ are respectively the set of non-zero pixels in the first and second
+input images.
+
+In particular, this filter uses the DirectedHausdorffImageFilter
+inside to compute the two directed distances and then select the
+largest of the two.
+
+The Hausdorff distance measures the degree of mismatch between two
+sets and behaves like a metric over the set of all closed bounded sets
+- with properties of identity, symmetry and triangle inequality.
+
+This filter requires the largest possible region of the first image
+and the same corresponding region in the second image. It behaves as
+filter with two inputs and one output. Thus it can be inserted in a
+pipeline with other filters. The filter passes the first input through
+unmodified.
+
+This filter is templated over the two input image types. It assume
+both images have the same number of dimensions.
+
+
+See:
+ DirectedHausdorffDistanceImageFilter
+
+ itk::HausdorffDistanceImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkHausdorffDistanceImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::HausdorffDistanceImageFilter::Execute "/**
+void itk::simple::HausdorffDistanceImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HausdorffDistanceImageFilter::GetAverageHausdorffDistance "/**
+double itk::simple::HausdorffDistanceImageFilter::GetAverageHausdorffDistance() const
+
+Return the computed Hausdorff distance.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HausdorffDistanceImageFilter::GetHausdorffDistance "/**
+double itk::simple::HausdorffDistanceImageFilter::GetHausdorffDistance() const
+
+Return the computed Hausdorff distance.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HausdorffDistanceImageFilter::GetName "/**
+std::string itk::simple::HausdorffDistanceImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HausdorffDistanceImageFilter::HausdorffDistanceImageFilter "/**
+itk::simple::HausdorffDistanceImageFilter::HausdorffDistanceImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HausdorffDistanceImageFilter::ToString "/**
+std::string itk::simple::HausdorffDistanceImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HausdorffDistanceImageFilter::~HausdorffDistanceImageFilter "/**
+itk::simple::HausdorffDistanceImageFilter::~HausdorffDistanceImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::HistogramMatchingImageFilter "/**
+
+Normalize the grayscale values between two images by histogram
+matching.
+
+
+HistogramMatchingImageFilter normalizes the grayscale values of a source image based on the
+grayscale values of a reference image. This filter uses a histogram
+matching technique where the histograms of the two images are matched
+only at a specified number of quantile values.
+
+This filter was originally designed to normalize MR images of the same
+MR protocol and same body part. The algorithm works best if background
+pixels are excluded from both the source and reference histograms. A
+simple background exclusion method is to exclude all pixels whose
+grayscale values are smaller than the mean grayscale value. ThresholdAtMeanIntensityOn() switches on this simple background exclusion method.
+
+The source image can be set via either SetInput() or SetSourceImage()
+. The reference image can be set via SetReferenceImage() .
+
+SetNumberOfHistogramLevels() sets the number of bins used when creating histograms of the source
+and reference images. SetNumberOfMatchPoints() governs the number of quantile values to be matched.
+
+This filter assumes that both the source and reference are of the same
+type and that the input and output image type have the same number of
+dimension and have scalar pixel types.
+
+REFERENCE
+Laszlo G. Nyul, Jayaram K. Udupa, and Xuan Zhang, \"New Variants of a
+Method of MRI Scale Standardization\", IEEE Transactions on Medical
+Imaging, 19(2):143-150, 2000.
+
+See:
+ itk::simple::HistogramMatching for the procedural interface
+
+ itk::HistogramMatchingImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkHistogramMatchingImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::HistogramMatchingImageFilter::Execute "/**
+Image itk::simple::HistogramMatchingImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HistogramMatchingImageFilter::Execute "/**
+Image itk::simple::HistogramMatchingImageFilter::Execute(const Image &image1, const Image &image2, uint32_t
+numberOfHistogramLevels, uint32_t numberOfMatchPoints, bool
+thresholdAtMeanIntensity)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HistogramMatchingImageFilter::GetName "/**
+std::string itk::simple::HistogramMatchingImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HistogramMatchingImageFilter::GetNumberOfHistogramLevels "/**
+uint32_t itk::simple::HistogramMatchingImageFilter::GetNumberOfHistogramLevels() const
+
+Set/Get the number of histogram levels used.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HistogramMatchingImageFilter::GetNumberOfMatchPoints "/**
+uint32_t itk::simple::HistogramMatchingImageFilter::GetNumberOfMatchPoints() const
+
+Set/Get the number of match points used.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HistogramMatchingImageFilter::GetThresholdAtMeanIntensity "/**
+bool itk::simple::HistogramMatchingImageFilter::GetThresholdAtMeanIntensity() const
+
+Set/Get the threshold at mean intensity flag. If true, only source
+(reference) pixels which are greater than the mean source (reference)
+intensity is used in the histogram matching. If false, all pixels are
+used.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HistogramMatchingImageFilter::HistogramMatchingImageFilter "/**
+itk::simple::HistogramMatchingImageFilter::HistogramMatchingImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HistogramMatchingImageFilter::SetNumberOfHistogramLevels "/**
+Self& itk::simple::HistogramMatchingImageFilter::SetNumberOfHistogramLevels(uint32_t NumberOfHistogramLevels)
+
+Set/Get the number of histogram levels used.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HistogramMatchingImageFilter::SetNumberOfMatchPoints "/**
+Self& itk::simple::HistogramMatchingImageFilter::SetNumberOfMatchPoints(uint32_t NumberOfMatchPoints)
+
+Set/Get the number of match points used.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HistogramMatchingImageFilter::SetThresholdAtMeanIntensity "/**
+Self& itk::simple::HistogramMatchingImageFilter::SetThresholdAtMeanIntensity(bool ThresholdAtMeanIntensity)
+
+Set/Get the threshold at mean intensity flag. If true, only source
+(reference) pixels which are greater than the mean source (reference)
+intensity is used in the histogram matching. If false, all pixels are
+used.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HistogramMatchingImageFilter::ThresholdAtMeanIntensityOff "/**
+Self& itk::simple::HistogramMatchingImageFilter::ThresholdAtMeanIntensityOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HistogramMatchingImageFilter::ThresholdAtMeanIntensityOn "/**
+Self& itk::simple::HistogramMatchingImageFilter::ThresholdAtMeanIntensityOn()
+
+Set the value of ThresholdAtMeanIntensity to true or false
+respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HistogramMatchingImageFilter::ToString "/**
+std::string itk::simple::HistogramMatchingImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HistogramMatchingImageFilter::~HistogramMatchingImageFilter "/**
+itk::simple::HistogramMatchingImageFilter::~HistogramMatchingImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::HuangThresholdImageFilter "/**
+
+Threshold an image using the Huang Threshold.
+
+
+This filter creates a binary thresholded image that separates an image
+into foreground and background components. The filter computes the
+threshold using the HuangThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .
+
+
+Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+ Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/10380/3279 or http://www.insight-journal.org/browse/publication/811
+
+
+See:
+ HistogramThresholdImageFilter
+
+ itk::simple::HuangThreshold for the procedural interface
+
+ itk::HuangThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkHuangThresholdImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::HuangThresholdImageFilter::Execute "/**
+Image itk::simple::HuangThresholdImageFilter::Execute(const Image &image, const Image &maskImage)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HuangThresholdImageFilter::Execute "/**
+Image itk::simple::HuangThresholdImageFilter::Execute(const Image &image)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HuangThresholdImageFilter::Execute "/**
+Image itk::simple::HuangThresholdImageFilter::Execute(const Image &image, const Image &maskImage, uint8_t insideValue,
+uint8_t outsideValue, uint32_t numberOfHistogramBins, bool maskOutput,
+uint8_t maskValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HuangThresholdImageFilter::Execute "/**
+Image itk::simple::HuangThresholdImageFilter::Execute(const Image &image, uint8_t insideValue, uint8_t outsideValue,
+uint32_t numberOfHistogramBins, bool maskOutput, uint8_t maskValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HuangThresholdImageFilter::GetInsideValue "/**
+uint8_t itk::simple::HuangThresholdImageFilter::GetInsideValue() const
+
+Get the \"inside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HuangThresholdImageFilter::GetMaskOutput "/**
+bool itk::simple::HuangThresholdImageFilter::GetMaskOutput() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HuangThresholdImageFilter::GetMaskValue "/**
+uint8_t itk::simple::HuangThresholdImageFilter::GetMaskValue() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HuangThresholdImageFilter::GetName "/**
+std::string itk::simple::HuangThresholdImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HuangThresholdImageFilter::GetNumberOfHistogramBins "/**
+uint32_t itk::simple::HuangThresholdImageFilter::GetNumberOfHistogramBins() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HuangThresholdImageFilter::GetOutsideValue "/**
+uint8_t itk::simple::HuangThresholdImageFilter::GetOutsideValue() const
+
+Get the \"outside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HuangThresholdImageFilter::GetThreshold "/**
+double itk::simple::HuangThresholdImageFilter::GetThreshold() const
+
+Get the computed threshold.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HuangThresholdImageFilter::HuangThresholdImageFilter "/**
+itk::simple::HuangThresholdImageFilter::HuangThresholdImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HuangThresholdImageFilter::MaskOutputOff "/**
+Self& itk::simple::HuangThresholdImageFilter::MaskOutputOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HuangThresholdImageFilter::MaskOutputOn "/**
+Self& itk::simple::HuangThresholdImageFilter::MaskOutputOn()
+
+Set the value of MaskOutput to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HuangThresholdImageFilter::SetInsideValue "/**
+Self& itk::simple::HuangThresholdImageFilter::SetInsideValue(uint8_t InsideValue)
+
+Set the \"inside\" pixel value. The default value NumericTraits<OutputPixelType>::max()
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HuangThresholdImageFilter::SetMaskOutput "/**
+Self& itk::simple::HuangThresholdImageFilter::SetMaskOutput(bool MaskOutput)
+
+Do you want the output to be masked by the mask used in histogram
+construction. Only relevant if masking is in use.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HuangThresholdImageFilter::SetMaskValue "/**
+Self& itk::simple::HuangThresholdImageFilter::SetMaskValue(uint8_t MaskValue)
+
+The value in the mask image, if used, indicating voxels that should be
+included. Default is the max of pixel type, as in the
+MaskedImageToHistogramFilter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HuangThresholdImageFilter::SetNumberOfHistogramBins "/**
+Self& itk::simple::HuangThresholdImageFilter::SetNumberOfHistogramBins(uint32_t NumberOfHistogramBins)
+
+Set/Get the number of histogram bins. Defaults is 128.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HuangThresholdImageFilter::SetOutsideValue "/**
+Self& itk::simple::HuangThresholdImageFilter::SetOutsideValue(uint8_t OutsideValue)
+
+Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HuangThresholdImageFilter::ToString "/**
+std::string itk::simple::HuangThresholdImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HuangThresholdImageFilter::~HuangThresholdImageFilter "/**
+itk::simple::HuangThresholdImageFilter::~HuangThresholdImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::Image "/**
+
+The main Image class for SimpleITK.
+
+C++ includes: sitkImage.h
+*/"
+
+%javamethodmodifiers  itk::simple::Image::CopyInformation "/**
+void itk::simple::Image::CopyInformation(const Image &srcImage)
+
+Copy common meta-data from an image to this one.
+
+
+Copies the Origin, Spacing, and Direction from the source image to
+this image. The meta-data dictionary is not copied.
+
+It is required for the source Image's dimension and size to match, this image's attributes, otherwise an
+exception will be generated.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Image::EraseMetaData "/**
+bool itk::simple::Image::EraseMetaData(const std::string &key)
+
+Remove an entry from the meta-data dictionary.
+
+
+Returns true, when the value exists in the dictionary and is removed,
+false otherwise.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Image::GetDepth "/**
+unsigned int itk::simple::Image::GetDepth(void) const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Image::GetDimension "/**
+unsigned int itk::simple::Image::GetDimension(void) const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Image::GetHeight "/**
+unsigned int itk::simple::Image::GetHeight(void) const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Image::GetMetaData "/**
+std::string itk::simple::Image::GetMetaData(const std::string &key) const
+
+Get the value of a meta-data dictionary entry as a string.
+
+
+If the key is not in the dictionary then an exception is thrown.
+
+string types in the dictionary are returned as their native strings.
+Other types are printed to string before returning.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Image::GetMetaDataKeys "/**
+std::vector<std::string> itk::simple::Image::GetMetaDataKeys(void) const
+
+get a vector of keys in from the meta-data dictionary
+
+
+Returns a vector of keys to the key/value entries in the image's meta-
+data dictionary. Iterate through with these keys to get the values.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Image::GetNumberOfComponentsPerPixel "/**
+unsigned int itk::simple::Image::GetNumberOfComponentsPerPixel(void) const
+
+Get the number of components for each pixel.
+
+
+For scalar images this methods returns 1. For vector images the number
+of components for each pixel is returned.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Image::GetNumberOfPixels "/**
+uint64_t itk::simple::Image::GetNumberOfPixels(void) const
+
+Get the number of pixels in the image.
+
+
+To Calculate the total number of values stored continuously for the
+image's buffer, the NumberOfPixels should be multiplied by
+NumberOfComponentsPerPixel in order to account for multiple component
+images.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Image::GetPixelID "/**
+PixelIDValueEnum itk::simple::Image::GetPixelID(void) const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Image::GetPixelIDTypeAsString "/**
+std::string itk::simple::Image::GetPixelIDTypeAsString(void) const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Image::GetPixelIDValue "/**
+PixelIDValueType itk::simple::Image::GetPixelIDValue(void) const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Image::GetSize "/**
+std::vector< unsigned int > itk::simple::Image::GetSize(void) const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Image::GetWidth "/**
+unsigned int itk::simple::Image::GetWidth(void) const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Image::HasMetaDataKey "/**
+bool itk::simple::Image::HasMetaDataKey(const std::string &key) const
+
+Query the meta-data dictionary for the existence of a key.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Image::Image "/**
+itk::simple::Image::Image(void)
+
+Default constructor, creates an image of size 0.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Image::Image "/**
+itk::simple::Image::Image(const Image &img)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Image::MakeUnique "/**
+void itk::simple::Image::MakeUnique(void)
+
+Performs actually coping if needed to make object unique.
+
+
+The Image class by default performs lazy coping and assignment. This method
+make sure that coping actually happens to the itk::Image pointed to is only pointed to by this object.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Image::SetMetaData "/**
+void itk::simple::Image::SetMetaData(const std::string &key, const std::string &value)
+
+Set an entry in the meta-data dictionary.
+
+
+Replaces or creates an entry in the image's meta-data dictionary.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Image::ToString "/**
+std::string itk::simple::Image::ToString(void) const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Image::TransformContinuousIndexToPhysicalPoint "/**
+std::vector< double > itk::simple::Image::TransformContinuousIndexToPhysicalPoint(const std::vector< double > &index) const
+
+Transform continuous index to physical point
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Image::TransformIndexToPhysicalPoint "/**
+std::vector< double > itk::simple::Image::TransformIndexToPhysicalPoint(const std::vector< int64_t > &index) const
+
+Transform index to physical point
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Image::TransformPhysicalPointToContinuousIndex "/**
+std::vector< double > itk::simple::Image::TransformPhysicalPointToContinuousIndex(const std::vector< double > &point) const
+
+Transform physical point to continuous index
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Image::TransformPhysicalPointToIndex "/**
+std::vector< int64_t > itk::simple::Image::TransformPhysicalPointToIndex(const std::vector< double > &point) const
+
+Transform physical point to index
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Image::~Image "/**
+virtual itk::simple::Image::~Image()
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ImageFileReader "/**
+
+Read a 2D or 3D image and return a smart pointer to a SimpleITK image.
+
+
+This reader handles scalar and vector images and returns an image with
+the same type as the file on disk.
+
+
+See:
+ itk::simple::ReadImage for the procedural interface
+
+
+C++ includes: sitkImageFileReader.h
+*/"
+
+%javamethodmodifiers  itk::simple::ImageFileReader::Execute "/**
+Image itk::simple::ImageFileReader::Execute()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageFileReader::GetFileName "/**
+std::string itk::simple::ImageFileReader::GetFileName() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageFileReader::GetName "/**
+virtual std::string itk::simple::ImageFileReader::GetName() const
+
+return user readable name fo the filter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageFileReader::ImageFileReader "/**
+itk::simple::ImageFileReader::ImageFileReader()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageFileReader::SetFileName "/**
+Self& itk::simple::ImageFileReader::SetFileName(const std::string &fn)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageFileReader::ToString "/**
+virtual std::string itk::simple::ImageFileReader::ToString() const
+
+Print ourselves to string
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ImageFileWriter "/**
+
+Write out a SimpleITK image to the specified file location.
+
+
+This writer tries to write the image out using the image's type to the
+location specified in FileName. If writing fails, an ITK exception is
+thrown.
+
+
+See:
+ itk::simple::WriteImage for the procedural interface
+
+
+C++ includes: sitkImageFileWriter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ImageFileWriter::Execute "/**
+Self& itk::simple::ImageFileWriter::Execute(const Image &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageFileWriter::Execute "/**
+Self& itk::simple::ImageFileWriter::Execute(const Image &, const std::string &inFileName, bool inUseCompression)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageFileWriter::GetFileName "/**
+std::string itk::simple::ImageFileWriter::GetFileName() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageFileWriter::GetName "/**
+virtual std::string itk::simple::ImageFileWriter::GetName() const
+
+return user readable name fo the filter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageFileWriter::ImageFileWriter "/**
+itk::simple::ImageFileWriter::ImageFileWriter(void)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageFileWriter::SetFileName "/**
+Self& itk::simple::ImageFileWriter::SetFileName(const std::string &fileName)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageFileWriter::ToString "/**
+virtual std::string itk::simple::ImageFileWriter::ToString() const
+
+Print ourselves to string
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ImageFilter "/**
+
+The base interface for SimpleITK filters that take one input image.
+
+
+All SimpleITK filters which take one input image should inherit from
+this class
+
+C++ includes: sitkImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ImageFilter::ImageFilter "/**
+itk::simple::ImageFilter< N >::ImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageFilter::~ImageFilter "/**
+virtual itk::simple::ImageFilter< N >::~ImageFilter()=0
+
+Default Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ImageReaderBase "/**
+
+An abract base class for image readers.
+
+C++ includes: sitkImageReaderBase.h
+*/"
+
+%javamethodmodifiers  itk::simple::ImageReaderBase::Execute "/**
+virtual Image itk::simple::ImageReaderBase::Execute()=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageReaderBase::ImageReaderBase "/**
+itk::simple::ImageReaderBase::ImageReaderBase()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageReaderBase::ToString "/**
+virtual std::string itk::simple::ImageReaderBase::ToString() const
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ImageRegistrationMethod "/**
+
+An interface method to the modular ITKv4 registration framework.
+
+
+This interface method class encapsulates typical registration usage by
+incorporating all the necessary elements for performing a simple image
+registration between two images. This method also allows for
+multistage registration whereby each stage is characterized by
+possibly different transforms and different image metrics. For
+example, many users will want to perform a linear registration
+followed by deformable registration where both stages are performed in
+multiple levels. Each level can be characterized by:
+
+
+the resolution of the virtual domain image (see below)
+
+smoothing of the fixed and moving images
+ Multiple stages are handled by linking multiple instantiations of
+this class where the output transform is added to the optional
+composite transform input.
+
+
+See:
+ itk::ImageRegistrationMethodv4
+
+ itk::ImageToImageMetricv4
+
+ itk::ObjectToObjectOptimizerBaseTemplate
+
+
+C++ includes: sitkImageRegistrationMethod.h
+*/"
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::Execute "/**
+Transform itk::simple::ImageRegistrationMethod::Execute(const Image &fixed, const Image &moving)
+
+Optimize the configured registration problem.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::GetCurrentLevel "/**
+unsigned int itk::simple::ImageRegistrationMethod::GetCurrentLevel() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::GetMetricValue "/**
+double itk::simple::ImageRegistrationMethod::GetMetricValue() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::GetName "/**
+std::string itk::simple::ImageRegistrationMethod::GetName() const
+
+return user readable name for the filter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::GetOptimizerConvergenceValue "/**
+double itk::simple::ImageRegistrationMethod::GetOptimizerConvergenceValue() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::GetOptimizerIteration "/**
+unsigned int itk::simple::ImageRegistrationMethod::GetOptimizerIteration() const
+
+Active measurements which can be obtained during call backs.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::GetOptimizerLearningRate "/**
+double itk::simple::ImageRegistrationMethod::GetOptimizerLearningRate() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::GetOptimizerPosition "/**
+std::vector<double> itk::simple::ImageRegistrationMethod::GetOptimizerPosition() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::GetOptimizerScales "/**
+std::vector<double> itk::simple::ImageRegistrationMethod::GetOptimizerScales() const
+
+Get the OptimizerScales.
+
+
+If the scales are explicitly set then this method returns those
+values. If an estimator is used then this is an active measurement
+returning the scales estimated by the estimator and is only available
+during execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::GetOptimizerStopConditionDescription "/**
+std::string itk::simple::ImageRegistrationMethod::GetOptimizerStopConditionDescription() const
+
+Measurement updated at the end of execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::ImageRegistrationMethod "/**
+itk::simple::ImageRegistrationMethod::ImageRegistrationMethod()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::MetricEvaluate "/**
+double itk::simple::ImageRegistrationMethod::MetricEvaluate(const Image &fixed, const Image &moving)
+
+Get the value of the metric given the state of the method.
+
+
+Passing a fixed and moving image, this method constructs and
+configures a metric object to obtain the value. This will take into
+consideration the current transforms, metric, interpolator, and image
+masks. It does not take into consideration the sampling strategy,
+smoothing sigmas, or the shrink factors.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::SetMetricAsANTSNeighborhoodCorrelation "/**
+Self& itk::simple::ImageRegistrationMethod::SetMetricAsANTSNeighborhoodCorrelation(unsigned int radius)
+
+Use normalized cross correlation using a small neighborhood for each
+voxel between two images, with speed optimizations for dense
+registration.
+
+
+
+See:
+ itk::ANTSNeighborhoodCorrelationImageToImageMetricv4
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::SetMetricAsCorrelation "/**
+Self& itk::simple::ImageRegistrationMethod::SetMetricAsCorrelation()
+
+Use negative normalized cross correlation image metric.
+
+
+
+See:
+ itk::CorrelationImageToImageMetricv4
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::SetMetricAsDemons "/**
+Self& itk::simple::ImageRegistrationMethod::SetMetricAsDemons(double intensityDifferenceThreshold=0.001)
+
+Use demons image metric.
+
+
+
+See:
+ itk::DemonsImageToImageMetricv4
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::SetMetricAsJointHistogramMutualInformation "/**
+Self& itk::simple::ImageRegistrationMethod::SetMetricAsJointHistogramMutualInformation(unsigned int numberOfHistogramBins=20, double
+varianceForJointPDFSmoothing=1.5)
+
+Use mutual information between two images.
+
+
+
+See:
+ itk::JointHistogramMutualInformationImageToImageMetricv4
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::SetMetricAsMattesMutualInformation "/**
+Self& itk::simple::ImageRegistrationMethod::SetMetricAsMattesMutualInformation(unsigned int numberOfHistogramBins=50)
+
+Use the mutual information between two images to be registered using
+the method of Mattes et al.
+
+
+
+See:
+ itk::MattesMutualInformationImageToImageMetricv4
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::SetMetricAsMeanSquares "/**
+Self& itk::simple::ImageRegistrationMethod::SetMetricAsMeanSquares()
+
+Use negative means squares image metric.
+
+
+
+See:
+ itk::MeanSquaresImageToImageMetricv4
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::SetMetricFixedMask "/**
+Self& itk::simple::ImageRegistrationMethod::SetMetricFixedMask(const Image &binaryMask)
+
+Set an image mask in order to restrict the sampled points for the
+metric.
+
+
+The image is expected to be in the same physical space as the
+FixedImage, and if the pixel type is not UInt8 than the image will
+base cast.
+
+
+See:
+ itk::ImageToImageMetricv4::SetFixedImageMask
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::SetMetricMovingMask "/**
+Self& itk::simple::ImageRegistrationMethod::SetMetricMovingMask(const Image &binaryMask)
+
+Set an image mask in order to restrict the sampled points for the
+metric in the moving image space.
+
+
+The image is expected to be in the same physical space as the
+MovingImage, and if the pixel type is not UInt8 than the image will
+base cast.
+
+
+See:
+ itk::ImageToImageMetricv4::SetMovingImageMask
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::SetMetricSamplingStrategy "/**
+Self& itk::simple::ImageRegistrationMethod::SetMetricSamplingStrategy(MetricSamplingStrategyType strategy)
+
+Set sampling strategy for sample generation.
+
+
+
+See:
+ itk::ImageRegistrationMethodv4::SetMetricSamplingStrategy
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::SetOptimizerAsAmoeba "/**
+Self& itk::simple::ImageRegistrationMethod::SetOptimizerAsAmoeba(double simplexDelta, unsigned int numberOfIterations, double
+parametersConvergenceTolerance=1e-8, double
+functionConvergenceTolerance=1e-4, bool withRestarts=false)
+
+Set optimizer to Nelder-Mead downhill simplex algorithm.
+
+
+
+See:
+ itk::AmoebaOptimizerv4
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::SetOptimizerAsConjugateGradientLineSearch "/**
+Self& itk::simple::ImageRegistrationMethod::SetOptimizerAsConjugateGradientLineSearch(double learningRate, unsigned int numberOfIterations, double
+convergenceMinimumValue=1e-6, unsigned int convergenceWindowSize=10,
+double lineSearchLowerLimit=0, double lineSearchUpperLimit=5.0, double
+lineSearchEpsilon=0.01, unsigned int lineSearchMaximumIterations=20,
+EstimateLearningRateType estimateLearningRate=Once, double
+maximumStepSizeInPhysicalUnits=0.0)
+
+Conjugate gradient descent optimizer with a golden section line search
+for nonlinear optimization.
+
+
+
+See:
+ itk::ConjugateGradientLineSearchOptimizerv4Template
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::SetOptimizerAsExhaustive "/**
+Self& itk::simple::ImageRegistrationMethod::SetOptimizerAsExhaustive(const std::vector< unsigned int > &numberOfSteps, double
+stepLength=1.0)
+
+Set the optimizer to sample the metric at regular steps.
+
+
+At each iteration the GetOptimizerIteration, can be used to index into
+the sampling grid along with the GetCurrentMetricValue.
+
+The resulting transform and value at the end of execution is the best
+location.
+
+The OptimizerScales can be used to perform anisotropic sampling.
+
+
+This optimizer is not suitable for use in conjunction with the
+multiple scales.
+
+See:
+ itk::ExhaustiveOptimizerv4
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::SetOptimizerAsGradientDescent "/**
+Self& itk::simple::ImageRegistrationMethod::SetOptimizerAsGradientDescent(double learningRate, unsigned int numberOfIterations, double
+convergenceMinimumValue=1e-6, unsigned int convergenceWindowSize=10,
+EstimateLearningRateType estimateLearningRate=Once, double
+maximumStepSizeInPhysicalUnits=0.0)
+
+Gradient descent optimizer.
+
+
+
+See:
+ itk::GradientDescentOptimizerv4Template
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::SetOptimizerAsGradientDescentLineSearch "/**
+Self& itk::simple::ImageRegistrationMethod::SetOptimizerAsGradientDescentLineSearch(double learningRate, unsigned int numberOfIterations, double
+convergenceMinimumValue=1e-6, unsigned int convergenceWindowSize=10,
+double lineSearchLowerLimit=0, double lineSearchUpperLimit=5.0, double
+lineSearchEpsilon=0.01, unsigned int lineSearchMaximumIterations=20,
+EstimateLearningRateType estimateLearningRate=Once, double
+maximumStepSizeInPhysicalUnits=0.0)
+
+Gradient descent optimizer with a golden section line search.
+
+
+
+See:
+ itk::GradientDescentLineSearchOptimizerv4Template
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::SetOptimizerAsLBFGSB "/**
+Self& itk::simple::ImageRegistrationMethod::SetOptimizerAsLBFGSB(double gradientConvergenceTolerance=1e-5, unsigned int
+numberOfIterations=500, unsigned int maximumNumberOfCorrections=5,
+unsigned int maximumNumberOfFunctionEvaluations=2000, double
+costFunctionConvergenceFactor=1e+7, double
+lowerBound=std::numeric_limits< double >::min(), double
+upperBound=std::numeric_limits< double >::max(), bool trace=false)
+
+Limited memory Broyden Fletcher Goldfarb Shannon minimization with
+simple bounds.
+
+
+The default parameters utilize LBFGSB in unbounded mode.
+
+
+See:
+ itk::LBFGSBOptimizerv4
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::SetOptimizerAsOnePlusOneEvolutionary "/**
+Self& itk::simple::ImageRegistrationMethod::SetOptimizerAsOnePlusOneEvolutionary(unsigned int numberOfIterations=100, double epsilon=1.5e-4, double
+initialRadius=1.01, double growthFactor=-1.0, double
+shrinkFactor=-1.0, unsigned int seed=sitkWallClock)
+
+1+1 evolutionary optimizer strategy.
+
+
+The seed parameter is used to seed the pseudo-random number generator.
+If the seed parameter is 0, then the wall clock is used to seed,
+otherwise the fixed seed is used for reproducible behavior.
+
+
+See:
+ itk::OnePlusOneEvolutionaryOptimizerv4
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::SetOptimizerAsPowell "/**
+Self& itk::simple::ImageRegistrationMethod::SetOptimizerAsPowell(unsigned int numberOfIterations=100, unsigned int
+maximumLineIterations=100, double stepLength=1, double
+stepTolerance=1e-6, double valueTolerance=1e-6)
+
+Powell optimization using Brent line search.
+
+
+
+See:
+ itk::PowellOptimizerv4
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::SetOptimizerAsRegularStepGradientDescent "/**
+Self& itk::simple::ImageRegistrationMethod::SetOptimizerAsRegularStepGradientDescent(double learningRate, double minStep, unsigned int numberOfIterations,
+double relaxationFactor=0.5, double gradientMagnitudeTolerance=1e-4,
+EstimateLearningRateType estimateLearningRate=Never, double
+maximumStepSizeInPhysicalUnits=0.0)
+
+Regular Step Gradient descent optimizer.
+
+
+
+See:
+ itk::RegularStepGradientDescentOptimizerv4
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::SetOptimizerScales "/**
+Self& itk::simple::ImageRegistrationMethod::SetOptimizerScales(const std::vector< double > &scales)
+
+Manually set per parameter weighting for the transform parameters.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::SetOptimizerScalesFromIndexShift "/**
+Self& itk::simple::ImageRegistrationMethod::SetOptimizerScalesFromIndexShift(unsigned int centralRegionRadius=5, double
+smallParameterVariation=0.01)
+
+Estimate scales from maximum voxel shift in index space cause by
+parameter change.
+
+
+
+See:
+ itk::RegistrationParameterScalesFromIndexShift
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::SetOptimizerScalesFromJacobian "/**
+Self& itk::simple::ImageRegistrationMethod::SetOptimizerScalesFromJacobian(unsigned int centralRegionRadius=5)
+
+Estimate scales from Jacobian norms.
+
+
+This scales estimator works well with versor based transforms.
+
+
+See:
+ itk::RegistrationParameterScalesFromJacobian
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::SetOptimizerScalesFromPhysicalShift "/**
+Self& itk::simple::ImageRegistrationMethod::SetOptimizerScalesFromPhysicalShift(unsigned int centralRegionRadius=5, double
+smallParameterVariation=0.01)
+
+Estimating scales of transform parameters a step sizes, from the
+maximum voxel shift in physical space caused by a parameter change.
+
+
+
+See:
+ itk::RegistrationParameterScalesFromPhysicalShift
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::SetShrinkFactorsPerLevel "/**
+Self& itk::simple::ImageRegistrationMethod::SetShrinkFactorsPerLevel(const std::vector< unsigned int > &shrinkFactors)
+
+Set the shrink factors for each level where each level has the same
+shrink factor for each dimension.
+
+
+
+See:
+ itk::ImageRegistrationMethodv4::SetShrinkFactorsPerLevel
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::SetSmoothingSigmasPerLevel "/**
+Self& itk::simple::ImageRegistrationMethod::SetSmoothingSigmasPerLevel(const std::vector< double > &smoothingSigmas)
+
+Set the sigmas of Gaussian used for smoothing at each level.
+
+
+
+See:
+ itk::ImageRegistrationMethodv4::SetSmoothingSigmasPerLevel
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::ToString "/**
+std::string itk::simple::ImageRegistrationMethod::ToString() const
+
+Print the information about the object to a string.
+
+
+If called when the process is being executed ( during a callback ),
+the ITK Optimizer and Transform objects will be printed.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageRegistrationMethod::~ImageRegistrationMethod "/**
+virtual itk::simple::ImageRegistrationMethod::~ImageRegistrationMethod()
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ImageSeriesReader "/**
+
+Read series of image into a SimpleITK image.
+
+
+
+See:
+ itk::simple::ReadImage for the procedural interface
+
+
+C++ includes: sitkImageSeriesReader.h
+*/"
+
+%javamethodmodifiers  itk::simple::ImageSeriesReader::Execute "/**
+Image itk::simple::ImageSeriesReader::Execute()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageSeriesReader::GetFileNames "/**
+const std::vector<std::string>& itk::simple::ImageSeriesReader::GetFileNames() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageSeriesReader::GetName "/**
+virtual std::string itk::simple::ImageSeriesReader::GetName() const
+
+return user readable name fo the filter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageSeriesReader::ImageSeriesReader "/**
+itk::simple::ImageSeriesReader::ImageSeriesReader()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageSeriesReader::SetFileNames "/**
+Self& itk::simple::ImageSeriesReader::SetFileNames(const std::vector< std::string > &fileNames)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageSeriesReader::ToString "/**
+virtual std::string itk::simple::ImageSeriesReader::ToString() const
+
+Print ourselves to string
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ImageSeriesWriter "/**
+
+Writer series of image from a SimpleITK image.
+
+
+The ImageSeriesWriter is for writing a 3D image as a series of 2D images. A list of names
+for the series of 2D images must be provided, and an exception will be
+generated if the number of file names does not match the size of the
+image in the z-direction.
+
+DICOM series cannot be written with this class, as an exception will
+be generated. To write a DICOM series the individual slices must be
+extracted, proper DICOM tags must be added to the dictionaries, then
+written with the ImageFileWriter.
+
+
+See:
+ itk::simple::WriteImage for the procedural interface
+
+
+C++ includes: sitkImageSeriesWriter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ImageSeriesWriter::Execute "/**
+Self& itk::simple::ImageSeriesWriter::Execute(const Image &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageSeriesWriter::Execute "/**
+Self& itk::simple::ImageSeriesWriter::Execute(const Image &image, const std::vector< std::string > &inFileNames,
+bool inUseCompression)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageSeriesWriter::GetName "/**
+virtual std::string itk::simple::ImageSeriesWriter::GetName() const
+
+return user readable name fo the filter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageSeriesWriter::ImageSeriesWriter "/**
+itk::simple::ImageSeriesWriter::ImageSeriesWriter()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImageSeriesWriter::ToString "/**
+virtual std::string itk::simple::ImageSeriesWriter::ToString() const
+
+Print ourselves to string
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ImportImageFilter "/**
+
+Compose a 2D or 3D image and return a smart pointer to a SimpleITK
+image.
+
+
+This filter is intended to interface SimpleITK to other image
+processing libraries and applications that may have their own
+representation of an image class. It creates a SimpleITK image which
+shares the bulk data buffer as what is set. SimpleITK will not
+responsible to delete the buffer afterwards, and it buffer must remain
+valid while in use.
+
+
+See:
+ itk::simple::ImportAsInt8, itk::simple::ImportAsUInt8, itk::simple::ImportAsInt16, itk::simple::ImportAsUInt16, itk::simple::ImportAsInt32, itk::simple::ImportAsUInt32, itk::simple::ImportAsInt64, itk::simple::ImportAsUInt64, itk::simple::ImportAsFloat, itk::simple::ImportAsDouble for the procedural interfaces.
+
+
+C++ includes: sitkImportImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ImportImageFilter::Execute "/**
+Image itk::simple::ImportImageFilter::Execute()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportImageFilter::GetDirection "/**
+const std::vector< double >& itk::simple::ImportImageFilter::GetDirection() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportImageFilter::GetName "/**
+virtual std::string itk::simple::ImportImageFilter::GetName() const
+
+return user readable name fo the filter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportImageFilter::GetOrigin "/**
+const std::vector< double >& itk::simple::ImportImageFilter::GetOrigin() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportImageFilter::GetSize "/**
+const std::vector< unsigned int >& itk::simple::ImportImageFilter::GetSize() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportImageFilter::GetSpacing "/**
+const std::vector< double >& itk::simple::ImportImageFilter::GetSpacing() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportImageFilter::ImportImageFilter "/**
+itk::simple::ImportImageFilter::ImportImageFilter()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportImageFilter::SetBufferAsDouble "/**
+Self& itk::simple::ImportImageFilter::SetBufferAsDouble(double *buffer, unsigned int numberOfComponents=1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportImageFilter::SetBufferAsFloat "/**
+Self& itk::simple::ImportImageFilter::SetBufferAsFloat(float *buffer, unsigned int numberOfComponents=1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportImageFilter::SetBufferAsInt16 "/**
+Self& itk::simple::ImportImageFilter::SetBufferAsInt16(int16_t *buffer, unsigned int numberOfComponents=1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportImageFilter::SetBufferAsInt32 "/**
+Self& itk::simple::ImportImageFilter::SetBufferAsInt32(int32_t *buffer, unsigned int numberOfComponents=1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportImageFilter::SetBufferAsInt64 "/**
+Self& itk::simple::ImportImageFilter::SetBufferAsInt64(int64_t *buffer, unsigned int numberOfComponents=1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportImageFilter::SetBufferAsInt8 "/**
+Self& itk::simple::ImportImageFilter::SetBufferAsInt8(int8_t *buffer, unsigned int numberOfComponents=1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportImageFilter::SetBufferAsUInt16 "/**
+Self& itk::simple::ImportImageFilter::SetBufferAsUInt16(uint16_t *buffer, unsigned int numberOfComponents=1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportImageFilter::SetBufferAsUInt32 "/**
+Self& itk::simple::ImportImageFilter::SetBufferAsUInt32(uint32_t *buffer, unsigned int numberOfComponents=1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportImageFilter::SetBufferAsUInt64 "/**
+Self& itk::simple::ImportImageFilter::SetBufferAsUInt64(uint64_t *buffer, unsigned int numberOfComponents=1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportImageFilter::SetBufferAsUInt8 "/**
+Self& itk::simple::ImportImageFilter::SetBufferAsUInt8(uint8_t *buffer, unsigned int numberOfComponents=1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportImageFilter::SetDirection "/**
+Self& itk::simple::ImportImageFilter::SetDirection(const std::vector< double > &direction)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportImageFilter::SetOrigin "/**
+Self& itk::simple::ImportImageFilter::SetOrigin(const std::vector< double > &origin)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportImageFilter::SetSize "/**
+Self& itk::simple::ImportImageFilter::SetSize(const std::vector< unsigned int > &size)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportImageFilter::SetSpacing "/**
+Self& itk::simple::ImportImageFilter::SetSpacing(const std::vector< double > &spacing)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportImageFilter::ToString "/**
+virtual std::string itk::simple::ImportImageFilter::ToString() const
+
+Print ourselves to string
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::IntensityWindowingImageFilter "/**
+
+Applies a linear transformation to the intensity levels of the input Image that are inside a user-defined interval. Values below this interval
+are mapped to a constant. Values over the interval are mapped to
+another constant.
+
+
+IntensityWindowingImageFilter applies pixel-wise a linear transformation to the intensity values of
+input image pixels. The linear transformation is defined by the user
+in terms of the minimum and maximum values that the output image
+should have and the lower and upper limits of the intensity window of
+the input image. This operation is very common in visualization, and
+can also be applied as a convenient preprocessing operation for image
+segmentation.
+
+All computations are performed in the precision of the input pixel's
+RealType. Before assigning the computed value to the output pixel.
+
+Wiki Examples:
+
+All Examples
+
+IntensityWindowingImageFilter
+
+See:
+ RescaleIntensityImageFilter
+
+ itk::simple::IntensityWindowing for the procedural interface
+
+ itk::IntensityWindowingImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkIntensityWindowingImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::IntensityWindowingImageFilter::Execute "/**
+Image itk::simple::IntensityWindowingImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntensityWindowingImageFilter::Execute "/**
+Image itk::simple::IntensityWindowingImageFilter::Execute(const Image &image1, double windowMinimum, double windowMaximum,
+double outputMinimum, double outputMaximum)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntensityWindowingImageFilter::GetName "/**
+std::string itk::simple::IntensityWindowingImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntensityWindowingImageFilter::GetOutputMaximum "/**
+double itk::simple::IntensityWindowingImageFilter::GetOutputMaximum() const
+
+Set/Get the values of the maximum and minimum intensities of the
+output image.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntensityWindowingImageFilter::GetOutputMinimum "/**
+double itk::simple::IntensityWindowingImageFilter::GetOutputMinimum() const
+
+Set/Get the values of the maximum and minimum intensities of the
+output image.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntensityWindowingImageFilter::GetWindowMaximum "/**
+double itk::simple::IntensityWindowingImageFilter::GetWindowMaximum() const
+
+Set/Get the values of the maximum and minimum intensities of the input
+intensity window.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntensityWindowingImageFilter::GetWindowMinimum "/**
+double itk::simple::IntensityWindowingImageFilter::GetWindowMinimum() const
+
+Set/Get the values of the maximum and minimum intensities of the input
+intensity window.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntensityWindowingImageFilter::IntensityWindowingImageFilter "/**
+itk::simple::IntensityWindowingImageFilter::IntensityWindowingImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntensityWindowingImageFilter::SetOutputMaximum "/**
+Self& itk::simple::IntensityWindowingImageFilter::SetOutputMaximum(double OutputMaximum)
+
+Set/Get the values of the maximum and minimum intensities of the
+output image.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntensityWindowingImageFilter::SetOutputMinimum "/**
+Self& itk::simple::IntensityWindowingImageFilter::SetOutputMinimum(double OutputMinimum)
+
+Set/Get the values of the maximum and minimum intensities of the
+output image.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntensityWindowingImageFilter::SetWindowMaximum "/**
+Self& itk::simple::IntensityWindowingImageFilter::SetWindowMaximum(double WindowMaximum)
+
+Set/Get the values of the maximum and minimum intensities of the input
+intensity window.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntensityWindowingImageFilter::SetWindowMinimum "/**
+Self& itk::simple::IntensityWindowingImageFilter::SetWindowMinimum(double WindowMinimum)
+
+Set/Get the values of the maximum and minimum intensities of the input
+intensity window.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntensityWindowingImageFilter::ToString "/**
+std::string itk::simple::IntensityWindowingImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntensityWindowingImageFilter::~IntensityWindowingImageFilter "/**
+itk::simple::IntensityWindowingImageFilter::~IntensityWindowingImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::IntermodesThresholdImageFilter "/**
+
+Threshold an image using the Intermodes Threshold.
+
+
+This filter creates a binary thresholded image that separates an image
+into foreground and background components. The filter computes the
+threshold using the IntermodesThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .
+
+
+Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+ Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/10380/3279 or http://www.insight-journal.org/browse/publication/811
+
+
+See:
+ HistogramThresholdImageFilter
+
+ itk::simple::IntermodesThreshold for the procedural interface
+
+ itk::IntermodesThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkIntermodesThresholdImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::IntermodesThresholdImageFilter::Execute "/**
+Image itk::simple::IntermodesThresholdImageFilter::Execute(const Image &image, const Image &maskImage)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntermodesThresholdImageFilter::Execute "/**
+Image itk::simple::IntermodesThresholdImageFilter::Execute(const Image &image)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntermodesThresholdImageFilter::Execute "/**
+Image itk::simple::IntermodesThresholdImageFilter::Execute(const Image &image, const Image &maskImage, uint8_t insideValue,
+uint8_t outsideValue, uint32_t numberOfHistogramBins, bool maskOutput,
+uint8_t maskValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntermodesThresholdImageFilter::Execute "/**
+Image itk::simple::IntermodesThresholdImageFilter::Execute(const Image &image, uint8_t insideValue, uint8_t outsideValue,
+uint32_t numberOfHistogramBins, bool maskOutput, uint8_t maskValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntermodesThresholdImageFilter::GetInsideValue "/**
+uint8_t itk::simple::IntermodesThresholdImageFilter::GetInsideValue() const
+
+Get the \"inside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntermodesThresholdImageFilter::GetMaskOutput "/**
+bool itk::simple::IntermodesThresholdImageFilter::GetMaskOutput() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntermodesThresholdImageFilter::GetMaskValue "/**
+uint8_t itk::simple::IntermodesThresholdImageFilter::GetMaskValue() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntermodesThresholdImageFilter::GetName "/**
+std::string itk::simple::IntermodesThresholdImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntermodesThresholdImageFilter::GetNumberOfHistogramBins "/**
+uint32_t itk::simple::IntermodesThresholdImageFilter::GetNumberOfHistogramBins() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntermodesThresholdImageFilter::GetOutsideValue "/**
+uint8_t itk::simple::IntermodesThresholdImageFilter::GetOutsideValue() const
+
+Get the \"outside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntermodesThresholdImageFilter::GetThreshold "/**
+double itk::simple::IntermodesThresholdImageFilter::GetThreshold() const
+
+Get the computed threshold.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntermodesThresholdImageFilter::IntermodesThresholdImageFilter "/**
+itk::simple::IntermodesThresholdImageFilter::IntermodesThresholdImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntermodesThresholdImageFilter::MaskOutputOff "/**
+Self& itk::simple::IntermodesThresholdImageFilter::MaskOutputOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntermodesThresholdImageFilter::MaskOutputOn "/**
+Self& itk::simple::IntermodesThresholdImageFilter::MaskOutputOn()
+
+Set the value of MaskOutput to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntermodesThresholdImageFilter::SetInsideValue "/**
+Self& itk::simple::IntermodesThresholdImageFilter::SetInsideValue(uint8_t InsideValue)
+
+Set the \"inside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntermodesThresholdImageFilter::SetMaskOutput "/**
+Self& itk::simple::IntermodesThresholdImageFilter::SetMaskOutput(bool MaskOutput)
+
+Do you want the output to be masked by the mask used in histogram
+construction. Only relevant if masking is in use.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntermodesThresholdImageFilter::SetMaskValue "/**
+Self& itk::simple::IntermodesThresholdImageFilter::SetMaskValue(uint8_t MaskValue)
+
+The value in the mask image, if used, indicating voxels that should be
+included. Default is the max of pixel type, as in the
+MaskedImageToHistogramFilter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntermodesThresholdImageFilter::SetNumberOfHistogramBins "/**
+Self& itk::simple::IntermodesThresholdImageFilter::SetNumberOfHistogramBins(uint32_t NumberOfHistogramBins)
+
+Set/Get the number of histogram bins.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntermodesThresholdImageFilter::SetOutsideValue "/**
+Self& itk::simple::IntermodesThresholdImageFilter::SetOutsideValue(uint8_t OutsideValue)
+
+Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntermodesThresholdImageFilter::ToString "/**
+std::string itk::simple::IntermodesThresholdImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntermodesThresholdImageFilter::~IntermodesThresholdImageFilter "/**
+itk::simple::IntermodesThresholdImageFilter::~IntermodesThresholdImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::InverseDeconvolutionImageFilter "/**
+
+The direct linear inverse deconvolution filter.
+
+
+The inverse filter is the most straightforward deconvolution method.
+Considering that convolution of two images in the spatial domain is
+equivalent to multiplying the Fourier transform of the two images, the
+inverse filter consists of inverting the multiplication. In other
+words, this filter computes the following: \\\\[ hat{F}(\\\\omega) = \\\\begin{cases} G(\\\\omega) / H(\\\\omega)
+& \\\\text{if \\\\f$|H(\\\\omega)| \\\\geq \\\\epsilon\\\\f$} \\\\\\\\
+0 & \\\\text{otherwise} \\\\end{cases} \\\\] where $\\\\hat{F}(\\\\omega)$ is the Fourier transform of the estimate produced by this filter, $G(\\\\omega)$ is the Fourier transform of the input blurred image, $H(\\\\omega)$ is the Fourier transform of the blurring kernel, and $\\\\epsilon$ is a constant real non-negative threshold (called
+KernelZeroMagnitudeThreshold in this filter) that determines when the
+magnitude of a complex number is considered zero.
+
+
+Gaetan Lehmann, Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France
+ Cory Quammen, The University of North Carolina at Chapel Hill
+See:
+ itk::simple::InverseDeconvolution for the procedural interface
+
+ itk::InverseDeconvolutionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkInverseDeconvolutionImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::InverseDeconvolutionImageFilter::Execute "/**
+Image itk::simple::InverseDeconvolutionImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDeconvolutionImageFilter::Execute "/**
+Image itk::simple::InverseDeconvolutionImageFilter::Execute(const Image &image1, const Image &image2, double
+kernelZeroMagnitudeThreshold, bool normalize,
+InverseDeconvolutionImageFilter::BoundaryConditionType
+boundaryCondition,
+InverseDeconvolutionImageFilter::OutputRegionModeType
+outputRegionMode)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDeconvolutionImageFilter::GetBoundaryCondition "/**
+BoundaryConditionType itk::simple::InverseDeconvolutionImageFilter::GetBoundaryCondition() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDeconvolutionImageFilter::GetKernelZeroMagnitudeThreshold "/**
+double itk::simple::InverseDeconvolutionImageFilter::GetKernelZeroMagnitudeThreshold() const
+
+Set/get the threshold value uused to determine whether a frequency of
+the Fourier transform of the blurring kernel is considered to be zero.
+Default value is 1.0e-4.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDeconvolutionImageFilter::GetName "/**
+std::string itk::simple::InverseDeconvolutionImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDeconvolutionImageFilter::GetNormalize "/**
+bool itk::simple::InverseDeconvolutionImageFilter::GetNormalize() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDeconvolutionImageFilter::GetOutputRegionMode "/**
+OutputRegionModeType itk::simple::InverseDeconvolutionImageFilter::GetOutputRegionMode() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDeconvolutionImageFilter::InverseDeconvolutionImageFilter "/**
+itk::simple::InverseDeconvolutionImageFilter::InverseDeconvolutionImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDeconvolutionImageFilter::NormalizeOff "/**
+Self& itk::simple::InverseDeconvolutionImageFilter::NormalizeOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDeconvolutionImageFilter::NormalizeOn "/**
+Self& itk::simple::InverseDeconvolutionImageFilter::NormalizeOn()
+
+Set the value of Normalize to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDeconvolutionImageFilter::SetBoundaryCondition "/**
+Self& itk::simple::InverseDeconvolutionImageFilter::SetBoundaryCondition(BoundaryConditionType BoundaryCondition)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDeconvolutionImageFilter::SetKernelZeroMagnitudeThreshold "/**
+Self& itk::simple::InverseDeconvolutionImageFilter::SetKernelZeroMagnitudeThreshold(double KernelZeroMagnitudeThreshold)
+
+Set/get the threshold value uused to determine whether a frequency of
+the Fourier transform of the blurring kernel is considered to be zero.
+Default value is 1.0e-4.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDeconvolutionImageFilter::SetNormalize "/**
+Self& itk::simple::InverseDeconvolutionImageFilter::SetNormalize(bool Normalize)
+
+Normalize the output image by the sum of the kernel components
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDeconvolutionImageFilter::SetOutputRegionMode "/**
+Self& itk::simple::InverseDeconvolutionImageFilter::SetOutputRegionMode(OutputRegionModeType OutputRegionMode)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDeconvolutionImageFilter::ToString "/**
+std::string itk::simple::InverseDeconvolutionImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDeconvolutionImageFilter::~InverseDeconvolutionImageFilter "/**
+itk::simple::InverseDeconvolutionImageFilter::~InverseDeconvolutionImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::InverseDisplacementFieldImageFilter "/**
+
+Computes the inverse of a displacement field.
+
+
+InverseDisplacementFieldImageFilter takes a displacement field as input and computes the displacement
+field that is its inverse. If the input displacement field was mapping
+coordinates from a space A into a space B, the output of this filter
+will map coordinates from the space B into the space A.
+
+Given that both the input and output displacement field are
+represented as discrete images with pixel type vector, the inverse
+will be only an estimation and will probably not correspond to a
+perfect inverse. The precision of the inverse can be improved at the
+price of increasing the computation time and memory consumption in
+this filter.
+
+The method used for computing the inverse displacement field is to
+subsample the input field using a regular grid and create Kerned-Base
+Spline in which the reference landmarks are the coordinates of the
+deformed point and the target landmarks are the negative of the
+displacement vectors. The kernel-base spline is then used for
+regularly sampling the output space and recover vector values for
+every single pixel.
+
+The subsampling factor used for the regular grid of the input field
+will determine the number of landmarks in the KernelBased spline and
+therefore it will have a dramatic effect on both the precision of
+output displacement field and the computational time required for the
+filter to complete the estimation. A large subsampling factor will
+result in few landmarks in the KernelBased spline, therefore on fast
+computation and low precision. A small subsampling factor will result
+in a large number of landmarks in the KernelBased spline, therefore a
+large memory consumption, long computation time and high precision for
+the inverse estimation.
+
+This filter expects both the input and output images to be of pixel
+type Vector .
+See:
+ itk::simple::InverseDisplacementField for the procedural interface
+
+ itk::InverseDisplacementFieldImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkInverseDisplacementFieldImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::InverseDisplacementFieldImageFilter::Execute "/**
+Image itk::simple::InverseDisplacementFieldImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDisplacementFieldImageFilter::Execute "/**
+Image itk::simple::InverseDisplacementFieldImageFilter::Execute(const Image &image1, const std::vector< uint32_t > &size, const
+std::vector< double > &outputOrigin, const std::vector< double >
+&outputSpacing, unsigned int subsamplingFactor)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDisplacementFieldImageFilter::GetName "/**
+std::string itk::simple::InverseDisplacementFieldImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDisplacementFieldImageFilter::GetOutputOrigin "/**
+std::vector<double> itk::simple::InverseDisplacementFieldImageFilter::GetOutputOrigin() const
+
+Get the output image origin.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDisplacementFieldImageFilter::GetOutputSpacing "/**
+std::vector<double> itk::simple::InverseDisplacementFieldImageFilter::GetOutputSpacing() const
+
+Get the output image spacing.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDisplacementFieldImageFilter::GetSize "/**
+std::vector<uint32_t> itk::simple::InverseDisplacementFieldImageFilter::GetSize() const
+
+Get the size of the output image.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDisplacementFieldImageFilter::GetSubsamplingFactor "/**
+unsigned int itk::simple::InverseDisplacementFieldImageFilter::GetSubsamplingFactor() const
+
+Set/Get the factor used for subsampling the input displacement field.
+A large value in this factor will produce a fast computation of the
+inverse field but with low precision. A small value of this factor
+will produce a precise computation of the inverse field at the price
+of large memory consumption and long computational time.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDisplacementFieldImageFilter::InverseDisplacementFieldImageFilter "/**
+itk::simple::InverseDisplacementFieldImageFilter::InverseDisplacementFieldImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDisplacementFieldImageFilter::SetOutputOrigin "/**
+Self& itk::simple::InverseDisplacementFieldImageFilter::SetOutputOrigin(const std::vector< double > &OutputOrigin)
+
+Set the output image origin.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDisplacementFieldImageFilter::SetOutputSpacing "/**
+Self& itk::simple::InverseDisplacementFieldImageFilter::SetOutputSpacing(const std::vector< double > &OutputSpacing)
+
+Set the output image spacing.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDisplacementFieldImageFilter::SetReferenceImage "/**
+void itk::simple::InverseDisplacementFieldImageFilter::SetReferenceImage(const Image &refImage)
+
+This methods sets the output size, origin, and direction to that of
+the provided image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDisplacementFieldImageFilter::SetSize "/**
+Self& itk::simple::InverseDisplacementFieldImageFilter::SetSize(const std::vector< uint32_t > &Size)
+
+Set the size of the output image.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDisplacementFieldImageFilter::SetSubsamplingFactor "/**
+Self& itk::simple::InverseDisplacementFieldImageFilter::SetSubsamplingFactor(unsigned int SubsamplingFactor)
+
+Set/Get the factor used for subsampling the input displacement field.
+A large value in this factor will produce a fast computation of the
+inverse field but with low precision. A small value of this factor
+will produce a precise computation of the inverse field at the price
+of large memory consumption and long computational time.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDisplacementFieldImageFilter::ToString "/**
+std::string itk::simple::InverseDisplacementFieldImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDisplacementFieldImageFilter::~InverseDisplacementFieldImageFilter "/**
+itk::simple::InverseDisplacementFieldImageFilter::~InverseDisplacementFieldImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::InverseFFTImageFilter "/**
+
+Base class for inverse Fast Fourier Transform .
+
+
+This is a base class for the \"inverse\" or \"reverse\" Discrete
+Fourier Transform . This is an abstract base class: the actual implementation is
+provided by the best child available on the system when the object is
+created via the object factory system.
+
+This class transforms a full complex image with Hermitian symmetry
+into its real spatial domain representation. If the input does not
+have Hermitian symmetry, the imaginary component is discarded.
+
+
+See:
+ ForwardFFTImageFilter , InverseFFTImageFilter
+
+ itk::simple::InverseFFT for the procedural interface
+
+ itk::InverseFFTImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkInverseFFTImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::InverseFFTImageFilter::Execute "/**
+Image itk::simple::InverseFFTImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseFFTImageFilter::GetName "/**
+std::string itk::simple::InverseFFTImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseFFTImageFilter::InverseFFTImageFilter "/**
+itk::simple::InverseFFTImageFilter::InverseFFTImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseFFTImageFilter::ToString "/**
+std::string itk::simple::InverseFFTImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseFFTImageFilter::~InverseFFTImageFilter "/**
+itk::simple::InverseFFTImageFilter::~InverseFFTImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::InvertDisplacementFieldImageFilter "/**
+
+Iteratively estimate the inverse field of a displacement field.
+
+
+
+Nick Tustison
+ Brian Avants
+See:
+ itk::simple::InvertDisplacementField for the procedural interface
+
+ itk::InvertDisplacementFieldImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkInvertDisplacementFieldImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::InvertDisplacementFieldImageFilter::EnforceBoundaryConditionOff "/**
+Self& itk::simple::InvertDisplacementFieldImageFilter::EnforceBoundaryConditionOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InvertDisplacementFieldImageFilter::EnforceBoundaryConditionOn "/**
+Self& itk::simple::InvertDisplacementFieldImageFilter::EnforceBoundaryConditionOn()
+
+Set the value of EnforceBoundaryCondition to true or false
+respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InvertDisplacementFieldImageFilter::Execute "/**
+Image itk::simple::InvertDisplacementFieldImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InvertDisplacementFieldImageFilter::Execute "/**
+Image itk::simple::InvertDisplacementFieldImageFilter::Execute(const Image &image1, uint32_t maximumNumberOfIterations, double
+maxErrorToleranceThreshold, double meanErrorToleranceThreshold, bool
+enforceBoundaryCondition)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InvertDisplacementFieldImageFilter::GetEnforceBoundaryCondition "/**
+bool itk::simple::InvertDisplacementFieldImageFilter::GetEnforceBoundaryCondition() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InvertDisplacementFieldImageFilter::GetMaxErrorNorm "/**
+double itk::simple::InvertDisplacementFieldImageFilter::GetMaxErrorNorm() const
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InvertDisplacementFieldImageFilter::GetMaxErrorToleranceThreshold "/**
+double itk::simple::InvertDisplacementFieldImageFilter::GetMaxErrorToleranceThreshold() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InvertDisplacementFieldImageFilter::GetMaximumNumberOfIterations "/**
+uint32_t itk::simple::InvertDisplacementFieldImageFilter::GetMaximumNumberOfIterations() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InvertDisplacementFieldImageFilter::GetMeanErrorNorm "/**
+double itk::simple::InvertDisplacementFieldImageFilter::GetMeanErrorNorm() const
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InvertDisplacementFieldImageFilter::GetMeanErrorToleranceThreshold "/**
+double itk::simple::InvertDisplacementFieldImageFilter::GetMeanErrorToleranceThreshold() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InvertDisplacementFieldImageFilter::GetName "/**
+std::string itk::simple::InvertDisplacementFieldImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InvertDisplacementFieldImageFilter::InvertDisplacementFieldImageFilter "/**
+itk::simple::InvertDisplacementFieldImageFilter::InvertDisplacementFieldImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InvertDisplacementFieldImageFilter::SetEnforceBoundaryCondition "/**
+Self& itk::simple::InvertDisplacementFieldImageFilter::SetEnforceBoundaryCondition(bool EnforceBoundaryCondition)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InvertDisplacementFieldImageFilter::SetMaxErrorToleranceThreshold "/**
+Self& itk::simple::InvertDisplacementFieldImageFilter::SetMaxErrorToleranceThreshold(double MaxErrorToleranceThreshold)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InvertDisplacementFieldImageFilter::SetMaximumNumberOfIterations "/**
+Self& itk::simple::InvertDisplacementFieldImageFilter::SetMaximumNumberOfIterations(uint32_t MaximumNumberOfIterations)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InvertDisplacementFieldImageFilter::SetMeanErrorToleranceThreshold "/**
+Self& itk::simple::InvertDisplacementFieldImageFilter::SetMeanErrorToleranceThreshold(double MeanErrorToleranceThreshold)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InvertDisplacementFieldImageFilter::ToString "/**
+std::string itk::simple::InvertDisplacementFieldImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InvertDisplacementFieldImageFilter::~InvertDisplacementFieldImageFilter "/**
+itk::simple::InvertDisplacementFieldImageFilter::~InvertDisplacementFieldImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::InvertIntensityImageFilter "/**
+
+Invert the intensity of an image.
+
+
+InvertIntensityImageFilter inverts intensity of pixels by subtracting pixel value to a maximum
+value. The maximum value can be set with SetMaximum and defaults the
+maximum of input pixel type. This filter can be used to invert, for
+example, a binary image, a distance map, etc.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ IntensityWindowingImageFilter ShiftScaleImageFilter
+Wiki Examples:
+
+All Examples
+
+Invert an image
+See:
+ itk::simple::InvertIntensity for the procedural interface
+
+ itk::InvertIntensityImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkInvertIntensityImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::InvertIntensityImageFilter::Execute "/**
+Image itk::simple::InvertIntensityImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InvertIntensityImageFilter::Execute "/**
+Image itk::simple::InvertIntensityImageFilter::Execute(const Image &image1, double maximum)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InvertIntensityImageFilter::GetMaximum "/**
+double itk::simple::InvertIntensityImageFilter::GetMaximum() const
+
+Set/Get the maximum intensity value for the inversion.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InvertIntensityImageFilter::GetName "/**
+std::string itk::simple::InvertIntensityImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InvertIntensityImageFilter::InvertIntensityImageFilter "/**
+itk::simple::InvertIntensityImageFilter::InvertIntensityImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InvertIntensityImageFilter::SetMaximum "/**
+Self& itk::simple::InvertIntensityImageFilter::SetMaximum(double Maximum)
+
+Set/Get the maximum intensity value for the inversion.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InvertIntensityImageFilter::ToString "/**
+std::string itk::simple::InvertIntensityImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InvertIntensityImageFilter::~InvertIntensityImageFilter "/**
+itk::simple::InvertIntensityImageFilter::~InvertIntensityImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::IsoContourDistanceImageFilter "/**
+
+Compute an approximate distance from an interpolated isocontour to the
+close grid points.
+
+
+For standard level set algorithms, it is useful to periodically
+reinitialize the evolving image to prevent numerical accuracy problems
+in computing derivatives. This reinitialization is done by computing a
+signed distance map to the current level set. This class provides the
+first step in this reinitialization by computing an estimate of the
+distance from the interpolated isocontour to the pixels (or voxels)
+that are close to it, i.e. for which the isocontour crosses a segment
+between them and one of their direct neighbors. This class supports
+narrowbanding. If the input narrowband is provided, the algorithm will
+only locate the level set within the input narrowband.
+
+Implementation of this class is based on Fast and Accurate
+Redistancing for Level Set Methods `Krissian K. and Westin C.F.',
+EUROCAST NeuroImaging Workshop Las Palmas Spain, Ninth International
+Conference on Computer Aided Systems Theory , pages 48-51, Feb 2003.
+See:
+ itk::simple::IsoContourDistance for the procedural interface
+
+ itk::IsoContourDistanceImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkIsoContourDistanceImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::IsoContourDistanceImageFilter::Execute "/**
+Image itk::simple::IsoContourDistanceImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoContourDistanceImageFilter::Execute "/**
+Image itk::simple::IsoContourDistanceImageFilter::Execute(const Image &image1, double levelSetValue, double farValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoContourDistanceImageFilter::GetFarValue "/**
+double itk::simple::IsoContourDistanceImageFilter::GetFarValue() const
+
+Set/Get the value of the level set to be located. The default value is
+0.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoContourDistanceImageFilter::GetLevelSetValue "/**
+double itk::simple::IsoContourDistanceImageFilter::GetLevelSetValue() const
+
+Set/Get the value of the level set to be located. The default value is
+0.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoContourDistanceImageFilter::GetName "/**
+std::string itk::simple::IsoContourDistanceImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoContourDistanceImageFilter::IsoContourDistanceImageFilter "/**
+itk::simple::IsoContourDistanceImageFilter::IsoContourDistanceImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoContourDistanceImageFilter::SetFarValue "/**
+Self& itk::simple::IsoContourDistanceImageFilter::SetFarValue(double FarValue)
+
+Set/Get the value of the level set to be located. The default value is
+0.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoContourDistanceImageFilter::SetLevelSetValue "/**
+Self& itk::simple::IsoContourDistanceImageFilter::SetLevelSetValue(double LevelSetValue)
+
+Set/Get the value of the level set to be located. The default value is
+0.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoContourDistanceImageFilter::ToString "/**
+std::string itk::simple::IsoContourDistanceImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoContourDistanceImageFilter::~IsoContourDistanceImageFilter "/**
+itk::simple::IsoContourDistanceImageFilter::~IsoContourDistanceImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::IsoDataThresholdImageFilter "/**
+
+Threshold an image using the IsoData Threshold.
+
+
+This filter creates a binary thresholded image that separates an image
+into foreground and background components. The filter computes the
+threshold using the IsoDataThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .
+
+
+Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+ Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/10380/3279 or http://www.insight-journal.org/browse/publication/811
+
+
+See:
+ HistogramThresholdImageFilter
+
+ itk::simple::IsoDataThreshold for the procedural interface
+
+ itk::IsoDataThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkIsoDataThresholdImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::IsoDataThresholdImageFilter::Execute "/**
+Image itk::simple::IsoDataThresholdImageFilter::Execute(const Image &image, const Image &maskImage)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoDataThresholdImageFilter::Execute "/**
+Image itk::simple::IsoDataThresholdImageFilter::Execute(const Image &image)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoDataThresholdImageFilter::Execute "/**
+Image itk::simple::IsoDataThresholdImageFilter::Execute(const Image &image, const Image &maskImage, uint8_t insideValue,
+uint8_t outsideValue, uint32_t numberOfHistogramBins, bool maskOutput,
+uint8_t maskValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoDataThresholdImageFilter::Execute "/**
+Image itk::simple::IsoDataThresholdImageFilter::Execute(const Image &image, uint8_t insideValue, uint8_t outsideValue,
+uint32_t numberOfHistogramBins, bool maskOutput, uint8_t maskValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoDataThresholdImageFilter::GetInsideValue "/**
+uint8_t itk::simple::IsoDataThresholdImageFilter::GetInsideValue() const
+
+Get the \"inside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoDataThresholdImageFilter::GetMaskOutput "/**
+bool itk::simple::IsoDataThresholdImageFilter::GetMaskOutput() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoDataThresholdImageFilter::GetMaskValue "/**
+uint8_t itk::simple::IsoDataThresholdImageFilter::GetMaskValue() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoDataThresholdImageFilter::GetName "/**
+std::string itk::simple::IsoDataThresholdImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoDataThresholdImageFilter::GetNumberOfHistogramBins "/**
+uint32_t itk::simple::IsoDataThresholdImageFilter::GetNumberOfHistogramBins() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoDataThresholdImageFilter::GetOutsideValue "/**
+uint8_t itk::simple::IsoDataThresholdImageFilter::GetOutsideValue() const
+
+Get the \"outside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoDataThresholdImageFilter::GetThreshold "/**
+double itk::simple::IsoDataThresholdImageFilter::GetThreshold() const
+
+Get the computed threshold.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoDataThresholdImageFilter::IsoDataThresholdImageFilter "/**
+itk::simple::IsoDataThresholdImageFilter::IsoDataThresholdImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoDataThresholdImageFilter::MaskOutputOff "/**
+Self& itk::simple::IsoDataThresholdImageFilter::MaskOutputOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoDataThresholdImageFilter::MaskOutputOn "/**
+Self& itk::simple::IsoDataThresholdImageFilter::MaskOutputOn()
+
+Set the value of MaskOutput to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoDataThresholdImageFilter::SetInsideValue "/**
+Self& itk::simple::IsoDataThresholdImageFilter::SetInsideValue(uint8_t InsideValue)
+
+Set the \"inside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoDataThresholdImageFilter::SetMaskOutput "/**
+Self& itk::simple::IsoDataThresholdImageFilter::SetMaskOutput(bool MaskOutput)
+
+Do you want the output to be masked by the mask used in histogram
+construction. Only relevant if masking is in use.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoDataThresholdImageFilter::SetMaskValue "/**
+Self& itk::simple::IsoDataThresholdImageFilter::SetMaskValue(uint8_t MaskValue)
+
+The value in the mask image, if used, indicating voxels that should be
+included. Default is the max of pixel type, as in the
+MaskedImageToHistogramFilter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoDataThresholdImageFilter::SetNumberOfHistogramBins "/**
+Self& itk::simple::IsoDataThresholdImageFilter::SetNumberOfHistogramBins(uint32_t NumberOfHistogramBins)
+
+Set/Get the number of histogram bins.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoDataThresholdImageFilter::SetOutsideValue "/**
+Self& itk::simple::IsoDataThresholdImageFilter::SetOutsideValue(uint8_t OutsideValue)
+
+Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoDataThresholdImageFilter::ToString "/**
+std::string itk::simple::IsoDataThresholdImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoDataThresholdImageFilter::~IsoDataThresholdImageFilter "/**
+itk::simple::IsoDataThresholdImageFilter::~IsoDataThresholdImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::IsolatedConnectedImageFilter "/**
+
+Label pixels that are connected to one set of seeds but not another.
+
+
+IsolatedConnectedImageFilter finds the optimal threshold to separate two regions. It has two
+modes, one to separate dark regions surrounded by bright regions by
+automatically finding a minimum isolating upper threshold, and another
+to separate bright regions surrounded by dark regions by automatically
+finding a maximum lower isolating threshold. The mode can be chosen by
+setting FindUpperThresholdOn() /Off(). In both cases, the isolating threshold is retrieved with GetIsolatedValue() .
+
+The algorithm labels pixels with ReplaceValue that are connected to
+Seeds1 AND NOT connected to Seeds2. When finding the threshold to
+separate two dark regions surrounded by bright regions, given a fixed
+lower threshold, the filter adjusts the upper threshold until the two
+sets of seeds are not connected. The algorithm uses a binary search to
+adjust the upper threshold, starting at Upper. The reverse is true for
+finding the threshold to separate two bright regions. Lower defaults
+to the smallest possible value for the InputImagePixelType, and Upper
+defaults to the largest possible value for the InputImagePixelType.
+
+The user can also supply the Lower and Upper values to restrict the
+search. However, if the range is too restrictive, it could happen that
+no isolating threshold can be found between the user specified Lower
+and Upper values. Therefore, unless the user is sure of the bounds to
+set, it is recommended that the user set these values to the lowest
+and highest intensity values in the image, respectively.
+
+The user can specify more than one seed for both regions to separate.
+The algorithm will try find the threshold that ensures that all of the
+first seeds are contained in the resulting segmentation and all of the
+second seeds are not contained in the segmentation.
+
+It is possible that the algorithm may not be able to find the
+isolating threshold because no such threshold exists. The user can
+check for this by querying the GetThresholdingFailed() flag.
+See:
+ itk::simple::IsolatedConnected for the procedural interface
+
+ itk::IsolatedConnectedImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkIsolatedConnectedImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::IsolatedConnectedImageFilter::Execute "/**
+Image itk::simple::IsolatedConnectedImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedConnectedImageFilter::Execute "/**
+Image itk::simple::IsolatedConnectedImageFilter::Execute(const Image &image1, const std::vector< unsigned int > &seed1, const
+std::vector< unsigned int > &seed2, double lower, double upper,
+uint8_t replaceValue, double isolatedValueTolerance, bool
+findUpperThreshold)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedConnectedImageFilter::FindUpperThresholdOff "/**
+Self& itk::simple::IsolatedConnectedImageFilter::FindUpperThresholdOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedConnectedImageFilter::FindUpperThresholdOn "/**
+Self& itk::simple::IsolatedConnectedImageFilter::FindUpperThresholdOn()
+
+Set the value of FindUpperThreshold to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedConnectedImageFilter::GetFindUpperThreshold "/**
+bool itk::simple::IsolatedConnectedImageFilter::GetFindUpperThreshold() const
+
+Set/Get whether to find an upper threshold (separating two dark
+regions) or a lower threshold (separating two bright regions).
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedConnectedImageFilter::GetIsolatedValue "/**
+double itk::simple::IsolatedConnectedImageFilter::GetIsolatedValue() const
+
+Get value that isolates the two seeds.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedConnectedImageFilter::GetIsolatedValueTolerance "/**
+double itk::simple::IsolatedConnectedImageFilter::GetIsolatedValueTolerance() const
+
+Set/Get the precision required for the intensity threshold value. The
+default is 1.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedConnectedImageFilter::GetLower "/**
+double itk::simple::IsolatedConnectedImageFilter::GetLower() const
+
+Set/Get the limit on the lower threshold value. The default is the
+NonpositiveMin() for the InputPixelType.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedConnectedImageFilter::GetName "/**
+std::string itk::simple::IsolatedConnectedImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedConnectedImageFilter::GetReplaceValue "/**
+uint8_t itk::simple::IsolatedConnectedImageFilter::GetReplaceValue() const
+
+Set/Get value to replace thresholded pixels. Pixels that lie within
+the thresholds will be replaced with this value. The default is 1.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedConnectedImageFilter::GetSeed1 "/**
+std::vector<unsigned int> itk::simple::IsolatedConnectedImageFilter::GetSeed1() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedConnectedImageFilter::GetSeed2 "/**
+std::vector<unsigned int> itk::simple::IsolatedConnectedImageFilter::GetSeed2() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedConnectedImageFilter::GetThresholdingFailed "/**
+bool itk::simple::IsolatedConnectedImageFilter::GetThresholdingFailed() const
+
+Get the flag that tells whether the algorithm failed to find a
+threshold.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedConnectedImageFilter::GetUpper "/**
+double itk::simple::IsolatedConnectedImageFilter::GetUpper() const
+
+Set/Get the limit on the upper threshold value. The default is the
+max() for the InputPixelType.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedConnectedImageFilter::IsolatedConnectedImageFilter "/**
+itk::simple::IsolatedConnectedImageFilter::IsolatedConnectedImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedConnectedImageFilter::SetFindUpperThreshold "/**
+Self& itk::simple::IsolatedConnectedImageFilter::SetFindUpperThreshold(bool FindUpperThreshold)
+
+Set/Get whether to find an upper threshold (separating two dark
+regions) or a lower threshold (separating two bright regions).
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedConnectedImageFilter::SetIsolatedValueTolerance "/**
+Self& itk::simple::IsolatedConnectedImageFilter::SetIsolatedValueTolerance(double IsolatedValueTolerance)
+
+Set/Get the precision required for the intensity threshold value. The
+default is 1.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedConnectedImageFilter::SetLower "/**
+Self& itk::simple::IsolatedConnectedImageFilter::SetLower(double Lower)
+
+Set/Get the limit on the lower threshold value. The default is the
+NonpositiveMin() for the InputPixelType.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedConnectedImageFilter::SetReplaceValue "/**
+Self& itk::simple::IsolatedConnectedImageFilter::SetReplaceValue(uint8_t ReplaceValue)
+
+Set/Get value to replace thresholded pixels. Pixels that lie within
+the thresholds will be replaced with this value. The default is 1.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedConnectedImageFilter::SetSeed1 "/**
+Self& itk::simple::IsolatedConnectedImageFilter::SetSeed1(const std::vector< unsigned int > &Seed1)
+
+DeprecatedSet seed point 1. This seed will be isolated from Seed2 (if
+possible). All pixels connected to this seed will be replaced with
+ReplaceValue. This method is deprecated, please use AddSeed1() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedConnectedImageFilter::SetSeed2 "/**
+Self& itk::simple::IsolatedConnectedImageFilter::SetSeed2(const std::vector< unsigned int > &Seed2)
+
+DeprecatedSet seed point 2. This seed will be isolated from Seed1 (if
+possible). This method is deprecated, please use AddSeed2() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedConnectedImageFilter::SetUpper "/**
+Self& itk::simple::IsolatedConnectedImageFilter::SetUpper(double Upper)
+
+Set/Get the limit on the upper threshold value. The default is the
+max() for the InputPixelType.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedConnectedImageFilter::ToString "/**
+std::string itk::simple::IsolatedConnectedImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedConnectedImageFilter::~IsolatedConnectedImageFilter "/**
+itk::simple::IsolatedConnectedImageFilter::~IsolatedConnectedImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::IsolatedWatershedImageFilter "/**
+
+Isolate watershed basins using two seeds.
+
+
+IsolatedWatershedImageFilter labels pixels with ReplaceValue1 that are in the same watershed basin
+as Seed1 AND NOT the same as Seed2. The filter adjusts the waterlevel
+until the two seeds are not in different basins. The user supplies a
+Watershed threshold. The algorithm uses a binary search to adjust the
+upper waterlevel, starting at UpperValueLimit. UpperValueLimit
+defaults to the 1.0.
+See:
+ itk::simple::IsolatedWatershed for the procedural interface
+
+ itk::IsolatedWatershedImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkIsolatedWatershedImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::IsolatedWatershedImageFilter::Execute "/**
+Image itk::simple::IsolatedWatershedImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedWatershedImageFilter::Execute "/**
+Image itk::simple::IsolatedWatershedImageFilter::Execute(const Image &image1, const std::vector< uint32_t > &seed1, const
+std::vector< uint32_t > &seed2, double threshold, double
+upperValueLimit, double isolatedValueTolerance, uint8_t replaceValue1,
+uint8_t replaceValue2)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedWatershedImageFilter::GetIsolatedValueTolerance "/**
+double itk::simple::IsolatedWatershedImageFilter::GetIsolatedValueTolerance() const
+
+Set/Get the precision required for the intensity threshold value. The
+default is .001.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedWatershedImageFilter::GetName "/**
+std::string itk::simple::IsolatedWatershedImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedWatershedImageFilter::GetReplaceValue1 "/**
+uint8_t itk::simple::IsolatedWatershedImageFilter::GetReplaceValue1() const
+
+Set/Get value to replace Seed1(Seed2) pixels, pixels that are within
+the basin that contains Seed1(Seed2) this value. The default is 1(0).
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedWatershedImageFilter::GetReplaceValue2 "/**
+uint8_t itk::simple::IsolatedWatershedImageFilter::GetReplaceValue2() const
+
+Set/Get value to replace Seed1(Seed2) pixels, pixels that are within
+the basin that contains Seed1(Seed2) this value. The default is 1(0).
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedWatershedImageFilter::GetSeed1 "/**
+std::vector<uint32_t> itk::simple::IsolatedWatershedImageFilter::GetSeed1() const
+
+Set seed point 1. This seed will be isolated from Seed2 (if possible).
+All pixels connected to this seed will be replaced with ReplaceValue1.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedWatershedImageFilter::GetSeed2 "/**
+std::vector<uint32_t> itk::simple::IsolatedWatershedImageFilter::GetSeed2() const
+
+Set seed point 2. This seed will be isolated from Seed1 (if possible).
+All pixels connected to this seed will be replaced with ReplaceValue2.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedWatershedImageFilter::GetThreshold "/**
+double itk::simple::IsolatedWatershedImageFilter::GetThreshold() const
+
+Set/Get the Watershed threshold. The default is 0.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedWatershedImageFilter::GetUpperValueLimit "/**
+double itk::simple::IsolatedWatershedImageFilter::GetUpperValueLimit() const
+
+Set/Get the limit on the upper waterlevel value. The default is 1.0.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedWatershedImageFilter::IsolatedWatershedImageFilter "/**
+itk::simple::IsolatedWatershedImageFilter::IsolatedWatershedImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedWatershedImageFilter::SetIsolatedValueTolerance "/**
+Self& itk::simple::IsolatedWatershedImageFilter::SetIsolatedValueTolerance(double IsolatedValueTolerance)
+
+Set/Get the precision required for the intensity threshold value. The
+default is .001.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedWatershedImageFilter::SetReplaceValue1 "/**
+Self& itk::simple::IsolatedWatershedImageFilter::SetReplaceValue1(uint8_t ReplaceValue1)
+
+Set/Get value to replace Seed1(Seed2) pixels, pixels that are within
+the basin that contains Seed1(Seed2) this value. The default is 1(0).
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedWatershedImageFilter::SetReplaceValue2 "/**
+Self& itk::simple::IsolatedWatershedImageFilter::SetReplaceValue2(uint8_t ReplaceValue2)
+
+Set/Get value to replace Seed1(Seed2) pixels, pixels that are within
+the basin that contains Seed1(Seed2) this value. The default is 1(0).
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedWatershedImageFilter::SetSeed1 "/**
+Self& itk::simple::IsolatedWatershedImageFilter::SetSeed1(const std::vector< uint32_t > &Seed1)
+
+Set seed point 1. This seed will be isolated from Seed2 (if possible).
+All pixels connected to this seed will be replaced with ReplaceValue1.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedWatershedImageFilter::SetSeed2 "/**
+Self& itk::simple::IsolatedWatershedImageFilter::SetSeed2(const std::vector< uint32_t > &Seed2)
+
+Set seed point 2. This seed will be isolated from Seed1 (if possible).
+All pixels connected to this seed will be replaced with ReplaceValue2.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedWatershedImageFilter::SetThreshold "/**
+Self& itk::simple::IsolatedWatershedImageFilter::SetThreshold(double Threshold)
+
+Set/Get the Watershed threshold. The default is 0.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedWatershedImageFilter::SetUpperValueLimit "/**
+Self& itk::simple::IsolatedWatershedImageFilter::SetUpperValueLimit(double UpperValueLimit)
+
+Set/Get the limit on the upper waterlevel value. The default is 1.0.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedWatershedImageFilter::ToString "/**
+std::string itk::simple::IsolatedWatershedImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedWatershedImageFilter::~IsolatedWatershedImageFilter "/**
+itk::simple::IsolatedWatershedImageFilter::~IsolatedWatershedImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::IterativeInverseDisplacementFieldImageFilter "/**
+
+Computes the inverse of a displacement field.
+
+
+IterativeInverseDisplacementFieldImageFilter takes a displacement field as input and computes the displacement
+field that is its inverse. If the input displacement field was mapping
+coordinates from a space A into a space B, the output of this filter
+will map coordinates from the space B into the space A.
+
+The algorithm implemented in this filter uses an iterative method for
+progresively refining the values of the inverse field. Starting from
+the direct field, at every pixel the direct mapping of this point is
+found, and a the nevative of the current displacement is stored in the
+inverse field at the nearest pixel. Then, subsequent iterations verify
+if any of the neigbor pixels provide a better return to the current
+pixel, in which case its value is taken for updating the vector in the
+inverse field.
+
+This method was discussed in the users-list during February 2004.
+
+
+Corinne Mattmann
+
+See:
+ itk::simple::IterativeInverseDisplacementField for the procedural interface
+
+ itk::IterativeInverseDisplacementFieldImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkIterativeInverseDisplacementFieldImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::IterativeInverseDisplacementFieldImageFilter::Execute "/**
+Image itk::simple::IterativeInverseDisplacementFieldImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IterativeInverseDisplacementFieldImageFilter::Execute "/**
+Image itk::simple::IterativeInverseDisplacementFieldImageFilter::Execute(const Image &image1, uint32_t numberOfIterations, double stopValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IterativeInverseDisplacementFieldImageFilter::GetName "/**
+std::string itk::simple::IterativeInverseDisplacementFieldImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IterativeInverseDisplacementFieldImageFilter::GetNumberOfIterations "/**
+uint32_t itk::simple::IterativeInverseDisplacementFieldImageFilter::GetNumberOfIterations() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IterativeInverseDisplacementFieldImageFilter::GetStopValue "/**
+double itk::simple::IterativeInverseDisplacementFieldImageFilter::GetStopValue() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IterativeInverseDisplacementFieldImageFilter::IterativeInverseDisplacementFieldImageFilter "/**
+itk::simple::IterativeInverseDisplacementFieldImageFilter::IterativeInverseDisplacementFieldImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IterativeInverseDisplacementFieldImageFilter::SetNumberOfIterations "/**
+Self& itk::simple::IterativeInverseDisplacementFieldImageFilter::SetNumberOfIterations(uint32_t NumberOfIterations)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IterativeInverseDisplacementFieldImageFilter::SetStopValue "/**
+Self& itk::simple::IterativeInverseDisplacementFieldImageFilter::SetStopValue(double StopValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IterativeInverseDisplacementFieldImageFilter::ToString "/**
+std::string itk::simple::IterativeInverseDisplacementFieldImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IterativeInverseDisplacementFieldImageFilter::~IterativeInverseDisplacementFieldImageFilter "/**
+itk::simple::IterativeInverseDisplacementFieldImageFilter::~IterativeInverseDisplacementFieldImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::JoinSeriesImageFilter "/**
+
+Join N-D images into an (N+1)-D image.
+
+
+This filter is templated over the input image type and the output
+image type. The pixel type of them must be the same and the input
+dimension must be less than the output dimension. When the input
+images are N-dimensinal, they are joined in order and the size of the
+N+1'th dimension of the output is same as the number of the inputs.
+The spacing and the origin (where the first input is placed) for the
+N+1'th dimension is specified in this filter. The output image
+informations for the first N dimensions are taken from the first
+input. Note that all the inputs should have the same information.
+
+
+Hideaki Hiraki
+ Contributed in the users list http://public.kitware.com/pipermail/insight-
+users/2004-February/006542.html
+
+
+See:
+ itk::simple::JoinSeries for the procedural interface
+
+
+C++ includes: sitkJoinSeriesImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::JoinSeriesImageFilter::Execute "/**
+Image itk::simple::JoinSeriesImageFilter::Execute(const std::vector< Image > &images)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::JoinSeriesImageFilter::Execute "/**
+Image itk::simple::JoinSeriesImageFilter::Execute(const Image &image1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::JoinSeriesImageFilter::Execute "/**
+Image itk::simple::JoinSeriesImageFilter::Execute(const Image &image1, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::JoinSeriesImageFilter::Execute "/**
+Image itk::simple::JoinSeriesImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::JoinSeriesImageFilter::Execute "/**
+Image itk::simple::JoinSeriesImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::JoinSeriesImageFilter::Execute "/**
+Image itk::simple::JoinSeriesImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4, const Image &image5)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::JoinSeriesImageFilter::Execute "/**
+Image itk::simple::JoinSeriesImageFilter::Execute(const std::vector< Image > &images, double origin, double spacing)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::JoinSeriesImageFilter::Execute "/**
+Image itk::simple::JoinSeriesImageFilter::Execute(const Image &image1, double origin, double spacing)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::JoinSeriesImageFilter::Execute "/**
+Image itk::simple::JoinSeriesImageFilter::Execute(const Image &image1, const Image &image2, double origin, double
+spacing)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::JoinSeriesImageFilter::Execute "/**
+Image itk::simple::JoinSeriesImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, double
+origin, double spacing)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::JoinSeriesImageFilter::Execute "/**
+Image itk::simple::JoinSeriesImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4, double origin, double spacing)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::JoinSeriesImageFilter::Execute "/**
+Image itk::simple::JoinSeriesImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4, const Image &image5, double origin, double spacing)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::JoinSeriesImageFilter::GetName "/**
+std::string itk::simple::JoinSeriesImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::JoinSeriesImageFilter::GetOrigin "/**
+double itk::simple::JoinSeriesImageFilter::GetOrigin() const
+
+Set/Get origin of the new dimension
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::JoinSeriesImageFilter::GetSpacing "/**
+double itk::simple::JoinSeriesImageFilter::GetSpacing() const
+
+Set/Get spacing of the new dimension
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::JoinSeriesImageFilter::JoinSeriesImageFilter "/**
+itk::simple::JoinSeriesImageFilter::JoinSeriesImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::JoinSeriesImageFilter::SetOrigin "/**
+Self& itk::simple::JoinSeriesImageFilter::SetOrigin(double Origin)
+
+Set/Get origin of the new dimension
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::JoinSeriesImageFilter::SetSpacing "/**
+Self& itk::simple::JoinSeriesImageFilter::SetSpacing(double Spacing)
+
+Set/Get spacing of the new dimension
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::JoinSeriesImageFilter::ToString "/**
+std::string itk::simple::JoinSeriesImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::JoinSeriesImageFilter::~JoinSeriesImageFilter "/**
+itk::simple::JoinSeriesImageFilter::~JoinSeriesImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::KittlerIllingworthThresholdImageFilter "/**
+
+Threshold an image using the KittlerIllingworth Threshold.
+
+
+This filter creates a binary thresholded image that separates an image
+into foreground and background components. The filter computes the
+threshold using the KittlerIllingworthThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .
+
+
+Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+ Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/10380/3279 or http://www.insight-journal.org/browse/publication/811
+
+
+See:
+ HistogramThresholdImageFilter
+
+ itk::simple::KittlerIllingworthThreshold for the procedural interface
+
+ itk::KittlerIllingworthThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkKittlerIllingworthThresholdImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::KittlerIllingworthThresholdImageFilter::Execute "/**
+Image itk::simple::KittlerIllingworthThresholdImageFilter::Execute(const Image &image, const Image &maskImage)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::KittlerIllingworthThresholdImageFilter::Execute "/**
+Image itk::simple::KittlerIllingworthThresholdImageFilter::Execute(const Image &image)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::KittlerIllingworthThresholdImageFilter::Execute "/**
+Image itk::simple::KittlerIllingworthThresholdImageFilter::Execute(const Image &image, const Image &maskImage, uint8_t insideValue,
+uint8_t outsideValue, uint32_t numberOfHistogramBins, bool maskOutput,
+uint8_t maskValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::KittlerIllingworthThresholdImageFilter::Execute "/**
+Image itk::simple::KittlerIllingworthThresholdImageFilter::Execute(const Image &image, uint8_t insideValue, uint8_t outsideValue,
+uint32_t numberOfHistogramBins, bool maskOutput, uint8_t maskValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::KittlerIllingworthThresholdImageFilter::GetInsideValue "/**
+uint8_t itk::simple::KittlerIllingworthThresholdImageFilter::GetInsideValue() const
+
+Get the \"inside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::KittlerIllingworthThresholdImageFilter::GetMaskOutput "/**
+bool itk::simple::KittlerIllingworthThresholdImageFilter::GetMaskOutput() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::KittlerIllingworthThresholdImageFilter::GetMaskValue "/**
+uint8_t itk::simple::KittlerIllingworthThresholdImageFilter::GetMaskValue() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::KittlerIllingworthThresholdImageFilter::GetName "/**
+std::string itk::simple::KittlerIllingworthThresholdImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::KittlerIllingworthThresholdImageFilter::GetNumberOfHistogramBins "/**
+uint32_t itk::simple::KittlerIllingworthThresholdImageFilter::GetNumberOfHistogramBins() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::KittlerIllingworthThresholdImageFilter::GetOutsideValue "/**
+uint8_t itk::simple::KittlerIllingworthThresholdImageFilter::GetOutsideValue() const
+
+Get the \"outside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::KittlerIllingworthThresholdImageFilter::GetThreshold "/**
+double itk::simple::KittlerIllingworthThresholdImageFilter::GetThreshold() const
+
+Get the computed threshold.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::KittlerIllingworthThresholdImageFilter::KittlerIllingworthThresholdImageFilter "/**
+itk::simple::KittlerIllingworthThresholdImageFilter::KittlerIllingworthThresholdImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::KittlerIllingworthThresholdImageFilter::MaskOutputOff "/**
+Self& itk::simple::KittlerIllingworthThresholdImageFilter::MaskOutputOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::KittlerIllingworthThresholdImageFilter::MaskOutputOn "/**
+Self& itk::simple::KittlerIllingworthThresholdImageFilter::MaskOutputOn()
+
+Set the value of MaskOutput to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::KittlerIllingworthThresholdImageFilter::SetInsideValue "/**
+Self& itk::simple::KittlerIllingworthThresholdImageFilter::SetInsideValue(uint8_t InsideValue)
+
+Set the \"inside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::KittlerIllingworthThresholdImageFilter::SetMaskOutput "/**
+Self& itk::simple::KittlerIllingworthThresholdImageFilter::SetMaskOutput(bool MaskOutput)
+
+Do you want the output to be masked by the mask used in histogram
+construction. Only relevant if masking is in use.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::KittlerIllingworthThresholdImageFilter::SetMaskValue "/**
+Self& itk::simple::KittlerIllingworthThresholdImageFilter::SetMaskValue(uint8_t MaskValue)
+
+The value in the mask image, if used, indicating voxels that should be
+included. Default is the max of pixel type, as in the
+MaskedImageToHistogramFilter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::KittlerIllingworthThresholdImageFilter::SetNumberOfHistogramBins "/**
+Self& itk::simple::KittlerIllingworthThresholdImageFilter::SetNumberOfHistogramBins(uint32_t NumberOfHistogramBins)
+
+Set/Get the number of histogram bins.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::KittlerIllingworthThresholdImageFilter::SetOutsideValue "/**
+Self& itk::simple::KittlerIllingworthThresholdImageFilter::SetOutsideValue(uint8_t OutsideValue)
+
+Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::KittlerIllingworthThresholdImageFilter::ToString "/**
+std::string itk::simple::KittlerIllingworthThresholdImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::KittlerIllingworthThresholdImageFilter::~KittlerIllingworthThresholdImageFilter "/**
+itk::simple::KittlerIllingworthThresholdImageFilter::~KittlerIllingworthThresholdImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::LabelContourImageFilter "/**
+
+Labels the pixels on the border of the objects in a labeled image.
+
+
+LabelContourImageFilter takes a labeled image as input, where the pixels in the objects are
+the pixels with a value different of the BackgroundValue. Only the
+pixels on the contours of the objects are kept. The pixels not on the
+border are changed to BackgroundValue. The labels of the object are
+the same in the input and in the output image.
+
+The connectivity can be changed to minimum or maximum connectivity
+with SetFullyConnected() . Full connectivity produces thicker contours.
+
+https://hdl.handle.net/1926/1352
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ BinaryContourImageFilter
+Wiki Examples:
+
+All Examples
+
+Label the contours of connected components
+See:
+ itk::simple::LabelContour for the procedural interface
+
+ itk::LabelContourImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkLabelContourImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::LabelContourImageFilter::Execute "/**
+Image itk::simple::LabelContourImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelContourImageFilter::Execute "/**
+Image itk::simple::LabelContourImageFilter::Execute(const Image &image1, bool fullyConnected, double backgroundValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelContourImageFilter::FullyConnectedOff "/**
+Self& itk::simple::LabelContourImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelContourImageFilter::FullyConnectedOn "/**
+Self& itk::simple::LabelContourImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelContourImageFilter::GetBackgroundValue "/**
+double itk::simple::LabelContourImageFilter::GetBackgroundValue() const
+
+Set/Get the background value used to identify the objects and mark the
+pixels not on the border of the objects.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelContourImageFilter::GetFullyConnected "/**
+bool itk::simple::LabelContourImageFilter::GetFullyConnected() const
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff.
+For objects that are 1 pixel wide, use FullyConnectedOn.
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelContourImageFilter::GetName "/**
+std::string itk::simple::LabelContourImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelContourImageFilter::LabelContourImageFilter "/**
+itk::simple::LabelContourImageFilter::LabelContourImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelContourImageFilter::SetBackgroundValue "/**
+Self& itk::simple::LabelContourImageFilter::SetBackgroundValue(double BackgroundValue)
+
+Set/Get the background value used to identify the objects and mark the
+pixels not on the border of the objects.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelContourImageFilter::SetFullyConnected "/**
+Self& itk::simple::LabelContourImageFilter::SetFullyConnected(bool FullyConnected)
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff.
+For objects that are 1 pixel wide, use FullyConnectedOn.
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelContourImageFilter::ToString "/**
+std::string itk::simple::LabelContourImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelContourImageFilter::~LabelContourImageFilter "/**
+itk::simple::LabelContourImageFilter::~LabelContourImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::LabelImageToLabelMapFilter "/**
+
+convert a labeled image to a label collection image
+
+
+LabelImageToLabelMapFilter converts a label image to a label collection image. The labels are
+the same in the input and the output image.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+See:
+ BinaryImageToLabelMapFilter , LabelMapToLabelImageFilter
+Wiki Examples:
+
+All Examples
+
+Convert an itk::Image consisting of labeled regions to a LabelMap
+See:
+ itk::simple::LabelImageToLabelMapFilter for the procedural interface
+
+ itk::LabelImageToLabelMapFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkLabelImageToLabelMapFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::LabelImageToLabelMapFilter::Execute "/**
+Image itk::simple::LabelImageToLabelMapFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelImageToLabelMapFilter::Execute "/**
+Image itk::simple::LabelImageToLabelMapFilter::Execute(const Image &image1, double backgroundValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelImageToLabelMapFilter::GetBackgroundValue "/**
+double itk::simple::LabelImageToLabelMapFilter::GetBackgroundValue() const
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelImageToLabelMapFilter::GetName "/**
+std::string itk::simple::LabelImageToLabelMapFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelImageToLabelMapFilter::LabelImageToLabelMapFilter "/**
+itk::simple::LabelImageToLabelMapFilter::LabelImageToLabelMapFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelImageToLabelMapFilter::SetBackgroundValue "/**
+Self& itk::simple::LabelImageToLabelMapFilter::SetBackgroundValue(double BackgroundValue)
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelImageToLabelMapFilter::ToString "/**
+std::string itk::simple::LabelImageToLabelMapFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelImageToLabelMapFilter::~LabelImageToLabelMapFilter "/**
+itk::simple::LabelImageToLabelMapFilter::~LabelImageToLabelMapFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::LabelIntensityStatisticsImageFilter "/**
+
+a convenient class to convert a label image to a label map and valuate
+the statistics attributes at once
+
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+See:
+ StatisticsLabelObject , LabelStatisticsOpeningImageFilter , LabelStatisticsOpeningImageFilter
+
+ itk::LabelImageToStatisticsLabelMapFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLabelIntensityStatisticsImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::ComputeFeretDiameterOff "/**
+Self& itk::simple::LabelIntensityStatisticsImageFilter::ComputeFeretDiameterOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::ComputeFeretDiameterOn "/**
+Self& itk::simple::LabelIntensityStatisticsImageFilter::ComputeFeretDiameterOn()
+
+Set the value of ComputeFeretDiameter to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::ComputePerimeterOff "/**
+Self& itk::simple::LabelIntensityStatisticsImageFilter::ComputePerimeterOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::ComputePerimeterOn "/**
+Self& itk::simple::LabelIntensityStatisticsImageFilter::ComputePerimeterOn()
+
+Set the value of ComputePerimeter to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::Execute "/**
+void itk::simple::LabelIntensityStatisticsImageFilter::Execute(const Image &image, const Image &featureImage)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::Execute "/**
+void itk::simple::LabelIntensityStatisticsImageFilter::Execute(const Image &image, const Image &featureImage, double
+backgroundValue, bool computeFeretDiameter, bool computePerimeter,
+uint32_t numberOfBins)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetBackgroundValue "/**
+double itk::simple::LabelIntensityStatisticsImageFilter::GetBackgroundValue() const
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetBoundingBox "/**
+std::vector<unsigned int> itk::simple::LabelIntensityStatisticsImageFilter::GetBoundingBox(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetCenterOfGravity "/**
+std::vector<double> itk::simple::LabelIntensityStatisticsImageFilter::GetCenterOfGravity(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetCentroid "/**
+std::vector<double> itk::simple::LabelIntensityStatisticsImageFilter::GetCentroid(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetComputeFeretDiameter "/**
+bool itk::simple::LabelIntensityStatisticsImageFilter::GetComputeFeretDiameter() const
+
+Set/Get whether the maximum Feret diameter should be computed or not.
+The defaut value is false, because of the high computation time
+required.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetComputePerimeter "/**
+bool itk::simple::LabelIntensityStatisticsImageFilter::GetComputePerimeter() const
+
+Set/Get whether the perimeter should be computed or not. The defaut
+value is false, because of the high computation time required.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetElongation "/**
+double itk::simple::LabelIntensityStatisticsImageFilter::GetElongation(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetEquivalentEllipsoidDiameter "/**
+std::vector<double> itk::simple::LabelIntensityStatisticsImageFilter::GetEquivalentEllipsoidDiameter(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetEquivalentSphericalPerimeter "/**
+double itk::simple::LabelIntensityStatisticsImageFilter::GetEquivalentSphericalPerimeter(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetEquivalentSphericalRadius "/**
+double itk::simple::LabelIntensityStatisticsImageFilter::GetEquivalentSphericalRadius(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetFeretDiameter "/**
+double itk::simple::LabelIntensityStatisticsImageFilter::GetFeretDiameter(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetFlatness "/**
+double itk::simple::LabelIntensityStatisticsImageFilter::GetFlatness(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetKurtosis "/**
+double itk::simple::LabelIntensityStatisticsImageFilter::GetKurtosis(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetLabels "/**
+std::vector<int64_t> itk::simple::LabelIntensityStatisticsImageFilter::GetLabels() const
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetMaximum "/**
+double itk::simple::LabelIntensityStatisticsImageFilter::GetMaximum(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetMaximumIndex "/**
+std::vector<uint32_t> itk::simple::LabelIntensityStatisticsImageFilter::GetMaximumIndex(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetMean "/**
+double itk::simple::LabelIntensityStatisticsImageFilter::GetMean(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetMedian "/**
+double itk::simple::LabelIntensityStatisticsImageFilter::GetMedian(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetMinimum "/**
+double itk::simple::LabelIntensityStatisticsImageFilter::GetMinimum(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetMinimumIndex "/**
+std::vector<uint32_t> itk::simple::LabelIntensityStatisticsImageFilter::GetMinimumIndex(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetName "/**
+std::string itk::simple::LabelIntensityStatisticsImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetNumberOfBins "/**
+uint32_t itk::simple::LabelIntensityStatisticsImageFilter::GetNumberOfBins() const
+
+Set/Get the number of bins in the histogram. Note that the histogram
+is used to compute the median value, and that this option may have an
+effect on the value of the median.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetNumberOfLabels "/**
+uint64_t itk::simple::LabelIntensityStatisticsImageFilter::GetNumberOfLabels()
+
+Return the number of labels after execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetNumberOfPixels "/**
+uint64_t itk::simple::LabelIntensityStatisticsImageFilter::GetNumberOfPixels(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetNumberOfPixelsOnBorder "/**
+uint64_t itk::simple::LabelIntensityStatisticsImageFilter::GetNumberOfPixelsOnBorder(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetPerimeter "/**
+double itk::simple::LabelIntensityStatisticsImageFilter::GetPerimeter(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetPerimeterOnBorder "/**
+double itk::simple::LabelIntensityStatisticsImageFilter::GetPerimeterOnBorder(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetPerimeterOnBorderRatio "/**
+double itk::simple::LabelIntensityStatisticsImageFilter::GetPerimeterOnBorderRatio(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetPhysicalSize "/**
+double itk::simple::LabelIntensityStatisticsImageFilter::GetPhysicalSize(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetPrincipalAxes "/**
+std::vector<double> itk::simple::LabelIntensityStatisticsImageFilter::GetPrincipalAxes(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetPrincipalMoments "/**
+std::vector<double> itk::simple::LabelIntensityStatisticsImageFilter::GetPrincipalMoments(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetRoundness "/**
+double itk::simple::LabelIntensityStatisticsImageFilter::GetRoundness(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetSkewness "/**
+double itk::simple::LabelIntensityStatisticsImageFilter::GetSkewness(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetStandardDeviation "/**
+double itk::simple::LabelIntensityStatisticsImageFilter::GetStandardDeviation(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetSum "/**
+double itk::simple::LabelIntensityStatisticsImageFilter::GetSum(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetVariance "/**
+double itk::simple::LabelIntensityStatisticsImageFilter::GetVariance(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetWeightedElongation "/**
+double itk::simple::LabelIntensityStatisticsImageFilter::GetWeightedElongation(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetWeightedFlatness "/**
+double itk::simple::LabelIntensityStatisticsImageFilter::GetWeightedFlatness(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetWeightedPrincipalAxes "/**
+std::vector<double> itk::simple::LabelIntensityStatisticsImageFilter::GetWeightedPrincipalAxes(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::GetWeightedPrincipalMoments "/**
+std::vector<double> itk::simple::LabelIntensityStatisticsImageFilter::GetWeightedPrincipalMoments(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::HasLabel "/**
+double itk::simple::LabelIntensityStatisticsImageFilter::HasLabel(int64_t label)
+
+Does the specified label exist? Can only be called after a call a call
+to Update().
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::LabelIntensityStatisticsImageFilter "/**
+itk::simple::LabelIntensityStatisticsImageFilter::LabelIntensityStatisticsImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::SetBackgroundValue "/**
+Self& itk::simple::LabelIntensityStatisticsImageFilter::SetBackgroundValue(double BackgroundValue)
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::SetComputeFeretDiameter "/**
+Self& itk::simple::LabelIntensityStatisticsImageFilter::SetComputeFeretDiameter(bool ComputeFeretDiameter)
+
+Set/Get whether the maximum Feret diameter should be computed or not.
+The defaut value is false, because of the high computation time
+required.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::SetComputePerimeter "/**
+Self& itk::simple::LabelIntensityStatisticsImageFilter::SetComputePerimeter(bool ComputePerimeter)
+
+Set/Get whether the perimeter should be computed or not. The defaut
+value is false, because of the high computation time required.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::SetNumberOfBins "/**
+Self& itk::simple::LabelIntensityStatisticsImageFilter::SetNumberOfBins(uint32_t NumberOfBins)
+
+Set/Get the number of bins in the histogram. Note that the histogram
+is used to compute the median value, and that this option may have an
+effect on the value of the median.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::ToString "/**
+std::string itk::simple::LabelIntensityStatisticsImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelIntensityStatisticsImageFilter::~LabelIntensityStatisticsImageFilter "/**
+itk::simple::LabelIntensityStatisticsImageFilter::~LabelIntensityStatisticsImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::LabelMapContourOverlayImageFilter "/**
+
+Apply a colormap to the contours (outlines) of each object in a label
+map and superimpose it on top of the feature image.
+
+
+The feature image is typically the image from which the labeling was
+produced. Use the SetInput function to set the LabelMap , and the SetFeatureImage function to set the feature image.
+
+Apply a colormap to a label map and put it on top of the input image.
+The set of colors is a good selection of distinct colors. The opacity
+of the label map can be defined by the user. A background label
+produce a gray pixel with the same intensity than the input one.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+See:
+ LabelMapOverlayImageFilter , LabelOverlayImageFilter , LabelOverlayFunctor
+
+ LabelMapToBinaryImageFilter , LabelMapToLabelImageFilter ,
+Wiki Examples:
+
+All Examples
+
+Color the boundaries of labeled regions in an image
+See:
+ itk::simple::LabelMapContourOverlay for the procedural interface
+
+ itk::LabelMapContourOverlayImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkLabelMapContourOverlayImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::LabelMapContourOverlayImageFilter::Execute "/**
+Image itk::simple::LabelMapContourOverlayImageFilter::Execute(const Image &labelMapImage, const Image &featureImage)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapContourOverlayImageFilter::Execute "/**
+Image itk::simple::LabelMapContourOverlayImageFilter::Execute(const Image &labelMapImage, const Image &featureImage, double
+opacity, const std::vector< unsigned int > &dilationRadius, const
+std::vector< unsigned int > &contourThickness, unsigned int
+sliceDimension, LabelMapContourOverlayImageFilter::ContourTypeType
+contourType, LabelMapContourOverlayImageFilter::PriorityType priority,
+std::vector< uint8_t > colormap)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapContourOverlayImageFilter::GetColormap "/**
+std::vector<uint8_t> itk::simple::LabelMapContourOverlayImageFilter::GetColormap() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapContourOverlayImageFilter::GetContourThickness "/**
+std::vector<unsigned int> itk::simple::LabelMapContourOverlayImageFilter::GetContourThickness() const
+
+Set/Get the contour thickness - 1 by default.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapContourOverlayImageFilter::GetContourType "/**
+ContourTypeType itk::simple::LabelMapContourOverlayImageFilter::GetContourType() const
+
+Set/Get the overlay type - CONTOUR is used by default.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapContourOverlayImageFilter::GetDilationRadius "/**
+std::vector<unsigned int> itk::simple::LabelMapContourOverlayImageFilter::GetDilationRadius() const
+
+Set/Get the object dilation radius - 0 by default.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapContourOverlayImageFilter::GetName "/**
+std::string itk::simple::LabelMapContourOverlayImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapContourOverlayImageFilter::GetOpacity "/**
+double itk::simple::LabelMapContourOverlayImageFilter::GetOpacity() const
+
+Set/Get the opacity of the colored label image. The value must be
+between 0 and 1
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapContourOverlayImageFilter::GetPriority "/**
+PriorityType itk::simple::LabelMapContourOverlayImageFilter::GetPriority() const
+
+Set/Get the object priority - HIGH_LABEL_ON_TOP by default.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapContourOverlayImageFilter::GetSliceDimension "/**
+unsigned int itk::simple::LabelMapContourOverlayImageFilter::GetSliceDimension() const
+
+Set/Get the slice dimension - defaults to image dimension - 1.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapContourOverlayImageFilter::LabelMapContourOverlayImageFilter "/**
+itk::simple::LabelMapContourOverlayImageFilter::LabelMapContourOverlayImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapContourOverlayImageFilter::SetColormap "/**
+Self& itk::simple::LabelMapContourOverlayImageFilter::SetColormap(std::vector< uint8_t > Colormap)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapContourOverlayImageFilter::SetContourThickness "/**
+Self& itk::simple::LabelMapContourOverlayImageFilter::SetContourThickness(const std::vector< unsigned int > &ContourThickness)
+
+Set/Get the contour thickness - 1 by default.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapContourOverlayImageFilter::SetContourType "/**
+Self& itk::simple::LabelMapContourOverlayImageFilter::SetContourType(ContourTypeType ContourType)
+
+Set/Get the overlay type - CONTOUR is used by default.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapContourOverlayImageFilter::SetDilationRadius "/**
+Self& itk::simple::LabelMapContourOverlayImageFilter::SetDilationRadius(const std::vector< unsigned int > &DilationRadius)
+
+Set/Get the object dilation radius - 0 by default.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapContourOverlayImageFilter::SetDilationRadius "/**
+Self& itk::simple::LabelMapContourOverlayImageFilter::SetDilationRadius(unsigned int value)
+
+Set the values of the DilationRadius vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapContourOverlayImageFilter::SetOpacity "/**
+Self& itk::simple::LabelMapContourOverlayImageFilter::SetOpacity(double Opacity)
+
+Set/Get the opacity of the colored label image. The value must be
+between 0 and 1
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapContourOverlayImageFilter::SetPriority "/**
+Self& itk::simple::LabelMapContourOverlayImageFilter::SetPriority(PriorityType Priority)
+
+Set/Get the object priority - HIGH_LABEL_ON_TOP by default.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapContourOverlayImageFilter::SetSliceDimension "/**
+Self& itk::simple::LabelMapContourOverlayImageFilter::SetSliceDimension(unsigned int SliceDimension)
+
+Set/Get the slice dimension - defaults to image dimension - 1.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapContourOverlayImageFilter::ToString "/**
+std::string itk::simple::LabelMapContourOverlayImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapContourOverlayImageFilter::~LabelMapContourOverlayImageFilter "/**
+itk::simple::LabelMapContourOverlayImageFilter::~LabelMapContourOverlayImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::LabelMapMaskImageFilter "/**
+
+Mask and image with a LabelMap .
+
+
+LabelMapMaskImageFilter mask the content of an input image according to the content of the
+input LabelMap . The masked pixel of the input image are set to the BackgroundValue. LabelMapMaskImageFilter can keep the input image for one label only, with Negated = false
+(the default) or it can mask the input image for a single label, when
+Negated equals true. In Both cases, the label is set with SetLabel() .
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+See:
+ LabelMapToBinaryImageFilter , LabelMapToLabelImageFilter
+
+ itk::simple::LabelMapMask for the procedural interface
+
+ itk::LabelMapMaskImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLabelMapMaskImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::LabelMapMaskImageFilter::CropOff "/**
+Self& itk::simple::LabelMapMaskImageFilter::CropOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapMaskImageFilter::CropOn "/**
+Self& itk::simple::LabelMapMaskImageFilter::CropOn()
+
+Set the value of Crop to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapMaskImageFilter::Execute "/**
+Image itk::simple::LabelMapMaskImageFilter::Execute(const Image &labelMapImage, const Image &featureImage)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapMaskImageFilter::Execute "/**
+Image itk::simple::LabelMapMaskImageFilter::Execute(const Image &labelMapImage, const Image &featureImage, uint64_t
+label, double backgroundValue, bool negated, bool crop, const
+std::vector< unsigned int > &cropBorder)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapMaskImageFilter::GetBackgroundValue "/**
+double itk::simple::LabelMapMaskImageFilter::GetBackgroundValue() const
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::ZeroValue() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapMaskImageFilter::GetCrop "/**
+bool itk::simple::LabelMapMaskImageFilter::GetCrop() const
+
+Set/Get whether the image size should be adjusted to the masked image
+or not.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapMaskImageFilter::GetCropBorder "/**
+std::vector<unsigned int> itk::simple::LabelMapMaskImageFilter::GetCropBorder() const
+
+Set/Get the boder added to the mask before the crop. The default is 0
+on all the axes.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapMaskImageFilter::GetLabel "/**
+uint64_t itk::simple::LabelMapMaskImageFilter::GetLabel() const
+
+The label to mask or to not mask, depending on the value of the
+Negated ivar.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapMaskImageFilter::GetName "/**
+std::string itk::simple::LabelMapMaskImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapMaskImageFilter::GetNegated "/**
+bool itk::simple::LabelMapMaskImageFilter::GetNegated() const
+
+Set/Get whether the Label should be masked or not.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapMaskImageFilter::LabelMapMaskImageFilter "/**
+itk::simple::LabelMapMaskImageFilter::LabelMapMaskImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapMaskImageFilter::NegatedOff "/**
+Self& itk::simple::LabelMapMaskImageFilter::NegatedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapMaskImageFilter::NegatedOn "/**
+Self& itk::simple::LabelMapMaskImageFilter::NegatedOn()
+
+Set the value of Negated to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapMaskImageFilter::SetBackgroundValue "/**
+Self& itk::simple::LabelMapMaskImageFilter::SetBackgroundValue(double BackgroundValue)
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::ZeroValue() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapMaskImageFilter::SetCrop "/**
+Self& itk::simple::LabelMapMaskImageFilter::SetCrop(bool Crop)
+
+Set/Get whether the image size should be adjusted to the masked image
+or not.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapMaskImageFilter::SetCropBorder "/**
+Self& itk::simple::LabelMapMaskImageFilter::SetCropBorder(const std::vector< unsigned int > &CropBorder)
+
+Set/Get the boder added to the mask before the crop. The default is 0
+on all the axes.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapMaskImageFilter::SetCropBorder "/**
+Self& itk::simple::LabelMapMaskImageFilter::SetCropBorder(unsigned int value)
+
+Set the values of the CropBorder vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapMaskImageFilter::SetLabel "/**
+Self& itk::simple::LabelMapMaskImageFilter::SetLabel(uint64_t Label)
+
+The label to mask or to not mask, depending on the value of the
+Negated ivar.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapMaskImageFilter::SetNegated "/**
+Self& itk::simple::LabelMapMaskImageFilter::SetNegated(bool Negated)
+
+Set/Get whether the Label should be masked or not.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapMaskImageFilter::ToString "/**
+std::string itk::simple::LabelMapMaskImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapMaskImageFilter::~LabelMapMaskImageFilter "/**
+itk::simple::LabelMapMaskImageFilter::~LabelMapMaskImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::LabelMapOverlayImageFilter "/**
+
+Apply a colormap to a label map and superimpose it on an image.
+
+
+Apply a colormap to a label map and put it on top of the feature
+image. The feature image is typically the image from which the
+labeling was produced. Use the SetInput function to set the LabelMap , and the SetFeatureImage function to set the feature image.
+
+The set of colors is a good selection of distinct colors. The opacity
+of the label map can be defined by the user. A background label
+produce a gray pixel with the same intensity than the input one.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+See:
+ LabelOverlayImageFilter , LabelOverlayFunctor
+
+ LabelMapToRGBImageFilter , LabelMapToBinaryImageFilter , LabelMapToLabelImageFilter
+
+ itk::simple::LabelMapOverlay for the procedural interface
+
+ itk::LabelMapOverlayImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLabelMapOverlayImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::LabelMapOverlayImageFilter::Execute "/**
+Image itk::simple::LabelMapOverlayImageFilter::Execute(const Image &labelMapImage, const Image &featureImage)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapOverlayImageFilter::Execute "/**
+Image itk::simple::LabelMapOverlayImageFilter::Execute(const Image &labelMapImage, const Image &featureImage, double
+opacity, std::vector< unsigned char > colormap)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapOverlayImageFilter::GetColormap "/**
+std::vector<unsigned char> itk::simple::LabelMapOverlayImageFilter::GetColormap() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapOverlayImageFilter::GetName "/**
+std::string itk::simple::LabelMapOverlayImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapOverlayImageFilter::GetOpacity "/**
+double itk::simple::LabelMapOverlayImageFilter::GetOpacity() const
+
+Set/Get the opacity of the colored label image. The value must be
+between 0 and 1
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapOverlayImageFilter::LabelMapOverlayImageFilter "/**
+itk::simple::LabelMapOverlayImageFilter::LabelMapOverlayImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapOverlayImageFilter::SetColormap "/**
+Self& itk::simple::LabelMapOverlayImageFilter::SetColormap(std::vector< unsigned char > Colormap)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapOverlayImageFilter::SetOpacity "/**
+Self& itk::simple::LabelMapOverlayImageFilter::SetOpacity(double Opacity)
+
+Set/Get the opacity of the colored label image. The value must be
+between 0 and 1
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapOverlayImageFilter::ToString "/**
+std::string itk::simple::LabelMapOverlayImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapOverlayImageFilter::~LabelMapOverlayImageFilter "/**
+itk::simple::LabelMapOverlayImageFilter::~LabelMapOverlayImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::LabelMapToBinaryImageFilter "/**
+
+Convert a LabelMap to a binary image.
+
+
+LabelMapToBinaryImageFilter to a binary image. All the objects in the image are used as
+foreground. The background values of the original binary image can be
+restored by passing this image to the filter with the
+SetBackgroundImage() method.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ LabelMapToLabelImageFilter , LabelMapMaskImageFilter
+
+ itk::simple::LabelMapToBinary for the procedural interface
+
+ itk::LabelMapToBinaryImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLabelMapToBinaryImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::LabelMapToBinaryImageFilter::Execute "/**
+Image itk::simple::LabelMapToBinaryImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapToBinaryImageFilter::Execute "/**
+Image itk::simple::LabelMapToBinaryImageFilter::Execute(const Image &image1, double backgroundValue, double foregroundValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapToBinaryImageFilter::GetBackgroundValue "/**
+double itk::simple::LabelMapToBinaryImageFilter::GetBackgroundValue() const
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapToBinaryImageFilter::GetForegroundValue "/**
+double itk::simple::LabelMapToBinaryImageFilter::GetForegroundValue() const
+
+Set/Get the value used as \"foreground\" in the output image. Defaults
+to NumericTraits<PixelType>::max() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapToBinaryImageFilter::GetName "/**
+std::string itk::simple::LabelMapToBinaryImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapToBinaryImageFilter::LabelMapToBinaryImageFilter "/**
+itk::simple::LabelMapToBinaryImageFilter::LabelMapToBinaryImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapToBinaryImageFilter::SetBackgroundValue "/**
+Self& itk::simple::LabelMapToBinaryImageFilter::SetBackgroundValue(double BackgroundValue)
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapToBinaryImageFilter::SetForegroundValue "/**
+Self& itk::simple::LabelMapToBinaryImageFilter::SetForegroundValue(double ForegroundValue)
+
+Set/Get the value used as \"foreground\" in the output image. Defaults
+to NumericTraits<PixelType>::max() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapToBinaryImageFilter::ToString "/**
+std::string itk::simple::LabelMapToBinaryImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapToBinaryImageFilter::~LabelMapToBinaryImageFilter "/**
+itk::simple::LabelMapToBinaryImageFilter::~LabelMapToBinaryImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::LabelMapToLabelImageFilter "/**
+
+Converts a LabelMap to a labeled image.
+
+
+LabelMapToBinaryImageFilter to a label image.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+See:
+ LabelMapToBinaryImageFilter , LabelMapMaskImageFilter
+Wiki Examples:
+
+All Examples
+
+Convert a LabelMap to a normal image with different values representing each region
+See:
+ itk::simple::LabelMapToLabel for the procedural interface
+
+ itk::LabelMapToLabelImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkLabelMapToLabelImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::LabelMapToLabelImageFilter::Execute "/**
+Image itk::simple::LabelMapToLabelImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapToLabelImageFilter::GetName "/**
+std::string itk::simple::LabelMapToLabelImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapToLabelImageFilter::LabelMapToLabelImageFilter "/**
+itk::simple::LabelMapToLabelImageFilter::LabelMapToLabelImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapToLabelImageFilter::ToString "/**
+std::string itk::simple::LabelMapToLabelImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapToLabelImageFilter::~LabelMapToLabelImageFilter "/**
+itk::simple::LabelMapToLabelImageFilter::~LabelMapToLabelImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::LabelMapToRGBImageFilter "/**
+
+Convert a LabelMap to a colored image.
+
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+See:
+ LabelToRGBImageFilter , LabelToRGBFunctor
+
+ LabelMapOverlayImageFilter , LabelMapToBinaryImageFilter , LabelMapMaskImageFilter
+
+ itk::simple::LabelMapToRGB for the procedural interface
+
+ itk::LabelMapToRGBImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLabelMapToRGBImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::LabelMapToRGBImageFilter::Execute "/**
+Image itk::simple::LabelMapToRGBImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapToRGBImageFilter::Execute "/**
+Image itk::simple::LabelMapToRGBImageFilter::Execute(const Image &image1, std::vector< uint8_t > colormap)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapToRGBImageFilter::GetColormap "/**
+std::vector<uint8_t> itk::simple::LabelMapToRGBImageFilter::GetColormap() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapToRGBImageFilter::GetName "/**
+std::string itk::simple::LabelMapToRGBImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapToRGBImageFilter::LabelMapToRGBImageFilter "/**
+itk::simple::LabelMapToRGBImageFilter::LabelMapToRGBImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapToRGBImageFilter::SetColormap "/**
+Self& itk::simple::LabelMapToRGBImageFilter::SetColormap(std::vector< uint8_t > Colormap)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapToRGBImageFilter::ToString "/**
+std::string itk::simple::LabelMapToRGBImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapToRGBImageFilter::~LabelMapToRGBImageFilter "/**
+itk::simple::LabelMapToRGBImageFilter::~LabelMapToRGBImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::LabelOverlapMeasuresImageFilter "/**
+
+Computes overlap measures between the set same set of labels of pixels
+of two images. Background is assumed to be 0.
+
+
+This code was contributed in the Insight Journal paper: \"Introducing
+Dice, Jaccard, and Other Label Overlap Measures To ITK\" by Nicholas
+J. Tustison, James C. Gee https://hdl.handle.net/10380/3141 http://www.insight-journal.org/browse/publication/707
+
+
+Nicholas J. Tustison
+
+See:
+ LabelOverlapMeasuresImageFilter
+
+ itk::LabelOverlapMeasuresImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLabelOverlapMeasuresImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::LabelOverlapMeasuresImageFilter::Execute "/**
+void itk::simple::LabelOverlapMeasuresImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelOverlapMeasuresImageFilter::GetDiceCoefficient "/**
+double itk::simple::LabelOverlapMeasuresImageFilter::GetDiceCoefficient() const
+
+Get the mean overlap (Dice coefficient) for the specified individual
+label.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelOverlapMeasuresImageFilter::GetFalseNegativeError "/**
+double itk::simple::LabelOverlapMeasuresImageFilter::GetFalseNegativeError() const
+
+Get the false negative error for the specified individual label.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelOverlapMeasuresImageFilter::GetFalsePositiveError "/**
+double itk::simple::LabelOverlapMeasuresImageFilter::GetFalsePositiveError() const
+
+Get the false positive error for the specified individual label.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelOverlapMeasuresImageFilter::GetJaccardCoefficient "/**
+double itk::simple::LabelOverlapMeasuresImageFilter::GetJaccardCoefficient() const
+
+Get the union overlap (Jaccard coefficient) for the specified
+individual label.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelOverlapMeasuresImageFilter::GetMeanOverlap "/**
+double itk::simple::LabelOverlapMeasuresImageFilter::GetMeanOverlap() const
+
+Get the mean overlap (Dice coefficient) for the specified individual
+label.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelOverlapMeasuresImageFilter::GetName "/**
+std::string itk::simple::LabelOverlapMeasuresImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelOverlapMeasuresImageFilter::GetUnionOverlap "/**
+double itk::simple::LabelOverlapMeasuresImageFilter::GetUnionOverlap() const
+
+Get the union overlap (Jaccard coefficient) for the specified
+individual label.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelOverlapMeasuresImageFilter::GetVolumeSimilarity "/**
+double itk::simple::LabelOverlapMeasuresImageFilter::GetVolumeSimilarity() const
+
+Get the volume similarity for the specified individual label.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelOverlapMeasuresImageFilter::LabelOverlapMeasuresImageFilter "/**
+itk::simple::LabelOverlapMeasuresImageFilter::LabelOverlapMeasuresImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelOverlapMeasuresImageFilter::ToString "/**
+std::string itk::simple::LabelOverlapMeasuresImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelOverlapMeasuresImageFilter::~LabelOverlapMeasuresImageFilter "/**
+itk::simple::LabelOverlapMeasuresImageFilter::~LabelOverlapMeasuresImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::LabelOverlayImageFilter "/**
+
+Apply a colormap to a label image and put it on top of the input
+image.
+
+
+Apply a colormap to a label image and put it on top of the input
+image. The set of colors is a good selection of distinct colors. The
+opacity of the label image can be defined by the user. The user can
+also choose if the want to use a background and which label value is
+the background. A background label produce a gray pixel with the same
+intensity than the input one.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This class was contributed to the Insight Journal https://hdl.handle.net/1926/172
+
+
+See:
+ LabelToRGBImageFilter
+
+ LabelMapOverlayImageFilter , LabelOverlayFunctor
+Wiki Examples:
+
+All Examples
+
+Overlay a LabelMap on an image
+See:
+ itk::simple::LabelOverlay for the procedural interface
+
+ itk::LabelOverlayImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkLabelOverlayImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::LabelOverlayImageFilter::Execute "/**
+Image itk::simple::LabelOverlayImageFilter::Execute(const Image &image, const Image &labelImage)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelOverlayImageFilter::Execute "/**
+Image itk::simple::LabelOverlayImageFilter::Execute(const Image &image, const Image &labelImage, double opacity, double
+backgroundValue, std::vector< uint8_t > colormap)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelOverlayImageFilter::GetBackgroundValue "/**
+double itk::simple::LabelOverlayImageFilter::GetBackgroundValue() const
+
+Set/Get the background value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelOverlayImageFilter::GetColormap "/**
+std::vector<uint8_t> itk::simple::LabelOverlayImageFilter::GetColormap() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelOverlayImageFilter::GetName "/**
+std::string itk::simple::LabelOverlayImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelOverlayImageFilter::GetOpacity "/**
+double itk::simple::LabelOverlayImageFilter::GetOpacity() const
+
+Set/Get the opacity of the colored label image. The value must be
+between 0 and 1
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelOverlayImageFilter::LabelOverlayImageFilter "/**
+itk::simple::LabelOverlayImageFilter::LabelOverlayImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelOverlayImageFilter::SetBackgroundValue "/**
+Self& itk::simple::LabelOverlayImageFilter::SetBackgroundValue(double BackgroundValue)
+
+Set/Get the background value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelOverlayImageFilter::SetColormap "/**
+Self& itk::simple::LabelOverlayImageFilter::SetColormap(std::vector< uint8_t > Colormap)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelOverlayImageFilter::SetOpacity "/**
+Self& itk::simple::LabelOverlayImageFilter::SetOpacity(double Opacity)
+
+Set/Get the opacity of the colored label image. The value must be
+between 0 and 1
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelOverlayImageFilter::ToString "/**
+std::string itk::simple::LabelOverlayImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelOverlayImageFilter::~LabelOverlayImageFilter "/**
+itk::simple::LabelOverlayImageFilter::~LabelOverlayImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::LabelShapeStatisticsImageFilter "/**
+
+Converts a label image to a label map and valuates the shape
+attributes.
+
+
+A convenient class that converts a label image to a label map and
+valuates the shape attribute at once.
+
+This implementation was taken from the Insight Journal paper:
+
+https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ ShapeLabelObject , LabelShapeOpeningImageFilter , LabelStatisticsOpeningImageFilter
+Wiki Examples:
+
+All Examples
+
+Convert an itk::Image consisting of labeled regions to a ShapeLabelMap
+
+See:
+ itk::LabelImageToShapeLabelMapFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLabelShapeStatisticsImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::ComputeFeretDiameterOff "/**
+Self& itk::simple::LabelShapeStatisticsImageFilter::ComputeFeretDiameterOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::ComputeFeretDiameterOn "/**
+Self& itk::simple::LabelShapeStatisticsImageFilter::ComputeFeretDiameterOn()
+
+Set the value of ComputeFeretDiameter to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::ComputePerimeterOff "/**
+Self& itk::simple::LabelShapeStatisticsImageFilter::ComputePerimeterOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::ComputePerimeterOn "/**
+Self& itk::simple::LabelShapeStatisticsImageFilter::ComputePerimeterOn()
+
+Set the value of ComputePerimeter to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::Execute "/**
+void itk::simple::LabelShapeStatisticsImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::Execute "/**
+void itk::simple::LabelShapeStatisticsImageFilter::Execute(const Image &image1, double backgroundValue, bool
+computeFeretDiameter, bool computePerimeter)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::GetBackgroundValue "/**
+double itk::simple::LabelShapeStatisticsImageFilter::GetBackgroundValue() const
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::GetBoundingBox "/**
+std::vector<unsigned int> itk::simple::LabelShapeStatisticsImageFilter::GetBoundingBox(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::GetCentroid "/**
+std::vector<double> itk::simple::LabelShapeStatisticsImageFilter::GetCentroid(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::GetComputeFeretDiameter "/**
+bool itk::simple::LabelShapeStatisticsImageFilter::GetComputeFeretDiameter() const
+
+Set/Get whether the maximum Feret diameter should be computed or not.
+Default value is false, because of the high computation time required.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::GetComputePerimeter "/**
+bool itk::simple::LabelShapeStatisticsImageFilter::GetComputePerimeter() const
+
+Set/Get whether the perimeter should be computed or not. Default value
+is false, because of the high computation time required.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::GetElongation "/**
+double itk::simple::LabelShapeStatisticsImageFilter::GetElongation(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::GetEquivalentEllipsoidDiameter "/**
+std::vector<double> itk::simple::LabelShapeStatisticsImageFilter::GetEquivalentEllipsoidDiameter(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::GetEquivalentSphericalPerimeter "/**
+double itk::simple::LabelShapeStatisticsImageFilter::GetEquivalentSphericalPerimeter(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::GetEquivalentSphericalRadius "/**
+double itk::simple::LabelShapeStatisticsImageFilter::GetEquivalentSphericalRadius(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::GetFeretDiameter "/**
+double itk::simple::LabelShapeStatisticsImageFilter::GetFeretDiameter(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::GetFlatness "/**
+double itk::simple::LabelShapeStatisticsImageFilter::GetFlatness(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::GetLabels "/**
+std::vector<int64_t> itk::simple::LabelShapeStatisticsImageFilter::GetLabels() const
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::GetName "/**
+std::string itk::simple::LabelShapeStatisticsImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::GetNumberOfLabels "/**
+uint64_t itk::simple::LabelShapeStatisticsImageFilter::GetNumberOfLabels()
+
+Return the number of labels after execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::GetNumberOfPixels "/**
+uint64_t itk::simple::LabelShapeStatisticsImageFilter::GetNumberOfPixels(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::GetNumberOfPixelsOnBorder "/**
+uint64_t itk::simple::LabelShapeStatisticsImageFilter::GetNumberOfPixelsOnBorder(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::GetPerimeter "/**
+double itk::simple::LabelShapeStatisticsImageFilter::GetPerimeter(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::GetPerimeterOnBorder "/**
+double itk::simple::LabelShapeStatisticsImageFilter::GetPerimeterOnBorder(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::GetPerimeterOnBorderRatio "/**
+double itk::simple::LabelShapeStatisticsImageFilter::GetPerimeterOnBorderRatio(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::GetPhysicalSize "/**
+double itk::simple::LabelShapeStatisticsImageFilter::GetPhysicalSize(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::GetPrincipalAxes "/**
+std::vector<double> itk::simple::LabelShapeStatisticsImageFilter::GetPrincipalAxes(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::GetPrincipalMoments "/**
+std::vector<double> itk::simple::LabelShapeStatisticsImageFilter::GetPrincipalMoments(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::GetRoundness "/**
+double itk::simple::LabelShapeStatisticsImageFilter::GetRoundness(int64_t label) const
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::HasLabel "/**
+double itk::simple::LabelShapeStatisticsImageFilter::HasLabel(int64_t label)
+
+Does the specified label exist? Can only be called after a call a call
+to Update().
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::LabelShapeStatisticsImageFilter "/**
+itk::simple::LabelShapeStatisticsImageFilter::LabelShapeStatisticsImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::SetBackgroundValue "/**
+Self& itk::simple::LabelShapeStatisticsImageFilter::SetBackgroundValue(double BackgroundValue)
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::SetComputeFeretDiameter "/**
+Self& itk::simple::LabelShapeStatisticsImageFilter::SetComputeFeretDiameter(bool ComputeFeretDiameter)
+
+Set/Get whether the maximum Feret diameter should be computed or not.
+Default value is false, because of the high computation time required.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::SetComputePerimeter "/**
+Self& itk::simple::LabelShapeStatisticsImageFilter::SetComputePerimeter(bool ComputePerimeter)
+
+Set/Get whether the perimeter should be computed or not. Default value
+is false, because of the high computation time required.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::ToString "/**
+std::string itk::simple::LabelShapeStatisticsImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelShapeStatisticsImageFilter::~LabelShapeStatisticsImageFilter "/**
+itk::simple::LabelShapeStatisticsImageFilter::~LabelShapeStatisticsImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::LabelStatisticsImageFilter "/**
+
+Given an intensity image and a label map, compute min, max, variance
+and mean of the pixels associated with each label or segment.
+
+
+LabelStatisticsImageFilter computes the minimum, maximum, sum, mean, median, variance and sigma
+of regions of an intensity image, where the regions are defined via a
+label map (a second input). The label image should be integral type.
+The filter needs all of its input image. It behaves as a filter with
+an input and output. Thus it can be inserted in a pipline with other
+filters and the statistics will only be recomputed if a downstream
+filter changes.
+
+Optionally, the filter also computes intensity histograms on each
+object. If histograms are enabled, a median intensity value can also
+be computed, although its accuracy is limited to the bin width of the
+histogram. If histograms are not enabled, the median returns zero.
+
+The filter passes its intensity input through unmodified. The filter
+is threaded. It computes statistics in each thread then combines them
+in its AfterThreadedGenerate method.
+
+Wiki Examples:
+
+All Examples
+
+Get statistical properties of labeled regions in an image
+
+See:
+ itk::LabelStatisticsImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLabelStatisticsImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::LabelStatisticsImageFilter::Execute "/**
+void itk::simple::LabelStatisticsImageFilter::Execute(const Image &image, const Image &labelImage)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelStatisticsImageFilter::Execute "/**
+void itk::simple::LabelStatisticsImageFilter::Execute(const Image &image, const Image &labelImage, bool useHistograms)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelStatisticsImageFilter::GetBoundingBox "/**
+std::vector<int> itk::simple::LabelStatisticsImageFilter::GetBoundingBox(int64_t label) const
+
+Return the computed bounding box for a label.
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelStatisticsImageFilter::GetCount "/**
+uint64_t itk::simple::LabelStatisticsImageFilter::GetCount(int64_t label) const
+
+Return the number of pixels for a label.
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelStatisticsImageFilter::GetLabels "/**
+std::vector<int64_t> itk::simple::LabelStatisticsImageFilter::GetLabels() const
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelStatisticsImageFilter::GetMaximum "/**
+double itk::simple::LabelStatisticsImageFilter::GetMaximum(int64_t label) const
+
+Return the computed Maximum for a label.
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelStatisticsImageFilter::GetMean "/**
+double itk::simple::LabelStatisticsImageFilter::GetMean(int64_t label) const
+
+Return the computed Mean for a label.
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelStatisticsImageFilter::GetMedian "/**
+double itk::simple::LabelStatisticsImageFilter::GetMedian(int64_t label) const
+
+Return the computed Median for a label. Requires histograms to be
+enabled!
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelStatisticsImageFilter::GetMinimum "/**
+double itk::simple::LabelStatisticsImageFilter::GetMinimum(int64_t label) const
+
+Return the computed Minimum for a label.
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelStatisticsImageFilter::GetName "/**
+std::string itk::simple::LabelStatisticsImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelStatisticsImageFilter::GetNumberOfLabels "/**
+uint64_t itk::simple::LabelStatisticsImageFilter::GetNumberOfLabels()
+
+Return the number of labels after execution .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelStatisticsImageFilter::GetSigma "/**
+double itk::simple::LabelStatisticsImageFilter::GetSigma(int64_t label) const
+
+Return the computed Standard Deviation for a label.
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelStatisticsImageFilter::GetSum "/**
+double itk::simple::LabelStatisticsImageFilter::GetSum(int64_t label) const
+
+Return the compute Sum for a label.
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelStatisticsImageFilter::GetUseHistograms "/**
+bool itk::simple::LabelStatisticsImageFilter::GetUseHistograms() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelStatisticsImageFilter::GetVariance "/**
+double itk::simple::LabelStatisticsImageFilter::GetVariance(int64_t label) const
+
+Return the computed Variance for a label.
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelStatisticsImageFilter::HasLabel "/**
+double itk::simple::LabelStatisticsImageFilter::HasLabel(int64_t label)
+
+Does the specified label exist? Can only be called after a call a call
+to Update().
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelStatisticsImageFilter::LabelStatisticsImageFilter "/**
+itk::simple::LabelStatisticsImageFilter::LabelStatisticsImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelStatisticsImageFilter::SetUseHistograms "/**
+Self& itk::simple::LabelStatisticsImageFilter::SetUseHistograms(bool UseHistograms)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelStatisticsImageFilter::ToString "/**
+std::string itk::simple::LabelStatisticsImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelStatisticsImageFilter::UseHistogramsOff "/**
+Self& itk::simple::LabelStatisticsImageFilter::UseHistogramsOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelStatisticsImageFilter::UseHistogramsOn "/**
+Self& itk::simple::LabelStatisticsImageFilter::UseHistogramsOn()
+
+Set the value of UseHistograms to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelStatisticsImageFilter::~LabelStatisticsImageFilter "/**
+itk::simple::LabelStatisticsImageFilter::~LabelStatisticsImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::LabelToRGBImageFilter "/**
+
+Apply a colormap to a label image.
+
+
+Apply a colormap to a label image. The set of colors is a good
+selection of distinct colors. The user can choose to use a background
+value. In that case, a gray pixel with the same intensity than the
+background label is produced.
+
+This code was contributed in the Insight Journal paper: \"The
+watershed transform in ITK - discussion and new developments\" by
+Beare R., Lehmann G. https://hdl.handle.net/1926/202 http://www.insight-journal.org/browse/publication/92
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+
+
+See:
+ LabelOverlayImageFilter
+
+ LabelMapToRGBImageFilter , LabelToRGBFunctor, ScalarToRGBPixelFunctor
+
+ itk::simple::LabelToRGB for the procedural interface
+
+ itk::LabelToRGBImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLabelToRGBImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::LabelToRGBImageFilter::Execute "/**
+Image itk::simple::LabelToRGBImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelToRGBImageFilter::Execute "/**
+Image itk::simple::LabelToRGBImageFilter::Execute(const Image &image1, double backgroundValue, std::vector< uint8_t >
+colormap)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelToRGBImageFilter::GetBackgroundValue "/**
+double itk::simple::LabelToRGBImageFilter::GetBackgroundValue() const
+
+Set/Get the background value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelToRGBImageFilter::GetColormap "/**
+std::vector<uint8_t> itk::simple::LabelToRGBImageFilter::GetColormap() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelToRGBImageFilter::GetName "/**
+std::string itk::simple::LabelToRGBImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelToRGBImageFilter::LabelToRGBImageFilter "/**
+itk::simple::LabelToRGBImageFilter::LabelToRGBImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelToRGBImageFilter::SetBackgroundValue "/**
+Self& itk::simple::LabelToRGBImageFilter::SetBackgroundValue(double BackgroundValue)
+
+Set/Get the background value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelToRGBImageFilter::SetColormap "/**
+Self& itk::simple::LabelToRGBImageFilter::SetColormap(std::vector< uint8_t > Colormap)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelToRGBImageFilter::ToString "/**
+std::string itk::simple::LabelToRGBImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelToRGBImageFilter::~LabelToRGBImageFilter "/**
+itk::simple::LabelToRGBImageFilter::~LabelToRGBImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::LabelUniqueLabelMapFilter "/**
+
+Make sure that the objects are not overlapping.
+
+
+AttributeUniqueLabelMapFilter search the overlapping zones in the overlapping objects and keeps
+only a single object on all the pixels of the image. The object to
+keep is selected according to their label.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+See:
+ AttributeLabelObject
+
+ itk::simple::LabelUniqueLabelMapFilter for the procedural interface
+
+ itk::LabelUniqueLabelMapFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLabelUniqueLabelMapFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::LabelUniqueLabelMapFilter::Execute "/**
+Image itk::simple::LabelUniqueLabelMapFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelUniqueLabelMapFilter::Execute "/**
+Image itk::simple::LabelUniqueLabelMapFilter::Execute(const Image &image1, bool reverseOrdering)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelUniqueLabelMapFilter::GetName "/**
+std::string itk::simple::LabelUniqueLabelMapFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelUniqueLabelMapFilter::GetReverseOrdering "/**
+bool itk::simple::LabelUniqueLabelMapFilter::GetReverseOrdering() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelUniqueLabelMapFilter::LabelUniqueLabelMapFilter "/**
+itk::simple::LabelUniqueLabelMapFilter::LabelUniqueLabelMapFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelUniqueLabelMapFilter::ReverseOrderingOff "/**
+Self& itk::simple::LabelUniqueLabelMapFilter::ReverseOrderingOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelUniqueLabelMapFilter::ReverseOrderingOn "/**
+Self& itk::simple::LabelUniqueLabelMapFilter::ReverseOrderingOn()
+
+Set the value of ReverseOrdering to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelUniqueLabelMapFilter::SetReverseOrdering "/**
+Self& itk::simple::LabelUniqueLabelMapFilter::SetReverseOrdering(bool ReverseOrdering)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelUniqueLabelMapFilter::ToString "/**
+std::string itk::simple::LabelUniqueLabelMapFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelUniqueLabelMapFilter::~LabelUniqueLabelMapFilter "/**
+itk::simple::LabelUniqueLabelMapFilter::~LabelUniqueLabelMapFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::LabelVotingImageFilter "/**
+
+This filter performs pixelwise voting among an arbitrary number of
+input images, where each of them represents a segmentation of the same
+scene (i.e., image).
+
+
+Label voting is a simple method of classifier combination applied to
+image segmentation. Typically, the accuracy of the combined
+segmentation exceeds the accuracy of any of the input segmentations.
+Voting is therefore commonly used as a way of boosting segmentation
+performance.
+
+The use of label voting for combination of multiple segmentations is
+described in
+
+T. Rohlfing and C. R. Maurer, Jr., \"Multi-classifier framework for
+atlas-based image segmentation,\" Pattern Recognition Letters, 2005.
+
+INPUTS
+All input volumes to this filter must be segmentations of an image,
+that is, they must have discrete pixel values where each value
+represents a different segmented object.
+ Input volumes must all contain the same size RequestedRegions. Not all input images must contain all possible labels, but all label
+values must have the same meaning in all images.
+
+OUTPUTS
+The voting filter produces a single output volume. Each output pixel
+contains the label that occurred most often among the labels assigned
+to this pixel in all the input volumes, that is, the label that
+received the maximum number of \"votes\" from the input pixels.. If
+the maximum number of votes is not unique, i.e., if more than one
+label have a maximum number of votes, an \"undecided\" label is
+assigned to that output pixel.
+ By default, the label used for undecided pixels is the maximum label
+value used in the input images plus one. Since it is possible for an
+image with 8 bit pixel values to use all 256 possible label values, it
+is permissible to combine 8 bit (i.e., byte) images into a 16 bit
+(i.e., short) output image.
+
+PARAMETERS
+The label used for \"undecided\" labels can be set using
+SetLabelForUndecidedPixels. This functionality can be unset by calling
+UnsetLabelForUndecidedPixels.
+
+Torsten Rohlfing, SRI International, Neuroscience Program
+
+See:
+ itk::simple::LabelVoting for the procedural interface
+
+
+C++ includes: sitkLabelVotingImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::LabelVotingImageFilter::Execute "/**
+Image itk::simple::LabelVotingImageFilter::Execute(const std::vector< Image > &images)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelVotingImageFilter::Execute "/**
+Image itk::simple::LabelVotingImageFilter::Execute(const Image &image1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelVotingImageFilter::Execute "/**
+Image itk::simple::LabelVotingImageFilter::Execute(const Image &image1, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelVotingImageFilter::Execute "/**
+Image itk::simple::LabelVotingImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelVotingImageFilter::Execute "/**
+Image itk::simple::LabelVotingImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelVotingImageFilter::Execute "/**
+Image itk::simple::LabelVotingImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4, const Image &image5)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelVotingImageFilter::Execute "/**
+Image itk::simple::LabelVotingImageFilter::Execute(const std::vector< Image > &images, uint64_t labelForUndecidedPixels)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelVotingImageFilter::Execute "/**
+Image itk::simple::LabelVotingImageFilter::Execute(const Image &image1, uint64_t labelForUndecidedPixels)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelVotingImageFilter::Execute "/**
+Image itk::simple::LabelVotingImageFilter::Execute(const Image &image1, const Image &image2, uint64_t
+labelForUndecidedPixels)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelVotingImageFilter::Execute "/**
+Image itk::simple::LabelVotingImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3,
+uint64_t labelForUndecidedPixels)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelVotingImageFilter::Execute "/**
+Image itk::simple::LabelVotingImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4, uint64_t labelForUndecidedPixels)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelVotingImageFilter::Execute "/**
+Image itk::simple::LabelVotingImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4, const Image &image5, uint64_t labelForUndecidedPixels)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelVotingImageFilter::GetLabelForUndecidedPixels "/**
+uint64_t itk::simple::LabelVotingImageFilter::GetLabelForUndecidedPixels() const
+
+Get label value used for undecided pixels. After updating the filter,
+this function returns the actual label value used for undecided pixels
+in the current output. Note that this value is overwritten when
+SetLabelForUndecidedPixels is called and the new value only becomes
+effective upon the next filter update.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelVotingImageFilter::GetName "/**
+std::string itk::simple::LabelVotingImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelVotingImageFilter::LabelVotingImageFilter "/**
+itk::simple::LabelVotingImageFilter::LabelVotingImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelVotingImageFilter::SetLabelForUndecidedPixels "/**
+Self& itk::simple::LabelVotingImageFilter::SetLabelForUndecidedPixels(uint64_t LabelForUndecidedPixels)
+
+Set label value for undecided pixels.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelVotingImageFilter::ToString "/**
+std::string itk::simple::LabelVotingImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelVotingImageFilter::~LabelVotingImageFilter "/**
+itk::simple::LabelVotingImageFilter::~LabelVotingImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::LandmarkBasedTransformInitializerFilter "/**
+
+This class computes the transform that aligns the fixed and moving
+images given a set of pair landmarks. The class is templated over the Transform type as well as fixed image and moving image types. The transform
+computed gives the best fit transform that maps the fixed and moving
+images in a least squares sense. The indices are taken to correspond,
+so point 1 in the first set will get mapped close to point 1 in the
+second set, etc.
+
+Currently, the following transforms are supported by the class: VersorRigid3DTransform Rigid2DTransform AffineTransform BSplineTransform
+
+An equal number of fixed and moving landmarks need to be specified
+using SetFixedLandmarks() and SetMovingLandmarks() . Any number of landmarks may be specified. In the case of using
+Affine or BSpline transforms, each landmark pair can contribute in the
+final transform based on its defined weight. Number of weights should
+be equal to the number of landmarks and can be specified using SetLandmarkWeight() . By defaults are weights are set to one. Call InitializeTransform()
+to initialize the transform.
+
+The class is based in part on Hybrid/vtkLandmarkTransform originally
+implemented in python by David G. Gobbi.
+
+The solution is based on Berthold K. P. Horn (1987), \"Closed-form
+solution of absolute orientation using unit quaternions,\" http://people.csail.mit.edu/bkph/papers/Absolute_Orientation.pdf
+
+The Affine Transform initializer is based on an algorithm by H Spaeth, and is described in
+the Insight Journal Article \"Affine Transformation for Landmark Based
+Registration Initializer in ITK\" by Kim E.Y., Johnson H., Williams N.
+available at http://midasjournal.com/browse/publication/825
+
+Wiki Examples:
+
+All Examples
+
+Rigidly register one image to another using manually specified
+landmarks
+See:
+ itk::simple::LandmarkBasedTransformInitializerFilter for the procedural interface
+
+ itk::LandmarkBasedTransformInitializer for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkLandmarkBasedTransformInitializerFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::LandmarkBasedTransformInitializerFilter::Execute "/**
+Transform itk::simple::LandmarkBasedTransformInitializerFilter::Execute(const Transform &transform)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandmarkBasedTransformInitializerFilter::Execute "/**
+Transform itk::simple::LandmarkBasedTransformInitializerFilter::Execute(const Transform &transform, const std::vector< double >
+&fixedLandmarks, const std::vector< double > &movingLandmarks, const
+std::vector< double > &landmarkWeight, const Image &referenceImage,
+unsigned int numberOfControlPoints)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandmarkBasedTransformInitializerFilter::GetBSplineNumberOfControlPoints "/**
+unsigned int itk::simple::LandmarkBasedTransformInitializerFilter::GetBSplineNumberOfControlPoints() const
+
+Set/Get the number of control points
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandmarkBasedTransformInitializerFilter::GetFixedLandmarks "/**
+std::vector<double> itk::simple::LandmarkBasedTransformInitializerFilter::GetFixedLandmarks() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandmarkBasedTransformInitializerFilter::GetLandmarkWeight "/**
+std::vector<double> itk::simple::LandmarkBasedTransformInitializerFilter::GetLandmarkWeight() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandmarkBasedTransformInitializerFilter::GetMovingLandmarks "/**
+std::vector<double> itk::simple::LandmarkBasedTransformInitializerFilter::GetMovingLandmarks() const
+
+Get the shrink factors.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandmarkBasedTransformInitializerFilter::GetName "/**
+std::string itk::simple::LandmarkBasedTransformInitializerFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandmarkBasedTransformInitializerFilter::GetReferenceImage "/**
+Image itk::simple::LandmarkBasedTransformInitializerFilter::GetReferenceImage() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandmarkBasedTransformInitializerFilter::LandmarkBasedTransformInitializerFilter "/**
+itk::simple::LandmarkBasedTransformInitializerFilter::LandmarkBasedTransformInitializerFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandmarkBasedTransformInitializerFilter::SetBSplineNumberOfControlPoints "/**
+Self& itk::simple::LandmarkBasedTransformInitializerFilter::SetBSplineNumberOfControlPoints(unsigned int BSplineNumberOfControlPoints)
+
+Set/Get the number of control points
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandmarkBasedTransformInitializerFilter::SetFixedLandmarks "/**
+Self& itk::simple::LandmarkBasedTransformInitializerFilter::SetFixedLandmarks(const std::vector< double > &FixedLandmarks)
+
+Set the Fixed landmark point containers
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandmarkBasedTransformInitializerFilter::SetLandmarkWeight "/**
+Self& itk::simple::LandmarkBasedTransformInitializerFilter::SetLandmarkWeight(const std::vector< double > &LandmarkWeight)
+
+Set the landmark weight point containers Weight includes diagonal
+elements of weight matrix
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandmarkBasedTransformInitializerFilter::SetMovingLandmarks "/**
+Self& itk::simple::LandmarkBasedTransformInitializerFilter::SetMovingLandmarks(const std::vector< double > &MovingLandmarks)
+
+Set the Moving landmark point containers
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandmarkBasedTransformInitializerFilter::SetReferenceImage "/**
+Self& itk::simple::LandmarkBasedTransformInitializerFilter::SetReferenceImage(const Image &ReferenceImage)
+
+Set the reference image to define the parametric domain for the
+BSpline transform
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandmarkBasedTransformInitializerFilter::ToString "/**
+std::string itk::simple::LandmarkBasedTransformInitializerFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandmarkBasedTransformInitializerFilter::~LandmarkBasedTransformInitializerFilter "/**
+itk::simple::LandmarkBasedTransformInitializerFilter::~LandmarkBasedTransformInitializerFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::LandweberDeconvolutionImageFilter "/**
+
+Deconvolve an image using the Landweber deconvolution algorithm.
+
+
+This filter implements the Landweber deconvolution algorthm as defined
+in Bertero M and Boccacci P, \"Introduction to Inverse Problems in
+Imaging\", 1998. The algorithm assumes that the input image has been
+formed by a linear shift-invariant system with a known kernel.
+
+The Landweber algorithm converges to a solution that minimizes the sum
+of squared errors $||f \\\\otimes h - g||$ where $f$ is the estimate of the unblurred image, $\\\\otimes$ is the convolution operator, $h$ is the blurring kernel, and $g$ is the blurred input image. As such, it is best suited for images
+that have zero-mean Gaussian white noise.
+
+This is the base implementation of the Landweber algorithm. It may
+produce results with negative values. For a version of this algorithm
+that enforces a positivity constraint on each intermediate solution,
+see ProjectedLandweberDeconvolutionImageFilter .
+
+This code was adapted from the Insight Journal contribution:
+
+\"Deconvolution: infrastructure and reference algorithms\" by Gaetan
+Lehmann https://hdl.handle.net/10380/3207
+
+
+Gaetan Lehmann, Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France
+ Cory Quammen, The University of North Carolina at Chapel Hill
+
+
+See:
+ IterativeDeconvolutionImageFilter
+
+ RichardsonLucyDeconvolutionImageFilter
+
+ ProjectedLandweberDeconvolutionImageFilter
+
+ itk::simple::LandweberDeconvolution for the procedural interface
+
+ itk::LandweberDeconvolutionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLandweberDeconvolutionImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::LandweberDeconvolutionImageFilter::Execute "/**
+Image itk::simple::LandweberDeconvolutionImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandweberDeconvolutionImageFilter::Execute "/**
+Image itk::simple::LandweberDeconvolutionImageFilter::Execute(const Image &image1, const Image &image2, double alpha, int
+numberOfIterations, bool normalize,
+LandweberDeconvolutionImageFilter::BoundaryConditionType
+boundaryCondition,
+LandweberDeconvolutionImageFilter::OutputRegionModeType
+outputRegionMode)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandweberDeconvolutionImageFilter::GetAlpha "/**
+double itk::simple::LandweberDeconvolutionImageFilter::GetAlpha() const
+
+Set/get relaxation factor.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandweberDeconvolutionImageFilter::GetBoundaryCondition "/**
+BoundaryConditionType itk::simple::LandweberDeconvolutionImageFilter::GetBoundaryCondition() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandweberDeconvolutionImageFilter::GetName "/**
+std::string itk::simple::LandweberDeconvolutionImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandweberDeconvolutionImageFilter::GetNormalize "/**
+bool itk::simple::LandweberDeconvolutionImageFilter::GetNormalize() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandweberDeconvolutionImageFilter::GetNumberOfIterations "/**
+int itk::simple::LandweberDeconvolutionImageFilter::GetNumberOfIterations() const
+
+Get the number of iterations.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandweberDeconvolutionImageFilter::GetOutputRegionMode "/**
+OutputRegionModeType itk::simple::LandweberDeconvolutionImageFilter::GetOutputRegionMode() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandweberDeconvolutionImageFilter::LandweberDeconvolutionImageFilter "/**
+itk::simple::LandweberDeconvolutionImageFilter::LandweberDeconvolutionImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandweberDeconvolutionImageFilter::NormalizeOff "/**
+Self& itk::simple::LandweberDeconvolutionImageFilter::NormalizeOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandweberDeconvolutionImageFilter::NormalizeOn "/**
+Self& itk::simple::LandweberDeconvolutionImageFilter::NormalizeOn()
+
+Set the value of Normalize to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandweberDeconvolutionImageFilter::SetAlpha "/**
+Self& itk::simple::LandweberDeconvolutionImageFilter::SetAlpha(double Alpha)
+
+Set/get relaxation factor.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandweberDeconvolutionImageFilter::SetBoundaryCondition "/**
+Self& itk::simple::LandweberDeconvolutionImageFilter::SetBoundaryCondition(BoundaryConditionType BoundaryCondition)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandweberDeconvolutionImageFilter::SetNormalize "/**
+Self& itk::simple::LandweberDeconvolutionImageFilter::SetNormalize(bool Normalize)
+
+Normalize the output image by the sum of the kernel components
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandweberDeconvolutionImageFilter::SetNumberOfIterations "/**
+Self& itk::simple::LandweberDeconvolutionImageFilter::SetNumberOfIterations(int NumberOfIterations)
+
+Set the number of iterations.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandweberDeconvolutionImageFilter::SetOutputRegionMode "/**
+Self& itk::simple::LandweberDeconvolutionImageFilter::SetOutputRegionMode(OutputRegionModeType OutputRegionMode)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandweberDeconvolutionImageFilter::ToString "/**
+std::string itk::simple::LandweberDeconvolutionImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandweberDeconvolutionImageFilter::~LandweberDeconvolutionImageFilter "/**
+itk::simple::LandweberDeconvolutionImageFilter::~LandweberDeconvolutionImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::LaplacianImageFilter "/**
+
+This filter computes the Laplacian of a scalar-valued image. The
+Laplacian is an isotropic measure of the 2nd spatial derivative of an
+image. The Laplacian of an image highlights regions of rapid intensity
+change and is therefore often used for edge detection. Often, the
+Laplacian is applied to an image that has first been smoothed with a
+Gaussian filter in order to reduce its sensitivity to noise.
+
+
+The Laplacian at each pixel location is computed by convolution with
+the itk::LaplacianOperator .
+Inputs and Outputs
+The input to this filter is a scalar-valued itk::Image of arbitrary dimension. The output is a scalar-valued itk::Image .
+
+WARNING:
+The pixel type of the input and output images must be of real type
+(float or double). ConceptChecking is used here to enforce the input
+pixel type. You will get a compilation error if the pixel type of the
+input and output images is not float or double.
+
+See:
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+
+ LaplacianOperator
+Wiki Examples:
+
+All Examples
+
+Compute the Laplacian of an image
+See:
+ itk::simple::Laplacian for the procedural interface
+
+ itk::LaplacianImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkLaplacianImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::LaplacianImageFilter::Execute "/**
+Image itk::simple::LaplacianImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianImageFilter::Execute "/**
+Image itk::simple::LaplacianImageFilter::Execute(const Image &image1, bool useImageSpacing)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianImageFilter::GetName "/**
+std::string itk::simple::LaplacianImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianImageFilter::GetUseImageSpacing "/**
+bool itk::simple::LaplacianImageFilter::GetUseImageSpacing() const
+
+Set/Get whether or not the filter will use the spacing of the input
+image in its calculations
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianImageFilter::LaplacianImageFilter "/**
+itk::simple::LaplacianImageFilter::LaplacianImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianImageFilter::SetUseImageSpacing "/**
+Self& itk::simple::LaplacianImageFilter::SetUseImageSpacing(bool UseImageSpacing)
+
+Set/Get whether or not the filter will use the spacing of the input
+image in its calculations
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianImageFilter::ToString "/**
+std::string itk::simple::LaplacianImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianImageFilter::UseImageSpacingOff "/**
+Self& itk::simple::LaplacianImageFilter::UseImageSpacingOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianImageFilter::UseImageSpacingOn "/**
+Self& itk::simple::LaplacianImageFilter::UseImageSpacingOn()
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianImageFilter::~LaplacianImageFilter "/**
+itk::simple::LaplacianImageFilter::~LaplacianImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::LaplacianRecursiveGaussianImageFilter "/**
+
+Computes the Laplacian of Gaussian (LoG) of an image.
+
+
+Computes the Laplacian of Gaussian (LoG) of an image by convolution
+with the second derivative of a Gaussian. This filter is implemented
+using the recursive gaussian filters.
+
+Wiki Examples:
+
+All Examples
+
+Compute the Laplacian of Gaussian (LoG) of an image
+See:
+ itk::simple::LaplacianRecursiveGaussian for the procedural interface
+
+ itk::LaplacianRecursiveGaussianImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkLaplacianRecursiveGaussianImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::LaplacianRecursiveGaussianImageFilter::Execute "/**
+Image itk::simple::LaplacianRecursiveGaussianImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianRecursiveGaussianImageFilter::Execute "/**
+Image itk::simple::LaplacianRecursiveGaussianImageFilter::Execute(const Image &image1, double sigma, bool normalizeAcrossScale)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianRecursiveGaussianImageFilter::GetName "/**
+std::string itk::simple::LaplacianRecursiveGaussianImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianRecursiveGaussianImageFilter::GetNormalizeAcrossScale "/**
+bool itk::simple::LaplacianRecursiveGaussianImageFilter::GetNormalizeAcrossScale() const
+
+Define which normalization factor will be used for the Gaussian
+See:
+ RecursiveGaussianImageFilter::SetNormalizeAcrossScale
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianRecursiveGaussianImageFilter::GetSigma "/**
+double itk::simple::LaplacianRecursiveGaussianImageFilter::GetSigma() const
+
+Set Sigma value. Sigma is measured in the units of image spacing.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianRecursiveGaussianImageFilter::LaplacianRecursiveGaussianImageFilter "/**
+itk::simple::LaplacianRecursiveGaussianImageFilter::LaplacianRecursiveGaussianImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianRecursiveGaussianImageFilter::NormalizeAcrossScaleOff "/**
+Self& itk::simple::LaplacianRecursiveGaussianImageFilter::NormalizeAcrossScaleOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianRecursiveGaussianImageFilter::NormalizeAcrossScaleOn "/**
+Self& itk::simple::LaplacianRecursiveGaussianImageFilter::NormalizeAcrossScaleOn()
+
+Set the value of NormalizeAcrossScale to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianRecursiveGaussianImageFilter::SetNormalizeAcrossScale "/**
+Self& itk::simple::LaplacianRecursiveGaussianImageFilter::SetNormalizeAcrossScale(bool NormalizeAcrossScale)
+
+Define which normalization factor will be used for the Gaussian
+See:
+ RecursiveGaussianImageFilter::SetNormalizeAcrossScale
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianRecursiveGaussianImageFilter::SetSigma "/**
+Self& itk::simple::LaplacianRecursiveGaussianImageFilter::SetSigma(double Sigma)
+
+Set Sigma value. Sigma is measured in the units of image spacing.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianRecursiveGaussianImageFilter::ToString "/**
+std::string itk::simple::LaplacianRecursiveGaussianImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianRecursiveGaussianImageFilter::~LaplacianRecursiveGaussianImageFilter "/**
+itk::simple::LaplacianRecursiveGaussianImageFilter::~LaplacianRecursiveGaussianImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::LaplacianSegmentationLevelSetImageFilter "/**
+
+Segments structures in images based on a second derivative image
+features.
+
+
+IMPORTANT
+The SegmentationLevelSetImageFilter class and the LaplacianSegmentationLevelSetFunction class contain additional information necessary to the full
+understanding of how to use this filter.
+OVERVIEW
+This class is a level set method segmentation filter. It constructs a
+speed function which is zero at image edges as detected by a Laplacian
+filter. The evolving level set front will therefore tend to lock onto
+zero crossings in the image. The level set front moves fastest near
+edges.
+
+The Laplacian segmentation filter is intended primarily as a tool for
+refining existing segmentations. The initial isosurface (as given in
+the seed input image) should ideally be very close to the segmentation
+boundary of interest. The idea is that a rough segmentation can be
+refined by allowing the isosurface to deform slightly to achieve a
+better fit to the edge features of an image. One example of such an
+application is to refine the output of a hand segmented image.
+
+Because values in the Laplacian feature image will tend to be low
+except near edge features, this filter is not effective for segmenting
+large image regions from small seed surfaces.
+INPUTS
+This filter requires two inputs. The first input is a seed image. This
+seed image must contain an isosurface that you want to use as the seed
+for your segmentation. It can be a binary, graylevel, or floating
+point image. The only requirement is that it contain a closed
+isosurface that you will identify as the seed by setting the
+IsosurfaceValue parameter of the filter. For a binary image you will
+want to set your isosurface value halfway between your on and off
+values (i.e. for 0's and 1's, use an isosurface value of 0.5).
+
+The second input is the feature image. This is the image from which
+the speed function will be calculated. For most applications, this is
+the image that you want to segment. The desired isosurface in your
+seed image should lie within the region of your feature image that you
+are trying to segment.
+ Note that this filter does no preprocessing of the feature image
+before thresholding. Because second derivative calculations are highly
+sensitive to noise, isotropic or anisotropic smoothing of the feature
+image can dramatically improve the results.
+
+
+See SegmentationLevelSetImageFilter for more information on Inputs.
+OUTPUTS
+The filter outputs a single, scalar, real-valued image. Positive
+*values in the output image are inside the segmentated region and
+negative *values in the image are outside of the inside region. The
+zero crossings of *the image correspond to the position of the level
+set front.
+
+See SparseFieldLevelSetImageFilter and SegmentationLevelSetImageFilter for more information.
+PARAMETERS
+This filter has no parameters other than those described in SegmentationLevelSetImageFilter .
+
+See:
+ SegmentationLevelSetImageFilter
+
+ LaplacianSegmentationLevelSetFunction ,
+
+ SparseFieldLevelSetImageFilter
+
+ itk::simple::LaplacianSegmentationLevelSet for the procedural interface
+
+ itk::LaplacianSegmentationLevelSetImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLaplacianSegmentationLevelSetImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::LaplacianSegmentationLevelSetImageFilter::Execute "/**
+Image itk::simple::LaplacianSegmentationLevelSetImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSegmentationLevelSetImageFilter::Execute "/**
+Image itk::simple::LaplacianSegmentationLevelSetImageFilter::Execute(const Image &image1, const Image &image2, double maximumRMSError,
+double propagationScaling, double curvatureScaling, uint32_t
+numberOfIterations, bool reverseExpansionDirection)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSegmentationLevelSetImageFilter::GetCurvatureScaling "/**
+double itk::simple::LaplacianSegmentationLevelSetImageFilter::GetCurvatureScaling() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSegmentationLevelSetImageFilter::GetElapsedIterations "/**
+uint32_t itk::simple::LaplacianSegmentationLevelSetImageFilter::GetElapsedIterations() const
+
+Number of iterations run.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSegmentationLevelSetImageFilter::GetMaximumRMSError "/**
+double itk::simple::LaplacianSegmentationLevelSetImageFilter::GetMaximumRMSError() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSegmentationLevelSetImageFilter::GetName "/**
+std::string itk::simple::LaplacianSegmentationLevelSetImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSegmentationLevelSetImageFilter::GetNumberOfIterations "/**
+uint32_t itk::simple::LaplacianSegmentationLevelSetImageFilter::GetNumberOfIterations() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSegmentationLevelSetImageFilter::GetPropagationScaling "/**
+double itk::simple::LaplacianSegmentationLevelSetImageFilter::GetPropagationScaling() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSegmentationLevelSetImageFilter::GetReverseExpansionDirection "/**
+bool itk::simple::LaplacianSegmentationLevelSetImageFilter::GetReverseExpansionDirection() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSegmentationLevelSetImageFilter::GetRMSChange "/**
+double itk::simple::LaplacianSegmentationLevelSetImageFilter::GetRMSChange() const
+
+The Root Mean Square of the levelset upon termination.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSegmentationLevelSetImageFilter::LaplacianSegmentationLevelSetImageFilter "/**
+itk::simple::LaplacianSegmentationLevelSetImageFilter::LaplacianSegmentationLevelSetImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSegmentationLevelSetImageFilter::ReverseExpansionDirectionOff "/**
+Self& itk::simple::LaplacianSegmentationLevelSetImageFilter::ReverseExpansionDirectionOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSegmentationLevelSetImageFilter::ReverseExpansionDirectionOn "/**
+Self& itk::simple::LaplacianSegmentationLevelSetImageFilter::ReverseExpansionDirectionOn()
+
+Set the value of ReverseExpansionDirection to true or false
+respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSegmentationLevelSetImageFilter::SetCurvatureScaling "/**
+Self& itk::simple::LaplacianSegmentationLevelSetImageFilter::SetCurvatureScaling(double CurvatureScaling)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSegmentationLevelSetImageFilter::SetMaximumRMSError "/**
+Self& itk::simple::LaplacianSegmentationLevelSetImageFilter::SetMaximumRMSError(double MaximumRMSError)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSegmentationLevelSetImageFilter::SetNumberOfIterations "/**
+Self& itk::simple::LaplacianSegmentationLevelSetImageFilter::SetNumberOfIterations(uint32_t NumberOfIterations)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSegmentationLevelSetImageFilter::SetPropagationScaling "/**
+Self& itk::simple::LaplacianSegmentationLevelSetImageFilter::SetPropagationScaling(double PropagationScaling)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSegmentationLevelSetImageFilter::SetReverseExpansionDirection "/**
+Self& itk::simple::LaplacianSegmentationLevelSetImageFilter::SetReverseExpansionDirection(bool ReverseExpansionDirection)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSegmentationLevelSetImageFilter::ToString "/**
+std::string itk::simple::LaplacianSegmentationLevelSetImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSegmentationLevelSetImageFilter::~LaplacianSegmentationLevelSetImageFilter "/**
+itk::simple::LaplacianSegmentationLevelSetImageFilter::~LaplacianSegmentationLevelSetImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::LaplacianSharpeningImageFilter "/**
+
+This filter sharpens an image using a Laplacian. LaplacianSharpening
+highlights regions of rapid intensity change and therefore highlights
+or enhances the edges. The result is an image that appears more in
+focus.
+
+
+The LaplacianSharpening at each pixel location is computed by
+convolution with the itk::LaplacianOperator .
+Inputs and Outputs
+The input to this filter is a scalar-valued itk::Image of arbitrary dimension. The output is a scalar-valued itk::Image .
+
+See:
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+
+ LaplacianOperator
+Wiki Examples:
+
+All Examples
+
+Sharpen an image
+See:
+ itk::simple::LaplacianSharpening for the procedural interface
+
+ itk::LaplacianSharpeningImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkLaplacianSharpeningImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::LaplacianSharpeningImageFilter::Execute "/**
+Image itk::simple::LaplacianSharpeningImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSharpeningImageFilter::Execute "/**
+Image itk::simple::LaplacianSharpeningImageFilter::Execute(const Image &image1, bool useImageSpacing)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSharpeningImageFilter::GetName "/**
+std::string itk::simple::LaplacianSharpeningImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSharpeningImageFilter::GetUseImageSpacing "/**
+bool itk::simple::LaplacianSharpeningImageFilter::GetUseImageSpacing() const
+
+Set/Get whether or not the filter will use the spacing of the input
+image in its calculations
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSharpeningImageFilter::LaplacianSharpeningImageFilter "/**
+itk::simple::LaplacianSharpeningImageFilter::LaplacianSharpeningImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSharpeningImageFilter::SetUseImageSpacing "/**
+Self& itk::simple::LaplacianSharpeningImageFilter::SetUseImageSpacing(bool UseImageSpacing)
+
+Set/Get whether or not the filter will use the spacing of the input
+image in its calculations
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSharpeningImageFilter::ToString "/**
+std::string itk::simple::LaplacianSharpeningImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSharpeningImageFilter::UseImageSpacingOff "/**
+Self& itk::simple::LaplacianSharpeningImageFilter::UseImageSpacingOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSharpeningImageFilter::UseImageSpacingOn "/**
+Self& itk::simple::LaplacianSharpeningImageFilter::UseImageSpacingOn()
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSharpeningImageFilter::~LaplacianSharpeningImageFilter "/**
+itk::simple::LaplacianSharpeningImageFilter::~LaplacianSharpeningImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::LessEqualImageFilter "/**
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This class is parameterized over the types of the two input images and
+the type of the output image. It is also parameterized by the
+operation to be applied. A Functor style is used.
+
+The constant must be of the same type than the pixel type of the
+corresponding image. It is wrapped in a SimpleDataObjectDecorator so it can be updated through the pipeline. The SetConstant() and
+GetConstant() methods are provided as shortcuts to set or get the
+constant value without manipulating the decorator.
+
+
+See:
+ UnaryFunctorImageFilter TernaryFunctorImageFilter
+Wiki Examples:
+
+All Examples
+
+Apply a predefined operation to corresponding pixels in two images
+
+Apply a custom operation to corresponding pixels in two images
+See:
+ itk::simple::LessEqual for the procedural interface
+
+ itk::BinaryFunctorImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkLessEqualImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::LessEqualImageFilter::Execute "/**
+Image itk::simple::LessEqualImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessEqualImageFilter::Execute "/**
+Image itk::simple::LessEqualImageFilter::Execute(const Image &image1, const Image &image2, uint8_t backgroundValue,
+uint8_t foregroundValue)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessEqualImageFilter::Execute "/**
+Image itk::simple::LessEqualImageFilter::Execute(const Image &image1, double constant)
+
+Execute the filter with an image and a constant
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessEqualImageFilter::Execute "/**
+Image itk::simple::LessEqualImageFilter::Execute(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessEqualImageFilter::Execute "/**
+Image itk::simple::LessEqualImageFilter::Execute(const Image &image1, double constant, uint8_t backgroundValue,
+uint8_t foregroundValue)
+
+Execute the filter on an image and a constant with the given
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessEqualImageFilter::Execute "/**
+Image itk::simple::LessEqualImageFilter::Execute(double constant, const Image &image2, uint8_t backgroundValue,
+uint8_t foregroundValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessEqualImageFilter::GetBackgroundValue "/**
+uint8_t itk::simple::LessEqualImageFilter::GetBackgroundValue() const
+
+Set/Get the value used to mark the false pixels of the operator.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessEqualImageFilter::GetForegroundValue "/**
+uint8_t itk::simple::LessEqualImageFilter::GetForegroundValue() const
+
+Set/Get the value used to mark the true pixels of the operator.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessEqualImageFilter::GetName "/**
+std::string itk::simple::LessEqualImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessEqualImageFilter::LessEqualImageFilter "/**
+itk::simple::LessEqualImageFilter::LessEqualImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessEqualImageFilter::SetBackgroundValue "/**
+Self& itk::simple::LessEqualImageFilter::SetBackgroundValue(uint8_t BackgroundValue)
+
+Set/Get the value used to mark the false pixels of the operator.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessEqualImageFilter::SetForegroundValue "/**
+Self& itk::simple::LessEqualImageFilter::SetForegroundValue(uint8_t ForegroundValue)
+
+Set/Get the value used to mark the true pixels of the operator.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessEqualImageFilter::ToString "/**
+std::string itk::simple::LessEqualImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessEqualImageFilter::~LessEqualImageFilter "/**
+itk::simple::LessEqualImageFilter::~LessEqualImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::LessImageFilter "/**
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This class is parameterized over the types of the two input images and
+the type of the output image. It is also parameterized by the
+operation to be applied. A Functor style is used.
+
+The constant must be of the same type than the pixel type of the
+corresponding image. It is wrapped in a SimpleDataObjectDecorator so it can be updated through the pipeline. The SetConstant() and
+GetConstant() methods are provided as shortcuts to set or get the
+constant value without manipulating the decorator.
+
+
+See:
+ UnaryFunctorImageFilter TernaryFunctorImageFilter
+Wiki Examples:
+
+All Examples
+
+Apply a predefined operation to corresponding pixels in two images
+
+Apply a custom operation to corresponding pixels in two images
+See:
+ itk::simple::Less for the procedural interface
+
+ itk::BinaryFunctorImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkLessImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::LessImageFilter::Execute "/**
+Image itk::simple::LessImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessImageFilter::Execute "/**
+Image itk::simple::LessImageFilter::Execute(const Image &image1, const Image &image2, uint8_t backgroundValue,
+uint8_t foregroundValue)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessImageFilter::Execute "/**
+Image itk::simple::LessImageFilter::Execute(const Image &image1, double constant)
+
+Execute the filter with an image and a constant
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessImageFilter::Execute "/**
+Image itk::simple::LessImageFilter::Execute(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessImageFilter::Execute "/**
+Image itk::simple::LessImageFilter::Execute(const Image &image1, double constant, uint8_t backgroundValue,
+uint8_t foregroundValue)
+
+Execute the filter on an image and a constant with the given
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessImageFilter::Execute "/**
+Image itk::simple::LessImageFilter::Execute(double constant, const Image &image2, uint8_t backgroundValue,
+uint8_t foregroundValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessImageFilter::GetBackgroundValue "/**
+uint8_t itk::simple::LessImageFilter::GetBackgroundValue() const
+
+Set/Get the value used to mark the false pixels of the operator.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessImageFilter::GetForegroundValue "/**
+uint8_t itk::simple::LessImageFilter::GetForegroundValue() const
+
+Set/Get the value used to mark the true pixels of the operator.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessImageFilter::GetName "/**
+std::string itk::simple::LessImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessImageFilter::LessImageFilter "/**
+itk::simple::LessImageFilter::LessImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessImageFilter::SetBackgroundValue "/**
+Self& itk::simple::LessImageFilter::SetBackgroundValue(uint8_t BackgroundValue)
+
+Set/Get the value used to mark the false pixels of the operator.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessImageFilter::SetForegroundValue "/**
+Self& itk::simple::LessImageFilter::SetForegroundValue(uint8_t ForegroundValue)
+
+Set/Get the value used to mark the true pixels of the operator.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessImageFilter::ToString "/**
+std::string itk::simple::LessImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessImageFilter::~LessImageFilter "/**
+itk::simple::LessImageFilter::~LessImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::LevelSetMotionRegistrationFilter "/**
+
+Deformably register two images using level set motion.
+
+
+LevelSetMotionFilter implements a deformable registration algorithm
+that aligns a fixed and a moving image under level set motion. The
+equations of motion are similar to those of the DemonsRegistrationFilter . The main differences are: (1) Gradients of the moving image are
+calculated on a smoothed image while intensity difference are measured
+on the original images (2) Magnitude of the motion vector is a
+function of the differences in intensity between the fixed and moving
+pixel. An adaptive timestep is calculated based on the maximum motion
+vector over the entire field to ensure stability. The timestep also
+implictly converts the motion vector measured in units of intensity to
+a vector measured in physical units. Demons, on the other hand,
+defines its motion vectors as function of both the intensity
+differences and gradient magnitude at each respective pixel. Consider
+two separate pixels with the same intensity differences between the
+corresponding fixed and moving pixel pairs. In demons, the motion
+vector of the pixel over a low gradient region will be larger than the
+motion vector of the pixel over a large gradient region. This leads to
+an unstable vector field. In the levelset approach, the motion vectors
+will be proportional to the gradients, scaled by the maximum gradient
+over the entire field. The pixel with at the lower gradient position
+will more less than the pixel at the higher gradient position. (3)
+Gradients are calculated using minmod finite difference instead of
+using central differences.
+
+A deformation field is represented as a image whose pixel type is some
+vector type with at least N elements, where N is the dimension of the
+fixed image. The vector type must support element access via operator
+[]. It is assumed that the vector elements behave like floating point
+scalars.
+
+This class is templated over the fixed image type, moving image type
+and the deformation field type.
+
+The input fixed and moving images are set via methods SetFixedImage
+and SetMovingImage respectively. An initial deformation field maybe
+set via SetInitialDisplacementField or SetInput. If no initial field
+is set, a zero field is used as the initial condition.
+
+The algorithm has one parameters: the number of iteration to be
+performed.
+
+The output deformation field can be obtained via methods GetOutput or
+GetDisplacementField.
+
+This class make use of the finite difference solver hierarchy. Update
+for each iteration is computed in LevelSetMotionFunction.
+
+
+WARNING:
+This filter assumes that the fixed image type, moving image type and
+deformation field type all have the same number of dimensions.
+ Ref: B.C. Vemuri, J. Ye, Y. Chen, C.M. Leonard. \"Image registration
+via level-set motion: applications to atlas-based segmentation\".
+Medical Image Analysis. Vol. 7. pp. 1-20. 2003.
+
+
+See:
+ LevelSetMotionRegistrationFunction
+
+ DemonsRegistrationFilter
+
+ itk::LevelSetMotionRegistrationFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLevelSetMotionRegistrationFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::Execute "/**
+Image itk::simple::LevelSetMotionRegistrationFilter::Execute(const Image &fixedImage, const Image &movingImage)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::Execute "/**
+Image itk::simple::LevelSetMotionRegistrationFilter::Execute(const Image &fixedImage, const Image &movingImage, double
+gradientSmoothingStandardDeviations, uint32_t numberOfIterations,
+double maximumRMSError, const std::vector< double >
+&standardDeviations, bool smoothDisplacementField, const std::vector<
+double > &updateFieldStandardDeviations, bool smoothUpdateField,
+unsigned int maximumKernelWidth, double maximumError, double alpha,
+double intensityDifferenceThreshold, double
+gradientMagnitudeThreshold, bool useImageSpacing)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::GetAlpha "/**
+double itk::simple::LevelSetMotionRegistrationFilter::GetAlpha() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::GetElapsedIterations "/**
+uint32_t itk::simple::LevelSetMotionRegistrationFilter::GetElapsedIterations() const
+
+Number of iterations run.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::GetGradientMagnitudeThreshold "/**
+double itk::simple::LevelSetMotionRegistrationFilter::GetGradientMagnitudeThreshold() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::GetGradientSmoothingStandardDeviations "/**
+double itk::simple::LevelSetMotionRegistrationFilter::GetGradientSmoothingStandardDeviations() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::GetIntensityDifferenceThreshold "/**
+double itk::simple::LevelSetMotionRegistrationFilter::GetIntensityDifferenceThreshold() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::GetMaximumError "/**
+double itk::simple::LevelSetMotionRegistrationFilter::GetMaximumError() const
+
+Set/Get the desired maximum error of the Guassian kernel approximate.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::GetMaximumKernelWidth "/**
+unsigned int itk::simple::LevelSetMotionRegistrationFilter::GetMaximumKernelWidth() const
+
+Set/Get the desired limits of the Gaussian kernel width.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::GetMaximumRMSError "/**
+double itk::simple::LevelSetMotionRegistrationFilter::GetMaximumRMSError() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::GetMetric "/**
+double itk::simple::LevelSetMotionRegistrationFilter::GetMetric() const
+
+Get the metric value. The metric value is the mean square difference
+in intensity between the fixed image and transforming moving image
+computed over the the overlapping region between the two images. This
+is value is only available for the previous iteration and NOT the
+current iteration.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::GetName "/**
+std::string itk::simple::LevelSetMotionRegistrationFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::GetNumberOfIterations "/**
+uint32_t itk::simple::LevelSetMotionRegistrationFilter::GetNumberOfIterations() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::GetRMSChange "/**
+double itk::simple::LevelSetMotionRegistrationFilter::GetRMSChange() const
+
+The Root Mean Square of the levelset upon termination.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::GetSmoothDisplacementField "/**
+bool itk::simple::LevelSetMotionRegistrationFilter::GetSmoothDisplacementField() const
+
+Set/Get whether the displacement field is smoothed (regularized).
+Smoothing the displacement yields a solution elastic in nature. If
+SmoothDisplacementField is on, then the displacement field is smoothed
+with a Gaussian whose standard deviations are specified with SetStandardDeviations()
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::GetSmoothUpdateField "/**
+bool itk::simple::LevelSetMotionRegistrationFilter::GetSmoothUpdateField() const
+
+Set/Get whether the update field is smoothed (regularized). Smoothing
+the update field yields a solution viscous in nature. If
+SmoothUpdateField is on, then the update field is smoothed with a
+Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::GetStandardDeviations "/**
+std::vector<double> itk::simple::LevelSetMotionRegistrationFilter::GetStandardDeviations() const
+
+Set/Get the Gaussian smoothing standard deviations for the
+displacement field. The values are set with respect to pixel
+coordinates.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::GetUpdateFieldStandardDeviations "/**
+std::vector<double> itk::simple::LevelSetMotionRegistrationFilter::GetUpdateFieldStandardDeviations() const
+
+Set the Gaussian smoothing standard deviations for the update field.
+The values are set with respect to pixel coordinates.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::GetUseImageSpacing "/**
+bool itk::simple::LevelSetMotionRegistrationFilter::GetUseImageSpacing() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::LevelSetMotionRegistrationFilter "/**
+itk::simple::LevelSetMotionRegistrationFilter::LevelSetMotionRegistrationFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::SetAlpha "/**
+Self& itk::simple::LevelSetMotionRegistrationFilter::SetAlpha(double Alpha)
+
+Set/Get the parameter alpha. Alpha is added to the calculated gradient
+magnitude prior to normalizing the gradient to protect against
+numerical instability as the gradient magnitude approaches zero. This
+should be set as a small fraction of the intensity dynamic range, for
+instance 0.04%. Default is the absolute (not percentage) value of 0.1.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::SetGradientMagnitudeThreshold "/**
+Self& itk::simple::LevelSetMotionRegistrationFilter::SetGradientMagnitudeThreshold(double GradientMagnitudeThreshold)
+
+Set/Get the threshold below which the gradient magnitude is considered
+the zero vector. Default is 1e-9.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::SetGradientSmoothingStandardDeviations "/**
+Self& itk::simple::LevelSetMotionRegistrationFilter::SetGradientSmoothingStandardDeviations(double GradientSmoothingStandardDeviations)
+
+Set/Get the standard deviation used for smoothing the moving image
+prior to calculating gradients. The standard deviation is measured in
+physical units (for instance mm). Note that this smoothing value is
+not to be confused with the
+PDEDeformableRegistrationFilter::SetStandardDeviations() method. The
+method in PDEDeformableRegistrationFilter is for setting the smoothing parameters for regularizing the
+deformation field between interations. Those smoothing parameters are
+set in pixel units not physical units. Deformation field smoothing is
+not done by default in LevelSetMotionRegistration. This smoothing
+parameter is to condition the gradient calculation and parameter is
+specified in physical units.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::SetIntensityDifferenceThreshold "/**
+Self& itk::simple::LevelSetMotionRegistrationFilter::SetIntensityDifferenceThreshold(double IntensityDifferenceThreshold)
+
+Set/Get the threshold below which the absolute difference of intensity
+yields a match. When the intensities match between a moving and fixed
+image pixel, the update vector (for that iteration) will be the zero
+vector. Default is 0.001.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::SetMaximumError "/**
+Self& itk::simple::LevelSetMotionRegistrationFilter::SetMaximumError(double MaximumError)
+
+Set/Get the desired maximum error of the Guassian kernel approximate.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::SetMaximumKernelWidth "/**
+Self& itk::simple::LevelSetMotionRegistrationFilter::SetMaximumKernelWidth(unsigned int MaximumKernelWidth)
+
+Set/Get the desired limits of the Gaussian kernel width.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::SetMaximumRMSError "/**
+Self& itk::simple::LevelSetMotionRegistrationFilter::SetMaximumRMSError(double MaximumRMSError)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::SetNumberOfIterations "/**
+Self& itk::simple::LevelSetMotionRegistrationFilter::SetNumberOfIterations(uint32_t NumberOfIterations)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::SetSmoothDisplacementField "/**
+Self& itk::simple::LevelSetMotionRegistrationFilter::SetSmoothDisplacementField(bool SmoothDisplacementField)
+
+Set/Get whether the displacement field is smoothed (regularized).
+Smoothing the displacement yields a solution elastic in nature. If
+SmoothDisplacementField is on, then the displacement field is smoothed
+with a Gaussian whose standard deviations are specified with SetStandardDeviations()
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::SetSmoothUpdateField "/**
+Self& itk::simple::LevelSetMotionRegistrationFilter::SetSmoothUpdateField(bool SmoothUpdateField)
+
+Set/Get whether the update field is smoothed (regularized). Smoothing
+the update field yields a solution viscous in nature. If
+SmoothUpdateField is on, then the update field is smoothed with a
+Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::SetStandardDeviations "/**
+Self& itk::simple::LevelSetMotionRegistrationFilter::SetStandardDeviations(const std::vector< double > &StandardDeviations)
+
+Set/Get the Gaussian smoothing standard deviations for the
+displacement field. The values are set with respect to pixel
+coordinates.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::SetStandardDeviations "/**
+Self& itk::simple::LevelSetMotionRegistrationFilter::SetStandardDeviations(double value)
+
+Set the values of the StandardDeviations vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::SetUpdateFieldStandardDeviations "/**
+Self& itk::simple::LevelSetMotionRegistrationFilter::SetUpdateFieldStandardDeviations(const std::vector< double > &UpdateFieldStandardDeviations)
+
+Set the Gaussian smoothing standard deviations for the update field.
+The values are set with respect to pixel coordinates.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::SetUpdateFieldStandardDeviations "/**
+Self& itk::simple::LevelSetMotionRegistrationFilter::SetUpdateFieldStandardDeviations(double value)
+
+Set the values of the UpdateFieldStandardDeviations vector all to
+value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::SetUseImageSpacing "/**
+Self& itk::simple::LevelSetMotionRegistrationFilter::SetUseImageSpacing(bool UseImageSpacing)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::SmoothDisplacementFieldOff "/**
+Self& itk::simple::LevelSetMotionRegistrationFilter::SmoothDisplacementFieldOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::SmoothDisplacementFieldOn "/**
+Self& itk::simple::LevelSetMotionRegistrationFilter::SmoothDisplacementFieldOn()
+
+Set the value of SmoothDisplacementField to true or false
+respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::SmoothUpdateFieldOff "/**
+Self& itk::simple::LevelSetMotionRegistrationFilter::SmoothUpdateFieldOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::SmoothUpdateFieldOn "/**
+Self& itk::simple::LevelSetMotionRegistrationFilter::SmoothUpdateFieldOn()
+
+Set the value of SmoothUpdateField to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::ToString "/**
+std::string itk::simple::LevelSetMotionRegistrationFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::UseImageSpacingOff "/**
+Self& itk::simple::LevelSetMotionRegistrationFilter::UseImageSpacingOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::UseImageSpacingOn "/**
+Self& itk::simple::LevelSetMotionRegistrationFilter::UseImageSpacingOn()
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LevelSetMotionRegistrationFilter::~LevelSetMotionRegistrationFilter "/**
+itk::simple::LevelSetMotionRegistrationFilter::~LevelSetMotionRegistrationFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::LiThresholdImageFilter "/**
+
+Threshold an image using the Li Threshold.
+
+
+This filter creates a binary thresholded image that separates an image
+into foreground and background components. The filter computes the
+threshold using the LiThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .
+
+
+Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+ Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/10380/3279 or http://www.insight-journal.org/browse/publication/811
+
+
+See:
+ HistogramThresholdImageFilter
+
+ itk::simple::LiThreshold for the procedural interface
+
+ itk::LiThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLiThresholdImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::LiThresholdImageFilter::Execute "/**
+Image itk::simple::LiThresholdImageFilter::Execute(const Image &image, const Image &maskImage)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LiThresholdImageFilter::Execute "/**
+Image itk::simple::LiThresholdImageFilter::Execute(const Image &image)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LiThresholdImageFilter::Execute "/**
+Image itk::simple::LiThresholdImageFilter::Execute(const Image &image, const Image &maskImage, uint8_t insideValue,
+uint8_t outsideValue, uint32_t numberOfHistogramBins, bool maskOutput,
+uint8_t maskValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LiThresholdImageFilter::Execute "/**
+Image itk::simple::LiThresholdImageFilter::Execute(const Image &image, uint8_t insideValue, uint8_t outsideValue,
+uint32_t numberOfHistogramBins, bool maskOutput, uint8_t maskValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LiThresholdImageFilter::GetInsideValue "/**
+uint8_t itk::simple::LiThresholdImageFilter::GetInsideValue() const
+
+Get the \"inside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LiThresholdImageFilter::GetMaskOutput "/**
+bool itk::simple::LiThresholdImageFilter::GetMaskOutput() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LiThresholdImageFilter::GetMaskValue "/**
+uint8_t itk::simple::LiThresholdImageFilter::GetMaskValue() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LiThresholdImageFilter::GetName "/**
+std::string itk::simple::LiThresholdImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LiThresholdImageFilter::GetNumberOfHistogramBins "/**
+uint32_t itk::simple::LiThresholdImageFilter::GetNumberOfHistogramBins() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LiThresholdImageFilter::GetOutsideValue "/**
+uint8_t itk::simple::LiThresholdImageFilter::GetOutsideValue() const
+
+Get the \"outside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LiThresholdImageFilter::GetThreshold "/**
+double itk::simple::LiThresholdImageFilter::GetThreshold() const
+
+Get the computed threshold.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LiThresholdImageFilter::LiThresholdImageFilter "/**
+itk::simple::LiThresholdImageFilter::LiThresholdImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LiThresholdImageFilter::MaskOutputOff "/**
+Self& itk::simple::LiThresholdImageFilter::MaskOutputOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LiThresholdImageFilter::MaskOutputOn "/**
+Self& itk::simple::LiThresholdImageFilter::MaskOutputOn()
+
+Set the value of MaskOutput to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LiThresholdImageFilter::SetInsideValue "/**
+Self& itk::simple::LiThresholdImageFilter::SetInsideValue(uint8_t InsideValue)
+
+Set the \"inside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LiThresholdImageFilter::SetMaskOutput "/**
+Self& itk::simple::LiThresholdImageFilter::SetMaskOutput(bool MaskOutput)
+
+Do you want the output to be masked by the mask used in histogram
+construction. Only relevant if masking is in use.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LiThresholdImageFilter::SetMaskValue "/**
+Self& itk::simple::LiThresholdImageFilter::SetMaskValue(uint8_t MaskValue)
+
+The value in the mask image, if used, indicating voxels that should be
+included. Default is the max of pixel type, as in the
+MaskedImageToHistogramFilter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LiThresholdImageFilter::SetNumberOfHistogramBins "/**
+Self& itk::simple::LiThresholdImageFilter::SetNumberOfHistogramBins(uint32_t NumberOfHistogramBins)
+
+Set/Get the number of histogram bins.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LiThresholdImageFilter::SetOutsideValue "/**
+Self& itk::simple::LiThresholdImageFilter::SetOutsideValue(uint8_t OutsideValue)
+
+Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LiThresholdImageFilter::ToString "/**
+std::string itk::simple::LiThresholdImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LiThresholdImageFilter::~LiThresholdImageFilter "/**
+itk::simple::LiThresholdImageFilter::~LiThresholdImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::Log10ImageFilter "/**
+
+Computes the log10 of each pixel.
+
+
+The computation is performed using std::log10(x).
+See:
+ itk::simple::Log10 for the procedural interface
+
+ itk::Log10ImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLog10ImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::Log10ImageFilter::Execute "/**
+Image itk::simple::Log10ImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Log10ImageFilter::GetName "/**
+std::string itk::simple::Log10ImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Log10ImageFilter::Log10ImageFilter "/**
+itk::simple::Log10ImageFilter::Log10ImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Log10ImageFilter::ToString "/**
+std::string itk::simple::Log10ImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Log10ImageFilter::~Log10ImageFilter "/**
+itk::simple::Log10ImageFilter::~Log10ImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::LogImageFilter "/**
+
+Computes the log() of each pixel.
+
+
+
+See:
+ itk::simple::Log for the procedural interface
+
+ itk::LogImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLogImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::LogImageFilter::Execute "/**
+Image itk::simple::LogImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LogImageFilter::GetName "/**
+std::string itk::simple::LogImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LogImageFilter::LogImageFilter "/**
+itk::simple::LogImageFilter::LogImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LogImageFilter::ToString "/**
+std::string itk::simple::LogImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LogImageFilter::~LogImageFilter "/**
+itk::simple::LogImageFilter::~LogImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::MagnitudeAndPhaseToComplexImageFilter "/**
+
+Implements pixel-wise conversion of magnitude and phase data into
+complex voxels.
+
+
+This filter is parametrized over the types of the two input images and
+the type of the output image.
+
+The filter expect all images to have the same dimension (e.g. all 2D,
+or all 3D, or all ND)
+See:
+ itk::simple::MagnitudeAndPhaseToComplex for the procedural interface
+
+ itk::MagnitudeAndPhaseToComplexImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkMagnitudeAndPhaseToComplexImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::MagnitudeAndPhaseToComplexImageFilter::Execute "/**
+Image itk::simple::MagnitudeAndPhaseToComplexImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MagnitudeAndPhaseToComplexImageFilter::Execute "/**
+Image itk::simple::MagnitudeAndPhaseToComplexImageFilter::Execute(const Image &image1, double constant)
+
+Execute the filter with an image and a constant
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MagnitudeAndPhaseToComplexImageFilter::Execute "/**
+Image itk::simple::MagnitudeAndPhaseToComplexImageFilter::Execute(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MagnitudeAndPhaseToComplexImageFilter::GetName "/**
+std::string itk::simple::MagnitudeAndPhaseToComplexImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MagnitudeAndPhaseToComplexImageFilter::MagnitudeAndPhaseToComplexImageFilter "/**
+itk::simple::MagnitudeAndPhaseToComplexImageFilter::MagnitudeAndPhaseToComplexImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MagnitudeAndPhaseToComplexImageFilter::ToString "/**
+std::string itk::simple::MagnitudeAndPhaseToComplexImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MagnitudeAndPhaseToComplexImageFilter::~MagnitudeAndPhaseToComplexImageFilter "/**
+itk::simple::MagnitudeAndPhaseToComplexImageFilter::~MagnitudeAndPhaseToComplexImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::MaskImageFilter "/**
+
+Mask an image with a mask.
+
+
+This class is templated over the types of the input image type, the
+mask image type and the type of the output image. Numeric conversions
+(castings) are done by the C++ defaults.
+
+The pixel type of the input 2 image must have a valid definition of
+the operator != with zero. This condition is required because
+internally this filter will perform the operation
+
+
+The pixel from the input 1 is cast to the pixel type of the output
+image.
+
+Note that the input and the mask images must be of the same size.
+
+
+WARNING:
+Any pixel value other than masking value (0 by default) will not be
+masked out.
+
+See:
+ MaskNegatedImageFilter
+Wiki Examples:
+
+All Examples
+
+Apply a mask to an image
+See:
+ itk::simple::Mask for the procedural interface
+
+ itk::MaskImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkMaskImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::MaskImageFilter::Execute "/**
+Image itk::simple::MaskImageFilter::Execute(const Image &image, const Image &maskImage)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaskImageFilter::Execute "/**
+Image itk::simple::MaskImageFilter::Execute(const Image &image, const Image &maskImage, double outsideValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaskImageFilter::GetName "/**
+std::string itk::simple::MaskImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaskImageFilter::GetOutsideValue "/**
+double itk::simple::MaskImageFilter::GetOutsideValue() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaskImageFilter::MaskImageFilter "/**
+itk::simple::MaskImageFilter::MaskImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaskImageFilter::SetOutsideValue "/**
+Self& itk::simple::MaskImageFilter::SetOutsideValue(double OutsideValue)
+
+Method to explicitly set the outside value of the mask. Defaults to 0
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaskImageFilter::ToString "/**
+std::string itk::simple::MaskImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaskImageFilter::~MaskImageFilter "/**
+itk::simple::MaskImageFilter::~MaskImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::MaskNegatedImageFilter "/**
+
+Mask an image with the negative of a mask.
+
+
+This class is templated over the types of the input image type, the
+mask image type and the type of the output image. Numeric conversions
+(castings) are done by the C++ defaults. The pixel type of the input 2
+image must have a valid definition of the operator != with zero. This
+condition is required because internally this filter will perform the
+operation ifpixel_from_mask_image!=0pixel_output_image=output_valueels
+epixel_output_image=pixel_input_image The pixel from the input 1 is
+cast to the pixel type of the output image. Note that the input and
+the mask images must be of the same size.
+WARNING:
+Any pixel value other than 0 will not be masked out.
+
+See:
+ MaskImageFilter
+Wiki Examples:
+
+All Examples
+
+Apply the inverse of a mask to an image
+
+See:
+ itk::simple::MaskNegated for the procedural interface
+
+ itk::MaskNegatedImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkMaskNegatedImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::MaskNegatedImageFilter::Execute "/**
+Image itk::simple::MaskNegatedImageFilter::Execute(const Image &image, const Image &maskImage)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaskNegatedImageFilter::GetName "/**
+std::string itk::simple::MaskNegatedImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaskNegatedImageFilter::MaskNegatedImageFilter "/**
+itk::simple::MaskNegatedImageFilter::MaskNegatedImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaskNegatedImageFilter::ToString "/**
+std::string itk::simple::MaskNegatedImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaskNegatedImageFilter::~MaskNegatedImageFilter "/**
+itk::simple::MaskNegatedImageFilter::~MaskNegatedImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::MaskedFFTNormalizedCorrelationImageFilter "/**
+
+Calculate masked normalized cross correlation using FFTs.
+
+
+This filter calculates the masked normalized cross correlation (NCC)
+of two images under masks using FFTs instead of spatial correlation.
+It is much faster than spatial correlation for reasonably large
+structuring elements. This filter is not equivalent to simply masking
+the images first and then correlating them; the latter approach yields
+incorrect results because the zeros in the images still affect the
+metric in the correlation process. This filter implements the masked
+NCC correctly so that the masked-out regions are completely ignored.
+The fundamental difference is described in detail in the references
+below. If the masks are set to images of all ones, the result of this
+filter is the same as standard NCC.
+
+Inputs: Two images are required as inputs, fixedImage and movingImage,
+and two are optional, fixedMask and movingMask. In the context of
+correlation, inputs are often defined as: \"image\" and \"template\".
+In this filter, the fixedImage plays the role of the image, and the
+movingImage plays the role of the template. However, this filter is
+capable of correlating any two images and is not restricted to small
+movingImages (templates). In the fixedMask and movingMask, non-zero
+positive values indicate locations of useful information in the
+corresponding image, whereas zero and negative values indicate
+locations that should be masked out (ignored). Internally, the masks
+are converted to have values of only 0 and 1. For each optional mask
+that is not set, the filter internally creates an image of ones, which
+is equivalent to not masking the image. Thus, if both masks are not
+set, the result will be equivalent to unmasked NCC. For example, if
+only a mask for the fixed image is needed, the movingMask can either
+not be set or can be set to an image of ones.
+
+Optional parameters: The RequiredNumberOfOverlappingPixels enables the
+user to specify the minimum number of voxels of the two masks that
+must overlap; any location in the correlation map that results from
+fewer than this number of voxels will be set to zero. Larger values
+zero-out pixels on a larger border around the correlation image. Thus,
+larger values remove less stable computations but also limit the
+capture range. If RequiredNumberOfOverlappingPixels is set to 0, the
+default, no zeroing will take place.
+
+The RequiredFractionOfOverlappingPixels enables the user to specify a
+fraction of the maximum number of overlapping pixels that need to
+overlap; any location in the correlation map that results from fewer
+than the product of this fraction and the internally computed maximum
+number of overlapping pixels will be set to zero. The value ranges
+between 0.0 and 1.0. This is very useful when the user does does not
+know beforehand the maximum number of pixels of the masks that will
+overlap. For example, when the masks have strange shapes, it is
+difficult to predict how the correlation of the masks will interact
+and what the maximum overlap will be. It is also useful when the mask
+shapes or sizes change because it is relative to the internally
+computed maximum of the overlap. Larger values zero-out pixels on a
+larger border around the correlation image. Thus, larger values remove
+less stable computations but also limit the capture range. Experiments
+have shown that a value between 0.1 and 0.6 works well for images with
+significant overlap and between 0.05 and 0.1 for images with little
+overlap (such as in stitching applications). If
+RequiredFractionOfOverlappingPixels is set to 0, the default, no
+zeroing will take place.
+
+The user can either specify RequiredNumberOfOverlappingPixels or
+RequiredFractionOfOverlappingPixels (or both or none). Internally, the
+number of required pixels resulting from both of these methods is
+calculated and the one that gives the largest number of pixels is
+chosen. Since these both default to 0, if a user only sets one, the
+other is ignored.
+
+Image size: fixedImage and movingImage need not be the same size, but
+fixedMask must be the same size as fixedImage, and movingMask must be
+the same size as movingImage. Furthermore, whereas some algorithms
+require that the \"template\" be smaller than the \"image\" because of
+errors in the regions where the two are not fully overlapping, this
+filter has no such restriction.
+
+Image spacing: Since the computations are done in the pixel domain, all
+input images must have the same spacing.
+
+Outputs; The output is an image of RealPixelType that is the masked
+NCC of the two images and its values range from -1.0 to 1.0. The size
+of this NCC image is, by definition, size(fixedImage) +
+size(movingImage) - 1.
+
+Example filter usage:
+
+
+WARNING:
+The pixel type of the output image must be of real type (float or
+double). ConceptChecking is used to enforce the output pixel type. You
+will get a compilation error if the pixel type of the output image is
+not float or double.
+ References: 1) D. Padfield. \"Masked object registration in the
+Fourier domain.\" Transactions on Image Processing. 2) D. Padfield. \"Masked FFT registration\". In Proc.
+Computer Vision and Pattern Recognition, 2010.
+
+
+: Dirk Padfield, GE Global Research, padfield at research.ge.com
+
+See:
+ itk::simple::MaskedFFTNormalizedCorrelation for the procedural interface
+
+ itk::MaskedFFTNormalizedCorrelationImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkMaskedFFTNormalizedCorrelationImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::MaskedFFTNormalizedCorrelationImageFilter::Execute "/**
+Image itk::simple::MaskedFFTNormalizedCorrelationImageFilter::Execute(const Image &fixedImage, const Image &movingImage, const Image
+&fixedImageMask, const Image &movingImageMask)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaskedFFTNormalizedCorrelationImageFilter::Execute "/**
+Image itk::simple::MaskedFFTNormalizedCorrelationImageFilter::Execute(const Image &fixedImage, const Image &movingImage, const Image
+&fixedImageMask, const Image &movingImageMask, uint64_t
+requiredNumberOfOverlappingPixels, float
+requiredFractionOfOverlappingPixels)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaskedFFTNormalizedCorrelationImageFilter::GetName "/**
+std::string itk::simple::MaskedFFTNormalizedCorrelationImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaskedFFTNormalizedCorrelationImageFilter::GetRequiredFractionOfOverlappingPixels "/**
+float itk::simple::MaskedFFTNormalizedCorrelationImageFilter::GetRequiredFractionOfOverlappingPixels() const
+
+Set and get the required fraction of overlapping pixels
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaskedFFTNormalizedCorrelationImageFilter::GetRequiredNumberOfOverlappingPixels "/**
+uint64_t itk::simple::MaskedFFTNormalizedCorrelationImageFilter::GetRequiredNumberOfOverlappingPixels() const
+
+Set and get the required number of overlapping pixels
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaskedFFTNormalizedCorrelationImageFilter::MaskedFFTNormalizedCorrelationImageFilter "/**
+itk::simple::MaskedFFTNormalizedCorrelationImageFilter::MaskedFFTNormalizedCorrelationImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaskedFFTNormalizedCorrelationImageFilter::SetRequiredFractionOfOverlappingPixels "/**
+Self& itk::simple::MaskedFFTNormalizedCorrelationImageFilter::SetRequiredFractionOfOverlappingPixels(float RequiredFractionOfOverlappingPixels)
+
+Set and get the required fraction of overlapping pixels
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaskedFFTNormalizedCorrelationImageFilter::SetRequiredNumberOfOverlappingPixels "/**
+Self& itk::simple::MaskedFFTNormalizedCorrelationImageFilter::SetRequiredNumberOfOverlappingPixels(uint64_t RequiredNumberOfOverlappingPixels)
+
+Set and get the required number of overlapping pixels
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaskedFFTNormalizedCorrelationImageFilter::ToString "/**
+std::string itk::simple::MaskedFFTNormalizedCorrelationImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaskedFFTNormalizedCorrelationImageFilter::~MaskedFFTNormalizedCorrelationImageFilter "/**
+itk::simple::MaskedFFTNormalizedCorrelationImageFilter::~MaskedFFTNormalizedCorrelationImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::MaximumEntropyThresholdImageFilter "/**
+
+Threshold an image using the MaximumEntropy Threshold.
+
+
+This filter creates a binary thresholded image that separates an image
+into foreground and background components. The filter computes the
+threshold using the MaximumEntropyThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .
+
+
+Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+ Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/10380/3279 or http://www.insight-journal.org/browse/publication/811
+
+
+See:
+ HistogramThresholdImageFilter
+
+ itk::simple::MaximumEntropyThreshold for the procedural interface
+
+ itk::MaximumEntropyThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkMaximumEntropyThresholdImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::MaximumEntropyThresholdImageFilter::Execute "/**
+Image itk::simple::MaximumEntropyThresholdImageFilter::Execute(const Image &image, const Image &maskImage)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumEntropyThresholdImageFilter::Execute "/**
+Image itk::simple::MaximumEntropyThresholdImageFilter::Execute(const Image &image)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumEntropyThresholdImageFilter::Execute "/**
+Image itk::simple::MaximumEntropyThresholdImageFilter::Execute(const Image &image, const Image &maskImage, uint8_t insideValue,
+uint8_t outsideValue, uint32_t numberOfHistogramBins, bool maskOutput,
+uint8_t maskValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumEntropyThresholdImageFilter::Execute "/**
+Image itk::simple::MaximumEntropyThresholdImageFilter::Execute(const Image &image, uint8_t insideValue, uint8_t outsideValue,
+uint32_t numberOfHistogramBins, bool maskOutput, uint8_t maskValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumEntropyThresholdImageFilter::GetInsideValue "/**
+uint8_t itk::simple::MaximumEntropyThresholdImageFilter::GetInsideValue() const
+
+Get the \"inside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumEntropyThresholdImageFilter::GetMaskOutput "/**
+bool itk::simple::MaximumEntropyThresholdImageFilter::GetMaskOutput() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumEntropyThresholdImageFilter::GetMaskValue "/**
+uint8_t itk::simple::MaximumEntropyThresholdImageFilter::GetMaskValue() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumEntropyThresholdImageFilter::GetName "/**
+std::string itk::simple::MaximumEntropyThresholdImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumEntropyThresholdImageFilter::GetNumberOfHistogramBins "/**
+uint32_t itk::simple::MaximumEntropyThresholdImageFilter::GetNumberOfHistogramBins() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumEntropyThresholdImageFilter::GetOutsideValue "/**
+uint8_t itk::simple::MaximumEntropyThresholdImageFilter::GetOutsideValue() const
+
+Get the \"outside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumEntropyThresholdImageFilter::GetThreshold "/**
+double itk::simple::MaximumEntropyThresholdImageFilter::GetThreshold() const
+
+Get the computed threshold.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumEntropyThresholdImageFilter::MaskOutputOff "/**
+Self& itk::simple::MaximumEntropyThresholdImageFilter::MaskOutputOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumEntropyThresholdImageFilter::MaskOutputOn "/**
+Self& itk::simple::MaximumEntropyThresholdImageFilter::MaskOutputOn()
+
+Set the value of MaskOutput to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumEntropyThresholdImageFilter::MaximumEntropyThresholdImageFilter "/**
+itk::simple::MaximumEntropyThresholdImageFilter::MaximumEntropyThresholdImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumEntropyThresholdImageFilter::SetInsideValue "/**
+Self& itk::simple::MaximumEntropyThresholdImageFilter::SetInsideValue(uint8_t InsideValue)
+
+Set the \"inside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumEntropyThresholdImageFilter::SetMaskOutput "/**
+Self& itk::simple::MaximumEntropyThresholdImageFilter::SetMaskOutput(bool MaskOutput)
+
+Do you want the output to be masked by the mask used in histogram
+construction. Only relevant if masking is in use.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumEntropyThresholdImageFilter::SetMaskValue "/**
+Self& itk::simple::MaximumEntropyThresholdImageFilter::SetMaskValue(uint8_t MaskValue)
+
+The value in the mask image, if used, indicating voxels that should be
+included. Default is the max of pixel type, as in the
+MaskedImageToHistogramFilter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumEntropyThresholdImageFilter::SetNumberOfHistogramBins "/**
+Self& itk::simple::MaximumEntropyThresholdImageFilter::SetNumberOfHistogramBins(uint32_t NumberOfHistogramBins)
+
+Set/Get the number of histogram bins.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumEntropyThresholdImageFilter::SetOutsideValue "/**
+Self& itk::simple::MaximumEntropyThresholdImageFilter::SetOutsideValue(uint8_t OutsideValue)
+
+Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumEntropyThresholdImageFilter::ToString "/**
+std::string itk::simple::MaximumEntropyThresholdImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumEntropyThresholdImageFilter::~MaximumEntropyThresholdImageFilter "/**
+itk::simple::MaximumEntropyThresholdImageFilter::~MaximumEntropyThresholdImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::MaximumImageFilter "/**
+
+Implements a pixel-wise operator Max(a,b) between two images.
+
+
+The pixel values of the output image are the maximum between the
+corresponding pixels of the two input images.
+
+This class is templated over the types of the two input images and the
+type of the output image. Numeric conversions (castings) are done by
+the C++ defaults.
+
+Wiki Examples:
+
+All Examples
+
+Pixel wise compare two input images and set the output pixel to their
+max
+See:
+ itk::simple::Maximum for the procedural interface
+
+ itk::MaximumImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkMaximumImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::MaximumImageFilter::Execute "/**
+Image itk::simple::MaximumImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumImageFilter::Execute "/**
+Image itk::simple::MaximumImageFilter::Execute(const Image &image1, double constant)
+
+Execute the filter with an image and a constant
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumImageFilter::Execute "/**
+Image itk::simple::MaximumImageFilter::Execute(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumImageFilter::GetName "/**
+std::string itk::simple::MaximumImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumImageFilter::MaximumImageFilter "/**
+itk::simple::MaximumImageFilter::MaximumImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumImageFilter::ToString "/**
+std::string itk::simple::MaximumImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumImageFilter::~MaximumImageFilter "/**
+itk::simple::MaximumImageFilter::~MaximumImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::MaximumProjectionImageFilter "/**
+
+Maximum projection.
+
+
+This class was contributed to the insight journal by Gaetan Lehmann.
+The original paper can be found at https://hdl.handle.net/1926/164
+
+
+Gaetan Lehmann. Biologie du Developpement et de la reproduction, inra
+de jouy-en-josas, France.
+
+See:
+ ProjectionImageFilter
+
+ MedianProjectionImageFilter
+
+ MeanProjectionImageFilter
+
+ MinimumProjectionImageFilter
+
+ StandardDeviationProjectionImageFilter
+
+ SumProjectionImageFilter
+
+ BinaryProjectionImageFilter
+
+ itk::simple::MaximumProjection for the procedural interface
+
+ itk::MaximumProjectionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkMaximumProjectionImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::MaximumProjectionImageFilter::Execute "/**
+Image itk::simple::MaximumProjectionImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumProjectionImageFilter::Execute "/**
+Image itk::simple::MaximumProjectionImageFilter::Execute(const Image &image1, unsigned int projectionDimension)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumProjectionImageFilter::GetName "/**
+std::string itk::simple::MaximumProjectionImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumProjectionImageFilter::GetProjectionDimension "/**
+unsigned int itk::simple::MaximumProjectionImageFilter::GetProjectionDimension() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumProjectionImageFilter::MaximumProjectionImageFilter "/**
+itk::simple::MaximumProjectionImageFilter::MaximumProjectionImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumProjectionImageFilter::SetProjectionDimension "/**
+Self& itk::simple::MaximumProjectionImageFilter::SetProjectionDimension(unsigned int ProjectionDimension)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumProjectionImageFilter::ToString "/**
+std::string itk::simple::MaximumProjectionImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumProjectionImageFilter::~MaximumProjectionImageFilter "/**
+itk::simple::MaximumProjectionImageFilter::~MaximumProjectionImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::MeanImageFilter "/**
+
+Applies an averaging filter to an image.
+
+
+Computes an image where a given pixel is the mean value of the the
+pixels in a neighborhood about the corresponding input pixel.
+
+A mean filter is one of the family of linear filters.
+
+
+See:
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+Wiki Examples:
+
+All Examples
+
+Mean filter an image
+See:
+ itk::simple::Mean for the procedural interface
+
+ itk::MeanImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkMeanImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::MeanImageFilter::Execute "/**
+Image itk::simple::MeanImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MeanImageFilter::Execute "/**
+Image itk::simple::MeanImageFilter::Execute(const Image &image1, const std::vector< unsigned int > &radius)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MeanImageFilter::GetName "/**
+std::string itk::simple::MeanImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MeanImageFilter::GetRadius "/**
+std::vector<unsigned int> itk::simple::MeanImageFilter::GetRadius() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MeanImageFilter::MeanImageFilter "/**
+itk::simple::MeanImageFilter::MeanImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MeanImageFilter::SetRadius "/**
+Self& itk::simple::MeanImageFilter::SetRadius(const std::vector< unsigned int > &Radius)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MeanImageFilter::SetRadius "/**
+Self& itk::simple::MeanImageFilter::SetRadius(unsigned int value)
+
+Set the values of the Radius vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MeanImageFilter::ToString "/**
+std::string itk::simple::MeanImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MeanImageFilter::~MeanImageFilter "/**
+itk::simple::MeanImageFilter::~MeanImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::MeanProjectionImageFilter "/**
+
+Mean projection.
+
+
+This class was contributed to the Insight Journal by Gaetan Lehmann.
+The original paper can be found at https://hdl.handle.net/1926/164
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ ProjectionImageFilter
+
+ MedianProjectionImageFilter
+
+ MinimumProjectionImageFilter
+
+ StandardDeviationProjectionImageFilter
+
+ SumProjectionImageFilter
+
+ BinaryProjectionImageFilter
+
+ MaximumProjectionImageFilter
+
+ itk::simple::MeanProjection for the procedural interface
+
+ itk::MeanProjectionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkMeanProjectionImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::MeanProjectionImageFilter::Execute "/**
+Image itk::simple::MeanProjectionImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MeanProjectionImageFilter::Execute "/**
+Image itk::simple::MeanProjectionImageFilter::Execute(const Image &image1, unsigned int projectionDimension)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MeanProjectionImageFilter::GetName "/**
+std::string itk::simple::MeanProjectionImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MeanProjectionImageFilter::GetProjectionDimension "/**
+unsigned int itk::simple::MeanProjectionImageFilter::GetProjectionDimension() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MeanProjectionImageFilter::MeanProjectionImageFilter "/**
+itk::simple::MeanProjectionImageFilter::MeanProjectionImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MeanProjectionImageFilter::SetProjectionDimension "/**
+Self& itk::simple::MeanProjectionImageFilter::SetProjectionDimension(unsigned int ProjectionDimension)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MeanProjectionImageFilter::ToString "/**
+std::string itk::simple::MeanProjectionImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MeanProjectionImageFilter::~MeanProjectionImageFilter "/**
+itk::simple::MeanProjectionImageFilter::~MeanProjectionImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::MedianImageFilter "/**
+
+Applies a median filter to an image.
+
+
+Computes an image where a given pixel is the median value of the the
+pixels in a neighborhood about the corresponding input pixel.
+
+A median filter is one of the family of nonlinear filters. It is used
+to smooth an image without being biased by outliers or shot noise.
+
+This filter requires that the input pixel type provides an operator<()
+(LessThan Comparable).
+
+
+See:
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+Wiki Examples:
+
+All Examples
+
+Median filter an image
+
+Median filter an RGB image
+See:
+ itk::simple::Median for the procedural interface
+
+ itk::MedianImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkMedianImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::MedianImageFilter::Execute "/**
+Image itk::simple::MedianImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MedianImageFilter::Execute "/**
+Image itk::simple::MedianImageFilter::Execute(const Image &image1, const std::vector< unsigned int > &radius)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MedianImageFilter::GetName "/**
+std::string itk::simple::MedianImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MedianImageFilter::GetRadius "/**
+std::vector<unsigned int> itk::simple::MedianImageFilter::GetRadius() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MedianImageFilter::MedianImageFilter "/**
+itk::simple::MedianImageFilter::MedianImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MedianImageFilter::SetRadius "/**
+Self& itk::simple::MedianImageFilter::SetRadius(const std::vector< unsigned int > &Radius)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MedianImageFilter::SetRadius "/**
+Self& itk::simple::MedianImageFilter::SetRadius(unsigned int value)
+
+Set the values of the Radius vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MedianImageFilter::ToString "/**
+std::string itk::simple::MedianImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MedianImageFilter::~MedianImageFilter "/**
+itk::simple::MedianImageFilter::~MedianImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::MedianProjectionImageFilter "/**
+
+Median projection.
+
+
+This class was contributed to the Insight Journal by Gaetan Lehmann.
+The original paper can be found at https://hdl.handle.net/1926/164
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ ProjectionImageFilter
+
+ StandardDeviationProjectionImageFilter
+
+ SumProjectionImageFilter
+
+ BinaryProjectionImageFilter
+
+ MaximumProjectionImageFilter
+
+ MinimumProjectionImageFilter
+
+ MeanProjectionImageFilter
+
+ itk::simple::MedianProjection for the procedural interface
+
+ itk::MedianProjectionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkMedianProjectionImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::MedianProjectionImageFilter::Execute "/**
+Image itk::simple::MedianProjectionImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MedianProjectionImageFilter::Execute "/**
+Image itk::simple::MedianProjectionImageFilter::Execute(const Image &image1, unsigned int projectionDimension)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MedianProjectionImageFilter::GetName "/**
+std::string itk::simple::MedianProjectionImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MedianProjectionImageFilter::GetProjectionDimension "/**
+unsigned int itk::simple::MedianProjectionImageFilter::GetProjectionDimension() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MedianProjectionImageFilter::MedianProjectionImageFilter "/**
+itk::simple::MedianProjectionImageFilter::MedianProjectionImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MedianProjectionImageFilter::SetProjectionDimension "/**
+Self& itk::simple::MedianProjectionImageFilter::SetProjectionDimension(unsigned int ProjectionDimension)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MedianProjectionImageFilter::ToString "/**
+std::string itk::simple::MedianProjectionImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MedianProjectionImageFilter::~MedianProjectionImageFilter "/**
+itk::simple::MedianProjectionImageFilter::~MedianProjectionImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::MergeLabelMapFilter "/**
+
+Merges several Label Maps.
+
+
+This filter takes one or more input Label Map and merges them.
+
+SetMethod() can be used to change how the filter manage the labels from the
+different label maps. KEEP (0): MergeLabelMapFilter do its best to keep the label unchanged, but if a label is already
+used in a previous label map, a new label is assigned. AGGREGATE (1):
+If the same label is found several times in the label maps, the label
+objects with the same label are merged. PACK (2): MergeLabelMapFilter relabel all the label objects by order of processing. No conflict can
+occur. STRICT (3): MergeLabelMapFilter keeps the labels unchanged and raises an exception if the same label
+is found in several images.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ ShapeLabelObject , RelabelComponentImageFilter
+
+ itk::simple::MergeLabelMapFilter for the procedural interface
+
+
+C++ includes: sitkMergeLabelMapFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::MergeLabelMapFilter::Execute "/**
+Image itk::simple::MergeLabelMapFilter::Execute(const std::vector< Image > &images)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MergeLabelMapFilter::Execute "/**
+Image itk::simple::MergeLabelMapFilter::Execute(const Image &image1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MergeLabelMapFilter::Execute "/**
+Image itk::simple::MergeLabelMapFilter::Execute(const Image &image1, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MergeLabelMapFilter::Execute "/**
+Image itk::simple::MergeLabelMapFilter::Execute(const Image &image1, const Image &image2, const Image &image3)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MergeLabelMapFilter::Execute "/**
+Image itk::simple::MergeLabelMapFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MergeLabelMapFilter::Execute "/**
+Image itk::simple::MergeLabelMapFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4, const Image &image5)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MergeLabelMapFilter::Execute "/**
+Image itk::simple::MergeLabelMapFilter::Execute(const std::vector< Image > &images, MergeLabelMapFilter::MethodType
+method)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MergeLabelMapFilter::Execute "/**
+Image itk::simple::MergeLabelMapFilter::Execute(const Image &image1, MergeLabelMapFilter::MethodType method)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MergeLabelMapFilter::Execute "/**
+Image itk::simple::MergeLabelMapFilter::Execute(const Image &image1, const Image &image2,
+MergeLabelMapFilter::MethodType method)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MergeLabelMapFilter::Execute "/**
+Image itk::simple::MergeLabelMapFilter::Execute(const Image &image1, const Image &image2, const Image &image3,
+MergeLabelMapFilter::MethodType method)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MergeLabelMapFilter::Execute "/**
+Image itk::simple::MergeLabelMapFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4, MergeLabelMapFilter::MethodType method)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MergeLabelMapFilter::Execute "/**
+Image itk::simple::MergeLabelMapFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4, const Image &image5, MergeLabelMapFilter::MethodType
+method)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MergeLabelMapFilter::GetMethod "/**
+MethodType itk::simple::MergeLabelMapFilter::GetMethod() const
+
+Set/Get the method used to merge the label maps
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MergeLabelMapFilter::GetName "/**
+std::string itk::simple::MergeLabelMapFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MergeLabelMapFilter::MergeLabelMapFilter "/**
+itk::simple::MergeLabelMapFilter::MergeLabelMapFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MergeLabelMapFilter::SetMethod "/**
+Self& itk::simple::MergeLabelMapFilter::SetMethod(MethodType Method)
+
+Set/Get the method used to merge the label maps
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MergeLabelMapFilter::ToString "/**
+std::string itk::simple::MergeLabelMapFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MergeLabelMapFilter::~MergeLabelMapFilter "/**
+itk::simple::MergeLabelMapFilter::~MergeLabelMapFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::MinMaxCurvatureFlowImageFilter "/**
+
+Denoise an image using min/max curvature flow.
+
+
+MinMaxCurvatureFlowImageFilter implements a curvature driven image denoising algorithm. Iso-
+brightness contours in the grayscale input image are viewed as a level
+set. The level set is then evolved using a curvature-based speed
+function:
+
+\\\\[ I_t = F_{\\\\mbox{minmax}} |\\\\nabla I| \\\\]
+
+where $ F_{\\\\mbox{minmax}} = \\\\max(\\\\kappa,0) $ if $ \\\\mbox{Avg}_{\\\\mbox{stencil}}(x) $ is less than or equal to $ T_{thresold} $ and $ \\\\min(\\\\kappa,0) $ , otherwise. $ \\\\kappa $ is the mean curvature of the iso-brightness contour at point $ x $ .
+
+In min/max curvature flow, movement is turned on or off depending on
+the scale of the noise one wants to remove. Switching depends on the
+average image value of a region of radius $ R $ around each point. The choice of $ R $ , the stencil radius, governs the scale of the noise to be removed.
+
+The threshold value $ T_{threshold} $ is the average intensity obtained in the direction perpendicular to
+the gradient at point $ x $ at the extrema of the local neighborhood.
+
+This filter make use of the multi-threaded finite difference solver
+hierarchy. Updates are computed using a MinMaxCurvatureFlowFunction object. A zero flux Neumann boundary condition is used when computing
+derivatives near the data boundary.
+
+
+WARNING:
+This filter assumes that the input and output types have the same
+dimensions. This filter also requires that the output image pixels are
+of a real type. This filter works for any dimensional images, however
+for dimensions greater than 3D, an expensive brute-force search is
+used to compute the local threshold.
+ Reference: \"Level Set Methods and Fast Marching Methods\", J.A.
+Sethian, Cambridge Press, Chapter 16, Second edition, 1999.
+
+
+See:
+ MinMaxCurvatureFlowFunction
+
+ CurvatureFlowImageFilter
+
+ BinaryMinMaxCurvatureFlowImageFilter
+
+ itk::simple::MinMaxCurvatureFlow for the procedural interface
+
+ itk::MinMaxCurvatureFlowImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkMinMaxCurvatureFlowImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::MinMaxCurvatureFlowImageFilter::Execute "/**
+Image itk::simple::MinMaxCurvatureFlowImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinMaxCurvatureFlowImageFilter::Execute "/**
+Image itk::simple::MinMaxCurvatureFlowImageFilter::Execute(const Image &image1, double timeStep, uint32_t numberOfIterations,
+int stencilRadius)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinMaxCurvatureFlowImageFilter::GetName "/**
+std::string itk::simple::MinMaxCurvatureFlowImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinMaxCurvatureFlowImageFilter::GetNumberOfIterations "/**
+uint32_t itk::simple::MinMaxCurvatureFlowImageFilter::GetNumberOfIterations() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinMaxCurvatureFlowImageFilter::GetStencilRadius "/**
+int itk::simple::MinMaxCurvatureFlowImageFilter::GetStencilRadius() const
+
+Set/Get the stencil radius.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinMaxCurvatureFlowImageFilter::GetTimeStep "/**
+double itk::simple::MinMaxCurvatureFlowImageFilter::GetTimeStep() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinMaxCurvatureFlowImageFilter::MinMaxCurvatureFlowImageFilter "/**
+itk::simple::MinMaxCurvatureFlowImageFilter::MinMaxCurvatureFlowImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinMaxCurvatureFlowImageFilter::SetNumberOfIterations "/**
+Self& itk::simple::MinMaxCurvatureFlowImageFilter::SetNumberOfIterations(uint32_t NumberOfIterations)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinMaxCurvatureFlowImageFilter::SetStencilRadius "/**
+Self& itk::simple::MinMaxCurvatureFlowImageFilter::SetStencilRadius(int StencilRadius)
+
+Set/Get the stencil radius.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinMaxCurvatureFlowImageFilter::SetTimeStep "/**
+Self& itk::simple::MinMaxCurvatureFlowImageFilter::SetTimeStep(double TimeStep)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinMaxCurvatureFlowImageFilter::ToString "/**
+std::string itk::simple::MinMaxCurvatureFlowImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinMaxCurvatureFlowImageFilter::~MinMaxCurvatureFlowImageFilter "/**
+itk::simple::MinMaxCurvatureFlowImageFilter::~MinMaxCurvatureFlowImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::MinimumImageFilter "/**
+
+Implements a pixel-wise operator Min(a,b) between two images.
+
+
+The pixel values of the output image are the minimum between the
+corresponding pixels of the two input images.
+
+This class is templated over the types of the two input images and the
+type of the output image. Numeric conversions (castings) are done by
+the C++ defaults.
+
+Wiki Examples:
+
+All Examples
+
+Pixel wise compare two input images and set the output pixel to their
+min
+See:
+ itk::simple::Minimum for the procedural interface
+
+ itk::MinimumImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkMinimumImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::MinimumImageFilter::Execute "/**
+Image itk::simple::MinimumImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinimumImageFilter::Execute "/**
+Image itk::simple::MinimumImageFilter::Execute(const Image &image1, double constant)
+
+Execute the filter with an image and a constant
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinimumImageFilter::Execute "/**
+Image itk::simple::MinimumImageFilter::Execute(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinimumImageFilter::GetName "/**
+std::string itk::simple::MinimumImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinimumImageFilter::MinimumImageFilter "/**
+itk::simple::MinimumImageFilter::MinimumImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinimumImageFilter::ToString "/**
+std::string itk::simple::MinimumImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinimumImageFilter::~MinimumImageFilter "/**
+itk::simple::MinimumImageFilter::~MinimumImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::MinimumMaximumImageFilter "/**
+
+Computes the minimum and the maximum intensity values of an image.
+
+
+It is templated over input image type only. This filter just copies
+the input image through this output to be included within the
+pipeline. The implementation uses the StatisticsImageFilter .
+
+
+See:
+ StatisticsImageFilter
+
+ itk::MinimumMaximumImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkMinimumMaximumImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::MinimumMaximumImageFilter::Execute "/**
+void itk::simple::MinimumMaximumImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinimumMaximumImageFilter::GetMaximum "/**
+double itk::simple::MinimumMaximumImageFilter::GetMaximum() const
+
+Return the computed Maximum.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinimumMaximumImageFilter::GetMinimum "/**
+double itk::simple::MinimumMaximumImageFilter::GetMinimum() const
+
+Return the computed Minimum.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinimumMaximumImageFilter::GetName "/**
+std::string itk::simple::MinimumMaximumImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinimumMaximumImageFilter::MinimumMaximumImageFilter "/**
+itk::simple::MinimumMaximumImageFilter::MinimumMaximumImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinimumMaximumImageFilter::ToString "/**
+std::string itk::simple::MinimumMaximumImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinimumMaximumImageFilter::~MinimumMaximumImageFilter "/**
+itk::simple::MinimumMaximumImageFilter::~MinimumMaximumImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::MinimumProjectionImageFilter "/**
+
+Minimum projection.
+
+
+This class was contributed to the Insight Journal by Gaetan Lehmann.
+The original paper can be found at https://hdl.handle.net/1926/164
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ ProjectionImageFilter
+
+ StandardDeviationProjectionImageFilter
+
+ SumProjectionImageFilter
+
+ BinaryProjectionImageFilter
+
+ MaximumProjectionImageFilter
+
+ MeanProjectionImageFilter
+
+ itk::simple::MinimumProjection for the procedural interface
+
+ itk::MinimumProjectionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkMinimumProjectionImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::MinimumProjectionImageFilter::Execute "/**
+Image itk::simple::MinimumProjectionImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinimumProjectionImageFilter::Execute "/**
+Image itk::simple::MinimumProjectionImageFilter::Execute(const Image &image1, unsigned int projectionDimension)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinimumProjectionImageFilter::GetName "/**
+std::string itk::simple::MinimumProjectionImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinimumProjectionImageFilter::GetProjectionDimension "/**
+unsigned int itk::simple::MinimumProjectionImageFilter::GetProjectionDimension() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinimumProjectionImageFilter::MinimumProjectionImageFilter "/**
+itk::simple::MinimumProjectionImageFilter::MinimumProjectionImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinimumProjectionImageFilter::SetProjectionDimension "/**
+Self& itk::simple::MinimumProjectionImageFilter::SetProjectionDimension(unsigned int ProjectionDimension)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinimumProjectionImageFilter::ToString "/**
+std::string itk::simple::MinimumProjectionImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinimumProjectionImageFilter::~MinimumProjectionImageFilter "/**
+itk::simple::MinimumProjectionImageFilter::~MinimumProjectionImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::MirrorPadImageFilter "/**
+
+Increase the image size by padding with replicants of the input image
+value.
+
+
+MirrorPadImageFilter changes the image bounds of an image. Any added pixels are filled in
+with a mirrored replica of the input image. For instance, if the
+output image needs a pixel that is two pixels to the left of the
+LargestPossibleRegion of the input image, the value assigned will be
+from the pixel two pixels inside the left boundary of the
+LargestPossibleRegion. The image bounds of the output must be
+specified.
+
+Visual explanation of padding regions. This filter is implemented as a
+multithreaded filter. It provides a ThreadedGenerateData() method for
+its implementation.
+
+
+See:
+ WrapPadImageFilter , ConstantPadImageFilter
+Wiki Examples:
+
+All Examples
+
+Pad an image using mirroring over the boundaries
+See:
+ itk::simple::MirrorPad for the procedural interface
+
+ itk::MirrorPadImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkMirrorPadImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::MirrorPadImageFilter::Execute "/**
+Image itk::simple::MirrorPadImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MirrorPadImageFilter::Execute "/**
+Image itk::simple::MirrorPadImageFilter::Execute(const Image &image1, const std::vector< unsigned int >
+&padLowerBound, const std::vector< unsigned int > &padUpperBound)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MirrorPadImageFilter::GetName "/**
+std::string itk::simple::MirrorPadImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MirrorPadImageFilter::GetPadLowerBound "/**
+std::vector<unsigned int> itk::simple::MirrorPadImageFilter::GetPadLowerBound() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MirrorPadImageFilter::GetPadUpperBound "/**
+std::vector<unsigned int> itk::simple::MirrorPadImageFilter::GetPadUpperBound() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MirrorPadImageFilter::MirrorPadImageFilter "/**
+itk::simple::MirrorPadImageFilter::MirrorPadImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MirrorPadImageFilter::SetPadLowerBound "/**
+Self& itk::simple::MirrorPadImageFilter::SetPadLowerBound(const std::vector< unsigned int > &PadLowerBound)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MirrorPadImageFilter::SetPadUpperBound "/**
+Self& itk::simple::MirrorPadImageFilter::SetPadUpperBound(const std::vector< unsigned int > &PadUpperBound)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MirrorPadImageFilter::ToString "/**
+std::string itk::simple::MirrorPadImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MirrorPadImageFilter::~MirrorPadImageFilter "/**
+itk::simple::MirrorPadImageFilter::~MirrorPadImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ModulusImageFilter "/**
+
+Computes the modulus (x % dividend) pixel-wise.
+
+
+The input pixel type must support the c++ modulus operator (%).
+
+If the dividend is zero, the maximum value will be returned.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ itk::simple::Modulus for the procedural interface
+
+ itk::ModulusImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkModulusImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ModulusImageFilter::Execute "/**
+Image itk::simple::ModulusImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ModulusImageFilter::Execute "/**
+Image itk::simple::ModulusImageFilter::Execute(const Image &image1, uint32_t constant)
+
+Execute the filter with an image and a constant
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ModulusImageFilter::Execute "/**
+Image itk::simple::ModulusImageFilter::Execute(uint32_t constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ModulusImageFilter::GetName "/**
+std::string itk::simple::ModulusImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ModulusImageFilter::ModulusImageFilter "/**
+itk::simple::ModulusImageFilter::ModulusImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ModulusImageFilter::ToString "/**
+std::string itk::simple::ModulusImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ModulusImageFilter::~ModulusImageFilter "/**
+itk::simple::ModulusImageFilter::~ModulusImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::MomentsThresholdImageFilter "/**
+
+Threshold an image using the Moments Threshold.
+
+
+This filter creates a binary thresholded image that separates an image
+into foreground and background components. The filter computes the
+threshold using the MomentsThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .
+
+
+Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+ Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/10380/3279 or http://www.insight-journal.org/browse/publication/811
+
+
+See:
+ HistogramThresholdImageFilter
+
+ itk::simple::MomentsThreshold for the procedural interface
+
+ itk::MomentsThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkMomentsThresholdImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::MomentsThresholdImageFilter::Execute "/**
+Image itk::simple::MomentsThresholdImageFilter::Execute(const Image &image, const Image &maskImage)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MomentsThresholdImageFilter::Execute "/**
+Image itk::simple::MomentsThresholdImageFilter::Execute(const Image &image)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MomentsThresholdImageFilter::Execute "/**
+Image itk::simple::MomentsThresholdImageFilter::Execute(const Image &image, const Image &maskImage, uint8_t insideValue,
+uint8_t outsideValue, uint32_t numberOfHistogramBins, bool maskOutput,
+uint8_t maskValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MomentsThresholdImageFilter::Execute "/**
+Image itk::simple::MomentsThresholdImageFilter::Execute(const Image &image, uint8_t insideValue, uint8_t outsideValue,
+uint32_t numberOfHistogramBins, bool maskOutput, uint8_t maskValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MomentsThresholdImageFilter::GetInsideValue "/**
+uint8_t itk::simple::MomentsThresholdImageFilter::GetInsideValue() const
+
+Get the \"inside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MomentsThresholdImageFilter::GetMaskOutput "/**
+bool itk::simple::MomentsThresholdImageFilter::GetMaskOutput() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MomentsThresholdImageFilter::GetMaskValue "/**
+uint8_t itk::simple::MomentsThresholdImageFilter::GetMaskValue() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MomentsThresholdImageFilter::GetName "/**
+std::string itk::simple::MomentsThresholdImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MomentsThresholdImageFilter::GetNumberOfHistogramBins "/**
+uint32_t itk::simple::MomentsThresholdImageFilter::GetNumberOfHistogramBins() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MomentsThresholdImageFilter::GetOutsideValue "/**
+uint8_t itk::simple::MomentsThresholdImageFilter::GetOutsideValue() const
+
+Get the \"outside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MomentsThresholdImageFilter::GetThreshold "/**
+double itk::simple::MomentsThresholdImageFilter::GetThreshold() const
+
+Get the computed threshold.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MomentsThresholdImageFilter::MaskOutputOff "/**
+Self& itk::simple::MomentsThresholdImageFilter::MaskOutputOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MomentsThresholdImageFilter::MaskOutputOn "/**
+Self& itk::simple::MomentsThresholdImageFilter::MaskOutputOn()
+
+Set the value of MaskOutput to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MomentsThresholdImageFilter::MomentsThresholdImageFilter "/**
+itk::simple::MomentsThresholdImageFilter::MomentsThresholdImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MomentsThresholdImageFilter::SetInsideValue "/**
+Self& itk::simple::MomentsThresholdImageFilter::SetInsideValue(uint8_t InsideValue)
+
+Set the \"inside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MomentsThresholdImageFilter::SetMaskOutput "/**
+Self& itk::simple::MomentsThresholdImageFilter::SetMaskOutput(bool MaskOutput)
+
+Do you want the output to be masked by the mask used in histogram
+construction. Only relevant if masking is in use.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MomentsThresholdImageFilter::SetMaskValue "/**
+Self& itk::simple::MomentsThresholdImageFilter::SetMaskValue(uint8_t MaskValue)
+
+The value in the mask image, if used, indicating voxels that should be
+included. Default is the max of pixel type, as in the
+MaskedImageToHistogramFilter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MomentsThresholdImageFilter::SetNumberOfHistogramBins "/**
+Self& itk::simple::MomentsThresholdImageFilter::SetNumberOfHistogramBins(uint32_t NumberOfHistogramBins)
+
+Set/Get the number of histogram bins.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MomentsThresholdImageFilter::SetOutsideValue "/**
+Self& itk::simple::MomentsThresholdImageFilter::SetOutsideValue(uint8_t OutsideValue)
+
+Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MomentsThresholdImageFilter::ToString "/**
+std::string itk::simple::MomentsThresholdImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MomentsThresholdImageFilter::~MomentsThresholdImageFilter "/**
+itk::simple::MomentsThresholdImageFilter::~MomentsThresholdImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::MorphologicalGradientImageFilter "/**
+
+gray scale dilation of an image
+
+
+Dilate an image using grayscale morphology. Dilation takes the maximum
+of all the pixels identified by the structuring element.
+
+The structuring element is assumed to be composed of binary values
+(zero or one). Only elements of the structuring element having values
+> 0 are candidates for affecting the center pixel.
+
+
+See:
+ MorphologyImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter
+
+ itk::simple::MorphologicalGradient for the procedural interface
+
+ itk::MorphologicalGradientImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkMorphologicalGradientImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::MorphologicalGradientImageFilter::Execute "/**
+Image itk::simple::MorphologicalGradientImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalGradientImageFilter::GetKernelRadius "/**
+std::vector<uint32_t> itk::simple::MorphologicalGradientImageFilter::GetKernelRadius() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalGradientImageFilter::GetKernelType "/**
+KernelEnum itk::simple::MorphologicalGradientImageFilter::GetKernelType() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalGradientImageFilter::GetName "/**
+std::string itk::simple::MorphologicalGradientImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalGradientImageFilter::MorphologicalGradientImageFilter "/**
+itk::simple::MorphologicalGradientImageFilter::MorphologicalGradientImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalGradientImageFilter::SetKernelRadius "/**
+Self& itk::simple::MorphologicalGradientImageFilter::SetKernelRadius(uint32_t r)
+
+Kernel radius as a scale for isotropic structures
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalGradientImageFilter::SetKernelRadius "/**
+Self& itk::simple::MorphologicalGradientImageFilter::SetKernelRadius(const std::vector< uint32_t > &r)
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalGradientImageFilter::SetKernelType "/**
+Self& itk::simple::MorphologicalGradientImageFilter::SetKernelType(KernelEnum t)
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalGradientImageFilter::SetKernelType "/**
+Self& itk::simple::MorphologicalGradientImageFilter::SetKernelType(KernelType t)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalGradientImageFilter::ToString "/**
+std::string itk::simple::MorphologicalGradientImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalGradientImageFilter::~MorphologicalGradientImageFilter "/**
+itk::simple::MorphologicalGradientImageFilter::~MorphologicalGradientImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::MorphologicalWatershedFromMarkersImageFilter "/**
+
+Morphological watershed transform from markers.
+
+
+The watershed transform is a tool for image segmentation that is fast
+and flexible and potentially fairly parameter free. It was originally
+derived from a geophysical model of rain falling on a terrain and a
+variety of more formal definitions have been devised to allow
+development of practical algorithms. If an image is considered as a
+terrain and divided into catchment basins then the hope is that each
+catchment basin would contain an object of interest.
+
+The output is a label image. A label image, sometimes referred to as a
+categorical image, has unique values for each region. For example, if
+a watershed produces 2 regions, all pixels belonging to one region
+would have value A, and all belonging to the other might have value B.
+Unassigned pixels, such as watershed lines, might have the background
+value (0 by convention).
+
+The simplest way of using the watershed is to preprocess the image we
+want to segment so that the boundaries of our objects are bright (e.g
+apply an edge detector) and compute the watershed transform of the
+edge image. Watershed lines will correspond to the boundaries and our
+problem will be solved. This is rarely useful in practice because
+there are always more regional minima than there are objects, either
+due to noise or natural variations in the object surfaces. Therefore,
+while many watershed lines do lie on significant boundaries, there are
+many that don't. Various methods can be used to reduce the number of
+minima in the image, like thresholding the smallest values, filtering
+the minima and/or smoothing the image.
+
+This filter use another approach to avoid the problem of over
+segmentation: it let the user provide a marker image which mark the
+minima in the input image and give them a label. The minima are
+imposed in the input image by the markers. The labels of the output
+image are the label of the marker image.
+
+The morphological watershed transform algorithm is described in
+Chapter 9.2 of Pierre Soille's book \"Morphological Image Analysis:
+Principles and Applications\", Second Edition, Springer, 2003.
+
+This code was contributed in the Insight Journal paper: \"The
+watershed transform in ITK - discussion and new developments\" by
+Beare R., Lehmann G. https://hdl.handle.net/1926/202 http://www.insight-journal.org/browse/publication/92
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+
+
+See:
+ WatershedImageFilter , MorphologicalWatershedImageFilter
+
+ itk::simple::MorphologicalWatershedFromMarkers for the procedural interface
+
+ itk::MorphologicalWatershedFromMarkersImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkMorphologicalWatershedFromMarkersImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedFromMarkersImageFilter::Execute "/**
+Image itk::simple::MorphologicalWatershedFromMarkersImageFilter::Execute(const Image &image, const Image &markerImage)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedFromMarkersImageFilter::Execute "/**
+Image itk::simple::MorphologicalWatershedFromMarkersImageFilter::Execute(const Image &image, const Image &markerImage, bool markWatershedLine,
+bool fullyConnected)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedFromMarkersImageFilter::FullyConnectedOff "/**
+Self& itk::simple::MorphologicalWatershedFromMarkersImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedFromMarkersImageFilter::FullyConnectedOn "/**
+Self& itk::simple::MorphologicalWatershedFromMarkersImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedFromMarkersImageFilter::GetFullyConnected "/**
+bool itk::simple::MorphologicalWatershedFromMarkersImageFilter::GetFullyConnected() const
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedFromMarkersImageFilter::GetMarkWatershedLine "/**
+bool itk::simple::MorphologicalWatershedFromMarkersImageFilter::GetMarkWatershedLine() const
+
+Set/Get whether the watershed pixel must be marked or not. Default is
+true. Set it to false do not only avoid writing watershed pixels, it
+also decrease algorithm complexity.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedFromMarkersImageFilter::GetName "/**
+std::string itk::simple::MorphologicalWatershedFromMarkersImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedFromMarkersImageFilter::MarkWatershedLineOff "/**
+Self& itk::simple::MorphologicalWatershedFromMarkersImageFilter::MarkWatershedLineOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedFromMarkersImageFilter::MarkWatershedLineOn "/**
+Self& itk::simple::MorphologicalWatershedFromMarkersImageFilter::MarkWatershedLineOn()
+
+Set the value of MarkWatershedLine to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedFromMarkersImageFilter::MorphologicalWatershedFromMarkersImageFilter "/**
+itk::simple::MorphologicalWatershedFromMarkersImageFilter::MorphologicalWatershedFromMarkersImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedFromMarkersImageFilter::SetFullyConnected "/**
+Self& itk::simple::MorphologicalWatershedFromMarkersImageFilter::SetFullyConnected(bool FullyConnected)
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedFromMarkersImageFilter::SetMarkWatershedLine "/**
+Self& itk::simple::MorphologicalWatershedFromMarkersImageFilter::SetMarkWatershedLine(bool MarkWatershedLine)
+
+Set/Get whether the watershed pixel must be marked or not. Default is
+true. Set it to false do not only avoid writing watershed pixels, it
+also decrease algorithm complexity.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedFromMarkersImageFilter::ToString "/**
+std::string itk::simple::MorphologicalWatershedFromMarkersImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedFromMarkersImageFilter::~MorphologicalWatershedFromMarkersImageFilter "/**
+itk::simple::MorphologicalWatershedFromMarkersImageFilter::~MorphologicalWatershedFromMarkersImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::MorphologicalWatershedImageFilter "/**
+
+Watershed segmentation implementation with morphogical operators.
+
+
+Watershed pixel are labeled 0. TOutputImage should be an integer type.
+Labels of output image are in no particular order. You can reorder the
+labels such that object labels are consecutive and sorted based on
+object size by passing the output of this filter to a RelabelComponentImageFilter .
+
+The morphological watershed transform algorithm is described in
+Chapter 9.2 of Pierre Soille's book \"Morphological Image Analysis:
+Principles and Applications\", Second Edition, Springer, 2003.
+
+This code was contributed in the Insight Journal paper: \"The
+watershed transform in ITK - discussion and new developments\" by
+Beare R., Lehmann G. https://hdl.handle.net/1926/202 http://www.insight-journal.org/browse/publication/92
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ WatershedImageFilter , MorphologicalWatershedFromMarkersImageFilter
+
+ itk::simple::MorphologicalWatershed for the procedural interface
+
+ itk::MorphologicalWatershedImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkMorphologicalWatershedImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedImageFilter::Execute "/**
+Image itk::simple::MorphologicalWatershedImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedImageFilter::Execute "/**
+Image itk::simple::MorphologicalWatershedImageFilter::Execute(const Image &image1, double level, bool markWatershedLine, bool
+fullyConnected)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedImageFilter::FullyConnectedOff "/**
+Self& itk::simple::MorphologicalWatershedImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedImageFilter::FullyConnectedOn "/**
+Self& itk::simple::MorphologicalWatershedImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedImageFilter::GetFullyConnected "/**
+bool itk::simple::MorphologicalWatershedImageFilter::GetFullyConnected() const
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedImageFilter::GetLevel "/**
+double itk::simple::MorphologicalWatershedImageFilter::GetLevel() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedImageFilter::GetMarkWatershedLine "/**
+bool itk::simple::MorphologicalWatershedImageFilter::GetMarkWatershedLine() const
+
+Set/Get whether the watershed pixel must be marked or not. Default is
+true. Set it to false do not only avoid writing watershed pixels, it
+also decrease algorithm complexity.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedImageFilter::GetName "/**
+std::string itk::simple::MorphologicalWatershedImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedImageFilter::MarkWatershedLineOff "/**
+Self& itk::simple::MorphologicalWatershedImageFilter::MarkWatershedLineOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedImageFilter::MarkWatershedLineOn "/**
+Self& itk::simple::MorphologicalWatershedImageFilter::MarkWatershedLineOn()
+
+Set the value of MarkWatershedLine to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedImageFilter::MorphologicalWatershedImageFilter "/**
+itk::simple::MorphologicalWatershedImageFilter::MorphologicalWatershedImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedImageFilter::SetFullyConnected "/**
+Self& itk::simple::MorphologicalWatershedImageFilter::SetFullyConnected(bool FullyConnected)
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedImageFilter::SetLevel "/**
+Self& itk::simple::MorphologicalWatershedImageFilter::SetLevel(double Level)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedImageFilter::SetMarkWatershedLine "/**
+Self& itk::simple::MorphologicalWatershedImageFilter::SetMarkWatershedLine(bool MarkWatershedLine)
+
+Set/Get whether the watershed pixel must be marked or not. Default is
+true. Set it to false do not only avoid writing watershed pixels, it
+also decrease algorithm complexity.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedImageFilter::ToString "/**
+std::string itk::simple::MorphologicalWatershedImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedImageFilter::~MorphologicalWatershedImageFilter "/**
+itk::simple::MorphologicalWatershedImageFilter::~MorphologicalWatershedImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::MultiLabelSTAPLEImageFilter "/**
+
+This filter performs a pixelwise combination of an arbitrary number of
+input images, where each of them represents a segmentation of the same
+scene (i.e., image).
+
+
+The labelings in the images are weighted relative to each other based
+on their \"performance\" as estimated by an expectation-maximization
+algorithm. In the process, a ground truth segmentation is estimated,
+and the estimated performances of the individual segmentations are
+relative to this estimated ground truth.
+
+The algorithm is based on the binary STAPLE algorithm by Warfield et
+al. as published originally in
+
+S. Warfield, K. Zou, W. Wells, \"Validation of image segmentation and
+expert quality with an expectation-maximization algorithm\" in MICCAI
+2002: Fifth International Conference on Medical Image Computing and Computer-Assisted Intervention, Springer-Verlag,
+Heidelberg, Germany, 2002, pp. 298-306
+
+The multi-label algorithm implemented here is described in detail in
+
+T. Rohlfing, D. B. Russakoff, and C. R. Maurer, Jr., \"Performance-
+based classifier combination in atlas-based image segmentation using
+expectation-maximization parameter estimation,\" IEEE Transactions on
+Medical Imaging, vol. 23, pp. 983-994, Aug. 2004.
+
+INPUTS
+All input volumes to this filter must be segmentations of an image,
+that is, they must have discrete pixel values where each value
+represents a different segmented object.
+ Input volumes must all contain the same size RequestedRegions. Not all input images must contain all possible labels, but all label
+values must have the same meaning in all images.
+
+The filter can optionally be provided with estimates for the a priori
+class probabilities through the SetPriorProbabilities function. If no
+estimate is provided, one is automatically generated by analyzing the
+relative frequencies of the labels in the input images.
+
+OUTPUTS
+The filter produces a single output volume. Each output pixel contains
+the label that has the highest probability of being the correct label,
+based on the performance models of the individual segmentations. If
+the maximum probaility is not unique, i.e., if more than one label
+have a maximum probability, then an \"undecided\" label is assigned to
+that output pixel.
+ By default, the label used for undecided pixels is the maximum label
+value used in the input images plus one. Since it is possible for an
+image with 8 bit pixel values to use all 256 possible label values, it
+is permissible to combine 8 bit (i.e., byte) images into a 16 bit
+(i.e., short) output image.
+
+In addition to the combined image, the estimated confusion matrices
+for each of the input segmentations can be obtained through the
+GetConfusionMatrix member function.
+
+PARAMETERS
+The label used for \"undecided\" labels can be set using
+SetLabelForUndecidedPixels. This functionality can be unset by calling
+UnsetLabelForUndecidedPixels.
+ A termination threshold for the EM iteration can be defined by
+calling SetTerminationUpdateThreshold. The iteration terminates once
+no single parameter of any confusion matrix changes by less than this
+threshold. Alternatively, a maximum number of iterations can be
+specified by calling SetMaximumNumberOfIterations. The algorithm may
+still terminate after a smaller number of iterations if the
+termination threshold criterion is satisfied.
+
+EVENTS
+This filter invokes IterationEvent() at each iteration of the E-M
+algorithm. Setting the AbortGenerateData() flag will cause the
+algorithm to halt after the current iteration and produce results just
+as if it had converged. The algorithm makes no attempt to report its
+progress since the number of iterations needed cannot be known in
+advance.
+
+Torsten Rohlfing, SRI International, Neuroscience Program
+
+See:
+ itk::simple::MultiLabelSTAPLE for the procedural interface
+
+
+C++ includes: sitkMultiLabelSTAPLEImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::MultiLabelSTAPLEImageFilter::Execute "/**
+Image itk::simple::MultiLabelSTAPLEImageFilter::Execute(const std::vector< Image > &images)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiLabelSTAPLEImageFilter::Execute "/**
+Image itk::simple::MultiLabelSTAPLEImageFilter::Execute(const Image &image1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiLabelSTAPLEImageFilter::Execute "/**
+Image itk::simple::MultiLabelSTAPLEImageFilter::Execute(const Image &image1, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiLabelSTAPLEImageFilter::Execute "/**
+Image itk::simple::MultiLabelSTAPLEImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiLabelSTAPLEImageFilter::Execute "/**
+Image itk::simple::MultiLabelSTAPLEImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiLabelSTAPLEImageFilter::Execute "/**
+Image itk::simple::MultiLabelSTAPLEImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4, const Image &image5)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiLabelSTAPLEImageFilter::Execute "/**
+Image itk::simple::MultiLabelSTAPLEImageFilter::Execute(const std::vector< Image > &images, uint64_t labelForUndecidedPixels,
+float terminationUpdateThreshold, unsigned int
+maximumNumberOfIterations, std::vector< float > priorProbabilities)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiLabelSTAPLEImageFilter::Execute "/**
+Image itk::simple::MultiLabelSTAPLEImageFilter::Execute(const Image &image1, uint64_t labelForUndecidedPixels, float
+terminationUpdateThreshold, unsigned int maximumNumberOfIterations,
+std::vector< float > priorProbabilities)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiLabelSTAPLEImageFilter::Execute "/**
+Image itk::simple::MultiLabelSTAPLEImageFilter::Execute(const Image &image1, const Image &image2, uint64_t
+labelForUndecidedPixels, float terminationUpdateThreshold, unsigned
+int maximumNumberOfIterations, std::vector< float >
+priorProbabilities)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiLabelSTAPLEImageFilter::Execute "/**
+Image itk::simple::MultiLabelSTAPLEImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3,
+uint64_t labelForUndecidedPixels, float terminationUpdateThreshold,
+unsigned int maximumNumberOfIterations, std::vector< float >
+priorProbabilities)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiLabelSTAPLEImageFilter::Execute "/**
+Image itk::simple::MultiLabelSTAPLEImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4, uint64_t labelForUndecidedPixels, float
+terminationUpdateThreshold, unsigned int maximumNumberOfIterations,
+std::vector< float > priorProbabilities)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiLabelSTAPLEImageFilter::Execute "/**
+Image itk::simple::MultiLabelSTAPLEImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4, const Image &image5, uint64_t labelForUndecidedPixels,
+float terminationUpdateThreshold, unsigned int
+maximumNumberOfIterations, std::vector< float > priorProbabilities)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiLabelSTAPLEImageFilter::GetConfusionMatrix "/**
+std::vector<float> itk::simple::MultiLabelSTAPLEImageFilter::GetConfusionMatrix(unsigned int input) const
+
+Get confusion matrix for the i-th input segmentation.
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiLabelSTAPLEImageFilter::GetLabelForUndecidedPixels "/**
+uint64_t itk::simple::MultiLabelSTAPLEImageFilter::GetLabelForUndecidedPixels() const
+
+     Get label value used for undecided pixels.
+
+After updating the filter, this function returns the actual label
+value used for undecided pixels in the current output. Note that this
+value is overwritten when SetLabelForUndecidedPixels is called and the
+new value only becomes effective upon the next filter update.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiLabelSTAPLEImageFilter::GetMaximumNumberOfIterations "/**
+unsigned int itk::simple::MultiLabelSTAPLEImageFilter::GetMaximumNumberOfIterations() const
+
+Set maximum number of iterations.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiLabelSTAPLEImageFilter::GetName "/**
+std::string itk::simple::MultiLabelSTAPLEImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiLabelSTAPLEImageFilter::GetPriorProbabilities "/**
+std::vector<float> itk::simple::MultiLabelSTAPLEImageFilter::GetPriorProbabilities() const
+
+     Get prior class probabilities.
+
+After updating the filter, this function returns the actual prior
+class probabilities. If these were not previously set by a call to
+SetPriorProbabilities, then they are estimated from the input
+segmentations and the result is available through this function.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiLabelSTAPLEImageFilter::GetTerminationUpdateThreshold "/**
+float itk::simple::MultiLabelSTAPLEImageFilter::GetTerminationUpdateThreshold() const
+
+Set termination threshold based on confusion matrix parameter updates.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiLabelSTAPLEImageFilter::MultiLabelSTAPLEImageFilter "/**
+itk::simple::MultiLabelSTAPLEImageFilter::MultiLabelSTAPLEImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiLabelSTAPLEImageFilter::SetLabelForUndecidedPixels "/**
+Self& itk::simple::MultiLabelSTAPLEImageFilter::SetLabelForUndecidedPixels(uint64_t LabelForUndecidedPixels)
+
+Set label value for undecided pixels.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiLabelSTAPLEImageFilter::SetMaximumNumberOfIterations "/**
+Self& itk::simple::MultiLabelSTAPLEImageFilter::SetMaximumNumberOfIterations(unsigned int MaximumNumberOfIterations)
+
+Set maximum number of iterations.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiLabelSTAPLEImageFilter::SetPriorProbabilities "/**
+Self& itk::simple::MultiLabelSTAPLEImageFilter::SetPriorProbabilities(std::vector< float > PriorProbabilities)
+
+    Set manual estimates for the a priori class probabilities. The
+size of the array must be greater than the value of the largest label. The index into the array corresponds to the label
+value in the segmented image for the class.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiLabelSTAPLEImageFilter::SetTerminationUpdateThreshold "/**
+Self& itk::simple::MultiLabelSTAPLEImageFilter::SetTerminationUpdateThreshold(float TerminationUpdateThreshold)
+
+Set termination threshold based on confusion matrix parameter updates.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiLabelSTAPLEImageFilter::ToString "/**
+std::string itk::simple::MultiLabelSTAPLEImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiLabelSTAPLEImageFilter::~MultiLabelSTAPLEImageFilter "/**
+itk::simple::MultiLabelSTAPLEImageFilter::~MultiLabelSTAPLEImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::MultiplyImageFilter "/**
+
+Pixel-wise multiplication of two images.
+
+
+This class is templated over the types of the two input images and the
+type of the output image. Numeric conversions (castings) are done by
+the C++ defaults.
+
+Wiki Examples:
+
+All Examples
+
+Multiply two images together
+
+Multiply every pixel in an image by a constant
+See:
+ itk::simple::Multiply for the procedural interface
+
+ itk::MultiplyImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkMultiplyImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::MultiplyImageFilter::Execute "/**
+Image itk::simple::MultiplyImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiplyImageFilter::Execute "/**
+Image itk::simple::MultiplyImageFilter::Execute(const Image &image1, double constant)
+
+Execute the filter with an image and a constant
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiplyImageFilter::Execute "/**
+Image itk::simple::MultiplyImageFilter::Execute(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiplyImageFilter::GetName "/**
+std::string itk::simple::MultiplyImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiplyImageFilter::MultiplyImageFilter "/**
+itk::simple::MultiplyImageFilter::MultiplyImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiplyImageFilter::ToString "/**
+std::string itk::simple::MultiplyImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MultiplyImageFilter::~MultiplyImageFilter "/**
+itk::simple::MultiplyImageFilter::~MultiplyImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::N4BiasFieldCorrectionImageFilter "/**
+
+Implementation of the N4 bias field correction algorithm.
+
+
+The nonparametric nonuniform intensity normalization (N3) algorithm,
+as introduced by Sled et al. in 1998 is a method for correcting
+nonuniformity associated with MR images. The algorithm assumes a
+simple parametric model (Gaussian) for the bias field and does not
+require tissue class segmentation. In addition, there are only a
+couple of parameters to tune with the default values performing quite
+well. N3 has been publicly available as a set of perl scripts ( http://www.bic.mni.mcgill.ca/ServicesSoftwareAdvancedImageProcessingTo
+ols/HomePage )
+
+The N4 algorithm, encapsulated with this class, is a variation of the
+original N3 algorithm with the additional benefits of an improved
+B-spline fitting routine which allows for multiple resolutions to be
+used during the correction process. We also modify the iterative
+update component of algorithm such that the residual bias field is
+continually updated
+
+Notes for the user:
+Since much of the image manipulation is done in the log space of the
+intensities, input images with negative and small values (< 1) can
+produce poor results.
+
+The original authors recommend performing the bias field correction on
+a downsampled version of the original image.
+
+A binary mask or a weighted image can be supplied. If a binary mask is
+specified, those voxels in the input image which correspond to the
+voxels in the mask image are used to estimate the bias field. If a
+UseMaskLabel value is set to true, only voxels in the MaskImage that
+match the MaskLabel will be used; otherwise, all non-zero voxels in
+the MaskImage will be masked. If a confidence image is specified, the
+input voxels are weighted in the b-spline fitting routine according to
+the confidence voxel values.
+
+The filter returns the corrected image. If the bias field is wanted,
+one can reconstruct it using the class
+itkBSplineControlPointImageFilter. See the IJ article and the test
+file for an example.
+
+The 'Z' parameter in Sled's 1998 paper is the square root of the class
+variable 'm_WienerFilterNoise'.
+ The basic algorithm iterates between sharpening the intensity
+histogram of the corrected input image and spatially smoothing those
+results with a B-spline scalar field estimate of the bias field.
+
+
+Nicholas J. Tustison
+ Contributed by Nicholas J. Tustison, James C. Gee in the Insight
+Journal paper: https://hdl.handle.net/10380/3053
+
+REFERENCE
+ J.G. Sled, A.P. Zijdenbos and A.C. Evans. \"A Nonparametric Method
+for Automatic Correction of Intensity Nonuniformity in Data\" IEEE
+Transactions on Medical Imaging, Vol 17, No 1. Feb 1998.
+
+N.J. Tustison, B.B. Avants, P.A. Cook, Y. Zheng, A. Egan, P.A.
+Yushkevich, and J.C. Gee. \"N4ITK: Improved N3 Bias Correction\" IEEE
+Transactions on Medical Imaging, 29(6):1310-1320, June 2010.
+See:
+ itk::simple::N4BiasFieldCorrection for the procedural interface
+
+ itk::N4BiasFieldCorrectionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkN4BiasFieldCorrectionImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::N4BiasFieldCorrectionImageFilter::Execute "/**
+Image itk::simple::N4BiasFieldCorrectionImageFilter::Execute(const Image &image, const Image &maskImage)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::N4BiasFieldCorrectionImageFilter::Execute "/**
+Image itk::simple::N4BiasFieldCorrectionImageFilter::Execute(const Image &image, const Image &maskImage, double
+convergenceThreshold, std::vector< uint32_t >
+maximumNumberOfIterations, double biasFieldFullWidthAtHalfMaximum,
+double wienerFilterNoise, uint32_t numberOfHistogramBins, const
+std::vector< uint32_t > &numberOfControlPoints, uint32_t splineOrder)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::N4BiasFieldCorrectionImageFilter::GetBiasFieldFullWidthAtHalfMaximum "/**
+double itk::simple::N4BiasFieldCorrectionImageFilter::GetBiasFieldFullWidthAtHalfMaximum() const
+
+Get the full width at half maximum parameter characterizing the width
+of the Gaussian deconvolution. Default = 0.15.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::N4BiasFieldCorrectionImageFilter::GetConvergenceThreshold "/**
+double itk::simple::N4BiasFieldCorrectionImageFilter::GetConvergenceThreshold() const
+
+Get the convergence threshold. Convergence is determined by the
+coefficient of variation of the difference image between the current
+bias field estimate and the previous estimate. If this value is less
+than the specified threshold, the algorithm proceeds to the next
+fitting level or terminates if it is at the last level.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::N4BiasFieldCorrectionImageFilter::GetMaximumNumberOfIterations "/**
+std::vector<uint32_t> itk::simple::N4BiasFieldCorrectionImageFilter::GetMaximumNumberOfIterations() const
+
+Get the maximum number of iterations specified at each fitting level.
+Default = 50.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::N4BiasFieldCorrectionImageFilter::GetName "/**
+std::string itk::simple::N4BiasFieldCorrectionImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::N4BiasFieldCorrectionImageFilter::GetNumberOfControlPoints "/**
+std::vector<uint32_t> itk::simple::N4BiasFieldCorrectionImageFilter::GetNumberOfControlPoints() const
+
+Get the control point grid size defining the B-spline estimate of the
+scalar bias field. In each dimension, the B-spline mesh size is equal
+to the number of control points in that dimension minus the spline
+order. Default = 4 control points in each dimension for a mesh size of
+1 in each dimension.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::N4BiasFieldCorrectionImageFilter::GetNumberOfHistogramBins "/**
+uint32_t itk::simple::N4BiasFieldCorrectionImageFilter::GetNumberOfHistogramBins() const
+
+Get number of bins defining the log input intensity histogram. Default
+= 200.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::N4BiasFieldCorrectionImageFilter::GetSplineOrder "/**
+uint32_t itk::simple::N4BiasFieldCorrectionImageFilter::GetSplineOrder() const
+
+Get the spline order defining the bias field estimate. Default = 3.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::N4BiasFieldCorrectionImageFilter::GetWienerFilterNoise "/**
+double itk::simple::N4BiasFieldCorrectionImageFilter::GetWienerFilterNoise() const
+
+Get the noise estimate defining the Wiener filter. Default = 0.01.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::N4BiasFieldCorrectionImageFilter::N4BiasFieldCorrectionImageFilter "/**
+itk::simple::N4BiasFieldCorrectionImageFilter::N4BiasFieldCorrectionImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::N4BiasFieldCorrectionImageFilter::SetBiasFieldFullWidthAtHalfMaximum "/**
+Self& itk::simple::N4BiasFieldCorrectionImageFilter::SetBiasFieldFullWidthAtHalfMaximum(double BiasFieldFullWidthAtHalfMaximum)
+
+Set the full width at half maximum parameter characterizing the width
+of the Gaussian deconvolution. Default = 0.15.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::N4BiasFieldCorrectionImageFilter::SetConvergenceThreshold "/**
+Self& itk::simple::N4BiasFieldCorrectionImageFilter::SetConvergenceThreshold(double ConvergenceThreshold)
+
+Set the convergence threshold. Convergence is determined by the
+coefficient of variation of the difference image between the current
+bias field estimate and the previous estimate. If this value is less
+than the specified threshold, the algorithm proceeds to the next
+fitting level or terminates if it is at the last level.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::N4BiasFieldCorrectionImageFilter::SetMaximumNumberOfIterations "/**
+Self& itk::simple::N4BiasFieldCorrectionImageFilter::SetMaximumNumberOfIterations(std::vector< uint32_t > MaximumNumberOfIterations)
+
+Set the maximum number of iterations specified at each fitting level.
+Default = 50.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::N4BiasFieldCorrectionImageFilter::SetNumberOfControlPoints "/**
+Self& itk::simple::N4BiasFieldCorrectionImageFilter::SetNumberOfControlPoints(const std::vector< uint32_t > &NumberOfControlPoints)
+
+Set the control point grid size defining the B-spline estimate of the
+scalar bias field. In each dimension, the B-spline mesh size is equal
+to the number of control points in that dimension minus the spline
+order. Default = 4 control points in each dimension for a mesh size of
+1 in each dimension.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::N4BiasFieldCorrectionImageFilter::SetNumberOfControlPoints "/**
+Self& itk::simple::N4BiasFieldCorrectionImageFilter::SetNumberOfControlPoints(uint32_t value)
+
+Set the values of the NumberOfControlPoints vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::N4BiasFieldCorrectionImageFilter::SetNumberOfHistogramBins "/**
+Self& itk::simple::N4BiasFieldCorrectionImageFilter::SetNumberOfHistogramBins(uint32_t NumberOfHistogramBins)
+
+Set number of bins defining the log input intensity histogram. Default
+= 200.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::N4BiasFieldCorrectionImageFilter::SetSplineOrder "/**
+Self& itk::simple::N4BiasFieldCorrectionImageFilter::SetSplineOrder(uint32_t SplineOrder)
+
+Set the spline order defining the bias field estimate. Default = 3.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::N4BiasFieldCorrectionImageFilter::SetWienerFilterNoise "/**
+Self& itk::simple::N4BiasFieldCorrectionImageFilter::SetWienerFilterNoise(double WienerFilterNoise)
+
+Set the noise estimate defining the Wiener filter. Default = 0.01.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::N4BiasFieldCorrectionImageFilter::ToString "/**
+std::string itk::simple::N4BiasFieldCorrectionImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::N4BiasFieldCorrectionImageFilter::~N4BiasFieldCorrectionImageFilter "/**
+itk::simple::N4BiasFieldCorrectionImageFilter::~N4BiasFieldCorrectionImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::NaryAddImageFilter "/**
+
+Pixel-wise addition of N images.
+
+
+This class is templated over the types of the input images and the
+type of the output image. Numeric conversions (castings) are done by
+the C++ defaults.
+
+The pixel type of the input images must have a valid definition of the
+operator+ with each other. This condition is required because
+internally this filter will perform the operation
+
+
+Additionally the type resulting from the sum, will be cast to the
+pixel type of the output image.
+
+The total operation over one pixel will be
+
+
+For example, this filter could be used directly for adding images
+whose pixels are vectors of the same dimension, and to store the
+resulting vector in an output image of vector pixels.
+
+
+WARNING:
+No numeric overflow checking is performed in this filter.
+
+See:
+ itk::simple::NaryAdd for the procedural interface
+
+
+C++ includes: sitkNaryAddImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::NaryAddImageFilter::Execute "/**
+Image itk::simple::NaryAddImageFilter::Execute(const std::vector< Image > &images)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NaryAddImageFilter::Execute "/**
+Image itk::simple::NaryAddImageFilter::Execute(const Image &image1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NaryAddImageFilter::Execute "/**
+Image itk::simple::NaryAddImageFilter::Execute(const Image &image1, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NaryAddImageFilter::Execute "/**
+Image itk::simple::NaryAddImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NaryAddImageFilter::Execute "/**
+Image itk::simple::NaryAddImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NaryAddImageFilter::Execute "/**
+Image itk::simple::NaryAddImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4, const Image &image5)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NaryAddImageFilter::GetName "/**
+std::string itk::simple::NaryAddImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NaryAddImageFilter::NaryAddImageFilter "/**
+itk::simple::NaryAddImageFilter::NaryAddImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NaryAddImageFilter::ToString "/**
+std::string itk::simple::NaryAddImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NaryAddImageFilter::~NaryAddImageFilter "/**
+itk::simple::NaryAddImageFilter::~NaryAddImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::NaryMaximumImageFilter "/**
+
+Computes the pixel-wise maximum of several images.
+
+
+This class is templated over the types of the input images and the
+type of the output image. Numeric conversions (castings) are done by
+the C++ defaults.
+
+The pixel type of the output images must have a valid definition of
+the operator<. This condition is required because internally this
+filter will perform an operation similar to:
+
+ (where current_maximum is also of type OutputPixelType)
+
+for each of the n input images.
+
+For example, this filter could be used directly to find a \"maximum
+projection\" of a series of images, often used in preliminary analysis
+of time-series data.
+
+
+Zachary Pincus
+ This filter was contributed by Zachary Pincus from the Department of
+Biochemistry and Program in Biomedical Informatics at Stanford
+University School of Medicine
+
+
+See:
+ itk::simple::NaryMaximum for the procedural interface
+
+
+C++ includes: sitkNaryMaximumImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::NaryMaximumImageFilter::Execute "/**
+Image itk::simple::NaryMaximumImageFilter::Execute(const std::vector< Image > &images)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NaryMaximumImageFilter::Execute "/**
+Image itk::simple::NaryMaximumImageFilter::Execute(const Image &image1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NaryMaximumImageFilter::Execute "/**
+Image itk::simple::NaryMaximumImageFilter::Execute(const Image &image1, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NaryMaximumImageFilter::Execute "/**
+Image itk::simple::NaryMaximumImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NaryMaximumImageFilter::Execute "/**
+Image itk::simple::NaryMaximumImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NaryMaximumImageFilter::Execute "/**
+Image itk::simple::NaryMaximumImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4, const Image &image5)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NaryMaximumImageFilter::GetName "/**
+std::string itk::simple::NaryMaximumImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NaryMaximumImageFilter::NaryMaximumImageFilter "/**
+itk::simple::NaryMaximumImageFilter::NaryMaximumImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NaryMaximumImageFilter::ToString "/**
+std::string itk::simple::NaryMaximumImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NaryMaximumImageFilter::~NaryMaximumImageFilter "/**
+itk::simple::NaryMaximumImageFilter::~NaryMaximumImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::NeighborhoodConnectedImageFilter "/**
+
+Label pixels that are connected to a seed and lie within a
+neighborhood.
+
+
+NeighborhoodConnectedImageFilter labels pixels with ReplaceValue that are connected to an initial Seed
+AND whose neighbors all lie within a Lower and Upper threshold range.
+See:
+ itk::simple::NeighborhoodConnected for the procedural interface
+
+ itk::NeighborhoodConnectedImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkNeighborhoodConnectedImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::NeighborhoodConnectedImageFilter::AddSeed "/**
+Self& itk::simple::NeighborhoodConnectedImageFilter::AddSeed(const std::vector< unsigned int > &idx)
+
+AddSeed - Add a seed to the end of the list
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NeighborhoodConnectedImageFilter::ClearSeeds "/**
+Self& itk::simple::NeighborhoodConnectedImageFilter::ClearSeeds()
+
+ClearSeeds - Clear out all seeds in the list
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NeighborhoodConnectedImageFilter::Execute "/**
+Image itk::simple::NeighborhoodConnectedImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NeighborhoodConnectedImageFilter::Execute "/**
+Image itk::simple::NeighborhoodConnectedImageFilter::Execute(const Image &image1, const std::vector< std::vector< unsigned int > >
+&seedList, double lower, double upper, const std::vector< unsigned int
+> &radius, double replaceValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NeighborhoodConnectedImageFilter::GetLower "/**
+double itk::simple::NeighborhoodConnectedImageFilter::GetLower() const
+
+Set/Get the lower threshold. The default is 0.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NeighborhoodConnectedImageFilter::GetName "/**
+std::string itk::simple::NeighborhoodConnectedImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NeighborhoodConnectedImageFilter::GetRadius "/**
+std::vector<unsigned int> itk::simple::NeighborhoodConnectedImageFilter::GetRadius() const
+
+Get the radius of the neighborhood used to compute the median
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NeighborhoodConnectedImageFilter::GetReplaceValue "/**
+double itk::simple::NeighborhoodConnectedImageFilter::GetReplaceValue() const
+
+Set/Get value to replace thresholded pixels. Pixels that lie * within
+Lower and Upper (inclusive) will be replaced with this value. The
+default is 1.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NeighborhoodConnectedImageFilter::GetSeedList "/**
+std::vector< std::vector<unsigned int> > itk::simple::NeighborhoodConnectedImageFilter::GetSeedList() const
+
+Get SeedList
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NeighborhoodConnectedImageFilter::GetUpper "/**
+double itk::simple::NeighborhoodConnectedImageFilter::GetUpper() const
+
+Set/Get the upper threshold. The default is the largest possible value
+for the InputPixelType.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NeighborhoodConnectedImageFilter::NeighborhoodConnectedImageFilter "/**
+itk::simple::NeighborhoodConnectedImageFilter::NeighborhoodConnectedImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NeighborhoodConnectedImageFilter::SetLower "/**
+Self& itk::simple::NeighborhoodConnectedImageFilter::SetLower(double Lower)
+
+Set/Get the lower threshold. The default is 0.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NeighborhoodConnectedImageFilter::SetRadius "/**
+Self& itk::simple::NeighborhoodConnectedImageFilter::SetRadius(const std::vector< unsigned int > &Radius)
+
+Set the radius of the neighborhood used for a mask.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NeighborhoodConnectedImageFilter::SetRadius "/**
+Self& itk::simple::NeighborhoodConnectedImageFilter::SetRadius(unsigned int value)
+
+Set the values of the Radius vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NeighborhoodConnectedImageFilter::SetReplaceValue "/**
+Self& itk::simple::NeighborhoodConnectedImageFilter::SetReplaceValue(double ReplaceValue)
+
+Set/Get value to replace thresholded pixels. Pixels that lie * within
+Lower and Upper (inclusive) will be replaced with this value. The
+default is 1.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NeighborhoodConnectedImageFilter::SetSeed "/**
+Self& itk::simple::NeighborhoodConnectedImageFilter::SetSeed(const std::vector< unsigned int > &idx)
+
+SetSeed - Set list to a single seed
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NeighborhoodConnectedImageFilter::SetSeedList "/**
+Self& itk::simple::NeighborhoodConnectedImageFilter::SetSeedList(const std::vector< std::vector< unsigned int > > &t)
+
+Set SeedList
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NeighborhoodConnectedImageFilter::SetUpper "/**
+Self& itk::simple::NeighborhoodConnectedImageFilter::SetUpper(double Upper)
+
+Set/Get the upper threshold. The default is the largest possible value
+for the InputPixelType.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NeighborhoodConnectedImageFilter::ToString "/**
+std::string itk::simple::NeighborhoodConnectedImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NeighborhoodConnectedImageFilter::~NeighborhoodConnectedImageFilter "/**
+itk::simple::NeighborhoodConnectedImageFilter::~NeighborhoodConnectedImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::NoiseImageFilter "/**
+
+Calculate the local noise in an image.
+
+
+Computes an image where a given pixel is the standard deviation of the
+pixels in a neighborhood about the corresponding input pixel. This
+serves as an estimate of the local noise (or texture) in an image.
+Currently, this noise estimate assume a piecewise constant image. This
+filter should be extended to fitting a (hyper) plane to the
+neighborhood and calculating the standard deviation of the residuals
+to this (hyper) plane.
+
+
+See:
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+Wiki Examples:
+
+All Examples
+
+Compute the local noise in an image
+See:
+ itk::simple::Noise for the procedural interface
+
+ itk::NoiseImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkNoiseImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::NoiseImageFilter::Execute "/**
+Image itk::simple::NoiseImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NoiseImageFilter::Execute "/**
+Image itk::simple::NoiseImageFilter::Execute(const Image &image1, const std::vector< unsigned int > &radius)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NoiseImageFilter::GetName "/**
+std::string itk::simple::NoiseImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NoiseImageFilter::GetRadius "/**
+std::vector<unsigned int> itk::simple::NoiseImageFilter::GetRadius() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NoiseImageFilter::NoiseImageFilter "/**
+itk::simple::NoiseImageFilter::NoiseImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NoiseImageFilter::SetRadius "/**
+Self& itk::simple::NoiseImageFilter::SetRadius(const std::vector< unsigned int > &Radius)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NoiseImageFilter::SetRadius "/**
+Self& itk::simple::NoiseImageFilter::SetRadius(unsigned int value)
+
+Set the values of the Radius vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NoiseImageFilter::ToString "/**
+std::string itk::simple::NoiseImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NoiseImageFilter::~NoiseImageFilter "/**
+itk::simple::NoiseImageFilter::~NoiseImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::NonCopyable "/**
+
+An inheratable class to disable copying of a class.
+
+
+This class disable the implicit implementations of the assignment and
+copy constructor for derived classes. The instantiation of the default
+implementation for either method in a derived class will result in a
+compile-time error because they are private in this class. However,
+this policy is not absolute for derived classes because explicit
+implementation of these methods could be implemented.
+
+An advatange this apporach has is the class heiarchy makes it obvious
+what the intent is, as compared to other appoaches.
+
+For example you should not be able to copy singleton object, because
+there should only be one of them. To utilize this class just derive
+from it:
+
+C++ includes: sitkNonCopyable.h
+*/"
+
+
+%typemap(javaimports) itk::simple::NormalizeImageFilter "/**
+
+Normalize an image by setting its mean to zero and variance to one.
+
+
+NormalizeImageFilter shifts and scales an image so that the pixels in the image have a
+zero mean and unit variance. This filter uses StatisticsImageFilter to compute the mean and variance of the input and then applies ShiftScaleImageFilter to shift and scale the pixels.
+
+NB: since this filter normalizes the data to lie within -1 to 1,
+integral types will produce an image that DOES NOT HAVE a unit
+variance.
+
+
+See:
+ NormalizeToConstantImageFilter
+Wiki Examples:
+
+All Examples
+
+Normalize an image
+See:
+ itk::simple::Normalize for the procedural interface
+
+ itk::NormalizeImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkNormalizeImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::NormalizeImageFilter::Execute "/**
+Image itk::simple::NormalizeImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NormalizeImageFilter::GetName "/**
+std::string itk::simple::NormalizeImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NormalizeImageFilter::NormalizeImageFilter "/**
+itk::simple::NormalizeImageFilter::NormalizeImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NormalizeImageFilter::ToString "/**
+std::string itk::simple::NormalizeImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NormalizeImageFilter::~NormalizeImageFilter "/**
+itk::simple::NormalizeImageFilter::~NormalizeImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::NormalizeToConstantImageFilter "/**
+
+Scales image pixel intensities to make the sum of all pixels equal a
+user-defined constant.
+
+
+The default value of the constant is 1. It can be changed with SetConstant() .
+
+This transform is especially useful for normalizing a convolution
+kernel.
+
+This code was contributed in the Insight Journal paper: \"FFT based
+convolution\" by Lehmann G. https://hdl.handle.net/10380/3154
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ NormalizeImageFilter
+
+ StatisticsImageFilter
+
+ DivideImageFilter
+Wiki Examples:
+
+All Examples
+
+Scale all pixels so that their sum is a specified constant
+See:
+ itk::simple::NormalizeToConstant for the procedural interface
+
+ itk::NormalizeToConstantImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkNormalizeToConstantImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::NormalizeToConstantImageFilter::Execute "/**
+Image itk::simple::NormalizeToConstantImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NormalizeToConstantImageFilter::Execute "/**
+Image itk::simple::NormalizeToConstantImageFilter::Execute(const Image &image1, double constant)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NormalizeToConstantImageFilter::GetConstant "/**
+double itk::simple::NormalizeToConstantImageFilter::GetConstant() const
+
+Set/get the normalization constant.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NormalizeToConstantImageFilter::GetName "/**
+std::string itk::simple::NormalizeToConstantImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NormalizeToConstantImageFilter::NormalizeToConstantImageFilter "/**
+itk::simple::NormalizeToConstantImageFilter::NormalizeToConstantImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NormalizeToConstantImageFilter::SetConstant "/**
+Self& itk::simple::NormalizeToConstantImageFilter::SetConstant(double Constant)
+
+Set/get the normalization constant.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NormalizeToConstantImageFilter::ToString "/**
+std::string itk::simple::NormalizeToConstantImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NormalizeToConstantImageFilter::~NormalizeToConstantImageFilter "/**
+itk::simple::NormalizeToConstantImageFilter::~NormalizeToConstantImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::NormalizedCorrelationImageFilter "/**
+
+Computes the normalized correlation of an image and a template.
+
+
+This filter calculates the normalized correlation between an image and
+the template. Normalized correlation is frequently use in feature
+detection because it is invariant to local changes in contrast.
+
+The filter can be given a mask. When presented with an input image and
+a mask, the normalized correlation is only calculated at those pixels
+under the mask.
+
+
+See:
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+Wiki Examples:
+
+All Examples
+
+Normalized correlation
+See:
+ itk::simple::NormalizedCorrelation for the procedural interface
+
+ itk::NormalizedCorrelationImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkNormalizedCorrelationImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::NormalizedCorrelationImageFilter::Execute "/**
+Image itk::simple::NormalizedCorrelationImageFilter::Execute(const Image &image, const Image &maskImage, const Image
+&templateImage)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NormalizedCorrelationImageFilter::GetName "/**
+std::string itk::simple::NormalizedCorrelationImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NormalizedCorrelationImageFilter::NormalizedCorrelationImageFilter "/**
+itk::simple::NormalizedCorrelationImageFilter::NormalizedCorrelationImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NormalizedCorrelationImageFilter::ToString "/**
+std::string itk::simple::NormalizedCorrelationImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NormalizedCorrelationImageFilter::~NormalizedCorrelationImageFilter "/**
+itk::simple::NormalizedCorrelationImageFilter::~NormalizedCorrelationImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::NotEqualImageFilter "/**
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This class is parameterized over the types of the two input images and
+the type of the output image. It is also parameterized by the
+operation to be applied. A Functor style is used.
+
+The constant must be of the same type than the pixel type of the
+corresponding image. It is wrapped in a SimpleDataObjectDecorator so it can be updated through the pipeline. The SetConstant() and
+GetConstant() methods are provided as shortcuts to set or get the
+constant value without manipulating the decorator.
+
+
+See:
+ UnaryFunctorImageFilter TernaryFunctorImageFilter
+Wiki Examples:
+
+All Examples
+
+Apply a predefined operation to corresponding pixels in two images
+
+Apply a custom operation to corresponding pixels in two images
+See:
+ itk::simple::NotEqual for the procedural interface
+
+ itk::BinaryFunctorImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkNotEqualImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::NotEqualImageFilter::Execute "/**
+Image itk::simple::NotEqualImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NotEqualImageFilter::Execute "/**
+Image itk::simple::NotEqualImageFilter::Execute(const Image &image1, const Image &image2, uint8_t backgroundValue,
+uint8_t foregroundValue)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NotEqualImageFilter::Execute "/**
+Image itk::simple::NotEqualImageFilter::Execute(const Image &image1, double constant)
+
+Execute the filter with an image and a constant
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NotEqualImageFilter::Execute "/**
+Image itk::simple::NotEqualImageFilter::Execute(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NotEqualImageFilter::Execute "/**
+Image itk::simple::NotEqualImageFilter::Execute(const Image &image1, double constant, uint8_t backgroundValue,
+uint8_t foregroundValue)
+
+Execute the filter on an image and a constant with the given
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NotEqualImageFilter::Execute "/**
+Image itk::simple::NotEqualImageFilter::Execute(double constant, const Image &image2, uint8_t backgroundValue,
+uint8_t foregroundValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NotEqualImageFilter::GetBackgroundValue "/**
+uint8_t itk::simple::NotEqualImageFilter::GetBackgroundValue() const
+
+Set/Get the value used to mark the false pixels of the operator.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NotEqualImageFilter::GetForegroundValue "/**
+uint8_t itk::simple::NotEqualImageFilter::GetForegroundValue() const
+
+Set/Get the value used to mark the true pixels of the operator.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NotEqualImageFilter::GetName "/**
+std::string itk::simple::NotEqualImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NotEqualImageFilter::NotEqualImageFilter "/**
+itk::simple::NotEqualImageFilter::NotEqualImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NotEqualImageFilter::SetBackgroundValue "/**
+Self& itk::simple::NotEqualImageFilter::SetBackgroundValue(uint8_t BackgroundValue)
+
+Set/Get the value used to mark the false pixels of the operator.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NotEqualImageFilter::SetForegroundValue "/**
+Self& itk::simple::NotEqualImageFilter::SetForegroundValue(uint8_t ForegroundValue)
+
+Set/Get the value used to mark the true pixels of the operator.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NotEqualImageFilter::ToString "/**
+std::string itk::simple::NotEqualImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NotEqualImageFilter::~NotEqualImageFilter "/**
+itk::simple::NotEqualImageFilter::~NotEqualImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::NotImageFilter "/**
+
+Implements the NOT logical operator pixel-wise on an image.
+
+
+This class is templated over the type of an input image and the type
+of the output image. Numeric conversions (castings) are done by the
+C++ defaults.
+
+Since the logical NOT operation operates only on boolean types, the
+input type must be implicitly convertible to bool, which is only
+defined in C++ for integer types, the images passed to this filter
+must comply with the requirement of using integer pixel type.
+
+The total operation over one pixel will be
+
+
+Where \"!\" is the unary Logical NOT operator in C++.
+See:
+ itk::simple::Not for the procedural interface
+
+ itk::NotImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkNotImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::NotImageFilter::Execute "/**
+Image itk::simple::NotImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NotImageFilter::GetName "/**
+std::string itk::simple::NotImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NotImageFilter::NotImageFilter "/**
+itk::simple::NotImageFilter::NotImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NotImageFilter::ToString "/**
+std::string itk::simple::NotImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NotImageFilter::~NotImageFilter "/**
+itk::simple::NotImageFilter::~NotImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::OpeningByReconstructionImageFilter "/**
+
+Opening by reconstruction of an image.
+
+
+This filter preserves regions, in the foreground, that can completely
+contain the structuring element. At the same time, this filter
+eliminates all other regions of foreground pixels. Contrary to the
+mophological opening, the opening by reconstruction preserves the
+shape of the components that are not removed by erosion. The opening
+by reconstruction of an image \"f\" is defined as:
+
+OpeningByReconstruction(f) = DilationByRecontruction(f, Erosion(f)).
+
+Opening by reconstruction not only removes structures destroyed by the
+erosion, but also levels down the contrast of the brightest regions.
+If PreserveIntensities is on, a subsequent reconstruction by dilation
+using a marker image that is the original image for all unaffected
+pixels.
+
+Opening by reconstruction is described in Chapter 6.3.9 of Pierre
+Soille's book \"Morphological Image Analysis: Principles and
+Applications\", Second Edition, Springer, 2003.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ GrayscaleMorphologicalOpeningImageFilter
+
+ itk::simple::OpeningByReconstruction for the procedural interface
+
+ itk::OpeningByReconstructionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkOpeningByReconstructionImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::OpeningByReconstructionImageFilter::Execute "/**
+Image itk::simple::OpeningByReconstructionImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OpeningByReconstructionImageFilter::Execute "/**
+Image itk::simple::OpeningByReconstructionImageFilter::Execute(const Image &image1, bool fullyConnected, bool preserveIntensities)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OpeningByReconstructionImageFilter::FullyConnectedOff "/**
+Self& itk::simple::OpeningByReconstructionImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OpeningByReconstructionImageFilter::FullyConnectedOn "/**
+Self& itk::simple::OpeningByReconstructionImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OpeningByReconstructionImageFilter::GetFullyConnected "/**
+bool itk::simple::OpeningByReconstructionImageFilter::GetFullyConnected() const
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OpeningByReconstructionImageFilter::GetKernelRadius "/**
+std::vector<uint32_t> itk::simple::OpeningByReconstructionImageFilter::GetKernelRadius() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OpeningByReconstructionImageFilter::GetKernelType "/**
+KernelEnum itk::simple::OpeningByReconstructionImageFilter::GetKernelType() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OpeningByReconstructionImageFilter::GetName "/**
+std::string itk::simple::OpeningByReconstructionImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OpeningByReconstructionImageFilter::GetPreserveIntensities "/**
+bool itk::simple::OpeningByReconstructionImageFilter::GetPreserveIntensities() const
+
+Set/Get whether the original intensities of the image retained for
+those pixels unaffected by the opening by reconstrcution. If Off, the
+output pixel contrast will be reduced.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OpeningByReconstructionImageFilter::OpeningByReconstructionImageFilter "/**
+itk::simple::OpeningByReconstructionImageFilter::OpeningByReconstructionImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OpeningByReconstructionImageFilter::PreserveIntensitiesOff "/**
+Self& itk::simple::OpeningByReconstructionImageFilter::PreserveIntensitiesOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OpeningByReconstructionImageFilter::PreserveIntensitiesOn "/**
+Self& itk::simple::OpeningByReconstructionImageFilter::PreserveIntensitiesOn()
+
+Set the value of PreserveIntensities to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OpeningByReconstructionImageFilter::SetFullyConnected "/**
+Self& itk::simple::OpeningByReconstructionImageFilter::SetFullyConnected(bool FullyConnected)
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OpeningByReconstructionImageFilter::SetKernelRadius "/**
+Self& itk::simple::OpeningByReconstructionImageFilter::SetKernelRadius(uint32_t r)
+
+Kernel radius as a scale for isotropic structures
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OpeningByReconstructionImageFilter::SetKernelRadius "/**
+Self& itk::simple::OpeningByReconstructionImageFilter::SetKernelRadius(const std::vector< uint32_t > &r)
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OpeningByReconstructionImageFilter::SetKernelType "/**
+Self& itk::simple::OpeningByReconstructionImageFilter::SetKernelType(KernelEnum t)
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OpeningByReconstructionImageFilter::SetKernelType "/**
+Self& itk::simple::OpeningByReconstructionImageFilter::SetKernelType(KernelType t)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OpeningByReconstructionImageFilter::SetPreserveIntensities "/**
+Self& itk::simple::OpeningByReconstructionImageFilter::SetPreserveIntensities(bool PreserveIntensities)
+
+Set/Get whether the original intensities of the image retained for
+those pixels unaffected by the opening by reconstrcution. If Off, the
+output pixel contrast will be reduced.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OpeningByReconstructionImageFilter::ToString "/**
+std::string itk::simple::OpeningByReconstructionImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OpeningByReconstructionImageFilter::~OpeningByReconstructionImageFilter "/**
+itk::simple::OpeningByReconstructionImageFilter::~OpeningByReconstructionImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::OrImageFilter "/**
+
+Implements the OR bitwise operator pixel-wise between two images.
+
+
+This class is templated over the types of the two input images and the
+type of the output image. Numeric conversions (castings) are done by
+the C++ defaults.
+
+Since the bitwise OR operation is only defined in C++ for integer
+types, the images passed to this filter must comply with the
+requirement of using integer pixel type.
+
+The total operation over one pixel will be
+
+
+Where \"|\" is the boolean OR operator in C++.
+
+Wiki Examples:
+
+All Examples
+
+Binary OR two images
+See:
+ itk::simple::Or for the procedural interface
+
+ itk::OrImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkOrImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::OrImageFilter::Execute "/**
+Image itk::simple::OrImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OrImageFilter::Execute "/**
+Image itk::simple::OrImageFilter::Execute(const Image &image1, int constant)
+
+Execute the filter with an image and a constant
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OrImageFilter::Execute "/**
+Image itk::simple::OrImageFilter::Execute(int constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OrImageFilter::GetName "/**
+std::string itk::simple::OrImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OrImageFilter::OrImageFilter "/**
+itk::simple::OrImageFilter::OrImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OrImageFilter::ToString "/**
+std::string itk::simple::OrImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OrImageFilter::~OrImageFilter "/**
+itk::simple::OrImageFilter::~OrImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::OtsuMultipleThresholdsImageFilter "/**
+
+Threshold an image using multiple Otsu Thresholds.
+
+
+This filter creates a labeled image that separates the input image
+into various classes. The filter computes the thresholds using the OtsuMultipleThresholdsCalculator and applies those thresholds to the input image using the ThresholdLabelerImageFilter . The NumberOfHistogramBins and NumberOfThresholds can be set for the
+Calculator. The LabelOffset can be set for the ThresholdLabelerImageFilter .
+
+This filter also includes an option to use the valley emphasis
+algorithm from H.F. Ng, \"Automatic thresholding for defect
+detection\", Pattern Recognition Letters, (27): 1644-1649, 2006. The
+valley emphasis algorithm is particularly effective when the object to
+be thresholded is small. See the following tests for examples:
+itkOtsuMultipleThresholdsImageFilterTest3 and
+itkOtsuMultipleThresholdsImageFilterTest4 To use this algorithm,
+simple call the setter: SetValleyEmphasis(true) It is turned off by
+default.
+
+
+See:
+ ScalarImageToHistogramGenerator
+
+ OtsuMultipleThresholdsCalculator
+
+ ThresholdLabelerImageFilter
+
+ itk::simple::OtsuMultipleThresholds for the procedural interface
+
+ itk::OtsuMultipleThresholdsImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkOtsuMultipleThresholdsImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::OtsuMultipleThresholdsImageFilter::Execute "/**
+Image itk::simple::OtsuMultipleThresholdsImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuMultipleThresholdsImageFilter::Execute "/**
+Image itk::simple::OtsuMultipleThresholdsImageFilter::Execute(const Image &image1, uint8_t numberOfThresholds, uint8_t labelOffset,
+uint32_t numberOfHistogramBins, bool valleyEmphasis)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuMultipleThresholdsImageFilter::GetLabelOffset "/**
+uint8_t itk::simple::OtsuMultipleThresholdsImageFilter::GetLabelOffset() const
+
+Set/Get the offset which labels have to start from. Default is 0.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuMultipleThresholdsImageFilter::GetName "/**
+std::string itk::simple::OtsuMultipleThresholdsImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuMultipleThresholdsImageFilter::GetNumberOfHistogramBins "/**
+uint32_t itk::simple::OtsuMultipleThresholdsImageFilter::GetNumberOfHistogramBins() const
+
+Set/Get the number of histogram bins. Default is 128.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuMultipleThresholdsImageFilter::GetNumberOfThresholds "/**
+uint8_t itk::simple::OtsuMultipleThresholdsImageFilter::GetNumberOfThresholds() const
+
+Set/Get the number of thresholds. Default is 1.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuMultipleThresholdsImageFilter::GetThresholds "/**
+std::vector<double> itk::simple::OtsuMultipleThresholdsImageFilter::GetThresholds() const
+
+Get the computed threshold.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuMultipleThresholdsImageFilter::GetValleyEmphasis "/**
+bool itk::simple::OtsuMultipleThresholdsImageFilter::GetValleyEmphasis() const
+
+Set/Get the use of valley emphasis. Default is false.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuMultipleThresholdsImageFilter::OtsuMultipleThresholdsImageFilter "/**
+itk::simple::OtsuMultipleThresholdsImageFilter::OtsuMultipleThresholdsImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuMultipleThresholdsImageFilter::SetLabelOffset "/**
+Self& itk::simple::OtsuMultipleThresholdsImageFilter::SetLabelOffset(uint8_t LabelOffset)
+
+Set/Get the offset which labels have to start from. Default is 0.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuMultipleThresholdsImageFilter::SetNumberOfHistogramBins "/**
+Self& itk::simple::OtsuMultipleThresholdsImageFilter::SetNumberOfHistogramBins(uint32_t NumberOfHistogramBins)
+
+Set/Get the number of histogram bins. Default is 128.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuMultipleThresholdsImageFilter::SetNumberOfThresholds "/**
+Self& itk::simple::OtsuMultipleThresholdsImageFilter::SetNumberOfThresholds(uint8_t NumberOfThresholds)
+
+Set/Get the number of thresholds. Default is 1.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuMultipleThresholdsImageFilter::SetValleyEmphasis "/**
+Self& itk::simple::OtsuMultipleThresholdsImageFilter::SetValleyEmphasis(bool ValleyEmphasis)
+
+Set/Get the use of valley emphasis. Default is false.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuMultipleThresholdsImageFilter::ToString "/**
+std::string itk::simple::OtsuMultipleThresholdsImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuMultipleThresholdsImageFilter::ValleyEmphasisOff "/**
+Self& itk::simple::OtsuMultipleThresholdsImageFilter::ValleyEmphasisOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuMultipleThresholdsImageFilter::ValleyEmphasisOn "/**
+Self& itk::simple::OtsuMultipleThresholdsImageFilter::ValleyEmphasisOn()
+
+Set the value of ValleyEmphasis to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuMultipleThresholdsImageFilter::~OtsuMultipleThresholdsImageFilter "/**
+itk::simple::OtsuMultipleThresholdsImageFilter::~OtsuMultipleThresholdsImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::OtsuThresholdImageFilter "/**
+
+Threshold an image using the Otsu Threshold.
+
+
+This filter creates a binary thresholded image that separates an image
+into foreground and background components. The filter computes the
+threshold using the OtsuThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .
+
+
+Richard Beare
+ Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/10380/3279 or http://www.insight-journal.org/browse/publication/811
+
+Wiki Examples:
+
+All Examples
+
+Separate foreground and background using Otsu's method
+
+See:
+ HistogramThresholdImageFilter
+
+ itk::simple::OtsuThreshold for the procedural interface
+
+ itk::OtsuThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkOtsuThresholdImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::OtsuThresholdImageFilter::Execute "/**
+Image itk::simple::OtsuThresholdImageFilter::Execute(const Image &image, const Image &maskImage)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuThresholdImageFilter::Execute "/**
+Image itk::simple::OtsuThresholdImageFilter::Execute(const Image &image)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuThresholdImageFilter::Execute "/**
+Image itk::simple::OtsuThresholdImageFilter::Execute(const Image &image, const Image &maskImage, uint8_t insideValue,
+uint8_t outsideValue, uint32_t numberOfHistogramBins, bool maskOutput,
+uint8_t maskValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuThresholdImageFilter::Execute "/**
+Image itk::simple::OtsuThresholdImageFilter::Execute(const Image &image, uint8_t insideValue, uint8_t outsideValue,
+uint32_t numberOfHistogramBins, bool maskOutput, uint8_t maskValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuThresholdImageFilter::GetInsideValue "/**
+uint8_t itk::simple::OtsuThresholdImageFilter::GetInsideValue() const
+
+Get the \"inside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuThresholdImageFilter::GetMaskOutput "/**
+bool itk::simple::OtsuThresholdImageFilter::GetMaskOutput() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuThresholdImageFilter::GetMaskValue "/**
+uint8_t itk::simple::OtsuThresholdImageFilter::GetMaskValue() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuThresholdImageFilter::GetName "/**
+std::string itk::simple::OtsuThresholdImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuThresholdImageFilter::GetNumberOfHistogramBins "/**
+uint32_t itk::simple::OtsuThresholdImageFilter::GetNumberOfHistogramBins() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuThresholdImageFilter::GetOutsideValue "/**
+uint8_t itk::simple::OtsuThresholdImageFilter::GetOutsideValue() const
+
+Get the \"outside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuThresholdImageFilter::GetThreshold "/**
+double itk::simple::OtsuThresholdImageFilter::GetThreshold() const
+
+Get the computed threshold.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuThresholdImageFilter::MaskOutputOff "/**
+Self& itk::simple::OtsuThresholdImageFilter::MaskOutputOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuThresholdImageFilter::MaskOutputOn "/**
+Self& itk::simple::OtsuThresholdImageFilter::MaskOutputOn()
+
+Set the value of MaskOutput to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuThresholdImageFilter::OtsuThresholdImageFilter "/**
+itk::simple::OtsuThresholdImageFilter::OtsuThresholdImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuThresholdImageFilter::SetInsideValue "/**
+Self& itk::simple::OtsuThresholdImageFilter::SetInsideValue(uint8_t InsideValue)
+
+Set the \"inside\" pixel value. The default value NumericTraits<OutputPixelType>::max()
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuThresholdImageFilter::SetMaskOutput "/**
+Self& itk::simple::OtsuThresholdImageFilter::SetMaskOutput(bool MaskOutput)
+
+Do you want the output to be masked by the mask used in histogram
+construction. Only relevant if masking is in use.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuThresholdImageFilter::SetMaskValue "/**
+Self& itk::simple::OtsuThresholdImageFilter::SetMaskValue(uint8_t MaskValue)
+
+The value in the mask image, if used, indicating voxels that should be
+included. Default is the max of pixel type, as in the
+MaskedImageToHistogramFilter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuThresholdImageFilter::SetNumberOfHistogramBins "/**
+Self& itk::simple::OtsuThresholdImageFilter::SetNumberOfHistogramBins(uint32_t NumberOfHistogramBins)
+
+Set/Get the number of histogram bins. Defaults is 128.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuThresholdImageFilter::SetOutsideValue "/**
+Self& itk::simple::OtsuThresholdImageFilter::SetOutsideValue(uint8_t OutsideValue)
+
+Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuThresholdImageFilter::ToString "/**
+std::string itk::simple::OtsuThresholdImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuThresholdImageFilter::~OtsuThresholdImageFilter "/**
+itk::simple::OtsuThresholdImageFilter::~OtsuThresholdImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::PasteImageFilter "/**
+
+Paste an image into another image.
+
+
+PasteImageFilter allows you to take a section of one image and paste into another
+image. The SetDestinationIndex() method prescribes where in the first input to start pasting data from
+the second input. The SetSourceRegion method prescribes the section of
+the second image to paste into the first. If the output requested
+region does not include the SourceRegion after it has been
+repositioned to DestinationIndex, then the output will just be a copy
+of the input.
+
+The two inputs and output image will have the same pixel type.
+
+Wiki Examples:
+
+All Examples
+
+Paste a part of one image into another image
+See:
+ itk::simple::Paste for the procedural interface
+
+ itk::PasteImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkPasteImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::PasteImageFilter::Execute "/**
+Image itk::simple::PasteImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PasteImageFilter::Execute "/**
+Image itk::simple::PasteImageFilter::Execute(const Image &image1, const Image &image2, const std::vector< unsigned
+int > &sourceSize, const std::vector< int > &sourceIndex, const
+std::vector< int > &destinationIndex)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PasteImageFilter::GetDestinationIndex "/**
+std::vector<int> itk::simple::PasteImageFilter::GetDestinationIndex() const
+
+Set/Get the destination index (where in the first input the second
+input will be pasted.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PasteImageFilter::GetName "/**
+std::string itk::simple::PasteImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PasteImageFilter::GetSourceIndex "/**
+std::vector<int> itk::simple::PasteImageFilter::GetSourceIndex() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PasteImageFilter::GetSourceSize "/**
+std::vector<unsigned int> itk::simple::PasteImageFilter::GetSourceSize() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PasteImageFilter::PasteImageFilter "/**
+itk::simple::PasteImageFilter::PasteImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PasteImageFilter::SetDestinationIndex "/**
+Self& itk::simple::PasteImageFilter::SetDestinationIndex(const std::vector< int > &DestinationIndex)
+
+Set/Get the destination index (where in the first input the second
+input will be pasted.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PasteImageFilter::SetSourceIndex "/**
+Self& itk::simple::PasteImageFilter::SetSourceIndex(const std::vector< int > &SourceIndex)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PasteImageFilter::SetSourceSize "/**
+Self& itk::simple::PasteImageFilter::SetSourceSize(const std::vector< unsigned int > &SourceSize)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PasteImageFilter::ToString "/**
+std::string itk::simple::PasteImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PasteImageFilter::~PasteImageFilter "/**
+itk::simple::PasteImageFilter::~PasteImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::PatchBasedDenoisingImageFilter "/**
+
+Derived class implementing a specific patch-based denoising algorithm,
+as detailed below.
+
+
+This class is derived from the base class PatchBasedDenoisingBaseImageFilter ; please refer to the documentation of the base class first. This
+class implements a denoising filter that uses iterative non-local, or
+semi-local, weighted averaging of image patches for image denoising.
+The intensity at each pixel 'p' gets updated as a weighted average of
+intensities of a chosen subset of pixels from the image.
+
+This class implements the denoising algorithm using a Gaussian kernel
+function for nonparametric density estimation. The class implements a
+scheme to automatically estimated the kernel bandwidth parameter
+(namely, sigma) using leave-one-out cross validation. It implements
+schemes for random sampling of patches non-locally (from the entire
+image) as well as semi-locally (from the spatial proximity of the
+pixel being denoised at the specific point in time). It implements a
+specific scheme for defining patch weights (mask) as described in
+Awate and Whitaker 2005 IEEE CVPR and 2006 IEEE TPAMI.
+
+
+See:
+ PatchBasedDenoisingBaseImageFilter
+
+ itk::PatchBasedDenoisingImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkPatchBasedDenoisingImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::AlwaysTreatComponentsAsEuclideanOff "/**
+Self& itk::simple::PatchBasedDenoisingImageFilter::AlwaysTreatComponentsAsEuclideanOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::AlwaysTreatComponentsAsEuclideanOn "/**
+Self& itk::simple::PatchBasedDenoisingImageFilter::AlwaysTreatComponentsAsEuclideanOn()
+
+Set the value of AlwaysTreatComponentsAsEuclidean to true or false
+respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::Execute "/**
+Image itk::simple::PatchBasedDenoisingImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::Execute "/**
+Image itk::simple::PatchBasedDenoisingImageFilter::Execute(const Image &image1, double kernelBandwidthSigma, uint32_t
+patchRadius, uint32_t numberOfIterations, uint32_t
+numberOfSamplePatches, double sampleVariance,
+PatchBasedDenoisingImageFilter::NoiseModelType noiseModel, double
+noiseSigma, double noiseModelFidelityWeight, bool
+alwaysTreatComponentsAsEuclidean, bool kernelBandwidthEstimation,
+double kernelBandwidthMultiplicationFactor, uint32_t
+kernelBandwidthUpdateFrequency, double
+kernelBandwidthFractionPixelsForEstimation)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::GetAlwaysTreatComponentsAsEuclidean "/**
+bool itk::simple::PatchBasedDenoisingImageFilter::GetAlwaysTreatComponentsAsEuclidean() const
+
+Set/Get flag indicating whether all components should always be
+treated as if they are in euclidean space regardless of pixel type.
+Defaults to false.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::GetKernelBandwidthEstimation "/**
+bool itk::simple::PatchBasedDenoisingImageFilter::GetKernelBandwidthEstimation() const
+
+Set/Get flag indicating whether kernel-bandwidth should be estimated
+automatically from the image data. Defaults to true.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::GetKernelBandwidthFractionPixelsForEstimation "/**
+double itk::simple::PatchBasedDenoisingImageFilter::GetKernelBandwidthFractionPixelsForEstimation() const
+
+Set/Get the fraction of the image to use for kernel bandwidth sigma
+estimation. To reduce the computational burden for computing sigma, a
+small random fraction of the image pixels can be used.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::GetKernelBandwidthMultiplicationFactor "/**
+double itk::simple::PatchBasedDenoisingImageFilter::GetKernelBandwidthMultiplicationFactor() const
+
+Set/Get the kernel bandwidth sigma multiplication factor used to
+modify the automatically-estimated kernel bandwidth sigma. At times,
+it may be desirable to modify the value of the automatically-estimated
+sigma. Typically, this number isn't very far from 1. Note: This is
+used only when KernelBandwidthEstimation is True/On.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::GetKernelBandwidthSigma "/**
+double itk::simple::PatchBasedDenoisingImageFilter::GetKernelBandwidthSigma() const
+
+Set/Get initial kernel bandwidth estimate. To prevent the class from
+automatically modifying this estimate, set KernelBandwidthEstimation
+to false in the base class.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::GetKernelBandwidthUpdateFrequency "/**
+uint32_t itk::simple::PatchBasedDenoisingImageFilter::GetKernelBandwidthUpdateFrequency() const
+
+Set/Get the update frequency for the kernel bandwidth estimation. An
+optimal bandwidth will be re-estimated based on the denoised image
+after every 'n' iterations. Must be a positive integer. Defaults to 3,
+i.e. bandwidth updated after every 3 denoising iteration.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::GetName "/**
+std::string itk::simple::PatchBasedDenoisingImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::GetNoiseModel "/**
+NoiseModelType itk::simple::PatchBasedDenoisingImageFilter::GetNoiseModel() const
+
+Set/Get the noise model type. Defaults to GAUSSIAN. To use the noise
+model during denoising, FidelityWeight must be positive.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::GetNoiseModelFidelityWeight "/**
+double itk::simple::PatchBasedDenoisingImageFilter::GetNoiseModelFidelityWeight() const
+
+Set/Get the weight on the fidelity term (penalizes deviations from the
+noisy data). This option is used when a noise model is specified. This
+weight controls the balance between the smoothing and the closeness to
+the noisy data.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::GetNoiseSigma "/**
+double itk::simple::PatchBasedDenoisingImageFilter::GetNoiseSigma() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::GetNumberOfIterations "/**
+uint32_t itk::simple::PatchBasedDenoisingImageFilter::GetNumberOfIterations() const
+
+Set/Get the number of denoising iterations to perform. Must be a
+positive integer. Defaults to 1.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::GetNumberOfSamplePatches "/**
+uint32_t itk::simple::PatchBasedDenoisingImageFilter::GetNumberOfSamplePatches() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::GetPatchRadius "/**
+uint32_t itk::simple::PatchBasedDenoisingImageFilter::GetPatchRadius() const
+
+Set/Get the patch radius specified in physical coordinates. Patch
+radius is preferably set to an even number. Currently, only isotropic
+patches in physical space are allowed; patches can be anisotropic in
+voxel space.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::GetSampleVariance "/**
+double itk::simple::PatchBasedDenoisingImageFilter::GetSampleVariance() const
+
+Set/Get the variance of the domain where patches are sampled.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::KernelBandwidthEstimationOff "/**
+Self& itk::simple::PatchBasedDenoisingImageFilter::KernelBandwidthEstimationOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::KernelBandwidthEstimationOn "/**
+Self& itk::simple::PatchBasedDenoisingImageFilter::KernelBandwidthEstimationOn()
+
+Set the value of KernelBandwidthEstimation to true or false
+respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::PatchBasedDenoisingImageFilter "/**
+itk::simple::PatchBasedDenoisingImageFilter::PatchBasedDenoisingImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::SetAlwaysTreatComponentsAsEuclidean "/**
+Self& itk::simple::PatchBasedDenoisingImageFilter::SetAlwaysTreatComponentsAsEuclidean(bool AlwaysTreatComponentsAsEuclidean)
+
+Set/Get flag indicating whether all components should always be
+treated as if they are in euclidean space regardless of pixel type.
+Defaults to false.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::SetKernelBandwidthEstimation "/**
+Self& itk::simple::PatchBasedDenoisingImageFilter::SetKernelBandwidthEstimation(bool KernelBandwidthEstimation)
+
+Set/Get flag indicating whether kernel-bandwidth should be estimated
+automatically from the image data. Defaults to true.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::SetKernelBandwidthFractionPixelsForEstimation "/**
+Self& itk::simple::PatchBasedDenoisingImageFilter::SetKernelBandwidthFractionPixelsForEstimation(double KernelBandwidthFractionPixelsForEstimation)
+
+Set/Get the fraction of the image to use for kernel bandwidth sigma
+estimation. To reduce the computational burden for computing sigma, a
+small random fraction of the image pixels can be used.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::SetKernelBandwidthMultiplicationFactor "/**
+Self& itk::simple::PatchBasedDenoisingImageFilter::SetKernelBandwidthMultiplicationFactor(double KernelBandwidthMultiplicationFactor)
+
+Set/Get the kernel bandwidth sigma multiplication factor used to
+modify the automatically-estimated kernel bandwidth sigma. At times,
+it may be desirable to modify the value of the automatically-estimated
+sigma. Typically, this number isn't very far from 1. Note: This is
+used only when KernelBandwidthEstimation is True/On.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::SetKernelBandwidthSigma "/**
+Self& itk::simple::PatchBasedDenoisingImageFilter::SetKernelBandwidthSigma(double KernelBandwidthSigma)
+
+Set/Get initial kernel bandwidth estimate. To prevent the class from
+automatically modifying this estimate, set KernelBandwidthEstimation
+to false in the base class.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::SetKernelBandwidthUpdateFrequency "/**
+Self& itk::simple::PatchBasedDenoisingImageFilter::SetKernelBandwidthUpdateFrequency(uint32_t KernelBandwidthUpdateFrequency)
+
+Set/Get the update frequency for the kernel bandwidth estimation. An
+optimal bandwidth will be re-estimated based on the denoised image
+after every 'n' iterations. Must be a positive integer. Defaults to 3,
+i.e. bandwidth updated after every 3 denoising iteration.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::SetNoiseModel "/**
+Self& itk::simple::PatchBasedDenoisingImageFilter::SetNoiseModel(NoiseModelType NoiseModel)
+
+Set/Get the noise model type. Defaults to GAUSSIAN. To use the noise
+model during denoising, FidelityWeight must be positive.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::SetNoiseModelFidelityWeight "/**
+Self& itk::simple::PatchBasedDenoisingImageFilter::SetNoiseModelFidelityWeight(double NoiseModelFidelityWeight)
+
+Set/Get the weight on the fidelity term (penalizes deviations from the
+noisy data). This option is used when a noise model is specified. This
+weight controls the balance between the smoothing and the closeness to
+the noisy data.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::SetNoiseSigma "/**
+Self& itk::simple::PatchBasedDenoisingImageFilter::SetNoiseSigma(double NoiseSigma)
+
+Set/Get the noise sigma. Used by the noise model where appropriate,
+defaults to 5% of the image intensity range
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::SetNumberOfIterations "/**
+Self& itk::simple::PatchBasedDenoisingImageFilter::SetNumberOfIterations(uint32_t NumberOfIterations)
+
+Set/Get the number of denoising iterations to perform. Must be a
+positive integer. Defaults to 1.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::SetNumberOfSamplePatches "/**
+Self& itk::simple::PatchBasedDenoisingImageFilter::SetNumberOfSamplePatches(uint32_t NumberOfSamplePatches)
+
+Set/Get the number of patches to sample for each pixel.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::SetPatchRadius "/**
+Self& itk::simple::PatchBasedDenoisingImageFilter::SetPatchRadius(uint32_t PatchRadius)
+
+Set/Get the patch radius specified in physical coordinates. Patch
+radius is preferably set to an even number. Currently, only isotropic
+patches in physical space are allowed; patches can be anisotropic in
+voxel space.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::SetSampleVariance "/**
+Self& itk::simple::PatchBasedDenoisingImageFilter::SetSampleVariance(double SampleVariance)
+
+Set/Get the variance of the domain where patches are sampled.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::ToString "/**
+std::string itk::simple::PatchBasedDenoisingImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoisingImageFilter::~PatchBasedDenoisingImageFilter "/**
+itk::simple::PatchBasedDenoisingImageFilter::~PatchBasedDenoisingImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::PermuteAxesImageFilter "/**
+
+Permutes the image axes according to a user specified order.
+
+
+PermuateAxesImageFilter permutes the image axes according to a user
+specified order. The permutation order is set via method SetOrder(
+order ) where the input is an array of ImageDimension number of
+unsigned int. The elements of the array must be a rearrangment of the
+numbers from 0 to ImageDimension - 1.
+
+The i-th axis of the output image corresponds with the order[i]-th
+axis of the input image.
+
+The output meta image information (LargestPossibleRegion, spacing,
+origin) is computed by permuting the corresponding input meta
+information.
+
+Wiki Examples:
+
+All Examples
+
+Switch the axes of an image
+See:
+ itk::simple::PermuteAxes for the procedural interface
+
+ itk::PermuteAxesImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkPermuteAxesImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::PermuteAxesImageFilter::Execute "/**
+Image itk::simple::PermuteAxesImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PermuteAxesImageFilter::Execute "/**
+Image itk::simple::PermuteAxesImageFilter::Execute(const Image &image1, const std::vector< unsigned int > &order)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PermuteAxesImageFilter::GetName "/**
+std::string itk::simple::PermuteAxesImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PermuteAxesImageFilter::GetOrder "/**
+std::vector<unsigned int> itk::simple::PermuteAxesImageFilter::GetOrder() const
+
+Get the permutation order.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PermuteAxesImageFilter::PermuteAxesImageFilter "/**
+itk::simple::PermuteAxesImageFilter::PermuteAxesImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PermuteAxesImageFilter::SetOrder "/**
+Self& itk::simple::PermuteAxesImageFilter::SetOrder(const std::vector< unsigned int > &Order)
+
+Set the permutation order. The elements of order must be a
+rearrangement of the numbers from 0 to ImageDimension - 1.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PermuteAxesImageFilter::ToString "/**
+std::string itk::simple::PermuteAxesImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PermuteAxesImageFilter::~PermuteAxesImageFilter "/**
+itk::simple::PermuteAxesImageFilter::~PermuteAxesImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::PhysicalPointImageSource "/**
+
+Generate an image of the physical locations of each pixel.
+
+
+This image source supports image which have a multi-component pixel
+equal to the image dimension, and variable length VectorImages. It is
+recommended that the component type be a real valued type.
+See:
+ itk::simple::PhysicalPointImageSource for the procedural interface
+
+ itk::PhysicalPointImageSource for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkPhysicalPointImageSource.h
+*/"
+
+%javamethodmodifiers  itk::simple::PhysicalPointImageSource::Execute "/**
+Image itk::simple::PhysicalPointImageSource::Execute()
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PhysicalPointImageSource::Execute "/**
+Image itk::simple::PhysicalPointImageSource::Execute(PixelIDValueEnum outputPixelType, const std::vector< unsigned int >
+&size, const std::vector< double > &origin, const std::vector< double
+> &spacing, std::vector< double > direction)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PhysicalPointImageSource::GetDirection "/**
+std::vector<double> itk::simple::PhysicalPointImageSource::GetDirection() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PhysicalPointImageSource::GetName "/**
+std::string itk::simple::PhysicalPointImageSource::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PhysicalPointImageSource::GetOrigin "/**
+std::vector<double> itk::simple::PhysicalPointImageSource::GetOrigin() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PhysicalPointImageSource::GetOutputPixelType "/**
+PixelIDValueEnum itk::simple::PhysicalPointImageSource::GetOutputPixelType() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PhysicalPointImageSource::GetSize "/**
+std::vector<unsigned int> itk::simple::PhysicalPointImageSource::GetSize() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PhysicalPointImageSource::GetSpacing "/**
+std::vector<double> itk::simple::PhysicalPointImageSource::GetSpacing() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PhysicalPointImageSource::PhysicalPointImageSource "/**
+itk::simple::PhysicalPointImageSource::PhysicalPointImageSource()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PhysicalPointImageSource::SetDirection "/**
+Self& itk::simple::PhysicalPointImageSource::SetDirection(std::vector< double > Direction)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PhysicalPointImageSource::SetOrigin "/**
+Self& itk::simple::PhysicalPointImageSource::SetOrigin(const std::vector< double > &Origin)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PhysicalPointImageSource::SetOutputPixelType "/**
+Self& itk::simple::PhysicalPointImageSource::SetOutputPixelType(PixelIDValueEnum OutputPixelType)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PhysicalPointImageSource::SetReferenceImage "/**
+void itk::simple::PhysicalPointImageSource::SetReferenceImage(const Image &refImage)
+
+This methods sets the size, origin, spacing and direction to that of
+the provided image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PhysicalPointImageSource::SetSize "/**
+Self& itk::simple::PhysicalPointImageSource::SetSize(const std::vector< unsigned int > &Size)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PhysicalPointImageSource::SetSpacing "/**
+Self& itk::simple::PhysicalPointImageSource::SetSpacing(const std::vector< double > &Spacing)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PhysicalPointImageSource::ToString "/**
+std::string itk::simple::PhysicalPointImageSource::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PhysicalPointImageSource::~PhysicalPointImageSource "/**
+itk::simple::PhysicalPointImageSource::~PhysicalPointImageSource()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::PimpleImageBase "/**
+
+Private implementation idiom image base class.
+
+
+We utilize the private implementation ( or PImple) programming idiom
+to modify the behavior of the simple image class based on the
+different image types.
+
+This class is designed to utilize the trivial copy, and assgnement
+operators
+
+C++ includes: sitkPimpleImageBase.h
+*/"
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::DeepCopy "/**
+virtual PimpleImageBase* itk::simple::PimpleImageBase::DeepCopy(void) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetBufferAsDouble "/**
+virtual double* itk::simple::PimpleImageBase::GetBufferAsDouble()=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetBufferAsDouble "/**
+virtual const double* itk::simple::PimpleImageBase::GetBufferAsDouble() const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetBufferAsFloat "/**
+virtual float* itk::simple::PimpleImageBase::GetBufferAsFloat()=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetBufferAsFloat "/**
+virtual const float* itk::simple::PimpleImageBase::GetBufferAsFloat() const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetBufferAsInt16 "/**
+virtual int16_t* itk::simple::PimpleImageBase::GetBufferAsInt16()=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetBufferAsInt16 "/**
+virtual const int16_t* itk::simple::PimpleImageBase::GetBufferAsInt16() const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetBufferAsInt32 "/**
+virtual int32_t* itk::simple::PimpleImageBase::GetBufferAsInt32()=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetBufferAsInt32 "/**
+virtual const int32_t* itk::simple::PimpleImageBase::GetBufferAsInt32() const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetBufferAsInt64 "/**
+virtual int64_t* itk::simple::PimpleImageBase::GetBufferAsInt64()=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetBufferAsInt64 "/**
+virtual const int64_t* itk::simple::PimpleImageBase::GetBufferAsInt64() const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetBufferAsInt8 "/**
+virtual int8_t* itk::simple::PimpleImageBase::GetBufferAsInt8()=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetBufferAsInt8 "/**
+virtual const int8_t* itk::simple::PimpleImageBase::GetBufferAsInt8() const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetBufferAsUInt16 "/**
+virtual uint16_t* itk::simple::PimpleImageBase::GetBufferAsUInt16()=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetBufferAsUInt16 "/**
+virtual const uint16_t* itk::simple::PimpleImageBase::GetBufferAsUInt16() const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetBufferAsUInt32 "/**
+virtual uint32_t* itk::simple::PimpleImageBase::GetBufferAsUInt32()=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetBufferAsUInt32 "/**
+virtual const uint32_t* itk::simple::PimpleImageBase::GetBufferAsUInt32() const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetBufferAsUInt64 "/**
+virtual uint64_t* itk::simple::PimpleImageBase::GetBufferAsUInt64()=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetBufferAsUInt64 "/**
+virtual const uint64_t* itk::simple::PimpleImageBase::GetBufferAsUInt64() const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetBufferAsUInt8 "/**
+virtual uint8_t* itk::simple::PimpleImageBase::GetBufferAsUInt8()=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetBufferAsUInt8 "/**
+virtual const uint8_t* itk::simple::PimpleImageBase::GetBufferAsUInt8() const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetDataBase "/**
+virtual itk::DataObject* itk::simple::PimpleImageBase::GetDataBase(void)=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetDataBase "/**
+virtual const itk::DataObject* itk::simple::PimpleImageBase::GetDataBase(void) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetDepth "/**
+virtual unsigned int itk::simple::PimpleImageBase::GetDepth(void) const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetDimension "/**
+virtual unsigned int itk::simple::PimpleImageBase::GetDimension(void) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetDirection "/**
+virtual std::vector< double > itk::simple::PimpleImageBase::GetDirection(void) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetHeight "/**
+virtual unsigned int itk::simple::PimpleImageBase::GetHeight(void) const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetNumberOfComponentsPerPixel "/**
+virtual unsigned int itk::simple::PimpleImageBase::GetNumberOfComponentsPerPixel(void) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetNumberOfPixels "/**
+virtual uint64_t itk::simple::PimpleImageBase::GetNumberOfPixels(void) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetOrigin "/**
+virtual std::vector<double> itk::simple::PimpleImageBase::GetOrigin(void) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetPixelAsComplexFloat32 "/**
+virtual std::complex<float> itk::simple::PimpleImageBase::GetPixelAsComplexFloat32(const std::vector< uint32_t > &idx) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetPixelAsComplexFloat64 "/**
+virtual std::complex<double> itk::simple::PimpleImageBase::GetPixelAsComplexFloat64(const std::vector< uint32_t > &idx) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetPixelAsDouble "/**
+virtual double itk::simple::PimpleImageBase::GetPixelAsDouble(const std::vector< uint32_t > &idx) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetPixelAsFloat "/**
+virtual float itk::simple::PimpleImageBase::GetPixelAsFloat(const std::vector< uint32_t > &idx) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetPixelAsInt16 "/**
+virtual int16_t itk::simple::PimpleImageBase::GetPixelAsInt16(const std::vector< uint32_t > &idx) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetPixelAsInt32 "/**
+virtual int32_t itk::simple::PimpleImageBase::GetPixelAsInt32(const std::vector< uint32_t > &idx) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetPixelAsInt64 "/**
+virtual int64_t itk::simple::PimpleImageBase::GetPixelAsInt64(const std::vector< uint32_t > &idx) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetPixelAsInt8 "/**
+virtual int8_t itk::simple::PimpleImageBase::GetPixelAsInt8(const std::vector< uint32_t > &idx) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetPixelAsUInt16 "/**
+virtual uint16_t itk::simple::PimpleImageBase::GetPixelAsUInt16(const std::vector< uint32_t > &idx) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetPixelAsUInt32 "/**
+virtual uint32_t itk::simple::PimpleImageBase::GetPixelAsUInt32(const std::vector< uint32_t > &idx) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetPixelAsUInt64 "/**
+virtual uint64_t itk::simple::PimpleImageBase::GetPixelAsUInt64(const std::vector< uint32_t > &idx) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetPixelAsUInt8 "/**
+virtual uint8_t itk::simple::PimpleImageBase::GetPixelAsUInt8(const std::vector< uint32_t > &idx) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetPixelAsVectorFloat32 "/**
+virtual std::vector<float> itk::simple::PimpleImageBase::GetPixelAsVectorFloat32(const std::vector< uint32_t > &idx) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetPixelAsVectorFloat64 "/**
+virtual std::vector<double> itk::simple::PimpleImageBase::GetPixelAsVectorFloat64(const std::vector< uint32_t > &idx) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetPixelAsVectorInt16 "/**
+virtual std::vector<int16_t> itk::simple::PimpleImageBase::GetPixelAsVectorInt16(const std::vector< uint32_t > &idx) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetPixelAsVectorInt32 "/**
+virtual std::vector<int32_t> itk::simple::PimpleImageBase::GetPixelAsVectorInt32(const std::vector< uint32_t > &idx) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetPixelAsVectorInt64 "/**
+virtual std::vector<int64_t> itk::simple::PimpleImageBase::GetPixelAsVectorInt64(const std::vector< uint32_t > &idx) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetPixelAsVectorInt8 "/**
+virtual std::vector<int8_t> itk::simple::PimpleImageBase::GetPixelAsVectorInt8(const std::vector< uint32_t > &idx) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetPixelAsVectorUInt16 "/**
+virtual std::vector<uint16_t> itk::simple::PimpleImageBase::GetPixelAsVectorUInt16(const std::vector< uint32_t > &idx) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetPixelAsVectorUInt32 "/**
+virtual std::vector<uint32_t> itk::simple::PimpleImageBase::GetPixelAsVectorUInt32(const std::vector< uint32_t > &idx) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetPixelAsVectorUInt64 "/**
+virtual std::vector<uint64_t> itk::simple::PimpleImageBase::GetPixelAsVectorUInt64(const std::vector< uint32_t > &idx) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetPixelAsVectorUInt8 "/**
+virtual std::vector<uint8_t> itk::simple::PimpleImageBase::GetPixelAsVectorUInt8(const std::vector< uint32_t > &idx) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetPixelID "/**
+virtual PixelIDValueEnum itk::simple::PimpleImageBase::GetPixelID(void) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetReferenceCountOfImage "/**
+virtual int itk::simple::PimpleImageBase::GetReferenceCountOfImage() const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetSize "/**
+virtual std::vector< unsigned int > itk::simple::PimpleImageBase::GetSize(void) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetSize "/**
+virtual unsigned int itk::simple::PimpleImageBase::GetSize(unsigned int dimension) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetSpacing "/**
+virtual std::vector<double> itk::simple::PimpleImageBase::GetSpacing(void) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::GetWidth "/**
+virtual unsigned int itk::simple::PimpleImageBase::GetWidth(void) const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::SetDirection "/**
+virtual void itk::simple::PimpleImageBase::SetDirection(const std::vector< double > &direction)=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::SetOrigin "/**
+virtual void itk::simple::PimpleImageBase::SetOrigin(const std::vector< double > &orgn)=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::SetPixelAsComplexFloat32 "/**
+virtual void itk::simple::PimpleImageBase::SetPixelAsComplexFloat32(const std::vector< uint32_t > &idx, const std::complex< float > v)=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::SetPixelAsComplexFloat64 "/**
+virtual void itk::simple::PimpleImageBase::SetPixelAsComplexFloat64(const std::vector< uint32_t > &idx, const std::complex< double > v)=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::SetPixelAsDouble "/**
+virtual void itk::simple::PimpleImageBase::SetPixelAsDouble(const std::vector< uint32_t > &idx, double v)=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::SetPixelAsFloat "/**
+virtual void itk::simple::PimpleImageBase::SetPixelAsFloat(const std::vector< uint32_t > &idx, float v)=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::SetPixelAsInt16 "/**
+virtual void itk::simple::PimpleImageBase::SetPixelAsInt16(const std::vector< uint32_t > &idx, int16_t v)=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::SetPixelAsInt32 "/**
+virtual void itk::simple::PimpleImageBase::SetPixelAsInt32(const std::vector< uint32_t > &idx, int32_t v)=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::SetPixelAsInt64 "/**
+virtual void itk::simple::PimpleImageBase::SetPixelAsInt64(const std::vector< uint32_t > &idx, int64_t v)=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::SetPixelAsInt8 "/**
+virtual void itk::simple::PimpleImageBase::SetPixelAsInt8(const std::vector< uint32_t > &idx, int8_t v)=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::SetPixelAsUInt16 "/**
+virtual void itk::simple::PimpleImageBase::SetPixelAsUInt16(const std::vector< uint32_t > &idx, uint16_t v)=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::SetPixelAsUInt32 "/**
+virtual void itk::simple::PimpleImageBase::SetPixelAsUInt32(const std::vector< uint32_t > &idx, uint32_t v)=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::SetPixelAsUInt64 "/**
+virtual void itk::simple::PimpleImageBase::SetPixelAsUInt64(const std::vector< uint32_t > &idx, uint64_t v)=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::SetPixelAsUInt8 "/**
+virtual void itk::simple::PimpleImageBase::SetPixelAsUInt8(const std::vector< uint32_t > &idx, uint8_t v)=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::SetPixelAsVectorFloat32 "/**
+virtual void itk::simple::PimpleImageBase::SetPixelAsVectorFloat32(const std::vector< uint32_t > &idx, const std::vector< float > &v)=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::SetPixelAsVectorFloat64 "/**
+virtual void itk::simple::PimpleImageBase::SetPixelAsVectorFloat64(const std::vector< uint32_t > &idx, const std::vector< double > &v)=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::SetPixelAsVectorInt16 "/**
+virtual void itk::simple::PimpleImageBase::SetPixelAsVectorInt16(const std::vector< uint32_t > &idx, const std::vector< int16_t >
+&v)=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::SetPixelAsVectorInt32 "/**
+virtual void itk::simple::PimpleImageBase::SetPixelAsVectorInt32(const std::vector< uint32_t > &idx, const std::vector< int32_t >
+&v)=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::SetPixelAsVectorInt64 "/**
+virtual void itk::simple::PimpleImageBase::SetPixelAsVectorInt64(const std::vector< uint32_t > &idx, const std::vector< int64_t >
+&v)=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::SetPixelAsVectorInt8 "/**
+virtual void itk::simple::PimpleImageBase::SetPixelAsVectorInt8(const std::vector< uint32_t > &idx, const std::vector< int8_t > &v)=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::SetPixelAsVectorUInt16 "/**
+virtual void itk::simple::PimpleImageBase::SetPixelAsVectorUInt16(const std::vector< uint32_t > &idx, const std::vector< uint16_t >
+&v)=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::SetPixelAsVectorUInt32 "/**
+virtual void itk::simple::PimpleImageBase::SetPixelAsVectorUInt32(const std::vector< uint32_t > &idx, const std::vector< uint32_t >
+&v)=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::SetPixelAsVectorUInt64 "/**
+virtual void itk::simple::PimpleImageBase::SetPixelAsVectorUInt64(const std::vector< uint32_t > &idx, const std::vector< uint64_t >
+&v)=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::SetPixelAsVectorUInt8 "/**
+virtual void itk::simple::PimpleImageBase::SetPixelAsVectorUInt8(const std::vector< uint32_t > &idx, const std::vector< uint8_t >
+&v)=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::SetSpacing "/**
+virtual void itk::simple::PimpleImageBase::SetSpacing(const std::vector< double > &spc)=0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::ShallowCopy "/**
+virtual PimpleImageBase* itk::simple::PimpleImageBase::ShallowCopy(void) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::ToString "/**
+virtual std::string itk::simple::PimpleImageBase::ToString() const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::TransformContinuousIndexToPhysicalPoint "/**
+virtual std::vector<double> itk::simple::PimpleImageBase::TransformContinuousIndexToPhysicalPoint(const std::vector< double > &idx) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::TransformIndexToPhysicalPoint "/**
+virtual std::vector<double> itk::simple::PimpleImageBase::TransformIndexToPhysicalPoint(const std::vector< int64_t > &idx) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::TransformPhysicalPointToContinuousIndex "/**
+virtual std::vector<double> itk::simple::PimpleImageBase::TransformPhysicalPointToContinuousIndex(const std::vector< double > &pt) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::TransformPhysicalPointToIndex "/**
+virtual std::vector<int64_t> itk::simple::PimpleImageBase::TransformPhysicalPointToIndex(const std::vector< double > &pt) const =0
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PimpleImageBase::~PimpleImageBase "/**
+virtual itk::simple::PimpleImageBase::~PimpleImageBase(void)
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::PowImageFilter "/**
+
+Computes the powers of 2 images.
+
+
+This class is templated over the types of the two input images and the
+type of the output image. Numeric conversions (castings) are done by
+the C++ defaults.
+
+The output of the pow function will be cast to the pixel type of the
+output image.
+
+The total operation over one pixel will be
+
+The pow function can be applied to two images with the following:
+
+Additionally, this filter can be used to raise every pixel of an image
+to a power of a constant by using
+See:
+ itk::simple::Pow for the procedural interface
+
+ itk::PowImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkPowImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::PowImageFilter::Execute "/**
+Image itk::simple::PowImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PowImageFilter::Execute "/**
+Image itk::simple::PowImageFilter::Execute(const Image &image1, double constant)
+
+Execute the filter with an image and a constant
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PowImageFilter::Execute "/**
+Image itk::simple::PowImageFilter::Execute(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PowImageFilter::GetName "/**
+std::string itk::simple::PowImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PowImageFilter::PowImageFilter "/**
+itk::simple::PowImageFilter::PowImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PowImageFilter::ToString "/**
+std::string itk::simple::PowImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PowImageFilter::~PowImageFilter "/**
+itk::simple::PowImageFilter::~PowImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ProcessObject "/**
+
+Base class for SimpleITK classes based on ProcessObject.
+
+C++ includes: sitkProcessObject.h
+*/"
+
+%javamethodmodifiers  itk::simple::ProcessObject::Abort "/**
+virtual void itk::simple::ProcessObject::Abort()
+
+Sets an abort flag on the active process.
+
+Requests the current active process to abort. Additional, progress or
+iteration event may occur. If aborted then, an AbortEvent should
+occur. The Progress should be set to 1.0 after aborting.
+
+The expected behavior is that not exception should be throw out of
+this processes Execute method. Additionally, the results returned are
+valid but undefined content. The content may be only partially
+updated, uninitialized or the a of size zero.
+
+If there is no active process the method has no effect.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ProcessObject::AddCommand "/**
+virtual int itk::simple::ProcessObject::AddCommand(itk::simple::EventEnum event, itk::simple::Command &cmd)
+
+Add a Command Object to observer the event.
+
+
+The Command object's Execute method will be invoked when the internal ITK Object has the event. These events only occur during this ProcessObject's Execute method when the ITK filter is running. The command occurs
+in the same thread as this objects Execute methods was called in.
+
+An internal reference is made between the Command and this ProcessObject which enable automatic removal of the command when deleted. This
+enables both object to exist as stack based object and be
+automatically cleaned up.
+
+Unless specified otherwise, it's safe to get any value during
+execution. \"Measurements\" will have valid values only after the
+Execute method has returned. \"Active Measurements\" will have valid
+values during events, and access the underlying ITK object.
+
+Deleting a command this object has during a command call-back will
+produce undefined behavior.
+
+For more information see the page Commands and Events for SimpleITK.
+
+
+The return value is reserved for latter usage.
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ProcessObject::GetName "/**
+virtual std::string itk::simple::ProcessObject::GetName() const =0
+
+return user readable name for the filter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ProcessObject::GetProgress "/**
+virtual float itk::simple::ProcessObject::GetProgress() const
+
+An Active Measurement of the progress of execution.
+
+
+Get the execution progress of the current process object. The progress
+is a floating number in [0,1] with 0 meaning no progress and 1 meaning
+the filter has completed execution (or aborted).
+
+This is an Active Measurement so it can be accessed during Events
+during the execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ProcessObject::HasCommand "/**
+virtual bool itk::simple::ProcessObject::HasCommand(itk::simple::EventEnum event) const
+
+Query of this object has any registered commands for event.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ProcessObject::ProcessObject "/**
+itk::simple::ProcessObject::ProcessObject()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ProcessObject::RemoveAllCommands "/**
+virtual void itk::simple::ProcessObject::RemoveAllCommands()
+
+Remove all registered commands.
+
+
+Calling when this object is invoking anther command will produce
+undefined behavior.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ProcessObject::ToString "/**
+virtual std::string itk::simple::ProcessObject::ToString() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ProcessObject::~ProcessObject "/**
+virtual itk::simple::ProcessObject::~ProcessObject()
+
+Default Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ProjectedLandweberDeconvolutionImageFilter "/**
+
+Deconvolve an image using the projected Landweber deconvolution
+algorithm.
+
+
+This filter performs the same calculation per iteration as the LandweberDeconvolutionImageFilter . However, at each iteration, negative pixels in the intermediate
+result are projected (set) to zero. This is useful if the solution is
+assumed to always be non-negative, which is the case when dealing with
+images formed by counting photons, for example.
+
+This code was adapted from the Insight Journal contribution:
+
+\"Deconvolution: infrastructure and reference algorithms\" by Gaetan
+Lehmann https://hdl.handle.net/10380/3207
+
+
+Gaetan Lehmann, Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France
+ Cory Quammen, The University of North Carolina at Chapel Hill
+
+
+See:
+ IterativeDeconvolutionImageFilter
+
+ RichardsonLucyDeconvolutionImageFilter
+
+ LandweberDeconvolutionImageFilter
+
+ itk::simple::ProjectedLandweberDeconvolution for the procedural interface
+
+ itk::ProjectedLandweberDeconvolutionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkProjectedLandweberDeconvolutionImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ProjectedLandweberDeconvolutionImageFilter::Execute "/**
+Image itk::simple::ProjectedLandweberDeconvolutionImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ProjectedLandweberDeconvolutionImageFilter::Execute "/**
+Image itk::simple::ProjectedLandweberDeconvolutionImageFilter::Execute(const Image &image1, const Image &image2, double alpha, int
+numberOfIterations, bool normalize,
+ProjectedLandweberDeconvolutionImageFilter::BoundaryConditionType
+boundaryCondition,
+ProjectedLandweberDeconvolutionImageFilter::OutputRegionModeType
+outputRegionMode)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ProjectedLandweberDeconvolutionImageFilter::GetAlpha "/**
+double itk::simple::ProjectedLandweberDeconvolutionImageFilter::GetAlpha() const
+
+Get the relaxation factor.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ProjectedLandweberDeconvolutionImageFilter::GetBoundaryCondition "/**
+BoundaryConditionType itk::simple::ProjectedLandweberDeconvolutionImageFilter::GetBoundaryCondition() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ProjectedLandweberDeconvolutionImageFilter::GetName "/**
+std::string itk::simple::ProjectedLandweberDeconvolutionImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ProjectedLandweberDeconvolutionImageFilter::GetNormalize "/**
+bool itk::simple::ProjectedLandweberDeconvolutionImageFilter::GetNormalize() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ProjectedLandweberDeconvolutionImageFilter::GetNumberOfIterations "/**
+int itk::simple::ProjectedLandweberDeconvolutionImageFilter::GetNumberOfIterations() const
+
+Get the number of iterations.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ProjectedLandweberDeconvolutionImageFilter::GetOutputRegionMode "/**
+OutputRegionModeType itk::simple::ProjectedLandweberDeconvolutionImageFilter::GetOutputRegionMode() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ProjectedLandweberDeconvolutionImageFilter::NormalizeOff "/**
+Self& itk::simple::ProjectedLandweberDeconvolutionImageFilter::NormalizeOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ProjectedLandweberDeconvolutionImageFilter::NormalizeOn "/**
+Self& itk::simple::ProjectedLandweberDeconvolutionImageFilter::NormalizeOn()
+
+Set the value of Normalize to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ProjectedLandweberDeconvolutionImageFilter::ProjectedLandweberDeconvolutionImageFilter "/**
+itk::simple::ProjectedLandweberDeconvolutionImageFilter::ProjectedLandweberDeconvolutionImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ProjectedLandweberDeconvolutionImageFilter::SetAlpha "/**
+Self& itk::simple::ProjectedLandweberDeconvolutionImageFilter::SetAlpha(double Alpha)
+
+Set the relaxation factor.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ProjectedLandweberDeconvolutionImageFilter::SetBoundaryCondition "/**
+Self& itk::simple::ProjectedLandweberDeconvolutionImageFilter::SetBoundaryCondition(BoundaryConditionType BoundaryCondition)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ProjectedLandweberDeconvolutionImageFilter::SetNormalize "/**
+Self& itk::simple::ProjectedLandweberDeconvolutionImageFilter::SetNormalize(bool Normalize)
+
+Normalize the output image by the sum of the kernel components
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ProjectedLandweberDeconvolutionImageFilter::SetNumberOfIterations "/**
+Self& itk::simple::ProjectedLandweberDeconvolutionImageFilter::SetNumberOfIterations(int NumberOfIterations)
+
+Set the number of iterations.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ProjectedLandweberDeconvolutionImageFilter::SetOutputRegionMode "/**
+Self& itk::simple::ProjectedLandweberDeconvolutionImageFilter::SetOutputRegionMode(OutputRegionModeType OutputRegionMode)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ProjectedLandweberDeconvolutionImageFilter::ToString "/**
+std::string itk::simple::ProjectedLandweberDeconvolutionImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ProjectedLandweberDeconvolutionImageFilter::~ProjectedLandweberDeconvolutionImageFilter "/**
+itk::simple::ProjectedLandweberDeconvolutionImageFilter::~ProjectedLandweberDeconvolutionImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::RankImageFilter "/**
+
+Rank filter of a greyscale image.
+
+
+Nonlinear filter in which each output pixel is a user defined rank of
+input pixels in a user defined neighborhood. The default rank is 0.5
+(median). The boundary conditions are different to the standard
+itkMedianImageFilter. In this filter the neighborhood is cropped at
+the boundary, and is therefore smaller.
+
+This filter uses a recursive implementation - essentially the one by
+Huang 1979, I believe, to compute the rank, and is therefore usually a
+lot faster than the direct implementation. The extensions to Huang are
+support for arbitrary pixel types (using c++ maps) and arbitrary
+neighborhoods. I presume that these are not new ideas.
+
+This filter is based on the sliding window code from the
+consolidatedMorphology package on InsightJournal.
+
+The structuring element is assumed to be composed of binary values
+(zero or one). Only elements of the structuring element having values
+> 0 are candidates for affecting the center pixel.
+
+This code was contributed in the Insight Journal paper: \"Efficient
+implementation of kernel filtering\" by Beare R., Lehmann G https://hdl.handle.net/1926/555 http://www.insight-journal.org/browse/publication/160
+
+
+Richard Beare
+
+See:
+ itk::simple::Rank for the procedural interface
+
+ itk::RankImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkRankImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::RankImageFilter::Execute "/**
+Image itk::simple::RankImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RankImageFilter::Execute "/**
+Image itk::simple::RankImageFilter::Execute(const Image &image1, double rank, const std::vector< unsigned int >
+&radius)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RankImageFilter::GetName "/**
+std::string itk::simple::RankImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RankImageFilter::GetRadius "/**
+std::vector<unsigned int> itk::simple::RankImageFilter::GetRadius() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RankImageFilter::GetRank "/**
+double itk::simple::RankImageFilter::GetRank() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RankImageFilter::RankImageFilter "/**
+itk::simple::RankImageFilter::RankImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RankImageFilter::SetRadius "/**
+Self& itk::simple::RankImageFilter::SetRadius(const std::vector< unsigned int > &Radius)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RankImageFilter::SetRadius "/**
+Self& itk::simple::RankImageFilter::SetRadius(unsigned int value)
+
+Set the values of the Radius vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RankImageFilter::SetRank "/**
+Self& itk::simple::RankImageFilter::SetRank(double Rank)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RankImageFilter::ToString "/**
+std::string itk::simple::RankImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RankImageFilter::~RankImageFilter "/**
+itk::simple::RankImageFilter::~RankImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::RealAndImaginaryToComplexImageFilter "/**
+
+ComposeImageFilter combine several scalar images into a multicomponent image.
+
+
+ComposeImageFilter combine several scalar images into an itk::Image of vector pixel ( itk::Vector , itk::RGBPixel , ...), of std::complex pixel, or in an itk::VectorImage .
+
+Inputs and Usage
+ All input images are expected to have the same template parameters
+and have the same size and origin.
+
+See:
+ VectorImage
+
+ VectorIndexSelectionCastImageFilter
+Wiki Examples:
+
+All Examples
+
+Create a vector image from a collection of scalar images
+
+Compose a vector image (with 3 components) from three scalar images
+
+Convert a real image and an imaginary image to a complex image
+See:
+ itk::simple::RealAndImaginaryToComplex for the procedural interface
+
+ itk::ComposeImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkRealAndImaginaryToComplexImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::RealAndImaginaryToComplexImageFilter::Execute "/**
+Image itk::simple::RealAndImaginaryToComplexImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RealAndImaginaryToComplexImageFilter::GetName "/**
+std::string itk::simple::RealAndImaginaryToComplexImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RealAndImaginaryToComplexImageFilter::RealAndImaginaryToComplexImageFilter "/**
+itk::simple::RealAndImaginaryToComplexImageFilter::RealAndImaginaryToComplexImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RealAndImaginaryToComplexImageFilter::ToString "/**
+std::string itk::simple::RealAndImaginaryToComplexImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RealAndImaginaryToComplexImageFilter::~RealAndImaginaryToComplexImageFilter "/**
+itk::simple::RealAndImaginaryToComplexImageFilter::~RealAndImaginaryToComplexImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::RealToHalfHermitianForwardFFTImageFilter "/**
+
+Base class for specialized real-to-complex forward Fast Fourier Transform .
+
+
+This is a base class for the \"forward\" or \"direct\" discrete
+Fourier Transform . This is an abstract base class: the actual implementation is
+provided by the best child class available on the system when the
+object is created via the object factory system.
+
+This class transforms a real input image into its complex Fourier
+transform. The Fourier transform of a real input image has Hermitian
+symmetry: $ f(\\\\mathbf{x}) = f^*(-\\\\mathbf{x}) $ . That is, when the result of the transform is split in half along
+the X-dimension, the values in the second half of the transform are
+the complex conjugates of values in the first half reflected about the
+center of the image in each dimension. This filter takes advantage of
+the Hermitian symmetry property and reduces the size of the output in
+the first dimension to N/2+1, where N is the size of the input image
+in that dimension and the division by 2 is rounded down.
+
+
+See:
+ HalfHermitianToRealInverseFFTImageFilter
+
+ ForwardFFTImageFilter
+
+ itk::simple::RealToHalfHermitianForwardFFT for the procedural interface
+
+ itk::RealToHalfHermitianForwardFFTImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkRealToHalfHermitianForwardFFTImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::RealToHalfHermitianForwardFFTImageFilter::Execute "/**
+Image itk::simple::RealToHalfHermitianForwardFFTImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RealToHalfHermitianForwardFFTImageFilter::GetName "/**
+std::string itk::simple::RealToHalfHermitianForwardFFTImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RealToHalfHermitianForwardFFTImageFilter::RealToHalfHermitianForwardFFTImageFilter "/**
+itk::simple::RealToHalfHermitianForwardFFTImageFilter::RealToHalfHermitianForwardFFTImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RealToHalfHermitianForwardFFTImageFilter::ToString "/**
+std::string itk::simple::RealToHalfHermitianForwardFFTImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RealToHalfHermitianForwardFFTImageFilter::~RealToHalfHermitianForwardFFTImageFilter "/**
+itk::simple::RealToHalfHermitianForwardFFTImageFilter::~RealToHalfHermitianForwardFFTImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ReconstructionByDilationImageFilter "/**
+
+grayscale reconstruction by dilation of an image
+
+
+Reconstruction by dilation operates on a \"marker\" image and a
+\"mask\" image, and is defined as the dilation of the marker image
+with respect to the mask image iterated until stability.
+
+The marker image must be less than or equal to the mask image (on a
+pixel by pixel basis).
+
+Geodesic morphology is described in Chapter 6.2 of Pierre Soille's
+book \"Morphological Image Analysis: Principles and Applications\",
+Second Edition, Springer, 2003.
+
+Algorithm implemented in this filter is based on algorithm described
+by Kevin Robinson and Paul F. Whelan in \"Efficient Morphological
+Reconstruction: A Downhill Filter\", Pattern Recognition Letters,
+Volume 25, Issue 15, November 2004, Pages 1759-1767.
+
+The algorithm, a description of the transform and some applications
+can be found in \"Morphological Grayscale Reconstruction in Image
+Analysis:  Applications and Efficient Algorithms\", Luc Vincent, IEEE
+Transactions on image processing, Vol. 2, April 1993.
+
+
+Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+
+See:
+ MorphologyImageFilter , GrayscaleDilateImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter , ReconstructionByErosionImageFilter , OpeningByReconstructionImageFilter , ClosingByReconstructionImageFilter , ReconstructionImageFilter
+
+ itk::simple::ReconstructionByDilation for the procedural interface
+
+ itk::ReconstructionByDilationImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkReconstructionByDilationImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ReconstructionByDilationImageFilter::Execute "/**
+Image itk::simple::ReconstructionByDilationImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReconstructionByDilationImageFilter::Execute "/**
+Image itk::simple::ReconstructionByDilationImageFilter::Execute(const Image &image1, const Image &image2, bool fullyConnected, bool
+useInternalCopy)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReconstructionByDilationImageFilter::FullyConnectedOff "/**
+Self& itk::simple::ReconstructionByDilationImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReconstructionByDilationImageFilter::FullyConnectedOn "/**
+Self& itk::simple::ReconstructionByDilationImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReconstructionByDilationImageFilter::GetFullyConnected "/**
+bool itk::simple::ReconstructionByDilationImageFilter::GetFullyConnected() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReconstructionByDilationImageFilter::GetName "/**
+std::string itk::simple::ReconstructionByDilationImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReconstructionByDilationImageFilter::GetUseInternalCopy "/**
+bool itk::simple::ReconstructionByDilationImageFilter::GetUseInternalCopy() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReconstructionByDilationImageFilter::ReconstructionByDilationImageFilter "/**
+itk::simple::ReconstructionByDilationImageFilter::ReconstructionByDilationImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReconstructionByDilationImageFilter::SetFullyConnected "/**
+Self& itk::simple::ReconstructionByDilationImageFilter::SetFullyConnected(bool FullyConnected)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReconstructionByDilationImageFilter::SetUseInternalCopy "/**
+Self& itk::simple::ReconstructionByDilationImageFilter::SetUseInternalCopy(bool UseInternalCopy)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReconstructionByDilationImageFilter::ToString "/**
+std::string itk::simple::ReconstructionByDilationImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReconstructionByDilationImageFilter::UseInternalCopyOff "/**
+Self& itk::simple::ReconstructionByDilationImageFilter::UseInternalCopyOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReconstructionByDilationImageFilter::UseInternalCopyOn "/**
+Self& itk::simple::ReconstructionByDilationImageFilter::UseInternalCopyOn()
+
+Set the value of UseInternalCopy to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReconstructionByDilationImageFilter::~ReconstructionByDilationImageFilter "/**
+itk::simple::ReconstructionByDilationImageFilter::~ReconstructionByDilationImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ReconstructionByErosionImageFilter "/**
+
+grayscale reconstruction by erosion of an image
+
+
+Reconstruction by erosion operates on a \"marker\" image and a
+\"mask\" image, and is defined as the erosion of the marker image with
+respect to the mask image iterated until stability.
+
+The marker image must be less than or equal to the mask image (on a
+pixel by pixel basis).
+
+Geodesic morphology is described in Chapter 6.2 of Pierre Soille's
+book \"Morphological Image Analysis: Principles and Applications\",
+Second Edition, Springer, 2003.
+
+Algorithm implemented in this filter is based on algorithm described
+by Kevin Robinson and Paul F. Whelan in \"Efficient Morphological
+Reconstruction: A Downhill Filter\", Pattern Recognition Letters,
+Volume 25, Issue 15, November 2004, Pages 1759-1767.
+
+The algorithm, a description of the transform and some applications
+can be found in \"Morphological Grayscale Reconstruction in Image
+Analysis:  Applications and Efficient Algorithms\", Luc Vincent, IEEE
+Transactions on image processing, Vol. 2, April 1993.
+
+
+Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+
+See:
+ MorphologyImageFilter , GrayscaleDilateImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter , ReconstructionByErosionImageFilter , OpeningByReconstructionImageFilter , ClosingByReconstructionImageFilter , ReconstructionImageFilter
+
+ itk::simple::ReconstructionByErosion for the procedural interface
+
+ itk::ReconstructionByErosionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkReconstructionByErosionImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ReconstructionByErosionImageFilter::Execute "/**
+Image itk::simple::ReconstructionByErosionImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReconstructionByErosionImageFilter::Execute "/**
+Image itk::simple::ReconstructionByErosionImageFilter::Execute(const Image &image1, const Image &image2, bool fullyConnected, bool
+useInternalCopy)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReconstructionByErosionImageFilter::FullyConnectedOff "/**
+Self& itk::simple::ReconstructionByErosionImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReconstructionByErosionImageFilter::FullyConnectedOn "/**
+Self& itk::simple::ReconstructionByErosionImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReconstructionByErosionImageFilter::GetFullyConnected "/**
+bool itk::simple::ReconstructionByErosionImageFilter::GetFullyConnected() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReconstructionByErosionImageFilter::GetName "/**
+std::string itk::simple::ReconstructionByErosionImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReconstructionByErosionImageFilter::GetUseInternalCopy "/**
+bool itk::simple::ReconstructionByErosionImageFilter::GetUseInternalCopy() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReconstructionByErosionImageFilter::ReconstructionByErosionImageFilter "/**
+itk::simple::ReconstructionByErosionImageFilter::ReconstructionByErosionImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReconstructionByErosionImageFilter::SetFullyConnected "/**
+Self& itk::simple::ReconstructionByErosionImageFilter::SetFullyConnected(bool FullyConnected)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReconstructionByErosionImageFilter::SetUseInternalCopy "/**
+Self& itk::simple::ReconstructionByErosionImageFilter::SetUseInternalCopy(bool UseInternalCopy)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReconstructionByErosionImageFilter::ToString "/**
+std::string itk::simple::ReconstructionByErosionImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReconstructionByErosionImageFilter::UseInternalCopyOff "/**
+Self& itk::simple::ReconstructionByErosionImageFilter::UseInternalCopyOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReconstructionByErosionImageFilter::UseInternalCopyOn "/**
+Self& itk::simple::ReconstructionByErosionImageFilter::UseInternalCopyOn()
+
+Set the value of UseInternalCopy to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReconstructionByErosionImageFilter::~ReconstructionByErosionImageFilter "/**
+itk::simple::ReconstructionByErosionImageFilter::~ReconstructionByErosionImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::RecursiveGaussianImageFilter "/**
+
+Base class for computing IIR convolution with an approximation of a
+Gaussian kernel.
+
+
+\\\\[ \\\\frac{ 1 }{ \\\\sigma \\\\sqrt{ 2 \\\\pi } } \\\\exp{
+\\\\left( - \\\\frac{x^2}{ 2 \\\\sigma^2 } \\\\right) } \\\\]
+
+RecursiveGaussianImageFilter is the base class for recursive filters that approximate convolution
+with the Gaussian kernel. This class implements the recursive
+filtering method proposed by R.Deriche in IEEE-PAMI Vol.12, No.1,
+January 1990, pp 78-87, \"Fast Algorithms for Low-Level Vision\"
+
+Details of the implementation are described in the technical report: R.
+Deriche, \"Recursively Implementing The Gaussian and Its
+Derivatives\", INRIA, 1993, ftp://ftp.inria.fr/INRIA/tech-reports/RR/RR-1893.ps.gz
+
+Further improvements of the algorithm are described in: G. Farneback &
+C.-F. Westin, \"On Implementation of Recursive Gaussian Filters\", so
+far unpublished.
+
+As compared to itk::DiscreteGaussianImageFilter , this filter tends to be faster for large kernels, and it can take
+the derivative of the blurred image in one step. Also, note that we
+have itk::RecursiveGaussianImageFilter::SetSigma() , but itk::DiscreteGaussianImageFilter::SetVariance() .
+
+
+See:
+ DiscreteGaussianImageFilter
+Wiki Examples:
+
+All Examples
+
+Find higher derivatives of an image
+See:
+ itk::simple::RecursiveGaussian for the procedural interface
+
+ itk::RecursiveGaussianImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkRecursiveGaussianImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::RecursiveGaussianImageFilter::Execute "/**
+Image itk::simple::RecursiveGaussianImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RecursiveGaussianImageFilter::Execute "/**
+Image itk::simple::RecursiveGaussianImageFilter::Execute(const Image &image1, double sigma, bool normalizeAcrossScale,
+RecursiveGaussianImageFilter::OrderType order, unsigned int direction)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RecursiveGaussianImageFilter::GetDirection "/**
+unsigned int itk::simple::RecursiveGaussianImageFilter::GetDirection() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RecursiveGaussianImageFilter::GetName "/**
+std::string itk::simple::RecursiveGaussianImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RecursiveGaussianImageFilter::GetNormalizeAcrossScale "/**
+bool itk::simple::RecursiveGaussianImageFilter::GetNormalizeAcrossScale() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RecursiveGaussianImageFilter::GetOrder "/**
+OrderType itk::simple::RecursiveGaussianImageFilter::GetOrder() const
+
+     Set/Get the Order of the Gaussian to convolve with.
+
+
+ZeroOrder is equivalent to convolving with a Gaussian. This is the
+default.
+
+FirstOrder is equivalent to convolving with the first derivative of a
+Gaussian.
+
+SecondOrder is equivalent to convolving with the second derivative of
+a Gaussian.
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RecursiveGaussianImageFilter::GetSigma "/**
+double itk::simple::RecursiveGaussianImageFilter::GetSigma() const
+
+Set/Get the Sigma, measured in world coordinates, of the Gaussian
+kernel. The default is 1.0. An exception will be generated if the
+Sigma value is less than or equal to zero.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RecursiveGaussianImageFilter::NormalizeAcrossScaleOff "/**
+Self& itk::simple::RecursiveGaussianImageFilter::NormalizeAcrossScaleOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RecursiveGaussianImageFilter::NormalizeAcrossScaleOn "/**
+Self& itk::simple::RecursiveGaussianImageFilter::NormalizeAcrossScaleOn()
+
+Set the value of NormalizeAcrossScale to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RecursiveGaussianImageFilter::RecursiveGaussianImageFilter "/**
+itk::simple::RecursiveGaussianImageFilter::RecursiveGaussianImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RecursiveGaussianImageFilter::SetDirection "/**
+Self& itk::simple::RecursiveGaussianImageFilter::SetDirection(unsigned int Direction)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RecursiveGaussianImageFilter::SetNormalizeAcrossScale "/**
+Self& itk::simple::RecursiveGaussianImageFilter::SetNormalizeAcrossScale(bool NormalizeAcrossScale)
+
+     Set/Get the flag for normalizing the gaussian over scale-space.
+
+This flag enables the analysis of the differential shape of features
+independent of their size ( both pixels and physical size ). Following
+the notation of Tony Lindeberg:
+
+Let \\\\[ L(x; t) = g(x; t) \\\\ast f(x) \\\\] be the scale-space representation of image \\\\[ f(x) \\\\] where \\\\[ g(x; t) = \\\\frac{1}{ \\\\sqrt{ 2 \\\\pi t} } \\\\exp{
+\\\\left( -\\\\frac{x^2}{ 2 t } \\\\right) } \\\\] is the Gaussian function and \\\\[\\\\ast\\\\] denotes convolution. This is a change from above with \\\\[ t = \\\\sigma^2 \\\\] .
+
+Then the normalized derivative operator for normalized coordinates
+across scale is:
+
+\\\\[ \\\\partial_\\\\xi = \\\\sqrt{t} \\\\partial_x \\\\]
+
+The resulting scaling factor is \\\\[ \\\\sigma^N \\\\] where N is the order of the derivative.
+
+When this flag is ON the filter will be normalized in such a way that
+the values of derivatives are not biased by the size of the object.
+That is to say the maximum value a feature reaches across scale is
+independent of the scale of the object.
+
+For analyzing an image across scale-space you want to enable this
+flag. It is disabled by default.
+
+
+Not all scale space axioms are satisfied by this filter, some are only
+approximated. Particularly, at fine scales ( say less than 1 pixel )
+other methods such as a discrete Gaussian kernel should be considered.
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RecursiveGaussianImageFilter::SetOrder "/**
+Self& itk::simple::RecursiveGaussianImageFilter::SetOrder(OrderType Order)
+
+     Set/Get the Order of the Gaussian to convolve with.
+
+
+ZeroOrder is equivalent to convolving with a Gaussian. This is the
+default.
+
+FirstOrder is equivalent to convolving with the first derivative of a
+Gaussian.
+
+SecondOrder is equivalent to convolving with the second derivative of
+a Gaussian.
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RecursiveGaussianImageFilter::SetSigma "/**
+Self& itk::simple::RecursiveGaussianImageFilter::SetSigma(double Sigma)
+
+Set/Get the Sigma, measured in world coordinates, of the Gaussian
+kernel. The default is 1.0. An exception will be generated if the
+Sigma value is less than or equal to zero.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RecursiveGaussianImageFilter::ToString "/**
+std::string itk::simple::RecursiveGaussianImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RecursiveGaussianImageFilter::~RecursiveGaussianImageFilter "/**
+itk::simple::RecursiveGaussianImageFilter::~RecursiveGaussianImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::RegionOfInterestImageFilter "/**
+
+Extract a region of interest from the input image.
+
+
+Extract a region of interest from the input image or convert between itk::Image and RLEImage (a custom region can be used).
+
+This filter produces an output image of the same dimension as the
+input image. The user specifies the region of the input image that
+will be contained in the output image. The origin coordinates of the
+output images will be computed in such a way that if mapped to
+physical space, the output image will overlay the input image with
+perfect registration. In other words, a registration process between
+the output image and the input image will return an identity
+transform.
+
+If you are interested in changing the dimension of the image, you may
+want to consider the ExtractImageFilter . For example for extracting a 2D image from a slice of a 3D image.
+
+The region to extract is set using the method SetRegionOfInterest.
+
+
+See:
+ ExtractImageFilter
+Wiki Examples:
+
+All Examples
+
+Extract a portion of an image (region of interest)
+ This filter produces an output image of the same dimension as the
+input image. The user specifies the region of the input image that
+will be contained in the output image. The origin coordinates of the
+output images will be computed in such a way that if mapped to
+physical space, the output image will overlay the input image with
+perfect registration. In other words, a registration process between
+the output image and the input image will return an identity
+transform.
+
+The region to extract is set using the method SetRegionOfInterest.
+
+Specialized for RLEImage .
+See:
+ itk::simple::RegionOfInterest for the procedural interface
+
+ itk::RegionOfInterestImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkRegionOfInterestImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::RegionOfInterestImageFilter::Execute "/**
+Image itk::simple::RegionOfInterestImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionOfInterestImageFilter::Execute "/**
+Image itk::simple::RegionOfInterestImageFilter::Execute(const Image &image1, const std::vector< unsigned int > &size, const
+std::vector< int > &index)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionOfInterestImageFilter::GetIndex "/**
+std::vector<int> itk::simple::RegionOfInterestImageFilter::GetIndex() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionOfInterestImageFilter::GetName "/**
+std::string itk::simple::RegionOfInterestImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionOfInterestImageFilter::GetSize "/**
+std::vector<unsigned int> itk::simple::RegionOfInterestImageFilter::GetSize() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionOfInterestImageFilter::RegionOfInterestImageFilter "/**
+itk::simple::RegionOfInterestImageFilter::RegionOfInterestImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionOfInterestImageFilter::SetIndex "/**
+Self& itk::simple::RegionOfInterestImageFilter::SetIndex(const std::vector< int > &Index)
+
+odo the internal setting of the method need work!!!
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionOfInterestImageFilter::SetSize "/**
+Self& itk::simple::RegionOfInterestImageFilter::SetSize(const std::vector< unsigned int > &Size)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionOfInterestImageFilter::ToString "/**
+std::string itk::simple::RegionOfInterestImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionOfInterestImageFilter::~RegionOfInterestImageFilter "/**
+itk::simple::RegionOfInterestImageFilter::~RegionOfInterestImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::RegionalMaximaImageFilter "/**
+
+Produce a binary image where foreground is the regional maxima of the
+input image.
+
+
+Regional maxima are flat zones surrounded by pixels of lower value.
+
+If the input image is constant, the entire image can be considered as
+a maxima or not. The desired behavior can be selected with the SetFlatIsMaxima() method.
+
+
+Gaetan Lehmann
+ This class was contributed to the Insight Journal by author Gaetan
+Lehmann. Biologie du Developpement et de la Reproduction, INRA de
+Jouy-en-Josas, France. The paper can be found at https://hdl.handle.net/1926/153
+
+
+See:
+ ValuedRegionalMaximaImageFilter
+
+ HConvexImageFilter
+
+ RegionalMinimaImageFilter
+Wiki Examples:
+
+All Examples
+
+RegionalMaximaImageFilter
+See:
+ itk::simple::RegionalMaxima for the procedural interface
+
+ itk::RegionalMaximaImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkRegionalMaximaImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::RegionalMaximaImageFilter::Execute "/**
+Image itk::simple::RegionalMaximaImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMaximaImageFilter::Execute "/**
+Image itk::simple::RegionalMaximaImageFilter::Execute(const Image &image1, double backgroundValue, double foregroundValue,
+bool fullyConnected, bool flatIsMaxima)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMaximaImageFilter::FlatIsMaximaOff "/**
+Self& itk::simple::RegionalMaximaImageFilter::FlatIsMaximaOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMaximaImageFilter::FlatIsMaximaOn "/**
+Self& itk::simple::RegionalMaximaImageFilter::FlatIsMaximaOn()
+
+Set the value of FlatIsMaxima to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMaximaImageFilter::FullyConnectedOff "/**
+Self& itk::simple::RegionalMaximaImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMaximaImageFilter::FullyConnectedOn "/**
+Self& itk::simple::RegionalMaximaImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMaximaImageFilter::GetBackgroundValue "/**
+double itk::simple::RegionalMaximaImageFilter::GetBackgroundValue() const
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMaximaImageFilter::GetFlatIsMaxima "/**
+bool itk::simple::RegionalMaximaImageFilter::GetFlatIsMaxima() const
+
+Set/Get wether a flat image must be considered as a maxima or not.
+Defaults to true.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMaximaImageFilter::GetForegroundValue "/**
+double itk::simple::RegionalMaximaImageFilter::GetForegroundValue() const
+
+Set/Get the value in the output image to consider as \"foreground\".
+Defaults to maximum value of PixelType.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMaximaImageFilter::GetFullyConnected "/**
+bool itk::simple::RegionalMaximaImageFilter::GetFullyConnected() const
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMaximaImageFilter::GetName "/**
+std::string itk::simple::RegionalMaximaImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMaximaImageFilter::RegionalMaximaImageFilter "/**
+itk::simple::RegionalMaximaImageFilter::RegionalMaximaImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMaximaImageFilter::SetBackgroundValue "/**
+Self& itk::simple::RegionalMaximaImageFilter::SetBackgroundValue(double BackgroundValue)
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMaximaImageFilter::SetFlatIsMaxima "/**
+Self& itk::simple::RegionalMaximaImageFilter::SetFlatIsMaxima(bool FlatIsMaxima)
+
+Set/Get wether a flat image must be considered as a maxima or not.
+Defaults to true.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMaximaImageFilter::SetForegroundValue "/**
+Self& itk::simple::RegionalMaximaImageFilter::SetForegroundValue(double ForegroundValue)
+
+Set/Get the value in the output image to consider as \"foreground\".
+Defaults to maximum value of PixelType.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMaximaImageFilter::SetFullyConnected "/**
+Self& itk::simple::RegionalMaximaImageFilter::SetFullyConnected(bool FullyConnected)
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMaximaImageFilter::ToString "/**
+std::string itk::simple::RegionalMaximaImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMaximaImageFilter::~RegionalMaximaImageFilter "/**
+itk::simple::RegionalMaximaImageFilter::~RegionalMaximaImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::RegionalMinimaImageFilter "/**
+
+Produce a binary image where foreground is the regional minima of the
+input image.
+
+
+Regional minima are flat zones surrounded by pixels of greater value.
+
+If the input image is constant, the entire image can be considered as
+a minima or not. The SetFlatIsMinima() method let the user choose which behavior to use.
+
+This class was contribtued to the Insight Journal by
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France. https://hdl.handle.net/1926/153
+
+See:
+ RegionalMaximaImageFilter
+
+ ValuedRegionalMinimaImageFilter
+
+ HConcaveImageFilter
+Wiki Examples:
+
+All Examples
+
+RegionalMinimaImageFilter
+See:
+ itk::simple::RegionalMinima for the procedural interface
+
+ itk::RegionalMinimaImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkRegionalMinimaImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::RegionalMinimaImageFilter::Execute "/**
+Image itk::simple::RegionalMinimaImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMinimaImageFilter::Execute "/**
+Image itk::simple::RegionalMinimaImageFilter::Execute(const Image &image1, double backgroundValue, double foregroundValue,
+bool fullyConnected, bool flatIsMinima)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMinimaImageFilter::FlatIsMinimaOff "/**
+Self& itk::simple::RegionalMinimaImageFilter::FlatIsMinimaOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMinimaImageFilter::FlatIsMinimaOn "/**
+Self& itk::simple::RegionalMinimaImageFilter::FlatIsMinimaOn()
+
+Set the value of FlatIsMinima to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMinimaImageFilter::FullyConnectedOff "/**
+Self& itk::simple::RegionalMinimaImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMinimaImageFilter::FullyConnectedOn "/**
+Self& itk::simple::RegionalMinimaImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMinimaImageFilter::GetBackgroundValue "/**
+double itk::simple::RegionalMinimaImageFilter::GetBackgroundValue() const
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMinimaImageFilter::GetFlatIsMinima "/**
+bool itk::simple::RegionalMinimaImageFilter::GetFlatIsMinima() const
+
+Set/Get wether a flat image must be considered as a minima or not.
+Defaults to true.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMinimaImageFilter::GetForegroundValue "/**
+double itk::simple::RegionalMinimaImageFilter::GetForegroundValue() const
+
+Set/Get the value in the output image to consider as \"foreground\".
+Defaults to maximum value of PixelType.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMinimaImageFilter::GetFullyConnected "/**
+bool itk::simple::RegionalMinimaImageFilter::GetFullyConnected() const
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMinimaImageFilter::GetName "/**
+std::string itk::simple::RegionalMinimaImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMinimaImageFilter::RegionalMinimaImageFilter "/**
+itk::simple::RegionalMinimaImageFilter::RegionalMinimaImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMinimaImageFilter::SetBackgroundValue "/**
+Self& itk::simple::RegionalMinimaImageFilter::SetBackgroundValue(double BackgroundValue)
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMinimaImageFilter::SetFlatIsMinima "/**
+Self& itk::simple::RegionalMinimaImageFilter::SetFlatIsMinima(bool FlatIsMinima)
+
+Set/Get wether a flat image must be considered as a minima or not.
+Defaults to true.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMinimaImageFilter::SetForegroundValue "/**
+Self& itk::simple::RegionalMinimaImageFilter::SetForegroundValue(double ForegroundValue)
+
+Set/Get the value in the output image to consider as \"foreground\".
+Defaults to maximum value of PixelType.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMinimaImageFilter::SetFullyConnected "/**
+Self& itk::simple::RegionalMinimaImageFilter::SetFullyConnected(bool FullyConnected)
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMinimaImageFilter::ToString "/**
+std::string itk::simple::RegionalMinimaImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMinimaImageFilter::~RegionalMinimaImageFilter "/**
+itk::simple::RegionalMinimaImageFilter::~RegionalMinimaImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::RelabelComponentImageFilter "/**
+
+Relabel the components in an image such that consecutive labels are
+used.
+
+
+RelabelComponentImageFilter remaps the labels associated with the objects in an image (as from
+the output of ConnectedComponentImageFilter ) such that the label numbers are consecutive with no gaps between
+the label numbers used. By default, the relabeling will also sort the
+labels based on the size of the object: the largest object will have
+label #1, the second largest will have label #2, etc. If two labels
+have the same size their initial order is kept. The sorting by size
+can be disabled using SetSortByObjectSize.
+
+Label #0 is assumed to be the background and is left unaltered by the
+relabeling.
+
+RelabelComponentImageFilter is typically used on the output of the ConnectedComponentImageFilter for those applications that want to extract the largest object or the
+\"k\" largest objects. Any particular object can be extracted from the
+relabeled output using a BinaryThresholdImageFilter . A group of objects can be extracted from the relabled output using
+a ThresholdImageFilter .
+
+Once all the objects are relabeled, the application can query the
+number of objects and the size of each object. Object sizes are returned in a vector. The size of the background is not
+calculated. So the size of object #1 is GetSizeOfObjectsInPixels()
+[0], the size of object #2 is GetSizeOfObjectsInPixels() [1], etc.
+
+If user sets a minimum object size, all objects with fewer pixels than
+the minimum will be discarded, so that the number of objects reported
+will be only those remaining. The GetOriginalNumberOfObjects method
+can be called to find out how many objects were present before the
+small ones were discarded.
+
+RelabelComponentImageFilter can be run as an \"in place\" filter, where it will overwrite its
+output. The default is run out of place (or generate a separate
+output). \"In place\" operation can be controlled via methods in the
+superclass, InPlaceImageFilter::InPlaceOn() and
+InPlaceImageFilter::InPlaceOff() .
+
+
+See:
+ ConnectedComponentImageFilter , BinaryThresholdImageFilter , ThresholdImageFilter
+Wiki Examples:
+
+All Examples
+
+Assign contiguous labels to connected regions of an image
+See:
+ itk::simple::RelabelComponent for the procedural interface
+
+ itk::RelabelComponentImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkRelabelComponentImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::RelabelComponentImageFilter::Execute "/**
+Image itk::simple::RelabelComponentImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RelabelComponentImageFilter::Execute "/**
+Image itk::simple::RelabelComponentImageFilter::Execute(const Image &image1, uint64_t minimumObjectSize)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RelabelComponentImageFilter::GetMinimumObjectSize "/**
+uint64_t itk::simple::RelabelComponentImageFilter::GetMinimumObjectSize() const
+
+Get the caller-defined minimum size of an object in pixels. If the
+caller has not set the minimum, 0 will be returned, which is to be
+interpreted as meaning that no minimum exists, and all objects in the
+original label map will be passed through to the output.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RelabelComponentImageFilter::GetName "/**
+std::string itk::simple::RelabelComponentImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RelabelComponentImageFilter::RelabelComponentImageFilter "/**
+itk::simple::RelabelComponentImageFilter::RelabelComponentImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RelabelComponentImageFilter::SetMinimumObjectSize "/**
+Self& itk::simple::RelabelComponentImageFilter::SetMinimumObjectSize(uint64_t MinimumObjectSize)
+
+Set the minimum size in pixels for an object. All objects smaller than
+this size will be discarded and will not appear in the output label
+map. NumberOfObjects will count only the objects whose pixel counts
+are greater than or equal to the minimum size. Call
+GetOriginalNumberOfObjects to find out how many objects were present
+in the original label map.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RelabelComponentImageFilter::ToString "/**
+std::string itk::simple::RelabelComponentImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RelabelComponentImageFilter::~RelabelComponentImageFilter "/**
+itk::simple::RelabelComponentImageFilter::~RelabelComponentImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::RelabelLabelMapFilter "/**
+
+This filter relabels the LabelObjects; the new labels are arranged
+consecutively with consideration for the background value.
+
+
+This filter takes the LabelObjects from the input and reassigns them
+to the output by calling the PushLabelObject method, which by default,
+attempts to reorganize the labels consecutively. The user can assign
+an arbitrary value to the background; the filter will assign the
+labels consecutively by skipping the background value.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ ShapeLabelObject , RelabelComponentImageFilter
+
+ itk::simple::RelabelLabelMapFilter for the procedural interface
+
+ itk::RelabelLabelMapFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkRelabelLabelMapFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::RelabelLabelMapFilter::Execute "/**
+Image itk::simple::RelabelLabelMapFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RelabelLabelMapFilter::Execute "/**
+Image itk::simple::RelabelLabelMapFilter::Execute(const Image &image1, bool reverseOrdering)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RelabelLabelMapFilter::GetName "/**
+std::string itk::simple::RelabelLabelMapFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RelabelLabelMapFilter::GetReverseOrdering "/**
+bool itk::simple::RelabelLabelMapFilter::GetReverseOrdering() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RelabelLabelMapFilter::RelabelLabelMapFilter "/**
+itk::simple::RelabelLabelMapFilter::RelabelLabelMapFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RelabelLabelMapFilter::ReverseOrderingOff "/**
+Self& itk::simple::RelabelLabelMapFilter::ReverseOrderingOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RelabelLabelMapFilter::ReverseOrderingOn "/**
+Self& itk::simple::RelabelLabelMapFilter::ReverseOrderingOn()
+
+Set the value of ReverseOrdering to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RelabelLabelMapFilter::SetReverseOrdering "/**
+Self& itk::simple::RelabelLabelMapFilter::SetReverseOrdering(bool ReverseOrdering)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RelabelLabelMapFilter::ToString "/**
+std::string itk::simple::RelabelLabelMapFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RelabelLabelMapFilter::~RelabelLabelMapFilter "/**
+itk::simple::RelabelLabelMapFilter::~RelabelLabelMapFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::RenyiEntropyThresholdImageFilter "/**
+
+Threshold an image using the RenyiEntropy Threshold.
+
+
+This filter creates a binary thresholded image that separates an image
+into foreground and background components. The filter computes the
+threshold using the RenyiEntropyThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .
+
+
+Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+ Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/10380/3279 or http://www.insight-journal.org/browse/publication/811
+
+
+See:
+ HistogramThresholdImageFilter
+
+ itk::simple::RenyiEntropyThreshold for the procedural interface
+
+ itk::RenyiEntropyThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkRenyiEntropyThresholdImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::RenyiEntropyThresholdImageFilter::Execute "/**
+Image itk::simple::RenyiEntropyThresholdImageFilter::Execute(const Image &image, const Image &maskImage)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RenyiEntropyThresholdImageFilter::Execute "/**
+Image itk::simple::RenyiEntropyThresholdImageFilter::Execute(const Image &image)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RenyiEntropyThresholdImageFilter::Execute "/**
+Image itk::simple::RenyiEntropyThresholdImageFilter::Execute(const Image &image, const Image &maskImage, uint8_t insideValue,
+uint8_t outsideValue, uint32_t numberOfHistogramBins, bool maskOutput,
+uint8_t maskValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RenyiEntropyThresholdImageFilter::Execute "/**
+Image itk::simple::RenyiEntropyThresholdImageFilter::Execute(const Image &image, uint8_t insideValue, uint8_t outsideValue,
+uint32_t numberOfHistogramBins, bool maskOutput, uint8_t maskValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RenyiEntropyThresholdImageFilter::GetInsideValue "/**
+uint8_t itk::simple::RenyiEntropyThresholdImageFilter::GetInsideValue() const
+
+Get the \"inside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RenyiEntropyThresholdImageFilter::GetMaskOutput "/**
+bool itk::simple::RenyiEntropyThresholdImageFilter::GetMaskOutput() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RenyiEntropyThresholdImageFilter::GetMaskValue "/**
+uint8_t itk::simple::RenyiEntropyThresholdImageFilter::GetMaskValue() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RenyiEntropyThresholdImageFilter::GetName "/**
+std::string itk::simple::RenyiEntropyThresholdImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RenyiEntropyThresholdImageFilter::GetNumberOfHistogramBins "/**
+uint32_t itk::simple::RenyiEntropyThresholdImageFilter::GetNumberOfHistogramBins() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RenyiEntropyThresholdImageFilter::GetOutsideValue "/**
+uint8_t itk::simple::RenyiEntropyThresholdImageFilter::GetOutsideValue() const
+
+Get the \"outside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RenyiEntropyThresholdImageFilter::GetThreshold "/**
+double itk::simple::RenyiEntropyThresholdImageFilter::GetThreshold() const
+
+Get the computed threshold.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RenyiEntropyThresholdImageFilter::MaskOutputOff "/**
+Self& itk::simple::RenyiEntropyThresholdImageFilter::MaskOutputOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RenyiEntropyThresholdImageFilter::MaskOutputOn "/**
+Self& itk::simple::RenyiEntropyThresholdImageFilter::MaskOutputOn()
+
+Set the value of MaskOutput to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RenyiEntropyThresholdImageFilter::RenyiEntropyThresholdImageFilter "/**
+itk::simple::RenyiEntropyThresholdImageFilter::RenyiEntropyThresholdImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RenyiEntropyThresholdImageFilter::SetInsideValue "/**
+Self& itk::simple::RenyiEntropyThresholdImageFilter::SetInsideValue(uint8_t InsideValue)
+
+Set the \"inside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RenyiEntropyThresholdImageFilter::SetMaskOutput "/**
+Self& itk::simple::RenyiEntropyThresholdImageFilter::SetMaskOutput(bool MaskOutput)
+
+Do you want the output to be masked by the mask used in histogram
+construction. Only relevant if masking is in use.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RenyiEntropyThresholdImageFilter::SetMaskValue "/**
+Self& itk::simple::RenyiEntropyThresholdImageFilter::SetMaskValue(uint8_t MaskValue)
+
+The value in the mask image, if used, indicating voxels that should be
+included. Default is the max of pixel type, as in the
+MaskedImageToHistogramFilter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RenyiEntropyThresholdImageFilter::SetNumberOfHistogramBins "/**
+Self& itk::simple::RenyiEntropyThresholdImageFilter::SetNumberOfHistogramBins(uint32_t NumberOfHistogramBins)
+
+Set/Get the number of histogram bins.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RenyiEntropyThresholdImageFilter::SetOutsideValue "/**
+Self& itk::simple::RenyiEntropyThresholdImageFilter::SetOutsideValue(uint8_t OutsideValue)
+
+Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RenyiEntropyThresholdImageFilter::ToString "/**
+std::string itk::simple::RenyiEntropyThresholdImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RenyiEntropyThresholdImageFilter::~RenyiEntropyThresholdImageFilter "/**
+itk::simple::RenyiEntropyThresholdImageFilter::~RenyiEntropyThresholdImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ResampleImageFilter "/**
+
+Resample an image via a coordinate transform.
+
+
+ResampleImageFilter resamples an existing image through some coordinate transform,
+interpolating via some image function. The class is templated over the
+types of the input and output images.
+
+Note that the choice of interpolator function can be important. This
+function is set via SetInterpolator() . The default is LinearInterpolateImageFunction <InputImageType, TInterpolatorPrecisionType>, which is reasonable for
+ordinary medical images. However, some synthetic images have pixels
+drawn from a finite prescribed set. An example would be a mask
+indicating the segmentation of a brain into a small number of tissue
+types. For such an image, one does not want to interpolate between
+different pixel values, and so NearestNeighborInterpolateImageFunction < InputImageType, TCoordRep > would be a better choice.
+
+If an sample is taken from outside the image domain, the default
+behavior is to use a default pixel value. If different behavior is
+desired, an extrapolator function can be set with SetExtrapolator() .
+
+Output information (spacing, size and direction) for the output image
+should be set. This information has the normal defaults of unit
+spacing, zero origin and identity direction. Optionally, the output
+information can be obtained from a reference image. If the reference
+image is provided and UseReferenceImage is On, then the spacing,
+origin and direction of the reference image will be used.
+
+Since this filter produces an image which is a different size than its
+input, it needs to override several of the methods defined in ProcessObject in order to properly manage the pipeline execution model. In
+particular, this filter overrides
+ProcessObject::GenerateInputRequestedRegion() and
+ProcessObject::GenerateOutputInformation() .
+
+This filter is implemented as a multithreaded filter. It provides a
+ThreadedGenerateData() method for its implementation.
+WARNING:
+For multithreading, the TransformPoint method of the user-designated
+coordinate transform must be threadsafe.
+Wiki Examples:
+
+All Examples
+
+Translate an image
+
+Upsampling an image
+
+Resample (stretch or compress) an image
+
+See:
+ itk::ResampleImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkResampleImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ResampleImageFilter::Execute "/**
+Image itk::simple::ResampleImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ResampleImageFilter::Execute "/**
+Image itk::simple::ResampleImageFilter::Execute(const Image &image1, const std::vector< uint32_t > &size, Transform
+transform, InterpolatorEnum interpolator, const std::vector< double >
+&outputOrigin, const std::vector< double > &outputSpacing,
+std::vector< double > outputDirection, double defaultPixelValue,
+PixelIDValueEnum outputPixelType)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ResampleImageFilter::GetDefaultPixelValue "/**
+double itk::simple::ResampleImageFilter::GetDefaultPixelValue() const
+
+Get/Set the pixel value when a transformed pixel is outside of the
+image. The default default pixel value is 0.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ResampleImageFilter::GetInterpolator "/**
+InterpolatorEnum itk::simple::ResampleImageFilter::GetInterpolator() const
+
+Get/Set the interpolator function. The default is LinearInterpolateImageFunction <InputImageType, TInterpolatorPrecisionType>. Some other options are NearestNeighborInterpolateImageFunction (useful for binary masks and other images with a small number of
+possible pixel values), and BSplineInterpolateImageFunction (which provides a higher order of interpolation).
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ResampleImageFilter::GetName "/**
+std::string itk::simple::ResampleImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ResampleImageFilter::GetOutputDirection "/**
+std::vector<double> itk::simple::ResampleImageFilter::GetOutputDirection() const
+
+Set the output direciton cosine matrix.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ResampleImageFilter::GetOutputOrigin "/**
+std::vector<double> itk::simple::ResampleImageFilter::GetOutputOrigin() const
+
+Get the output image origin.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ResampleImageFilter::GetOutputPixelType "/**
+PixelIDValueEnum itk::simple::ResampleImageFilter::GetOutputPixelType() const
+
+Get the ouput pixel type.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ResampleImageFilter::GetOutputSpacing "/**
+std::vector<double> itk::simple::ResampleImageFilter::GetOutputSpacing() const
+
+Get the output image spacing.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ResampleImageFilter::GetSize "/**
+std::vector<uint32_t> itk::simple::ResampleImageFilter::GetSize() const
+
+Get/Set the size of the output image.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ResampleImageFilter::GetTransform "/**
+Transform itk::simple::ResampleImageFilter::GetTransform() const
+
+Get/Set the coordinate transformation. Set the coordinate transform to
+use for resampling. Note that this must be in physical coordinates and
+it is the output-to-input transform, NOT the input-to-output transform
+that you might naively expect. By default the filter uses an Identity
+transform. You must provide a different transform here, before
+attempting to run the filter, if you do not want to use the default
+Identity transform.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ResampleImageFilter::ResampleImageFilter "/**
+itk::simple::ResampleImageFilter::ResampleImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ResampleImageFilter::SetDefaultPixelValue "/**
+Self& itk::simple::ResampleImageFilter::SetDefaultPixelValue(double DefaultPixelValue)
+
+Get/Set the pixel value when a transformed pixel is outside of the
+image. The default default pixel value is 0.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ResampleImageFilter::SetInterpolator "/**
+Self& itk::simple::ResampleImageFilter::SetInterpolator(InterpolatorEnum Interpolator)
+
+Get/Set the interpolator function. The default is LinearInterpolateImageFunction <InputImageType, TInterpolatorPrecisionType>. Some other options are NearestNeighborInterpolateImageFunction (useful for binary masks and other images with a small number of
+possible pixel values), and BSplineInterpolateImageFunction (which provides a higher order of interpolation).
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ResampleImageFilter::SetOutputDirection "/**
+Self& itk::simple::ResampleImageFilter::SetOutputDirection(std::vector< double > OutputDirection)
+
+Set the output direciton cosine matrix.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ResampleImageFilter::SetOutputOrigin "/**
+Self& itk::simple::ResampleImageFilter::SetOutputOrigin(const std::vector< double > &OutputOrigin)
+
+Set the output image origin.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ResampleImageFilter::SetOutputPixelType "/**
+Self& itk::simple::ResampleImageFilter::SetOutputPixelType(PixelIDValueEnum OutputPixelType)
+
+Set the output pixel type, if sitkUnknown then the input type is used.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ResampleImageFilter::SetOutputSpacing "/**
+Self& itk::simple::ResampleImageFilter::SetOutputSpacing(const std::vector< double > &OutputSpacing)
+
+Set the output image spacing.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ResampleImageFilter::SetReferenceImage "/**
+void itk::simple::ResampleImageFilter::SetReferenceImage(const Image &refImage)
+
+This methods sets the output size, origin, spacing and direction to
+that of the provided image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ResampleImageFilter::SetSize "/**
+Self& itk::simple::ResampleImageFilter::SetSize(const std::vector< uint32_t > &Size)
+
+Get/Set the size of the output image.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ResampleImageFilter::SetTransform "/**
+Self& itk::simple::ResampleImageFilter::SetTransform(Transform Transform)
+
+Get/Set the coordinate transformation. Set the coordinate transform to
+use for resampling. Note that this must be in physical coordinates and
+it is the output-to-input transform, NOT the input-to-output transform
+that you might naively expect. By default the filter uses an Identity
+transform. You must provide a different transform here, before
+attempting to run the filter, if you do not want to use the default
+Identity transform.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ResampleImageFilter::ToString "/**
+std::string itk::simple::ResampleImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ResampleImageFilter::~ResampleImageFilter "/**
+itk::simple::ResampleImageFilter::~ResampleImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::RescaleIntensityImageFilter "/**
+
+Applies a linear transformation to the intensity levels of the input Image .
+
+
+RescaleIntensityImageFilter applies pixel-wise a linear transformation to the intensity values of
+input image pixels. The linear transformation is defined by the user
+in terms of the minimum and maximum values that the output image
+should have.
+
+The following equation gives the mapping of the intensity values
+
+
+\\\\[ outputPixel = ( inputPixel - inputMin) \\\\cdot
+\\\\frac{(outputMax - outputMin )}{(inputMax - inputMin)} + outputMin
+\\\\]
+ All computations are performed in the precision of the input pixel's
+RealType. Before assigning the computed value to the output pixel.
+
+NOTE: In this filter the minimum and maximum values of the input image
+are computed internally using the MinimumMaximumImageCalculator . Users are not supposed to set those values in this filter. If you
+need a filter where you can set the minimum and maximum values of the
+input, please use the IntensityWindowingImageFilter . If you want a filter that can use a user-defined linear
+transformation for the intensity, then please use the ShiftScaleImageFilter .
+
+
+See:
+ IntensityWindowingImageFilter
+Wiki Examples:
+
+All Examples
+
+Rescale the intensity values of an image to a specified range
+See:
+ itk::simple::RescaleIntensity for the procedural interface
+
+ itk::RescaleIntensityImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkRescaleIntensityImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::RescaleIntensityImageFilter::Execute "/**
+Image itk::simple::RescaleIntensityImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RescaleIntensityImageFilter::Execute "/**
+Image itk::simple::RescaleIntensityImageFilter::Execute(const Image &image1, double outputMinimum, double outputMaximum)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RescaleIntensityImageFilter::GetName "/**
+std::string itk::simple::RescaleIntensityImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RescaleIntensityImageFilter::GetOutputMaximum "/**
+double itk::simple::RescaleIntensityImageFilter::GetOutputMaximum() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RescaleIntensityImageFilter::GetOutputMinimum "/**
+double itk::simple::RescaleIntensityImageFilter::GetOutputMinimum() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RescaleIntensityImageFilter::RescaleIntensityImageFilter "/**
+itk::simple::RescaleIntensityImageFilter::RescaleIntensityImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RescaleIntensityImageFilter::SetOutputMaximum "/**
+Self& itk::simple::RescaleIntensityImageFilter::SetOutputMaximum(double OutputMaximum)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RescaleIntensityImageFilter::SetOutputMinimum "/**
+Self& itk::simple::RescaleIntensityImageFilter::SetOutputMinimum(double OutputMinimum)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RescaleIntensityImageFilter::ToString "/**
+std::string itk::simple::RescaleIntensityImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RescaleIntensityImageFilter::~RescaleIntensityImageFilter "/**
+itk::simple::RescaleIntensityImageFilter::~RescaleIntensityImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::RichardsonLucyDeconvolutionImageFilter "/**
+
+Deconvolve an image using the Richardson-Lucy deconvolution algorithm.
+
+
+This filter implements the Richardson-Lucy deconvolution algorithm as
+defined in Bertero M and Boccacci P, \"Introduction to Inverse
+Problems in Imaging\", 1998. The algorithm assumes that the input
+image has been formed by a linear shift-invariant system with a known
+kernel.
+
+The Richardson-Lucy algorithm assumes that noise in the image follows
+a Poisson distribution and that the distribution for each pixel is
+independent of the other pixels.
+
+This code was adapted from the Insight Journal contribution:
+
+\"Deconvolution: infrastructure and reference algorithms\" by Gaetan
+Lehmann https://hdl.handle.net/10380/3207
+
+
+Gaetan Lehmann, Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France
+ Cory Quammen, The University of North Carolina at Chapel Hill
+
+
+See:
+ IterativeDeconvolutionImageFilter
+
+ LandweberDeconvolutionImageFilter
+
+ ProjectedLandweberDeconvolutionImageFilter
+
+ itk::simple::RichardsonLucyDeconvolution for the procedural interface
+
+ itk::RichardsonLucyDeconvolutionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkRichardsonLucyDeconvolutionImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::RichardsonLucyDeconvolutionImageFilter::Execute "/**
+Image itk::simple::RichardsonLucyDeconvolutionImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RichardsonLucyDeconvolutionImageFilter::Execute "/**
+Image itk::simple::RichardsonLucyDeconvolutionImageFilter::Execute(const Image &image1, const Image &image2, int numberOfIterations,
+bool normalize,
+RichardsonLucyDeconvolutionImageFilter::BoundaryConditionType
+boundaryCondition,
+RichardsonLucyDeconvolutionImageFilter::OutputRegionModeType
+outputRegionMode)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RichardsonLucyDeconvolutionImageFilter::GetBoundaryCondition "/**
+BoundaryConditionType itk::simple::RichardsonLucyDeconvolutionImageFilter::GetBoundaryCondition() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RichardsonLucyDeconvolutionImageFilter::GetName "/**
+std::string itk::simple::RichardsonLucyDeconvolutionImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RichardsonLucyDeconvolutionImageFilter::GetNormalize "/**
+bool itk::simple::RichardsonLucyDeconvolutionImageFilter::GetNormalize() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RichardsonLucyDeconvolutionImageFilter::GetNumberOfIterations "/**
+int itk::simple::RichardsonLucyDeconvolutionImageFilter::GetNumberOfIterations() const
+
+Get the number of iterations.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RichardsonLucyDeconvolutionImageFilter::GetOutputRegionMode "/**
+OutputRegionModeType itk::simple::RichardsonLucyDeconvolutionImageFilter::GetOutputRegionMode() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RichardsonLucyDeconvolutionImageFilter::NormalizeOff "/**
+Self& itk::simple::RichardsonLucyDeconvolutionImageFilter::NormalizeOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RichardsonLucyDeconvolutionImageFilter::NormalizeOn "/**
+Self& itk::simple::RichardsonLucyDeconvolutionImageFilter::NormalizeOn()
+
+Set the value of Normalize to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RichardsonLucyDeconvolutionImageFilter::RichardsonLucyDeconvolutionImageFilter "/**
+itk::simple::RichardsonLucyDeconvolutionImageFilter::RichardsonLucyDeconvolutionImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RichardsonLucyDeconvolutionImageFilter::SetBoundaryCondition "/**
+Self& itk::simple::RichardsonLucyDeconvolutionImageFilter::SetBoundaryCondition(BoundaryConditionType BoundaryCondition)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RichardsonLucyDeconvolutionImageFilter::SetNormalize "/**
+Self& itk::simple::RichardsonLucyDeconvolutionImageFilter::SetNormalize(bool Normalize)
+
+Normalize the output image by the sum of the kernel components
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RichardsonLucyDeconvolutionImageFilter::SetNumberOfIterations "/**
+Self& itk::simple::RichardsonLucyDeconvolutionImageFilter::SetNumberOfIterations(int NumberOfIterations)
+
+Set the number of iterations.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RichardsonLucyDeconvolutionImageFilter::SetOutputRegionMode "/**
+Self& itk::simple::RichardsonLucyDeconvolutionImageFilter::SetOutputRegionMode(OutputRegionModeType OutputRegionMode)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RichardsonLucyDeconvolutionImageFilter::ToString "/**
+std::string itk::simple::RichardsonLucyDeconvolutionImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RichardsonLucyDeconvolutionImageFilter::~RichardsonLucyDeconvolutionImageFilter "/**
+itk::simple::RichardsonLucyDeconvolutionImageFilter::~RichardsonLucyDeconvolutionImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::STAPLEImageFilter "/**
+
+The STAPLE filter implements the Simultaneous Truth and Performance
+Level Estimation algorithm for generating ground truth volumes from a
+set of binary expert segmentations.
+
+
+The STAPLE algorithm treats segmentation as a pixelwise
+classification, which leads to an averaging scheme that accounts for
+systematic biases in the behavior of experts in order to generate a
+fuzzy ground truth volume and simultaneous accuracy assessment of each
+expert. The ground truth volumes produced by this filter are floating
+point volumes of values between zero and one that indicate probability
+of each pixel being in the object targeted by the segmentation.
+
+The STAPLE algorithm is described in
+
+S. Warfield, K. Zou, W. Wells, \"Validation of image segmentation and
+expert quality with an expectation-maximization algorithm\" in MICCAI
+2002: Fifth International Conference on Medical Image Computing and Computer-Assisted Intervention, Springer-Verlag,
+Heidelberg, Germany, 2002, pp. 298-306
+
+INPUTS
+Input volumes to the STAPLE filter must be binary segmentations of an
+image, that is, there must be a single foreground value that
+represents positively classified pixels (pixels that are considered to
+belong inside the segmentation). Any number of background pixel values
+may be present in the input images. You can, for example, input
+volumes with many different labels as long as the structure you are
+interested in creating ground truth for is consistently labeled among
+all input volumes. Pixel type of the input volumes does not matter.
+Specify the label value for positively classified pixels using
+SetForegroundValue. All other labels will be considered to be
+negatively classified pixels (background).
+ Input volumes must all contain the same size RequestedRegions.
+
+OUTPUTS
+The STAPLE filter produces a single output volume with a range of
+floating point values from zero to one. IT IS VERY IMPORTANT TO
+INSTANTIATE THIS FILTER WITH A FLOATING POINT OUTPUT TYPE (floats or
+doubles). You may threshold the output above some probability
+threshold if you wish to produce a binary ground truth.
+PARAMETERS
+The STAPLE algorithm requires a number of inputs. You may specify any
+number of input volumes using the SetInput(i, p_i) method, where i
+ranges from zero to N-1, N is the total number of input segmentations,
+and p_i is the SmartPointer to the i-th segmentation.
+ The SetConfidenceWeight parameter is a modifier for the prior
+probability that any pixel would be classified as inside the target
+object. This implementation of the STAPLE algorithm automatically
+calculates prior positive classification probability as the average
+fraction of the image volume filled by the target object in each input
+segmentation. The ConfidenceWeight parameter allows for scaling the of
+this default prior probability: if g_t is the prior probability that a
+pixel would be classified inside the target object, then g_t is set to
+g_t * ConfidenceWeight before iterating on the solution. In general
+ConfidenceWeight should be left to the default of 1.0.
+
+You must provide a foreground value using SetForegroundValue that the
+STAPLE algorithm will use to identify positively classified pixels in
+the the input images. All other values in the image will be treated as
+background values. For example, if your input segmentations consist of
+1's everywhere inside the segmented region, then use
+SetForegroundValue(1).
+
+The STAPLE algorithm is an iterative E-M algorithm and will converge
+on a solution after some number of iterations that cannot be known a
+priori. After updating the filter, the total elapsed iterations taken
+to converge on the solution can be queried through GetElapsedIterations() . You may also specify a MaximumNumberOfIterations, after which the
+algorithm will stop iterating regardless of whether or not it has
+converged. This implementation of the STAPLE algorithm will find the
+solution to within seven digits of precision unless it is stopped
+early.
+
+Once updated, the Sensitivity (true positive fraction, q) and
+Specificity (true negative fraction, q) for each expert input volume
+can be queried using GetSensitivity(i) and GetSpecificity(i), where i
+is the i-th input volume.
+
+REQUIRED PARAMETERS
+The only required parameters for this filter are the ForegroundValue
+and the input volumes. All other parameters may be safely left to
+their default values. Please see the paper cited above for more
+information on the STAPLE algorithm and its parameters. A proper
+understanding of the algorithm is important for interpreting the
+results that it produces.
+EVENTS
+This filter invokes IterationEvent() at each iteration of the E-M
+algorithm. Setting the AbortGenerateData() flag will cause the
+algorithm to halt after the current iteration and produce results just
+as if it had converged. The algorithm makes no attempt to report its
+progress since the number of iterations needed cannot be known in
+advance.
+
+See:
+ itk::simple::STAPLE for the procedural interface
+
+
+C++ includes: sitkSTAPLEImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::STAPLEImageFilter::Execute "/**
+Image itk::simple::STAPLEImageFilter::Execute(const std::vector< Image > &images)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::STAPLEImageFilter::Execute "/**
+Image itk::simple::STAPLEImageFilter::Execute(const Image &image1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::STAPLEImageFilter::Execute "/**
+Image itk::simple::STAPLEImageFilter::Execute(const Image &image1, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::STAPLEImageFilter::Execute "/**
+Image itk::simple::STAPLEImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::STAPLEImageFilter::Execute "/**
+Image itk::simple::STAPLEImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::STAPLEImageFilter::Execute "/**
+Image itk::simple::STAPLEImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4, const Image &image5)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::STAPLEImageFilter::Execute "/**
+Image itk::simple::STAPLEImageFilter::Execute(const std::vector< Image > &images, double confidenceWeight, double
+foregroundValue, unsigned int maximumIterations)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::STAPLEImageFilter::Execute "/**
+Image itk::simple::STAPLEImageFilter::Execute(const Image &image1, double confidenceWeight, double foregroundValue,
+unsigned int maximumIterations)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::STAPLEImageFilter::Execute "/**
+Image itk::simple::STAPLEImageFilter::Execute(const Image &image1, const Image &image2, double confidenceWeight,
+double foregroundValue, unsigned int maximumIterations)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::STAPLEImageFilter::Execute "/**
+Image itk::simple::STAPLEImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, double
+confidenceWeight, double foregroundValue, unsigned int
+maximumIterations)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::STAPLEImageFilter::Execute "/**
+Image itk::simple::STAPLEImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4, double confidenceWeight, double foregroundValue,
+unsigned int maximumIterations)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::STAPLEImageFilter::Execute "/**
+Image itk::simple::STAPLEImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4, const Image &image5, double confidenceWeight, double
+foregroundValue, unsigned int maximumIterations)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::STAPLEImageFilter::GetConfidenceWeight "/**
+double itk::simple::STAPLEImageFilter::GetConfidenceWeight() const
+
+Scales the estimated prior probability that a pixel will be inside the
+targeted object of segmentation. The default prior probability g_t is
+calculated automatically as the average fraction of positively
+classified pixels to the total size of the volume (across all input
+volumes). ConfidenceWeight will scale this default value as g_t = g_t
+* ConfidenceWeight. In general, ConfidenceWeight should be left to the
+default of 1.0.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::STAPLEImageFilter::GetElapsedIterations "/**
+uint32_t itk::simple::STAPLEImageFilter::GetElapsedIterations() const
+
+Get the number of elapsed iterations of the iterative E-M algorithm.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::STAPLEImageFilter::GetForegroundValue "/**
+double itk::simple::STAPLEImageFilter::GetForegroundValue() const
+
+Set get the binary ON value of the input image.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::STAPLEImageFilter::GetMaximumIterations "/**
+unsigned int itk::simple::STAPLEImageFilter::GetMaximumIterations() const
+
+Set/Get the maximum number of iterations after which the STAPLE
+algorithm will be considered to have converged. In general this SHOULD
+NOT be set and the algorithm should be allowed to converge on its own.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::STAPLEImageFilter::GetName "/**
+std::string itk::simple::STAPLEImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::STAPLEImageFilter::GetSensitivity "/**
+std::vector<double> itk::simple::STAPLEImageFilter::GetSensitivity() const
+
+After the filter is updated, this method returns a std::vector<double>
+of all Sensitivity (true positive fraction, p) values for the expert
+input volumes.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::STAPLEImageFilter::GetSpecificity "/**
+std::vector<double> itk::simple::STAPLEImageFilter::GetSpecificity() const
+
+After the filter is updated, this method returns the Specificity (true
+negative fraction, q) value for the i-th expert input volume.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::STAPLEImageFilter::SetConfidenceWeight "/**
+Self& itk::simple::STAPLEImageFilter::SetConfidenceWeight(double ConfidenceWeight)
+
+Scales the estimated prior probability that a pixel will be inside the
+targeted object of segmentation. The default prior probability g_t is
+calculated automatically as the average fraction of positively
+classified pixels to the total size of the volume (across all input
+volumes). ConfidenceWeight will scale this default value as g_t = g_t
+* ConfidenceWeight. In general, ConfidenceWeight should be left to the
+default of 1.0.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::STAPLEImageFilter::SetForegroundValue "/**
+Self& itk::simple::STAPLEImageFilter::SetForegroundValue(double ForegroundValue)
+
+Set get the binary ON value of the input image.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::STAPLEImageFilter::SetMaximumIterations "/**
+Self& itk::simple::STAPLEImageFilter::SetMaximumIterations(unsigned int MaximumIterations)
+
+Set/Get the maximum number of iterations after which the STAPLE
+algorithm will be considered to have converged. In general this SHOULD
+NOT be set and the algorithm should be allowed to converge on its own.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::STAPLEImageFilter::STAPLEImageFilter "/**
+itk::simple::STAPLEImageFilter::STAPLEImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::STAPLEImageFilter::ToString "/**
+std::string itk::simple::STAPLEImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::STAPLEImageFilter::~STAPLEImageFilter "/**
+itk::simple::STAPLEImageFilter::~STAPLEImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::SaltAndPepperNoiseImageFilter "/**
+
+Alter an image with fixed value impulse noise, often called salt and
+pepper noise.
+
+
+Pixel alteration occurs at a user defined probability. Salt and pepper
+pixel are equally distributed.
+
+
+Gaetan Lehmann
+ This code was contributed in the Insight Journal paper \"Noise
+Simulation\". https://hdl.handle.net/10380/3158
+See:
+ itk::simple::SaltAndPepperNoise for the procedural interface
+
+ itk::SaltAndPepperNoiseImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkSaltAndPepperNoiseImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::SaltAndPepperNoiseImageFilter::Execute "/**
+Image itk::simple::SaltAndPepperNoiseImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SaltAndPepperNoiseImageFilter::Execute "/**
+Image itk::simple::SaltAndPepperNoiseImageFilter::Execute(const Image &image1, double probability, uint32_t seed)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SaltAndPepperNoiseImageFilter::GetName "/**
+std::string itk::simple::SaltAndPepperNoiseImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SaltAndPepperNoiseImageFilter::GetProbability "/**
+double itk::simple::SaltAndPepperNoiseImageFilter::GetProbability() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SaltAndPepperNoiseImageFilter::GetSeed "/**
+uint32_t itk::simple::SaltAndPepperNoiseImageFilter::GetSeed() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SaltAndPepperNoiseImageFilter::SaltAndPepperNoiseImageFilter "/**
+itk::simple::SaltAndPepperNoiseImageFilter::SaltAndPepperNoiseImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SaltAndPepperNoiseImageFilter::SetProbability "/**
+Self& itk::simple::SaltAndPepperNoiseImageFilter::SetProbability(double Probability)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SaltAndPepperNoiseImageFilter::SetSeed "/**
+Self& itk::simple::SaltAndPepperNoiseImageFilter::SetSeed(uint32_t Seed)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SaltAndPepperNoiseImageFilter::ToString "/**
+std::string itk::simple::SaltAndPepperNoiseImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SaltAndPepperNoiseImageFilter::~SaltAndPepperNoiseImageFilter "/**
+itk::simple::SaltAndPepperNoiseImageFilter::~SaltAndPepperNoiseImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter "/**
+
+Dense implementation of the Chan and Vese multiphase level set image
+filter.
+
+
+This code was adapted from the paper: \"An active contour model
+without edges\" T. Chan and L. Vese. In Scale-Space Theories in
+Computer Vision, pages 141-151, 1999.
+
+
+Mosaliganti K., Smith B., Gelas A., Gouaillard A., Megason S.
+ This code was taken from the Insight Journal paper: \"Cell Tracking
+using Coupled Active Surfaces for Nuclei and Membranes\" http://www.insight-journal.org/browse/publication/642 https://hdl.handle.net/10380/3055
+
+That is based on the papers: \"Level Set Segmentation: Active Contours
+without edge\" http://www.insight-journal.org/browse/publication/322 https://hdl.handle.net/1926/1532
+
+and
+
+\"Level set segmentation using coupled active surfaces\" http://www.insight-journal.org/browse/publication/323 https://hdl.handle.net/1926/1533
+
+Wiki Examples:
+
+All Examples
+
+Single-phase Chan And Vese Dense Field Level Set Segmentation
+See:
+ itk::simple::ScalarChanAndVeseDenseLevelSet for the procedural interface
+
+ itk::ScalarChanAndVeseDenseLevelSetImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkScalarChanAndVeseDenseLevelSetImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::Execute "/**
+Image itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::Execute "/**
+Image itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::Execute(const Image &image1, const Image &image2, double maximumRMSError,
+uint32_t numberOfIterations, double lambda1, double lambda2, double
+epsilon, double curvatureWeight, double areaWeight, double
+reinitializationSmoothingWeight, double volume, double
+volumeMatchingWeight,
+ScalarChanAndVeseDenseLevelSetImageFilter::HeavisideStepFunctionType
+heavisideStepFunction, bool useImageSpacing)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetAreaWeight "/**
+double itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetAreaWeight() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetCurvatureWeight "/**
+double itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetCurvatureWeight() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetElapsedIterations "/**
+uint32_t itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetElapsedIterations() const
+
+Number of iterations run.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetEpsilon "/**
+double itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetEpsilon() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetHeavisideStepFunction "/**
+HeavisideStepFunctionType itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetHeavisideStepFunction() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetLambda1 "/**
+double itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetLambda1() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetLambda2 "/**
+double itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetLambda2() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetMaximumRMSError "/**
+double itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetMaximumRMSError() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetName "/**
+std::string itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetNumberOfIterations "/**
+uint32_t itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetNumberOfIterations() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetReinitializationSmoothingWeight "/**
+double itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetReinitializationSmoothingWeight() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetRMSChange "/**
+double itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetRMSChange() const
+
+The Root Mean Square of the levelset upon termination.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetUseImageSpacing "/**
+bool itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetUseImageSpacing() const
+
+Use the image spacing information in calculations. Use this option if
+you want derivatives in physical space. Default is UseImageSpacingOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetVolume "/**
+double itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetVolume() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetVolumeMatchingWeight "/**
+double itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetVolumeMatchingWeight() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::ScalarChanAndVeseDenseLevelSetImageFilter "/**
+itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::ScalarChanAndVeseDenseLevelSetImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetAreaWeight "/**
+Self& itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetAreaWeight(double AreaWeight)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetCurvatureWeight "/**
+Self& itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetCurvatureWeight(double CurvatureWeight)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetEpsilon "/**
+Self& itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetEpsilon(double Epsilon)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetHeavisideStepFunction "/**
+Self& itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetHeavisideStepFunction(HeavisideStepFunctionType HeavisideStepFunction)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetLambda1 "/**
+Self& itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetLambda1(double Lambda1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetLambda2 "/**
+Self& itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetLambda2(double Lambda2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetMaximumRMSError "/**
+Self& itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetMaximumRMSError(double MaximumRMSError)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetNumberOfIterations "/**
+Self& itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetNumberOfIterations(uint32_t NumberOfIterations)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetReinitializationSmoothingWeight "/**
+Self& itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetReinitializationSmoothingWeight(double ReinitializationSmoothingWeight)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetUseImageSpacing "/**
+Self& itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetUseImageSpacing(bool UseImageSpacing)
+
+Use the image spacing information in calculations. Use this option if
+you want derivatives in physical space. Default is UseImageSpacingOn.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetVolume "/**
+Self& itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetVolume(double Volume)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetVolumeMatchingWeight "/**
+Self& itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetVolumeMatchingWeight(double VolumeMatchingWeight)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::ToString "/**
+std::string itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::UseImageSpacingOff "/**
+Self& itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::UseImageSpacingOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::UseImageSpacingOn "/**
+Self& itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::UseImageSpacingOn()
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::~ScalarChanAndVeseDenseLevelSetImageFilter "/**
+itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::~ScalarChanAndVeseDenseLevelSetImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ScalarConnectedComponentImageFilter "/**
+
+A connected components filter that labels the objects in an arbitrary
+image. Two pixels are similar if they are within threshold of each
+other. Uses ConnectedComponentFunctorImageFilter .
+
+
+Wiki Examples:
+
+All Examples
+
+Label connected components in a grayscale image
+See:
+ itk::simple::ScalarConnectedComponent for the procedural interface
+
+ itk::ScalarConnectedComponentImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkScalarConnectedComponentImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ScalarConnectedComponentImageFilter::Execute "/**
+Image itk::simple::ScalarConnectedComponentImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarConnectedComponentImageFilter::Execute "/**
+Image itk::simple::ScalarConnectedComponentImageFilter::Execute(const Image &image1, double distanceThreshold, bool fullyConnected)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarConnectedComponentImageFilter::FullyConnectedOff "/**
+Self& itk::simple::ScalarConnectedComponentImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarConnectedComponentImageFilter::FullyConnectedOn "/**
+Self& itk::simple::ScalarConnectedComponentImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarConnectedComponentImageFilter::GetDistanceThreshold "/**
+double itk::simple::ScalarConnectedComponentImageFilter::GetDistanceThreshold() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarConnectedComponentImageFilter::GetFullyConnected "/**
+bool itk::simple::ScalarConnectedComponentImageFilter::GetFullyConnected() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarConnectedComponentImageFilter::GetName "/**
+std::string itk::simple::ScalarConnectedComponentImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarConnectedComponentImageFilter::ScalarConnectedComponentImageFilter "/**
+itk::simple::ScalarConnectedComponentImageFilter::ScalarConnectedComponentImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarConnectedComponentImageFilter::SetDistanceThreshold "/**
+Self& itk::simple::ScalarConnectedComponentImageFilter::SetDistanceThreshold(double DistanceThreshold)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarConnectedComponentImageFilter::SetFullyConnected "/**
+Self& itk::simple::ScalarConnectedComponentImageFilter::SetFullyConnected(bool FullyConnected)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarConnectedComponentImageFilter::ToString "/**
+std::string itk::simple::ScalarConnectedComponentImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarConnectedComponentImageFilter::~ScalarConnectedComponentImageFilter "/**
+itk::simple::ScalarConnectedComponentImageFilter::~ScalarConnectedComponentImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ScalarImageKmeansImageFilter "/**
+
+Classifies the intensity values of a scalar image using the K-Means
+algorithm.
+
+
+Given an input image with scalar values, it uses the K-Means
+statistical classifier in order to define labels for every pixel in
+the image. The filter is templated over the type of the input image.
+The output image is predefined as having the same dimension of the
+input image and pixel type unsigned char, under the assumption that
+the classifier will generate less than 256 classes.
+
+You may want to look also at the RelabelImageFilter that may be used
+as a postprocessing stage, in particular if you are interested in
+ordering the labels by their relative size in number of pixels.
+
+
+See:
+ Image
+
+ ImageKmeansModelEstimator
+
+ KdTreeBasedKmeansEstimator, WeightedCentroidKdTreeGenerator, KdTree
+
+ RelabelImageFilter
+Wiki Examples:
+
+All Examples
+
+Cluster the pixels in a greyscale image
+See:
+ itk::simple::ScalarImageKmeans for the procedural interface
+
+ itk::ScalarImageKmeansImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkScalarImageKmeansImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ScalarImageKmeansImageFilter::Execute "/**
+Image itk::simple::ScalarImageKmeansImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarImageKmeansImageFilter::Execute "/**
+Image itk::simple::ScalarImageKmeansImageFilter::Execute(const Image &image1, std::vector< double > classWithInitialMean, bool
+useNonContiguousLabels)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarImageKmeansImageFilter::GetClassWithInitialMean "/**
+std::vector<double> itk::simple::ScalarImageKmeansImageFilter::GetClassWithInitialMean() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarImageKmeansImageFilter::GetFinalMeans "/**
+std::vector<double> itk::simple::ScalarImageKmeansImageFilter::GetFinalMeans() const
+
+Return the array of Means found after the classification.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarImageKmeansImageFilter::GetName "/**
+std::string itk::simple::ScalarImageKmeansImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarImageKmeansImageFilter::GetUseNonContiguousLabels "/**
+bool itk::simple::ScalarImageKmeansImageFilter::GetUseNonContiguousLabels() const
+
+Set/Get the UseNonContiguousLabels flag. When this is set to false the
+labels are numbered contiguously, like in {0,1,3..N}. When the flag is
+set to true, the labels are selected in order to span the dynamic
+range of the output image. This last option is useful when the output
+image is intended only for display. The default value is false.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarImageKmeansImageFilter::ScalarImageKmeansImageFilter "/**
+itk::simple::ScalarImageKmeansImageFilter::ScalarImageKmeansImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarImageKmeansImageFilter::SetClassWithInitialMean "/**
+Self& itk::simple::ScalarImageKmeansImageFilter::SetClassWithInitialMean(std::vector< double > ClassWithInitialMean)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarImageKmeansImageFilter::SetUseNonContiguousLabels "/**
+Self& itk::simple::ScalarImageKmeansImageFilter::SetUseNonContiguousLabels(bool UseNonContiguousLabels)
+
+Set/Get the UseNonContiguousLabels flag. When this is set to false the
+labels are numbered contiguously, like in {0,1,3..N}. When the flag is
+set to true, the labels are selected in order to span the dynamic
+range of the output image. This last option is useful when the output
+image is intended only for display. The default value is false.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarImageKmeansImageFilter::ToString "/**
+std::string itk::simple::ScalarImageKmeansImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarImageKmeansImageFilter::UseNonContiguousLabelsOff "/**
+Self& itk::simple::ScalarImageKmeansImageFilter::UseNonContiguousLabelsOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarImageKmeansImageFilter::UseNonContiguousLabelsOn "/**
+Self& itk::simple::ScalarImageKmeansImageFilter::UseNonContiguousLabelsOn()
+
+Set the value of UseNonContiguousLabels to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarImageKmeansImageFilter::~ScalarImageKmeansImageFilter "/**
+itk::simple::ScalarImageKmeansImageFilter::~ScalarImageKmeansImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ScalarToRGBColormapImageFilter "/**
+
+Implements pixel-wise intensity->rgb mapping operation on one image.
+
+
+This class is parameterized over the type of the input image and the
+type of the output image.
+
+The input image's scalar pixel values are mapped into a color map. The
+color map is specified by passing the SetColormap function one of the
+predefined maps. The following selects the \"Hot\" colormap:
+
+You can also specify a custom color map. This is done by creating a
+CustomColormapFunction, and then creating lists of values for the red,
+green, and blue channel. An example of setting the red channel of a
+colormap with only 2 colors is given below. The blue and green
+channels should be specified in the same manner.
+
+
+The range of values present in the input image is the range that is
+mapped to the entire range of colors.
+
+This code was contributed in the Insight Journal paper: \"Meeting Andy
+Warhol Somewhere Over the Rainbow: RGB Colormapping and ITK\" by
+Tustison N., Zhang H., Lehmann G., Yushkevich P., Gee J. https://hdl.handle.net/1926/1452 http://www.insight-journal.org/browse/publication/285
+
+
+See:
+ BinaryFunctionImageFilter TernaryFunctionImageFilter
+Wiki Examples:
+
+All Examples
+
+Apply a color map to an image
+See:
+ itk::simple::ScalarToRGBColormap for the procedural interface
+
+ itk::ScalarToRGBColormapImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkScalarToRGBColormapImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ScalarToRGBColormapImageFilter::Execute "/**
+Image itk::simple::ScalarToRGBColormapImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarToRGBColormapImageFilter::Execute "/**
+Image itk::simple::ScalarToRGBColormapImageFilter::Execute(const Image &image1, ScalarToRGBColormapImageFilter::ColormapType
+colormap, bool useInputImageExtremaForScaling)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarToRGBColormapImageFilter::GetColormap "/**
+ColormapType itk::simple::ScalarToRGBColormapImageFilter::GetColormap() const
+
+Set/Get the colormap object.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarToRGBColormapImageFilter::GetName "/**
+std::string itk::simple::ScalarToRGBColormapImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarToRGBColormapImageFilter::GetUseInputImageExtremaForScaling "/**
+bool itk::simple::ScalarToRGBColormapImageFilter::GetUseInputImageExtremaForScaling() const
+
+Set/Get UseInputImageExtremaForScaling. If true, the colormap uses the
+min and max values from the image to scale appropriately. Otherwise,
+these values can be set in the colormap manually.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarToRGBColormapImageFilter::ScalarToRGBColormapImageFilter "/**
+itk::simple::ScalarToRGBColormapImageFilter::ScalarToRGBColormapImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarToRGBColormapImageFilter::SetColormap "/**
+Self& itk::simple::ScalarToRGBColormapImageFilter::SetColormap(ColormapType Colormap)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarToRGBColormapImageFilter::SetUseInputImageExtremaForScaling "/**
+Self& itk::simple::ScalarToRGBColormapImageFilter::SetUseInputImageExtremaForScaling(bool UseInputImageExtremaForScaling)
+
+Set/Get UseInputImageExtremaForScaling. If true, the colormap uses the
+min and max values from the image to scale appropriately. Otherwise,
+these values can be set in the colormap manually.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarToRGBColormapImageFilter::ToString "/**
+std::string itk::simple::ScalarToRGBColormapImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarToRGBColormapImageFilter::UseInputImageExtremaForScalingOff "/**
+Self& itk::simple::ScalarToRGBColormapImageFilter::UseInputImageExtremaForScalingOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarToRGBColormapImageFilter::UseInputImageExtremaForScalingOn "/**
+Self& itk::simple::ScalarToRGBColormapImageFilter::UseInputImageExtremaForScalingOn()
+
+Set the value of UseInputImageExtremaForScaling to true or false
+respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarToRGBColormapImageFilter::~ScalarToRGBColormapImageFilter "/**
+itk::simple::ScalarToRGBColormapImageFilter::~ScalarToRGBColormapImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ScaleSkewVersor3DTransform "/**
+
+A over parameterized 3D Affine transform composed of the addition of a
+versor rotation matrix, a scale matrix and a skew matrix around a
+fixed center with translation.
+
+
+
+See:
+ itk::ScaleSkewVersor3DTransform
+
+
+C++ includes: sitkScaleSkewVersor3DTransform.h
+*/"
+
+%javamethodmodifiers  itk::simple::ScaleSkewVersor3DTransform::GetCenter "/**
+std::vector<double> itk::simple::ScaleSkewVersor3DTransform::GetCenter() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleSkewVersor3DTransform::GetMatrix "/**
+std::vector<double> itk::simple::ScaleSkewVersor3DTransform::GetMatrix() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleSkewVersor3DTransform::GetName "/**
+std::string itk::simple::ScaleSkewVersor3DTransform::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleSkewVersor3DTransform::GetScale "/**
+std::vector<double> itk::simple::ScaleSkewVersor3DTransform::GetScale() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleSkewVersor3DTransform::GetSkew "/**
+std::vector<double> itk::simple::ScaleSkewVersor3DTransform::GetSkew() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleSkewVersor3DTransform::GetTranslation "/**
+std::vector<double> itk::simple::ScaleSkewVersor3DTransform::GetTranslation() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleSkewVersor3DTransform::GetVersor "/**
+std::vector<double> itk::simple::ScaleSkewVersor3DTransform::GetVersor() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleSkewVersor3DTransform::ScaleSkewVersor3DTransform "/**
+itk::simple::ScaleSkewVersor3DTransform::ScaleSkewVersor3DTransform()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleSkewVersor3DTransform::ScaleSkewVersor3DTransform "/**
+itk::simple::ScaleSkewVersor3DTransform::ScaleSkewVersor3DTransform(const ScaleSkewVersor3DTransform &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleSkewVersor3DTransform::ScaleSkewVersor3DTransform "/**
+itk::simple::ScaleSkewVersor3DTransform::ScaleSkewVersor3DTransform(const Transform &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleSkewVersor3DTransform::ScaleSkewVersor3DTransform "/**
+itk::simple::ScaleSkewVersor3DTransform::ScaleSkewVersor3DTransform(const std::vector< double > &scale, const std::vector< double >
+&skew, const std::vector< double > &versor, const std::vector< double
+> &translation=std::vector< double >(3, 0.0), const std::vector<
+double > &fixedCenter=std::vector< double >(3, 0.0))
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleSkewVersor3DTransform::ScaleSkewVersor3DTransform "/**
+itk::simple::ScaleSkewVersor3DTransform::ScaleSkewVersor3DTransform(const std::vector< double > &scale, const std::vector< double >
+&skew, const std::vector< double > &axis, double angle, const
+std::vector< double > &translation=std::vector< double >(3, 0.0),
+const std::vector< double > &fixedCenter=std::vector< double >(3,
+0.0))
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleSkewVersor3DTransform::SetCenter "/**
+Self& itk::simple::ScaleSkewVersor3DTransform::SetCenter(const std::vector< double > &params)
+
+fixed parameter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleSkewVersor3DTransform::SetRotation "/**
+Self& itk::simple::ScaleSkewVersor3DTransform::SetRotation(const std::vector< double > &versor)
+
+parameter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleSkewVersor3DTransform::SetRotation "/**
+Self& itk::simple::ScaleSkewVersor3DTransform::SetRotation(const std::vector< double > &axis, double angle)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleSkewVersor3DTransform::SetScale "/**
+Self& itk::simple::ScaleSkewVersor3DTransform::SetScale(const std::vector< double > &scale)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleSkewVersor3DTransform::SetSkew "/**
+Self& itk::simple::ScaleSkewVersor3DTransform::SetSkew(const std::vector< double > &skew)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleSkewVersor3DTransform::SetTranslation "/**
+Self& itk::simple::ScaleSkewVersor3DTransform::SetTranslation(const std::vector< double > &translation)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleSkewVersor3DTransform::Translate "/**
+Self& itk::simple::ScaleSkewVersor3DTransform::Translate(const std::vector< double > &offset)
+
+additional methods
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ScaleTransform "/**
+
+A 2D or 3D anisotropic scale of coordinate space around a fixed
+center.
+
+
+
+See:
+ itk::ScaleTransform
+
+
+C++ includes: sitkScaleTransform.h
+*/"
+
+%javamethodmodifiers  itk::simple::ScaleTransform::GetCenter "/**
+std::vector<double> itk::simple::ScaleTransform::GetCenter() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleTransform::GetMatrix "/**
+std::vector<double> itk::simple::ScaleTransform::GetMatrix() const
+
+additional methods
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleTransform::GetName "/**
+std::string itk::simple::ScaleTransform::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleTransform::GetScale "/**
+std::vector<double> itk::simple::ScaleTransform::GetScale() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleTransform::ScaleTransform "/**
+itk::simple::ScaleTransform::ScaleTransform(unsigned int dimensions, const std::vector< double >
+&scale=std::vector< double >(3, 1.0))
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleTransform::ScaleTransform "/**
+itk::simple::ScaleTransform::ScaleTransform(const ScaleTransform &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleTransform::ScaleTransform "/**
+itk::simple::ScaleTransform::ScaleTransform(const Transform &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleTransform::SetCenter "/**
+Self& itk::simple::ScaleTransform::SetCenter(const std::vector< double > &params)
+
+fixed parameter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleTransform::SetScale "/**
+Self& itk::simple::ScaleTransform::SetScale(const std::vector< double > &params)
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ScaleVersor3DTransform "/**
+
+A parameterized 3D transform composed of the addition of a versor
+rotation matrix and a scale matrix around a fixed center with
+translation.
+
+
+
+See:
+ itk::ScaleVersor3DTransform
+
+
+C++ includes: sitkScaleVersor3DTransform.h
+*/"
+
+%javamethodmodifiers  itk::simple::ScaleVersor3DTransform::GetCenter "/**
+std::vector<double> itk::simple::ScaleVersor3DTransform::GetCenter() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleVersor3DTransform::GetMatrix "/**
+std::vector<double> itk::simple::ScaleVersor3DTransform::GetMatrix() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleVersor3DTransform::GetName "/**
+std::string itk::simple::ScaleVersor3DTransform::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleVersor3DTransform::GetScale "/**
+std::vector<double> itk::simple::ScaleVersor3DTransform::GetScale() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleVersor3DTransform::GetTranslation "/**
+std::vector<double> itk::simple::ScaleVersor3DTransform::GetTranslation() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleVersor3DTransform::GetVersor "/**
+std::vector<double> itk::simple::ScaleVersor3DTransform::GetVersor() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleVersor3DTransform::ScaleVersor3DTransform "/**
+itk::simple::ScaleVersor3DTransform::ScaleVersor3DTransform()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleVersor3DTransform::ScaleVersor3DTransform "/**
+itk::simple::ScaleVersor3DTransform::ScaleVersor3DTransform(const ScaleVersor3DTransform &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleVersor3DTransform::ScaleVersor3DTransform "/**
+itk::simple::ScaleVersor3DTransform::ScaleVersor3DTransform(const Transform &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleVersor3DTransform::ScaleVersor3DTransform "/**
+itk::simple::ScaleVersor3DTransform::ScaleVersor3DTransform(const std::vector< double > &scale, const std::vector< double >
+&versor, const std::vector< double > &translation=std::vector< double
+>(3, 0.0), const std::vector< double > &fixedCenter=std::vector<
+double >(3, 0.0))
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleVersor3DTransform::ScaleVersor3DTransform "/**
+itk::simple::ScaleVersor3DTransform::ScaleVersor3DTransform(const std::vector< double > &scale, const std::vector< double >
+&axis, double angle, const std::vector< double >
+&translation=std::vector< double >(3, 0.0), const std::vector< double
+> &fixedCenter=std::vector< double >(3, 0.0))
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleVersor3DTransform::SetCenter "/**
+Self& itk::simple::ScaleVersor3DTransform::SetCenter(const std::vector< double > &params)
+
+fixed parameter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleVersor3DTransform::SetRotation "/**
+Self& itk::simple::ScaleVersor3DTransform::SetRotation(const std::vector< double > &versor)
+
+parameter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleVersor3DTransform::SetRotation "/**
+Self& itk::simple::ScaleVersor3DTransform::SetRotation(const std::vector< double > &axis, double angle)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleVersor3DTransform::SetScale "/**
+Self& itk::simple::ScaleVersor3DTransform::SetScale(const std::vector< double > &scale)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleVersor3DTransform::SetTranslation "/**
+Self& itk::simple::ScaleVersor3DTransform::SetTranslation(const std::vector< double > &translation)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScaleVersor3DTransform::Translate "/**
+Self& itk::simple::ScaleVersor3DTransform::Translate(const std::vector< double > &offset)
+
+additional methods
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ShanbhagThresholdImageFilter "/**
+
+Threshold an image using the Shanbhag Threshold.
+
+
+This filter creates a binary thresholded image that separates an image
+into foreground and background components. The filter computes the
+threshold using the ShanbhagThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .
+
+
+Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+ Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/10380/3279 or http://www.insight-journal.org/browse/publication/811
+
+
+See:
+ HistogramThresholdImageFilter
+
+ itk::simple::ShanbhagThreshold for the procedural interface
+
+ itk::ShanbhagThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkShanbhagThresholdImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ShanbhagThresholdImageFilter::Execute "/**
+Image itk::simple::ShanbhagThresholdImageFilter::Execute(const Image &image, const Image &maskImage)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShanbhagThresholdImageFilter::Execute "/**
+Image itk::simple::ShanbhagThresholdImageFilter::Execute(const Image &image)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShanbhagThresholdImageFilter::Execute "/**
+Image itk::simple::ShanbhagThresholdImageFilter::Execute(const Image &image, const Image &maskImage, uint8_t insideValue,
+uint8_t outsideValue, uint32_t numberOfHistogramBins, bool maskOutput,
+uint8_t maskValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShanbhagThresholdImageFilter::Execute "/**
+Image itk::simple::ShanbhagThresholdImageFilter::Execute(const Image &image, uint8_t insideValue, uint8_t outsideValue,
+uint32_t numberOfHistogramBins, bool maskOutput, uint8_t maskValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShanbhagThresholdImageFilter::GetInsideValue "/**
+uint8_t itk::simple::ShanbhagThresholdImageFilter::GetInsideValue() const
+
+Get the \"inside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShanbhagThresholdImageFilter::GetMaskOutput "/**
+bool itk::simple::ShanbhagThresholdImageFilter::GetMaskOutput() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShanbhagThresholdImageFilter::GetMaskValue "/**
+uint8_t itk::simple::ShanbhagThresholdImageFilter::GetMaskValue() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShanbhagThresholdImageFilter::GetName "/**
+std::string itk::simple::ShanbhagThresholdImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShanbhagThresholdImageFilter::GetNumberOfHistogramBins "/**
+uint32_t itk::simple::ShanbhagThresholdImageFilter::GetNumberOfHistogramBins() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShanbhagThresholdImageFilter::GetOutsideValue "/**
+uint8_t itk::simple::ShanbhagThresholdImageFilter::GetOutsideValue() const
+
+Get the \"outside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShanbhagThresholdImageFilter::GetThreshold "/**
+double itk::simple::ShanbhagThresholdImageFilter::GetThreshold() const
+
+Get the computed threshold.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShanbhagThresholdImageFilter::MaskOutputOff "/**
+Self& itk::simple::ShanbhagThresholdImageFilter::MaskOutputOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShanbhagThresholdImageFilter::MaskOutputOn "/**
+Self& itk::simple::ShanbhagThresholdImageFilter::MaskOutputOn()
+
+Set the value of MaskOutput to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShanbhagThresholdImageFilter::SetInsideValue "/**
+Self& itk::simple::ShanbhagThresholdImageFilter::SetInsideValue(uint8_t InsideValue)
+
+Set the \"inside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShanbhagThresholdImageFilter::SetMaskOutput "/**
+Self& itk::simple::ShanbhagThresholdImageFilter::SetMaskOutput(bool MaskOutput)
+
+Do you want the output to be masked by the mask used in histogram
+construction. Only relevant if masking is in use.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShanbhagThresholdImageFilter::SetMaskValue "/**
+Self& itk::simple::ShanbhagThresholdImageFilter::SetMaskValue(uint8_t MaskValue)
+
+The value in the mask image, if used, indicating voxels that should be
+included. Default is the max of pixel type, as in the
+MaskedImageToHistogramFilter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShanbhagThresholdImageFilter::SetNumberOfHistogramBins "/**
+Self& itk::simple::ShanbhagThresholdImageFilter::SetNumberOfHistogramBins(uint32_t NumberOfHistogramBins)
+
+Set/Get the number of histogram bins.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShanbhagThresholdImageFilter::SetOutsideValue "/**
+Self& itk::simple::ShanbhagThresholdImageFilter::SetOutsideValue(uint8_t OutsideValue)
+
+Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShanbhagThresholdImageFilter::ShanbhagThresholdImageFilter "/**
+itk::simple::ShanbhagThresholdImageFilter::ShanbhagThresholdImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShanbhagThresholdImageFilter::ToString "/**
+std::string itk::simple::ShanbhagThresholdImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShanbhagThresholdImageFilter::~ShanbhagThresholdImageFilter "/**
+itk::simple::ShanbhagThresholdImageFilter::~ShanbhagThresholdImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ShapeDetectionLevelSetImageFilter "/**
+
+Segments structures in images based on a user supplied edge potential
+map.
+
+
+IMPORTANT
+The SegmentationLevelSetImageFilter class and the ShapeDetectionLevelSetFunction class contain additional information necessary to gain full
+understanding of how to use this filter.
+OVERVIEW
+This class is a level set method segmentation filter. An initial
+contour is propagated outwards (or inwards) until it ''sticks'' to the
+shape boundaries. This is done by using a level set speed function
+based on a user supplied edge potential map. This approach for
+segmentation follows that of Malladi et al (1995).
+INPUTS
+This filter requires two inputs. The first input is a initial level
+set. The initial level set is a real image which contains the initial
+contour/surface as the zero level set. For example, a signed distance
+function from the initial contour/surface is typically used. Note that
+for this algorithm the initial contour has to be wholly within (or
+wholly outside) the structure to be segmented.
+
+The second input is the feature image. For this filter, this is the
+edge potential map. General characteristics of an edge potential map
+is that it has values close to zero in regions near the edges and
+values close to one inside the shape itself. Typically, the edge
+potential map is compute from the image gradient, for example:
+\\\\[ g(I) = 1 / ( 1 + | (\\\\nabla * G)(I)| ) \\\\] \\\\[ g(I) = \\\\exp^{-|(\\\\nabla * G)(I)|} \\\\]
+
+where $ I $ is image intensity and $ (\\\\nabla * G) $ is the derivative of Gaussian operator.
+
+
+See SegmentationLevelSetImageFilter and SparseFieldLevelSetImageFilter for more information on Inputs.
+PARAMETERS
+The PropagationScaling parameter can be used to switch from
+propagation outwards (POSITIVE scaling parameter) versus propagating
+inwards (NEGATIVE scaling parameter).
+ The smoothness of the resulting contour/surface can be adjusted using
+a combination of PropagationScaling and CurvatureScaling parameters.
+The larger the CurvatureScaling parameter, the smoother the resulting
+contour. The CurvatureScaling parameter should be non-negative for
+proper operation of this algorithm. To follow the implementation in
+Malladi et al paper, set the PropagtionScaling to $\\\\pm 1.0$ and CurvatureScaling to $ \\\\epsilon $ .
+
+Note that there is no advection term for this filter. Setting the
+advection scaling will have no effect.
+
+OUTPUTS
+The filter outputs a single, scalar, real-valued image. Negative
+values in the output image represent the inside of the segmentated
+region and positive values in the image represent the outside of the
+segmented region. The zero crossings of the image correspond to the
+position of the propagating front.
+
+See SparseFieldLevelSetImageFilter and SegmentationLevelSetImageFilter for more information.
+REFERENCES
+
+\"Shape Modeling with Front Propagation: A Level Set Approach\", R.
+Malladi, J. A. Sethian and B. C. Vermuri. IEEE Trans. on Pattern
+Analysis and Machine Intelligence, Vol 17, No. 2, pp 158-174, February
+1995
+
+See:
+ SegmentationLevelSetImageFilter
+
+ ShapeDetectionLevelSetFunction
+
+ SparseFieldLevelSetImageFilter
+
+ itk::simple::ShapeDetectionLevelSet for the procedural interface
+
+ itk::ShapeDetectionLevelSetImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkShapeDetectionLevelSetImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ShapeDetectionLevelSetImageFilter::Execute "/**
+Image itk::simple::ShapeDetectionLevelSetImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShapeDetectionLevelSetImageFilter::Execute "/**
+Image itk::simple::ShapeDetectionLevelSetImageFilter::Execute(const Image &image1, const Image &image2, double maximumRMSError,
+double propagationScaling, double curvatureScaling, uint32_t
+numberOfIterations, bool reverseExpansionDirection)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShapeDetectionLevelSetImageFilter::GetCurvatureScaling "/**
+double itk::simple::ShapeDetectionLevelSetImageFilter::GetCurvatureScaling() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShapeDetectionLevelSetImageFilter::GetElapsedIterations "/**
+uint32_t itk::simple::ShapeDetectionLevelSetImageFilter::GetElapsedIterations() const
+
+Number of iterations run.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShapeDetectionLevelSetImageFilter::GetMaximumRMSError "/**
+double itk::simple::ShapeDetectionLevelSetImageFilter::GetMaximumRMSError() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShapeDetectionLevelSetImageFilter::GetName "/**
+std::string itk::simple::ShapeDetectionLevelSetImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShapeDetectionLevelSetImageFilter::GetNumberOfIterations "/**
+uint32_t itk::simple::ShapeDetectionLevelSetImageFilter::GetNumberOfIterations() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShapeDetectionLevelSetImageFilter::GetPropagationScaling "/**
+double itk::simple::ShapeDetectionLevelSetImageFilter::GetPropagationScaling() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShapeDetectionLevelSetImageFilter::GetReverseExpansionDirection "/**
+bool itk::simple::ShapeDetectionLevelSetImageFilter::GetReverseExpansionDirection() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShapeDetectionLevelSetImageFilter::GetRMSChange "/**
+double itk::simple::ShapeDetectionLevelSetImageFilter::GetRMSChange() const
+
+The Root Mean Square of the levelset upon termination.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShapeDetectionLevelSetImageFilter::ReverseExpansionDirectionOff "/**
+Self& itk::simple::ShapeDetectionLevelSetImageFilter::ReverseExpansionDirectionOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShapeDetectionLevelSetImageFilter::ReverseExpansionDirectionOn "/**
+Self& itk::simple::ShapeDetectionLevelSetImageFilter::ReverseExpansionDirectionOn()
+
+Set the value of ReverseExpansionDirection to true or false
+respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShapeDetectionLevelSetImageFilter::SetCurvatureScaling "/**
+Self& itk::simple::ShapeDetectionLevelSetImageFilter::SetCurvatureScaling(double CurvatureScaling)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShapeDetectionLevelSetImageFilter::SetMaximumRMSError "/**
+Self& itk::simple::ShapeDetectionLevelSetImageFilter::SetMaximumRMSError(double MaximumRMSError)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShapeDetectionLevelSetImageFilter::SetNumberOfIterations "/**
+Self& itk::simple::ShapeDetectionLevelSetImageFilter::SetNumberOfIterations(uint32_t NumberOfIterations)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShapeDetectionLevelSetImageFilter::SetPropagationScaling "/**
+Self& itk::simple::ShapeDetectionLevelSetImageFilter::SetPropagationScaling(double PropagationScaling)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShapeDetectionLevelSetImageFilter::SetReverseExpansionDirection "/**
+Self& itk::simple::ShapeDetectionLevelSetImageFilter::SetReverseExpansionDirection(bool ReverseExpansionDirection)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShapeDetectionLevelSetImageFilter::ShapeDetectionLevelSetImageFilter "/**
+itk::simple::ShapeDetectionLevelSetImageFilter::ShapeDetectionLevelSetImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShapeDetectionLevelSetImageFilter::ToString "/**
+std::string itk::simple::ShapeDetectionLevelSetImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShapeDetectionLevelSetImageFilter::~ShapeDetectionLevelSetImageFilter "/**
+itk::simple::ShapeDetectionLevelSetImageFilter::~ShapeDetectionLevelSetImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ShiftScaleImageFilter "/**
+
+Shift and scale the pixels in an image.
+
+
+ShiftScaleImageFilter shifts the input pixel by Shift (default 0.0) and then scales the
+pixel by Scale (default 1.0). All computattions are performed in the
+precision of the input pixel's RealType. Before assigning the computed
+value to the output pixel, the value is clamped at the NonpositiveMin
+and max of the pixel type.
+See:
+ itk::simple::ShiftScale for the procedural interface
+
+ itk::ShiftScaleImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkShiftScaleImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ShiftScaleImageFilter::Execute "/**
+Image itk::simple::ShiftScaleImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShiftScaleImageFilter::Execute "/**
+Image itk::simple::ShiftScaleImageFilter::Execute(const Image &image1, double shift, double scale)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShiftScaleImageFilter::GetName "/**
+std::string itk::simple::ShiftScaleImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShiftScaleImageFilter::GetScale "/**
+double itk::simple::ShiftScaleImageFilter::GetScale() const
+
+Set/Get the amount to Scale each Pixel. The Scale is applied after the
+Shift.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShiftScaleImageFilter::GetShift "/**
+double itk::simple::ShiftScaleImageFilter::GetShift() const
+
+Set/Get the amount to Shift each Pixel. The shift is followed by a
+Scale.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShiftScaleImageFilter::SetScale "/**
+Self& itk::simple::ShiftScaleImageFilter::SetScale(double Scale)
+
+Set/Get the amount to Scale each Pixel. The Scale is applied after the
+Shift.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShiftScaleImageFilter::SetShift "/**
+Self& itk::simple::ShiftScaleImageFilter::SetShift(double Shift)
+
+Set/Get the amount to Shift each Pixel. The shift is followed by a
+Scale.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShiftScaleImageFilter::ShiftScaleImageFilter "/**
+itk::simple::ShiftScaleImageFilter::ShiftScaleImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShiftScaleImageFilter::ToString "/**
+std::string itk::simple::ShiftScaleImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShiftScaleImageFilter::~ShiftScaleImageFilter "/**
+itk::simple::ShiftScaleImageFilter::~ShiftScaleImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ShotNoiseImageFilter "/**
+
+Alter an image with shot noise.
+
+
+The shot noise follows a Poisson distribution:
+
+
+$ I = N(I_0) $
+
+where $ N(I_0) $ is a Poisson-distributed random variable of mean $ I_0 $ . The noise is thus dependent on the pixel intensities in the image.
+ The intensities in the image can be scaled by a user provided value
+to map pixel values to the actual number of particles. The scaling can
+be seen as the inverse of the gain used during the acquisition. The
+noisy signal is then scaled back to its input intensity range:
+
+
+$ I = \\\\frac{N(I_0 \\\\times s)}{s} $
+
+where $ s $ is the scale factor.
+ The Poisson-distributed variable $ \\\\lambda $ is computed by using the algorithm:
+
+
+$ \\\\begin{array}{l} k \\\\leftarrow 0 \\\\\\\\ p \\\\leftarrow 1
+\\\\\\\\ \\\\textbf{repeat} \\\\\\\\ \\\\left\\\\{ \\\\begin{array}{l}
+k \\\\leftarrow k+1 \\\\\\\\ p \\\\leftarrow p \\\\ast U()
+\\\\end{array} \\\\right. \\\\\\\\ \\\\textbf{until } p >
+e^{\\\\lambda} \\\\\\\\ \\\\textbf{return} (k) \\\\end{array} $
+
+where $ U() $ provides a uniformly distributed random variable in the interval $ [0,1] $ .
+ This algorithm is very inefficient for large values of $ \\\\lambda $ , though. Fortunately, the Poisson distribution can be accurately
+approximated by a Gaussian distribution of mean and variance $ \\\\lambda $ when $ \\\\lambda $ is large enough. In this implementation, this value is considered to
+be 50. This leads to the faster algorithm:
+
+
+$ \\\\lambda + \\\\sqrt{\\\\lambda} \\\\times N()$
+
+where $ N() $ is a normally distributed random variable of mean 0 and variance 1.
+
+Gaetan Lehmann
+ This code was contributed in the Insight Journal paper \"Noise
+Simulation\". https://hdl.handle.net/10380/3158
+See:
+ itk::simple::ShotNoise for the procedural interface
+
+ itk::ShotNoiseImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkShotNoiseImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ShotNoiseImageFilter::Execute "/**
+Image itk::simple::ShotNoiseImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShotNoiseImageFilter::Execute "/**
+Image itk::simple::ShotNoiseImageFilter::Execute(const Image &image1, double scale, uint32_t seed)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShotNoiseImageFilter::GetName "/**
+std::string itk::simple::ShotNoiseImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShotNoiseImageFilter::GetScale "/**
+double itk::simple::ShotNoiseImageFilter::GetScale() const
+
+Set/Get the value to map the pixel value to the actual particle
+counting. The scaling can be seen as the inverse of the gain used
+during the acquisition. The noisy signal is then scaled back to its
+input intensity range. Defaults to 1.0.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShotNoiseImageFilter::GetSeed "/**
+uint32_t itk::simple::ShotNoiseImageFilter::GetSeed() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShotNoiseImageFilter::SetScale "/**
+Self& itk::simple::ShotNoiseImageFilter::SetScale(double Scale)
+
+Set/Get the value to map the pixel value to the actual particle
+counting. The scaling can be seen as the inverse of the gain used
+during the acquisition. The noisy signal is then scaled back to its
+input intensity range. Defaults to 1.0.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShotNoiseImageFilter::SetSeed "/**
+Self& itk::simple::ShotNoiseImageFilter::SetSeed(uint32_t Seed)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShotNoiseImageFilter::ShotNoiseImageFilter "/**
+itk::simple::ShotNoiseImageFilter::ShotNoiseImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShotNoiseImageFilter::ToString "/**
+std::string itk::simple::ShotNoiseImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShotNoiseImageFilter::~ShotNoiseImageFilter "/**
+itk::simple::ShotNoiseImageFilter::~ShotNoiseImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ShrinkImageFilter "/**
+
+Reduce the size of an image by an integer factor in each dimension.
+
+
+ShrinkImageFilter reduces the size of an image by an integer factor in each dimension.
+The algorithm implemented is a simple subsample. The output image size
+in each dimension is given by:
+
+outputSize[j] = max( std::floor(inputSize[j]/shrinkFactor[j]), 1 );
+
+NOTE: The physical centers of the input and output will be the same.
+Because of this, the Origin of the output may not be the same as the
+Origin of the input. Since this filter produces an image which is a
+different resolution, origin and with different pixel spacing than its
+input image, it needs to override several of the methods defined in ProcessObject in order to properly manage the pipeline execution model. In
+particular, this filter overrides
+ProcessObject::GenerateInputRequestedRegion() and
+ProcessObject::GenerateOutputInformation() .
+
+This filter is implemented as a multithreaded filter. It provides a
+ThreadedGenerateData() method for its implementation.
+
+Wiki Examples:
+
+All Examples
+
+Shrink an image
+See:
+ itk::simple::Shrink for the procedural interface
+
+ itk::ShrinkImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkShrinkImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ShrinkImageFilter::Execute "/**
+Image itk::simple::ShrinkImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShrinkImageFilter::Execute "/**
+Image itk::simple::ShrinkImageFilter::Execute(const Image &image1, const std::vector< unsigned int >
+&shrinkFactors)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShrinkImageFilter::GetName "/**
+std::string itk::simple::ShrinkImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShrinkImageFilter::GetShrinkFactors "/**
+std::vector<unsigned int> itk::simple::ShrinkImageFilter::GetShrinkFactors() const
+
+Get the shrink factors.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShrinkImageFilter::SetShrinkFactor "/**
+Self& itk::simple::ShrinkImageFilter::SetShrinkFactor(unsigned int s)
+
+Custom public declarations
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShrinkImageFilter::SetShrinkFactors "/**
+Self& itk::simple::ShrinkImageFilter::SetShrinkFactors(const std::vector< unsigned int > &ShrinkFactors)
+
+Set the shrink factors. Values are clamped to a minimum value of 1.
+Default is 1 for all dimensions.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShrinkImageFilter::ShrinkImageFilter "/**
+itk::simple::ShrinkImageFilter::ShrinkImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShrinkImageFilter::ToString "/**
+std::string itk::simple::ShrinkImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShrinkImageFilter::~ShrinkImageFilter "/**
+itk::simple::ShrinkImageFilter::~ShrinkImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::SigmoidImageFilter "/**
+
+Computes the sigmoid function pixel-wise.
+
+
+A linear transformation is applied first on the argument of the
+sigmoid function. The resulting total transform is given by
+
+\\\\[ f(x) = (Max-Min) \\\\cdot \\\\frac{1}{\\\\left(1+e^{- \\\\frac{
+x - \\\\beta }{\\\\alpha}}\\\\right)} + Min \\\\]
+
+Every output pixel is equal to f(x). Where x is the intensity of the
+homologous input pixel, and alpha and beta are user-provided
+constants.
+
+Wiki Examples:
+
+All Examples
+
+Pass image pixels through a sigmoid function
+See:
+ itk::simple::Sigmoid for the procedural interface
+
+ itk::SigmoidImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkSigmoidImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::SigmoidImageFilter::Execute "/**
+Image itk::simple::SigmoidImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SigmoidImageFilter::Execute "/**
+Image itk::simple::SigmoidImageFilter::Execute(const Image &image1, double alpha, double beta, double outputMaximum,
+double outputMinimum)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SigmoidImageFilter::GetAlpha "/**
+double itk::simple::SigmoidImageFilter::GetAlpha() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SigmoidImageFilter::GetBeta "/**
+double itk::simple::SigmoidImageFilter::GetBeta() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SigmoidImageFilter::GetName "/**
+std::string itk::simple::SigmoidImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SigmoidImageFilter::GetOutputMaximum "/**
+double itk::simple::SigmoidImageFilter::GetOutputMaximum() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SigmoidImageFilter::GetOutputMinimum "/**
+double itk::simple::SigmoidImageFilter::GetOutputMinimum() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SigmoidImageFilter::SetAlpha "/**
+Self& itk::simple::SigmoidImageFilter::SetAlpha(double Alpha)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SigmoidImageFilter::SetBeta "/**
+Self& itk::simple::SigmoidImageFilter::SetBeta(double Beta)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SigmoidImageFilter::SetOutputMaximum "/**
+Self& itk::simple::SigmoidImageFilter::SetOutputMaximum(double OutputMaximum)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SigmoidImageFilter::SetOutputMinimum "/**
+Self& itk::simple::SigmoidImageFilter::SetOutputMinimum(double OutputMinimum)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SigmoidImageFilter::SigmoidImageFilter "/**
+itk::simple::SigmoidImageFilter::SigmoidImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SigmoidImageFilter::ToString "/**
+std::string itk::simple::SigmoidImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SigmoidImageFilter::~SigmoidImageFilter "/**
+itk::simple::SigmoidImageFilter::~SigmoidImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::SignedDanielssonDistanceMapImageFilter "/**
+
+This class is parametrized over the type of the input image and the
+type of the output image.
+
+This filter computes the distance map of the input image as an
+approximation with pixel accuracy to the Euclidean distance.
+
+For purposes of evaluating the signed distance map, the input is
+assumed to be binary composed of pixels with value 0 and non-zero.
+
+The inside is considered as having negative distances. Outside is
+treated as having positive distances. To change the convention, use
+the InsideIsPositive(bool) function.
+
+As a convention, the distance is evaluated from the boundary of the ON
+pixels.
+
+The filter returns
+
+
+A signed distance map with the approximation to the euclidean
+distance.
+
+A voronoi partition. (See itkDanielssonDistanceMapImageFilter)
+
+A vector map containing the component of the vector relating the
+current pixel with the closest point of the closest object to this
+pixel. Given that the components of the distance are computed in
+\"pixels\", the vector is represented by an itk::Offset . That is, physical coordinates are not used. (See
+itkDanielssonDistanceMapImageFilter)
+ This filter internally uses the DanielssonDistanceMap filter. This
+filter is N-dimensional.
+
+
+See:
+ itkDanielssonDistanceMapImageFilter
+
+ itk::simple::SignedDanielssonDistanceMap for the procedural interface
+
+ itk::SignedDanielssonDistanceMapImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkSignedDanielssonDistanceMapImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::SignedDanielssonDistanceMapImageFilter::Execute "/**
+Image itk::simple::SignedDanielssonDistanceMapImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedDanielssonDistanceMapImageFilter::Execute "/**
+Image itk::simple::SignedDanielssonDistanceMapImageFilter::Execute(const Image &image1, bool insideIsPositive, bool squaredDistance,
+bool useImageSpacing)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedDanielssonDistanceMapImageFilter::GetInsideIsPositive "/**
+bool itk::simple::SignedDanielssonDistanceMapImageFilter::GetInsideIsPositive() const
+
+Get if the inside represents positive values in the signed distance
+map. See GetInsideIsPositive()
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedDanielssonDistanceMapImageFilter::GetName "/**
+std::string itk::simple::SignedDanielssonDistanceMapImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedDanielssonDistanceMapImageFilter::GetSquaredDistance "/**
+bool itk::simple::SignedDanielssonDistanceMapImageFilter::GetSquaredDistance() const
+
+Get the distance squared.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedDanielssonDistanceMapImageFilter::GetUseImageSpacing "/**
+bool itk::simple::SignedDanielssonDistanceMapImageFilter::GetUseImageSpacing() const
+
+Get whether spacing is used.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedDanielssonDistanceMapImageFilter::InsideIsPositiveOff "/**
+Self& itk::simple::SignedDanielssonDistanceMapImageFilter::InsideIsPositiveOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedDanielssonDistanceMapImageFilter::InsideIsPositiveOn "/**
+Self& itk::simple::SignedDanielssonDistanceMapImageFilter::InsideIsPositiveOn()
+
+Set the value of InsideIsPositive to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedDanielssonDistanceMapImageFilter::SetInsideIsPositive "/**
+Self& itk::simple::SignedDanielssonDistanceMapImageFilter::SetInsideIsPositive(bool InsideIsPositive)
+
+Set if the inside represents positive values in the signed distance
+map. By convention ON pixels are treated as inside pixels.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedDanielssonDistanceMapImageFilter::SetSquaredDistance "/**
+Self& itk::simple::SignedDanielssonDistanceMapImageFilter::SetSquaredDistance(bool SquaredDistance)
+
+Set if the distance should be squared.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedDanielssonDistanceMapImageFilter::SetUseImageSpacing "/**
+Self& itk::simple::SignedDanielssonDistanceMapImageFilter::SetUseImageSpacing(bool UseImageSpacing)
+
+Set if image spacing should be used in computing distances.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedDanielssonDistanceMapImageFilter::SignedDanielssonDistanceMapImageFilter "/**
+itk::simple::SignedDanielssonDistanceMapImageFilter::SignedDanielssonDistanceMapImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedDanielssonDistanceMapImageFilter::SquaredDistanceOff "/**
+Self& itk::simple::SignedDanielssonDistanceMapImageFilter::SquaredDistanceOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedDanielssonDistanceMapImageFilter::SquaredDistanceOn "/**
+Self& itk::simple::SignedDanielssonDistanceMapImageFilter::SquaredDistanceOn()
+
+Set the value of SquaredDistance to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedDanielssonDistanceMapImageFilter::ToString "/**
+std::string itk::simple::SignedDanielssonDistanceMapImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedDanielssonDistanceMapImageFilter::UseImageSpacingOff "/**
+Self& itk::simple::SignedDanielssonDistanceMapImageFilter::UseImageSpacingOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedDanielssonDistanceMapImageFilter::UseImageSpacingOn "/**
+Self& itk::simple::SignedDanielssonDistanceMapImageFilter::UseImageSpacingOn()
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedDanielssonDistanceMapImageFilter::~SignedDanielssonDistanceMapImageFilter "/**
+itk::simple::SignedDanielssonDistanceMapImageFilter::~SignedDanielssonDistanceMapImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::SignedMaurerDistanceMapImageFilter "/**
+
+This filter calculates the Euclidean distance transform of a binary
+image in linear time for arbitrary dimensions.
+
+
+Inputs and Outputs
+This is an image-to-image filter. The dimensionality is arbitrary. The
+only dimensionality constraint is that the input and output images be
+of the same dimensions and size. To maintain integer arithmetic within
+the filter, the default output is the signed squared distance. This
+implies that the input image should be of type \"unsigned int\" or
+\"int\" whereas the output image is of type \"int\". Obviously, if the
+user wishes to utilize the image spacing or to have a filter with the
+Euclidean distance (as opposed to the squared distance), output image
+types of float or double should be used.
+ The inside is considered as having negative distances. Outside is
+treated as having positive distances. To change the convention, use
+the InsideIsPositive(bool) function.
+
+Parameters
+Set/GetBackgroundValue specifies the background of the value of the
+input binary image. Normally this is zero and, as such, zero is the
+default value. Other than that, the usage is completely analogous to
+the itk::DanielssonDistanceImageFilter class except it does not return
+the Voronoi map.
+ Reference: C. R. Maurer, Jr., R. Qi, and V. Raghavan, \"A Linear Time
+Algorithm for Computing Exact Euclidean Distance Transforms of Binary
+Images in Arbitrary Dimensions\", IEEE - Transactions on Pattern
+Analysis and Machine Intelligence, 25(2): 265-270, 2003.
+See:
+ itk::simple::SignedMaurerDistanceMap for the procedural interface
+
+ itk::SignedMaurerDistanceMapImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkSignedMaurerDistanceMapImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::SignedMaurerDistanceMapImageFilter::Execute "/**
+Image itk::simple::SignedMaurerDistanceMapImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedMaurerDistanceMapImageFilter::Execute "/**
+Image itk::simple::SignedMaurerDistanceMapImageFilter::Execute(const Image &image1, bool insideIsPositive, bool squaredDistance,
+bool useImageSpacing)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedMaurerDistanceMapImageFilter::GetInsideIsPositive "/**
+bool itk::simple::SignedMaurerDistanceMapImageFilter::GetInsideIsPositive() const
+
+Get if the inside represents positive values in the signed distance
+map.
+See:
+ GetInsideIsPositive()
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedMaurerDistanceMapImageFilter::GetName "/**
+std::string itk::simple::SignedMaurerDistanceMapImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedMaurerDistanceMapImageFilter::GetSquaredDistance "/**
+bool itk::simple::SignedMaurerDistanceMapImageFilter::GetSquaredDistance() const
+
+Get the distance squared.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedMaurerDistanceMapImageFilter::GetUseImageSpacing "/**
+bool itk::simple::SignedMaurerDistanceMapImageFilter::GetUseImageSpacing() const
+
+Get whether spacing is used.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedMaurerDistanceMapImageFilter::InsideIsPositiveOff "/**
+Self& itk::simple::SignedMaurerDistanceMapImageFilter::InsideIsPositiveOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedMaurerDistanceMapImageFilter::InsideIsPositiveOn "/**
+Self& itk::simple::SignedMaurerDistanceMapImageFilter::InsideIsPositiveOn()
+
+Set the value of InsideIsPositive to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedMaurerDistanceMapImageFilter::SetInsideIsPositive "/**
+Self& itk::simple::SignedMaurerDistanceMapImageFilter::SetInsideIsPositive(bool InsideIsPositive)
+
+Set if the inside represents positive values in the signed distance
+map. By convention ON pixels are treated as inside pixels.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedMaurerDistanceMapImageFilter::SetSquaredDistance "/**
+Self& itk::simple::SignedMaurerDistanceMapImageFilter::SetSquaredDistance(bool SquaredDistance)
+
+Set if the distance should be squared.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedMaurerDistanceMapImageFilter::SetUseImageSpacing "/**
+Self& itk::simple::SignedMaurerDistanceMapImageFilter::SetUseImageSpacing(bool UseImageSpacing)
+
+Set if image spacing should be used in computing distances.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedMaurerDistanceMapImageFilter::SignedMaurerDistanceMapImageFilter "/**
+itk::simple::SignedMaurerDistanceMapImageFilter::SignedMaurerDistanceMapImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedMaurerDistanceMapImageFilter::SquaredDistanceOff "/**
+Self& itk::simple::SignedMaurerDistanceMapImageFilter::SquaredDistanceOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedMaurerDistanceMapImageFilter::SquaredDistanceOn "/**
+Self& itk::simple::SignedMaurerDistanceMapImageFilter::SquaredDistanceOn()
+
+Set the value of SquaredDistance to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedMaurerDistanceMapImageFilter::ToString "/**
+std::string itk::simple::SignedMaurerDistanceMapImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedMaurerDistanceMapImageFilter::UseImageSpacingOff "/**
+Self& itk::simple::SignedMaurerDistanceMapImageFilter::UseImageSpacingOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedMaurerDistanceMapImageFilter::UseImageSpacingOn "/**
+Self& itk::simple::SignedMaurerDistanceMapImageFilter::UseImageSpacingOn()
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedMaurerDistanceMapImageFilter::~SignedMaurerDistanceMapImageFilter "/**
+itk::simple::SignedMaurerDistanceMapImageFilter::~SignedMaurerDistanceMapImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::Similarity2DTransform "/**
+
+A similarity 2D transform with rotation in radians and isotropic
+scaling around a fixed center with translation.
+
+
+
+See:
+ itk::Similarity2DTransform
+
+
+C++ includes: sitkSimilarity2DTransform.h
+*/"
+
+%javamethodmodifiers  itk::simple::Similarity2DTransform::GetAngle "/**
+double itk::simple::Similarity2DTransform::GetAngle() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity2DTransform::GetCenter "/**
+std::vector<double> itk::simple::Similarity2DTransform::GetCenter() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity2DTransform::GetMatrix "/**
+std::vector<double> itk::simple::Similarity2DTransform::GetMatrix() const
+
+additional methods
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity2DTransform::GetName "/**
+std::string itk::simple::Similarity2DTransform::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity2DTransform::GetScale "/**
+double itk::simple::Similarity2DTransform::GetScale() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity2DTransform::GetTranslation "/**
+std::vector<double> itk::simple::Similarity2DTransform::GetTranslation() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity2DTransform::SetAngle "/**
+Self& itk::simple::Similarity2DTransform::SetAngle(double angle)
+
+parameter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity2DTransform::SetCenter "/**
+Self& itk::simple::Similarity2DTransform::SetCenter(const std::vector< double > &params)
+
+fixed parameter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity2DTransform::SetMatrix "/**
+Self& itk::simple::Similarity2DTransform::SetMatrix(const std::vector< double > &matrix, double tolerance=1e-10)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity2DTransform::SetScale "/**
+Self& itk::simple::Similarity2DTransform::SetScale(double scale)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity2DTransform::SetTranslation "/**
+Self& itk::simple::Similarity2DTransform::SetTranslation(const std::vector< double > &translation)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity2DTransform::Similarity2DTransform "/**
+itk::simple::Similarity2DTransform::Similarity2DTransform()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity2DTransform::Similarity2DTransform "/**
+itk::simple::Similarity2DTransform::Similarity2DTransform(double scaleFactor, double angle=0.0, const std::vector< double >
+&translation=std::vector< double >(2, 0.0), const std::vector< double
+> &fixedCenter=std::vector< double >(2, 0.0))
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity2DTransform::Similarity2DTransform "/**
+itk::simple::Similarity2DTransform::Similarity2DTransform(const Similarity2DTransform &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity2DTransform::Similarity2DTransform "/**
+itk::simple::Similarity2DTransform::Similarity2DTransform(const Transform &)
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::Similarity3DTransform "/**
+
+A similarity 3D transform with rotation as a versor, and isotropic
+scaling around a fixed center with translation.
+
+
+
+See:
+ itk::Similarity3DTransform
+
+
+C++ includes: sitkSimilarity3DTransform.h
+*/"
+
+%javamethodmodifiers  itk::simple::Similarity3DTransform::GetCenter "/**
+std::vector<double> itk::simple::Similarity3DTransform::GetCenter() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity3DTransform::GetMatrix "/**
+std::vector<double> itk::simple::Similarity3DTransform::GetMatrix() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity3DTransform::GetName "/**
+std::string itk::simple::Similarity3DTransform::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity3DTransform::GetScale "/**
+double itk::simple::Similarity3DTransform::GetScale() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity3DTransform::GetTranslation "/**
+std::vector<double> itk::simple::Similarity3DTransform::GetTranslation() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity3DTransform::GetVersor "/**
+std::vector<double> itk::simple::Similarity3DTransform::GetVersor() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity3DTransform::SetCenter "/**
+Self& itk::simple::Similarity3DTransform::SetCenter(const std::vector< double > &params)
+
+fixed parameter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity3DTransform::SetMatrix "/**
+Self& itk::simple::Similarity3DTransform::SetMatrix(const std::vector< double > &matrix, double tolerance=1e-10)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity3DTransform::SetRotation "/**
+Self& itk::simple::Similarity3DTransform::SetRotation(const std::vector< double > &versor)
+
+parameter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity3DTransform::SetRotation "/**
+Self& itk::simple::Similarity3DTransform::SetRotation(const std::vector< double > &axis, double angle)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity3DTransform::SetScale "/**
+Self& itk::simple::Similarity3DTransform::SetScale(double scale)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity3DTransform::SetTranslation "/**
+Self& itk::simple::Similarity3DTransform::SetTranslation(const std::vector< double > &translation)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity3DTransform::Similarity3DTransform "/**
+itk::simple::Similarity3DTransform::Similarity3DTransform()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity3DTransform::Similarity3DTransform "/**
+itk::simple::Similarity3DTransform::Similarity3DTransform(const Similarity3DTransform &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity3DTransform::Similarity3DTransform "/**
+itk::simple::Similarity3DTransform::Similarity3DTransform(const Transform &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity3DTransform::Similarity3DTransform "/**
+itk::simple::Similarity3DTransform::Similarity3DTransform(double scaleFactor, const std::vector< double > &versor, const
+std::vector< double > &translation=std::vector< double >(3, 0.0),
+const std::vector< double > &fixedCenter=std::vector< double >(3,
+0.0))
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity3DTransform::Similarity3DTransform "/**
+itk::simple::Similarity3DTransform::Similarity3DTransform(double scaleFactor, const std::vector< double > &axis, double angle,
+const std::vector< double > &translation=std::vector< double >(3,
+0.0), const std::vector< double > &fixedCenter=std::vector< double
+>(3, 0.0))
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Similarity3DTransform::Translate "/**
+Self& itk::simple::Similarity3DTransform::Translate(const std::vector< double > &offset)
+
+additional methods
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::SimilarityIndexImageFilter "/**
+
+Measures the similarity between the set of non-zero pixels of two
+images.
+
+
+SimilarityIndexImageFilter measures the similarity between the set non-zero pixels of two images
+using the following formula: \\\\[ S = \\\\frac{2 | A \\\\cap B |}{|A| + |B|} \\\\] where $A$ and $B$ are respectively the set of non-zero pixels in the first and second
+input images. Operator $|\\\\cdot|$ represents the size of a set and $\\\\cap$ represents the intersection of two sets.
+
+The measure is derived from a reliability measure known as the kappa
+statistic. $S$ is sensitive to both differences in size and in location and have
+been in the literature for comparing two segmentation masks. For more
+information see: \"Morphometric Analysis of White Matter Lesions in MR
+Images: Method and Validation\", A. P. Zijdenbos, B. M. Dawant, R. A.
+Margolin and A. C. Palmer, IEEE Trans. on Medical Imaging, 13(4) pp
+716-724,1994
+
+This filter requires the largest possible region of the first image
+and the same corresponding region in the second image. It behaves as
+filter with two input and one output. Thus it can be inserted in a
+pipeline with other filters. The filter passes the first input through
+unmodified.
+
+This filter is templated over the two input image type. It assume both
+image have the same number of dimensions.
+
+
+See:
+ itk::SimilarityIndexImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkSimilarityIndexImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::SimilarityIndexImageFilter::Execute "/**
+void itk::simple::SimilarityIndexImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SimilarityIndexImageFilter::GetName "/**
+std::string itk::simple::SimilarityIndexImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SimilarityIndexImageFilter::GetSimilarityIndex "/**
+double itk::simple::SimilarityIndexImageFilter::GetSimilarityIndex() const
+
+Return the computed similarity index.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SimilarityIndexImageFilter::SimilarityIndexImageFilter "/**
+itk::simple::SimilarityIndexImageFilter::SimilarityIndexImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SimilarityIndexImageFilter::ToString "/**
+std::string itk::simple::SimilarityIndexImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SimilarityIndexImageFilter::~SimilarityIndexImageFilter "/**
+itk::simple::SimilarityIndexImageFilter::~SimilarityIndexImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::SimpleContourExtractorImageFilter "/**
+
+Computes an image of contours which will be the contour of the first
+image.
+
+
+A pixel of the source image is considered to belong to the contour if
+its pixel value is equal to the input foreground value and it has in
+its neighborhood at least one pixel which its pixel value is equal to
+the input background value. The output image will have pixels which
+will be set to the output foreground value if they belong to the
+contour, otherwise they will be set to the output background value.
+
+The neighborhood \"radius\" is set thanks to the radius params.
+
+
+See:
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+
+ itk::simple::SimpleContourExtractor for the procedural interface
+
+ itk::SimpleContourExtractorImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkSimpleContourExtractorImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::SimpleContourExtractorImageFilter::Execute "/**
+Image itk::simple::SimpleContourExtractorImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SimpleContourExtractorImageFilter::Execute "/**
+Image itk::simple::SimpleContourExtractorImageFilter::Execute(const Image &image1, double inputForegroundValue, double
+inputBackgroundValue, const std::vector< unsigned int > &radius,
+double outputForegroundValue, double outputBackgroundValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SimpleContourExtractorImageFilter::GetInputBackgroundValue "/**
+double itk::simple::SimpleContourExtractorImageFilter::GetInputBackgroundValue() const
+
+Get the background value used in order to identify a background pixel
+in the input image.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SimpleContourExtractorImageFilter::GetInputForegroundValue "/**
+double itk::simple::SimpleContourExtractorImageFilter::GetInputForegroundValue() const
+
+Get the foreground value used in order to identify a foreground pixel
+in the input image.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SimpleContourExtractorImageFilter::GetName "/**
+std::string itk::simple::SimpleContourExtractorImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SimpleContourExtractorImageFilter::GetOutputBackgroundValue "/**
+double itk::simple::SimpleContourExtractorImageFilter::GetOutputBackgroundValue() const
+
+Get the background value used in order to identify a background pixel
+in the output image.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SimpleContourExtractorImageFilter::GetOutputForegroundValue "/**
+double itk::simple::SimpleContourExtractorImageFilter::GetOutputForegroundValue() const
+
+Get the foreground value used in order to identify a foreground pixel
+in the output image.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SimpleContourExtractorImageFilter::GetRadius "/**
+std::vector<unsigned int> itk::simple::SimpleContourExtractorImageFilter::GetRadius() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SimpleContourExtractorImageFilter::SetInputBackgroundValue "/**
+Self& itk::simple::SimpleContourExtractorImageFilter::SetInputBackgroundValue(double InputBackgroundValue)
+
+Set the background value used in order to identify a background pixel
+in the input image.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SimpleContourExtractorImageFilter::SetInputForegroundValue "/**
+Self& itk::simple::SimpleContourExtractorImageFilter::SetInputForegroundValue(double InputForegroundValue)
+
+Set the foreground value used in order to identify a foreground pixel
+in the input image.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SimpleContourExtractorImageFilter::SetOutputBackgroundValue "/**
+Self& itk::simple::SimpleContourExtractorImageFilter::SetOutputBackgroundValue(double OutputBackgroundValue)
+
+Set the background value used in order to identify a background pixel
+in the output image.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SimpleContourExtractorImageFilter::SetOutputForegroundValue "/**
+Self& itk::simple::SimpleContourExtractorImageFilter::SetOutputForegroundValue(double OutputForegroundValue)
+
+Set the foreground value used in order to identify a foreground pixel
+in the output image.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SimpleContourExtractorImageFilter::SetRadius "/**
+Self& itk::simple::SimpleContourExtractorImageFilter::SetRadius(const std::vector< unsigned int > &Radius)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SimpleContourExtractorImageFilter::SetRadius "/**
+Self& itk::simple::SimpleContourExtractorImageFilter::SetRadius(unsigned int value)
+
+Set the values of the Radius vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SimpleContourExtractorImageFilter::SimpleContourExtractorImageFilter "/**
+itk::simple::SimpleContourExtractorImageFilter::SimpleContourExtractorImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SimpleContourExtractorImageFilter::ToString "/**
+std::string itk::simple::SimpleContourExtractorImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SimpleContourExtractorImageFilter::~SimpleContourExtractorImageFilter "/**
+itk::simple::SimpleContourExtractorImageFilter::~SimpleContourExtractorImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::SinImageFilter "/**
+
+Computes the sine of each pixel.
+
+
+The computations are performed using std::sin(x).
+
+Wiki Examples:
+
+All Examples
+
+Compute the sine of each pixel.
+See:
+ itk::simple::Sin for the procedural interface
+
+ itk::SinImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkSinImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::SinImageFilter::Execute "/**
+Image itk::simple::SinImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SinImageFilter::GetName "/**
+std::string itk::simple::SinImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SinImageFilter::SinImageFilter "/**
+itk::simple::SinImageFilter::SinImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SinImageFilter::ToString "/**
+std::string itk::simple::SinImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SinImageFilter::~SinImageFilter "/**
+itk::simple::SinImageFilter::~SinImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::SliceImageFilter "/**
+
+
+See:
+ itk::simple::Slice for the procedural interface
+
+ itk::SliceImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkSliceImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::SliceImageFilter::Execute "/**
+Image itk::simple::SliceImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SliceImageFilter::Execute "/**
+Image itk::simple::SliceImageFilter::Execute(const Image &image1, const std::vector< int32_t > &start, const
+std::vector< int32_t > &stop, const std::vector< int > &step)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SliceImageFilter::GetName "/**
+std::string itk::simple::SliceImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SliceImageFilter::GetStart "/**
+std::vector<int32_t> itk::simple::SliceImageFilter::GetStart() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SliceImageFilter::GetStep "/**
+std::vector<int> itk::simple::SliceImageFilter::GetStep() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SliceImageFilter::GetStop "/**
+std::vector<int32_t> itk::simple::SliceImageFilter::GetStop() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SliceImageFilter::SetStart "/**
+Self& itk::simple::SliceImageFilter::SetStart(const std::vector< int32_t > &Start)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SliceImageFilter::SetStep "/**
+Self& itk::simple::SliceImageFilter::SetStep(const std::vector< int > &Step)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SliceImageFilter::SetStep "/**
+Self& itk::simple::SliceImageFilter::SetStep(int value)
+
+Set the values of the Step vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SliceImageFilter::SetStop "/**
+Self& itk::simple::SliceImageFilter::SetStop(const std::vector< int32_t > &Stop)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SliceImageFilter::SliceImageFilter "/**
+itk::simple::SliceImageFilter::SliceImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SliceImageFilter::ToString "/**
+std::string itk::simple::SliceImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SliceImageFilter::~SliceImageFilter "/**
+itk::simple::SliceImageFilter::~SliceImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::SmoothingRecursiveGaussianImageFilter "/**
+
+Computes the smoothing of an image by convolution with the Gaussian
+kernels implemented as IIR filters.
+
+
+This filter is implemented using the recursive gaussian filters. For
+multi-component images, the filter works on each component
+independently.
+
+For this filter to be able to run in-place the input and output image
+types need to be the same and/or the same type as the RealImageType.
+
+Wiki Examples:
+
+All Examples
+
+Gaussian smoothing that works with image adaptors
+See:
+ itk::simple::SmoothingRecursiveGaussian for the procedural interface
+
+ itk::SmoothingRecursiveGaussianImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkSmoothingRecursiveGaussianImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::SmoothingRecursiveGaussianImageFilter::Execute "/**
+Image itk::simple::SmoothingRecursiveGaussianImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SmoothingRecursiveGaussianImageFilter::Execute "/**
+Image itk::simple::SmoothingRecursiveGaussianImageFilter::Execute(const Image &image1, double sigma, bool normalizeAcrossScale)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SmoothingRecursiveGaussianImageFilter::GetName "/**
+std::string itk::simple::SmoothingRecursiveGaussianImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SmoothingRecursiveGaussianImageFilter::GetNormalizeAcrossScale "/**
+bool itk::simple::SmoothingRecursiveGaussianImageFilter::GetNormalizeAcrossScale() const
+
+This method does not effect the output of this filter.
+See:
+ RecursiveGaussianImageFilter::SetNormalizeAcrossScale
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SmoothingRecursiveGaussianImageFilter::GetSigma "/**
+double itk::simple::SmoothingRecursiveGaussianImageFilter::GetSigma() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SmoothingRecursiveGaussianImageFilter::NormalizeAcrossScaleOff "/**
+Self& itk::simple::SmoothingRecursiveGaussianImageFilter::NormalizeAcrossScaleOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SmoothingRecursiveGaussianImageFilter::NormalizeAcrossScaleOn "/**
+Self& itk::simple::SmoothingRecursiveGaussianImageFilter::NormalizeAcrossScaleOn()
+
+Set the value of NormalizeAcrossScale to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SmoothingRecursiveGaussianImageFilter::SetNormalizeAcrossScale "/**
+Self& itk::simple::SmoothingRecursiveGaussianImageFilter::SetNormalizeAcrossScale(bool NormalizeAcrossScale)
+
+This method does not effect the output of this filter.
+See:
+ RecursiveGaussianImageFilter::SetNormalizeAcrossScale
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SmoothingRecursiveGaussianImageFilter::SetSigma "/**
+Self& itk::simple::SmoothingRecursiveGaussianImageFilter::SetSigma(double Sigma)
+
+Set Sigma value. Sigma is measured in the units of image spacing. You
+may use the method SetSigma to set the same value across each axis or
+use the method SetSigmaArray if you need different values along each
+axis.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SmoothingRecursiveGaussianImageFilter::SmoothingRecursiveGaussianImageFilter "/**
+itk::simple::SmoothingRecursiveGaussianImageFilter::SmoothingRecursiveGaussianImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SmoothingRecursiveGaussianImageFilter::ToString "/**
+std::string itk::simple::SmoothingRecursiveGaussianImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SmoothingRecursiveGaussianImageFilter::~SmoothingRecursiveGaussianImageFilter "/**
+itk::simple::SmoothingRecursiveGaussianImageFilter::~SmoothingRecursiveGaussianImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::SobelEdgeDetectionImageFilter "/**
+
+A 2D or 3D edge detection using the Sobel operator.
+
+
+This filter uses the Sobel operator to calculate the image gradient
+and then finds the magnitude of this gradient vector. The Sobel
+gradient magnitude (square-root sum of squares) is an indication of
+edge strength.
+
+
+See:
+ ImageToImageFilter
+
+ SobelOperator
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+Wiki Examples:
+
+All Examples
+
+SobelEdgeDetectionImageFilter
+See:
+ itk::simple::SobelEdgeDetection for the procedural interface
+
+ itk::SobelEdgeDetectionImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkSobelEdgeDetectionImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::SobelEdgeDetectionImageFilter::Execute "/**
+Image itk::simple::SobelEdgeDetectionImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SobelEdgeDetectionImageFilter::GetName "/**
+std::string itk::simple::SobelEdgeDetectionImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SobelEdgeDetectionImageFilter::SobelEdgeDetectionImageFilter "/**
+itk::simple::SobelEdgeDetectionImageFilter::SobelEdgeDetectionImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SobelEdgeDetectionImageFilter::ToString "/**
+std::string itk::simple::SobelEdgeDetectionImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SobelEdgeDetectionImageFilter::~SobelEdgeDetectionImageFilter "/**
+itk::simple::SobelEdgeDetectionImageFilter::~SobelEdgeDetectionImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::SpeckleNoiseImageFilter "/**
+
+Alter an image with speckle (multiplicative) noise.
+
+
+The speckle noise follows a Gamma distribution of mean 1 and standard
+deviation provided by the user. The noise is proportional to the pixel
+intensity.
+
+
+Gaetan Lehmann
+ This code was contributed in the Insight Journal paper \"Noise
+Simulation\". https://hdl.handle.net/10380/3158
+See:
+ itk::simple::SpeckleNoise for the procedural interface
+
+ itk::SpeckleNoiseImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkSpeckleNoiseImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::SpeckleNoiseImageFilter::Execute "/**
+Image itk::simple::SpeckleNoiseImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SpeckleNoiseImageFilter::Execute "/**
+Image itk::simple::SpeckleNoiseImageFilter::Execute(const Image &image1, double standardDeviation, uint32_t seed)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SpeckleNoiseImageFilter::GetName "/**
+std::string itk::simple::SpeckleNoiseImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SpeckleNoiseImageFilter::GetSeed "/**
+uint32_t itk::simple::SpeckleNoiseImageFilter::GetSeed() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SpeckleNoiseImageFilter::GetStandardDeviation "/**
+double itk::simple::SpeckleNoiseImageFilter::GetStandardDeviation() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SpeckleNoiseImageFilter::SetSeed "/**
+Self& itk::simple::SpeckleNoiseImageFilter::SetSeed(uint32_t Seed)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SpeckleNoiseImageFilter::SetStandardDeviation "/**
+Self& itk::simple::SpeckleNoiseImageFilter::SetStandardDeviation(double StandardDeviation)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SpeckleNoiseImageFilter::SpeckleNoiseImageFilter "/**
+itk::simple::SpeckleNoiseImageFilter::SpeckleNoiseImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SpeckleNoiseImageFilter::ToString "/**
+std::string itk::simple::SpeckleNoiseImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SpeckleNoiseImageFilter::~SpeckleNoiseImageFilter "/**
+itk::simple::SpeckleNoiseImageFilter::~SpeckleNoiseImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::SqrtImageFilter "/**
+
+Computes the square root of each pixel.
+
+
+The computations are performed using std::sqrt(x).
+See:
+ itk::simple::Sqrt for the procedural interface
+
+ itk::SqrtImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkSqrtImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::SqrtImageFilter::Execute "/**
+Image itk::simple::SqrtImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SqrtImageFilter::GetName "/**
+std::string itk::simple::SqrtImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SqrtImageFilter::SqrtImageFilter "/**
+itk::simple::SqrtImageFilter::SqrtImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SqrtImageFilter::ToString "/**
+std::string itk::simple::SqrtImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SqrtImageFilter::~SqrtImageFilter "/**
+itk::simple::SqrtImageFilter::~SqrtImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::SquareImageFilter "/**
+
+Computes the square of the intensity values pixel-wise.
+
+
+Wiki Examples:
+
+All Examples
+
+Square every pixel in an image
+See:
+ itk::simple::Square for the procedural interface
+
+ itk::SquareImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkSquareImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::SquareImageFilter::Execute "/**
+Image itk::simple::SquareImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SquareImageFilter::GetName "/**
+std::string itk::simple::SquareImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SquareImageFilter::SquareImageFilter "/**
+itk::simple::SquareImageFilter::SquareImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SquareImageFilter::ToString "/**
+std::string itk::simple::SquareImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SquareImageFilter::~SquareImageFilter "/**
+itk::simple::SquareImageFilter::~SquareImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::SquaredDifferenceImageFilter "/**
+
+Implements pixel-wise the computation of squared difference.
+
+
+This filter is parametrized over the types of the two input images and
+the type of the output image.
+
+Numeric conversions (castings) are done by the C++ defaults.
+
+The filter will walk over all the pixels in the two input images, and
+for each one of them it will do the following:
+
+
+cast the input 1 pixel value to double
+
+cast the input 2 pixel value to double
+
+compute the difference of the two pixel values
+
+compute the square of the difference
+
+cast the double value resulting from sqr() to the pixel type of the output image
+
+store the casted value into the output image.
+ The filter expect all images to have the same dimension (e.g. all 2D,
+or all 3D, or all ND)
+
+Wiki Examples:
+
+All Examples
+
+Compute the squared difference of corresponding pixels in two images
+See:
+ itk::simple::SquaredDifference for the procedural interface
+
+ itk::SquaredDifferenceImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkSquaredDifferenceImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::SquaredDifferenceImageFilter::Execute "/**
+Image itk::simple::SquaredDifferenceImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SquaredDifferenceImageFilter::Execute "/**
+Image itk::simple::SquaredDifferenceImageFilter::Execute(const Image &image1, double constant)
+
+Execute the filter with an image and a constant
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SquaredDifferenceImageFilter::Execute "/**
+Image itk::simple::SquaredDifferenceImageFilter::Execute(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SquaredDifferenceImageFilter::GetName "/**
+std::string itk::simple::SquaredDifferenceImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SquaredDifferenceImageFilter::SquaredDifferenceImageFilter "/**
+itk::simple::SquaredDifferenceImageFilter::SquaredDifferenceImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SquaredDifferenceImageFilter::ToString "/**
+std::string itk::simple::SquaredDifferenceImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SquaredDifferenceImageFilter::~SquaredDifferenceImageFilter "/**
+itk::simple::SquaredDifferenceImageFilter::~SquaredDifferenceImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::StandardDeviationProjectionImageFilter "/**
+
+Mean projection.
+
+
+This class was contributed to the Insight Journal by Gaetan Lehmann.
+The original paper can be found at https://hdl.handle.net/1926/164
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ ProjectionImageFilter
+
+ MedianProjectionImageFilter
+
+ MeanProjectionImageFilter
+
+ SumProjectionImageFilter
+
+ MeanProjectionImageFilter
+
+ MaximumProjectionImageFilter
+
+ MinimumProjectionImageFilter
+
+ BinaryProjectionImageFilter
+
+ itk::simple::StandardDeviationProjection for the procedural interface
+
+ itk::StandardDeviationProjectionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkStandardDeviationProjectionImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::StandardDeviationProjectionImageFilter::Execute "/**
+Image itk::simple::StandardDeviationProjectionImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::StandardDeviationProjectionImageFilter::Execute "/**
+Image itk::simple::StandardDeviationProjectionImageFilter::Execute(const Image &image1, unsigned int projectionDimension)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::StandardDeviationProjectionImageFilter::GetName "/**
+std::string itk::simple::StandardDeviationProjectionImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::StandardDeviationProjectionImageFilter::GetProjectionDimension "/**
+unsigned int itk::simple::StandardDeviationProjectionImageFilter::GetProjectionDimension() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::StandardDeviationProjectionImageFilter::SetProjectionDimension "/**
+Self& itk::simple::StandardDeviationProjectionImageFilter::SetProjectionDimension(unsigned int ProjectionDimension)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::StandardDeviationProjectionImageFilter::StandardDeviationProjectionImageFilter "/**
+itk::simple::StandardDeviationProjectionImageFilter::StandardDeviationProjectionImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::StandardDeviationProjectionImageFilter::ToString "/**
+std::string itk::simple::StandardDeviationProjectionImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::StandardDeviationProjectionImageFilter::~StandardDeviationProjectionImageFilter "/**
+itk::simple::StandardDeviationProjectionImageFilter::~StandardDeviationProjectionImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::StatisticsImageFilter "/**
+
+Compute min. max, variance and mean of an Image .
+
+
+StatisticsImageFilter computes the minimum, maximum, sum, mean, variance sigma of an image.
+The filter needs all of its input image. It behaves as a filter with
+an input and output. Thus it can be inserted in a pipline with other
+filters and the statistics will only be recomputed if a downstream
+filter changes.
+
+The filter passes its input through unmodified. The filter is
+threaded. It computes statistics in each thread then combines them in
+its AfterThreadedGenerate method.
+
+Wiki Examples:
+
+All Examples
+
+Compute min, max, variance and mean of an Image.
+
+See:
+ itk::StatisticsImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkStatisticsImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::StatisticsImageFilter::Execute "/**
+void itk::simple::StatisticsImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::StatisticsImageFilter::GetMaximum "/**
+double itk::simple::StatisticsImageFilter::GetMaximum() const
+
+Return the computed Maximum.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::StatisticsImageFilter::GetMean "/**
+double itk::simple::StatisticsImageFilter::GetMean() const
+
+Return the computed Mean.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::StatisticsImageFilter::GetMinimum "/**
+double itk::simple::StatisticsImageFilter::GetMinimum() const
+
+Return the computed Minimum.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::StatisticsImageFilter::GetName "/**
+std::string itk::simple::StatisticsImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::StatisticsImageFilter::GetSigma "/**
+double itk::simple::StatisticsImageFilter::GetSigma() const
+
+Return the computed Standard Deviation.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::StatisticsImageFilter::GetSum "/**
+double itk::simple::StatisticsImageFilter::GetSum() const
+
+Return the compute Sum.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::StatisticsImageFilter::GetVariance "/**
+double itk::simple::StatisticsImageFilter::GetVariance() const
+
+Return the computed Variance.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::StatisticsImageFilter::StatisticsImageFilter "/**
+itk::simple::StatisticsImageFilter::StatisticsImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::StatisticsImageFilter::ToString "/**
+std::string itk::simple::StatisticsImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::StatisticsImageFilter::~StatisticsImageFilter "/**
+itk::simple::StatisticsImageFilter::~StatisticsImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::SubtractImageFilter "/**
+
+Pixel-wise subtraction of two images.
+
+
+Subtract each pixel from image2 from its corresponding pixel in
+image1:
+
+
+This is done using
+
+
+This class is templated over the types of the two input images and the
+type of the output image. Numeric conversions (castings) are done by
+the C++ defaults.
+
+Additionally, a constant can be subtracted from every pixel in an
+image using:
+
+
+
+The result of AddImageFilter with a negative constant is not necessarily the same as SubtractImageFilter . This would be the case when the PixelType defines an operator-() that is not the inverse of operator+()
+Wiki Examples:
+
+All Examples
+
+Subtract two images
+
+Subtract a constant from every pixel in an image
+See:
+ itk::simple::Subtract for the procedural interface
+
+ itk::SubtractImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkSubtractImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::SubtractImageFilter::Execute "/**
+Image itk::simple::SubtractImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SubtractImageFilter::Execute "/**
+Image itk::simple::SubtractImageFilter::Execute(const Image &image1, double constant)
+
+Execute the filter with an image and a constant
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SubtractImageFilter::Execute "/**
+Image itk::simple::SubtractImageFilter::Execute(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SubtractImageFilter::GetName "/**
+std::string itk::simple::SubtractImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SubtractImageFilter::SubtractImageFilter "/**
+itk::simple::SubtractImageFilter::SubtractImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SubtractImageFilter::ToString "/**
+std::string itk::simple::SubtractImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SubtractImageFilter::~SubtractImageFilter "/**
+itk::simple::SubtractImageFilter::~SubtractImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::SumProjectionImageFilter "/**
+
+Sum projection.
+
+
+This class was contributed to the Insight Journal by Gaetan Lehmann.
+The original paper can be found at https://hdl.handle.net/1926/164
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ ProjectionImageFilter
+
+ MedianProjectionImageFilter
+
+ MeanProjectionImageFilter
+
+ MeanProjectionImageFilter
+
+ MaximumProjectionImageFilter
+
+ MinimumProjectionImageFilter
+
+ BinaryProjectionImageFilter
+
+ StandardDeviationProjectionImageFilter
+
+ itk::simple::SumProjection for the procedural interface
+
+ itk::SumProjectionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkSumProjectionImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::SumProjectionImageFilter::Execute "/**
+Image itk::simple::SumProjectionImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SumProjectionImageFilter::Execute "/**
+Image itk::simple::SumProjectionImageFilter::Execute(const Image &image1, unsigned int projectionDimension)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SumProjectionImageFilter::GetName "/**
+std::string itk::simple::SumProjectionImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SumProjectionImageFilter::GetProjectionDimension "/**
+unsigned int itk::simple::SumProjectionImageFilter::GetProjectionDimension() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SumProjectionImageFilter::SetProjectionDimension "/**
+Self& itk::simple::SumProjectionImageFilter::SetProjectionDimension(unsigned int ProjectionDimension)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SumProjectionImageFilter::SumProjectionImageFilter "/**
+itk::simple::SumProjectionImageFilter::SumProjectionImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SumProjectionImageFilter::ToString "/**
+std::string itk::simple::SumProjectionImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SumProjectionImageFilter::~SumProjectionImageFilter "/**
+itk::simple::SumProjectionImageFilter::~SumProjectionImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::SymmetricForcesDemonsRegistrationFilter "/**
+
+Deformably register two images using the demons algorithm.
+
+
+This class was contributed by Corinne Mattmann, ETH Zurich,
+Switzerland. based on a variation of the DemonsRegistrationFilter . The basic modification is to use equation (5) from Thirion's paper
+along with the modification for avoiding large deformations when
+gradients have small values.
+
+SymmetricForcesDemonsRegistrationFilter implements the demons deformable algorithm that register two images
+by computing the deformation field which will map a moving image onto
+a fixed image.
+
+A deformation field is represented as a image whose pixel type is some
+vector type with at least N elements, where N is the dimension of the
+fixed image. The vector type must support element access via operator
+[]. It is assumed that the vector elements behave like floating point
+scalars.
+
+This class is templated over the fixed image type, moving image type
+and the deformation field type.
+
+The input fixed and moving images are set via methods SetFixedImage
+and SetMovingImage respectively. An initial deformation field maybe
+set via SetInitialDisplacementField or SetInput. If no initial field
+is set, a zero field is used as the initial condition.
+
+The algorithm has one parameters: the number of iteration to be
+performed.
+
+The output deformation field can be obtained via methods GetOutput or
+GetDisplacementField.
+
+This class make use of the finite difference solver hierarchy. Update
+for each iteration is computed in DemonsRegistrationFunction .
+
+
+WARNING:
+This filter assumes that the fixed image type, moving image type and
+deformation field type all have the same number of dimensions.
+
+See:
+ SymmetricForcesDemonsRegistrationFunction
+
+ DemonsRegistrationFilter
+
+ DemonsRegistrationFunction
+
+ itk::SymmetricForcesDemonsRegistrationFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkSymmetricForcesDemonsRegistrationFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::Execute "/**
+Image itk::simple::SymmetricForcesDemonsRegistrationFilter::Execute(const Image &fixedImage, const Image &movingImage, const Image
+&initialDisplacementField)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::Execute "/**
+Image itk::simple::SymmetricForcesDemonsRegistrationFilter::Execute(const Image &fixedImage, const Image &movingImage)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::Execute "/**
+Image itk::simple::SymmetricForcesDemonsRegistrationFilter::Execute(const Image &fixedImage, const Image &movingImage, const Image
+&initialDisplacementField, const std::vector< double >
+&standardDeviations, uint32_t numberOfIterations, double
+maximumRMSError, bool smoothDisplacementField, bool smoothUpdateField,
+const std::vector< double > &updateFieldStandardDeviations, unsigned
+int maximumKernelWidth, double maximumError, double
+intensityDifferenceThreshold, bool useImageSpacing)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::Execute "/**
+Image itk::simple::SymmetricForcesDemonsRegistrationFilter::Execute(const Image &fixedImage, const Image &movingImage, const std::vector<
+double > &standardDeviations, uint32_t numberOfIterations, double
+maximumRMSError, bool smoothDisplacementField, bool smoothUpdateField,
+const std::vector< double > &updateFieldStandardDeviations, unsigned
+int maximumKernelWidth, double maximumError, double
+intensityDifferenceThreshold, bool useImageSpacing)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::GetElapsedIterations "/**
+uint32_t itk::simple::SymmetricForcesDemonsRegistrationFilter::GetElapsedIterations() const
+
+Number of iterations run.
+
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::GetIntensityDifferenceThreshold "/**
+double itk::simple::SymmetricForcesDemonsRegistrationFilter::GetIntensityDifferenceThreshold() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::GetMaximumError "/**
+double itk::simple::SymmetricForcesDemonsRegistrationFilter::GetMaximumError() const
+
+Set/Get the desired maximum error of the Guassian kernel approximate.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::GetMaximumKernelWidth "/**
+unsigned int itk::simple::SymmetricForcesDemonsRegistrationFilter::GetMaximumKernelWidth() const
+
+Set/Get the desired limits of the Gaussian kernel width.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::GetMaximumRMSError "/**
+double itk::simple::SymmetricForcesDemonsRegistrationFilter::GetMaximumRMSError() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::GetMetric "/**
+double itk::simple::SymmetricForcesDemonsRegistrationFilter::GetMetric() const
+
+Get the metric value. The metric value is the mean square difference
+in intensity between the fixed image and transforming moving image
+computed over the the overlapping region between the two images. This
+value is calculated for the current iteration
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::GetName "/**
+std::string itk::simple::SymmetricForcesDemonsRegistrationFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::GetNumberOfIterations "/**
+uint32_t itk::simple::SymmetricForcesDemonsRegistrationFilter::GetNumberOfIterations() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::GetRMSChange "/**
+double itk::simple::SymmetricForcesDemonsRegistrationFilter::GetRMSChange() const
+
+Set/Get the root mean squared change of the previous iteration. May
+not be used by all solvers.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::GetSmoothDisplacementField "/**
+bool itk::simple::SymmetricForcesDemonsRegistrationFilter::GetSmoothDisplacementField() const
+
+Set/Get whether the displacement field is smoothed (regularized).
+Smoothing the displacement yields a solution elastic in nature. If
+SmoothDisplacementField is on, then the displacement field is smoothed
+with a Gaussian whose standard deviations are specified with SetStandardDeviations()
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::GetSmoothUpdateField "/**
+bool itk::simple::SymmetricForcesDemonsRegistrationFilter::GetSmoothUpdateField() const
+
+Set/Get whether the update field is smoothed (regularized). Smoothing
+the update field yields a solution viscous in nature. If
+SmoothUpdateField is on, then the update field is smoothed with a
+Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::GetStandardDeviations "/**
+std::vector<double> itk::simple::SymmetricForcesDemonsRegistrationFilter::GetStandardDeviations() const
+
+Set/Get the Gaussian smoothing standard deviations for the
+displacement field. The values are set with respect to pixel
+coordinates.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::GetUpdateFieldStandardDeviations "/**
+std::vector<double> itk::simple::SymmetricForcesDemonsRegistrationFilter::GetUpdateFieldStandardDeviations() const
+
+Set the Gaussian smoothing standard deviations for the update field.
+The values are set with respect to pixel coordinates.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::GetUseImageSpacing "/**
+bool itk::simple::SymmetricForcesDemonsRegistrationFilter::GetUseImageSpacing() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::SetIntensityDifferenceThreshold "/**
+Self& itk::simple::SymmetricForcesDemonsRegistrationFilter::SetIntensityDifferenceThreshold(double IntensityDifferenceThreshold)
+
+Set/Get the threshold below which the absolute difference of intensity
+yields a match. When the intensities match between a moving and fixed
+image pixel, the update vector (for that iteration) will be the zero
+vector. Default is 0.001.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::SetMaximumError "/**
+Self& itk::simple::SymmetricForcesDemonsRegistrationFilter::SetMaximumError(double MaximumError)
+
+Set/Get the desired maximum error of the Guassian kernel approximate.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::SetMaximumKernelWidth "/**
+Self& itk::simple::SymmetricForcesDemonsRegistrationFilter::SetMaximumKernelWidth(unsigned int MaximumKernelWidth)
+
+Set/Get the desired limits of the Gaussian kernel width.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::SetMaximumRMSError "/**
+Self& itk::simple::SymmetricForcesDemonsRegistrationFilter::SetMaximumRMSError(double MaximumRMSError)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::SetNumberOfIterations "/**
+Self& itk::simple::SymmetricForcesDemonsRegistrationFilter::SetNumberOfIterations(uint32_t NumberOfIterations)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::SetSmoothDisplacementField "/**
+Self& itk::simple::SymmetricForcesDemonsRegistrationFilter::SetSmoothDisplacementField(bool SmoothDisplacementField)
+
+Set/Get whether the displacement field is smoothed (regularized).
+Smoothing the displacement yields a solution elastic in nature. If
+SmoothDisplacementField is on, then the displacement field is smoothed
+with a Gaussian whose standard deviations are specified with SetStandardDeviations()
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::SetSmoothUpdateField "/**
+Self& itk::simple::SymmetricForcesDemonsRegistrationFilter::SetSmoothUpdateField(bool SmoothUpdateField)
+
+Set/Get whether the update field is smoothed (regularized). Smoothing
+the update field yields a solution viscous in nature. If
+SmoothUpdateField is on, then the update field is smoothed with a
+Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::SetStandardDeviations "/**
+Self& itk::simple::SymmetricForcesDemonsRegistrationFilter::SetStandardDeviations(const std::vector< double > &StandardDeviations)
+
+Set/Get the Gaussian smoothing standard deviations for the
+displacement field. The values are set with respect to pixel
+coordinates.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::SetStandardDeviations "/**
+Self& itk::simple::SymmetricForcesDemonsRegistrationFilter::SetStandardDeviations(double value)
+
+Set the values of the StandardDeviations vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::SetUpdateFieldStandardDeviations "/**
+Self& itk::simple::SymmetricForcesDemonsRegistrationFilter::SetUpdateFieldStandardDeviations(const std::vector< double > &UpdateFieldStandardDeviations)
+
+Set the Gaussian smoothing standard deviations for the update field.
+The values are set with respect to pixel coordinates.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::SetUpdateFieldStandardDeviations "/**
+Self& itk::simple::SymmetricForcesDemonsRegistrationFilter::SetUpdateFieldStandardDeviations(double value)
+
+Set the values of the UpdateFieldStandardDeviations vector all to
+value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::SetUseImageSpacing "/**
+Self& itk::simple::SymmetricForcesDemonsRegistrationFilter::SetUseImageSpacing(bool UseImageSpacing)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::SmoothDisplacementFieldOff "/**
+Self& itk::simple::SymmetricForcesDemonsRegistrationFilter::SmoothDisplacementFieldOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::SmoothDisplacementFieldOn "/**
+Self& itk::simple::SymmetricForcesDemonsRegistrationFilter::SmoothDisplacementFieldOn()
+
+Set the value of SmoothDisplacementField to true or false
+respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::SmoothUpdateFieldOff "/**
+Self& itk::simple::SymmetricForcesDemonsRegistrationFilter::SmoothUpdateFieldOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::SmoothUpdateFieldOn "/**
+Self& itk::simple::SymmetricForcesDemonsRegistrationFilter::SmoothUpdateFieldOn()
+
+Set the value of SmoothUpdateField to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::SymmetricForcesDemonsRegistrationFilter "/**
+itk::simple::SymmetricForcesDemonsRegistrationFilter::SymmetricForcesDemonsRegistrationFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::ToString "/**
+std::string itk::simple::SymmetricForcesDemonsRegistrationFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::UseImageSpacingOff "/**
+Self& itk::simple::SymmetricForcesDemonsRegistrationFilter::UseImageSpacingOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::UseImageSpacingOn "/**
+Self& itk::simple::SymmetricForcesDemonsRegistrationFilter::UseImageSpacingOn()
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SymmetricForcesDemonsRegistrationFilter::~SymmetricForcesDemonsRegistrationFilter "/**
+itk::simple::SymmetricForcesDemonsRegistrationFilter::~SymmetricForcesDemonsRegistrationFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::TanImageFilter "/**
+
+Computes the tangent of each input pixel.
+
+
+The computations are performed using std::tan(x).
+See:
+ itk::simple::Tan for the procedural interface
+
+ itk::TanImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkTanImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::TanImageFilter::Execute "/**
+Image itk::simple::TanImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TanImageFilter::GetName "/**
+std::string itk::simple::TanImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TanImageFilter::TanImageFilter "/**
+itk::simple::TanImageFilter::TanImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TanImageFilter::ToString "/**
+std::string itk::simple::TanImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TanImageFilter::~TanImageFilter "/**
+itk::simple::TanImageFilter::~TanImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::TernaryAddImageFilter "/**
+
+Pixel-wise addition of three images.
+
+
+This class is templated over the types of the three input images and
+the type of the output image. Numeric conversions (castings) are done
+by the C++ defaults.
+See:
+ itk::simple::TernaryAdd for the procedural interface
+
+ itk::TernaryAddImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkTernaryAddImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::TernaryAddImageFilter::Execute "/**
+Image itk::simple::TernaryAddImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TernaryAddImageFilter::GetName "/**
+std::string itk::simple::TernaryAddImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TernaryAddImageFilter::TernaryAddImageFilter "/**
+itk::simple::TernaryAddImageFilter::TernaryAddImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TernaryAddImageFilter::ToString "/**
+std::string itk::simple::TernaryAddImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TernaryAddImageFilter::~TernaryAddImageFilter "/**
+itk::simple::TernaryAddImageFilter::~TernaryAddImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::TernaryMagnitudeImageFilter "/**
+
+Compute the pixel-wise magnitude of three images.
+
+
+This class is templated over the types of the three input images and
+the type of the output image. Numeric conversions (castings) are done
+by the C++ defaults.
+See:
+ itk::simple::TernaryMagnitude for the procedural interface
+
+ itk::TernaryMagnitudeImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkTernaryMagnitudeImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::TernaryMagnitudeImageFilter::Execute "/**
+Image itk::simple::TernaryMagnitudeImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TernaryMagnitudeImageFilter::GetName "/**
+std::string itk::simple::TernaryMagnitudeImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TernaryMagnitudeImageFilter::TernaryMagnitudeImageFilter "/**
+itk::simple::TernaryMagnitudeImageFilter::TernaryMagnitudeImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TernaryMagnitudeImageFilter::ToString "/**
+std::string itk::simple::TernaryMagnitudeImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TernaryMagnitudeImageFilter::~TernaryMagnitudeImageFilter "/**
+itk::simple::TernaryMagnitudeImageFilter::~TernaryMagnitudeImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::TernaryMagnitudeSquaredImageFilter "/**
+
+Compute the pixel-wise squared magnitude of three images.
+
+
+This class is templated over the types of the three input images and
+the type of the output image. Numeric conversions (castings) are done
+by the C++ defaults.
+See:
+ itk::simple::TernaryMagnitudeSquared for the procedural interface
+
+ itk::TernaryMagnitudeSquaredImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkTernaryMagnitudeSquaredImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::TernaryMagnitudeSquaredImageFilter::Execute "/**
+Image itk::simple::TernaryMagnitudeSquaredImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TernaryMagnitudeSquaredImageFilter::GetName "/**
+std::string itk::simple::TernaryMagnitudeSquaredImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TernaryMagnitudeSquaredImageFilter::TernaryMagnitudeSquaredImageFilter "/**
+itk::simple::TernaryMagnitudeSquaredImageFilter::TernaryMagnitudeSquaredImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TernaryMagnitudeSquaredImageFilter::ToString "/**
+std::string itk::simple::TernaryMagnitudeSquaredImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TernaryMagnitudeSquaredImageFilter::~TernaryMagnitudeSquaredImageFilter "/**
+itk::simple::TernaryMagnitudeSquaredImageFilter::~TernaryMagnitudeSquaredImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ThresholdImageFilter "/**
+
+Set image values to a user-specified value if they are below, above,
+or between simple threshold values.
+
+
+ThresholdImageFilter sets image values to a user-specified \"outside\" value (by default,
+\"black\") if the image values are below, above, or between simple
+threshold values.
+
+The available methods are:
+
+ThresholdAbove() : The values greater than the threshold value are set
+to OutsideValue
+
+ThresholdBelow() : The values less than the threshold value are set to
+OutsideValue
+
+ThresholdOutside() : The values outside the threshold range (less than
+lower or greater than upper) are set to OutsideValue
+
+Note that these definitions indicate that pixels equal to the
+threshold value are not set to OutsideValue in any of these methods
+
+The pixels must support the operators >= and <=.
+
+Wiki Examples:
+
+All Examples
+
+Threshold an image
+See:
+ itk::simple::Threshold for the procedural interface
+
+ itk::ThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkThresholdImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ThresholdImageFilter::Execute "/**
+Image itk::simple::ThresholdImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdImageFilter::Execute "/**
+Image itk::simple::ThresholdImageFilter::Execute(const Image &image1, double lower, double upper, double outsideValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdImageFilter::GetLower "/**
+double itk::simple::ThresholdImageFilter::GetLower() const
+
+Set/Get methods to set the lower threshold.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdImageFilter::GetName "/**
+std::string itk::simple::ThresholdImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdImageFilter::GetOutsideValue "/**
+double itk::simple::ThresholdImageFilter::GetOutsideValue() const
+
+Get the \"outside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdImageFilter::GetUpper "/**
+double itk::simple::ThresholdImageFilter::GetUpper() const
+
+Set/Get methods to set the upper threshold.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdImageFilter::SetLower "/**
+Self& itk::simple::ThresholdImageFilter::SetLower(double Lower)
+
+Set/Get methods to set the lower threshold.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdImageFilter::SetOutsideValue "/**
+Self& itk::simple::ThresholdImageFilter::SetOutsideValue(double OutsideValue)
+
+The pixel type must support comparison operators. Set the \"outside\"
+pixel value. The default value NumericTraits<PixelType>::ZeroValue() .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdImageFilter::SetUpper "/**
+Self& itk::simple::ThresholdImageFilter::SetUpper(double Upper)
+
+Set/Get methods to set the upper threshold.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdImageFilter::ThresholdImageFilter "/**
+itk::simple::ThresholdImageFilter::ThresholdImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdImageFilter::ToString "/**
+std::string itk::simple::ThresholdImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdImageFilter::~ThresholdImageFilter "/**
+itk::simple::ThresholdImageFilter::~ThresholdImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ThresholdMaximumConnectedComponentsImageFilter "/**
+
+Finds the threshold value of an image based on maximizing the number
+of objects in the image that are larger than a given minimal size.
+
+
+
+This method is based on Topological Stable State Thresholding to
+calculate the threshold set point. This method is particularly
+effective when there are a large number of objects in a microscopy
+image. Compiling in Debug mode and enable the debug flag for this
+filter to print debug information to see how the filter focuses in on
+a threshold value. Please see the Insight Journal's MICCAI 2005
+workshop for a complete description. References are below.
+Parameters
+The MinimumObjectSizeInPixels parameter is controlled through the
+class Get/SetMinimumObjectSizeInPixels() method. Similar to the
+standard itk::BinaryThresholdImageFilter the Get/SetInside and Get/SetOutside values of the threshold can be
+set. The GetNumberOfObjects() and GetThresholdValue() methods return
+the number of objects above the minimum pixel size and the calculated
+threshold value.
+Automatic Thresholding in ITK
+There are multiple methods to automatically calculate the threshold
+intensity value of an image. As of version 4.0, ITK has a Thresholding
+( ITKThresholding ) module which contains numerous automatic
+thresholding methods.implements two of these. Topological Stable State
+Thresholding works well on images with a large number of objects to be
+counted.
+References:
+1) Urish KL, August J, Huard J. \"Unsupervised segmentation for
+myofiber counting in immunoflourescent images\". Insight Journal. ISC
+/NA-MIC/MICCAI Workshop on Open-Source Software (2005) Dspace handle: https://hdl.handle.net/1926/48 2) Pikaz A, Averbuch, A. \"Digital image thresholding based on
+topological stable-state\". Pattern Recognition, 29(5): 829-843, 1996.
+
+Questions: email Ken Urish at ken.urish(at)gmail.com Please cc the itk
+list serve for archival purposes.
+
+See:
+ itk::simple::ThresholdMaximumConnectedComponents for the procedural interface
+
+ itk::ThresholdMaximumConnectedComponentsImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkThresholdMaximumConnectedComponentsImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ThresholdMaximumConnectedComponentsImageFilter::Execute "/**
+Image itk::simple::ThresholdMaximumConnectedComponentsImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdMaximumConnectedComponentsImageFilter::Execute "/**
+Image itk::simple::ThresholdMaximumConnectedComponentsImageFilter::Execute(const Image &image1, uint32_t minimumObjectSizeInPixels, double
+upperBoundary, uint8_t insideValue, uint8_t outsideValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdMaximumConnectedComponentsImageFilter::GetInsideValue "/**
+uint8_t itk::simple::ThresholdMaximumConnectedComponentsImageFilter::GetInsideValue() const
+
+The following Set/Get methods are for the binary threshold function.
+This class automatically calculates the lower threshold boundary. The
+upper threshold boundary, inside value, and outside value can be
+defined by the user, however the standard values are used as default
+if not set by the user. The default value of the: Inside value is the
+maximum pixel type intensity. Outside value is the minimum pixel type
+intensity. Upper threshold boundary is the maximum pixel type
+intensity.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdMaximumConnectedComponentsImageFilter::GetMinimumObjectSizeInPixels "/**
+uint32_t itk::simple::ThresholdMaximumConnectedComponentsImageFilter::GetMinimumObjectSizeInPixels() const
+
+The pixel type must support comparison operators. Set the minimum
+pixel area used to count objects on the image. Thus, only objects that
+have a pixel area greater than the minimum pixel area will be counted
+as an object in the optimization portion of this filter. Essentially,
+it eliminates noise from being counted as an object. The default value
+is zero.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdMaximumConnectedComponentsImageFilter::GetName "/**
+std::string itk::simple::ThresholdMaximumConnectedComponentsImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdMaximumConnectedComponentsImageFilter::GetOutsideValue "/**
+uint8_t itk::simple::ThresholdMaximumConnectedComponentsImageFilter::GetOutsideValue() const
+
+The following Set/Get methods are for the binary threshold function.
+This class automatically calculates the lower threshold boundary. The
+upper threshold boundary, inside value, and outside value can be
+defined by the user, however the standard values are used as default
+if not set by the user. The default value of the: Inside value is the
+maximum pixel type intensity. Outside value is the minimum pixel type
+intensity. Upper threshold boundary is the maximum pixel type
+intensity.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdMaximumConnectedComponentsImageFilter::GetUpperBoundary "/**
+double itk::simple::ThresholdMaximumConnectedComponentsImageFilter::GetUpperBoundary() const
+
+The following Set/Get methods are for the binary threshold function.
+This class automatically calculates the lower threshold boundary. The
+upper threshold boundary, inside value, and outside value can be
+defined by the user, however the standard values are used as default
+if not set by the user. The default value of the: Inside value is the
+maximum pixel type intensity. Outside value is the minimum pixel type
+intensity. Upper threshold boundary is the maximum pixel type
+intensity.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdMaximumConnectedComponentsImageFilter::SetInsideValue "/**
+Self& itk::simple::ThresholdMaximumConnectedComponentsImageFilter::SetInsideValue(uint8_t InsideValue)
+
+The following Set/Get methods are for the binary threshold function.
+This class automatically calculates the lower threshold boundary. The
+upper threshold boundary, inside value, and outside value can be
+defined by the user, however the standard values are used as default
+if not set by the user. The default value of the: Inside value is the
+maximum pixel type intensity. Outside value is the minimum pixel type
+intensity. Upper threshold boundary is the maximum pixel type
+intensity.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdMaximumConnectedComponentsImageFilter::SetMinimumObjectSizeInPixels "/**
+Self& itk::simple::ThresholdMaximumConnectedComponentsImageFilter::SetMinimumObjectSizeInPixels(uint32_t MinimumObjectSizeInPixels)
+
+The pixel type must support comparison operators. Set the minimum
+pixel area used to count objects on the image. Thus, only objects that
+have a pixel area greater than the minimum pixel area will be counted
+as an object in the optimization portion of this filter. Essentially,
+it eliminates noise from being counted as an object. The default value
+is zero.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdMaximumConnectedComponentsImageFilter::SetOutsideValue "/**
+Self& itk::simple::ThresholdMaximumConnectedComponentsImageFilter::SetOutsideValue(uint8_t OutsideValue)
+
+The following Set/Get methods are for the binary threshold function.
+This class automatically calculates the lower threshold boundary. The
+upper threshold boundary, inside value, and outside value can be
+defined by the user, however the standard values are used as default
+if not set by the user. The default value of the: Inside value is the
+maximum pixel type intensity. Outside value is the minimum pixel type
+intensity. Upper threshold boundary is the maximum pixel type
+intensity.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdMaximumConnectedComponentsImageFilter::SetUpperBoundary "/**
+Self& itk::simple::ThresholdMaximumConnectedComponentsImageFilter::SetUpperBoundary(double UpperBoundary)
+
+The following Set/Get methods are for the binary threshold function.
+This class automatically calculates the lower threshold boundary. The
+upper threshold boundary, inside value, and outside value can be
+defined by the user, however the standard values are used as default
+if not set by the user. The default value of the: Inside value is the
+maximum pixel type intensity. Outside value is the minimum pixel type
+intensity. Upper threshold boundary is the maximum pixel type
+intensity.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdMaximumConnectedComponentsImageFilter::ThresholdMaximumConnectedComponentsImageFilter "/**
+itk::simple::ThresholdMaximumConnectedComponentsImageFilter::ThresholdMaximumConnectedComponentsImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdMaximumConnectedComponentsImageFilter::ToString "/**
+std::string itk::simple::ThresholdMaximumConnectedComponentsImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdMaximumConnectedComponentsImageFilter::~ThresholdMaximumConnectedComponentsImageFilter "/**
+itk::simple::ThresholdMaximumConnectedComponentsImageFilter::~ThresholdMaximumConnectedComponentsImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ThresholdSegmentationLevelSetImageFilter "/**
+
+Segments structures in images based on intensity values.
+
+
+IMPORTANT
+The SegmentationLevelSetImageFilter class and the ThresholdSegmentationLevelSetFunction class contain additional information necessary to the full
+understanding of how to use this filter.
+OVERVIEW
+This class is a level set method segmentation filter. It constructs a
+speed function which is close to zero at the upper and lower bounds of
+an intensity window, effectively locking the propagating front onto
+those edges. Elsewhere, the front will propagate quickly.
+INPUTS
+This filter requires two inputs. The first input is a seed image. This
+seed image must contain an isosurface that you want to use as the seed
+for your segmentation. It can be a binary, graylevel, or floating
+point image. The only requirement is that it contain a closed
+isosurface that you will identify as the seed by setting the
+IsosurfaceValue parameter of the filter. For a binary image you will
+want to set your isosurface value halfway between your on and off
+values (i.e. for 0's and 1's, use an isosurface value of 0.5).
+
+The second input is the feature image. This is the image from which
+the speed function will be calculated. For most applications, this is
+the image that you want to segment. The desired isosurface in your
+seed image should lie within the region of your feature image that you
+are trying to segment. Note that this filter does no preprocessing of
+the feature image before thresholding.
+
+See SegmentationLevelSetImageFilter for more information on Inputs.
+OUTPUTS
+The filter outputs a single, scalar, real-valued image. Positive
+values in the output image are inside the segmentated region and
+negative values in the image are outside of the inside region. The
+zero crossings of the image correspond to the position of the level
+set front.
+
+See SparseFieldLevelSetImageFilter and SegmentationLevelSetImageFilter for more information.
+PARAMETERS
+In addition to parameters described in SegmentationLevelSetImageFilter , this filter adds the UpperThreshold and LowerThreshold. See ThresholdSegmentationLevelSetFunction for a description of how these values affect the segmentation.
+
+See:
+ SegmentationLevelSetImageFilter
+
+ ThresholdSegmentationLevelSetFunction ,
+
+ SparseFieldLevelSetImageFilter
+
+ itk::simple::ThresholdSegmentationLevelSet for the procedural interface
+
+ itk::ThresholdSegmentationLevelSetImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkThresholdSegmentationLevelSetImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ThresholdSegmentationLevelSetImageFilter::Execute "/**
+Image itk::simple::ThresholdSegmentationLevelSetImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdSegmentationLevelSetImageFilter::Execute "/**
+Image itk::simple::ThresholdSegmentationLevelSetImageFilter::Execute(const Image &image1, const Image &image2, double lowerThreshold,
+double upperThreshold, double maximumRMSError, double
+propagationScaling, double curvatureScaling, uint32_t
+numberOfIterations, bool reverseExpansionDirection)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdSegmentationLevelSetImageFilter::GetCurvatureScaling "/**
+double itk::simple::ThresholdSegmentationLevelSetImageFilter::GetCurvatureScaling() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdSegmentationLevelSetImageFilter::GetElapsedIterations "/**
+uint32_t itk::simple::ThresholdSegmentationLevelSetImageFilter::GetElapsedIterations() const
+
+Number of iterations run.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdSegmentationLevelSetImageFilter::GetLowerThreshold "/**
+double itk::simple::ThresholdSegmentationLevelSetImageFilter::GetLowerThreshold() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdSegmentationLevelSetImageFilter::GetMaximumRMSError "/**
+double itk::simple::ThresholdSegmentationLevelSetImageFilter::GetMaximumRMSError() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdSegmentationLevelSetImageFilter::GetName "/**
+std::string itk::simple::ThresholdSegmentationLevelSetImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdSegmentationLevelSetImageFilter::GetNumberOfIterations "/**
+uint32_t itk::simple::ThresholdSegmentationLevelSetImageFilter::GetNumberOfIterations() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdSegmentationLevelSetImageFilter::GetPropagationScaling "/**
+double itk::simple::ThresholdSegmentationLevelSetImageFilter::GetPropagationScaling() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdSegmentationLevelSetImageFilter::GetReverseExpansionDirection "/**
+bool itk::simple::ThresholdSegmentationLevelSetImageFilter::GetReverseExpansionDirection() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdSegmentationLevelSetImageFilter::GetRMSChange "/**
+double itk::simple::ThresholdSegmentationLevelSetImageFilter::GetRMSChange() const
+
+The Root Mean Square of the levelset upon termination.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdSegmentationLevelSetImageFilter::GetUpperThreshold "/**
+double itk::simple::ThresholdSegmentationLevelSetImageFilter::GetUpperThreshold() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdSegmentationLevelSetImageFilter::ReverseExpansionDirectionOff "/**
+Self& itk::simple::ThresholdSegmentationLevelSetImageFilter::ReverseExpansionDirectionOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdSegmentationLevelSetImageFilter::ReverseExpansionDirectionOn "/**
+Self& itk::simple::ThresholdSegmentationLevelSetImageFilter::ReverseExpansionDirectionOn()
+
+Set the value of ReverseExpansionDirection to true or false
+respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdSegmentationLevelSetImageFilter::SetCurvatureScaling "/**
+Self& itk::simple::ThresholdSegmentationLevelSetImageFilter::SetCurvatureScaling(double CurvatureScaling)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdSegmentationLevelSetImageFilter::SetLowerThreshold "/**
+Self& itk::simple::ThresholdSegmentationLevelSetImageFilter::SetLowerThreshold(double LowerThreshold)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdSegmentationLevelSetImageFilter::SetMaximumRMSError "/**
+Self& itk::simple::ThresholdSegmentationLevelSetImageFilter::SetMaximumRMSError(double MaximumRMSError)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdSegmentationLevelSetImageFilter::SetNumberOfIterations "/**
+Self& itk::simple::ThresholdSegmentationLevelSetImageFilter::SetNumberOfIterations(uint32_t NumberOfIterations)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdSegmentationLevelSetImageFilter::SetPropagationScaling "/**
+Self& itk::simple::ThresholdSegmentationLevelSetImageFilter::SetPropagationScaling(double PropagationScaling)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdSegmentationLevelSetImageFilter::SetReverseExpansionDirection "/**
+Self& itk::simple::ThresholdSegmentationLevelSetImageFilter::SetReverseExpansionDirection(bool ReverseExpansionDirection)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdSegmentationLevelSetImageFilter::SetUpperThreshold "/**
+Self& itk::simple::ThresholdSegmentationLevelSetImageFilter::SetUpperThreshold(double UpperThreshold)
+
+Get/Set the threshold values that will be used to calculate the speed
+function.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdSegmentationLevelSetImageFilter::ThresholdSegmentationLevelSetImageFilter "/**
+itk::simple::ThresholdSegmentationLevelSetImageFilter::ThresholdSegmentationLevelSetImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdSegmentationLevelSetImageFilter::ToString "/**
+std::string itk::simple::ThresholdSegmentationLevelSetImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdSegmentationLevelSetImageFilter::~ThresholdSegmentationLevelSetImageFilter "/**
+itk::simple::ThresholdSegmentationLevelSetImageFilter::~ThresholdSegmentationLevelSetImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::TikhonovDeconvolutionImageFilter "/**
+
+An inverse deconvolution filter regularized in the Tikhonov sense.
+
+
+The Tikhonov deconvolution filter is the inverse deconvolution filter
+with a regularization term added to the denominator. The filter
+minimizes the equation \\\\[ ||\\\\hat{f} \\\\otimes h - g||_{L_2}^2 + \\\\mu||\\\\hat{f}||^2
+\\\\] where $\\\\hat{f}$ is the estimate of the unblurred image, $h$ is the blurring kernel, $g$ is the blurred image, and $\\\\mu$ is a non-negative real regularization function.
+
+The filter applies a kernel described in the Fourier domain as $H^*(\\\\omega) / (|H(\\\\omega)|^2 + \\\\mu)$ where $H(\\\\omega)$ is the Fourier transform of $h$ . The term $\\\\mu$ is called RegularizationConstant in this filter. If $\\\\mu$ is set to zero, this filter is equivalent to the InverseDeconvolutionImageFilter .
+
+
+Gaetan Lehmann, Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France
+ Cory Quammen, The University of North Carolina at Chapel Hill
+See:
+ itk::simple::TikhonovDeconvolution for the procedural interface
+
+ itk::TikhonovDeconvolutionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkTikhonovDeconvolutionImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::TikhonovDeconvolutionImageFilter::Execute "/**
+Image itk::simple::TikhonovDeconvolutionImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TikhonovDeconvolutionImageFilter::Execute "/**
+Image itk::simple::TikhonovDeconvolutionImageFilter::Execute(const Image &image1, const Image &image2, double
+regularizationConstant, bool normalize,
+TikhonovDeconvolutionImageFilter::BoundaryConditionType
+boundaryCondition,
+TikhonovDeconvolutionImageFilter::OutputRegionModeType
+outputRegionMode)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TikhonovDeconvolutionImageFilter::GetBoundaryCondition "/**
+BoundaryConditionType itk::simple::TikhonovDeconvolutionImageFilter::GetBoundaryCondition() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TikhonovDeconvolutionImageFilter::GetName "/**
+std::string itk::simple::TikhonovDeconvolutionImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TikhonovDeconvolutionImageFilter::GetNormalize "/**
+bool itk::simple::TikhonovDeconvolutionImageFilter::GetNormalize() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TikhonovDeconvolutionImageFilter::GetOutputRegionMode "/**
+OutputRegionModeType itk::simple::TikhonovDeconvolutionImageFilter::GetOutputRegionMode() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TikhonovDeconvolutionImageFilter::GetRegularizationConstant "/**
+double itk::simple::TikhonovDeconvolutionImageFilter::GetRegularizationConstant() const
+
+The regularization factor. Larger values reduce the dominance of noise
+in the solution, but results in higher approximation error in the
+deblurred image. Default value is 0.0, yielding the same results as
+the InverseDeconvolutionImageFilter .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TikhonovDeconvolutionImageFilter::NormalizeOff "/**
+Self& itk::simple::TikhonovDeconvolutionImageFilter::NormalizeOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TikhonovDeconvolutionImageFilter::NormalizeOn "/**
+Self& itk::simple::TikhonovDeconvolutionImageFilter::NormalizeOn()
+
+Set the value of Normalize to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TikhonovDeconvolutionImageFilter::SetBoundaryCondition "/**
+Self& itk::simple::TikhonovDeconvolutionImageFilter::SetBoundaryCondition(BoundaryConditionType BoundaryCondition)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TikhonovDeconvolutionImageFilter::SetNormalize "/**
+Self& itk::simple::TikhonovDeconvolutionImageFilter::SetNormalize(bool Normalize)
+
+Normalize the output image by the sum of the kernel components
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TikhonovDeconvolutionImageFilter::SetOutputRegionMode "/**
+Self& itk::simple::TikhonovDeconvolutionImageFilter::SetOutputRegionMode(OutputRegionModeType OutputRegionMode)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TikhonovDeconvolutionImageFilter::SetRegularizationConstant "/**
+Self& itk::simple::TikhonovDeconvolutionImageFilter::SetRegularizationConstant(double RegularizationConstant)
+
+The regularization factor. Larger values reduce the dominance of noise
+in the solution, but results in higher approximation error in the
+deblurred image. Default value is 0.0, yielding the same results as
+the InverseDeconvolutionImageFilter .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TikhonovDeconvolutionImageFilter::TikhonovDeconvolutionImageFilter "/**
+itk::simple::TikhonovDeconvolutionImageFilter::TikhonovDeconvolutionImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TikhonovDeconvolutionImageFilter::ToString "/**
+std::string itk::simple::TikhonovDeconvolutionImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TikhonovDeconvolutionImageFilter::~TikhonovDeconvolutionImageFilter "/**
+itk::simple::TikhonovDeconvolutionImageFilter::~TikhonovDeconvolutionImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::TileImageFilter "/**
+
+Tile multiple input images into a single output image.
+
+
+This filter will tile multiple images using a user-specified layout.
+The tile sizes will be large enough to accommodate the largest image
+for each tile. The layout is specified with the SetLayout method. The
+layout has the same dimension as the output image. If all entries of
+the layout are positive, the tiled output will contain the exact
+number of tiles. If the layout contains a 0 in the last dimension, the
+filter will compute a size that will accommodate all of the images.
+Empty tiles are filled with the value specified with the SetDefault
+value method. The input images must have a dimension less than or
+equal to the output image. The output image have a larger dimension
+than the input images. This filter can be used to create a volume from
+a series of inputs by specifying a layout of 1,1,0.
+
+Wiki Examples:
+
+All Examples
+
+Tile multiple images into another image
+
+Stack multiple 2D images into a 3D image
+
+Tile multiple images side by side
+
+See:
+ itk::simple::Tile for the procedural interface
+
+
+C++ includes: sitkTileImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::TileImageFilter::Execute "/**
+Image itk::simple::TileImageFilter::Execute(const std::vector< Image > &images)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TileImageFilter::Execute "/**
+Image itk::simple::TileImageFilter::Execute(const Image &image1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TileImageFilter::Execute "/**
+Image itk::simple::TileImageFilter::Execute(const Image &image1, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TileImageFilter::Execute "/**
+Image itk::simple::TileImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TileImageFilter::Execute "/**
+Image itk::simple::TileImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TileImageFilter::Execute "/**
+Image itk::simple::TileImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4, const Image &image5)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TileImageFilter::Execute "/**
+Image itk::simple::TileImageFilter::Execute(const std::vector< Image > &images, const std::vector< uint32_t >
+&layout, double defaultPixelValue)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TileImageFilter::Execute "/**
+Image itk::simple::TileImageFilter::Execute(const Image &image1, const std::vector< uint32_t > &layout, double
+defaultPixelValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TileImageFilter::Execute "/**
+Image itk::simple::TileImageFilter::Execute(const Image &image1, const Image &image2, const std::vector< uint32_t
+> &layout, double defaultPixelValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TileImageFilter::Execute "/**
+Image itk::simple::TileImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+std::vector< uint32_t > &layout, double defaultPixelValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TileImageFilter::Execute "/**
+Image itk::simple::TileImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4, const std::vector< uint32_t > &layout, double
+defaultPixelValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TileImageFilter::Execute "/**
+Image itk::simple::TileImageFilter::Execute(const Image &image1, const Image &image2, const Image &image3, const
+Image &image4, const Image &image5, const std::vector< uint32_t >
+&layout, double defaultPixelValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TileImageFilter::GetDefaultPixelValue "/**
+double itk::simple::TileImageFilter::GetDefaultPixelValue() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TileImageFilter::GetLayout "/**
+std::vector<uint32_t> itk::simple::TileImageFilter::GetLayout() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TileImageFilter::GetName "/**
+std::string itk::simple::TileImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TileImageFilter::SetDefaultPixelValue "/**
+Self& itk::simple::TileImageFilter::SetDefaultPixelValue(double DefaultPixelValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TileImageFilter::SetLayout "/**
+Self& itk::simple::TileImageFilter::SetLayout(const std::vector< uint32_t > &Layout)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TileImageFilter::TileImageFilter "/**
+itk::simple::TileImageFilter::TileImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TileImageFilter::ToString "/**
+std::string itk::simple::TileImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TileImageFilter::~TileImageFilter "/**
+itk::simple::TileImageFilter::~TileImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::Transform "/**
+
+A simplified wrapper around a variety of ITK transforms.
+
+
+The interface to ITK transform objects to be used with the ImageRegistrationMethod, ResampleImageFilter and other SimpleITK process objects. The transforms are designed to
+have a serialized array of parameters to facilitate optimization for
+registration.
+
+Provides a base class interface to any type of ITK transform. Objects
+of this type may have their interface converted to a derived interface
+while keeping the same reference to the ITK object.
+
+Additionally, this class provides a basic interface to a composite
+transforms.
+
+
+See:
+ itk::CompositeTransform
+
+
+C++ includes: sitkTransform.h
+*/"
+
+%javamethodmodifiers  itk::simple::Transform::AddTransform "/**
+Self& itk::simple::Transform::AddTransform(Transform t)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Transform::GetDimension "/**
+unsigned int itk::simple::Transform::GetDimension(void) const
+
+Return the dimension of the Transform ( 2D or 3D )
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Transform::GetInverse "/**
+Transform itk::simple::Transform::GetInverse() const
+
+Return a new inverse transform of the same type as this.
+
+
+Creates a new transform object and tries to set the value to the
+inverse. As not all transform types have inverse and some transforms
+are not invertable, an exception will be throw is there is no inverse.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Transform::GetName "/**
+virtual std::string itk::simple::Transform::GetName() const
+
+return user readable name for the SimpleITK transform
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Transform::IsLinear "/**
+virtual bool itk::simple::Transform::IsLinear() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Transform::MakeUnique "/**
+void itk::simple::Transform::MakeUnique(void)
+
+Performs actually coping if needed to make object unique.
+
+
+The Transform class by default performs lazy coping and assignment. This method
+make sure that coping actually happens to the itk::Transform pointed to is only pointed to by this object.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Transform::SetIdentity "/**
+virtual void itk::simple::Transform::SetIdentity()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Transform::SetInverse "/**
+virtual bool itk::simple::Transform::SetInverse()
+
+Try to change the current transform to it's inverse.
+
+
+If the transform has an inverse, i.e. non-singular linear transforms,
+then a new ITK transform is created of the same type and this object
+is set to it.
+
+However not all transform have a direct inverse, if the inverse does
+not exist or fails false will be returned and this transform will not
+be modified.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Transform::ToString "/**
+std::string itk::simple::Transform::ToString(void) const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Transform::Transform "/**
+itk::simple::Transform::Transform(void)
+
+By default a 3-d identity transform is constructed.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Transform::Transform "/**
+itk::simple::Transform::Transform(itk::CompositeTransform< double, NDimension > *compositeTransform)
+
+Construct a SimpleITK Transform from a pointer to an ITK composite transform.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Transform::Transform "/**
+itk::simple::Transform::Transform(itk::TransformBase *transform)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Transform::Transform "/**
+itk::simple::Transform::Transform(unsigned int dimensions, TransformEnum type)
+
+Construct a specific transformation.
+
+
+Deprecated
+This constructor will be removed in future releases.
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Transform::Transform "/**
+itk::simple::Transform::Transform(Image &displacement, TransformEnum type=sitkDisplacementField)
+
+Use an image to construct a transform.
+
+
+The input displacement image is transferred to the constructed
+transform object. The input image is modified to be a default
+constructed Image object.
+
+Only the sitkDisplacementField transformation type can currently be
+constructed this way. Image must be of sitkVectorFloat64 pixel type with the number of components
+equal to the image dimension.
+
+Deprecated
+This constructor will be removed in future releases.
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Transform::TransformPoint "/**
+std::vector< double > itk::simple::Transform::TransformPoint(const std::vector< double > &point) const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Transform::WriteTransform "/**
+void itk::simple::Transform::WriteTransform(const std::string &filename) const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Transform::~Transform "/**
+virtual itk::simple::Transform::~Transform(void)
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::TransformToDisplacementFieldFilter "/**
+
+Generate a displacement field from a coordinate transform.
+
+
+Output information (spacing, size and direction) for the output image
+should be set. This information has the normal defaults of unit
+spacing, zero origin and identity direction. Optionally, the output
+information can be obtained from a reference image. If the reference
+image is provided and UseReferenceImage is On, then the spacing,
+origin and direction of the reference image will be used.
+
+Since this filter produces an image which is a different size than its
+input, it needs to override several of the methods defined in ProcessObject in order to properly manage the pipeline execution model. In
+particular, this filter overrides
+ProcessObject::GenerateOutputInformation() .
+
+This filter is implemented as a multithreaded filter. It provides a
+ThreadedGenerateData() method for its implementation.
+
+
+Marius Staring, Leiden University Medical Center, The Netherlands.
+ This class was taken from the Insight Journal paper: https://hdl.handle.net/1926/1387
+See:
+ itk::simple::TransformToDisplacementFieldFilter for the procedural interface
+
+ itk::TransformToDisplacementFieldFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkTransformToDisplacementFieldFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::TransformToDisplacementFieldFilter::Execute "/**
+Image itk::simple::TransformToDisplacementFieldFilter::Execute(const Transform &transform)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TransformToDisplacementFieldFilter::Execute "/**
+Image itk::simple::TransformToDisplacementFieldFilter::Execute(const Transform &transform, PixelIDValueEnum outputPixelType, const
+std::vector< unsigned int > &size, const std::vector< double >
+&outputOrigin, const std::vector< double > &outputSpacing,
+std::vector< double > outputDirection)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TransformToDisplacementFieldFilter::GetName "/**
+std::string itk::simple::TransformToDisplacementFieldFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TransformToDisplacementFieldFilter::GetOutputDirection "/**
+std::vector<double> itk::simple::TransformToDisplacementFieldFilter::GetOutputDirection() const
+
+Set the output direction cosine matrix.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TransformToDisplacementFieldFilter::GetOutputOrigin "/**
+std::vector<double> itk::simple::TransformToDisplacementFieldFilter::GetOutputOrigin() const
+
+Get the output image origin.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TransformToDisplacementFieldFilter::GetOutputPixelType "/**
+PixelIDValueEnum itk::simple::TransformToDisplacementFieldFilter::GetOutputPixelType() const
+
+Get the ouput pixel type.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TransformToDisplacementFieldFilter::GetOutputSpacing "/**
+std::vector<double> itk::simple::TransformToDisplacementFieldFilter::GetOutputSpacing() const
+
+Get the output image spacing.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TransformToDisplacementFieldFilter::GetSize "/**
+std::vector<unsigned int> itk::simple::TransformToDisplacementFieldFilter::GetSize() const
+
+Set/Get the size of the output image.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TransformToDisplacementFieldFilter::SetOutputDirection "/**
+Self& itk::simple::TransformToDisplacementFieldFilter::SetOutputDirection(std::vector< double > OutputDirection)
+
+Set the output direction cosine matrix.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TransformToDisplacementFieldFilter::SetOutputOrigin "/**
+Self& itk::simple::TransformToDisplacementFieldFilter::SetOutputOrigin(const std::vector< double > &OutputOrigin)
+
+Set the output image origin.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TransformToDisplacementFieldFilter::SetOutputPixelType "/**
+Self& itk::simple::TransformToDisplacementFieldFilter::SetOutputPixelType(PixelIDValueEnum OutputPixelType)
+
+Set the output pixel type, only sitkVectorFloat32 and
+sitkVectorFloat64 are supported.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TransformToDisplacementFieldFilter::SetOutputSpacing "/**
+Self& itk::simple::TransformToDisplacementFieldFilter::SetOutputSpacing(const std::vector< double > &OutputSpacing)
+
+Set the output image spacing.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TransformToDisplacementFieldFilter::SetReferenceImage "/**
+void itk::simple::TransformToDisplacementFieldFilter::SetReferenceImage(const Image &refImage)
+
+This methods sets the size, origin, spacing and direction to that of
+the provided image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TransformToDisplacementFieldFilter::SetSize "/**
+Self& itk::simple::TransformToDisplacementFieldFilter::SetSize(const std::vector< unsigned int > &Size)
+
+Set/Get the size of the output image.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TransformToDisplacementFieldFilter::ToString "/**
+std::string itk::simple::TransformToDisplacementFieldFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TransformToDisplacementFieldFilter::TransformToDisplacementFieldFilter "/**
+itk::simple::TransformToDisplacementFieldFilter::TransformToDisplacementFieldFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TransformToDisplacementFieldFilter::~TransformToDisplacementFieldFilter "/**
+itk::simple::TransformToDisplacementFieldFilter::~TransformToDisplacementFieldFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::TranslationTransform "/**
+
+Translation of a 2D or 3D coordinate space.
+
+
+
+See:
+ itk::TranslationTransform
+
+
+C++ includes: sitkTranslationTransform.h
+*/"
+
+%javamethodmodifiers  itk::simple::TranslationTransform::GetOffset "/**
+std::vector<double> itk::simple::TranslationTransform::GetOffset() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TranslationTransform::SetOffset "/**
+Self& itk::simple::TranslationTransform::SetOffset(const std::vector< double > &params)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TranslationTransform::TranslationTransform "/**
+itk::simple::TranslationTransform::TranslationTransform(unsigned int dimensions, const std::vector< double >
+&offset=std::vector< double >(3, 0.0))
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TranslationTransform::TranslationTransform "/**
+itk::simple::TranslationTransform::TranslationTransform(const TranslationTransform &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TranslationTransform::TranslationTransform "/**
+itk::simple::TranslationTransform::TranslationTransform(const Transform &)
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::TriangleThresholdImageFilter "/**
+
+Threshold an image using the Triangle Threshold.
+
+
+This filter creates a binary thresholded image that separates an image
+into foreground and background components. The filter computes the
+threshold using the TriangleThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .
+
+
+Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+ Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/10380/3279 or http://www.insight-journal.org/browse/publication/811
+
+
+See:
+ HistogramThresholdImageFilter
+
+ itk::simple::TriangleThreshold for the procedural interface
+
+ itk::TriangleThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkTriangleThresholdImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::TriangleThresholdImageFilter::Execute "/**
+Image itk::simple::TriangleThresholdImageFilter::Execute(const Image &image, const Image &maskImage)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TriangleThresholdImageFilter::Execute "/**
+Image itk::simple::TriangleThresholdImageFilter::Execute(const Image &image)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TriangleThresholdImageFilter::Execute "/**
+Image itk::simple::TriangleThresholdImageFilter::Execute(const Image &image, const Image &maskImage, uint8_t insideValue,
+uint8_t outsideValue, uint32_t numberOfHistogramBins, bool maskOutput,
+uint8_t maskValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TriangleThresholdImageFilter::Execute "/**
+Image itk::simple::TriangleThresholdImageFilter::Execute(const Image &image, uint8_t insideValue, uint8_t outsideValue,
+uint32_t numberOfHistogramBins, bool maskOutput, uint8_t maskValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TriangleThresholdImageFilter::GetInsideValue "/**
+uint8_t itk::simple::TriangleThresholdImageFilter::GetInsideValue() const
+
+Get the \"inside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TriangleThresholdImageFilter::GetMaskOutput "/**
+bool itk::simple::TriangleThresholdImageFilter::GetMaskOutput() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TriangleThresholdImageFilter::GetMaskValue "/**
+uint8_t itk::simple::TriangleThresholdImageFilter::GetMaskValue() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TriangleThresholdImageFilter::GetName "/**
+std::string itk::simple::TriangleThresholdImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TriangleThresholdImageFilter::GetNumberOfHistogramBins "/**
+uint32_t itk::simple::TriangleThresholdImageFilter::GetNumberOfHistogramBins() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TriangleThresholdImageFilter::GetOutsideValue "/**
+uint8_t itk::simple::TriangleThresholdImageFilter::GetOutsideValue() const
+
+Get the \"outside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TriangleThresholdImageFilter::GetThreshold "/**
+double itk::simple::TriangleThresholdImageFilter::GetThreshold() const
+
+Get the computed threshold.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TriangleThresholdImageFilter::MaskOutputOff "/**
+Self& itk::simple::TriangleThresholdImageFilter::MaskOutputOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TriangleThresholdImageFilter::MaskOutputOn "/**
+Self& itk::simple::TriangleThresholdImageFilter::MaskOutputOn()
+
+Set the value of MaskOutput to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TriangleThresholdImageFilter::SetInsideValue "/**
+Self& itk::simple::TriangleThresholdImageFilter::SetInsideValue(uint8_t InsideValue)
+
+Set the \"inside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TriangleThresholdImageFilter::SetMaskOutput "/**
+Self& itk::simple::TriangleThresholdImageFilter::SetMaskOutput(bool MaskOutput)
+
+Do you want the output to be masked by the mask used in histogram
+construction. Only relevant if masking is in use.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TriangleThresholdImageFilter::SetMaskValue "/**
+Self& itk::simple::TriangleThresholdImageFilter::SetMaskValue(uint8_t MaskValue)
+
+The value in the mask image, if used, indicating voxels that should be
+included. Default is the max of pixel type, as in the
+MaskedImageToHistogramFilter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TriangleThresholdImageFilter::SetNumberOfHistogramBins "/**
+Self& itk::simple::TriangleThresholdImageFilter::SetNumberOfHistogramBins(uint32_t NumberOfHistogramBins)
+
+Set/Get the number of histogram bins.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TriangleThresholdImageFilter::SetOutsideValue "/**
+Self& itk::simple::TriangleThresholdImageFilter::SetOutsideValue(uint8_t OutsideValue)
+
+Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TriangleThresholdImageFilter::ToString "/**
+std::string itk::simple::TriangleThresholdImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TriangleThresholdImageFilter::TriangleThresholdImageFilter "/**
+itk::simple::TriangleThresholdImageFilter::TriangleThresholdImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TriangleThresholdImageFilter::~TriangleThresholdImageFilter "/**
+itk::simple::TriangleThresholdImageFilter::~TriangleThresholdImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::UnaryMinusImageFilter "/**
+
+Computes the negative of each pixel.
+
+
+
+See:
+ itk::simple::UnaryMinus for the procedural interface
+
+ itk::UnaryFunctorImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkUnaryMinusImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::UnaryMinusImageFilter::Execute "/**
+Image itk::simple::UnaryMinusImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::UnaryMinusImageFilter::GetName "/**
+std::string itk::simple::UnaryMinusImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::UnaryMinusImageFilter::ToString "/**
+std::string itk::simple::UnaryMinusImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::UnaryMinusImageFilter::UnaryMinusImageFilter "/**
+itk::simple::UnaryMinusImageFilter::UnaryMinusImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::UnaryMinusImageFilter::~UnaryMinusImageFilter "/**
+itk::simple::UnaryMinusImageFilter::~UnaryMinusImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ValuedRegionalMaximaImageFilter "/**
+
+Transforms the image so that any pixel that is not a regional maxima
+is set to the minimum value for the pixel type. Pixels that are
+regional maxima retain their value.
+
+
+Regional maxima are flat zones surrounded by pixels of lower value. A
+completely flat image will be marked as a regional maxima by this
+filter.
+
+This code was contributed in the Insight Journal paper: \"Finding
+regional extrema - methods and performance\" by Beare R., Lehmann G. https://hdl.handle.net/1926/153 http://www.insight-journal.org/browse/publication/65
+
+
+Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+
+See:
+ ValuedRegionalMinimaImageFilter
+
+ ValuedRegionalExtremaImageFilter
+
+ HMinimaImageFilter
+Wiki Examples:
+
+All Examples
+
+ValuedRegionalMaximaImageFilter
+See:
+ itk::simple::ValuedRegionalMaxima for the procedural interface
+
+ itk::ValuedRegionalMaximaImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkValuedRegionalMaximaImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ValuedRegionalMaximaImageFilter::Execute "/**
+Image itk::simple::ValuedRegionalMaximaImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ValuedRegionalMaximaImageFilter::Execute "/**
+Image itk::simple::ValuedRegionalMaximaImageFilter::Execute(const Image &image1, bool fullyConnected)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ValuedRegionalMaximaImageFilter::FullyConnectedOff "/**
+Self& itk::simple::ValuedRegionalMaximaImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ValuedRegionalMaximaImageFilter::FullyConnectedOn "/**
+Self& itk::simple::ValuedRegionalMaximaImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ValuedRegionalMaximaImageFilter::GetFlat "/**
+bool itk::simple::ValuedRegionalMaximaImageFilter::GetFlat() const
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ValuedRegionalMaximaImageFilter::GetFullyConnected "/**
+bool itk::simple::ValuedRegionalMaximaImageFilter::GetFullyConnected() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ValuedRegionalMaximaImageFilter::GetName "/**
+std::string itk::simple::ValuedRegionalMaximaImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ValuedRegionalMaximaImageFilter::SetFullyConnected "/**
+Self& itk::simple::ValuedRegionalMaximaImageFilter::SetFullyConnected(bool FullyConnected)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ValuedRegionalMaximaImageFilter::ToString "/**
+std::string itk::simple::ValuedRegionalMaximaImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ValuedRegionalMaximaImageFilter::ValuedRegionalMaximaImageFilter "/**
+itk::simple::ValuedRegionalMaximaImageFilter::ValuedRegionalMaximaImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ValuedRegionalMaximaImageFilter::~ValuedRegionalMaximaImageFilter "/**
+itk::simple::ValuedRegionalMaximaImageFilter::~ValuedRegionalMaximaImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ValuedRegionalMinimaImageFilter "/**
+
+Transforms the image so that any pixel that is not a regional minima
+is set to the maximum value for the pixel type. Pixels that are
+regional minima retain their value.
+
+
+Regional minima are flat zones surrounded by pixels of higher value. A
+completely flat image will be marked as a regional minima by this
+filter.
+
+This code was contributed in the Insight Journal paper: \"Finding
+regional extrema - methods and performance\" by Beare R., Lehmann G. https://hdl.handle.net/1926/153 http://www.insight-journal.org/browse/publication/65
+
+
+Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+
+See:
+ ValuedRegionalMaximaImageFilter , ValuedRegionalExtremaImageFilter ,
+
+ HMinimaImageFilter
+Wiki Examples:
+
+All Examples
+
+ValuedRegionalMinimaImageFilter
+See:
+ itk::simple::ValuedRegionalMinima for the procedural interface
+
+ itk::ValuedRegionalMinimaImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkValuedRegionalMinimaImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ValuedRegionalMinimaImageFilter::Execute "/**
+Image itk::simple::ValuedRegionalMinimaImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ValuedRegionalMinimaImageFilter::Execute "/**
+Image itk::simple::ValuedRegionalMinimaImageFilter::Execute(const Image &image1, bool fullyConnected)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ValuedRegionalMinimaImageFilter::FullyConnectedOff "/**
+Self& itk::simple::ValuedRegionalMinimaImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ValuedRegionalMinimaImageFilter::FullyConnectedOn "/**
+Self& itk::simple::ValuedRegionalMinimaImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ValuedRegionalMinimaImageFilter::GetFlat "/**
+bool itk::simple::ValuedRegionalMinimaImageFilter::GetFlat() const
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ValuedRegionalMinimaImageFilter::GetFullyConnected "/**
+bool itk::simple::ValuedRegionalMinimaImageFilter::GetFullyConnected() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ValuedRegionalMinimaImageFilter::GetName "/**
+std::string itk::simple::ValuedRegionalMinimaImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ValuedRegionalMinimaImageFilter::SetFullyConnected "/**
+Self& itk::simple::ValuedRegionalMinimaImageFilter::SetFullyConnected(bool FullyConnected)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ValuedRegionalMinimaImageFilter::ToString "/**
+std::string itk::simple::ValuedRegionalMinimaImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ValuedRegionalMinimaImageFilter::ValuedRegionalMinimaImageFilter "/**
+itk::simple::ValuedRegionalMinimaImageFilter::ValuedRegionalMinimaImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ValuedRegionalMinimaImageFilter::~ValuedRegionalMinimaImageFilter "/**
+itk::simple::ValuedRegionalMinimaImageFilter::~ValuedRegionalMinimaImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::VectorConfidenceConnectedImageFilter "/**
+
+Segment pixels with similar statistics using connectivity.
+
+
+This filter extracts a connected set of pixels whose pixel intensities
+are consistent with the pixel statistics of a seed point. The mean and
+variance across a neighborhood (8-connected, 26-connected, etc.) are
+calculated for a seed point. Then pixels connected to this seed point
+whose values are within the confidence interval for the seed point are
+grouped. The width of the confidence interval is controlled by the
+\"Multiplier\" variable (the confidence interval is the mean plus or
+minus the \"Multiplier\" times the standard deviation). If the
+intensity variations across a segment were gaussian, a \"Multiplier\"
+setting of 2.5 would define a confidence interval wide enough to
+capture 99% of samples in the segment.
+
+After this initial segmentation is calculated, the mean and variance
+are re-calculated. All the pixels in the previous segmentation are
+used to calculate the mean the standard deviation (as opposed to using
+the pixels in the neighborhood of the seed point). The segmentation is
+then recalculted using these refined estimates for the mean and
+variance of the pixel values. This process is repeated for the
+specified number of iterations. Setting the \"NumberOfIterations\" to
+zero stops the algorithm after the initial segmentation from the seed
+point.
+
+NOTE: the lower and upper threshold are restricted to lie within the
+valid numeric limits of the input data pixel type. Also, the limits
+may be adjusted to contain the seed point's intensity.
+See:
+ itk::simple::VectorConfidenceConnected for the procedural interface
+
+ itk::VectorConfidenceConnectedImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkVectorConfidenceConnectedImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::VectorConfidenceConnectedImageFilter::AddSeed "/**
+Self& itk::simple::VectorConfidenceConnectedImageFilter::AddSeed(const std::vector< unsigned int > &idx)
+
+AddSeed - Add a seed to the end of the list
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConfidenceConnectedImageFilter::ClearSeeds "/**
+Self& itk::simple::VectorConfidenceConnectedImageFilter::ClearSeeds()
+
+ClearSeeds - Clear out all seeds in the list
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConfidenceConnectedImageFilter::Execute "/**
+Image itk::simple::VectorConfidenceConnectedImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConfidenceConnectedImageFilter::Execute "/**
+Image itk::simple::VectorConfidenceConnectedImageFilter::Execute(const Image &image1, const std::vector< std::vector< unsigned int > >
+&seedList, unsigned int numberOfIterations, double multiplier,
+unsigned int initialNeighborhoodRadius, uint8_t replaceValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConfidenceConnectedImageFilter::GetCovariance "/**
+std::vector<double> itk::simple::VectorConfidenceConnectedImageFilter::GetCovariance() const
+
+Get the Covariance matrix computed during the segmentation
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConfidenceConnectedImageFilter::GetInitialNeighborhoodRadius "/**
+unsigned int itk::simple::VectorConfidenceConnectedImageFilter::GetInitialNeighborhoodRadius() const
+
+Get/Set the radius of the neighborhood over which the statistics are
+evaluated
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConfidenceConnectedImageFilter::GetMean "/**
+std::vector<double> itk::simple::VectorConfidenceConnectedImageFilter::GetMean() const
+
+Get the Mean Vector computed during the segmentation
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConfidenceConnectedImageFilter::GetMultiplier "/**
+double itk::simple::VectorConfidenceConnectedImageFilter::GetMultiplier() const
+
+Set/Get the multiplier to define the confidence interval. Multiplier
+can be anything greater than zero. A typical value is 2.5
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConfidenceConnectedImageFilter::GetName "/**
+std::string itk::simple::VectorConfidenceConnectedImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConfidenceConnectedImageFilter::GetNumberOfIterations "/**
+unsigned int itk::simple::VectorConfidenceConnectedImageFilter::GetNumberOfIterations() const
+
+Set/Get the number of iterations
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConfidenceConnectedImageFilter::GetReplaceValue "/**
+uint8_t itk::simple::VectorConfidenceConnectedImageFilter::GetReplaceValue() const
+
+Set/Get value to replace thresholded pixels
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConfidenceConnectedImageFilter::GetSeedList "/**
+std::vector< std::vector<unsigned int> > itk::simple::VectorConfidenceConnectedImageFilter::GetSeedList() const
+
+Get SeedList
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConfidenceConnectedImageFilter::SetInitialNeighborhoodRadius "/**
+Self& itk::simple::VectorConfidenceConnectedImageFilter::SetInitialNeighborhoodRadius(unsigned int InitialNeighborhoodRadius)
+
+Get/Set the radius of the neighborhood over which the statistics are
+evaluated
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConfidenceConnectedImageFilter::SetMultiplier "/**
+Self& itk::simple::VectorConfidenceConnectedImageFilter::SetMultiplier(double Multiplier)
+
+Set/Get the multiplier to define the confidence interval. Multiplier
+can be anything greater than zero. A typical value is 2.5
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConfidenceConnectedImageFilter::SetNumberOfIterations "/**
+Self& itk::simple::VectorConfidenceConnectedImageFilter::SetNumberOfIterations(unsigned int NumberOfIterations)
+
+Set/Get the number of iterations
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConfidenceConnectedImageFilter::SetReplaceValue "/**
+Self& itk::simple::VectorConfidenceConnectedImageFilter::SetReplaceValue(uint8_t ReplaceValue)
+
+Set/Get value to replace thresholded pixels
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConfidenceConnectedImageFilter::SetSeed "/**
+Self& itk::simple::VectorConfidenceConnectedImageFilter::SetSeed(const std::vector< unsigned int > &idx)
+
+SetSeed - Set list to a single seed
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConfidenceConnectedImageFilter::SetSeedList "/**
+Self& itk::simple::VectorConfidenceConnectedImageFilter::SetSeedList(const std::vector< std::vector< unsigned int > > &t)
+
+Set SeedList
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConfidenceConnectedImageFilter::ToString "/**
+std::string itk::simple::VectorConfidenceConnectedImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConfidenceConnectedImageFilter::VectorConfidenceConnectedImageFilter "/**
+itk::simple::VectorConfidenceConnectedImageFilter::VectorConfidenceConnectedImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConfidenceConnectedImageFilter::~VectorConfidenceConnectedImageFilter "/**
+itk::simple::VectorConfidenceConnectedImageFilter::~VectorConfidenceConnectedImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::VectorConnectedComponentImageFilter "/**
+
+A connected components filter that labels the objects in a vector
+image. Two vectors are pointing similar directions if one minus their
+dot product is less than a threshold. Vectors that are 180 degrees out
+of phase are similar. Assumes that vectors are normalized.
+
+
+
+See:
+ itk::simple::VectorConnectedComponent for the procedural interface
+
+ itk::VectorConnectedComponentImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkVectorConnectedComponentImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::VectorConnectedComponentImageFilter::Execute "/**
+Image itk::simple::VectorConnectedComponentImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConnectedComponentImageFilter::Execute "/**
+Image itk::simple::VectorConnectedComponentImageFilter::Execute(const Image &image1, double distanceThreshold, bool fullyConnected)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConnectedComponentImageFilter::FullyConnectedOff "/**
+Self& itk::simple::VectorConnectedComponentImageFilter::FullyConnectedOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConnectedComponentImageFilter::FullyConnectedOn "/**
+Self& itk::simple::VectorConnectedComponentImageFilter::FullyConnectedOn()
+
+Set the value of FullyConnected to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConnectedComponentImageFilter::GetDistanceThreshold "/**
+double itk::simple::VectorConnectedComponentImageFilter::GetDistanceThreshold() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConnectedComponentImageFilter::GetFullyConnected "/**
+bool itk::simple::VectorConnectedComponentImageFilter::GetFullyConnected() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConnectedComponentImageFilter::GetName "/**
+std::string itk::simple::VectorConnectedComponentImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConnectedComponentImageFilter::SetDistanceThreshold "/**
+Self& itk::simple::VectorConnectedComponentImageFilter::SetDistanceThreshold(double DistanceThreshold)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConnectedComponentImageFilter::SetFullyConnected "/**
+Self& itk::simple::VectorConnectedComponentImageFilter::SetFullyConnected(bool FullyConnected)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConnectedComponentImageFilter::ToString "/**
+std::string itk::simple::VectorConnectedComponentImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConnectedComponentImageFilter::VectorConnectedComponentImageFilter "/**
+itk::simple::VectorConnectedComponentImageFilter::VectorConnectedComponentImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConnectedComponentImageFilter::~VectorConnectedComponentImageFilter "/**
+itk::simple::VectorConnectedComponentImageFilter::~VectorConnectedComponentImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::VectorIndexSelectionCastImageFilter "/**
+
+Extracts the selected index of the vector that is the input pixel
+type.
+
+
+This filter is templated over the input image type and output image
+type.
+
+The filter expect the input image pixel type to be a vector and the
+output image pixel type to be a scalar. The only requirement on the
+type used for representing the vector is that it must provide an
+operator[].
+
+
+See:
+ ComposeImageFilter
+Wiki Examples:
+
+All Examples
+
+Extract a component/channel of a vector image
+See:
+ itk::simple::VectorIndexSelectionCast for the procedural interface
+
+ itk::VectorIndexSelectionCastImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkVectorIndexSelectionCastImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::VectorIndexSelectionCastImageFilter::Execute "/**
+Image itk::simple::VectorIndexSelectionCastImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorIndexSelectionCastImageFilter::Execute "/**
+Image itk::simple::VectorIndexSelectionCastImageFilter::Execute(const Image &image1, unsigned int index, PixelIDValueEnum
+outputPixelType)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorIndexSelectionCastImageFilter::GetIndex "/**
+unsigned int itk::simple::VectorIndexSelectionCastImageFilter::GetIndex() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorIndexSelectionCastImageFilter::GetName "/**
+std::string itk::simple::VectorIndexSelectionCastImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorIndexSelectionCastImageFilter::GetOutputPixelType "/**
+PixelIDValueEnum itk::simple::VectorIndexSelectionCastImageFilter::GetOutputPixelType() const
+
+Get the ouput pixel type.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorIndexSelectionCastImageFilter::SetIndex "/**
+Self& itk::simple::VectorIndexSelectionCastImageFilter::SetIndex(unsigned int Index)
+
+Get/Set methods for the index
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorIndexSelectionCastImageFilter::SetOutputPixelType "/**
+Self& itk::simple::VectorIndexSelectionCastImageFilter::SetOutputPixelType(PixelIDValueEnum OutputPixelType)
+
+Set the output pixel type of the scalar component to extract.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorIndexSelectionCastImageFilter::ToString "/**
+std::string itk::simple::VectorIndexSelectionCastImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorIndexSelectionCastImageFilter::VectorIndexSelectionCastImageFilter "/**
+itk::simple::VectorIndexSelectionCastImageFilter::VectorIndexSelectionCastImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorIndexSelectionCastImageFilter::~VectorIndexSelectionCastImageFilter "/**
+itk::simple::VectorIndexSelectionCastImageFilter::~VectorIndexSelectionCastImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::VectorMagnitudeImageFilter "/**
+
+Take an image of vectors as input and produce an image with the
+magnitude of those vectors.
+
+
+The filter expects the input image pixel type to be a vector and the
+output image pixel type to be a scalar.
+
+This filter assumes that the PixelType of the input image is a
+VectorType that provides a GetNorm() method.
+
+Wiki Examples:
+
+All Examples
+
+Compute the magnitude of each pixel in a vector image to produce a
+magnitude image
+See:
+ itk::simple::VectorMagnitude for the procedural interface
+
+ itk::VectorMagnitudeImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkVectorMagnitudeImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::VectorMagnitudeImageFilter::Execute "/**
+Image itk::simple::VectorMagnitudeImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorMagnitudeImageFilter::GetName "/**
+std::string itk::simple::VectorMagnitudeImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorMagnitudeImageFilter::ToString "/**
+std::string itk::simple::VectorMagnitudeImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorMagnitudeImageFilter::VectorMagnitudeImageFilter "/**
+itk::simple::VectorMagnitudeImageFilter::VectorMagnitudeImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorMagnitudeImageFilter::~VectorMagnitudeImageFilter "/**
+itk::simple::VectorMagnitudeImageFilter::~VectorMagnitudeImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::Version "/**
+
+Version info for SimpleITK.
+
+C++ includes: sitkVersion.h
+*/"
+
+%javamethodmodifiers  itk::simple::Version::ToString "/**
+std::string itk::simple::Version::ToString()
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::VersorRigid3DTransform "/**
+
+A rotation as a versor around a fixed center with translation of a 3D
+coordinate space.
+
+
+
+See:
+ itk::VersorRigid3DTransform
+
+
+C++ includes: sitkVersorRigid3DTransform.h
+*/"
+
+%javamethodmodifiers  itk::simple::VersorRigid3DTransform::GetCenter "/**
+std::vector<double> itk::simple::VersorRigid3DTransform::GetCenter() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VersorRigid3DTransform::GetMatrix "/**
+std::vector<double> itk::simple::VersorRigid3DTransform::GetMatrix() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VersorRigid3DTransform::GetTranslation "/**
+std::vector<double> itk::simple::VersorRigid3DTransform::GetTranslation() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VersorRigid3DTransform::GetVersor "/**
+std::vector<double> itk::simple::VersorRigid3DTransform::GetVersor() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VersorRigid3DTransform::SetCenter "/**
+Self& itk::simple::VersorRigid3DTransform::SetCenter(const std::vector< double > &params)
+
+fixed parameter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VersorRigid3DTransform::SetMatrix "/**
+Self& itk::simple::VersorRigid3DTransform::SetMatrix(const std::vector< double > &matrix, double tolerance=1e-10)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VersorRigid3DTransform::SetRotation "/**
+Self& itk::simple::VersorRigid3DTransform::SetRotation(const std::vector< double > &versor)
+
+parameter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VersorRigid3DTransform::SetRotation "/**
+Self& itk::simple::VersorRigid3DTransform::SetRotation(const std::vector< double > &axis, double angle)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VersorRigid3DTransform::SetTranslation "/**
+Self& itk::simple::VersorRigid3DTransform::SetTranslation(const std::vector< double > &translation)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VersorRigid3DTransform::Translate "/**
+Self& itk::simple::VersorRigid3DTransform::Translate(const std::vector< double > &offset)
+
+additional methods
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VersorRigid3DTransform::VersorRigid3DTransform "/**
+itk::simple::VersorRigid3DTransform::VersorRigid3DTransform()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VersorRigid3DTransform::VersorRigid3DTransform "/**
+itk::simple::VersorRigid3DTransform::VersorRigid3DTransform(const VersorRigid3DTransform &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VersorRigid3DTransform::VersorRigid3DTransform "/**
+itk::simple::VersorRigid3DTransform::VersorRigid3DTransform(const Transform &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VersorRigid3DTransform::VersorRigid3DTransform "/**
+itk::simple::VersorRigid3DTransform::VersorRigid3DTransform(const std::vector< double > &versor, const std::vector< double >
+&translation=std::vector< double >(3, 0.0), const std::vector< double
+> &fixedCenter=std::vector< double >(3, 0.0))
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VersorRigid3DTransform::VersorRigid3DTransform "/**
+itk::simple::VersorRigid3DTransform::VersorRigid3DTransform(const std::vector< double > &axis, double angle, const std::vector<
+double > &translation=std::vector< double >(3, 0.0), const
+std::vector< double > &fixedCenter=std::vector< double >(3, 0.0))
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::VersorTransform "/**
+
+A 3D rotation transform with rotation as a versor around a fixed
+center.
+
+
+
+See:
+ itk::VersorTransform
+
+
+C++ includes: sitkVersorTransform.h
+*/"
+
+%javamethodmodifiers  itk::simple::VersorTransform::GetCenter "/**
+std::vector<double> itk::simple::VersorTransform::GetCenter() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VersorTransform::GetMatrix "/**
+std::vector<double> itk::simple::VersorTransform::GetMatrix() const
+
+additional methods
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VersorTransform::GetVersor "/**
+std::vector<double> itk::simple::VersorTransform::GetVersor() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VersorTransform::SetCenter "/**
+Self& itk::simple::VersorTransform::SetCenter(const std::vector< double > &params)
+
+fixed parameter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VersorTransform::SetMatrix "/**
+Self& itk::simple::VersorTransform::SetMatrix(const std::vector< double > &matrix, double tolerance=1e-10)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VersorTransform::SetRotation "/**
+Self& itk::simple::VersorTransform::SetRotation(const std::vector< double > &versor)
+
+parameter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VersorTransform::SetRotation "/**
+Self& itk::simple::VersorTransform::SetRotation(const std::vector< double > &axis, double angle)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VersorTransform::VersorTransform "/**
+itk::simple::VersorTransform::VersorTransform()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VersorTransform::VersorTransform "/**
+itk::simple::VersorTransform::VersorTransform(const VersorTransform &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VersorTransform::VersorTransform "/**
+itk::simple::VersorTransform::VersorTransform(const Transform &)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VersorTransform::VersorTransform "/**
+itk::simple::VersorTransform::VersorTransform(const std::vector< double > &versor, const std::vector< double >
+&fixedCenter=std::vector< double >(3, 0.0))
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VersorTransform::VersorTransform "/**
+itk::simple::VersorTransform::VersorTransform(const std::vector< double > &axis, double angle, const std::vector<
+double > &fixedCenter=std::vector< double >(3, 0.0))
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::VotingBinaryHoleFillingImageFilter "/**
+
+Fills in holes and cavities by applying a voting operation on each
+pixel.
+
+
+
+See:
+ Image
+
+ VotingBinaryImageFilter
+
+ VotingBinaryIterativeHoleFillingImageFilter
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+
+ itk::simple::VotingBinaryHoleFilling for the procedural interface
+
+ itk::VotingBinaryHoleFillingImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkVotingBinaryHoleFillingImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::VotingBinaryHoleFillingImageFilter::Execute "/**
+Image itk::simple::VotingBinaryHoleFillingImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryHoleFillingImageFilter::Execute "/**
+Image itk::simple::VotingBinaryHoleFillingImageFilter::Execute(const Image &image1, const std::vector< unsigned int > &radius,
+unsigned int majorityThreshold, double foregroundValue, double
+backgroundValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryHoleFillingImageFilter::GetBackgroundValue "/**
+double itk::simple::VotingBinaryHoleFillingImageFilter::GetBackgroundValue() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryHoleFillingImageFilter::GetForegroundValue "/**
+double itk::simple::VotingBinaryHoleFillingImageFilter::GetForegroundValue() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryHoleFillingImageFilter::GetMajorityThreshold "/**
+unsigned int itk::simple::VotingBinaryHoleFillingImageFilter::GetMajorityThreshold() const
+
+Majority threshold. It is the number of pixels over 50% that will
+decide whether an OFF pixel will become ON or not. For example, if the
+neighborhood of a pixel has 124 pixels (excluding itself), the 50%
+will be 62, and if you set upd a Majority threshold of 5, that means
+that the filter will require 67 or more neighbor pixels to be ON in
+order to switch the current OFF pixel to ON. The default value is 1.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryHoleFillingImageFilter::GetName "/**
+std::string itk::simple::VotingBinaryHoleFillingImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryHoleFillingImageFilter::GetRadius "/**
+std::vector<unsigned int> itk::simple::VotingBinaryHoleFillingImageFilter::GetRadius() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryHoleFillingImageFilter::SetBackgroundValue "/**
+Self& itk::simple::VotingBinaryHoleFillingImageFilter::SetBackgroundValue(double BackgroundValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryHoleFillingImageFilter::SetForegroundValue "/**
+Self& itk::simple::VotingBinaryHoleFillingImageFilter::SetForegroundValue(double ForegroundValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryHoleFillingImageFilter::SetMajorityThreshold "/**
+Self& itk::simple::VotingBinaryHoleFillingImageFilter::SetMajorityThreshold(unsigned int MajorityThreshold)
+
+Majority threshold. It is the number of pixels over 50% that will
+decide whether an OFF pixel will become ON or not. For example, if the
+neighborhood of a pixel has 124 pixels (excluding itself), the 50%
+will be 62, and if you set upd a Majority threshold of 5, that means
+that the filter will require 67 or more neighbor pixels to be ON in
+order to switch the current OFF pixel to ON. The default value is 1.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryHoleFillingImageFilter::SetRadius "/**
+Self& itk::simple::VotingBinaryHoleFillingImageFilter::SetRadius(const std::vector< unsigned int > &Radius)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryHoleFillingImageFilter::SetRadius "/**
+Self& itk::simple::VotingBinaryHoleFillingImageFilter::SetRadius(unsigned int value)
+
+Set the values of the Radius vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryHoleFillingImageFilter::ToString "/**
+std::string itk::simple::VotingBinaryHoleFillingImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryHoleFillingImageFilter::VotingBinaryHoleFillingImageFilter "/**
+itk::simple::VotingBinaryHoleFillingImageFilter::VotingBinaryHoleFillingImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryHoleFillingImageFilter::~VotingBinaryHoleFillingImageFilter "/**
+itk::simple::VotingBinaryHoleFillingImageFilter::~VotingBinaryHoleFillingImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::VotingBinaryImageFilter "/**
+
+Applies a voting operation in a neighborhood of each pixel.
+
+
+
+Pixels which are not Foreground or Background will remain unchanged.
+
+See:
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+
+ itk::simple::VotingBinary for the procedural interface
+
+ itk::VotingBinaryImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkVotingBinaryImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::VotingBinaryImageFilter::Execute "/**
+Image itk::simple::VotingBinaryImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryImageFilter::Execute "/**
+Image itk::simple::VotingBinaryImageFilter::Execute(const Image &image1, const std::vector< unsigned int > &radius,
+unsigned int birthThreshold, unsigned int survivalThreshold, double
+foregroundValue, double backgroundValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryImageFilter::GetBackgroundValue "/**
+double itk::simple::VotingBinaryImageFilter::GetBackgroundValue() const
+
+Get the value associated with the Foreground (or the object) on the
+binary input image and the Background .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryImageFilter::GetBirthThreshold "/**
+unsigned int itk::simple::VotingBinaryImageFilter::GetBirthThreshold() const
+
+Birth threshold. Pixels that are OFF will turn ON when the number of
+neighbors ON is larger than the value defined in this threshold.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryImageFilter::GetForegroundValue "/**
+double itk::simple::VotingBinaryImageFilter::GetForegroundValue() const
+
+Get the value associated with the Foreground (or the object) on the
+binary input image and the Background .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryImageFilter::GetName "/**
+std::string itk::simple::VotingBinaryImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryImageFilter::GetRadius "/**
+std::vector<unsigned int> itk::simple::VotingBinaryImageFilter::GetRadius() const
+
+Get the radius of the neighborhood used to compute the median
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryImageFilter::GetSurvivalThreshold "/**
+unsigned int itk::simple::VotingBinaryImageFilter::GetSurvivalThreshold() const
+
+Survival threshold. Pixels that are ON will turn OFF when the number
+of neighbors ON is smaller than the value defined in this survival
+threshold.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryImageFilter::SetBackgroundValue "/**
+Self& itk::simple::VotingBinaryImageFilter::SetBackgroundValue(double BackgroundValue)
+
+Set the value associated with the Foreground (or the object) on the
+binary input image and the Background .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryImageFilter::SetBirthThreshold "/**
+Self& itk::simple::VotingBinaryImageFilter::SetBirthThreshold(unsigned int BirthThreshold)
+
+Birth threshold. Pixels that are OFF will turn ON when the number of
+neighbors ON is larger than the value defined in this threshold.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryImageFilter::SetForegroundValue "/**
+Self& itk::simple::VotingBinaryImageFilter::SetForegroundValue(double ForegroundValue)
+
+Set the value associated with the Foreground (or the object) on the
+binary input image and the Background .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryImageFilter::SetRadius "/**
+Self& itk::simple::VotingBinaryImageFilter::SetRadius(const std::vector< unsigned int > &Radius)
+
+Set the radius of the neighborhood used to compute the median.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryImageFilter::SetRadius "/**
+Self& itk::simple::VotingBinaryImageFilter::SetRadius(unsigned int value)
+
+Set the values of the Radius vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryImageFilter::SetSurvivalThreshold "/**
+Self& itk::simple::VotingBinaryImageFilter::SetSurvivalThreshold(unsigned int SurvivalThreshold)
+
+Survival threshold. Pixels that are ON will turn OFF when the number
+of neighbors ON is smaller than the value defined in this survival
+threshold.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryImageFilter::ToString "/**
+std::string itk::simple::VotingBinaryImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryImageFilter::VotingBinaryImageFilter "/**
+itk::simple::VotingBinaryImageFilter::VotingBinaryImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryImageFilter::~VotingBinaryImageFilter "/**
+itk::simple::VotingBinaryImageFilter::~VotingBinaryImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::VotingBinaryIterativeHoleFillingImageFilter "/**
+
+Fills in holes and cavities by iteratively applying a voting
+operation.
+
+
+This filter uses internally the VotingBinaryHoleFillingImageFilter , and runs it iteratively until no pixels are being changed or until
+it reaches the maximum number of iterations. The purpose of the filter
+is to fill in holes of medium size (tens of pixels in radius). In
+principle the number of iterations is related to the size of the holes
+to be filled in. The larger the holes, the more iteration must be run
+with this filter in order to fill in the full hole. The size of the
+neighborhood is also related to the curvature of the hole borders and
+therefore the hole size. Note that as a collateral effect this filter
+may also fill in cavities in the external side of structures.
+
+This filter is templated over a single image type because the output
+image type must be the same as the input image type. This is required
+in order to make the iterations possible, since the output image of
+one iteration is taken as the input image for the next iteration.
+
+
+See:
+ Image
+
+ VotingBinaryImageFilter
+
+ VotingBinaryHoleFillingImageFilter
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+
+ itk::simple::VotingBinaryIterativeHoleFilling for the procedural interface
+
+ itk::VotingBinaryIterativeHoleFillingImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkVotingBinaryIterativeHoleFillingImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::Execute "/**
+Image itk::simple::VotingBinaryIterativeHoleFillingImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::Execute "/**
+Image itk::simple::VotingBinaryIterativeHoleFillingImageFilter::Execute(const Image &image1, const std::vector< unsigned int > &radius,
+unsigned int maximumNumberOfIterations, unsigned int
+majorityThreshold, double foregroundValue, double backgroundValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::GetBackgroundValue "/**
+double itk::simple::VotingBinaryIterativeHoleFillingImageFilter::GetBackgroundValue() const
+
+Get the value associated with the Foreground (or the object) on the
+binary input image and the Background .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::GetForegroundValue "/**
+double itk::simple::VotingBinaryIterativeHoleFillingImageFilter::GetForegroundValue() const
+
+Get the value associated with the Foreground (or the object) on the
+binary input image and the Background .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::GetMajorityThreshold "/**
+unsigned int itk::simple::VotingBinaryIterativeHoleFillingImageFilter::GetMajorityThreshold() const
+
+Majority threshold. It is the number of pixels over 50% that will
+decide whether an OFF pixel will become ON or not. For example, if the
+neighborhood of a pixel has 124 pixels (excluding itself), the 50%
+will be 62, and if you set upd a Majority threshold of 5, that means
+that the filter will require 67 or more neighbor pixels to be ON in
+order to switch the current OFF pixel to ON. The default value is 1.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::GetMaximumNumberOfIterations "/**
+unsigned int itk::simple::VotingBinaryIterativeHoleFillingImageFilter::GetMaximumNumberOfIterations() const
+
+Maximum number of iterations. This filter is executed iteratively as
+long as at least one pixel has changed in a previous iteration, or
+until the maximum number of iterations has been reached.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::GetName "/**
+std::string itk::simple::VotingBinaryIterativeHoleFillingImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::GetRadius "/**
+std::vector<unsigned int> itk::simple::VotingBinaryIterativeHoleFillingImageFilter::GetRadius() const
+
+Get the radius of the neighborhood used to compute the median
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::SetBackgroundValue "/**
+Self& itk::simple::VotingBinaryIterativeHoleFillingImageFilter::SetBackgroundValue(double BackgroundValue)
+
+Set the value associated with the Foreground (or the object) on the
+binary input image and the Background .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::SetForegroundValue "/**
+Self& itk::simple::VotingBinaryIterativeHoleFillingImageFilter::SetForegroundValue(double ForegroundValue)
+
+Set the value associated with the Foreground (or the object) on the
+binary input image and the Background .
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::SetMajorityThreshold "/**
+Self& itk::simple::VotingBinaryIterativeHoleFillingImageFilter::SetMajorityThreshold(unsigned int MajorityThreshold)
+
+Majority threshold. It is the number of pixels over 50% that will
+decide whether an OFF pixel will become ON or not. For example, if the
+neighborhood of a pixel has 124 pixels (excluding itself), the 50%
+will be 62, and if you set upd a Majority threshold of 5, that means
+that the filter will require 67 or more neighbor pixels to be ON in
+order to switch the current OFF pixel to ON. The default value is 1.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::SetMaximumNumberOfIterations "/**
+Self& itk::simple::VotingBinaryIterativeHoleFillingImageFilter::SetMaximumNumberOfIterations(unsigned int MaximumNumberOfIterations)
+
+Maximum number of iterations. This filter is executed iteratively as
+long as at least one pixel has changed in a previous iteration, or
+until the maximum number of iterations has been reached.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::SetRadius "/**
+Self& itk::simple::VotingBinaryIterativeHoleFillingImageFilter::SetRadius(const std::vector< unsigned int > &Radius)
+
+Set the radius of the neighborhood used to compute the median.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::SetRadius "/**
+Self& itk::simple::VotingBinaryIterativeHoleFillingImageFilter::SetRadius(unsigned int value)
+
+Set the values of the Radius vector all to value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::ToString "/**
+std::string itk::simple::VotingBinaryIterativeHoleFillingImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::VotingBinaryIterativeHoleFillingImageFilter "/**
+itk::simple::VotingBinaryIterativeHoleFillingImageFilter::VotingBinaryIterativeHoleFillingImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::~VotingBinaryIterativeHoleFillingImageFilter "/**
+itk::simple::VotingBinaryIterativeHoleFillingImageFilter::~VotingBinaryIterativeHoleFillingImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::WarpImageFilter "/**
+
+Warps an image using an input displacement field.
+
+
+WarpImageFilter warps an existing image with respect to a given displacement field.
+
+A displacement field is represented as a image whose pixel type is
+some vector type with at least N elements, where N is the dimension of
+the input image. The vector type must support element access via
+operator [].
+
+The output image is produced by inverse mapping: the output pixels are
+mapped back onto the input image. This scheme avoids the creation of
+any holes and overlaps in the output image.
+
+Each vector in the displacement field represent the distance between a
+geometric point in the input space and a point in the output space
+such that:
+
+\\\\[ p_{in} = p_{out} + d \\\\]
+
+Typically the mapped position does not correspond to an integer pixel
+position in the input image. Interpolation via an image function is
+used to compute values at non-integer positions. The default
+interpolation typed used is the LinearInterpolateImageFunction . The user can specify a particular interpolation function via SetInterpolator() . Note that the input interpolator must derive from base class InterpolateImageFunction .
+
+Position mapped to outside of the input image buffer are assigned a
+edge padding value.
+
+The LargetPossibleRegion for the output is inherited from the input
+displacement field. The output image spacing, origin and orientation
+may be set via SetOutputSpacing, SetOutputOrigin and
+SetOutputDirection. The default are respectively a vector of 1's, a
+vector of 0's and an identity matrix.
+
+This class is templated over the type of the input image, the type of
+the output image and the type of the displacement field.
+
+The input image is set via SetInput. The input displacement field is
+set via SetDisplacementField.
+
+This filter is implemented as a multithreaded filter.
+
+
+WARNING:
+This filter assumes that the input type, output type and displacement
+field type all have the same number of dimensions.
+Wiki Examples:
+
+All Examples
+
+Warp one image to another using manually specified landmarks
+See:
+ itk::simple::Warp for the procedural interface
+
+ itk::WarpImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkWarpImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::WarpImageFilter::Execute "/**
+Image itk::simple::WarpImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WarpImageFilter::Execute "/**
+Image itk::simple::WarpImageFilter::Execute(const Image &image1, const Image &image2, InterpolatorEnum
+interpolator, const std::vector< uint32_t > &outputSize, const
+std::vector< double > &outputOrigin, const std::vector< double >
+&outputSpacing, std::vector< double > outputDirection, double
+edgePaddingValue)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WarpImageFilter::GetEdgePaddingValue "/**
+double itk::simple::WarpImageFilter::GetEdgePaddingValue() const
+
+Get the edge padding value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WarpImageFilter::GetInterpolator "/**
+InterpolatorEnum itk::simple::WarpImageFilter::GetInterpolator() const
+
+Get/Set the interpolator function.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WarpImageFilter::GetName "/**
+std::string itk::simple::WarpImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WarpImageFilter::GetOutputDirection "/**
+std::vector<double> itk::simple::WarpImageFilter::GetOutputDirection() const
+
+Set/Get the direction (orientation) of the output image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WarpImageFilter::GetOutputOrigin "/**
+std::vector<double> itk::simple::WarpImageFilter::GetOutputOrigin() const
+
+Get the output image origin.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WarpImageFilter::GetOutputSize "/**
+std::vector<uint32_t> itk::simple::WarpImageFilter::GetOutputSize() const
+
+Get the size of the output image.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WarpImageFilter::GetOutputSpacing "/**
+std::vector<double> itk::simple::WarpImageFilter::GetOutputSpacing() const
+
+Get the output image spacing.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WarpImageFilter::SetEdgePaddingValue "/**
+Self& itk::simple::WarpImageFilter::SetEdgePaddingValue(double EdgePaddingValue)
+
+Set the edge padding value
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WarpImageFilter::SetInterpolator "/**
+Self& itk::simple::WarpImageFilter::SetInterpolator(InterpolatorEnum Interpolator)
+
+Get/Set the interpolator function.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WarpImageFilter::SetOutputDirection "/**
+Self& itk::simple::WarpImageFilter::SetOutputDirection(std::vector< double > OutputDirection)
+
+Set/Get the direction (orientation) of the output image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WarpImageFilter::SetOutputOrigin "/**
+Self& itk::simple::WarpImageFilter::SetOutputOrigin(const std::vector< double > &OutputOrigin)
+
+Set the output image origin.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WarpImageFilter::SetOutputParameteresFromImage "/**
+void itk::simple::WarpImageFilter::SetOutputParameteresFromImage(const Image &refImage)
+
+This methods sets the output size, origin, spacing and direction to
+that of the provided image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WarpImageFilter::SetOutputSize "/**
+Self& itk::simple::WarpImageFilter::SetOutputSize(const std::vector< uint32_t > &OutputSize)
+
+Set the size of the output image.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WarpImageFilter::SetOutputSpacing "/**
+Self& itk::simple::WarpImageFilter::SetOutputSpacing(const std::vector< double > &OutputSpacing)
+
+Set the output image spacing.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WarpImageFilter::ToString "/**
+std::string itk::simple::WarpImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WarpImageFilter::WarpImageFilter "/**
+itk::simple::WarpImageFilter::WarpImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WarpImageFilter::~WarpImageFilter "/**
+itk::simple::WarpImageFilter::~WarpImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::WhiteTopHatImageFilter "/**
+
+White top hat extracts local maxima that are larger than the
+structuring element.
+
+
+Top-hats are described in Chapter 4.5 of Pierre Soille's book
+\"Morphological Image Analysis: Principles and Applications\", Second
+Edition, Springer, 2003.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ itk::simple::WhiteTopHat for the procedural interface
+
+ itk::WhiteTopHatImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkWhiteTopHatImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::WhiteTopHatImageFilter::Execute "/**
+Image itk::simple::WhiteTopHatImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WhiteTopHatImageFilter::Execute "/**
+Image itk::simple::WhiteTopHatImageFilter::Execute(const Image &image1, bool safeBorder)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WhiteTopHatImageFilter::GetKernelRadius "/**
+std::vector<uint32_t> itk::simple::WhiteTopHatImageFilter::GetKernelRadius() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WhiteTopHatImageFilter::GetKernelType "/**
+KernelEnum itk::simple::WhiteTopHatImageFilter::GetKernelType() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WhiteTopHatImageFilter::GetName "/**
+std::string itk::simple::WhiteTopHatImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WhiteTopHatImageFilter::GetSafeBorder "/**
+bool itk::simple::WhiteTopHatImageFilter::GetSafeBorder() const
+
+A safe border is added to input image to avoid borders effects and
+remove it once the closing is done
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WhiteTopHatImageFilter::SafeBorderOff "/**
+Self& itk::simple::WhiteTopHatImageFilter::SafeBorderOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WhiteTopHatImageFilter::SafeBorderOn "/**
+Self& itk::simple::WhiteTopHatImageFilter::SafeBorderOn()
+
+Set the value of SafeBorder to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WhiteTopHatImageFilter::SetKernelRadius "/**
+Self& itk::simple::WhiteTopHatImageFilter::SetKernelRadius(uint32_t r)
+
+Kernel radius as a scale for isotropic structures
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WhiteTopHatImageFilter::SetKernelRadius "/**
+Self& itk::simple::WhiteTopHatImageFilter::SetKernelRadius(const std::vector< uint32_t > &r)
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WhiteTopHatImageFilter::SetKernelType "/**
+Self& itk::simple::WhiteTopHatImageFilter::SetKernelType(KernelEnum t)
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WhiteTopHatImageFilter::SetKernelType "/**
+Self& itk::simple::WhiteTopHatImageFilter::SetKernelType(KernelType t)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WhiteTopHatImageFilter::SetSafeBorder "/**
+Self& itk::simple::WhiteTopHatImageFilter::SetSafeBorder(bool SafeBorder)
+
+A safe border is added to input image to avoid borders effects and
+remove it once the closing is done
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WhiteTopHatImageFilter::ToString "/**
+std::string itk::simple::WhiteTopHatImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WhiteTopHatImageFilter::WhiteTopHatImageFilter "/**
+itk::simple::WhiteTopHatImageFilter::WhiteTopHatImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WhiteTopHatImageFilter::~WhiteTopHatImageFilter "/**
+itk::simple::WhiteTopHatImageFilter::~WhiteTopHatImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::WienerDeconvolutionImageFilter "/**
+
+The Wiener deconvolution image filter is designed to restore an image
+convolved with a blurring kernel while keeping noise enhancement to a
+minimum.
+
+
+The Wiener filter aims to minimize noise enhancement induced by
+frequencies with low signal-to-noise ratio. The Wiener filter kernel
+is defined in the frequency domain as $W(\\\\omega) = H^*(\\\\omega) / (|H(\\\\omega)|^2 + (1 /
+SNR(\\\\omega)))$ where $H(\\\\omega)$ is the Fourier transform of the blurring kernel with which the
+original image was convolved and the signal-to-noise ratio $SNR(\\\\omega)$ . $SNR(\\\\omega)$ is defined by $P_f(\\\\omega) / P_n(\\\\omega)$ where $P_f(\\\\omega)$ is the power spectral density of the uncorrupted signal and $P_n(\\\\omega)$ is the power spectral density of the noise. When applied to the input
+blurred image, this filter produces an estimate $\\\\hat{f}(x)$ of the true underlying signal $f(x)$ that minimizes the expected error between $\\\\hat{f}(x)$ and $f(x)$ .
+
+This filter requires two inputs, the image to be deconvolved and the
+blurring kernel. These two inputs can be set using the methods
+SetInput() and SetKernelImage() , respectively.
+
+The power spectral densities of the signal and noise are typically
+unavailable for a given problem. In particular, $P_f(\\\\omega)$ cannot be computed from $f(x)$ because this unknown signal is precisely the signal that this filter
+aims to recover. Nevertheless, it is common for the noise to have a
+power spectral density that is flat or decreasing significantly more
+slowly than the power spectral density of a typical image as the
+frequency $\\\\omega$ increases. Hence, $P_n(\\\\omega)$ can typically be approximated with a constant, and this filter makes
+this assumption (see the NoiseVariance member variable). $P_f(\\\\omega)$ , on the other hand, will vary with input. This filter computes the
+power spectral density of the input blurred image, subtracts the power
+spectral density of the noise, and uses the result as the estimate of $P_f(\\\\omega)$ .
+
+For further information on the Wiener deconvolution filter, please see
+\"Digital Signal Processing\" by Kenneth R. Castleman, Prentice Hall,
+1995
+
+
+Gaetan Lehmann, Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France
+ Chris Mullins, The University of North Carolina at Chapel Hill
+
+Cory Quammen, The University of North Carolina at Chapel Hill
+See:
+ itk::simple::WienerDeconvolution for the procedural interface
+
+ itk::WienerDeconvolutionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkWienerDeconvolutionImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::WienerDeconvolutionImageFilter::Execute "/**
+Image itk::simple::WienerDeconvolutionImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WienerDeconvolutionImageFilter::Execute "/**
+Image itk::simple::WienerDeconvolutionImageFilter::Execute(const Image &image1, const Image &image2, double noiseVariance, bool
+normalize, WienerDeconvolutionImageFilter::BoundaryConditionType
+boundaryCondition,
+WienerDeconvolutionImageFilter::OutputRegionModeType outputRegionMode)
+
+Execute the filter on the input images with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WienerDeconvolutionImageFilter::GetBoundaryCondition "/**
+BoundaryConditionType itk::simple::WienerDeconvolutionImageFilter::GetBoundaryCondition() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WienerDeconvolutionImageFilter::GetName "/**
+std::string itk::simple::WienerDeconvolutionImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WienerDeconvolutionImageFilter::GetNoiseVariance "/**
+double itk::simple::WienerDeconvolutionImageFilter::GetNoiseVariance() const
+
+Set/get the variance of the zero-mean Gaussian white noise assumed to
+be added to the input.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WienerDeconvolutionImageFilter::GetNormalize "/**
+bool itk::simple::WienerDeconvolutionImageFilter::GetNormalize() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WienerDeconvolutionImageFilter::GetOutputRegionMode "/**
+OutputRegionModeType itk::simple::WienerDeconvolutionImageFilter::GetOutputRegionMode() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WienerDeconvolutionImageFilter::NormalizeOff "/**
+Self& itk::simple::WienerDeconvolutionImageFilter::NormalizeOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WienerDeconvolutionImageFilter::NormalizeOn "/**
+Self& itk::simple::WienerDeconvolutionImageFilter::NormalizeOn()
+
+Set the value of Normalize to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WienerDeconvolutionImageFilter::SetBoundaryCondition "/**
+Self& itk::simple::WienerDeconvolutionImageFilter::SetBoundaryCondition(BoundaryConditionType BoundaryCondition)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WienerDeconvolutionImageFilter::SetNoiseVariance "/**
+Self& itk::simple::WienerDeconvolutionImageFilter::SetNoiseVariance(double NoiseVariance)
+
+Set/get the variance of the zero-mean Gaussian white noise assumed to
+be added to the input.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WienerDeconvolutionImageFilter::SetNormalize "/**
+Self& itk::simple::WienerDeconvolutionImageFilter::SetNormalize(bool Normalize)
+
+Normalize the output image by the sum of the kernel components
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WienerDeconvolutionImageFilter::SetOutputRegionMode "/**
+Self& itk::simple::WienerDeconvolutionImageFilter::SetOutputRegionMode(OutputRegionModeType OutputRegionMode)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WienerDeconvolutionImageFilter::ToString "/**
+std::string itk::simple::WienerDeconvolutionImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WienerDeconvolutionImageFilter::WienerDeconvolutionImageFilter "/**
+itk::simple::WienerDeconvolutionImageFilter::WienerDeconvolutionImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WienerDeconvolutionImageFilter::~WienerDeconvolutionImageFilter "/**
+itk::simple::WienerDeconvolutionImageFilter::~WienerDeconvolutionImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::WrapPadImageFilter "/**
+
+Increase the image size by padding with replicants of the input image
+value.
+
+
+WrapPadImageFilter changes the image bounds of an image. Added pixels are filled in with
+a wrapped replica of the input image. For instance, if the output
+image needs a pixel that is two pixels to the left of the
+LargestPossibleRegion of the input image, the value assigned will be
+from the pixel two pixels inside the right boundary of the
+LargestPossibleRegion. The image bounds of the output must be
+specified.
+
+Visual explanation of padding regions. This filter is implemented as a
+multithreaded filter. It provides a ThreadedGenerateData() method for
+its implementation.
+
+
+See:
+ MirrorPadImageFilter , ConstantPadImageFilter
+Wiki Examples:
+
+All Examples
+
+Pad an image by wrapping
+See:
+ itk::simple::WrapPad for the procedural interface
+
+ itk::WrapPadImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkWrapPadImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::WrapPadImageFilter::Execute "/**
+Image itk::simple::WrapPadImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WrapPadImageFilter::Execute "/**
+Image itk::simple::WrapPadImageFilter::Execute(const Image &image1, const std::vector< unsigned int >
+&padLowerBound, const std::vector< unsigned int > &padUpperBound)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WrapPadImageFilter::GetName "/**
+std::string itk::simple::WrapPadImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WrapPadImageFilter::GetPadLowerBound "/**
+std::vector<unsigned int> itk::simple::WrapPadImageFilter::GetPadLowerBound() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WrapPadImageFilter::GetPadUpperBound "/**
+std::vector<unsigned int> itk::simple::WrapPadImageFilter::GetPadUpperBound() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WrapPadImageFilter::SetPadLowerBound "/**
+Self& itk::simple::WrapPadImageFilter::SetPadLowerBound(const std::vector< unsigned int > &PadLowerBound)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WrapPadImageFilter::SetPadUpperBound "/**
+Self& itk::simple::WrapPadImageFilter::SetPadUpperBound(const std::vector< unsigned int > &PadUpperBound)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WrapPadImageFilter::ToString "/**
+std::string itk::simple::WrapPadImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WrapPadImageFilter::WrapPadImageFilter "/**
+itk::simple::WrapPadImageFilter::WrapPadImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WrapPadImageFilter::~WrapPadImageFilter "/**
+itk::simple::WrapPadImageFilter::~WrapPadImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::XorImageFilter "/**
+
+Computes the XOR bitwise operator pixel-wise between two images.
+
+
+This class is templated over the types of the two input images and the
+type of the output image. Numeric conversions (castings) are done by
+the C++ defaults.
+
+Since the bitwise XOR operation is only defined in C++ for integer
+types, the images passed to this filter must comply with the
+requirement of using integer pixel type.
+
+The total operation over one pixel will be
+
+
+Where \"^\" is the boolean XOR operator in C++.
+
+Wiki Examples:
+
+All Examples
+
+Binary XOR (exclusive OR) two images
+See:
+ itk::simple::Xor for the procedural interface
+
+ itk::XorImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkXorImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::XorImageFilter::Execute "/**
+Image itk::simple::XorImageFilter::Execute(const Image &image1, const Image &image2)
+
+Execute the filter on the input images
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::XorImageFilter::Execute "/**
+Image itk::simple::XorImageFilter::Execute(const Image &image1, int constant)
+
+Execute the filter with an image and a constant
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::XorImageFilter::Execute "/**
+Image itk::simple::XorImageFilter::Execute(int constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::XorImageFilter::GetName "/**
+std::string itk::simple::XorImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::XorImageFilter::ToString "/**
+std::string itk::simple::XorImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::XorImageFilter::XorImageFilter "/**
+itk::simple::XorImageFilter::XorImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::XorImageFilter::~XorImageFilter "/**
+itk::simple::XorImageFilter::~XorImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::YenThresholdImageFilter "/**
+
+Threshold an image using the Yen Threshold.
+
+
+This filter creates a binary thresholded image that separates an image
+into foreground and background components. The filter computes the
+threshold using the YenThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .
+
+
+Richard Beare
+ Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/10380/3279 or http://www.insight-journal.org/browse/publication/811
+
+
+See:
+ HistogramThresholdImageFilter
+
+ itk::simple::YenThreshold for the procedural interface
+
+ itk::YenThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkYenThresholdImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::YenThresholdImageFilter::Execute "/**
+Image itk::simple::YenThresholdImageFilter::Execute(const Image &image, const Image &maskImage)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::YenThresholdImageFilter::Execute "/**
+Image itk::simple::YenThresholdImageFilter::Execute(const Image &image)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::YenThresholdImageFilter::Execute "/**
+Image itk::simple::YenThresholdImageFilter::Execute(const Image &image, const Image &maskImage, uint8_t insideValue,
+uint8_t outsideValue, uint32_t numberOfHistogramBins, bool maskOutput,
+uint8_t maskValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::YenThresholdImageFilter::Execute "/**
+Image itk::simple::YenThresholdImageFilter::Execute(const Image &image, uint8_t insideValue, uint8_t outsideValue,
+uint32_t numberOfHistogramBins, bool maskOutput, uint8_t maskValue)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::YenThresholdImageFilter::GetInsideValue "/**
+uint8_t itk::simple::YenThresholdImageFilter::GetInsideValue() const
+
+Get the \"inside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::YenThresholdImageFilter::GetMaskOutput "/**
+bool itk::simple::YenThresholdImageFilter::GetMaskOutput() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::YenThresholdImageFilter::GetMaskValue "/**
+uint8_t itk::simple::YenThresholdImageFilter::GetMaskValue() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::YenThresholdImageFilter::GetName "/**
+std::string itk::simple::YenThresholdImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::YenThresholdImageFilter::GetNumberOfHistogramBins "/**
+uint32_t itk::simple::YenThresholdImageFilter::GetNumberOfHistogramBins() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::YenThresholdImageFilter::GetOutsideValue "/**
+uint8_t itk::simple::YenThresholdImageFilter::GetOutsideValue() const
+
+Get the \"outside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::YenThresholdImageFilter::GetThreshold "/**
+double itk::simple::YenThresholdImageFilter::GetThreshold() const
+
+Get the computed threshold.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::YenThresholdImageFilter::MaskOutputOff "/**
+Self& itk::simple::YenThresholdImageFilter::MaskOutputOff()
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::YenThresholdImageFilter::MaskOutputOn "/**
+Self& itk::simple::YenThresholdImageFilter::MaskOutputOn()
+
+Set the value of MaskOutput to true or false respectfully.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::YenThresholdImageFilter::SetInsideValue "/**
+Self& itk::simple::YenThresholdImageFilter::SetInsideValue(uint8_t InsideValue)
+
+Set the \"inside\" pixel value.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::YenThresholdImageFilter::SetMaskOutput "/**
+Self& itk::simple::YenThresholdImageFilter::SetMaskOutput(bool MaskOutput)
+
+Do you want the output to be masked by the mask used in histogram
+construction. Only relevant if masking is in use.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::YenThresholdImageFilter::SetMaskValue "/**
+Self& itk::simple::YenThresholdImageFilter::SetMaskValue(uint8_t MaskValue)
+
+The value in the mask image, if used, indicating voxels that should be
+included. Default is the max of pixel type, as in the
+MaskedImageToHistogramFilter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::YenThresholdImageFilter::SetNumberOfHistogramBins "/**
+Self& itk::simple::YenThresholdImageFilter::SetNumberOfHistogramBins(uint32_t NumberOfHistogramBins)
+
+Set/Get the number of histogram bins.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::YenThresholdImageFilter::SetOutsideValue "/**
+Self& itk::simple::YenThresholdImageFilter::SetOutsideValue(uint8_t OutsideValue)
+
+Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::YenThresholdImageFilter::ToString "/**
+std::string itk::simple::YenThresholdImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::YenThresholdImageFilter::YenThresholdImageFilter "/**
+itk::simple::YenThresholdImageFilter::YenThresholdImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::YenThresholdImageFilter::~YenThresholdImageFilter "/**
+itk::simple::YenThresholdImageFilter::~YenThresholdImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter "/**
+
+This filter implements a zero-crossing based edge detecor.
+
+
+The zero-crossing based edge detector looks for pixels in the
+Laplacian of an image where the value of the Laplacian passes through
+zero points where the Laplacian changes sign. Such points often occur
+at \"edges\" in images i.e. points where the intensity of the image
+changes rapidly, but they also occur at places that are not as easy to
+associate with edges. It is best to think of the zero crossing
+detector as some sort of feature detector rather than as a specific
+edge detector.
+
+
+Zero crossings always lie on closed contours and so the output from
+the zero crossing detector is usually a binary image with single pixel
+thickness lines showing the positions of the zero crossing points.
+
+In this implementation, the input image is first smoothed with a
+Gaussian filter, then the LaplacianImageFilter is applied to smoothed image. Finally the zero-crossing of the
+Laplacian of the smoothed image is detected. The output is a binary
+image.
+Inputs and Outputs
+The input to the filter should be a scalar, itk::Image of arbitrary dimension. The output image is a binary, labeled image.
+See itkZeroCrossingImageFilter for more information on requirements of
+the data type of the output.
+
+To use this filter, first set the parameters (variance and maximum
+error) needed by the embedded DiscreteGaussianImageFilter , i.e. See DiscreteGaussianImageFilter for information about these parameters. Optionally, you may also set
+foreground and background values for the zero-crossing filter. The
+default label values are Zero for the background and One for the
+foreground, as defined in NumericTraits for the data type of the output image.
+
+See:
+ DiscreteGaussianImageFilter
+
+ LaplacianImageFilter
+
+ ZeroCrossingImageFilter
+
+ itk::simple::ZeroCrossingBasedEdgeDetection for the procedural interface
+
+ itk::ZeroCrossingBasedEdgeDetectionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkZeroCrossingBasedEdgeDetectionImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::Execute "/**
+Image itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::Execute "/**
+Image itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::Execute(const Image &image1, double variance, uint8_t foregroundValue,
+uint8_t backgroundValue, double maximumError)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::GetBackgroundValue "/**
+uint8_t itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::GetBackgroundValue() const
+
+Get/Set the label values for the ZeroCrossingImageFilter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::GetForegroundValue "/**
+uint8_t itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::GetForegroundValue() const
+
+Get/Set the label values for the ZeroCrossingImageFilter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::GetMaximumError "/**
+double itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::GetMaximumError() const
+
+Standard get/set macros for Gaussian filter parameters.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::GetName "/**
+std::string itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::GetVariance "/**
+double itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::GetVariance() const
+
+Standard get/set macros for Gaussian filter parameters.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::SetBackgroundValue "/**
+Self& itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::SetBackgroundValue(uint8_t BackgroundValue)
+
+Get/Set the label values for the ZeroCrossingImageFilter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::SetForegroundValue "/**
+Self& itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::SetForegroundValue(uint8_t ForegroundValue)
+
+Get/Set the label values for the ZeroCrossingImageFilter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::SetMaximumError "/**
+Self& itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::SetMaximumError(double MaximumError)
+
+Set the MaximumError parameter needed by the embedded gaussian filter
+This value is used to set the desired maximum error of the gaussian
+approximation. Maximum error is the difference between the area under
+the discrete Gaussian curve and the area under the continuous
+Gaussian. Maximum error affects the Gaussian operator size. The value
+must be between 0.0 and 1.0.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::SetVariance "/**
+Self& itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::SetVariance(double Variance)
+
+Set the variance parameter needed by the embedded gaussian filter
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::ToString "/**
+std::string itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::ZeroCrossingBasedEdgeDetectionImageFilter "/**
+itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::ZeroCrossingBasedEdgeDetectionImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::~ZeroCrossingBasedEdgeDetectionImageFilter "/**
+itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::~ZeroCrossingBasedEdgeDetectionImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ZeroCrossingImageFilter "/**
+
+This filter finds the closest pixel to the zero-crossings (sign
+changes) in a signed itk::Image .
+
+
+Pixels closest to zero-crossings are labeled with a foreground value.
+All other pixels are marked with a background value. The algorithm
+works by detecting differences in sign among neighbors using city-
+block style connectivity (4-neighbors in 2d, 6-neighbors in 3d, etc.).
+
+Inputs and Outputs
+The input to this filter is an itk::Image of arbitrary dimension. The algorithm assumes a signed data type
+(zero-crossings are not defined for unsigned data types), and requires
+that operator>, operator<, operator==, and operator!= are defined.
+
+The output of the filter is a binary, labeled image of user-specified
+type. By default, zero-crossing pixels are labeled with a default
+\"foreground\" value of itk::NumericTraits<OutputDataType>::OneValue() , where OutputDataType is the data type of the output image. All
+other pixels are labeled with a default \"background\" value of itk::NumericTraits<OutputDataType>::ZeroValue() .
+Parameters
+There are two parameters for this filter. ForegroundValue is the value
+that marks zero-crossing pixels. The BackgroundValue is the value
+given to all other pixels.
+
+See:
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+Wiki Examples:
+
+All Examples
+
+Find zero crossings in a signed image
+See:
+ itk::simple::ZeroCrossing for the procedural interface
+
+ itk::ZeroCrossingImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkZeroCrossingImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ZeroCrossingImageFilter::Execute "/**
+Image itk::simple::ZeroCrossingImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroCrossingImageFilter::Execute "/**
+Image itk::simple::ZeroCrossingImageFilter::Execute(const Image &image1, uint8_t foregroundValue, uint8_t
+backgroundValue)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroCrossingImageFilter::GetBackgroundValue "/**
+uint8_t itk::simple::ZeroCrossingImageFilter::GetBackgroundValue() const
+
+Set/Get the label value for non-zero-crossing pixels.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroCrossingImageFilter::GetForegroundValue "/**
+uint8_t itk::simple::ZeroCrossingImageFilter::GetForegroundValue() const
+
+Set/Get the label value for zero-crossing pixels.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroCrossingImageFilter::GetName "/**
+std::string itk::simple::ZeroCrossingImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroCrossingImageFilter::SetBackgroundValue "/**
+Self& itk::simple::ZeroCrossingImageFilter::SetBackgroundValue(uint8_t BackgroundValue)
+
+Set/Get the label value for non-zero-crossing pixels.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroCrossingImageFilter::SetForegroundValue "/**
+Self& itk::simple::ZeroCrossingImageFilter::SetForegroundValue(uint8_t ForegroundValue)
+
+Set/Get the label value for zero-crossing pixels.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroCrossingImageFilter::ToString "/**
+std::string itk::simple::ZeroCrossingImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroCrossingImageFilter::ZeroCrossingImageFilter "/**
+itk::simple::ZeroCrossingImageFilter::ZeroCrossingImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroCrossingImageFilter::~ZeroCrossingImageFilter "/**
+itk::simple::ZeroCrossingImageFilter::~ZeroCrossingImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::ZeroFluxNeumannPadImageFilter "/**
+
+Increase the image size by padding according to the zero-flux Neumann
+boundary condition.
+
+
+A filter which extends the image size and fill the missing pixels
+according to a Neumann boundary condition where first, upwind
+derivatives on the boundary are zero. This is a useful condition in
+solving some classes of differential equations.
+
+For example, invoking this filter on an image with a corner like: returns the following padded image:
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ WrapPadImageFilter , MirrorPadImageFilter , ConstantPadImageFilter , ZeroFluxNeumannBoundaryCondition
+
+ itk::simple::ZeroFluxNeumannPad for the procedural interface
+
+ itk::ZeroFluxNeumannPadImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkZeroFluxNeumannPadImageFilter.h
+*/"
+
+%javamethodmodifiers  itk::simple::ZeroFluxNeumannPadImageFilter::Execute "/**
+Image itk::simple::ZeroFluxNeumannPadImageFilter::Execute(const Image &image1)
+
+Execute the filter on the input image
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroFluxNeumannPadImageFilter::Execute "/**
+Image itk::simple::ZeroFluxNeumannPadImageFilter::Execute(const Image &image1, const std::vector< unsigned int >
+&padLowerBound, const std::vector< unsigned int > &padUpperBound)
+
+Execute the filter on the input image with the given parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroFluxNeumannPadImageFilter::GetName "/**
+std::string itk::simple::ZeroFluxNeumannPadImageFilter::GetName() const
+
+Name of this class
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroFluxNeumannPadImageFilter::GetPadLowerBound "/**
+std::vector<unsigned int> itk::simple::ZeroFluxNeumannPadImageFilter::GetPadLowerBound() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroFluxNeumannPadImageFilter::GetPadUpperBound "/**
+std::vector<unsigned int> itk::simple::ZeroFluxNeumannPadImageFilter::GetPadUpperBound() const
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroFluxNeumannPadImageFilter::SetPadLowerBound "/**
+Self& itk::simple::ZeroFluxNeumannPadImageFilter::SetPadLowerBound(const std::vector< unsigned int > &PadLowerBound)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroFluxNeumannPadImageFilter::SetPadUpperBound "/**
+Self& itk::simple::ZeroFluxNeumannPadImageFilter::SetPadUpperBound(const std::vector< unsigned int > &PadUpperBound)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroFluxNeumannPadImageFilter::ToString "/**
+std::string itk::simple::ZeroFluxNeumannPadImageFilter::ToString() const
+
+Print ourselves out
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroFluxNeumannPadImageFilter::ZeroFluxNeumannPadImageFilter "/**
+itk::simple::ZeroFluxNeumannPadImageFilter::ZeroFluxNeumannPadImageFilter()
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroFluxNeumannPadImageFilter::~ZeroFluxNeumannPadImageFilter "/**
+itk::simple::ZeroFluxNeumannPadImageFilter::~ZeroFluxNeumannPadImageFilter()
+
+Destructor
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::DualMemberFunctionFactory "/**
+
+A class used to instantiate and generate function objects of templated
+member functions with two template arguments.
+
+
+
+
+Parameters:
+
+TMemberFunctionPointer:
+is the type of pointer to member function
+
+ Example member function and pointer:
+
+The provided Addressor will instantiate the templeted member functions
+by taking the address in the RegisterMethods. Later they can be
+retrieve with the GetMemberFunction method, which returns a function
+object with the same arguments as the templated member function
+pointer.
+
+An instance of a MemberFunctionFactory is bound to a specific instance of an object, so that the returned
+function object does not need to have the calling object specified.
+
+
+WARNING:
+Use this class with caution because it can instantiate a combinatorial
+number of methods.
+
+See:
+ MemberFunctionFactory
+
+
+C++ includes: sitkDualMemberFunctionFactory.h
+*/"
+
+%javamethodmodifiers  itk::simple::DualMemberFunctionFactory::DualMemberFunctionFactory "/**
+itk::simple::DualMemberFunctionFactory< TMemberFunctionPointer >::DualMemberFunctionFactory(ObjectType *pObject)
+
+Constructor which permanently binds the constructed object to pObject.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DualMemberFunctionFactory::GetMemberFunction "/**
+FunctionObjectType itk::simple::DualMemberFunctionFactory< TMemberFunctionPointer >::GetMemberFunction(PixelIDValueType pixelID1, PixelIDValueType pixelID2, unsigned int
+imageDimension)
+
+Returns a function object for the combination of PixelID1 and
+PixelID2, and image dimension.
+
+
+pixelID1 or pixelID2 is the value of Image::GetPixelIDValue(), or PixelIDToPixelIDValue<PixelIDType>::Result
+
+imageDimension is the the value returned by Image::GetDimension()
+
+Example usage:
+
+If the requested member function is not registered then an exception
+is generated. The returned function object is guaranteed to be valid.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DualMemberFunctionFactory::HasMemberFunction "/**
+bool itk::simple::DualMemberFunctionFactory< TMemberFunctionPointer >::HasMemberFunction(PixelIDValueType pixelID1, PixelIDValueType pixelID2, unsigned int
+imageDimension) const
+ throw ()
+Query to determine if an member function has been registered for
+pixelID1, pixelID2 and imageDimension.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DualMemberFunctionFactory::Register "/**
+void itk::simple::DualMemberFunctionFactory< TMemberFunctionPointer >::Register(MemberFunctionType pfunc, TImageType1 *, TImageType2 *)
+
+Registers a specific member function.
+
+
+Registers a member function templated over TImageType1 and TImageType2
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::MemberFunctionFactory "/**
+
+A class used to instantiate and generate function object to templated
+member functions.
+
+
+
+
+Parameters:
+
+TMemberFunctionPointer:
+is the type of pointer to member function
+
+ Example member function pointer:
+
+The RegisterMemberFunctions instantiate the templeted member functions
+and registers the member function pointer, so that it be used for
+dispatch later. Later they can be retrieve with the GetMemberFunction
+methods, which return a function object with the same arguments as the
+templated member function pointer.
+
+An instance of a MemberFunctionFactory is bound to a specific instance of an object, so that the returned
+function object does not need to have the calling object specified.
+
+C++ includes: sitkMemberFunctionFactory.h
+*/"
+
+%javamethodmodifiers  itk::simple::MemberFunctionFactory::GetMemberFunction "/**
+FunctionObjectType itk::simple::MemberFunctionFactory< TMemberFunctionPointer >::GetMemberFunction(PixelIDValueType pixelID, unsigned int imageDimension)
+
+Returns a function object for the PixelIndex, and image dimension.
+
+
+pixelID is the value of Image::GetPixelIDValue(), or PixelIDToPixelIDValue<PixelIDType>::Result
+
+imageDimension is the the value returned by Image::GetDimension()
+
+Example usage:
+
+If the requested member function is not registered then an exception
+is generated. The returned function object is guaranteed to be valid.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MemberFunctionFactory::HasMemberFunction "/**
+bool itk::simple::MemberFunctionFactory< TMemberFunctionPointer >::HasMemberFunction(PixelIDValueType pixelID, unsigned int imageDimension) const
+ throw ()
+Query to determine if an member function has been registered for
+pixelID and imageDimension.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MemberFunctionFactory::MemberFunctionFactory "/**
+itk::simple::MemberFunctionFactory< TMemberFunctionPointer >::MemberFunctionFactory(ObjectType *pObject)
+
+Constructor which permanently binds the constructed object to pObject.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MemberFunctionFactory::Register "/**
+void itk::simple::MemberFunctionFactory< TMemberFunctionPointer >::Register(MemberFunctionType pfunc, TImageType *)
+
+Registers a specific member function.
+
+
+Registers a member function which will be dispatched to the TImageType
+type
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::MemberFunctionFactoryBase "/**
+
+A base class for the MemberFunctionFactory.
+
+
+This class is for specialization needed for different arity for the
+templated member function pointer
+
+C++ includes: sitkMemberFunctionFactoryBase.h
+*/"
+
+
+%typemap(javaimports) itk::simple::MemberFunctionFactoryBase< TMemberFunctionPointer, TKey, 0 > "/**
+C++ includes: sitkMemberFunctionFactoryBase.h
+*/"
+
+
+%typemap(javaimports) itk::simple::MemberFunctionFactoryBase< TMemberFunctionPointer, TKey, 1 > "/**
+C++ includes: sitkMemberFunctionFactoryBase.h
+*/"
+
+
+%typemap(javaimports) itk::simple::MemberFunctionFactoryBase< TMemberFunctionPointer, TKey, 2 > "/**
+C++ includes: sitkMemberFunctionFactoryBase.h
+*/"
+
+
+%typemap(javaimports) itk::simple::MemberFunctionFactoryBase< TMemberFunctionPointer, TKey, 3 > "/**
+C++ includes: sitkMemberFunctionFactoryBase.h
+*/"
+
+
+%typemap(javaimports) itk::simple::MemberFunctionFactoryBase< TMemberFunctionPointer, TKey, 4 > "/**
+C++ includes: sitkMemberFunctionFactoryBase.h
+*/"
+
+
+%typemap(javaimports) itk::simple::MemberFunctionFactoryBase< TMemberFunctionPointer, TKey, 5 > "/**
+C++ includes: sitkMemberFunctionFactoryBase.h
+*/"
+
+%javamethodmodifiers  itk::simple::Abs "/**
+Image itk::simple::Abs(const Image &image1)
+
+Computes the absolute value of each pixel.
+
+
+This function directly calls the execute method of AbsImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::AbsImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AbsoluteValueDifference "/**
+Image itk::simple::AbsoluteValueDifference(const Image &image1, const Image &image2)
+
+Implements pixel-wise the computation of absolute value difference.
+
+
+This function directly calls the execute method of AbsoluteValueDifferenceImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::AbsoluteValueDifferenceImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AbsoluteValueDifference "/**
+Image itk::simple::AbsoluteValueDifference(const Image &image1, double constant)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AbsoluteValueDifference "/**
+Image itk::simple::AbsoluteValueDifference(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Acos "/**
+Image itk::simple::Acos(const Image &image1)
+
+Computes the inverse cosine of each pixel.
+
+
+This function directly calls the execute method of AcosImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::AcosImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdaptiveHistogramEqualization "/**
+Image itk::simple::AdaptiveHistogramEqualization(const Image &image1, const std::vector< unsigned int >
+&radius=std::vector< unsigned int >(3, 5), float alpha=0.3f, float
+beta=0.3f, bool useLookupTable=false)
+
+Power Law Adaptive Histogram Equalization.
+
+
+This function directly calls the execute method of AdaptiveHistogramEqualizationImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::AdaptiveHistogramEqualizationImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Add "/**
+Image itk::simple::Add(const Image &image1, const Image &image2)
+
+Pixel-wise addition of two images.
+
+
+This function directly calls the execute method of AddImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::AddImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Add "/**
+Image itk::simple::Add(const Image &image1, double constant)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Add "/**
+Image itk::simple::Add(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AdditiveGaussianNoise "/**
+Image itk::simple::AdditiveGaussianNoise(const Image &image1, double standardDeviation=1.0, double mean=0.0,
+uint32_t seed=(uint32_t) itk::simple::sitkWallClock)
+
+Alter an image with additive Gaussian white noise.
+
+
+This function directly calls the execute method of AdditiveGaussianNoiseImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::AdditiveGaussianNoiseImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AggregateLabelMap "/**
+Image itk::simple::AggregateLabelMap(const Image &image1)
+
+Collapses all labels into the first label.
+
+
+This function directly calls the execute method of AggregateLabelMapFilter in order to support a procedural API
+
+
+See:
+ itk::simple::AggregateLabelMapFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::And "/**
+Image itk::simple::And(const Image &image1, const Image &image2)
+
+Implements the AND bitwise operator pixel-wise between two images.
+
+
+This function directly calls the execute method of AndImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::AndImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::And "/**
+Image itk::simple::And(const Image &image1, int constant)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::And "/**
+Image itk::simple::And(int constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::AntiAliasBinary "/**
+Image itk::simple::AntiAliasBinary(const Image &image1, double maximumRMSError=0.07, uint32_t
+numberOfIterations=1000u)
+
+A method for estimation of a surface from a binary volume.
+
+
+This function directly calls the execute method of AntiAliasBinaryImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::AntiAliasBinaryImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ApproximateSignedDistanceMap "/**
+Image itk::simple::ApproximateSignedDistanceMap(const Image &image1, double insideValue=1u, double outsideValue=0u)
+
+Create a map of the approximate signed distance from the boundaries of
+a binary image.
+
+
+This function directly calls the execute method of ApproximateSignedDistanceMapImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ApproximateSignedDistanceMapImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Asin "/**
+Image itk::simple::Asin(const Image &image1)
+
+Computes the sine of each pixel.
+
+
+This function directly calls the execute method of AsinImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::AsinImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Atan "/**
+Image itk::simple::Atan(const Image &image1)
+
+Computes the one-argument inverse tangent of each pixel.
+
+
+This function directly calls the execute method of AtanImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::AtanImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Atan2 "/**
+Image itk::simple::Atan2(const Image &image1, const Image &image2)
+
+Computes two argument inverse tangent.
+
+
+This function directly calls the execute method of Atan2ImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::Atan2ImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Atan2 "/**
+Image itk::simple::Atan2(const Image &image1, double constant)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Atan2 "/**
+Image itk::simple::Atan2(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Bilateral "/**
+Image itk::simple::Bilateral(const Image &image1, double domainSigma=4.0, double rangeSigma=50.0,
+unsigned int numberOfRangeGaussianSamples=100u)
+
+Blurs an image while preserving edges.
+
+
+This function directly calls the execute method of BilateralImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BilateralImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryClosingByReconstruction "/**
+Image itk::simple::BinaryClosingByReconstruction(const Image &, uint32_t radius=1, KernelEnum kernel=sitkBall, double
+foregroundValue=1.0, bool fullyConnected=false)
+
+itk::simple::BinaryClosingByReconstructionImageFilter Functional Interface
+
+This function directly calls the execute method of BinaryClosingByReconstructionImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryClosingByReconstruction "/**
+Image itk::simple::BinaryClosingByReconstruction(const Image &, const std::vector< uint32_t > vectorRadius, KernelEnum
+kernel=sitkBall, double foregroundValue=1.0, bool
+fullyConnected=false)
+
+itk::simple::BinaryClosingByReconstructionImageFilter Functional Interface
+
+This function directly calls the execute method of BinaryClosingByReconstructionImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryContour "/**
+Image itk::simple::BinaryContour(const Image &image1, bool fullyConnected=false, double
+backgroundValue=0.0, double foregroundValue=1.0)
+
+Labels the pixels on the border of the objects in a binary image.
+
+
+This function directly calls the execute method of BinaryContourImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinaryContourImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryDilate "/**
+Image itk::simple::BinaryDilate(const Image &, uint32_t radius=1, KernelEnum kernel=sitkBall, double
+backgroundValue=0.0, double foregroundValue=1.0, bool
+boundaryToForeground=false)
+
+itk::simple::BinaryDilateImageFilter Functional Interface
+
+This function directly calls the execute method of BinaryDilateImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryDilate "/**
+Image itk::simple::BinaryDilate(const Image &, const std::vector< uint32_t > vectorRadius, KernelEnum
+kernel=sitkBall, double backgroundValue=0.0, double
+foregroundValue=1.0, bool boundaryToForeground=false)
+
+itk::simple::BinaryDilateImageFilter Functional Interface
+
+This function directly calls the execute method of BinaryDilateImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryErode "/**
+Image itk::simple::BinaryErode(const Image &, uint32_t radius=1, KernelEnum kernel=sitkBall, double
+backgroundValue=0.0, double foregroundValue=1.0, bool
+boundaryToForeground=true)
+
+itk::simple::BinaryErodeImageFilter Functional Interface
+
+This function directly calls the execute method of BinaryErodeImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryErode "/**
+Image itk::simple::BinaryErode(const Image &, const std::vector< uint32_t > vectorRadius, KernelEnum
+kernel=sitkBall, double backgroundValue=0.0, double
+foregroundValue=1.0, bool boundaryToForeground=true)
+
+itk::simple::BinaryErodeImageFilter Functional Interface
+
+This function directly calls the execute method of BinaryErodeImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryFillhole "/**
+Image itk::simple::BinaryFillhole(const Image &image1, bool fullyConnected=false, double
+foregroundValue=1.0)
+
+Remove holes not connected to the boundary of the image.
+
+
+This function directly calls the execute method of BinaryFillholeImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinaryFillholeImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryGrindPeak "/**
+Image itk::simple::BinaryGrindPeak(const Image &image1, bool fullyConnected=false, double
+foregroundValue=1.0, double backgroundValue=0)
+
+Remove the objects not connected to the boundary of the image.
+
+
+This function directly calls the execute method of BinaryGrindPeakImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinaryGrindPeakImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryImageToLabelMap "/**
+Image itk::simple::BinaryImageToLabelMap(const Image &image1, bool fullyConnected=false, double
+inputForegroundValue=1.0, double outputBackgroundValue=0.0)
+
+Label the connected components in a binary image and produce a
+collection of label objects.
+
+
+This function directly calls the execute method of BinaryImageToLabelMapFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinaryImageToLabelMapFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMagnitude "/**
+Image itk::simple::BinaryMagnitude(const Image &image1, const Image &image2)
+
+Computes the square root of the sum of squares of corresponding input
+pixels.
+
+
+This function directly calls the execute method of BinaryMagnitudeImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinaryMagnitudeImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMedian "/**
+Image itk::simple::BinaryMedian(const Image &image1, const std::vector< unsigned int >
+&radius=std::vector< unsigned int >(3, 1), double foregroundValue=1.0,
+double backgroundValue=0.0)
+
+Applies a version of the median filter optimized for binary images.
+
+
+This function directly calls the execute method of BinaryMedianImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinaryMedianImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMinMaxCurvatureFlow "/**
+Image itk::simple::BinaryMinMaxCurvatureFlow(const Image &image1, double timeStep=0.05, uint32_t
+numberOfIterations=5u, int stencilRadius=2, double threshold=0)
+
+Denoise a binary image using min/max curvature flow.
+
+
+This function directly calls the execute method of BinaryMinMaxCurvatureFlowImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinaryMinMaxCurvatureFlowImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalClosing "/**
+Image itk::simple::BinaryMorphologicalClosing(const Image &, uint32_t radius=1, KernelEnum kernel=sitkBall, double
+foregroundValue=1.0, bool safeBorder=true)
+
+itk::simple::BinaryMorphologicalClosingImageFilter Functional Interface
+
+This function directly calls the execute method of BinaryMorphologicalClosingImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalClosing "/**
+Image itk::simple::BinaryMorphologicalClosing(const Image &, const std::vector< uint32_t > vectorRadius, KernelEnum
+kernel=sitkBall, double foregroundValue=1.0, bool safeBorder=true)
+
+itk::simple::BinaryMorphologicalClosingImageFilter Functional Interface
+
+This function directly calls the execute method of BinaryMorphologicalClosingImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalOpening "/**
+Image itk::simple::BinaryMorphologicalOpening(const Image &, uint32_t radius=1, KernelEnum kernel=sitkBall, double
+backgroundValue=0.0, double foregroundValue=1.0)
+
+itk::simple::BinaryMorphologicalOpeningImageFilter Functional Interface
+
+This function directly calls the execute method of BinaryMorphologicalOpeningImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryMorphologicalOpening "/**
+Image itk::simple::BinaryMorphologicalOpening(const Image &, const std::vector< uint32_t > vectorRadius, KernelEnum
+kernel=sitkBall, double backgroundValue=0.0, double
+foregroundValue=1.0)
+
+itk::simple::BinaryMorphologicalOpeningImageFilter Functional Interface
+
+This function directly calls the execute method of BinaryMorphologicalOpeningImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryNot "/**
+Image itk::simple::BinaryNot(const Image &image1, double foregroundValue=1.0, double
+backgroundValue=0.0)
+
+Implements the BinaryNot logical operator pixel-wise between two
+images.
+
+
+This function directly calls the execute method of BinaryNotImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinaryNotImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryOpeningByReconstruction "/**
+Image itk::simple::BinaryOpeningByReconstruction(const Image &, uint32_t radius=1, KernelEnum kernel=sitkBall, double
+foregroundValue=1.0, double backgroundValue=0.0, bool
+fullyConnected=false)
+
+itk::simple::BinaryOpeningByReconstructionImageFilter Functional Interface
+
+This function directly calls the execute method of BinaryOpeningByReconstructionImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryOpeningByReconstruction "/**
+Image itk::simple::BinaryOpeningByReconstruction(const Image &, const std::vector< uint32_t > vectorRadius, KernelEnum
+kernel=sitkBall, double foregroundValue=1.0, double
+backgroundValue=0.0, bool fullyConnected=false)
+
+itk::simple::BinaryOpeningByReconstructionImageFilter Functional Interface
+
+This function directly calls the execute method of BinaryOpeningByReconstructionImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryProjection "/**
+Image itk::simple::BinaryProjection(const Image &image1, unsigned int projectionDimension=0u, double
+foregroundValue=1.0, double backgroundValue=0.0)
+
+Binary projection.
+
+
+This function directly calls the execute method of BinaryProjectionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinaryProjectionImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByDilation "/**
+Image itk::simple::BinaryReconstructionByDilation(const Image &image1, const Image &image2, double backgroundValue=0.0,
+double foregroundValue=1.0, bool fullyConnected=false)
+
+binary reconstruction by dilation of an image
+
+
+This function directly calls the execute method of BinaryReconstructionByDilationImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinaryReconstructionByDilationImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryReconstructionByErosion "/**
+Image itk::simple::BinaryReconstructionByErosion(const Image &image1, const Image &image2, double backgroundValue=0.0,
+double foregroundValue=1.0, bool fullyConnected=false)
+
+binary reconstruction by erosion of an image
+
+
+This function directly calls the execute method of BinaryReconstructionByErosionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinaryReconstructionByErosionImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThinning "/**
+Image itk::simple::BinaryThinning(const Image &image1)
+
+This filter computes one-pixel-wide edges of the input image.
+
+
+This function directly calls the execute method of BinaryThinningImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinaryThinningImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThreshold "/**
+Image itk::simple::BinaryThreshold(const Image &image1, double lowerThreshold=0.0, double
+upperThreshold=255.0, uint8_t insideValue=1u, uint8_t outsideValue=0u)
+
+Binarize an input image by thresholding.
+
+
+This function directly calls the execute method of BinaryThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinaryThresholdImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinaryThresholdProjection "/**
+Image itk::simple::BinaryThresholdProjection(const Image &image1, unsigned int projectionDimension=0u, double
+thresholdValue=0.0, uint8_t foregroundValue=1u, uint8_t
+backgroundValue=0u)
+
+BinaryThreshold projection.
+
+
+This function directly calls the execute method of BinaryThresholdProjectionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinaryThresholdProjectionImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinomialBlur "/**
+Image itk::simple::BinomialBlur(const Image &image1, unsigned int repetitions=1u)
+
+Performs a separable blur on each dimension of an image.
+
+
+This function directly calls the execute method of BinomialBlurImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinomialBlurImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BinShrink "/**
+Image itk::simple::BinShrink(const Image &image1, const std::vector< unsigned int >
+&shrinkFactors=std::vector< unsigned int >(3, 1))
+
+Reduce the size of an image by an integer factor in each dimension
+while performing averaging of an input neighborhood.
+
+
+This function directly calls the execute method of BinShrinkImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinShrinkImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BitwiseNot "/**
+Image itk::simple::BitwiseNot(const Image &image1)
+
+Implements pixel-wise generic operation on one image.
+
+
+This function directly calls the execute method of BitwiseNotImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BitwiseNotImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BlackTopHat "/**
+Image itk::simple::BlackTopHat(const Image &, uint32_t radius=1, KernelEnum kernel=sitkBall, bool
+safeBorder=true)
+
+itk::simple::BlackTopHatImageFilter Functional Interface
+
+This function directly calls the execute method of BlackTopHatImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BlackTopHat "/**
+Image itk::simple::BlackTopHat(const Image &, const std::vector< uint32_t > vectorRadius, KernelEnum
+kernel=sitkBall, bool safeBorder=true)
+
+itk::simple::BlackTopHatImageFilter Functional Interface
+
+This function directly calls the execute method of BlackTopHatImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BoundedReciprocal "/**
+Image itk::simple::BoundedReciprocal(const Image &image1)
+
+Computes 1/(1+x) for each pixel in the image.
+
+
+This function directly calls the execute method of BoundedReciprocalImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BoundedReciprocalImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BoxMean "/**
+Image itk::simple::BoxMean(const Image &image1, const std::vector< unsigned int >
+&radius=std::vector< unsigned int >(3, 1))
+
+Implements a fast rectangular mean filter using the accumulator
+approach.
+
+
+This function directly calls the execute method of BoxMeanImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BoxMeanImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BoxSigma "/**
+Image itk::simple::BoxSigma(const Image &image1, const std::vector< unsigned int >
+&radius=std::vector< unsigned int >(3, 1))
+
+Implements a fast rectangular sigma filter using the accumulator
+approach.
+
+
+This function directly calls the execute method of BoxSigmaImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BoxSigmaImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::BSplineTransformInitializer "/**
+BSplineTransform itk::simple::BSplineTransformInitializer(const Image &image1, const std::vector< uint32_t >
+&transformDomainMeshSize=std::vector< uint32_t >(3, 1u), unsigned int
+order=3u)
+
+BSplineTransformInitializerFilter is a helper class intended to initialize the control point grid such
+that it has a physically consistent definition. It sets the transform
+domain origin, physical dimensions and direction from information
+obtained from the image. It also sets the mesh size if asked to do so
+by calling SetTransformDomainMeshSize()before calling
+InitializeTransform().
+
+
+This function directly calls the execute method of BSplineTransformInitializerFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BSplineTransformInitializerFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CannyEdgeDetection "/**
+Image itk::simple::CannyEdgeDetection(const Image &image1, double lowerThreshold=0.0, double
+upperThreshold=0.0, const std::vector< double > &variance=std::vector<
+double >(3, 0.0), const std::vector< double >
+&maximumError=std::vector< double >(3, 0.01))
+
+This filter is an implementation of a Canny edge detector for scalar-
+valued images.
+
+
+This function directly calls the execute method of CannyEdgeDetectionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::CannyEdgeDetectionImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Cast "/**
+Image itk::simple::Cast(const Image &image, PixelIDValueEnum pixelID)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CenteredTransformInitializer "/**
+Transform itk::simple::CenteredTransformInitializer(const Image &fixedImage, const Image &movingImage, const Transform
+&transform, CenteredTransformInitializerFilter::OperationModeType oper
+ationMode=itk::simple::CenteredTransformInitializerFilter::MOMENTS)
+
+CenteredTransformInitializer is a helper class intended to initialize the center of rotation and
+the translation of Transforms having the center of rotation among
+their parameters.
+
+
+This function directly calls the execute method of CenteredTransformInitializerFilter in order to support a procedural API
+
+
+See:
+ itk::simple::CenteredTransformInitializerFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CenteredVersorTransformInitializer "/**
+Transform itk::simple::CenteredVersorTransformInitializer(const Image &fixedImage, const Image &movingImage, const Transform
+&transform, bool computeRotation=false)
+
+CenteredVersorTransformInitializer is a helper class intended to initialize the center of rotation,
+versor, and translation of the VersorRigid3DTransform.
+
+
+This function directly calls the execute method of
+CenteredVectorTransformInitializerFilter in order to support a
+procedural API.
+
+
+See:
+ itk::simple::CenteredVersorTransformInitializerFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ChangeLabel "/**
+Image itk::simple::ChangeLabel(const Image &image1, std::map< double, double > changeMap=std::map<
+double, double >())
+
+Change Sets of Labels.
+
+
+This function directly calls the execute method of ChangeLabelImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ChangeLabelImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ChangeLabelLabelMap "/**
+Image itk::simple::ChangeLabelLabelMap(const Image &image1, std::map< double, double > changeMap=std::map<
+double, double >())
+
+Replace the label Ids of selected LabelObjects with new label Ids.
+
+
+This function directly calls the execute method of ChangeLabelLabelMapFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ChangeLabelLabelMapFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CheckerBoard "/**
+Image itk::simple::CheckerBoard(const Image &image1, const Image &image2, const std::vector< uint32_t
+> &checkerPattern=std::vector< uint32_t >(3, 4))
+
+Combines two images in a checkerboard pattern.
+
+
+This function directly calls the execute method of CheckerBoardImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::CheckerBoardImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Clamp "/**
+Image itk::simple::Clamp(const Image &image1, PixelIDValueEnum
+outputPixelType=itk::simple::sitkFloat32, double
+lowerBound=-std::numeric_limits< double >::max(), double
+upperBound=std::numeric_limits< double >::max())
+
+Casts input pixels to output pixel type and clamps the output pixel
+values to a specified range.
+
+
+This function directly calls the execute method of ClampImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ClampImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClosingByReconstruction "/**
+Image itk::simple::ClosingByReconstruction(const Image &, uint32_t radius=1, KernelEnum kernel=sitkBall, bool
+fullyConnected=false, bool preserveIntensities=false)
+
+itk::simple::ClosingByReconstructionImageFilter Functional Interface
+
+This function directly calls the execute method of ClosingByReconstructionImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ClosingByReconstruction "/**
+Image itk::simple::ClosingByReconstruction(const Image &, const std::vector< uint32_t > vectorRadius, KernelEnum
+kernel=sitkBall, bool fullyConnected=false, bool
+preserveIntensities=false)
+
+itk::simple::ClosingByReconstructionImageFilter Functional Interface
+
+This function directly calls the execute method of ClosingByReconstructionImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CollidingFronts "/**
+Image itk::simple::CollidingFronts(const Image &image1, const std::vector< std::vector< unsigned int > >
+&seedPoints1=std::vector< std::vector< unsigned int > >(), const
+std::vector< std::vector< unsigned int > > &seedPoints2=std::vector<
+std::vector< unsigned int > >(), bool applyConnectivity=true, double
+negativeEpsilon=-1e-6, bool stopOnTargets=false)
+
+Selects a region of space where two independent fronts run towards
+each other.
+
+
+This function directly calls the execute method of CollidingFrontsImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::CollidingFrontsImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComplexToImaginary "/**
+Image itk::simple::ComplexToImaginary(const Image &image1)
+
+Computes pixel-wise the imaginary part of a complex image.
+
+
+This function directly calls the execute method of ComplexToImaginaryImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ComplexToImaginaryImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComplexToModulus "/**
+Image itk::simple::ComplexToModulus(const Image &image1)
+
+Computes pixel-wise the Modulus of a complex image.
+
+
+This function directly calls the execute method of ComplexToModulusImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ComplexToModulusImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComplexToPhase "/**
+Image itk::simple::ComplexToPhase(const Image &image1)
+
+Computes pixel-wise the modulus of a complex image.
+
+
+This function directly calls the execute method of ComplexToPhaseImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ComplexToPhaseImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ComplexToReal "/**
+Image itk::simple::ComplexToReal(const Image &image1)
+
+Computes pixel-wise the real(x) part of a complex image.
+
+
+This function directly calls the execute method of ComplexToRealImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ComplexToRealImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConfidenceConnected "/**
+Image itk::simple::ConfidenceConnected(const Image &image1, const std::vector< std::vector< unsigned int > >
+&seedList, unsigned int numberOfIterations=4u, double multiplier=4.5,
+unsigned int initialNeighborhoodRadius=1u, uint8_t replaceValue=1u)
+
+itk::simple::ConfidenceConnectedImageFilter Functional Interface
+
+This function directly calls the execute method of ConfidenceConnectedImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedComponent "/**
+Image itk::simple::ConnectedComponent(const Image &image1, bool fullyConnected=false)
+
+Label the objects in a binary image.
+
+
+This function directly calls the execute method of ConnectedComponentImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ConnectedComponentImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConnectedThreshold "/**
+Image itk::simple::ConnectedThreshold(const Image &image1, const std::vector< std::vector< unsigned int > >
+&seedList, double lower=0, double upper=1, uint8_t replaceValue=1u,
+ConnectedThresholdImageFilter::ConnectivityType connectivity=itk::simp
+le::ConnectedThresholdImageFilter::FaceConnectivity)
+
+itk::simple::ConnectedThresholdImageFilter Functional Interface
+
+This function directly calls the execute method of ConnectedThresholdImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ConstantPad "/**
+Image itk::simple::ConstantPad(const Image &image1, const std::vector< unsigned int >
+&padLowerBound=std::vector< unsigned int >(3, 0), const std::vector<
+unsigned int > &padUpperBound=std::vector< unsigned int >(3, 0),
+double constant=0.0)
+
+Increase the image size by padding with a constant value.
+
+
+This function directly calls the execute method of ConstantPadImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ConstantPadImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Convolution "/**
+Image itk::simple::Convolution(const Image &image1, const Image &image2, bool normalize=false,
+ConvolutionImageFilter::BoundaryConditionType boundaryCondition=itk::s
+imple::ConvolutionImageFilter::ZERO_FLUX_NEUMANN_PAD,
+ConvolutionImageFilter::OutputRegionModeType
+outputRegionMode=itk::simple::ConvolutionImageFilter::SAME)
+
+Convolve a given image with an arbitrary image kernel.
+
+
+This function directly calls the execute method of ConvolutionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ConvolutionImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Cos "/**
+Image itk::simple::Cos(const Image &image1)
+
+Computes the cosine of each pixel.
+
+
+This function directly calls the execute method of CosImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::CosImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CreateKernel "/**
+itk::FlatStructuringElement< VImageDimension > itk::simple::CreateKernel(KernelEnum kernelType, const std::vector< uint32_t > &size)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Crop "/**
+Image itk::simple::Crop(const Image &image1, const std::vector< unsigned int >
+&lowerBoundaryCropSize=std::vector< unsigned int >(3, 0), const
+std::vector< unsigned int > &upperBoundaryCropSize=std::vector<
+unsigned int >(3, 0))
+
+Decrease the image size by cropping the image by an itk::Size at both the upper and lower bounds of the largest possible region.
+
+
+This function directly calls the execute method of CropImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::CropImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CurvatureAnisotropicDiffusion "/**
+Image itk::simple::CurvatureAnisotropicDiffusion(const Image &image1, double timeStep=0.0625, double
+conductanceParameter=3, unsigned int
+conductanceScalingUpdateInterval=1u, uint32_t numberOfIterations=5u)
+
+itk::simple::CurvatureAnisotropicDiffusionImageFilter Procedural Interface
+
+
+This function directly calls the execute method of CurvatureAnisotropicDiffusionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::CurvatureAnisotropicDiffusionImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CurvatureFlow "/**
+Image itk::simple::CurvatureFlow(const Image &image1, double timeStep=0.05, uint32_t
+numberOfIterations=5u)
+
+Denoise an image using curvature driven flow.
+
+
+This function directly calls the execute method of CurvatureFlowImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::CurvatureFlowImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::CyclicShift "/**
+Image itk::simple::CyclicShift(const Image &image1, const std::vector< int > &shift=std::vector< int
+>(3, 0))
+
+Perform a cyclic spatial shift of image intensities on the image grid.
+
+
+This function directly calls the execute method of CyclicShiftImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::CyclicShiftImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DanielssonDistanceMap "/**
+Image itk::simple::DanielssonDistanceMap(const Image &image1, bool inputIsBinary=false, bool
+squaredDistance=false, bool useImageSpacing=false)
+
+This filter computes the distance map of the input image as an
+approximation with pixel accuracy to the Euclidean distance.
+
+
+This function directly calls the execute method of DanielssonDistanceMapImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::DanielssonDistanceMapImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Derivative "/**
+Image itk::simple::Derivative(const Image &image1, unsigned int direction=0u, unsigned int
+order=1u, bool useImageSpacing=true)
+
+Computes the directional derivative of an image. The directional
+derivative at each pixel location is computed by convolution with a
+derivative operator of user-specified order.
+
+
+This function directly calls the execute method of DerivativeImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::DerivativeImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DilateObjectMorphology "/**
+Image itk::simple::DilateObjectMorphology(const Image &, uint32_t radius=1, KernelEnum kernel=sitkBall, double
+objectValue=1)
+
+itk::simple::DilateObjectMorphologyImageFilter Functional Interface
+
+This function directly calls the execute method of DilateObjectMorphologyImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DilateObjectMorphology "/**
+Image itk::simple::DilateObjectMorphology(const Image &, const std::vector< uint32_t > vectorRadius, KernelEnum
+kernel=sitkBall, double objectValue=1)
+
+itk::simple::DilateObjectMorphologyImageFilter Functional Interface
+
+This function directly calls the execute method of DilateObjectMorphologyImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussian "/**
+Image itk::simple::DiscreteGaussian(const Image &image1, double variance=1.0, unsigned int
+maximumKernelWidth=32u, double maximumError=0.01, bool
+useImageSpacing=true)
+
+Blurs an image by separable convolution with discrete gaussian
+kernels. This filter performs Gaussian blurring by separable
+convolution of an image and a discrete Gaussian operator (kernel).
+
+
+This function directly calls the execute method of DiscreteGaussianImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::DiscreteGaussianImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DiscreteGaussianDerivative "/**
+Image itk::simple::DiscreteGaussianDerivative(const Image &image1, const std::vector< double >
+&variance=std::vector< double >(3, 0.0), const std::vector< unsigned
+int > &order=std::vector< unsigned int >(3, 1), unsigned int
+maximumKernelWidth=32u, double maximumError=0.01, bool
+useImageSpacing=true, bool normalizeAcrossScale=false)
+
+Calculates image derivatives using discrete derivative gaussian
+kernels. This filter calculates Gaussian derivative by separable
+convolution of an image and a discrete Gaussian derivative operator
+(kernel).
+
+
+This function directly calls the execute method of DiscreteGaussianDerivativeImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::DiscreteGaussianDerivativeImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DisplacementFieldJacobianDeterminant "/**
+Image itk::simple::DisplacementFieldJacobianDeterminant(const Image &image1, bool useImageSpacing=true, const std::vector<
+double > &derivativeWeights=std::vector< double >())
+
+Computes a scalar image from a vector image (e.g., deformation field)
+input, where each output scalar at each pixel is the Jacobian
+determinant of the vector field at that location. This calculation is
+correct in the case where the vector image is a \"displacement\" from
+the current location. The computation for the jacobian determinant is:
+det[ dT/dx ] = det[ I + du/dx ].
+
+
+This function directly calls the execute method of DisplacementFieldJacobianDeterminantFilter in order to support a procedural API
+
+
+See:
+ itk::simple::DisplacementFieldJacobianDeterminantFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Divide "/**
+Image itk::simple::Divide(const Image &image1, const Image &image2)
+
+Pixel-wise division of two images.
+
+
+This function directly calls the execute method of DivideImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::DivideImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Divide "/**
+Image itk::simple::Divide(const Image &image1, double constant)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Divide "/**
+Image itk::simple::Divide(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DivideFloor "/**
+Image itk::simple::DivideFloor(const Image &image1, const Image &image2)
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This function directly calls the execute method of DivideFloorImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::DivideFloorImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DivideFloor "/**
+Image itk::simple::DivideFloor(const Image &image1, double constant)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DivideFloor "/**
+Image itk::simple::DivideFloor(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DivideReal "/**
+Image itk::simple::DivideReal(const Image &image1, const Image &image2)
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This function directly calls the execute method of DivideRealImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::DivideRealImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DivideReal "/**
+Image itk::simple::DivideReal(const Image &image1, double constant)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DivideReal "/**
+Image itk::simple::DivideReal(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::DoubleThreshold "/**
+Image itk::simple::DoubleThreshold(const Image &image1, double threshold1=0.0, double threshold2=1.0,
+double threshold3=254.0, double threshold4=255.0, uint8_t
+insideValue=1u, uint8_t outsideValue=0u, bool fullyConnected=false)
+
+Binarize an input image using double thresholding.
+
+
+This function directly calls the execute method of DoubleThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::DoubleThresholdImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::EdgePotential "/**
+Image itk::simple::EdgePotential(const Image &image1)
+
+Computes the edge potential of an image from the image gradient.
+
+
+This function directly calls the execute method of EdgePotentialImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::EdgePotentialImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Equal "/**
+Image itk::simple::Equal(const Image &image1, const Image &image2, uint8_t backgroundValue=0u,
+uint8_t foregroundValue=1u)
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This function directly calls the execute method of EqualImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::EqualImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Equal "/**
+Image itk::simple::Equal(const Image &image1, double constant, uint8_t backgroundValue=0u,
+uint8_t foregroundValue=1u)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Equal "/**
+Image itk::simple::Equal(double constant, const Image &image2, uint8_t backgroundValue=0u,
+uint8_t foregroundValue=1u)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ErodeObjectMorphology "/**
+Image itk::simple::ErodeObjectMorphology(const Image &, uint32_t radius=1, KernelEnum kernel=sitkBall, double
+objectValue=1, double backgroundValue=0)
+
+itk::simple::ErodeObjectMorphologyImageFilter Functional Interface
+
+This function directly calls the execute method of ErodeObjectMorphologyImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ErodeObjectMorphology "/**
+Image itk::simple::ErodeObjectMorphology(const Image &, const std::vector< uint32_t > vectorRadius, KernelEnum
+kernel=sitkBall, double objectValue=1, double backgroundValue=0)
+
+itk::simple::ErodeObjectMorphologyImageFilter Functional Interface
+
+This function directly calls the execute method of ErodeObjectMorphologyImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Exp "/**
+Image itk::simple::Exp(const Image &image1)
+
+Computes the exponential function of each pixel.
+
+
+This function directly calls the execute method of ExpImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ExpImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Expand "/**
+Image itk::simple::Expand(const Image &image1, const std::vector< unsigned int >
+&expandFactors=std::vector< unsigned int >(3, 1), InterpolatorEnum
+interpolator=itk::simple::sitkLinear)
+
+Expand the size of an image by an integer factor in each dimension.
+
+
+This function directly calls the execute method of ExpandImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ExpandImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ExpNegative "/**
+Image itk::simple::ExpNegative(const Image &image1)
+
+Computes the function exp(-K.x) for each input pixel.
+
+
+This function directly calls the execute method of ExpNegativeImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ExpNegativeImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Extract "/**
+Image itk::simple::Extract(const Image &image1, const std::vector< unsigned int >
+&size=std::vector< unsigned int >(4, 1), const std::vector< int >
+&index=std::vector< int >(4, 0),
+ExtractImageFilter::DirectionCollapseToStrategyType directionCollapseT
+oStrategy=itk::simple::ExtractImageFilter::DIRECTIONCOLLAPSETOGUESS)
+
+Decrease the image size by cropping the image to the selected region
+bounds.
+
+
+This function directly calls the execute method of ExtractImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ExtractImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastApproximateRank "/**
+Image itk::simple::FastApproximateRank(const Image &image1, double rank=0.5, const std::vector< unsigned int
+> &radius=std::vector< unsigned int >(3, 1))
+
+A separable rank filter.
+
+
+This function directly calls the execute method of FastApproximateRankImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::FastApproximateRankImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarching "/**
+Image itk::simple::FastMarching(const Image &image1, const std::vector< std::vector< unsigned int > >
+&trialPoints=std::vector< std::vector< unsigned int > >(), double
+normalizationFactor=1.0, double stoppingValue=std::numeric_limits<
+double >::max()/2.0)
+
+Solve an Eikonal equation using Fast Marching.
+
+
+This function directly calls the execute method of FastMarchingImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::FastMarchingImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingBase "/**
+Image itk::simple::FastMarchingBase(const Image &imageA, std::vector< std::vector< unsigned int > >
+trialPoints, double normalizationFactor=1.0, double
+stoppingValue=std::numeric_limits< float >::max()/2.0,
+FastMarchingBaseImageFilter::TopologyCheckType
+topologyCheck=itk::simple::FastMarchingBaseImageFilter::Nothing)
+
+itk::simple::FastMarchingBaseImageFilter Functional Interface
+
+This function directly calls the execute method of FastMarchingBaseImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FastMarchingUpwindGradient "/**
+Image itk::simple::FastMarchingUpwindGradient(const Image &image1, const std::vector< std::vector< unsigned int > >
+&trialPoints=std::vector< std::vector< unsigned int > >(), unsigned
+int numberOfTargets=0u, const std::vector< std::vector< unsigned int >
+> &targetPoints=std::vector< std::vector< unsigned int > >(), double
+targetOffset=1, double normalizationFactor=1.0)
+
+Generates the upwind gradient field of fast marching arrival times.
+
+
+This function directly calls the execute method of FastMarchingUpwindGradientImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::FastMarchingUpwindGradientImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTConvolution "/**
+Image itk::simple::FFTConvolution(const Image &image1, const Image &image2, bool normalize=false,
+FFTConvolutionImageFilter::BoundaryConditionType boundaryCondition=itk
+::simple::FFTConvolutionImageFilter::ZERO_FLUX_NEUMANN_PAD,
+FFTConvolutionImageFilter::OutputRegionModeType
+outputRegionMode=itk::simple::FFTConvolutionImageFilter::SAME)
+
+Convolve a given image with an arbitrary image kernel using
+multiplication in the Fourier domain.
+
+
+This function directly calls the execute method of FFTConvolutionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::FFTConvolutionImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTNormalizedCorrelation "/**
+Image itk::simple::FFTNormalizedCorrelation(const Image &image1, const Image &image2, uint64_t
+requiredNumberOfOverlappingPixels=0u)
+
+Calculate normalized cross correlation using FFTs.
+
+
+This function directly calls the execute method of FFTNormalizedCorrelationImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::FFTNormalizedCorrelationImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTPad "/**
+Image itk::simple::FFTPad(const Image &image1, FFTPadImageFilter::BoundaryConditionType boundar
+yCondition=itk::simple::FFTPadImageFilter::ZERO_FLUX_NEUMANN_PAD, int
+sizeGreatestPrimeFactor=5)
+
+Pad an image to make it suitable for an FFT transformation.
+
+
+This function directly calls the execute method of FFTPadImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::FFTPadImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::FFTShift "/**
+Image itk::simple::FFTShift(const Image &image1, bool inverse=false)
+
+Shift the zero-frequency components of a Fourier transform to the
+center of the image.
+
+
+This function directly calls the execute method of FFTShiftImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::FFTShiftImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Flip "/**
+Image itk::simple::Flip(const Image &image1, const std::vector< bool > &flipAxes=std::vector<
+bool >(3, false), bool flipAboutOrigin=false)
+
+Flips an image across user specified axes.
+
+
+This function directly calls the execute method of FlipImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::FlipImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ForwardFFT "/**
+Image itk::simple::ForwardFFT(const Image &image1)
+
+Base class for forward Fast Fourier Transform .
+
+
+This function directly calls the execute method of ForwardFFTImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ForwardFFTImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaborSource "/**
+Image itk::simple::GaborSource(PixelIDValueEnum outputPixelType=itk::simple::sitkFloat32, const
+std::vector< unsigned int > &size=std::vector< unsigned int >(3, 64),
+const std::vector< double > &sigma=std::vector< double >(3, 16.0),
+const std::vector< double > &mean=std::vector< double >(3, 32.0),
+double frequency=0.4, const std::vector< double > &origin=std::vector<
+double >(3, 0.0), const std::vector< double > &spacing=std::vector<
+double >(3, 1.0), std::vector< double > direction=std::vector< double
+>())
+
+Generate an n-dimensional image of a Gabor filter.
+
+
+This function directly calls the execute method of GaborImageSource in order to support a procedural API
+
+
+See:
+ itk::simple::GaborImageSource for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GaussianSource "/**
+Image itk::simple::GaussianSource(PixelIDValueEnum outputPixelType=itk::simple::sitkFloat32, const
+std::vector< unsigned int > &size=std::vector< unsigned int >(3, 64),
+const std::vector< double > &sigma=std::vector< double >(3, 16.0),
+const std::vector< double > &mean=std::vector< double >(3, 32.0),
+double scale=255, const std::vector< double > &origin=std::vector<
+double >(3, 0.0), const std::vector< double > &spacing=std::vector<
+double >(3, 1.0), std::vector< double > direction=std::vector< double
+>())
+
+Generate an n-dimensional image of a Gaussian.
+
+
+This function directly calls the execute method of GaussianImageSource in order to support a procedural API
+
+
+See:
+ itk::simple::GaussianImageSource for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GeodesicActiveContourLevelSet "/**
+Image itk::simple::GeodesicActiveContourLevelSet(const Image &image1, const Image &image2, double
+maximumRMSError=0.01, double propagationScaling=1.0, double
+curvatureScaling=1.0, double advectionScaling=1.0, uint32_t
+numberOfIterations=1000u, bool reverseExpansionDirection=false)
+
+Segments structures in images based on a user supplied edge potential
+map.
+
+
+This function directly calls the execute method of GeodesicActiveContourLevelSetImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::GeodesicActiveContourLevelSetImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GetImageFromVectorImage "/**
+SITKCommon_HIDDEN itk::Image< itk::Vector< TPixelType, ImageDimension >, ImageDimension>::Pointer itk::simple::GetImageFromVectorImage(itk::VectorImage< TPixelType, ImageDimension > *img, bool
+transferOwnership=false)
+
+A utility method to help convert between itk image types efficiently.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GetPixelIDValueAsString "/**
+const std::string SITKCommon_EXPORT itk::simple::GetPixelIDValueAsString(PixelIDValueType type)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GetPixelIDValueAsString "/**
+const std::string SITKCommon_EXPORT itk::simple::GetPixelIDValueAsString(PixelIDValueEnum type)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GetPixelIDValueFromString "/**
+PixelIDValueType SITKCommon_EXPORT itk::simple::GetPixelIDValueFromString(const std::string &enumString)
+
+Function mapping enumeration names in std::string to values.
+
+
+This function is intended for use by the R bindings. R stores the
+enumeration values using the names : \"sitkUnkown\", \"sitkUInt8\",
+etc from PixelIDValueEnum above. This function is used to provide the
+integer values using calls like:
+
+val = GetPixelIDValueFromString(\"sitkInt32\")
+
+If the pixel type has not been instantiated then the sitkUnknown value
+(-1) will be returned. If the pixel type string is not recognised
+(i.e. is not in the set of tested names) then the return value is -99.
+The idea is to provide a warning (via the R package) if this function
+needs to be updated to match changes to PixelIDValueEnum - i.e. if a
+new pixel type is added.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GetVectorImageFromImage "/**
+SITKCommon_HIDDEN itk::VectorImage< TPixelType, NImageDimension >::Pointer itk::simple::GetVectorImageFromImage(itk::Image< itk::Vector< TPixelType, NLength >, NImageDimension >
+*img, bool transferOwnership=false)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GetVectorImageFromImage "/**
+SITKCommon_HIDDEN itk::VectorImage< TPixelType, NImageDimension >::Pointer itk::simple::GetVectorImageFromImage(itk::Image< itk::Vector< TPixelType, NImageDimension >,
+NImageDimension > *img, bool transferOwnership=false)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Gradient "/**
+Image itk::simple::Gradient(const Image &image1, bool useImageSpacing=true, bool
+useImageDirection=false)
+
+Computes the gradient of an image using directional derivatives.
+
+
+This function directly calls the execute method of GradientImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::GradientImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientAnisotropicDiffusion "/**
+Image itk::simple::GradientAnisotropicDiffusion(const Image &image1, double timeStep=0.125, double
+conductanceParameter=3, unsigned int
+conductanceScalingUpdateInterval=1u, uint32_t numberOfIterations=5u)
+
+itk::simple::GradientAnisotropicDiffusionImageFilter Procedural Interface
+
+
+This function directly calls the execute method of GradientAnisotropicDiffusionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::GradientAnisotropicDiffusionImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientMagnitude "/**
+Image itk::simple::GradientMagnitude(const Image &image1, bool useImageSpacing=true)
+
+Computes the gradient magnitude of an image region at each pixel.
+
+
+This function directly calls the execute method of GradientMagnitudeImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::GradientMagnitudeImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientMagnitudeRecursiveGaussian "/**
+Image itk::simple::GradientMagnitudeRecursiveGaussian(const Image &image1, double sigma=1.0, bool
+normalizeAcrossScale=false)
+
+Computes the Magnitude of the Gradient of an image by convolution with
+the first derivative of a Gaussian.
+
+
+This function directly calls the execute method of GradientMagnitudeRecursiveGaussianImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::GradientMagnitudeRecursiveGaussianImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GradientRecursiveGaussian "/**
+Image itk::simple::GradientRecursiveGaussian(const Image &image1, double sigma=1.0, bool
+normalizeAcrossScale=false, bool useImageDirection=false)
+
+Computes the gradient of an image by convolution with the first
+derivative of a Gaussian.
+
+
+This function directly calls the execute method of GradientRecursiveGaussianImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::GradientRecursiveGaussianImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleConnectedClosing "/**
+Image itk::simple::GrayscaleConnectedClosing(const Image &image1, const std::vector< uint32_t > &seed=std::vector<
+uint32_t >(3, 0), bool fullyConnected=false)
+
+Enhance pixels associated with a dark object (identified by a seed
+pixel) where the dark object is surrounded by a brigher object.
+
+
+This function directly calls the execute method of GrayscaleConnectedClosingImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::GrayscaleConnectedClosingImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleConnectedOpening "/**
+Image itk::simple::GrayscaleConnectedOpening(const Image &image1, const std::vector< unsigned int >
+&seed=std::vector< unsigned int >(3, 0), bool fullyConnected=false)
+
+Enhance pixels associated with a bright object (identified by a seed
+pixel) where the bright object is surrounded by a darker object.
+
+
+This function directly calls the execute method of GrayscaleConnectedOpeningImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::GrayscaleConnectedOpeningImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleDilate "/**
+Image itk::simple::GrayscaleDilate(const Image &, uint32_t radius=1, KernelEnum kernel=sitkBall)
+
+itk::simple::GrayscaleDilateImageFilter Functional Interface
+
+This function directly calls the execute method of GrayscaleDilateImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleDilate "/**
+Image itk::simple::GrayscaleDilate(const Image &, const std::vector< uint32_t > vectorRadius, KernelEnum
+kernel=sitkBall)
+
+itk::simple::GrayscaleDilateImageFilter Functional Interface
+
+This function directly calls the execute method of GrayscaleDilateImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleErode "/**
+Image itk::simple::GrayscaleErode(const Image &, uint32_t radius=1, KernelEnum kernel=sitkBall)
+
+itk::simple::GrayscaleErodeImageFilter Functional Interface
+
+This function directly calls the execute method of GrayscaleErodeImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleErode "/**
+Image itk::simple::GrayscaleErode(const Image &, const std::vector< uint32_t > vectorRadius, KernelEnum
+kernel=sitkBall)
+
+itk::simple::GrayscaleErodeImageFilter Functional Interface
+
+This function directly calls the execute method of GrayscaleErodeImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleFillhole "/**
+Image itk::simple::GrayscaleFillhole(const Image &image1, bool fullyConnected=false)
+
+Remove local minima not connected to the boundary of the image.
+
+
+This function directly calls the execute method of GrayscaleFillholeImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::GrayscaleFillholeImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicDilate "/**
+Image itk::simple::GrayscaleGeodesicDilate(const Image &image1, const Image &image2, bool runOneIteration=false,
+bool fullyConnected=false)
+
+geodesic gray scale dilation of an image
+
+
+This function directly calls the execute method of GrayscaleGeodesicDilateImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::GrayscaleGeodesicDilateImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGeodesicErode "/**
+Image itk::simple::GrayscaleGeodesicErode(const Image &image1, const Image &image2, bool runOneIteration=false,
+bool fullyConnected=false)
+
+geodesic gray scale erosion of an image
+
+
+This function directly calls the execute method of GrayscaleGeodesicErodeImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::GrayscaleGeodesicErodeImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleGrindPeak "/**
+Image itk::simple::GrayscaleGrindPeak(const Image &image1, bool fullyConnected=false)
+
+Remove local maxima not connected to the boundary of the image.
+
+
+This function directly calls the execute method of GrayscaleGrindPeakImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::GrayscaleGrindPeakImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalClosing "/**
+Image itk::simple::GrayscaleMorphologicalClosing(const Image &, uint32_t radius=1, KernelEnum kernel=sitkBall, bool
+safeBorder=true)
+
+itk::simple::GrayscaleMorphologicalClosingImageFilter Functional Interface
+
+This function directly calls the execute method of GrayscaleMorphologicalClosingImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalClosing "/**
+Image itk::simple::GrayscaleMorphologicalClosing(const Image &, const std::vector< uint32_t > vectorRadius, KernelEnum
+kernel=sitkBall, bool safeBorder=true)
+
+itk::simple::GrayscaleMorphologicalClosingImageFilter Functional Interface
+
+This function directly calls the execute method of GrayscaleMorphologicalClosingImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalOpening "/**
+Image itk::simple::GrayscaleMorphologicalOpening(const Image &, uint32_t radius=1, KernelEnum kernel=sitkBall, bool
+safeBorder=true)
+
+itk::simple::GrayscaleMorphologicalOpeningImageFilter Functional Interface
+
+This function directly calls the execute method of GrayscaleMorphologicalOpeningImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GrayscaleMorphologicalOpening "/**
+Image itk::simple::GrayscaleMorphologicalOpening(const Image &, const std::vector< uint32_t > vectorRadius, KernelEnum
+kernel=sitkBall, bool safeBorder=true)
+
+itk::simple::GrayscaleMorphologicalOpeningImageFilter Functional Interface
+
+This function directly calls the execute method of GrayscaleMorphologicalOpeningImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Greater "/**
+Image itk::simple::Greater(const Image &image1, const Image &image2, uint8_t backgroundValue=0u,
+uint8_t foregroundValue=1u)
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This function directly calls the execute method of GreaterImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::GreaterImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Greater "/**
+Image itk::simple::Greater(const Image &image1, double constant, uint8_t backgroundValue=0u,
+uint8_t foregroundValue=1u)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Greater "/**
+Image itk::simple::Greater(double constant, const Image &image2, uint8_t backgroundValue=0u,
+uint8_t foregroundValue=1u)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterEqual "/**
+Image itk::simple::GreaterEqual(const Image &image1, const Image &image2, uint8_t backgroundValue=0u,
+uint8_t foregroundValue=1u)
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This function directly calls the execute method of GreaterEqualImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::GreaterEqualImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterEqual "/**
+Image itk::simple::GreaterEqual(const Image &image1, double constant, uint8_t backgroundValue=0u,
+uint8_t foregroundValue=1u)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GreaterEqual "/**
+Image itk::simple::GreaterEqual(double constant, const Image &image2, uint8_t backgroundValue=0u,
+uint8_t foregroundValue=1u)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::GridSource "/**
+Image itk::simple::GridSource(PixelIDValueEnum outputPixelType=itk::simple::sitkFloat32, const
+std::vector< unsigned int > &size=std::vector< unsigned int >(3, 64),
+const std::vector< double > &sigma=std::vector< double >(3, 0.5),
+const std::vector< double > &gridSpacing=std::vector< double >(3,
+4.0), const std::vector< double > &gridOffset=std::vector< double >(3,
+0.0), double scale=255.0, const std::vector< double >
+&origin=std::vector< double >(3, 0.0), const std::vector< double >
+&spacing=std::vector< double >(3, 1.0), std::vector< double >
+direction=std::vector< double >())
+
+Generate an n-dimensional image of a grid.
+
+
+This function directly calls the execute method of GridImageSource in order to support a procedural API
+
+
+See:
+ itk::simple::GridImageSource for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HalfHermitianToRealInverseFFT "/**
+Image itk::simple::HalfHermitianToRealInverseFFT(const Image &image1, bool actualXDimensionIsOdd=false)
+
+Base class for specialized complex-to-real inverse Fast Fourier Transform .
+
+
+This function directly calls the execute method of HalfHermitianToRealInverseFFTImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::HalfHermitianToRealInverseFFTImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Hash "/**
+std::string itk::simple::Hash(const Image &image, HashImageFilter::HashFunction
+function=HashImageFilter::SHA1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HConcave "/**
+Image itk::simple::HConcave(const Image &image1, double height=2.0, bool fullyConnected=false)
+
+Identify local minima whose depth below the baseline is greater than
+h.
+
+
+This function directly calls the execute method of HConcaveImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::HConcaveImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HConvex "/**
+Image itk::simple::HConvex(const Image &image1, double height=2.0, bool fullyConnected=false)
+
+Identify local maxima whose height above the baseline is greater than
+h.
+
+
+This function directly calls the execute method of HConvexImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::HConvexImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HistogramMatching "/**
+Image itk::simple::HistogramMatching(const Image &image1, const Image &image2, uint32_t
+numberOfHistogramLevels=256u, uint32_t numberOfMatchPoints=1u, bool
+thresholdAtMeanIntensity=true)
+
+Normalize the grayscale values between two images by histogram
+matching.
+
+
+This function directly calls the execute method of HistogramMatchingImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::HistogramMatchingImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HMaxima "/**
+Image itk::simple::HMaxima(const Image &image1, double height=2.0)
+
+Suppress local maxima whose height above the baseline is less than h.
+
+
+This function directly calls the execute method of HMaximaImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::HMaximaImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HMinima "/**
+Image itk::simple::HMinima(const Image &image1, double height=2.0, bool fullyConnected=false)
+
+Suppress local minima whose depth below the baseline is less than h.
+
+
+This function directly calls the execute method of HMinimaImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::HMinimaImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HuangThreshold "/**
+Image itk::simple::HuangThreshold(const Image &image, const Image &maskImage, uint8_t insideValue=1u,
+uint8_t outsideValue=0u, uint32_t numberOfHistogramBins=128u, bool
+maskOutput=true, uint8_t maskValue=255u)
+
+Threshold an image using the Huang Threshold.
+
+
+This function directly calls the execute method of HuangThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::HuangThresholdImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::HuangThreshold "/**
+Image itk::simple::HuangThreshold(const Image &image, uint8_t insideValue=1u, uint8_t outsideValue=0u,
+uint32_t numberOfHistogramBins=128u, bool maskOutput=true, uint8_t
+maskValue=255u)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportAsDouble "/**
+Image SITKIO_EXPORT itk::simple::ImportAsDouble(double *buffer, const std::vector< unsigned int > &size, const
+std::vector< double > &spacing=std::vector< double >(3, 1.0), const
+std::vector< double > &origin=std::vector< double >(3, 0.0), const
+std::vector< double > &direction=std::vector< double >(), unsigned int
+numberOfComponents=1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportAsFloat "/**
+Image SITKIO_EXPORT itk::simple::ImportAsFloat(float *buffer, const std::vector< unsigned int > &size, const
+std::vector< double > &spacing=std::vector< double >(3, 1.0), const
+std::vector< double > &origin=std::vector< double >(3, 0.0), const
+std::vector< double > &direction=std::vector< double >(), unsigned int
+numberOfComponents=1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportAsInt16 "/**
+Image SITKIO_EXPORT itk::simple::ImportAsInt16(int16_t *buffer, const std::vector< unsigned int > &size, const
+std::vector< double > &spacing=std::vector< double >(3, 1.0), const
+std::vector< double > &origin=std::vector< double >(3, 0.0), const
+std::vector< double > &direction=std::vector< double >(), unsigned int
+numberOfComponents=1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportAsInt32 "/**
+Image SITKIO_EXPORT itk::simple::ImportAsInt32(int32_t *buffer, const std::vector< unsigned int > &size, const
+std::vector< double > &spacing=std::vector< double >(3, 1.0), const
+std::vector< double > &origin=std::vector< double >(3, 0.0), const
+std::vector< double > &direction=std::vector< double >(), unsigned int
+numberOfComponents=1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportAsInt64 "/**
+Image SITKIO_EXPORT itk::simple::ImportAsInt64(int64_t *buffer, const std::vector< unsigned int > &size, const
+std::vector< double > &spacing=std::vector< double >(3, 1.0), const
+std::vector< double > &origin=std::vector< double >(3, 0.0), const
+std::vector< double > &direction=std::vector< double >(), unsigned int
+numberOfComponents=1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportAsInt8 "/**
+Image SITKIO_EXPORT itk::simple::ImportAsInt8(int8_t *buffer, const std::vector< unsigned int > &size, const
+std::vector< double > &spacing=std::vector< double >(3, 1.0), const
+std::vector< double > &origin=std::vector< double >(3, 0.0), const
+std::vector< double > &direction=std::vector< double >(), unsigned int
+numberOfComponents=1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportAsUInt16 "/**
+Image SITKIO_EXPORT itk::simple::ImportAsUInt16(uint16_t *buffer, const std::vector< unsigned int > &size, const
+std::vector< double > &spacing=std::vector< double >(3, 1.0), const
+std::vector< double > &origin=std::vector< double >(3, 0.0), const
+std::vector< double > &direction=std::vector< double >(), unsigned int
+numberOfComponents=1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportAsUInt32 "/**
+Image SITKIO_EXPORT itk::simple::ImportAsUInt32(uint32_t *buffer, const std::vector< unsigned int > &size, const
+std::vector< double > &spacing=std::vector< double >(3, 1.0), const
+std::vector< double > &origin=std::vector< double >(3, 0.0), const
+std::vector< double > &direction=std::vector< double >(), unsigned int
+numberOfComponents=1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportAsUInt64 "/**
+Image SITKIO_EXPORT itk::simple::ImportAsUInt64(uint64_t *buffer, const std::vector< unsigned int > &size, const
+std::vector< double > &spacing=std::vector< double >(3, 1.0), const
+std::vector< double > &origin=std::vector< double >(3, 0.0), const
+std::vector< double > &direction=std::vector< double >(), unsigned int
+numberOfComponents=1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ImportAsUInt8 "/**
+Image SITKIO_EXPORT itk::simple::ImportAsUInt8(uint8_t *buffer, const std::vector< unsigned int > &size, const
+std::vector< double > &spacing=std::vector< double >(3, 1.0), const
+std::vector< double > &origin=std::vector< double >(3, 0.0), const
+std::vector< double > &direction=std::vector< double >(), unsigned int
+numberOfComponents=1)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntensityWindowing "/**
+Image itk::simple::IntensityWindowing(const Image &image1, double windowMinimum=0.0, double
+windowMaximum=255, double outputMinimum=0, double outputMaximum=255)
+
+Applies a linear transformation to the intensity levels of the input Image that are inside a user-defined interval. Values below this interval
+are mapped to a constant. Values over the interval are mapped to
+another constant.
+
+
+This function directly calls the execute method of IntensityWindowingImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::IntensityWindowingImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntermodesThreshold "/**
+Image itk::simple::IntermodesThreshold(const Image &image, const Image &maskImage, uint8_t insideValue=1u,
+uint8_t outsideValue=0u, uint32_t numberOfHistogramBins=256u, bool
+maskOutput=true, uint8_t maskValue=255u)
+
+Threshold an image using the Intermodes Threshold.
+
+
+This function directly calls the execute method of IntermodesThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::IntermodesThresholdImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IntermodesThreshold "/**
+Image itk::simple::IntermodesThreshold(const Image &image, uint8_t insideValue=1u, uint8_t outsideValue=0u,
+uint32_t numberOfHistogramBins=256u, bool maskOutput=true, uint8_t
+maskValue=255u)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDeconvolution "/**
+Image itk::simple::InverseDeconvolution(const Image &image1, const Image &image2, double
+kernelZeroMagnitudeThreshold=1.0e-4, bool normalize=false,
+InverseDeconvolutionImageFilter::BoundaryConditionType boundaryConditi
+on=itk::simple::InverseDeconvolutionImageFilter::ZERO_FLUX_NEUMANN_PAD
+, InverseDeconvolutionImageFilter::OutputRegionModeType
+outputRegionMode=itk::simple::InverseDeconvolutionImageFilter::SAME)
+
+The direct linear inverse deconvolution filter.
+
+
+This function directly calls the execute method of InverseDeconvolutionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::InverseDeconvolutionImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseDisplacementField "/**
+Image itk::simple::InverseDisplacementField(const Image &image1, const std::vector< uint32_t > &size=std::vector<
+uint32_t >(3, 0), const std::vector< double >
+&outputOrigin=std::vector< double >(3, 0.0), const std::vector< double
+> &outputSpacing=std::vector< double >(3, 1.0), unsigned int
+subsamplingFactor=16u)
+
+Computes the inverse of a displacement field.
+
+
+This function directly calls the execute method of InverseDisplacementFieldImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::InverseDisplacementFieldImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InverseFFT "/**
+Image itk::simple::InverseFFT(const Image &image1)
+
+Base class for inverse Fast Fourier Transform .
+
+
+This function directly calls the execute method of InverseFFTImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::InverseFFTImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InvertDisplacementField "/**
+Image itk::simple::InvertDisplacementField(const Image &image1, uint32_t maximumNumberOfIterations=10u, double
+maxErrorToleranceThreshold=0.1, double
+meanErrorToleranceThreshold=0.001, bool enforceBoundaryCondition=true)
+
+Iteratively estimate the inverse field of a displacement field.
+
+
+This function directly calls the execute method of InvertDisplacementFieldImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::InvertDisplacementFieldImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::InvertIntensity "/**
+Image itk::simple::InvertIntensity(const Image &image1, double maximum=255)
+
+Invert the intensity of an image.
+
+
+This function directly calls the execute method of InvertIntensityImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::InvertIntensityImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoContourDistance "/**
+Image itk::simple::IsoContourDistance(const Image &image1, double levelSetValue=0, double farValue=10)
+
+Compute an approximate distance from an interpolated isocontour to the
+close grid points.
+
+
+This function directly calls the execute method of IsoContourDistanceImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::IsoContourDistanceImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoDataThreshold "/**
+Image itk::simple::IsoDataThreshold(const Image &image, const Image &maskImage, uint8_t insideValue=1u,
+uint8_t outsideValue=0u, uint32_t numberOfHistogramBins=256u, bool
+maskOutput=true, uint8_t maskValue=255u)
+
+Threshold an image using the IsoData Threshold.
+
+
+This function directly calls the execute method of IsoDataThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::IsoDataThresholdImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsoDataThreshold "/**
+Image itk::simple::IsoDataThreshold(const Image &image, uint8_t insideValue=1u, uint8_t outsideValue=0u,
+uint32_t numberOfHistogramBins=256u, bool maskOutput=true, uint8_t
+maskValue=255u)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedConnected "/**
+Image itk::simple::IsolatedConnected(const Image &image1, const std::vector< unsigned int >
+&seed1=std::vector< unsigned int >(3, 0), const std::vector< unsigned
+int > &seed2=std::vector< unsigned int >(3, 0), double lower=0, double
+upper=1, uint8_t replaceValue=1u, double isolatedValueTolerance=1.0,
+bool findUpperThreshold=true)
+
+Label pixels that are connected to one set of seeds but not another.
+
+
+This function directly calls the execute method of IsolatedConnectedImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::IsolatedConnectedImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IsolatedWatershed "/**
+Image itk::simple::IsolatedWatershed(const Image &image1, const std::vector< uint32_t >
+&seed1=std::vector< uint32_t >(3, 0), const std::vector< uint32_t >
+&seed2=std::vector< uint32_t >(3, 0), double threshold=0.0, double
+upperValueLimit=1.0, double isolatedValueTolerance=0.001, uint8_t
+replaceValue1=1u, uint8_t replaceValue2=2u)
+
+Isolate watershed basins using two seeds.
+
+
+This function directly calls the execute method of IsolatedWatershedImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::IsolatedWatershedImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::IterativeInverseDisplacementField "/**
+Image itk::simple::IterativeInverseDisplacementField(const Image &image1, uint32_t numberOfIterations=5u, double
+stopValue=0.0)
+
+Computes the inverse of a displacement field.
+
+
+This function directly calls the execute method of IterativeInverseDisplacementFieldImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::IterativeInverseDisplacementFieldImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::KittlerIllingworthThreshold "/**
+Image itk::simple::KittlerIllingworthThreshold(const Image &image, const Image &maskImage, uint8_t insideValue=1u,
+uint8_t outsideValue=0u, uint32_t numberOfHistogramBins=256u, bool
+maskOutput=true, uint8_t maskValue=255u)
+
+Threshold an image using the KittlerIllingworth Threshold.
+
+
+This function directly calls the execute method of KittlerIllingworthThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::KittlerIllingworthThresholdImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::KittlerIllingworthThreshold "/**
+Image itk::simple::KittlerIllingworthThreshold(const Image &image, uint8_t insideValue=1u, uint8_t outsideValue=0u,
+uint32_t numberOfHistogramBins=256u, bool maskOutput=true, uint8_t
+maskValue=255u)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelContour "/**
+Image itk::simple::LabelContour(const Image &image1, bool fullyConnected=false, double
+backgroundValue=0)
+
+Labels the pixels on the border of the objects in a labeled image.
+
+
+This function directly calls the execute method of LabelContourImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LabelContourImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelImageToLabelMap "/**
+Image itk::simple::LabelImageToLabelMap(const Image &image1, double backgroundValue=0)
+
+convert a labeled image to a label collection image
+
+
+This function directly calls the execute method of LabelImageToLabelMapFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LabelImageToLabelMapFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapContourOverlay "/**
+Image itk::simple::LabelMapContourOverlay(const Image &labelMapImage, const Image &featureImage, double
+opacity=0.5, const std::vector< unsigned int >
+&dilationRadius=std::vector< unsigned int >(3, 1), const std::vector<
+unsigned int > &contourThickness=std::vector< unsigned int >(3, 1),
+unsigned int sliceDimension=0u,
+LabelMapContourOverlayImageFilter::ContourTypeType
+contourType=itk::simple::LabelMapContourOverlayImageFilter::CONTOUR,
+LabelMapContourOverlayImageFilter::PriorityType priority=itk::simple::
+LabelMapContourOverlayImageFilter::HIGH_LABEL_ON_TOP, std::vector<
+uint8_t > colormap=std::vector< uint8_t >())
+
+Apply a colormap to the contours (outlines) of each object in a label
+map and superimpose it on top of the feature image.
+
+
+This function directly calls the execute method of LabelMapContourOverlayImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LabelMapContourOverlayImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapMask "/**
+Image itk::simple::LabelMapMask(const Image &labelMapImage, const Image &featureImage, uint64_t
+label=1u, double backgroundValue=0, bool negated=false, bool
+crop=false, const std::vector< unsigned int > &cropBorder=std::vector<
+unsigned int >(3, 0))
+
+Mask and image with a LabelMap .
+
+
+This function directly calls the execute method of LabelMapMaskImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LabelMapMaskImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapOverlay "/**
+Image itk::simple::LabelMapOverlay(const Image &labelMapImage, const Image &featureImage, double
+opacity=0.5, std::vector< unsigned char > colormap=std::vector<
+unsigned char >())
+
+Apply a colormap to a label map and superimpose it on an image.
+
+
+This function directly calls the execute method of LabelMapOverlayImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LabelMapOverlayImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapToBinary "/**
+Image itk::simple::LabelMapToBinary(const Image &image1, double backgroundValue=0, double
+foregroundValue=1.0)
+
+Convert a LabelMap to a binary image.
+
+
+This function directly calls the execute method of LabelMapToBinaryImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LabelMapToBinaryImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapToLabel "/**
+Image itk::simple::LabelMapToLabel(const Image &image1)
+
+Converts a LabelMap to a labeled image.
+
+
+This function directly calls the execute method of LabelMapToLabelImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LabelMapToLabelImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelMapToRGB "/**
+Image itk::simple::LabelMapToRGB(const Image &image1, std::vector< uint8_t > colormap=std::vector<
+uint8_t >())
+
+Convert a LabelMap to a colored image.
+
+
+This function directly calls the execute method of LabelMapToRGBImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LabelMapToRGBImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelOverlay "/**
+Image itk::simple::LabelOverlay(const Image &image, const Image &labelImage, double opacity=0.5,
+double backgroundValue=0.0, std::vector< uint8_t >
+colormap=std::vector< uint8_t >())
+
+Apply a colormap to a label image and put it on top of the input
+image.
+
+
+This function directly calls the execute method of LabelOverlayImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LabelOverlayImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelToRGB "/**
+Image itk::simple::LabelToRGB(const Image &image1, double backgroundValue=0.0, std::vector< uint8_t
+> colormap=std::vector< uint8_t >())
+
+Apply a colormap to a label image.
+
+
+This function directly calls the execute method of LabelToRGBImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LabelToRGBImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LabelUniqueLabelMap "/**
+Image itk::simple::LabelUniqueLabelMap(const Image &image1, bool reverseOrdering=false)
+
+Make sure that the objects are not overlapping.
+
+
+This function directly calls the execute method of LabelUniqueLabelMapFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LabelUniqueLabelMapFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandmarkBasedTransformInitializer "/**
+Transform itk::simple::LandmarkBasedTransformInitializer(const Transform &transform, const std::vector< double >
+&fixedLandmarks=std::vector< double >(), const std::vector< double >
+&movingLandmarks=std::vector< double >(), const std::vector< double >
+&landmarkWeight=std::vector< double >(), const Image
+&referenceImage=Image(), unsigned int numberOfControlPoints=4u)
+
+itk::simple::LandmarkBasedTransformInitializerFilter Procedural Interface
+
+
+This function directly calls the execute method of LandmarkBasedTransformInitializerFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LandmarkBasedTransformInitializerFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LandweberDeconvolution "/**
+Image itk::simple::LandweberDeconvolution(const Image &image1, const Image &image2, double alpha=0.1, int
+numberOfIterations=1, bool normalize=false,
+LandweberDeconvolutionImageFilter::BoundaryConditionType boundaryCondi
+tion=itk::simple::LandweberDeconvolutionImageFilter::ZERO_FLUX_NEUMANN
+_PAD, LandweberDeconvolutionImageFilter::OutputRegionModeType
+outputRegionMode=itk::simple::LandweberDeconvolutionImageFilter::SAME)
+
+Deconvolve an image using the Landweber deconvolution algorithm.
+
+
+This function directly calls the execute method of LandweberDeconvolutionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LandweberDeconvolutionImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Laplacian "/**
+Image itk::simple::Laplacian(const Image &image1, bool useImageSpacing=true)
+
+itk::simple::LaplacianImageFilter Procedural Interface
+
+
+This function directly calls the execute method of LaplacianImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LaplacianImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianRecursiveGaussian "/**
+Image itk::simple::LaplacianRecursiveGaussian(const Image &image1, double sigma=1.0, bool
+normalizeAcrossScale=false)
+
+Computes the Laplacian of Gaussian (LoG) of an image.
+
+
+This function directly calls the execute method of LaplacianRecursiveGaussianImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LaplacianRecursiveGaussianImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSegmentationLevelSet "/**
+Image itk::simple::LaplacianSegmentationLevelSet(const Image &image1, const Image &image2, double
+maximumRMSError=0.02, double propagationScaling=1.0, double
+curvatureScaling=1.0, uint32_t numberOfIterations=1000u, bool
+reverseExpansionDirection=false)
+
+Segments structures in images based on a second derivative image
+features.
+
+
+This function directly calls the execute method of LaplacianSegmentationLevelSetImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LaplacianSegmentationLevelSetImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LaplacianSharpening "/**
+Image itk::simple::LaplacianSharpening(const Image &image1, bool useImageSpacing=true)
+
+This filter sharpens an image using a Laplacian. LaplacianSharpening
+highlights regions of rapid intensity change and therefore highlights
+or enhances the edges. The result is an image that appears more in
+focus.
+
+
+This function directly calls the execute method of LaplacianSharpeningImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LaplacianSharpeningImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Less "/**
+Image itk::simple::Less(const Image &image1, const Image &image2, uint8_t backgroundValue=0u,
+uint8_t foregroundValue=1u)
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This function directly calls the execute method of LessImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LessImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Less "/**
+Image itk::simple::Less(const Image &image1, double constant, uint8_t backgroundValue=0u,
+uint8_t foregroundValue=1u)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Less "/**
+Image itk::simple::Less(double constant, const Image &image2, uint8_t backgroundValue=0u,
+uint8_t foregroundValue=1u)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessEqual "/**
+Image itk::simple::LessEqual(const Image &image1, const Image &image2, uint8_t backgroundValue=0u,
+uint8_t foregroundValue=1u)
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This function directly calls the execute method of LessEqualImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LessEqualImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessEqual "/**
+Image itk::simple::LessEqual(const Image &image1, double constant, uint8_t backgroundValue=0u,
+uint8_t foregroundValue=1u)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LessEqual "/**
+Image itk::simple::LessEqual(double constant, const Image &image2, uint8_t backgroundValue=0u,
+uint8_t foregroundValue=1u)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LiThreshold "/**
+Image itk::simple::LiThreshold(const Image &image, const Image &maskImage, uint8_t insideValue=1u,
+uint8_t outsideValue=0u, uint32_t numberOfHistogramBins=256u, bool
+maskOutput=true, uint8_t maskValue=255u)
+
+Threshold an image using the Li Threshold.
+
+
+This function directly calls the execute method of LiThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LiThresholdImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::LiThreshold "/**
+Image itk::simple::LiThreshold(const Image &image, uint8_t insideValue=1u, uint8_t outsideValue=0u,
+uint32_t numberOfHistogramBins=256u, bool maskOutput=true, uint8_t
+maskValue=255u)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Log "/**
+Image itk::simple::Log(const Image &image1)
+
+Computes the log() of each pixel.
+
+
+This function directly calls the execute method of LogImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LogImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Log10 "/**
+Image itk::simple::Log10(const Image &image1)
+
+Computes the log10 of each pixel.
+
+
+This function directly calls the execute method of Log10ImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::Log10ImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MagnitudeAndPhaseToComplex "/**
+Image itk::simple::MagnitudeAndPhaseToComplex(const Image &image1, const Image &image2)
+
+Implements pixel-wise conversion of magnitude and phase data into
+complex voxels.
+
+
+This function directly calls the execute method of MagnitudeAndPhaseToComplexImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MagnitudeAndPhaseToComplexImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MagnitudeAndPhaseToComplex "/**
+Image itk::simple::MagnitudeAndPhaseToComplex(const Image &image1, double constant)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MagnitudeAndPhaseToComplex "/**
+Image itk::simple::MagnitudeAndPhaseToComplex(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Mask "/**
+Image itk::simple::Mask(const Image &image, const Image &maskImage, double outsideValue=0)
+
+Mask an image with a mask.
+
+
+This function directly calls the execute method of MaskImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MaskImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaskedFFTNormalizedCorrelation "/**
+Image itk::simple::MaskedFFTNormalizedCorrelation(const Image &fixedImage, const Image &movingImage, const Image
+&fixedImageMask, const Image &movingImageMask, uint64_t
+requiredNumberOfOverlappingPixels=0u, float
+requiredFractionOfOverlappingPixels=0.0)
+
+Calculate masked normalized cross correlation using FFTs.
+
+
+This function directly calls the execute method of MaskedFFTNormalizedCorrelationImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MaskedFFTNormalizedCorrelationImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaskNegated "/**
+Image itk::simple::MaskNegated(const Image &image, const Image &maskImage)
+
+Mask an image with the negative of a mask.
+
+
+This function directly calls the execute method of MaskNegatedImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MaskNegatedImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Maximum "/**
+Image itk::simple::Maximum(const Image &image1, const Image &image2)
+
+Implements a pixel-wise operator Max(a,b) between two images.
+
+
+This function directly calls the execute method of MaximumImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MaximumImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Maximum "/**
+Image itk::simple::Maximum(const Image &image1, double constant)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Maximum "/**
+Image itk::simple::Maximum(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumEntropyThreshold "/**
+Image itk::simple::MaximumEntropyThreshold(const Image &image, const Image &maskImage, uint8_t insideValue=1u,
+uint8_t outsideValue=0u, uint32_t numberOfHistogramBins=256u, bool
+maskOutput=true, uint8_t maskValue=255u)
+
+Threshold an image using the MaximumEntropy Threshold.
+
+
+This function directly calls the execute method of MaximumEntropyThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MaximumEntropyThresholdImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumEntropyThreshold "/**
+Image itk::simple::MaximumEntropyThreshold(const Image &image, uint8_t insideValue=1u, uint8_t outsideValue=0u,
+uint32_t numberOfHistogramBins=256u, bool maskOutput=true, uint8_t
+maskValue=255u)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MaximumProjection "/**
+Image itk::simple::MaximumProjection(const Image &image1, unsigned int projectionDimension=0u)
+
+Maximum projection.
+
+
+This function directly calls the execute method of MaximumProjectionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MaximumProjectionImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Mean "/**
+Image itk::simple::Mean(const Image &image1, const std::vector< unsigned int >
+&radius=std::vector< unsigned int >(3, 1))
+
+Applies an averaging filter to an image.
+
+
+This function directly calls the execute method of MeanImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MeanImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MeanProjection "/**
+Image itk::simple::MeanProjection(const Image &image1, unsigned int projectionDimension=0u)
+
+Mean projection.
+
+
+This function directly calls the execute method of MeanProjectionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MeanProjectionImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Median "/**
+Image itk::simple::Median(const Image &image1, const std::vector< unsigned int >
+&radius=std::vector< unsigned int >(3, 1))
+
+Applies a median filter to an image.
+
+
+This function directly calls the execute method of MedianImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MedianImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MedianProjection "/**
+Image itk::simple::MedianProjection(const Image &image1, unsigned int projectionDimension=0u)
+
+Median projection.
+
+
+This function directly calls the execute method of MedianProjectionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MedianProjectionImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Minimum "/**
+Image itk::simple::Minimum(const Image &image1, const Image &image2)
+
+Implements a pixel-wise operator Min(a,b) between two images.
+
+
+This function directly calls the execute method of MinimumImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MinimumImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Minimum "/**
+Image itk::simple::Minimum(const Image &image1, double constant)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Minimum "/**
+Image itk::simple::Minimum(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinimumProjection "/**
+Image itk::simple::MinimumProjection(const Image &image1, unsigned int projectionDimension=0u)
+
+Minimum projection.
+
+
+This function directly calls the execute method of MinimumProjectionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MinimumProjectionImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MinMaxCurvatureFlow "/**
+Image itk::simple::MinMaxCurvatureFlow(const Image &image1, double timeStep=0.05, uint32_t
+numberOfIterations=5u, int stencilRadius=2)
+
+Denoise an image using min/max curvature flow.
+
+
+This function directly calls the execute method of MinMaxCurvatureFlowImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MinMaxCurvatureFlowImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MirrorPad "/**
+Image itk::simple::MirrorPad(const Image &image1, const std::vector< unsigned int >
+&padLowerBound=std::vector< unsigned int >(3, 0), const std::vector<
+unsigned int > &padUpperBound=std::vector< unsigned int >(3, 0))
+
+Increase the image size by padding with replicants of the input image
+value.
+
+
+This function directly calls the execute method of MirrorPadImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MirrorPadImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Modulus "/**
+Image itk::simple::Modulus(const Image &image1, const Image &image2)
+
+Computes the modulus (x % dividend) pixel-wise.
+
+
+This function directly calls the execute method of ModulusImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ModulusImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Modulus "/**
+Image itk::simple::Modulus(const Image &image1, uint32_t constant)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Modulus "/**
+Image itk::simple::Modulus(uint32_t constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MomentsThreshold "/**
+Image itk::simple::MomentsThreshold(const Image &image, const Image &maskImage, uint8_t insideValue=1u,
+uint8_t outsideValue=0u, uint32_t numberOfHistogramBins=256u, bool
+maskOutput=true, uint8_t maskValue=255u)
+
+Threshold an image using the Moments Threshold.
+
+
+This function directly calls the execute method of MomentsThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MomentsThresholdImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MomentsThreshold "/**
+Image itk::simple::MomentsThreshold(const Image &image, uint8_t insideValue=1u, uint8_t outsideValue=0u,
+uint32_t numberOfHistogramBins=256u, bool maskOutput=true, uint8_t
+maskValue=255u)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalGradient "/**
+Image itk::simple::MorphologicalGradient(const Image &, uint32_t radius=1, KernelEnum kernel=sitkBall)
+
+itk::simple::MorphologicalGradientImageFilter Functional Interface
+
+This function directly calls the execute method of MorphologicalGradientImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalGradient "/**
+Image itk::simple::MorphologicalGradient(const Image &, const std::vector< uint32_t > vectorRadius, KernelEnum
+kernel=sitkBall)
+
+itk::simple::MorphologicalGradientImageFilter Functional Interface
+
+This function directly calls the execute method of MorphologicalGradientImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershed "/**
+Image itk::simple::MorphologicalWatershed(const Image &image1, double level=0.0, bool markWatershedLine=true,
+bool fullyConnected=false)
+
+Watershed segmentation implementation with morphogical operators.
+
+
+This function directly calls the execute method of MorphologicalWatershedImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MorphologicalWatershedImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::MorphologicalWatershedFromMarkers "/**
+Image itk::simple::MorphologicalWatershedFromMarkers(const Image &image, const Image &markerImage, bool
+markWatershedLine=true, bool fullyConnected=false)
+
+Morphological watershed transform from markers.
+
+
+This function directly calls the execute method of MorphologicalWatershedFromMarkersImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MorphologicalWatershedFromMarkersImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Multiply "/**
+Image itk::simple::Multiply(const Image &image1, const Image &image2)
+
+Pixel-wise multiplication of two images.
+
+
+This function directly calls the execute method of MultiplyImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MultiplyImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Multiply "/**
+Image itk::simple::Multiply(const Image &image1, double constant)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Multiply "/**
+Image itk::simple::Multiply(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::N4BiasFieldCorrection "/**
+Image itk::simple::N4BiasFieldCorrection(const Image &image, const Image &maskImage, double
+convergenceThreshold=0.001, std::vector< uint32_t >
+maximumNumberOfIterations=std::vector< uint32_t >(4, 50), double
+biasFieldFullWidthAtHalfMaximum=0.15, double wienerFilterNoise=0.01,
+uint32_t numberOfHistogramBins=200u, const std::vector< uint32_t >
+&numberOfControlPoints=std::vector< uint32_t >(3, 4), uint32_t
+splineOrder=3u)
+
+Implementation of the N4 bias field correction algorithm.
+
+
+This function directly calls the execute method of N4BiasFieldCorrectionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::N4BiasFieldCorrectionImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NeighborhoodConnected "/**
+Image itk::simple::NeighborhoodConnected(const Image &image1, const std::vector< std::vector< unsigned int > >
+&seedList, double lower=0, double upper=1, const std::vector< unsigned
+int > &radius=std::vector< unsigned int >(3, 1), double
+replaceValue=1)
+
+itk::simple::NeighborhoodConnectedImageFilter Functional Interface
+
+This function directly calls the execute method of NeighborhoodConnectedImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Noise "/**
+Image itk::simple::Noise(const Image &image1, const std::vector< unsigned int >
+&radius=std::vector< unsigned int >(3, 1))
+
+Calculate the local noise in an image.
+
+
+This function directly calls the execute method of NoiseImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::NoiseImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Normalize "/**
+Image itk::simple::Normalize(const Image &image1)
+
+Normalize an image by setting its mean to zero and variance to one.
+
+
+This function directly calls the execute method of NormalizeImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::NormalizeImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NormalizedCorrelation "/**
+Image itk::simple::NormalizedCorrelation(const Image &image, const Image &maskImage, const Image
+&templateImage)
+
+Computes the normalized correlation of an image and a template.
+
+
+This function directly calls the execute method of NormalizedCorrelationImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::NormalizedCorrelationImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NormalizeToConstant "/**
+Image itk::simple::NormalizeToConstant(const Image &image1, double constant=1.0)
+
+Scales image pixel intensities to make the sum of all pixels equal a
+user-defined constant.
+
+
+This function directly calls the execute method of NormalizeToConstantImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::NormalizeToConstantImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Not "/**
+Image itk::simple::Not(const Image &image1)
+
+Implements the NOT logical operator pixel-wise on an image.
+
+
+This function directly calls the execute method of NotImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::NotImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NotEqual "/**
+Image itk::simple::NotEqual(const Image &image1, const Image &image2, uint8_t backgroundValue=0u,
+uint8_t foregroundValue=1u)
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This function directly calls the execute method of NotEqualImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::NotEqualImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NotEqual "/**
+Image itk::simple::NotEqual(const Image &image1, double constant, uint8_t backgroundValue=0u,
+uint8_t foregroundValue=1u)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::NotEqual "/**
+Image itk::simple::NotEqual(double constant, const Image &image2, uint8_t backgroundValue=0u,
+uint8_t foregroundValue=1u)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OpeningByReconstruction "/**
+Image itk::simple::OpeningByReconstruction(const Image &, uint32_t radius=1, KernelEnum kernel=sitkBall, bool
+fullyConnected=false, bool preserveIntensities=false)
+
+itk::simple::OpeningByReconstructionImageFilter Functional Interface
+
+This function directly calls the execute method of OpeningByReconstructionImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OpeningByReconstruction "/**
+Image itk::simple::OpeningByReconstruction(const Image &, const std::vector< uint32_t > vectorRadius, KernelEnum
+kernel=sitkBall, bool fullyConnected=false, bool
+preserveIntensities=false)
+
+itk::simple::OpeningByReconstructionImageFilter Functional Interface
+
+This function directly calls the execute method of OpeningByReconstructionImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Or "/**
+Image itk::simple::Or(const Image &image1, const Image &image2)
+
+Implements the OR bitwise operator pixel-wise between two images.
+
+
+This function directly calls the execute method of OrImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::OrImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Or "/**
+Image itk::simple::Or(const Image &image1, int constant)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Or "/**
+Image itk::simple::Or(int constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuMultipleThresholds "/**
+Image itk::simple::OtsuMultipleThresholds(const Image &image1, uint8_t numberOfThresholds=1u, uint8_t
+labelOffset=0u, uint32_t numberOfHistogramBins=128u, bool
+valleyEmphasis=false)
+
+Threshold an image using multiple Otsu Thresholds.
+
+
+This function directly calls the execute method of OtsuMultipleThresholdsImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::OtsuMultipleThresholdsImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuThreshold "/**
+Image itk::simple::OtsuThreshold(const Image &image, const Image &maskImage, uint8_t insideValue=1u,
+uint8_t outsideValue=0u, uint32_t numberOfHistogramBins=128u, bool
+maskOutput=true, uint8_t maskValue=255u)
+
+Threshold an image using the Otsu Threshold.
+
+
+This function directly calls the execute method of OtsuThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::OtsuThresholdImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::OtsuThreshold "/**
+Image itk::simple::OtsuThreshold(const Image &image, uint8_t insideValue=1u, uint8_t outsideValue=0u,
+uint32_t numberOfHistogramBins=128u, bool maskOutput=true, uint8_t
+maskValue=255u)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Paste "/**
+Image itk::simple::Paste(const Image &image1, const Image &image2, const std::vector< unsigned
+int > &sourceSize=std::vector< unsigned int >(3, 1), const
+std::vector< int > &sourceIndex=std::vector< int >(3, 0), const
+std::vector< int > &destinationIndex=std::vector< int >(3, 0))
+
+Paste an image into another image.
+
+
+This function directly calls the execute method of PasteImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::PasteImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoising "/**
+Image itk::simple::PatchBasedDenoising(const Image &image1,
+itk::simple::PatchBasedDenoisingImageFilter::NoiseModelType
+noiseModel, double kernelBandwidthSigma=400.0, uint32_t
+patchRadius=4u, uint32_t numberOfIterations=1u, uint32_t
+numberOfSamplePatches=200u, double sampleVariance=400.0, double
+noiseSigma=0.0, double noiseModelFidelityWeight=0.0)
+
+itk::simple::PatchBasedDenoisingImageFilter Procedural Interface
+
+
+This function directly calls the execute method of PatchBasedDenoisingImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::PatchBasedDenoisingImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PatchBasedDenoising "/**
+Image itk::simple::PatchBasedDenoising(const Image &image1, double kernelBandwidthSigma=400.0, uint32_t
+patchRadius=4u, uint32_t numberOfIterations=1u, uint32_t
+numberOfSamplePatches=200u, double sampleVariance=400.0)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PermuteAxes "/**
+Image itk::simple::PermuteAxes(const Image &image1, const std::vector< unsigned int >
+&order=std::vector< unsigned int >(&itk::simple::PermuteAxesImageFilte
+r::DefaultOrder[0],&itk::simple::PermuteAxesImageFilter::DefaultOrder[
+3]))
+
+Permutes the image axes according to a user specified order.
+
+
+This function directly calls the execute method of PermuteAxesImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::PermuteAxesImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::PhysicalPointSource "/**
+Image itk::simple::PhysicalPointSource(PixelIDValueEnum outputPixelType=itk::simple::sitkVectorFloat32,
+const std::vector< unsigned int > &size=std::vector< unsigned int >(3,
+64), const std::vector< double > &origin=std::vector< double >(3,
+0.0), const std::vector< double > &spacing=std::vector< double >(3,
+1.0), std::vector< double > direction=std::vector< double >())
+
+Generate an image of the physical locations of each pixel.
+
+
+This function directly calls the execute method of PhysicalPointImageSource in order to support a procedural API
+
+
+See:
+ itk::simple::PhysicalPointImageSource for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Pow "/**
+Image itk::simple::Pow(const Image &image1, const Image &image2)
+
+Computes the powers of 2 images.
+
+
+This function directly calls the execute method of PowImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::PowImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Pow "/**
+Image itk::simple::Pow(const Image &image1, double constant)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Pow "/**
+Image itk::simple::Pow(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ProjectedLandweberDeconvolution "/**
+Image itk::simple::ProjectedLandweberDeconvolution(const Image &image1, const Image &image2, double alpha=0.1, int
+numberOfIterations=1, bool normalize=false,
+ProjectedLandweberDeconvolutionImageFilter::BoundaryConditionType boun
+daryCondition=itk::simple::ProjectedLandweberDeconvolutionImageFilter:
+:ZERO_FLUX_NEUMANN_PAD,
+ProjectedLandweberDeconvolutionImageFilter::OutputRegionModeType outpu
+tRegionMode=itk::simple::ProjectedLandweberDeconvolutionImageFilter::S
+AME)
+
+Deconvolve an image using the projected Landweber deconvolution
+algorithm.
+
+
+This function directly calls the execute method of ProjectedLandweberDeconvolutionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ProjectedLandweberDeconvolutionImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Rank "/**
+Image itk::simple::Rank(const Image &image1, double rank=0.5, const std::vector< unsigned int
+> &radius=std::vector< unsigned int >(3, 1))
+
+Rank filter of a greyscale image.
+
+
+This function directly calls the execute method of RankImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::RankImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReadImage "/**
+SITKIO_EXPORT Image itk::simple::ReadImage(const std::string &filename, PixelIDValueEnum
+outputPixelType=sitkUnknown)
+
+ReadImage is a procedural interface to the ImageFileReader class which is convenient for most image reading tasks.
+
+
+For more complicated use cases such as requiring loading of all tags,
+including private ones, from a DICOM file the object oriented
+interface should be used. The reader can be explicitly set to load all
+tags (LoadPrivateTagsOn()).
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReadImage "/**
+SITKIO_EXPORT Image itk::simple::ReadImage(const std::vector< std::string > &fileNames, PixelIDValueEnum
+outputPixelType=sitkUnknown)
+
+ReadImage is a procedural interface to the ImageSeriesReader class which is convenient for most image reading tasks.
+
+
+Note that when reading a series of images that have meta-data
+associated with them (e.g. a DICOM series) the resulting image will
+have an empty meta-data dictionary. It is possible to programmatically
+add a meta-data dictionary to the compounded image by reading in one
+or more images from the series using the ImageFileReader class,
+analyzing the meta-dictionary associated with each of those images and
+creating one that is relevant for the compounded image.
+
+
+See:
+ itk::simple::ImageFileReader for reading a single file
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReadTransform "/**
+SITKCommon_EXPORT Transform itk::simple::ReadTransform(const std::string &filename)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RealAndImaginaryToComplex "/**
+Image itk::simple::RealAndImaginaryToComplex(const Image &image1, const Image &image2)
+
+ComposeImageFilter combine several scalar images into a multicomponent image.
+
+
+This function directly calls the execute method of RealAndImaginaryToComplexImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::RealAndImaginaryToComplexImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RealToHalfHermitianForwardFFT "/**
+Image itk::simple::RealToHalfHermitianForwardFFT(const Image &image1)
+
+Base class for specialized real-to-complex forward Fast Fourier Transform .
+
+
+This function directly calls the execute method of RealToHalfHermitianForwardFFTImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::RealToHalfHermitianForwardFFTImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReconstructionByDilation "/**
+Image itk::simple::ReconstructionByDilation(const Image &image1, const Image &image2, bool fullyConnected=false,
+bool useInternalCopy=true)
+
+grayscale reconstruction by dilation of an image
+
+
+This function directly calls the execute method of ReconstructionByDilationImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ReconstructionByDilationImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ReconstructionByErosion "/**
+Image itk::simple::ReconstructionByErosion(const Image &image1, const Image &image2, bool fullyConnected=false,
+bool useInternalCopy=true)
+
+grayscale reconstruction by erosion of an image
+
+
+This function directly calls the execute method of ReconstructionByErosionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ReconstructionByErosionImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RecursiveGaussian "/**
+Image itk::simple::RecursiveGaussian(const Image &image1, double sigma=1.0, bool
+normalizeAcrossScale=false, RecursiveGaussianImageFilter::OrderType
+order=itk::simple::RecursiveGaussianImageFilter::ZeroOrder, unsigned
+int direction=0u)
+
+Base class for computing IIR convolution with an approximation of a
+Gaussian kernel.
+
+
+This function directly calls the execute method of RecursiveGaussianImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::RecursiveGaussianImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMaxima "/**
+Image itk::simple::RegionalMaxima(const Image &image1, double backgroundValue=0.0, double
+foregroundValue=1.0, bool fullyConnected=false, bool
+flatIsMaxima=true)
+
+Produce a binary image where foreground is the regional maxima of the
+input image.
+
+
+This function directly calls the execute method of RegionalMaximaImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::RegionalMaximaImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionalMinima "/**
+Image itk::simple::RegionalMinima(const Image &image1, double backgroundValue=0.0, double
+foregroundValue=1.0, bool fullyConnected=false, bool
+flatIsMinima=true)
+
+Produce a binary image where foreground is the regional minima of the
+input image.
+
+
+This function directly calls the execute method of RegionalMinimaImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::RegionalMinimaImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RegionOfInterest "/**
+Image itk::simple::RegionOfInterest(const Image &image1, const std::vector< unsigned int >
+&size=std::vector< unsigned int >(3, 1), const std::vector< int >
+&index=std::vector< int >(3, 0))
+
+Extract a region of interest from the input image.
+
+
+This function directly calls the execute method of RegionOfInterestImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::RegionOfInterestImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RelabelComponent "/**
+Image itk::simple::RelabelComponent(const Image &image1, uint64_t minimumObjectSize=0u)
+
+Relabel the components in an image such that consecutive labels are
+used.
+
+
+This function directly calls the execute method of RelabelComponentImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::RelabelComponentImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RelabelLabelMap "/**
+Image itk::simple::RelabelLabelMap(const Image &image1, bool reverseOrdering=true)
+
+This filter relabels the LabelObjects; the new labels are arranged
+consecutively with consideration for the background value.
+
+
+This function directly calls the execute method of RelabelLabelMapFilter in order to support a procedural API
+
+
+See:
+ itk::simple::RelabelLabelMapFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RenyiEntropyThreshold "/**
+Image itk::simple::RenyiEntropyThreshold(const Image &image, const Image &maskImage, uint8_t insideValue=1u,
+uint8_t outsideValue=0u, uint32_t numberOfHistogramBins=256u, bool
+maskOutput=true, uint8_t maskValue=255u)
+
+Threshold an image using the RenyiEntropy Threshold.
+
+
+This function directly calls the execute method of RenyiEntropyThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::RenyiEntropyThresholdImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RenyiEntropyThreshold "/**
+Image itk::simple::RenyiEntropyThreshold(const Image &image, uint8_t insideValue=1u, uint8_t outsideValue=0u,
+uint32_t numberOfHistogramBins=256u, bool maskOutput=true, uint8_t
+maskValue=255u)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RescaleIntensity "/**
+Image itk::simple::RescaleIntensity(const Image &image1, double outputMinimum=0, double
+outputMaximum=255)
+
+Applies a linear transformation to the intensity levels of the input Image .
+
+
+This function directly calls the execute method of RescaleIntensityImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::RescaleIntensityImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::RichardsonLucyDeconvolution "/**
+Image itk::simple::RichardsonLucyDeconvolution(const Image &image1, const Image &image2, int numberOfIterations=1,
+bool normalize=false,
+RichardsonLucyDeconvolutionImageFilter::BoundaryConditionType boundary
+Condition=itk::simple::RichardsonLucyDeconvolutionImageFilter::ZERO_FL
+UX_NEUMANN_PAD,
+RichardsonLucyDeconvolutionImageFilter::OutputRegionModeType outputReg
+ionMode=itk::simple::RichardsonLucyDeconvolutionImageFilter::SAME)
+
+Deconvolve an image using the Richardson-Lucy deconvolution algorithm.
+
+
+This function directly calls the execute method of RichardsonLucyDeconvolutionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::RichardsonLucyDeconvolutionImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SaltAndPepperNoise "/**
+Image itk::simple::SaltAndPepperNoise(const Image &image1, double probability=0.01, uint32_t
+seed=(uint32_t) itk::simple::sitkWallClock)
+
+Alter an image with fixed value impulse noise, often called salt and
+pepper noise.
+
+
+This function directly calls the execute method of SaltAndPepperNoiseImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SaltAndPepperNoiseImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarChanAndVeseDenseLevelSet "/**
+Image itk::simple::ScalarChanAndVeseDenseLevelSet(const Image &image1, const Image &image2, double
+maximumRMSError=0.02, uint32_t numberOfIterations=1000u, double
+lambda1=1.0, double lambda2=1.0, double epsilon=1.0, double
+curvatureWeight=1.0, double areaWeight=0.0, double
+reinitializationSmoothingWeight=0.0, double volume=0.0, double
+volumeMatchingWeight=0.0,
+ScalarChanAndVeseDenseLevelSetImageFilter::HeavisideStepFunctionType h
+eavisideStepFunction=itk::simple::ScalarChanAndVeseDenseLevelSetImageF
+ilter::AtanRegularizedHeaviside, bool useImageSpacing=true)
+
+Dense implementation of the Chan and Vese multiphase level set image
+filter.
+
+
+This function directly calls the execute method of ScalarChanAndVeseDenseLevelSetImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarConnectedComponent "/**
+Image itk::simple::ScalarConnectedComponent(const Image &image1, double distanceThreshold=0.0, bool
+fullyConnected=false)
+
+A connected components filter that labels the objects in an arbitrary
+image. Two pixels are similar if they are within threshold of each
+other. Uses ConnectedComponentFunctorImageFilter .
+
+
+This function directly calls the execute method of ScalarConnectedComponentImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ScalarConnectedComponentImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarImageKmeans "/**
+Image itk::simple::ScalarImageKmeans(const Image &image1, std::vector< double >
+classWithInitialMean=std::vector< double >(), bool
+useNonContiguousLabels=false)
+
+Classifies the intensity values of a scalar image using the K-Means
+algorithm.
+
+
+This function directly calls the execute method of ScalarImageKmeansImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ScalarImageKmeansImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ScalarToRGBColormap "/**
+Image itk::simple::ScalarToRGBColormap(const Image &image1, ScalarToRGBColormapImageFilter::ColormapType
+colormap=itk::simple::ScalarToRGBColormapImageFilter::Grey, bool
+useInputImageExtremaForScaling=true)
+
+Implements pixel-wise intensity->rgb mapping operation on one image.
+
+
+This function directly calls the execute method of ScalarToRGBColormapImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ScalarToRGBColormapImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShanbhagThreshold "/**
+Image itk::simple::ShanbhagThreshold(const Image &image, const Image &maskImage, uint8_t insideValue=1u,
+uint8_t outsideValue=0u, uint32_t numberOfHistogramBins=256u, bool
+maskOutput=true, uint8_t maskValue=255u)
+
+Threshold an image using the Shanbhag Threshold.
+
+
+This function directly calls the execute method of ShanbhagThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ShanbhagThresholdImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShanbhagThreshold "/**
+Image itk::simple::ShanbhagThreshold(const Image &image, uint8_t insideValue=1u, uint8_t outsideValue=0u,
+uint32_t numberOfHistogramBins=256u, bool maskOutput=true, uint8_t
+maskValue=255u)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShapeDetectionLevelSet "/**
+Image itk::simple::ShapeDetectionLevelSet(const Image &image1, const Image &image2, double
+maximumRMSError=0.02, double propagationScaling=1.0, double
+curvatureScaling=1.0, uint32_t numberOfIterations=1000u, bool
+reverseExpansionDirection=false)
+
+Segments structures in images based on a user supplied edge potential
+map.
+
+
+This function directly calls the execute method of ShapeDetectionLevelSetImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ShapeDetectionLevelSetImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShiftScale "/**
+Image itk::simple::ShiftScale(const Image &image1, double shift=0, double scale=1.0)
+
+Shift and scale the pixels in an image.
+
+
+This function directly calls the execute method of ShiftScaleImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ShiftScaleImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ShotNoise "/**
+Image itk::simple::ShotNoise(const Image &image1, double scale=1.0, uint32_t seed=(uint32_t)
+itk::simple::sitkWallClock)
+
+Alter an image with shot noise.
+
+
+This function directly calls the execute method of ShotNoiseImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ShotNoiseImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Show "/**
+void SITKIO_EXPORT itk::simple::Show(const Image &image, const std::string &title=\"\", const bool
+debugOn=false)
+
+Display an image using Fiji, ImageJ or another application.
+
+This function requires that Fiji ( https://fiji.sc ) or ImageJ ( http://rsb.info.nih.gov/ij/) be properly installed for Mac and Windows, and in the user's path
+for Linux. ImageJ must have a plugin for reading Nifti formatted files
+( http://www.loci.wisc.edu/bio-formats/imagej).
+
+Nifti is the default file format used to export images. A different
+format can be chosen by setting the SITK_SHOW_EXTENSION environment
+variable. For example, set SITK_SHOW_EXTENSION to \".png\" to use PNG
+format.
+
+The user can specify an application other than ImageJ to view images
+via the SITK_SHOW_COMMAND environment variable.
+
+The user can also select applications specifically for color images or
+3D images using the SITK_SHOW_COLOR_COMMAND and SITK_SHOW_3D_COMMAND
+environment variables.
+
+SITK_SHOW_COMMAND, SITK_SHOW_COLOR_COMMAND and SITK_SHOW_3D_COMMAND
+allow the following tokens in their strings.\\\\li \\\\c \"%a\"  for the ImageJ application \\\\li \\\\c \"%f\"
+for SimpleITK's temporary image file
+
+For example, the default SITK_SHOW_COMMAND string on Linux systems is:
+
+
+After token substitution it may become:
+
+
+For another example, the default SITK_SHOW_COLOR_COMMAND string on Mac
+OS X is:
+
+
+After token substitution the string may become:
+
+
+The string after \"-eval\" is an ImageJ macro the opens the file and runs ImageJ's Make
+Composite command to display the image in color.
+
+If the \"%f\" token is not found in the command string, the temporary file name is
+automatically appended to the command argument list.
+
+When invoked, Show searches for Fiji first, and then ImageJ. Fiji is
+the most update-to-date version of ImageJ and includes a lot of
+plugins which facilitate scientific image analysis. By default, for a
+64-bit build of SimpleITK on Macs, sitkShow searches for ImageJ64.app.
+For a 32-bit Mac build, sitkShow searches for ImageJ.app. If the user
+prefers a different version of ImageJ (or a different image viewer
+altogether), it can be specified using the SITK_SHOW_COMMAND
+environment variable.
+
+The boolean parameter debugOn prints the search path Show uses to find
+ImageJ, the full path to the ImageJ it found, and the full command
+line used to invoke ImageJ.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Shrink "/**
+Image itk::simple::Shrink(const Image &image1, const std::vector< unsigned int >
+&shrinkFactors=std::vector< unsigned int >(3, 1))
+
+Reduce the size of an image by an integer factor in each dimension.
+
+
+This function directly calls the execute method of ShrinkImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ShrinkImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Sigmoid "/**
+Image itk::simple::Sigmoid(const Image &image1, double alpha=1, double beta=0, double
+outputMaximum=255, double outputMinimum=0)
+
+Computes the sigmoid function pixel-wise.
+
+
+This function directly calls the execute method of SigmoidImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SigmoidImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedDanielssonDistanceMap "/**
+Image itk::simple::SignedDanielssonDistanceMap(const Image &image1, bool insideIsPositive=false, bool
+squaredDistance=false, bool useImageSpacing=false)
+
+itk::simple::SignedDanielssonDistanceMapImageFilter Procedural Interface
+
+
+This function directly calls the execute method of SignedDanielssonDistanceMapImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SignedDanielssonDistanceMapImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SignedMaurerDistanceMap "/**
+Image itk::simple::SignedMaurerDistanceMap(const Image &image1, bool insideIsPositive=false, bool
+squaredDistance=true, bool useImageSpacing=false)
+
+This filter calculates the Euclidean distance transform of a binary
+image in linear time for arbitrary dimensions.
+
+
+This function directly calls the execute method of SignedMaurerDistanceMapImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SignedMaurerDistanceMapImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SimpleContourExtractor "/**
+Image itk::simple::SimpleContourExtractor(const Image &image1, double inputForegroundValue=1.0, double
+inputBackgroundValue=0.0, const std::vector< unsigned int >
+&radius=std::vector< unsigned int >(3, 1), double
+outputForegroundValue=1.0, double outputBackgroundValue=0.0)
+
+Computes an image of contours which will be the contour of the first
+image.
+
+
+This function directly calls the execute method of SimpleContourExtractorImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SimpleContourExtractorImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Sin "/**
+Image itk::simple::Sin(const Image &image1)
+
+Computes the sine of each pixel.
+
+
+This function directly calls the execute method of SinImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SinImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::sitkITKDirectionToSTL "/**
+std::vector<double> SITKCommon_HIDDEN itk::simple::sitkITKDirectionToSTL(const TDirectionType &d)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::sitkITKImageRegionToSTL "/**
+std::vector<unsigned int> SITKCommon_HIDDEN itk::simple::sitkITKImageRegionToSTL(const ImageRegion< VImageDimension > &in)
+
+Convert an ITK ImageRegion to and std::vector with the first part being the start index followed
+by the size.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::sitkITKVectorToSTL "/**
+std::vector<TType> SITKCommon_HIDDEN itk::simple::sitkITKVectorToSTL(const TITKVector &in)
+
+Convert an ITK fixed width vector to a std::vector.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::sitkITKVectorToSTL "/**
+std::vector<TType> SITKCommon_HIDDEN itk::simple::sitkITKVectorToSTL(const std::vector< TITKVector > &in)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::sitkSTLToITKDirection "/**
+TDirectionType SITKCommon_HIDDEN itk::simple::sitkSTLToITKDirection(const std::vector< double > &direction)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::sitkSTLVectorToITK "/**
+TITKVector SITKCommon_HIDDEN itk::simple::sitkSTLVectorToITK(const std::vector< TType > &in)
+
+Copy the elements of an std::vector into an ITK fixed width vector.
+
+
+If there are more elements in paramter \"in\" than the templated ITK
+vector type, they are truncated. If less, then an exception is
+generated.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::sitkSTLVectorToITKPointVector "/**
+TITKPointVector SITKCommon_HIDDEN itk::simple::sitkSTLVectorToITKPointVector(const std::vector< TType > &in)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Slice "/**
+Image itk::simple::Slice(const Image &image1, const std::vector< int32_t > &start=std::vector<
+int32_t >(3, 0), const std::vector< int32_t > &stop=std::vector<
+int32_t >(3, std::numeric_limits< int32_t >::max()), const
+std::vector< int > &step=std::vector< int >(3, 1))
+
+itk::simple::SliceImageFilter Procedural Interface
+
+
+This function directly calls the execute method of SliceImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SliceImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SmoothingRecursiveGaussian "/**
+Image itk::simple::SmoothingRecursiveGaussian(const Image &image1, double sigma=1.0, bool
+normalizeAcrossScale=false)
+
+Computes the smoothing of an image by convolution with the Gaussian
+kernels implemented as IIR filters.
+
+
+This function directly calls the execute method of SmoothingRecursiveGaussianImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SmoothingRecursiveGaussianImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SobelEdgeDetection "/**
+Image itk::simple::SobelEdgeDetection(const Image &image1)
+
+A 2D or 3D edge detection using the Sobel operator.
+
+
+This function directly calls the execute method of SobelEdgeDetectionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SobelEdgeDetectionImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SpeckleNoise "/**
+Image itk::simple::SpeckleNoise(const Image &image1, double standardDeviation=1.0, uint32_t
+seed=(uint32_t) itk::simple::sitkWallClock)
+
+Alter an image with speckle (multiplicative) noise.
+
+
+This function directly calls the execute method of SpeckleNoiseImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SpeckleNoiseImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Sqrt "/**
+Image itk::simple::Sqrt(const Image &image1)
+
+Computes the square root of each pixel.
+
+
+This function directly calls the execute method of SqrtImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SqrtImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Square "/**
+Image itk::simple::Square(const Image &image1)
+
+Computes the square of the intensity values pixel-wise.
+
+
+This function directly calls the execute method of SquareImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SquareImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SquaredDifference "/**
+Image itk::simple::SquaredDifference(const Image &image1, const Image &image2)
+
+Implements pixel-wise the computation of squared difference.
+
+
+This function directly calls the execute method of SquaredDifferenceImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SquaredDifferenceImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SquaredDifference "/**
+Image itk::simple::SquaredDifference(const Image &image1, double constant)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SquaredDifference "/**
+Image itk::simple::SquaredDifference(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::StandardDeviationProjection "/**
+Image itk::simple::StandardDeviationProjection(const Image &image1, unsigned int projectionDimension=0u)
+
+Mean projection.
+
+
+This function directly calls the execute method of StandardDeviationProjectionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::StandardDeviationProjectionImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Subtract "/**
+Image itk::simple::Subtract(const Image &image1, const Image &image2)
+
+Pixel-wise subtraction of two images.
+
+
+This function directly calls the execute method of SubtractImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SubtractImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Subtract "/**
+Image itk::simple::Subtract(const Image &image1, double constant)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Subtract "/**
+Image itk::simple::Subtract(double constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::SumProjection "/**
+Image itk::simple::SumProjection(const Image &image1, unsigned int projectionDimension=0u)
+
+Sum projection.
+
+
+This function directly calls the execute method of SumProjectionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SumProjectionImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Tan "/**
+Image itk::simple::Tan(const Image &image1)
+
+Computes the tangent of each input pixel.
+
+
+This function directly calls the execute method of TanImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::TanImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TernaryAdd "/**
+Image itk::simple::TernaryAdd(const Image &image1, const Image &image2, const Image &image3)
+
+Pixel-wise addition of three images.
+
+
+This function directly calls the execute method of TernaryAddImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::TernaryAddImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TernaryMagnitude "/**
+Image itk::simple::TernaryMagnitude(const Image &image1, const Image &image2, const Image &image3)
+
+Compute the pixel-wise magnitude of three images.
+
+
+This function directly calls the execute method of TernaryMagnitudeImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::TernaryMagnitudeImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TernaryMagnitudeSquared "/**
+Image itk::simple::TernaryMagnitudeSquared(const Image &image1, const Image &image2, const Image &image3)
+
+Compute the pixel-wise squared magnitude of three images.
+
+
+This function directly calls the execute method of TernaryMagnitudeSquaredImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::TernaryMagnitudeSquaredImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Threshold "/**
+Image itk::simple::Threshold(const Image &image1, double lower=0.0, double upper=1.0, double
+outsideValue=0.0)
+
+Set image values to a user-specified value if they are below, above,
+or between simple threshold values.
+
+
+This function directly calls the execute method of ThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ThresholdImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdMaximumConnectedComponents "/**
+Image itk::simple::ThresholdMaximumConnectedComponents(const Image &image1, uint32_t minimumObjectSizeInPixels=0u, double
+upperBoundary=std::numeric_limits< double >::max(), uint8_t
+insideValue=1u, uint8_t outsideValue=0u)
+
+Finds the threshold value of an image based on maximizing the number
+of objects in the image that are larger than a given minimal size.
+
+
+This function directly calls the execute method of ThresholdMaximumConnectedComponentsImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ThresholdMaximumConnectedComponentsImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ThresholdSegmentationLevelSet "/**
+Image itk::simple::ThresholdSegmentationLevelSet(const Image &image1, const Image &image2, double lowerThreshold=0.0,
+double upperThreshold=255.0, double maximumRMSError=0.02, double
+propagationScaling=1.0, double curvatureScaling=1.0, uint32_t
+numberOfIterations=1000u, bool reverseExpansionDirection=false)
+
+Segments structures in images based on intensity values.
+
+
+This function directly calls the execute method of ThresholdSegmentationLevelSetImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ThresholdSegmentationLevelSetImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TikhonovDeconvolution "/**
+Image itk::simple::TikhonovDeconvolution(const Image &image1, const Image &image2, double
+regularizationConstant=0.0, bool normalize=false,
+TikhonovDeconvolutionImageFilter::BoundaryConditionType boundaryCondit
+ion=itk::simple::TikhonovDeconvolutionImageFilter::ZERO_FLUX_NEUMANN_P
+AD, TikhonovDeconvolutionImageFilter::OutputRegionModeType
+outputRegionMode=itk::simple::TikhonovDeconvolutionImageFilter::SAME)
+
+An inverse deconvolution filter regularized in the Tikhonov sense.
+
+
+This function directly calls the execute method of TikhonovDeconvolutionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::TikhonovDeconvolutionImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TransformToDisplacementField "/**
+Image itk::simple::TransformToDisplacementField(const Transform &transform, PixelIDValueEnum
+outputPixelType=itk::simple::sitkVectorFloat64, const std::vector<
+unsigned int > &size=std::vector< unsigned int >(3, 64), const
+std::vector< double > &outputOrigin=std::vector< double >(3, 0.0),
+const std::vector< double > &outputSpacing=std::vector< double >(3,
+1.0), std::vector< double > outputDirection=std::vector< double >())
+
+Generate a displacement field from a coordinate transform.
+
+
+This function directly calls the execute method of TransformToDisplacementFieldFilter in order to support a procedural API
+
+
+See:
+ itk::simple::TransformToDisplacementFieldFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TriangleThreshold "/**
+Image itk::simple::TriangleThreshold(const Image &image, const Image &maskImage, uint8_t insideValue=1u,
+uint8_t outsideValue=0u, uint32_t numberOfHistogramBins=256u, bool
+maskOutput=true, uint8_t maskValue=255u)
+
+Threshold an image using the Triangle Threshold.
+
+
+This function directly calls the execute method of TriangleThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::TriangleThresholdImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::TriangleThreshold "/**
+Image itk::simple::TriangleThreshold(const Image &image, uint8_t insideValue=1u, uint8_t outsideValue=0u,
+uint32_t numberOfHistogramBins=256u, bool maskOutput=true, uint8_t
+maskValue=255u)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::UnaryMinus "/**
+Image itk::simple::UnaryMinus(const Image &image1)
+
+Computes the negative of each pixel.
+
+
+This function directly calls the execute method of UnaryMinusImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::UnaryMinusImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Unused "/**
+void SITKCommon_HIDDEN itk::simple::Unused(const T &)
+
+A function which does nothing.
+
+
+This function is to be used to mark parameters as unused to supress
+compiler warning.
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ValuedRegionalMaxima "/**
+Image itk::simple::ValuedRegionalMaxima(const Image &image1, bool fullyConnected=false)
+
+Transforms the image so that any pixel that is not a regional maxima
+is set to the minimum value for the pixel type. Pixels that are
+regional maxima retain their value.
+
+
+This function directly calls the execute method of ValuedRegionalMaximaImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ValuedRegionalMaximaImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ValuedRegionalMinima "/**
+Image itk::simple::ValuedRegionalMinima(const Image &image1, bool fullyConnected=false)
+
+Transforms the image so that any pixel that is not a regional minima
+is set to the maximum value for the pixel type. Pixels that are
+regional minima retain their value.
+
+
+This function directly calls the execute method of ValuedRegionalMinimaImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ValuedRegionalMinimaImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConfidenceConnected "/**
+Image itk::simple::VectorConfidenceConnected(const Image &image1, const std::vector< std::vector< unsigned int > >
+&seedList, unsigned int numberOfIterations=4u, double multiplier=4.5,
+unsigned int initialNeighborhoodRadius=1u, uint8_t replaceValue=1u)
+
+itk::simple::VectorConfidenceConnectedImageFilter Functional Interface
+
+This function directly calls the execute method of VectorConfidenceConnectedImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorConnectedComponent "/**
+Image itk::simple::VectorConnectedComponent(const Image &image1, double distanceThreshold=1.0, bool
+fullyConnected=false)
+
+A connected components filter that labels the objects in a vector
+image. Two vectors are pointing similar directions if one minus their
+dot product is less than a threshold. Vectors that are 180 degrees out
+of phase are similar. Assumes that vectors are normalized.
+
+
+This function directly calls the execute method of VectorConnectedComponentImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::VectorConnectedComponentImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorIndexSelectionCast "/**
+Image itk::simple::VectorIndexSelectionCast(const Image &image1, unsigned int index=0u, PixelIDValueEnum
+outputPixelType=itk::simple::sitkUnknown)
+
+Extracts the selected index of the vector that is the input pixel
+type.
+
+
+This function directly calls the execute method of VectorIndexSelectionCastImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::VectorIndexSelectionCastImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VectorMagnitude "/**
+Image itk::simple::VectorMagnitude(const Image &image1)
+
+Take an image of vectors as input and produce an image with the
+magnitude of those vectors.
+
+
+This function directly calls the execute method of VectorMagnitudeImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::VectorMagnitudeImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinary "/**
+Image itk::simple::VotingBinary(const Image &image1, const std::vector< unsigned int >
+&radius=std::vector< unsigned int >(3, 1), unsigned int
+birthThreshold=1u, unsigned int survivalThreshold=1u, double
+foregroundValue=1.0, double backgroundValue=0.0)
+
+Applies a voting operation in a neighborhood of each pixel.
+
+
+This function directly calls the execute method of VotingBinaryImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::VotingBinaryImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryHoleFilling "/**
+Image itk::simple::VotingBinaryHoleFilling(const Image &image1, const std::vector< unsigned int >
+&radius=std::vector< unsigned int >(3, 1), unsigned int
+majorityThreshold=1u, double foregroundValue=1.0, double
+backgroundValue=0.0)
+
+Fills in holes and cavities by applying a voting operation on each
+pixel.
+
+
+This function directly calls the execute method of VotingBinaryHoleFillingImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::VotingBinaryHoleFillingImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::VotingBinaryIterativeHoleFilling "/**
+Image itk::simple::VotingBinaryIterativeHoleFilling(const Image &image1, const std::vector< unsigned int >
+&radius=std::vector< unsigned int >(3, 1), unsigned int
+maximumNumberOfIterations=10u, unsigned int majorityThreshold=1u,
+double foregroundValue=1.0, double backgroundValue=0.0)
+
+Fills in holes and cavities by iteratively applying a voting
+operation.
+
+
+This function directly calls the execute method of VotingBinaryIterativeHoleFillingImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::VotingBinaryIterativeHoleFillingImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Warp "/**
+Image itk::simple::Warp(const Image &image1, const Image &image2, InterpolatorEnum
+interpolator=itk::simple::sitkLinear, const std::vector< uint32_t >
+&outputSize=std::vector< uint32_t >(3, 0), const std::vector< double >
+&outputOrigin=std::vector< double >(3, 0.0), const std::vector< double
+> &outputSpacing=std::vector< double >(3, 1.0), std::vector< double >
+outputDirection=std::vector< double >(), double edgePaddingValue=0.0)
+
+Warps an image using an input displacement field.
+
+
+This function directly calls the execute method of WarpImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::WarpImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WhiteTopHat "/**
+Image itk::simple::WhiteTopHat(const Image &, uint32_t radius=1, KernelEnum kernel=sitkBall, bool
+safeBorder=true)
+
+itk::simple::WhiteTopHatImageFilter Functional Interface
+
+This function directly calls the execute method of WhiteTopHatImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WhiteTopHat "/**
+Image itk::simple::WhiteTopHat(const Image &, const std::vector< uint32_t > vectorRadius, KernelEnum
+kernel=sitkBall, bool safeBorder=true)
+
+itk::simple::WhiteTopHatImageFilter Functional Interface
+
+This function directly calls the execute method of WhiteTopHatImageFilter in order to support a fully functional API
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WienerDeconvolution "/**
+Image itk::simple::WienerDeconvolution(const Image &image1, const Image &image2, double noiseVariance=0.0,
+bool normalize=false,
+WienerDeconvolutionImageFilter::BoundaryConditionType boundaryConditio
+n=itk::simple::WienerDeconvolutionImageFilter::ZERO_FLUX_NEUMANN_PAD,
+WienerDeconvolutionImageFilter::OutputRegionModeType
+outputRegionMode=itk::simple::WienerDeconvolutionImageFilter::SAME)
+
+The Wiener deconvolution image filter is designed to restore an image
+convolved with a blurring kernel while keeping noise enhancement to a
+minimum.
+
+
+This function directly calls the execute method of WienerDeconvolutionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::WienerDeconvolutionImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WrapPad "/**
+Image itk::simple::WrapPad(const Image &image1, const std::vector< unsigned int >
+&padLowerBound=std::vector< unsigned int >(3, 0), const std::vector<
+unsigned int > &padUpperBound=std::vector< unsigned int >(3, 0))
+
+Increase the image size by padding with replicants of the input image
+value.
+
+
+This function directly calls the execute method of WrapPadImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::WrapPadImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WriteImage "/**
+SITKIO_EXPORT void itk::simple::WriteImage(const Image &image, const std::vector< std::string > &fileNames, bool
+inUseCompression=false)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WriteImage "/**
+SITKIO_EXPORT void itk::simple::WriteImage(const Image &image, const std::string &fileName, bool
+useCompression=false)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::WriteTransform "/**
+SITKCommon_EXPORT void itk::simple::WriteTransform(const Transform &transform, const std::string &filename)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Xor "/**
+Image itk::simple::Xor(const Image &image1, const Image &image2)
+
+Computes the XOR bitwise operator pixel-wise between two images.
+
+
+This function directly calls the execute method of XorImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::XorImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Xor "/**
+Image itk::simple::Xor(const Image &image1, int constant)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::Xor "/**
+Image itk::simple::Xor(int constant, const Image &image2)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::YenThreshold "/**
+Image itk::simple::YenThreshold(const Image &image, const Image &maskImage, uint8_t insideValue=1u,
+uint8_t outsideValue=0u, uint32_t numberOfHistogramBins=256u, bool
+maskOutput=true, uint8_t maskValue=255u)
+
+Threshold an image using the Yen Threshold.
+
+
+This function directly calls the execute method of YenThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::YenThresholdImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::YenThreshold "/**
+Image itk::simple::YenThreshold(const Image &image, uint8_t insideValue=1u, uint8_t outsideValue=0u,
+uint32_t numberOfHistogramBins=256u, bool maskOutput=true, uint8_t
+maskValue=255u)
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroCrossing "/**
+Image itk::simple::ZeroCrossing(const Image &image1, uint8_t foregroundValue=1u, uint8_t
+backgroundValue=0u)
+
+This filter finds the closest pixel to the zero-crossings (sign
+changes) in a signed itk::Image .
+
+
+This function directly calls the execute method of ZeroCrossingImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ZeroCrossingImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroCrossingBasedEdgeDetection "/**
+Image itk::simple::ZeroCrossingBasedEdgeDetection(const Image &image1, double variance=1, uint8_t foregroundValue=1u,
+uint8_t backgroundValue=0u, double maximumError=0.1)
+
+This filter implements a zero-crossing based edge detecor.
+
+
+This function directly calls the execute method of ZeroCrossingBasedEdgeDetectionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+%javamethodmodifiers  itk::simple::ZeroFluxNeumannPad "/**
+Image itk::simple::ZeroFluxNeumannPad(const Image &image1, const std::vector< unsigned int >
+&padLowerBound=std::vector< unsigned int >(3, 0), const std::vector<
+unsigned int > &padUpperBound=std::vector< unsigned int >(3, 0))
+
+Increase the image size by padding according to the zero-flux Neumann
+boundary condition.
+
+
+This function directly calls the execute method of ZeroFluxNeumannPadImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ZeroFluxNeumannPadImageFilter for the object oriented interface
+
+
+*/
+public ";
+
+
+%typemap(javaimports) itk::simple::BasicPixelID "/**
+
+This type is used as an identity for pixel of itk::Image type
+
+This is an empty type which is used for compile-time meta-programming.
+It does not contain any information, an image type can be converted to
+one of the PixelID types, and an PixelID can be converted to a value.
+However, a run-time value can not be converted to this compile time
+type.
+
+
+See:
+ PixelIDToImageType
+
+ ImageTypeToPixelID
+
+ ImageTypeToPixelIDValue
+
+ PixelIDToPixelIDValue
+
+
+C++ includes: sitkPixelIDTypes.h
+*/"
+
+
+%typemap(javaimports) itk::simple::Conditional "/**
+C++ includes: sitkConditional.h
+*/"
+
+
+%typemap(javaimports) itk::simple::ConditionalValue "/**
+C++ includes: sitkConditional.h
+*/"
+
+
+%typemap(javaimports) itk::simple::DisableIf "/**
+C++ includes: sitkEnableIf.h
+*/"
+
+
+%typemap(javaimports) itk::simple::EnableIf "/**
+C++ includes: sitkEnableIf.h
+*/"
+
+
+%typemap(javaimports) itk::simple::ImageTypeToPixelID "/**
+
+A meta-programming tool to query the PixelID property of an \"itk
+image type\" at compile type
+
+This structure contains one property,
+ImageTypeToPixelID<T>::PixelIDType is the \"itk image type\" of the
+pixel ID.
+
+
+See:
+ BasicPixelID
+
+ VectorPixelID
+
+ LabelPixelID
+
+ ImageTypeToPixelIDValue
+
+
+C++ includes: sitkPixelIDTypes.h
+*/"
+
+
+%typemap(javaimports) itk::simple::ImageTypeToPixelIDValue "/**
+C++ includes: sitkPixelIDValues.h
+*/"
+
+
+%typemap(javaimports) itk::simple::ImageTypeToPixelID< itk::Image< TPixelType, VImageDimension > > "/**
+C++ includes: sitkPixelIDTypes.h
+*/"
+
+
+%typemap(javaimports) itk::simple::ImageTypeToPixelID< itk::LabelMap< itk::LabelObject< TLabelType, VImageDimension > > > "/**
+C++ includes: sitkPixelIDTypes.h
+*/"
+
+
+%typemap(javaimports) itk::simple::ImageTypeToPixelID< itk::VectorImage< TPixelType, VImageDimension > > "/**
+C++ includes: sitkPixelIDTypes.h
+*/"
+
+
+%typemap(javaimports) itk::simple::IsBasic "/**
+C++ includes: sitkPixelIDTokens.h
+*/"
+
+
+%typemap(javaimports) itk::simple::IsBasic< BasicPixelID< TPixelType > > "/**
+C++ includes: sitkPixelIDTokens.h
+*/"
+
+
+%typemap(javaimports) itk::simple::IsBasic< itk::Image< TPixelType, VImageDimension > > "/**
+C++ includes: sitkPixelIDTokens.h
+*/"
+
+
+%typemap(javaimports) itk::simple::IsInstantiated "/**
+C++ includes: sitkPixelIDTokens.h
+*/"
+
+
+%typemap(javaimports) itk::simple::IsInstantiated< itk::Image< TPixelType, VImageDimension >, 0 > "/**
+C++ includes: sitkPixelIDTokens.h
+*/"
+
+
+%typemap(javaimports) itk::simple::IsInstantiated< itk::LabelMap< itk::LabelObject< TLabelType, VImageDimension > >, 0 > "/**
+C++ includes: sitkPixelIDTokens.h
+*/"
+
+
+%typemap(javaimports) itk::simple::IsInstantiated< itk::VectorImage< TPixelType, VImageDimension >, 0 > "/**
+C++ includes: sitkPixelIDTokens.h
+*/"
+
+
+%typemap(javaimports) itk::simple::IsLabel "/**
+C++ includes: sitkPixelIDTokens.h
+*/"
+
+
+%typemap(javaimports) itk::simple::IsLabel< LabelPixelID< TPixelType > > "/**
+C++ includes: sitkPixelIDTokens.h
+*/"
+
+
+%typemap(javaimports) itk::simple::IsLabel< itk::LabelMap< itk::LabelObject< TLabelType, VImageDimension > > > "/**
+C++ includes: sitkPixelIDTokens.h
+*/"
+
+
+%typemap(javaimports) itk::simple::IsVector "/**
+C++ includes: sitkPixelIDTokens.h
+*/"
+
+
+%typemap(javaimports) itk::simple::IsVector< VectorPixelID< TPixelType > > "/**
+C++ includes: sitkPixelIDTokens.h
+*/"
+
+
+%typemap(javaimports) itk::simple::IsVector< itk::VectorImage< TPixelType, VImageDimension > > "/**
+C++ includes: sitkPixelIDTokens.h
+*/"
+
+
+%typemap(javaimports) itk::simple::LabelPixelID "/**
+
+This type is used as an identity for pixel of itk::LabelMap type
+
+This is an empty type which is used for compile-time meta-programming.
+It does not contain any information, an image type can be converted to
+one of the PixelID types, and an PixelID can be converted to a value.
+However, a run-time value can not be converted to this compile time
+type.
+
+
+See:
+ PixelIDToImageType
+
+ ImageTypeToPixelID
+
+ ImageTypeToPixelIDValue
+
+ PixelIDToPixelIDValue
+
+
+C++ includes: sitkPixelIDTypes.h
+*/"
+
+
+%typemap(javaimports) itk::simple::PixelIDToImageType "/**
+
+A meta-programming tool to query the \"itk image type\" if a PixelID
+at compile type
+
+This structure contains one property, PixelIDToImageType<T>::ImageType
+is the \"itk image type\" of the pixel ID.
+
+
+See:
+ BasicPixelID
+
+ VectorPixelID
+
+ LabelPixelID
+
+ ImageTypeToPixelIDValue
+
+
+C++ includes: sitkPixelIDTypes.h
+*/"
+
+
+%typemap(javaimports) itk::simple::PixelIDToImageType< BasicPixelID< TPixelType >, VImageDimension > "/**
+C++ includes: sitkPixelIDTypes.h
+*/"
+
+
+%typemap(javaimports) itk::simple::PixelIDToImageType< LabelPixelID< TLabelType >, VImageDimension > "/**
+C++ includes: sitkPixelIDTypes.h
+*/"
+
+
+%typemap(javaimports) itk::simple::PixelIDToImageType< VectorPixelID< TVectorPixelType >, VImageDimension > "/**
+C++ includes: sitkPixelIDTypes.h
+*/"
+
+
+%typemap(javaimports) itk::simple::PixelIDToPixelIDValue "/**
+C++ includes: sitkPixelIDValues.h
+*/"
+
+
+%typemap(javaimports) itk::simple::StaticAssertFailure "/**
+C++ includes: sitkMacro.h
+*/"
+
+
+%typemap(javaimports) itk::simple::StaticAssertFailure< true > "/**
+C++ includes: sitkMacro.h
+*/"
+
+
+%typemap(javaimports) itk::simple::VectorPixelID "/**
+
+This type is used as an identity for pixel of itk::VectorImage type
+
+This is an empty type which is used for compile-time meta-programming.
+It does not contain any information, an image type can be converted to
+one of the PixelID types, and an PixelID can be converted to a value.
+However, a run-time value can not be converted to this compile time
+type.
+
+
+See:
+ PixelIDToImageType
+
+ ImageTypeToPixelID
+
+ ImageTypeToPixelIDValue
+
+ PixelIDToPixelIDValue
+
+
+C++ includes: sitkPixelIDTypes.h
+*/"
+
+
+%typemap(javaimports) itk::simple::DualExecuteInternalAddressor "/**
+C++ includes: sitkDetail.h
+*/"
+
+
+%typemap(javaimports) itk::simple::DualExecuteInternalVectorAddressor "/**
+
+An addressor of ExecuteInternalCast to be utilized with registering
+member functions with the factory.
+
+C++ includes: sitkDetail.h
+*/"
+
+
+%typemap(javaimports) itk::simple::ExecuteInternalLabelImageAddressor "/**
+
+An addressor of ExecuteInternal to be utilized with registering member
+functions with the factory.
+
+C++ includes: sitkDetail.h
+*/"
+
+
+%typemap(javaimports) itk::simple::ExecuteInternalVectorImageAddressor "/**
+
+An addressor of ExecuteInternalCast to be utilized with registering
+member functions with the factory.
+
+C++ includes: sitkDetail.h
+*/"
+
+
+%typemap(javaimports) itk::simple::MemberFunctionAddressor "/**
+C++ includes: sitkDetail.h
+*/"
diff --git a/Wrapping/Java/SimpleITK.i b/Wrapping/Java/SimpleITK.i
new file mode 100644
index 0000000..74635c2
--- /dev/null
+++ b/Wrapping/Java/SimpleITK.i
@@ -0,0 +1 @@
+%include SimpleITK_Common.i
diff --git a/Wrapping/Java/dist/CMakeLists.txt b/Wrapping/Java/dist/CMakeLists.txt
new file mode 100644
index 0000000..41037fd
--- /dev/null
+++ b/Wrapping/Java/dist/CMakeLists.txt
@@ -0,0 +1,75 @@
+
+#
+# JAVA Packaging
+#
+set(_files "")
+list( APPEND _files
+  ${SimpleITK_DOC_FILES}
+  ${SimpleITK_Java_BINARY_DIR}/${JAR_FILE}
+  ${SimpleITK_Java_BINARY_DIR}/${JAVA_SOURCE_FILE}
+  ${SimpleITK_Java_BINARY_DIR}/${JAVADOC_FILE}
+  )
+
+if(NOT DEFINED SimpleITK_JAVA_ARCH)
+  if(MSVC)
+    if (CMAKE_CL_64)
+      set(SimpleITK_JAVA_ARCH "win64")
+    else()
+      set(SimpleITK_JAVA_ARCH "win32")
+    endif()
+  elseif(APPLE)
+    # assemble macosx-OSX_DEPLOYMENT_TARGET-OSX_ARCHITECTURE
+    set(SimpleITK_JAVA_ARCH "macosx")
+    if(CMAKE_OSX_DEPLOYMENT_TARGET)
+      set(SimpleITK_JAVA_ARCH "${SimpleITK_JAVA_ARCH}-${CMAKE_OSX_DEPLOYMENT_TARGET}")
+    endif()
+    if(CMAKE_OSX_ARCHITECTURES MATCHES "i386" AND CMAKE_OSX_ARCHITECTURES MATCHES "x86_64")
+      if (CMAKE_OSX_ARCHITECTURES MATCHES "ppc")
+        set(SimpleITK_JAVA_ARCH "${SimpleITK_JAVA_ARCH}-universal")
+      else()
+        set(SimpleITK_JAVA_ARCH "${SimpleITK_JAVA_ARCH}-intel")
+        set(_OSX_ARCHITECTURES "intel")
+      endif()
+    elseif(CMAKE_OSX_ARCHITECTURES)
+      string(REPLACE ";" "_" _OSX_ARCHITECTURES "${CMAKE_OSX_ARCHITECTURES}")
+      set(SimpleITK_JAVA_ARCH "${SimpleITK_JAVA_ARCH}-${_OSX_ARCHITECTURES}")
+    else()
+      set(SimpleITK_JAVA_ARCH "${SimpleITK_JAVA_ARCH}-unknown")
+    endif()
+  else()
+    set(SimpleITK_JAVA_ARCH "unknown")
+  endif()
+endif()
+
+set( JAVA_PACKAGE_STAGE_DIR "SimpleITK-${SimpleITK_VERSION}-Java-${SimpleITK_JAVA_ARCH}")
+
+add_custom_target( dist.Java
+  COMMENT "Creating Java package ${JAVA_PACKAGE_STAGE_DIR}.zip"
+  DEPENDS org_itk_simple_jar
+  )
+
+add_custom_command( TARGET dist.Java
+  PRE_BUILD
+  COMMAND ${CMAKE_COMMAND} -E remove_directory "${JAVA_PACKAGE_STAGE_DIR}"
+  COMMAND ${CMAKE_COMMAND} -E make_directory "${JAVA_PACKAGE_STAGE_DIR}"
+  COMMENT "Creating Java staging directory..."
+  )
+
+foreach(_f ${_files})
+  get_filename_component(_f_name ${_f} NAME )
+  add_custom_command( TARGET dist.Java
+    POST_BUILD
+    COMMAND ${CMAKE_COMMAND} -E copy_if_different "${_f}" "${JAVA_PACKAGE_STAGE_DIR}/${_f_name}"
+    COMMENT "Copying ${_f_name} to Java stage..."
+    )
+endforeach()
+
+add_custom_command( TARGET dist.Java
+  POST_BUILD
+  COMMAND ${CMAKE_COMMAND} -E copy "$<TARGET_FILE:${SWIG_MODULE_SimpleITKJava_TARGET_NAME}>" "${JAVA_PACKAGE_STAGE_DIR}"
+  COMMENT "Copying $<TARGET_FILE:${SWIG_MODULE_SimpleITKJava_TARGET_NAME}> to Java stage..."
+  COMMAND ${Java_JAR_EXECUTABLE} cfM "${JAVA_PACKAGE_STAGE_DIR}.zip" "${JAVA_PACKAGE_STAGE_DIR}"
+  COMMENT "Packaging JAVA distribution..."
+  )
+
+add_dependencies( dist dist.Java )
diff --git a/Wrapping/Lua/CMakeLists.txt b/Wrapping/Lua/CMakeLists.txt
new file mode 100644
index 0000000..143a465
--- /dev/null
+++ b/Wrapping/Lua/CMakeLists.txt
@@ -0,0 +1,50 @@
+cmake_minimum_required ( VERSION 2.8.1 FATAL_ERROR )
+
+project( SimpleITK_Lua )
+
+include(../../CMake/sitkProjectLanguageCommon.cmake NO_POLICY_SCOPE)
+
+
+
+find_package ( Lua REQUIRED )
+
+set( LUA_ADDITIONAL_LIBRARIES "" CACHE STRING "Additional libraries which may be needed for lua executable such as readline.")
+mark_as_advanced( LUA_ADDITIONAL_LIBRARIES )
+
+include_directories ( ${SimpleITK_INCLUDE_DIRS} )
+
+set_source_files_properties ( SimpleITK.i PROPERTIES CPLUSPLUS ON )
+
+# Run swig
+set(CMAKE_SWIG_FLAGS ${CMAKE_SWIG_GLOBAL_FLAGS})
+set(CMAKE_SWIG_OUTDIR ${CMAKE_CURRENT_BINARY_DIR})
+set(SWIG_MODULE_SimpleITKLua_EXTRA_DEPS ${SWIG_EXTRA_DEPS}
+  ${CMAKE_CURRENT_SOURCE_DIR}/Lua.i )
+SWIG_module_initialize ( SimpleITKLua lua )
+SWIG_add_source_to_module ( SimpleITKLua  swig_generated_source SimpleITK.i ${SWIG_EXTRA_DEPS} )
+set_source_files_properties(${swig_generated_file_fullname} PROPERTIES COMPILE_FLAGS "-w" )
+
+# Create a standalone Lua executable that includes SimpleITK.
+option( SimpleITK_LUA_BUILD_EXECUTABLE "Build a standalone SimpleITK-Lua executable" OFF)
+sitk_legacy_naming(SimpleITK_LUA_BUILD_EXECUTABLE)
+if ( SimpleITK_LUA_BUILD_EXECUTABLE )
+  add_executable ( SimpleITKLua SimpleITKLuaMain.cxx ${swig_generated_file_fullname} )
+  target_link_libraries ( SimpleITKLua ${SimpleITK_LIBRARIES} ${LUA_LIBRARIES} ${LUA_ADDITIONAL_LIBRARIES} )
+  target_include_directories( SimpleITKLua
+    PRIVATE
+      ${LUA_INCLUDE_DIR} )
+  sitk_strip_target( SimpleITKLua )
+endif ()
+
+# Create a SimpleITK Lua module that can be loaded into any Lua executable.
+SWIG_add_module( SimpleITKLuaModule lua SimpleITK.i )
+target_link_libraries( ${SWIG_MODULE_SimpleITKLuaModule_TARGET_NAME} ${SimpleITK_LIBRARIES} )
+set_target_properties( ${SWIG_MODULE_SimpleITKLuaModule_TARGET_NAME} PROPERTIES PREFIX "" OUTPUT_NAME  "SimpleITK" )
+sitk_target_link_libraries_with_dynamic_lookup( ${SWIG_MODULE_SimpleITKLuaModule_TARGET_NAME} ${LUA_LIBRARIES} )
+target_include_directories( ${SWIG_MODULE_SimpleITKLuaModule_TARGET_NAME}
+    SYSTEM
+    PRIVATE
+      ${LUA_INCLUDE_DIR} )
+set_source_files_properties( ${swig_generated_file_fullname} PROPERTIES COMPILE_FLAGS "-w")
+sitk_strip_target( ${SWIG_MODULE_SimpleITKLuaModule_TARGET_NAME} )
+
diff --git a/Wrapping/Lua/Lua.i b/Wrapping/Lua/Lua.i
new file mode 100644
index 0000000..d7fc951
--- /dev/null
+++ b/Wrapping/Lua/Lua.i
@@ -0,0 +1,26 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+// Lua specific swig components
+#if SWIGLUA
+
+
+// ignore overload methods of int type when there is an enum
+%ignore itk::simple::CastImageFilter::SetOutputPixelType( PixelIDValueType pixelID );
+%ignore itk::simple::GetPixelIDValueAsString( PixelIDValueType type );
+
+#endif
diff --git a/Wrapping/Lua/SimpleITK.i b/Wrapping/Lua/SimpleITK.i
new file mode 100644
index 0000000..74635c2
--- /dev/null
+++ b/Wrapping/Lua/SimpleITK.i
@@ -0,0 +1 @@
+%include SimpleITK_Common.i
diff --git a/Wrapping/Lua/SimpleITKLuaMain.cxx b/Wrapping/Lua/SimpleITKLuaMain.cxx
new file mode 100644
index 0000000..29ff6aa
--- /dev/null
+++ b/Wrapping/Lua/SimpleITKLuaMain.cxx
@@ -0,0 +1,429 @@
+/*
+** $Id: lua.c,v 1.157 2005/12/29 16:23:32 roberto Exp $
+** Lua stand-alone interpreter
+** See Copyright Notice in lua.h
+*/
+
+#ifdef _MSC_VER
+// disable warning about using getenv
+#define _CRT_SECURE_NO_WARNINGS
+#endif
+
+
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <string>
+
+#include <sitkVersion.h>
+
+#define lua_c
+
+#if !defined(_WIN32)
+#define LUA_USE_POSIX
+#endif
+
+
+
+
+extern "C" {
+#include "lua.h"
+#include "lualib.h"
+#include "lauxlib.h"
+}
+
+static lua_State *globalL = NULL;
+
+static const char *progname = LUA_PROGNAME;
+
+static void lstop (lua_State *L, lua_Debug *ar) {
+  (void)ar;  /* unused arg. */
+  lua_sethook(L, NULL, 0, 0);
+  luaL_error(L, "interrupted!");
+}
+
+
+static void laction (int i) {
+  signal(i, SIG_DFL); /* if another SIGINT happens before lstop,
+                              terminate process (default action) */
+  lua_sethook(globalL, lstop, LUA_MASKCALL | LUA_MASKRET | LUA_MASKCOUNT, 1);
+}
+
+
+static void print_usage (void) {
+  fprintf(stderr,
+  "usage: %s [options] [script [args]].\n"
+  "Available options are:\n"
+  "  -e stat  execute string " LUA_QL("stat") "\n"
+  "  -l name  require library " LUA_QL("name") "\n"
+  "  -c conf  configure logger from file " LUA_QL("config") "\n"
+  "  -i       enter interactive mode after executing " LUA_QL("script") "\n"
+  "  -v       show version information\n"
+  "  --       stop handling options\n"
+  "  -        execute stdin and stop handling options\n"
+  ,
+  progname);
+  fflush(stderr);
+}
+
+
+static void l_message (const char *pname, const char *msg) {
+  if (pname) fprintf(stderr, "%s: ", pname);
+  fprintf(stderr, "%s\n", msg);
+  fflush(stderr);
+}
+
+
+static int report (lua_State *L, int status) {
+  if (status && !lua_isnil(L, -1)) {
+    const char *msg = lua_tostring(L, -1);
+    if (msg == NULL) msg = "(error object is not a string)";
+    l_message(progname, msg);
+    lua_pop(L, 1);
+  }
+  return status;
+}
+
+
+static int traceback (lua_State *L) {
+  lua_getfield(L, LUA_GLOBALSINDEX, "debug");
+  if (!lua_istable(L, -1)) {
+    lua_pop(L, 1);
+    return 1;
+  }
+  lua_getfield(L, -1, "traceback");
+  if (!lua_isfunction(L, -1)) {
+    lua_pop(L, 2);
+    return 1;
+  }
+  lua_pushvalue(L, 1);  /* pass error message */
+  lua_pushinteger(L, 2);  /* skip this function and traceback */
+  lua_call(L, 2, 1);  /* call debug.traceback */
+  return 1;
+}
+
+
+static int docall (lua_State *L, int narg, int clear) {
+  int status;
+  int base = lua_gettop(L) - narg;  /* function index */
+  lua_pushcfunction(L, traceback);  /* push traceback function */
+  lua_insert(L, base);  /* put it under chunk and args */
+  signal(SIGINT, laction);
+  status = lua_pcall(L, narg, (clear ? 0 : LUA_MULTRET), base);
+  signal(SIGINT, SIG_DFL);
+  lua_remove(L, base);  /* remove traceback function */
+  /* force a complete garbage collection in case of errors */
+  if (status != 0) lua_gc(L, LUA_GCCOLLECT, 0);
+  return status;
+}
+
+static void print_version (void) {
+  fprintf ( stdout, LUA_VERSION "  " LUA_COPYRIGHT "\n" );
+  fprintf ( stdout, "Simple ITK:\n%s\n", itk::simple::Version::ExtendedVersionString().c_str() );
+}
+
+
+static int getargs (lua_State *L, char **argv, int n) {
+  int narg;
+  int i;
+  int argc = 0;
+  while (argv[argc]) argc++;  /* count total number of arguments */
+  narg = argc - (n + 1);  /* number of arguments to the script */
+  luaL_checkstack(L, narg + 3, "too many arguments to script");
+  for (i=n+1; i < argc; i++)
+    lua_pushstring(L, argv[i]);
+  lua_createtable(L, narg, n + 1);
+  for (i=0; i < argc; i++) {
+    lua_pushstring(L, argv[i]);
+    lua_rawseti(L, -2, i - n);
+  }
+  return narg;
+}
+
+
+static int dofile (lua_State *L, const char *name) {
+  int status = luaL_loadfile(L, name) || docall(L, 0, 1);
+  return report(L, status);
+}
+
+
+static int dostring (lua_State *L, const char *s, const char *name) {
+  int status = luaL_loadbuffer(L, s, strlen(s), name) || docall(L, 0, 1);
+  return report(L, status);
+}
+
+
+static int dolibrary (lua_State *L, const char *name) {
+  lua_getglobal(L, "require");
+  lua_pushstring(L, name);
+  return report(L, lua_pcall(L, 1, 0, 0));
+}
+
+
+static const char *get_prompt (lua_State *L, int firstline) {
+  const char *p;
+  lua_getfield(L, LUA_GLOBALSINDEX, firstline ? "_PROMPT" : "_PROMPT2");
+  p = lua_tostring(L, -1);
+  if (p == NULL) p = (firstline ? LUA_PROMPT : LUA_PROMPT2);
+  lua_pop(L, 1);  /* remove global */
+  return p;
+}
+
+
+static int incomplete (lua_State *L, int status) {
+  if (status == LUA_ERRSYNTAX) {
+    size_t lmsg;
+    const char *msg = lua_tolstring(L, -1, &lmsg);
+    const char *tp = msg + lmsg - (sizeof(LUA_QL("<eof>")) - 1);
+    if (strstr(msg, LUA_QL("<eof>")) == tp) {
+      lua_pop(L, 1);
+      return 1;
+    }
+  }
+  return 0;  /* else... */
+}
+
+
+static int pushline (lua_State *L, int firstline) {
+  char buffer[LUA_MAXINPUT];
+  char *b = buffer;
+  size_t l;
+  const char *prmt = get_prompt(L, firstline);
+  if (lua_readline(L, b, prmt) == 0)
+    return 0;  /* no input */
+  l = strlen(b);
+  if (l > 0 && b[l-1] == '\n')  /* line ends with newline? */
+    b[l-1] = '\0';  /* remove it */
+  if (firstline && b[0] == '=')  /* first line starts with `=' ? */
+    lua_pushfstring(L, "return %s", b+1);  /* change it to `return' */
+  else
+    lua_pushstring(L, b);
+  lua_freeline(L, b);
+  return 1;
+}
+
+
+static int loadline (lua_State *L) {
+  int status;
+  lua_settop(L, 0);
+  if (!pushline(L, 1))
+    return -1;  /* no input */
+  for (;;) {  /* repeat until gets a complete line */
+    status = luaL_loadbuffer(L, lua_tostring(L, 1), lua_strlen(L, 1), "=stdin");
+    if (!incomplete(L, status)) break;  /* cannot try to add lines? */
+    if (!pushline(L, 0))  /* no more input? */
+      return -1;
+    lua_pushliteral(L, "\n");  /* add a new line... */
+    lua_insert(L, -2);  /* ...between the two lines */
+    lua_concat(L, 3);  /* join them */
+  }
+  lua_saveline(L, 1);
+  lua_remove(L, 1);  /* remove line */
+  return status;
+}
+
+
+static void dotty (lua_State *L) {
+  int status;
+  const char *oldprogname = progname;
+  progname = NULL;
+  while ((status = loadline(L)) != -1) {
+    if (status == 0) status = docall(L, 0, 0);
+    report(L, status);
+    if (status == 0 && lua_gettop(L) > 0) {  /* any result to print? */
+      lua_getglobal(L, "print");
+      lua_insert(L, 1);
+      if (lua_pcall(L, lua_gettop(L)-1, 0, 0) != 0)
+        l_message(progname, lua_pushfstring(L,
+                               "error calling " LUA_QL("print") " (%s)",
+                               lua_tostring(L, -1)));
+    }
+  }
+  lua_settop(L, 0);  /* clear stack */
+  fputs("\n", stdout);
+  fflush(stdout);
+  progname = oldprogname;
+}
+
+
+static int handle_script (lua_State *L, char **argv, int n) {
+  int status;
+  const char *fname;
+  int narg = getargs(L, argv, n);  /* collect arguments */
+  lua_setglobal(L, "arg");
+  fname = argv[n];
+  if (strcmp(fname, "-") == 0 && strcmp(argv[n-1], "--") != 0)
+    fname = NULL;  /* stdin */
+  status = luaL_loadfile(L, fname);
+  lua_insert(L, -(narg+1));
+  if (status == 0)
+    status = docall(L, narg, 0);
+  else
+    lua_pop(L, narg);
+  return report(L, status);
+}
+
+
+static int collectargs (char **argv, int *pi, int *pv, int *pe) {
+  int i;
+  for (i = 1; argv[i] != NULL; i++) {
+    if (argv[i][0] != '-')  /* not an option? */
+        return i;
+    switch (argv[i][1]) {  /* option */
+      case '-': return (argv[i+1] != NULL ? i+1 : 0);
+      case '\0': return i;
+      case 'i': *pi = 1;  /* go through */
+      case 'v': *pv = 1; break;
+      case 'e': *pe = 1;  /* go through */
+      case 'c':
+      case 'l':
+        if (argv[i][2] == '\0') {
+          i++;
+          if (argv[i] == NULL) return -1;
+        }
+        break;
+      default: return -1;  /* invalid option */
+    }
+  }
+  return 0;
+}
+
+
+std::string LogConfigFilename ("");
+
+static int runargs (lua_State *L, char **argv, int n) {
+  int i;
+  for (i = 1; i < n; i++) {
+    if (argv[i] == NULL) continue;
+    lua_assert(argv[i][0] == '-');
+    switch (argv[i][1]) {  /* option */
+      case 'e': {
+        const char *chunk = argv[i] + 2;
+        if (*chunk == '\0') chunk = argv[++i];
+        lua_assert(chunk != NULL);
+        if (dostring(L, chunk, "=(command line)") != 0)
+          return 1;
+        break;
+      }
+      case 'l': {
+        const char *filename = argv[i] + 2;
+        if (*filename == '\0') filename = argv[++i];
+        lua_assert(filename != NULL);
+        if (dolibrary(L, filename))
+          return 1;  /* stop if file fails */
+        break;
+      }
+      case 'c': {
+        const char *filename = argv[i] + 2;
+        if (*filename == '\0') filename = argv[++i];
+        lua_assert(filename != NULL);
+        LogConfigFilename = filename;
+        break;
+      }
+      default: break;
+    }
+  }
+  return 0;
+}
+
+
+static int handle_luainit (lua_State *L) {
+  const char *init = getenv("LUA_INIT");
+  if (init == NULL) return 0;  /* status OK */
+  else if (init[0] == '@')
+    return dofile(L, init+1);
+  else
+    return dostring(L, init, "=LUA_INIT");
+}
+
+
+struct Smain {
+  int argc;
+  char **argv;
+  int status;
+};
+
+
+extern "C" int luaopen_SimpleITK ( lua_State* L );
+
+static int pmain (lua_State *L) {
+  struct Smain *s = (struct Smain *)lua_touserdata(L, 1);
+  char **argv = s->argv;
+  int script;
+  int has_i = 0, has_v = 0, has_e = 0;
+  globalL = L;
+  if (argv[0] && argv[0][0]) progname = argv[0];
+  lua_gc(L, LUA_GCSTOP, 0);  /* stop collector during initialization */
+  luaL_openlibs(L);  /* open libraries */
+
+  // Insert our custom code
+  luaopen_SimpleITK(L);
+
+  lua_gc(L, LUA_GCRESTART, 0);
+  s->status = handle_luainit(L);
+  if (s->status != 0) return 0;
+  script = collectargs(argv, &has_i, &has_v, &has_e);
+  if (script < 0) {  /* invalid args? */
+    print_usage();
+    s->status = 1;
+    return 0;
+  }
+  if (has_v) print_version();
+  s->status = runargs(L, argv, (script > 0) ? script : s->argc);
+  if (s->status != 0) return 0;
+
+  // See if we have OMP_NUM_THREADS set, and if so, make ITK obey
+  // std::string NumThreads;
+  // if ( itksys::SystemTools::GetEnv ( "OMP_NUM_THREADS", NumThreads ) ) {
+  //   itk::MultiThreader::SetGlobalDefaultNumberOfThreads ( atoi ( NumThreads.c_str() ) );
+  // }
+
+  if (script)
+    s->status = handle_script(L, argv, script);
+  if (s->status != 0) return 0;
+  if (has_i)
+    dotty(L);
+  else if (script == 0 && !has_e && !has_v) {
+    if (lua_stdin_is_tty()) {
+      print_version();
+      dotty(L);
+    }
+    else dofile(L, NULL);  /* executes stdin as a file */
+  }
+  return 0;
+}
+
+
+
+int main (int argc, char **argv) {
+  int status = 0;
+
+  struct Smain s;
+  lua_State *L = lua_open();  /* create state */
+  if (L == NULL) {
+    l_message(argv[0], "cannot create state: not enough memory");
+    return EXIT_FAILURE;
+  }
+#ifdef USE_TECLA
+  // Initialize Tecla
+  gl = new_GetLine(16*1024,2048);
+  gl_configure_getline ( gl, "", "", "~/.SimpleITKLua" );
+  gl_load_history ( gl, "~/.SimpleITK.history", "--" );
+#endif
+
+
+  s.argc = argc;
+  s.argv = argv;
+  try {
+    status = lua_cpcall(L, &pmain, &s);
+    report(L, status);
+    lua_close(L);
+  } catch (...) {}
+
+#ifdef USE_TECLA
+  gl_save_history ( gl, "~/.SimpleITK.history", "--", 1000 );
+  del_GetLine ( gl );
+#endif
+  return (status || s.status) ? EXIT_FAILURE : EXIT_SUCCESS;
+}
diff --git a/Wrapping/Python/CMakeLists.txt b/Wrapping/Python/CMakeLists.txt
new file mode 100644
index 0000000..30d1972
--- /dev/null
+++ b/Wrapping/Python/CMakeLists.txt
@@ -0,0 +1,109 @@
+cmake_minimum_required ( VERSION 2.8.1 FATAL_ERROR )
+
+project( SimpleITK_Python )
+
+
+if(POLICY CMP0026)
+  # Allow use of the LOCATION target property.
+  #
+  # These locations are use in a convoluted fashion with the runtime
+  # configuration. This system should be refactored to support
+  # generator expression. This would allow the use of the new policy.
+  cmake_policy(SET CMP0026 OLD)
+endif()
+
+include(../../CMake/sitkProjectLanguageCommon.cmake NO_POLICY_SCOPE)
+
+if ( SITK_UNDEFINED_SYMBOLS_ALLOWED )
+  set( _QUIET_LIBRARY "QUIET" )
+else()
+  set( _QUIET_LIBRARY "REQUIRED" )
+endif()
+find_package ( PythonInterp REQUIRED )
+find_package ( PythonLibs ${_QUIET_LIBRARY} )
+include_directories ( ${SimpleITK_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR} )
+
+#
+# Options
+#
+option ( SimpleITK_PYTHON_THREADS "Enable threaded python usage by unlocking the GIL." ON )
+mark_as_advanced( SimpleITK_PYTHON_THREADS )
+option ( SimpleITK_PYTHON_EGG "Add building of python eggs to the dist target." OFF )
+mark_as_advanced( SimpleITK_PYTHON_EGG )
+option ( SimpleITK_PYTHON_WHEEL "Add building of python wheels to the dist target." ON )
+mark_as_advanced( SimpleITK_PYTHON_WHEEL )
+
+
+set_source_files_properties ( SimpleITK.i PROPERTIES CPLUSPLUS ON )
+
+# Run swig
+set(CMAKE_SWIG_FLAGS ${CMAKE_SWIG_GLOBAL_FLAGS} -features autodoc=1 -keyword )
+if( SimpleITK_PYTHON_THREADS )
+  set(CMAKE_SWIG_FLAGS ${CMAKE_SWIG_FLAGS} -threads)
+endif()
+set(CMAKE_SWIG_OUTDIR ${CMAKE_CURRENT_BINARY_DIR})
+set(SWIG_MODULE_SimpleITK_EXTRA_DEPS ${SWIG_EXTRA_DEPS}
+  ${CMAKE_CURRENT_SOURCE_DIR}/Python.i )
+SWIG_add_module ( SimpleITK python
+  SimpleITK.i
+  sitkPyCommand.cxx )
+set(SWIG_MODULE_SimpleITKPython_TARGET_NAME "${SWIG_MODULE_SimpleITK_TARGET_NAME}")
+target_link_libraries( ${SWIG_MODULE_SimpleITKPython_TARGET_NAME} ${SimpleITK_LIBRARIES} )
+if(NOT PYTHON_DEBUG_LIBRARIES AND MSVC)
+  # If there is not a specified debug library use the release library,
+  # via a special sitkPython.h header.
+  target_compile_definitions(${SWIG_MODULE_SimpleITKPython_TARGET_NAME}
+    PRIVATE
+    $<$<CONFIG:Debug>:SWIG_PYTHON_INTERPRETER_NO_DEBUG>)
+endif()
+sitk_target_link_libraries_with_dynamic_lookup( ${SWIG_MODULE_SimpleITKPython_TARGET_NAME} ${PYTHON_LIBRARIES} )
+
+target_include_directories( ${SWIG_MODULE_SimpleITKPython_TARGET_NAME}
+  PRIVATE
+    ${PYTHON_INCLUDE_DIR} )
+target_include_directories( ${SWIG_MODULE_SimpleITKPython_TARGET_NAME}
+  PRIVATE
+    ${CMAKE_CURRENT_SOURCE_DIR} )
+
+set_target_properties( ${SWIG_MODULE_SimpleITK_TARGET_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+if ( MSVC )
+    foreach ( CMAKE_CONFIGURATION_TYPE ${CMAKE_CONFIGURATION_TYPES} )
+      string(TOUPPER ${CMAKE_CONFIGURATION_TYPE} CMAKE_CONFIGURATION_TYPE)
+      set_target_properties(${SWIG_MODULE_SimpleITK_TARGET_NAME}
+        PROPERTIES LIBRARY_OUTPUT_DIRECTORY_${CMAKE_CONFIGURATION_TYPE} "${CMAKE_CURRENT_BINARY_DIR}")
+      set_target_properties(${SWIG_MODULE_SimpleITK_TARGET_NAME}
+        PROPERTIES RUNTIME_OUTPUT_DIRECTORY_${CMAKE_CONFIGURATION_TYPE} "${CMAKE_CURRENT_BINARY_DIR}")
+    endforeach( )
+endif()
+set_source_files_properties(${swig_generated_file_fullname} PROPERTIES COMPILE_FLAGS "-w")
+sitk_strip_target( ${SWIG_MODULE_SimpleITKPython_TARGET_NAME} )
+
+
+
+# Installation
+set( SimpleITK_PYTHON_PACKAGE_DIR "${CMAKE_CURRENT_BINARY_DIR}" )
+file( TO_NATIVE_PATH "${SimpleITK_PYTHON_PACKAGE_DIR}" SimpleITK_PYTHON_PACKAGE_DIR )
+get_target_property( SimpleITK_BINARY_MODULE ${SWIG_MODULE_SimpleITKPython_TARGET_NAME} LOCATION )
+get_filename_component( SimpleITK_BINARY_MODULE "${SimpleITK_BINARY_MODULE}" NAME )
+set( SimpleITK_BINARY_MODULE "${CMAKE_CURRENT_BINARY_DIR}/${SimpleITK_BINARY_MODULE}" )
+
+set(SimpleITK_PYTHON_TEST_EXECUTABLE "${PYTHON_EXECUTABLE}" CACHE INTERNAL "Python executable for testing." FORCE )
+
+if(DEFINED SKBUILD)
+  # Currently this installation
+  install(FILES
+      ${CMAKE_CURRENT_BINARY_DIR}/SimpleITK.py
+      ${CMAKE_CURRENT_SOURCE_DIR}/Packaging/__init__.py
+      ${SimpleITK_DOC_FILES}
+    DESTINATION SimpleITK
+    COMPONENT Runtime
+    )
+
+  install(TARGETS ${SWIG_MODULE_SimpleITKPython_TARGET_NAME}
+    RUNTIME DESTINATION SimpleITK
+    LIBRARY DESTINATION SimpleITK
+    COMPONENT Runtime
+    )
+else()
+  include(LegacyPackaging.cmake)
+endif()
diff --git a/Wrapping/Python/LegacyPackaging.cmake b/Wrapping/Python/LegacyPackaging.cmake
new file mode 100644
index 0000000..69030d2
--- /dev/null
+++ b/Wrapping/Python/LegacyPackaging.cmake
@@ -0,0 +1,104 @@
+if ( SimpleITK_DOC_FILES )
+  # create a python list for the import documents to include in
+  # packaging
+
+  # This string is targed for setup.py. It will be passed through
+  # the build-time configuration script and as a command line
+  # argument. This sequence is having portability issues with
+  # quote. So Windows needs separate handling from Unix-like
+  # platforms.
+  if( WIN32 )
+    set( _q "'" )
+  else()
+    set( _q "\\'")
+  endif()
+
+  # specially handle the first element
+  list( GET SimpleITK_DOC_FILES 0 d )
+  file(TO_NATIVE_PATH "${d}" d )
+  set( SimpleITK_DOC_FILES_AS_LIST "[r${_q}${d}${_q}")
+  set( _doc_list "${SimpleITK_DOC_FILES}" )
+  list( REMOVE_AT _doc_list 0 )
+
+  foreach( d ${_doc_list} )
+    file(TO_NATIVE_PATH "${d}" d )
+    set( SimpleITK_DOC_FILES_AS_LIST "${SimpleITK_DOC_FILES_AS_LIST},r${_q}${d}${_q}")
+  endforeach()
+  set( SimpleITK_DOC_FILES_AS_LIST "${SimpleITK_DOC_FILES_AS_LIST}]")
+
+endif()
+
+include( sitkConfigureFileBuildtime )
+configure_file_buildtime( "${CMAKE_CURRENT_SOURCE_DIR}/Packaging/setup.py.in"
+  "${CMAKE_CURRENT_BINARY_DIR}/Packaging/setup.py" )
+
+configure_file(
+  "${CMAKE_CURRENT_SOURCE_DIR}/Packaging/setupegg.py"
+  "${CMAKE_CURRENT_BINARY_DIR}/Packaging/setupegg.py"
+  COPYONLY )
+
+configure_file(
+  "${CMAKE_CURRENT_SOURCE_DIR}/Packaging/__init__.py"
+  "${CMAKE_CURRENT_BINARY_DIR}/__init__.py"
+  COPYONLY )
+
+option(SimpleITK_PYTHON_USE_VIRTUALENV "Create a Python Virtual Environment for testing." ON)
+mark_as_advanced(SimpleITK_PYTHON_USE_VIRTUALENV)
+sitk_legacy_naming(SimpleITK_PYTHON_USE_VIRTUALENV)
+
+if (SimpleITK_PYTHON_USE_VIRTUALENV)
+
+  # Executable to setup a new Python virtual environment
+  find_package( PythonVirtualEnv REQUIRED )
+
+  sitk_enforce_forbid_downloads( SimpleITK_PYTHON_USE_VIRTUALENV )
+
+  if (SimpleITK_PYTHON_WHEEL AND PYTHON_VIRTUALENV_VERSION_STRING VERSION_LESS "13")
+    message(SEND_ERROR "In sufficient version of virutalenv for \
+      building wheels. Require virtualenv>=13.0.")
+  endif()
+
+  #
+  # Setup Python Virtual Enviroment for testing and packaging
+  #
+  set( PythonVirtualenvHome "${${CMAKE_PROJECT_NAME}_BINARY_DIR}/Testing/Installation/PythonVirtualenv" )
+
+  # virtualenv places the python executable in different
+  # locations. Also note than on windows installations where python is
+  # installed only for a single user the may be a missing dll issue.
+  if( WIN32 )
+    set( VIRTUAL_PYTHON_EXECUTABLE
+      "${PythonVirtualenvHome}/Scripts/python")
+  else( )
+    set( VIRTUAL_PYTHON_EXECUTABLE "${PythonVirtualenvHome}/bin/python" )
+  endif()
+  set(SimpleITK_PYTHON_TEST_EXECUTABLE "${VIRTUAL_PYTHON_EXECUTABLE}"
+    CACHE INTERNAL "Python executable for testing." FORCE )
+
+  # configure a scripts which creates the virtualenv and installs numpy
+  configure_file(
+    "${CMAKE_CURRENT_SOURCE_DIR}/PythonVirtualEnvInstall.cmake.in"
+    "${CMAKE_CURRENT_BINARY_DIR}/PythonVirtualEnvInstall.cmake"
+    @ONLY )
+
+  set( PythonVirtualEnv_ALL "" )
+  if ( BUILD_TESTING )
+    set( PythonVirtualEnv_ALL "ALL" )
+  endif()
+
+  add_custom_target( PythonVirtualEnv ${PythonVirtualEnv_ALL}
+    DEPENDS "${VIRTUAL_PYTHON_EXECUTABLE}"
+    SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/PythonVirtualEnvInstall.cmake.in )
+
+  add_custom_command( OUTPUT "${VIRTUAL_PYTHON_EXECUTABLE}"
+    COMMAND ${CMAKE_COMMAND} -P "${CMAKE_CURRENT_BINARY_DIR}/PythonVirtualEnvInstall.cmake"
+    DEPENDS
+    "${SWIG_MODULE_SimpleITKPython_TARGET_NAME}"
+    "${CMAKE_CURRENT_BINARY_DIR}/PythonVirtualEnvInstall.cmake"
+    ConfigureFileBuildtime
+    COMMENT "Creating python virtual enviroment..."
+    )
+endif()
+
+# Packaging for distribution
+add_subdirectory(dist)
diff --git a/Wrapping/Python/Packaging/__init__.py b/Wrapping/Python/Packaging/__init__.py
new file mode 100644
index 0000000..7e854b1
--- /dev/null
+++ b/Wrapping/Python/Packaging/__init__.py
@@ -0,0 +1 @@
+from .SimpleITK import *
diff --git a/Wrapping/Python/Packaging/setup.py.in b/Wrapping/Python/Packaging/setup.py.in
new file mode 100644
index 0000000..d8b2f26
--- /dev/null
+++ b/Wrapping/Python/Packaging/setup.py.in
@@ -0,0 +1,107 @@
+import sys
+import os
+
+try:
+    from setuptools import setup, Extension
+    from setuptools.command.build_ext import build_ext as _build_ext
+except ImportError:
+    from distutils.core import setup, Extension
+    from distutils.command.build_ext import build_ext as _build_ext
+
+import re
+
+doc_files = @SimpleITK_DOC_FILES_AS_LIST@
+
+def get_pep386version():
+    """This method examines the SimpleITK's CMake version variables to make a pep 386 compliant version string when building a version indented for distribution."""
+    sitkMAJOR = "@SimpleITK_VERSION_MAJOR@"
+    sitkMINOR = "@SimpleITK_VERSION_MINOR@"
+    sitkPATCH = "@SimpleITK_VERSION_PATCH@"
+    sitkTWEAK = "@SimpleITK_VERSION_TWEAK@"
+    sitkRC    = "@SimpleITK_VERSION_RC@"
+    sitkPOST  = "@SimpleITK_VERSION_POST@"
+    sitkDEV   = "@SimpleITK_VERSION_DEV@"
+    sitkHASH  = "@SimpleITK_VERSION_HASH@"
+
+
+    version = sitkMAJOR+"."+sitkMINOR
+
+    if sitkPATCH:
+        version += "."+sitkPATCH
+        if sitkTWEAK:
+            version += "."+sitkTWEAK
+
+    if  sitkRC:
+        version += sitkRC
+
+    if sitkPOST:
+        version += ".post"+sitkPOST
+    elif sitkDEV:
+        version += ".dev"+sitkDEV
+
+    # Local Version Identifier
+    if sitkHASH and not "@SimpleITK_BUILD_DISTRIBUTE@" in ['1', 'ON']:
+        version += "+g"+sitkHASH
+
+    return version
+
+class build_ext(_build_ext):
+    """ Override standard command class to build an extension, to
+    simply copy an existing compiled library into the packaging
+    directory structure.
+    """
+
+    def build_extension(self, ext):
+        """
+        """
+        from distutils.errors import DistutilsSetupError
+
+        sources = ext.sources
+        if sources is None or not len(sources) == 1:
+            raise DistutilsSetupError( "Expected only one compiled library." )
+
+        expected_ext_filename = os.path.split(self.get_ext_filename(ext.name))[1]
+
+        ext_file = self.get_ext_fullpath(ext.name)
+
+        abs_sources = list( map(os.path.abspath, sources) )
+
+        self.copy_file(abs_sources[0], ext_file)
+
+
+setup(
+    name = 'SimpleITK',
+    version = get_pep386version(),
+    author = 'Insight Software Consortium',
+    author_email = 'insight-users at itk.org',
+    ext_modules=[Extension('SimpleITK._SimpleITK', [r'@SimpleITK_BINARY_MODULE@'])],
+    packages= ['SimpleITK'],
+    package_dir = {'SimpleITK':r'@SimpleITK_PYTHON_PACKAGE_DIR@'},
+    download_url = r'https://www.itk.org/SimpleITKDoxygen/html/PyDownloadPage.html',
+    platforms = [],
+    description = r'SimpleITK is a simplified interface to the Insight Toolkit (ITK) for image registration and segmentation',
+    long_description  = 'SimpleITK provides an abstraction layer to ITK that enables developers \
+                         and users to access the powerful features of the InsightToolkit in an easy \
+                         to use manner for biomedical image analysis.',
+    classifiers=[
+        "License :: OSI Approved :: Apache Software License",
+        "Programming Language :: Python",
+        "Programming Language :: C++",
+        "Development Status :: 5 - Production/Stable",
+        "Intended Audience :: Education",
+        "Intended Audience :: Healthcare Industry",
+        "Intended Audience :: Science/Research",
+        "Topic :: Scientific/Engineering",
+        "Topic :: Scientific/Engineering :: Medical Science Apps.",
+        "Topic :: Scientific/Engineering :: Information Analysis",
+        "Topic :: Software Development :: Libraries",
+        "Operating System :: Microsoft :: Windows",
+        "Operating System :: POSIX",
+        "Operating System :: Unix",
+        "Operating System :: MacOS"
+        ],
+    license='Apache',
+    keywords = 'SimpleITK ITK InsightToolkit segmentation registration',
+    url = r'http://simpleitk.org/',
+    cmdclass={'build_ext':build_ext}
+    )
diff --git a/Wrapping/Python/Packaging/setupegg.py b/Wrapping/Python/Packaging/setupegg.py
new file mode 100644
index 0000000..05e090f
--- /dev/null
+++ b/Wrapping/Python/Packaging/setupegg.py
@@ -0,0 +1,17 @@
+"""
+A setup.py script to use setuptools, which gives wheel and egg goodness, etc.
+"""
+try:
+    from setuptools import setup
+except ImportError:
+    # SimpleITK no longer provides ez_setup, but a copy may be around
+    # so we give it a try. It's intended that setuptools be install in
+    # a constructed virtualenv during the make process.
+    from ez_setup import use_setuptools
+    use_setuptools()
+import os
+
+from setuptools import setup
+
+fn = os.path.dirname(os.path.realpath(__file__)) + '/setup.py'
+exec(open(fn).read())
diff --git a/Wrapping/Python/Python.i b/Wrapping/Python/Python.i
new file mode 100644
index 0000000..9ae208b
--- /dev/null
+++ b/Wrapping/Python/Python.i
@@ -0,0 +1,815 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#if SWIGPYTHON
+
+%begin %{
+#include "sitkPython.h"
+%}
+
+%{
+#include "sitkPyCommand.h"
+%}
+
+%include "PythonDocstrings.i"
+
+// ignore overload methods of int type when there is an enum
+%ignore itk::simple::CastImageFilter::SetOutputPixelType( PixelIDValueType pixelID );
+%ignore itk::simple::GetPixelIDValueAsString( PixelIDValueType type );
+
+// Make __str__ transparent by renaming ToString to __str__
+%rename(__str__) ToString;
+
+%rename( __GetPixelAsInt8__ ) itk::simple::Image::GetPixelAsInt8;
+%rename( __GetPixelAsUInt8__ ) itk::simple::Image::GetPixelAsUInt8;
+%rename( __GetPixelAsInt16__ ) itk::simple::Image::GetPixelAsInt16;
+%rename( __GetPixelAsUInt16__ ) itk::simple::Image::GetPixelAsUInt16;
+%rename( __GetPixelAsInt32__ ) itk::simple::Image::GetPixelAsInt32;
+%rename( __GetPixelAsUInt32__ ) itk::simple::Image::GetPixelAsUInt32;
+%rename( __GetPixelAsInt64__ ) itk::simple::Image::GetPixelAsInt64;
+%rename( __GetPixelAsUInt64__ ) itk::simple::Image::GetPixelAsUInt64;
+%rename( __GetPixelAsFloat__ ) itk::simple::Image::GetPixelAsFloat;
+%rename( __GetPixelAsDouble__ ) itk::simple::Image::GetPixelAsDouble;
+%rename( __GetPixelAsVectorInt8__ ) itk::simple::Image::GetPixelAsVectorInt8;
+%rename( __GetPixelAsVectorUInt8__ ) itk::simple::Image::GetPixelAsVectorUInt8;
+%rename( __GetPixelAsVectorInt16__ ) itk::simple::Image::GetPixelAsVectorInt16;
+%rename( __GetPixelAsVectorUInt16__ ) itk::simple::Image::GetPixelAsVectorUInt16;
+%rename( __GetPixelAsVectorInt32__ ) itk::simple::Image::GetPixelAsVectorInt32;
+%rename( __GetPixelAsVectorUInt32__ ) itk::simple::Image::GetPixelAsVectorUInt32;
+%rename( __GetPixelAsVectorInt64__ ) itk::simple::Image::GetPixelAsVectorInt64;
+%rename( __GetPixelAsVectorUInt64__ ) itk::simple::Image::GetPixelAsVectorUInt64;
+%rename( __GetPixelAsVectorFloat32__ ) itk::simple::Image::GetPixelAsVectorFloat32;
+%rename( __GetPixelAsVectorFloat64__ ) itk::simple::Image::GetPixelAsVectorFloat64;
+%rename( __GetPixelAsComplexFloat32__ ) itk::simple::Image::GetPixelAsComplexFloat32;
+%rename( __GetPixelAsComplexFloat64__ ) itk::simple::Image::GetPixelAsComplextFloat64;
+
+%rename( __SetPixelAsInt8__ ) itk::simple::Image::SetPixelAsInt8;
+%rename( __SetPixelAsUInt8__ ) itk::simple::Image::SetPixelAsUInt8;
+%rename( __SetPixelAsInt16__ ) itk::simple::Image::SetPixelAsInt16;
+%rename( __SetPixelAsUInt16__ ) itk::simple::Image::SetPixelAsUInt16;
+%rename( __SetPixelAsInt32__ ) itk::simple::Image::SetPixelAsInt32;
+%rename( __SetPixelAsUInt32__ ) itk::simple::Image::SetPixelAsUInt32;
+%rename( __SetPixelAsInt64__ ) itk::simple::Image::SetPixelAsInt64;
+%rename( __SetPixelAsUInt64__ ) itk::simple::Image::SetPixelAsUInt64;
+%rename( __SetPixelAsFloat__ ) itk::simple::Image::SetPixelAsFloat;
+%rename( __SetPixelAsDouble__ ) itk::simple::Image::SetPixelAsDouble;
+%rename( __SetPixelAsVectorInt8__ ) itk::simple::Image::SetPixelAsVectorInt8;
+%rename( __SetPixelAsVectorUInt8__ ) itk::simple::Image::SetPixelAsVectorUInt8;
+%rename( __SetPixelAsVectorInt16__ ) itk::simple::Image::SetPixelAsVectorInt16;
+%rename( __SetPixelAsVectorUInt16__ ) itk::simple::Image::SetPixelAsVectorUInt16;
+%rename( __SetPixelAsVectorInt32__ ) itk::simple::Image::SetPixelAsVectorInt32;
+%rename( __SetPixelAsVectorUInt32__ ) itk::simple::Image::SetPixelAsVectorUInt32;
+%rename( __SetPixelAsVectorInt64__ ) itk::simple::Image::SetPixelAsVectorInt64;
+%rename( __SetPixelAsVectorUInt64__ ) itk::simple::Image::SetPixelAsVectorUInt64;
+%rename( __SetPixelAsVectorFloat32__ ) itk::simple::Image::SetPixelAsVectorFloat32;
+%rename( __SetPixelAsVectorFloat64__ ) itk::simple::Image::SetPixelAsVectorFloat64;
+%rename( __SetPixelAsComplexFloat32__ ) itk::simple::Image::SetPixelAsComplexFloat32;
+%rename( __SetPixelAsComplexFloat64__ ) itk::simple::Image::SetPixelAsComplextFloat64;
+
+%pythoncode %{
+   import operator
+   import sys
+%}
+
+%extend itk::simple::Image {
+
+
+        %pythoncode %{
+
+        # mathematical operators
+
+        def __add__( self, other ):
+            if isinstance( other, Image ):
+               return Add( self, other )
+            try:
+               return Add( self, float(other)  )
+            except ValueError:
+               return NotImplemented
+        def __sub__( self, other ):
+            if isinstance( other, Image ):
+               return Subtract( self, other )
+            try:
+               return Subtract( self, float(other) )
+            except ValueError:
+               return NotImplemented
+        def __mul__( self, other ):
+            if isinstance( other, Image ):
+               return Multiply( self, other )
+            try:
+               return Multiply( self, float(other) )
+            except ValueError:
+               return NotImplemented
+        def __div__( self, other ):
+            if isinstance( other, Image ):
+               return Divide( self, other )
+            try:
+               return Divide( self, float(other) )
+            except ValueError:
+               return NotImplemented
+        def __floordiv__( self, other ):
+            if isinstance( other, Image ):
+               return DivideFloor( self, other )
+            try:
+               return DivideFloor( self, float(other) )
+            except ValueError:
+               return NotImplemented
+        def __truediv__( self, other ):
+            if isinstance( other, Image ):
+               return DivideReal( self, other )
+            try:
+               return DivideReal( self, float(other) )
+            except ValueError:
+               return NotImplemented
+
+
+        def __neg__( self ):
+            return UnaryMinus( self )
+        def __pos__( self ):
+            return self
+
+        # NOTE: for the reverse methods other cannot be an image, so
+        # therefore other should be able to be considered a constant.
+
+        def __radd__( self, other ):
+            try:
+               return Add( float(other), self )
+            except ValueError:
+               return NotImplemented
+        def __rsub__( self, other ):
+            try:
+               return Subtract( float(other), self )
+            except ValueError:
+               return NotImplemented
+        def __rmul__( self, other ):
+            try:
+               return Multiply( float(other), self )
+            except ValueError:
+               return NotImplemented
+        def __rdiv__( self, other ):
+            try:
+               return Divide( float(other), self )
+            except ValueError:
+               return NotImplemented
+        def __rfloordiv__( self, other ):
+            try:
+               return DivideFloor( float(other), self )
+            except ValueError:
+               return NotImplemented
+        def __rtruediv__( self, other ):
+            try:
+               return DivideReal( float(other), self )
+            except ValueError:
+               return NotImplemented
+
+
+
+         # NOTE: the __i*__ methods are not implemented because there
+         # currently in no way to make the underlying filters run
+         # inplace. But python will implement a default version based
+         # on the standard method
+        def __iadd__ ( self, other ):
+            self = Add( self, other )
+            return self;
+
+        # logic operators
+
+        def __and__( self, other ):
+            if isinstance( other, Image ):
+               return And( self, other )
+            try:
+               return And( self, int(other) )
+            except ValueError:
+               return NotImplemented
+        def __rand__( self, other ):
+            try:
+               return And( int(other), self )
+            except ValueError:
+               return NotImplemented
+        def __or__( self, other ):
+            if isinstance( other, Image ):
+               return Or( self, other )
+            try:
+               return Or( self, int(other) )
+            except ValueError:
+               return NotImplemented
+        def __ror__( self, other ):
+            try:
+               return Or( int(other), self )
+            except ValueError:
+               return NotImplemented
+        def __xor__( self, other ):
+            if isinstance( other, Image ):
+               return Xor( self, other )
+            try:
+               return Xor( self, int(other) )
+            except ValueError:
+               return NotImplemented
+        def __rxor__( self, other ):
+            try:
+               return Xor( int(other), self )
+            except ValueError:
+               return NotImplemented
+        def __invert__( self ): return BitwiseNot( self )
+
+        # Relational and Equality operators
+
+        def __lt__( self, other ):
+            if isinstance( other, Image ):
+               return Less( self, other )
+            try:
+               return Less( self, float(other) )
+            except (ValueError, TypeError):
+               return NotImplemented
+        def __le__( self, other ):
+            if isinstance( other, Image ):
+               return LessEqual( self, other )
+            try:
+               return LessEqual( self, float(other) )
+            except (ValueError, TypeError):
+               return NotImplemented
+        def __eq__( self, other ):
+            if isinstance( other, Image ):
+               return Equal( self, other )
+            try:
+               return Equal( self, float(other) )
+            except (ValueError, TypeError):
+               return NotImplemented
+        def __ne__( self, other ):
+            if isinstance( other, Image ):
+               return NotEqual( self, other )
+            try:
+               return NotEqual( self, float(other) )
+            except (ValueError, TypeError):
+               return NotImplemented
+        def __gt__( self, other ):
+            if isinstance( other, Image ):
+               return Greater( self, other )
+            try:
+               return Greater( self, float(other) )
+            except (ValueError, TypeError):
+               return NotImplemented
+        def __ge__( self, other ):
+            if isinstance( other, Image ):
+               return GreaterEqual( self, other )
+            try:
+               return GreaterEqual( self, float(other) )
+            except (ValueError, TypeError):
+               return NotImplemented
+
+
+        # "function" operators
+
+        def __pow__( self, other ):
+            if isinstance( other, Image ):
+               return Pow( self, other )
+            try:
+               return Pow( self, float(other) )
+            except ValueError:
+               return NotImplemented
+        def __rpow__( self, other ):
+            try:
+               return Pow( float(other), self )
+            except ValueError:
+               return NotImplemented
+        def __mod__( self, other ): return Modulus( self, other )
+        def __abs__( self ): return Abs( self )
+
+        # iterator and container methods
+
+        def __iter__( self ):
+
+            if len(self) == 0:
+              raise StopIteration
+
+            dim = self.GetDimension()
+            size = self.GetSize()
+            idx = [0] * dim
+
+            while idx[dim-1] < size[dim-1]:
+
+              yield self[ idx ]
+
+              # increment the idx
+              for d in range( 0, dim ):
+                idx[d] += 1
+                if idx[d] >= size[d] and d != dim  - 1:
+                   idx[d] = 0
+                else:
+                   break
+
+            return
+
+        def __len__( self ):
+            l = 1
+            for ds in self.GetSize():
+              l *= ds
+            return l
+
+        # set/get pixel methods
+
+        def __getitem__( self, idx ):
+            """ Get an pixel value or a sliced image.
+
+            This operator implements basic indexing where idx is
+            arguments or a squence of integers the same dimension as
+            the image. The result will be a pixel value from that
+            index.
+
+            Multi-dimension extended slice based indexing is also
+            implemented. The return is a copy of a new image. The
+            standard sliced based indices are supported including
+            negative indices, to indicate location relative to the
+            end, along with negative step sized to indicate reversing
+            of direction.
+
+            If the length of idx is less than the number of dimension
+            of the image it will be padded with the defaults slice
+            ":".
+
+            A 2D image can be extracted from a 3D image by providing
+            one argument being an integer instead of a slice."""
+
+            if sys.version_info[0] < 3:
+              def isint( i ):
+                return type(i) == int or type(i) == long
+            else:
+              def isint( i ):
+                return type(i) == int
+
+            dim = self.GetDimension()
+            size = self.GetSize()
+
+            try:
+              if (len(idx) < dim):
+                # if the argument tuple has fewer elements then the dimension of the image then extend to match that of the image
+                idx = tuple(idx) + (slice(None),)*(dim-len(idx))
+            except TypeError:
+              # if the len function didn't work then, assume is a
+              # non-iterable, and make it a single element in a tuple.
+              idx = (idx,) + (slice(None),)*(dim-1)
+
+            if (len(idx) > dim):
+               raise IndexError("invalid index")
+
+            # All the indices are integers just return GetPixel value
+            if all( isint(i) for i in idx ):
+              # if any of the arguments are negative integers subract them for the size
+              idx = [idx[i] if idx[i] >= 0 else (size[i] + idx[i]) for i in range(len(idx))]
+
+              if any( idx[i] < 0 or idx[i] >= size[i] for i in range(len(idx))):
+                raise IndexError("index out of bounds")
+
+              return self.GetPixel(*tuple(idx))
+
+
+            # If we have a 3D image, we can extract 2D image if one index is an int and the reset are slices
+            slice_dim = -1
+            if ( dim == 3 ):
+              # find only a single dimension with has an integer index
+              for i in range(len(idx)):
+                if type(idx[i]) is slice:
+                  continue
+                elif isint(idx[i]):
+                  if(slice_dim == -1):
+                    slice_dim = abs(i)
+                  else:
+                    slice_dim = -1
+                    break
+
+            if slice_dim != -1:
+              # replace int slice_dim with a slice
+              s = idx[slice_dim]
+              if s < 0:
+                s += size[slice_dim]
+
+              if s < 0 or s >= size[slice_dim]:
+                 raise IndexError("index  out of bounds")
+
+              idx = tuple(idx[:slice_dim]) + (slice(s, s+1),)+ tuple(idx[slice_dim+1:])
+
+            # Use the slice filter when all the elements are slices ( or have been processed to be )
+            if all( type(i) is slice for i in idx ):
+
+              # perform standard slice indexing, to clamp to ranges and add in defaults
+              sidx = [ idx[i].indices(size[i]) for i in range(len(idx ))]
+
+              # extract each element of the indices rages together
+              (start, stop, step) = zip(*sidx)
+
+              # run the slice filter
+              img = Slice(self, start=start, stop=stop, step=step)
+
+              if (slice_dim != -1):
+
+                # the stop is on the wrong side of step
+                if any( (s[1]-s[0])//s[2] <= 0 for s in sidx ):
+                  raise IndexError("invalid range")
+
+                size = img.GetSize();
+
+                # set the slice dimension size to 0
+                size = size[:slice_dim]+(0,)+size[slice_dim+1:]
+
+                # reduce the 3D image to a 2D
+                img = Extract( img, size )
+
+              return img
+
+
+            # the index parameter was an invalid set of objects
+            raise IndexError("invalid index")
+
+
+        def __setitem__( self, idx, value ):
+            """Sets the pixel value at index idx to value.
+
+            The dimension of idx should match that of the image."""
+
+            if sys.version_info[0] < 3:
+              def isint( i ):
+                return type(i) == int or type(i) == long
+            else:
+              def isint( i ):
+                return type(i) == int
+
+            dim = self.GetDimension()
+            size = self.GetSize()
+
+            if (len(idx) > dim):
+               raise IndexError("invalid index")
+
+            # All the indices are integers just return SetPixel value
+            if all( isint(i) for i in idx ):
+              # if any of the arguments are negative integers subract them for the size
+              idx = [idx[i] if idx[i] >= 0 else (size[i] + idx[i]) for i in range(len(idx))]
+
+              if any( idx[i] < 0 or idx[i] >= size[i] for i in range(len(idx))):
+                raise IndexError("index out of bounds")
+
+              return self.SetPixel(*(tuple(idx)+(value,)))
+
+            # the index parameter was an invalid set of objects
+            raise IndexError("invalid index")
+
+
+        def GetPixel(self, *idx):
+          """Returns the value of a pixel.
+
+             This method takes 2 parameters in 2D: the x and y index,
+             and 3 parameters in 3D: the x, y and z index."""
+
+          if len(idx) == 1:
+           idx = idx[0]
+
+          pixelID = self.GetPixelIDValue()
+          if pixelID == sitkUnknown:
+            raise Exception("invalid pixel type")
+          if pixelID == sitkInt8:
+            return self.__GetPixelAsInt8__( idx )
+          if pixelID == sitkUInt8 or pixelID == sitkLabelUInt8:
+            return self.__GetPixelAsUInt8__( idx )
+          if pixelID == sitkInt16:
+            return self.__GetPixelAsInt16__( idx )
+          if pixelID == sitkUInt16 or pixelID == sitkLabelUInt16:
+            return self.__GetPixelAsUInt16__( idx )
+          if pixelID == sitkInt32:
+            return self.__GetPixelAsInt32__( idx )
+          if pixelID == sitkUInt32 or pixelID == sitkLabelUInt32:
+            return self.__GetPixelAsUInt32__( idx )
+          if pixelID == sitkInt64:
+            return self.__GetPixelAsInt64__( idx )
+          if pixelID == sitkUInt64 or pixelID == sitkLabelUInt64:
+            return self.__GetPixelAsUInt64__( idx )
+          if pixelID == sitkFloat32:
+            return self.__GetPixelAsFloat__( idx )
+          if pixelID == sitkFloat64:
+            return self.__GetPixelAsDouble__( idx )
+
+          if pixelID == sitkVectorInt8:
+            return self.__GetPixelAsVectorInt8__( idx )
+          if pixelID == sitkVectorUInt8:
+            return self.__GetPixelAsVectorUInt8__( idx )
+          if pixelID == sitkVectorInt16:
+            return self.__GetPixelAsVectorInt16__( idx )
+          if pixelID == sitkVectorUInt16:
+            return self.__GetPixelAsVectorUInt16__( idx )
+          if pixelID == sitkVectorInt32:
+            return self.__GetPixelAsVectorInt32__( idx )
+          if pixelID == sitkVectorUInt32:
+            return self.__GetPixelAsVectorUInt32__( idx )
+          if pixelID == sitkVectorInt64:
+            return self.__GetPixelAsVectorInt64__( idx )
+          if pixelID == sitkVectorUInt64:
+            return self.__GetPixelAsVectorUInt64__( idx )
+          if pixelID == sitkVectorFloat32:
+            return self.__GetPixelAsVectorFloat32__( idx )
+          if pixelID == sitkVectorFloat64:
+            return self.__GetPixelAsVectorFloat64__( idx )
+
+          if pixelID == sitkComplexFloat32:
+            return self.__GetPixelAsComplexFloat32__( idx )
+          if pixelID == sitkComplexFloat64:
+            return self.__GetPixelAsComplexFloat64__( idx )
+
+          raise Exception("unknown pixel type")
+
+        def SetPixel(self, *args):
+          """Sets the value of a pixel.
+
+           This method takes 3 parameters in 2D: the x and y index then the value,
+           and 4 parameters in 3D: the x, y and z index then the value."""
+
+
+          pixelID = self.GetPixelIDValue()
+          if pixelID == sitkUnknown:
+            raise Exception("invalid pixel type")
+
+          if len(args) < 2:
+            raise Exception( "Wrong number of arguments, coordinates arguments then value" )
+          idx = args[:len(args)-1]
+          if len(idx) == 1:
+            idx = idx[0]
+          value = args[-1]
+
+          if pixelID == sitkInt8:
+            return self.__SetPixelAsInt8__( idx, value )
+          if pixelID == sitkUInt8 or pixelID == sitkLabelUInt8:
+            return self.__SetPixelAsUInt8__( idx, value )
+          if pixelID == sitkInt16:
+            return self.__SetPixelAsInt16__( idx, value )
+          if pixelID == sitkUInt16 or pixelID == sitkLabelUInt16:
+            return self.__SetPixelAsUInt16__( idx, value )
+          if pixelID == sitkInt32:
+            return self.__SetPixelAsInt32__( idx, value )
+          if pixelID == sitkUInt32 or pixelID == sitkLabelUInt32:
+            return self.__SetPixelAsUInt32__( idx, value )
+          if pixelID == sitkInt64:
+            return self.__SetPixelAsInt64__( idx, value )
+          if pixelID == sitkUInt64 or pixelID == sitkLabelUInt64:
+            return self.__SetPixelAsUInt64__( idx, value )
+          if pixelID == sitkFloat32:
+            return self.__SetPixelAsFloat__( idx, value )
+          if pixelID == sitkFloat64:
+            return self.__SetPixelAsDouble__( idx, value )
+
+          if pixelID == sitkVectorInt8:
+            return self.__SetPixelAsVectorInt8__( idx, value )
+          if pixelID == sitkVectorUInt8:
+            return self.__SetPixelAsVectorUInt8__( idx, value )
+          if pixelID == sitkVectorInt16:
+            return self.__SetPixelAsVectorInt16__( idx, value )
+          if pixelID == sitkVectorUInt16:
+            return self.__SetPixelAsVectorUInt16__( idx, value )
+          if pixelID == sitkVectorInt32:
+            return self.__SetPixelAsVectorInt32__( idx, value )
+          if pixelID == sitkVectorUInt32:
+            return self.__SetPixelAsVectorUInt32__( idx, value )
+          if pixelID == sitkVectorInt64:
+            return self.__SetPixelAsVectorInt64__( idx, value )
+          if pixelID == sitkVectorUInt64:
+            return self.__SetPixelAsVectorUInt64__( idx, value )
+          if pixelID == sitkVectorFloat32:
+            return self.__SetPixelAsVectorFloat32__( idx, value )
+          if pixelID == sitkVectorFloat64:
+            return self.__SetPixelAsVectorFloat64__( idx, value )
+
+          if pixelID == sitkComplexFloat32:
+            return self.__SetPixelAsComplexFloat32__( idx, value )
+          if pixelID == sitkComplexFloat64:
+            return self.__SetPixelAsComplexFloat64__( idx, value )
+
+          raise Exception("unknown pixel type")
+
+
+         %}
+
+
+
+}
+
+// This is included inline because SwigMethods (SimpleITKPYTHON_wrap.cxx)
+// is declared static.
+%{
+#include "sitkNumpyArrayConversion.cxx"
+%}
+// Numpy array conversion support
+%native(_GetMemoryViewFromImage) PyObject *sitk_GetMemoryViewFromImage( PyObject *self, PyObject *args );
+%native(_SetImageFromArray) PyObject *sitk_SetImageFromArray( PyObject *self, PyObject *args );
+
+%pythoncode %{
+
+HAVE_NUMPY = True
+try:
+    import numpy
+except ImportError:
+    HAVE_NUMPY = False
+
+
+def _get_numpy_dtype( sitkImage ):
+    """Given a SimpleITK image, returns the numpy.dtype which describes the data"""
+
+    if not HAVE_NUMPY:
+        raise ImportError('Numpy not available.')
+
+    # this is a mapping from sitk's pixel id to numpy's dtype
+    _sitk_np = {sitkUInt8:numpy.uint8,
+                sitkUInt16:numpy.uint16,
+                sitkUInt32:numpy.uint32,
+                sitkUInt64:numpy.uint64,
+                sitkInt8:numpy.int8,
+                sitkInt16:numpy.int16,
+                sitkInt32:numpy.int32,
+                sitkInt64:numpy.int64,
+                sitkFloat32:numpy.float32,
+                sitkFloat64:numpy.float64,
+                sitkComplexFloat32:numpy.complex64,
+                sitkComplexFloat64:numpy.complex128,
+                sitkVectorUInt8:numpy.uint8,
+                sitkVectorInt8:numpy.int8,
+                sitkVectorUInt16:numpy.uint16,
+                sitkVectorInt16:numpy.int16,
+                sitkVectorUInt32:numpy.uint32,
+                sitkVectorInt32:numpy.int32,
+                sitkVectorUInt64:numpy.uint64,
+                sitkVectorInt64:numpy.int64,
+                sitkVectorFloat32:numpy.float32,
+                sitkVectorFloat64:numpy.float64,
+                sitkLabelUInt8:numpy.uint8,
+                sitkLabelUInt16:numpy.uint16,
+                sitkLabelUInt32:numpy.uint32,
+                sitkLabelUInt64:numpy.uint64
+                }
+
+    return _sitk_np[ sitkImage.GetPixelIDValue() ]
+
+
+
+def _get_sitk_pixelid(numpy_array_type):
+    """Returns a SimpleITK PixelID given a numpy array."""
+
+    if not HAVE_NUMPY:
+        raise ImportError('Numpy not available.')
+
+    # This is a Mapping from numpy array types to sitks pixel types.
+    _np_sitk = {numpy.character:sitkUInt8,
+                numpy.uint8:sitkUInt8,
+                numpy.uint16:sitkUInt16,
+                numpy.uint32:sitkUInt32,
+                numpy.uint64:sitkUInt64,
+                numpy.int8:sitkInt8,
+                numpy.int16:sitkInt16,
+                numpy.int32:sitkInt32,
+                numpy.int64:sitkInt64,
+                numpy.float32:sitkFloat32,
+                numpy.float64:sitkFloat64,
+                numpy.complex64:sitkComplexFloat32,
+                numpy.complex128:sitkComplexFloat64
+                }
+
+    try:
+        return _np_sitk[numpy_array_type.dtype]
+    except KeyError:
+        for key in _np_sitk:
+            if numpy.issubdtype(numpy_array_type.dtype, key):
+                return _np_sitk[key]
+
+def _get_sitk_vector_pixelid(numpy_array_type):
+    """Returns a SimpleITK vecotr PixelID given a numpy array."""
+
+    if not HAVE_NUMPY:
+        raise ImportError('Numpy not available.')
+
+    # This is a Mapping from numpy array types to sitks pixel types.
+    _np_sitk = {numpy.character:sitkVectorUInt8,
+                numpy.uint8:sitkVectorUInt8,
+                numpy.uint16:sitkVectorUInt16,
+                numpy.uint32:sitkVectorUInt32,
+                numpy.uint64:sitkVectorUInt64,
+                numpy.int8:sitkVectorInt8,
+                numpy.int16:sitkVectorInt16,
+                numpy.int32:sitkVectorInt32,
+                numpy.int64:sitkVectorInt64,
+                numpy.float32:sitkVectorFloat32,
+                numpy.float64:sitkVectorFloat64,
+                }
+
+    try:
+        return _np_sitk[numpy_array_type.dtype]
+    except KeyError:
+        for key in _np_sitk:
+            if numpy.issubdtype(numpy_array_type.dtype, key):
+                return _np_sitk[key]
+
+
+# SimplyITK <-> Numpy Array conversion support.
+
+def GetArrayViewFromImage(image):
+    """Get a NumPy ndarray view of a SimpleITK Image.
+
+    Returns a Numpy ndarray object as a "view" of the SimpleITK's Image buffer. This reduces pixel buffer copies, but requires that the SimpleITK image object is kept around while the buffer is being used.
+
+
+    """
+
+    if not HAVE_NUMPY:
+        raise ImportError('NumPy not available.')
+
+
+    pixelID = image.GetPixelIDValue()
+    assert pixelID != sitkUnknown, "An SimpleITK image of Unknown pixel type should not exists!"
+
+    dtype = _get_numpy_dtype( image )
+
+    shape = image.GetSize();
+    if image.GetNumberOfComponentsPerPixel() > 1:
+      shape = ( image.GetNumberOfComponentsPerPixel(), ) + shape
+
+    image.MakeUnique()
+
+    imageMemoryView =  _SimpleITK._GetMemoryViewFromImage(image)
+    arrayView = numpy.asarray(imageMemoryView).view(dtype = dtype)
+    arrayView.shape = shape[::-1]
+
+    return arrayView
+
+def GetArrayFromImage(image):
+    """Get a NumPy ndarray from a SimpleITK Image.
+
+    This is a deep copy of the image buffer and is completely safe and without potential side effects.
+    """
+
+    # TODO: If the image is already not unique then a second copy may be made before the numpy copy is done.
+    arrayView = GetArrayViewFromImage(image)
+
+    # perform deep copy of the image buffer
+    return numpy.array(arrayView, copy=True)
+
+
+def GetImageFromArray( arr, isVector=False):
+    """Get a SimpleITK Image from a numpy array. If isVector is True, then a 3D array will be treated as a 2D vector image, otherwise it will be treated as a 3D image"""
+
+    if not HAVE_NUMPY:
+        raise ImportError('Numpy not available.')
+
+    z = numpy.asarray( arr )
+
+    assert z.ndim in ( 2, 3, 4 ), \
+      "Only arrays of 2, 3 or 4 dimensions are supported."
+
+    if ( z.ndim == 3 and isVector ) or (z.ndim == 4):
+      id = _get_sitk_vector_pixelid( z )
+      img = Image( z.shape[-2::-1] , id, z.shape[-1] )
+    elif z.ndim in ( 2, 3 ):
+      id = _get_sitk_pixelid( z )
+      img = Image( z.shape[::-1], id )
+
+    _SimpleITK._SetImageFromArray( z.tostring(), img )
+
+    return img
+%}
+
+
+
+// Enable Java classes derived from Command Execute method to be
+// called from C++
+%feature("director") itk::simple::Command;
+
+%extend itk::simple::ProcessObject {
+ int AddCommand( itk::simple::EventEnum e, PyObject *obj )
+ {
+   if (!PyCallable_Check(obj))
+     {
+     return 0;
+     }
+   itk::simple::PyCommand *cmd = NULL;
+   try
+     {
+       cmd = new itk::simple::PyCommand();
+       cmd->SetCallbackPyCallable(obj);
+       int ret = self->AddCommand(e,*cmd);
+       cmd->OwnedByProcessObjectsOn();
+       return ret;
+     }
+   catch(...)
+     {
+       delete cmd;
+       throw;
+     }
+ }
+};
+
+#endif
diff --git a/Wrapping/Python/PythonDocstrings.i b/Wrapping/Python/PythonDocstrings.i
new file mode 100644
index 0000000..6ddf3d5
--- /dev/null
+++ b/Wrapping/Python/PythonDocstrings.i
@@ -0,0 +1,40210 @@
+
+
+%feature("docstring") itk::Functor::BitwiseNot "
+
+Performs the C++ unary bitwise NOT operator.
+
+C++ includes: itkBitwiseNotFunctor.h
+";
+
+
+%feature("docstring") itk::Functor::DivFloor "
+
+Cast arguments to double, performs division then takes the floor.
+
+C++ includes: itkDivideFloorFunctor.h
+";
+
+
+%feature("docstring") itk::Functor::DivReal "
+
+Promotes arguments to real type and performs division.
+
+C++ includes: itkDivideRealFunctor.h
+";
+
+
+%feature("docstring") itk::Functor::UnaryMinus "
+C++ includes: itkUnaryMinusImageFilter.h
+";
+
+%feature("docstring")  itk::Functor::UnaryMinus::UnaryMinus "
+";
+
+%feature("docstring")  itk::Functor::UnaryMinus::~UnaryMinus "
+";
+
+
+%feature("docstring") itk::HashImageFilter "
+
+Generates a hash string from an image.
+
+
+
+This class utlizes low level buffer pointer access, to work with itk::Image and itk::VectorImage. It is modeled after the access an ImageFileWriter provides to an ImageIO.
+Todo
+Update in-place on to default after fixing bug in InPlaceImageFilter
+
+
+C++ includes: itkHashImageFilter.h
+";
+
+%feature("docstring")  itk::HashImageFilter::GetHash "
+
+Get the computed Hash values
+
+";
+
+%feature("docstring")  itk::HashImageFilter::GetHashOutput "
+";
+
+%feature("docstring")  itk::HashImageFilter::GetHashOutput "
+";
+
+%feature("docstring")  itk::HashImageFilter::itkGetMacro "
+";
+
+%feature("docstring")  itk::HashImageFilter::itkNewMacro "
+
+Method for creation through the object factory.
+
+";
+
+%feature("docstring")  itk::HashImageFilter::itkSetMacro "
+
+Set/Get hashing function as enumerated type
+
+";
+
+%feature("docstring")  itk::HashImageFilter::itkTypeMacro "
+
+Runtime information support.
+
+";
+
+%feature("docstring")  itk::HashImageFilter::MakeOutput "
+";
+
+
+%feature("docstring") itk::ImageIOFactoryRegisterManager "
+C++ includes: itkImageIOFactoryRegisterManager.h
+";
+
+%feature("docstring")  itk::ImageIOFactoryRegisterManager::ImageIOFactoryRegisterManager "
+";
+
+%feature("docstring")  itk::ImageIOFactoryRegisterManager::ImageIOFactoryRegisterManager "
+";
+
+
+%feature("docstring") itk::SliceImageFilter "
+
+Slices an image based on a starting index and a stopping index, and a
+step size.
+
+
+This class is designed to facilitate the implementation of extended
+sliced based indexing into images.
+
+The input and output image must be of the same dimension.
+
+The input parameters are a starting and stopping index as well as a
+stepping size. The staring index indicates the first pixels to used
+and for each dimension the index is incremented by the step until the
+index is equal to or \"beyond\" the stopping index. If the step is
+negative then the image will be revered in the dimension, and the
+stopping index is expected to be less then the starting index. If the
+stopping index is already beyond the starting then a image of zero
+size will be returned.
+
+The output image's starting index is always zero. The origin is the
+physical location of the starting index. The output directions cosine
+matrix is that of the input but with sign changes matching that of the
+step's sign.
+
+
+In certain combination such as with start=1, and step>1 while the
+physical location of the center of the pixel remains the same, the
+extent (edge to edge space) of the pixel will beyond the extent of the
+original image.
+
+
+C++ includes: itkSliceImageFilter.h
+";
+
+%feature("docstring")  itk::SliceImageFilter::GenerateInputRequestedRegion "
+";
+
+%feature("docstring")  itk::SliceImageFilter::GenerateOutputInformation "
+
+SliceImageFilter produces an image which is a different resolution and with a
+different pixel spacing than its input image.
+See:
+ ProcessObject::GenerateOutputInformaton()
+
+
+";
+
+%feature("docstring")  itk::SliceImageFilter::itkGetConstReferenceMacro "
+";
+
+%feature("docstring")  itk::SliceImageFilter::itkGetConstReferenceMacro "
+";
+
+%feature("docstring")  itk::SliceImageFilter::itkGetConstReferenceMacro "
+";
+
+%feature("docstring")  itk::SliceImageFilter::itkNewMacro "
+
+Method for creation through the object factory.
+
+";
+
+%feature("docstring")  itk::SliceImageFilter::itkSetMacro "
+
+Set/Get the first index extracted from the input image
+
+";
+
+%feature("docstring")  itk::SliceImageFilter::itkSetMacro "
+
+Set/Get the excluded end of the range
+
+";
+
+%feature("docstring")  itk::SliceImageFilter::itkSetMacro "
+
+Set/Get the stride of indexes extracted
+
+An exception will be generated if 0.
+
+";
+
+%feature("docstring")  itk::SliceImageFilter::itkStaticConstMacro "
+
+ImageDimension enumeration.
+
+";
+
+%feature("docstring")  itk::SliceImageFilter::itkStaticConstMacro "
+";
+
+%feature("docstring")  itk::SliceImageFilter::itkTypeMacro "
+
+Run-time type information (and related methods).
+
+";
+
+%feature("docstring")  itk::SliceImageFilter::SetStart "
+";
+
+%feature("docstring")  itk::SliceImageFilter::SetStep "
+";
+
+%feature("docstring")  itk::SliceImageFilter::SetStop "
+";
+
+
+%feature("docstring") itk::TransformIOFactoryRegisterManager "
+C++ includes: itkTransformIOFactoryRegisterManager.h
+";
+
+%feature("docstring")  itk::TransformIOFactoryRegisterManager::TransformIOFactoryRegisterManager "
+";
+
+%feature("docstring")  itk::TransformIOFactoryRegisterManager::TransformIOFactoryRegisterManager "
+";
+
+
+%feature("docstring") itk::simple::AbsImageFilter "
+
+Computes the absolute value of each pixel.
+
+
+itk::Math::abs() is used to perform the computation.
+
+Wiki Examples:
+
+All Examples
+
+Compute the absolute value of an image
+See:
+ itk::simple::Abs for the procedural interface
+
+ itk::AbsImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkAbsImageFilter.h
+";
+
+%feature("docstring")  itk::simple::AbsImageFilter::AbsImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::AbsImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::AbsImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::AbsImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::AbsImageFilter::~AbsImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::AbsoluteValueDifferenceImageFilter "
+
+Implements pixel-wise the computation of absolute value difference.
+
+
+This filter is parametrized over the types of the two input images and
+the type of the output image.
+
+Numeric conversions (castings) are done by the C++ defaults.
+
+The filter will walk over all the pixels in the two input images, and
+for each one of them it will do the following:
+
+
+Cast the input 1 pixel value to double .
+
+Cast the input 2 pixel value to double .
+
+Compute the difference of the two pixel values.
+
+Compute the absolute value of the difference.
+
+Cast the double value resulting from the absolute value to the pixel
+type of the output image.
+
+Store the casted value into the output image.
+ The filter expects all images to have the same dimension (e.g. all
+2D, or all 3D, or all ND).
+
+Wiki Examples:
+
+All Examples
+
+Compute the absolute value of the difference of corresponding pixels
+in two images
+See:
+ itk::simple::AbsoluteValueDifference for the procedural interface
+
+ itk::AbsoluteValueDifferenceImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkAbsoluteValueDifferenceImageFilter.h
+";
+
+%feature("docstring")  itk::simple::AbsoluteValueDifferenceImageFilter::AbsoluteValueDifferenceImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::AbsoluteValueDifferenceImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::AbsoluteValueDifferenceImageFilter::Execute "
+
+Execute the filter with an image and a constant
+
+";
+
+%feature("docstring")  itk::simple::AbsoluteValueDifferenceImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::AbsoluteValueDifferenceImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::AbsoluteValueDifferenceImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::AbsoluteValueDifferenceImageFilter::~AbsoluteValueDifferenceImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::AcosImageFilter "
+
+Computes the inverse cosine of each pixel.
+
+
+This filter is templated over the pixel type of the input image and
+the pixel type of the output image.
+
+The filter walks over all the pixels in the input image, and for each
+pixel does do the following:
+
+
+cast the pixel value to double ,
+
+apply the std::acos() function to the double value
+
+cast the double value resulting from std::acos() to the pixel type of
+the output image
+
+store the casted value into the output image.
+ The filter expects both images to have the same dimension (e.g. both
+2D, or both 3D, or both ND).
+See:
+ itk::simple::Acos for the procedural interface
+
+ itk::AcosImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkAcosImageFilter.h
+";
+
+%feature("docstring")  itk::simple::AcosImageFilter::AcosImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::AcosImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::AcosImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::AcosImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::AcosImageFilter::~AcosImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::AdaptiveHistogramEqualizationImageFilter "
+
+Power Law Adaptive Histogram Equalization.
+
+
+Histogram equalization modifies the contrast in an image. The AdaptiveHistogramEqualizationImageFilter is a superset of many contrast enhancing filters. By modifying its
+parameters (alpha, beta, and window), the AdaptiveHistogramEqualizationImageFilter can produce an adaptively equalized histogram or a version of unsharp
+mask (local mean subtraction). Instead of applying a strict histogram
+equalization in a window about a pixel, this filter prescribes a
+mapping function (power law) controlled by the parameters alpha and
+beta.
+
+The parameter alpha controls how much the filter acts like the
+classical histogram equalization method (alpha=0) to how much the
+filter acts like an unsharp mask (alpha=1).
+
+The parameter beta controls how much the filter acts like an unsharp
+mask (beta=0) to much the filter acts like pass through (beta=1, with
+alpha=1).
+
+The parameter window controls the size of the region over which local
+statistics are calculated.
+
+By altering alpha, beta and window, a host of equalization and unsharp
+masking filters is available.
+
+The boundary condition ignores the part of the neighborhood outside
+the image, and over-weights the valid part of the neighborhood.
+
+For detail description, reference \"Adaptive Image Contrast
+Enhancement using Generalizations of Histogram Equalization.\" J.Alex
+Stark. IEEE Transactions on Image Processing, May 2000.
+
+Wiki Examples:
+
+All Examples
+
+Adaptive histogram equalization
+See:
+ itk::simple::AdaptiveHistogramEqualization for the procedural interface
+
+ itk::AdaptiveHistogramEqualizationImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkAdaptiveHistogramEqualizationImageFilter.h
+";
+
+%feature("docstring")  itk::simple::AdaptiveHistogramEqualizationImageFilter::AdaptiveHistogramEqualizationImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::AdaptiveHistogramEqualizationImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::AdaptiveHistogramEqualizationImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::AdaptiveHistogramEqualizationImageFilter::GetAlpha "
+
+Set/Get the value of alpha. Alpha = 0 produces the adaptive histogram
+equalization (provided beta=0). Alpha = 1 produces an unsharp mask.
+Default is 0.3.
+
+";
+
+%feature("docstring")  itk::simple::AdaptiveHistogramEqualizationImageFilter::GetBeta "
+
+Set/Get the value of beta. If beta = 1 (and alpha = 1), then the
+output image matches the input image. As beta approaches 0, the filter
+behaves as an unsharp mask. Default is 0.3.
+
+";
+
+%feature("docstring")  itk::simple::AdaptiveHistogramEqualizationImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::AdaptiveHistogramEqualizationImageFilter::GetRadius "
+";
+
+%feature("docstring")  itk::simple::AdaptiveHistogramEqualizationImageFilter::GetUseLookupTable "
+
+Set/Get whether an optimized lookup table for the intensity mapping
+function is used. Default is off. Deprecated
+
+";
+
+%feature("docstring")  itk::simple::AdaptiveHistogramEqualizationImageFilter::SetAlpha "
+
+Set/Get the value of alpha. Alpha = 0 produces the adaptive histogram
+equalization (provided beta=0). Alpha = 1 produces an unsharp mask.
+Default is 0.3.
+
+";
+
+%feature("docstring")  itk::simple::AdaptiveHistogramEqualizationImageFilter::SetBeta "
+
+Set/Get the value of beta. If beta = 1 (and alpha = 1), then the
+output image matches the input image. As beta approaches 0, the filter
+behaves as an unsharp mask. Default is 0.3.
+
+";
+
+%feature("docstring")  itk::simple::AdaptiveHistogramEqualizationImageFilter::SetRadius "
+";
+
+%feature("docstring")  itk::simple::AdaptiveHistogramEqualizationImageFilter::SetRadius "
+
+Set the values of the Radius vector all to value
+
+";
+
+%feature("docstring")  itk::simple::AdaptiveHistogramEqualizationImageFilter::SetUseLookupTable "
+
+Set/Get whether an optimized lookup table for the intensity mapping
+function is used. Default is off. Deprecated
+
+";
+
+%feature("docstring")  itk::simple::AdaptiveHistogramEqualizationImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::AdaptiveHistogramEqualizationImageFilter::UseLookupTableOff "
+";
+
+%feature("docstring")  itk::simple::AdaptiveHistogramEqualizationImageFilter::UseLookupTableOn "
+
+Set the value of UseLookupTable to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::AdaptiveHistogramEqualizationImageFilter::~AdaptiveHistogramEqualizationImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::AddImageFilter "
+
+Pixel-wise addition of two images.
+
+
+This class is templated over the types of the two input images and the
+type of the output image. Numeric conversions (castings) are done by
+the C++ defaults.
+
+The pixel type of the input 1 image must have a valid definition of
+the operator+ with a pixel type of the image 2. This condition is
+required because internally this filter will perform the operation
+
+
+Additionally the type resulting from the sum, will be cast to the
+pixel type of the output image.
+
+The total operation over one pixel will be
+
+For example, this filter could be used directly for adding images
+whose pixels are vectors of the same dimension, and to store the
+resulting vector in an output image of vector pixels.
+
+The images to be added are set using the methods:
+
+Additionally, this filter can be used to add a constant to every pixel
+of an image by using
+
+
+WARNING:
+No numeric overflow checking is performed in this filter.
+Wiki Examples:
+
+All Examples
+
+Add two images together
+
+Add a constant to every pixel in an image
+See:
+ itk::simple::Add for the procedural interface
+
+ itk::AddImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkAddImageFilter.h
+";
+
+%feature("docstring")  itk::simple::AddImageFilter::AddImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::AddImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::AddImageFilter::Execute "
+
+Execute the filter with an image and a constant
+
+";
+
+%feature("docstring")  itk::simple::AddImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::AddImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::AddImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::AddImageFilter::~AddImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::AdditiveGaussianNoiseImageFilter "
+
+Alter an image with additive Gaussian white noise.
+
+
+Additive Gaussian white noise can be modeled as:
+
+
+$ I = I_0 + N $
+
+where $ I $ is the observed image, $ I_0 $ is the noise-free image and $ N $ is a normally distributed random variable of mean $ \\\\mu $ and variance $ \\\\sigma^2 $ :
+
+$ N \\\\sim \\\\mathcal{N}(\\\\mu, \\\\sigma^2) $
+ The noise is independent of the pixel intensities.
+
+
+Gaetan Lehmann
+ This code was contributed in the Insight Journal paper \"Noise
+Simulation\". https://hdl.handle.net/10380/3158
+See:
+ itk::simple::AdditiveGaussianNoise for the procedural interface
+
+ itk::AdditiveGaussianNoiseImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkAdditiveGaussianNoiseImageFilter.h
+";
+
+%feature("docstring")  itk::simple::AdditiveGaussianNoiseImageFilter::AdditiveGaussianNoiseImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::AdditiveGaussianNoiseImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::AdditiveGaussianNoiseImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::AdditiveGaussianNoiseImageFilter::GetMean "
+
+Set/Get the mean of the Gaussian distribution. Defaults to 0.0.
+
+";
+
+%feature("docstring")  itk::simple::AdditiveGaussianNoiseImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::AdditiveGaussianNoiseImageFilter::GetSeed "
+";
+
+%feature("docstring")  itk::simple::AdditiveGaussianNoiseImageFilter::GetStandardDeviation "
+
+Set/Get the standard deviation of the Gaussian distribution. Defaults
+to 1.0.
+
+";
+
+%feature("docstring")  itk::simple::AdditiveGaussianNoiseImageFilter::SetMean "
+
+Set/Get the mean of the Gaussian distribution. Defaults to 0.0.
+
+";
+
+%feature("docstring")  itk::simple::AdditiveGaussianNoiseImageFilter::SetSeed "
+";
+
+%feature("docstring")  itk::simple::AdditiveGaussianNoiseImageFilter::SetStandardDeviation "
+
+Set/Get the standard deviation of the Gaussian distribution. Defaults
+to 1.0.
+
+";
+
+%feature("docstring")  itk::simple::AdditiveGaussianNoiseImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::AdditiveGaussianNoiseImageFilter::~AdditiveGaussianNoiseImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::AffineTransform "
+
+An affine transformation about a fixed center with translation for a
+2D or 3D coordinate.
+
+
+
+See:
+ itk::AffineTransform
+
+
+C++ includes: sitkAffineTransform.h
+";
+
+%feature("docstring")  itk::simple::AffineTransform::AffineTransform "
+";
+
+%feature("docstring")  itk::simple::AffineTransform::AffineTransform "
+";
+
+%feature("docstring")  itk::simple::AffineTransform::AffineTransform "
+";
+
+%feature("docstring")  itk::simple::AffineTransform::AffineTransform "
+";
+
+%feature("docstring")  itk::simple::AffineTransform::GetCenter "
+";
+
+%feature("docstring")  itk::simple::AffineTransform::GetMatrix "
+";
+
+%feature("docstring")  itk::simple::AffineTransform::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::AffineTransform::GetTranslation "
+
+parameters
+
+";
+
+%feature("docstring")  itk::simple::AffineTransform::Rotate "
+";
+
+%feature("docstring")  itk::simple::AffineTransform::Scale "
+
+additional methods
+
+";
+
+%feature("docstring")  itk::simple::AffineTransform::Scale "
+";
+
+%feature("docstring")  itk::simple::AffineTransform::SetCenter "
+
+fixed parameter
+
+";
+
+%feature("docstring")  itk::simple::AffineTransform::SetMatrix "
+";
+
+%feature("docstring")  itk::simple::AffineTransform::SetTranslation "
+";
+
+%feature("docstring")  itk::simple::AffineTransform::Shear "
+";
+
+%feature("docstring")  itk::simple::AffineTransform::Translate "
+";
+
+
+%feature("docstring") itk::simple::AggregateLabelMapFilter "
+
+Collapses all labels into the first label.
+
+
+This filter takes a label map as input and visits the pixels of all
+labels and assigns them to the first label of the label map. At the
+end of the execution of this filter, the map will contain a single
+filter.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ ShapeLabelObject , RelabelComponentImageFilter
+
+ itk::simple::AggregateLabelMapFilter for the procedural interface
+
+ itk::AggregateLabelMapFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkAggregateLabelMapFilter.h
+";
+
+%feature("docstring")  itk::simple::AggregateLabelMapFilter::AggregateLabelMapFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::AggregateLabelMapFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::AggregateLabelMapFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::AggregateLabelMapFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::AggregateLabelMapFilter::~AggregateLabelMapFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::AndImageFilter "
+
+Implements the AND bitwise operator pixel-wise between two images.
+
+
+This class is templated over the types of the two input images and the
+type of the output image. Numeric conversions (castings) are done by
+the C++ defaults.
+
+Since the bitwise AND operation is only defined in C++ for integer
+types, the images passed to this filter must comply with the
+requirement of using integer pixel type.
+
+The total operation over one pixel will be Where \"&\" is the bitwise AND operator in C++.
+
+Wiki Examples:
+
+All Examples
+
+Binary AND two images
+See:
+ itk::simple::And for the procedural interface
+
+ itk::AndImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkAndImageFilter.h
+";
+
+%feature("docstring")  itk::simple::AndImageFilter::AndImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::AndImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::AndImageFilter::Execute "
+
+Execute the filter with an image and a constant
+
+";
+
+%feature("docstring")  itk::simple::AndImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::AndImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::AndImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::AndImageFilter::~AndImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::AntiAliasBinaryImageFilter "
+
+A method for estimation of a surface from a binary volume.
+
+
+
+This filter implements a surface-fitting method for estimation of a
+surface from a binary volume. This process can be used to reduce
+aliasing artifacts which result in visualization of binary partitioned
+surfaces.
+
+The binary volume (filter input) is used as a set of constraints in an
+iterative relaxation process of an estimated ND surface. The surface
+is described implicitly as the zero level set of a volume $ \\\\phi $ and allowed to deform under curvature flow. A set of constraints is
+imposed on this movement as follows:
+
+\\\\[ u_{i,j,k}^{n+1} = \\\\left\\\\{ \\\\begin{array}{ll}
+\\\\mbox{max} (u_{i,j,k}^{n} + \\\\Delta t H_{i,j,k}^{n}, 0) &
+\\\\mbox{\\\\f$B_{i,j,k} = 1\\\\f$} \\\\\\\\ \\\\mbox{min}
+(u_{i,j,k}^{n} + \\\\Delta t H_{i,j,k}^{n}, 0) &
+\\\\mbox{\\\\f$B_{i,j,k} = -1\\\\f$} \\\\end{array}\\\\right. \\\\]
+
+where $ u_{i,j,k}^{n} $ is the value of $ \\\\phi $ at discrete index $ (i,j,k) $ and iteration $ n $ , $ H $ is the gradient magnitude times mean curvature of $ \\\\phi $ , and $ B $ is the binary input volume, with 1 denoting an inside pixel and -1
+denoting an outside pixel.
+NOTES
+This implementation uses a sparse field level set solver instead of
+the narrow band implementation described in the reference below, which
+may introduce some differences in how fast and how accurately (in
+terms of RMS error) the solution converges.
+REFERENCES
+Whitaker, Ross. \"Reducing Aliasing Artifacts In Iso-Surfaces of
+Binary Volumes\" IEEE Volume Visualization and Graphics Symposium,
+October 2000, pp.23-32.
+PARAMETERS
+The MaximumRMSChange parameter is used to determine when the solution
+has converged. A lower value will result in a tighter-fitting
+solution, but will require more computations. Too low a value could
+put the solver into an infinite loop. Values should always be less
+than 1.0. A value of 0.07 is a good starting estimate.
+
+The MaximumIterations parameter can be used to halt the solution after
+a specified number of iterations.
+INPUT
+The input is an N-dimensional image of any type. It is assumed to be a
+binary image. The filter will use an isosurface value that is halfway
+between the min and max values in the image. A signed data type is not
+necessary for the input.
+OUTPUT
+The filter will output a level set image of real, signed values. The
+zero crossings of this (N-dimensional) image represent the position of
+the isosurface value of interest. Values outside the zero level set
+are negative and values inside the zero level set are positive values.
+IMPORTANT!
+The output image type you use to instantiate this filter should be a
+real valued scalar type. In other words: doubles or floats.
+USING THIS FILTER
+The filter is relatively straightforward to use. Tests and examples
+exist to illustrate. The important thing is to understand the input
+and output types so you can properly interperet your results.
+
+In the common case, the only parameter that will need to be set is the
+MaximumRMSChange parameter, which determines when the solver halts.
+Wiki Examples:
+
+All Examples
+
+Anti alias a binary image
+See:
+ itk::simple::AntiAliasBinary for the procedural interface
+
+ itk::AntiAliasBinaryImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkAntiAliasBinaryImageFilter.h
+";
+
+%feature("docstring")  itk::simple::AntiAliasBinaryImageFilter::AntiAliasBinaryImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::AntiAliasBinaryImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::AntiAliasBinaryImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::AntiAliasBinaryImageFilter::GetElapsedIterations "
+
+Number of iterations run.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::AntiAliasBinaryImageFilter::GetMaximumRMSError "
+";
+
+%feature("docstring")  itk::simple::AntiAliasBinaryImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::AntiAliasBinaryImageFilter::GetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::AntiAliasBinaryImageFilter::GetRMSChange "
+
+The Root Mean Square of the levelset upon termination.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::AntiAliasBinaryImageFilter::SetMaximumRMSError "
+";
+
+%feature("docstring")  itk::simple::AntiAliasBinaryImageFilter::SetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::AntiAliasBinaryImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::AntiAliasBinaryImageFilter::~AntiAliasBinaryImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ApproximateSignedDistanceMapImageFilter "
+
+Create a map of the approximate signed distance from the boundaries of
+a binary image.
+
+
+The ApproximateSignedDistanceMapImageFilter takes as input a binary image and produces a signed distance map.
+Each pixel value in the output contains the approximate distance from
+that pixel to the nearest \"object\" in the binary image. This filter
+differs from the DanielssonDistanceMapImageFilter in that it calculates the distance to the \"object edge\" for pixels
+within the object.
+
+Negative values in the output indicate that the pixel at that position
+is within an object in the input image. The absolute value of a
+negative pixel represents the approximate distance to the nearest
+object boundary pixel.
+
+WARNING: This filter requires that the output type be floating-point.
+Otherwise internal calculations will not be performed to the
+appropriate precision, resulting in completely incorrect (read: zero-
+valued) output.
+
+The distances computed by this filter are Chamfer distances, which are
+only an approximation to Euclidian distances, and are not as exact
+approximations as those calculated by the DanielssonDistanceMapImageFilter . On the other hand, this filter is faster.
+
+This filter requires that an \"inside value\" and \"outside value\" be
+set as parameters. The \"inside value\" is the intensity value of the
+binary image which corresponds to objects, and the \"outside value\"
+is the intensity of the background. (A typical binary image often
+represents objects as black (0) and background as white (usually 255),
+or vice-versa.) Note that this filter is slightly faster if the inside
+value is less than the outside value. Otherwise an extra iteration
+through the image is required.
+
+This filter uses the FastChamferDistanceImageFilter and the IsoContourDistanceImageFilter internally to perform the distance calculations.
+
+
+See:
+ DanielssonDistanceMapImageFilter
+
+ SignedDanielssonDistanceMapImageFilter
+
+ SignedMaurerDistanceMapImageFilter
+
+ FastChamferDistanceImageFilter
+
+ IsoContourDistanceImageFilter
+
+Zach Pincus
+Wiki Examples:
+
+All Examples
+
+Compute a distance map from objects in a binary image
+See:
+ itk::simple::ApproximateSignedDistanceMap for the procedural interface
+
+ itk::ApproximateSignedDistanceMapImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkApproximateSignedDistanceMapImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ApproximateSignedDistanceMapImageFilter::ApproximateSignedDistanceMapImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ApproximateSignedDistanceMapImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ApproximateSignedDistanceMapImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ApproximateSignedDistanceMapImageFilter::GetInsideValue "
+
+Set/Get intensity value representing the interior of objects in the
+mask.
+
+";
+
+%feature("docstring")  itk::simple::ApproximateSignedDistanceMapImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ApproximateSignedDistanceMapImageFilter::GetOutsideValue "
+
+Set/Get intensity value representing non-objects in the mask.
+
+";
+
+%feature("docstring")  itk::simple::ApproximateSignedDistanceMapImageFilter::SetInsideValue "
+
+Set/Get intensity value representing the interior of objects in the
+mask.
+
+";
+
+%feature("docstring")  itk::simple::ApproximateSignedDistanceMapImageFilter::SetOutsideValue "
+
+Set/Get intensity value representing non-objects in the mask.
+
+";
+
+%feature("docstring")  itk::simple::ApproximateSignedDistanceMapImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ApproximateSignedDistanceMapImageFilter::~ApproximateSignedDistanceMapImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::AsinImageFilter "
+
+Computes the sine of each pixel.
+
+
+This filter is templated over the pixel type of the input image and
+the pixel type of the output image.
+
+The filter walks over all the pixels in the input image, and for each
+pixel does the following:
+
+
+cast the pixel value to double ,
+
+apply the std::asin() function to the double value,
+
+cast the double value resulting from std::asin() to the pixel type of
+the output image,
+
+store the casted value into the output image.
+ The filter expects both images to have the same dimension (e.g. both
+2D, or both 3D, or both ND)
+See:
+ itk::simple::Asin for the procedural interface
+
+ itk::AsinImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkAsinImageFilter.h
+";
+
+%feature("docstring")  itk::simple::AsinImageFilter::AsinImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::AsinImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::AsinImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::AsinImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::AsinImageFilter::~AsinImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::Atan2ImageFilter "
+
+Computes two argument inverse tangent.
+
+
+The first argument to the atan function is provided by a pixel in the
+first input image (SetInput1() ) and the corresponding pixel in the
+second input image (SetInput2() ) is used as the second argument.
+
+This class is templated over the types of the two input images and the
+type of the output image. Numeric conversions (castings) are done by
+the C++ defaults.
+
+Both pixel input types are cast to double in order to be used as
+parameters of std::atan2() . The resulting double value is cast to the
+output pixel type.
+
+Wiki Examples:
+
+All Examples
+
+Compute the arctangent of each pixel.
+See:
+ itk::simple::Atan2 for the procedural interface
+
+ itk::Atan2ImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkAtan2ImageFilter.h
+";
+
+%feature("docstring")  itk::simple::Atan2ImageFilter::Atan2ImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::Atan2ImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::Atan2ImageFilter::Execute "
+
+Execute the filter with an image and a constant
+
+";
+
+%feature("docstring")  itk::simple::Atan2ImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::Atan2ImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::Atan2ImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::Atan2ImageFilter::~Atan2ImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::AtanImageFilter "
+
+Computes the one-argument inverse tangent of each pixel.
+
+
+This filter is templated over the pixel type of the input image and
+the pixel type of the output image.
+
+The filter walks over all the pixels in the input image, and for each
+pixel does the following:
+
+
+cast the pixel value to double ,
+
+apply the std::atan() function to the double value,
+
+cast the double value resulting from std::atan() to the pixel type of
+the output image,
+
+store the cast value into the output image.
+See:
+ itk::simple::Atan for the procedural interface
+
+ itk::AtanImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkAtanImageFilter.h
+";
+
+%feature("docstring")  itk::simple::AtanImageFilter::AtanImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::AtanImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::AtanImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::AtanImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::AtanImageFilter::~AtanImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BSplineTransform "
+
+A deformable transform over a bounded spatial domain using a BSpline
+representation for a 2D or 3D coordinate space.
+
+
+
+See:
+ itk::BSplineTransform
+
+
+C++ includes: sitkBSplineTransform.h
+";
+
+%feature("docstring")  itk::simple::BSplineTransform::BSplineTransform "
+";
+
+%feature("docstring")  itk::simple::BSplineTransform::BSplineTransform "
+";
+
+%feature("docstring")  itk::simple::BSplineTransform::BSplineTransform "
+";
+
+%feature("docstring")  itk::simple::BSplineTransform::GetCoefficientImages "
+
+Get a vector of the coefficient images representing the BSpline.
+
+
+A lazy shallow copy of the images from ITK are performed. If they are
+modified in SimpleITK a deep copy will occur. However, if the
+coefficients are modified in ITK, then no copy will occur and the
+images help by SimpleITK may change.
+
+";
+
+%feature("docstring")  itk::simple::BSplineTransform::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BSplineTransform::GetOrder "
+";
+
+%feature("docstring")  itk::simple::BSplineTransform::GetTransformDomainDirection "
+";
+
+%feature("docstring")  itk::simple::BSplineTransform::GetTransformDomainMeshSize "
+";
+
+%feature("docstring")  itk::simple::BSplineTransform::GetTransformDomainOrigin "
+";
+
+%feature("docstring")  itk::simple::BSplineTransform::GetTransformDomainPhysicalDimensions "
+";
+
+%feature("docstring")  itk::simple::BSplineTransform::SetTransformDomainDirection "
+
+parameters fixed parameter
+
+";
+
+%feature("docstring")  itk::simple::BSplineTransform::SetTransformDomainMeshSize "
+";
+
+%feature("docstring")  itk::simple::BSplineTransform::SetTransformDomainOrigin "
+";
+
+%feature("docstring")  itk::simple::BSplineTransform::SetTransformDomainPhysicalDimensions "
+";
+
+
+%feature("docstring") itk::simple::BSplineTransformInitializerFilter "
+
+BSplineTransformInitializerFilter is a helper class intended to initialize the control point grid such
+that it has a physically consistent definition. It sets the transform
+domain origin, physical dimensions and direction from information
+obtained from the image. It also sets the mesh size if asked to do so
+by calling SetTransformDomainMeshSize()before calling InitializeTransform().
+
+
+
+Luis Ibanez
+ Nick Tustison
+See:
+ itk::simple::BSplineTransformInitializer for the procedural interface
+
+ itk::BSplineTransformInitializer for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBSplineTransformInitializerFilter.h
+";
+
+%feature("docstring")  itk::simple::BSplineTransformInitializerFilter::BSplineTransformInitializerFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BSplineTransformInitializerFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::BSplineTransformInitializerFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::BSplineTransformInitializerFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BSplineTransformInitializerFilter::GetOrder "
+";
+
+%feature("docstring")  itk::simple::BSplineTransformInitializerFilter::GetTransformDomainMeshSize "
+";
+
+%feature("docstring")  itk::simple::BSplineTransformInitializerFilter::SetOrder "
+
+The order of the bspline in the output BSplineTransform. This value effects the number of control points.
+
+";
+
+%feature("docstring")  itk::simple::BSplineTransformInitializerFilter::SetTransformDomainMeshSize "
+
+Allow the user to set the mesh size of the transform via the
+initializer even though the initializer does not do anything with that
+information. Defeault = 1^ImageDimension.
+
+";
+
+%feature("docstring")  itk::simple::BSplineTransformInitializerFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BSplineTransformInitializerFilter::~BSplineTransformInitializerFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BilateralImageFilter "
+
+Blurs an image while preserving edges.
+
+
+This filter uses bilateral filtering to blur an image using both
+domain and range \"neighborhoods\". Pixels that are close to a pixel
+in the image domain and similar to a pixel in the image range are used
+to calculate the filtered value. Two gaussian kernels (one in the
+image domain and one in the image range) are used to smooth the image.
+The result is an image that is smoothed in homogeneous regions yet has
+edges preserved. The result is similar to anisotropic diffusion but
+the implementation in non-iterative. Another benefit to bilateral
+filtering is that any distance metric can be used for kernel smoothing
+the image range. Hence, color images can be smoothed as vector images,
+using the CIE distances between intensity values as the similarity
+metric (the Gaussian kernel for the image domain is evaluated using
+CIE distances). A separate version of this filter will be designed for
+color and vector images.
+
+Bilateral filtering is capable of reducing the noise in an image by an
+order of magnitude while maintaining edges.
+
+The bilateral operator used here was described by Tomasi and Manduchi
+(Bilateral Filtering for Gray and ColorImages. IEEE ICCV. 1998.)
+
+
+See:
+ GaussianOperator
+
+ RecursiveGaussianImageFilter
+
+ DiscreteGaussianImageFilter
+
+ AnisotropicDiffusionImageFilter
+
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+ TodoSupport color images
+
+Support vector images
+
+Wiki Examples:
+
+All Examples
+
+Bilateral filter an image
+See:
+ itk::simple::Bilateral for the procedural interface
+
+ itk::BilateralImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkBilateralImageFilter.h
+";
+
+%feature("docstring")  itk::simple::BilateralImageFilter::BilateralImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BilateralImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::BilateralImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::BilateralImageFilter::GetDomainSigma "
+
+Standard get/set macros for filter parameters. DomainSigma is
+specified in the same units as the Image spacing. RangeSigma is specified in the units of intensity.
+
+";
+
+%feature("docstring")  itk::simple::BilateralImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BilateralImageFilter::GetNumberOfRangeGaussianSamples "
+
+Set/Get the number of samples in the approximation to the Gaussian
+used for the range smoothing. Samples are only generated in the range
+of [0, 4*m_RangeSigma]. Default is 100.
+
+";
+
+%feature("docstring")  itk::simple::BilateralImageFilter::GetRangeSigma "
+
+Standard get/set macros for filter parameters. DomainSigma is
+specified in the same units as the Image spacing. RangeSigma is specified in the units of intensity.
+
+";
+
+%feature("docstring")  itk::simple::BilateralImageFilter::SetDomainSigma "
+
+Convenience get/set methods for setting all domain parameters to the
+same values.
+
+";
+
+%feature("docstring")  itk::simple::BilateralImageFilter::SetNumberOfRangeGaussianSamples "
+
+Set/Get the number of samples in the approximation to the Gaussian
+used for the range smoothing. Samples are only generated in the range
+of [0, 4*m_RangeSigma]. Default is 100.
+
+";
+
+%feature("docstring")  itk::simple::BilateralImageFilter::SetRangeSigma "
+
+Standard get/set macros for filter parameters. DomainSigma is
+specified in the same units as the Image spacing. RangeSigma is specified in the units of intensity.
+
+";
+
+%feature("docstring")  itk::simple::BilateralImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BilateralImageFilter::~BilateralImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BinShrinkImageFilter "
+
+Reduce the size of an image by an integer factor in each dimension
+while performing averaging of an input neighborhood.
+
+
+The output image size in each dimension is given by:
+
+outputSize[j] = max( std::floor(inputSize[j]/shrinkFactor[j]), 1 );
+
+The algorithm implemented can be describe with the following equation
+for 2D: \\\\[ \\\\mathsf{I}_{out}(x_o,x_1) =
+\\\\frac{\\\\sum_{i=0}^{f_0}\\\\sum_{j=0}^{f_1}\\\\mathsf{I}_{in}(f_0
+x_o+i,f_1 x_1+j)}{f_0 f_1} \\\\]
+
+This filter is implemented so that the starting extent of the first
+pixel of the output matches that of the input.
+
+The change in image geometry from a 5x5 image binned by a factor of
+2x2. This code was contributed in the Insight Journal paper:
+\"BinShrink: A multi-resolution filter with cache efficient
+averaging\" by Lowekamp B., Chen D. https://hdl.handle.net/10380/3450
+See:
+ itk::simple::BinShrink for the procedural interface
+
+ itk::BinShrinkImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBinShrinkImageFilter.h
+";
+
+%feature("docstring")  itk::simple::BinShrinkImageFilter::BinShrinkImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BinShrinkImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::BinShrinkImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::BinShrinkImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BinShrinkImageFilter::GetShrinkFactors "
+
+Get the shrink factors.
+
+";
+
+%feature("docstring")  itk::simple::BinShrinkImageFilter::SetShrinkFactor "
+
+Custom public declarations
+
+";
+
+%feature("docstring")  itk::simple::BinShrinkImageFilter::SetShrinkFactors "
+
+Set the shrink factors. Values are clamped to a minimum value of 1.
+Default is 1 for all dimensions.
+
+";
+
+%feature("docstring")  itk::simple::BinShrinkImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BinShrinkImageFilter::~BinShrinkImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BinaryClosingByReconstructionImageFilter "
+
+binary closing by reconstruction of an image.
+
+
+This filter removes small (i.e., smaller than the structuring element)
+holes in the image. It is defined as: Closing(f) =
+ReconstructionByErosion(Dilation(f)).
+
+The structuring element is assumed to be composed of binary values
+(zero or one). Only elements of the structuring element having values
+> 0 are candidates for affecting the center pixel.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+See:
+ MorphologyImageFilter , ClosingByReconstructionImageFilter , BinaryOpeningByReconstructionImageFilter
+
+ itk::simple::BinaryClosingByReconstruction for the procedural interface
+
+ itk::BinaryClosingByReconstructionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBinaryClosingByReconstructionImageFilter.h
+";
+
+%feature("docstring")  itk::simple::BinaryClosingByReconstructionImageFilter::BinaryClosingByReconstructionImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryClosingByReconstructionImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::BinaryClosingByReconstructionImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryClosingByReconstructionImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::BinaryClosingByReconstructionImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::BinaryClosingByReconstructionImageFilter::GetForegroundValue "
+
+Get the value in the image considered as \"foreground\". Defaults to
+maximum value of InputPixelType.
+
+";
+
+%feature("docstring")  itk::simple::BinaryClosingByReconstructionImageFilter::GetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::BinaryClosingByReconstructionImageFilter::GetKernelRadius "
+";
+
+%feature("docstring")  itk::simple::BinaryClosingByReconstructionImageFilter::GetKernelType "
+";
+
+%feature("docstring")  itk::simple::BinaryClosingByReconstructionImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BinaryClosingByReconstructionImageFilter::SetForegroundValue "
+
+Set the value in the image to consider as \"foreground\". Defaults to
+maximum value of InputPixelType.
+
+";
+
+%feature("docstring")  itk::simple::BinaryClosingByReconstructionImageFilter::SetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::BinaryClosingByReconstructionImageFilter::SetKernelRadius "
+
+Kernel radius as a scale for isotropic structures
+
+";
+
+%feature("docstring")  itk::simple::BinaryClosingByReconstructionImageFilter::SetKernelRadius "
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+";
+
+%feature("docstring")  itk::simple::BinaryClosingByReconstructionImageFilter::SetKernelType "
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+";
+
+%feature("docstring")  itk::simple::BinaryClosingByReconstructionImageFilter::SetKernelType "
+";
+
+%feature("docstring")  itk::simple::BinaryClosingByReconstructionImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BinaryClosingByReconstructionImageFilter::~BinaryClosingByReconstructionImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BinaryContourImageFilter "
+
+Labels the pixels on the border of the objects in a binary image.
+
+
+BinaryContourImageFilter takes a binary image as input, where the pixels in the objects are
+the pixels with a value equal to ForegroundValue. Only the pixels on
+the contours of the objects are kept. The pixels not on the border are
+changed to BackgroundValue.
+
+The connectivity can be changed to minimum or maximum connectivity
+with SetFullyConnected() . Full connectivity produces thicker contours.
+
+https://hdl.handle.net/1926/1352
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ LabelContourImageFilter BinaryErodeImageFilter SimpleContourExtractorImageFilter
+Wiki Examples:
+
+All Examples
+
+Extract the boundaries of connected regions in a binary image
+
+Extract the inner and outer boundaries of blobs in a binary image
+See:
+ itk::simple::BinaryContour for the procedural interface
+
+ itk::BinaryContourImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkBinaryContourImageFilter.h
+";
+
+%feature("docstring")  itk::simple::BinaryContourImageFilter::BinaryContourImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryContourImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::BinaryContourImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryContourImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::BinaryContourImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::BinaryContourImageFilter::GetBackgroundValue "
+
+Set/Get the background value used to mark the pixels not on the border
+of the objects.
+
+";
+
+%feature("docstring")  itk::simple::BinaryContourImageFilter::GetForegroundValue "
+
+Set/Get the foreground value used to identify the objects in the input
+and output images.
+
+";
+
+%feature("docstring")  itk::simple::BinaryContourImageFilter::GetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::BinaryContourImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BinaryContourImageFilter::SetBackgroundValue "
+
+Set/Get the background value used to mark the pixels not on the border
+of the objects.
+
+";
+
+%feature("docstring")  itk::simple::BinaryContourImageFilter::SetForegroundValue "
+
+Set/Get the foreground value used to identify the objects in the input
+and output images.
+
+";
+
+%feature("docstring")  itk::simple::BinaryContourImageFilter::SetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::BinaryContourImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BinaryContourImageFilter::~BinaryContourImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BinaryDilateImageFilter "
+
+Fast binary dilation.
+
+
+BinaryDilateImageFilter is a binary dilation morphologic operation. This implementation is
+based on the papers:
+
+L.Vincent \"Morphological transformations of binary images with
+arbitrary structuring elements\", and
+
+N.Nikopoulos et al. \"An efficient algorithm for 3d binary
+morphological transformations with 3d structuring elements for
+arbitrary size and shape\". IEEE Transactions on Image Processing. Vol. 9. No. 3. 2000. pp. 283-286.
+
+Gray scale images can be processed as binary images by selecting a
+\"DilateValue\". Pixel values matching the dilate value are considered
+the \"foreground\" and all other pixels are \"background\". This is
+useful in processing segmented images where all pixels in segment #1
+have value 1 and pixels in segment #2 have value 2, etc. A particular
+\"segment number\" can be processed. DilateValue defaults to the
+maximum possible value of the PixelType.
+
+The structuring element is assumed to be composed of binary values
+(zero or one). Only elements of the structuring element having values
+> 0 are candidates for affecting the center pixel. A reasonable choice
+of structuring element is itk::BinaryBallStructuringElement .
+
+
+See:
+ ImageToImageFilter BinaryErodeImageFilter BinaryMorphologyImageFilter
+Wiki Examples:
+
+All Examples
+
+Dilate a binary image
+See:
+ itk::simple::BinaryDilate for the procedural interface
+
+ itk::BinaryDilateImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkBinaryDilateImageFilter.h
+";
+
+%feature("docstring")  itk::simple::BinaryDilateImageFilter::BinaryDilateImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryDilateImageFilter::BoundaryToForegroundOff "
+";
+
+%feature("docstring")  itk::simple::BinaryDilateImageFilter::BoundaryToForegroundOn "
+
+Set the value of BoundaryToForeground to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::BinaryDilateImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::BinaryDilateImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryDilateImageFilter::GetBackgroundValue "
+";
+
+%feature("docstring")  itk::simple::BinaryDilateImageFilter::GetBoundaryToForeground "
+";
+
+%feature("docstring")  itk::simple::BinaryDilateImageFilter::GetForegroundValue "
+";
+
+%feature("docstring")  itk::simple::BinaryDilateImageFilter::GetKernelRadius "
+";
+
+%feature("docstring")  itk::simple::BinaryDilateImageFilter::GetKernelType "
+";
+
+%feature("docstring")  itk::simple::BinaryDilateImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BinaryDilateImageFilter::SetBackgroundValue "
+";
+
+%feature("docstring")  itk::simple::BinaryDilateImageFilter::SetBoundaryToForeground "
+";
+
+%feature("docstring")  itk::simple::BinaryDilateImageFilter::SetForegroundValue "
+";
+
+%feature("docstring")  itk::simple::BinaryDilateImageFilter::SetKernelRadius "
+
+Kernel radius as a scale for isotropic structures
+
+";
+
+%feature("docstring")  itk::simple::BinaryDilateImageFilter::SetKernelRadius "
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+";
+
+%feature("docstring")  itk::simple::BinaryDilateImageFilter::SetKernelType "
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+";
+
+%feature("docstring")  itk::simple::BinaryDilateImageFilter::SetKernelType "
+";
+
+%feature("docstring")  itk::simple::BinaryDilateImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BinaryDilateImageFilter::~BinaryDilateImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BinaryErodeImageFilter "
+
+Fast binary erosion.
+
+
+BinaryErodeImageFilter is a binary erosion morphologic operation. This implementation is
+based on the papers:
+
+L.Vincent \"Morphological transformations of binary images with
+arbitrary structuring elements\", and
+
+N.Nikopoulos et al. \"An efficient algorithm for 3d binary
+morphological transformations with 3d structuring elements for
+arbitrary size and shape\". IEEE Transactions on Image Processing. Vol. 9. No. 3. 2000. pp. 283-286.
+
+Gray scale images can be processed as binary images by selecting a
+\"ErodeValue\". Pixel values matching the erode value are considered
+the \"foreground\" and all other pixels are \"background\". This is
+useful in processing segmented images where all pixels in segment #1
+have value 1 and pixels in segment #2 have value 2, etc. A particular
+\"segment number\" can be processed. ErodeValue defaults to the
+maximum possible value of the PixelType. The eroded pixels will
+receive the BackgroundValue (defaults to 0).
+
+The structuring element is assumed to be composed of binary values
+(zero or one). Only elements of the structuring element having values
+> 0 are candidates for affecting the center pixel. A reasonable choice
+of structuring element is itk::BinaryBallStructuringElement .
+
+
+See:
+ ImageToImageFilter BinaryDilateImageFilter BinaryMorphologyImageFilter
+Wiki Examples:
+
+All Examples
+
+Erode a binary image
+See:
+ itk::simple::BinaryErode for the procedural interface
+
+ itk::BinaryErodeImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkBinaryErodeImageFilter.h
+";
+
+%feature("docstring")  itk::simple::BinaryErodeImageFilter::BinaryErodeImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryErodeImageFilter::BoundaryToForegroundOff "
+";
+
+%feature("docstring")  itk::simple::BinaryErodeImageFilter::BoundaryToForegroundOn "
+
+Set the value of BoundaryToForeground to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::BinaryErodeImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::BinaryErodeImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryErodeImageFilter::GetBackgroundValue "
+";
+
+%feature("docstring")  itk::simple::BinaryErodeImageFilter::GetBoundaryToForeground "
+";
+
+%feature("docstring")  itk::simple::BinaryErodeImageFilter::GetForegroundValue "
+";
+
+%feature("docstring")  itk::simple::BinaryErodeImageFilter::GetKernelRadius "
+";
+
+%feature("docstring")  itk::simple::BinaryErodeImageFilter::GetKernelType "
+";
+
+%feature("docstring")  itk::simple::BinaryErodeImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BinaryErodeImageFilter::SetBackgroundValue "
+";
+
+%feature("docstring")  itk::simple::BinaryErodeImageFilter::SetBoundaryToForeground "
+";
+
+%feature("docstring")  itk::simple::BinaryErodeImageFilter::SetForegroundValue "
+";
+
+%feature("docstring")  itk::simple::BinaryErodeImageFilter::SetKernelRadius "
+
+Kernel radius as a scale for isotropic structures
+
+";
+
+%feature("docstring")  itk::simple::BinaryErodeImageFilter::SetKernelRadius "
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+";
+
+%feature("docstring")  itk::simple::BinaryErodeImageFilter::SetKernelType "
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+";
+
+%feature("docstring")  itk::simple::BinaryErodeImageFilter::SetKernelType "
+";
+
+%feature("docstring")  itk::simple::BinaryErodeImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BinaryErodeImageFilter::~BinaryErodeImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BinaryFillholeImageFilter "
+
+Remove holes not connected to the boundary of the image.
+
+
+BinaryFillholeImageFilter fills holes in a binary image.
+
+Geodesic morphology and the Fillhole algorithm is described in Chapter
+6 of Pierre Soille's book \"Morphological Image Analysis: Principles
+and Applications\", Second Edition, Springer, 2003.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+See:
+ GrayscaleFillholeImageFilter
+
+ itk::simple::BinaryFillhole for the procedural interface
+
+ itk::BinaryFillholeImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBinaryFillholeImageFilter.h
+";
+
+%feature("docstring")  itk::simple::BinaryFillholeImageFilter::BinaryFillholeImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryFillholeImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::BinaryFillholeImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryFillholeImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::BinaryFillholeImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::BinaryFillholeImageFilter::GetForegroundValue "
+
+Get the value in the image considered as \"foreground\". Defaults to
+maximum value of InputPixelType.
+
+";
+
+%feature("docstring")  itk::simple::BinaryFillholeImageFilter::GetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::BinaryFillholeImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BinaryFillholeImageFilter::SetForegroundValue "
+
+Set the value in the image to consider as \"foreground\". Defaults to
+maximum value of InputPixelType.
+
+";
+
+%feature("docstring")  itk::simple::BinaryFillholeImageFilter::SetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::BinaryFillholeImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BinaryFillholeImageFilter::~BinaryFillholeImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BinaryGrindPeakImageFilter "
+
+Remove the objects not connected to the boundary of the image.
+
+
+BinaryGrindPeakImageFilter ginds peaks in a grayscale image.
+
+Geodesic morphology and the grind peak algorithm is described in
+Chapter 6 of Pierre Soille's book \"Morphological Image Analysis:
+Principles and Applications\", Second Edition, Springer, 2003.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+See:
+ GrayscaleGrindPeakImageFilter
+
+ itk::simple::BinaryGrindPeak for the procedural interface
+
+ itk::BinaryGrindPeakImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBinaryGrindPeakImageFilter.h
+";
+
+%feature("docstring")  itk::simple::BinaryGrindPeakImageFilter::BinaryGrindPeakImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryGrindPeakImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::BinaryGrindPeakImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryGrindPeakImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::BinaryGrindPeakImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::BinaryGrindPeakImageFilter::GetBackgroundValue "
+
+Set the value in eroded part of the image. Defaults to zero
+
+";
+
+%feature("docstring")  itk::simple::BinaryGrindPeakImageFilter::GetForegroundValue "
+
+Get the value in the image considered as \"foreground\". Defaults to
+maximum value of InputPixelType.
+
+";
+
+%feature("docstring")  itk::simple::BinaryGrindPeakImageFilter::GetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::BinaryGrindPeakImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BinaryGrindPeakImageFilter::SetBackgroundValue "
+
+Set the value in eroded part of the image. Defaults to zero
+
+";
+
+%feature("docstring")  itk::simple::BinaryGrindPeakImageFilter::SetForegroundValue "
+
+Set the value in the image to consider as \"foreground\". Defaults to
+maximum value of InputPixelType.
+
+";
+
+%feature("docstring")  itk::simple::BinaryGrindPeakImageFilter::SetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::BinaryGrindPeakImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BinaryGrindPeakImageFilter::~BinaryGrindPeakImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BinaryImageToLabelMapFilter "
+
+Label the connected components in a binary image and produce a
+collection of label objects.
+
+
+BinaryImageToLabelMapFilter labels the objects in a binary image. Each distinct object is
+assigned a unique label. The final object labels start with 1 and are
+consecutive. Objects that are reached earlier by a raster order scan
+have a lower label.
+
+The GetOutput() function of this class returns an itk::LabelMap .
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ ConnectedComponentImageFilter , LabelImageToLabelMapFilter , LabelMap , LabelObject
+Wiki Examples:
+
+All Examples
+
+Label binary regions in an image
+See:
+ itk::simple::BinaryImageToLabelMapFilter for the procedural interface
+
+ itk::BinaryImageToLabelMapFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkBinaryImageToLabelMapFilter.h
+";
+
+%feature("docstring")  itk::simple::BinaryImageToLabelMapFilter::BinaryImageToLabelMapFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryImageToLabelMapFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::BinaryImageToLabelMapFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryImageToLabelMapFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::BinaryImageToLabelMapFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::BinaryImageToLabelMapFilter::GetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::BinaryImageToLabelMapFilter::GetInputForegroundValue "
+
+Set/Get the value to be consider \"foreground\" in the input image.
+Defaults to NumericTraits<InputPixelType>::max() .
+
+";
+
+%feature("docstring")  itk::simple::BinaryImageToLabelMapFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BinaryImageToLabelMapFilter::GetOutputBackgroundValue "
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<OutputPixelType>::NonpositiveMin() .
+
+";
+
+%feature("docstring")  itk::simple::BinaryImageToLabelMapFilter::SetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::BinaryImageToLabelMapFilter::SetInputForegroundValue "
+
+Set/Get the value to be consider \"foreground\" in the input image.
+Defaults to NumericTraits<InputPixelType>::max() .
+
+";
+
+%feature("docstring")  itk::simple::BinaryImageToLabelMapFilter::SetOutputBackgroundValue "
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<OutputPixelType>::NonpositiveMin() .
+
+";
+
+%feature("docstring")  itk::simple::BinaryImageToLabelMapFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BinaryImageToLabelMapFilter::~BinaryImageToLabelMapFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BinaryMagnitudeImageFilter "
+
+Computes the square root of the sum of squares of corresponding input
+pixels.
+
+
+This filter is templated over the types of the two input images and
+the type of the output image.
+
+Numeric conversions (castings) are done by the C++ defaults.
+
+The filter walks over all of the pixels in the two input images, and
+for each pixel does the following:
+
+
+cast the input 1 pixel value to double
+
+cast the input 2 pixel value to double
+
+compute the sum of squares of the two pixel values
+
+compute the square root of the sum
+
+cast the double value resulting from std::sqrt() to the pixel type of
+the output image
+
+store the cast value into the output image.
+ The filter expects all images to have the same dimension (e.g. all
+2D, or all 3D, or all ND)
+See:
+ itk::simple::BinaryMagnitude for the procedural interface
+
+ itk::BinaryMagnitudeImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBinaryMagnitudeImageFilter.h
+";
+
+%feature("docstring")  itk::simple::BinaryMagnitudeImageFilter::BinaryMagnitudeImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryMagnitudeImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::BinaryMagnitudeImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BinaryMagnitudeImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BinaryMagnitudeImageFilter::~BinaryMagnitudeImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BinaryMedianImageFilter "
+
+Applies a version of the median filter optimized for binary images.
+
+
+This filter was contributed by Bjorn Hanch Sollie after identifying
+that the generic Median filter performed unnecessary operations when
+the input image is binary.
+
+This filter computes an image where a given pixel is the median value
+of the pixels in a neighborhood about the corresponding input pixel.
+For the case of binary images the median can be obtained by simply
+counting the neighbors that are foreground.
+
+A median filter is one of the family of nonlinear filters. It is used
+to smooth an image without being biased by outliers or shot noise.
+
+
+See:
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+
+ itk::simple::BinaryMedian for the procedural interface
+
+ itk::BinaryMedianImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBinaryMedianImageFilter.h
+";
+
+%feature("docstring")  itk::simple::BinaryMedianImageFilter::BinaryMedianImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryMedianImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::BinaryMedianImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryMedianImageFilter::GetBackgroundValue "
+
+Get the value associated with the Foreground (or the object) on the
+binary input image and the Background .
+
+";
+
+%feature("docstring")  itk::simple::BinaryMedianImageFilter::GetForegroundValue "
+
+Get the value associated with the Foreground (or the object) on the
+binary input image and the Background .
+
+";
+
+%feature("docstring")  itk::simple::BinaryMedianImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BinaryMedianImageFilter::GetRadius "
+
+Get the radius of the neighborhood used to compute the median
+
+";
+
+%feature("docstring")  itk::simple::BinaryMedianImageFilter::SetBackgroundValue "
+
+Set the value associated with the Foreground (or the object) on the
+binary input image and the Background .
+
+";
+
+%feature("docstring")  itk::simple::BinaryMedianImageFilter::SetForegroundValue "
+
+Set the value associated with the Foreground (or the object) on the
+binary input image and the Background .
+
+";
+
+%feature("docstring")  itk::simple::BinaryMedianImageFilter::SetRadius "
+
+Set the radius of the neighborhood used to compute the median.
+
+";
+
+%feature("docstring")  itk::simple::BinaryMedianImageFilter::SetRadius "
+
+Set the values of the Radius vector all to value
+
+";
+
+%feature("docstring")  itk::simple::BinaryMedianImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BinaryMedianImageFilter::~BinaryMedianImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BinaryMinMaxCurvatureFlowImageFilter "
+
+Denoise a binary image using min/max curvature flow.
+
+
+BinaryMinMaxCurvatureFlowImageFilter implements a curvature driven image denosing algorithm. This filter
+assumes that the image is essentially binary: consisting of two
+classes. Iso-brightness contours in the input image are viewed as a
+level set. The level set is then evolved using a curvature-based speed
+function:
+
+\\\\[ I_t = F_{\\\\mbox{minmax}} |\\\\nabla I| \\\\]
+
+where $ F_{\\\\mbox{minmax}} = \\\\min(\\\\kappa,0) $ if $ \\\\mbox{Avg}_{\\\\mbox{stencil}}(x) $ is less than or equal to $ T_{thresold} $ and $ \\\\max(\\\\kappa,0) $ , otherwise. $ \\\\kappa $ is the mean curvature of the iso-brightness contour at point $ x $ .
+
+In min/max curvature flow, movement is turned on or off depending on
+the scale of the noise one wants to remove. Switching depends on the
+average image value of a region of radius $ R $ around each point. The choice of $ R $ , the stencil radius, governs the scale of the noise to be removed.
+
+The threshold value $ T_{threshold} $ is a user specified value which discriminates between the two pixel
+classes.
+
+This filter make use of the multi-threaded finite difference solver
+hierarchy. Updates are computed using a BinaryMinMaxCurvatureFlowFunction object. A zero flux Neumann boundary condition is used when computing
+derivatives near the data boundary.
+
+
+WARNING:
+This filter assumes that the input and output types have the same
+dimensions. This filter also requires that the output image pixels are
+of a real type. This filter works for any dimensional images.
+ Reference: \"Level Set Methods and Fast Marching Methods\", J.A.
+Sethian, Cambridge Press, Chapter 16, Second edition, 1999.
+
+
+See:
+ BinaryMinMaxCurvatureFlowFunction
+
+ CurvatureFlowImageFilter
+
+ MinMaxCurvatureFlowImageFilter
+
+ itk::simple::BinaryMinMaxCurvatureFlow for the procedural interface
+
+ itk::BinaryMinMaxCurvatureFlowImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBinaryMinMaxCurvatureFlowImageFilter.h
+";
+
+%feature("docstring")  itk::simple::BinaryMinMaxCurvatureFlowImageFilter::BinaryMinMaxCurvatureFlowImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryMinMaxCurvatureFlowImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::BinaryMinMaxCurvatureFlowImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryMinMaxCurvatureFlowImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BinaryMinMaxCurvatureFlowImageFilter::GetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::BinaryMinMaxCurvatureFlowImageFilter::GetStencilRadius "
+";
+
+%feature("docstring")  itk::simple::BinaryMinMaxCurvatureFlowImageFilter::GetThreshold "
+
+Set/Get the threshold value.
+
+";
+
+%feature("docstring")  itk::simple::BinaryMinMaxCurvatureFlowImageFilter::GetTimeStep "
+";
+
+%feature("docstring")  itk::simple::BinaryMinMaxCurvatureFlowImageFilter::SetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::BinaryMinMaxCurvatureFlowImageFilter::SetStencilRadius "
+";
+
+%feature("docstring")  itk::simple::BinaryMinMaxCurvatureFlowImageFilter::SetThreshold "
+
+Set/Get the threshold value.
+
+";
+
+%feature("docstring")  itk::simple::BinaryMinMaxCurvatureFlowImageFilter::SetTimeStep "
+";
+
+%feature("docstring")  itk::simple::BinaryMinMaxCurvatureFlowImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BinaryMinMaxCurvatureFlowImageFilter::~BinaryMinMaxCurvatureFlowImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BinaryMorphologicalClosingImageFilter "
+
+binary morphological closing of an image.
+
+
+This filter removes small (i.e., smaller than the structuring element)
+holes and tube like structures in the interior or at the boundaries of
+the image. The morphological closing of an image \"f\" is defined as:
+Closing(f) = Erosion(Dilation(f)).
+
+The structuring element is assumed to be composed of binary values
+(zero or one). Only elements of the structuring element having values
+> 0 are candidates for affecting the center pixel.
+
+This code was contributed in the Insight Journal paper: \"Binary
+morphological closing and opening image filters\" by Lehmann G. https://hdl.handle.net/1926/141 http://www.insight-journal.org/browse/publication/58
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ MorphologyImageFilter , GrayscaleDilateImageFilter , GrayscaleErodeImageFilter
+
+ itk::simple::BinaryMorphologicalClosing for the procedural interface
+
+ itk::BinaryMorphologicalClosingImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBinaryMorphologicalClosingImageFilter.h
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalClosingImageFilter::BinaryMorphologicalClosingImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalClosingImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalClosingImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalClosingImageFilter::GetForegroundValue "
+
+Get the value in the image considered as \"foreground\". Defaults to
+maximum value of InputPixelType.
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalClosingImageFilter::GetKernelRadius "
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalClosingImageFilter::GetKernelType "
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalClosingImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalClosingImageFilter::GetSafeBorder "
+
+A safe border is added to input image to avoid borders effects and
+remove it once the closing is done
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalClosingImageFilter::SafeBorderOff "
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalClosingImageFilter::SafeBorderOn "
+
+Set the value of SafeBorder to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalClosingImageFilter::SetForegroundValue "
+
+Set the value in the image to consider as \"foreground\". Defaults to
+maximum value of InputPixelType.
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalClosingImageFilter::SetKernelRadius "
+
+Kernel radius as a scale for isotropic structures
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalClosingImageFilter::SetKernelRadius "
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalClosingImageFilter::SetKernelType "
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalClosingImageFilter::SetKernelType "
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalClosingImageFilter::SetSafeBorder "
+
+A safe border is added to input image to avoid borders effects and
+remove it once the closing is done
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalClosingImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalClosingImageFilter::~BinaryMorphologicalClosingImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BinaryMorphologicalOpeningImageFilter "
+
+binary morphological opening of an image.
+
+
+This filter removes small (i.e., smaller than the structuring element)
+structures in the interior or at the boundaries of the image. The
+morphological opening of an image \"f\" is defined as: Opening(f) =
+Dilatation(Erosion(f)).
+
+The structuring element is assumed to be composed of binary values
+(zero or one). Only elements of the structuring element having values
+> 0 are candidates for affecting the center pixel.
+
+This code was contributed in the Insight Journal paper: \"Binary
+morphological closing and opening image filters\" by Lehmann G. https://hdl.handle.net/1926/141 http://www.insight-journal.org/browse/publication/58
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ MorphologyImageFilter , GrayscaleDilateImageFilter , GrayscaleErodeImageFilter
+
+ itk::simple::BinaryMorphologicalOpening for the procedural interface
+
+ itk::BinaryMorphologicalOpeningImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBinaryMorphologicalOpeningImageFilter.h
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalOpeningImageFilter::BinaryMorphologicalOpeningImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalOpeningImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalOpeningImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalOpeningImageFilter::GetBackgroundValue "
+
+Set the value in eroded part of the image. Defaults to zero
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalOpeningImageFilter::GetForegroundValue "
+
+Get the value in the image considered as \"foreground\". Defaults to
+maximum value of PixelType.
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalOpeningImageFilter::GetKernelRadius "
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalOpeningImageFilter::GetKernelType "
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalOpeningImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalOpeningImageFilter::SetBackgroundValue "
+
+Set the value in eroded part of the image. Defaults to zero
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalOpeningImageFilter::SetForegroundValue "
+
+Set the value in the image to consider as \"foreground\". Defaults to
+maximum value of PixelType.
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalOpeningImageFilter::SetKernelRadius "
+
+Kernel radius as a scale for isotropic structures
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalOpeningImageFilter::SetKernelRadius "
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalOpeningImageFilter::SetKernelType "
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalOpeningImageFilter::SetKernelType "
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalOpeningImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalOpeningImageFilter::~BinaryMorphologicalOpeningImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BinaryNotImageFilter "
+
+Implements the BinaryNot logical operator pixel-wise between two
+images.
+
+
+This class is parametrized over the types of the two input images and
+the type of the output image. Numeric conversions (castings) are done
+by the C++ defaults.
+
+The total operation over one pixel will be
+
+output_pixel = static_cast<PixelType>( input1_pixel != input2_pixel )
+
+Where \"!=\" is the equality operator in C++.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+Wiki Examples:
+
+All Examples
+
+Invert an image using the Binary Not operation
+See:
+ itk::simple::BinaryNot for the procedural interface
+
+ itk::BinaryNotImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkBinaryNotImageFilter.h
+";
+
+%feature("docstring")  itk::simple::BinaryNotImageFilter::BinaryNotImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryNotImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::BinaryNotImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryNotImageFilter::GetBackgroundValue "
+
+Get the value used as \"background\". Defaults to NumericTraits<PixelType>::NonpositiveMin() .
+
+";
+
+%feature("docstring")  itk::simple::BinaryNotImageFilter::GetForegroundValue "
+
+Set/Get the value in the image considered as \"foreground\". Defaults
+to maximum value of PixelType.
+
+";
+
+%feature("docstring")  itk::simple::BinaryNotImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BinaryNotImageFilter::SetBackgroundValue "
+
+Set the value used as \"background\". Defaults to NumericTraits<PixelType>::NonpositiveMin() .
+
+";
+
+%feature("docstring")  itk::simple::BinaryNotImageFilter::SetForegroundValue "
+
+Set/Get the value in the image considered as \"foreground\". Defaults
+to maximum value of PixelType.
+
+";
+
+%feature("docstring")  itk::simple::BinaryNotImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BinaryNotImageFilter::~BinaryNotImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BinaryOpeningByReconstructionImageFilter "
+
+binary morphological closing of an image.
+
+
+This filter removes small (i.e., smaller than the structuring element)
+objects in the image. It is defined as: Opening(f) =
+ReconstructionByDilatation(Erosion(f)).
+
+The structuring element is assumed to be composed of binary values
+(zero or one). Only elements of the structuring element having values
+> 0 are candidates for affecting the center pixel.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+See:
+ MorphologyImageFilter , OpeningByReconstructionImageFilter , BinaryClosingByReconstructionImageFilter
+
+ itk::simple::BinaryOpeningByReconstruction for the procedural interface
+
+ itk::BinaryOpeningByReconstructionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBinaryOpeningByReconstructionImageFilter.h
+";
+
+%feature("docstring")  itk::simple::BinaryOpeningByReconstructionImageFilter::BinaryOpeningByReconstructionImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryOpeningByReconstructionImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::BinaryOpeningByReconstructionImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryOpeningByReconstructionImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::BinaryOpeningByReconstructionImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::BinaryOpeningByReconstructionImageFilter::GetBackgroundValue "
+
+Set the value in eroded part of the image. Defaults to zero
+
+";
+
+%feature("docstring")  itk::simple::BinaryOpeningByReconstructionImageFilter::GetForegroundValue "
+
+Get the value in the image considered as \"foreground\". Defaults to
+maximum value of PixelType.
+
+";
+
+%feature("docstring")  itk::simple::BinaryOpeningByReconstructionImageFilter::GetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::BinaryOpeningByReconstructionImageFilter::GetKernelRadius "
+";
+
+%feature("docstring")  itk::simple::BinaryOpeningByReconstructionImageFilter::GetKernelType "
+";
+
+%feature("docstring")  itk::simple::BinaryOpeningByReconstructionImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BinaryOpeningByReconstructionImageFilter::SetBackgroundValue "
+
+Set the value in eroded part of the image. Defaults to zero
+
+";
+
+%feature("docstring")  itk::simple::BinaryOpeningByReconstructionImageFilter::SetForegroundValue "
+
+Set the value in the image to consider as \"foreground\". Defaults to
+maximum value of PixelType.
+
+";
+
+%feature("docstring")  itk::simple::BinaryOpeningByReconstructionImageFilter::SetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::BinaryOpeningByReconstructionImageFilter::SetKernelRadius "
+
+Kernel radius as a scale for isotropic structures
+
+";
+
+%feature("docstring")  itk::simple::BinaryOpeningByReconstructionImageFilter::SetKernelRadius "
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+";
+
+%feature("docstring")  itk::simple::BinaryOpeningByReconstructionImageFilter::SetKernelType "
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+";
+
+%feature("docstring")  itk::simple::BinaryOpeningByReconstructionImageFilter::SetKernelType "
+";
+
+%feature("docstring")  itk::simple::BinaryOpeningByReconstructionImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BinaryOpeningByReconstructionImageFilter::~BinaryOpeningByReconstructionImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BinaryProjectionImageFilter "
+
+Binary projection.
+
+
+This class was contributed to the Insight Journal by Gaetan Lehmann.
+The original paper can be found at https://hdl.handle.net/1926/164
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ ProjectionImageFilter
+
+ MedianProjectionImageFilter
+
+ MeanProjectionImageFilter
+
+ MeanProjectionImageFilter
+
+ MaximumProjectionImageFilter
+
+ MinimumProjectionImageFilter
+
+ StandardDeviationProjectionImageFilter
+
+ SumProjectionImageFilter
+
+ itk::simple::BinaryProjection for the procedural interface
+
+ itk::BinaryProjectionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBinaryProjectionImageFilter.h
+";
+
+%feature("docstring")  itk::simple::BinaryProjectionImageFilter::BinaryProjectionImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryProjectionImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::BinaryProjectionImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryProjectionImageFilter::GetBackgroundValue "
+
+Get the value used as \"background\". Any pixel value which is not
+DilateValue is considered background. BackgroundValue is used for
+defining boundary conditions. Defaults to NumericTraits<PixelType>::NonpositiveMin() .
+
+";
+
+%feature("docstring")  itk::simple::BinaryProjectionImageFilter::GetForegroundValue "
+
+Get the value in the image considered as \"foreground\". Defaults to
+maximum value of PixelType.
+
+";
+
+%feature("docstring")  itk::simple::BinaryProjectionImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BinaryProjectionImageFilter::GetProjectionDimension "
+";
+
+%feature("docstring")  itk::simple::BinaryProjectionImageFilter::SetBackgroundValue "
+
+Set the value used as \"background\". Any pixel value which is not
+DilateValue is considered background. BackgroundValue is used for
+defining boundary conditions. Defaults to NumericTraits<PixelType>::NonpositiveMin() .
+
+";
+
+%feature("docstring")  itk::simple::BinaryProjectionImageFilter::SetForegroundValue "
+
+Set the value in the image to consider as \"foreground\". Defaults to
+maximum value of PixelType. Subclasses may alias this to DilateValue
+or ErodeValue.
+
+";
+
+%feature("docstring")  itk::simple::BinaryProjectionImageFilter::SetProjectionDimension "
+";
+
+%feature("docstring")  itk::simple::BinaryProjectionImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BinaryProjectionImageFilter::~BinaryProjectionImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BinaryReconstructionByDilationImageFilter "
+
+binary reconstruction by dilation of an image
+
+
+Reconstruction by dilation operates on a \"marker\" image and a
+\"mask\" image, and is defined as the dilation of the marker image
+with respect to the mask image iterated until stability.
+
+Geodesic morphology is described in Chapter 6.2 of Pierre Soille's
+book \"Morphological Image Analysis: Principles and Applications\",
+Second Edition, Springer, 2003.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+See:
+ MorphologyImageFilter , ReconstructionByDilationImageFilter , BinaryReconstructionByErosionImageFilter
+
+ itk::simple::BinaryReconstructionByDilation for the procedural interface
+
+ itk::BinaryReconstructionByDilationImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBinaryReconstructionByDilationImageFilter.h
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByDilationImageFilter::BinaryReconstructionByDilationImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByDilationImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByDilationImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByDilationImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByDilationImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByDilationImageFilter::GetBackgroundValue "
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByDilationImageFilter::GetForegroundValue "
+
+Set/Get the value used as \"foreground\" in the output image. Defaults
+to NumericTraits<PixelType>::max() .
+
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByDilationImageFilter::GetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByDilationImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByDilationImageFilter::SetBackgroundValue "
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByDilationImageFilter::SetForegroundValue "
+
+Set/Get the value used as \"foreground\" in the output image. Defaults
+to NumericTraits<PixelType>::max() .
+
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByDilationImageFilter::SetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByDilationImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByDilationImageFilter::~BinaryReconstructionByDilationImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BinaryReconstructionByErosionImageFilter "
+
+binary reconstruction by erosion of an image
+
+
+Reconstruction by erosion operates on a \"marker\" image and a
+\"mask\" image, and is defined as the erosion of the marker image with
+respect to the mask image iterated until stability.
+
+Geodesic morphology is described in Chapter 6.2 of Pierre Soille's
+book \"Morphological Image Analysis: Principles and Applications\",
+Second Edition, Springer, 2003.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+See:
+ MorphologyImageFilter , ReconstructionByErosionImageFilter , BinaryReconstructionByDilationImageFilter
+
+ itk::simple::BinaryReconstructionByErosion for the procedural interface
+
+ itk::BinaryReconstructionByErosionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBinaryReconstructionByErosionImageFilter.h
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByErosionImageFilter::BinaryReconstructionByErosionImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByErosionImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByErosionImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByErosionImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByErosionImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByErosionImageFilter::GetBackgroundValue "
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByErosionImageFilter::GetForegroundValue "
+
+Set/Get the value used as \"foreground\" in the output image. Defaults
+to NumericTraits<PixelType>::max() .
+
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByErosionImageFilter::GetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByErosionImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByErosionImageFilter::SetBackgroundValue "
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByErosionImageFilter::SetForegroundValue "
+
+Set/Get the value used as \"foreground\" in the output image. Defaults
+to NumericTraits<PixelType>::max() .
+
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByErosionImageFilter::SetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByErosionImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByErosionImageFilter::~BinaryReconstructionByErosionImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BinaryThinningImageFilter "
+
+This filter computes one-pixel-wide edges of the input image.
+
+
+This class is parametrized over the type of the input image and the
+type of the output image.
+
+The input is assumed to be a binary image. If the foreground pixels of
+the input image do not have a value of 1, they are rescaled to 1
+internally to simplify the computation.
+
+The filter will produce a skeleton of the object. The output
+background values are 0, and the foreground values are 1.
+
+This filter is a sequential thinning algorithm and known to be
+computational time dependable on the image size. The algorithm
+corresponds with the 2D implementation described in:
+
+Rafael C. Gonzales and Richard E. Woods. Digital Image Processing. Addison Wesley, 491-494, (1993).
+
+To do: Make this filter ND.
+
+
+See:
+ MorphologyImageFilter
+Wiki Examples:
+
+All Examples
+
+Skeletonize/thin an image
+See:
+ itk::simple::BinaryThinning for the procedural interface
+
+ itk::BinaryThinningImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkBinaryThinningImageFilter.h
+";
+
+%feature("docstring")  itk::simple::BinaryThinningImageFilter::BinaryThinningImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryThinningImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::BinaryThinningImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BinaryThinningImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BinaryThinningImageFilter::~BinaryThinningImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BinaryThresholdImageFilter "
+
+Binarize an input image by thresholding.
+
+
+This filter produces an output image whose pixels are either one of
+two values ( OutsideValue or InsideValue ), depending on whether the
+corresponding input image pixels lie between the two thresholds (
+LowerThreshold and UpperThreshold ). Values equal to either threshold
+is considered to be between the thresholds.
+
+More precisely \\\\[ Output(x_i) = \\\\begin{cases} InsideValue & \\\\text{if
+\\\\f$LowerThreshold \\\\leq x_i \\\\leq UpperThreshold\\\\f$}
+\\\\\\\\ OutsideValue & \\\\text{otherwise} \\\\end{cases} \\\\]
+
+This filter is templated over the input image type and the output
+image type.
+
+The filter expect both images to have the same number of dimensions.
+
+The default values for LowerThreshold and UpperThreshold are:
+LowerThreshold = NumericTraits<TInput>::NonpositiveMin() ; UpperThreshold = NumericTraits<TInput>::max() ; Therefore, generally only one of these needs to be set, depending
+on whether the user wants to threshold above or below the desired
+threshold.
+
+Wiki Examples:
+
+All Examples
+
+Threshold an image
+See:
+ itk::simple::BinaryThreshold for the procedural interface
+
+ itk::BinaryThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkBinaryThresholdImageFilter.h
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdImageFilter::BinaryThresholdImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdImageFilter::GetInsideValue "
+
+Get the \"inside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdImageFilter::GetLowerThreshold "
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdImageFilter::GetOutsideValue "
+
+Get the \"outside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdImageFilter::GetUpperThreshold "
+
+Get the threshold values.
+
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdImageFilter::SetInsideValue "
+
+Set the \"inside\" pixel value. The default value NumericTraits<OutputPixelType>::max()
+
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdImageFilter::SetLowerThreshold "
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdImageFilter::SetOutsideValue "
+
+Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::ZeroValue() .
+
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdImageFilter::SetUpperThreshold "
+
+Set the thresholds. The default lower threshold is NumericTraits<InputPixelType>::NonpositiveMin() . The default upper threshold is NumericTraits<InputPixelType>::max . An execption is thrown if the lower threshold is greater than the
+upper threshold.
+
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdImageFilter::~BinaryThresholdImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BinaryThresholdProjectionImageFilter "
+
+BinaryThreshold projection.
+
+
+This class was contributed to the Insight Journal by Gaetan Lehmann.
+the original paper can be found at https://hdl.handle.net/1926/164
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ ProjectionImageFilter
+
+ MedianProjectionImageFilter
+
+ MeanProjectionImageFilter
+
+ MeanProjectionImageFilter
+
+ MaximumProjectionImageFilter
+
+ MinimumProjectionImageFilter
+
+ StandardDeviationProjectionImageFilter
+
+ SumProjectionImageFilter
+
+ itk::simple::BinaryThresholdProjection for the procedural interface
+
+ itk::BinaryThresholdProjectionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBinaryThresholdProjectionImageFilter.h
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdProjectionImageFilter::BinaryThresholdProjectionImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdProjectionImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdProjectionImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdProjectionImageFilter::GetBackgroundValue "
+
+Set/Get the output value used as \"background\". Defaults to NumericTraits<PixelType>::NonpositiveMin() .
+
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdProjectionImageFilter::GetForegroundValue "
+
+Set/Get the output value used as \"foreground\". Defaults to maximum
+value of PixelType.
+
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdProjectionImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdProjectionImageFilter::GetProjectionDimension "
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdProjectionImageFilter::GetThresholdValue "
+
+Set/Get the input value consider as \"threshold\". Defaults to NumericTraits<InputPixelType>::max()
+
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdProjectionImageFilter::SetBackgroundValue "
+
+Set/Get the output value used as \"background\". Defaults to NumericTraits<PixelType>::NonpositiveMin() .
+
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdProjectionImageFilter::SetForegroundValue "
+
+Set/Get the output value used as \"foreground\". Defaults to maximum
+value of PixelType.
+
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdProjectionImageFilter::SetProjectionDimension "
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdProjectionImageFilter::SetThresholdValue "
+
+Set/Get the input value consider as \"threshold\". Defaults to NumericTraits<InputPixelType>::max()
+
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdProjectionImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdProjectionImageFilter::~BinaryThresholdProjectionImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BinomialBlurImageFilter "
+
+Performs a separable blur on each dimension of an image.
+
+
+The binomial blur consists of a nearest neighbor average along each
+image dimension. The net result after n-iterations approaches
+convultion with a gaussian.
+
+Wiki Examples:
+
+All Examples
+
+Blur an image
+See:
+ itk::simple::BinomialBlur for the procedural interface
+
+ itk::BinomialBlurImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkBinomialBlurImageFilter.h
+";
+
+%feature("docstring")  itk::simple::BinomialBlurImageFilter::BinomialBlurImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BinomialBlurImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::BinomialBlurImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::BinomialBlurImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BinomialBlurImageFilter::GetRepetitions "
+
+Get and set the number of times to repeat the filter.
+
+";
+
+%feature("docstring")  itk::simple::BinomialBlurImageFilter::SetRepetitions "
+
+Get and set the number of times to repeat the filter.
+
+";
+
+%feature("docstring")  itk::simple::BinomialBlurImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BinomialBlurImageFilter::~BinomialBlurImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BitwiseNotImageFilter "
+
+Implements pixel-wise generic operation on one image.
+
+
+This class is parameterized over the type of the input image and the
+type of the output image. It is also parameterized by the operation to
+be applied, using a Functor style.
+
+UnaryFunctorImageFilter allows the output dimension of the filter to be larger than the input
+dimension. Thus subclasses of the UnaryFunctorImageFilter (like the CastImageFilter ) can be used to promote a 2D image to a 3D image, etc.
+
+
+See:
+ BinaryFunctorImageFilter TernaryFunctorImageFilter
+Wiki Examples:
+
+All Examples
+
+Apply a custom operation to each pixel in an image
+See:
+ itk::simple::BitwiseNot for the procedural interface
+
+ itk::UnaryFunctorImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkBitwiseNotImageFilter.h
+";
+
+%feature("docstring")  itk::simple::BitwiseNotImageFilter::BitwiseNotImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BitwiseNotImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::BitwiseNotImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BitwiseNotImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BitwiseNotImageFilter::~BitwiseNotImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BlackTopHatImageFilter "
+
+Black top hat extracts local minima that are smaller than the
+structuring element.
+
+
+Black top hat extracts local minima that are smaller than the
+structuring element. It subtracts the background from the input image.
+The output of the filter transforms the black valleys into white
+peaks.
+
+Top-hats are described in Chapter 4.5 of Pierre Soille's book
+\"Morphological Image Analysis: Principles and Applications\", Second
+Edition, Springer, 2003.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ itk::simple::BlackTopHat for the procedural interface
+
+ itk::BlackTopHatImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBlackTopHatImageFilter.h
+";
+
+%feature("docstring")  itk::simple::BlackTopHatImageFilter::BlackTopHatImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BlackTopHatImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::BlackTopHatImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::BlackTopHatImageFilter::GetKernelRadius "
+";
+
+%feature("docstring")  itk::simple::BlackTopHatImageFilter::GetKernelType "
+";
+
+%feature("docstring")  itk::simple::BlackTopHatImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BlackTopHatImageFilter::GetSafeBorder "
+
+A safe border is added to input image to avoid borders effects and
+remove it once the closing is done
+
+";
+
+%feature("docstring")  itk::simple::BlackTopHatImageFilter::SafeBorderOff "
+";
+
+%feature("docstring")  itk::simple::BlackTopHatImageFilter::SafeBorderOn "
+
+Set the value of SafeBorder to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::BlackTopHatImageFilter::SetKernelRadius "
+
+Kernel radius as a scale for isotropic structures
+
+";
+
+%feature("docstring")  itk::simple::BlackTopHatImageFilter::SetKernelRadius "
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+";
+
+%feature("docstring")  itk::simple::BlackTopHatImageFilter::SetKernelType "
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+";
+
+%feature("docstring")  itk::simple::BlackTopHatImageFilter::SetKernelType "
+";
+
+%feature("docstring")  itk::simple::BlackTopHatImageFilter::SetSafeBorder "
+
+A safe border is added to input image to avoid borders effects and
+remove it once the closing is done
+
+";
+
+%feature("docstring")  itk::simple::BlackTopHatImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BlackTopHatImageFilter::~BlackTopHatImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BoundedReciprocalImageFilter "
+
+Computes 1/(1+x) for each pixel in the image.
+
+
+The filter expect both the input and output images to have the same
+number of dimensions, and both of a scalar image type.
+See:
+ itk::simple::BoundedReciprocal for the procedural interface
+
+ itk::BoundedReciprocalImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBoundedReciprocalImageFilter.h
+";
+
+%feature("docstring")  itk::simple::BoundedReciprocalImageFilter::BoundedReciprocalImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BoundedReciprocalImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::BoundedReciprocalImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BoundedReciprocalImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BoundedReciprocalImageFilter::~BoundedReciprocalImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BoxMeanImageFilter "
+
+Implements a fast rectangular mean filter using the accumulator
+approach.
+
+
+This code was contributed in the Insight Journal paper: \"Efficient
+implementation of kernel filtering\" by Beare R., Lehmann G https://hdl.handle.net/1926/555 http://www.insight-journal.org/browse/publication/160
+
+
+Richard Beare
+
+See:
+ itk::simple::BoxMean for the procedural interface
+
+ itk::BoxMeanImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBoxMeanImageFilter.h
+";
+
+%feature("docstring")  itk::simple::BoxMeanImageFilter::BoxMeanImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BoxMeanImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::BoxMeanImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::BoxMeanImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BoxMeanImageFilter::GetRadius "
+";
+
+%feature("docstring")  itk::simple::BoxMeanImageFilter::SetRadius "
+";
+
+%feature("docstring")  itk::simple::BoxMeanImageFilter::SetRadius "
+
+Set the values of the Radius vector all to value
+
+";
+
+%feature("docstring")  itk::simple::BoxMeanImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BoxMeanImageFilter::~BoxMeanImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::BoxSigmaImageFilter "
+
+Implements a fast rectangular sigma filter using the accumulator
+approach.
+
+
+This code was contributed in the Insight Journal paper: \"Efficient
+implementation of kernel filtering\" by Beare R., Lehmann G https://hdl.handle.net/1926/555 http://www.insight-journal.org/browse/publication/160
+
+
+Gaetan Lehmann
+
+See:
+ itk::simple::BoxSigma for the procedural interface
+
+ itk::BoxSigmaImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkBoxSigmaImageFilter.h
+";
+
+%feature("docstring")  itk::simple::BoxSigmaImageFilter::BoxSigmaImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::BoxSigmaImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::BoxSigmaImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::BoxSigmaImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::BoxSigmaImageFilter::GetRadius "
+";
+
+%feature("docstring")  itk::simple::BoxSigmaImageFilter::SetRadius "
+";
+
+%feature("docstring")  itk::simple::BoxSigmaImageFilter::SetRadius "
+
+Set the values of the Radius vector all to value
+
+";
+
+%feature("docstring")  itk::simple::BoxSigmaImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::BoxSigmaImageFilter::~BoxSigmaImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::CannyEdgeDetectionImageFilter "
+
+This filter is an implementation of a Canny edge detector for scalar-
+valued images.
+
+
+Based on John Canny's paper \"A Computational Approach to Edge
+Detection\"(IEEE Transactions on Pattern Analysis and Machine
+Intelligence, Vol. PAMI-8, No.6, November 1986), there are four major
+steps used in the edge-detection scheme: (1) Smooth the input image
+with Gaussian filter. (2) Calculate the second directional derivatives
+of the smoothed image. (3) Non-Maximum Suppression: the zero-crossings
+of 2nd derivative are found, and the sign of third derivative is used
+to find the correct extrema. (4) The hysteresis thresholding is
+applied to the gradient magnitude (multiplied with zero-crossings) of
+the smoothed image to find and link edges.
+
+Inputs and Outputs
+The input to this filter should be a scalar, real-valued Itk image of
+arbitrary dimension. The output should also be a scalar, real-value
+Itk image of the same dimensionality.
+Parameters
+There are four parameters for this filter that control the sub-filters
+used by the algorithm.
+
+Variance and Maximum error are used in the Gaussian smoothing of the
+input image. See itkDiscreteGaussianImageFilter for information on
+these parameters.
+
+Threshold is the lowest allowed value in the output image. Its data
+type is the same as the data type of the output image. Any values
+below the Threshold level will be replaced with the OutsideValue
+parameter value, whose default is zero.
+ TodoEdge-linking will be added when an itk connected component
+labeling algorithm is available.
+
+
+See:
+ DiscreteGaussianImageFilter
+
+ ZeroCrossingImageFilter
+
+ ThresholdImageFilter
+
+ itk::simple::CannyEdgeDetection for the procedural interface
+
+ itk::CannyEdgeDetectionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkCannyEdgeDetectionImageFilter.h
+";
+
+%feature("docstring")  itk::simple::CannyEdgeDetectionImageFilter::CannyEdgeDetectionImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::CannyEdgeDetectionImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::CannyEdgeDetectionImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::CannyEdgeDetectionImageFilter::GetLowerThreshold "
+";
+
+%feature("docstring")  itk::simple::CannyEdgeDetectionImageFilter::GetMaximumError "
+
+Set/Get the maximum error of the Gaussian smoothing kernel in each
+dimensional direction.
+
+";
+
+%feature("docstring")  itk::simple::CannyEdgeDetectionImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::CannyEdgeDetectionImageFilter::GetUpperThreshold "
+";
+
+%feature("docstring")  itk::simple::CannyEdgeDetectionImageFilter::GetVariance "
+
+Set/Get the variance of the Gaussian smoothing filter.
+
+";
+
+%feature("docstring")  itk::simple::CannyEdgeDetectionImageFilter::SetLowerThreshold "
+";
+
+%feature("docstring")  itk::simple::CannyEdgeDetectionImageFilter::SetMaximumError "
+
+Set/Get the MaximumError parameter used by the Gaussian smoothing
+filter in this algorithm
+
+";
+
+%feature("docstring")  itk::simple::CannyEdgeDetectionImageFilter::SetMaximumError "
+
+Set the values of the MaximumError vector all to value
+
+";
+
+%feature("docstring")  itk::simple::CannyEdgeDetectionImageFilter::SetUpperThreshold "
+
+Set the Threshold value for detected edges. TODO: Document in the
+ITKv4 migration guide that the SetThreshold member function was
+removed from the CannyEdgeDetectionImageFilter , and that both UpperThreshold and LowerThreshold need to be set. To
+get the same results as with the SetThreshold method change
+\"myfilter->SetThrehsold\" to \"myfilter->SetUpperThreshold\", and add
+\"myfilter->SetLowerThreshold(GetUpperThreshold()/2.0)\".
+
+";
+
+%feature("docstring")  itk::simple::CannyEdgeDetectionImageFilter::SetVariance "
+
+Set/Get the variance of the Gaussian smoothing filter.
+
+";
+
+%feature("docstring")  itk::simple::CannyEdgeDetectionImageFilter::SetVariance "
+
+Set the values of the Variance vector all to value
+
+";
+
+%feature("docstring")  itk::simple::CannyEdgeDetectionImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::CannyEdgeDetectionImageFilter::~CannyEdgeDetectionImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::CastImageFilter "
+
+A hybrid cast image filter to convert images to other types of images.
+
+
+Several different ITK classes are implemented under the hood, to
+convert between different image types.
+
+
+See:
+ itk::simple::Cast for the procedural interface
+
+
+C++ includes: sitkCastImageFilter.h
+";
+
+%feature("docstring")  itk::simple::CastImageFilter::CastImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::CastImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::CastImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::CastImageFilter::GetOutputPixelType "
+";
+
+%feature("docstring")  itk::simple::CastImageFilter::SetOutputPixelType "
+
+Set/Get the output pixel type
+
+";
+
+%feature("docstring")  itk::simple::CastImageFilter::ToString "
+";
+
+
+%feature("docstring") itk::simple::CenteredTransformInitializerFilter "
+
+CenteredTransformInitializerFilter is a helper class intended to initialize the center of rotation and
+the translation of Transforms having the center of rotation among
+their parameters.
+
+
+This class is connected to the fixed image, moving image and transform
+involved in the registration. Two modes of operation are possible:
+
+
+Geometrical,
+
+Center of mass
+ In the first mode, the geometrical center of the moving image is
+passed as initial center of rotation to the transform and the vector
+from the center of the fixed image to the center of the moving image
+is passed as the initial translation. This mode basically assumes that
+the anatomical objects to be registered are centered in their
+respective images. Hence the best initial guess for the registration
+is the one that superimposes those two centers.
+
+In the second mode, the moments of gray level values are computed for
+both images. The center of mass of the moving image is then used as
+center of rotation. The vector between the two centers of mass is
+passes as the initial translation to the transform. This second
+approach assumes that the moments of the anatomical objects are
+similar for both images and hence the best initial guess for
+registration is to superimpose both mass centers. Note that this
+assumption will probably not hold in multi-modality registration.   \\\\sa itk::CenteredTransformInitializer
+
+C++ includes: sitkCenteredTransformInitializerFilter.h
+";
+
+%feature("docstring")  itk::simple::CenteredTransformInitializerFilter::CenteredTransformInitializerFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::CenteredTransformInitializerFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::CenteredTransformInitializerFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::CenteredTransformInitializerFilter::GeometryOn "
+
+Select between using the geometrical center of the images or using the
+center of mass given by the image intensities.
+
+";
+
+%feature("docstring")  itk::simple::CenteredTransformInitializerFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::CenteredTransformInitializerFilter::GetOperationMode "
+";
+
+%feature("docstring")  itk::simple::CenteredTransformInitializerFilter::MomentsOn "
+
+Select between using the geometrical center of the images or using the
+center of mass given by the image intensities.
+
+";
+
+%feature("docstring")  itk::simple::CenteredTransformInitializerFilter::SetOperationMode "
+";
+
+%feature("docstring")  itk::simple::CenteredTransformInitializerFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::CenteredTransformInitializerFilter::~CenteredTransformInitializerFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::CenteredVersorTransformInitializerFilter "
+
+CenteredVersorTransformInitializerFilter is a helper class intended to initialize the center of rotation,
+versor, and translation of the VersorRigid3DTransform.
+
+
+This class derived from the CenteredTransformInitializerand uses it in
+a more constrained context. It always uses the Moments mode, and also
+takes advantage of the second order moments in order to initialize the
+Versorrepresenting rotation.
+
+
+See:
+ itk::CenteredVersorTransformInitializer for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkCenteredVersorTransformInitializerFilter.h
+";
+
+%feature("docstring")  itk::simple::CenteredVersorTransformInitializerFilter::CenteredVersorTransformInitializerFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::CenteredVersorTransformInitializerFilter::ComputeRotationOff "
+";
+
+%feature("docstring")  itk::simple::CenteredVersorTransformInitializerFilter::ComputeRotationOn "
+
+Set the value of ComputeRotation to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::CenteredVersorTransformInitializerFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::CenteredVersorTransformInitializerFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::CenteredVersorTransformInitializerFilter::GetComputeRotation "
+
+Enable the use of the principal axes of each image to compute an
+initial rotation that will align them.
+
+";
+
+%feature("docstring")  itk::simple::CenteredVersorTransformInitializerFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::CenteredVersorTransformInitializerFilter::SetComputeRotation "
+
+Enable the use of the principal axes of each image to compute an
+initial rotation that will align them.
+
+";
+
+%feature("docstring")  itk::simple::CenteredVersorTransformInitializerFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::CenteredVersorTransformInitializerFilter::~CenteredVersorTransformInitializerFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ChangeLabelImageFilter "
+
+Change Sets of Labels.
+
+
+This filter produces an output image whose pixels are either copied
+from the input if they are not being changed or are rewritten based on
+the change parameters
+
+This filter is templated over the input image type and the output
+image type.
+
+The filter expect both images to have the same number of dimensions.
+
+
+Tim Kelliher. GE Research, Niskayuna, NY.
+
+This work was supported by a grant from DARPA, executed by the U.S.
+Army Medical Research and Materiel Command/TATRC Assistance Agreement,
+Contract::W81XWH-05-2-0059.
+
+See:
+ itk::simple::ChangeLabel for the procedural interface
+
+ itk::ChangeLabelImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkChangeLabelImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ChangeLabelImageFilter::ChangeLabelImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ChangeLabelImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ChangeLabelImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ChangeLabelImageFilter::GetChangeMap "
+";
+
+%feature("docstring")  itk::simple::ChangeLabelImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ChangeLabelImageFilter::SetChangeMap "
+
+Set the entire change map
+
+";
+
+%feature("docstring")  itk::simple::ChangeLabelImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ChangeLabelImageFilter::~ChangeLabelImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ChangeLabelLabelMapFilter "
+
+Replace the label Ids of selected LabelObjects with new label Ids.
+
+
+This filter takes as input a label map and a list of pairs of Label
+Ids, to produce as output a new label map where the label Ids have
+been replaced according to the pairs in the list.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ ShapeLabelObject , RelabelComponentImageFilter
+
+ itk::simple::ChangeLabelLabelMapFilter for the procedural interface
+
+ itk::ChangeLabelLabelMapFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkChangeLabelLabelMapFilter.h
+";
+
+%feature("docstring")  itk::simple::ChangeLabelLabelMapFilter::ChangeLabelLabelMapFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ChangeLabelLabelMapFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ChangeLabelLabelMapFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ChangeLabelLabelMapFilter::GetChangeMap "
+";
+
+%feature("docstring")  itk::simple::ChangeLabelLabelMapFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ChangeLabelLabelMapFilter::SetChangeMap "
+";
+
+%feature("docstring")  itk::simple::ChangeLabelLabelMapFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ChangeLabelLabelMapFilter::~ChangeLabelLabelMapFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::CheckerBoardImageFilter "
+
+Combines two images in a checkerboard pattern.
+
+
+CheckerBoardImageFilter takes two input images that must have the same dimension, size,
+origin and spacing and produces an output image of the same size by
+combinining the pixels from the two input images in a checkerboard
+pattern. This filter is commonly used for visually comparing two
+images, in particular for evaluating the results of an image
+registration process.
+
+This filter is implemented as a multithreaded filter. It provides a
+ThreadedGenerateData() method for its implementation.
+
+Wiki Examples:
+
+All Examples
+
+Combine two images by alternating blocks of a checkerboard pattern
+See:
+ itk::simple::CheckerBoard for the procedural interface
+
+ itk::CheckerBoardImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkCheckerBoardImageFilter.h
+";
+
+%feature("docstring")  itk::simple::CheckerBoardImageFilter::CheckerBoardImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::CheckerBoardImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::CheckerBoardImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::CheckerBoardImageFilter::GetCheckerPattern "
+
+Set/Get the checker pattern array, i.e. the number of checker boxes
+per image dimension.
+
+";
+
+%feature("docstring")  itk::simple::CheckerBoardImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::CheckerBoardImageFilter::SetCheckerPattern "
+
+Set/Get the checker pattern array, i.e. the number of checker boxes
+per image dimension.
+
+";
+
+%feature("docstring")  itk::simple::CheckerBoardImageFilter::SetCheckerPattern "
+
+Set the values of the CheckerPattern vector all to value
+
+";
+
+%feature("docstring")  itk::simple::CheckerBoardImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::CheckerBoardImageFilter::~CheckerBoardImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ClampImageFilter "
+
+Casts input pixels to output pixel type and clamps the output pixel
+values to a specified range.
+
+
+Default range corresponds to the range supported by the pixel type of
+the output image.
+
+This filter is templated over the input image type and the output
+image type.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ UnaryFunctorImageFilter
+
+ CastImageFilter
+Wiki Examples:
+
+All Examples
+
+Cast an image from one type to another but clamp to the output value
+range
+See:
+ itk::simple::Clamp for the procedural interface
+
+ itk::ClampImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkClampImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ClampImageFilter::ClampImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ClampImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ClampImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ClampImageFilter::GetLowerBound "
+";
+
+%feature("docstring")  itk::simple::ClampImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ClampImageFilter::GetOutputPixelType "
+";
+
+%feature("docstring")  itk::simple::ClampImageFilter::GetUpperBound "
+";
+
+%feature("docstring")  itk::simple::ClampImageFilter::SetLowerBound "
+";
+
+%feature("docstring")  itk::simple::ClampImageFilter::SetOutputPixelType "
+";
+
+%feature("docstring")  itk::simple::ClampImageFilter::SetUpperBound "
+";
+
+%feature("docstring")  itk::simple::ClampImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ClampImageFilter::~ClampImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ClosingByReconstructionImageFilter "
+
+Closing by reconstruction of an image.
+
+
+This filter is similar to the morphological closing, but contrary to
+the mophological closing, the closing by reconstruction preserves the
+shape of the components. The closing by reconstruction of an image
+\"f\" is defined as:
+
+ClosingByReconstruction(f) = ErosionByReconstruction(f, Dilation(f)).
+
+Closing by reconstruction not only preserves structures preserved by
+the dilation, but also levels raises the contrast of the darkest
+regions. If PreserveIntensities is on, a subsequent reconstruction by
+dilation using a marker image that is the original image for all
+unaffected pixels.
+
+Closing by reconstruction is described in Chapter 6.3.9 of Pierre
+Soille's book \"Morphological Image Analysis: Principles and
+Applications\", Second Edition, Springer, 2003.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ GrayscaleMorphologicalClosingImageFilter
+
+ itk::simple::ClosingByReconstruction for the procedural interface
+
+ itk::ClosingByReconstructionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkClosingByReconstructionImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ClosingByReconstructionImageFilter::ClosingByReconstructionImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ClosingByReconstructionImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ClosingByReconstructionImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ClosingByReconstructionImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::ClosingByReconstructionImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::ClosingByReconstructionImageFilter::GetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::ClosingByReconstructionImageFilter::GetKernelRadius "
+";
+
+%feature("docstring")  itk::simple::ClosingByReconstructionImageFilter::GetKernelType "
+";
+
+%feature("docstring")  itk::simple::ClosingByReconstructionImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ClosingByReconstructionImageFilter::GetPreserveIntensities "
+
+Set/Get whether the original intensities of the image retained for
+those pixels unaffected by the opening by reconstrcution. If Off, the
+output pixel contrast will be reduced.
+
+";
+
+%feature("docstring")  itk::simple::ClosingByReconstructionImageFilter::PreserveIntensitiesOff "
+";
+
+%feature("docstring")  itk::simple::ClosingByReconstructionImageFilter::PreserveIntensitiesOn "
+
+Set the value of PreserveIntensities to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::ClosingByReconstructionImageFilter::SetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::ClosingByReconstructionImageFilter::SetKernelRadius "
+
+Kernel radius as a scale for isotropic structures
+
+";
+
+%feature("docstring")  itk::simple::ClosingByReconstructionImageFilter::SetKernelRadius "
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+";
+
+%feature("docstring")  itk::simple::ClosingByReconstructionImageFilter::SetKernelType "
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+";
+
+%feature("docstring")  itk::simple::ClosingByReconstructionImageFilter::SetKernelType "
+";
+
+%feature("docstring")  itk::simple::ClosingByReconstructionImageFilter::SetPreserveIntensities "
+
+Set/Get whether the original intensities of the image retained for
+those pixels unaffected by the opening by reconstrcution. If Off, the
+output pixel contrast will be reduced.
+
+";
+
+%feature("docstring")  itk::simple::ClosingByReconstructionImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ClosingByReconstructionImageFilter::~ClosingByReconstructionImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::CollidingFrontsImageFilter "
+
+Selects a region of space where two independent fronts run towards
+each other.
+
+
+The filter can be used to quickly segment anatomical structures (e.g.
+for level set initialization).
+
+The filter uses two instances of FastMarchingUpwindGradientImageFilter to compute the gradients of arrival times of two wavefronts
+propagating from two sets of seeds. The input of the filter is used as
+the speed of the two wavefronts. The output is the dot product between
+the two gradient vector fields.
+
+The filter works on the following basic idea. In the regions where the
+dot product between the two gradient fields is negative, the two
+fronts propagate in opposite directions. In the regions where the dot
+product is positive, the two fronts propagate in the same direction.
+This can be used to extract the region of space between two sets of
+points.
+
+If StopOnTargets is On, then each front will stop as soon as all seeds
+of the other front have been reached. This can markedly speed up the
+execution of the filter, since wave propagation does not take place on
+the complete image.
+
+Optionally, a connectivity criterion can be applied to the resulting
+dot product image. In this case, the only negative region in the
+output image is the one connected to the seeds.
+
+
+Luca Antiga Ph.D. Biomedical Technologies Laboratory, Bioengineering
+Department, Mario Negri Institute, Italy.
+
+See:
+ itk::simple::CollidingFronts for the procedural interface
+
+ itk::CollidingFrontsImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkCollidingFrontsImageFilter.h
+";
+
+%feature("docstring")  itk::simple::CollidingFrontsImageFilter::AddSeedPoint1 "
+
+Add SeedPoints1 point.
+
+";
+
+%feature("docstring")  itk::simple::CollidingFrontsImageFilter::AddSeedPoint2 "
+
+Add SeedPoints2 point.
+
+";
+
+%feature("docstring")  itk::simple::CollidingFrontsImageFilter::ApplyConnectivityOff "
+";
+
+%feature("docstring")  itk::simple::CollidingFrontsImageFilter::ApplyConnectivityOn "
+
+Set the value of ApplyConnectivity to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::CollidingFrontsImageFilter::ClearSeedPoints1 "
+
+Remove all SeedPoints1 points.
+
+";
+
+%feature("docstring")  itk::simple::CollidingFrontsImageFilter::ClearSeedPoints2 "
+
+Remove all SeedPoints2 points.
+
+";
+
+%feature("docstring")  itk::simple::CollidingFrontsImageFilter::CollidingFrontsImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::CollidingFrontsImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::CollidingFrontsImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::CollidingFrontsImageFilter::GetApplyConnectivity "
+";
+
+%feature("docstring")  itk::simple::CollidingFrontsImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::CollidingFrontsImageFilter::GetNegativeEpsilon "
+";
+
+%feature("docstring")  itk::simple::CollidingFrontsImageFilter::GetSeedPoints1 "
+
+Get the container of Seed Points representing the first initial front.
+
+";
+
+%feature("docstring")  itk::simple::CollidingFrontsImageFilter::GetSeedPoints2 "
+
+Get the container of Seed Points representing the second initial
+front.
+
+";
+
+%feature("docstring")  itk::simple::CollidingFrontsImageFilter::GetStopOnTargets "
+";
+
+%feature("docstring")  itk::simple::CollidingFrontsImageFilter::SetApplyConnectivity "
+";
+
+%feature("docstring")  itk::simple::CollidingFrontsImageFilter::SetNegativeEpsilon "
+";
+
+%feature("docstring")  itk::simple::CollidingFrontsImageFilter::SetSeedPoints1 "
+
+Set the container of Seed Points representing the first initial front.
+Seed points are represented as a VectorContainer of LevelSetNodes.
+
+";
+
+%feature("docstring")  itk::simple::CollidingFrontsImageFilter::SetSeedPoints2 "
+
+Set the container of Seed Points representing the second initial
+front. Seed points are represented as a VectorContainer of LevelSetNodes.
+
+";
+
+%feature("docstring")  itk::simple::CollidingFrontsImageFilter::SetStopOnTargets "
+";
+
+%feature("docstring")  itk::simple::CollidingFrontsImageFilter::StopOnTargetsOff "
+";
+
+%feature("docstring")  itk::simple::CollidingFrontsImageFilter::StopOnTargetsOn "
+
+Set the value of StopOnTargets to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::CollidingFrontsImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::CollidingFrontsImageFilter::~CollidingFrontsImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::Command "
+
+An implementation of the Command design pattern for callback.
+
+
+This class provides a callback mechanism for event that occur from the ProcessObject. These commands can be utilized to observe these events.
+
+The Command can be created on the stack, and will automatically unregistered it's
+self when destroyed.
+
+For more information see the page Commands and Events for SimpleITK.
+
+C++ includes: sitkCommand.h
+";
+
+%feature("docstring")  itk::simple::Command::Command "
+
+Default Constructor.
+
+";
+
+%feature("docstring")  itk::simple::Command::Execute "
+
+The method that defines action to be taken by the command
+
+";
+
+%feature("docstring")  itk::simple::Command::GetName "
+
+Set/Get Command Name
+
+";
+
+%feature("docstring")  itk::simple::Command::SetName "
+";
+
+%feature("docstring")  itk::simple::Command::~Command "
+
+Destructor.
+
+";
+
+
+%feature("docstring") itk::simple::ComplexToImaginaryImageFilter "
+
+Computes pixel-wise the imaginary part of a complex image.
+
+
+
+See:
+ itk::simple::ComplexToImaginary for the procedural interface
+
+ itk::ComplexToImaginaryImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkComplexToImaginaryImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ComplexToImaginaryImageFilter::ComplexToImaginaryImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ComplexToImaginaryImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ComplexToImaginaryImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ComplexToImaginaryImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ComplexToImaginaryImageFilter::~ComplexToImaginaryImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ComplexToModulusImageFilter "
+
+Computes pixel-wise the Modulus of a complex image.
+
+
+
+See:
+ itk::simple::ComplexToModulus for the procedural interface
+
+ itk::ComplexToModulusImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkComplexToModulusImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ComplexToModulusImageFilter::ComplexToModulusImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ComplexToModulusImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ComplexToModulusImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ComplexToModulusImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ComplexToModulusImageFilter::~ComplexToModulusImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ComplexToPhaseImageFilter "
+
+Computes pixel-wise the modulus of a complex image.
+
+
+
+See:
+ itk::simple::ComplexToPhase for the procedural interface
+
+ itk::ComplexToPhaseImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkComplexToPhaseImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ComplexToPhaseImageFilter::ComplexToPhaseImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ComplexToPhaseImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ComplexToPhaseImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ComplexToPhaseImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ComplexToPhaseImageFilter::~ComplexToPhaseImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ComplexToRealImageFilter "
+
+Computes pixel-wise the real(x) part of a complex image.
+
+
+
+See:
+ itk::simple::ComplexToReal for the procedural interface
+
+ itk::ComplexToRealImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkComplexToRealImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ComplexToRealImageFilter::ComplexToRealImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ComplexToRealImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ComplexToRealImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ComplexToRealImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ComplexToRealImageFilter::~ComplexToRealImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ComposeImageFilter "
+
+ComposeImageFilter combine several scalar images into a multicomponent image.
+
+
+ComposeImageFilter combine several scalar images into an itk::Image of vector pixel ( itk::Vector , itk::RGBPixel , ...), of std::complex pixel, or in an itk::VectorImage .
+
+Inputs and Usage
+ All input images are expected to have the same template parameters
+and have the same size and origin.
+
+See:
+ VectorImage
+
+ VectorIndexSelectionCastImageFilter
+Wiki Examples:
+
+All Examples
+
+Create a vector image from a collection of scalar images
+
+Compose a vector image (with 3 components) from three scalar images
+
+Convert a real image and an imaginary image to a complex image
+
+See:
+ itk::simple::Compose for the procedural interface
+
+
+C++ includes: sitkComposeImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ComposeImageFilter::ComposeImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ComposeImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::ComposeImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::ComposeImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::ComposeImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::ComposeImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::ComposeImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::ComposeImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ComposeImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ComposeImageFilter::~ComposeImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ConfidenceConnectedImageFilter "
+
+Segment pixels with similar statistics using connectivity.
+
+
+This filter extracts a connected set of pixels whose pixel intensities
+are consistent with the pixel statistics of a seed point. The mean and
+variance across a neighborhood (8-connected, 26-connected, etc.) are
+calculated for a seed point. Then pixels connected to this seed point
+whose values are within the confidence interval for the seed point are
+grouped. The width of the confidence interval is controlled by the
+\"Multiplier\" variable (the confidence interval is the mean plus or
+minus the \"Multiplier\" times the standard deviation). If the
+intensity variations across a segment were gaussian, a \"Multiplier\"
+setting of 2.5 would define a confidence interval wide enough to
+capture 99% of samples in the segment.
+
+After this initial segmentation is calculated, the mean and variance
+are re-calculated. All the pixels in the previous segmentation are
+used to calculate the mean the standard deviation (as opposed to using
+the pixels in the neighborhood of the seed point). The segmentation is
+then recalculated using these refined estimates for the mean and
+variance of the pixel values. This process is repeated for the
+specified number of iterations. Setting the \"NumberOfIterations\" to
+zero stops the algorithm after the initial segmentation from the seed
+point.
+
+NOTE: the lower and upper threshold are restricted to lie within the
+valid numeric limits of the input data pixel type. Also, the limits
+may be adjusted to contain the seed point's intensity.
+
+Wiki Examples:
+
+All Examples
+
+Segment pixels with similar statistics using connectivity
+See:
+ itk::simple::ConfidenceConnected for the procedural interface
+
+ itk::ConfidenceConnectedImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkConfidenceConnectedImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ConfidenceConnectedImageFilter::AddSeed "
+
+AddSeed - Add a seed to the end of the list
+
+";
+
+%feature("docstring")  itk::simple::ConfidenceConnectedImageFilter::ClearSeeds "
+
+ClearSeeds - Clear out all seeds in the list
+
+";
+
+%feature("docstring")  itk::simple::ConfidenceConnectedImageFilter::ConfidenceConnectedImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ConfidenceConnectedImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ConfidenceConnectedImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ConfidenceConnectedImageFilter::GetInitialNeighborhoodRadius "
+
+Get/Set the radius of the neighborhood over which the statistics are
+evaluated
+
+";
+
+%feature("docstring")  itk::simple::ConfidenceConnectedImageFilter::GetMean "
+
+Method to get access to the mean of the pixels accepted in the output
+region. This method should only be invoked after the filter has been
+executed using the Update() method.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::ConfidenceConnectedImageFilter::GetMultiplier "
+
+Set/Get the multiplier to define the confidence interval. Multiplier
+can be anything greater than zero. A typical value is 2.5
+
+";
+
+%feature("docstring")  itk::simple::ConfidenceConnectedImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ConfidenceConnectedImageFilter::GetNumberOfIterations "
+
+Set/Get the number of iterations
+
+";
+
+%feature("docstring")  itk::simple::ConfidenceConnectedImageFilter::GetReplaceValue "
+
+Set/Get value to replace thresholded pixels
+
+";
+
+%feature("docstring")  itk::simple::ConfidenceConnectedImageFilter::GetSeedList "
+
+Get SeedList
+
+";
+
+%feature("docstring")  itk::simple::ConfidenceConnectedImageFilter::GetVariance "
+
+Method to get access to the variance of the pixels accepted in the
+output region. This method should only be invoked after the filter has
+been executed using the Update() method.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::ConfidenceConnectedImageFilter::SetInitialNeighborhoodRadius "
+
+Get/Set the radius of the neighborhood over which the statistics are
+evaluated
+
+";
+
+%feature("docstring")  itk::simple::ConfidenceConnectedImageFilter::SetMultiplier "
+
+Set/Get the multiplier to define the confidence interval. Multiplier
+can be anything greater than zero. A typical value is 2.5
+
+";
+
+%feature("docstring")  itk::simple::ConfidenceConnectedImageFilter::SetNumberOfIterations "
+
+Set/Get the number of iterations
+
+";
+
+%feature("docstring")  itk::simple::ConfidenceConnectedImageFilter::SetReplaceValue "
+
+Set/Get value to replace thresholded pixels
+
+";
+
+%feature("docstring")  itk::simple::ConfidenceConnectedImageFilter::SetSeed "
+
+SetSeed - Set list to a single seed
+
+";
+
+%feature("docstring")  itk::simple::ConfidenceConnectedImageFilter::SetSeedList "
+
+Set SeedList
+
+";
+
+%feature("docstring")  itk::simple::ConfidenceConnectedImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ConfidenceConnectedImageFilter::~ConfidenceConnectedImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ConnectedComponentImageFilter "
+
+Label the objects in a binary image.
+
+
+ConnectedComponentImageFilter labels the objects in a binary image (non-zero pixels are considered
+to be objects, zero-valued pixels are considered to be background).
+Each distinct object is assigned a unique label. The filter
+experiments with some improvements to the existing implementation, and
+is based on run length encoding along raster lines. The final object
+labels start with 1 and are consecutive. Objects that are reached
+earlier by a raster order scan have a lower label. This is different
+to the behaviour of the original connected component image filter
+which did not produce consecutive labels or impose any particular
+ordering.
+
+After the filter is executed, ObjectCount holds the number of
+connected components.
+
+
+See:
+ ImageToImageFilter
+Wiki Examples:
+
+All Examples
+
+Label connected components in a binary image
+See:
+ itk::simple::ConnectedComponent for the procedural interface
+
+ itk::ConnectedComponentImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkConnectedComponentImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ConnectedComponentImageFilter::ConnectedComponentImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ConnectedComponentImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ConnectedComponentImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ConnectedComponentImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::ConnectedComponentImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::ConnectedComponentImageFilter::GetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::ConnectedComponentImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ConnectedComponentImageFilter::GetObjectCount "
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::ConnectedComponentImageFilter::SetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::ConnectedComponentImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ConnectedComponentImageFilter::~ConnectedComponentImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ConnectedThresholdImageFilter "
+
+Label pixels that are connected to a seed and lie within a range of
+values.
+
+
+ConnectedThresholdImageFilter labels pixels with ReplaceValue that are connected to an initial Seed
+AND lie within a Lower and Upper threshold range.
+See:
+ itk::simple::ConnectedThreshold for the procedural interface
+
+ itk::ConnectedThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkConnectedThresholdImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ConnectedThresholdImageFilter::AddSeed "
+
+AddSeed - Add a seed to the end of the list
+
+";
+
+%feature("docstring")  itk::simple::ConnectedThresholdImageFilter::ClearSeeds "
+
+ClearSeeds - Clear out all seeds in the list
+
+";
+
+%feature("docstring")  itk::simple::ConnectedThresholdImageFilter::ConnectedThresholdImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ConnectedThresholdImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ConnectedThresholdImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ConnectedThresholdImageFilter::GetConnectivity "
+
+Type of connectivity to use (fully connected OR 4(2D), 6(3D), 2*N(ND)
+connectivity).
+
+";
+
+%feature("docstring")  itk::simple::ConnectedThresholdImageFilter::GetLower "
+
+Get Upper and Lower Threshold inputs as values.
+
+";
+
+%feature("docstring")  itk::simple::ConnectedThresholdImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ConnectedThresholdImageFilter::GetReplaceValue "
+
+Set/Get value to replace thresholded pixels. Pixels that lie * within
+Lower and Upper (inclusive) will be replaced with this value. The
+default is 1.
+
+";
+
+%feature("docstring")  itk::simple::ConnectedThresholdImageFilter::GetSeedList "
+
+Get SeedList
+
+";
+
+%feature("docstring")  itk::simple::ConnectedThresholdImageFilter::GetUpper "
+
+Get Upper and Lower Threshold inputs as values.
+
+";
+
+%feature("docstring")  itk::simple::ConnectedThresholdImageFilter::SetConnectivity "
+
+Type of connectivity to use (fully connected OR 4(2D), 6(3D), 2*N(ND)
+connectivity).
+
+";
+
+%feature("docstring")  itk::simple::ConnectedThresholdImageFilter::SetLower "
+
+Set Upper and Lower Threshold inputs as values
+
+";
+
+%feature("docstring")  itk::simple::ConnectedThresholdImageFilter::SetReplaceValue "
+
+Set/Get value to replace thresholded pixels. Pixels that lie * within
+Lower and Upper (inclusive) will be replaced with this value. The
+default is 1.
+
+";
+
+%feature("docstring")  itk::simple::ConnectedThresholdImageFilter::SetSeed "
+
+SetSeed - Set list to a single seed
+
+";
+
+%feature("docstring")  itk::simple::ConnectedThresholdImageFilter::SetSeedList "
+
+Set SeedList
+
+";
+
+%feature("docstring")  itk::simple::ConnectedThresholdImageFilter::SetUpper "
+
+Set Upper and Lower Threshold inputs as values
+
+";
+
+%feature("docstring")  itk::simple::ConnectedThresholdImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ConnectedThresholdImageFilter::~ConnectedThresholdImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ConstantPadImageFilter "
+
+Increase the image size by padding with a constant value.
+
+
+ConstantPadImageFilter changes the output image region. If the output image region is larger
+than the input image region, the extra pixels are filled in by a
+constant value. The output image region must be specified.
+
+Visual explanation of padding regions. This filter is implemented as a
+multithreaded filter. It provides a ThreadedGenerateData() method for
+its implementation.
+
+
+See:
+ WrapPadImageFilter , MirrorPadImageFilter
+Wiki Examples:
+
+All Examples
+
+Pad an image with a constant value
+See:
+ itk::simple::ConstantPad for the procedural interface
+
+ itk::ConstantPadImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkConstantPadImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ConstantPadImageFilter::ConstantPadImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ConstantPadImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ConstantPadImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ConstantPadImageFilter::GetConstant "
+
+Set/Get the pad value. Default is Zero.
+
+";
+
+%feature("docstring")  itk::simple::ConstantPadImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ConstantPadImageFilter::GetPadLowerBound "
+";
+
+%feature("docstring")  itk::simple::ConstantPadImageFilter::GetPadUpperBound "
+";
+
+%feature("docstring")  itk::simple::ConstantPadImageFilter::SetConstant "
+
+Set/Get the pad value. Default is Zero.
+
+";
+
+%feature("docstring")  itk::simple::ConstantPadImageFilter::SetPadLowerBound "
+";
+
+%feature("docstring")  itk::simple::ConstantPadImageFilter::SetPadUpperBound "
+";
+
+%feature("docstring")  itk::simple::ConstantPadImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ConstantPadImageFilter::~ConstantPadImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ConvolutionImageFilter "
+
+Convolve a given image with an arbitrary image kernel.
+
+
+This filter operates by centering the flipped kernel at each pixel in
+the image and computing the inner product between pixel values in the
+image and pixel values in the kernel. The center of the kernel is
+defined as $ \\\\lfloor (2*i+s-1)/2 \\\\rfloor $ where $i$ is the index and $s$ is the size of the largest possible region of the kernel image. For
+kernels with odd sizes in all dimensions, this corresponds to the
+center pixel. If a dimension of the kernel image has an even size,
+then the center index of the kernel in that dimension will be the
+largest integral index that is less than the continuous index of the
+image center.
+
+The kernel can optionally be normalized to sum to 1 using NormalizeOn() . Normalization is off by default.
+
+
+WARNING:
+This filter ignores the spacing, origin, and orientation of the kernel
+image and treats them as identical to those in the input image.
+ This code was contributed in the Insight Journal paper:
+
+\"Image Kernel Convolution\" by Tustison N., Gee J. https://hdl.handle.net/1926/1323 http://www.insight-journal.org/browse/publication/208
+
+
+Nicholas J. Tustison
+ James C. Gee
+
+Wiki Examples:
+
+All Examples
+
+Convolve an image with a kernel
+See:
+ itk::simple::Convolution for the procedural interface
+
+ itk::ConvolutionImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkConvolutionImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ConvolutionImageFilter::ConvolutionImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ConvolutionImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::ConvolutionImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ConvolutionImageFilter::GetBoundaryCondition "
+";
+
+%feature("docstring")  itk::simple::ConvolutionImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ConvolutionImageFilter::GetNormalize "
+";
+
+%feature("docstring")  itk::simple::ConvolutionImageFilter::GetOutputRegionMode "
+";
+
+%feature("docstring")  itk::simple::ConvolutionImageFilter::NormalizeOff "
+";
+
+%feature("docstring")  itk::simple::ConvolutionImageFilter::NormalizeOn "
+
+Set the value of Normalize to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::ConvolutionImageFilter::SetBoundaryCondition "
+";
+
+%feature("docstring")  itk::simple::ConvolutionImageFilter::SetNormalize "
+
+Normalize the output image by the sum of the kernel components
+
+";
+
+%feature("docstring")  itk::simple::ConvolutionImageFilter::SetOutputRegionMode "
+";
+
+%feature("docstring")  itk::simple::ConvolutionImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ConvolutionImageFilter::~ConvolutionImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::CosImageFilter "
+
+Computes the cosine of each pixel.
+
+
+This filter is templated over the pixel type of the input image and
+the pixel type of the output image.
+
+The filter walks over all of the pixels in the input image, and for
+each pixel does the following:
+
+
+cast the pixel value to double ,
+
+apply the std::cos() function to the double value,
+
+cast the double value resulting from std::cos() to the pixel type of
+the output image,
+
+store the cast value into the output image.
+ The filter expects both images to have the same dimension (e.g. both
+2D, or both 3D, or both ND)
+See:
+ itk::simple::Cos for the procedural interface
+
+ itk::CosImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkCosImageFilter.h
+";
+
+%feature("docstring")  itk::simple::CosImageFilter::CosImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::CosImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::CosImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::CosImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::CosImageFilter::~CosImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::CropImageFilter "
+
+Decrease the image size by cropping the image by an itk::Size at both the upper and lower bounds of the largest possible region.
+
+
+CropImageFilter changes the image boundary of an image by removing pixels outside the
+target region. The target region is not specified in advance, but
+calculated in BeforeThreadedGenerateData() .
+
+This filter uses ExtractImageFilter to perform the cropping.
+
+Wiki Examples:
+
+All Examples
+
+Crop an image by specifying the region to throw away
+See:
+ itk::simple::Crop for the procedural interface
+
+ itk::CropImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkCropImageFilter.h
+";
+
+%feature("docstring")  itk::simple::CropImageFilter::CropImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::CropImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::CropImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::CropImageFilter::GetLowerBoundaryCropSize "
+
+Set/Get the cropping sizes for the upper and lower boundaries.
+
+";
+
+%feature("docstring")  itk::simple::CropImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::CropImageFilter::GetUpperBoundaryCropSize "
+
+Set/Get the cropping sizes for the upper and lower boundaries.
+
+";
+
+%feature("docstring")  itk::simple::CropImageFilter::SetLowerBoundaryCropSize "
+
+Set/Get the cropping sizes for the upper and lower boundaries.
+
+";
+
+%feature("docstring")  itk::simple::CropImageFilter::SetUpperBoundaryCropSize "
+
+Set/Get the cropping sizes for the upper and lower boundaries.
+
+";
+
+%feature("docstring")  itk::simple::CropImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::CropImageFilter::~CropImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::CurvatureAnisotropicDiffusionImageFilter "
+
+This filter performs anisotropic diffusion on a scalar itk::Image using the modified curvature diffusion equation (MCDE) implemented in
+itkCurvatureNDAnisotropicDiffusionFunction. For detailed information
+on anisotropic diffusion and the MCDE see
+itkAnisotropicDiffusionFunction and
+itkCurvatureNDAnisotropicDiffusionFunction.
+
+Inputs and Outputs
+The input and output to this filter must be a scalar itk::Image with numerical pixel types (float or double). A user defined type
+which correctly defines arithmetic operations with floating point
+accuracy should also give correct results.
+Parameters
+Please first read all the documentation found in AnisotropicDiffusionImageFilter and AnisotropicDiffusionFunction . Also see CurvatureNDAnisotropicDiffusionFunction .
+ The default time step for this filter is set to the maximum
+theoretically stable value: 0.5 / 2^N, where N is the dimensionality
+of the image. For a 2D image, this means valid time steps are below
+0.1250. For a 3D image, valid time steps are below 0.0625.
+
+
+See:
+ AnisotropicDiffusionImageFilter
+
+ AnisotropicDiffusionFunction
+
+ CurvatureNDAnisotropicDiffusionFunction
+
+ itk::simple::CurvatureAnisotropicDiffusion for the procedural interface
+
+ itk::CurvatureAnisotropicDiffusionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkCurvatureAnisotropicDiffusionImageFilter.h
+";
+
+%feature("docstring")  itk::simple::CurvatureAnisotropicDiffusionImageFilter::CurvatureAnisotropicDiffusionImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::CurvatureAnisotropicDiffusionImageFilter::EstimateOptimalTimeStep "
+
+This method autmatically sets the optimal timestep for an image given
+its spacing.
+
+";
+
+%feature("docstring")  itk::simple::CurvatureAnisotropicDiffusionImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::CurvatureAnisotropicDiffusionImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::CurvatureAnisotropicDiffusionImageFilter::GetConductanceParameter "
+";
+
+%feature("docstring")  itk::simple::CurvatureAnisotropicDiffusionImageFilter::GetConductanceScalingUpdateInterval "
+";
+
+%feature("docstring")  itk::simple::CurvatureAnisotropicDiffusionImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::CurvatureAnisotropicDiffusionImageFilter::GetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::CurvatureAnisotropicDiffusionImageFilter::GetTimeStep "
+";
+
+%feature("docstring")  itk::simple::CurvatureAnisotropicDiffusionImageFilter::SetConductanceParameter "
+";
+
+%feature("docstring")  itk::simple::CurvatureAnisotropicDiffusionImageFilter::SetConductanceScalingUpdateInterval "
+";
+
+%feature("docstring")  itk::simple::CurvatureAnisotropicDiffusionImageFilter::SetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::CurvatureAnisotropicDiffusionImageFilter::SetTimeStep "
+";
+
+%feature("docstring")  itk::simple::CurvatureAnisotropicDiffusionImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::CurvatureAnisotropicDiffusionImageFilter::~CurvatureAnisotropicDiffusionImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::CurvatureFlowImageFilter "
+
+Denoise an image using curvature driven flow.
+
+
+CurvatureFlowImageFilter implements a curvature driven image denoising algorithm. Iso-
+brightness contours in the grayscale input image are viewed as a level
+set. The level set is then evolved using a curvature-based speed
+function:
+
+\\\\[ I_t = \\\\kappa |\\\\nabla I| \\\\] where $ \\\\kappa $ is the curvature.
+
+The advantage of this approach is that sharp boundaries are preserved
+with smoothing occurring only within a region. However, it should be
+noted that continuous application of this scheme will result in the
+eventual removal of all information as each contour shrinks to zero
+and disappear.
+
+Note that unlike level set segmentation algorithms, the image to be
+denoised is already the level set and can be set directly as the input
+using the SetInput() method.
+
+This filter has two parameters: the number of update iterations to be
+performed and the timestep between each update.
+
+The timestep should be \"small enough\" to ensure numerical stability.
+Stability is guarantee when the timestep meets the CFL (Courant-
+Friedrichs-Levy) condition. Broadly speaking, this condition ensures
+that each contour does not move more than one grid position at each
+timestep. In the literature, the timestep is typically user specified
+and have to manually tuned to the application.
+
+This filter make use of the multi-threaded finite difference solver
+hierarchy. Updates are computed using a CurvatureFlowFunction object. A zero flux Neumann boundary condition when computing
+derivatives near the data boundary.
+
+This filter may be streamed. To support streaming this filter produces
+a padded output which takes into account edge effects. The size of the
+padding is m_NumberOfIterations on each edge. Users of this filter
+should only make use of the center valid central region.
+
+
+WARNING:
+This filter assumes that the input and output types have the same
+dimensions. This filter also requires that the output image pixels are
+of a floating point type. This filter works for any dimensional
+images.
+ Reference: \"Level Set Methods and Fast Marching Methods\", J.A.
+Sethian, Cambridge Press, Chapter 16, Second edition, 1999.
+
+
+See:
+ DenseFiniteDifferenceImageFilter
+
+ CurvatureFlowFunction
+
+ MinMaxCurvatureFlowImageFilter
+
+ BinaryMinMaxCurvatureFlowImageFilter
+
+ itk::simple::CurvatureFlow for the procedural interface
+
+ itk::CurvatureFlowImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkCurvatureFlowImageFilter.h
+";
+
+%feature("docstring")  itk::simple::CurvatureFlowImageFilter::CurvatureFlowImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::CurvatureFlowImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::CurvatureFlowImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::CurvatureFlowImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::CurvatureFlowImageFilter::GetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::CurvatureFlowImageFilter::GetTimeStep "
+
+Get the timestep parameter.
+
+";
+
+%feature("docstring")  itk::simple::CurvatureFlowImageFilter::SetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::CurvatureFlowImageFilter::SetTimeStep "
+
+Set the timestep parameter.
+
+";
+
+%feature("docstring")  itk::simple::CurvatureFlowImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::CurvatureFlowImageFilter::~CurvatureFlowImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::CyclicShiftImageFilter "
+
+Perform a cyclic spatial shift of image intensities on the image grid.
+
+
+This filter supports arbitrary cyclic shifts of pixel values on the
+image grid. If the Shift is set to [xOff, yOff], the value of the
+pixel at [0, 0] in the input image will be the value of the pixel in
+the output image at index [xOff modulo xSize, yOff modulo ySize] where
+xSize and ySize are the sizes of the image in the x and y dimensions,
+respectively. If a pixel value is moved across a boundary, the pixel
+value is wrapped around that boundary. For example, if the image is
+40-by-40 and the Shift is [13, 47], then the value of the pixel at [0,
+0] in the input image will be the value of the pixel in the output
+image at index [13, 7].
+
+Negative Shifts are supported. This filter also works with images
+whose largest possible region starts at a non-zero index.
+See:
+ itk::simple::CyclicShift for the procedural interface
+
+ itk::CyclicShiftImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkCyclicShiftImageFilter.h
+";
+
+%feature("docstring")  itk::simple::CyclicShiftImageFilter::CyclicShiftImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::CyclicShiftImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::CyclicShiftImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::CyclicShiftImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::CyclicShiftImageFilter::GetShift "
+
+Set/get the shift. Shifts may be positive or negative.
+
+";
+
+%feature("docstring")  itk::simple::CyclicShiftImageFilter::SetShift "
+
+Set/get the shift. Shifts may be positive or negative.
+
+";
+
+%feature("docstring")  itk::simple::CyclicShiftImageFilter::SetShift "
+
+Set the values of the Shift vector all to value
+
+";
+
+%feature("docstring")  itk::simple::CyclicShiftImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::CyclicShiftImageFilter::~CyclicShiftImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::DanielssonDistanceMapImageFilter "
+
+This filter computes the distance map of the input image as an
+approximation with pixel accuracy to the Euclidean distance.
+
+
+TInputImage
+
+Input Image Type
+
+TOutputImage
+
+Output Image Type
+
+TVoronoiImage
+
+Voronoi Image Type. Note the default value is TInputImage.
+
+The input is assumed to contain numeric codes defining objects. The
+filter will produce as output the following images:
+
+
+A Voronoi partition using the same numeric codes as the input.
+
+A distance map with the approximation to the euclidean distance. from
+a particular pixel to the nearest object to this pixel in the input
+image.
+
+A vector map containing the component of the vector relating the
+current pixel with the closest point of the closest object to this
+pixel. Given that the components of the distance are computed in
+\"pixels\", the vector is represented by an itk::Offset . That is, physical coordinates are not used.
+ This filter is N-dimensional and known to be efficient in
+computational time. The algorithm is the N-dimensional version of the
+4SED algorithm given for two dimensions in:
+
+Danielsson, Per-Erik. Euclidean Distance Mapping. Computer Graphics
+and Image Processing 14, 227-248 (1980).
+See:
+ itk::simple::DanielssonDistanceMap for the procedural interface
+
+ itk::DanielssonDistanceMapImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkDanielssonDistanceMapImageFilter.h
+";
+
+%feature("docstring")  itk::simple::DanielssonDistanceMapImageFilter::DanielssonDistanceMapImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::DanielssonDistanceMapImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::DanielssonDistanceMapImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::DanielssonDistanceMapImageFilter::GetInputIsBinary "
+
+Get if the input is binary. See SetInputIsBinary() .
+
+";
+
+%feature("docstring")  itk::simple::DanielssonDistanceMapImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::DanielssonDistanceMapImageFilter::GetSquaredDistance "
+
+Get the distance squared.
+
+";
+
+%feature("docstring")  itk::simple::DanielssonDistanceMapImageFilter::GetUseImageSpacing "
+
+Get whether spacing is used.
+
+";
+
+%feature("docstring")  itk::simple::DanielssonDistanceMapImageFilter::InputIsBinaryOff "
+";
+
+%feature("docstring")  itk::simple::DanielssonDistanceMapImageFilter::InputIsBinaryOn "
+
+Set the value of InputIsBinary to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::DanielssonDistanceMapImageFilter::SetInputIsBinary "
+
+Set if the input is binary. If this variable is set, each nonzero
+pixel in the input image will be given a unique numeric code to be
+used by the Voronoi partition. If the image is binary but you are not
+interested in the Voronoi regions of the different nonzero pixels,
+then you need not set this.
+
+";
+
+%feature("docstring")  itk::simple::DanielssonDistanceMapImageFilter::SetSquaredDistance "
+
+Set if the distance should be squared.
+
+";
+
+%feature("docstring")  itk::simple::DanielssonDistanceMapImageFilter::SetUseImageSpacing "
+
+Set if image spacing should be used in computing distances.
+
+";
+
+%feature("docstring")  itk::simple::DanielssonDistanceMapImageFilter::SquaredDistanceOff "
+";
+
+%feature("docstring")  itk::simple::DanielssonDistanceMapImageFilter::SquaredDistanceOn "
+
+Set the value of SquaredDistance to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::DanielssonDistanceMapImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::DanielssonDistanceMapImageFilter::UseImageSpacingOff "
+";
+
+%feature("docstring")  itk::simple::DanielssonDistanceMapImageFilter::UseImageSpacingOn "
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::DanielssonDistanceMapImageFilter::~DanielssonDistanceMapImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::DemonsRegistrationFilter "
+
+Deformably register two images using the demons algorithm.
+
+
+DemonsRegistrationFilter implements the demons deformable algorithm that register two images
+by computing the displacement field which will map a moving image onto
+a fixed image.
+
+A displacement field is represented as a image whose pixel type is
+some vector type with at least N elements, where N is the dimension of
+the fixed image. The vector type must support element access via
+operator []. It is assumed that the vector elements behave like
+floating point scalars.
+
+This class is templated over the fixed image type, moving image type
+and the displacement field type.
+
+The input fixed and moving images are set via methods SetFixedImage
+and SetMovingImage respectively. An initial displacement field maybe
+set via SetInitialDisplacementField or SetInput. If no initial field
+is set, a zero field is used as the initial condition.
+
+The algorithm has one parameters: the number of iteration to be
+performed.
+
+The output displacement field can be obtained via methods GetOutput or
+GetDisplacementField.
+
+This class make use of the finite difference solver hierarchy. Update
+for each iteration is computed in DemonsRegistrationFunction .
+
+
+WARNING:
+This filter assumes that the fixed image type, moving image type and
+displacement field type all have the same number of dimensions.
+
+See:
+ DemonsRegistrationFunction
+
+ itk::DemonsRegistrationFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkDemonsRegistrationFilter.h
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::DemonsRegistrationFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::GetElapsedIterations "
+
+Number of iterations run.
+
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::GetIntensityDifferenceThreshold "
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::GetMaximumError "
+
+Set/Get the desired maximum error of the Guassian kernel approximate.
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::GetMaximumKernelWidth "
+
+Set/Get the desired limits of the Gaussian kernel width.
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::GetMaximumRMSError "
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::GetMetric "
+
+Get the metric value. The metric value is the mean square difference
+in intensity between the fixed image and transforming moving image
+computed over the the overlapping region between the two images. This
+is value is only available for the previous iteration and NOT the
+current iteration.
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::GetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::GetRMSChange "
+
+The Root Mean Square of the levelset upon termination.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::GetSmoothDisplacementField "
+
+Set/Get whether the displacement field is smoothed (regularized).
+Smoothing the displacement yields a solution elastic in nature. If
+SmoothDisplacementField is on, then the displacement field is smoothed
+with a Gaussian whose standard deviations are specified with SetStandardDeviations()
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::GetSmoothUpdateField "
+
+Set/Get whether the update field is smoothed (regularized). Smoothing
+the update field yields a solution viscous in nature. If
+SmoothUpdateField is on, then the update field is smoothed with a
+Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::GetStandardDeviations "
+
+Set/Get the Gaussian smoothing standard deviations for the
+displacement field. The values are set with respect to pixel
+coordinates.
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::GetUpdateFieldStandardDeviations "
+
+Set the Gaussian smoothing standard deviations for the update field.
+The values are set with respect to pixel coordinates.
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::GetUseImageSpacing "
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::GetUseMovingImageGradient "
+
+Switch between using the fixed image and moving image gradient for
+computing the displacement field updates.
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::SetIntensityDifferenceThreshold "
+
+Set/Get the threshold below which the absolute difference of intensity
+yields a match. When the intensities match between a moving and fixed
+image pixel, the update vector (for that iteration) will be the zero
+vector. Default is 0.001.
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::SetMaximumError "
+
+Set/Get the desired maximum error of the Guassian kernel approximate.
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::SetMaximumKernelWidth "
+
+Set/Get the desired limits of the Gaussian kernel width.
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::SetMaximumRMSError "
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::SetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::SetSmoothDisplacementField "
+
+Set/Get whether the displacement field is smoothed (regularized).
+Smoothing the displacement yields a solution elastic in nature. If
+SmoothDisplacementField is on, then the displacement field is smoothed
+with a Gaussian whose standard deviations are specified with SetStandardDeviations()
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::SetSmoothUpdateField "
+
+Set/Get whether the update field is smoothed (regularized). Smoothing
+the update field yields a solution viscous in nature. If
+SmoothUpdateField is on, then the update field is smoothed with a
+Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::SetStandardDeviations "
+
+Set/Get the Gaussian smoothing standard deviations for the
+displacement field. The values are set with respect to pixel
+coordinates.
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::SetStandardDeviations "
+
+Set the values of the StandardDeviations vector all to value
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::SetUpdateFieldStandardDeviations "
+
+Set the Gaussian smoothing standard deviations for the update field.
+The values are set with respect to pixel coordinates.
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::SetUpdateFieldStandardDeviations "
+
+Set the values of the UpdateFieldStandardDeviations vector all to
+value
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::SetUseImageSpacing "
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::SetUseMovingImageGradient "
+
+Switch between using the fixed image and moving image gradient for
+computing the displacement field updates.
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::SmoothDisplacementFieldOff "
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::SmoothDisplacementFieldOn "
+
+Set the value of SmoothDisplacementField to true or false
+respectfully.
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::SmoothUpdateFieldOff "
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::SmoothUpdateFieldOn "
+
+Set the value of SmoothUpdateField to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::UseImageSpacingOff "
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::UseImageSpacingOn "
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::UseMovingImageGradientOff "
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::UseMovingImageGradientOn "
+
+Set the value of UseMovingImageGradient to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::DemonsRegistrationFilter::~DemonsRegistrationFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::DerivativeImageFilter "
+
+Computes the directional derivative of an image. The directional
+derivative at each pixel location is computed by convolution with a
+derivative operator of user-specified order.
+
+
+SetOrder specifies the order of the derivative.
+
+SetDirection specifies the direction of the derivative with respect to
+the coordinate axes of the image.
+
+
+See:
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+Wiki Examples:
+
+All Examples
+
+Compute the derivative of an image in a particular direction
+See:
+ itk::simple::Derivative for the procedural interface
+
+ itk::DerivativeImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkDerivativeImageFilter.h
+";
+
+%feature("docstring")  itk::simple::DerivativeImageFilter::DerivativeImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::DerivativeImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::DerivativeImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::DerivativeImageFilter::GetDirection "
+
+The output pixel type must be signed. Standard get/set macros for
+filter parameters.
+
+";
+
+%feature("docstring")  itk::simple::DerivativeImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::DerivativeImageFilter::GetOrder "
+
+The output pixel type must be signed. Standard get/set macros for
+filter parameters.
+
+";
+
+%feature("docstring")  itk::simple::DerivativeImageFilter::GetUseImageSpacing "
+
+Set/Get whether or not the filter will use the spacing of the input
+image in its calculations
+
+";
+
+%feature("docstring")  itk::simple::DerivativeImageFilter::SetDirection "
+
+The output pixel type must be signed. Standard get/set macros for
+filter parameters.
+
+";
+
+%feature("docstring")  itk::simple::DerivativeImageFilter::SetOrder "
+
+The output pixel type must be signed. Standard get/set macros for
+filter parameters.
+
+";
+
+%feature("docstring")  itk::simple::DerivativeImageFilter::SetUseImageSpacing "
+
+Set/Get whether or not the filter will use the spacing of the input
+image in its calculations
+
+";
+
+%feature("docstring")  itk::simple::DerivativeImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::DerivativeImageFilter::UseImageSpacingOff "
+";
+
+%feature("docstring")  itk::simple::DerivativeImageFilter::UseImageSpacingOn "
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::DerivativeImageFilter::~DerivativeImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::DiffeomorphicDemonsRegistrationFilter "
+
+Deformably register two images using a diffeomorphic demons algorithm.
+
+
+This class was contributed by Tom Vercauteren, INRIA & Mauna Kea
+Technologies, based on a variation of the DemonsRegistrationFilter . The basic modification is to use diffeomorphism exponentials.
+
+See T. Vercauteren, X. Pennec, A. Perchant and N. Ayache, \"Non-
+parametric Diffeomorphic Image Registration with the Demons
+Algorithm\", Proc. of MICCAI 2007.
+
+DiffeomorphicDemonsRegistrationFilter implements the demons deformable algorithm that register two images
+by computing the deformation field which will map a moving image onto
+a fixed image.
+
+A deformation field is represented as a image whose pixel type is some
+vector type with at least N elements, where N is the dimension of the
+fixed image. The vector type must support element access via operator
+[]. It is assumed that the vector elements behave like floating point
+scalars.
+
+This class is templated over the fixed image type, moving image type
+and the deformation field type.
+
+The input fixed and moving images are set via methods SetFixedImage
+and SetMovingImage respectively. An initial deformation field maybe
+set via SetInitialDisplacementField or SetInput. If no initial field
+is set, a zero field is used as the initial condition.
+
+The output deformation field can be obtained via methods GetOutput or
+GetDisplacementField.
+
+This class make use of the finite difference solver hierarchy. Update
+for each iteration is computed in DemonsRegistrationFunction .
+
+
+Tom Vercauteren, INRIA & Mauna Kea Technologies
+
+WARNING:
+This filter assumes that the fixed image type, moving image type and
+deformation field type all have the same number of dimensions.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/510
+
+
+See:
+ DemonsRegistrationFilter
+
+ DemonsRegistrationFunction
+
+ itk::DiffeomorphicDemonsRegistrationFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkDiffeomorphicDemonsRegistrationFilter.h
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::DiffeomorphicDemonsRegistrationFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetElapsedIterations "
+
+Number of iterations run.
+
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetIntensityDifferenceThreshold "
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetMaximumError "
+
+Set/Get the desired maximum error of the Guassian kernel approximate.
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetMaximumKernelWidth "
+
+Set/Get the desired limits of the Gaussian kernel width.
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetMaximumRMSError "
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetMaximumUpdateStepLength "
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetMetric "
+
+Get the metric value. The metric value is the mean square difference
+in intensity between the fixed image and transforming moving image
+computed over the the overlapping region between the two images. This
+value is calculated for the current iteration
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetRMSChange "
+
+Set/Get the root mean squared change of the previous iteration. May
+not be used by all solvers.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetSmoothDisplacementField "
+
+Set/Get whether the displacement field is smoothed (regularized).
+Smoothing the displacement yields a solution elastic in nature. If
+SmoothDisplacementField is on, then the displacement field is smoothed
+with a Gaussian whose standard deviations are specified with SetStandardDeviations()
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetSmoothUpdateField "
+
+Set/Get whether the update field is smoothed (regularized). Smoothing
+the update field yields a solution viscous in nature. If
+SmoothUpdateField is on, then the update field is smoothed with a
+Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetStandardDeviations "
+
+Set/Get the Gaussian smoothing standard deviations for the
+displacement field. The values are set with respect to pixel
+coordinates.
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetUpdateFieldStandardDeviations "
+
+Set the Gaussian smoothing standard deviations for the update field.
+The values are set with respect to pixel coordinates.
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetUseFirstOrderExp "
+
+Use a first-order approximation of the exponential. This amounts to
+using an update rule of the type s <- s o (Id + u) instead of s <- s o
+exp(u)
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetUseGradientType "
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::GetUseImageSpacing "
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetIntensityDifferenceThreshold "
+
+Set/Get the threshold below which the absolute difference of intensity
+yields a match. When the intensities match between a moving and fixed
+image pixel, the update vector (for that iteration) will be the zero
+vector. Default is 0.001.
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetMaximumError "
+
+Set/Get the desired maximum error of the Guassian kernel approximate.
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetMaximumKernelWidth "
+
+Set/Get the desired limits of the Gaussian kernel width.
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetMaximumRMSError "
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetMaximumUpdateStepLength "
+
+Set/Get the maximum length in terms of pixels of the vectors in the
+update buffer.
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetSmoothDisplacementField "
+
+Set/Get whether the displacement field is smoothed (regularized).
+Smoothing the displacement yields a solution elastic in nature. If
+SmoothDisplacementField is on, then the displacement field is smoothed
+with a Gaussian whose standard deviations are specified with SetStandardDeviations()
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetSmoothUpdateField "
+
+Set/Get whether the update field is smoothed (regularized). Smoothing
+the update field yields a solution viscous in nature. If
+SmoothUpdateField is on, then the update field is smoothed with a
+Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetStandardDeviations "
+
+Set/Get the Gaussian smoothing standard deviations for the
+displacement field. The values are set with respect to pixel
+coordinates.
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetStandardDeviations "
+
+Set the values of the StandardDeviations vector all to value
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetUpdateFieldStandardDeviations "
+
+Set the Gaussian smoothing standard deviations for the update field.
+The values are set with respect to pixel coordinates.
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetUpdateFieldStandardDeviations "
+
+Set the values of the UpdateFieldStandardDeviations vector all to
+value
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetUseFirstOrderExp "
+
+Use a first-order approximation of the exponential. This amounts to
+using an update rule of the type s <- s o (Id + u) instead of s <- s o
+exp(u)
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetUseGradientType "
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::SetUseImageSpacing "
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::SmoothDisplacementFieldOff "
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::SmoothDisplacementFieldOn "
+
+Set the value of SmoothDisplacementField to true or false
+respectfully.
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::SmoothUpdateFieldOff "
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::SmoothUpdateFieldOn "
+
+Set the value of SmoothUpdateField to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::UseFirstOrderExpOff "
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::UseFirstOrderExpOn "
+
+Set the value of UseFirstOrderExp to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::UseImageSpacingOff "
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::UseImageSpacingOn "
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::DiffeomorphicDemonsRegistrationFilter::~DiffeomorphicDemonsRegistrationFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::DilateObjectMorphologyImageFilter "
+
+dilation of an object in an image
+
+
+Dilate an image using binary morphology. Pixel values matching the
+object value are considered the \"foreground\" and all other pixels
+are \"background\". This is useful in processing mask images
+containing only one object.
+
+If a pixel's value is equal to the object value and the pixel is
+adjacent to a non-object valued pixel, then the kernel is centered on
+the object-value pixel and neighboring pixels covered by the kernel
+are assigned the object value. The structuring element is assumed to
+be composed of binary values (zero or one).
+
+
+See:
+ ObjectMorphologyImageFilter , ErodeObjectMorphologyImageFilter
+
+ BinaryDilateImageFilter
+
+ itk::simple::DilateObjectMorphology for the procedural interface
+
+ itk::DilateObjectMorphologyImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkDilateObjectMorphologyImageFilter.h
+";
+
+%feature("docstring")  itk::simple::DilateObjectMorphologyImageFilter::DilateObjectMorphologyImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::DilateObjectMorphologyImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::DilateObjectMorphologyImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::DilateObjectMorphologyImageFilter::GetKernelRadius "
+";
+
+%feature("docstring")  itk::simple::DilateObjectMorphologyImageFilter::GetKernelType "
+";
+
+%feature("docstring")  itk::simple::DilateObjectMorphologyImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::DilateObjectMorphologyImageFilter::GetObjectValue "
+";
+
+%feature("docstring")  itk::simple::DilateObjectMorphologyImageFilter::SetKernelRadius "
+
+Kernel radius as a scale for isotropic structures
+
+";
+
+%feature("docstring")  itk::simple::DilateObjectMorphologyImageFilter::SetKernelRadius "
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+";
+
+%feature("docstring")  itk::simple::DilateObjectMorphologyImageFilter::SetKernelType "
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+";
+
+%feature("docstring")  itk::simple::DilateObjectMorphologyImageFilter::SetKernelType "
+";
+
+%feature("docstring")  itk::simple::DilateObjectMorphologyImageFilter::SetObjectValue "
+";
+
+%feature("docstring")  itk::simple::DilateObjectMorphologyImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::DilateObjectMorphologyImageFilter::~DilateObjectMorphologyImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::DiscreteGaussianDerivativeImageFilter "
+
+Calculates image derivatives using discrete derivative gaussian
+kernels. This filter calculates Gaussian derivative by separable
+convolution of an image and a discrete Gaussian derivative operator
+(kernel).
+
+
+The Gaussian operators used here were described by Tony Lindeberg
+(Discrete Scale-Space Theory and the Scale-Space Primal Sketch.
+Dissertation. Royal Institute of Technology, Stockholm, Sweden. May
+1991.)
+
+The variance or standard deviation (sigma) will be evaluated as pixel
+units if SetUseImageSpacing is off (false) or as physical units if
+SetUseImageSpacing is on (true, default). The variance can be set
+independently in each dimension.
+
+When the Gaussian kernel is small, this filter tends to run faster
+than itk::RecursiveGaussianImageFilter .
+
+
+Ivan Macia, VICOMTech, Spain, http://www.vicomtech.es
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/1290
+
+
+See:
+ GaussianDerivativeOperator
+
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ itk::simple::DiscreteGaussianDerivative for the procedural interface
+
+ itk::DiscreteGaussianDerivativeImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkDiscreteGaussianDerivativeImageFilter.h
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianDerivativeImageFilter::DiscreteGaussianDerivativeImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianDerivativeImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianDerivativeImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianDerivativeImageFilter::GetMaximumError "
+
+The algorithm will size the discrete kernel so that the error
+resulting from truncation of the kernel is no greater than
+MaximumError. The default is 0.01 in each dimension.
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianDerivativeImageFilter::GetMaximumKernelWidth "
+
+Set the kernel to be no wider than MaximumKernelWidth pixels, even if
+MaximumError demands it. The default is 32 pixels.
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianDerivativeImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianDerivativeImageFilter::GetNormalizeAcrossScale "
+
+Set/Get the flag for calculating scale-space normalized derivatives.
+Normalized derivatives are obtained multiplying by the scale parameter
+t.
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianDerivativeImageFilter::GetOrder "
+
+Order of derivatives in each dimension. Sets the derivative order
+independently for each dimension, but see also SetOrder(const unsigned int v) . The default is 1 in each dimension.
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianDerivativeImageFilter::GetUseImageSpacing "
+
+Set/Get whether or not the filter will use the spacing of the input
+image in its calculations. Default is ImageSpacingOn.
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianDerivativeImageFilter::GetVariance "
+
+The variance for the discrete Gaussian kernel. Sets the variance
+independently for each dimension, but see also SetVariance(const double v) . The default is 0.0 in each dimension. If UseImageSpacing is true,
+the units are the physical units of your image. If UseImageSpacing is
+false then the units are pixels.
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianDerivativeImageFilter::NormalizeAcrossScaleOff "
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianDerivativeImageFilter::NormalizeAcrossScaleOn "
+
+Set the value of NormalizeAcrossScale to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianDerivativeImageFilter::SetMaximumError "
+
+Convenience Set methods for setting all dimensional parameters to the
+same values.
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianDerivativeImageFilter::SetMaximumKernelWidth "
+
+Set the kernel to be no wider than MaximumKernelWidth pixels, even if
+MaximumError demands it. The default is 32 pixels.
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianDerivativeImageFilter::SetNormalizeAcrossScale "
+
+Set/Get the flag for calculating scale-space normalized derivatives.
+Normalized derivatives are obtained multiplying by the scale parameter
+t.
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianDerivativeImageFilter::SetOrder "
+
+Convenience Set methods for setting all dimensional parameters to the
+same values.
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianDerivativeImageFilter::SetOrder "
+
+Set the values of the Order vector all to value
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianDerivativeImageFilter::SetUseImageSpacing "
+
+Set/Get whether or not the filter will use the spacing of the input
+image in its calculations. Default is ImageSpacingOn.
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianDerivativeImageFilter::SetVariance "
+
+Convenience Set methods for setting all dimensional parameters to the
+same values.
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianDerivativeImageFilter::SetVariance "
+
+Set the values of the Variance vector all to value
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianDerivativeImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianDerivativeImageFilter::UseImageSpacingOff "
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianDerivativeImageFilter::UseImageSpacingOn "
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianDerivativeImageFilter::~DiscreteGaussianDerivativeImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::DiscreteGaussianImageFilter "
+
+Blurs an image by separable convolution with discrete gaussian
+kernels. This filter performs Gaussian blurring by separable
+convolution of an image and a discrete Gaussian operator (kernel).
+
+
+The Gaussian operator used here was described by Tony Lindeberg
+(Discrete Scale-Space Theory and the Scale-Space Primal Sketch.
+Dissertation. Royal Institute of Technology, Stockholm, Sweden. May
+1991.) The Gaussian kernel used here was designed so that smoothing
+and derivative operations commute after discretization.
+
+The variance or standard deviation (sigma) will be evaluated as pixel
+units if SetUseImageSpacing is off (false) or as physical units if
+SetUseImageSpacing is on (true, default). The variance can be set
+independently in each dimension.
+
+When the Gaussian kernel is small, this filter tends to run faster
+than itk::RecursiveGaussianImageFilter .
+
+
+See:
+ GaussianOperator
+
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ RecursiveGaussianImageFilter
+Wiki Examples:
+
+All Examples
+
+Smooth an image with a discrete Gaussian filter
+See:
+ itk::simple::DiscreteGaussian for the procedural interface
+
+ itk::DiscreteGaussianImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkDiscreteGaussianImageFilter.h
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianImageFilter::DiscreteGaussianImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianImageFilter::GetMaximumError "
+
+The algorithm will size the discrete kernel so that the error
+resulting from truncation of the kernel is no greater than
+MaximumError. The default is 0.01 in each dimension.
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianImageFilter::GetMaximumKernelWidth "
+
+Set the kernel to be no wider than MaximumKernelWidth pixels, even if
+MaximumError demands it. The default is 32 pixels.
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianImageFilter::GetUseImageSpacing "
+
+Set/Get whether or not the filter will use the spacing of the input
+image in its calculations
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianImageFilter::GetVariance "
+
+The variance for the discrete Gaussian kernel. Sets the variance
+independently for each dimension, but see also SetVariance(const double v) . The default is 0.0 in each dimension. If UseImageSpacing is true,
+the units are the physical units of your image. If UseImageSpacing is
+false then the units are pixels.
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianImageFilter::SetMaximumError "
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianImageFilter::SetMaximumKernelWidth "
+
+Set the kernel to be no wider than MaximumKernelWidth pixels, even if
+MaximumError demands it. The default is 32 pixels.
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianImageFilter::SetUseImageSpacing "
+
+Set/Get whether or not the filter will use the spacing of the input
+image in its calculations
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianImageFilter::SetVariance "
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianImageFilter::UseImageSpacingOff "
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianImageFilter::UseImageSpacingOn "
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianImageFilter::~DiscreteGaussianImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::DisplacementFieldJacobianDeterminantFilter "
+
+Computes a scalar image from a vector image (e.g., deformation field)
+input, where each output scalar at each pixel is the Jacobian
+determinant of the vector field at that location. This calculation is
+correct in the case where the vector image is a \"displacement\" from
+the current location. The computation for the jacobian determinant is:
+det[ dT/dx ] = det[ I + du/dx ].
+
+
+Overview
+This filter is based on itkVectorGradientMagnitudeImageFilter and
+supports the m_DerivativeWeights weights for partial derivatives.
+ Note that the determinant of a zero vector field is also zero,
+whereas the Jacobian determinant of the corresponding identity warp
+transformation is 1.0. In order to compute the effective deformation
+Jacobian determinant 1.0 must be added to the diagonal elements of
+Jacobian prior to taking the derivative. i.e. det([ (1.0+dx/dx) dx/dy
+dx/dz ; dy/dx (1.0+dy/dy) dy/dz; dz/dx dz/dy (1.0+dz/dz) ])
+
+Template Parameters (Input and Output)
+This filter has one required template parameter which defines the
+input image type. The pixel type of the input image is assumed to be a
+vector (e.g., itk::Vector , itk::RGBPixel , itk::FixedArray ). The scalar type of the vector components must be castable to
+floating point. Instantiating with an image of RGBPixel<unsigned
+short>, for example, is allowed, but the filter will convert it to an
+image of Vector<float,3> for processing.
+ The second template parameter, TRealType, can be optionally specified
+to define the scalar numerical type used in calculations. This is the
+component type of the output image, which will be of
+itk::Vector<TRealType, N>, where N is the number of channels in the
+multiple component input image. The default type of TRealType is
+float. For extra precision, you may safely change this parameter to
+double.
+
+The third template parameter is the output image type. The third
+parameter will be automatically constructed from the first and second
+parameters, so it is not necessary (or advisable) to set this
+parameter explicitly. Given an M-channel input image with
+dimensionality N, and a numerical type specified as TRealType, the
+output image will be of type itk::Image<TRealType, N>.
+
+Filter Parameters
+The method SetUseImageSpacingOn will cause derivatives in the image to
+be scaled (inversely) with the pixel size of the input image,
+effectively taking derivatives in world coordinates (versus isotropic
+image space). SetUseImageSpacingOff turns this functionality off.
+Default is UseImageSpacingOn. The parameter UseImageSpacing can be set
+directly with the method SetUseImageSpacing(bool) .
+ Weights can be applied to the derivatives directly using the
+SetDerivativeWeights method. Note that if UseImageSpacing is set to
+TRUE (ON), then these weights will be overridden by weights derived
+from the image spacing when the filter is updated. The argument to
+this method is a C array of TRealValue type.
+
+Constraints
+We use vnl_det for determinent computation, which only supports square
+matrices. So the vector dimension of the input image values must be
+equal to the image dimensions, which is trivially true for a
+deformation field that maps an n-dimensional space onto itself.
+ Currently, dimensions up to and including 4 are supported. This
+limitation comes from the presence of vnl_det() functions for matrices
+of dimension up to 4x4.
+
+The template parameter TRealType must be floating point (float or
+double) or a user-defined \"real\" numerical type with arithmetic
+operations defined sufficient to compute derivatives.
+
+
+See:
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+
+This class was adapted by
+
+Hans J. Johnson, The University of Iowa from code provided by
+ Tom Vercauteren, INRIA & Mauna Kea Technologies
+
+Torsten Rohlfing, Neuroscience Program, SRI International.
+See:
+ itk::simple::DisplacementFieldJacobianDeterminantFilter for the procedural interface
+
+ itk::DisplacementFieldJacobianDeterminantFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkDisplacementFieldJacobianDeterminantFilter.h
+";
+
+%feature("docstring")  itk::simple::DisplacementFieldJacobianDeterminantFilter::DisplacementFieldJacobianDeterminantFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::DisplacementFieldJacobianDeterminantFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::DisplacementFieldJacobianDeterminantFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::DisplacementFieldJacobianDeterminantFilter::GetDerivativeWeights "
+
+Directly Set/Get the array of weights used in the gradient
+calculations. Note that calling UseImageSpacingOn will clobber these
+values.
+
+";
+
+%feature("docstring")  itk::simple::DisplacementFieldJacobianDeterminantFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::DisplacementFieldJacobianDeterminantFilter::GetUseImageSpacing "
+";
+
+%feature("docstring")  itk::simple::DisplacementFieldJacobianDeterminantFilter::SetDerivativeWeights "
+
+Directly Set/Get the array of weights used in the gradient
+calculations. Note that calling UseImageSpacingOn will clobber these
+values.
+
+";
+
+%feature("docstring")  itk::simple::DisplacementFieldJacobianDeterminantFilter::SetUseImageSpacing "
+
+Set/Get whether or not the filter will use the spacing of the input
+image in its calculations
+
+";
+
+%feature("docstring")  itk::simple::DisplacementFieldJacobianDeterminantFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::DisplacementFieldJacobianDeterminantFilter::UseImageSpacingOff "
+";
+
+%feature("docstring")  itk::simple::DisplacementFieldJacobianDeterminantFilter::UseImageSpacingOn "
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::DisplacementFieldJacobianDeterminantFilter::~DisplacementFieldJacobianDeterminantFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::DisplacementFieldTransform "
+
+A dense deformable transform over a bounded spatial domain for 2D or
+3D coordinates space.
+
+
+
+See:
+ itk::DisplacementFieldTransform
+
+
+C++ includes: sitkDisplacementFieldTransform.h
+";
+
+%feature("docstring")  itk::simple::DisplacementFieldTransform::DisplacementFieldTransform "
+";
+
+%feature("docstring")  itk::simple::DisplacementFieldTransform::DisplacementFieldTransform "
+
+Consume an image to construct a displacement field transform.
+
+
+
+WARNING:
+The input displacement image is transferred to the constructed
+transform object. The input image is modified to be a default
+constructed Image object.
+Image must be of sitkVectorFloat64 pixel type with the number of components
+equal to the image dimension.
+
+";
+
+%feature("docstring")  itk::simple::DisplacementFieldTransform::DisplacementFieldTransform "
+";
+
+%feature("docstring")  itk::simple::DisplacementFieldTransform::DisplacementFieldTransform "
+";
+
+%feature("docstring")  itk::simple::DisplacementFieldTransform::GetDisplacementField "
+
+Todo
+The returned image should not directly modify the internal
+displacement field.
+
+
+";
+
+%feature("docstring")  itk::simple::DisplacementFieldTransform::GetInverseDisplacementField "
+
+Todo
+The returned image is should not directly modify the internal
+displacement field.
+
+
+";
+
+%feature("docstring")  itk::simple::DisplacementFieldTransform::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::DisplacementFieldTransform::SetDisplacementField "
+
+Consume an image, and set the displacement field.
+
+
+parameters
+WARNING:
+The ownership of the input displacement image is transferred to the
+constructed transform object. The input image is modified to be a
+default constructed Image object.
+Image must be of sitkVectorFloat64 pixel type with the number of components
+equal to the image dimension.
+
+";
+
+%feature("docstring")  itk::simple::DisplacementFieldTransform::SetInterpolator "
+
+Set the interpolator used between the field voxels.
+
+";
+
+%feature("docstring")  itk::simple::DisplacementFieldTransform::SetInverseDisplacementField "
+
+fixed parameter
+
+";
+
+%feature("docstring")  itk::simple::DisplacementFieldTransform::SetSmoothingBSplineOnUpdate "
+";
+
+%feature("docstring")  itk::simple::DisplacementFieldTransform::SetSmoothingGaussianOnUpdate "
+";
+
+%feature("docstring")  itk::simple::DisplacementFieldTransform::SetSmoothingOff "
+";
+
+
+%feature("docstring") itk::simple::DivideFloorImageFilter "
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This class is parameterized over the types of the two input images and
+the type of the output image. It is also parameterized by the
+operation to be applied. A Functor style is used.
+
+The constant must be of the same type than the pixel type of the
+corresponding image. It is wrapped in a SimpleDataObjectDecorator so it can be updated through the pipeline. The SetConstant() and
+GetConstant() methods are provided as shortcuts to set or get the
+constant value without manipulating the decorator.
+
+
+See:
+ UnaryFunctorImageFilter TernaryFunctorImageFilter
+Wiki Examples:
+
+All Examples
+
+Apply a predefined operation to corresponding pixels in two images
+
+Apply a custom operation to corresponding pixels in two images
+See:
+ itk::simple::DivideFloor for the procedural interface
+
+ itk::BinaryFunctorImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkDivideFloorImageFilter.h
+";
+
+%feature("docstring")  itk::simple::DivideFloorImageFilter::DivideFloorImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::DivideFloorImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::DivideFloorImageFilter::Execute "
+
+Execute the filter with an image and a constant
+
+";
+
+%feature("docstring")  itk::simple::DivideFloorImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::DivideFloorImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::DivideFloorImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::DivideFloorImageFilter::~DivideFloorImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::DivideImageFilter "
+
+Pixel-wise division of two images.
+
+
+This class is templated over the types of the two input images and the
+type of the output image. When the divisor is zero, the division
+result is set to the maximum number that can be represented by default
+to avoid exception. Numeric conversions (castings) are done by the C++
+defaults.
+
+Wiki Examples:
+
+All Examples
+
+Pixel-wise division of two images
+See:
+ itk::simple::Divide for the procedural interface
+
+ itk::DivideImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkDivideImageFilter.h
+";
+
+%feature("docstring")  itk::simple::DivideImageFilter::DivideImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::DivideImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::DivideImageFilter::Execute "
+
+Execute the filter with an image and a constant
+
+";
+
+%feature("docstring")  itk::simple::DivideImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::DivideImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::DivideImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::DivideImageFilter::~DivideImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::DivideRealImageFilter "
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This class is parameterized over the types of the two input images and
+the type of the output image. It is also parameterized by the
+operation to be applied. A Functor style is used.
+
+The constant must be of the same type than the pixel type of the
+corresponding image. It is wrapped in a SimpleDataObjectDecorator so it can be updated through the pipeline. The SetConstant() and
+GetConstant() methods are provided as shortcuts to set or get the
+constant value without manipulating the decorator.
+
+
+See:
+ UnaryFunctorImageFilter TernaryFunctorImageFilter
+Wiki Examples:
+
+All Examples
+
+Apply a predefined operation to corresponding pixels in two images
+
+Apply a custom operation to corresponding pixels in two images
+See:
+ itk::simple::DivideReal for the procedural interface
+
+ itk::BinaryFunctorImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkDivideRealImageFilter.h
+";
+
+%feature("docstring")  itk::simple::DivideRealImageFilter::DivideRealImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::DivideRealImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::DivideRealImageFilter::Execute "
+
+Execute the filter with an image and a constant
+
+";
+
+%feature("docstring")  itk::simple::DivideRealImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::DivideRealImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::DivideRealImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::DivideRealImageFilter::~DivideRealImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::DoubleThresholdImageFilter "
+
+Binarize an input image using double thresholding.
+
+
+Double threshold addresses the difficulty in selecting a threshold
+that will select the objects of interest without selecting extraneous
+objects. Double threshold considers two threshold ranges: a narrow
+range and a wide range (where the wide range encompasses the narrow
+range). If the wide range was used for a traditional threshold (where
+values inside the range map to the foreground and values outside the
+range map to the background), many extraneous pixels may survive the
+threshold operation. If the narrow range was used for a traditional
+threshold, then too few pixels may survive the threshold.
+
+Double threshold uses the narrow threshold image as a marker image and
+the wide threshold image as a mask image in the geodesic dilation.
+Essentially, the marker image (narrow threshold) is dilated but
+constrained to lie within the mask image (wide threshold). Thus, only
+the objects of interest (those pixels that survived the narrow
+threshold) are extracted but the those objects appear in the final
+image as they would have if the wide threshold was used.
+
+
+See:
+ GrayscaleGeodesicDilateImageFilter
+
+ MorphologyImageFilter , GrayscaleDilateImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter
+
+ itk::simple::DoubleThreshold for the procedural interface
+
+ itk::DoubleThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkDoubleThresholdImageFilter.h
+";
+
+%feature("docstring")  itk::simple::DoubleThresholdImageFilter::DoubleThresholdImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::DoubleThresholdImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::DoubleThresholdImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::DoubleThresholdImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::DoubleThresholdImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::DoubleThresholdImageFilter::GetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::DoubleThresholdImageFilter::GetInsideValue "
+
+Get the \"inside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::DoubleThresholdImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::DoubleThresholdImageFilter::GetOutsideValue "
+
+Get the \"outside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::DoubleThresholdImageFilter::GetThreshold1 "
+
+Get the threshold values.
+
+";
+
+%feature("docstring")  itk::simple::DoubleThresholdImageFilter::GetThreshold2 "
+
+Get the threshold values.
+
+";
+
+%feature("docstring")  itk::simple::DoubleThresholdImageFilter::GetThreshold3 "
+
+Get the threshold values.
+
+";
+
+%feature("docstring")  itk::simple::DoubleThresholdImageFilter::GetThreshold4 "
+
+Get the threshold values.
+
+";
+
+%feature("docstring")  itk::simple::DoubleThresholdImageFilter::SetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::DoubleThresholdImageFilter::SetInsideValue "
+
+Set the \"inside\" pixel value. The default value NumericTraits<OutputPixelType>::max()
+
+";
+
+%feature("docstring")  itk::simple::DoubleThresholdImageFilter::SetOutsideValue "
+
+Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::ZeroValue() .
+
+";
+
+%feature("docstring")  itk::simple::DoubleThresholdImageFilter::SetThreshold1 "
+
+Set the thresholds. Four thresholds should be specified. The two lower
+thresholds default to NumericTraits<InputPixelType>::NonpositiveMin() . The two upper thresholds default NumericTraits<InputPixelType>::max . Threshold1 <= Threshold2 <= Threshold3 <= Threshold4.
+
+";
+
+%feature("docstring")  itk::simple::DoubleThresholdImageFilter::SetThreshold2 "
+
+Set the thresholds. Four thresholds should be specified. The two lower
+thresholds default to NumericTraits<InputPixelType>::NonpositiveMin() . The two upper thresholds default NumericTraits<InputPixelType>::max . Threshold1 <= Threshold2 <= Threshold3 <= Threshold4.
+
+";
+
+%feature("docstring")  itk::simple::DoubleThresholdImageFilter::SetThreshold3 "
+
+Set the thresholds. Four thresholds should be specified. The two lower
+thresholds default to NumericTraits<InputPixelType>::NonpositiveMin() . The two upper thresholds default NumericTraits<InputPixelType>::max . Threshold1 <= Threshold2 <= Threshold3 <= Threshold4.
+
+";
+
+%feature("docstring")  itk::simple::DoubleThresholdImageFilter::SetThreshold4 "
+
+Set the thresholds. Four thresholds should be specified. The two lower
+thresholds default to NumericTraits<InputPixelType>::NonpositiveMin() . The two upper thresholds default NumericTraits<InputPixelType>::max . Threshold1 <= Threshold2 <= Threshold3 <= Threshold4.
+
+";
+
+%feature("docstring")  itk::simple::DoubleThresholdImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::DoubleThresholdImageFilter::~DoubleThresholdImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::EdgePotentialImageFilter "
+
+Computes the edge potential of an image from the image gradient.
+
+
+Input to this filter should be a CovariantVector image representing the image gradient.
+
+The filter expect both the input and output images to have the same
+number of dimensions, and the output to be of a scalar image type.
+See:
+ itk::simple::EdgePotential for the procedural interface
+
+ itk::EdgePotentialImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkEdgePotentialImageFilter.h
+";
+
+%feature("docstring")  itk::simple::EdgePotentialImageFilter::EdgePotentialImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::EdgePotentialImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::EdgePotentialImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::EdgePotentialImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::EdgePotentialImageFilter::~EdgePotentialImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::EqualImageFilter "
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This class is parameterized over the types of the two input images and
+the type of the output image. It is also parameterized by the
+operation to be applied. A Functor style is used.
+
+The constant must be of the same type than the pixel type of the
+corresponding image. It is wrapped in a SimpleDataObjectDecorator so it can be updated through the pipeline. The SetConstant() and
+GetConstant() methods are provided as shortcuts to set or get the
+constant value without manipulating the decorator.
+
+
+See:
+ UnaryFunctorImageFilter TernaryFunctorImageFilter
+Wiki Examples:
+
+All Examples
+
+Apply a predefined operation to corresponding pixels in two images
+
+Apply a custom operation to corresponding pixels in two images
+See:
+ itk::simple::Equal for the procedural interface
+
+ itk::BinaryFunctorImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkEqualImageFilter.h
+";
+
+%feature("docstring")  itk::simple::EqualImageFilter::EqualImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::EqualImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::EqualImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::EqualImageFilter::Execute "
+
+Execute the filter with an image and a constant
+
+";
+
+%feature("docstring")  itk::simple::EqualImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::EqualImageFilter::Execute "
+
+Execute the filter on an image and a constant with the given
+parameters
+
+";
+
+%feature("docstring")  itk::simple::EqualImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::EqualImageFilter::GetBackgroundValue "
+
+Set/Get the value used to mark the false pixels of the operator.
+
+";
+
+%feature("docstring")  itk::simple::EqualImageFilter::GetForegroundValue "
+
+Set/Get the value used to mark the true pixels of the operator.
+
+";
+
+%feature("docstring")  itk::simple::EqualImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::EqualImageFilter::SetBackgroundValue "
+
+Set/Get the value used to mark the false pixels of the operator.
+
+";
+
+%feature("docstring")  itk::simple::EqualImageFilter::SetForegroundValue "
+
+Set/Get the value used to mark the true pixels of the operator.
+
+";
+
+%feature("docstring")  itk::simple::EqualImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::EqualImageFilter::~EqualImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ErodeObjectMorphologyImageFilter "
+
+Erosion of an object in an image.
+
+
+Erosion of an image using binary morphology. Pixel values matching the
+object value are considered the \"object\" and all other pixels are
+\"background\". This is useful in processing mask images containing
+only one object.
+
+If the pixel covered by the center of the kernel has the pixel value
+ObjectValue and the pixel is adjacent to a non-object valued pixel,
+then the kernel is centered on the object-value pixel and neighboring
+pixels covered by the kernel are assigned the background value. The
+structuring element is assumed to be composed of binary values (zero
+or one).
+
+
+See:
+ ObjectMorphologyImageFilter , BinaryFunctionErodeImageFilter
+
+ BinaryErodeImageFilter
+
+ itk::simple::ErodeObjectMorphology for the procedural interface
+
+ itk::ErodeObjectMorphologyImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkErodeObjectMorphologyImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ErodeObjectMorphologyImageFilter::ErodeObjectMorphologyImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ErodeObjectMorphologyImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ErodeObjectMorphologyImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ErodeObjectMorphologyImageFilter::GetBackgroundValue "
+
+Get the value to be assigned to eroded pixels
+
+";
+
+%feature("docstring")  itk::simple::ErodeObjectMorphologyImageFilter::GetKernelRadius "
+";
+
+%feature("docstring")  itk::simple::ErodeObjectMorphologyImageFilter::GetKernelType "
+";
+
+%feature("docstring")  itk::simple::ErodeObjectMorphologyImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ErodeObjectMorphologyImageFilter::GetObjectValue "
+";
+
+%feature("docstring")  itk::simple::ErodeObjectMorphologyImageFilter::SetBackgroundValue "
+
+Set the value to be assigned to eroded pixels
+
+";
+
+%feature("docstring")  itk::simple::ErodeObjectMorphologyImageFilter::SetKernelRadius "
+
+Kernel radius as a scale for isotropic structures
+
+";
+
+%feature("docstring")  itk::simple::ErodeObjectMorphologyImageFilter::SetKernelRadius "
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+";
+
+%feature("docstring")  itk::simple::ErodeObjectMorphologyImageFilter::SetKernelType "
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+";
+
+%feature("docstring")  itk::simple::ErodeObjectMorphologyImageFilter::SetKernelType "
+";
+
+%feature("docstring")  itk::simple::ErodeObjectMorphologyImageFilter::SetObjectValue "
+";
+
+%feature("docstring")  itk::simple::ErodeObjectMorphologyImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ErodeObjectMorphologyImageFilter::~ErodeObjectMorphologyImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::Euler2DTransform "
+
+A rigid 2D transform with rotation in radians around a fixed center
+with translation.
+
+
+
+See:
+ itk::Euler2DTransform
+
+
+C++ includes: sitkEuler2DTransform.h
+";
+
+%feature("docstring")  itk::simple::Euler2DTransform::Euler2DTransform "
+";
+
+%feature("docstring")  itk::simple::Euler2DTransform::Euler2DTransform "
+";
+
+%feature("docstring")  itk::simple::Euler2DTransform::Euler2DTransform "
+";
+
+%feature("docstring")  itk::simple::Euler2DTransform::Euler2DTransform "
+";
+
+%feature("docstring")  itk::simple::Euler2DTransform::GetAngle "
+";
+
+%feature("docstring")  itk::simple::Euler2DTransform::GetCenter "
+";
+
+%feature("docstring")  itk::simple::Euler2DTransform::GetMatrix "
+
+additional methods
+
+";
+
+%feature("docstring")  itk::simple::Euler2DTransform::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::Euler2DTransform::GetTranslation "
+";
+
+%feature("docstring")  itk::simple::Euler2DTransform::SetAngle "
+
+parameter
+
+";
+
+%feature("docstring")  itk::simple::Euler2DTransform::SetCenter "
+
+fixed parameter
+
+";
+
+%feature("docstring")  itk::simple::Euler2DTransform::SetMatrix "
+";
+
+%feature("docstring")  itk::simple::Euler2DTransform::SetTranslation "
+";
+
+
+%feature("docstring") itk::simple::Euler3DTransform "
+
+A rigid 3D transform with rotation in radians around a fixed center
+with translation.
+
+
+
+See:
+ itk::Euler3DTransform
+
+
+C++ includes: sitkEuler3DTransform.h
+";
+
+%feature("docstring")  itk::simple::Euler3DTransform::ComputeZYXOff "
+";
+
+%feature("docstring")  itk::simple::Euler3DTransform::ComputeZYXOn "
+";
+
+%feature("docstring")  itk::simple::Euler3DTransform::Euler3DTransform "
+";
+
+%feature("docstring")  itk::simple::Euler3DTransform::Euler3DTransform "
+";
+
+%feature("docstring")  itk::simple::Euler3DTransform::Euler3DTransform "
+";
+
+%feature("docstring")  itk::simple::Euler3DTransform::Euler3DTransform "
+";
+
+%feature("docstring")  itk::simple::Euler3DTransform::GetAngleX "
+";
+
+%feature("docstring")  itk::simple::Euler3DTransform::GetAngleY "
+";
+
+%feature("docstring")  itk::simple::Euler3DTransform::GetAngleZ "
+";
+
+%feature("docstring")  itk::simple::Euler3DTransform::GetCenter "
+";
+
+%feature("docstring")  itk::simple::Euler3DTransform::GetComputeZYX "
+";
+
+%feature("docstring")  itk::simple::Euler3DTransform::GetMatrix "
+
+additional methods
+
+";
+
+%feature("docstring")  itk::simple::Euler3DTransform::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::Euler3DTransform::GetTranslation "
+";
+
+%feature("docstring")  itk::simple::Euler3DTransform::SetCenter "
+
+fixed parameter
+
+";
+
+%feature("docstring")  itk::simple::Euler3DTransform::SetComputeZYX "
+";
+
+%feature("docstring")  itk::simple::Euler3DTransform::SetMatrix "
+";
+
+%feature("docstring")  itk::simple::Euler3DTransform::SetRotation "
+
+parameter
+
+";
+
+%feature("docstring")  itk::simple::Euler3DTransform::SetTranslation "
+";
+
+
+%feature("docstring") itk::simple::ExpImageFilter "
+
+Computes the exponential function of each pixel.
+
+
+The computation is performed using std::exp(x).
+See:
+ itk::simple::Exp for the procedural interface
+
+ itk::ExpImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkExpImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ExpImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ExpImageFilter::ExpImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ExpImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ExpImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ExpImageFilter::~ExpImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ExpNegativeImageFilter "
+
+Computes the function exp(-K.x) for each input pixel.
+
+
+Every output pixel is equal to std::exp(-K.x ). where x is the
+intensity of the homologous input pixel, and K is a user-provided
+constant.
+See:
+ itk::simple::ExpNegative for the procedural interface
+
+ itk::ExpNegativeImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkExpNegativeImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ExpNegativeImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ExpNegativeImageFilter::ExpNegativeImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ExpNegativeImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ExpNegativeImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ExpNegativeImageFilter::~ExpNegativeImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ExpandImageFilter "
+
+Expand the size of an image by an integer factor in each dimension.
+
+
+ExpandImageFilter increases the size of an image by an integer factor in each dimension
+using a interpolation method. The output image size in each dimension
+is given by:
+
+OutputSize[j] = InputSize[j] * ExpandFactors[j]
+
+The output values are obtained by interpolating the input image. The
+default interpolation type used is the LinearInterpolateImageFunction . The user can specify a particular interpolation function via SetInterpolator() . Note that the input interpolator must derive from base class InterpolateImageFunction .
+
+This filter will produce an output with different pixel spacing that
+its input image such that:
+
+OutputSpacing[j] = InputSpacing[j] / ExpandFactors[j]
+
+The filter is templated over the input image type and the output image
+type.
+
+This filter is implemented as a multithreaded filter and supports
+streaming.
+
+
+WARNING:
+This filter only works for image with scalar pixel types. For vector
+images use VectorExpandImageFilter .
+ This filter assumes that the input and output image has the same
+number of dimensions.
+
+
+See:
+ InterpolateImageFunction
+
+ LinearInterpolationImageFunction
+
+ VectorExpandImageFilter
+
+ itk::simple::Expand for the procedural interface
+
+ itk::ExpandImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkExpandImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ExpandImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ExpandImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ExpandImageFilter::ExpandImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ExpandImageFilter::GetExpandFactors "
+
+Get the expand factors.
+
+";
+
+%feature("docstring")  itk::simple::ExpandImageFilter::GetInterpolator "
+
+Get/Set the interpolator function.
+
+";
+
+%feature("docstring")  itk::simple::ExpandImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ExpandImageFilter::SetExpandFactor "
+
+Custom public declarations
+
+";
+
+%feature("docstring")  itk::simple::ExpandImageFilter::SetExpandFactors "
+
+Set the expand factors. Values are clamped to a minimum value of 1.
+Default is 1 for all dimensions.
+
+";
+
+%feature("docstring")  itk::simple::ExpandImageFilter::SetExpandFactors "
+
+Set the values of the ExpandFactors vector all to value
+
+";
+
+%feature("docstring")  itk::simple::ExpandImageFilter::SetInterpolator "
+
+Get/Set the interpolator function.
+
+";
+
+%feature("docstring")  itk::simple::ExpandImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ExpandImageFilter::~ExpandImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ExtractImageFilter "
+
+Decrease the image size by cropping the image to the selected region
+bounds.
+
+
+ExtractImageFilter changes the image boundary of an image by removing pixels outside the
+target region. The target region must be specified.
+
+ExtractImageFilter also collapses dimensions so that the input image may have more
+dimensions than the output image (i.e. 4-D input image to a 3-D output
+image). To specify what dimensions to collapse, the ExtractionRegion
+must be specified. For any dimension dim where
+ExtractionRegion.Size[dim] = 0, that dimension is collapsed. The index
+to collapse on is specified by ExtractionRegion.Index[dim]. For
+example, we have a image 4D = a 4x4x4x4 image, and we want to get a 3D
+image, 3D = a 4x4x4 image, specified as [x,y,z,2] from 4D (i.e. the
+3rd \"time\" slice from 4D). The ExtractionRegion.Size = [4,4,4,0] and
+ExtractionRegion.Index = [0,0,0,2].
+
+The number of dimension in ExtractionRegion.Size and Index must = InputImageDimension. The number of non-zero dimensions in
+ExtractionRegion.Size must = OutputImageDimension.
+
+The output image produced by this filter will have the same origin as
+the input image, while the ImageRegion of the output image will start at the starting index value provided
+in the ExtractRegion parameter. If you are looking for a filter that
+will re-compute the origin of the output image, and provide an output
+image region whose index is set to zeros, then you may want to use the RegionOfInterestImageFilter . The output spacing is is simply the collapsed version of the input
+spacing.
+
+Determining the direction of the collapsed output image from an larger
+dimensional input space is an ill defined problem in general. It is
+required that the application developer select the desired
+transformation strategy for collapsing direction cosines. It is
+REQUIRED that a strategy be explicitly requested (i.e. there is no
+working default). Direction Collapsing Strategies: 1)
+DirectionCollapseToUnknown(); This is the default and the filter can
+not run when this is set. The reason is to explicitly force the
+application developer to define their desired behavior. 1)
+DirectionCollapseToIdentity(); Output has identity direction no matter
+what 2) DirectionCollapseToSubmatrix(); Output direction is the sub-
+matrix if it is positive definite, else throw an exception.
+
+This filter is implemented as a multithreaded filter. It provides a
+ThreadedGenerateData() method for its implementation.
+
+
+This filter is derived from InPlaceImageFilter . When the input to this filter matched the output requirested
+region, like with streaming filter for input, then setting this filter
+to run in-place will result in no copying of the bulk pixel data.
+
+See:
+ CropImageFilter
+Wiki Examples:
+
+All Examples
+
+Crop an image by specifying the region to keep
+See:
+ itk::simple::Extract for the procedural interface
+
+ itk::ExtractImageFilter<InputImageType, typename InputImageType::template Rebind for the
+Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkExtractImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ExtractImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ExtractImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ExtractImageFilter::ExtractImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ExtractImageFilter::GetDirectionCollapseToStrategy "
+
+NOTE: The SetDirectionCollapseToUknown is explicitly not defined. It
+is a state that a filter can be in only when it is first instantiate
+prior to being initialized. Get the currently set strategy for
+collapsing directions of physical space.
+
+";
+
+%feature("docstring")  itk::simple::ExtractImageFilter::GetIndex "
+";
+
+%feature("docstring")  itk::simple::ExtractImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ExtractImageFilter::GetSize "
+";
+
+%feature("docstring")  itk::simple::ExtractImageFilter::SetDirectionCollapseToStrategy "
+
+     Set the strategy to be used to collapse physical space
+dimensions.
+
+itk::itkExtractImageFilter::DIRECTIONCOLLAPSETOIDENTITY Set the
+strategy so that all collapsed images have an identity direction. Use
+this strategy when you know that retention of the physical space
+orientation of the collapsed image is not important.
+
+itk::itkExtractImageFilter::DIRECTIONCOLLAPSETOGUESS Set the strategy
+so that all collapsed images where output direction is the sub-matrix
+if it is positive definite, else return identity. This is backwards
+compatible with ITKv3, but is highly discouraged because the results
+are difficult to anticipate under differing data scenerios.
+
+itk::itkExtractImageFilter::DIRECTIONCOLLAPSETOSUBMATRIX Set the
+strategy so that all collapsed images where output direction is the
+sub-matrix if it is positive definite, else throw an exception. Use
+this strategy when it is known that properly identified physical space
+sub-volumes can be reliably extracted from a higher dimensional space.
+For example when the application programmer knows that a 4D image is
+3D+time, and that the 3D sub-space is properly defined.
+
+";
+
+%feature("docstring")  itk::simple::ExtractImageFilter::SetIndex "
+
+odo the internal setting of the method needs work!!!
+
+";
+
+%feature("docstring")  itk::simple::ExtractImageFilter::SetSize "
+";
+
+%feature("docstring")  itk::simple::ExtractImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ExtractImageFilter::~ExtractImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::FFTConvolutionImageFilter "
+
+Convolve a given image with an arbitrary image kernel using
+multiplication in the Fourier domain.
+
+
+This filter produces output equivalent to the output of the ConvolutionImageFilter . However, it takes advantage of the convolution theorem to
+accelerate the convolution computation when the kernel is large.
+
+
+WARNING:
+This filter ignores the spacing, origin, and orientation of the kernel
+image and treats them as identical to those in the input image.
+ This code was adapted from the Insight Journal contribution:
+
+\"FFT Based Convolution\" by Gaetan Lehmann https://hdl.handle.net/10380/3154
+
+
+See:
+ ConvolutionImageFilter
+
+ itk::simple::FFTConvolution for the procedural interface
+
+ itk::FFTConvolutionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkFFTConvolutionImageFilter.h
+";
+
+%feature("docstring")  itk::simple::FFTConvolutionImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::FFTConvolutionImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::FFTConvolutionImageFilter::FFTConvolutionImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::FFTConvolutionImageFilter::GetBoundaryCondition "
+";
+
+%feature("docstring")  itk::simple::FFTConvolutionImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::FFTConvolutionImageFilter::GetNormalize "
+";
+
+%feature("docstring")  itk::simple::FFTConvolutionImageFilter::GetOutputRegionMode "
+";
+
+%feature("docstring")  itk::simple::FFTConvolutionImageFilter::NormalizeOff "
+";
+
+%feature("docstring")  itk::simple::FFTConvolutionImageFilter::NormalizeOn "
+
+Set the value of Normalize to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::FFTConvolutionImageFilter::SetBoundaryCondition "
+";
+
+%feature("docstring")  itk::simple::FFTConvolutionImageFilter::SetNormalize "
+
+Normalize the output image by the sum of the kernel components
+
+";
+
+%feature("docstring")  itk::simple::FFTConvolutionImageFilter::SetOutputRegionMode "
+";
+
+%feature("docstring")  itk::simple::FFTConvolutionImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::FFTConvolutionImageFilter::~FFTConvolutionImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::FFTNormalizedCorrelationImageFilter "
+
+Calculate normalized cross correlation using FFTs.
+
+
+This filter calculates the normalized cross correlation (NCC) of two
+images using FFTs instead of spatial correlation. It is much faster
+than spatial correlation for reasonably large structuring elements.
+This filter is a subclass of the more general MaskedFFTNormalizedCorrelationImageFilter and operates by essentially setting the masks in that algorithm to
+images of ones. As described in detail in the references below, there
+is no computational overhead to utilizing the more general masked
+algorithm because the FFTs of the images of ones are still necessary
+for the computations.
+
+Inputs: Two images are required as inputs, fixedImage and movingImage.
+In the context of correlation, inputs are often defined as: \"image\"
+and \"template\". In this filter, the fixedImage plays the role of the
+image, and the movingImage plays the role of the template. However,
+this filter is capable of correlating any two images and is not
+restricted to small movingImages (templates).
+
+Optional parameters: The RequiredNumberOfOverlappingPixels enables the
+user to specify how many voxels of the two images must overlap; any
+location in the correlation map that results from fewer than this
+number of voxels will be set to zero. Larger values zero-out pixels on
+a larger border around the correlation image. Thus, larger values
+remove less stable computations but also limit the capture range. If
+RequiredNumberOfOverlappingPixels is set to 0, the default, no zeroing
+will take place.
+
+Image size: fixedImage and movingImage need not be the same size.
+Furthermore, whereas some algorithms require that the \"template\" be
+smaller than the \"image\" because of errors in the regions where the
+two are not fully overlapping, this filter has no such restriction.
+
+Image spacing: Since the computations are done in the pixel domain, all
+input images must have the same spacing.
+
+Outputs; The output is an image of RealPixelType that is the NCC of
+the two images and its values range from -1.0 to 1.0. The size of this
+NCC image is, by definition, size(fixedImage) + size(movingImage) - 1.
+
+Example filter usage:
+
+
+WARNING:
+The pixel type of the output image must be of real type (float or
+double). ConceptChecking is used to enforce the output pixel type. You
+will get a compilation error if the pixel type of the output image is
+not float or double.
+ References: 1) D. Padfield. \"Masked object registration in the
+Fourier domain.\" Transactions on Image Processing. 2) D. Padfield. \"Masked FFT registration\". In Proc.
+Computer Vision and Pattern Recognition, 2010.
+
+
+: Dirk Padfield, GE Global Research, padfield at research.ge.com
+
+See:
+ itk::simple::FFTNormalizedCorrelation for the procedural interface
+
+ itk::FFTNormalizedCorrelationImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkFFTNormalizedCorrelationImageFilter.h
+";
+
+%feature("docstring")  itk::simple::FFTNormalizedCorrelationImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::FFTNormalizedCorrelationImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::FFTNormalizedCorrelationImageFilter::FFTNormalizedCorrelationImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::FFTNormalizedCorrelationImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::FFTNormalizedCorrelationImageFilter::GetRequiredNumberOfOverlappingPixels "
+";
+
+%feature("docstring")  itk::simple::FFTNormalizedCorrelationImageFilter::SetRequiredNumberOfOverlappingPixels "
+";
+
+%feature("docstring")  itk::simple::FFTNormalizedCorrelationImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::FFTNormalizedCorrelationImageFilter::~FFTNormalizedCorrelationImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::FFTPadImageFilter "
+
+Pad an image to make it suitable for an FFT transformation.
+
+
+FFT filters usually requires a specific image size. The size is
+decomposed in several prime factors, and the filter only supports
+prime factors up to a maximum value. This filter automatically finds
+the greatest prime factor required by the available implementation and
+pads the input appropriately.
+
+This code was adapted from the Insight Journal contribution:
+
+\"FFT Based Convolution\" by Gaetan Lehmann https://hdl.handle.net/10380/3154
+
+
+Gaetan Lehmann
+
+See:
+ FFTShiftImageFilter
+
+ itk::simple::FFTPad for the procedural interface
+
+ itk::FFTPadImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkFFTPadImageFilter.h
+";
+
+%feature("docstring")  itk::simple::FFTPadImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::FFTPadImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::FFTPadImageFilter::FFTPadImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::FFTPadImageFilter::GetBoundaryCondition "
+";
+
+%feature("docstring")  itk::simple::FFTPadImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::FFTPadImageFilter::GetSizeGreatestPrimeFactor "
+
+Set/Get the greatest prime factor allowed on the size of the padded
+image. The filter increase the size of the image to reach a size with
+the greatest prime factor smaller or equal to the specified value. The
+default value is 13, which is the greatest prime number for which the
+FFT are precomputed in FFTW, and thus gives very good performance. A
+greatest prime factor of 2 produce a size which is a power of 2, and
+thus is suitable for vnl base fft filters. A greatest prime factor of
+1 or less - typically 0 - disable the extra padding.
+
+";
+
+%feature("docstring")  itk::simple::FFTPadImageFilter::SetBoundaryCondition "
+";
+
+%feature("docstring")  itk::simple::FFTPadImageFilter::SetSizeGreatestPrimeFactor "
+
+Set/Get the greatest prime factor allowed on the size of the padded
+image. The filter increase the size of the image to reach a size with
+the greatest prime factor smaller or equal to the specified value. The
+default value is 13, which is the greatest prime number for which the
+FFT are precomputed in FFTW, and thus gives very good performance. A
+greatest prime factor of 2 produce a size which is a power of 2, and
+thus is suitable for vnl base fft filters. A greatest prime factor of
+1 or less - typically 0 - disable the extra padding.
+
+";
+
+%feature("docstring")  itk::simple::FFTPadImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::FFTPadImageFilter::~FFTPadImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::FFTShiftImageFilter "
+
+Shift the zero-frequency components of a Fourier transform to the
+center of the image.
+
+
+The Fourier transform produces an image where the zero frequency
+components are in the corner of the image, making it difficult to
+understand. This filter shifts the component to the center of the
+image.
+
+
+For images with an odd-sized dimension, applying this filter twice
+will not produce the same image as the original one without using
+SetInverse(true) on one (and only one) of the two filters.
+https://hdl.handle.net/1926/321
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ ForwardFFTImageFilter , InverseFFTImageFilter
+
+ itk::simple::FFTShift for the procedural interface
+
+ itk::FFTShiftImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkFFTShiftImageFilter.h
+";
+
+%feature("docstring")  itk::simple::FFTShiftImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::FFTShiftImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::FFTShiftImageFilter::FFTShiftImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::FFTShiftImageFilter::GetInverse "
+
+Set/Get whether the filter must invert the transform or not. This
+option has no effect if none of the size of the input image is even,
+but is required to restore the original image if at least one of the
+dimensions has an odd size.
+
+";
+
+%feature("docstring")  itk::simple::FFTShiftImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::FFTShiftImageFilter::InverseOff "
+";
+
+%feature("docstring")  itk::simple::FFTShiftImageFilter::InverseOn "
+
+Set the value of Inverse to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::FFTShiftImageFilter::SetInverse "
+
+Set/Get whether the filter must invert the transform or not. This
+option has no effect if none of the size of the input image is even,
+but is required to restore the original image if at least one of the
+dimensions has an odd size.
+
+";
+
+%feature("docstring")  itk::simple::FFTShiftImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::FFTShiftImageFilter::~FFTShiftImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::FastApproximateRankImageFilter "
+
+A separable rank filter.
+
+
+Medians aren't separable, but if you want a large robust smoother to
+be relatively quick then it is worthwhile pretending that they are.
+
+This code was contributed in the Insight Journal paper: \"Efficient
+implementation of kernel filtering\" by Beare R., Lehmann G https://hdl.handle.net/1926/555 http://www.insight-journal.org/browse/publication/160
+
+
+Richard Beare
+
+See:
+ itk::simple::FastApproximateRank for the procedural interface
+
+ itk::FastApproximateRankImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkFastApproximateRankImageFilter.h
+";
+
+%feature("docstring")  itk::simple::FastApproximateRankImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::FastApproximateRankImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::FastApproximateRankImageFilter::FastApproximateRankImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::FastApproximateRankImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::FastApproximateRankImageFilter::GetRadius "
+";
+
+%feature("docstring")  itk::simple::FastApproximateRankImageFilter::GetRank "
+";
+
+%feature("docstring")  itk::simple::FastApproximateRankImageFilter::SetRadius "
+";
+
+%feature("docstring")  itk::simple::FastApproximateRankImageFilter::SetRadius "
+
+Set the values of the Radius vector all to value
+
+";
+
+%feature("docstring")  itk::simple::FastApproximateRankImageFilter::SetRank "
+";
+
+%feature("docstring")  itk::simple::FastApproximateRankImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::FastApproximateRankImageFilter::~FastApproximateRankImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::FastMarchingBaseImageFilter "
+
+Fast Marching Method on Image .
+
+
+The speed function can be specified as a speed image or a speed
+constant. The speed image is set using the method SetInput(). If the
+speed image is ITK_NULLPTR, a constant speed function is used and is
+specified using method the SetSpeedConstant() .
+
+If the speed function is constant and of value one, fast marching
+results is an approximate distance function from the initial alive
+points.
+
+There are two ways to specify the output image information (
+LargestPossibleRegion, Spacing, Origin):
+
+
+it is copied directly from the input speed image
+
+it is specified by the user. Default values are used if the user does
+not specify all the information.
+ The output information is computed as follows.
+
+If the speed image is ITK_NULLPTR or if the OverrideOutputInformation
+is set to true, the output information is set from user specified
+parameters. These parameters can be specified using methods
+
+
+FastMarchingImageFilterBase::SetOutputRegion() ,
+
+FastMarchingImageFilterBase::SetOutputSpacing() ,
+
+FastMarchingImageFilterBase::SetOutputDirection() ,
+
+FastMarchingImageFilterBase::SetOutputOrigin() .
+ Else the output information is copied from the input speed image.
+
+Implementation of this class is based on Chapter 8 of \"Level Set
+Methods and Fast Marching Methods\", J.A. Sethian, Cambridge Press,
+Second edition, 1999.
+
+For an alternative implementation, see itk::FastMarchingImageFilter .
+
+TTraits
+
+traits
+
+
+See:
+ FastMarchingImageFilter
+
+ ImageFastMarchingTraits
+
+ ImageFastMarchingTraits2
+
+ itk::simple::FastMarchingBase for the procedural interface
+
+ itk::FastMarchingImageFilterBase for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkFastMarchingBaseImageFilter.h
+";
+
+%feature("docstring")  itk::simple::FastMarchingBaseImageFilter::AddTrialPoint "
+
+Add trial point
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingBaseImageFilter::ClearTrialPoints "
+
+Clear trial points
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingBaseImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingBaseImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingBaseImageFilter::FastMarchingBaseImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingBaseImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingBaseImageFilter::GetNormalizationFactor "
+
+Set/Get the Normalization Factor for the Speed Image . The values in the Speed Image is divided by this factor. This allows the use of images with integer
+pixel types to represent the speed.
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingBaseImageFilter::GetStoppingValue "
+
+Get the Fast Marching algorithm Stopping Value.
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingBaseImageFilter::GetTopologyCheck "
+";
+
+%feature("docstring")  itk::simple::FastMarchingBaseImageFilter::GetTrialPoints "
+
+Get trial points
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingBaseImageFilter::SetNormalizationFactor "
+
+Set/Get the Normalization Factor for the Speed Image . The values in the Speed Image is divided by this factor. This allows the use of images with integer
+pixel types to represent the speed.
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingBaseImageFilter::SetStoppingValue "
+
+Set the Fast Marching algorithm Stopping Value. The Fast Marching
+algorithm is terminated when the value of the smallest trial point is
+greater than the stopping value.
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingBaseImageFilter::SetTopologyCheck "
+";
+
+%feature("docstring")  itk::simple::FastMarchingBaseImageFilter::SetTrialPoints "
+
+Set trial points. The default trial value (i.e. 0.0) is used for each
+index.
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingBaseImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingBaseImageFilter::~FastMarchingBaseImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::FastMarchingImageFilter "
+
+Solve an Eikonal equation using Fast Marching.
+
+
+Fast marching solves an Eikonal equation where the speed is always
+non-negative and depends on the position only. Starting from an
+initial position on the front, fast marching systematically moves the
+front forward one grid point at a time.
+
+Updates are preformed using an entropy satisfy scheme where only
+\"upwind\" neighborhoods are used. This implementation of Fast
+Marching uses a std::priority_queue to locate the next proper grid
+position to update.
+
+Fast Marching sweeps through N grid points in (N log N) steps to
+obtain the arrival time value as the front propagates through the
+grid.
+
+Implementation of this class is based on Chapter 8 of \"Level Set
+Methods and Fast Marching Methods\", J.A. Sethian, Cambridge Press,
+Second edition, 1999.
+
+This class is templated over the level set image type and the speed
+image type. The initial front is specified by two containers: one
+containing the known points and one containing the trial points. Alive
+points are those that are already part of the object, and trial points
+are considered for inclusion. In order for the filter to evolve, at
+least some trial points must be specified. These can for instance be
+specified as the layer of pixels around the alive points.
+
+The speed function can be specified as a speed image or a speed
+constant. The speed image is set using the method SetInput() . If the
+speed image is ITK_NULLPTR, a constant speed function is used and is
+specified using method the SetSpeedConstant() .
+
+If the speed function is constant and of value one, fast marching
+results in an approximate distance function from the initial alive
+points. FastMarchingImageFilter is used in the ReinitializeLevelSetImageFilter object to create a signed distance function from the zero level set.
+
+The algorithm can be terminated early by setting an appropriate
+stopping value. The algorithm terminates when the current arrival time
+being processed is greater than the stopping value.
+
+There are two ways to specify the output image information (
+LargestPossibleRegion, Spacing, Origin): (a) it is copied directly
+from the input speed image or (b) it is specified by the user. Default
+values are used if the user does not specify all the information.
+
+The output information is computed as follows. If the speed image is
+ITK_NULLPTR or if the OverrideOutputInformation is set to true, the
+output information is set from user specified parameters. These
+parameters can be specified using methods SetOutputRegion() ,
+SetOutputSpacing() , SetOutputDirection() , and SetOutputOrigin() .
+Else if the speed image is not ITK_NULLPTR, the output information is
+copied from the input speed image.
+
+For an alternative implementation, see itk::FastMarchingImageFilter .
+
+Possible Improvements: In the current implementation,
+std::priority_queue only allows taking nodes out from the front and
+putting nodes in from the back. To update a value already on the heap,
+a new node is added to the heap. The defunct old node is left on the
+heap. When it is removed from the top, it will be recognized as
+invalid and not used. Future implementations can implement the heap in
+a different way allowing the values to be updated. This will generally
+require some sift-up and sift-down functions and an image of back-
+pointers going from the image to heap in order to locate the node
+which is to be updated.
+
+
+See:
+ FastMarchingImageFilterBase
+
+ LevelSetTypeDefault
+
+ itk::simple::FastMarching for the procedural interface
+
+ itk::FastMarchingImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkFastMarchingImageFilter.h
+";
+
+%feature("docstring")  itk::simple::FastMarchingImageFilter::AddTrialPoint "
+
+Add TrialPoints point.
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingImageFilter::ClearTrialPoints "
+
+Remove all TrialPoints points.
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingImageFilter::FastMarchingImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingImageFilter::GetNormalizationFactor "
+
+Set/Get the Normalization Factor for the Speed Image . The values in the Speed Image is divided by this factor. This allows the use of images with integer
+pixel types to represent the speed.
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingImageFilter::GetStoppingValue "
+
+Get the Fast Marching algorithm Stopping Value.
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingImageFilter::GetTrialPoints "
+
+Get the container of Trial Points representing the initial front.
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingImageFilter::SetNormalizationFactor "
+
+Set/Get the Normalization Factor for the Speed Image . The values in the Speed Image is divided by this factor. This allows the use of images with integer
+pixel types to represent the speed.
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingImageFilter::SetStoppingValue "
+
+Set the Fast Marching algorithm Stopping Value. The Fast Marching
+algorithm is terminated when the value of the smallest trial point is
+greater than the stopping value.
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingImageFilter::SetTrialPoints "
+
+Set the container of Trial Points representing the initial front.
+Trial points are represented as a VectorContainer of LevelSetNodes.
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingImageFilter::~FastMarchingImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::FastMarchingUpwindGradientImageFilter "
+
+Generates the upwind gradient field of fast marching arrival times.
+
+
+This filter adds some extra functionality to its base class. While the
+solution T(x) of the Eikonal equation is being generated by the base
+class with the fast marching method, the filter generates the upwind
+gradient vectors of T(x), storing them in an image.
+
+Since the Eikonal equation generates the arrival times of a wave
+travelling at a given speed, the generated gradient vectors can be
+interpreted as the slowness (1/velocity) vectors of the front (the
+quantity inside the modulus operator in the Eikonal equation).
+
+Gradient vectors are computed using upwind finite differences, that
+is, information only propagates from points where the wavefront has
+already passed. This is consistent with how the fast marching method
+works.
+
+One more extra feature is the possibility to define a set of Target
+points where the propagation stops. This can be used to avoid
+computing the Eikonal solution for the whole domain. The front can be
+stopped either when one Target point is reached or all Target points
+are reached. The propagation can stop after a time TargetOffset has
+passed since the stop condition is met. This way the solution is
+computed a bit downstream the Target points, so that the level sets of
+T(x) corresponding to the Target are smooth.
+
+For an alternative implementation, see itk::FastMarchingUpwindGradientImageFilterBase .
+
+
+Luca Antiga Ph.D. Biomedical Technologies Laboratory, Bioengineering
+Department, Mario Negri Institute, Italy.
+
+See:
+ itk::simple::FastMarchingUpwindGradient for the procedural interface
+
+ itk::FastMarchingUpwindGradientImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkFastMarchingUpwindGradientImageFilter.h
+";
+
+%feature("docstring")  itk::simple::FastMarchingUpwindGradientImageFilter::AddTargetPoint "
+
+Add TargetPoints point.
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingUpwindGradientImageFilter::AddTrialPoint "
+
+Add TrialPoints point.
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingUpwindGradientImageFilter::ClearTargetPoints "
+
+Remove all TargetPoints points.
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingUpwindGradientImageFilter::ClearTrialPoints "
+
+Remove all TrialPoints points.
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingUpwindGradientImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingUpwindGradientImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingUpwindGradientImageFilter::FastMarchingUpwindGradientImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingUpwindGradientImageFilter::GetGradientImage "
+
+Get the gradient image.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingUpwindGradientImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingUpwindGradientImageFilter::GetNormalizationFactor "
+
+Set/Get the Normalization Factor for the Speed Image . The values in the Speed Image is divided by this factor. This allows the use of images with integer
+pixel types to represent the speed.
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingUpwindGradientImageFilter::GetNumberOfTargets "
+
+Get the number of targets.
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingUpwindGradientImageFilter::GetTargetOffset "
+
+Get the TargetOffset ivar.
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingUpwindGradientImageFilter::GetTargetPoints "
+
+Get the container of Target Points.
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingUpwindGradientImageFilter::GetTargetValue "
+
+Get the arrival time corresponding to the last reached target. If
+TargetReachedMode is set to NoTargets, TargetValue contains the last
+(aka largest) Eikonal solution value generated.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingUpwindGradientImageFilter::GetTrialPoints "
+";
+
+%feature("docstring")  itk::simple::FastMarchingUpwindGradientImageFilter::SetNormalizationFactor "
+
+Set/Get the Normalization Factor for the Speed Image . The values in the Speed Image is divided by this factor. This allows the use of images with integer
+pixel types to represent the speed.
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingUpwindGradientImageFilter::SetNumberOfTargets "
+";
+
+%feature("docstring")  itk::simple::FastMarchingUpwindGradientImageFilter::SetTargetOffset "
+
+Set how long (in terms of arrival times) after targets are reached the
+front must stop. This is useful to ensure that the level set of target
+arrival time is smooth.
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingUpwindGradientImageFilter::SetTargetPoints "
+
+Set the container of Target Points. If a target point is reached, the
+propagation stops. Trial points are represented as a VectorContainer of LevelSetNodes.
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingUpwindGradientImageFilter::SetTrialPoints "
+";
+
+%feature("docstring")  itk::simple::FastMarchingUpwindGradientImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingUpwindGradientImageFilter::~FastMarchingUpwindGradientImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::FastSymmetricForcesDemonsRegistrationFilter "
+
+Deformably register two images using a symmetric forces demons
+algorithm.
+
+
+This class was contributed by Tom Vercauteren, INRIA & Mauna Kea
+Technologies based on a variation of the DemonsRegistrationFilter .
+
+FastSymmetricForcesDemonsRegistrationFilter implements the demons deformable algorithm that register two images
+by computing the deformation field which will map a moving image onto
+a fixed image.
+
+A deformation field is represented as a image whose pixel type is some
+vector type with at least N elements, where N is the dimension of the
+fixed image. The vector type must support element access via operator
+[]. It is assumed that the vector elements behave like floating point
+scalars.
+
+This class is templated over the fixed image type, moving image type
+and the deformation field type.
+
+The input fixed and moving images are set via methods SetFixedImage
+and SetMovingImage respectively. An initial deformation field maybe
+set via SetInitialDisplacementField or SetInput. If no initial field
+is set, a zero field is used as the initial condition.
+
+The output deformation field can be obtained via methods GetOutput or
+GetDisplacementField.
+
+This class make use of the finite difference solver hierarchy. Update
+for each iteration is computed in DemonsRegistrationFunction .
+
+
+Tom Vercauteren, INRIA & Mauna Kea Technologies
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/510
+
+
+WARNING:
+This filter assumes that the fixed image type, moving image type and
+deformation field type all have the same number of dimensions.
+
+See:
+ DemonsRegistrationFilter
+
+ DemonsRegistrationFunction
+
+ itk::FastSymmetricForcesDemonsRegistrationFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkFastSymmetricForcesDemonsRegistrationFilter.h
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::FastSymmetricForcesDemonsRegistrationFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetElapsedIterations "
+
+Number of iterations run.
+
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetIntensityDifferenceThreshold "
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetMaximumError "
+
+Set/Get the desired maximum error of the Guassian kernel approximate.
+
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetMaximumKernelWidth "
+
+Set/Get the desired limits of the Gaussian kernel width.
+
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetMaximumRMSError "
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetMaximumUpdateStepLength "
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetMetric "
+
+Get the metric value. The metric value is the mean square difference
+in intensity between the fixed image and transforming moving image
+computed over the the overlapping region between the two images. This
+value is calculated for the current iteration
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetRMSChange "
+
+Set/Get the root mean squared change of the previous iteration. May
+not be used by all solvers.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetSmoothDisplacementField "
+
+Set/Get whether the displacement field is smoothed (regularized).
+Smoothing the displacement yields a solution elastic in nature. If
+SmoothDisplacementField is on, then the displacement field is smoothed
+with a Gaussian whose standard deviations are specified with SetStandardDeviations()
+
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetSmoothUpdateField "
+
+Set/Get whether the update field is smoothed (regularized). Smoothing
+the update field yields a solution viscous in nature. If
+SmoothUpdateField is on, then the update field is smoothed with a
+Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()
+
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetStandardDeviations "
+
+Set/Get the Gaussian smoothing standard deviations for the
+displacement field. The values are set with respect to pixel
+coordinates.
+
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetUpdateFieldStandardDeviations "
+
+Set the Gaussian smoothing standard deviations for the update field.
+The values are set with respect to pixel coordinates.
+
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetUseGradientType "
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::GetUseImageSpacing "
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetIntensityDifferenceThreshold "
+
+Set/Get the threshold below which the absolute difference of intensity
+yields a match. When the intensities match between a moving and fixed
+image pixel, the update vector (for that iteration) will be the zero
+vector. Default is 0.001.
+
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetMaximumError "
+
+Set/Get the desired maximum error of the Guassian kernel approximate.
+
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetMaximumKernelWidth "
+
+Set/Get the desired limits of the Gaussian kernel width.
+
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetMaximumRMSError "
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetMaximumUpdateStepLength "
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetSmoothDisplacementField "
+
+Set/Get whether the displacement field is smoothed (regularized).
+Smoothing the displacement yields a solution elastic in nature. If
+SmoothDisplacementField is on, then the displacement field is smoothed
+with a Gaussian whose standard deviations are specified with SetStandardDeviations()
+
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetSmoothUpdateField "
+
+Set/Get whether the update field is smoothed (regularized). Smoothing
+the update field yields a solution viscous in nature. If
+SmoothUpdateField is on, then the update field is smoothed with a
+Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()
+
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetStandardDeviations "
+
+Set/Get the Gaussian smoothing standard deviations for the
+displacement field. The values are set with respect to pixel
+coordinates.
+
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetStandardDeviations "
+
+Set the values of the StandardDeviations vector all to value
+
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetUpdateFieldStandardDeviations "
+
+Set the Gaussian smoothing standard deviations for the update field.
+The values are set with respect to pixel coordinates.
+
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetUpdateFieldStandardDeviations "
+
+Set the values of the UpdateFieldStandardDeviations vector all to
+value
+
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetUseGradientType "
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SetUseImageSpacing "
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SmoothDisplacementFieldOff "
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SmoothDisplacementFieldOn "
+
+Set the value of SmoothDisplacementField to true or false
+respectfully.
+
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SmoothUpdateFieldOff "
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::SmoothUpdateFieldOn "
+
+Set the value of SmoothUpdateField to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::UseImageSpacingOff "
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::UseImageSpacingOn "
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::FastSymmetricForcesDemonsRegistrationFilter::~FastSymmetricForcesDemonsRegistrationFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::FlipImageFilter "
+
+Flips an image across user specified axes.
+
+
+FlipImageFilter flips an image across user specified axes. The flip axes are set via
+method SetFlipAxes( array ) where the input is a
+FixedArray<bool,ImageDimension>. The image is flipped across axes for
+which array[i] is true.
+
+In terms of grid coordinates the image is flipped within the
+LargestPossibleRegion of the input image. As such, the
+LargestPossibleRegion of the output image is the same as the input.
+
+In terms of geometric coordinates, the output origin is such that the
+image is flipped with respect to the coordinate axes.
+
+Wiki Examples:
+
+All Examples
+
+Flip an image over specified axes
+See:
+ itk::simple::Flip for the procedural interface
+
+ itk::FlipImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkFlipImageFilter.h
+";
+
+%feature("docstring")  itk::simple::FlipImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::FlipImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::FlipImageFilter::FlipAboutOriginOff "
+";
+
+%feature("docstring")  itk::simple::FlipImageFilter::FlipAboutOriginOn "
+
+Set the value of FlipAboutOrigin to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::FlipImageFilter::FlipImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::FlipImageFilter::GetFlipAboutOrigin "
+
+Controls how the output origin is computed. If FlipAboutOrigin is
+\"On\", the flip will occur about the origin of the axis, otherwise,
+the flip will occur about the center of the axis. Default is \"On\".
+
+";
+
+%feature("docstring")  itk::simple::FlipImageFilter::GetFlipAxes "
+
+Set/Get the axis to be flipped. The image is flipped along axes for
+which array[i] is true. Default is false.
+
+";
+
+%feature("docstring")  itk::simple::FlipImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::FlipImageFilter::SetFlipAboutOrigin "
+
+Controls how the output origin is computed. If FlipAboutOrigin is
+\"On\", the flip will occur about the origin of the axis, otherwise,
+the flip will occur about the center of the axis. Default is \"On\".
+
+";
+
+%feature("docstring")  itk::simple::FlipImageFilter::SetFlipAxes "
+
+Set/Get the axis to be flipped. The image is flipped along axes for
+which array[i] is true. Default is false.
+
+";
+
+%feature("docstring")  itk::simple::FlipImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::FlipImageFilter::~FlipImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ForwardFFTImageFilter "
+
+Base class for forward Fast Fourier Transform .
+
+
+This is a base class for the \"forward\" or \"direct\" discrete
+Fourier Transform . This is an abstract base class: the actual implementation is
+provided by the best child class available on the system when the
+object is created via the object factory system.
+
+This class transforms a real input image into its full complex Fourier
+transform. The Fourier transform of a real input image has Hermitian
+symmetry: $ f(\\\\mathbf{x}) = f^*(-\\\\mathbf{x}) $ . That is, when the result of the transform is split in half along
+the x-dimension, the values in the second half of the transform are
+the complex conjugates of values in the first half reflected about the
+center of the image in each dimension.
+
+This filter works only for real single-component input image types.
+
+
+See:
+ InverseFFTImageFilter , FFTComplexToComplexImageFilter
+
+ itk::simple::ForwardFFT for the procedural interface
+
+ itk::ForwardFFTImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkForwardFFTImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ForwardFFTImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ForwardFFTImageFilter::ForwardFFTImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ForwardFFTImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ForwardFFTImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ForwardFFTImageFilter::~ForwardFFTImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::FunctionCommand "
+
+A Command class which allows setting an external function, or member function.
+
+C++ includes: sitkFunctionCommand.h
+";
+
+%feature("docstring")  itk::simple::FunctionCommand::Execute "
+
+The method that defines action to be taken by the command
+
+";
+
+%feature("docstring")  itk::simple::FunctionCommand::FunctionCommand "
+";
+
+%feature("docstring")  itk::simple::FunctionCommand::SetCallbackFunction "
+
+Generic method to set a class's member function to be called in the
+Execute method.
+
+";
+
+%feature("docstring")  itk::simple::FunctionCommand::SetCallbackFunction "
+
+Set a C-Style function to be called in the Execute method
+
+";
+
+%feature("docstring")  itk::simple::FunctionCommand::SetCallbackFunction "
+
+Set a C-Style function with a void* clientData as an argument. The
+caller is responsible for managing the life of the clientData and that
+it's valid when Execute is called with the clientData.
+
+";
+
+
+%feature("docstring") itk::simple::GaborImageSource "
+
+Generate an n-dimensional image of a Gabor filter.
+
+
+GaborImageSource generates an image of either the real (i.e. symmetric) or complex
+(i.e. antisymmetric) part of the Gabor filter with the orientation
+directed along the x-axis. The GaborKernelFunction is used to evaluate the contribution along the x-axis whereas a non-
+normalized 1-D Gaussian envelope provides the contribution in each of
+the remaining N dimensions. Orientation can be manipulated via the Transform classes of the toolkit.
+
+The output image may be of any dimension.
+
+This implementation was contributed as a paper to the Insight Journal https://hdl.handle.net/1926/500
+See:
+ itk::simple::GaborImageSource for the procedural interface
+
+ itk::GaborImageSource for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkGaborImageSource.h
+";
+
+%feature("docstring")  itk::simple::GaborImageSource::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::GaborImageSource::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::GaborImageSource::GaborImageSource "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::GaborImageSource::GetDirection "
+";
+
+%feature("docstring")  itk::simple::GaborImageSource::GetFrequency "
+
+Set/Get the modulation frequency of the sine or cosine component.
+
+";
+
+%feature("docstring")  itk::simple::GaborImageSource::GetMean "
+
+Set/Get the mean in each direction.
+
+";
+
+%feature("docstring")  itk::simple::GaborImageSource::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::GaborImageSource::GetOrigin "
+";
+
+%feature("docstring")  itk::simple::GaborImageSource::GetOutputPixelType "
+";
+
+%feature("docstring")  itk::simple::GaborImageSource::GetSigma "
+
+Set/Get the the standard deviation in each direction.
+
+";
+
+%feature("docstring")  itk::simple::GaborImageSource::GetSize "
+";
+
+%feature("docstring")  itk::simple::GaborImageSource::GetSpacing "
+";
+
+%feature("docstring")  itk::simple::GaborImageSource::SetDirection "
+";
+
+%feature("docstring")  itk::simple::GaborImageSource::SetFrequency "
+
+Set/Get the modulation frequency of the sine or cosine component.
+
+";
+
+%feature("docstring")  itk::simple::GaborImageSource::SetMean "
+
+Set/Get the mean in each direction.
+
+";
+
+%feature("docstring")  itk::simple::GaborImageSource::SetMean "
+
+Set the values of the Mean vector all to value
+
+";
+
+%feature("docstring")  itk::simple::GaborImageSource::SetOrigin "
+";
+
+%feature("docstring")  itk::simple::GaborImageSource::SetOutputPixelType "
+";
+
+%feature("docstring")  itk::simple::GaborImageSource::SetSigma "
+
+Set/Get the the standard deviation in each direction.
+
+";
+
+%feature("docstring")  itk::simple::GaborImageSource::SetSigma "
+
+Set the values of the Sigma vector all to value
+
+";
+
+%feature("docstring")  itk::simple::GaborImageSource::SetSize "
+";
+
+%feature("docstring")  itk::simple::GaborImageSource::SetSpacing "
+";
+
+%feature("docstring")  itk::simple::GaborImageSource::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::GaborImageSource::~GaborImageSource "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::GaussianImageSource "
+
+Generate an n-dimensional image of a Gaussian.
+
+
+GaussianImageSource generates an image of a Gaussian. m_Normalized determines whether or
+not the Gaussian is normalized (whether or not the sum over infinite
+space is 1.0) When creating an image, it is preferable to not
+normalize the Gaussian m_Scale scales the output of the Gaussian to
+span a range larger than 0->1, and is typically set to the maximum
+value of the output data type (for instance, 255 for uchars)
+
+The output image may be of any dimension.
+See:
+ itk::simple::GaussianImageSource for the procedural interface
+
+ itk::GaussianImageSource for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkGaussianImageSource.h
+";
+
+%feature("docstring")  itk::simple::GaussianImageSource::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::GaussianImageSource::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::GaussianImageSource::GaussianImageSource "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::GaussianImageSource::GetDirection "
+";
+
+%feature("docstring")  itk::simple::GaussianImageSource::GetMean "
+
+Set/Get the mean in each direction.
+
+";
+
+%feature("docstring")  itk::simple::GaussianImageSource::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::GaussianImageSource::GetOrigin "
+";
+
+%feature("docstring")  itk::simple::GaussianImageSource::GetOutputPixelType "
+";
+
+%feature("docstring")  itk::simple::GaussianImageSource::GetScale "
+
+Gets and sets for Gaussian parameters Set/Get the scale factor to
+multiply the true value of the Gaussian.
+
+";
+
+%feature("docstring")  itk::simple::GaussianImageSource::GetSigma "
+
+Set/Get the standard deviation in each direction.
+
+";
+
+%feature("docstring")  itk::simple::GaussianImageSource::GetSize "
+";
+
+%feature("docstring")  itk::simple::GaussianImageSource::GetSpacing "
+";
+
+%feature("docstring")  itk::simple::GaussianImageSource::SetDirection "
+";
+
+%feature("docstring")  itk::simple::GaussianImageSource::SetMean "
+
+Set/Get the mean in each direction.
+
+";
+
+%feature("docstring")  itk::simple::GaussianImageSource::SetMean "
+
+Set the values of the Mean vector all to value
+
+";
+
+%feature("docstring")  itk::simple::GaussianImageSource::SetOrigin "
+";
+
+%feature("docstring")  itk::simple::GaussianImageSource::SetOutputPixelType "
+";
+
+%feature("docstring")  itk::simple::GaussianImageSource::SetScale "
+
+Gets and sets for Gaussian parameters Set/Get the scale factor to
+multiply the true value of the Gaussian.
+
+";
+
+%feature("docstring")  itk::simple::GaussianImageSource::SetSigma "
+
+Set/Get the standard deviation in each direction.
+
+";
+
+%feature("docstring")  itk::simple::GaussianImageSource::SetSigma "
+
+Set the values of the Sigma vector all to value
+
+";
+
+%feature("docstring")  itk::simple::GaussianImageSource::SetSize "
+";
+
+%feature("docstring")  itk::simple::GaussianImageSource::SetSpacing "
+";
+
+%feature("docstring")  itk::simple::GaussianImageSource::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::GaussianImageSource::~GaussianImageSource "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::GenericException "
+
+The base SimpleITK exception class.
+
+C++ includes: sitkExceptionObject.h
+";
+
+%feature("docstring")  itk::simple::GenericException::GenericException "
+ throw ()
+Default constructor. Needed to ensure the exception object can be
+copied.
+
+";
+
+%feature("docstring")  itk::simple::GenericException::GenericException "
+ throw ()";
+
+%feature("docstring")  itk::simple::GenericException::GenericException "
+ throw ()
+Constructor. Needed to ensure the exception object can be copied.
+
+";
+
+%feature("docstring")  itk::simple::GenericException::GenericException "
+ throw ()
+Constructor. Needed to ensure the exception object can be copied.
+
+";
+
+%feature("docstring")  itk::simple::GenericException::GenericException "
+ throw ()
+Constructor. Needed to ensure the exception object can be copied.
+
+";
+
+%feature("docstring")  itk::simple::GenericException::GetDescription "
+";
+
+%feature("docstring")  itk::simple::GenericException::GetFile "
+
+What file did the exception occur in?
+
+";
+
+%feature("docstring")  itk::simple::GenericException::GetLine "
+
+What line did the exception occur in?
+
+";
+
+%feature("docstring")  itk::simple::GenericException::GetLocation "
+";
+
+%feature("docstring")  itk::simple::GenericException::GetNameOfClass "
+";
+
+%feature("docstring")  itk::simple::GenericException::ToString "
+
+Return a description of the error
+
+";
+
+%feature("docstring")  itk::simple::GenericException::what "
+ throw ()";
+
+%feature("docstring")  itk::simple::GenericException::~GenericException "
+ throw ( )
+Virtual destructor needed for subclasses. Has to have empty throw().
+
+";
+
+
+%feature("docstring") itk::simple::GeodesicActiveContourLevelSetImageFilter "
+
+Segments structures in images based on a user supplied edge potential
+map.
+
+
+IMPORTANT
+The SegmentationLevelSetImageFilter class and the GeodesicActiveContourLevelSetFunction class contain additional information necessary to gain full
+understanding of how to use this filter.
+OVERVIEW
+This class is a level set method segmentation filter. An initial
+contour is propagated outwards (or inwards) until it ''sticks'' to the
+shape boundaries. This is done by using a level set speed function
+based on a user supplied edge potential map.
+INPUTS
+This filter requires two inputs. The first input is a initial level
+set. The initial level set is a real image which contains the initial
+contour/surface as the zero level set. For example, a signed distance
+function from the initial contour/surface is typically used. Unlike
+the simpler ShapeDetectionLevelSetImageFilter the initial contour does not have to lie wholly within the shape to
+be segmented. The initial contour is allow to overlap the shape
+boundary. The extra advection term in the update equation behaves like
+a doublet and attracts the contour to the boundary. This approach for
+segmentation follows that of Caselles et al (1997).
+
+The second input is the feature image. For this filter, this is the
+edge potential map. General characteristics of an edge potential map
+is that it has values close to zero in regions near the edges and
+values close to one inside the shape itself. Typically, the edge
+potential map is compute from the image gradient, for example:
+\\\\[ g(I) = 1 / ( 1 + | (\\\\nabla * G)(I)| ) \\\\] \\\\[ g(I) = \\\\exp^{-|(\\\\nabla * G)(I)|} \\\\]
+
+where $ I $ is image intensity and $ (\\\\nabla * G) $ is the derivative of Gaussian operator.
+
+
+See SegmentationLevelSetImageFilter and SparseFieldLevelSetImageFilter for more information on Inputs.
+PARAMETERS
+The PropagationScaling parameter can be used to switch from
+propagation outwards (POSITIVE scaling parameter) versus propagating
+inwards (NEGATIVE scaling parameter).
+ This implementation allows the user to set the weights between the
+propagation, advection and curvature term using methods SetPropagationScaling() , SetAdvectionScaling() , SetCurvatureScaling() . In general, the larger the CurvatureScaling, the smoother the
+resulting contour. To follow the implementation in Caselles et al
+paper, set the PropagationScaling to $ c $ (the inflation or ballon force) and AdvectionScaling and
+CurvatureScaling both to 1.0.
+
+OUTPUTS
+The filter outputs a single, scalar, real-valued image. Negative
+values in the output image represent the inside of the segmented
+region and positive values in the image represent the outside of the
+segmented region. The zero crossings of the image correspond to the
+position of the propagating front.
+
+See SparseFieldLevelSetImageFilter and SegmentationLevelSetImageFilter for more information.
+REFERENCES
+
+\"Geodesic Active Contours\", V. Caselles, R. Kimmel and G. Sapiro.
+International Journal on Computer Vision, Vol 22, No. 1, pp 61-97,
+1997
+
+See:
+ SegmentationLevelSetImageFilter
+
+ GeodesicActiveContourLevelSetFunction
+
+ SparseFieldLevelSetImageFilter
+
+ itk::simple::GeodesicActiveContourLevelSet for the procedural interface
+
+ itk::GeodesicActiveContourLevelSetImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkGeodesicActiveContourLevelSetImageFilter.h
+";
+
+%feature("docstring")  itk::simple::GeodesicActiveContourLevelSetImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::GeodesicActiveContourLevelSetImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::GeodesicActiveContourLevelSetImageFilter::GeodesicActiveContourLevelSetImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::GeodesicActiveContourLevelSetImageFilter::GetAdvectionScaling "
+";
+
+%feature("docstring")  itk::simple::GeodesicActiveContourLevelSetImageFilter::GetCurvatureScaling "
+";
+
+%feature("docstring")  itk::simple::GeodesicActiveContourLevelSetImageFilter::GetElapsedIterations "
+
+Number of iterations run.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::GeodesicActiveContourLevelSetImageFilter::GetMaximumRMSError "
+";
+
+%feature("docstring")  itk::simple::GeodesicActiveContourLevelSetImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::GeodesicActiveContourLevelSetImageFilter::GetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::GeodesicActiveContourLevelSetImageFilter::GetPropagationScaling "
+";
+
+%feature("docstring")  itk::simple::GeodesicActiveContourLevelSetImageFilter::GetReverseExpansionDirection "
+";
+
+%feature("docstring")  itk::simple::GeodesicActiveContourLevelSetImageFilter::GetRMSChange "
+
+The Root Mean Square of the levelset upon termination.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::GeodesicActiveContourLevelSetImageFilter::ReverseExpansionDirectionOff "
+";
+
+%feature("docstring")  itk::simple::GeodesicActiveContourLevelSetImageFilter::ReverseExpansionDirectionOn "
+
+Set the value of ReverseExpansionDirection to true or false
+respectfully.
+
+";
+
+%feature("docstring")  itk::simple::GeodesicActiveContourLevelSetImageFilter::SetAdvectionScaling "
+";
+
+%feature("docstring")  itk::simple::GeodesicActiveContourLevelSetImageFilter::SetCurvatureScaling "
+";
+
+%feature("docstring")  itk::simple::GeodesicActiveContourLevelSetImageFilter::SetMaximumRMSError "
+";
+
+%feature("docstring")  itk::simple::GeodesicActiveContourLevelSetImageFilter::SetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::GeodesicActiveContourLevelSetImageFilter::SetPropagationScaling "
+";
+
+%feature("docstring")  itk::simple::GeodesicActiveContourLevelSetImageFilter::SetReverseExpansionDirection "
+";
+
+%feature("docstring")  itk::simple::GeodesicActiveContourLevelSetImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::GeodesicActiveContourLevelSetImageFilter::~GeodesicActiveContourLevelSetImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::GradientAnisotropicDiffusionImageFilter "
+
+This filter performs anisotropic diffusion on a scalar itk::Image using the classic Perona-Malik, gradient magnitude based equation
+implemented in itkGradientNDAnisotropicDiffusionFunction. For detailed
+information on anisotropic diffusion, see
+itkAnisotropicDiffusionFunction and
+itkGradientNDAnisotropicDiffusionFunction.
+
+Inputs and Outputs
+The input to this filter should be a scalar itk::Image of any dimensionality. The output image will be a diffused copy of
+the input.
+Parameters
+Please see the description of parameters given in
+itkAnisotropicDiffusionImageFilter.
+
+See:
+ AnisotropicDiffusionImageFilter
+
+ AnisotropicDiffusionFunction
+
+ GradientAnisotropicDiffusionFunction
+
+ itk::simple::GradientAnisotropicDiffusion for the procedural interface
+
+ itk::GradientAnisotropicDiffusionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkGradientAnisotropicDiffusionImageFilter.h
+";
+
+%feature("docstring")  itk::simple::GradientAnisotropicDiffusionImageFilter::EstimateOptimalTimeStep "
+
+This method autmatically sets the optimal timestep for an image given
+its spacing.
+
+";
+
+%feature("docstring")  itk::simple::GradientAnisotropicDiffusionImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::GradientAnisotropicDiffusionImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::GradientAnisotropicDiffusionImageFilter::GetConductanceParameter "
+";
+
+%feature("docstring")  itk::simple::GradientAnisotropicDiffusionImageFilter::GetConductanceScalingUpdateInterval "
+";
+
+%feature("docstring")  itk::simple::GradientAnisotropicDiffusionImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::GradientAnisotropicDiffusionImageFilter::GetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::GradientAnisotropicDiffusionImageFilter::GetTimeStep "
+";
+
+%feature("docstring")  itk::simple::GradientAnisotropicDiffusionImageFilter::GradientAnisotropicDiffusionImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::GradientAnisotropicDiffusionImageFilter::SetConductanceParameter "
+";
+
+%feature("docstring")  itk::simple::GradientAnisotropicDiffusionImageFilter::SetConductanceScalingUpdateInterval "
+";
+
+%feature("docstring")  itk::simple::GradientAnisotropicDiffusionImageFilter::SetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::GradientAnisotropicDiffusionImageFilter::SetTimeStep "
+";
+
+%feature("docstring")  itk::simple::GradientAnisotropicDiffusionImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::GradientAnisotropicDiffusionImageFilter::~GradientAnisotropicDiffusionImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::GradientImageFilter "
+
+Computes the gradient of an image using directional derivatives.
+
+
+Computes the gradient of an image using directional derivatives. The
+directional derivative at each pixel location is computed by
+convolution with a first-order derivative operator.
+
+The second template parameter defines the value type used in the
+derivative operator (defaults to float). The third template parameter
+defines the value type used for output image (defaults to float). The
+output image is defined as a covariant vector image whose value type
+is specified as this third template parameter.
+
+
+See:
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+
+ itk::simple::Gradient for the procedural interface
+
+ itk::GradientImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkGradientImageFilter.h
+";
+
+%feature("docstring")  itk::simple::GradientImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::GradientImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::GradientImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::GradientImageFilter::GetUseImageDirection "
+
+The UseImageDirection flag determines whether image derivatives are
+computed with respect to the image grid or with respect to the
+physical space. When this flag is ON the derivatives are computed with
+respect to the coordinate system of physical space. The difference is
+whether we take into account the image Direction or not. The flag ON
+will take into account the image direction and will result in an extra
+matrix multiplication compared to the amount of computation performed
+when the flag is OFF. The default value of this flag is On.
+
+";
+
+%feature("docstring")  itk::simple::GradientImageFilter::GetUseImageSpacing "
+";
+
+%feature("docstring")  itk::simple::GradientImageFilter::GradientImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::GradientImageFilter::SetUseImageDirection "
+
+The UseImageDirection flag determines whether image derivatives are
+computed with respect to the image grid or with respect to the
+physical space. When this flag is ON the derivatives are computed with
+respect to the coordinate system of physical space. The difference is
+whether we take into account the image Direction or not. The flag ON
+will take into account the image direction and will result in an extra
+matrix multiplication compared to the amount of computation performed
+when the flag is OFF. The default value of this flag is On.
+
+";
+
+%feature("docstring")  itk::simple::GradientImageFilter::SetUseImageSpacing "
+
+Set/Get whether or not the filter will use the spacing of the input
+image in its calculations
+
+";
+
+%feature("docstring")  itk::simple::GradientImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::GradientImageFilter::UseImageDirectionOff "
+";
+
+%feature("docstring")  itk::simple::GradientImageFilter::UseImageDirectionOn "
+
+Set the value of UseImageDirection to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::GradientImageFilter::UseImageSpacingOff "
+";
+
+%feature("docstring")  itk::simple::GradientImageFilter::UseImageSpacingOn "
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::GradientImageFilter::~GradientImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::GradientMagnitudeImageFilter "
+
+Computes the gradient magnitude of an image region at each pixel.
+
+
+
+See:
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+Wiki Examples:
+
+All Examples
+
+Compute the gradient magnitude image
+See:
+ itk::simple::GradientMagnitude for the procedural interface
+
+ itk::GradientMagnitudeImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkGradientMagnitudeImageFilter.h
+";
+
+%feature("docstring")  itk::simple::GradientMagnitudeImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::GradientMagnitudeImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::GradientMagnitudeImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::GradientMagnitudeImageFilter::GetUseImageSpacing "
+
+Set/Get whether or not the filter will use the spacing of the input
+image in its calculations
+
+";
+
+%feature("docstring")  itk::simple::GradientMagnitudeImageFilter::GradientMagnitudeImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::GradientMagnitudeImageFilter::SetUseImageSpacing "
+
+Set/Get whether or not the filter will use the spacing of the input
+image in its calculations
+
+";
+
+%feature("docstring")  itk::simple::GradientMagnitudeImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::GradientMagnitudeImageFilter::UseImageSpacingOff "
+";
+
+%feature("docstring")  itk::simple::GradientMagnitudeImageFilter::UseImageSpacingOn "
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::GradientMagnitudeImageFilter::~GradientMagnitudeImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::GradientMagnitudeRecursiveGaussianImageFilter "
+
+Computes the Magnitude of the Gradient of an image by convolution with
+the first derivative of a Gaussian.
+
+
+This filter is implemented using the recursive gaussian filters
+
+Wiki Examples:
+
+All Examples
+
+Find the gradient magnitude of the image first smoothed with a
+Gaussian kernel
+See:
+ itk::simple::GradientMagnitudeRecursiveGaussian for the procedural interface
+
+ itk::GradientMagnitudeRecursiveGaussianImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkGradientMagnitudeRecursiveGaussianImageFilter.h
+";
+
+%feature("docstring")  itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::GetNormalizeAcrossScale "
+
+Define which normalization factor will be used for the Gaussian
+See:
+ RecursiveGaussianImageFilter::SetNormalizeAcrossScale
+
+
+";
+
+%feature("docstring")  itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::GetSigma "
+
+Set Sigma value. Sigma is measured in the units of image spacing.
+
+";
+
+%feature("docstring")  itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::GradientMagnitudeRecursiveGaussianImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::NormalizeAcrossScaleOff "
+";
+
+%feature("docstring")  itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::NormalizeAcrossScaleOn "
+
+Set the value of NormalizeAcrossScale to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::SetNormalizeAcrossScale "
+
+Define which normalization factor will be used for the Gaussian
+See:
+ RecursiveGaussianImageFilter::SetNormalizeAcrossScale
+
+
+";
+
+%feature("docstring")  itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::SetSigma "
+
+Set Sigma value. Sigma is measured in the units of image spacing.
+
+";
+
+%feature("docstring")  itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::GradientMagnitudeRecursiveGaussianImageFilter::~GradientMagnitudeRecursiveGaussianImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::GradientRecursiveGaussianImageFilter "
+
+Computes the gradient of an image by convolution with the first
+derivative of a Gaussian.
+
+
+This filter is implemented using the recursive gaussian filters.
+
+This filter supports both scalar and vector pixel types within the
+input image, including VectorImage type.
+
+Wiki Examples:
+
+All Examples
+
+Compute the gradient of an image by convolution with the first
+derivative of a Gaussian
+See:
+ itk::simple::GradientRecursiveGaussian for the procedural interface
+
+ itk::GradientRecursiveGaussianImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkGradientRecursiveGaussianImageFilter.h
+";
+
+%feature("docstring")  itk::simple::GradientRecursiveGaussianImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::GradientRecursiveGaussianImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::GradientRecursiveGaussianImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::GradientRecursiveGaussianImageFilter::GetNormalizeAcrossScale "
+
+Define which normalization factor will be used for the Gaussian
+See:
+ RecursiveGaussianImageFilter::SetNormalizeAcrossScale
+
+
+";
+
+%feature("docstring")  itk::simple::GradientRecursiveGaussianImageFilter::GetSigma "
+";
+
+%feature("docstring")  itk::simple::GradientRecursiveGaussianImageFilter::GetUseImageDirection "
+
+The UseImageDirection flag determines whether the gradients are
+computed with respect to the image grid or with respect to the
+physical space. When this flag is ON the gradients are computed with
+respect to the coordinate system of physical space. The difference is
+whether we take into account the image Direction or not. The flag ON
+will take into account the image direction and will result in an extra
+matrix multiplication compared to the amount of computation performed
+when the flag is OFF. The default value of this flag is On.
+
+";
+
+%feature("docstring")  itk::simple::GradientRecursiveGaussianImageFilter::GradientRecursiveGaussianImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::GradientRecursiveGaussianImageFilter::NormalizeAcrossScaleOff "
+";
+
+%feature("docstring")  itk::simple::GradientRecursiveGaussianImageFilter::NormalizeAcrossScaleOn "
+
+Set the value of NormalizeAcrossScale to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::GradientRecursiveGaussianImageFilter::SetNormalizeAcrossScale "
+
+Define which normalization factor will be used for the Gaussian
+See:
+ RecursiveGaussianImageFilter::SetNormalizeAcrossScale
+
+
+";
+
+%feature("docstring")  itk::simple::GradientRecursiveGaussianImageFilter::SetSigma "
+
+Set Sigma value. Sigma is measured in the units of image spacing.
+
+";
+
+%feature("docstring")  itk::simple::GradientRecursiveGaussianImageFilter::SetUseImageDirection "
+
+The UseImageDirection flag determines whether the gradients are
+computed with respect to the image grid or with respect to the
+physical space. When this flag is ON the gradients are computed with
+respect to the coordinate system of physical space. The difference is
+whether we take into account the image Direction or not. The flag ON
+will take into account the image direction and will result in an extra
+matrix multiplication compared to the amount of computation performed
+when the flag is OFF. The default value of this flag is On.
+
+";
+
+%feature("docstring")  itk::simple::GradientRecursiveGaussianImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::GradientRecursiveGaussianImageFilter::UseImageDirectionOff "
+";
+
+%feature("docstring")  itk::simple::GradientRecursiveGaussianImageFilter::UseImageDirectionOn "
+
+Set the value of UseImageDirection to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::GradientRecursiveGaussianImageFilter::~GradientRecursiveGaussianImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::GrayscaleConnectedClosingImageFilter "
+
+Enhance pixels associated with a dark object (identified by a seed
+pixel) where the dark object is surrounded by a brigher object.
+
+
+GrayscaleConnectedClosingImagefilter is useful for enhancing dark
+objects that are surrounded by bright borders. This filter makes it
+easier to threshold the image and extract just the object of interest.
+
+Geodesic morphology and the connected closing algorithm are described
+in Chapter 6 of Pierre Soille's book \"Morphological Image Analysis:
+Principles and Applications\", Second Edition, Springer, 2003.
+
+
+See:
+ GrayscaleGeodesicDilateImageFilter
+
+ MorphologyImageFilter , GrayscaleDilateImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter
+
+ itk::simple::GrayscaleConnectedClosing for the procedural interface
+
+ itk::GrayscaleConnectedClosingImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkGrayscaleConnectedClosingImageFilter.h
+";
+
+%feature("docstring")  itk::simple::GrayscaleConnectedClosingImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleConnectedClosingImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleConnectedClosingImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::GrayscaleConnectedClosingImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleConnectedClosingImageFilter::GetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleConnectedClosingImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleConnectedClosingImageFilter::GetSeed "
+
+Set/Get the seed pixel for the segmentation
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleConnectedClosingImageFilter::GrayscaleConnectedClosingImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleConnectedClosingImageFilter::SetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleConnectedClosingImageFilter::SetSeed "
+
+Set/Get the seed pixel for the segmentation
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleConnectedClosingImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleConnectedClosingImageFilter::~GrayscaleConnectedClosingImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::GrayscaleConnectedOpeningImageFilter "
+
+Enhance pixels associated with a bright object (identified by a seed
+pixel) where the bright object is surrounded by a darker object.
+
+
+GrayscaleConnectedOpeningImagefilter is useful for enhancing bright
+objects that are surrounded by dark borders. This filter makes it
+easier to threshold the image and extract just the object of interest.
+
+Geodesic morphology and the connected opening algorithm is described
+in Chapter 6 of Pierre Soille's book \"Morphological Image Analysis:
+Principles and Applications\", Second Edition, Springer, 2003.
+
+
+See:
+ GrayscaleGeodesicDilateImageFilter
+
+ MorphologyImageFilter , GrayscaleDilateImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter
+
+ itk::simple::GrayscaleConnectedOpening for the procedural interface
+
+ itk::GrayscaleConnectedOpeningImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkGrayscaleConnectedOpeningImageFilter.h
+";
+
+%feature("docstring")  itk::simple::GrayscaleConnectedOpeningImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleConnectedOpeningImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleConnectedOpeningImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::GrayscaleConnectedOpeningImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleConnectedOpeningImageFilter::GetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleConnectedOpeningImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleConnectedOpeningImageFilter::GetSeed "
+
+Set/Get the seed pixel for the segmentation
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleConnectedOpeningImageFilter::GrayscaleConnectedOpeningImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleConnectedOpeningImageFilter::SetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleConnectedOpeningImageFilter::SetSeed "
+
+Set/Get the seed pixel for the segmentation
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleConnectedOpeningImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleConnectedOpeningImageFilter::~GrayscaleConnectedOpeningImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::GrayscaleDilateImageFilter "
+
+Grayscale dilation of an image.
+
+
+Dilate an image using grayscale morphology. Dilation takes the maximum
+of all the pixels identified by the structuring element.
+
+The structuring element is assumed to be composed of binary values
+(zero or one). Only elements of the structuring element having values
+> 0 are candidates for affecting the center pixel.
+
+
+See:
+ MorphologyImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter
+Wiki Examples:
+
+All Examples
+
+Dilate a grayscale image
+See:
+ itk::simple::GrayscaleDilate for the procedural interface
+
+ itk::GrayscaleDilateImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkGrayscaleDilateImageFilter.h
+";
+
+%feature("docstring")  itk::simple::GrayscaleDilateImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleDilateImageFilter::GetKernelRadius "
+";
+
+%feature("docstring")  itk::simple::GrayscaleDilateImageFilter::GetKernelType "
+";
+
+%feature("docstring")  itk::simple::GrayscaleDilateImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleDilateImageFilter::GrayscaleDilateImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleDilateImageFilter::SetKernelRadius "
+
+Kernel radius as a scale for isotropic structures
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleDilateImageFilter::SetKernelRadius "
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleDilateImageFilter::SetKernelType "
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleDilateImageFilter::SetKernelType "
+";
+
+%feature("docstring")  itk::simple::GrayscaleDilateImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleDilateImageFilter::~GrayscaleDilateImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::GrayscaleErodeImageFilter "
+
+Grayscale erosion of an image.
+
+
+Erode an image using grayscale morphology. Erosion takes the maximum
+of all the pixels identified by the structuring element.
+
+The structuring element is assumed to be composed of binary values
+(zero or one). Only elements of the structuring element having values
+> 0 are candidates for affecting the center pixel.
+
+
+See:
+ MorphologyImageFilter , GrayscaleFunctionErodeImageFilter , BinaryErodeImageFilter
+Wiki Examples:
+
+All Examples
+
+Erode a grayscale image
+See:
+ itk::simple::GrayscaleErode for the procedural interface
+
+ itk::GrayscaleErodeImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkGrayscaleErodeImageFilter.h
+";
+
+%feature("docstring")  itk::simple::GrayscaleErodeImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleErodeImageFilter::GetKernelRadius "
+";
+
+%feature("docstring")  itk::simple::GrayscaleErodeImageFilter::GetKernelType "
+";
+
+%feature("docstring")  itk::simple::GrayscaleErodeImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleErodeImageFilter::GrayscaleErodeImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleErodeImageFilter::SetKernelRadius "
+
+Kernel radius as a scale for isotropic structures
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleErodeImageFilter::SetKernelRadius "
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleErodeImageFilter::SetKernelType "
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleErodeImageFilter::SetKernelType "
+";
+
+%feature("docstring")  itk::simple::GrayscaleErodeImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleErodeImageFilter::~GrayscaleErodeImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::GrayscaleFillholeImageFilter "
+
+Remove local minima not connected to the boundary of the image.
+
+
+GrayscaleFillholeImageFilter fills holes in a grayscale image. Holes are local minima in the
+grayscale topography that are not connected to boundaries of the
+image. Gray level values adjacent to a hole are extrapolated across
+the hole.
+
+This filter is used to smooth over local minima without affecting the
+values of local maxima. If you take the difference between the output
+of this filter and the original image (and perhaps threshold the
+difference above a small value), you'll obtain a map of the local
+minima.
+
+This filter uses the ReconstructionByErosionImageFilter . It provides its own input as the \"mask\" input to the geodesic
+erosion. The \"marker\" image for the geodesic erosion is constructed
+such that boundary pixels match the boundary pixels of the input image
+and the interior pixels are set to the maximum pixel value in the
+input image.
+
+Geodesic morphology and the Fillhole algorithm is described in Chapter
+6 of Pierre Soille's book \"Morphological Image Analysis: Principles
+and Applications\", Second Edition, Springer, 2003.
+
+
+See:
+ ReconstructionByErosionImageFilter
+
+ MorphologyImageFilter , GrayscaleErodeImageFilter , GrayscaleFunctionErodeImageFilter , BinaryErodeImageFilter
+
+ itk::simple::GrayscaleFillhole for the procedural interface
+
+ itk::GrayscaleFillholeImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkGrayscaleFillholeImageFilter.h
+";
+
+%feature("docstring")  itk::simple::GrayscaleFillholeImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleFillholeImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleFillholeImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::GrayscaleFillholeImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleFillholeImageFilter::GetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleFillholeImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleFillholeImageFilter::GrayscaleFillholeImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleFillholeImageFilter::SetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleFillholeImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleFillholeImageFilter::~GrayscaleFillholeImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::GrayscaleGeodesicDilateImageFilter "
+
+geodesic gray scale dilation of an image
+
+
+Geodesic dilation operates on a \"marker\" image and a \"mask\" image.
+The marker image is dilated using an elementary structuring element
+(neighborhood of radius one using only the face connected neighbors).
+The resulting image is then compared with the mask image. The output
+image is the pixelwise minimum of the dilated marker image and the
+mask image.
+
+Geodesic dilation is run either one iteration or until convergence. In
+the convergence case, the filter is equivalent to \"reconstruction by
+dilation\". This filter is implemented to handle both scenarios. The
+one iteration case is multi-threaded. The convergence case is
+delegated to another instance of the same filter (but configured to
+run a single iteration).
+
+The marker image must be less than or equal to the mask image (on a
+pixel by pixel basis).
+
+Geodesic morphology is described in Chapter 6 of Pierre Soille's book
+\"Morphological Image Analysis: Principles and Applications\", Second
+Edition, Springer, 2003.
+
+A noniterative version of this algorithm can be found in the ReconstructionByDilationImageFilter . This noniterative solution is much faster than the implementation
+provided here. All ITK filters that previously used
+GrayscaleGeodesicDiliateImageFilter as part of their implementation
+have been converted to use the ReconstructionByDilationImageFilter . The GrayscaleGeodesicDilateImageFilter is maintained for backward compatibility.
+
+
+See:
+ MorphologyImageFilter , GrayscaleDilateImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter , ReconstructionByDilationImageFilter
+
+ itk::simple::GrayscaleGeodesicDilate for the procedural interface
+
+ itk::GrayscaleGeodesicDilateImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkGrayscaleGeodesicDilateImageFilter.h
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicDilateImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicDilateImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicDilateImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicDilateImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicDilateImageFilter::GetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicDilateImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicDilateImageFilter::GetRunOneIteration "
+
+Set/Get whether the filter should run one iteration or until
+convergence. When run to convergence, this filter is equivalent to
+\"reconstruction by dilation\". Default is off.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicDilateImageFilter::GrayscaleGeodesicDilateImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicDilateImageFilter::RunOneIterationOff "
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicDilateImageFilter::RunOneIterationOn "
+
+Set the value of RunOneIteration to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicDilateImageFilter::SetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicDilateImageFilter::SetRunOneIteration "
+
+Set/Get whether the filter should run one iteration or until
+convergence. When run to convergence, this filter is equivalent to
+\"reconstruction by dilation\". Default is off.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicDilateImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicDilateImageFilter::~GrayscaleGeodesicDilateImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::GrayscaleGeodesicErodeImageFilter "
+
+geodesic gray scale erosion of an image
+
+
+Geodesic erosion operates on a \"marker\" image and a \"mask\" image.
+The marker image is eroded using an elementary structuring element
+(neighborhood of radius one using only the face connected neighbors).
+The resulting image is then compared with the mask image. The output
+image is the pixelwise maximum of the eroded marker image and the mask
+image.
+
+Geodesic erosion is run either one iteration or until convergence. In
+the convergence case, the filter is equivalent to \"reconstruction by
+erosion\". This filter is implemented to handle both scenarios. The
+one iteration case is multi-threaded. The convergence case is
+delegated to another instance of the same filter (but configured to
+run a single iteration).
+
+The marker image must be greater than or equal to the mask image (on a
+pixel by pixel basis).
+
+Geodesic morphology is described in Chapter 6 of Pierre Soille's book
+\"Morphological Image Analysis: Principles and Applications\", Second
+Edition, Springer, 2003.
+
+A noniterative version of this algorithm can be found in the ReconstructionByErosionImageFilter . This noniterative solution is much faster than the implementation
+provided here. All ITK filters that previously used GrayscaleGeodesicErodeImageFilter as part of their implementation have been converted to use the ReconstructionByErosionImageFilter . The GrayscaleGeodesicErodeImageFilter is maintained for backward compatibility.
+
+
+See:
+ MorphologyImageFilter , GrayscaleErodeImageFilter , GrayscaleFunctionErodeImageFilter , BinaryErodeImageFilter , ReconstructionByErosionImageFilter
+
+ itk::simple::GrayscaleGeodesicErode for the procedural interface
+
+ itk::GrayscaleGeodesicErodeImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkGrayscaleGeodesicErodeImageFilter.h
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicErodeImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicErodeImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicErodeImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicErodeImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicErodeImageFilter::GetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicErodeImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicErodeImageFilter::GetRunOneIteration "
+
+Set/Get whether the filter should run one iteration or until
+convergence. When run to convergence, this filter is equivalent to
+\"reconstruction by erosion\". Default is off.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicErodeImageFilter::GrayscaleGeodesicErodeImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicErodeImageFilter::RunOneIterationOff "
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicErodeImageFilter::RunOneIterationOn "
+
+Set the value of RunOneIteration to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicErodeImageFilter::SetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicErodeImageFilter::SetRunOneIteration "
+
+Set/Get whether the filter should run one iteration or until
+convergence. When run to convergence, this filter is equivalent to
+\"reconstruction by erosion\". Default is off.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicErodeImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicErodeImageFilter::~GrayscaleGeodesicErodeImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::GrayscaleGrindPeakImageFilter "
+
+Remove local maxima not connected to the boundary of the image.
+
+
+GrayscaleGrindPeakImageFilter removes peaks in a grayscale image. Peaks are local maxima in the
+grayscale topography that are not connected to boundaries of the
+image. Gray level values adjacent to a peak are extrapolated through
+the peak.
+
+This filter is used to smooth over local maxima without affecting the
+values of local minima. If you take the difference between the output
+of this filter and the original image (and perhaps threshold the
+difference above a small value), you'll obtain a map of the local
+maxima.
+
+This filter uses the GrayscaleGeodesicDilateImageFilter . It provides its own input as the \"mask\" input to the geodesic
+erosion. The \"marker\" image for the geodesic erosion is constructed
+such that boundary pixels match the boundary pixels of the input image
+and the interior pixels are set to the minimum pixel value in the
+input image.
+
+This filter is the dual to the GrayscaleFillholeImageFilter which implements the Fillhole algorithm. Since it is a dual, it is
+somewhat superfluous but is provided as a convenience.
+
+Geodesic morphology and the Fillhole algorithm is described in Chapter
+6 of Pierre Soille's book \"Morphological Image Analysis: Principles
+and Applications\", Second Edition, Springer, 2003.
+
+
+See:
+ GrayscaleGeodesicDilateImageFilter
+
+ MorphologyImageFilter , GrayscaleDilateImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter
+
+ itk::simple::GrayscaleGrindPeak for the procedural interface
+
+ itk::GrayscaleGrindPeakImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkGrayscaleGrindPeakImageFilter.h
+";
+
+%feature("docstring")  itk::simple::GrayscaleGrindPeakImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGrindPeakImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGrindPeakImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::GrayscaleGrindPeakImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGrindPeakImageFilter::GetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGrindPeakImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGrindPeakImageFilter::GrayscaleGrindPeakImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGrindPeakImageFilter::SetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGrindPeakImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGrindPeakImageFilter::~GrayscaleGrindPeakImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::GrayscaleMorphologicalClosingImageFilter "
+
+gray scale dilation of an image
+
+
+Erode an image using grayscale morphology. Dilation takes the maximum
+of all the pixels identified by the structuring element.
+
+The structuring element is assumed to be composed of binary values
+(zero or one). Only elements of the structuring element having values
+> 0 are candidates for affecting the center pixel.
+
+
+See:
+ MorphologyImageFilter , GrayscaleFunctionErodeImageFilter , BinaryErodeImageFilter
+
+ itk::simple::GrayscaleMorphologicalClosing for the procedural interface
+
+ itk::GrayscaleMorphologicalClosingImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkGrayscaleMorphologicalClosingImageFilter.h
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalClosingImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalClosingImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalClosingImageFilter::GetKernelRadius "
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalClosingImageFilter::GetKernelType "
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalClosingImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalClosingImageFilter::GetSafeBorder "
+
+A safe border is added to input image to avoid borders effects and
+remove it once the closing is done
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalClosingImageFilter::GrayscaleMorphologicalClosingImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalClosingImageFilter::SafeBorderOff "
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalClosingImageFilter::SafeBorderOn "
+
+Set the value of SafeBorder to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalClosingImageFilter::SetKernelRadius "
+
+Kernel radius as a scale for isotropic structures
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalClosingImageFilter::SetKernelRadius "
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalClosingImageFilter::SetKernelType "
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalClosingImageFilter::SetKernelType "
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalClosingImageFilter::SetSafeBorder "
+
+A safe border is added to input image to avoid borders effects and
+remove it once the closing is done
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalClosingImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalClosingImageFilter::~GrayscaleMorphologicalClosingImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::GrayscaleMorphologicalOpeningImageFilter "
+
+gray scale dilation of an image
+
+
+Dilate an image using grayscale morphology. Dilation takes the maximum
+of all the pixels identified by the structuring element.
+
+The structuring element is assumed to be composed of binary values
+(zero or one). Only elements of the structuring element having values
+> 0 are candidates for affecting the center pixel.
+
+
+See:
+ MorphologyImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter
+
+ itk::simple::GrayscaleMorphologicalOpening for the procedural interface
+
+ itk::GrayscaleMorphologicalOpeningImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkGrayscaleMorphologicalOpeningImageFilter.h
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalOpeningImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalOpeningImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalOpeningImageFilter::GetKernelRadius "
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalOpeningImageFilter::GetKernelType "
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalOpeningImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalOpeningImageFilter::GetSafeBorder "
+
+A safe border is added to input image to avoid borders effects and
+remove it once the closing is done
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalOpeningImageFilter::GrayscaleMorphologicalOpeningImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalOpeningImageFilter::SafeBorderOff "
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalOpeningImageFilter::SafeBorderOn "
+
+Set the value of SafeBorder to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalOpeningImageFilter::SetKernelRadius "
+
+Kernel radius as a scale for isotropic structures
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalOpeningImageFilter::SetKernelRadius "
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalOpeningImageFilter::SetKernelType "
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalOpeningImageFilter::SetKernelType "
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalOpeningImageFilter::SetSafeBorder "
+
+A safe border is added to input image to avoid borders effects and
+remove it once the closing is done
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalOpeningImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalOpeningImageFilter::~GrayscaleMorphologicalOpeningImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::GreaterEqualImageFilter "
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This class is parameterized over the types of the two input images and
+the type of the output image. It is also parameterized by the
+operation to be applied. A Functor style is used.
+
+The constant must be of the same type than the pixel type of the
+corresponding image. It is wrapped in a SimpleDataObjectDecorator so it can be updated through the pipeline. The SetConstant() and
+GetConstant() methods are provided as shortcuts to set or get the
+constant value without manipulating the decorator.
+
+
+See:
+ UnaryFunctorImageFilter TernaryFunctorImageFilter
+Wiki Examples:
+
+All Examples
+
+Apply a predefined operation to corresponding pixels in two images
+
+Apply a custom operation to corresponding pixels in two images
+See:
+ itk::simple::GreaterEqual for the procedural interface
+
+ itk::BinaryFunctorImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkGreaterEqualImageFilter.h
+";
+
+%feature("docstring")  itk::simple::GreaterEqualImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::GreaterEqualImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::GreaterEqualImageFilter::Execute "
+
+Execute the filter with an image and a constant
+
+";
+
+%feature("docstring")  itk::simple::GreaterEqualImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::GreaterEqualImageFilter::Execute "
+
+Execute the filter on an image and a constant with the given
+parameters
+
+";
+
+%feature("docstring")  itk::simple::GreaterEqualImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::GreaterEqualImageFilter::GetBackgroundValue "
+
+Set/Get the value used to mark the false pixels of the operator.
+
+";
+
+%feature("docstring")  itk::simple::GreaterEqualImageFilter::GetForegroundValue "
+
+Set/Get the value used to mark the true pixels of the operator.
+
+";
+
+%feature("docstring")  itk::simple::GreaterEqualImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::GreaterEqualImageFilter::GreaterEqualImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::GreaterEqualImageFilter::SetBackgroundValue "
+
+Set/Get the value used to mark the false pixels of the operator.
+
+";
+
+%feature("docstring")  itk::simple::GreaterEqualImageFilter::SetForegroundValue "
+
+Set/Get the value used to mark the true pixels of the operator.
+
+";
+
+%feature("docstring")  itk::simple::GreaterEqualImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::GreaterEqualImageFilter::~GreaterEqualImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::GreaterImageFilter "
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This class is parameterized over the types of the two input images and
+the type of the output image. It is also parameterized by the
+operation to be applied. A Functor style is used.
+
+The constant must be of the same type than the pixel type of the
+corresponding image. It is wrapped in a SimpleDataObjectDecorator so it can be updated through the pipeline. The SetConstant() and
+GetConstant() methods are provided as shortcuts to set or get the
+constant value without manipulating the decorator.
+
+
+See:
+ UnaryFunctorImageFilter TernaryFunctorImageFilter
+Wiki Examples:
+
+All Examples
+
+Apply a predefined operation to corresponding pixels in two images
+
+Apply a custom operation to corresponding pixels in two images
+See:
+ itk::simple::Greater for the procedural interface
+
+ itk::BinaryFunctorImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkGreaterImageFilter.h
+";
+
+%feature("docstring")  itk::simple::GreaterImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::GreaterImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::GreaterImageFilter::Execute "
+
+Execute the filter with an image and a constant
+
+";
+
+%feature("docstring")  itk::simple::GreaterImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::GreaterImageFilter::Execute "
+
+Execute the filter on an image and a constant with the given
+parameters
+
+";
+
+%feature("docstring")  itk::simple::GreaterImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::GreaterImageFilter::GetBackgroundValue "
+
+Set/Get the value used to mark the false pixels of the operator.
+
+";
+
+%feature("docstring")  itk::simple::GreaterImageFilter::GetForegroundValue "
+
+Set/Get the value used to mark the true pixels of the operator.
+
+";
+
+%feature("docstring")  itk::simple::GreaterImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::GreaterImageFilter::GreaterImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::GreaterImageFilter::SetBackgroundValue "
+
+Set/Get the value used to mark the false pixels of the operator.
+
+";
+
+%feature("docstring")  itk::simple::GreaterImageFilter::SetForegroundValue "
+
+Set/Get the value used to mark the true pixels of the operator.
+
+";
+
+%feature("docstring")  itk::simple::GreaterImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::GreaterImageFilter::~GreaterImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::GridImageSource "
+
+Generate an n-dimensional image of a grid.
+
+
+GridImageSource generates an image of a grid. From the abstract... \"Certain classes
+of images find disparate use amongst members of the ITK community for
+such purposes as visualization, simulation, testing, etc. Currently
+there exists two derived classes from the ImageSource class used for
+generating specific images for various applications, viz.
+RandomImageSource and GaussianImageSource . We propose to add to this
+set with the class GridImageSource which, obviously enough, produces a
+grid image. Such images are useful for visualizing deformation when
+used in conjunction with the WarpImageFilter , simulating magnetic
+resonance tagging images, or creating optical illusions with which to
+amaze your friends.\"
+
+The output image may be of any dimension.
+
+
+Tustison N., Avants B., Gee J. University of Pennsylvania
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/475
+See:
+ itk::simple::GridImageSource for the procedural interface
+
+ itk::GridImageSource for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkGridImageSource.h
+";
+
+%feature("docstring")  itk::simple::GridImageSource::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::GridImageSource::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::GridImageSource::GetDirection "
+";
+
+%feature("docstring")  itk::simple::GridImageSource::GetGridOffset "
+
+Set/Get the grid offset.
+
+";
+
+%feature("docstring")  itk::simple::GridImageSource::GetGridSpacing "
+
+Set/Get the grid spacing of the peaks.
+
+";
+
+%feature("docstring")  itk::simple::GridImageSource::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::GridImageSource::GetOrigin "
+";
+
+%feature("docstring")  itk::simple::GridImageSource::GetOutputPixelType "
+";
+
+%feature("docstring")  itk::simple::GridImageSource::GetScale "
+
+Set/Get the scale factor to multiply the true value of the grid.
+
+";
+
+%feature("docstring")  itk::simple::GridImageSource::GetSigma "
+
+Set/Get the standard deviation of the Gaussians or width of the box
+functions.
+
+";
+
+%feature("docstring")  itk::simple::GridImageSource::GetSize "
+";
+
+%feature("docstring")  itk::simple::GridImageSource::GetSpacing "
+";
+
+%feature("docstring")  itk::simple::GridImageSource::GridImageSource "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::GridImageSource::SetDirection "
+";
+
+%feature("docstring")  itk::simple::GridImageSource::SetGridOffset "
+
+Set/Get the grid offset.
+
+";
+
+%feature("docstring")  itk::simple::GridImageSource::SetGridSpacing "
+
+Set/Get the grid spacing of the peaks.
+
+";
+
+%feature("docstring")  itk::simple::GridImageSource::SetOrigin "
+";
+
+%feature("docstring")  itk::simple::GridImageSource::SetOutputPixelType "
+";
+
+%feature("docstring")  itk::simple::GridImageSource::SetScale "
+
+Set/Get the scale factor to multiply the true value of the grid.
+
+";
+
+%feature("docstring")  itk::simple::GridImageSource::SetSigma "
+
+Set/Get the standard deviation of the Gaussians or width of the box
+functions.
+
+";
+
+%feature("docstring")  itk::simple::GridImageSource::SetSigma "
+
+Set the values of the Sigma vector all to value
+
+";
+
+%feature("docstring")  itk::simple::GridImageSource::SetSize "
+";
+
+%feature("docstring")  itk::simple::GridImageSource::SetSpacing "
+";
+
+%feature("docstring")  itk::simple::GridImageSource::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::GridImageSource::~GridImageSource "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::HConcaveImageFilter "
+
+Identify local minima whose depth below the baseline is greater than
+h.
+
+
+HConcaveImageFilter extract local minima that are more than h intensity units below the
+(local) background. This has the effect of extracting objects that are
+darker than the background by at least h intensity units.
+
+This filter uses the HMinimaImageFilter .
+
+Geodesic morphology and the H-Convex algorithm is described in Chapter
+6 of Pierre Soille's book \"Morphological Image Analysis: Principles
+and Applications\", Second Edition, Springer, 2003.
+
+
+See:
+ GrayscaleGeodesicDilateImageFilter , HMaximaImageFilter ,
+
+ MorphologyImageFilter , GrayscaleDilateImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter
+
+ itk::simple::HConcave for the procedural interface
+
+ itk::HConcaveImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkHConcaveImageFilter.h
+";
+
+%feature("docstring")  itk::simple::HConcaveImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::HConcaveImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::HConcaveImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::HConcaveImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::HConcaveImageFilter::GetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::HConcaveImageFilter::GetHeight "
+
+Set/Get the height that a local maximum must be above the local
+background (local contrast) in order to survive the processing. Local
+maxima below this value are replaced with an estimate of the local
+background.
+
+";
+
+%feature("docstring")  itk::simple::HConcaveImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::HConcaveImageFilter::HConcaveImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::HConcaveImageFilter::SetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::HConcaveImageFilter::SetHeight "
+
+Set/Get the height that a local maximum must be above the local
+background (local contrast) in order to survive the processing. Local
+maxima below this value are replaced with an estimate of the local
+background.
+
+";
+
+%feature("docstring")  itk::simple::HConcaveImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::HConcaveImageFilter::~HConcaveImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::HConvexImageFilter "
+
+Identify local maxima whose height above the baseline is greater than
+h.
+
+
+HConvexImageFilter extract local maxima that are more than h intensity units above the
+(local) background. This has the effect of extracting objects that are
+brighter than background by at least h intensity units.
+
+This filter uses the HMaximaImageFilter .
+
+Geodesic morphology and the H-Convex algorithm is described in Chapter
+6 of Pierre Soille's book \"Morphological Image Analysis: Principles
+and Applications\", Second Edition, Springer, 2003.
+
+
+See:
+ GrayscaleGeodesicDilateImageFilter , HMinimaImageFilter
+
+ MorphologyImageFilter , GrayscaleDilateImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter
+
+ itk::simple::HConvex for the procedural interface
+
+ itk::HConvexImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkHConvexImageFilter.h
+";
+
+%feature("docstring")  itk::simple::HConvexImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::HConvexImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::HConvexImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::HConvexImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::HConvexImageFilter::GetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::HConvexImageFilter::GetHeight "
+
+Set/Get the height that a local maximum must be above the local
+background (local contrast) in order to survive the processing. Local
+maxima below this value are replaced with an estimate of the local
+background.
+
+";
+
+%feature("docstring")  itk::simple::HConvexImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::HConvexImageFilter::HConvexImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::HConvexImageFilter::SetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::HConvexImageFilter::SetHeight "
+
+Set/Get the height that a local maximum must be above the local
+background (local contrast) in order to survive the processing. Local
+maxima below this value are replaced with an estimate of the local
+background.
+
+";
+
+%feature("docstring")  itk::simple::HConvexImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::HConvexImageFilter::~HConvexImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::HMaximaImageFilter "
+
+Suppress local maxima whose height above the baseline is less than h.
+
+
+HMaximaImageFilter suppresses local maxima that are less than h intensity units above
+the (local) background. This has the effect of smoothing over the
+\"high\" parts of the noise in the image without smoothing over large
+changes in intensity (region boundaries). See the HMinimaImageFilter to suppress the local minima whose depth is less than h intensity
+units below the (local) background.
+
+If the output of HMaximaImageFilter is subtracted from the original image, the signicant \"peaks\" in the
+image can be identified. This is what the HConvexImageFilter provides.
+
+This filter uses the ReconstructionByDilationImageFilter . It provides its own input as the \"mask\" input to the geodesic
+dilation. The \"marker\" image for the geodesic dilation is the input
+image minus the height parameter h.
+
+Geodesic morphology and the H-Maxima algorithm is described in Chapter
+6 of Pierre Soille's book \"Morphological Image Analysis: Principles
+and Applications\", Second Edition, Springer, 2003.
+
+The height parameter is set using SetHeight.
+
+
+See:
+ ReconstructionByDilationImageFilter , HMinimaImageFilter , HConvexImageFilter
+
+ MorphologyImageFilter , GrayscaleDilateImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter
+
+ itk::simple::HMaxima for the procedural interface
+
+ itk::HMaximaImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkHMaximaImageFilter.h
+";
+
+%feature("docstring")  itk::simple::HMaximaImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::HMaximaImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::HMaximaImageFilter::GetHeight "
+
+Set/Get the height that a local maximum must be above the local
+background (local contrast) in order to survive the processing. Local
+maxima below this value are replaced with an estimate of the local
+background.
+
+";
+
+%feature("docstring")  itk::simple::HMaximaImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::HMaximaImageFilter::HMaximaImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::HMaximaImageFilter::SetHeight "
+
+Set/Get the height that a local maximum must be above the local
+background (local contrast) in order to survive the processing. Local
+maxima below this value are replaced with an estimate of the local
+background.
+
+";
+
+%feature("docstring")  itk::simple::HMaximaImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::HMaximaImageFilter::~HMaximaImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::HMinimaImageFilter "
+
+Suppress local minima whose depth below the baseline is less than h.
+
+
+HMinimaImageFilter suppresses local minima that are less than h intensity units below
+the (local) background. This has the effect of smoothing over the
+\"low\" parts of the noise in the image without smoothing over large
+changes in intensity (region boundaries). See the HMaximaImageFilter to suppress the local maxima whose height is less than h intensity
+units above the (local) background.
+
+If original image is subtracted from the output of HMinimaImageFilter , the signicant \"valleys\" in the image can be identified. This is
+what the HConcaveImageFilter provides.
+
+This filter uses the GrayscaleGeodesicErodeImageFilter . It provides its own input as the \"mask\" input to the geodesic
+dilation. The \"marker\" image for the geodesic dilation is the input
+image plus the height parameter h.
+
+Geodesic morphology and the H-Minima algorithm is described in Chapter
+6 of Pierre Soille's book \"Morphological Image Analysis: Principles
+and Applications\", Second Edition, Springer, 2003.
+
+
+See:
+ GrayscaleGeodesicDilateImageFilter , HMinimaImageFilter , HConvexImageFilter
+
+ MorphologyImageFilter , GrayscaleDilateImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter
+
+ itk::simple::HMinima for the procedural interface
+
+ itk::HMinimaImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkHMinimaImageFilter.h
+";
+
+%feature("docstring")  itk::simple::HMinimaImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::HMinimaImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::HMinimaImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::HMinimaImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::HMinimaImageFilter::GetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::HMinimaImageFilter::GetHeight "
+
+Set/Get the height that a local maximum must be above the local
+background (local contrast) in order to survive the processing. Local
+maxima below this value are replaced with an estimate of the local
+background.
+
+";
+
+%feature("docstring")  itk::simple::HMinimaImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::HMinimaImageFilter::HMinimaImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::HMinimaImageFilter::SetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::HMinimaImageFilter::SetHeight "
+
+Set/Get the height that a local maximum must be above the local
+background (local contrast) in order to survive the processing. Local
+maxima below this value are replaced with an estimate of the local
+background.
+
+";
+
+%feature("docstring")  itk::simple::HMinimaImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::HMinimaImageFilter::~HMinimaImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::HalfHermitianToRealInverseFFTImageFilter "
+
+Base class for specialized complex-to-real inverse Fast Fourier Transform .
+
+
+This is a base class for the \"inverse\" or \"reverse\" Discrete
+Fourier Transform . This is an abstract base class: the actual implementation is
+provided by the best child class available on the system when the
+object is created via the object factory system.
+
+The input to this filter is assumed to have the same format as the
+output of the RealToHalfHermitianForwardFFTImageFilter . That is, the input is assumed to consist of roughly half the full
+complex image resulting from a real-to-complex discrete Fourier
+transform. This half is expected to be the first half of the image in
+the X-dimension. Because this filter assumes that the input stores
+only about half of the non-redundant complex pixels, the output is
+larger in the X-dimension than it is in the input. To determine the
+actual size of the output image, this filter needs additional
+information in the form of a flag indicating whether the output image
+has an odd size in the X-dimension. Use SetActualXDimensionIsOdd() to set this flag.
+
+
+See:
+ ForwardFFTImageFilter , HalfHermitianToRealInverseFFTImageFilter
+
+ itk::simple::HalfHermitianToRealInverseFFT for the procedural interface
+
+ itk::HalfHermitianToRealInverseFFTImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkHalfHermitianToRealInverseFFTImageFilter.h
+";
+
+%feature("docstring")  itk::simple::HalfHermitianToRealInverseFFTImageFilter::ActualXDimensionIsOddOff "
+";
+
+%feature("docstring")  itk::simple::HalfHermitianToRealInverseFFTImageFilter::ActualXDimensionIsOddOn "
+
+Set the value of ActualXDimensionIsOdd to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::HalfHermitianToRealInverseFFTImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::HalfHermitianToRealInverseFFTImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::HalfHermitianToRealInverseFFTImageFilter::GetActualXDimensionIsOdd "
+
+Was the original truncated dimension size odd?
+
+";
+
+%feature("docstring")  itk::simple::HalfHermitianToRealInverseFFTImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::HalfHermitianToRealInverseFFTImageFilter::HalfHermitianToRealInverseFFTImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::HalfHermitianToRealInverseFFTImageFilter::SetActualXDimensionIsOdd "
+
+Was the original truncated dimension size odd?
+
+";
+
+%feature("docstring")  itk::simple::HalfHermitianToRealInverseFFTImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::HalfHermitianToRealInverseFFTImageFilter::~HalfHermitianToRealInverseFFTImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::HashImageFilter "
+
+Compute the sha1 or md5 hash of an image.
+
+
+
+See:
+ itk::simple::Hash for the procedural interface
+
+
+C++ includes: sitkHashImageFilter.h
+";
+
+%feature("docstring")  itk::simple::HashImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::HashImageFilter::GetHashFunction "
+";
+
+%feature("docstring")  itk::simple::HashImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::HashImageFilter::HashImageFilter "
+";
+
+%feature("docstring")  itk::simple::HashImageFilter::SetHashFunction "
+";
+
+%feature("docstring")  itk::simple::HashImageFilter::ToString "
+";
+
+
+%feature("docstring") itk::simple::HausdorffDistanceImageFilter "
+
+Computes the Hausdorff distance between the set of non-zero pixels of
+two images.
+
+
+HausdorffDistanceImageFilter computes the distance between the set non-zero pixels of two images
+using the following formula: \\\\[ H(A,B) = \\\\max(h(A,B),h(B,A)) \\\\] where \\\\[ h(A,B) = \\\\max_{a \\\\in A} \\\\min_{b \\\\in B} \\\\| a -
+b\\\\| \\\\] is the directed Hausdorff distance and $A$ and $B$ are respectively the set of non-zero pixels in the first and second
+input images.
+
+In particular, this filter uses the DirectedHausdorffImageFilter
+inside to compute the two directed distances and then select the
+largest of the two.
+
+The Hausdorff distance measures the degree of mismatch between two
+sets and behaves like a metric over the set of all closed bounded sets
+- with properties of identity, symmetry and triangle inequality.
+
+This filter requires the largest possible region of the first image
+and the same corresponding region in the second image. It behaves as
+filter with two inputs and one output. Thus it can be inserted in a
+pipeline with other filters. The filter passes the first input through
+unmodified.
+
+This filter is templated over the two input image types. It assume
+both images have the same number of dimensions.
+
+
+See:
+ DirectedHausdorffDistanceImageFilter
+
+ itk::HausdorffDistanceImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkHausdorffDistanceImageFilter.h
+";
+
+%feature("docstring")  itk::simple::HausdorffDistanceImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::HausdorffDistanceImageFilter::GetAverageHausdorffDistance "
+
+Return the computed Hausdorff distance.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::HausdorffDistanceImageFilter::GetHausdorffDistance "
+
+Return the computed Hausdorff distance.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::HausdorffDistanceImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::HausdorffDistanceImageFilter::HausdorffDistanceImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::HausdorffDistanceImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::HausdorffDistanceImageFilter::~HausdorffDistanceImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::HistogramMatchingImageFilter "
+
+Normalize the grayscale values between two images by histogram
+matching.
+
+
+HistogramMatchingImageFilter normalizes the grayscale values of a source image based on the
+grayscale values of a reference image. This filter uses a histogram
+matching technique where the histograms of the two images are matched
+only at a specified number of quantile values.
+
+This filter was originally designed to normalize MR images of the same
+MR protocol and same body part. The algorithm works best if background
+pixels are excluded from both the source and reference histograms. A
+simple background exclusion method is to exclude all pixels whose
+grayscale values are smaller than the mean grayscale value. ThresholdAtMeanIntensityOn() switches on this simple background exclusion method.
+
+The source image can be set via either SetInput() or SetSourceImage()
+. The reference image can be set via SetReferenceImage() .
+
+SetNumberOfHistogramLevels() sets the number of bins used when creating histograms of the source
+and reference images. SetNumberOfMatchPoints() governs the number of quantile values to be matched.
+
+This filter assumes that both the source and reference are of the same
+type and that the input and output image type have the same number of
+dimension and have scalar pixel types.
+
+REFERENCE
+Laszlo G. Nyul, Jayaram K. Udupa, and Xuan Zhang, \"New Variants of a
+Method of MRI Scale Standardization\", IEEE Transactions on Medical
+Imaging, 19(2):143-150, 2000.
+
+See:
+ itk::simple::HistogramMatching for the procedural interface
+
+ itk::HistogramMatchingImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkHistogramMatchingImageFilter.h
+";
+
+%feature("docstring")  itk::simple::HistogramMatchingImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::HistogramMatchingImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::HistogramMatchingImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::HistogramMatchingImageFilter::GetNumberOfHistogramLevels "
+
+Set/Get the number of histogram levels used.
+
+";
+
+%feature("docstring")  itk::simple::HistogramMatchingImageFilter::GetNumberOfMatchPoints "
+
+Set/Get the number of match points used.
+
+";
+
+%feature("docstring")  itk::simple::HistogramMatchingImageFilter::GetThresholdAtMeanIntensity "
+
+Set/Get the threshold at mean intensity flag. If true, only source
+(reference) pixels which are greater than the mean source (reference)
+intensity is used in the histogram matching. If false, all pixels are
+used.
+
+";
+
+%feature("docstring")  itk::simple::HistogramMatchingImageFilter::HistogramMatchingImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::HistogramMatchingImageFilter::SetNumberOfHistogramLevels "
+
+Set/Get the number of histogram levels used.
+
+";
+
+%feature("docstring")  itk::simple::HistogramMatchingImageFilter::SetNumberOfMatchPoints "
+
+Set/Get the number of match points used.
+
+";
+
+%feature("docstring")  itk::simple::HistogramMatchingImageFilter::SetThresholdAtMeanIntensity "
+
+Set/Get the threshold at mean intensity flag. If true, only source
+(reference) pixels which are greater than the mean source (reference)
+intensity is used in the histogram matching. If false, all pixels are
+used.
+
+";
+
+%feature("docstring")  itk::simple::HistogramMatchingImageFilter::ThresholdAtMeanIntensityOff "
+";
+
+%feature("docstring")  itk::simple::HistogramMatchingImageFilter::ThresholdAtMeanIntensityOn "
+
+Set the value of ThresholdAtMeanIntensity to true or false
+respectfully.
+
+";
+
+%feature("docstring")  itk::simple::HistogramMatchingImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::HistogramMatchingImageFilter::~HistogramMatchingImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::HuangThresholdImageFilter "
+
+Threshold an image using the Huang Threshold.
+
+
+This filter creates a binary thresholded image that separates an image
+into foreground and background components. The filter computes the
+threshold using the HuangThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .
+
+
+Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+ Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/10380/3279 or http://www.insight-journal.org/browse/publication/811
+
+
+See:
+ HistogramThresholdImageFilter
+
+ itk::simple::HuangThreshold for the procedural interface
+
+ itk::HuangThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkHuangThresholdImageFilter.h
+";
+
+%feature("docstring")  itk::simple::HuangThresholdImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::HuangThresholdImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::HuangThresholdImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::HuangThresholdImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::HuangThresholdImageFilter::GetInsideValue "
+
+Get the \"inside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::HuangThresholdImageFilter::GetMaskOutput "
+";
+
+%feature("docstring")  itk::simple::HuangThresholdImageFilter::GetMaskValue "
+";
+
+%feature("docstring")  itk::simple::HuangThresholdImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::HuangThresholdImageFilter::GetNumberOfHistogramBins "
+";
+
+%feature("docstring")  itk::simple::HuangThresholdImageFilter::GetOutsideValue "
+
+Get the \"outside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::HuangThresholdImageFilter::GetThreshold "
+
+Get the computed threshold.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::HuangThresholdImageFilter::HuangThresholdImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::HuangThresholdImageFilter::MaskOutputOff "
+";
+
+%feature("docstring")  itk::simple::HuangThresholdImageFilter::MaskOutputOn "
+
+Set the value of MaskOutput to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::HuangThresholdImageFilter::SetInsideValue "
+
+Set the \"inside\" pixel value. The default value NumericTraits<OutputPixelType>::max()
+
+";
+
+%feature("docstring")  itk::simple::HuangThresholdImageFilter::SetMaskOutput "
+
+Do you want the output to be masked by the mask used in histogram
+construction. Only relevant if masking is in use.
+
+";
+
+%feature("docstring")  itk::simple::HuangThresholdImageFilter::SetMaskValue "
+
+The value in the mask image, if used, indicating voxels that should be
+included. Default is the max of pixel type, as in the
+MaskedImageToHistogramFilter
+
+";
+
+%feature("docstring")  itk::simple::HuangThresholdImageFilter::SetNumberOfHistogramBins "
+
+Set/Get the number of histogram bins. Defaults is 128.
+
+";
+
+%feature("docstring")  itk::simple::HuangThresholdImageFilter::SetOutsideValue "
+
+Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.
+
+";
+
+%feature("docstring")  itk::simple::HuangThresholdImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::HuangThresholdImageFilter::~HuangThresholdImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::Image "
+
+The main Image class for SimpleITK.
+
+C++ includes: sitkImage.h
+";
+
+%feature("docstring")  itk::simple::Image::CopyInformation "
+
+Copy common meta-data from an image to this one.
+
+
+Copies the Origin, Spacing, and Direction from the source image to
+this image. The meta-data dictionary is not copied.
+
+It is required for the source Image's dimension and size to match, this image's attributes, otherwise an
+exception will be generated.
+
+";
+
+%feature("docstring")  itk::simple::Image::EraseMetaData "
+
+Remove an entry from the meta-data dictionary.
+
+
+Returns true, when the value exists in the dictionary and is removed,
+false otherwise.
+
+";
+
+%feature("docstring")  itk::simple::Image::GetDepth "
+";
+
+%feature("docstring")  itk::simple::Image::GetDimension "
+";
+
+%feature("docstring")  itk::simple::Image::GetHeight "
+";
+
+%feature("docstring")  itk::simple::Image::GetMetaData "
+
+Get the value of a meta-data dictionary entry as a string.
+
+
+If the key is not in the dictionary then an exception is thrown.
+
+string types in the dictionary are returned as their native strings.
+Other types are printed to string before returning.
+
+";
+
+%feature("docstring")  itk::simple::Image::GetMetaDataKeys "
+
+get a vector of keys in from the meta-data dictionary
+
+
+Returns a vector of keys to the key/value entries in the image's meta-
+data dictionary. Iterate through with these keys to get the values.
+
+";
+
+%feature("docstring")  itk::simple::Image::GetNumberOfComponentsPerPixel "
+
+Get the number of components for each pixel.
+
+
+For scalar images this methods returns 1. For vector images the number
+of components for each pixel is returned.
+
+";
+
+%feature("docstring")  itk::simple::Image::GetNumberOfPixels "
+
+Get the number of pixels in the image.
+
+
+To Calculate the total number of values stored continuously for the
+image's buffer, the NumberOfPixels should be multiplied by
+NumberOfComponentsPerPixel in order to account for multiple component
+images.
+
+";
+
+%feature("docstring")  itk::simple::Image::GetPixelID "
+";
+
+%feature("docstring")  itk::simple::Image::GetPixelIDTypeAsString "
+";
+
+%feature("docstring")  itk::simple::Image::GetPixelIDValue "
+";
+
+%feature("docstring")  itk::simple::Image::GetSize "
+";
+
+%feature("docstring")  itk::simple::Image::GetWidth "
+";
+
+%feature("docstring")  itk::simple::Image::HasMetaDataKey "
+
+Query the meta-data dictionary for the existence of a key.
+
+";
+
+%feature("docstring")  itk::simple::Image::Image "
+
+Default constructor, creates an image of size 0.
+
+";
+
+%feature("docstring")  itk::simple::Image::Image "
+";
+
+%feature("docstring")  itk::simple::Image::MakeUnique "
+
+Performs actually coping if needed to make object unique.
+
+
+The Image class by default performs lazy coping and assignment. This method
+make sure that coping actually happens to the itk::Image pointed to is only pointed to by this object.
+
+";
+
+%feature("docstring")  itk::simple::Image::SetMetaData "
+
+Set an entry in the meta-data dictionary.
+
+
+Replaces or creates an entry in the image's meta-data dictionary.
+
+";
+
+%feature("docstring")  itk::simple::Image::ToString "
+";
+
+%feature("docstring")  itk::simple::Image::TransformContinuousIndexToPhysicalPoint "
+
+Transform continuous index to physical point
+
+";
+
+%feature("docstring")  itk::simple::Image::TransformIndexToPhysicalPoint "
+
+Transform index to physical point
+
+";
+
+%feature("docstring")  itk::simple::Image::TransformPhysicalPointToContinuousIndex "
+
+Transform physical point to continuous index
+
+";
+
+%feature("docstring")  itk::simple::Image::TransformPhysicalPointToIndex "
+
+Transform physical point to index
+
+";
+
+%feature("docstring")  itk::simple::Image::~Image "
+";
+
+
+%feature("docstring") itk::simple::ImageFileReader "
+
+Read a 2D or 3D image and return a smart pointer to a SimpleITK image.
+
+
+This reader handles scalar and vector images and returns an image with
+the same type as the file on disk.
+
+
+See:
+ itk::simple::ReadImage for the procedural interface
+
+
+C++ includes: sitkImageFileReader.h
+";
+
+%feature("docstring")  itk::simple::ImageFileReader::Execute "
+";
+
+%feature("docstring")  itk::simple::ImageFileReader::GetFileName "
+";
+
+%feature("docstring")  itk::simple::ImageFileReader::GetName "
+
+return user readable name fo the filter
+
+";
+
+%feature("docstring")  itk::simple::ImageFileReader::ImageFileReader "
+";
+
+%feature("docstring")  itk::simple::ImageFileReader::SetFileName "
+";
+
+%feature("docstring")  itk::simple::ImageFileReader::ToString "
+
+Print ourselves to string
+
+";
+
+
+%feature("docstring") itk::simple::ImageFileWriter "
+
+Write out a SimpleITK image to the specified file location.
+
+
+This writer tries to write the image out using the image's type to the
+location specified in FileName. If writing fails, an ITK exception is
+thrown.
+
+
+See:
+ itk::simple::WriteImage for the procedural interface
+
+
+C++ includes: sitkImageFileWriter.h
+";
+
+%feature("docstring")  itk::simple::ImageFileWriter::Execute "
+";
+
+%feature("docstring")  itk::simple::ImageFileWriter::Execute "
+";
+
+%feature("docstring")  itk::simple::ImageFileWriter::GetFileName "
+";
+
+%feature("docstring")  itk::simple::ImageFileWriter::GetName "
+
+return user readable name fo the filter
+
+";
+
+%feature("docstring")  itk::simple::ImageFileWriter::ImageFileWriter "
+";
+
+%feature("docstring")  itk::simple::ImageFileWriter::SetFileName "
+";
+
+%feature("docstring")  itk::simple::ImageFileWriter::ToString "
+
+Print ourselves to string
+
+";
+
+
+%feature("docstring") itk::simple::ImageFilter "
+
+The base interface for SimpleITK filters that take one input image.
+
+
+All SimpleITK filters which take one input image should inherit from
+this class
+
+C++ includes: sitkImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ImageFilter::ImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ImageFilter::~ImageFilter "
+
+Default Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ImageReaderBase "
+
+An abract base class for image readers.
+
+C++ includes: sitkImageReaderBase.h
+";
+
+%feature("docstring")  itk::simple::ImageReaderBase::Execute "
+";
+
+%feature("docstring")  itk::simple::ImageReaderBase::ImageReaderBase "
+";
+
+%feature("docstring")  itk::simple::ImageReaderBase::ToString "
+";
+
+
+%feature("docstring") itk::simple::ImageRegistrationMethod "
+
+An interface method to the modular ITKv4 registration framework.
+
+
+This interface method class encapsulates typical registration usage by
+incorporating all the necessary elements for performing a simple image
+registration between two images. This method also allows for
+multistage registration whereby each stage is characterized by
+possibly different transforms and different image metrics. For
+example, many users will want to perform a linear registration
+followed by deformable registration where both stages are performed in
+multiple levels. Each level can be characterized by:
+
+
+the resolution of the virtual domain image (see below)
+
+smoothing of the fixed and moving images
+ Multiple stages are handled by linking multiple instantiations of
+this class where the output transform is added to the optional
+composite transform input.
+
+
+See:
+ itk::ImageRegistrationMethodv4
+
+ itk::ImageToImageMetricv4
+
+ itk::ObjectToObjectOptimizerBaseTemplate
+
+
+C++ includes: sitkImageRegistrationMethod.h
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::Execute "
+
+Optimize the configured registration problem.
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::GetCurrentLevel "
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::GetMetricValue "
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::GetName "
+
+return user readable name for the filter
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::GetOptimizerConvergenceValue "
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::GetOptimizerIteration "
+
+Active measurements which can be obtained during call backs.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::GetOptimizerLearningRate "
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::GetOptimizerPosition "
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::GetOptimizerScales "
+
+Get the OptimizerScales.
+
+
+If the scales are explicitly set then this method returns those
+values. If an estimator is used then this is an active measurement
+returning the scales estimated by the estimator and is only available
+during execution.
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::GetOptimizerStopConditionDescription "
+
+Measurement updated at the end of execution.
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::ImageRegistrationMethod "
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::MetricEvaluate "
+
+Get the value of the metric given the state of the method.
+
+
+Passing a fixed and moving image, this method constructs and
+configures a metric object to obtain the value. This will take into
+consideration the current transforms, metric, interpolator, and image
+masks. It does not take into consideration the sampling strategy,
+smoothing sigmas, or the shrink factors.
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::SetMetricAsANTSNeighborhoodCorrelation "
+
+Use normalized cross correlation using a small neighborhood for each
+voxel between two images, with speed optimizations for dense
+registration.
+
+
+
+See:
+ itk::ANTSNeighborhoodCorrelationImageToImageMetricv4
+
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::SetMetricAsCorrelation "
+
+Use negative normalized cross correlation image metric.
+
+
+
+See:
+ itk::CorrelationImageToImageMetricv4
+
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::SetMetricAsDemons "
+
+Use demons image metric.
+
+
+
+See:
+ itk::DemonsImageToImageMetricv4
+
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::SetMetricAsJointHistogramMutualInformation "
+
+Use mutual information between two images.
+
+
+
+See:
+ itk::JointHistogramMutualInformationImageToImageMetricv4
+
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::SetMetricAsMattesMutualInformation "
+
+Use the mutual information between two images to be registered using
+the method of Mattes et al.
+
+
+
+See:
+ itk::MattesMutualInformationImageToImageMetricv4
+
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::SetMetricAsMeanSquares "
+
+Use negative means squares image metric.
+
+
+
+See:
+ itk::MeanSquaresImageToImageMetricv4
+
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::SetMetricFixedMask "
+
+Set an image mask in order to restrict the sampled points for the
+metric.
+
+
+The image is expected to be in the same physical space as the
+FixedImage, and if the pixel type is not UInt8 than the image will
+base cast.
+
+
+See:
+ itk::ImageToImageMetricv4::SetFixedImageMask
+
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::SetMetricMovingMask "
+
+Set an image mask in order to restrict the sampled points for the
+metric in the moving image space.
+
+
+The image is expected to be in the same physical space as the
+MovingImage, and if the pixel type is not UInt8 than the image will
+base cast.
+
+
+See:
+ itk::ImageToImageMetricv4::SetMovingImageMask
+
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::SetMetricSamplingStrategy "
+
+Set sampling strategy for sample generation.
+
+
+
+See:
+ itk::ImageRegistrationMethodv4::SetMetricSamplingStrategy
+
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::SetOptimizerAsAmoeba "
+
+Set optimizer to Nelder-Mead downhill simplex algorithm.
+
+
+
+See:
+ itk::AmoebaOptimizerv4
+
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::SetOptimizerAsConjugateGradientLineSearch "
+
+Conjugate gradient descent optimizer with a golden section line search
+for nonlinear optimization.
+
+
+
+See:
+ itk::ConjugateGradientLineSearchOptimizerv4Template
+
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::SetOptimizerAsExhaustive "
+
+Set the optimizer to sample the metric at regular steps.
+
+
+At each iteration the GetOptimizerIteration, can be used to index into
+the sampling grid along with the GetCurrentMetricValue.
+
+The resulting transform and value at the end of execution is the best
+location.
+
+The OptimizerScales can be used to perform anisotropic sampling.
+
+
+This optimizer is not suitable for use in conjunction with the
+multiple scales.
+
+See:
+ itk::ExhaustiveOptimizerv4
+
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::SetOptimizerAsGradientDescent "
+
+Gradient descent optimizer.
+
+
+
+See:
+ itk::GradientDescentOptimizerv4Template
+
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::SetOptimizerAsGradientDescentLineSearch "
+
+Gradient descent optimizer with a golden section line search.
+
+
+
+See:
+ itk::GradientDescentLineSearchOptimizerv4Template
+
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::SetOptimizerAsLBFGSB "
+
+Limited memory Broyden Fletcher Goldfarb Shannon minimization with
+simple bounds.
+
+
+The default parameters utilize LBFGSB in unbounded mode.
+
+
+See:
+ itk::LBFGSBOptimizerv4
+
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::SetOptimizerAsOnePlusOneEvolutionary "
+
+1+1 evolutionary optimizer strategy.
+
+
+The seed parameter is used to seed the pseudo-random number generator.
+If the seed parameter is 0, then the wall clock is used to seed,
+otherwise the fixed seed is used for reproducible behavior.
+
+
+See:
+ itk::OnePlusOneEvolutionaryOptimizerv4
+
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::SetOptimizerAsPowell "
+
+Powell optimization using Brent line search.
+
+
+
+See:
+ itk::PowellOptimizerv4
+
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::SetOptimizerAsRegularStepGradientDescent "
+
+Regular Step Gradient descent optimizer.
+
+
+
+See:
+ itk::RegularStepGradientDescentOptimizerv4
+
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::SetOptimizerScales "
+
+Manually set per parameter weighting for the transform parameters.
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::SetOptimizerScalesFromIndexShift "
+
+Estimate scales from maximum voxel shift in index space cause by
+parameter change.
+
+
+
+See:
+ itk::RegistrationParameterScalesFromIndexShift
+
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::SetOptimizerScalesFromJacobian "
+
+Estimate scales from Jacobian norms.
+
+
+This scales estimator works well with versor based transforms.
+
+
+See:
+ itk::RegistrationParameterScalesFromJacobian
+
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::SetOptimizerScalesFromPhysicalShift "
+
+Estimating scales of transform parameters a step sizes, from the
+maximum voxel shift in physical space caused by a parameter change.
+
+
+
+See:
+ itk::RegistrationParameterScalesFromPhysicalShift
+
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::SetShrinkFactorsPerLevel "
+
+Set the shrink factors for each level where each level has the same
+shrink factor for each dimension.
+
+
+
+See:
+ itk::ImageRegistrationMethodv4::SetShrinkFactorsPerLevel
+
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::SetSmoothingSigmasPerLevel "
+
+Set the sigmas of Gaussian used for smoothing at each level.
+
+
+
+See:
+ itk::ImageRegistrationMethodv4::SetSmoothingSigmasPerLevel
+
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::ToString "
+
+Print the information about the object to a string.
+
+
+If called when the process is being executed ( during a callback ),
+the ITK Optimizer and Transform objects will be printed.
+
+";
+
+%feature("docstring")  itk::simple::ImageRegistrationMethod::~ImageRegistrationMethod "
+";
+
+
+%feature("docstring") itk::simple::ImageSeriesReader "
+
+Read series of image into a SimpleITK image.
+
+
+
+See:
+ itk::simple::ReadImage for the procedural interface
+
+
+C++ includes: sitkImageSeriesReader.h
+";
+
+%feature("docstring")  itk::simple::ImageSeriesReader::Execute "
+";
+
+%feature("docstring")  itk::simple::ImageSeriesReader::GetFileNames "
+";
+
+%feature("docstring")  itk::simple::ImageSeriesReader::GetName "
+
+return user readable name fo the filter
+
+";
+
+%feature("docstring")  itk::simple::ImageSeriesReader::ImageSeriesReader "
+";
+
+%feature("docstring")  itk::simple::ImageSeriesReader::SetFileNames "
+";
+
+%feature("docstring")  itk::simple::ImageSeriesReader::ToString "
+
+Print ourselves to string
+
+";
+
+
+%feature("docstring") itk::simple::ImageSeriesWriter "
+
+Writer series of image from a SimpleITK image.
+
+
+The ImageSeriesWriter is for writing a 3D image as a series of 2D images. A list of names
+for the series of 2D images must be provided, and an exception will be
+generated if the number of file names does not match the size of the
+image in the z-direction.
+
+DICOM series cannot be written with this class, as an exception will
+be generated. To write a DICOM series the individual slices must be
+extracted, proper DICOM tags must be added to the dictionaries, then
+written with the ImageFileWriter.
+
+
+See:
+ itk::simple::WriteImage for the procedural interface
+
+
+C++ includes: sitkImageSeriesWriter.h
+";
+
+%feature("docstring")  itk::simple::ImageSeriesWriter::Execute "
+";
+
+%feature("docstring")  itk::simple::ImageSeriesWriter::Execute "
+";
+
+%feature("docstring")  itk::simple::ImageSeriesWriter::GetName "
+
+return user readable name fo the filter
+
+";
+
+%feature("docstring")  itk::simple::ImageSeriesWriter::ImageSeriesWriter "
+";
+
+%feature("docstring")  itk::simple::ImageSeriesWriter::ToString "
+
+Print ourselves to string
+
+";
+
+
+%feature("docstring") itk::simple::ImportImageFilter "
+
+Compose a 2D or 3D image and return a smart pointer to a SimpleITK
+image.
+
+
+This filter is intended to interface SimpleITK to other image
+processing libraries and applications that may have their own
+representation of an image class. It creates a SimpleITK image which
+shares the bulk data buffer as what is set. SimpleITK will not
+responsible to delete the buffer afterwards, and it buffer must remain
+valid while in use.
+
+
+See:
+ itk::simple::ImportAsInt8, itk::simple::ImportAsUInt8, itk::simple::ImportAsInt16, itk::simple::ImportAsUInt16, itk::simple::ImportAsInt32, itk::simple::ImportAsUInt32, itk::simple::ImportAsInt64, itk::simple::ImportAsUInt64, itk::simple::ImportAsFloat, itk::simple::ImportAsDouble for the procedural interfaces.
+
+
+C++ includes: sitkImportImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ImportImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::ImportImageFilter::GetDirection "
+";
+
+%feature("docstring")  itk::simple::ImportImageFilter::GetName "
+
+return user readable name fo the filter
+
+";
+
+%feature("docstring")  itk::simple::ImportImageFilter::GetOrigin "
+";
+
+%feature("docstring")  itk::simple::ImportImageFilter::GetSize "
+";
+
+%feature("docstring")  itk::simple::ImportImageFilter::GetSpacing "
+";
+
+%feature("docstring")  itk::simple::ImportImageFilter::ImportImageFilter "
+";
+
+%feature("docstring")  itk::simple::ImportImageFilter::SetBufferAsDouble "
+";
+
+%feature("docstring")  itk::simple::ImportImageFilter::SetBufferAsFloat "
+";
+
+%feature("docstring")  itk::simple::ImportImageFilter::SetBufferAsInt16 "
+";
+
+%feature("docstring")  itk::simple::ImportImageFilter::SetBufferAsInt32 "
+";
+
+%feature("docstring")  itk::simple::ImportImageFilter::SetBufferAsInt64 "
+";
+
+%feature("docstring")  itk::simple::ImportImageFilter::SetBufferAsInt8 "
+";
+
+%feature("docstring")  itk::simple::ImportImageFilter::SetBufferAsUInt16 "
+";
+
+%feature("docstring")  itk::simple::ImportImageFilter::SetBufferAsUInt32 "
+";
+
+%feature("docstring")  itk::simple::ImportImageFilter::SetBufferAsUInt64 "
+";
+
+%feature("docstring")  itk::simple::ImportImageFilter::SetBufferAsUInt8 "
+";
+
+%feature("docstring")  itk::simple::ImportImageFilter::SetDirection "
+";
+
+%feature("docstring")  itk::simple::ImportImageFilter::SetOrigin "
+";
+
+%feature("docstring")  itk::simple::ImportImageFilter::SetSize "
+";
+
+%feature("docstring")  itk::simple::ImportImageFilter::SetSpacing "
+";
+
+%feature("docstring")  itk::simple::ImportImageFilter::ToString "
+
+Print ourselves to string
+
+";
+
+
+%feature("docstring") itk::simple::IntensityWindowingImageFilter "
+
+Applies a linear transformation to the intensity levels of the input Image that are inside a user-defined interval. Values below this interval
+are mapped to a constant. Values over the interval are mapped to
+another constant.
+
+
+IntensityWindowingImageFilter applies pixel-wise a linear transformation to the intensity values of
+input image pixels. The linear transformation is defined by the user
+in terms of the minimum and maximum values that the output image
+should have and the lower and upper limits of the intensity window of
+the input image. This operation is very common in visualization, and
+can also be applied as a convenient preprocessing operation for image
+segmentation.
+
+All computations are performed in the precision of the input pixel's
+RealType. Before assigning the computed value to the output pixel.
+
+Wiki Examples:
+
+All Examples
+
+IntensityWindowingImageFilter
+
+See:
+ RescaleIntensityImageFilter
+
+ itk::simple::IntensityWindowing for the procedural interface
+
+ itk::IntensityWindowingImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkIntensityWindowingImageFilter.h
+";
+
+%feature("docstring")  itk::simple::IntensityWindowingImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::IntensityWindowingImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::IntensityWindowingImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::IntensityWindowingImageFilter::GetOutputMaximum "
+
+Set/Get the values of the maximum and minimum intensities of the
+output image.
+
+";
+
+%feature("docstring")  itk::simple::IntensityWindowingImageFilter::GetOutputMinimum "
+
+Set/Get the values of the maximum and minimum intensities of the
+output image.
+
+";
+
+%feature("docstring")  itk::simple::IntensityWindowingImageFilter::GetWindowMaximum "
+
+Set/Get the values of the maximum and minimum intensities of the input
+intensity window.
+
+";
+
+%feature("docstring")  itk::simple::IntensityWindowingImageFilter::GetWindowMinimum "
+
+Set/Get the values of the maximum and minimum intensities of the input
+intensity window.
+
+";
+
+%feature("docstring")  itk::simple::IntensityWindowingImageFilter::IntensityWindowingImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::IntensityWindowingImageFilter::SetOutputMaximum "
+
+Set/Get the values of the maximum and minimum intensities of the
+output image.
+
+";
+
+%feature("docstring")  itk::simple::IntensityWindowingImageFilter::SetOutputMinimum "
+
+Set/Get the values of the maximum and minimum intensities of the
+output image.
+
+";
+
+%feature("docstring")  itk::simple::IntensityWindowingImageFilter::SetWindowMaximum "
+
+Set/Get the values of the maximum and minimum intensities of the input
+intensity window.
+
+";
+
+%feature("docstring")  itk::simple::IntensityWindowingImageFilter::SetWindowMinimum "
+
+Set/Get the values of the maximum and minimum intensities of the input
+intensity window.
+
+";
+
+%feature("docstring")  itk::simple::IntensityWindowingImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::IntensityWindowingImageFilter::~IntensityWindowingImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::IntermodesThresholdImageFilter "
+
+Threshold an image using the Intermodes Threshold.
+
+
+This filter creates a binary thresholded image that separates an image
+into foreground and background components. The filter computes the
+threshold using the IntermodesThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .
+
+
+Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+ Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/10380/3279 or http://www.insight-journal.org/browse/publication/811
+
+
+See:
+ HistogramThresholdImageFilter
+
+ itk::simple::IntermodesThreshold for the procedural interface
+
+ itk::IntermodesThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkIntermodesThresholdImageFilter.h
+";
+
+%feature("docstring")  itk::simple::IntermodesThresholdImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::IntermodesThresholdImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::IntermodesThresholdImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::IntermodesThresholdImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::IntermodesThresholdImageFilter::GetInsideValue "
+
+Get the \"inside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::IntermodesThresholdImageFilter::GetMaskOutput "
+";
+
+%feature("docstring")  itk::simple::IntermodesThresholdImageFilter::GetMaskValue "
+";
+
+%feature("docstring")  itk::simple::IntermodesThresholdImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::IntermodesThresholdImageFilter::GetNumberOfHistogramBins "
+";
+
+%feature("docstring")  itk::simple::IntermodesThresholdImageFilter::GetOutsideValue "
+
+Get the \"outside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::IntermodesThresholdImageFilter::GetThreshold "
+
+Get the computed threshold.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::IntermodesThresholdImageFilter::IntermodesThresholdImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::IntermodesThresholdImageFilter::MaskOutputOff "
+";
+
+%feature("docstring")  itk::simple::IntermodesThresholdImageFilter::MaskOutputOn "
+
+Set the value of MaskOutput to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::IntermodesThresholdImageFilter::SetInsideValue "
+
+Set the \"inside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::IntermodesThresholdImageFilter::SetMaskOutput "
+
+Do you want the output to be masked by the mask used in histogram
+construction. Only relevant if masking is in use.
+
+";
+
+%feature("docstring")  itk::simple::IntermodesThresholdImageFilter::SetMaskValue "
+
+The value in the mask image, if used, indicating voxels that should be
+included. Default is the max of pixel type, as in the
+MaskedImageToHistogramFilter
+
+";
+
+%feature("docstring")  itk::simple::IntermodesThresholdImageFilter::SetNumberOfHistogramBins "
+
+Set/Get the number of histogram bins.
+
+";
+
+%feature("docstring")  itk::simple::IntermodesThresholdImageFilter::SetOutsideValue "
+
+Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.
+
+";
+
+%feature("docstring")  itk::simple::IntermodesThresholdImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::IntermodesThresholdImageFilter::~IntermodesThresholdImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::InverseDeconvolutionImageFilter "
+
+The direct linear inverse deconvolution filter.
+
+
+The inverse filter is the most straightforward deconvolution method.
+Considering that convolution of two images in the spatial domain is
+equivalent to multiplying the Fourier transform of the two images, the
+inverse filter consists of inverting the multiplication. In other
+words, this filter computes the following: \\\\[ hat{F}(\\\\omega) = \\\\begin{cases} G(\\\\omega) / H(\\\\omega)
+& \\\\text{if \\\\f$|H(\\\\omega)| \\\\geq \\\\epsilon\\\\f$} \\\\\\\\
+0 & \\\\text{otherwise} \\\\end{cases} \\\\] where $\\\\hat{F}(\\\\omega)$ is the Fourier transform of the estimate produced by this filter, $G(\\\\omega)$ is the Fourier transform of the input blurred image, $H(\\\\omega)$ is the Fourier transform of the blurring kernel, and $\\\\epsilon$ is a constant real non-negative threshold (called
+KernelZeroMagnitudeThreshold in this filter) that determines when the
+magnitude of a complex number is considered zero.
+
+
+Gaetan Lehmann, Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France
+ Cory Quammen, The University of North Carolina at Chapel Hill
+See:
+ itk::simple::InverseDeconvolution for the procedural interface
+
+ itk::InverseDeconvolutionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkInverseDeconvolutionImageFilter.h
+";
+
+%feature("docstring")  itk::simple::InverseDeconvolutionImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::InverseDeconvolutionImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::InverseDeconvolutionImageFilter::GetBoundaryCondition "
+";
+
+%feature("docstring")  itk::simple::InverseDeconvolutionImageFilter::GetKernelZeroMagnitudeThreshold "
+
+Set/get the threshold value uused to determine whether a frequency of
+the Fourier transform of the blurring kernel is considered to be zero.
+Default value is 1.0e-4.
+
+";
+
+%feature("docstring")  itk::simple::InverseDeconvolutionImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::InverseDeconvolutionImageFilter::GetNormalize "
+";
+
+%feature("docstring")  itk::simple::InverseDeconvolutionImageFilter::GetOutputRegionMode "
+";
+
+%feature("docstring")  itk::simple::InverseDeconvolutionImageFilter::InverseDeconvolutionImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::InverseDeconvolutionImageFilter::NormalizeOff "
+";
+
+%feature("docstring")  itk::simple::InverseDeconvolutionImageFilter::NormalizeOn "
+
+Set the value of Normalize to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::InverseDeconvolutionImageFilter::SetBoundaryCondition "
+";
+
+%feature("docstring")  itk::simple::InverseDeconvolutionImageFilter::SetKernelZeroMagnitudeThreshold "
+
+Set/get the threshold value uused to determine whether a frequency of
+the Fourier transform of the blurring kernel is considered to be zero.
+Default value is 1.0e-4.
+
+";
+
+%feature("docstring")  itk::simple::InverseDeconvolutionImageFilter::SetNormalize "
+
+Normalize the output image by the sum of the kernel components
+
+";
+
+%feature("docstring")  itk::simple::InverseDeconvolutionImageFilter::SetOutputRegionMode "
+";
+
+%feature("docstring")  itk::simple::InverseDeconvolutionImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::InverseDeconvolutionImageFilter::~InverseDeconvolutionImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::InverseDisplacementFieldImageFilter "
+
+Computes the inverse of a displacement field.
+
+
+InverseDisplacementFieldImageFilter takes a displacement field as input and computes the displacement
+field that is its inverse. If the input displacement field was mapping
+coordinates from a space A into a space B, the output of this filter
+will map coordinates from the space B into the space A.
+
+Given that both the input and output displacement field are
+represented as discrete images with pixel type vector, the inverse
+will be only an estimation and will probably not correspond to a
+perfect inverse. The precision of the inverse can be improved at the
+price of increasing the computation time and memory consumption in
+this filter.
+
+The method used for computing the inverse displacement field is to
+subsample the input field using a regular grid and create Kerned-Base
+Spline in which the reference landmarks are the coordinates of the
+deformed point and the target landmarks are the negative of the
+displacement vectors. The kernel-base spline is then used for
+regularly sampling the output space and recover vector values for
+every single pixel.
+
+The subsampling factor used for the regular grid of the input field
+will determine the number of landmarks in the KernelBased spline and
+therefore it will have a dramatic effect on both the precision of
+output displacement field and the computational time required for the
+filter to complete the estimation. A large subsampling factor will
+result in few landmarks in the KernelBased spline, therefore on fast
+computation and low precision. A small subsampling factor will result
+in a large number of landmarks in the KernelBased spline, therefore a
+large memory consumption, long computation time and high precision for
+the inverse estimation.
+
+This filter expects both the input and output images to be of pixel
+type Vector .
+See:
+ itk::simple::InverseDisplacementField for the procedural interface
+
+ itk::InverseDisplacementFieldImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkInverseDisplacementFieldImageFilter.h
+";
+
+%feature("docstring")  itk::simple::InverseDisplacementFieldImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::InverseDisplacementFieldImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::InverseDisplacementFieldImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::InverseDisplacementFieldImageFilter::GetOutputOrigin "
+
+Get the output image origin.
+
+";
+
+%feature("docstring")  itk::simple::InverseDisplacementFieldImageFilter::GetOutputSpacing "
+
+Get the output image spacing.
+
+";
+
+%feature("docstring")  itk::simple::InverseDisplacementFieldImageFilter::GetSize "
+
+Get the size of the output image.
+
+";
+
+%feature("docstring")  itk::simple::InverseDisplacementFieldImageFilter::GetSubsamplingFactor "
+
+Set/Get the factor used for subsampling the input displacement field.
+A large value in this factor will produce a fast computation of the
+inverse field but with low precision. A small value of this factor
+will produce a precise computation of the inverse field at the price
+of large memory consumption and long computational time.
+
+";
+
+%feature("docstring")  itk::simple::InverseDisplacementFieldImageFilter::InverseDisplacementFieldImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::InverseDisplacementFieldImageFilter::SetOutputOrigin "
+
+Set the output image origin.
+
+";
+
+%feature("docstring")  itk::simple::InverseDisplacementFieldImageFilter::SetOutputSpacing "
+
+Set the output image spacing.
+
+";
+
+%feature("docstring")  itk::simple::InverseDisplacementFieldImageFilter::SetReferenceImage "
+
+This methods sets the output size, origin, and direction to that of
+the provided image
+
+";
+
+%feature("docstring")  itk::simple::InverseDisplacementFieldImageFilter::SetSize "
+
+Set the size of the output image.
+
+";
+
+%feature("docstring")  itk::simple::InverseDisplacementFieldImageFilter::SetSubsamplingFactor "
+
+Set/Get the factor used for subsampling the input displacement field.
+A large value in this factor will produce a fast computation of the
+inverse field but with low precision. A small value of this factor
+will produce a precise computation of the inverse field at the price
+of large memory consumption and long computational time.
+
+";
+
+%feature("docstring")  itk::simple::InverseDisplacementFieldImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::InverseDisplacementFieldImageFilter::~InverseDisplacementFieldImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::InverseFFTImageFilter "
+
+Base class for inverse Fast Fourier Transform .
+
+
+This is a base class for the \"inverse\" or \"reverse\" Discrete
+Fourier Transform . This is an abstract base class: the actual implementation is
+provided by the best child available on the system when the object is
+created via the object factory system.
+
+This class transforms a full complex image with Hermitian symmetry
+into its real spatial domain representation. If the input does not
+have Hermitian symmetry, the imaginary component is discarded.
+
+
+See:
+ ForwardFFTImageFilter , InverseFFTImageFilter
+
+ itk::simple::InverseFFT for the procedural interface
+
+ itk::InverseFFTImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkInverseFFTImageFilter.h
+";
+
+%feature("docstring")  itk::simple::InverseFFTImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::InverseFFTImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::InverseFFTImageFilter::InverseFFTImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::InverseFFTImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::InverseFFTImageFilter::~InverseFFTImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::InvertDisplacementFieldImageFilter "
+
+Iteratively estimate the inverse field of a displacement field.
+
+
+
+Nick Tustison
+ Brian Avants
+See:
+ itk::simple::InvertDisplacementField for the procedural interface
+
+ itk::InvertDisplacementFieldImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkInvertDisplacementFieldImageFilter.h
+";
+
+%feature("docstring")  itk::simple::InvertDisplacementFieldImageFilter::EnforceBoundaryConditionOff "
+";
+
+%feature("docstring")  itk::simple::InvertDisplacementFieldImageFilter::EnforceBoundaryConditionOn "
+
+Set the value of EnforceBoundaryCondition to true or false
+respectfully.
+
+";
+
+%feature("docstring")  itk::simple::InvertDisplacementFieldImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::InvertDisplacementFieldImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::InvertDisplacementFieldImageFilter::GetEnforceBoundaryCondition "
+";
+
+%feature("docstring")  itk::simple::InvertDisplacementFieldImageFilter::GetMaxErrorNorm "
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::InvertDisplacementFieldImageFilter::GetMaxErrorToleranceThreshold "
+";
+
+%feature("docstring")  itk::simple::InvertDisplacementFieldImageFilter::GetMaximumNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::InvertDisplacementFieldImageFilter::GetMeanErrorNorm "
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::InvertDisplacementFieldImageFilter::GetMeanErrorToleranceThreshold "
+";
+
+%feature("docstring")  itk::simple::InvertDisplacementFieldImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::InvertDisplacementFieldImageFilter::InvertDisplacementFieldImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::InvertDisplacementFieldImageFilter::SetEnforceBoundaryCondition "
+";
+
+%feature("docstring")  itk::simple::InvertDisplacementFieldImageFilter::SetMaxErrorToleranceThreshold "
+";
+
+%feature("docstring")  itk::simple::InvertDisplacementFieldImageFilter::SetMaximumNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::InvertDisplacementFieldImageFilter::SetMeanErrorToleranceThreshold "
+";
+
+%feature("docstring")  itk::simple::InvertDisplacementFieldImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::InvertDisplacementFieldImageFilter::~InvertDisplacementFieldImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::InvertIntensityImageFilter "
+
+Invert the intensity of an image.
+
+
+InvertIntensityImageFilter inverts intensity of pixels by subtracting pixel value to a maximum
+value. The maximum value can be set with SetMaximum and defaults the
+maximum of input pixel type. This filter can be used to invert, for
+example, a binary image, a distance map, etc.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ IntensityWindowingImageFilter ShiftScaleImageFilter
+Wiki Examples:
+
+All Examples
+
+Invert an image
+See:
+ itk::simple::InvertIntensity for the procedural interface
+
+ itk::InvertIntensityImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkInvertIntensityImageFilter.h
+";
+
+%feature("docstring")  itk::simple::InvertIntensityImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::InvertIntensityImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::InvertIntensityImageFilter::GetMaximum "
+
+Set/Get the maximum intensity value for the inversion.
+
+";
+
+%feature("docstring")  itk::simple::InvertIntensityImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::InvertIntensityImageFilter::InvertIntensityImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::InvertIntensityImageFilter::SetMaximum "
+
+Set/Get the maximum intensity value for the inversion.
+
+";
+
+%feature("docstring")  itk::simple::InvertIntensityImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::InvertIntensityImageFilter::~InvertIntensityImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::IsoContourDistanceImageFilter "
+
+Compute an approximate distance from an interpolated isocontour to the
+close grid points.
+
+
+For standard level set algorithms, it is useful to periodically
+reinitialize the evolving image to prevent numerical accuracy problems
+in computing derivatives. This reinitialization is done by computing a
+signed distance map to the current level set. This class provides the
+first step in this reinitialization by computing an estimate of the
+distance from the interpolated isocontour to the pixels (or voxels)
+that are close to it, i.e. for which the isocontour crosses a segment
+between them and one of their direct neighbors. This class supports
+narrowbanding. If the input narrowband is provided, the algorithm will
+only locate the level set within the input narrowband.
+
+Implementation of this class is based on Fast and Accurate
+Redistancing for Level Set Methods `Krissian K. and Westin C.F.',
+EUROCAST NeuroImaging Workshop Las Palmas Spain, Ninth International
+Conference on Computer Aided Systems Theory , pages 48-51, Feb 2003.
+See:
+ itk::simple::IsoContourDistance for the procedural interface
+
+ itk::IsoContourDistanceImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkIsoContourDistanceImageFilter.h
+";
+
+%feature("docstring")  itk::simple::IsoContourDistanceImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::IsoContourDistanceImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::IsoContourDistanceImageFilter::GetFarValue "
+
+Set/Get the value of the level set to be located. The default value is
+0.
+
+";
+
+%feature("docstring")  itk::simple::IsoContourDistanceImageFilter::GetLevelSetValue "
+
+Set/Get the value of the level set to be located. The default value is
+0.
+
+";
+
+%feature("docstring")  itk::simple::IsoContourDistanceImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::IsoContourDistanceImageFilter::IsoContourDistanceImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::IsoContourDistanceImageFilter::SetFarValue "
+
+Set/Get the value of the level set to be located. The default value is
+0.
+
+";
+
+%feature("docstring")  itk::simple::IsoContourDistanceImageFilter::SetLevelSetValue "
+
+Set/Get the value of the level set to be located. The default value is
+0.
+
+";
+
+%feature("docstring")  itk::simple::IsoContourDistanceImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::IsoContourDistanceImageFilter::~IsoContourDistanceImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::IsoDataThresholdImageFilter "
+
+Threshold an image using the IsoData Threshold.
+
+
+This filter creates a binary thresholded image that separates an image
+into foreground and background components. The filter computes the
+threshold using the IsoDataThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .
+
+
+Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+ Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/10380/3279 or http://www.insight-journal.org/browse/publication/811
+
+
+See:
+ HistogramThresholdImageFilter
+
+ itk::simple::IsoDataThreshold for the procedural interface
+
+ itk::IsoDataThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkIsoDataThresholdImageFilter.h
+";
+
+%feature("docstring")  itk::simple::IsoDataThresholdImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::IsoDataThresholdImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::IsoDataThresholdImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::IsoDataThresholdImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::IsoDataThresholdImageFilter::GetInsideValue "
+
+Get the \"inside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::IsoDataThresholdImageFilter::GetMaskOutput "
+";
+
+%feature("docstring")  itk::simple::IsoDataThresholdImageFilter::GetMaskValue "
+";
+
+%feature("docstring")  itk::simple::IsoDataThresholdImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::IsoDataThresholdImageFilter::GetNumberOfHistogramBins "
+";
+
+%feature("docstring")  itk::simple::IsoDataThresholdImageFilter::GetOutsideValue "
+
+Get the \"outside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::IsoDataThresholdImageFilter::GetThreshold "
+
+Get the computed threshold.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::IsoDataThresholdImageFilter::IsoDataThresholdImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::IsoDataThresholdImageFilter::MaskOutputOff "
+";
+
+%feature("docstring")  itk::simple::IsoDataThresholdImageFilter::MaskOutputOn "
+
+Set the value of MaskOutput to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::IsoDataThresholdImageFilter::SetInsideValue "
+
+Set the \"inside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::IsoDataThresholdImageFilter::SetMaskOutput "
+
+Do you want the output to be masked by the mask used in histogram
+construction. Only relevant if masking is in use.
+
+";
+
+%feature("docstring")  itk::simple::IsoDataThresholdImageFilter::SetMaskValue "
+
+The value in the mask image, if used, indicating voxels that should be
+included. Default is the max of pixel type, as in the
+MaskedImageToHistogramFilter
+
+";
+
+%feature("docstring")  itk::simple::IsoDataThresholdImageFilter::SetNumberOfHistogramBins "
+
+Set/Get the number of histogram bins.
+
+";
+
+%feature("docstring")  itk::simple::IsoDataThresholdImageFilter::SetOutsideValue "
+
+Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.
+
+";
+
+%feature("docstring")  itk::simple::IsoDataThresholdImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::IsoDataThresholdImageFilter::~IsoDataThresholdImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::IsolatedConnectedImageFilter "
+
+Label pixels that are connected to one set of seeds but not another.
+
+
+IsolatedConnectedImageFilter finds the optimal threshold to separate two regions. It has two
+modes, one to separate dark regions surrounded by bright regions by
+automatically finding a minimum isolating upper threshold, and another
+to separate bright regions surrounded by dark regions by automatically
+finding a maximum lower isolating threshold. The mode can be chosen by
+setting FindUpperThresholdOn() /Off(). In both cases, the isolating threshold is retrieved with GetIsolatedValue() .
+
+The algorithm labels pixels with ReplaceValue that are connected to
+Seeds1 AND NOT connected to Seeds2. When finding the threshold to
+separate two dark regions surrounded by bright regions, given a fixed
+lower threshold, the filter adjusts the upper threshold until the two
+sets of seeds are not connected. The algorithm uses a binary search to
+adjust the upper threshold, starting at Upper. The reverse is true for
+finding the threshold to separate two bright regions. Lower defaults
+to the smallest possible value for the InputImagePixelType, and Upper
+defaults to the largest possible value for the InputImagePixelType.
+
+The user can also supply the Lower and Upper values to restrict the
+search. However, if the range is too restrictive, it could happen that
+no isolating threshold can be found between the user specified Lower
+and Upper values. Therefore, unless the user is sure of the bounds to
+set, it is recommended that the user set these values to the lowest
+and highest intensity values in the image, respectively.
+
+The user can specify more than one seed for both regions to separate.
+The algorithm will try find the threshold that ensures that all of the
+first seeds are contained in the resulting segmentation and all of the
+second seeds are not contained in the segmentation.
+
+It is possible that the algorithm may not be able to find the
+isolating threshold because no such threshold exists. The user can
+check for this by querying the GetThresholdingFailed() flag.
+See:
+ itk::simple::IsolatedConnected for the procedural interface
+
+ itk::IsolatedConnectedImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkIsolatedConnectedImageFilter.h
+";
+
+%feature("docstring")  itk::simple::IsolatedConnectedImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::IsolatedConnectedImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::IsolatedConnectedImageFilter::FindUpperThresholdOff "
+";
+
+%feature("docstring")  itk::simple::IsolatedConnectedImageFilter::FindUpperThresholdOn "
+
+Set the value of FindUpperThreshold to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::IsolatedConnectedImageFilter::GetFindUpperThreshold "
+
+Set/Get whether to find an upper threshold (separating two dark
+regions) or a lower threshold (separating two bright regions).
+
+";
+
+%feature("docstring")  itk::simple::IsolatedConnectedImageFilter::GetIsolatedValue "
+
+Get value that isolates the two seeds.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::IsolatedConnectedImageFilter::GetIsolatedValueTolerance "
+
+Set/Get the precision required for the intensity threshold value. The
+default is 1.
+
+";
+
+%feature("docstring")  itk::simple::IsolatedConnectedImageFilter::GetLower "
+
+Set/Get the limit on the lower threshold value. The default is the
+NonpositiveMin() for the InputPixelType.
+
+";
+
+%feature("docstring")  itk::simple::IsolatedConnectedImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::IsolatedConnectedImageFilter::GetReplaceValue "
+
+Set/Get value to replace thresholded pixels. Pixels that lie within
+the thresholds will be replaced with this value. The default is 1.
+
+";
+
+%feature("docstring")  itk::simple::IsolatedConnectedImageFilter::GetSeed1 "
+";
+
+%feature("docstring")  itk::simple::IsolatedConnectedImageFilter::GetSeed2 "
+";
+
+%feature("docstring")  itk::simple::IsolatedConnectedImageFilter::GetThresholdingFailed "
+
+Get the flag that tells whether the algorithm failed to find a
+threshold.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::IsolatedConnectedImageFilter::GetUpper "
+
+Set/Get the limit on the upper threshold value. The default is the
+max() for the InputPixelType.
+
+";
+
+%feature("docstring")  itk::simple::IsolatedConnectedImageFilter::IsolatedConnectedImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::IsolatedConnectedImageFilter::SetFindUpperThreshold "
+
+Set/Get whether to find an upper threshold (separating two dark
+regions) or a lower threshold (separating two bright regions).
+
+";
+
+%feature("docstring")  itk::simple::IsolatedConnectedImageFilter::SetIsolatedValueTolerance "
+
+Set/Get the precision required for the intensity threshold value. The
+default is 1.
+
+";
+
+%feature("docstring")  itk::simple::IsolatedConnectedImageFilter::SetLower "
+
+Set/Get the limit on the lower threshold value. The default is the
+NonpositiveMin() for the InputPixelType.
+
+";
+
+%feature("docstring")  itk::simple::IsolatedConnectedImageFilter::SetReplaceValue "
+
+Set/Get value to replace thresholded pixels. Pixels that lie within
+the thresholds will be replaced with this value. The default is 1.
+
+";
+
+%feature("docstring")  itk::simple::IsolatedConnectedImageFilter::SetSeed1 "
+
+DeprecatedSet seed point 1. This seed will be isolated from Seed2 (if
+possible). All pixels connected to this seed will be replaced with
+ReplaceValue. This method is deprecated, please use AddSeed1() .
+
+";
+
+%feature("docstring")  itk::simple::IsolatedConnectedImageFilter::SetSeed2 "
+
+DeprecatedSet seed point 2. This seed will be isolated from Seed1 (if
+possible). This method is deprecated, please use AddSeed2() .
+
+";
+
+%feature("docstring")  itk::simple::IsolatedConnectedImageFilter::SetUpper "
+
+Set/Get the limit on the upper threshold value. The default is the
+max() for the InputPixelType.
+
+";
+
+%feature("docstring")  itk::simple::IsolatedConnectedImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::IsolatedConnectedImageFilter::~IsolatedConnectedImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::IsolatedWatershedImageFilter "
+
+Isolate watershed basins using two seeds.
+
+
+IsolatedWatershedImageFilter labels pixels with ReplaceValue1 that are in the same watershed basin
+as Seed1 AND NOT the same as Seed2. The filter adjusts the waterlevel
+until the two seeds are not in different basins. The user supplies a
+Watershed threshold. The algorithm uses a binary search to adjust the
+upper waterlevel, starting at UpperValueLimit. UpperValueLimit
+defaults to the 1.0.
+See:
+ itk::simple::IsolatedWatershed for the procedural interface
+
+ itk::IsolatedWatershedImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkIsolatedWatershedImageFilter.h
+";
+
+%feature("docstring")  itk::simple::IsolatedWatershedImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::IsolatedWatershedImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::IsolatedWatershedImageFilter::GetIsolatedValueTolerance "
+
+Set/Get the precision required for the intensity threshold value. The
+default is .001.
+
+";
+
+%feature("docstring")  itk::simple::IsolatedWatershedImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::IsolatedWatershedImageFilter::GetReplaceValue1 "
+
+Set/Get value to replace Seed1(Seed2) pixels, pixels that are within
+the basin that contains Seed1(Seed2) this value. The default is 1(0).
+
+";
+
+%feature("docstring")  itk::simple::IsolatedWatershedImageFilter::GetReplaceValue2 "
+
+Set/Get value to replace Seed1(Seed2) pixels, pixels that are within
+the basin that contains Seed1(Seed2) this value. The default is 1(0).
+
+";
+
+%feature("docstring")  itk::simple::IsolatedWatershedImageFilter::GetSeed1 "
+
+Set seed point 1. This seed will be isolated from Seed2 (if possible).
+All pixels connected to this seed will be replaced with ReplaceValue1.
+
+";
+
+%feature("docstring")  itk::simple::IsolatedWatershedImageFilter::GetSeed2 "
+
+Set seed point 2. This seed will be isolated from Seed1 (if possible).
+All pixels connected to this seed will be replaced with ReplaceValue2.
+
+";
+
+%feature("docstring")  itk::simple::IsolatedWatershedImageFilter::GetThreshold "
+
+Set/Get the Watershed threshold. The default is 0.
+
+";
+
+%feature("docstring")  itk::simple::IsolatedWatershedImageFilter::GetUpperValueLimit "
+
+Set/Get the limit on the upper waterlevel value. The default is 1.0.
+
+";
+
+%feature("docstring")  itk::simple::IsolatedWatershedImageFilter::IsolatedWatershedImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::IsolatedWatershedImageFilter::SetIsolatedValueTolerance "
+
+Set/Get the precision required for the intensity threshold value. The
+default is .001.
+
+";
+
+%feature("docstring")  itk::simple::IsolatedWatershedImageFilter::SetReplaceValue1 "
+
+Set/Get value to replace Seed1(Seed2) pixels, pixels that are within
+the basin that contains Seed1(Seed2) this value. The default is 1(0).
+
+";
+
+%feature("docstring")  itk::simple::IsolatedWatershedImageFilter::SetReplaceValue2 "
+
+Set/Get value to replace Seed1(Seed2) pixels, pixels that are within
+the basin that contains Seed1(Seed2) this value. The default is 1(0).
+
+";
+
+%feature("docstring")  itk::simple::IsolatedWatershedImageFilter::SetSeed1 "
+
+Set seed point 1. This seed will be isolated from Seed2 (if possible).
+All pixels connected to this seed will be replaced with ReplaceValue1.
+
+";
+
+%feature("docstring")  itk::simple::IsolatedWatershedImageFilter::SetSeed2 "
+
+Set seed point 2. This seed will be isolated from Seed1 (if possible).
+All pixels connected to this seed will be replaced with ReplaceValue2.
+
+";
+
+%feature("docstring")  itk::simple::IsolatedWatershedImageFilter::SetThreshold "
+
+Set/Get the Watershed threshold. The default is 0.
+
+";
+
+%feature("docstring")  itk::simple::IsolatedWatershedImageFilter::SetUpperValueLimit "
+
+Set/Get the limit on the upper waterlevel value. The default is 1.0.
+
+";
+
+%feature("docstring")  itk::simple::IsolatedWatershedImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::IsolatedWatershedImageFilter::~IsolatedWatershedImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::IterativeInverseDisplacementFieldImageFilter "
+
+Computes the inverse of a displacement field.
+
+
+IterativeInverseDisplacementFieldImageFilter takes a displacement field as input and computes the displacement
+field that is its inverse. If the input displacement field was mapping
+coordinates from a space A into a space B, the output of this filter
+will map coordinates from the space B into the space A.
+
+The algorithm implemented in this filter uses an iterative method for
+progresively refining the values of the inverse field. Starting from
+the direct field, at every pixel the direct mapping of this point is
+found, and a the nevative of the current displacement is stored in the
+inverse field at the nearest pixel. Then, subsequent iterations verify
+if any of the neigbor pixels provide a better return to the current
+pixel, in which case its value is taken for updating the vector in the
+inverse field.
+
+This method was discussed in the users-list during February 2004.
+
+
+Corinne Mattmann
+
+See:
+ itk::simple::IterativeInverseDisplacementField for the procedural interface
+
+ itk::IterativeInverseDisplacementFieldImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkIterativeInverseDisplacementFieldImageFilter.h
+";
+
+%feature("docstring")  itk::simple::IterativeInverseDisplacementFieldImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::IterativeInverseDisplacementFieldImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::IterativeInverseDisplacementFieldImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::IterativeInverseDisplacementFieldImageFilter::GetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::IterativeInverseDisplacementFieldImageFilter::GetStopValue "
+";
+
+%feature("docstring")  itk::simple::IterativeInverseDisplacementFieldImageFilter::IterativeInverseDisplacementFieldImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::IterativeInverseDisplacementFieldImageFilter::SetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::IterativeInverseDisplacementFieldImageFilter::SetStopValue "
+";
+
+%feature("docstring")  itk::simple::IterativeInverseDisplacementFieldImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::IterativeInverseDisplacementFieldImageFilter::~IterativeInverseDisplacementFieldImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::JoinSeriesImageFilter "
+
+Join N-D images into an (N+1)-D image.
+
+
+This filter is templated over the input image type and the output
+image type. The pixel type of them must be the same and the input
+dimension must be less than the output dimension. When the input
+images are N-dimensinal, they are joined in order and the size of the
+N+1'th dimension of the output is same as the number of the inputs.
+The spacing and the origin (where the first input is placed) for the
+N+1'th dimension is specified in this filter. The output image
+informations for the first N dimensions are taken from the first
+input. Note that all the inputs should have the same information.
+
+
+Hideaki Hiraki
+ Contributed in the users list http://public.kitware.com/pipermail/insight-
+users/2004-February/006542.html
+
+
+See:
+ itk::simple::JoinSeries for the procedural interface
+
+
+C++ includes: sitkJoinSeriesImageFilter.h
+";
+
+%feature("docstring")  itk::simple::JoinSeriesImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::JoinSeriesImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::JoinSeriesImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::JoinSeriesImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::JoinSeriesImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::JoinSeriesImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::JoinSeriesImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::JoinSeriesImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::JoinSeriesImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::JoinSeriesImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::JoinSeriesImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::JoinSeriesImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::JoinSeriesImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::JoinSeriesImageFilter::GetOrigin "
+
+Set/Get origin of the new dimension
+
+";
+
+%feature("docstring")  itk::simple::JoinSeriesImageFilter::GetSpacing "
+
+Set/Get spacing of the new dimension
+
+";
+
+%feature("docstring")  itk::simple::JoinSeriesImageFilter::JoinSeriesImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::JoinSeriesImageFilter::SetOrigin "
+
+Set/Get origin of the new dimension
+
+";
+
+%feature("docstring")  itk::simple::JoinSeriesImageFilter::SetSpacing "
+
+Set/Get spacing of the new dimension
+
+";
+
+%feature("docstring")  itk::simple::JoinSeriesImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::JoinSeriesImageFilter::~JoinSeriesImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::KittlerIllingworthThresholdImageFilter "
+
+Threshold an image using the KittlerIllingworth Threshold.
+
+
+This filter creates a binary thresholded image that separates an image
+into foreground and background components. The filter computes the
+threshold using the KittlerIllingworthThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .
+
+
+Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+ Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/10380/3279 or http://www.insight-journal.org/browse/publication/811
+
+
+See:
+ HistogramThresholdImageFilter
+
+ itk::simple::KittlerIllingworthThreshold for the procedural interface
+
+ itk::KittlerIllingworthThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkKittlerIllingworthThresholdImageFilter.h
+";
+
+%feature("docstring")  itk::simple::KittlerIllingworthThresholdImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::KittlerIllingworthThresholdImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::KittlerIllingworthThresholdImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::KittlerIllingworthThresholdImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::KittlerIllingworthThresholdImageFilter::GetInsideValue "
+
+Get the \"inside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::KittlerIllingworthThresholdImageFilter::GetMaskOutput "
+";
+
+%feature("docstring")  itk::simple::KittlerIllingworthThresholdImageFilter::GetMaskValue "
+";
+
+%feature("docstring")  itk::simple::KittlerIllingworthThresholdImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::KittlerIllingworthThresholdImageFilter::GetNumberOfHistogramBins "
+";
+
+%feature("docstring")  itk::simple::KittlerIllingworthThresholdImageFilter::GetOutsideValue "
+
+Get the \"outside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::KittlerIllingworthThresholdImageFilter::GetThreshold "
+
+Get the computed threshold.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::KittlerIllingworthThresholdImageFilter::KittlerIllingworthThresholdImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::KittlerIllingworthThresholdImageFilter::MaskOutputOff "
+";
+
+%feature("docstring")  itk::simple::KittlerIllingworthThresholdImageFilter::MaskOutputOn "
+
+Set the value of MaskOutput to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::KittlerIllingworthThresholdImageFilter::SetInsideValue "
+
+Set the \"inside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::KittlerIllingworthThresholdImageFilter::SetMaskOutput "
+
+Do you want the output to be masked by the mask used in histogram
+construction. Only relevant if masking is in use.
+
+";
+
+%feature("docstring")  itk::simple::KittlerIllingworthThresholdImageFilter::SetMaskValue "
+
+The value in the mask image, if used, indicating voxels that should be
+included. Default is the max of pixel type, as in the
+MaskedImageToHistogramFilter
+
+";
+
+%feature("docstring")  itk::simple::KittlerIllingworthThresholdImageFilter::SetNumberOfHistogramBins "
+
+Set/Get the number of histogram bins.
+
+";
+
+%feature("docstring")  itk::simple::KittlerIllingworthThresholdImageFilter::SetOutsideValue "
+
+Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.
+
+";
+
+%feature("docstring")  itk::simple::KittlerIllingworthThresholdImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::KittlerIllingworthThresholdImageFilter::~KittlerIllingworthThresholdImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::LabelContourImageFilter "
+
+Labels the pixels on the border of the objects in a labeled image.
+
+
+LabelContourImageFilter takes a labeled image as input, where the pixels in the objects are
+the pixels with a value different of the BackgroundValue. Only the
+pixels on the contours of the objects are kept. The pixels not on the
+border are changed to BackgroundValue. The labels of the object are
+the same in the input and in the output image.
+
+The connectivity can be changed to minimum or maximum connectivity
+with SetFullyConnected() . Full connectivity produces thicker contours.
+
+https://hdl.handle.net/1926/1352
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ BinaryContourImageFilter
+Wiki Examples:
+
+All Examples
+
+Label the contours of connected components
+See:
+ itk::simple::LabelContour for the procedural interface
+
+ itk::LabelContourImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkLabelContourImageFilter.h
+";
+
+%feature("docstring")  itk::simple::LabelContourImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::LabelContourImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelContourImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::LabelContourImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::LabelContourImageFilter::GetBackgroundValue "
+
+Set/Get the background value used to identify the objects and mark the
+pixels not on the border of the objects.
+
+";
+
+%feature("docstring")  itk::simple::LabelContourImageFilter::GetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff.
+For objects that are 1 pixel wide, use FullyConnectedOn.
+
+
+";
+
+%feature("docstring")  itk::simple::LabelContourImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::LabelContourImageFilter::LabelContourImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelContourImageFilter::SetBackgroundValue "
+
+Set/Get the background value used to identify the objects and mark the
+pixels not on the border of the objects.
+
+";
+
+%feature("docstring")  itk::simple::LabelContourImageFilter::SetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff.
+For objects that are 1 pixel wide, use FullyConnectedOn.
+
+
+";
+
+%feature("docstring")  itk::simple::LabelContourImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::LabelContourImageFilter::~LabelContourImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::LabelImageToLabelMapFilter "
+
+convert a labeled image to a label collection image
+
+
+LabelImageToLabelMapFilter converts a label image to a label collection image. The labels are
+the same in the input and the output image.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+See:
+ BinaryImageToLabelMapFilter , LabelMapToLabelImageFilter
+Wiki Examples:
+
+All Examples
+
+Convert an itk::Image consisting of labeled regions to a LabelMap
+See:
+ itk::simple::LabelImageToLabelMapFilter for the procedural interface
+
+ itk::LabelImageToLabelMapFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkLabelImageToLabelMapFilter.h
+";
+
+%feature("docstring")  itk::simple::LabelImageToLabelMapFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::LabelImageToLabelMapFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelImageToLabelMapFilter::GetBackgroundValue "
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+";
+
+%feature("docstring")  itk::simple::LabelImageToLabelMapFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::LabelImageToLabelMapFilter::LabelImageToLabelMapFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelImageToLabelMapFilter::SetBackgroundValue "
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+";
+
+%feature("docstring")  itk::simple::LabelImageToLabelMapFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::LabelImageToLabelMapFilter::~LabelImageToLabelMapFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::LabelIntensityStatisticsImageFilter "
+
+a convenient class to convert a label image to a label map and valuate
+the statistics attributes at once
+
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+See:
+ StatisticsLabelObject , LabelStatisticsOpeningImageFilter , LabelStatisticsOpeningImageFilter
+
+ itk::LabelImageToStatisticsLabelMapFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLabelIntensityStatisticsImageFilter.h
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::ComputeFeretDiameterOff "
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::ComputeFeretDiameterOn "
+
+Set the value of ComputeFeretDiameter to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::ComputePerimeterOff "
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::ComputePerimeterOn "
+
+Set the value of ComputePerimeter to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetBackgroundValue "
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetBoundingBox "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetCenterOfGravity "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetCentroid "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetComputeFeretDiameter "
+
+Set/Get whether the maximum Feret diameter should be computed or not.
+The defaut value is false, because of the high computation time
+required.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetComputePerimeter "
+
+Set/Get whether the perimeter should be computed or not. The defaut
+value is false, because of the high computation time required.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetElongation "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetEquivalentEllipsoidDiameter "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetEquivalentSphericalPerimeter "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetEquivalentSphericalRadius "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetFeretDiameter "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetFlatness "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetKurtosis "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetLabels "
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetMaximum "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetMaximumIndex "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetMean "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetMedian "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetMinimum "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetMinimumIndex "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetNumberOfBins "
+
+Set/Get the number of bins in the histogram. Note that the histogram
+is used to compute the median value, and that this option may have an
+effect on the value of the median.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetNumberOfLabels "
+
+Return the number of labels after execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetNumberOfPixels "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetNumberOfPixelsOnBorder "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetPerimeter "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetPerimeterOnBorder "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetPerimeterOnBorderRatio "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetPhysicalSize "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetPrincipalAxes "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetPrincipalMoments "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetRoundness "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetSkewness "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetStandardDeviation "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetSum "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetVariance "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetWeightedElongation "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetWeightedFlatness "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetWeightedPrincipalAxes "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::GetWeightedPrincipalMoments "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::HasLabel "
+
+Does the specified label exist? Can only be called after a call a call
+to Update().
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::LabelIntensityStatisticsImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::SetBackgroundValue "
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::SetComputeFeretDiameter "
+
+Set/Get whether the maximum Feret diameter should be computed or not.
+The defaut value is false, because of the high computation time
+required.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::SetComputePerimeter "
+
+Set/Get whether the perimeter should be computed or not. The defaut
+value is false, because of the high computation time required.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::SetNumberOfBins "
+
+Set/Get the number of bins in the histogram. Note that the histogram
+is used to compute the median value, and that this option may have an
+effect on the value of the median.
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::LabelIntensityStatisticsImageFilter::~LabelIntensityStatisticsImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::LabelMapContourOverlayImageFilter "
+
+Apply a colormap to the contours (outlines) of each object in a label
+map and superimpose it on top of the feature image.
+
+
+The feature image is typically the image from which the labeling was
+produced. Use the SetInput function to set the LabelMap , and the SetFeatureImage function to set the feature image.
+
+Apply a colormap to a label map and put it on top of the input image.
+The set of colors is a good selection of distinct colors. The opacity
+of the label map can be defined by the user. A background label
+produce a gray pixel with the same intensity than the input one.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+See:
+ LabelMapOverlayImageFilter , LabelOverlayImageFilter , LabelOverlayFunctor
+
+ LabelMapToBinaryImageFilter , LabelMapToLabelImageFilter ,
+Wiki Examples:
+
+All Examples
+
+Color the boundaries of labeled regions in an image
+See:
+ itk::simple::LabelMapContourOverlay for the procedural interface
+
+ itk::LabelMapContourOverlayImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkLabelMapContourOverlayImageFilter.h
+";
+
+%feature("docstring")  itk::simple::LabelMapContourOverlayImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::LabelMapContourOverlayImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelMapContourOverlayImageFilter::GetColormap "
+";
+
+%feature("docstring")  itk::simple::LabelMapContourOverlayImageFilter::GetContourThickness "
+
+Set/Get the contour thickness - 1 by default.
+
+";
+
+%feature("docstring")  itk::simple::LabelMapContourOverlayImageFilter::GetContourType "
+
+Set/Get the overlay type - CONTOUR is used by default.
+
+";
+
+%feature("docstring")  itk::simple::LabelMapContourOverlayImageFilter::GetDilationRadius "
+
+Set/Get the object dilation radius - 0 by default.
+
+";
+
+%feature("docstring")  itk::simple::LabelMapContourOverlayImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::LabelMapContourOverlayImageFilter::GetOpacity "
+
+Set/Get the opacity of the colored label image. The value must be
+between 0 and 1
+
+";
+
+%feature("docstring")  itk::simple::LabelMapContourOverlayImageFilter::GetPriority "
+
+Set/Get the object priority - HIGH_LABEL_ON_TOP by default.
+
+";
+
+%feature("docstring")  itk::simple::LabelMapContourOverlayImageFilter::GetSliceDimension "
+
+Set/Get the slice dimension - defaults to image dimension - 1.
+
+";
+
+%feature("docstring")  itk::simple::LabelMapContourOverlayImageFilter::LabelMapContourOverlayImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelMapContourOverlayImageFilter::SetColormap "
+";
+
+%feature("docstring")  itk::simple::LabelMapContourOverlayImageFilter::SetContourThickness "
+
+Set/Get the contour thickness - 1 by default.
+
+";
+
+%feature("docstring")  itk::simple::LabelMapContourOverlayImageFilter::SetContourType "
+
+Set/Get the overlay type - CONTOUR is used by default.
+
+";
+
+%feature("docstring")  itk::simple::LabelMapContourOverlayImageFilter::SetDilationRadius "
+
+Set/Get the object dilation radius - 0 by default.
+
+";
+
+%feature("docstring")  itk::simple::LabelMapContourOverlayImageFilter::SetDilationRadius "
+
+Set the values of the DilationRadius vector all to value
+
+";
+
+%feature("docstring")  itk::simple::LabelMapContourOverlayImageFilter::SetOpacity "
+
+Set/Get the opacity of the colored label image. The value must be
+between 0 and 1
+
+";
+
+%feature("docstring")  itk::simple::LabelMapContourOverlayImageFilter::SetPriority "
+
+Set/Get the object priority - HIGH_LABEL_ON_TOP by default.
+
+";
+
+%feature("docstring")  itk::simple::LabelMapContourOverlayImageFilter::SetSliceDimension "
+
+Set/Get the slice dimension - defaults to image dimension - 1.
+
+";
+
+%feature("docstring")  itk::simple::LabelMapContourOverlayImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::LabelMapContourOverlayImageFilter::~LabelMapContourOverlayImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::LabelMapMaskImageFilter "
+
+Mask and image with a LabelMap .
+
+
+LabelMapMaskImageFilter mask the content of an input image according to the content of the
+input LabelMap . The masked pixel of the input image are set to the BackgroundValue. LabelMapMaskImageFilter can keep the input image for one label only, with Negated = false
+(the default) or it can mask the input image for a single label, when
+Negated equals true. In Both cases, the label is set with SetLabel() .
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+See:
+ LabelMapToBinaryImageFilter , LabelMapToLabelImageFilter
+
+ itk::simple::LabelMapMask for the procedural interface
+
+ itk::LabelMapMaskImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLabelMapMaskImageFilter.h
+";
+
+%feature("docstring")  itk::simple::LabelMapMaskImageFilter::CropOff "
+";
+
+%feature("docstring")  itk::simple::LabelMapMaskImageFilter::CropOn "
+
+Set the value of Crop to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::LabelMapMaskImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::LabelMapMaskImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelMapMaskImageFilter::GetBackgroundValue "
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::ZeroValue() .
+
+";
+
+%feature("docstring")  itk::simple::LabelMapMaskImageFilter::GetCrop "
+
+Set/Get whether the image size should be adjusted to the masked image
+or not.
+
+";
+
+%feature("docstring")  itk::simple::LabelMapMaskImageFilter::GetCropBorder "
+
+Set/Get the boder added to the mask before the crop. The default is 0
+on all the axes.
+
+";
+
+%feature("docstring")  itk::simple::LabelMapMaskImageFilter::GetLabel "
+
+The label to mask or to not mask, depending on the value of the
+Negated ivar.
+
+";
+
+%feature("docstring")  itk::simple::LabelMapMaskImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::LabelMapMaskImageFilter::GetNegated "
+
+Set/Get whether the Label should be masked or not.
+
+";
+
+%feature("docstring")  itk::simple::LabelMapMaskImageFilter::LabelMapMaskImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelMapMaskImageFilter::NegatedOff "
+";
+
+%feature("docstring")  itk::simple::LabelMapMaskImageFilter::NegatedOn "
+
+Set the value of Negated to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::LabelMapMaskImageFilter::SetBackgroundValue "
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::ZeroValue() .
+
+";
+
+%feature("docstring")  itk::simple::LabelMapMaskImageFilter::SetCrop "
+
+Set/Get whether the image size should be adjusted to the masked image
+or not.
+
+";
+
+%feature("docstring")  itk::simple::LabelMapMaskImageFilter::SetCropBorder "
+
+Set/Get the boder added to the mask before the crop. The default is 0
+on all the axes.
+
+";
+
+%feature("docstring")  itk::simple::LabelMapMaskImageFilter::SetCropBorder "
+
+Set the values of the CropBorder vector all to value
+
+";
+
+%feature("docstring")  itk::simple::LabelMapMaskImageFilter::SetLabel "
+
+The label to mask or to not mask, depending on the value of the
+Negated ivar.
+
+";
+
+%feature("docstring")  itk::simple::LabelMapMaskImageFilter::SetNegated "
+
+Set/Get whether the Label should be masked or not.
+
+";
+
+%feature("docstring")  itk::simple::LabelMapMaskImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::LabelMapMaskImageFilter::~LabelMapMaskImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::LabelMapOverlayImageFilter "
+
+Apply a colormap to a label map and superimpose it on an image.
+
+
+Apply a colormap to a label map and put it on top of the feature
+image. The feature image is typically the image from which the
+labeling was produced. Use the SetInput function to set the LabelMap , and the SetFeatureImage function to set the feature image.
+
+The set of colors is a good selection of distinct colors. The opacity
+of the label map can be defined by the user. A background label
+produce a gray pixel with the same intensity than the input one.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+See:
+ LabelOverlayImageFilter , LabelOverlayFunctor
+
+ LabelMapToRGBImageFilter , LabelMapToBinaryImageFilter , LabelMapToLabelImageFilter
+
+ itk::simple::LabelMapOverlay for the procedural interface
+
+ itk::LabelMapOverlayImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLabelMapOverlayImageFilter.h
+";
+
+%feature("docstring")  itk::simple::LabelMapOverlayImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::LabelMapOverlayImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelMapOverlayImageFilter::GetColormap "
+";
+
+%feature("docstring")  itk::simple::LabelMapOverlayImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::LabelMapOverlayImageFilter::GetOpacity "
+
+Set/Get the opacity of the colored label image. The value must be
+between 0 and 1
+
+";
+
+%feature("docstring")  itk::simple::LabelMapOverlayImageFilter::LabelMapOverlayImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelMapOverlayImageFilter::SetColormap "
+";
+
+%feature("docstring")  itk::simple::LabelMapOverlayImageFilter::SetOpacity "
+
+Set/Get the opacity of the colored label image. The value must be
+between 0 and 1
+
+";
+
+%feature("docstring")  itk::simple::LabelMapOverlayImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::LabelMapOverlayImageFilter::~LabelMapOverlayImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::LabelMapToBinaryImageFilter "
+
+Convert a LabelMap to a binary image.
+
+
+LabelMapToBinaryImageFilter to a binary image. All the objects in the image are used as
+foreground. The background values of the original binary image can be
+restored by passing this image to the filter with the
+SetBackgroundImage() method.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ LabelMapToLabelImageFilter , LabelMapMaskImageFilter
+
+ itk::simple::LabelMapToBinary for the procedural interface
+
+ itk::LabelMapToBinaryImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLabelMapToBinaryImageFilter.h
+";
+
+%feature("docstring")  itk::simple::LabelMapToBinaryImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::LabelMapToBinaryImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelMapToBinaryImageFilter::GetBackgroundValue "
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+";
+
+%feature("docstring")  itk::simple::LabelMapToBinaryImageFilter::GetForegroundValue "
+
+Set/Get the value used as \"foreground\" in the output image. Defaults
+to NumericTraits<PixelType>::max() .
+
+";
+
+%feature("docstring")  itk::simple::LabelMapToBinaryImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::LabelMapToBinaryImageFilter::LabelMapToBinaryImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelMapToBinaryImageFilter::SetBackgroundValue "
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+";
+
+%feature("docstring")  itk::simple::LabelMapToBinaryImageFilter::SetForegroundValue "
+
+Set/Get the value used as \"foreground\" in the output image. Defaults
+to NumericTraits<PixelType>::max() .
+
+";
+
+%feature("docstring")  itk::simple::LabelMapToBinaryImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::LabelMapToBinaryImageFilter::~LabelMapToBinaryImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::LabelMapToLabelImageFilter "
+
+Converts a LabelMap to a labeled image.
+
+
+LabelMapToBinaryImageFilter to a label image.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+See:
+ LabelMapToBinaryImageFilter , LabelMapMaskImageFilter
+Wiki Examples:
+
+All Examples
+
+Convert a LabelMap to a normal image with different values representing each region
+See:
+ itk::simple::LabelMapToLabel for the procedural interface
+
+ itk::LabelMapToLabelImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkLabelMapToLabelImageFilter.h
+";
+
+%feature("docstring")  itk::simple::LabelMapToLabelImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::LabelMapToLabelImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::LabelMapToLabelImageFilter::LabelMapToLabelImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelMapToLabelImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::LabelMapToLabelImageFilter::~LabelMapToLabelImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::LabelMapToRGBImageFilter "
+
+Convert a LabelMap to a colored image.
+
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+See:
+ LabelToRGBImageFilter , LabelToRGBFunctor
+
+ LabelMapOverlayImageFilter , LabelMapToBinaryImageFilter , LabelMapMaskImageFilter
+
+ itk::simple::LabelMapToRGB for the procedural interface
+
+ itk::LabelMapToRGBImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLabelMapToRGBImageFilter.h
+";
+
+%feature("docstring")  itk::simple::LabelMapToRGBImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::LabelMapToRGBImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelMapToRGBImageFilter::GetColormap "
+";
+
+%feature("docstring")  itk::simple::LabelMapToRGBImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::LabelMapToRGBImageFilter::LabelMapToRGBImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelMapToRGBImageFilter::SetColormap "
+";
+
+%feature("docstring")  itk::simple::LabelMapToRGBImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::LabelMapToRGBImageFilter::~LabelMapToRGBImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::LabelOverlapMeasuresImageFilter "
+
+Computes overlap measures between the set same set of labels of pixels
+of two images. Background is assumed to be 0.
+
+
+This code was contributed in the Insight Journal paper: \"Introducing
+Dice, Jaccard, and Other Label Overlap Measures To ITK\" by Nicholas
+J. Tustison, James C. Gee https://hdl.handle.net/10380/3141 http://www.insight-journal.org/browse/publication/707
+
+
+Nicholas J. Tustison
+
+See:
+ LabelOverlapMeasuresImageFilter
+
+ itk::LabelOverlapMeasuresImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLabelOverlapMeasuresImageFilter.h
+";
+
+%feature("docstring")  itk::simple::LabelOverlapMeasuresImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::LabelOverlapMeasuresImageFilter::GetDiceCoefficient "
+
+Get the mean overlap (Dice coefficient) for the specified individual
+label.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelOverlapMeasuresImageFilter::GetFalseNegativeError "
+
+Get the false negative error for the specified individual label.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelOverlapMeasuresImageFilter::GetFalsePositiveError "
+
+Get the false positive error for the specified individual label.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelOverlapMeasuresImageFilter::GetJaccardCoefficient "
+
+Get the union overlap (Jaccard coefficient) for the specified
+individual label.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelOverlapMeasuresImageFilter::GetMeanOverlap "
+
+Get the mean overlap (Dice coefficient) for the specified individual
+label.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelOverlapMeasuresImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::LabelOverlapMeasuresImageFilter::GetUnionOverlap "
+
+Get the union overlap (Jaccard coefficient) for the specified
+individual label.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelOverlapMeasuresImageFilter::GetVolumeSimilarity "
+
+Get the volume similarity for the specified individual label.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelOverlapMeasuresImageFilter::LabelOverlapMeasuresImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelOverlapMeasuresImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::LabelOverlapMeasuresImageFilter::~LabelOverlapMeasuresImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::LabelOverlayImageFilter "
+
+Apply a colormap to a label image and put it on top of the input
+image.
+
+
+Apply a colormap to a label image and put it on top of the input
+image. The set of colors is a good selection of distinct colors. The
+opacity of the label image can be defined by the user. The user can
+also choose if the want to use a background and which label value is
+the background. A background label produce a gray pixel with the same
+intensity than the input one.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This class was contributed to the Insight Journal https://hdl.handle.net/1926/172
+
+
+See:
+ LabelToRGBImageFilter
+
+ LabelMapOverlayImageFilter , LabelOverlayFunctor
+Wiki Examples:
+
+All Examples
+
+Overlay a LabelMap on an image
+See:
+ itk::simple::LabelOverlay for the procedural interface
+
+ itk::LabelOverlayImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkLabelOverlayImageFilter.h
+";
+
+%feature("docstring")  itk::simple::LabelOverlayImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::LabelOverlayImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelOverlayImageFilter::GetBackgroundValue "
+
+Set/Get the background value
+
+";
+
+%feature("docstring")  itk::simple::LabelOverlayImageFilter::GetColormap "
+";
+
+%feature("docstring")  itk::simple::LabelOverlayImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::LabelOverlayImageFilter::GetOpacity "
+
+Set/Get the opacity of the colored label image. The value must be
+between 0 and 1
+
+";
+
+%feature("docstring")  itk::simple::LabelOverlayImageFilter::LabelOverlayImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelOverlayImageFilter::SetBackgroundValue "
+
+Set/Get the background value
+
+";
+
+%feature("docstring")  itk::simple::LabelOverlayImageFilter::SetColormap "
+";
+
+%feature("docstring")  itk::simple::LabelOverlayImageFilter::SetOpacity "
+
+Set/Get the opacity of the colored label image. The value must be
+between 0 and 1
+
+";
+
+%feature("docstring")  itk::simple::LabelOverlayImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::LabelOverlayImageFilter::~LabelOverlayImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::LabelShapeStatisticsImageFilter "
+
+Converts a label image to a label map and valuates the shape
+attributes.
+
+
+A convenient class that converts a label image to a label map and
+valuates the shape attribute at once.
+
+This implementation was taken from the Insight Journal paper:
+
+https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ ShapeLabelObject , LabelShapeOpeningImageFilter , LabelStatisticsOpeningImageFilter
+Wiki Examples:
+
+All Examples
+
+Convert an itk::Image consisting of labeled regions to a ShapeLabelMap
+
+See:
+ itk::LabelImageToShapeLabelMapFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLabelShapeStatisticsImageFilter.h
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::ComputeFeretDiameterOff "
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::ComputeFeretDiameterOn "
+
+Set the value of ComputeFeretDiameter to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::ComputePerimeterOff "
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::ComputePerimeterOn "
+
+Set the value of ComputePerimeter to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::GetBackgroundValue "
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::GetBoundingBox "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::GetCentroid "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::GetComputeFeretDiameter "
+
+Set/Get whether the maximum Feret diameter should be computed or not.
+Default value is false, because of the high computation time required.
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::GetComputePerimeter "
+
+Set/Get whether the perimeter should be computed or not. Default value
+is false, because of the high computation time required.
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::GetElongation "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::GetEquivalentEllipsoidDiameter "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::GetEquivalentSphericalPerimeter "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::GetEquivalentSphericalRadius "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::GetFeretDiameter "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::GetFlatness "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::GetLabels "
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::GetNumberOfLabels "
+
+Return the number of labels after execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::GetNumberOfPixels "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::GetNumberOfPixelsOnBorder "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::GetPerimeter "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::GetPerimeterOnBorder "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::GetPerimeterOnBorderRatio "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::GetPhysicalSize "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::GetPrincipalAxes "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::GetPrincipalMoments "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::GetRoundness "
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::HasLabel "
+
+Does the specified label exist? Can only be called after a call a call
+to Update().
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::LabelShapeStatisticsImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::SetBackgroundValue "
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::SetComputeFeretDiameter "
+
+Set/Get whether the maximum Feret diameter should be computed or not.
+Default value is false, because of the high computation time required.
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::SetComputePerimeter "
+
+Set/Get whether the perimeter should be computed or not. Default value
+is false, because of the high computation time required.
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::LabelShapeStatisticsImageFilter::~LabelShapeStatisticsImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::LabelStatisticsImageFilter "
+
+Given an intensity image and a label map, compute min, max, variance
+and mean of the pixels associated with each label or segment.
+
+
+LabelStatisticsImageFilter computes the minimum, maximum, sum, mean, median, variance and sigma
+of regions of an intensity image, where the regions are defined via a
+label map (a second input). The label image should be integral type.
+The filter needs all of its input image. It behaves as a filter with
+an input and output. Thus it can be inserted in a pipline with other
+filters and the statistics will only be recomputed if a downstream
+filter changes.
+
+Optionally, the filter also computes intensity histograms on each
+object. If histograms are enabled, a median intensity value can also
+be computed, although its accuracy is limited to the bin width of the
+histogram. If histograms are not enabled, the median returns zero.
+
+The filter passes its intensity input through unmodified. The filter
+is threaded. It computes statistics in each thread then combines them
+in its AfterThreadedGenerate method.
+
+Wiki Examples:
+
+All Examples
+
+Get statistical properties of labeled regions in an image
+
+See:
+ itk::LabelStatisticsImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLabelStatisticsImageFilter.h
+";
+
+%feature("docstring")  itk::simple::LabelStatisticsImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::LabelStatisticsImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelStatisticsImageFilter::GetBoundingBox "
+
+Return the computed bounding box for a label.
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelStatisticsImageFilter::GetCount "
+
+Return the number of pixels for a label.
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelStatisticsImageFilter::GetLabels "
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelStatisticsImageFilter::GetMaximum "
+
+Return the computed Maximum for a label.
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelStatisticsImageFilter::GetMean "
+
+Return the computed Mean for a label.
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelStatisticsImageFilter::GetMedian "
+
+Return the computed Median for a label. Requires histograms to be
+enabled!
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelStatisticsImageFilter::GetMinimum "
+
+Return the computed Minimum for a label.
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelStatisticsImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::LabelStatisticsImageFilter::GetNumberOfLabels "
+
+Return the number of labels after execution .
+
+";
+
+%feature("docstring")  itk::simple::LabelStatisticsImageFilter::GetSigma "
+
+Return the computed Standard Deviation for a label.
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelStatisticsImageFilter::GetSum "
+
+Return the compute Sum for a label.
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelStatisticsImageFilter::GetUseHistograms "
+";
+
+%feature("docstring")  itk::simple::LabelStatisticsImageFilter::GetVariance "
+
+Return the computed Variance for a label.
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::LabelStatisticsImageFilter::HasLabel "
+
+Does the specified label exist? Can only be called after a call a call
+to Update().
+
+";
+
+%feature("docstring")  itk::simple::LabelStatisticsImageFilter::LabelStatisticsImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelStatisticsImageFilter::SetUseHistograms "
+";
+
+%feature("docstring")  itk::simple::LabelStatisticsImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::LabelStatisticsImageFilter::UseHistogramsOff "
+";
+
+%feature("docstring")  itk::simple::LabelStatisticsImageFilter::UseHistogramsOn "
+
+Set the value of UseHistograms to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::LabelStatisticsImageFilter::~LabelStatisticsImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::LabelToRGBImageFilter "
+
+Apply a colormap to a label image.
+
+
+Apply a colormap to a label image. The set of colors is a good
+selection of distinct colors. The user can choose to use a background
+value. In that case, a gray pixel with the same intensity than the
+background label is produced.
+
+This code was contributed in the Insight Journal paper: \"The
+watershed transform in ITK - discussion and new developments\" by
+Beare R., Lehmann G. https://hdl.handle.net/1926/202 http://www.insight-journal.org/browse/publication/92
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+
+
+See:
+ LabelOverlayImageFilter
+
+ LabelMapToRGBImageFilter , LabelToRGBFunctor, ScalarToRGBPixelFunctor
+
+ itk::simple::LabelToRGB for the procedural interface
+
+ itk::LabelToRGBImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLabelToRGBImageFilter.h
+";
+
+%feature("docstring")  itk::simple::LabelToRGBImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::LabelToRGBImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelToRGBImageFilter::GetBackgroundValue "
+
+Set/Get the background value
+
+";
+
+%feature("docstring")  itk::simple::LabelToRGBImageFilter::GetColormap "
+";
+
+%feature("docstring")  itk::simple::LabelToRGBImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::LabelToRGBImageFilter::LabelToRGBImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelToRGBImageFilter::SetBackgroundValue "
+
+Set/Get the background value
+
+";
+
+%feature("docstring")  itk::simple::LabelToRGBImageFilter::SetColormap "
+";
+
+%feature("docstring")  itk::simple::LabelToRGBImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::LabelToRGBImageFilter::~LabelToRGBImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::LabelUniqueLabelMapFilter "
+
+Make sure that the objects are not overlapping.
+
+
+AttributeUniqueLabelMapFilter search the overlapping zones in the overlapping objects and keeps
+only a single object on all the pixels of the image. The object to
+keep is selected according to their label.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+See:
+ AttributeLabelObject
+
+ itk::simple::LabelUniqueLabelMapFilter for the procedural interface
+
+ itk::LabelUniqueLabelMapFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLabelUniqueLabelMapFilter.h
+";
+
+%feature("docstring")  itk::simple::LabelUniqueLabelMapFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::LabelUniqueLabelMapFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelUniqueLabelMapFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::LabelUniqueLabelMapFilter::GetReverseOrdering "
+";
+
+%feature("docstring")  itk::simple::LabelUniqueLabelMapFilter::LabelUniqueLabelMapFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelUniqueLabelMapFilter::ReverseOrderingOff "
+";
+
+%feature("docstring")  itk::simple::LabelUniqueLabelMapFilter::ReverseOrderingOn "
+
+Set the value of ReverseOrdering to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::LabelUniqueLabelMapFilter::SetReverseOrdering "
+";
+
+%feature("docstring")  itk::simple::LabelUniqueLabelMapFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::LabelUniqueLabelMapFilter::~LabelUniqueLabelMapFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::LabelVotingImageFilter "
+
+This filter performs pixelwise voting among an arbitrary number of
+input images, where each of them represents a segmentation of the same
+scene (i.e., image).
+
+
+Label voting is a simple method of classifier combination applied to
+image segmentation. Typically, the accuracy of the combined
+segmentation exceeds the accuracy of any of the input segmentations.
+Voting is therefore commonly used as a way of boosting segmentation
+performance.
+
+The use of label voting for combination of multiple segmentations is
+described in
+
+T. Rohlfing and C. R. Maurer, Jr., \"Multi-classifier framework for
+atlas-based image segmentation,\" Pattern Recognition Letters, 2005.
+
+INPUTS
+All input volumes to this filter must be segmentations of an image,
+that is, they must have discrete pixel values where each value
+represents a different segmented object.
+ Input volumes must all contain the same size RequestedRegions. Not all input images must contain all possible labels, but all label
+values must have the same meaning in all images.
+
+OUTPUTS
+The voting filter produces a single output volume. Each output pixel
+contains the label that occurred most often among the labels assigned
+to this pixel in all the input volumes, that is, the label that
+received the maximum number of \"votes\" from the input pixels.. If
+the maximum number of votes is not unique, i.e., if more than one
+label have a maximum number of votes, an \"undecided\" label is
+assigned to that output pixel.
+ By default, the label used for undecided pixels is the maximum label
+value used in the input images plus one. Since it is possible for an
+image with 8 bit pixel values to use all 256 possible label values, it
+is permissible to combine 8 bit (i.e., byte) images into a 16 bit
+(i.e., short) output image.
+
+PARAMETERS
+The label used for \"undecided\" labels can be set using
+SetLabelForUndecidedPixels. This functionality can be unset by calling
+UnsetLabelForUndecidedPixels.
+
+Torsten Rohlfing, SRI International, Neuroscience Program
+
+See:
+ itk::simple::LabelVoting for the procedural interface
+
+
+C++ includes: sitkLabelVotingImageFilter.h
+";
+
+%feature("docstring")  itk::simple::LabelVotingImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::LabelVotingImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::LabelVotingImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::LabelVotingImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::LabelVotingImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::LabelVotingImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::LabelVotingImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelVotingImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::LabelVotingImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::LabelVotingImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::LabelVotingImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::LabelVotingImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::LabelVotingImageFilter::GetLabelForUndecidedPixels "
+
+Get label value used for undecided pixels. After updating the filter,
+this function returns the actual label value used for undecided pixels
+in the current output. Note that this value is overwritten when
+SetLabelForUndecidedPixels is called and the new value only becomes
+effective upon the next filter update.
+
+";
+
+%feature("docstring")  itk::simple::LabelVotingImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::LabelVotingImageFilter::LabelVotingImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LabelVotingImageFilter::SetLabelForUndecidedPixels "
+
+Set label value for undecided pixels.
+
+";
+
+%feature("docstring")  itk::simple::LabelVotingImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::LabelVotingImageFilter::~LabelVotingImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::LandmarkBasedTransformInitializerFilter "
+
+This class computes the transform that aligns the fixed and moving
+images given a set of pair landmarks. The class is templated over the Transform type as well as fixed image and moving image types. The transform
+computed gives the best fit transform that maps the fixed and moving
+images in a least squares sense. The indices are taken to correspond,
+so point 1 in the first set will get mapped close to point 1 in the
+second set, etc.
+
+Currently, the following transforms are supported by the class: VersorRigid3DTransform Rigid2DTransform AffineTransform BSplineTransform
+
+An equal number of fixed and moving landmarks need to be specified
+using SetFixedLandmarks() and SetMovingLandmarks() . Any number of landmarks may be specified. In the case of using
+Affine or BSpline transforms, each landmark pair can contribute in the
+final transform based on its defined weight. Number of weights should
+be equal to the number of landmarks and can be specified using SetLandmarkWeight() . By defaults are weights are set to one. Call InitializeTransform()
+to initialize the transform.
+
+The class is based in part on Hybrid/vtkLandmarkTransform originally
+implemented in python by David G. Gobbi.
+
+The solution is based on Berthold K. P. Horn (1987), \"Closed-form
+solution of absolute orientation using unit quaternions,\" http://people.csail.mit.edu/bkph/papers/Absolute_Orientation.pdf
+
+The Affine Transform initializer is based on an algorithm by H Spaeth, and is described in
+the Insight Journal Article \"Affine Transformation for Landmark Based
+Registration Initializer in ITK\" by Kim E.Y., Johnson H., Williams N.
+available at http://midasjournal.com/browse/publication/825
+
+Wiki Examples:
+
+All Examples
+
+Rigidly register one image to another using manually specified
+landmarks
+See:
+ itk::simple::LandmarkBasedTransformInitializerFilter for the procedural interface
+
+ itk::LandmarkBasedTransformInitializer for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkLandmarkBasedTransformInitializerFilter.h
+";
+
+%feature("docstring")  itk::simple::LandmarkBasedTransformInitializerFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::LandmarkBasedTransformInitializerFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::LandmarkBasedTransformInitializerFilter::GetBSplineNumberOfControlPoints "
+
+Set/Get the number of control points
+
+";
+
+%feature("docstring")  itk::simple::LandmarkBasedTransformInitializerFilter::GetFixedLandmarks "
+";
+
+%feature("docstring")  itk::simple::LandmarkBasedTransformInitializerFilter::GetLandmarkWeight "
+";
+
+%feature("docstring")  itk::simple::LandmarkBasedTransformInitializerFilter::GetMovingLandmarks "
+
+Get the shrink factors.
+
+";
+
+%feature("docstring")  itk::simple::LandmarkBasedTransformInitializerFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::LandmarkBasedTransformInitializerFilter::GetReferenceImage "
+";
+
+%feature("docstring")  itk::simple::LandmarkBasedTransformInitializerFilter::LandmarkBasedTransformInitializerFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LandmarkBasedTransformInitializerFilter::SetBSplineNumberOfControlPoints "
+
+Set/Get the number of control points
+
+";
+
+%feature("docstring")  itk::simple::LandmarkBasedTransformInitializerFilter::SetFixedLandmarks "
+
+Set the Fixed landmark point containers
+
+";
+
+%feature("docstring")  itk::simple::LandmarkBasedTransformInitializerFilter::SetLandmarkWeight "
+
+Set the landmark weight point containers Weight includes diagonal
+elements of weight matrix
+
+";
+
+%feature("docstring")  itk::simple::LandmarkBasedTransformInitializerFilter::SetMovingLandmarks "
+
+Set the Moving landmark point containers
+
+";
+
+%feature("docstring")  itk::simple::LandmarkBasedTransformInitializerFilter::SetReferenceImage "
+
+Set the reference image to define the parametric domain for the
+BSpline transform
+
+";
+
+%feature("docstring")  itk::simple::LandmarkBasedTransformInitializerFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::LandmarkBasedTransformInitializerFilter::~LandmarkBasedTransformInitializerFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::LandweberDeconvolutionImageFilter "
+
+Deconvolve an image using the Landweber deconvolution algorithm.
+
+
+This filter implements the Landweber deconvolution algorthm as defined
+in Bertero M and Boccacci P, \"Introduction to Inverse Problems in
+Imaging\", 1998. The algorithm assumes that the input image has been
+formed by a linear shift-invariant system with a known kernel.
+
+The Landweber algorithm converges to a solution that minimizes the sum
+of squared errors $||f \\\\otimes h - g||$ where $f$ is the estimate of the unblurred image, $\\\\otimes$ is the convolution operator, $h$ is the blurring kernel, and $g$ is the blurred input image. As such, it is best suited for images
+that have zero-mean Gaussian white noise.
+
+This is the base implementation of the Landweber algorithm. It may
+produce results with negative values. For a version of this algorithm
+that enforces a positivity constraint on each intermediate solution,
+see ProjectedLandweberDeconvolutionImageFilter .
+
+This code was adapted from the Insight Journal contribution:
+
+\"Deconvolution: infrastructure and reference algorithms\" by Gaetan
+Lehmann https://hdl.handle.net/10380/3207
+
+
+Gaetan Lehmann, Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France
+ Cory Quammen, The University of North Carolina at Chapel Hill
+
+
+See:
+ IterativeDeconvolutionImageFilter
+
+ RichardsonLucyDeconvolutionImageFilter
+
+ ProjectedLandweberDeconvolutionImageFilter
+
+ itk::simple::LandweberDeconvolution for the procedural interface
+
+ itk::LandweberDeconvolutionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLandweberDeconvolutionImageFilter.h
+";
+
+%feature("docstring")  itk::simple::LandweberDeconvolutionImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::LandweberDeconvolutionImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::LandweberDeconvolutionImageFilter::GetAlpha "
+
+Set/get relaxation factor.
+
+";
+
+%feature("docstring")  itk::simple::LandweberDeconvolutionImageFilter::GetBoundaryCondition "
+";
+
+%feature("docstring")  itk::simple::LandweberDeconvolutionImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::LandweberDeconvolutionImageFilter::GetNormalize "
+";
+
+%feature("docstring")  itk::simple::LandweberDeconvolutionImageFilter::GetNumberOfIterations "
+
+Get the number of iterations.
+
+";
+
+%feature("docstring")  itk::simple::LandweberDeconvolutionImageFilter::GetOutputRegionMode "
+";
+
+%feature("docstring")  itk::simple::LandweberDeconvolutionImageFilter::LandweberDeconvolutionImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LandweberDeconvolutionImageFilter::NormalizeOff "
+";
+
+%feature("docstring")  itk::simple::LandweberDeconvolutionImageFilter::NormalizeOn "
+
+Set the value of Normalize to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::LandweberDeconvolutionImageFilter::SetAlpha "
+
+Set/get relaxation factor.
+
+";
+
+%feature("docstring")  itk::simple::LandweberDeconvolutionImageFilter::SetBoundaryCondition "
+";
+
+%feature("docstring")  itk::simple::LandweberDeconvolutionImageFilter::SetNormalize "
+
+Normalize the output image by the sum of the kernel components
+
+";
+
+%feature("docstring")  itk::simple::LandweberDeconvolutionImageFilter::SetNumberOfIterations "
+
+Set the number of iterations.
+
+";
+
+%feature("docstring")  itk::simple::LandweberDeconvolutionImageFilter::SetOutputRegionMode "
+";
+
+%feature("docstring")  itk::simple::LandweberDeconvolutionImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::LandweberDeconvolutionImageFilter::~LandweberDeconvolutionImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::LaplacianImageFilter "
+
+This filter computes the Laplacian of a scalar-valued image. The
+Laplacian is an isotropic measure of the 2nd spatial derivative of an
+image. The Laplacian of an image highlights regions of rapid intensity
+change and is therefore often used for edge detection. Often, the
+Laplacian is applied to an image that has first been smoothed with a
+Gaussian filter in order to reduce its sensitivity to noise.
+
+
+The Laplacian at each pixel location is computed by convolution with
+the itk::LaplacianOperator .
+Inputs and Outputs
+The input to this filter is a scalar-valued itk::Image of arbitrary dimension. The output is a scalar-valued itk::Image .
+
+WARNING:
+The pixel type of the input and output images must be of real type
+(float or double). ConceptChecking is used here to enforce the input
+pixel type. You will get a compilation error if the pixel type of the
+input and output images is not float or double.
+
+See:
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+
+ LaplacianOperator
+Wiki Examples:
+
+All Examples
+
+Compute the Laplacian of an image
+See:
+ itk::simple::Laplacian for the procedural interface
+
+ itk::LaplacianImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkLaplacianImageFilter.h
+";
+
+%feature("docstring")  itk::simple::LaplacianImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::LaplacianImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::LaplacianImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::LaplacianImageFilter::GetUseImageSpacing "
+
+Set/Get whether or not the filter will use the spacing of the input
+image in its calculations
+
+";
+
+%feature("docstring")  itk::simple::LaplacianImageFilter::LaplacianImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LaplacianImageFilter::SetUseImageSpacing "
+
+Set/Get whether or not the filter will use the spacing of the input
+image in its calculations
+
+";
+
+%feature("docstring")  itk::simple::LaplacianImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::LaplacianImageFilter::UseImageSpacingOff "
+";
+
+%feature("docstring")  itk::simple::LaplacianImageFilter::UseImageSpacingOn "
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::LaplacianImageFilter::~LaplacianImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::LaplacianRecursiveGaussianImageFilter "
+
+Computes the Laplacian of Gaussian (LoG) of an image.
+
+
+Computes the Laplacian of Gaussian (LoG) of an image by convolution
+with the second derivative of a Gaussian. This filter is implemented
+using the recursive gaussian filters.
+
+Wiki Examples:
+
+All Examples
+
+Compute the Laplacian of Gaussian (LoG) of an image
+See:
+ itk::simple::LaplacianRecursiveGaussian for the procedural interface
+
+ itk::LaplacianRecursiveGaussianImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkLaplacianRecursiveGaussianImageFilter.h
+";
+
+%feature("docstring")  itk::simple::LaplacianRecursiveGaussianImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::LaplacianRecursiveGaussianImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::LaplacianRecursiveGaussianImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::LaplacianRecursiveGaussianImageFilter::GetNormalizeAcrossScale "
+
+Define which normalization factor will be used for the Gaussian
+See:
+ RecursiveGaussianImageFilter::SetNormalizeAcrossScale
+
+
+";
+
+%feature("docstring")  itk::simple::LaplacianRecursiveGaussianImageFilter::GetSigma "
+
+Set Sigma value. Sigma is measured in the units of image spacing.
+
+";
+
+%feature("docstring")  itk::simple::LaplacianRecursiveGaussianImageFilter::LaplacianRecursiveGaussianImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LaplacianRecursiveGaussianImageFilter::NormalizeAcrossScaleOff "
+";
+
+%feature("docstring")  itk::simple::LaplacianRecursiveGaussianImageFilter::NormalizeAcrossScaleOn "
+
+Set the value of NormalizeAcrossScale to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::LaplacianRecursiveGaussianImageFilter::SetNormalizeAcrossScale "
+
+Define which normalization factor will be used for the Gaussian
+See:
+ RecursiveGaussianImageFilter::SetNormalizeAcrossScale
+
+
+";
+
+%feature("docstring")  itk::simple::LaplacianRecursiveGaussianImageFilter::SetSigma "
+
+Set Sigma value. Sigma is measured in the units of image spacing.
+
+";
+
+%feature("docstring")  itk::simple::LaplacianRecursiveGaussianImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::LaplacianRecursiveGaussianImageFilter::~LaplacianRecursiveGaussianImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::LaplacianSegmentationLevelSetImageFilter "
+
+Segments structures in images based on a second derivative image
+features.
+
+
+IMPORTANT
+The SegmentationLevelSetImageFilter class and the LaplacianSegmentationLevelSetFunction class contain additional information necessary to the full
+understanding of how to use this filter.
+OVERVIEW
+This class is a level set method segmentation filter. It constructs a
+speed function which is zero at image edges as detected by a Laplacian
+filter. The evolving level set front will therefore tend to lock onto
+zero crossings in the image. The level set front moves fastest near
+edges.
+
+The Laplacian segmentation filter is intended primarily as a tool for
+refining existing segmentations. The initial isosurface (as given in
+the seed input image) should ideally be very close to the segmentation
+boundary of interest. The idea is that a rough segmentation can be
+refined by allowing the isosurface to deform slightly to achieve a
+better fit to the edge features of an image. One example of such an
+application is to refine the output of a hand segmented image.
+
+Because values in the Laplacian feature image will tend to be low
+except near edge features, this filter is not effective for segmenting
+large image regions from small seed surfaces.
+INPUTS
+This filter requires two inputs. The first input is a seed image. This
+seed image must contain an isosurface that you want to use as the seed
+for your segmentation. It can be a binary, graylevel, or floating
+point image. The only requirement is that it contain a closed
+isosurface that you will identify as the seed by setting the
+IsosurfaceValue parameter of the filter. For a binary image you will
+want to set your isosurface value halfway between your on and off
+values (i.e. for 0's and 1's, use an isosurface value of 0.5).
+
+The second input is the feature image. This is the image from which
+the speed function will be calculated. For most applications, this is
+the image that you want to segment. The desired isosurface in your
+seed image should lie within the region of your feature image that you
+are trying to segment.
+ Note that this filter does no preprocessing of the feature image
+before thresholding. Because second derivative calculations are highly
+sensitive to noise, isotropic or anisotropic smoothing of the feature
+image can dramatically improve the results.
+
+
+See SegmentationLevelSetImageFilter for more information on Inputs.
+OUTPUTS
+The filter outputs a single, scalar, real-valued image. Positive
+*values in the output image are inside the segmentated region and
+negative *values in the image are outside of the inside region. The
+zero crossings of *the image correspond to the position of the level
+set front.
+
+See SparseFieldLevelSetImageFilter and SegmentationLevelSetImageFilter for more information.
+PARAMETERS
+This filter has no parameters other than those described in SegmentationLevelSetImageFilter .
+
+See:
+ SegmentationLevelSetImageFilter
+
+ LaplacianSegmentationLevelSetFunction ,
+
+ SparseFieldLevelSetImageFilter
+
+ itk::simple::LaplacianSegmentationLevelSet for the procedural interface
+
+ itk::LaplacianSegmentationLevelSetImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLaplacianSegmentationLevelSetImageFilter.h
+";
+
+%feature("docstring")  itk::simple::LaplacianSegmentationLevelSetImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::LaplacianSegmentationLevelSetImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::LaplacianSegmentationLevelSetImageFilter::GetCurvatureScaling "
+";
+
+%feature("docstring")  itk::simple::LaplacianSegmentationLevelSetImageFilter::GetElapsedIterations "
+
+Number of iterations run.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::LaplacianSegmentationLevelSetImageFilter::GetMaximumRMSError "
+";
+
+%feature("docstring")  itk::simple::LaplacianSegmentationLevelSetImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::LaplacianSegmentationLevelSetImageFilter::GetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::LaplacianSegmentationLevelSetImageFilter::GetPropagationScaling "
+";
+
+%feature("docstring")  itk::simple::LaplacianSegmentationLevelSetImageFilter::GetReverseExpansionDirection "
+";
+
+%feature("docstring")  itk::simple::LaplacianSegmentationLevelSetImageFilter::GetRMSChange "
+
+The Root Mean Square of the levelset upon termination.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::LaplacianSegmentationLevelSetImageFilter::LaplacianSegmentationLevelSetImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LaplacianSegmentationLevelSetImageFilter::ReverseExpansionDirectionOff "
+";
+
+%feature("docstring")  itk::simple::LaplacianSegmentationLevelSetImageFilter::ReverseExpansionDirectionOn "
+
+Set the value of ReverseExpansionDirection to true or false
+respectfully.
+
+";
+
+%feature("docstring")  itk::simple::LaplacianSegmentationLevelSetImageFilter::SetCurvatureScaling "
+";
+
+%feature("docstring")  itk::simple::LaplacianSegmentationLevelSetImageFilter::SetMaximumRMSError "
+";
+
+%feature("docstring")  itk::simple::LaplacianSegmentationLevelSetImageFilter::SetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::LaplacianSegmentationLevelSetImageFilter::SetPropagationScaling "
+";
+
+%feature("docstring")  itk::simple::LaplacianSegmentationLevelSetImageFilter::SetReverseExpansionDirection "
+";
+
+%feature("docstring")  itk::simple::LaplacianSegmentationLevelSetImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::LaplacianSegmentationLevelSetImageFilter::~LaplacianSegmentationLevelSetImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::LaplacianSharpeningImageFilter "
+
+This filter sharpens an image using a Laplacian. LaplacianSharpening
+highlights regions of rapid intensity change and therefore highlights
+or enhances the edges. The result is an image that appears more in
+focus.
+
+
+The LaplacianSharpening at each pixel location is computed by
+convolution with the itk::LaplacianOperator .
+Inputs and Outputs
+The input to this filter is a scalar-valued itk::Image of arbitrary dimension. The output is a scalar-valued itk::Image .
+
+See:
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+
+ LaplacianOperator
+Wiki Examples:
+
+All Examples
+
+Sharpen an image
+See:
+ itk::simple::LaplacianSharpening for the procedural interface
+
+ itk::LaplacianSharpeningImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkLaplacianSharpeningImageFilter.h
+";
+
+%feature("docstring")  itk::simple::LaplacianSharpeningImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::LaplacianSharpeningImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::LaplacianSharpeningImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::LaplacianSharpeningImageFilter::GetUseImageSpacing "
+
+Set/Get whether or not the filter will use the spacing of the input
+image in its calculations
+
+";
+
+%feature("docstring")  itk::simple::LaplacianSharpeningImageFilter::LaplacianSharpeningImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LaplacianSharpeningImageFilter::SetUseImageSpacing "
+
+Set/Get whether or not the filter will use the spacing of the input
+image in its calculations
+
+";
+
+%feature("docstring")  itk::simple::LaplacianSharpeningImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::LaplacianSharpeningImageFilter::UseImageSpacingOff "
+";
+
+%feature("docstring")  itk::simple::LaplacianSharpeningImageFilter::UseImageSpacingOn "
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::LaplacianSharpeningImageFilter::~LaplacianSharpeningImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::LessEqualImageFilter "
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This class is parameterized over the types of the two input images and
+the type of the output image. It is also parameterized by the
+operation to be applied. A Functor style is used.
+
+The constant must be of the same type than the pixel type of the
+corresponding image. It is wrapped in a SimpleDataObjectDecorator so it can be updated through the pipeline. The SetConstant() and
+GetConstant() methods are provided as shortcuts to set or get the
+constant value without manipulating the decorator.
+
+
+See:
+ UnaryFunctorImageFilter TernaryFunctorImageFilter
+Wiki Examples:
+
+All Examples
+
+Apply a predefined operation to corresponding pixels in two images
+
+Apply a custom operation to corresponding pixels in two images
+See:
+ itk::simple::LessEqual for the procedural interface
+
+ itk::BinaryFunctorImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkLessEqualImageFilter.h
+";
+
+%feature("docstring")  itk::simple::LessEqualImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::LessEqualImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::LessEqualImageFilter::Execute "
+
+Execute the filter with an image and a constant
+
+";
+
+%feature("docstring")  itk::simple::LessEqualImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::LessEqualImageFilter::Execute "
+
+Execute the filter on an image and a constant with the given
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LessEqualImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::LessEqualImageFilter::GetBackgroundValue "
+
+Set/Get the value used to mark the false pixels of the operator.
+
+";
+
+%feature("docstring")  itk::simple::LessEqualImageFilter::GetForegroundValue "
+
+Set/Get the value used to mark the true pixels of the operator.
+
+";
+
+%feature("docstring")  itk::simple::LessEqualImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::LessEqualImageFilter::LessEqualImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LessEqualImageFilter::SetBackgroundValue "
+
+Set/Get the value used to mark the false pixels of the operator.
+
+";
+
+%feature("docstring")  itk::simple::LessEqualImageFilter::SetForegroundValue "
+
+Set/Get the value used to mark the true pixels of the operator.
+
+";
+
+%feature("docstring")  itk::simple::LessEqualImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::LessEqualImageFilter::~LessEqualImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::LessImageFilter "
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This class is parameterized over the types of the two input images and
+the type of the output image. It is also parameterized by the
+operation to be applied. A Functor style is used.
+
+The constant must be of the same type than the pixel type of the
+corresponding image. It is wrapped in a SimpleDataObjectDecorator so it can be updated through the pipeline. The SetConstant() and
+GetConstant() methods are provided as shortcuts to set or get the
+constant value without manipulating the decorator.
+
+
+See:
+ UnaryFunctorImageFilter TernaryFunctorImageFilter
+Wiki Examples:
+
+All Examples
+
+Apply a predefined operation to corresponding pixels in two images
+
+Apply a custom operation to corresponding pixels in two images
+See:
+ itk::simple::Less for the procedural interface
+
+ itk::BinaryFunctorImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkLessImageFilter.h
+";
+
+%feature("docstring")  itk::simple::LessImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::LessImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::LessImageFilter::Execute "
+
+Execute the filter with an image and a constant
+
+";
+
+%feature("docstring")  itk::simple::LessImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::LessImageFilter::Execute "
+
+Execute the filter on an image and a constant with the given
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LessImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::LessImageFilter::GetBackgroundValue "
+
+Set/Get the value used to mark the false pixels of the operator.
+
+";
+
+%feature("docstring")  itk::simple::LessImageFilter::GetForegroundValue "
+
+Set/Get the value used to mark the true pixels of the operator.
+
+";
+
+%feature("docstring")  itk::simple::LessImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::LessImageFilter::LessImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LessImageFilter::SetBackgroundValue "
+
+Set/Get the value used to mark the false pixels of the operator.
+
+";
+
+%feature("docstring")  itk::simple::LessImageFilter::SetForegroundValue "
+
+Set/Get the value used to mark the true pixels of the operator.
+
+";
+
+%feature("docstring")  itk::simple::LessImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::LessImageFilter::~LessImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::LevelSetMotionRegistrationFilter "
+
+Deformably register two images using level set motion.
+
+
+LevelSetMotionFilter implements a deformable registration algorithm
+that aligns a fixed and a moving image under level set motion. The
+equations of motion are similar to those of the DemonsRegistrationFilter . The main differences are: (1) Gradients of the moving image are
+calculated on a smoothed image while intensity difference are measured
+on the original images (2) Magnitude of the motion vector is a
+function of the differences in intensity between the fixed and moving
+pixel. An adaptive timestep is calculated based on the maximum motion
+vector over the entire field to ensure stability. The timestep also
+implictly converts the motion vector measured in units of intensity to
+a vector measured in physical units. Demons, on the other hand,
+defines its motion vectors as function of both the intensity
+differences and gradient magnitude at each respective pixel. Consider
+two separate pixels with the same intensity differences between the
+corresponding fixed and moving pixel pairs. In demons, the motion
+vector of the pixel over a low gradient region will be larger than the
+motion vector of the pixel over a large gradient region. This leads to
+an unstable vector field. In the levelset approach, the motion vectors
+will be proportional to the gradients, scaled by the maximum gradient
+over the entire field. The pixel with at the lower gradient position
+will more less than the pixel at the higher gradient position. (3)
+Gradients are calculated using minmod finite difference instead of
+using central differences.
+
+A deformation field is represented as a image whose pixel type is some
+vector type with at least N elements, where N is the dimension of the
+fixed image. The vector type must support element access via operator
+[]. It is assumed that the vector elements behave like floating point
+scalars.
+
+This class is templated over the fixed image type, moving image type
+and the deformation field type.
+
+The input fixed and moving images are set via methods SetFixedImage
+and SetMovingImage respectively. An initial deformation field maybe
+set via SetInitialDisplacementField or SetInput. If no initial field
+is set, a zero field is used as the initial condition.
+
+The algorithm has one parameters: the number of iteration to be
+performed.
+
+The output deformation field can be obtained via methods GetOutput or
+GetDisplacementField.
+
+This class make use of the finite difference solver hierarchy. Update
+for each iteration is computed in LevelSetMotionFunction.
+
+
+WARNING:
+This filter assumes that the fixed image type, moving image type and
+deformation field type all have the same number of dimensions.
+ Ref: B.C. Vemuri, J. Ye, Y. Chen, C.M. Leonard. \"Image registration
+via level-set motion: applications to atlas-based segmentation\".
+Medical Image Analysis. Vol. 7. pp. 1-20. 2003.
+
+
+See:
+ LevelSetMotionRegistrationFunction
+
+ DemonsRegistrationFilter
+
+ itk::LevelSetMotionRegistrationFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLevelSetMotionRegistrationFilter.h
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::GetAlpha "
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::GetElapsedIterations "
+
+Number of iterations run.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::GetGradientMagnitudeThreshold "
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::GetGradientSmoothingStandardDeviations "
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::GetIntensityDifferenceThreshold "
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::GetMaximumError "
+
+Set/Get the desired maximum error of the Guassian kernel approximate.
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::GetMaximumKernelWidth "
+
+Set/Get the desired limits of the Gaussian kernel width.
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::GetMaximumRMSError "
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::GetMetric "
+
+Get the metric value. The metric value is the mean square difference
+in intensity between the fixed image and transforming moving image
+computed over the the overlapping region between the two images. This
+is value is only available for the previous iteration and NOT the
+current iteration.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::GetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::GetRMSChange "
+
+The Root Mean Square of the levelset upon termination.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::GetSmoothDisplacementField "
+
+Set/Get whether the displacement field is smoothed (regularized).
+Smoothing the displacement yields a solution elastic in nature. If
+SmoothDisplacementField is on, then the displacement field is smoothed
+with a Gaussian whose standard deviations are specified with SetStandardDeviations()
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::GetSmoothUpdateField "
+
+Set/Get whether the update field is smoothed (regularized). Smoothing
+the update field yields a solution viscous in nature. If
+SmoothUpdateField is on, then the update field is smoothed with a
+Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::GetStandardDeviations "
+
+Set/Get the Gaussian smoothing standard deviations for the
+displacement field. The values are set with respect to pixel
+coordinates.
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::GetUpdateFieldStandardDeviations "
+
+Set the Gaussian smoothing standard deviations for the update field.
+The values are set with respect to pixel coordinates.
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::GetUseImageSpacing "
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::LevelSetMotionRegistrationFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::SetAlpha "
+
+Set/Get the parameter alpha. Alpha is added to the calculated gradient
+magnitude prior to normalizing the gradient to protect against
+numerical instability as the gradient magnitude approaches zero. This
+should be set as a small fraction of the intensity dynamic range, for
+instance 0.04%. Default is the absolute (not percentage) value of 0.1.
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::SetGradientMagnitudeThreshold "
+
+Set/Get the threshold below which the gradient magnitude is considered
+the zero vector. Default is 1e-9.
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::SetGradientSmoothingStandardDeviations "
+
+Set/Get the standard deviation used for smoothing the moving image
+prior to calculating gradients. The standard deviation is measured in
+physical units (for instance mm). Note that this smoothing value is
+not to be confused with the
+PDEDeformableRegistrationFilter::SetStandardDeviations() method. The
+method in PDEDeformableRegistrationFilter is for setting the smoothing parameters for regularizing the
+deformation field between interations. Those smoothing parameters are
+set in pixel units not physical units. Deformation field smoothing is
+not done by default in LevelSetMotionRegistration. This smoothing
+parameter is to condition the gradient calculation and parameter is
+specified in physical units.
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::SetIntensityDifferenceThreshold "
+
+Set/Get the threshold below which the absolute difference of intensity
+yields a match. When the intensities match between a moving and fixed
+image pixel, the update vector (for that iteration) will be the zero
+vector. Default is 0.001.
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::SetMaximumError "
+
+Set/Get the desired maximum error of the Guassian kernel approximate.
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::SetMaximumKernelWidth "
+
+Set/Get the desired limits of the Gaussian kernel width.
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::SetMaximumRMSError "
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::SetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::SetSmoothDisplacementField "
+
+Set/Get whether the displacement field is smoothed (regularized).
+Smoothing the displacement yields a solution elastic in nature. If
+SmoothDisplacementField is on, then the displacement field is smoothed
+with a Gaussian whose standard deviations are specified with SetStandardDeviations()
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::SetSmoothUpdateField "
+
+Set/Get whether the update field is smoothed (regularized). Smoothing
+the update field yields a solution viscous in nature. If
+SmoothUpdateField is on, then the update field is smoothed with a
+Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::SetStandardDeviations "
+
+Set/Get the Gaussian smoothing standard deviations for the
+displacement field. The values are set with respect to pixel
+coordinates.
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::SetStandardDeviations "
+
+Set the values of the StandardDeviations vector all to value
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::SetUpdateFieldStandardDeviations "
+
+Set the Gaussian smoothing standard deviations for the update field.
+The values are set with respect to pixel coordinates.
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::SetUpdateFieldStandardDeviations "
+
+Set the values of the UpdateFieldStandardDeviations vector all to
+value
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::SetUseImageSpacing "
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::SmoothDisplacementFieldOff "
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::SmoothDisplacementFieldOn "
+
+Set the value of SmoothDisplacementField to true or false
+respectfully.
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::SmoothUpdateFieldOff "
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::SmoothUpdateFieldOn "
+
+Set the value of SmoothUpdateField to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::UseImageSpacingOff "
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::UseImageSpacingOn "
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::LevelSetMotionRegistrationFilter::~LevelSetMotionRegistrationFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::LiThresholdImageFilter "
+
+Threshold an image using the Li Threshold.
+
+
+This filter creates a binary thresholded image that separates an image
+into foreground and background components. The filter computes the
+threshold using the LiThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .
+
+
+Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+ Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/10380/3279 or http://www.insight-journal.org/browse/publication/811
+
+
+See:
+ HistogramThresholdImageFilter
+
+ itk::simple::LiThreshold for the procedural interface
+
+ itk::LiThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLiThresholdImageFilter.h
+";
+
+%feature("docstring")  itk::simple::LiThresholdImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::LiThresholdImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::LiThresholdImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::LiThresholdImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::LiThresholdImageFilter::GetInsideValue "
+
+Get the \"inside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::LiThresholdImageFilter::GetMaskOutput "
+";
+
+%feature("docstring")  itk::simple::LiThresholdImageFilter::GetMaskValue "
+";
+
+%feature("docstring")  itk::simple::LiThresholdImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::LiThresholdImageFilter::GetNumberOfHistogramBins "
+";
+
+%feature("docstring")  itk::simple::LiThresholdImageFilter::GetOutsideValue "
+
+Get the \"outside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::LiThresholdImageFilter::GetThreshold "
+
+Get the computed threshold.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::LiThresholdImageFilter::LiThresholdImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LiThresholdImageFilter::MaskOutputOff "
+";
+
+%feature("docstring")  itk::simple::LiThresholdImageFilter::MaskOutputOn "
+
+Set the value of MaskOutput to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::LiThresholdImageFilter::SetInsideValue "
+
+Set the \"inside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::LiThresholdImageFilter::SetMaskOutput "
+
+Do you want the output to be masked by the mask used in histogram
+construction. Only relevant if masking is in use.
+
+";
+
+%feature("docstring")  itk::simple::LiThresholdImageFilter::SetMaskValue "
+
+The value in the mask image, if used, indicating voxels that should be
+included. Default is the max of pixel type, as in the
+MaskedImageToHistogramFilter
+
+";
+
+%feature("docstring")  itk::simple::LiThresholdImageFilter::SetNumberOfHistogramBins "
+
+Set/Get the number of histogram bins.
+
+";
+
+%feature("docstring")  itk::simple::LiThresholdImageFilter::SetOutsideValue "
+
+Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.
+
+";
+
+%feature("docstring")  itk::simple::LiThresholdImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::LiThresholdImageFilter::~LiThresholdImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::Log10ImageFilter "
+
+Computes the log10 of each pixel.
+
+
+The computation is performed using std::log10(x).
+See:
+ itk::simple::Log10 for the procedural interface
+
+ itk::Log10ImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLog10ImageFilter.h
+";
+
+%feature("docstring")  itk::simple::Log10ImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::Log10ImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::Log10ImageFilter::Log10ImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::Log10ImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::Log10ImageFilter::~Log10ImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::LogImageFilter "
+
+Computes the log() of each pixel.
+
+
+
+See:
+ itk::simple::Log for the procedural interface
+
+ itk::LogImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkLogImageFilter.h
+";
+
+%feature("docstring")  itk::simple::LogImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::LogImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::LogImageFilter::LogImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::LogImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::LogImageFilter::~LogImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::MagnitudeAndPhaseToComplexImageFilter "
+
+Implements pixel-wise conversion of magnitude and phase data into
+complex voxels.
+
+
+This filter is parametrized over the types of the two input images and
+the type of the output image.
+
+The filter expect all images to have the same dimension (e.g. all 2D,
+or all 3D, or all ND)
+See:
+ itk::simple::MagnitudeAndPhaseToComplex for the procedural interface
+
+ itk::MagnitudeAndPhaseToComplexImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkMagnitudeAndPhaseToComplexImageFilter.h
+";
+
+%feature("docstring")  itk::simple::MagnitudeAndPhaseToComplexImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::MagnitudeAndPhaseToComplexImageFilter::Execute "
+
+Execute the filter with an image and a constant
+
+";
+
+%feature("docstring")  itk::simple::MagnitudeAndPhaseToComplexImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::MagnitudeAndPhaseToComplexImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::MagnitudeAndPhaseToComplexImageFilter::MagnitudeAndPhaseToComplexImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::MagnitudeAndPhaseToComplexImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::MagnitudeAndPhaseToComplexImageFilter::~MagnitudeAndPhaseToComplexImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::MaskImageFilter "
+
+Mask an image with a mask.
+
+
+This class is templated over the types of the input image type, the
+mask image type and the type of the output image. Numeric conversions
+(castings) are done by the C++ defaults.
+
+The pixel type of the input 2 image must have a valid definition of
+the operator != with zero. This condition is required because
+internally this filter will perform the operation
+
+
+The pixel from the input 1 is cast to the pixel type of the output
+image.
+
+Note that the input and the mask images must be of the same size.
+
+
+WARNING:
+Any pixel value other than masking value (0 by default) will not be
+masked out.
+
+See:
+ MaskNegatedImageFilter
+Wiki Examples:
+
+All Examples
+
+Apply a mask to an image
+See:
+ itk::simple::Mask for the procedural interface
+
+ itk::MaskImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkMaskImageFilter.h
+";
+
+%feature("docstring")  itk::simple::MaskImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::MaskImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::MaskImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::MaskImageFilter::GetOutsideValue "
+";
+
+%feature("docstring")  itk::simple::MaskImageFilter::MaskImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::MaskImageFilter::SetOutsideValue "
+
+Method to explicitly set the outside value of the mask. Defaults to 0
+
+";
+
+%feature("docstring")  itk::simple::MaskImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::MaskImageFilter::~MaskImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::MaskNegatedImageFilter "
+
+Mask an image with the negative of a mask.
+
+
+This class is templated over the types of the input image type, the
+mask image type and the type of the output image. Numeric conversions
+(castings) are done by the C++ defaults. The pixel type of the input 2
+image must have a valid definition of the operator != with zero. This
+condition is required because internally this filter will perform the
+operation ifpixel_from_mask_image!=0pixel_output_image=output_valueels
+epixel_output_image=pixel_input_image The pixel from the input 1 is
+cast to the pixel type of the output image. Note that the input and
+the mask images must be of the same size.
+WARNING:
+Any pixel value other than 0 will not be masked out.
+
+See:
+ MaskImageFilter
+Wiki Examples:
+
+All Examples
+
+Apply the inverse of a mask to an image
+
+See:
+ itk::simple::MaskNegated for the procedural interface
+
+ itk::MaskNegatedImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkMaskNegatedImageFilter.h
+";
+
+%feature("docstring")  itk::simple::MaskNegatedImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::MaskNegatedImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::MaskNegatedImageFilter::MaskNegatedImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::MaskNegatedImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::MaskNegatedImageFilter::~MaskNegatedImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::MaskedFFTNormalizedCorrelationImageFilter "
+
+Calculate masked normalized cross correlation using FFTs.
+
+
+This filter calculates the masked normalized cross correlation (NCC)
+of two images under masks using FFTs instead of spatial correlation.
+It is much faster than spatial correlation for reasonably large
+structuring elements. This filter is not equivalent to simply masking
+the images first and then correlating them; the latter approach yields
+incorrect results because the zeros in the images still affect the
+metric in the correlation process. This filter implements the masked
+NCC correctly so that the masked-out regions are completely ignored.
+The fundamental difference is described in detail in the references
+below. If the masks are set to images of all ones, the result of this
+filter is the same as standard NCC.
+
+Inputs: Two images are required as inputs, fixedImage and movingImage,
+and two are optional, fixedMask and movingMask. In the context of
+correlation, inputs are often defined as: \"image\" and \"template\".
+In this filter, the fixedImage plays the role of the image, and the
+movingImage plays the role of the template. However, this filter is
+capable of correlating any two images and is not restricted to small
+movingImages (templates). In the fixedMask and movingMask, non-zero
+positive values indicate locations of useful information in the
+corresponding image, whereas zero and negative values indicate
+locations that should be masked out (ignored). Internally, the masks
+are converted to have values of only 0 and 1. For each optional mask
+that is not set, the filter internally creates an image of ones, which
+is equivalent to not masking the image. Thus, if both masks are not
+set, the result will be equivalent to unmasked NCC. For example, if
+only a mask for the fixed image is needed, the movingMask can either
+not be set or can be set to an image of ones.
+
+Optional parameters: The RequiredNumberOfOverlappingPixels enables the
+user to specify the minimum number of voxels of the two masks that
+must overlap; any location in the correlation map that results from
+fewer than this number of voxels will be set to zero. Larger values
+zero-out pixels on a larger border around the correlation image. Thus,
+larger values remove less stable computations but also limit the
+capture range. If RequiredNumberOfOverlappingPixels is set to 0, the
+default, no zeroing will take place.
+
+The RequiredFractionOfOverlappingPixels enables the user to specify a
+fraction of the maximum number of overlapping pixels that need to
+overlap; any location in the correlation map that results from fewer
+than the product of this fraction and the internally computed maximum
+number of overlapping pixels will be set to zero. The value ranges
+between 0.0 and 1.0. This is very useful when the user does does not
+know beforehand the maximum number of pixels of the masks that will
+overlap. For example, when the masks have strange shapes, it is
+difficult to predict how the correlation of the masks will interact
+and what the maximum overlap will be. It is also useful when the mask
+shapes or sizes change because it is relative to the internally
+computed maximum of the overlap. Larger values zero-out pixels on a
+larger border around the correlation image. Thus, larger values remove
+less stable computations but also limit the capture range. Experiments
+have shown that a value between 0.1 and 0.6 works well for images with
+significant overlap and between 0.05 and 0.1 for images with little
+overlap (such as in stitching applications). If
+RequiredFractionOfOverlappingPixels is set to 0, the default, no
+zeroing will take place.
+
+The user can either specify RequiredNumberOfOverlappingPixels or
+RequiredFractionOfOverlappingPixels (or both or none). Internally, the
+number of required pixels resulting from both of these methods is
+calculated and the one that gives the largest number of pixels is
+chosen. Since these both default to 0, if a user only sets one, the
+other is ignored.
+
+Image size: fixedImage and movingImage need not be the same size, but
+fixedMask must be the same size as fixedImage, and movingMask must be
+the same size as movingImage. Furthermore, whereas some algorithms
+require that the \"template\" be smaller than the \"image\" because of
+errors in the regions where the two are not fully overlapping, this
+filter has no such restriction.
+
+Image spacing: Since the computations are done in the pixel domain, all
+input images must have the same spacing.
+
+Outputs; The output is an image of RealPixelType that is the masked
+NCC of the two images and its values range from -1.0 to 1.0. The size
+of this NCC image is, by definition, size(fixedImage) +
+size(movingImage) - 1.
+
+Example filter usage:
+
+
+WARNING:
+The pixel type of the output image must be of real type (float or
+double). ConceptChecking is used to enforce the output pixel type. You
+will get a compilation error if the pixel type of the output image is
+not float or double.
+ References: 1) D. Padfield. \"Masked object registration in the
+Fourier domain.\" Transactions on Image Processing. 2) D. Padfield. \"Masked FFT registration\". In Proc.
+Computer Vision and Pattern Recognition, 2010.
+
+
+: Dirk Padfield, GE Global Research, padfield at research.ge.com
+
+See:
+ itk::simple::MaskedFFTNormalizedCorrelation for the procedural interface
+
+ itk::MaskedFFTNormalizedCorrelationImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkMaskedFFTNormalizedCorrelationImageFilter.h
+";
+
+%feature("docstring")  itk::simple::MaskedFFTNormalizedCorrelationImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::MaskedFFTNormalizedCorrelationImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::MaskedFFTNormalizedCorrelationImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::MaskedFFTNormalizedCorrelationImageFilter::GetRequiredFractionOfOverlappingPixels "
+
+Set and get the required fraction of overlapping pixels
+
+";
+
+%feature("docstring")  itk::simple::MaskedFFTNormalizedCorrelationImageFilter::GetRequiredNumberOfOverlappingPixels "
+
+Set and get the required number of overlapping pixels
+
+";
+
+%feature("docstring")  itk::simple::MaskedFFTNormalizedCorrelationImageFilter::MaskedFFTNormalizedCorrelationImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::MaskedFFTNormalizedCorrelationImageFilter::SetRequiredFractionOfOverlappingPixels "
+
+Set and get the required fraction of overlapping pixels
+
+";
+
+%feature("docstring")  itk::simple::MaskedFFTNormalizedCorrelationImageFilter::SetRequiredNumberOfOverlappingPixels "
+
+Set and get the required number of overlapping pixels
+
+";
+
+%feature("docstring")  itk::simple::MaskedFFTNormalizedCorrelationImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::MaskedFFTNormalizedCorrelationImageFilter::~MaskedFFTNormalizedCorrelationImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::MaximumEntropyThresholdImageFilter "
+
+Threshold an image using the MaximumEntropy Threshold.
+
+
+This filter creates a binary thresholded image that separates an image
+into foreground and background components. The filter computes the
+threshold using the MaximumEntropyThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .
+
+
+Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+ Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/10380/3279 or http://www.insight-journal.org/browse/publication/811
+
+
+See:
+ HistogramThresholdImageFilter
+
+ itk::simple::MaximumEntropyThreshold for the procedural interface
+
+ itk::MaximumEntropyThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkMaximumEntropyThresholdImageFilter.h
+";
+
+%feature("docstring")  itk::simple::MaximumEntropyThresholdImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::MaximumEntropyThresholdImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::MaximumEntropyThresholdImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::MaximumEntropyThresholdImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::MaximumEntropyThresholdImageFilter::GetInsideValue "
+
+Get the \"inside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::MaximumEntropyThresholdImageFilter::GetMaskOutput "
+";
+
+%feature("docstring")  itk::simple::MaximumEntropyThresholdImageFilter::GetMaskValue "
+";
+
+%feature("docstring")  itk::simple::MaximumEntropyThresholdImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::MaximumEntropyThresholdImageFilter::GetNumberOfHistogramBins "
+";
+
+%feature("docstring")  itk::simple::MaximumEntropyThresholdImageFilter::GetOutsideValue "
+
+Get the \"outside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::MaximumEntropyThresholdImageFilter::GetThreshold "
+
+Get the computed threshold.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::MaximumEntropyThresholdImageFilter::MaskOutputOff "
+";
+
+%feature("docstring")  itk::simple::MaximumEntropyThresholdImageFilter::MaskOutputOn "
+
+Set the value of MaskOutput to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::MaximumEntropyThresholdImageFilter::MaximumEntropyThresholdImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::MaximumEntropyThresholdImageFilter::SetInsideValue "
+
+Set the \"inside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::MaximumEntropyThresholdImageFilter::SetMaskOutput "
+
+Do you want the output to be masked by the mask used in histogram
+construction. Only relevant if masking is in use.
+
+";
+
+%feature("docstring")  itk::simple::MaximumEntropyThresholdImageFilter::SetMaskValue "
+
+The value in the mask image, if used, indicating voxels that should be
+included. Default is the max of pixel type, as in the
+MaskedImageToHistogramFilter
+
+";
+
+%feature("docstring")  itk::simple::MaximumEntropyThresholdImageFilter::SetNumberOfHistogramBins "
+
+Set/Get the number of histogram bins.
+
+";
+
+%feature("docstring")  itk::simple::MaximumEntropyThresholdImageFilter::SetOutsideValue "
+
+Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.
+
+";
+
+%feature("docstring")  itk::simple::MaximumEntropyThresholdImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::MaximumEntropyThresholdImageFilter::~MaximumEntropyThresholdImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::MaximumImageFilter "
+
+Implements a pixel-wise operator Max(a,b) between two images.
+
+
+The pixel values of the output image are the maximum between the
+corresponding pixels of the two input images.
+
+This class is templated over the types of the two input images and the
+type of the output image. Numeric conversions (castings) are done by
+the C++ defaults.
+
+Wiki Examples:
+
+All Examples
+
+Pixel wise compare two input images and set the output pixel to their
+max
+See:
+ itk::simple::Maximum for the procedural interface
+
+ itk::MaximumImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkMaximumImageFilter.h
+";
+
+%feature("docstring")  itk::simple::MaximumImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::MaximumImageFilter::Execute "
+
+Execute the filter with an image and a constant
+
+";
+
+%feature("docstring")  itk::simple::MaximumImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::MaximumImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::MaximumImageFilter::MaximumImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::MaximumImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::MaximumImageFilter::~MaximumImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::MaximumProjectionImageFilter "
+
+Maximum projection.
+
+
+This class was contributed to the insight journal by Gaetan Lehmann.
+The original paper can be found at https://hdl.handle.net/1926/164
+
+
+Gaetan Lehmann. Biologie du Developpement et de la reproduction, inra
+de jouy-en-josas, France.
+
+See:
+ ProjectionImageFilter
+
+ MedianProjectionImageFilter
+
+ MeanProjectionImageFilter
+
+ MinimumProjectionImageFilter
+
+ StandardDeviationProjectionImageFilter
+
+ SumProjectionImageFilter
+
+ BinaryProjectionImageFilter
+
+ itk::simple::MaximumProjection for the procedural interface
+
+ itk::MaximumProjectionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkMaximumProjectionImageFilter.h
+";
+
+%feature("docstring")  itk::simple::MaximumProjectionImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::MaximumProjectionImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::MaximumProjectionImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::MaximumProjectionImageFilter::GetProjectionDimension "
+";
+
+%feature("docstring")  itk::simple::MaximumProjectionImageFilter::MaximumProjectionImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::MaximumProjectionImageFilter::SetProjectionDimension "
+";
+
+%feature("docstring")  itk::simple::MaximumProjectionImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::MaximumProjectionImageFilter::~MaximumProjectionImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::MeanImageFilter "
+
+Applies an averaging filter to an image.
+
+
+Computes an image where a given pixel is the mean value of the the
+pixels in a neighborhood about the corresponding input pixel.
+
+A mean filter is one of the family of linear filters.
+
+
+See:
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+Wiki Examples:
+
+All Examples
+
+Mean filter an image
+See:
+ itk::simple::Mean for the procedural interface
+
+ itk::MeanImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkMeanImageFilter.h
+";
+
+%feature("docstring")  itk::simple::MeanImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::MeanImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::MeanImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::MeanImageFilter::GetRadius "
+";
+
+%feature("docstring")  itk::simple::MeanImageFilter::MeanImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::MeanImageFilter::SetRadius "
+";
+
+%feature("docstring")  itk::simple::MeanImageFilter::SetRadius "
+
+Set the values of the Radius vector all to value
+
+";
+
+%feature("docstring")  itk::simple::MeanImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::MeanImageFilter::~MeanImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::MeanProjectionImageFilter "
+
+Mean projection.
+
+
+This class was contributed to the Insight Journal by Gaetan Lehmann.
+The original paper can be found at https://hdl.handle.net/1926/164
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ ProjectionImageFilter
+
+ MedianProjectionImageFilter
+
+ MinimumProjectionImageFilter
+
+ StandardDeviationProjectionImageFilter
+
+ SumProjectionImageFilter
+
+ BinaryProjectionImageFilter
+
+ MaximumProjectionImageFilter
+
+ itk::simple::MeanProjection for the procedural interface
+
+ itk::MeanProjectionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkMeanProjectionImageFilter.h
+";
+
+%feature("docstring")  itk::simple::MeanProjectionImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::MeanProjectionImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::MeanProjectionImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::MeanProjectionImageFilter::GetProjectionDimension "
+";
+
+%feature("docstring")  itk::simple::MeanProjectionImageFilter::MeanProjectionImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::MeanProjectionImageFilter::SetProjectionDimension "
+";
+
+%feature("docstring")  itk::simple::MeanProjectionImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::MeanProjectionImageFilter::~MeanProjectionImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::MedianImageFilter "
+
+Applies a median filter to an image.
+
+
+Computes an image where a given pixel is the median value of the the
+pixels in a neighborhood about the corresponding input pixel.
+
+A median filter is one of the family of nonlinear filters. It is used
+to smooth an image without being biased by outliers or shot noise.
+
+This filter requires that the input pixel type provides an operator<()
+(LessThan Comparable).
+
+
+See:
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+Wiki Examples:
+
+All Examples
+
+Median filter an image
+
+Median filter an RGB image
+See:
+ itk::simple::Median for the procedural interface
+
+ itk::MedianImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkMedianImageFilter.h
+";
+
+%feature("docstring")  itk::simple::MedianImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::MedianImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::MedianImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::MedianImageFilter::GetRadius "
+";
+
+%feature("docstring")  itk::simple::MedianImageFilter::MedianImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::MedianImageFilter::SetRadius "
+";
+
+%feature("docstring")  itk::simple::MedianImageFilter::SetRadius "
+
+Set the values of the Radius vector all to value
+
+";
+
+%feature("docstring")  itk::simple::MedianImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::MedianImageFilter::~MedianImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::MedianProjectionImageFilter "
+
+Median projection.
+
+
+This class was contributed to the Insight Journal by Gaetan Lehmann.
+The original paper can be found at https://hdl.handle.net/1926/164
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ ProjectionImageFilter
+
+ StandardDeviationProjectionImageFilter
+
+ SumProjectionImageFilter
+
+ BinaryProjectionImageFilter
+
+ MaximumProjectionImageFilter
+
+ MinimumProjectionImageFilter
+
+ MeanProjectionImageFilter
+
+ itk::simple::MedianProjection for the procedural interface
+
+ itk::MedianProjectionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkMedianProjectionImageFilter.h
+";
+
+%feature("docstring")  itk::simple::MedianProjectionImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::MedianProjectionImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::MedianProjectionImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::MedianProjectionImageFilter::GetProjectionDimension "
+";
+
+%feature("docstring")  itk::simple::MedianProjectionImageFilter::MedianProjectionImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::MedianProjectionImageFilter::SetProjectionDimension "
+";
+
+%feature("docstring")  itk::simple::MedianProjectionImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::MedianProjectionImageFilter::~MedianProjectionImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::MergeLabelMapFilter "
+
+Merges several Label Maps.
+
+
+This filter takes one or more input Label Map and merges them.
+
+SetMethod() can be used to change how the filter manage the labels from the
+different label maps. KEEP (0): MergeLabelMapFilter do its best to keep the label unchanged, but if a label is already
+used in a previous label map, a new label is assigned. AGGREGATE (1):
+If the same label is found several times in the label maps, the label
+objects with the same label are merged. PACK (2): MergeLabelMapFilter relabel all the label objects by order of processing. No conflict can
+occur. STRICT (3): MergeLabelMapFilter keeps the labels unchanged and raises an exception if the same label
+is found in several images.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ ShapeLabelObject , RelabelComponentImageFilter
+
+ itk::simple::MergeLabelMapFilter for the procedural interface
+
+
+C++ includes: sitkMergeLabelMapFilter.h
+";
+
+%feature("docstring")  itk::simple::MergeLabelMapFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::MergeLabelMapFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::MergeLabelMapFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::MergeLabelMapFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::MergeLabelMapFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::MergeLabelMapFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::MergeLabelMapFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::MergeLabelMapFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::MergeLabelMapFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::MergeLabelMapFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::MergeLabelMapFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::MergeLabelMapFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::MergeLabelMapFilter::GetMethod "
+
+Set/Get the method used to merge the label maps
+
+";
+
+%feature("docstring")  itk::simple::MergeLabelMapFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::MergeLabelMapFilter::MergeLabelMapFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::MergeLabelMapFilter::SetMethod "
+
+Set/Get the method used to merge the label maps
+
+";
+
+%feature("docstring")  itk::simple::MergeLabelMapFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::MergeLabelMapFilter::~MergeLabelMapFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::MinMaxCurvatureFlowImageFilter "
+
+Denoise an image using min/max curvature flow.
+
+
+MinMaxCurvatureFlowImageFilter implements a curvature driven image denoising algorithm. Iso-
+brightness contours in the grayscale input image are viewed as a level
+set. The level set is then evolved using a curvature-based speed
+function:
+
+\\\\[ I_t = F_{\\\\mbox{minmax}} |\\\\nabla I| \\\\]
+
+where $ F_{\\\\mbox{minmax}} = \\\\max(\\\\kappa,0) $ if $ \\\\mbox{Avg}_{\\\\mbox{stencil}}(x) $ is less than or equal to $ T_{thresold} $ and $ \\\\min(\\\\kappa,0) $ , otherwise. $ \\\\kappa $ is the mean curvature of the iso-brightness contour at point $ x $ .
+
+In min/max curvature flow, movement is turned on or off depending on
+the scale of the noise one wants to remove. Switching depends on the
+average image value of a region of radius $ R $ around each point. The choice of $ R $ , the stencil radius, governs the scale of the noise to be removed.
+
+The threshold value $ T_{threshold} $ is the average intensity obtained in the direction perpendicular to
+the gradient at point $ x $ at the extrema of the local neighborhood.
+
+This filter make use of the multi-threaded finite difference solver
+hierarchy. Updates are computed using a MinMaxCurvatureFlowFunction object. A zero flux Neumann boundary condition is used when computing
+derivatives near the data boundary.
+
+
+WARNING:
+This filter assumes that the input and output types have the same
+dimensions. This filter also requires that the output image pixels are
+of a real type. This filter works for any dimensional images, however
+for dimensions greater than 3D, an expensive brute-force search is
+used to compute the local threshold.
+ Reference: \"Level Set Methods and Fast Marching Methods\", J.A.
+Sethian, Cambridge Press, Chapter 16, Second edition, 1999.
+
+
+See:
+ MinMaxCurvatureFlowFunction
+
+ CurvatureFlowImageFilter
+
+ BinaryMinMaxCurvatureFlowImageFilter
+
+ itk::simple::MinMaxCurvatureFlow for the procedural interface
+
+ itk::MinMaxCurvatureFlowImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkMinMaxCurvatureFlowImageFilter.h
+";
+
+%feature("docstring")  itk::simple::MinMaxCurvatureFlowImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::MinMaxCurvatureFlowImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::MinMaxCurvatureFlowImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::MinMaxCurvatureFlowImageFilter::GetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::MinMaxCurvatureFlowImageFilter::GetStencilRadius "
+
+Set/Get the stencil radius.
+
+";
+
+%feature("docstring")  itk::simple::MinMaxCurvatureFlowImageFilter::GetTimeStep "
+";
+
+%feature("docstring")  itk::simple::MinMaxCurvatureFlowImageFilter::MinMaxCurvatureFlowImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::MinMaxCurvatureFlowImageFilter::SetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::MinMaxCurvatureFlowImageFilter::SetStencilRadius "
+
+Set/Get the stencil radius.
+
+";
+
+%feature("docstring")  itk::simple::MinMaxCurvatureFlowImageFilter::SetTimeStep "
+";
+
+%feature("docstring")  itk::simple::MinMaxCurvatureFlowImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::MinMaxCurvatureFlowImageFilter::~MinMaxCurvatureFlowImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::MinimumImageFilter "
+
+Implements a pixel-wise operator Min(a,b) between two images.
+
+
+The pixel values of the output image are the minimum between the
+corresponding pixels of the two input images.
+
+This class is templated over the types of the two input images and the
+type of the output image. Numeric conversions (castings) are done by
+the C++ defaults.
+
+Wiki Examples:
+
+All Examples
+
+Pixel wise compare two input images and set the output pixel to their
+min
+See:
+ itk::simple::Minimum for the procedural interface
+
+ itk::MinimumImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkMinimumImageFilter.h
+";
+
+%feature("docstring")  itk::simple::MinimumImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::MinimumImageFilter::Execute "
+
+Execute the filter with an image and a constant
+
+";
+
+%feature("docstring")  itk::simple::MinimumImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::MinimumImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::MinimumImageFilter::MinimumImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::MinimumImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::MinimumImageFilter::~MinimumImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::MinimumMaximumImageFilter "
+
+Computes the minimum and the maximum intensity values of an image.
+
+
+It is templated over input image type only. This filter just copies
+the input image through this output to be included within the
+pipeline. The implementation uses the StatisticsImageFilter .
+
+
+See:
+ StatisticsImageFilter
+
+ itk::MinimumMaximumImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkMinimumMaximumImageFilter.h
+";
+
+%feature("docstring")  itk::simple::MinimumMaximumImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::MinimumMaximumImageFilter::GetMaximum "
+
+Return the computed Maximum.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::MinimumMaximumImageFilter::GetMinimum "
+
+Return the computed Minimum.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::MinimumMaximumImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::MinimumMaximumImageFilter::MinimumMaximumImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::MinimumMaximumImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::MinimumMaximumImageFilter::~MinimumMaximumImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::MinimumProjectionImageFilter "
+
+Minimum projection.
+
+
+This class was contributed to the Insight Journal by Gaetan Lehmann.
+The original paper can be found at https://hdl.handle.net/1926/164
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ ProjectionImageFilter
+
+ StandardDeviationProjectionImageFilter
+
+ SumProjectionImageFilter
+
+ BinaryProjectionImageFilter
+
+ MaximumProjectionImageFilter
+
+ MeanProjectionImageFilter
+
+ itk::simple::MinimumProjection for the procedural interface
+
+ itk::MinimumProjectionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkMinimumProjectionImageFilter.h
+";
+
+%feature("docstring")  itk::simple::MinimumProjectionImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::MinimumProjectionImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::MinimumProjectionImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::MinimumProjectionImageFilter::GetProjectionDimension "
+";
+
+%feature("docstring")  itk::simple::MinimumProjectionImageFilter::MinimumProjectionImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::MinimumProjectionImageFilter::SetProjectionDimension "
+";
+
+%feature("docstring")  itk::simple::MinimumProjectionImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::MinimumProjectionImageFilter::~MinimumProjectionImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::MirrorPadImageFilter "
+
+Increase the image size by padding with replicants of the input image
+value.
+
+
+MirrorPadImageFilter changes the image bounds of an image. Any added pixels are filled in
+with a mirrored replica of the input image. For instance, if the
+output image needs a pixel that is two pixels to the left of the
+LargestPossibleRegion of the input image, the value assigned will be
+from the pixel two pixels inside the left boundary of the
+LargestPossibleRegion. The image bounds of the output must be
+specified.
+
+Visual explanation of padding regions. This filter is implemented as a
+multithreaded filter. It provides a ThreadedGenerateData() method for
+its implementation.
+
+
+See:
+ WrapPadImageFilter , ConstantPadImageFilter
+Wiki Examples:
+
+All Examples
+
+Pad an image using mirroring over the boundaries
+See:
+ itk::simple::MirrorPad for the procedural interface
+
+ itk::MirrorPadImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkMirrorPadImageFilter.h
+";
+
+%feature("docstring")  itk::simple::MirrorPadImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::MirrorPadImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::MirrorPadImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::MirrorPadImageFilter::GetPadLowerBound "
+";
+
+%feature("docstring")  itk::simple::MirrorPadImageFilter::GetPadUpperBound "
+";
+
+%feature("docstring")  itk::simple::MirrorPadImageFilter::MirrorPadImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::MirrorPadImageFilter::SetPadLowerBound "
+";
+
+%feature("docstring")  itk::simple::MirrorPadImageFilter::SetPadUpperBound "
+";
+
+%feature("docstring")  itk::simple::MirrorPadImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::MirrorPadImageFilter::~MirrorPadImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ModulusImageFilter "
+
+Computes the modulus (x % dividend) pixel-wise.
+
+
+The input pixel type must support the c++ modulus operator (%).
+
+If the dividend is zero, the maximum value will be returned.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ itk::simple::Modulus for the procedural interface
+
+ itk::ModulusImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkModulusImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ModulusImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::ModulusImageFilter::Execute "
+
+Execute the filter with an image and a constant
+
+";
+
+%feature("docstring")  itk::simple::ModulusImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::ModulusImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ModulusImageFilter::ModulusImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ModulusImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ModulusImageFilter::~ModulusImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::MomentsThresholdImageFilter "
+
+Threshold an image using the Moments Threshold.
+
+
+This filter creates a binary thresholded image that separates an image
+into foreground and background components. The filter computes the
+threshold using the MomentsThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .
+
+
+Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+ Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/10380/3279 or http://www.insight-journal.org/browse/publication/811
+
+
+See:
+ HistogramThresholdImageFilter
+
+ itk::simple::MomentsThreshold for the procedural interface
+
+ itk::MomentsThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkMomentsThresholdImageFilter.h
+";
+
+%feature("docstring")  itk::simple::MomentsThresholdImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::MomentsThresholdImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::MomentsThresholdImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::MomentsThresholdImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::MomentsThresholdImageFilter::GetInsideValue "
+
+Get the \"inside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::MomentsThresholdImageFilter::GetMaskOutput "
+";
+
+%feature("docstring")  itk::simple::MomentsThresholdImageFilter::GetMaskValue "
+";
+
+%feature("docstring")  itk::simple::MomentsThresholdImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::MomentsThresholdImageFilter::GetNumberOfHistogramBins "
+";
+
+%feature("docstring")  itk::simple::MomentsThresholdImageFilter::GetOutsideValue "
+
+Get the \"outside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::MomentsThresholdImageFilter::GetThreshold "
+
+Get the computed threshold.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::MomentsThresholdImageFilter::MaskOutputOff "
+";
+
+%feature("docstring")  itk::simple::MomentsThresholdImageFilter::MaskOutputOn "
+
+Set the value of MaskOutput to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::MomentsThresholdImageFilter::MomentsThresholdImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::MomentsThresholdImageFilter::SetInsideValue "
+
+Set the \"inside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::MomentsThresholdImageFilter::SetMaskOutput "
+
+Do you want the output to be masked by the mask used in histogram
+construction. Only relevant if masking is in use.
+
+";
+
+%feature("docstring")  itk::simple::MomentsThresholdImageFilter::SetMaskValue "
+
+The value in the mask image, if used, indicating voxels that should be
+included. Default is the max of pixel type, as in the
+MaskedImageToHistogramFilter
+
+";
+
+%feature("docstring")  itk::simple::MomentsThresholdImageFilter::SetNumberOfHistogramBins "
+
+Set/Get the number of histogram bins.
+
+";
+
+%feature("docstring")  itk::simple::MomentsThresholdImageFilter::SetOutsideValue "
+
+Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.
+
+";
+
+%feature("docstring")  itk::simple::MomentsThresholdImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::MomentsThresholdImageFilter::~MomentsThresholdImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::MorphologicalGradientImageFilter "
+
+gray scale dilation of an image
+
+
+Dilate an image using grayscale morphology. Dilation takes the maximum
+of all the pixels identified by the structuring element.
+
+The structuring element is assumed to be composed of binary values
+(zero or one). Only elements of the structuring element having values
+> 0 are candidates for affecting the center pixel.
+
+
+See:
+ MorphologyImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter
+
+ itk::simple::MorphologicalGradient for the procedural interface
+
+ itk::MorphologicalGradientImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkMorphologicalGradientImageFilter.h
+";
+
+%feature("docstring")  itk::simple::MorphologicalGradientImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalGradientImageFilter::GetKernelRadius "
+";
+
+%feature("docstring")  itk::simple::MorphologicalGradientImageFilter::GetKernelType "
+";
+
+%feature("docstring")  itk::simple::MorphologicalGradientImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalGradientImageFilter::MorphologicalGradientImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalGradientImageFilter::SetKernelRadius "
+
+Kernel radius as a scale for isotropic structures
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalGradientImageFilter::SetKernelRadius "
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalGradientImageFilter::SetKernelType "
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalGradientImageFilter::SetKernelType "
+";
+
+%feature("docstring")  itk::simple::MorphologicalGradientImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalGradientImageFilter::~MorphologicalGradientImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::MorphologicalWatershedFromMarkersImageFilter "
+
+Morphological watershed transform from markers.
+
+
+The watershed transform is a tool for image segmentation that is fast
+and flexible and potentially fairly parameter free. It was originally
+derived from a geophysical model of rain falling on a terrain and a
+variety of more formal definitions have been devised to allow
+development of practical algorithms. If an image is considered as a
+terrain and divided into catchment basins then the hope is that each
+catchment basin would contain an object of interest.
+
+The output is a label image. A label image, sometimes referred to as a
+categorical image, has unique values for each region. For example, if
+a watershed produces 2 regions, all pixels belonging to one region
+would have value A, and all belonging to the other might have value B.
+Unassigned pixels, such as watershed lines, might have the background
+value (0 by convention).
+
+The simplest way of using the watershed is to preprocess the image we
+want to segment so that the boundaries of our objects are bright (e.g
+apply an edge detector) and compute the watershed transform of the
+edge image. Watershed lines will correspond to the boundaries and our
+problem will be solved. This is rarely useful in practice because
+there are always more regional minima than there are objects, either
+due to noise or natural variations in the object surfaces. Therefore,
+while many watershed lines do lie on significant boundaries, there are
+many that don't. Various methods can be used to reduce the number of
+minima in the image, like thresholding the smallest values, filtering
+the minima and/or smoothing the image.
+
+This filter use another approach to avoid the problem of over
+segmentation: it let the user provide a marker image which mark the
+minima in the input image and give them a label. The minima are
+imposed in the input image by the markers. The labels of the output
+image are the label of the marker image.
+
+The morphological watershed transform algorithm is described in
+Chapter 9.2 of Pierre Soille's book \"Morphological Image Analysis:
+Principles and Applications\", Second Edition, Springer, 2003.
+
+This code was contributed in the Insight Journal paper: \"The
+watershed transform in ITK - discussion and new developments\" by
+Beare R., Lehmann G. https://hdl.handle.net/1926/202 http://www.insight-journal.org/browse/publication/92
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+ Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+
+
+See:
+ WatershedImageFilter , MorphologicalWatershedImageFilter
+
+ itk::simple::MorphologicalWatershedFromMarkers for the procedural interface
+
+ itk::MorphologicalWatershedFromMarkersImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkMorphologicalWatershedFromMarkersImageFilter.h
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedFromMarkersImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedFromMarkersImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedFromMarkersImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedFromMarkersImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedFromMarkersImageFilter::GetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedFromMarkersImageFilter::GetMarkWatershedLine "
+
+Set/Get whether the watershed pixel must be marked or not. Default is
+true. Set it to false do not only avoid writing watershed pixels, it
+also decrease algorithm complexity.
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedFromMarkersImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedFromMarkersImageFilter::MarkWatershedLineOff "
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedFromMarkersImageFilter::MarkWatershedLineOn "
+
+Set the value of MarkWatershedLine to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedFromMarkersImageFilter::MorphologicalWatershedFromMarkersImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedFromMarkersImageFilter::SetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedFromMarkersImageFilter::SetMarkWatershedLine "
+
+Set/Get whether the watershed pixel must be marked or not. Default is
+true. Set it to false do not only avoid writing watershed pixels, it
+also decrease algorithm complexity.
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedFromMarkersImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedFromMarkersImageFilter::~MorphologicalWatershedFromMarkersImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::MorphologicalWatershedImageFilter "
+
+Watershed segmentation implementation with morphogical operators.
+
+
+Watershed pixel are labeled 0. TOutputImage should be an integer type.
+Labels of output image are in no particular order. You can reorder the
+labels such that object labels are consecutive and sorted based on
+object size by passing the output of this filter to a RelabelComponentImageFilter .
+
+The morphological watershed transform algorithm is described in
+Chapter 9.2 of Pierre Soille's book \"Morphological Image Analysis:
+Principles and Applications\", Second Edition, Springer, 2003.
+
+This code was contributed in the Insight Journal paper: \"The
+watershed transform in ITK - discussion and new developments\" by
+Beare R., Lehmann G. https://hdl.handle.net/1926/202 http://www.insight-journal.org/browse/publication/92
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ WatershedImageFilter , MorphologicalWatershedFromMarkersImageFilter
+
+ itk::simple::MorphologicalWatershed for the procedural interface
+
+ itk::MorphologicalWatershedImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkMorphologicalWatershedImageFilter.h
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedImageFilter::GetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedImageFilter::GetLevel "
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedImageFilter::GetMarkWatershedLine "
+
+Set/Get whether the watershed pixel must be marked or not. Default is
+true. Set it to false do not only avoid writing watershed pixels, it
+also decrease algorithm complexity.
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedImageFilter::MarkWatershedLineOff "
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedImageFilter::MarkWatershedLineOn "
+
+Set the value of MarkWatershedLine to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedImageFilter::MorphologicalWatershedImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedImageFilter::SetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedImageFilter::SetLevel "
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedImageFilter::SetMarkWatershedLine "
+
+Set/Get whether the watershed pixel must be marked or not. Default is
+true. Set it to false do not only avoid writing watershed pixels, it
+also decrease algorithm complexity.
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedImageFilter::~MorphologicalWatershedImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::MultiLabelSTAPLEImageFilter "
+
+This filter performs a pixelwise combination of an arbitrary number of
+input images, where each of them represents a segmentation of the same
+scene (i.e., image).
+
+
+The labelings in the images are weighted relative to each other based
+on their \"performance\" as estimated by an expectation-maximization
+algorithm. In the process, a ground truth segmentation is estimated,
+and the estimated performances of the individual segmentations are
+relative to this estimated ground truth.
+
+The algorithm is based on the binary STAPLE algorithm by Warfield et
+al. as published originally in
+
+S. Warfield, K. Zou, W. Wells, \"Validation of image segmentation and
+expert quality with an expectation-maximization algorithm\" in MICCAI
+2002: Fifth International Conference on Medical Image Computing and Computer-Assisted Intervention, Springer-Verlag,
+Heidelberg, Germany, 2002, pp. 298-306
+
+The multi-label algorithm implemented here is described in detail in
+
+T. Rohlfing, D. B. Russakoff, and C. R. Maurer, Jr., \"Performance-
+based classifier combination in atlas-based image segmentation using
+expectation-maximization parameter estimation,\" IEEE Transactions on
+Medical Imaging, vol. 23, pp. 983-994, Aug. 2004.
+
+INPUTS
+All input volumes to this filter must be segmentations of an image,
+that is, they must have discrete pixel values where each value
+represents a different segmented object.
+ Input volumes must all contain the same size RequestedRegions. Not all input images must contain all possible labels, but all label
+values must have the same meaning in all images.
+
+The filter can optionally be provided with estimates for the a priori
+class probabilities through the SetPriorProbabilities function. If no
+estimate is provided, one is automatically generated by analyzing the
+relative frequencies of the labels in the input images.
+
+OUTPUTS
+The filter produces a single output volume. Each output pixel contains
+the label that has the highest probability of being the correct label,
+based on the performance models of the individual segmentations. If
+the maximum probaility is not unique, i.e., if more than one label
+have a maximum probability, then an \"undecided\" label is assigned to
+that output pixel.
+ By default, the label used for undecided pixels is the maximum label
+value used in the input images plus one. Since it is possible for an
+image with 8 bit pixel values to use all 256 possible label values, it
+is permissible to combine 8 bit (i.e., byte) images into a 16 bit
+(i.e., short) output image.
+
+In addition to the combined image, the estimated confusion matrices
+for each of the input segmentations can be obtained through the
+GetConfusionMatrix member function.
+
+PARAMETERS
+The label used for \"undecided\" labels can be set using
+SetLabelForUndecidedPixels. This functionality can be unset by calling
+UnsetLabelForUndecidedPixels.
+ A termination threshold for the EM iteration can be defined by
+calling SetTerminationUpdateThreshold. The iteration terminates once
+no single parameter of any confusion matrix changes by less than this
+threshold. Alternatively, a maximum number of iterations can be
+specified by calling SetMaximumNumberOfIterations. The algorithm may
+still terminate after a smaller number of iterations if the
+termination threshold criterion is satisfied.
+
+EVENTS
+This filter invokes IterationEvent() at each iteration of the E-M
+algorithm. Setting the AbortGenerateData() flag will cause the
+algorithm to halt after the current iteration and produce results just
+as if it had converged. The algorithm makes no attempt to report its
+progress since the number of iterations needed cannot be known in
+advance.
+
+Torsten Rohlfing, SRI International, Neuroscience Program
+
+See:
+ itk::simple::MultiLabelSTAPLE for the procedural interface
+
+
+C++ includes: sitkMultiLabelSTAPLEImageFilter.h
+";
+
+%feature("docstring")  itk::simple::MultiLabelSTAPLEImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::MultiLabelSTAPLEImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::MultiLabelSTAPLEImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::MultiLabelSTAPLEImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::MultiLabelSTAPLEImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::MultiLabelSTAPLEImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::MultiLabelSTAPLEImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::MultiLabelSTAPLEImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::MultiLabelSTAPLEImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::MultiLabelSTAPLEImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::MultiLabelSTAPLEImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::MultiLabelSTAPLEImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::MultiLabelSTAPLEImageFilter::GetConfusionMatrix "
+
+Get confusion matrix for the i-th input segmentation.
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::MultiLabelSTAPLEImageFilter::GetLabelForUndecidedPixels "
+
+     Get label value used for undecided pixels.
+
+After updating the filter, this function returns the actual label
+value used for undecided pixels in the current output. Note that this
+value is overwritten when SetLabelForUndecidedPixels is called and the
+new value only becomes effective upon the next filter update.
+
+";
+
+%feature("docstring")  itk::simple::MultiLabelSTAPLEImageFilter::GetMaximumNumberOfIterations "
+
+Set maximum number of iterations.
+
+";
+
+%feature("docstring")  itk::simple::MultiLabelSTAPLEImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::MultiLabelSTAPLEImageFilter::GetPriorProbabilities "
+
+     Get prior class probabilities.
+
+After updating the filter, this function returns the actual prior
+class probabilities. If these were not previously set by a call to
+SetPriorProbabilities, then they are estimated from the input
+segmentations and the result is available through this function.
+
+";
+
+%feature("docstring")  itk::simple::MultiLabelSTAPLEImageFilter::GetTerminationUpdateThreshold "
+
+Set termination threshold based on confusion matrix parameter updates.
+
+";
+
+%feature("docstring")  itk::simple::MultiLabelSTAPLEImageFilter::MultiLabelSTAPLEImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::MultiLabelSTAPLEImageFilter::SetLabelForUndecidedPixels "
+
+Set label value for undecided pixels.
+
+";
+
+%feature("docstring")  itk::simple::MultiLabelSTAPLEImageFilter::SetMaximumNumberOfIterations "
+
+Set maximum number of iterations.
+
+";
+
+%feature("docstring")  itk::simple::MultiLabelSTAPLEImageFilter::SetPriorProbabilities "
+
+    Set manual estimates for the a priori class probabilities. The
+size of the array must be greater than the value of the largest label. The index into the array corresponds to the label
+value in the segmented image for the class.
+
+";
+
+%feature("docstring")  itk::simple::MultiLabelSTAPLEImageFilter::SetTerminationUpdateThreshold "
+
+Set termination threshold based on confusion matrix parameter updates.
+
+";
+
+%feature("docstring")  itk::simple::MultiLabelSTAPLEImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::MultiLabelSTAPLEImageFilter::~MultiLabelSTAPLEImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::MultiplyImageFilter "
+
+Pixel-wise multiplication of two images.
+
+
+This class is templated over the types of the two input images and the
+type of the output image. Numeric conversions (castings) are done by
+the C++ defaults.
+
+Wiki Examples:
+
+All Examples
+
+Multiply two images together
+
+Multiply every pixel in an image by a constant
+See:
+ itk::simple::Multiply for the procedural interface
+
+ itk::MultiplyImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkMultiplyImageFilter.h
+";
+
+%feature("docstring")  itk::simple::MultiplyImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::MultiplyImageFilter::Execute "
+
+Execute the filter with an image and a constant
+
+";
+
+%feature("docstring")  itk::simple::MultiplyImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::MultiplyImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::MultiplyImageFilter::MultiplyImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::MultiplyImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::MultiplyImageFilter::~MultiplyImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::N4BiasFieldCorrectionImageFilter "
+
+Implementation of the N4 bias field correction algorithm.
+
+
+The nonparametric nonuniform intensity normalization (N3) algorithm,
+as introduced by Sled et al. in 1998 is a method for correcting
+nonuniformity associated with MR images. The algorithm assumes a
+simple parametric model (Gaussian) for the bias field and does not
+require tissue class segmentation. In addition, there are only a
+couple of parameters to tune with the default values performing quite
+well. N3 has been publicly available as a set of perl scripts ( http://www.bic.mni.mcgill.ca/ServicesSoftwareAdvancedImageProcessingTo
+ols/HomePage )
+
+The N4 algorithm, encapsulated with this class, is a variation of the
+original N3 algorithm with the additional benefits of an improved
+B-spline fitting routine which allows for multiple resolutions to be
+used during the correction process. We also modify the iterative
+update component of algorithm such that the residual bias field is
+continually updated
+
+Notes for the user:
+Since much of the image manipulation is done in the log space of the
+intensities, input images with negative and small values (< 1) can
+produce poor results.
+
+The original authors recommend performing the bias field correction on
+a downsampled version of the original image.
+
+A binary mask or a weighted image can be supplied. If a binary mask is
+specified, those voxels in the input image which correspond to the
+voxels in the mask image are used to estimate the bias field. If a
+UseMaskLabel value is set to true, only voxels in the MaskImage that
+match the MaskLabel will be used; otherwise, all non-zero voxels in
+the MaskImage will be masked. If a confidence image is specified, the
+input voxels are weighted in the b-spline fitting routine according to
+the confidence voxel values.
+
+The filter returns the corrected image. If the bias field is wanted,
+one can reconstruct it using the class
+itkBSplineControlPointImageFilter. See the IJ article and the test
+file for an example.
+
+The 'Z' parameter in Sled's 1998 paper is the square root of the class
+variable 'm_WienerFilterNoise'.
+ The basic algorithm iterates between sharpening the intensity
+histogram of the corrected input image and spatially smoothing those
+results with a B-spline scalar field estimate of the bias field.
+
+
+Nicholas J. Tustison
+ Contributed by Nicholas J. Tustison, James C. Gee in the Insight
+Journal paper: https://hdl.handle.net/10380/3053
+
+REFERENCE
+ J.G. Sled, A.P. Zijdenbos and A.C. Evans. \"A Nonparametric Method
+for Automatic Correction of Intensity Nonuniformity in Data\" IEEE
+Transactions on Medical Imaging, Vol 17, No 1. Feb 1998.
+
+N.J. Tustison, B.B. Avants, P.A. Cook, Y. Zheng, A. Egan, P.A.
+Yushkevich, and J.C. Gee. \"N4ITK: Improved N3 Bias Correction\" IEEE
+Transactions on Medical Imaging, 29(6):1310-1320, June 2010.
+See:
+ itk::simple::N4BiasFieldCorrection for the procedural interface
+
+ itk::N4BiasFieldCorrectionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkN4BiasFieldCorrectionImageFilter.h
+";
+
+%feature("docstring")  itk::simple::N4BiasFieldCorrectionImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::N4BiasFieldCorrectionImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::N4BiasFieldCorrectionImageFilter::GetBiasFieldFullWidthAtHalfMaximum "
+
+Get the full width at half maximum parameter characterizing the width
+of the Gaussian deconvolution. Default = 0.15.
+
+";
+
+%feature("docstring")  itk::simple::N4BiasFieldCorrectionImageFilter::GetConvergenceThreshold "
+
+Get the convergence threshold. Convergence is determined by the
+coefficient of variation of the difference image between the current
+bias field estimate and the previous estimate. If this value is less
+than the specified threshold, the algorithm proceeds to the next
+fitting level or terminates if it is at the last level.
+
+";
+
+%feature("docstring")  itk::simple::N4BiasFieldCorrectionImageFilter::GetMaximumNumberOfIterations "
+
+Get the maximum number of iterations specified at each fitting level.
+Default = 50.
+
+";
+
+%feature("docstring")  itk::simple::N4BiasFieldCorrectionImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::N4BiasFieldCorrectionImageFilter::GetNumberOfControlPoints "
+
+Get the control point grid size defining the B-spline estimate of the
+scalar bias field. In each dimension, the B-spline mesh size is equal
+to the number of control points in that dimension minus the spline
+order. Default = 4 control points in each dimension for a mesh size of
+1 in each dimension.
+
+";
+
+%feature("docstring")  itk::simple::N4BiasFieldCorrectionImageFilter::GetNumberOfHistogramBins "
+
+Get number of bins defining the log input intensity histogram. Default
+= 200.
+
+";
+
+%feature("docstring")  itk::simple::N4BiasFieldCorrectionImageFilter::GetSplineOrder "
+
+Get the spline order defining the bias field estimate. Default = 3.
+
+";
+
+%feature("docstring")  itk::simple::N4BiasFieldCorrectionImageFilter::GetWienerFilterNoise "
+
+Get the noise estimate defining the Wiener filter. Default = 0.01.
+
+";
+
+%feature("docstring")  itk::simple::N4BiasFieldCorrectionImageFilter::N4BiasFieldCorrectionImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::N4BiasFieldCorrectionImageFilter::SetBiasFieldFullWidthAtHalfMaximum "
+
+Set the full width at half maximum parameter characterizing the width
+of the Gaussian deconvolution. Default = 0.15.
+
+";
+
+%feature("docstring")  itk::simple::N4BiasFieldCorrectionImageFilter::SetConvergenceThreshold "
+
+Set the convergence threshold. Convergence is determined by the
+coefficient of variation of the difference image between the current
+bias field estimate and the previous estimate. If this value is less
+than the specified threshold, the algorithm proceeds to the next
+fitting level or terminates if it is at the last level.
+
+";
+
+%feature("docstring")  itk::simple::N4BiasFieldCorrectionImageFilter::SetMaximumNumberOfIterations "
+
+Set the maximum number of iterations specified at each fitting level.
+Default = 50.
+
+";
+
+%feature("docstring")  itk::simple::N4BiasFieldCorrectionImageFilter::SetNumberOfControlPoints "
+
+Set the control point grid size defining the B-spline estimate of the
+scalar bias field. In each dimension, the B-spline mesh size is equal
+to the number of control points in that dimension minus the spline
+order. Default = 4 control points in each dimension for a mesh size of
+1 in each dimension.
+
+";
+
+%feature("docstring")  itk::simple::N4BiasFieldCorrectionImageFilter::SetNumberOfControlPoints "
+
+Set the values of the NumberOfControlPoints vector all to value
+
+";
+
+%feature("docstring")  itk::simple::N4BiasFieldCorrectionImageFilter::SetNumberOfHistogramBins "
+
+Set number of bins defining the log input intensity histogram. Default
+= 200.
+
+";
+
+%feature("docstring")  itk::simple::N4BiasFieldCorrectionImageFilter::SetSplineOrder "
+
+Set the spline order defining the bias field estimate. Default = 3.
+
+";
+
+%feature("docstring")  itk::simple::N4BiasFieldCorrectionImageFilter::SetWienerFilterNoise "
+
+Set the noise estimate defining the Wiener filter. Default = 0.01.
+
+";
+
+%feature("docstring")  itk::simple::N4BiasFieldCorrectionImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::N4BiasFieldCorrectionImageFilter::~N4BiasFieldCorrectionImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::NaryAddImageFilter "
+
+Pixel-wise addition of N images.
+
+
+This class is templated over the types of the input images and the
+type of the output image. Numeric conversions (castings) are done by
+the C++ defaults.
+
+The pixel type of the input images must have a valid definition of the
+operator+ with each other. This condition is required because
+internally this filter will perform the operation
+
+
+Additionally the type resulting from the sum, will be cast to the
+pixel type of the output image.
+
+The total operation over one pixel will be
+
+
+For example, this filter could be used directly for adding images
+whose pixels are vectors of the same dimension, and to store the
+resulting vector in an output image of vector pixels.
+
+
+WARNING:
+No numeric overflow checking is performed in this filter.
+
+See:
+ itk::simple::NaryAdd for the procedural interface
+
+
+C++ includes: sitkNaryAddImageFilter.h
+";
+
+%feature("docstring")  itk::simple::NaryAddImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::NaryAddImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::NaryAddImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::NaryAddImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::NaryAddImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::NaryAddImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::NaryAddImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::NaryAddImageFilter::NaryAddImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::NaryAddImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::NaryAddImageFilter::~NaryAddImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::NaryMaximumImageFilter "
+
+Computes the pixel-wise maximum of several images.
+
+
+This class is templated over the types of the input images and the
+type of the output image. Numeric conversions (castings) are done by
+the C++ defaults.
+
+The pixel type of the output images must have a valid definition of
+the operator<. This condition is required because internally this
+filter will perform an operation similar to:
+
+ (where current_maximum is also of type OutputPixelType)
+
+for each of the n input images.
+
+For example, this filter could be used directly to find a \"maximum
+projection\" of a series of images, often used in preliminary analysis
+of time-series data.
+
+
+Zachary Pincus
+ This filter was contributed by Zachary Pincus from the Department of
+Biochemistry and Program in Biomedical Informatics at Stanford
+University School of Medicine
+
+
+See:
+ itk::simple::NaryMaximum for the procedural interface
+
+
+C++ includes: sitkNaryMaximumImageFilter.h
+";
+
+%feature("docstring")  itk::simple::NaryMaximumImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::NaryMaximumImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::NaryMaximumImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::NaryMaximumImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::NaryMaximumImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::NaryMaximumImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::NaryMaximumImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::NaryMaximumImageFilter::NaryMaximumImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::NaryMaximumImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::NaryMaximumImageFilter::~NaryMaximumImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::NeighborhoodConnectedImageFilter "
+
+Label pixels that are connected to a seed and lie within a
+neighborhood.
+
+
+NeighborhoodConnectedImageFilter labels pixels with ReplaceValue that are connected to an initial Seed
+AND whose neighbors all lie within a Lower and Upper threshold range.
+See:
+ itk::simple::NeighborhoodConnected for the procedural interface
+
+ itk::NeighborhoodConnectedImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkNeighborhoodConnectedImageFilter.h
+";
+
+%feature("docstring")  itk::simple::NeighborhoodConnectedImageFilter::AddSeed "
+
+AddSeed - Add a seed to the end of the list
+
+";
+
+%feature("docstring")  itk::simple::NeighborhoodConnectedImageFilter::ClearSeeds "
+
+ClearSeeds - Clear out all seeds in the list
+
+";
+
+%feature("docstring")  itk::simple::NeighborhoodConnectedImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::NeighborhoodConnectedImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::NeighborhoodConnectedImageFilter::GetLower "
+
+Set/Get the lower threshold. The default is 0.
+
+";
+
+%feature("docstring")  itk::simple::NeighborhoodConnectedImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::NeighborhoodConnectedImageFilter::GetRadius "
+
+Get the radius of the neighborhood used to compute the median
+
+";
+
+%feature("docstring")  itk::simple::NeighborhoodConnectedImageFilter::GetReplaceValue "
+
+Set/Get value to replace thresholded pixels. Pixels that lie * within
+Lower and Upper (inclusive) will be replaced with this value. The
+default is 1.
+
+";
+
+%feature("docstring")  itk::simple::NeighborhoodConnectedImageFilter::GetSeedList "
+
+Get SeedList
+
+";
+
+%feature("docstring")  itk::simple::NeighborhoodConnectedImageFilter::GetUpper "
+
+Set/Get the upper threshold. The default is the largest possible value
+for the InputPixelType.
+
+";
+
+%feature("docstring")  itk::simple::NeighborhoodConnectedImageFilter::NeighborhoodConnectedImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::NeighborhoodConnectedImageFilter::SetLower "
+
+Set/Get the lower threshold. The default is 0.
+
+";
+
+%feature("docstring")  itk::simple::NeighborhoodConnectedImageFilter::SetRadius "
+
+Set the radius of the neighborhood used for a mask.
+
+";
+
+%feature("docstring")  itk::simple::NeighborhoodConnectedImageFilter::SetRadius "
+
+Set the values of the Radius vector all to value
+
+";
+
+%feature("docstring")  itk::simple::NeighborhoodConnectedImageFilter::SetReplaceValue "
+
+Set/Get value to replace thresholded pixels. Pixels that lie * within
+Lower and Upper (inclusive) will be replaced with this value. The
+default is 1.
+
+";
+
+%feature("docstring")  itk::simple::NeighborhoodConnectedImageFilter::SetSeed "
+
+SetSeed - Set list to a single seed
+
+";
+
+%feature("docstring")  itk::simple::NeighborhoodConnectedImageFilter::SetSeedList "
+
+Set SeedList
+
+";
+
+%feature("docstring")  itk::simple::NeighborhoodConnectedImageFilter::SetUpper "
+
+Set/Get the upper threshold. The default is the largest possible value
+for the InputPixelType.
+
+";
+
+%feature("docstring")  itk::simple::NeighborhoodConnectedImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::NeighborhoodConnectedImageFilter::~NeighborhoodConnectedImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::NoiseImageFilter "
+
+Calculate the local noise in an image.
+
+
+Computes an image where a given pixel is the standard deviation of the
+pixels in a neighborhood about the corresponding input pixel. This
+serves as an estimate of the local noise (or texture) in an image.
+Currently, this noise estimate assume a piecewise constant image. This
+filter should be extended to fitting a (hyper) plane to the
+neighborhood and calculating the standard deviation of the residuals
+to this (hyper) plane.
+
+
+See:
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+Wiki Examples:
+
+All Examples
+
+Compute the local noise in an image
+See:
+ itk::simple::Noise for the procedural interface
+
+ itk::NoiseImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkNoiseImageFilter.h
+";
+
+%feature("docstring")  itk::simple::NoiseImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::NoiseImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::NoiseImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::NoiseImageFilter::GetRadius "
+";
+
+%feature("docstring")  itk::simple::NoiseImageFilter::NoiseImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::NoiseImageFilter::SetRadius "
+";
+
+%feature("docstring")  itk::simple::NoiseImageFilter::SetRadius "
+
+Set the values of the Radius vector all to value
+
+";
+
+%feature("docstring")  itk::simple::NoiseImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::NoiseImageFilter::~NoiseImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::NonCopyable "
+
+An inheratable class to disable copying of a class.
+
+
+This class disable the implicit implementations of the assignment and
+copy constructor for derived classes. The instantiation of the default
+implementation for either method in a derived class will result in a
+compile-time error because they are private in this class. However,
+this policy is not absolute for derived classes because explicit
+implementation of these methods could be implemented.
+
+An advatange this apporach has is the class heiarchy makes it obvious
+what the intent is, as compared to other appoaches.
+
+For example you should not be able to copy singleton object, because
+there should only be one of them. To utilize this class just derive
+from it:
+
+C++ includes: sitkNonCopyable.h
+";
+
+
+%feature("docstring") itk::simple::NormalizeImageFilter "
+
+Normalize an image by setting its mean to zero and variance to one.
+
+
+NormalizeImageFilter shifts and scales an image so that the pixels in the image have a
+zero mean and unit variance. This filter uses StatisticsImageFilter to compute the mean and variance of the input and then applies ShiftScaleImageFilter to shift and scale the pixels.
+
+NB: since this filter normalizes the data to lie within -1 to 1,
+integral types will produce an image that DOES NOT HAVE a unit
+variance.
+
+
+See:
+ NormalizeToConstantImageFilter
+Wiki Examples:
+
+All Examples
+
+Normalize an image
+See:
+ itk::simple::Normalize for the procedural interface
+
+ itk::NormalizeImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkNormalizeImageFilter.h
+";
+
+%feature("docstring")  itk::simple::NormalizeImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::NormalizeImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::NormalizeImageFilter::NormalizeImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::NormalizeImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::NormalizeImageFilter::~NormalizeImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::NormalizeToConstantImageFilter "
+
+Scales image pixel intensities to make the sum of all pixels equal a
+user-defined constant.
+
+
+The default value of the constant is 1. It can be changed with SetConstant() .
+
+This transform is especially useful for normalizing a convolution
+kernel.
+
+This code was contributed in the Insight Journal paper: \"FFT based
+convolution\" by Lehmann G. https://hdl.handle.net/10380/3154
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ NormalizeImageFilter
+
+ StatisticsImageFilter
+
+ DivideImageFilter
+Wiki Examples:
+
+All Examples
+
+Scale all pixels so that their sum is a specified constant
+See:
+ itk::simple::NormalizeToConstant for the procedural interface
+
+ itk::NormalizeToConstantImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkNormalizeToConstantImageFilter.h
+";
+
+%feature("docstring")  itk::simple::NormalizeToConstantImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::NormalizeToConstantImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::NormalizeToConstantImageFilter::GetConstant "
+
+Set/get the normalization constant.
+
+";
+
+%feature("docstring")  itk::simple::NormalizeToConstantImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::NormalizeToConstantImageFilter::NormalizeToConstantImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::NormalizeToConstantImageFilter::SetConstant "
+
+Set/get the normalization constant.
+
+";
+
+%feature("docstring")  itk::simple::NormalizeToConstantImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::NormalizeToConstantImageFilter::~NormalizeToConstantImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::NormalizedCorrelationImageFilter "
+
+Computes the normalized correlation of an image and a template.
+
+
+This filter calculates the normalized correlation between an image and
+the template. Normalized correlation is frequently use in feature
+detection because it is invariant to local changes in contrast.
+
+The filter can be given a mask. When presented with an input image and
+a mask, the normalized correlation is only calculated at those pixels
+under the mask.
+
+
+See:
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+Wiki Examples:
+
+All Examples
+
+Normalized correlation
+See:
+ itk::simple::NormalizedCorrelation for the procedural interface
+
+ itk::NormalizedCorrelationImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkNormalizedCorrelationImageFilter.h
+";
+
+%feature("docstring")  itk::simple::NormalizedCorrelationImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::NormalizedCorrelationImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::NormalizedCorrelationImageFilter::NormalizedCorrelationImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::NormalizedCorrelationImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::NormalizedCorrelationImageFilter::~NormalizedCorrelationImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::NotEqualImageFilter "
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This class is parameterized over the types of the two input images and
+the type of the output image. It is also parameterized by the
+operation to be applied. A Functor style is used.
+
+The constant must be of the same type than the pixel type of the
+corresponding image. It is wrapped in a SimpleDataObjectDecorator so it can be updated through the pipeline. The SetConstant() and
+GetConstant() methods are provided as shortcuts to set or get the
+constant value without manipulating the decorator.
+
+
+See:
+ UnaryFunctorImageFilter TernaryFunctorImageFilter
+Wiki Examples:
+
+All Examples
+
+Apply a predefined operation to corresponding pixels in two images
+
+Apply a custom operation to corresponding pixels in two images
+See:
+ itk::simple::NotEqual for the procedural interface
+
+ itk::BinaryFunctorImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkNotEqualImageFilter.h
+";
+
+%feature("docstring")  itk::simple::NotEqualImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::NotEqualImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::NotEqualImageFilter::Execute "
+
+Execute the filter with an image and a constant
+
+";
+
+%feature("docstring")  itk::simple::NotEqualImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::NotEqualImageFilter::Execute "
+
+Execute the filter on an image and a constant with the given
+parameters
+
+";
+
+%feature("docstring")  itk::simple::NotEqualImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::NotEqualImageFilter::GetBackgroundValue "
+
+Set/Get the value used to mark the false pixels of the operator.
+
+";
+
+%feature("docstring")  itk::simple::NotEqualImageFilter::GetForegroundValue "
+
+Set/Get the value used to mark the true pixels of the operator.
+
+";
+
+%feature("docstring")  itk::simple::NotEqualImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::NotEqualImageFilter::NotEqualImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::NotEqualImageFilter::SetBackgroundValue "
+
+Set/Get the value used to mark the false pixels of the operator.
+
+";
+
+%feature("docstring")  itk::simple::NotEqualImageFilter::SetForegroundValue "
+
+Set/Get the value used to mark the true pixels of the operator.
+
+";
+
+%feature("docstring")  itk::simple::NotEqualImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::NotEqualImageFilter::~NotEqualImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::NotImageFilter "
+
+Implements the NOT logical operator pixel-wise on an image.
+
+
+This class is templated over the type of an input image and the type
+of the output image. Numeric conversions (castings) are done by the
+C++ defaults.
+
+Since the logical NOT operation operates only on boolean types, the
+input type must be implicitly convertible to bool, which is only
+defined in C++ for integer types, the images passed to this filter
+must comply with the requirement of using integer pixel type.
+
+The total operation over one pixel will be
+
+
+Where \"!\" is the unary Logical NOT operator in C++.
+See:
+ itk::simple::Not for the procedural interface
+
+ itk::NotImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkNotImageFilter.h
+";
+
+%feature("docstring")  itk::simple::NotImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::NotImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::NotImageFilter::NotImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::NotImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::NotImageFilter::~NotImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::OpeningByReconstructionImageFilter "
+
+Opening by reconstruction of an image.
+
+
+This filter preserves regions, in the foreground, that can completely
+contain the structuring element. At the same time, this filter
+eliminates all other regions of foreground pixels. Contrary to the
+mophological opening, the opening by reconstruction preserves the
+shape of the components that are not removed by erosion. The opening
+by reconstruction of an image \"f\" is defined as:
+
+OpeningByReconstruction(f) = DilationByRecontruction(f, Erosion(f)).
+
+Opening by reconstruction not only removes structures destroyed by the
+erosion, but also levels down the contrast of the brightest regions.
+If PreserveIntensities is on, a subsequent reconstruction by dilation
+using a marker image that is the original image for all unaffected
+pixels.
+
+Opening by reconstruction is described in Chapter 6.3.9 of Pierre
+Soille's book \"Morphological Image Analysis: Principles and
+Applications\", Second Edition, Springer, 2003.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ GrayscaleMorphologicalOpeningImageFilter
+
+ itk::simple::OpeningByReconstruction for the procedural interface
+
+ itk::OpeningByReconstructionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkOpeningByReconstructionImageFilter.h
+";
+
+%feature("docstring")  itk::simple::OpeningByReconstructionImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::OpeningByReconstructionImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::OpeningByReconstructionImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::OpeningByReconstructionImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::OpeningByReconstructionImageFilter::GetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::OpeningByReconstructionImageFilter::GetKernelRadius "
+";
+
+%feature("docstring")  itk::simple::OpeningByReconstructionImageFilter::GetKernelType "
+";
+
+%feature("docstring")  itk::simple::OpeningByReconstructionImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::OpeningByReconstructionImageFilter::GetPreserveIntensities "
+
+Set/Get whether the original intensities of the image retained for
+those pixels unaffected by the opening by reconstrcution. If Off, the
+output pixel contrast will be reduced.
+
+";
+
+%feature("docstring")  itk::simple::OpeningByReconstructionImageFilter::OpeningByReconstructionImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::OpeningByReconstructionImageFilter::PreserveIntensitiesOff "
+";
+
+%feature("docstring")  itk::simple::OpeningByReconstructionImageFilter::PreserveIntensitiesOn "
+
+Set the value of PreserveIntensities to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::OpeningByReconstructionImageFilter::SetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::OpeningByReconstructionImageFilter::SetKernelRadius "
+
+Kernel radius as a scale for isotropic structures
+
+";
+
+%feature("docstring")  itk::simple::OpeningByReconstructionImageFilter::SetKernelRadius "
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+";
+
+%feature("docstring")  itk::simple::OpeningByReconstructionImageFilter::SetKernelType "
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+";
+
+%feature("docstring")  itk::simple::OpeningByReconstructionImageFilter::SetKernelType "
+";
+
+%feature("docstring")  itk::simple::OpeningByReconstructionImageFilter::SetPreserveIntensities "
+
+Set/Get whether the original intensities of the image retained for
+those pixels unaffected by the opening by reconstrcution. If Off, the
+output pixel contrast will be reduced.
+
+";
+
+%feature("docstring")  itk::simple::OpeningByReconstructionImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::OpeningByReconstructionImageFilter::~OpeningByReconstructionImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::OrImageFilter "
+
+Implements the OR bitwise operator pixel-wise between two images.
+
+
+This class is templated over the types of the two input images and the
+type of the output image. Numeric conversions (castings) are done by
+the C++ defaults.
+
+Since the bitwise OR operation is only defined in C++ for integer
+types, the images passed to this filter must comply with the
+requirement of using integer pixel type.
+
+The total operation over one pixel will be
+
+
+Where \"|\" is the boolean OR operator in C++.
+
+Wiki Examples:
+
+All Examples
+
+Binary OR two images
+See:
+ itk::simple::Or for the procedural interface
+
+ itk::OrImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkOrImageFilter.h
+";
+
+%feature("docstring")  itk::simple::OrImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::OrImageFilter::Execute "
+
+Execute the filter with an image and a constant
+
+";
+
+%feature("docstring")  itk::simple::OrImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::OrImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::OrImageFilter::OrImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::OrImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::OrImageFilter::~OrImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::OtsuMultipleThresholdsImageFilter "
+
+Threshold an image using multiple Otsu Thresholds.
+
+
+This filter creates a labeled image that separates the input image
+into various classes. The filter computes the thresholds using the OtsuMultipleThresholdsCalculator and applies those thresholds to the input image using the ThresholdLabelerImageFilter . The NumberOfHistogramBins and NumberOfThresholds can be set for the
+Calculator. The LabelOffset can be set for the ThresholdLabelerImageFilter .
+
+This filter also includes an option to use the valley emphasis
+algorithm from H.F. Ng, \"Automatic thresholding for defect
+detection\", Pattern Recognition Letters, (27): 1644-1649, 2006. The
+valley emphasis algorithm is particularly effective when the object to
+be thresholded is small. See the following tests for examples:
+itkOtsuMultipleThresholdsImageFilterTest3 and
+itkOtsuMultipleThresholdsImageFilterTest4 To use this algorithm,
+simple call the setter: SetValleyEmphasis(true) It is turned off by
+default.
+
+
+See:
+ ScalarImageToHistogramGenerator
+
+ OtsuMultipleThresholdsCalculator
+
+ ThresholdLabelerImageFilter
+
+ itk::simple::OtsuMultipleThresholds for the procedural interface
+
+ itk::OtsuMultipleThresholdsImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkOtsuMultipleThresholdsImageFilter.h
+";
+
+%feature("docstring")  itk::simple::OtsuMultipleThresholdsImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::OtsuMultipleThresholdsImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::OtsuMultipleThresholdsImageFilter::GetLabelOffset "
+
+Set/Get the offset which labels have to start from. Default is 0.
+
+";
+
+%feature("docstring")  itk::simple::OtsuMultipleThresholdsImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::OtsuMultipleThresholdsImageFilter::GetNumberOfHistogramBins "
+
+Set/Get the number of histogram bins. Default is 128.
+
+";
+
+%feature("docstring")  itk::simple::OtsuMultipleThresholdsImageFilter::GetNumberOfThresholds "
+
+Set/Get the number of thresholds. Default is 1.
+
+";
+
+%feature("docstring")  itk::simple::OtsuMultipleThresholdsImageFilter::GetThresholds "
+
+Get the computed threshold.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::OtsuMultipleThresholdsImageFilter::GetValleyEmphasis "
+
+Set/Get the use of valley emphasis. Default is false.
+
+";
+
+%feature("docstring")  itk::simple::OtsuMultipleThresholdsImageFilter::OtsuMultipleThresholdsImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::OtsuMultipleThresholdsImageFilter::SetLabelOffset "
+
+Set/Get the offset which labels have to start from. Default is 0.
+
+";
+
+%feature("docstring")  itk::simple::OtsuMultipleThresholdsImageFilter::SetNumberOfHistogramBins "
+
+Set/Get the number of histogram bins. Default is 128.
+
+";
+
+%feature("docstring")  itk::simple::OtsuMultipleThresholdsImageFilter::SetNumberOfThresholds "
+
+Set/Get the number of thresholds. Default is 1.
+
+";
+
+%feature("docstring")  itk::simple::OtsuMultipleThresholdsImageFilter::SetValleyEmphasis "
+
+Set/Get the use of valley emphasis. Default is false.
+
+";
+
+%feature("docstring")  itk::simple::OtsuMultipleThresholdsImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::OtsuMultipleThresholdsImageFilter::ValleyEmphasisOff "
+";
+
+%feature("docstring")  itk::simple::OtsuMultipleThresholdsImageFilter::ValleyEmphasisOn "
+
+Set the value of ValleyEmphasis to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::OtsuMultipleThresholdsImageFilter::~OtsuMultipleThresholdsImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::OtsuThresholdImageFilter "
+
+Threshold an image using the Otsu Threshold.
+
+
+This filter creates a binary thresholded image that separates an image
+into foreground and background components. The filter computes the
+threshold using the OtsuThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .
+
+
+Richard Beare
+ Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/10380/3279 or http://www.insight-journal.org/browse/publication/811
+
+Wiki Examples:
+
+All Examples
+
+Separate foreground and background using Otsu's method
+
+See:
+ HistogramThresholdImageFilter
+
+ itk::simple::OtsuThreshold for the procedural interface
+
+ itk::OtsuThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkOtsuThresholdImageFilter.h
+";
+
+%feature("docstring")  itk::simple::OtsuThresholdImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::OtsuThresholdImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::OtsuThresholdImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::OtsuThresholdImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::OtsuThresholdImageFilter::GetInsideValue "
+
+Get the \"inside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::OtsuThresholdImageFilter::GetMaskOutput "
+";
+
+%feature("docstring")  itk::simple::OtsuThresholdImageFilter::GetMaskValue "
+";
+
+%feature("docstring")  itk::simple::OtsuThresholdImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::OtsuThresholdImageFilter::GetNumberOfHistogramBins "
+";
+
+%feature("docstring")  itk::simple::OtsuThresholdImageFilter::GetOutsideValue "
+
+Get the \"outside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::OtsuThresholdImageFilter::GetThreshold "
+
+Get the computed threshold.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::OtsuThresholdImageFilter::MaskOutputOff "
+";
+
+%feature("docstring")  itk::simple::OtsuThresholdImageFilter::MaskOutputOn "
+
+Set the value of MaskOutput to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::OtsuThresholdImageFilter::OtsuThresholdImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::OtsuThresholdImageFilter::SetInsideValue "
+
+Set the \"inside\" pixel value. The default value NumericTraits<OutputPixelType>::max()
+
+";
+
+%feature("docstring")  itk::simple::OtsuThresholdImageFilter::SetMaskOutput "
+
+Do you want the output to be masked by the mask used in histogram
+construction. Only relevant if masking is in use.
+
+";
+
+%feature("docstring")  itk::simple::OtsuThresholdImageFilter::SetMaskValue "
+
+The value in the mask image, if used, indicating voxels that should be
+included. Default is the max of pixel type, as in the
+MaskedImageToHistogramFilter
+
+";
+
+%feature("docstring")  itk::simple::OtsuThresholdImageFilter::SetNumberOfHistogramBins "
+
+Set/Get the number of histogram bins. Defaults is 128.
+
+";
+
+%feature("docstring")  itk::simple::OtsuThresholdImageFilter::SetOutsideValue "
+
+Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.
+
+";
+
+%feature("docstring")  itk::simple::OtsuThresholdImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::OtsuThresholdImageFilter::~OtsuThresholdImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::PasteImageFilter "
+
+Paste an image into another image.
+
+
+PasteImageFilter allows you to take a section of one image and paste into another
+image. The SetDestinationIndex() method prescribes where in the first input to start pasting data from
+the second input. The SetSourceRegion method prescribes the section of
+the second image to paste into the first. If the output requested
+region does not include the SourceRegion after it has been
+repositioned to DestinationIndex, then the output will just be a copy
+of the input.
+
+The two inputs and output image will have the same pixel type.
+
+Wiki Examples:
+
+All Examples
+
+Paste a part of one image into another image
+See:
+ itk::simple::Paste for the procedural interface
+
+ itk::PasteImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkPasteImageFilter.h
+";
+
+%feature("docstring")  itk::simple::PasteImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::PasteImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::PasteImageFilter::GetDestinationIndex "
+
+Set/Get the destination index (where in the first input the second
+input will be pasted.
+
+";
+
+%feature("docstring")  itk::simple::PasteImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::PasteImageFilter::GetSourceIndex "
+";
+
+%feature("docstring")  itk::simple::PasteImageFilter::GetSourceSize "
+";
+
+%feature("docstring")  itk::simple::PasteImageFilter::PasteImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::PasteImageFilter::SetDestinationIndex "
+
+Set/Get the destination index (where in the first input the second
+input will be pasted.
+
+";
+
+%feature("docstring")  itk::simple::PasteImageFilter::SetSourceIndex "
+";
+
+%feature("docstring")  itk::simple::PasteImageFilter::SetSourceSize "
+";
+
+%feature("docstring")  itk::simple::PasteImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::PasteImageFilter::~PasteImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::PatchBasedDenoisingImageFilter "
+
+Derived class implementing a specific patch-based denoising algorithm,
+as detailed below.
+
+
+This class is derived from the base class PatchBasedDenoisingBaseImageFilter ; please refer to the documentation of the base class first. This
+class implements a denoising filter that uses iterative non-local, or
+semi-local, weighted averaging of image patches for image denoising.
+The intensity at each pixel 'p' gets updated as a weighted average of
+intensities of a chosen subset of pixels from the image.
+
+This class implements the denoising algorithm using a Gaussian kernel
+function for nonparametric density estimation. The class implements a
+scheme to automatically estimated the kernel bandwidth parameter
+(namely, sigma) using leave-one-out cross validation. It implements
+schemes for random sampling of patches non-locally (from the entire
+image) as well as semi-locally (from the spatial proximity of the
+pixel being denoised at the specific point in time). It implements a
+specific scheme for defining patch weights (mask) as described in
+Awate and Whitaker 2005 IEEE CVPR and 2006 IEEE TPAMI.
+
+
+See:
+ PatchBasedDenoisingBaseImageFilter
+
+ itk::PatchBasedDenoisingImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkPatchBasedDenoisingImageFilter.h
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::AlwaysTreatComponentsAsEuclideanOff "
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::AlwaysTreatComponentsAsEuclideanOn "
+
+Set the value of AlwaysTreatComponentsAsEuclidean to true or false
+respectfully.
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::GetAlwaysTreatComponentsAsEuclidean "
+
+Set/Get flag indicating whether all components should always be
+treated as if they are in euclidean space regardless of pixel type.
+Defaults to false.
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::GetKernelBandwidthEstimation "
+
+Set/Get flag indicating whether kernel-bandwidth should be estimated
+automatically from the image data. Defaults to true.
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::GetKernelBandwidthFractionPixelsForEstimation "
+
+Set/Get the fraction of the image to use for kernel bandwidth sigma
+estimation. To reduce the computational burden for computing sigma, a
+small random fraction of the image pixels can be used.
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::GetKernelBandwidthMultiplicationFactor "
+
+Set/Get the kernel bandwidth sigma multiplication factor used to
+modify the automatically-estimated kernel bandwidth sigma. At times,
+it may be desirable to modify the value of the automatically-estimated
+sigma. Typically, this number isn't very far from 1. Note: This is
+used only when KernelBandwidthEstimation is True/On.
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::GetKernelBandwidthSigma "
+
+Set/Get initial kernel bandwidth estimate. To prevent the class from
+automatically modifying this estimate, set KernelBandwidthEstimation
+to false in the base class.
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::GetKernelBandwidthUpdateFrequency "
+
+Set/Get the update frequency for the kernel bandwidth estimation. An
+optimal bandwidth will be re-estimated based on the denoised image
+after every 'n' iterations. Must be a positive integer. Defaults to 3,
+i.e. bandwidth updated after every 3 denoising iteration.
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::GetNoiseModel "
+
+Set/Get the noise model type. Defaults to GAUSSIAN. To use the noise
+model during denoising, FidelityWeight must be positive.
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::GetNoiseModelFidelityWeight "
+
+Set/Get the weight on the fidelity term (penalizes deviations from the
+noisy data). This option is used when a noise model is specified. This
+weight controls the balance between the smoothing and the closeness to
+the noisy data.
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::GetNoiseSigma "
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::GetNumberOfIterations "
+
+Set/Get the number of denoising iterations to perform. Must be a
+positive integer. Defaults to 1.
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::GetNumberOfSamplePatches "
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::GetPatchRadius "
+
+Set/Get the patch radius specified in physical coordinates. Patch
+radius is preferably set to an even number. Currently, only isotropic
+patches in physical space are allowed; patches can be anisotropic in
+voxel space.
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::GetSampleVariance "
+
+Set/Get the variance of the domain where patches are sampled.
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::KernelBandwidthEstimationOff "
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::KernelBandwidthEstimationOn "
+
+Set the value of KernelBandwidthEstimation to true or false
+respectfully.
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::PatchBasedDenoisingImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::SetAlwaysTreatComponentsAsEuclidean "
+
+Set/Get flag indicating whether all components should always be
+treated as if they are in euclidean space regardless of pixel type.
+Defaults to false.
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::SetKernelBandwidthEstimation "
+
+Set/Get flag indicating whether kernel-bandwidth should be estimated
+automatically from the image data. Defaults to true.
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::SetKernelBandwidthFractionPixelsForEstimation "
+
+Set/Get the fraction of the image to use for kernel bandwidth sigma
+estimation. To reduce the computational burden for computing sigma, a
+small random fraction of the image pixels can be used.
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::SetKernelBandwidthMultiplicationFactor "
+
+Set/Get the kernel bandwidth sigma multiplication factor used to
+modify the automatically-estimated kernel bandwidth sigma. At times,
+it may be desirable to modify the value of the automatically-estimated
+sigma. Typically, this number isn't very far from 1. Note: This is
+used only when KernelBandwidthEstimation is True/On.
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::SetKernelBandwidthSigma "
+
+Set/Get initial kernel bandwidth estimate. To prevent the class from
+automatically modifying this estimate, set KernelBandwidthEstimation
+to false in the base class.
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::SetKernelBandwidthUpdateFrequency "
+
+Set/Get the update frequency for the kernel bandwidth estimation. An
+optimal bandwidth will be re-estimated based on the denoised image
+after every 'n' iterations. Must be a positive integer. Defaults to 3,
+i.e. bandwidth updated after every 3 denoising iteration.
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::SetNoiseModel "
+
+Set/Get the noise model type. Defaults to GAUSSIAN. To use the noise
+model during denoising, FidelityWeight must be positive.
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::SetNoiseModelFidelityWeight "
+
+Set/Get the weight on the fidelity term (penalizes deviations from the
+noisy data). This option is used when a noise model is specified. This
+weight controls the balance between the smoothing and the closeness to
+the noisy data.
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::SetNoiseSigma "
+
+Set/Get the noise sigma. Used by the noise model where appropriate,
+defaults to 5% of the image intensity range
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::SetNumberOfIterations "
+
+Set/Get the number of denoising iterations to perform. Must be a
+positive integer. Defaults to 1.
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::SetNumberOfSamplePatches "
+
+Set/Get the number of patches to sample for each pixel.
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::SetPatchRadius "
+
+Set/Get the patch radius specified in physical coordinates. Patch
+radius is preferably set to an even number. Currently, only isotropic
+patches in physical space are allowed; patches can be anisotropic in
+voxel space.
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::SetSampleVariance "
+
+Set/Get the variance of the domain where patches are sampled.
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoisingImageFilter::~PatchBasedDenoisingImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::PermuteAxesImageFilter "
+
+Permutes the image axes according to a user specified order.
+
+
+PermuateAxesImageFilter permutes the image axes according to a user
+specified order. The permutation order is set via method SetOrder(
+order ) where the input is an array of ImageDimension number of
+unsigned int. The elements of the array must be a rearrangment of the
+numbers from 0 to ImageDimension - 1.
+
+The i-th axis of the output image corresponds with the order[i]-th
+axis of the input image.
+
+The output meta image information (LargestPossibleRegion, spacing,
+origin) is computed by permuting the corresponding input meta
+information.
+
+Wiki Examples:
+
+All Examples
+
+Switch the axes of an image
+See:
+ itk::simple::PermuteAxes for the procedural interface
+
+ itk::PermuteAxesImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkPermuteAxesImageFilter.h
+";
+
+%feature("docstring")  itk::simple::PermuteAxesImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::PermuteAxesImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::PermuteAxesImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::PermuteAxesImageFilter::GetOrder "
+
+Get the permutation order.
+
+";
+
+%feature("docstring")  itk::simple::PermuteAxesImageFilter::PermuteAxesImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::PermuteAxesImageFilter::SetOrder "
+
+Set the permutation order. The elements of order must be a
+rearrangement of the numbers from 0 to ImageDimension - 1.
+
+";
+
+%feature("docstring")  itk::simple::PermuteAxesImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::PermuteAxesImageFilter::~PermuteAxesImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::PhysicalPointImageSource "
+
+Generate an image of the physical locations of each pixel.
+
+
+This image source supports image which have a multi-component pixel
+equal to the image dimension, and variable length VectorImages. It is
+recommended that the component type be a real valued type.
+See:
+ itk::simple::PhysicalPointImageSource for the procedural interface
+
+ itk::PhysicalPointImageSource for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkPhysicalPointImageSource.h
+";
+
+%feature("docstring")  itk::simple::PhysicalPointImageSource::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::PhysicalPointImageSource::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::PhysicalPointImageSource::GetDirection "
+";
+
+%feature("docstring")  itk::simple::PhysicalPointImageSource::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::PhysicalPointImageSource::GetOrigin "
+";
+
+%feature("docstring")  itk::simple::PhysicalPointImageSource::GetOutputPixelType "
+";
+
+%feature("docstring")  itk::simple::PhysicalPointImageSource::GetSize "
+";
+
+%feature("docstring")  itk::simple::PhysicalPointImageSource::GetSpacing "
+";
+
+%feature("docstring")  itk::simple::PhysicalPointImageSource::PhysicalPointImageSource "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::PhysicalPointImageSource::SetDirection "
+";
+
+%feature("docstring")  itk::simple::PhysicalPointImageSource::SetOrigin "
+";
+
+%feature("docstring")  itk::simple::PhysicalPointImageSource::SetOutputPixelType "
+";
+
+%feature("docstring")  itk::simple::PhysicalPointImageSource::SetReferenceImage "
+
+This methods sets the size, origin, spacing and direction to that of
+the provided image
+
+";
+
+%feature("docstring")  itk::simple::PhysicalPointImageSource::SetSize "
+";
+
+%feature("docstring")  itk::simple::PhysicalPointImageSource::SetSpacing "
+";
+
+%feature("docstring")  itk::simple::PhysicalPointImageSource::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::PhysicalPointImageSource::~PhysicalPointImageSource "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::PimpleImageBase "
+
+Private implementation idiom image base class.
+
+
+We utilize the private implementation ( or PImple) programming idiom
+to modify the behavior of the simple image class based on the
+different image types.
+
+This class is designed to utilize the trivial copy, and assgnement
+operators
+
+C++ includes: sitkPimpleImageBase.h
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::DeepCopy "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetBufferAsDouble "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetBufferAsDouble "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetBufferAsFloat "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetBufferAsFloat "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetBufferAsInt16 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetBufferAsInt16 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetBufferAsInt32 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetBufferAsInt32 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetBufferAsInt64 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetBufferAsInt64 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetBufferAsInt8 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetBufferAsInt8 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetBufferAsUInt16 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetBufferAsUInt16 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetBufferAsUInt32 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetBufferAsUInt32 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetBufferAsUInt64 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetBufferAsUInt64 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetBufferAsUInt8 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetBufferAsUInt8 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetDataBase "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetDataBase "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetDepth "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetDimension "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetDirection "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetHeight "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetNumberOfComponentsPerPixel "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetNumberOfPixels "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetOrigin "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetPixelAsComplexFloat32 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetPixelAsComplexFloat64 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetPixelAsDouble "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetPixelAsFloat "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetPixelAsInt16 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetPixelAsInt32 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetPixelAsInt64 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetPixelAsInt8 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetPixelAsUInt16 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetPixelAsUInt32 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetPixelAsUInt64 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetPixelAsUInt8 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetPixelAsVectorFloat32 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetPixelAsVectorFloat64 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetPixelAsVectorInt16 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetPixelAsVectorInt32 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetPixelAsVectorInt64 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetPixelAsVectorInt8 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetPixelAsVectorUInt16 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetPixelAsVectorUInt32 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetPixelAsVectorUInt64 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetPixelAsVectorUInt8 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetPixelID "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetReferenceCountOfImage "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetSize "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetSize "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetSpacing "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::GetWidth "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::SetDirection "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::SetOrigin "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::SetPixelAsComplexFloat32 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::SetPixelAsComplexFloat64 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::SetPixelAsDouble "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::SetPixelAsFloat "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::SetPixelAsInt16 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::SetPixelAsInt32 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::SetPixelAsInt64 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::SetPixelAsInt8 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::SetPixelAsUInt16 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::SetPixelAsUInt32 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::SetPixelAsUInt64 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::SetPixelAsUInt8 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::SetPixelAsVectorFloat32 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::SetPixelAsVectorFloat64 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::SetPixelAsVectorInt16 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::SetPixelAsVectorInt32 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::SetPixelAsVectorInt64 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::SetPixelAsVectorInt8 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::SetPixelAsVectorUInt16 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::SetPixelAsVectorUInt32 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::SetPixelAsVectorUInt64 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::SetPixelAsVectorUInt8 "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::SetSpacing "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::ShallowCopy "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::ToString "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::TransformContinuousIndexToPhysicalPoint "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::TransformIndexToPhysicalPoint "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::TransformPhysicalPointToContinuousIndex "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::TransformPhysicalPointToIndex "
+";
+
+%feature("docstring")  itk::simple::PimpleImageBase::~PimpleImageBase "
+";
+
+
+%feature("docstring") itk::simple::PowImageFilter "
+
+Computes the powers of 2 images.
+
+
+This class is templated over the types of the two input images and the
+type of the output image. Numeric conversions (castings) are done by
+the C++ defaults.
+
+The output of the pow function will be cast to the pixel type of the
+output image.
+
+The total operation over one pixel will be
+
+The pow function can be applied to two images with the following:
+
+Additionally, this filter can be used to raise every pixel of an image
+to a power of a constant by using
+See:
+ itk::simple::Pow for the procedural interface
+
+ itk::PowImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkPowImageFilter.h
+";
+
+%feature("docstring")  itk::simple::PowImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::PowImageFilter::Execute "
+
+Execute the filter with an image and a constant
+
+";
+
+%feature("docstring")  itk::simple::PowImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::PowImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::PowImageFilter::PowImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::PowImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::PowImageFilter::~PowImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ProcessObject "
+
+Base class for SimpleITK classes based on ProcessObject.
+
+C++ includes: sitkProcessObject.h
+";
+
+%feature("docstring")  itk::simple::ProcessObject::Abort "
+
+Sets an abort flag on the active process.
+
+Requests the current active process to abort. Additional, progress or
+iteration event may occur. If aborted then, an AbortEvent should
+occur. The Progress should be set to 1.0 after aborting.
+
+The expected behavior is that not exception should be throw out of
+this processes Execute method. Additionally, the results returned are
+valid but undefined content. The content may be only partially
+updated, uninitialized or the a of size zero.
+
+If there is no active process the method has no effect.
+
+";
+
+%feature("docstring")  itk::simple::ProcessObject::AddCommand "
+
+Add a Command Object to observer the event.
+
+
+The Command object's Execute method will be invoked when the internal ITK Object has the event. These events only occur during this ProcessObject's Execute method when the ITK filter is running. The command occurs
+in the same thread as this objects Execute methods was called in.
+
+An internal reference is made between the Command and this ProcessObject which enable automatic removal of the command when deleted. This
+enables both object to exist as stack based object and be
+automatically cleaned up.
+
+Unless specified otherwise, it's safe to get any value during
+execution. \"Measurements\" will have valid values only after the
+Execute method has returned. \"Active Measurements\" will have valid
+values during events, and access the underlying ITK object.
+
+Deleting a command this object has during a command call-back will
+produce undefined behavior.
+
+For more information see the page Commands and Events for SimpleITK.
+
+
+The return value is reserved for latter usage.
+
+
+";
+
+%feature("docstring")  itk::simple::ProcessObject::GetName "
+
+return user readable name for the filter
+
+";
+
+%feature("docstring")  itk::simple::ProcessObject::GetProgress "
+
+An Active Measurement of the progress of execution.
+
+
+Get the execution progress of the current process object. The progress
+is a floating number in [0,1] with 0 meaning no progress and 1 meaning
+the filter has completed execution (or aborted).
+
+This is an Active Measurement so it can be accessed during Events
+during the execution.
+
+";
+
+%feature("docstring")  itk::simple::ProcessObject::HasCommand "
+
+Query of this object has any registered commands for event.
+
+";
+
+%feature("docstring")  itk::simple::ProcessObject::ProcessObject "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ProcessObject::RemoveAllCommands "
+
+Remove all registered commands.
+
+
+Calling when this object is invoking anther command will produce
+undefined behavior.
+
+";
+
+%feature("docstring")  itk::simple::ProcessObject::ToString "
+";
+
+%feature("docstring")  itk::simple::ProcessObject::~ProcessObject "
+
+Default Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ProjectedLandweberDeconvolutionImageFilter "
+
+Deconvolve an image using the projected Landweber deconvolution
+algorithm.
+
+
+This filter performs the same calculation per iteration as the LandweberDeconvolutionImageFilter . However, at each iteration, negative pixels in the intermediate
+result are projected (set) to zero. This is useful if the solution is
+assumed to always be non-negative, which is the case when dealing with
+images formed by counting photons, for example.
+
+This code was adapted from the Insight Journal contribution:
+
+\"Deconvolution: infrastructure and reference algorithms\" by Gaetan
+Lehmann https://hdl.handle.net/10380/3207
+
+
+Gaetan Lehmann, Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France
+ Cory Quammen, The University of North Carolina at Chapel Hill
+
+
+See:
+ IterativeDeconvolutionImageFilter
+
+ RichardsonLucyDeconvolutionImageFilter
+
+ LandweberDeconvolutionImageFilter
+
+ itk::simple::ProjectedLandweberDeconvolution for the procedural interface
+
+ itk::ProjectedLandweberDeconvolutionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkProjectedLandweberDeconvolutionImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ProjectedLandweberDeconvolutionImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::ProjectedLandweberDeconvolutionImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ProjectedLandweberDeconvolutionImageFilter::GetAlpha "
+
+Get the relaxation factor.
+
+";
+
+%feature("docstring")  itk::simple::ProjectedLandweberDeconvolutionImageFilter::GetBoundaryCondition "
+";
+
+%feature("docstring")  itk::simple::ProjectedLandweberDeconvolutionImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ProjectedLandweberDeconvolutionImageFilter::GetNormalize "
+";
+
+%feature("docstring")  itk::simple::ProjectedLandweberDeconvolutionImageFilter::GetNumberOfIterations "
+
+Get the number of iterations.
+
+";
+
+%feature("docstring")  itk::simple::ProjectedLandweberDeconvolutionImageFilter::GetOutputRegionMode "
+";
+
+%feature("docstring")  itk::simple::ProjectedLandweberDeconvolutionImageFilter::NormalizeOff "
+";
+
+%feature("docstring")  itk::simple::ProjectedLandweberDeconvolutionImageFilter::NormalizeOn "
+
+Set the value of Normalize to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::ProjectedLandweberDeconvolutionImageFilter::ProjectedLandweberDeconvolutionImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ProjectedLandweberDeconvolutionImageFilter::SetAlpha "
+
+Set the relaxation factor.
+
+";
+
+%feature("docstring")  itk::simple::ProjectedLandweberDeconvolutionImageFilter::SetBoundaryCondition "
+";
+
+%feature("docstring")  itk::simple::ProjectedLandweberDeconvolutionImageFilter::SetNormalize "
+
+Normalize the output image by the sum of the kernel components
+
+";
+
+%feature("docstring")  itk::simple::ProjectedLandweberDeconvolutionImageFilter::SetNumberOfIterations "
+
+Set the number of iterations.
+
+";
+
+%feature("docstring")  itk::simple::ProjectedLandweberDeconvolutionImageFilter::SetOutputRegionMode "
+";
+
+%feature("docstring")  itk::simple::ProjectedLandweberDeconvolutionImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ProjectedLandweberDeconvolutionImageFilter::~ProjectedLandweberDeconvolutionImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::RankImageFilter "
+
+Rank filter of a greyscale image.
+
+
+Nonlinear filter in which each output pixel is a user defined rank of
+input pixels in a user defined neighborhood. The default rank is 0.5
+(median). The boundary conditions are different to the standard
+itkMedianImageFilter. In this filter the neighborhood is cropped at
+the boundary, and is therefore smaller.
+
+This filter uses a recursive implementation - essentially the one by
+Huang 1979, I believe, to compute the rank, and is therefore usually a
+lot faster than the direct implementation. The extensions to Huang are
+support for arbitrary pixel types (using c++ maps) and arbitrary
+neighborhoods. I presume that these are not new ideas.
+
+This filter is based on the sliding window code from the
+consolidatedMorphology package on InsightJournal.
+
+The structuring element is assumed to be composed of binary values
+(zero or one). Only elements of the structuring element having values
+> 0 are candidates for affecting the center pixel.
+
+This code was contributed in the Insight Journal paper: \"Efficient
+implementation of kernel filtering\" by Beare R., Lehmann G https://hdl.handle.net/1926/555 http://www.insight-journal.org/browse/publication/160
+
+
+Richard Beare
+
+See:
+ itk::simple::Rank for the procedural interface
+
+ itk::RankImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkRankImageFilter.h
+";
+
+%feature("docstring")  itk::simple::RankImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::RankImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::RankImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::RankImageFilter::GetRadius "
+";
+
+%feature("docstring")  itk::simple::RankImageFilter::GetRank "
+";
+
+%feature("docstring")  itk::simple::RankImageFilter::RankImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::RankImageFilter::SetRadius "
+";
+
+%feature("docstring")  itk::simple::RankImageFilter::SetRadius "
+
+Set the values of the Radius vector all to value
+
+";
+
+%feature("docstring")  itk::simple::RankImageFilter::SetRank "
+";
+
+%feature("docstring")  itk::simple::RankImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::RankImageFilter::~RankImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::RealAndImaginaryToComplexImageFilter "
+
+ComposeImageFilter combine several scalar images into a multicomponent image.
+
+
+ComposeImageFilter combine several scalar images into an itk::Image of vector pixel ( itk::Vector , itk::RGBPixel , ...), of std::complex pixel, or in an itk::VectorImage .
+
+Inputs and Usage
+ All input images are expected to have the same template parameters
+and have the same size and origin.
+
+See:
+ VectorImage
+
+ VectorIndexSelectionCastImageFilter
+Wiki Examples:
+
+All Examples
+
+Create a vector image from a collection of scalar images
+
+Compose a vector image (with 3 components) from three scalar images
+
+Convert a real image and an imaginary image to a complex image
+See:
+ itk::simple::RealAndImaginaryToComplex for the procedural interface
+
+ itk::ComposeImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkRealAndImaginaryToComplexImageFilter.h
+";
+
+%feature("docstring")  itk::simple::RealAndImaginaryToComplexImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::RealAndImaginaryToComplexImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::RealAndImaginaryToComplexImageFilter::RealAndImaginaryToComplexImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::RealAndImaginaryToComplexImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::RealAndImaginaryToComplexImageFilter::~RealAndImaginaryToComplexImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::RealToHalfHermitianForwardFFTImageFilter "
+
+Base class for specialized real-to-complex forward Fast Fourier Transform .
+
+
+This is a base class for the \"forward\" or \"direct\" discrete
+Fourier Transform . This is an abstract base class: the actual implementation is
+provided by the best child class available on the system when the
+object is created via the object factory system.
+
+This class transforms a real input image into its complex Fourier
+transform. The Fourier transform of a real input image has Hermitian
+symmetry: $ f(\\\\mathbf{x}) = f^*(-\\\\mathbf{x}) $ . That is, when the result of the transform is split in half along
+the X-dimension, the values in the second half of the transform are
+the complex conjugates of values in the first half reflected about the
+center of the image in each dimension. This filter takes advantage of
+the Hermitian symmetry property and reduces the size of the output in
+the first dimension to N/2+1, where N is the size of the input image
+in that dimension and the division by 2 is rounded down.
+
+
+See:
+ HalfHermitianToRealInverseFFTImageFilter
+
+ ForwardFFTImageFilter
+
+ itk::simple::RealToHalfHermitianForwardFFT for the procedural interface
+
+ itk::RealToHalfHermitianForwardFFTImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkRealToHalfHermitianForwardFFTImageFilter.h
+";
+
+%feature("docstring")  itk::simple::RealToHalfHermitianForwardFFTImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::RealToHalfHermitianForwardFFTImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::RealToHalfHermitianForwardFFTImageFilter::RealToHalfHermitianForwardFFTImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::RealToHalfHermitianForwardFFTImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::RealToHalfHermitianForwardFFTImageFilter::~RealToHalfHermitianForwardFFTImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ReconstructionByDilationImageFilter "
+
+grayscale reconstruction by dilation of an image
+
+
+Reconstruction by dilation operates on a \"marker\" image and a
+\"mask\" image, and is defined as the dilation of the marker image
+with respect to the mask image iterated until stability.
+
+The marker image must be less than or equal to the mask image (on a
+pixel by pixel basis).
+
+Geodesic morphology is described in Chapter 6.2 of Pierre Soille's
+book \"Morphological Image Analysis: Principles and Applications\",
+Second Edition, Springer, 2003.
+
+Algorithm implemented in this filter is based on algorithm described
+by Kevin Robinson and Paul F. Whelan in \"Efficient Morphological
+Reconstruction: A Downhill Filter\", Pattern Recognition Letters,
+Volume 25, Issue 15, November 2004, Pages 1759-1767.
+
+The algorithm, a description of the transform and some applications
+can be found in \"Morphological Grayscale Reconstruction in Image
+Analysis:  Applications and Efficient Algorithms\", Luc Vincent, IEEE
+Transactions on image processing, Vol. 2, April 1993.
+
+
+Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+
+See:
+ MorphologyImageFilter , GrayscaleDilateImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter , ReconstructionByErosionImageFilter , OpeningByReconstructionImageFilter , ClosingByReconstructionImageFilter , ReconstructionImageFilter
+
+ itk::simple::ReconstructionByDilation for the procedural interface
+
+ itk::ReconstructionByDilationImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkReconstructionByDilationImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ReconstructionByDilationImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::ReconstructionByDilationImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ReconstructionByDilationImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::ReconstructionByDilationImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::ReconstructionByDilationImageFilter::GetFullyConnected "
+";
+
+%feature("docstring")  itk::simple::ReconstructionByDilationImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ReconstructionByDilationImageFilter::GetUseInternalCopy "
+";
+
+%feature("docstring")  itk::simple::ReconstructionByDilationImageFilter::ReconstructionByDilationImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ReconstructionByDilationImageFilter::SetFullyConnected "
+";
+
+%feature("docstring")  itk::simple::ReconstructionByDilationImageFilter::SetUseInternalCopy "
+";
+
+%feature("docstring")  itk::simple::ReconstructionByDilationImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ReconstructionByDilationImageFilter::UseInternalCopyOff "
+";
+
+%feature("docstring")  itk::simple::ReconstructionByDilationImageFilter::UseInternalCopyOn "
+
+Set the value of UseInternalCopy to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::ReconstructionByDilationImageFilter::~ReconstructionByDilationImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ReconstructionByErosionImageFilter "
+
+grayscale reconstruction by erosion of an image
+
+
+Reconstruction by erosion operates on a \"marker\" image and a
+\"mask\" image, and is defined as the erosion of the marker image with
+respect to the mask image iterated until stability.
+
+The marker image must be less than or equal to the mask image (on a
+pixel by pixel basis).
+
+Geodesic morphology is described in Chapter 6.2 of Pierre Soille's
+book \"Morphological Image Analysis: Principles and Applications\",
+Second Edition, Springer, 2003.
+
+Algorithm implemented in this filter is based on algorithm described
+by Kevin Robinson and Paul F. Whelan in \"Efficient Morphological
+Reconstruction: A Downhill Filter\", Pattern Recognition Letters,
+Volume 25, Issue 15, November 2004, Pages 1759-1767.
+
+The algorithm, a description of the transform and some applications
+can be found in \"Morphological Grayscale Reconstruction in Image
+Analysis:  Applications and Efficient Algorithms\", Luc Vincent, IEEE
+Transactions on image processing, Vol. 2, April 1993.
+
+
+Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+
+See:
+ MorphologyImageFilter , GrayscaleDilateImageFilter , GrayscaleFunctionDilateImageFilter , BinaryDilateImageFilter , ReconstructionByErosionImageFilter , OpeningByReconstructionImageFilter , ClosingByReconstructionImageFilter , ReconstructionImageFilter
+
+ itk::simple::ReconstructionByErosion for the procedural interface
+
+ itk::ReconstructionByErosionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkReconstructionByErosionImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ReconstructionByErosionImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::ReconstructionByErosionImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ReconstructionByErosionImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::ReconstructionByErosionImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::ReconstructionByErosionImageFilter::GetFullyConnected "
+";
+
+%feature("docstring")  itk::simple::ReconstructionByErosionImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ReconstructionByErosionImageFilter::GetUseInternalCopy "
+";
+
+%feature("docstring")  itk::simple::ReconstructionByErosionImageFilter::ReconstructionByErosionImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ReconstructionByErosionImageFilter::SetFullyConnected "
+";
+
+%feature("docstring")  itk::simple::ReconstructionByErosionImageFilter::SetUseInternalCopy "
+";
+
+%feature("docstring")  itk::simple::ReconstructionByErosionImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ReconstructionByErosionImageFilter::UseInternalCopyOff "
+";
+
+%feature("docstring")  itk::simple::ReconstructionByErosionImageFilter::UseInternalCopyOn "
+
+Set the value of UseInternalCopy to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::ReconstructionByErosionImageFilter::~ReconstructionByErosionImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::RecursiveGaussianImageFilter "
+
+Base class for computing IIR convolution with an approximation of a
+Gaussian kernel.
+
+
+\\\\[ \\\\frac{ 1 }{ \\\\sigma \\\\sqrt{ 2 \\\\pi } } \\\\exp{
+\\\\left( - \\\\frac{x^2}{ 2 \\\\sigma^2 } \\\\right) } \\\\]
+
+RecursiveGaussianImageFilter is the base class for recursive filters that approximate convolution
+with the Gaussian kernel. This class implements the recursive
+filtering method proposed by R.Deriche in IEEE-PAMI Vol.12, No.1,
+January 1990, pp 78-87, \"Fast Algorithms for Low-Level Vision\"
+
+Details of the implementation are described in the technical report: R.
+Deriche, \"Recursively Implementing The Gaussian and Its
+Derivatives\", INRIA, 1993, ftp://ftp.inria.fr/INRIA/tech-reports/RR/RR-1893.ps.gz
+
+Further improvements of the algorithm are described in: G. Farneback &
+C.-F. Westin, \"On Implementation of Recursive Gaussian Filters\", so
+far unpublished.
+
+As compared to itk::DiscreteGaussianImageFilter , this filter tends to be faster for large kernels, and it can take
+the derivative of the blurred image in one step. Also, note that we
+have itk::RecursiveGaussianImageFilter::SetSigma() , but itk::DiscreteGaussianImageFilter::SetVariance() .
+
+
+See:
+ DiscreteGaussianImageFilter
+Wiki Examples:
+
+All Examples
+
+Find higher derivatives of an image
+See:
+ itk::simple::RecursiveGaussian for the procedural interface
+
+ itk::RecursiveGaussianImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkRecursiveGaussianImageFilter.h
+";
+
+%feature("docstring")  itk::simple::RecursiveGaussianImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::RecursiveGaussianImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::RecursiveGaussianImageFilter::GetDirection "
+";
+
+%feature("docstring")  itk::simple::RecursiveGaussianImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::RecursiveGaussianImageFilter::GetNormalizeAcrossScale "
+";
+
+%feature("docstring")  itk::simple::RecursiveGaussianImageFilter::GetOrder "
+
+     Set/Get the Order of the Gaussian to convolve with.
+
+
+ZeroOrder is equivalent to convolving with a Gaussian. This is the
+default.
+
+FirstOrder is equivalent to convolving with the first derivative of a
+Gaussian.
+
+SecondOrder is equivalent to convolving with the second derivative of
+a Gaussian.
+
+
+";
+
+%feature("docstring")  itk::simple::RecursiveGaussianImageFilter::GetSigma "
+
+Set/Get the Sigma, measured in world coordinates, of the Gaussian
+kernel. The default is 1.0. An exception will be generated if the
+Sigma value is less than or equal to zero.
+
+";
+
+%feature("docstring")  itk::simple::RecursiveGaussianImageFilter::NormalizeAcrossScaleOff "
+";
+
+%feature("docstring")  itk::simple::RecursiveGaussianImageFilter::NormalizeAcrossScaleOn "
+
+Set the value of NormalizeAcrossScale to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::RecursiveGaussianImageFilter::RecursiveGaussianImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::RecursiveGaussianImageFilter::SetDirection "
+";
+
+%feature("docstring")  itk::simple::RecursiveGaussianImageFilter::SetNormalizeAcrossScale "
+
+     Set/Get the flag for normalizing the gaussian over scale-space.
+
+This flag enables the analysis of the differential shape of features
+independent of their size ( both pixels and physical size ). Following
+the notation of Tony Lindeberg:
+
+Let \\\\[ L(x; t) = g(x; t) \\\\ast f(x) \\\\] be the scale-space representation of image \\\\[ f(x) \\\\] where \\\\[ g(x; t) = \\\\frac{1}{ \\\\sqrt{ 2 \\\\pi t} } \\\\exp{
+\\\\left( -\\\\frac{x^2}{ 2 t } \\\\right) } \\\\] is the Gaussian function and \\\\[\\\\ast\\\\] denotes convolution. This is a change from above with \\\\[ t = \\\\sigma^2 \\\\] .
+
+Then the normalized derivative operator for normalized coordinates
+across scale is:
+
+\\\\[ \\\\partial_\\\\xi = \\\\sqrt{t} \\\\partial_x \\\\]
+
+The resulting scaling factor is \\\\[ \\\\sigma^N \\\\] where N is the order of the derivative.
+
+When this flag is ON the filter will be normalized in such a way that
+the values of derivatives are not biased by the size of the object.
+That is to say the maximum value a feature reaches across scale is
+independent of the scale of the object.
+
+For analyzing an image across scale-space you want to enable this
+flag. It is disabled by default.
+
+
+Not all scale space axioms are satisfied by this filter, some are only
+approximated. Particularly, at fine scales ( say less than 1 pixel )
+other methods such as a discrete Gaussian kernel should be considered.
+
+
+";
+
+%feature("docstring")  itk::simple::RecursiveGaussianImageFilter::SetOrder "
+
+     Set/Get the Order of the Gaussian to convolve with.
+
+
+ZeroOrder is equivalent to convolving with a Gaussian. This is the
+default.
+
+FirstOrder is equivalent to convolving with the first derivative of a
+Gaussian.
+
+SecondOrder is equivalent to convolving with the second derivative of
+a Gaussian.
+
+
+";
+
+%feature("docstring")  itk::simple::RecursiveGaussianImageFilter::SetSigma "
+
+Set/Get the Sigma, measured in world coordinates, of the Gaussian
+kernel. The default is 1.0. An exception will be generated if the
+Sigma value is less than or equal to zero.
+
+";
+
+%feature("docstring")  itk::simple::RecursiveGaussianImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::RecursiveGaussianImageFilter::~RecursiveGaussianImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::RegionOfInterestImageFilter "
+
+Extract a region of interest from the input image.
+
+
+Extract a region of interest from the input image or convert between itk::Image and RLEImage (a custom region can be used).
+
+This filter produces an output image of the same dimension as the
+input image. The user specifies the region of the input image that
+will be contained in the output image. The origin coordinates of the
+output images will be computed in such a way that if mapped to
+physical space, the output image will overlay the input image with
+perfect registration. In other words, a registration process between
+the output image and the input image will return an identity
+transform.
+
+If you are interested in changing the dimension of the image, you may
+want to consider the ExtractImageFilter . For example for extracting a 2D image from a slice of a 3D image.
+
+The region to extract is set using the method SetRegionOfInterest.
+
+
+See:
+ ExtractImageFilter
+Wiki Examples:
+
+All Examples
+
+Extract a portion of an image (region of interest)
+ This filter produces an output image of the same dimension as the
+input image. The user specifies the region of the input image that
+will be contained in the output image. The origin coordinates of the
+output images will be computed in such a way that if mapped to
+physical space, the output image will overlay the input image with
+perfect registration. In other words, a registration process between
+the output image and the input image will return an identity
+transform.
+
+The region to extract is set using the method SetRegionOfInterest.
+
+Specialized for RLEImage .
+See:
+ itk::simple::RegionOfInterest for the procedural interface
+
+ itk::RegionOfInterestImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkRegionOfInterestImageFilter.h
+";
+
+%feature("docstring")  itk::simple::RegionOfInterestImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::RegionOfInterestImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::RegionOfInterestImageFilter::GetIndex "
+";
+
+%feature("docstring")  itk::simple::RegionOfInterestImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::RegionOfInterestImageFilter::GetSize "
+";
+
+%feature("docstring")  itk::simple::RegionOfInterestImageFilter::RegionOfInterestImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::RegionOfInterestImageFilter::SetIndex "
+
+odo the internal setting of the method need work!!!
+
+";
+
+%feature("docstring")  itk::simple::RegionOfInterestImageFilter::SetSize "
+";
+
+%feature("docstring")  itk::simple::RegionOfInterestImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::RegionOfInterestImageFilter::~RegionOfInterestImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::RegionalMaximaImageFilter "
+
+Produce a binary image where foreground is the regional maxima of the
+input image.
+
+
+Regional maxima are flat zones surrounded by pixels of lower value.
+
+If the input image is constant, the entire image can be considered as
+a maxima or not. The desired behavior can be selected with the SetFlatIsMaxima() method.
+
+
+Gaetan Lehmann
+ This class was contributed to the Insight Journal by author Gaetan
+Lehmann. Biologie du Developpement et de la Reproduction, INRA de
+Jouy-en-Josas, France. The paper can be found at https://hdl.handle.net/1926/153
+
+
+See:
+ ValuedRegionalMaximaImageFilter
+
+ HConvexImageFilter
+
+ RegionalMinimaImageFilter
+Wiki Examples:
+
+All Examples
+
+RegionalMaximaImageFilter
+See:
+ itk::simple::RegionalMaxima for the procedural interface
+
+ itk::RegionalMaximaImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkRegionalMaximaImageFilter.h
+";
+
+%feature("docstring")  itk::simple::RegionalMaximaImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::RegionalMaximaImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::RegionalMaximaImageFilter::FlatIsMaximaOff "
+";
+
+%feature("docstring")  itk::simple::RegionalMaximaImageFilter::FlatIsMaximaOn "
+
+Set the value of FlatIsMaxima to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::RegionalMaximaImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::RegionalMaximaImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::RegionalMaximaImageFilter::GetBackgroundValue "
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+";
+
+%feature("docstring")  itk::simple::RegionalMaximaImageFilter::GetFlatIsMaxima "
+
+Set/Get wether a flat image must be considered as a maxima or not.
+Defaults to true.
+
+";
+
+%feature("docstring")  itk::simple::RegionalMaximaImageFilter::GetForegroundValue "
+
+Set/Get the value in the output image to consider as \"foreground\".
+Defaults to maximum value of PixelType.
+
+";
+
+%feature("docstring")  itk::simple::RegionalMaximaImageFilter::GetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::RegionalMaximaImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::RegionalMaximaImageFilter::RegionalMaximaImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::RegionalMaximaImageFilter::SetBackgroundValue "
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+";
+
+%feature("docstring")  itk::simple::RegionalMaximaImageFilter::SetFlatIsMaxima "
+
+Set/Get wether a flat image must be considered as a maxima or not.
+Defaults to true.
+
+";
+
+%feature("docstring")  itk::simple::RegionalMaximaImageFilter::SetForegroundValue "
+
+Set/Get the value in the output image to consider as \"foreground\".
+Defaults to maximum value of PixelType.
+
+";
+
+%feature("docstring")  itk::simple::RegionalMaximaImageFilter::SetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::RegionalMaximaImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::RegionalMaximaImageFilter::~RegionalMaximaImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::RegionalMinimaImageFilter "
+
+Produce a binary image where foreground is the regional minima of the
+input image.
+
+
+Regional minima are flat zones surrounded by pixels of greater value.
+
+If the input image is constant, the entire image can be considered as
+a minima or not. The SetFlatIsMinima() method let the user choose which behavior to use.
+
+This class was contribtued to the Insight Journal by
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France. https://hdl.handle.net/1926/153
+
+See:
+ RegionalMaximaImageFilter
+
+ ValuedRegionalMinimaImageFilter
+
+ HConcaveImageFilter
+Wiki Examples:
+
+All Examples
+
+RegionalMinimaImageFilter
+See:
+ itk::simple::RegionalMinima for the procedural interface
+
+ itk::RegionalMinimaImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkRegionalMinimaImageFilter.h
+";
+
+%feature("docstring")  itk::simple::RegionalMinimaImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::RegionalMinimaImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::RegionalMinimaImageFilter::FlatIsMinimaOff "
+";
+
+%feature("docstring")  itk::simple::RegionalMinimaImageFilter::FlatIsMinimaOn "
+
+Set the value of FlatIsMinima to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::RegionalMinimaImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::RegionalMinimaImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::RegionalMinimaImageFilter::GetBackgroundValue "
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+";
+
+%feature("docstring")  itk::simple::RegionalMinimaImageFilter::GetFlatIsMinima "
+
+Set/Get wether a flat image must be considered as a minima or not.
+Defaults to true.
+
+";
+
+%feature("docstring")  itk::simple::RegionalMinimaImageFilter::GetForegroundValue "
+
+Set/Get the value in the output image to consider as \"foreground\".
+Defaults to maximum value of PixelType.
+
+";
+
+%feature("docstring")  itk::simple::RegionalMinimaImageFilter::GetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::RegionalMinimaImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::RegionalMinimaImageFilter::RegionalMinimaImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::RegionalMinimaImageFilter::SetBackgroundValue "
+
+Set/Get the value used as \"background\" in the output image. Defaults
+to NumericTraits<PixelType>::NonpositiveMin() .
+
+";
+
+%feature("docstring")  itk::simple::RegionalMinimaImageFilter::SetFlatIsMinima "
+
+Set/Get wether a flat image must be considered as a minima or not.
+Defaults to true.
+
+";
+
+%feature("docstring")  itk::simple::RegionalMinimaImageFilter::SetForegroundValue "
+
+Set/Get the value in the output image to consider as \"foreground\".
+Defaults to maximum value of PixelType.
+
+";
+
+%feature("docstring")  itk::simple::RegionalMinimaImageFilter::SetFullyConnected "
+
+Set/Get whether the connected components are defined strictly by face
+connectivity or by face+edge+vertex connectivity. Default is
+FullyConnectedOff. For objects that are 1 pixel wide, use
+FullyConnectedOn.
+
+";
+
+%feature("docstring")  itk::simple::RegionalMinimaImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::RegionalMinimaImageFilter::~RegionalMinimaImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::RelabelComponentImageFilter "
+
+Relabel the components in an image such that consecutive labels are
+used.
+
+
+RelabelComponentImageFilter remaps the labels associated with the objects in an image (as from
+the output of ConnectedComponentImageFilter ) such that the label numbers are consecutive with no gaps between
+the label numbers used. By default, the relabeling will also sort the
+labels based on the size of the object: the largest object will have
+label #1, the second largest will have label #2, etc. If two labels
+have the same size their initial order is kept. The sorting by size
+can be disabled using SetSortByObjectSize.
+
+Label #0 is assumed to be the background and is left unaltered by the
+relabeling.
+
+RelabelComponentImageFilter is typically used on the output of the ConnectedComponentImageFilter for those applications that want to extract the largest object or the
+\"k\" largest objects. Any particular object can be extracted from the
+relabeled output using a BinaryThresholdImageFilter . A group of objects can be extracted from the relabled output using
+a ThresholdImageFilter .
+
+Once all the objects are relabeled, the application can query the
+number of objects and the size of each object. Object sizes are returned in a vector. The size of the background is not
+calculated. So the size of object #1 is GetSizeOfObjectsInPixels()
+[0], the size of object #2 is GetSizeOfObjectsInPixels() [1], etc.
+
+If user sets a minimum object size, all objects with fewer pixels than
+the minimum will be discarded, so that the number of objects reported
+will be only those remaining. The GetOriginalNumberOfObjects method
+can be called to find out how many objects were present before the
+small ones were discarded.
+
+RelabelComponentImageFilter can be run as an \"in place\" filter, where it will overwrite its
+output. The default is run out of place (or generate a separate
+output). \"In place\" operation can be controlled via methods in the
+superclass, InPlaceImageFilter::InPlaceOn() and
+InPlaceImageFilter::InPlaceOff() .
+
+
+See:
+ ConnectedComponentImageFilter , BinaryThresholdImageFilter , ThresholdImageFilter
+Wiki Examples:
+
+All Examples
+
+Assign contiguous labels to connected regions of an image
+See:
+ itk::simple::RelabelComponent for the procedural interface
+
+ itk::RelabelComponentImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkRelabelComponentImageFilter.h
+";
+
+%feature("docstring")  itk::simple::RelabelComponentImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::RelabelComponentImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::RelabelComponentImageFilter::GetMinimumObjectSize "
+
+Get the caller-defined minimum size of an object in pixels. If the
+caller has not set the minimum, 0 will be returned, which is to be
+interpreted as meaning that no minimum exists, and all objects in the
+original label map will be passed through to the output.
+
+";
+
+%feature("docstring")  itk::simple::RelabelComponentImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::RelabelComponentImageFilter::RelabelComponentImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::RelabelComponentImageFilter::SetMinimumObjectSize "
+
+Set the minimum size in pixels for an object. All objects smaller than
+this size will be discarded and will not appear in the output label
+map. NumberOfObjects will count only the objects whose pixel counts
+are greater than or equal to the minimum size. Call
+GetOriginalNumberOfObjects to find out how many objects were present
+in the original label map.
+
+";
+
+%feature("docstring")  itk::simple::RelabelComponentImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::RelabelComponentImageFilter::~RelabelComponentImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::RelabelLabelMapFilter "
+
+This filter relabels the LabelObjects; the new labels are arranged
+consecutively with consideration for the background value.
+
+
+This filter takes the LabelObjects from the input and reassigns them
+to the output by calling the PushLabelObject method, which by default,
+attempts to reorganize the labels consecutively. The user can assign
+an arbitrary value to the background; the filter will assign the
+labels consecutively by skipping the background value.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ ShapeLabelObject , RelabelComponentImageFilter
+
+ itk::simple::RelabelLabelMapFilter for the procedural interface
+
+ itk::RelabelLabelMapFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkRelabelLabelMapFilter.h
+";
+
+%feature("docstring")  itk::simple::RelabelLabelMapFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::RelabelLabelMapFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::RelabelLabelMapFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::RelabelLabelMapFilter::GetReverseOrdering "
+";
+
+%feature("docstring")  itk::simple::RelabelLabelMapFilter::RelabelLabelMapFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::RelabelLabelMapFilter::ReverseOrderingOff "
+";
+
+%feature("docstring")  itk::simple::RelabelLabelMapFilter::ReverseOrderingOn "
+
+Set the value of ReverseOrdering to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::RelabelLabelMapFilter::SetReverseOrdering "
+";
+
+%feature("docstring")  itk::simple::RelabelLabelMapFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::RelabelLabelMapFilter::~RelabelLabelMapFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::RenyiEntropyThresholdImageFilter "
+
+Threshold an image using the RenyiEntropy Threshold.
+
+
+This filter creates a binary thresholded image that separates an image
+into foreground and background components. The filter computes the
+threshold using the RenyiEntropyThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .
+
+
+Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+ Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/10380/3279 or http://www.insight-journal.org/browse/publication/811
+
+
+See:
+ HistogramThresholdImageFilter
+
+ itk::simple::RenyiEntropyThreshold for the procedural interface
+
+ itk::RenyiEntropyThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkRenyiEntropyThresholdImageFilter.h
+";
+
+%feature("docstring")  itk::simple::RenyiEntropyThresholdImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::RenyiEntropyThresholdImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::RenyiEntropyThresholdImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::RenyiEntropyThresholdImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::RenyiEntropyThresholdImageFilter::GetInsideValue "
+
+Get the \"inside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::RenyiEntropyThresholdImageFilter::GetMaskOutput "
+";
+
+%feature("docstring")  itk::simple::RenyiEntropyThresholdImageFilter::GetMaskValue "
+";
+
+%feature("docstring")  itk::simple::RenyiEntropyThresholdImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::RenyiEntropyThresholdImageFilter::GetNumberOfHistogramBins "
+";
+
+%feature("docstring")  itk::simple::RenyiEntropyThresholdImageFilter::GetOutsideValue "
+
+Get the \"outside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::RenyiEntropyThresholdImageFilter::GetThreshold "
+
+Get the computed threshold.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::RenyiEntropyThresholdImageFilter::MaskOutputOff "
+";
+
+%feature("docstring")  itk::simple::RenyiEntropyThresholdImageFilter::MaskOutputOn "
+
+Set the value of MaskOutput to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::RenyiEntropyThresholdImageFilter::RenyiEntropyThresholdImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::RenyiEntropyThresholdImageFilter::SetInsideValue "
+
+Set the \"inside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::RenyiEntropyThresholdImageFilter::SetMaskOutput "
+
+Do you want the output to be masked by the mask used in histogram
+construction. Only relevant if masking is in use.
+
+";
+
+%feature("docstring")  itk::simple::RenyiEntropyThresholdImageFilter::SetMaskValue "
+
+The value in the mask image, if used, indicating voxels that should be
+included. Default is the max of pixel type, as in the
+MaskedImageToHistogramFilter
+
+";
+
+%feature("docstring")  itk::simple::RenyiEntropyThresholdImageFilter::SetNumberOfHistogramBins "
+
+Set/Get the number of histogram bins.
+
+";
+
+%feature("docstring")  itk::simple::RenyiEntropyThresholdImageFilter::SetOutsideValue "
+
+Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.
+
+";
+
+%feature("docstring")  itk::simple::RenyiEntropyThresholdImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::RenyiEntropyThresholdImageFilter::~RenyiEntropyThresholdImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ResampleImageFilter "
+
+Resample an image via a coordinate transform.
+
+
+ResampleImageFilter resamples an existing image through some coordinate transform,
+interpolating via some image function. The class is templated over the
+types of the input and output images.
+
+Note that the choice of interpolator function can be important. This
+function is set via SetInterpolator() . The default is LinearInterpolateImageFunction <InputImageType, TInterpolatorPrecisionType>, which is reasonable for
+ordinary medical images. However, some synthetic images have pixels
+drawn from a finite prescribed set. An example would be a mask
+indicating the segmentation of a brain into a small number of tissue
+types. For such an image, one does not want to interpolate between
+different pixel values, and so NearestNeighborInterpolateImageFunction < InputImageType, TCoordRep > would be a better choice.
+
+If an sample is taken from outside the image domain, the default
+behavior is to use a default pixel value. If different behavior is
+desired, an extrapolator function can be set with SetExtrapolator() .
+
+Output information (spacing, size and direction) for the output image
+should be set. This information has the normal defaults of unit
+spacing, zero origin and identity direction. Optionally, the output
+information can be obtained from a reference image. If the reference
+image is provided and UseReferenceImage is On, then the spacing,
+origin and direction of the reference image will be used.
+
+Since this filter produces an image which is a different size than its
+input, it needs to override several of the methods defined in ProcessObject in order to properly manage the pipeline execution model. In
+particular, this filter overrides
+ProcessObject::GenerateInputRequestedRegion() and
+ProcessObject::GenerateOutputInformation() .
+
+This filter is implemented as a multithreaded filter. It provides a
+ThreadedGenerateData() method for its implementation.
+WARNING:
+For multithreading, the TransformPoint method of the user-designated
+coordinate transform must be threadsafe.
+Wiki Examples:
+
+All Examples
+
+Translate an image
+
+Upsampling an image
+
+Resample (stretch or compress) an image
+
+See:
+ itk::ResampleImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkResampleImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ResampleImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ResampleImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ResampleImageFilter::GetDefaultPixelValue "
+
+Get/Set the pixel value when a transformed pixel is outside of the
+image. The default default pixel value is 0.
+
+";
+
+%feature("docstring")  itk::simple::ResampleImageFilter::GetInterpolator "
+
+Get/Set the interpolator function. The default is LinearInterpolateImageFunction <InputImageType, TInterpolatorPrecisionType>. Some other options are NearestNeighborInterpolateImageFunction (useful for binary masks and other images with a small number of
+possible pixel values), and BSplineInterpolateImageFunction (which provides a higher order of interpolation).
+
+";
+
+%feature("docstring")  itk::simple::ResampleImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ResampleImageFilter::GetOutputDirection "
+
+Set the output direciton cosine matrix.
+
+";
+
+%feature("docstring")  itk::simple::ResampleImageFilter::GetOutputOrigin "
+
+Get the output image origin.
+
+";
+
+%feature("docstring")  itk::simple::ResampleImageFilter::GetOutputPixelType "
+
+Get the ouput pixel type.
+
+";
+
+%feature("docstring")  itk::simple::ResampleImageFilter::GetOutputSpacing "
+
+Get the output image spacing.
+
+";
+
+%feature("docstring")  itk::simple::ResampleImageFilter::GetSize "
+
+Get/Set the size of the output image.
+
+";
+
+%feature("docstring")  itk::simple::ResampleImageFilter::GetTransform "
+
+Get/Set the coordinate transformation. Set the coordinate transform to
+use for resampling. Note that this must be in physical coordinates and
+it is the output-to-input transform, NOT the input-to-output transform
+that you might naively expect. By default the filter uses an Identity
+transform. You must provide a different transform here, before
+attempting to run the filter, if you do not want to use the default
+Identity transform.
+
+";
+
+%feature("docstring")  itk::simple::ResampleImageFilter::ResampleImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ResampleImageFilter::SetDefaultPixelValue "
+
+Get/Set the pixel value when a transformed pixel is outside of the
+image. The default default pixel value is 0.
+
+";
+
+%feature("docstring")  itk::simple::ResampleImageFilter::SetInterpolator "
+
+Get/Set the interpolator function. The default is LinearInterpolateImageFunction <InputImageType, TInterpolatorPrecisionType>. Some other options are NearestNeighborInterpolateImageFunction (useful for binary masks and other images with a small number of
+possible pixel values), and BSplineInterpolateImageFunction (which provides a higher order of interpolation).
+
+";
+
+%feature("docstring")  itk::simple::ResampleImageFilter::SetOutputDirection "
+
+Set the output direciton cosine matrix.
+
+";
+
+%feature("docstring")  itk::simple::ResampleImageFilter::SetOutputOrigin "
+
+Set the output image origin.
+
+";
+
+%feature("docstring")  itk::simple::ResampleImageFilter::SetOutputPixelType "
+
+Set the output pixel type, if sitkUnknown then the input type is used.
+
+";
+
+%feature("docstring")  itk::simple::ResampleImageFilter::SetOutputSpacing "
+
+Set the output image spacing.
+
+";
+
+%feature("docstring")  itk::simple::ResampleImageFilter::SetReferenceImage "
+
+This methods sets the output size, origin, spacing and direction to
+that of the provided image
+
+";
+
+%feature("docstring")  itk::simple::ResampleImageFilter::SetSize "
+
+Get/Set the size of the output image.
+
+";
+
+%feature("docstring")  itk::simple::ResampleImageFilter::SetTransform "
+
+Get/Set the coordinate transformation. Set the coordinate transform to
+use for resampling. Note that this must be in physical coordinates and
+it is the output-to-input transform, NOT the input-to-output transform
+that you might naively expect. By default the filter uses an Identity
+transform. You must provide a different transform here, before
+attempting to run the filter, if you do not want to use the default
+Identity transform.
+
+";
+
+%feature("docstring")  itk::simple::ResampleImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ResampleImageFilter::~ResampleImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::RescaleIntensityImageFilter "
+
+Applies a linear transformation to the intensity levels of the input Image .
+
+
+RescaleIntensityImageFilter applies pixel-wise a linear transformation to the intensity values of
+input image pixels. The linear transformation is defined by the user
+in terms of the minimum and maximum values that the output image
+should have.
+
+The following equation gives the mapping of the intensity values
+
+
+\\\\[ outputPixel = ( inputPixel - inputMin) \\\\cdot
+\\\\frac{(outputMax - outputMin )}{(inputMax - inputMin)} + outputMin
+\\\\]
+ All computations are performed in the precision of the input pixel's
+RealType. Before assigning the computed value to the output pixel.
+
+NOTE: In this filter the minimum and maximum values of the input image
+are computed internally using the MinimumMaximumImageCalculator . Users are not supposed to set those values in this filter. If you
+need a filter where you can set the minimum and maximum values of the
+input, please use the IntensityWindowingImageFilter . If you want a filter that can use a user-defined linear
+transformation for the intensity, then please use the ShiftScaleImageFilter .
+
+
+See:
+ IntensityWindowingImageFilter
+Wiki Examples:
+
+All Examples
+
+Rescale the intensity values of an image to a specified range
+See:
+ itk::simple::RescaleIntensity for the procedural interface
+
+ itk::RescaleIntensityImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkRescaleIntensityImageFilter.h
+";
+
+%feature("docstring")  itk::simple::RescaleIntensityImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::RescaleIntensityImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::RescaleIntensityImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::RescaleIntensityImageFilter::GetOutputMaximum "
+";
+
+%feature("docstring")  itk::simple::RescaleIntensityImageFilter::GetOutputMinimum "
+";
+
+%feature("docstring")  itk::simple::RescaleIntensityImageFilter::RescaleIntensityImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::RescaleIntensityImageFilter::SetOutputMaximum "
+";
+
+%feature("docstring")  itk::simple::RescaleIntensityImageFilter::SetOutputMinimum "
+";
+
+%feature("docstring")  itk::simple::RescaleIntensityImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::RescaleIntensityImageFilter::~RescaleIntensityImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::RichardsonLucyDeconvolutionImageFilter "
+
+Deconvolve an image using the Richardson-Lucy deconvolution algorithm.
+
+
+This filter implements the Richardson-Lucy deconvolution algorithm as
+defined in Bertero M and Boccacci P, \"Introduction to Inverse
+Problems in Imaging\", 1998. The algorithm assumes that the input
+image has been formed by a linear shift-invariant system with a known
+kernel.
+
+The Richardson-Lucy algorithm assumes that noise in the image follows
+a Poisson distribution and that the distribution for each pixel is
+independent of the other pixels.
+
+This code was adapted from the Insight Journal contribution:
+
+\"Deconvolution: infrastructure and reference algorithms\" by Gaetan
+Lehmann https://hdl.handle.net/10380/3207
+
+
+Gaetan Lehmann, Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France
+ Cory Quammen, The University of North Carolina at Chapel Hill
+
+
+See:
+ IterativeDeconvolutionImageFilter
+
+ LandweberDeconvolutionImageFilter
+
+ ProjectedLandweberDeconvolutionImageFilter
+
+ itk::simple::RichardsonLucyDeconvolution for the procedural interface
+
+ itk::RichardsonLucyDeconvolutionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkRichardsonLucyDeconvolutionImageFilter.h
+";
+
+%feature("docstring")  itk::simple::RichardsonLucyDeconvolutionImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::RichardsonLucyDeconvolutionImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::RichardsonLucyDeconvolutionImageFilter::GetBoundaryCondition "
+";
+
+%feature("docstring")  itk::simple::RichardsonLucyDeconvolutionImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::RichardsonLucyDeconvolutionImageFilter::GetNormalize "
+";
+
+%feature("docstring")  itk::simple::RichardsonLucyDeconvolutionImageFilter::GetNumberOfIterations "
+
+Get the number of iterations.
+
+";
+
+%feature("docstring")  itk::simple::RichardsonLucyDeconvolutionImageFilter::GetOutputRegionMode "
+";
+
+%feature("docstring")  itk::simple::RichardsonLucyDeconvolutionImageFilter::NormalizeOff "
+";
+
+%feature("docstring")  itk::simple::RichardsonLucyDeconvolutionImageFilter::NormalizeOn "
+
+Set the value of Normalize to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::RichardsonLucyDeconvolutionImageFilter::RichardsonLucyDeconvolutionImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::RichardsonLucyDeconvolutionImageFilter::SetBoundaryCondition "
+";
+
+%feature("docstring")  itk::simple::RichardsonLucyDeconvolutionImageFilter::SetNormalize "
+
+Normalize the output image by the sum of the kernel components
+
+";
+
+%feature("docstring")  itk::simple::RichardsonLucyDeconvolutionImageFilter::SetNumberOfIterations "
+
+Set the number of iterations.
+
+";
+
+%feature("docstring")  itk::simple::RichardsonLucyDeconvolutionImageFilter::SetOutputRegionMode "
+";
+
+%feature("docstring")  itk::simple::RichardsonLucyDeconvolutionImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::RichardsonLucyDeconvolutionImageFilter::~RichardsonLucyDeconvolutionImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::STAPLEImageFilter "
+
+The STAPLE filter implements the Simultaneous Truth and Performance
+Level Estimation algorithm for generating ground truth volumes from a
+set of binary expert segmentations.
+
+
+The STAPLE algorithm treats segmentation as a pixelwise
+classification, which leads to an averaging scheme that accounts for
+systematic biases in the behavior of experts in order to generate a
+fuzzy ground truth volume and simultaneous accuracy assessment of each
+expert. The ground truth volumes produced by this filter are floating
+point volumes of values between zero and one that indicate probability
+of each pixel being in the object targeted by the segmentation.
+
+The STAPLE algorithm is described in
+
+S. Warfield, K. Zou, W. Wells, \"Validation of image segmentation and
+expert quality with an expectation-maximization algorithm\" in MICCAI
+2002: Fifth International Conference on Medical Image Computing and Computer-Assisted Intervention, Springer-Verlag,
+Heidelberg, Germany, 2002, pp. 298-306
+
+INPUTS
+Input volumes to the STAPLE filter must be binary segmentations of an
+image, that is, there must be a single foreground value that
+represents positively classified pixels (pixels that are considered to
+belong inside the segmentation). Any number of background pixel values
+may be present in the input images. You can, for example, input
+volumes with many different labels as long as the structure you are
+interested in creating ground truth for is consistently labeled among
+all input volumes. Pixel type of the input volumes does not matter.
+Specify the label value for positively classified pixels using
+SetForegroundValue. All other labels will be considered to be
+negatively classified pixels (background).
+ Input volumes must all contain the same size RequestedRegions.
+
+OUTPUTS
+The STAPLE filter produces a single output volume with a range of
+floating point values from zero to one. IT IS VERY IMPORTANT TO
+INSTANTIATE THIS FILTER WITH A FLOATING POINT OUTPUT TYPE (floats or
+doubles). You may threshold the output above some probability
+threshold if you wish to produce a binary ground truth.
+PARAMETERS
+The STAPLE algorithm requires a number of inputs. You may specify any
+number of input volumes using the SetInput(i, p_i) method, where i
+ranges from zero to N-1, N is the total number of input segmentations,
+and p_i is the SmartPointer to the i-th segmentation.
+ The SetConfidenceWeight parameter is a modifier for the prior
+probability that any pixel would be classified as inside the target
+object. This implementation of the STAPLE algorithm automatically
+calculates prior positive classification probability as the average
+fraction of the image volume filled by the target object in each input
+segmentation. The ConfidenceWeight parameter allows for scaling the of
+this default prior probability: if g_t is the prior probability that a
+pixel would be classified inside the target object, then g_t is set to
+g_t * ConfidenceWeight before iterating on the solution. In general
+ConfidenceWeight should be left to the default of 1.0.
+
+You must provide a foreground value using SetForegroundValue that the
+STAPLE algorithm will use to identify positively classified pixels in
+the the input images. All other values in the image will be treated as
+background values. For example, if your input segmentations consist of
+1's everywhere inside the segmented region, then use
+SetForegroundValue(1).
+
+The STAPLE algorithm is an iterative E-M algorithm and will converge
+on a solution after some number of iterations that cannot be known a
+priori. After updating the filter, the total elapsed iterations taken
+to converge on the solution can be queried through GetElapsedIterations() . You may also specify a MaximumNumberOfIterations, after which the
+algorithm will stop iterating regardless of whether or not it has
+converged. This implementation of the STAPLE algorithm will find the
+solution to within seven digits of precision unless it is stopped
+early.
+
+Once updated, the Sensitivity (true positive fraction, q) and
+Specificity (true negative fraction, q) for each expert input volume
+can be queried using GetSensitivity(i) and GetSpecificity(i), where i
+is the i-th input volume.
+
+REQUIRED PARAMETERS
+The only required parameters for this filter are the ForegroundValue
+and the input volumes. All other parameters may be safely left to
+their default values. Please see the paper cited above for more
+information on the STAPLE algorithm and its parameters. A proper
+understanding of the algorithm is important for interpreting the
+results that it produces.
+EVENTS
+This filter invokes IterationEvent() at each iteration of the E-M
+algorithm. Setting the AbortGenerateData() flag will cause the
+algorithm to halt after the current iteration and produce results just
+as if it had converged. The algorithm makes no attempt to report its
+progress since the number of iterations needed cannot be known in
+advance.
+
+See:
+ itk::simple::STAPLE for the procedural interface
+
+
+C++ includes: sitkSTAPLEImageFilter.h
+";
+
+%feature("docstring")  itk::simple::STAPLEImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::STAPLEImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::STAPLEImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::STAPLEImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::STAPLEImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::STAPLEImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::STAPLEImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::STAPLEImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::STAPLEImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::STAPLEImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::STAPLEImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::STAPLEImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::STAPLEImageFilter::GetConfidenceWeight "
+
+Scales the estimated prior probability that a pixel will be inside the
+targeted object of segmentation. The default prior probability g_t is
+calculated automatically as the average fraction of positively
+classified pixels to the total size of the volume (across all input
+volumes). ConfidenceWeight will scale this default value as g_t = g_t
+* ConfidenceWeight. In general, ConfidenceWeight should be left to the
+default of 1.0.
+
+";
+
+%feature("docstring")  itk::simple::STAPLEImageFilter::GetElapsedIterations "
+
+Get the number of elapsed iterations of the iterative E-M algorithm.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::STAPLEImageFilter::GetForegroundValue "
+
+Set get the binary ON value of the input image.
+
+";
+
+%feature("docstring")  itk::simple::STAPLEImageFilter::GetMaximumIterations "
+
+Set/Get the maximum number of iterations after which the STAPLE
+algorithm will be considered to have converged. In general this SHOULD
+NOT be set and the algorithm should be allowed to converge on its own.
+
+";
+
+%feature("docstring")  itk::simple::STAPLEImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::STAPLEImageFilter::GetSensitivity "
+
+After the filter is updated, this method returns a std::vector<double>
+of all Sensitivity (true positive fraction, p) values for the expert
+input volumes.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::STAPLEImageFilter::GetSpecificity "
+
+After the filter is updated, this method returns the Specificity (true
+negative fraction, q) value for the i-th expert input volume.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::STAPLEImageFilter::SetConfidenceWeight "
+
+Scales the estimated prior probability that a pixel will be inside the
+targeted object of segmentation. The default prior probability g_t is
+calculated automatically as the average fraction of positively
+classified pixels to the total size of the volume (across all input
+volumes). ConfidenceWeight will scale this default value as g_t = g_t
+* ConfidenceWeight. In general, ConfidenceWeight should be left to the
+default of 1.0.
+
+";
+
+%feature("docstring")  itk::simple::STAPLEImageFilter::SetForegroundValue "
+
+Set get the binary ON value of the input image.
+
+";
+
+%feature("docstring")  itk::simple::STAPLEImageFilter::SetMaximumIterations "
+
+Set/Get the maximum number of iterations after which the STAPLE
+algorithm will be considered to have converged. In general this SHOULD
+NOT be set and the algorithm should be allowed to converge on its own.
+
+";
+
+%feature("docstring")  itk::simple::STAPLEImageFilter::STAPLEImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::STAPLEImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::STAPLEImageFilter::~STAPLEImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::SaltAndPepperNoiseImageFilter "
+
+Alter an image with fixed value impulse noise, often called salt and
+pepper noise.
+
+
+Pixel alteration occurs at a user defined probability. Salt and pepper
+pixel are equally distributed.
+
+
+Gaetan Lehmann
+ This code was contributed in the Insight Journal paper \"Noise
+Simulation\". https://hdl.handle.net/10380/3158
+See:
+ itk::simple::SaltAndPepperNoise for the procedural interface
+
+ itk::SaltAndPepperNoiseImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkSaltAndPepperNoiseImageFilter.h
+";
+
+%feature("docstring")  itk::simple::SaltAndPepperNoiseImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::SaltAndPepperNoiseImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::SaltAndPepperNoiseImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::SaltAndPepperNoiseImageFilter::GetProbability "
+";
+
+%feature("docstring")  itk::simple::SaltAndPepperNoiseImageFilter::GetSeed "
+";
+
+%feature("docstring")  itk::simple::SaltAndPepperNoiseImageFilter::SaltAndPepperNoiseImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::SaltAndPepperNoiseImageFilter::SetProbability "
+";
+
+%feature("docstring")  itk::simple::SaltAndPepperNoiseImageFilter::SetSeed "
+";
+
+%feature("docstring")  itk::simple::SaltAndPepperNoiseImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::SaltAndPepperNoiseImageFilter::~SaltAndPepperNoiseImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter "
+
+Dense implementation of the Chan and Vese multiphase level set image
+filter.
+
+
+This code was adapted from the paper: \"An active contour model
+without edges\" T. Chan and L. Vese. In Scale-Space Theories in
+Computer Vision, pages 141-151, 1999.
+
+
+Mosaliganti K., Smith B., Gelas A., Gouaillard A., Megason S.
+ This code was taken from the Insight Journal paper: \"Cell Tracking
+using Coupled Active Surfaces for Nuclei and Membranes\" http://www.insight-journal.org/browse/publication/642 https://hdl.handle.net/10380/3055
+
+That is based on the papers: \"Level Set Segmentation: Active Contours
+without edge\" http://www.insight-journal.org/browse/publication/322 https://hdl.handle.net/1926/1532
+
+and
+
+\"Level set segmentation using coupled active surfaces\" http://www.insight-journal.org/browse/publication/323 https://hdl.handle.net/1926/1533
+
+Wiki Examples:
+
+All Examples
+
+Single-phase Chan And Vese Dense Field Level Set Segmentation
+See:
+ itk::simple::ScalarChanAndVeseDenseLevelSet for the procedural interface
+
+ itk::ScalarChanAndVeseDenseLevelSetImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkScalarChanAndVeseDenseLevelSetImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetAreaWeight "
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetCurvatureWeight "
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetElapsedIterations "
+
+Number of iterations run.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetEpsilon "
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetHeavisideStepFunction "
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetLambda1 "
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetLambda2 "
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetMaximumRMSError "
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetReinitializationSmoothingWeight "
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetRMSChange "
+
+The Root Mean Square of the levelset upon termination.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetUseImageSpacing "
+
+Use the image spacing information in calculations. Use this option if
+you want derivatives in physical space. Default is UseImageSpacingOn.
+
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetVolume "
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::GetVolumeMatchingWeight "
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::ScalarChanAndVeseDenseLevelSetImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetAreaWeight "
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetCurvatureWeight "
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetEpsilon "
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetHeavisideStepFunction "
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetLambda1 "
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetLambda2 "
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetMaximumRMSError "
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetReinitializationSmoothingWeight "
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetUseImageSpacing "
+
+Use the image spacing information in calculations. Use this option if
+you want derivatives in physical space. Default is UseImageSpacingOn.
+
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetVolume "
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::SetVolumeMatchingWeight "
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::UseImageSpacingOff "
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::UseImageSpacingOn "
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter::~ScalarChanAndVeseDenseLevelSetImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ScalarConnectedComponentImageFilter "
+
+A connected components filter that labels the objects in an arbitrary
+image. Two pixels are similar if they are within threshold of each
+other. Uses ConnectedComponentFunctorImageFilter .
+
+
+Wiki Examples:
+
+All Examples
+
+Label connected components in a grayscale image
+See:
+ itk::simple::ScalarConnectedComponent for the procedural interface
+
+ itk::ScalarConnectedComponentImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkScalarConnectedComponentImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ScalarConnectedComponentImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ScalarConnectedComponentImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ScalarConnectedComponentImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::ScalarConnectedComponentImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::ScalarConnectedComponentImageFilter::GetDistanceThreshold "
+";
+
+%feature("docstring")  itk::simple::ScalarConnectedComponentImageFilter::GetFullyConnected "
+";
+
+%feature("docstring")  itk::simple::ScalarConnectedComponentImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ScalarConnectedComponentImageFilter::ScalarConnectedComponentImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ScalarConnectedComponentImageFilter::SetDistanceThreshold "
+";
+
+%feature("docstring")  itk::simple::ScalarConnectedComponentImageFilter::SetFullyConnected "
+";
+
+%feature("docstring")  itk::simple::ScalarConnectedComponentImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ScalarConnectedComponentImageFilter::~ScalarConnectedComponentImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ScalarImageKmeansImageFilter "
+
+Classifies the intensity values of a scalar image using the K-Means
+algorithm.
+
+
+Given an input image with scalar values, it uses the K-Means
+statistical classifier in order to define labels for every pixel in
+the image. The filter is templated over the type of the input image.
+The output image is predefined as having the same dimension of the
+input image and pixel type unsigned char, under the assumption that
+the classifier will generate less than 256 classes.
+
+You may want to look also at the RelabelImageFilter that may be used
+as a postprocessing stage, in particular if you are interested in
+ordering the labels by their relative size in number of pixels.
+
+
+See:
+ Image
+
+ ImageKmeansModelEstimator
+
+ KdTreeBasedKmeansEstimator, WeightedCentroidKdTreeGenerator, KdTree
+
+ RelabelImageFilter
+Wiki Examples:
+
+All Examples
+
+Cluster the pixels in a greyscale image
+See:
+ itk::simple::ScalarImageKmeans for the procedural interface
+
+ itk::ScalarImageKmeansImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkScalarImageKmeansImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ScalarImageKmeansImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ScalarImageKmeansImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ScalarImageKmeansImageFilter::GetClassWithInitialMean "
+";
+
+%feature("docstring")  itk::simple::ScalarImageKmeansImageFilter::GetFinalMeans "
+
+Return the array of Means found after the classification.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::ScalarImageKmeansImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ScalarImageKmeansImageFilter::GetUseNonContiguousLabels "
+
+Set/Get the UseNonContiguousLabels flag. When this is set to false the
+labels are numbered contiguously, like in {0,1,3..N}. When the flag is
+set to true, the labels are selected in order to span the dynamic
+range of the output image. This last option is useful when the output
+image is intended only for display. The default value is false.
+
+";
+
+%feature("docstring")  itk::simple::ScalarImageKmeansImageFilter::ScalarImageKmeansImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ScalarImageKmeansImageFilter::SetClassWithInitialMean "
+";
+
+%feature("docstring")  itk::simple::ScalarImageKmeansImageFilter::SetUseNonContiguousLabels "
+
+Set/Get the UseNonContiguousLabels flag. When this is set to false the
+labels are numbered contiguously, like in {0,1,3..N}. When the flag is
+set to true, the labels are selected in order to span the dynamic
+range of the output image. This last option is useful when the output
+image is intended only for display. The default value is false.
+
+";
+
+%feature("docstring")  itk::simple::ScalarImageKmeansImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ScalarImageKmeansImageFilter::UseNonContiguousLabelsOff "
+";
+
+%feature("docstring")  itk::simple::ScalarImageKmeansImageFilter::UseNonContiguousLabelsOn "
+
+Set the value of UseNonContiguousLabels to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::ScalarImageKmeansImageFilter::~ScalarImageKmeansImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ScalarToRGBColormapImageFilter "
+
+Implements pixel-wise intensity->rgb mapping operation on one image.
+
+
+This class is parameterized over the type of the input image and the
+type of the output image.
+
+The input image's scalar pixel values are mapped into a color map. The
+color map is specified by passing the SetColormap function one of the
+predefined maps. The following selects the \"Hot\" colormap:
+
+You can also specify a custom color map. This is done by creating a
+CustomColormapFunction, and then creating lists of values for the red,
+green, and blue channel. An example of setting the red channel of a
+colormap with only 2 colors is given below. The blue and green
+channels should be specified in the same manner.
+
+
+The range of values present in the input image is the range that is
+mapped to the entire range of colors.
+
+This code was contributed in the Insight Journal paper: \"Meeting Andy
+Warhol Somewhere Over the Rainbow: RGB Colormapping and ITK\" by
+Tustison N., Zhang H., Lehmann G., Yushkevich P., Gee J. https://hdl.handle.net/1926/1452 http://www.insight-journal.org/browse/publication/285
+
+
+See:
+ BinaryFunctionImageFilter TernaryFunctionImageFilter
+Wiki Examples:
+
+All Examples
+
+Apply a color map to an image
+See:
+ itk::simple::ScalarToRGBColormap for the procedural interface
+
+ itk::ScalarToRGBColormapImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkScalarToRGBColormapImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ScalarToRGBColormapImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ScalarToRGBColormapImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ScalarToRGBColormapImageFilter::GetColormap "
+
+Set/Get the colormap object.
+
+";
+
+%feature("docstring")  itk::simple::ScalarToRGBColormapImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ScalarToRGBColormapImageFilter::GetUseInputImageExtremaForScaling "
+
+Set/Get UseInputImageExtremaForScaling. If true, the colormap uses the
+min and max values from the image to scale appropriately. Otherwise,
+these values can be set in the colormap manually.
+
+";
+
+%feature("docstring")  itk::simple::ScalarToRGBColormapImageFilter::ScalarToRGBColormapImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ScalarToRGBColormapImageFilter::SetColormap "
+";
+
+%feature("docstring")  itk::simple::ScalarToRGBColormapImageFilter::SetUseInputImageExtremaForScaling "
+
+Set/Get UseInputImageExtremaForScaling. If true, the colormap uses the
+min and max values from the image to scale appropriately. Otherwise,
+these values can be set in the colormap manually.
+
+";
+
+%feature("docstring")  itk::simple::ScalarToRGBColormapImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ScalarToRGBColormapImageFilter::UseInputImageExtremaForScalingOff "
+";
+
+%feature("docstring")  itk::simple::ScalarToRGBColormapImageFilter::UseInputImageExtremaForScalingOn "
+
+Set the value of UseInputImageExtremaForScaling to true or false
+respectfully.
+
+";
+
+%feature("docstring")  itk::simple::ScalarToRGBColormapImageFilter::~ScalarToRGBColormapImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ScaleSkewVersor3DTransform "
+
+A over parameterized 3D Affine transform composed of the addition of a
+versor rotation matrix, a scale matrix and a skew matrix around a
+fixed center with translation.
+
+
+
+See:
+ itk::ScaleSkewVersor3DTransform
+
+
+C++ includes: sitkScaleSkewVersor3DTransform.h
+";
+
+%feature("docstring")  itk::simple::ScaleSkewVersor3DTransform::GetCenter "
+";
+
+%feature("docstring")  itk::simple::ScaleSkewVersor3DTransform::GetMatrix "
+";
+
+%feature("docstring")  itk::simple::ScaleSkewVersor3DTransform::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ScaleSkewVersor3DTransform::GetScale "
+";
+
+%feature("docstring")  itk::simple::ScaleSkewVersor3DTransform::GetSkew "
+";
+
+%feature("docstring")  itk::simple::ScaleSkewVersor3DTransform::GetTranslation "
+";
+
+%feature("docstring")  itk::simple::ScaleSkewVersor3DTransform::GetVersor "
+";
+
+%feature("docstring")  itk::simple::ScaleSkewVersor3DTransform::ScaleSkewVersor3DTransform "
+";
+
+%feature("docstring")  itk::simple::ScaleSkewVersor3DTransform::ScaleSkewVersor3DTransform "
+";
+
+%feature("docstring")  itk::simple::ScaleSkewVersor3DTransform::ScaleSkewVersor3DTransform "
+";
+
+%feature("docstring")  itk::simple::ScaleSkewVersor3DTransform::ScaleSkewVersor3DTransform "
+";
+
+%feature("docstring")  itk::simple::ScaleSkewVersor3DTransform::ScaleSkewVersor3DTransform "
+";
+
+%feature("docstring")  itk::simple::ScaleSkewVersor3DTransform::SetCenter "
+
+fixed parameter
+
+";
+
+%feature("docstring")  itk::simple::ScaleSkewVersor3DTransform::SetRotation "
+
+parameter
+
+";
+
+%feature("docstring")  itk::simple::ScaleSkewVersor3DTransform::SetRotation "
+";
+
+%feature("docstring")  itk::simple::ScaleSkewVersor3DTransform::SetScale "
+";
+
+%feature("docstring")  itk::simple::ScaleSkewVersor3DTransform::SetSkew "
+";
+
+%feature("docstring")  itk::simple::ScaleSkewVersor3DTransform::SetTranslation "
+";
+
+%feature("docstring")  itk::simple::ScaleSkewVersor3DTransform::Translate "
+
+additional methods
+
+";
+
+
+%feature("docstring") itk::simple::ScaleTransform "
+
+A 2D or 3D anisotropic scale of coordinate space around a fixed
+center.
+
+
+
+See:
+ itk::ScaleTransform
+
+
+C++ includes: sitkScaleTransform.h
+";
+
+%feature("docstring")  itk::simple::ScaleTransform::GetCenter "
+";
+
+%feature("docstring")  itk::simple::ScaleTransform::GetMatrix "
+
+additional methods
+
+";
+
+%feature("docstring")  itk::simple::ScaleTransform::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ScaleTransform::GetScale "
+";
+
+%feature("docstring")  itk::simple::ScaleTransform::ScaleTransform "
+";
+
+%feature("docstring")  itk::simple::ScaleTransform::ScaleTransform "
+";
+
+%feature("docstring")  itk::simple::ScaleTransform::ScaleTransform "
+";
+
+%feature("docstring")  itk::simple::ScaleTransform::SetCenter "
+
+fixed parameter
+
+";
+
+%feature("docstring")  itk::simple::ScaleTransform::SetScale "
+";
+
+
+%feature("docstring") itk::simple::ScaleVersor3DTransform "
+
+A parameterized 3D transform composed of the addition of a versor
+rotation matrix and a scale matrix around a fixed center with
+translation.
+
+
+
+See:
+ itk::ScaleVersor3DTransform
+
+
+C++ includes: sitkScaleVersor3DTransform.h
+";
+
+%feature("docstring")  itk::simple::ScaleVersor3DTransform::GetCenter "
+";
+
+%feature("docstring")  itk::simple::ScaleVersor3DTransform::GetMatrix "
+";
+
+%feature("docstring")  itk::simple::ScaleVersor3DTransform::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ScaleVersor3DTransform::GetScale "
+";
+
+%feature("docstring")  itk::simple::ScaleVersor3DTransform::GetTranslation "
+";
+
+%feature("docstring")  itk::simple::ScaleVersor3DTransform::GetVersor "
+";
+
+%feature("docstring")  itk::simple::ScaleVersor3DTransform::ScaleVersor3DTransform "
+";
+
+%feature("docstring")  itk::simple::ScaleVersor3DTransform::ScaleVersor3DTransform "
+";
+
+%feature("docstring")  itk::simple::ScaleVersor3DTransform::ScaleVersor3DTransform "
+";
+
+%feature("docstring")  itk::simple::ScaleVersor3DTransform::ScaleVersor3DTransform "
+";
+
+%feature("docstring")  itk::simple::ScaleVersor3DTransform::ScaleVersor3DTransform "
+";
+
+%feature("docstring")  itk::simple::ScaleVersor3DTransform::SetCenter "
+
+fixed parameter
+
+";
+
+%feature("docstring")  itk::simple::ScaleVersor3DTransform::SetRotation "
+
+parameter
+
+";
+
+%feature("docstring")  itk::simple::ScaleVersor3DTransform::SetRotation "
+";
+
+%feature("docstring")  itk::simple::ScaleVersor3DTransform::SetScale "
+";
+
+%feature("docstring")  itk::simple::ScaleVersor3DTransform::SetTranslation "
+";
+
+%feature("docstring")  itk::simple::ScaleVersor3DTransform::Translate "
+
+additional methods
+
+";
+
+
+%feature("docstring") itk::simple::ShanbhagThresholdImageFilter "
+
+Threshold an image using the Shanbhag Threshold.
+
+
+This filter creates a binary thresholded image that separates an image
+into foreground and background components. The filter computes the
+threshold using the ShanbhagThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .
+
+
+Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+ Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/10380/3279 or http://www.insight-journal.org/browse/publication/811
+
+
+See:
+ HistogramThresholdImageFilter
+
+ itk::simple::ShanbhagThreshold for the procedural interface
+
+ itk::ShanbhagThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkShanbhagThresholdImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ShanbhagThresholdImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ShanbhagThresholdImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::ShanbhagThresholdImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ShanbhagThresholdImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::ShanbhagThresholdImageFilter::GetInsideValue "
+
+Get the \"inside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::ShanbhagThresholdImageFilter::GetMaskOutput "
+";
+
+%feature("docstring")  itk::simple::ShanbhagThresholdImageFilter::GetMaskValue "
+";
+
+%feature("docstring")  itk::simple::ShanbhagThresholdImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ShanbhagThresholdImageFilter::GetNumberOfHistogramBins "
+";
+
+%feature("docstring")  itk::simple::ShanbhagThresholdImageFilter::GetOutsideValue "
+
+Get the \"outside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::ShanbhagThresholdImageFilter::GetThreshold "
+
+Get the computed threshold.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::ShanbhagThresholdImageFilter::MaskOutputOff "
+";
+
+%feature("docstring")  itk::simple::ShanbhagThresholdImageFilter::MaskOutputOn "
+
+Set the value of MaskOutput to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::ShanbhagThresholdImageFilter::SetInsideValue "
+
+Set the \"inside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::ShanbhagThresholdImageFilter::SetMaskOutput "
+
+Do you want the output to be masked by the mask used in histogram
+construction. Only relevant if masking is in use.
+
+";
+
+%feature("docstring")  itk::simple::ShanbhagThresholdImageFilter::SetMaskValue "
+
+The value in the mask image, if used, indicating voxels that should be
+included. Default is the max of pixel type, as in the
+MaskedImageToHistogramFilter
+
+";
+
+%feature("docstring")  itk::simple::ShanbhagThresholdImageFilter::SetNumberOfHistogramBins "
+
+Set/Get the number of histogram bins.
+
+";
+
+%feature("docstring")  itk::simple::ShanbhagThresholdImageFilter::SetOutsideValue "
+
+Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.
+
+";
+
+%feature("docstring")  itk::simple::ShanbhagThresholdImageFilter::ShanbhagThresholdImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ShanbhagThresholdImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ShanbhagThresholdImageFilter::~ShanbhagThresholdImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ShapeDetectionLevelSetImageFilter "
+
+Segments structures in images based on a user supplied edge potential
+map.
+
+
+IMPORTANT
+The SegmentationLevelSetImageFilter class and the ShapeDetectionLevelSetFunction class contain additional information necessary to gain full
+understanding of how to use this filter.
+OVERVIEW
+This class is a level set method segmentation filter. An initial
+contour is propagated outwards (or inwards) until it ''sticks'' to the
+shape boundaries. This is done by using a level set speed function
+based on a user supplied edge potential map. This approach for
+segmentation follows that of Malladi et al (1995).
+INPUTS
+This filter requires two inputs. The first input is a initial level
+set. The initial level set is a real image which contains the initial
+contour/surface as the zero level set. For example, a signed distance
+function from the initial contour/surface is typically used. Note that
+for this algorithm the initial contour has to be wholly within (or
+wholly outside) the structure to be segmented.
+
+The second input is the feature image. For this filter, this is the
+edge potential map. General characteristics of an edge potential map
+is that it has values close to zero in regions near the edges and
+values close to one inside the shape itself. Typically, the edge
+potential map is compute from the image gradient, for example:
+\\\\[ g(I) = 1 / ( 1 + | (\\\\nabla * G)(I)| ) \\\\] \\\\[ g(I) = \\\\exp^{-|(\\\\nabla * G)(I)|} \\\\]
+
+where $ I $ is image intensity and $ (\\\\nabla * G) $ is the derivative of Gaussian operator.
+
+
+See SegmentationLevelSetImageFilter and SparseFieldLevelSetImageFilter for more information on Inputs.
+PARAMETERS
+The PropagationScaling parameter can be used to switch from
+propagation outwards (POSITIVE scaling parameter) versus propagating
+inwards (NEGATIVE scaling parameter).
+ The smoothness of the resulting contour/surface can be adjusted using
+a combination of PropagationScaling and CurvatureScaling parameters.
+The larger the CurvatureScaling parameter, the smoother the resulting
+contour. The CurvatureScaling parameter should be non-negative for
+proper operation of this algorithm. To follow the implementation in
+Malladi et al paper, set the PropagtionScaling to $\\\\pm 1.0$ and CurvatureScaling to $ \\\\epsilon $ .
+
+Note that there is no advection term for this filter. Setting the
+advection scaling will have no effect.
+
+OUTPUTS
+The filter outputs a single, scalar, real-valued image. Negative
+values in the output image represent the inside of the segmentated
+region and positive values in the image represent the outside of the
+segmented region. The zero crossings of the image correspond to the
+position of the propagating front.
+
+See SparseFieldLevelSetImageFilter and SegmentationLevelSetImageFilter for more information.
+REFERENCES
+
+\"Shape Modeling with Front Propagation: A Level Set Approach\", R.
+Malladi, J. A. Sethian and B. C. Vermuri. IEEE Trans. on Pattern
+Analysis and Machine Intelligence, Vol 17, No. 2, pp 158-174, February
+1995
+
+See:
+ SegmentationLevelSetImageFilter
+
+ ShapeDetectionLevelSetFunction
+
+ SparseFieldLevelSetImageFilter
+
+ itk::simple::ShapeDetectionLevelSet for the procedural interface
+
+ itk::ShapeDetectionLevelSetImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkShapeDetectionLevelSetImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ShapeDetectionLevelSetImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::ShapeDetectionLevelSetImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ShapeDetectionLevelSetImageFilter::GetCurvatureScaling "
+";
+
+%feature("docstring")  itk::simple::ShapeDetectionLevelSetImageFilter::GetElapsedIterations "
+
+Number of iterations run.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::ShapeDetectionLevelSetImageFilter::GetMaximumRMSError "
+";
+
+%feature("docstring")  itk::simple::ShapeDetectionLevelSetImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ShapeDetectionLevelSetImageFilter::GetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::ShapeDetectionLevelSetImageFilter::GetPropagationScaling "
+";
+
+%feature("docstring")  itk::simple::ShapeDetectionLevelSetImageFilter::GetReverseExpansionDirection "
+";
+
+%feature("docstring")  itk::simple::ShapeDetectionLevelSetImageFilter::GetRMSChange "
+
+The Root Mean Square of the levelset upon termination.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::ShapeDetectionLevelSetImageFilter::ReverseExpansionDirectionOff "
+";
+
+%feature("docstring")  itk::simple::ShapeDetectionLevelSetImageFilter::ReverseExpansionDirectionOn "
+
+Set the value of ReverseExpansionDirection to true or false
+respectfully.
+
+";
+
+%feature("docstring")  itk::simple::ShapeDetectionLevelSetImageFilter::SetCurvatureScaling "
+";
+
+%feature("docstring")  itk::simple::ShapeDetectionLevelSetImageFilter::SetMaximumRMSError "
+";
+
+%feature("docstring")  itk::simple::ShapeDetectionLevelSetImageFilter::SetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::ShapeDetectionLevelSetImageFilter::SetPropagationScaling "
+";
+
+%feature("docstring")  itk::simple::ShapeDetectionLevelSetImageFilter::SetReverseExpansionDirection "
+";
+
+%feature("docstring")  itk::simple::ShapeDetectionLevelSetImageFilter::ShapeDetectionLevelSetImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ShapeDetectionLevelSetImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ShapeDetectionLevelSetImageFilter::~ShapeDetectionLevelSetImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ShiftScaleImageFilter "
+
+Shift and scale the pixels in an image.
+
+
+ShiftScaleImageFilter shifts the input pixel by Shift (default 0.0) and then scales the
+pixel by Scale (default 1.0). All computattions are performed in the
+precision of the input pixel's RealType. Before assigning the computed
+value to the output pixel, the value is clamped at the NonpositiveMin
+and max of the pixel type.
+See:
+ itk::simple::ShiftScale for the procedural interface
+
+ itk::ShiftScaleImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkShiftScaleImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ShiftScaleImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ShiftScaleImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ShiftScaleImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ShiftScaleImageFilter::GetScale "
+
+Set/Get the amount to Scale each Pixel. The Scale is applied after the
+Shift.
+
+";
+
+%feature("docstring")  itk::simple::ShiftScaleImageFilter::GetShift "
+
+Set/Get the amount to Shift each Pixel. The shift is followed by a
+Scale.
+
+";
+
+%feature("docstring")  itk::simple::ShiftScaleImageFilter::SetScale "
+
+Set/Get the amount to Scale each Pixel. The Scale is applied after the
+Shift.
+
+";
+
+%feature("docstring")  itk::simple::ShiftScaleImageFilter::SetShift "
+
+Set/Get the amount to Shift each Pixel. The shift is followed by a
+Scale.
+
+";
+
+%feature("docstring")  itk::simple::ShiftScaleImageFilter::ShiftScaleImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ShiftScaleImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ShiftScaleImageFilter::~ShiftScaleImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ShotNoiseImageFilter "
+
+Alter an image with shot noise.
+
+
+The shot noise follows a Poisson distribution:
+
+
+$ I = N(I_0) $
+
+where $ N(I_0) $ is a Poisson-distributed random variable of mean $ I_0 $ . The noise is thus dependent on the pixel intensities in the image.
+ The intensities in the image can be scaled by a user provided value
+to map pixel values to the actual number of particles. The scaling can
+be seen as the inverse of the gain used during the acquisition. The
+noisy signal is then scaled back to its input intensity range:
+
+
+$ I = \\\\frac{N(I_0 \\\\times s)}{s} $
+
+where $ s $ is the scale factor.
+ The Poisson-distributed variable $ \\\\lambda $ is computed by using the algorithm:
+
+
+$ \\\\begin{array}{l} k \\\\leftarrow 0 \\\\\\\\ p \\\\leftarrow 1
+\\\\\\\\ \\\\textbf{repeat} \\\\\\\\ \\\\left\\\\{ \\\\begin{array}{l}
+k \\\\leftarrow k+1 \\\\\\\\ p \\\\leftarrow p \\\\ast U()
+\\\\end{array} \\\\right. \\\\\\\\ \\\\textbf{until } p >
+e^{\\\\lambda} \\\\\\\\ \\\\textbf{return} (k) \\\\end{array} $
+
+where $ U() $ provides a uniformly distributed random variable in the interval $ [0,1] $ .
+ This algorithm is very inefficient for large values of $ \\\\lambda $ , though. Fortunately, the Poisson distribution can be accurately
+approximated by a Gaussian distribution of mean and variance $ \\\\lambda $ when $ \\\\lambda $ is large enough. In this implementation, this value is considered to
+be 50. This leads to the faster algorithm:
+
+
+$ \\\\lambda + \\\\sqrt{\\\\lambda} \\\\times N()$
+
+where $ N() $ is a normally distributed random variable of mean 0 and variance 1.
+
+Gaetan Lehmann
+ This code was contributed in the Insight Journal paper \"Noise
+Simulation\". https://hdl.handle.net/10380/3158
+See:
+ itk::simple::ShotNoise for the procedural interface
+
+ itk::ShotNoiseImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkShotNoiseImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ShotNoiseImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ShotNoiseImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ShotNoiseImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ShotNoiseImageFilter::GetScale "
+
+Set/Get the value to map the pixel value to the actual particle
+counting. The scaling can be seen as the inverse of the gain used
+during the acquisition. The noisy signal is then scaled back to its
+input intensity range. Defaults to 1.0.
+
+";
+
+%feature("docstring")  itk::simple::ShotNoiseImageFilter::GetSeed "
+";
+
+%feature("docstring")  itk::simple::ShotNoiseImageFilter::SetScale "
+
+Set/Get the value to map the pixel value to the actual particle
+counting. The scaling can be seen as the inverse of the gain used
+during the acquisition. The noisy signal is then scaled back to its
+input intensity range. Defaults to 1.0.
+
+";
+
+%feature("docstring")  itk::simple::ShotNoiseImageFilter::SetSeed "
+";
+
+%feature("docstring")  itk::simple::ShotNoiseImageFilter::ShotNoiseImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ShotNoiseImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ShotNoiseImageFilter::~ShotNoiseImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ShrinkImageFilter "
+
+Reduce the size of an image by an integer factor in each dimension.
+
+
+ShrinkImageFilter reduces the size of an image by an integer factor in each dimension.
+The algorithm implemented is a simple subsample. The output image size
+in each dimension is given by:
+
+outputSize[j] = max( std::floor(inputSize[j]/shrinkFactor[j]), 1 );
+
+NOTE: The physical centers of the input and output will be the same.
+Because of this, the Origin of the output may not be the same as the
+Origin of the input. Since this filter produces an image which is a
+different resolution, origin and with different pixel spacing than its
+input image, it needs to override several of the methods defined in ProcessObject in order to properly manage the pipeline execution model. In
+particular, this filter overrides
+ProcessObject::GenerateInputRequestedRegion() and
+ProcessObject::GenerateOutputInformation() .
+
+This filter is implemented as a multithreaded filter. It provides a
+ThreadedGenerateData() method for its implementation.
+
+Wiki Examples:
+
+All Examples
+
+Shrink an image
+See:
+ itk::simple::Shrink for the procedural interface
+
+ itk::ShrinkImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkShrinkImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ShrinkImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ShrinkImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ShrinkImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ShrinkImageFilter::GetShrinkFactors "
+
+Get the shrink factors.
+
+";
+
+%feature("docstring")  itk::simple::ShrinkImageFilter::SetShrinkFactor "
+
+Custom public declarations
+
+";
+
+%feature("docstring")  itk::simple::ShrinkImageFilter::SetShrinkFactors "
+
+Set the shrink factors. Values are clamped to a minimum value of 1.
+Default is 1 for all dimensions.
+
+";
+
+%feature("docstring")  itk::simple::ShrinkImageFilter::ShrinkImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ShrinkImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ShrinkImageFilter::~ShrinkImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::SigmoidImageFilter "
+
+Computes the sigmoid function pixel-wise.
+
+
+A linear transformation is applied first on the argument of the
+sigmoid function. The resulting total transform is given by
+
+\\\\[ f(x) = (Max-Min) \\\\cdot \\\\frac{1}{\\\\left(1+e^{- \\\\frac{
+x - \\\\beta }{\\\\alpha}}\\\\right)} + Min \\\\]
+
+Every output pixel is equal to f(x). Where x is the intensity of the
+homologous input pixel, and alpha and beta are user-provided
+constants.
+
+Wiki Examples:
+
+All Examples
+
+Pass image pixels through a sigmoid function
+See:
+ itk::simple::Sigmoid for the procedural interface
+
+ itk::SigmoidImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkSigmoidImageFilter.h
+";
+
+%feature("docstring")  itk::simple::SigmoidImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::SigmoidImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::SigmoidImageFilter::GetAlpha "
+";
+
+%feature("docstring")  itk::simple::SigmoidImageFilter::GetBeta "
+";
+
+%feature("docstring")  itk::simple::SigmoidImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::SigmoidImageFilter::GetOutputMaximum "
+";
+
+%feature("docstring")  itk::simple::SigmoidImageFilter::GetOutputMinimum "
+";
+
+%feature("docstring")  itk::simple::SigmoidImageFilter::SetAlpha "
+";
+
+%feature("docstring")  itk::simple::SigmoidImageFilter::SetBeta "
+";
+
+%feature("docstring")  itk::simple::SigmoidImageFilter::SetOutputMaximum "
+";
+
+%feature("docstring")  itk::simple::SigmoidImageFilter::SetOutputMinimum "
+";
+
+%feature("docstring")  itk::simple::SigmoidImageFilter::SigmoidImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::SigmoidImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::SigmoidImageFilter::~SigmoidImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::SignedDanielssonDistanceMapImageFilter "
+
+This class is parametrized over the type of the input image and the
+type of the output image.
+
+This filter computes the distance map of the input image as an
+approximation with pixel accuracy to the Euclidean distance.
+
+For purposes of evaluating the signed distance map, the input is
+assumed to be binary composed of pixels with value 0 and non-zero.
+
+The inside is considered as having negative distances. Outside is
+treated as having positive distances. To change the convention, use
+the InsideIsPositive(bool) function.
+
+As a convention, the distance is evaluated from the boundary of the ON
+pixels.
+
+The filter returns
+
+
+A signed distance map with the approximation to the euclidean
+distance.
+
+A voronoi partition. (See itkDanielssonDistanceMapImageFilter)
+
+A vector map containing the component of the vector relating the
+current pixel with the closest point of the closest object to this
+pixel. Given that the components of the distance are computed in
+\"pixels\", the vector is represented by an itk::Offset . That is, physical coordinates are not used. (See
+itkDanielssonDistanceMapImageFilter)
+ This filter internally uses the DanielssonDistanceMap filter. This
+filter is N-dimensional.
+
+
+See:
+ itkDanielssonDistanceMapImageFilter
+
+ itk::simple::SignedDanielssonDistanceMap for the procedural interface
+
+ itk::SignedDanielssonDistanceMapImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkSignedDanielssonDistanceMapImageFilter.h
+";
+
+%feature("docstring")  itk::simple::SignedDanielssonDistanceMapImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::SignedDanielssonDistanceMapImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::SignedDanielssonDistanceMapImageFilter::GetInsideIsPositive "
+
+Get if the inside represents positive values in the signed distance
+map. See GetInsideIsPositive()
+
+";
+
+%feature("docstring")  itk::simple::SignedDanielssonDistanceMapImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::SignedDanielssonDistanceMapImageFilter::GetSquaredDistance "
+
+Get the distance squared.
+
+";
+
+%feature("docstring")  itk::simple::SignedDanielssonDistanceMapImageFilter::GetUseImageSpacing "
+
+Get whether spacing is used.
+
+";
+
+%feature("docstring")  itk::simple::SignedDanielssonDistanceMapImageFilter::InsideIsPositiveOff "
+";
+
+%feature("docstring")  itk::simple::SignedDanielssonDistanceMapImageFilter::InsideIsPositiveOn "
+
+Set the value of InsideIsPositive to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::SignedDanielssonDistanceMapImageFilter::SetInsideIsPositive "
+
+Set if the inside represents positive values in the signed distance
+map. By convention ON pixels are treated as inside pixels.
+
+";
+
+%feature("docstring")  itk::simple::SignedDanielssonDistanceMapImageFilter::SetSquaredDistance "
+
+Set if the distance should be squared.
+
+";
+
+%feature("docstring")  itk::simple::SignedDanielssonDistanceMapImageFilter::SetUseImageSpacing "
+
+Set if image spacing should be used in computing distances.
+
+";
+
+%feature("docstring")  itk::simple::SignedDanielssonDistanceMapImageFilter::SignedDanielssonDistanceMapImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::SignedDanielssonDistanceMapImageFilter::SquaredDistanceOff "
+";
+
+%feature("docstring")  itk::simple::SignedDanielssonDistanceMapImageFilter::SquaredDistanceOn "
+
+Set the value of SquaredDistance to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::SignedDanielssonDistanceMapImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::SignedDanielssonDistanceMapImageFilter::UseImageSpacingOff "
+";
+
+%feature("docstring")  itk::simple::SignedDanielssonDistanceMapImageFilter::UseImageSpacingOn "
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::SignedDanielssonDistanceMapImageFilter::~SignedDanielssonDistanceMapImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::SignedMaurerDistanceMapImageFilter "
+
+This filter calculates the Euclidean distance transform of a binary
+image in linear time for arbitrary dimensions.
+
+
+Inputs and Outputs
+This is an image-to-image filter. The dimensionality is arbitrary. The
+only dimensionality constraint is that the input and output images be
+of the same dimensions and size. To maintain integer arithmetic within
+the filter, the default output is the signed squared distance. This
+implies that the input image should be of type \"unsigned int\" or
+\"int\" whereas the output image is of type \"int\". Obviously, if the
+user wishes to utilize the image spacing or to have a filter with the
+Euclidean distance (as opposed to the squared distance), output image
+types of float or double should be used.
+ The inside is considered as having negative distances. Outside is
+treated as having positive distances. To change the convention, use
+the InsideIsPositive(bool) function.
+
+Parameters
+Set/GetBackgroundValue specifies the background of the value of the
+input binary image. Normally this is zero and, as such, zero is the
+default value. Other than that, the usage is completely analogous to
+the itk::DanielssonDistanceImageFilter class except it does not return
+the Voronoi map.
+ Reference: C. R. Maurer, Jr., R. Qi, and V. Raghavan, \"A Linear Time
+Algorithm for Computing Exact Euclidean Distance Transforms of Binary
+Images in Arbitrary Dimensions\", IEEE - Transactions on Pattern
+Analysis and Machine Intelligence, 25(2): 265-270, 2003.
+See:
+ itk::simple::SignedMaurerDistanceMap for the procedural interface
+
+ itk::SignedMaurerDistanceMapImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkSignedMaurerDistanceMapImageFilter.h
+";
+
+%feature("docstring")  itk::simple::SignedMaurerDistanceMapImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::SignedMaurerDistanceMapImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::SignedMaurerDistanceMapImageFilter::GetInsideIsPositive "
+
+Get if the inside represents positive values in the signed distance
+map.
+See:
+ GetInsideIsPositive()
+
+
+";
+
+%feature("docstring")  itk::simple::SignedMaurerDistanceMapImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::SignedMaurerDistanceMapImageFilter::GetSquaredDistance "
+
+Get the distance squared.
+
+";
+
+%feature("docstring")  itk::simple::SignedMaurerDistanceMapImageFilter::GetUseImageSpacing "
+
+Get whether spacing is used.
+
+";
+
+%feature("docstring")  itk::simple::SignedMaurerDistanceMapImageFilter::InsideIsPositiveOff "
+";
+
+%feature("docstring")  itk::simple::SignedMaurerDistanceMapImageFilter::InsideIsPositiveOn "
+
+Set the value of InsideIsPositive to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::SignedMaurerDistanceMapImageFilter::SetInsideIsPositive "
+
+Set if the inside represents positive values in the signed distance
+map. By convention ON pixels are treated as inside pixels.
+
+";
+
+%feature("docstring")  itk::simple::SignedMaurerDistanceMapImageFilter::SetSquaredDistance "
+
+Set if the distance should be squared.
+
+";
+
+%feature("docstring")  itk::simple::SignedMaurerDistanceMapImageFilter::SetUseImageSpacing "
+
+Set if image spacing should be used in computing distances.
+
+";
+
+%feature("docstring")  itk::simple::SignedMaurerDistanceMapImageFilter::SignedMaurerDistanceMapImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::SignedMaurerDistanceMapImageFilter::SquaredDistanceOff "
+";
+
+%feature("docstring")  itk::simple::SignedMaurerDistanceMapImageFilter::SquaredDistanceOn "
+
+Set the value of SquaredDistance to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::SignedMaurerDistanceMapImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::SignedMaurerDistanceMapImageFilter::UseImageSpacingOff "
+";
+
+%feature("docstring")  itk::simple::SignedMaurerDistanceMapImageFilter::UseImageSpacingOn "
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::SignedMaurerDistanceMapImageFilter::~SignedMaurerDistanceMapImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::Similarity2DTransform "
+
+A similarity 2D transform with rotation in radians and isotropic
+scaling around a fixed center with translation.
+
+
+
+See:
+ itk::Similarity2DTransform
+
+
+C++ includes: sitkSimilarity2DTransform.h
+";
+
+%feature("docstring")  itk::simple::Similarity2DTransform::GetAngle "
+";
+
+%feature("docstring")  itk::simple::Similarity2DTransform::GetCenter "
+";
+
+%feature("docstring")  itk::simple::Similarity2DTransform::GetMatrix "
+
+additional methods
+
+";
+
+%feature("docstring")  itk::simple::Similarity2DTransform::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::Similarity2DTransform::GetScale "
+";
+
+%feature("docstring")  itk::simple::Similarity2DTransform::GetTranslation "
+";
+
+%feature("docstring")  itk::simple::Similarity2DTransform::SetAngle "
+
+parameter
+
+";
+
+%feature("docstring")  itk::simple::Similarity2DTransform::SetCenter "
+
+fixed parameter
+
+";
+
+%feature("docstring")  itk::simple::Similarity2DTransform::SetMatrix "
+";
+
+%feature("docstring")  itk::simple::Similarity2DTransform::SetScale "
+";
+
+%feature("docstring")  itk::simple::Similarity2DTransform::SetTranslation "
+";
+
+%feature("docstring")  itk::simple::Similarity2DTransform::Similarity2DTransform "
+";
+
+%feature("docstring")  itk::simple::Similarity2DTransform::Similarity2DTransform "
+";
+
+%feature("docstring")  itk::simple::Similarity2DTransform::Similarity2DTransform "
+";
+
+%feature("docstring")  itk::simple::Similarity2DTransform::Similarity2DTransform "
+";
+
+
+%feature("docstring") itk::simple::Similarity3DTransform "
+
+A similarity 3D transform with rotation as a versor, and isotropic
+scaling around a fixed center with translation.
+
+
+
+See:
+ itk::Similarity3DTransform
+
+
+C++ includes: sitkSimilarity3DTransform.h
+";
+
+%feature("docstring")  itk::simple::Similarity3DTransform::GetCenter "
+";
+
+%feature("docstring")  itk::simple::Similarity3DTransform::GetMatrix "
+";
+
+%feature("docstring")  itk::simple::Similarity3DTransform::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::Similarity3DTransform::GetScale "
+";
+
+%feature("docstring")  itk::simple::Similarity3DTransform::GetTranslation "
+";
+
+%feature("docstring")  itk::simple::Similarity3DTransform::GetVersor "
+";
+
+%feature("docstring")  itk::simple::Similarity3DTransform::SetCenter "
+
+fixed parameter
+
+";
+
+%feature("docstring")  itk::simple::Similarity3DTransform::SetMatrix "
+";
+
+%feature("docstring")  itk::simple::Similarity3DTransform::SetRotation "
+
+parameter
+
+";
+
+%feature("docstring")  itk::simple::Similarity3DTransform::SetRotation "
+";
+
+%feature("docstring")  itk::simple::Similarity3DTransform::SetScale "
+";
+
+%feature("docstring")  itk::simple::Similarity3DTransform::SetTranslation "
+";
+
+%feature("docstring")  itk::simple::Similarity3DTransform::Similarity3DTransform "
+";
+
+%feature("docstring")  itk::simple::Similarity3DTransform::Similarity3DTransform "
+";
+
+%feature("docstring")  itk::simple::Similarity3DTransform::Similarity3DTransform "
+";
+
+%feature("docstring")  itk::simple::Similarity3DTransform::Similarity3DTransform "
+";
+
+%feature("docstring")  itk::simple::Similarity3DTransform::Similarity3DTransform "
+";
+
+%feature("docstring")  itk::simple::Similarity3DTransform::Translate "
+
+additional methods
+
+";
+
+
+%feature("docstring") itk::simple::SimilarityIndexImageFilter "
+
+Measures the similarity between the set of non-zero pixels of two
+images.
+
+
+SimilarityIndexImageFilter measures the similarity between the set non-zero pixels of two images
+using the following formula: \\\\[ S = \\\\frac{2 | A \\\\cap B |}{|A| + |B|} \\\\] where $A$ and $B$ are respectively the set of non-zero pixels in the first and second
+input images. Operator $|\\\\cdot|$ represents the size of a set and $\\\\cap$ represents the intersection of two sets.
+
+The measure is derived from a reliability measure known as the kappa
+statistic. $S$ is sensitive to both differences in size and in location and have
+been in the literature for comparing two segmentation masks. For more
+information see: \"Morphometric Analysis of White Matter Lesions in MR
+Images: Method and Validation\", A. P. Zijdenbos, B. M. Dawant, R. A.
+Margolin and A. C. Palmer, IEEE Trans. on Medical Imaging, 13(4) pp
+716-724,1994
+
+This filter requires the largest possible region of the first image
+and the same corresponding region in the second image. It behaves as
+filter with two input and one output. Thus it can be inserted in a
+pipeline with other filters. The filter passes the first input through
+unmodified.
+
+This filter is templated over the two input image type. It assume both
+image have the same number of dimensions.
+
+
+See:
+ itk::SimilarityIndexImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkSimilarityIndexImageFilter.h
+";
+
+%feature("docstring")  itk::simple::SimilarityIndexImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::SimilarityIndexImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::SimilarityIndexImageFilter::GetSimilarityIndex "
+
+Return the computed similarity index.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::SimilarityIndexImageFilter::SimilarityIndexImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::SimilarityIndexImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::SimilarityIndexImageFilter::~SimilarityIndexImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::SimpleContourExtractorImageFilter "
+
+Computes an image of contours which will be the contour of the first
+image.
+
+
+A pixel of the source image is considered to belong to the contour if
+its pixel value is equal to the input foreground value and it has in
+its neighborhood at least one pixel which its pixel value is equal to
+the input background value. The output image will have pixels which
+will be set to the output foreground value if they belong to the
+contour, otherwise they will be set to the output background value.
+
+The neighborhood \"radius\" is set thanks to the radius params.
+
+
+See:
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+
+ itk::simple::SimpleContourExtractor for the procedural interface
+
+ itk::SimpleContourExtractorImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkSimpleContourExtractorImageFilter.h
+";
+
+%feature("docstring")  itk::simple::SimpleContourExtractorImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::SimpleContourExtractorImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::SimpleContourExtractorImageFilter::GetInputBackgroundValue "
+
+Get the background value used in order to identify a background pixel
+in the input image.
+
+";
+
+%feature("docstring")  itk::simple::SimpleContourExtractorImageFilter::GetInputForegroundValue "
+
+Get the foreground value used in order to identify a foreground pixel
+in the input image.
+
+";
+
+%feature("docstring")  itk::simple::SimpleContourExtractorImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::SimpleContourExtractorImageFilter::GetOutputBackgroundValue "
+
+Get the background value used in order to identify a background pixel
+in the output image.
+
+";
+
+%feature("docstring")  itk::simple::SimpleContourExtractorImageFilter::GetOutputForegroundValue "
+
+Get the foreground value used in order to identify a foreground pixel
+in the output image.
+
+";
+
+%feature("docstring")  itk::simple::SimpleContourExtractorImageFilter::GetRadius "
+";
+
+%feature("docstring")  itk::simple::SimpleContourExtractorImageFilter::SetInputBackgroundValue "
+
+Set the background value used in order to identify a background pixel
+in the input image.
+
+";
+
+%feature("docstring")  itk::simple::SimpleContourExtractorImageFilter::SetInputForegroundValue "
+
+Set the foreground value used in order to identify a foreground pixel
+in the input image.
+
+";
+
+%feature("docstring")  itk::simple::SimpleContourExtractorImageFilter::SetOutputBackgroundValue "
+
+Set the background value used in order to identify a background pixel
+in the output image.
+
+";
+
+%feature("docstring")  itk::simple::SimpleContourExtractorImageFilter::SetOutputForegroundValue "
+
+Set the foreground value used in order to identify a foreground pixel
+in the output image.
+
+";
+
+%feature("docstring")  itk::simple::SimpleContourExtractorImageFilter::SetRadius "
+";
+
+%feature("docstring")  itk::simple::SimpleContourExtractorImageFilter::SetRadius "
+
+Set the values of the Radius vector all to value
+
+";
+
+%feature("docstring")  itk::simple::SimpleContourExtractorImageFilter::SimpleContourExtractorImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::SimpleContourExtractorImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::SimpleContourExtractorImageFilter::~SimpleContourExtractorImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::SinImageFilter "
+
+Computes the sine of each pixel.
+
+
+The computations are performed using std::sin(x).
+
+Wiki Examples:
+
+All Examples
+
+Compute the sine of each pixel.
+See:
+ itk::simple::Sin for the procedural interface
+
+ itk::SinImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkSinImageFilter.h
+";
+
+%feature("docstring")  itk::simple::SinImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::SinImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::SinImageFilter::SinImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::SinImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::SinImageFilter::~SinImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::SliceImageFilter "
+
+
+See:
+ itk::simple::Slice for the procedural interface
+
+ itk::SliceImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkSliceImageFilter.h
+";
+
+%feature("docstring")  itk::simple::SliceImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::SliceImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::SliceImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::SliceImageFilter::GetStart "
+";
+
+%feature("docstring")  itk::simple::SliceImageFilter::GetStep "
+";
+
+%feature("docstring")  itk::simple::SliceImageFilter::GetStop "
+";
+
+%feature("docstring")  itk::simple::SliceImageFilter::SetStart "
+";
+
+%feature("docstring")  itk::simple::SliceImageFilter::SetStep "
+";
+
+%feature("docstring")  itk::simple::SliceImageFilter::SetStep "
+
+Set the values of the Step vector all to value
+
+";
+
+%feature("docstring")  itk::simple::SliceImageFilter::SetStop "
+";
+
+%feature("docstring")  itk::simple::SliceImageFilter::SliceImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::SliceImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::SliceImageFilter::~SliceImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::SmoothingRecursiveGaussianImageFilter "
+
+Computes the smoothing of an image by convolution with the Gaussian
+kernels implemented as IIR filters.
+
+
+This filter is implemented using the recursive gaussian filters. For
+multi-component images, the filter works on each component
+independently.
+
+For this filter to be able to run in-place the input and output image
+types need to be the same and/or the same type as the RealImageType.
+
+Wiki Examples:
+
+All Examples
+
+Gaussian smoothing that works with image adaptors
+See:
+ itk::simple::SmoothingRecursiveGaussian for the procedural interface
+
+ itk::SmoothingRecursiveGaussianImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkSmoothingRecursiveGaussianImageFilter.h
+";
+
+%feature("docstring")  itk::simple::SmoothingRecursiveGaussianImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::SmoothingRecursiveGaussianImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::SmoothingRecursiveGaussianImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::SmoothingRecursiveGaussianImageFilter::GetNormalizeAcrossScale "
+
+This method does not effect the output of this filter.
+See:
+ RecursiveGaussianImageFilter::SetNormalizeAcrossScale
+
+
+";
+
+%feature("docstring")  itk::simple::SmoothingRecursiveGaussianImageFilter::GetSigma "
+";
+
+%feature("docstring")  itk::simple::SmoothingRecursiveGaussianImageFilter::NormalizeAcrossScaleOff "
+";
+
+%feature("docstring")  itk::simple::SmoothingRecursiveGaussianImageFilter::NormalizeAcrossScaleOn "
+
+Set the value of NormalizeAcrossScale to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::SmoothingRecursiveGaussianImageFilter::SetNormalizeAcrossScale "
+
+This method does not effect the output of this filter.
+See:
+ RecursiveGaussianImageFilter::SetNormalizeAcrossScale
+
+
+";
+
+%feature("docstring")  itk::simple::SmoothingRecursiveGaussianImageFilter::SetSigma "
+
+Set Sigma value. Sigma is measured in the units of image spacing. You
+may use the method SetSigma to set the same value across each axis or
+use the method SetSigmaArray if you need different values along each
+axis.
+
+";
+
+%feature("docstring")  itk::simple::SmoothingRecursiveGaussianImageFilter::SmoothingRecursiveGaussianImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::SmoothingRecursiveGaussianImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::SmoothingRecursiveGaussianImageFilter::~SmoothingRecursiveGaussianImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::SobelEdgeDetectionImageFilter "
+
+A 2D or 3D edge detection using the Sobel operator.
+
+
+This filter uses the Sobel operator to calculate the image gradient
+and then finds the magnitude of this gradient vector. The Sobel
+gradient magnitude (square-root sum of squares) is an indication of
+edge strength.
+
+
+See:
+ ImageToImageFilter
+
+ SobelOperator
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+Wiki Examples:
+
+All Examples
+
+SobelEdgeDetectionImageFilter
+See:
+ itk::simple::SobelEdgeDetection for the procedural interface
+
+ itk::SobelEdgeDetectionImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkSobelEdgeDetectionImageFilter.h
+";
+
+%feature("docstring")  itk::simple::SobelEdgeDetectionImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::SobelEdgeDetectionImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::SobelEdgeDetectionImageFilter::SobelEdgeDetectionImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::SobelEdgeDetectionImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::SobelEdgeDetectionImageFilter::~SobelEdgeDetectionImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::SpeckleNoiseImageFilter "
+
+Alter an image with speckle (multiplicative) noise.
+
+
+The speckle noise follows a Gamma distribution of mean 1 and standard
+deviation provided by the user. The noise is proportional to the pixel
+intensity.
+
+
+Gaetan Lehmann
+ This code was contributed in the Insight Journal paper \"Noise
+Simulation\". https://hdl.handle.net/10380/3158
+See:
+ itk::simple::SpeckleNoise for the procedural interface
+
+ itk::SpeckleNoiseImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkSpeckleNoiseImageFilter.h
+";
+
+%feature("docstring")  itk::simple::SpeckleNoiseImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::SpeckleNoiseImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::SpeckleNoiseImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::SpeckleNoiseImageFilter::GetSeed "
+";
+
+%feature("docstring")  itk::simple::SpeckleNoiseImageFilter::GetStandardDeviation "
+";
+
+%feature("docstring")  itk::simple::SpeckleNoiseImageFilter::SetSeed "
+";
+
+%feature("docstring")  itk::simple::SpeckleNoiseImageFilter::SetStandardDeviation "
+";
+
+%feature("docstring")  itk::simple::SpeckleNoiseImageFilter::SpeckleNoiseImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::SpeckleNoiseImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::SpeckleNoiseImageFilter::~SpeckleNoiseImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::SqrtImageFilter "
+
+Computes the square root of each pixel.
+
+
+The computations are performed using std::sqrt(x).
+See:
+ itk::simple::Sqrt for the procedural interface
+
+ itk::SqrtImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkSqrtImageFilter.h
+";
+
+%feature("docstring")  itk::simple::SqrtImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::SqrtImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::SqrtImageFilter::SqrtImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::SqrtImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::SqrtImageFilter::~SqrtImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::SquareImageFilter "
+
+Computes the square of the intensity values pixel-wise.
+
+
+Wiki Examples:
+
+All Examples
+
+Square every pixel in an image
+See:
+ itk::simple::Square for the procedural interface
+
+ itk::SquareImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkSquareImageFilter.h
+";
+
+%feature("docstring")  itk::simple::SquareImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::SquareImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::SquareImageFilter::SquareImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::SquareImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::SquareImageFilter::~SquareImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::SquaredDifferenceImageFilter "
+
+Implements pixel-wise the computation of squared difference.
+
+
+This filter is parametrized over the types of the two input images and
+the type of the output image.
+
+Numeric conversions (castings) are done by the C++ defaults.
+
+The filter will walk over all the pixels in the two input images, and
+for each one of them it will do the following:
+
+
+cast the input 1 pixel value to double
+
+cast the input 2 pixel value to double
+
+compute the difference of the two pixel values
+
+compute the square of the difference
+
+cast the double value resulting from sqr() to the pixel type of the output image
+
+store the casted value into the output image.
+ The filter expect all images to have the same dimension (e.g. all 2D,
+or all 3D, or all ND)
+
+Wiki Examples:
+
+All Examples
+
+Compute the squared difference of corresponding pixels in two images
+See:
+ itk::simple::SquaredDifference for the procedural interface
+
+ itk::SquaredDifferenceImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkSquaredDifferenceImageFilter.h
+";
+
+%feature("docstring")  itk::simple::SquaredDifferenceImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::SquaredDifferenceImageFilter::Execute "
+
+Execute the filter with an image and a constant
+
+";
+
+%feature("docstring")  itk::simple::SquaredDifferenceImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::SquaredDifferenceImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::SquaredDifferenceImageFilter::SquaredDifferenceImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::SquaredDifferenceImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::SquaredDifferenceImageFilter::~SquaredDifferenceImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::StandardDeviationProjectionImageFilter "
+
+Mean projection.
+
+
+This class was contributed to the Insight Journal by Gaetan Lehmann.
+The original paper can be found at https://hdl.handle.net/1926/164
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ ProjectionImageFilter
+
+ MedianProjectionImageFilter
+
+ MeanProjectionImageFilter
+
+ SumProjectionImageFilter
+
+ MeanProjectionImageFilter
+
+ MaximumProjectionImageFilter
+
+ MinimumProjectionImageFilter
+
+ BinaryProjectionImageFilter
+
+ itk::simple::StandardDeviationProjection for the procedural interface
+
+ itk::StandardDeviationProjectionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkStandardDeviationProjectionImageFilter.h
+";
+
+%feature("docstring")  itk::simple::StandardDeviationProjectionImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::StandardDeviationProjectionImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::StandardDeviationProjectionImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::StandardDeviationProjectionImageFilter::GetProjectionDimension "
+";
+
+%feature("docstring")  itk::simple::StandardDeviationProjectionImageFilter::SetProjectionDimension "
+";
+
+%feature("docstring")  itk::simple::StandardDeviationProjectionImageFilter::StandardDeviationProjectionImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::StandardDeviationProjectionImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::StandardDeviationProjectionImageFilter::~StandardDeviationProjectionImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::StatisticsImageFilter "
+
+Compute min. max, variance and mean of an Image .
+
+
+StatisticsImageFilter computes the minimum, maximum, sum, mean, variance sigma of an image.
+The filter needs all of its input image. It behaves as a filter with
+an input and output. Thus it can be inserted in a pipline with other
+filters and the statistics will only be recomputed if a downstream
+filter changes.
+
+The filter passes its input through unmodified. The filter is
+threaded. It computes statistics in each thread then combines them in
+its AfterThreadedGenerate method.
+
+Wiki Examples:
+
+All Examples
+
+Compute min, max, variance and mean of an Image.
+
+See:
+ itk::StatisticsImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkStatisticsImageFilter.h
+";
+
+%feature("docstring")  itk::simple::StatisticsImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::StatisticsImageFilter::GetMaximum "
+
+Return the computed Maximum.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::StatisticsImageFilter::GetMean "
+
+Return the computed Mean.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::StatisticsImageFilter::GetMinimum "
+
+Return the computed Minimum.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::StatisticsImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::StatisticsImageFilter::GetSigma "
+
+Return the computed Standard Deviation.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::StatisticsImageFilter::GetSum "
+
+Return the compute Sum.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::StatisticsImageFilter::GetVariance "
+
+Return the computed Variance.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::StatisticsImageFilter::StatisticsImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::StatisticsImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::StatisticsImageFilter::~StatisticsImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::SubtractImageFilter "
+
+Pixel-wise subtraction of two images.
+
+
+Subtract each pixel from image2 from its corresponding pixel in
+image1:
+
+
+This is done using
+
+
+This class is templated over the types of the two input images and the
+type of the output image. Numeric conversions (castings) are done by
+the C++ defaults.
+
+Additionally, a constant can be subtracted from every pixel in an
+image using:
+
+
+
+The result of AddImageFilter with a negative constant is not necessarily the same as SubtractImageFilter . This would be the case when the PixelType defines an operator-() that is not the inverse of operator+()
+Wiki Examples:
+
+All Examples
+
+Subtract two images
+
+Subtract a constant from every pixel in an image
+See:
+ itk::simple::Subtract for the procedural interface
+
+ itk::SubtractImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkSubtractImageFilter.h
+";
+
+%feature("docstring")  itk::simple::SubtractImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::SubtractImageFilter::Execute "
+
+Execute the filter with an image and a constant
+
+";
+
+%feature("docstring")  itk::simple::SubtractImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::SubtractImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::SubtractImageFilter::SubtractImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::SubtractImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::SubtractImageFilter::~SubtractImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::SumProjectionImageFilter "
+
+Sum projection.
+
+
+This class was contributed to the Insight Journal by Gaetan Lehmann.
+The original paper can be found at https://hdl.handle.net/1926/164
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ ProjectionImageFilter
+
+ MedianProjectionImageFilter
+
+ MeanProjectionImageFilter
+
+ MeanProjectionImageFilter
+
+ MaximumProjectionImageFilter
+
+ MinimumProjectionImageFilter
+
+ BinaryProjectionImageFilter
+
+ StandardDeviationProjectionImageFilter
+
+ itk::simple::SumProjection for the procedural interface
+
+ itk::SumProjectionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkSumProjectionImageFilter.h
+";
+
+%feature("docstring")  itk::simple::SumProjectionImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::SumProjectionImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::SumProjectionImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::SumProjectionImageFilter::GetProjectionDimension "
+";
+
+%feature("docstring")  itk::simple::SumProjectionImageFilter::SetProjectionDimension "
+";
+
+%feature("docstring")  itk::simple::SumProjectionImageFilter::SumProjectionImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::SumProjectionImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::SumProjectionImageFilter::~SumProjectionImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::SymmetricForcesDemonsRegistrationFilter "
+
+Deformably register two images using the demons algorithm.
+
+
+This class was contributed by Corinne Mattmann, ETH Zurich,
+Switzerland. based on a variation of the DemonsRegistrationFilter . The basic modification is to use equation (5) from Thirion's paper
+along with the modification for avoiding large deformations when
+gradients have small values.
+
+SymmetricForcesDemonsRegistrationFilter implements the demons deformable algorithm that register two images
+by computing the deformation field which will map a moving image onto
+a fixed image.
+
+A deformation field is represented as a image whose pixel type is some
+vector type with at least N elements, where N is the dimension of the
+fixed image. The vector type must support element access via operator
+[]. It is assumed that the vector elements behave like floating point
+scalars.
+
+This class is templated over the fixed image type, moving image type
+and the deformation field type.
+
+The input fixed and moving images are set via methods SetFixedImage
+and SetMovingImage respectively. An initial deformation field maybe
+set via SetInitialDisplacementField or SetInput. If no initial field
+is set, a zero field is used as the initial condition.
+
+The algorithm has one parameters: the number of iteration to be
+performed.
+
+The output deformation field can be obtained via methods GetOutput or
+GetDisplacementField.
+
+This class make use of the finite difference solver hierarchy. Update
+for each iteration is computed in DemonsRegistrationFunction .
+
+
+WARNING:
+This filter assumes that the fixed image type, moving image type and
+deformation field type all have the same number of dimensions.
+
+See:
+ SymmetricForcesDemonsRegistrationFunction
+
+ DemonsRegistrationFilter
+
+ DemonsRegistrationFunction
+
+ itk::SymmetricForcesDemonsRegistrationFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkSymmetricForcesDemonsRegistrationFilter.h
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::GetElapsedIterations "
+
+Number of iterations run.
+
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::GetIntensityDifferenceThreshold "
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::GetMaximumError "
+
+Set/Get the desired maximum error of the Guassian kernel approximate.
+
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::GetMaximumKernelWidth "
+
+Set/Get the desired limits of the Gaussian kernel width.
+
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::GetMaximumRMSError "
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::GetMetric "
+
+Get the metric value. The metric value is the mean square difference
+in intensity between the fixed image and transforming moving image
+computed over the the overlapping region between the two images. This
+value is calculated for the current iteration
+
+This is an active measurement. It may be accessed while the filter is
+being executing in command call-backs and can be accessed after
+execution.
+
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::GetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::GetRMSChange "
+
+Set/Get the root mean squared change of the previous iteration. May
+not be used by all solvers.
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::GetSmoothDisplacementField "
+
+Set/Get whether the displacement field is smoothed (regularized).
+Smoothing the displacement yields a solution elastic in nature. If
+SmoothDisplacementField is on, then the displacement field is smoothed
+with a Gaussian whose standard deviations are specified with SetStandardDeviations()
+
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::GetSmoothUpdateField "
+
+Set/Get whether the update field is smoothed (regularized). Smoothing
+the update field yields a solution viscous in nature. If
+SmoothUpdateField is on, then the update field is smoothed with a
+Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()
+
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::GetStandardDeviations "
+
+Set/Get the Gaussian smoothing standard deviations for the
+displacement field. The values are set with respect to pixel
+coordinates.
+
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::GetUpdateFieldStandardDeviations "
+
+Set the Gaussian smoothing standard deviations for the update field.
+The values are set with respect to pixel coordinates.
+
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::GetUseImageSpacing "
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::SetIntensityDifferenceThreshold "
+
+Set/Get the threshold below which the absolute difference of intensity
+yields a match. When the intensities match between a moving and fixed
+image pixel, the update vector (for that iteration) will be the zero
+vector. Default is 0.001.
+
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::SetMaximumError "
+
+Set/Get the desired maximum error of the Guassian kernel approximate.
+
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::SetMaximumKernelWidth "
+
+Set/Get the desired limits of the Gaussian kernel width.
+
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::SetMaximumRMSError "
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::SetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::SetSmoothDisplacementField "
+
+Set/Get whether the displacement field is smoothed (regularized).
+Smoothing the displacement yields a solution elastic in nature. If
+SmoothDisplacementField is on, then the displacement field is smoothed
+with a Gaussian whose standard deviations are specified with SetStandardDeviations()
+
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::SetSmoothUpdateField "
+
+Set/Get whether the update field is smoothed (regularized). Smoothing
+the update field yields a solution viscous in nature. If
+SmoothUpdateField is on, then the update field is smoothed with a
+Gaussian whose standard deviations are specified with SetUpdateFieldStandardDeviations()
+
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::SetStandardDeviations "
+
+Set/Get the Gaussian smoothing standard deviations for the
+displacement field. The values are set with respect to pixel
+coordinates.
+
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::SetStandardDeviations "
+
+Set the values of the StandardDeviations vector all to value
+
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::SetUpdateFieldStandardDeviations "
+
+Set the Gaussian smoothing standard deviations for the update field.
+The values are set with respect to pixel coordinates.
+
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::SetUpdateFieldStandardDeviations "
+
+Set the values of the UpdateFieldStandardDeviations vector all to
+value
+
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::SetUseImageSpacing "
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::SmoothDisplacementFieldOff "
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::SmoothDisplacementFieldOn "
+
+Set the value of SmoothDisplacementField to true or false
+respectfully.
+
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::SmoothUpdateFieldOff "
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::SmoothUpdateFieldOn "
+
+Set the value of SmoothUpdateField to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::SymmetricForcesDemonsRegistrationFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::UseImageSpacingOff "
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::UseImageSpacingOn "
+
+Set the value of UseImageSpacing to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::SymmetricForcesDemonsRegistrationFilter::~SymmetricForcesDemonsRegistrationFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::TanImageFilter "
+
+Computes the tangent of each input pixel.
+
+
+The computations are performed using std::tan(x).
+See:
+ itk::simple::Tan for the procedural interface
+
+ itk::TanImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkTanImageFilter.h
+";
+
+%feature("docstring")  itk::simple::TanImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::TanImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::TanImageFilter::TanImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::TanImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::TanImageFilter::~TanImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::TernaryAddImageFilter "
+
+Pixel-wise addition of three images.
+
+
+This class is templated over the types of the three input images and
+the type of the output image. Numeric conversions (castings) are done
+by the C++ defaults.
+See:
+ itk::simple::TernaryAdd for the procedural interface
+
+ itk::TernaryAddImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkTernaryAddImageFilter.h
+";
+
+%feature("docstring")  itk::simple::TernaryAddImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::TernaryAddImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::TernaryAddImageFilter::TernaryAddImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::TernaryAddImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::TernaryAddImageFilter::~TernaryAddImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::TernaryMagnitudeImageFilter "
+
+Compute the pixel-wise magnitude of three images.
+
+
+This class is templated over the types of the three input images and
+the type of the output image. Numeric conversions (castings) are done
+by the C++ defaults.
+See:
+ itk::simple::TernaryMagnitude for the procedural interface
+
+ itk::TernaryMagnitudeImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkTernaryMagnitudeImageFilter.h
+";
+
+%feature("docstring")  itk::simple::TernaryMagnitudeImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::TernaryMagnitudeImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::TernaryMagnitudeImageFilter::TernaryMagnitudeImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::TernaryMagnitudeImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::TernaryMagnitudeImageFilter::~TernaryMagnitudeImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::TernaryMagnitudeSquaredImageFilter "
+
+Compute the pixel-wise squared magnitude of three images.
+
+
+This class is templated over the types of the three input images and
+the type of the output image. Numeric conversions (castings) are done
+by the C++ defaults.
+See:
+ itk::simple::TernaryMagnitudeSquared for the procedural interface
+
+ itk::TernaryMagnitudeSquaredImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkTernaryMagnitudeSquaredImageFilter.h
+";
+
+%feature("docstring")  itk::simple::TernaryMagnitudeSquaredImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::TernaryMagnitudeSquaredImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::TernaryMagnitudeSquaredImageFilter::TernaryMagnitudeSquaredImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::TernaryMagnitudeSquaredImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::TernaryMagnitudeSquaredImageFilter::~TernaryMagnitudeSquaredImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ThresholdImageFilter "
+
+Set image values to a user-specified value if they are below, above,
+or between simple threshold values.
+
+
+ThresholdImageFilter sets image values to a user-specified \"outside\" value (by default,
+\"black\") if the image values are below, above, or between simple
+threshold values.
+
+The available methods are:
+
+ThresholdAbove() : The values greater than the threshold value are set
+to OutsideValue
+
+ThresholdBelow() : The values less than the threshold value are set to
+OutsideValue
+
+ThresholdOutside() : The values outside the threshold range (less than
+lower or greater than upper) are set to OutsideValue
+
+Note that these definitions indicate that pixels equal to the
+threshold value are not set to OutsideValue in any of these methods
+
+The pixels must support the operators >= and <=.
+
+Wiki Examples:
+
+All Examples
+
+Threshold an image
+See:
+ itk::simple::Threshold for the procedural interface
+
+ itk::ThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkThresholdImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ThresholdImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ThresholdImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ThresholdImageFilter::GetLower "
+
+Set/Get methods to set the lower threshold.
+
+";
+
+%feature("docstring")  itk::simple::ThresholdImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ThresholdImageFilter::GetOutsideValue "
+
+Get the \"outside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::ThresholdImageFilter::GetUpper "
+
+Set/Get methods to set the upper threshold.
+
+";
+
+%feature("docstring")  itk::simple::ThresholdImageFilter::SetLower "
+
+Set/Get methods to set the lower threshold.
+
+";
+
+%feature("docstring")  itk::simple::ThresholdImageFilter::SetOutsideValue "
+
+The pixel type must support comparison operators. Set the \"outside\"
+pixel value. The default value NumericTraits<PixelType>::ZeroValue() .
+
+";
+
+%feature("docstring")  itk::simple::ThresholdImageFilter::SetUpper "
+
+Set/Get methods to set the upper threshold.
+
+";
+
+%feature("docstring")  itk::simple::ThresholdImageFilter::ThresholdImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ThresholdImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ThresholdImageFilter::~ThresholdImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ThresholdMaximumConnectedComponentsImageFilter "
+
+Finds the threshold value of an image based on maximizing the number
+of objects in the image that are larger than a given minimal size.
+
+
+
+This method is based on Topological Stable State Thresholding to
+calculate the threshold set point. This method is particularly
+effective when there are a large number of objects in a microscopy
+image. Compiling in Debug mode and enable the debug flag for this
+filter to print debug information to see how the filter focuses in on
+a threshold value. Please see the Insight Journal's MICCAI 2005
+workshop for a complete description. References are below.
+Parameters
+The MinimumObjectSizeInPixels parameter is controlled through the
+class Get/SetMinimumObjectSizeInPixels() method. Similar to the
+standard itk::BinaryThresholdImageFilter the Get/SetInside and Get/SetOutside values of the threshold can be
+set. The GetNumberOfObjects() and GetThresholdValue() methods return
+the number of objects above the minimum pixel size and the calculated
+threshold value.
+Automatic Thresholding in ITK
+There are multiple methods to automatically calculate the threshold
+intensity value of an image. As of version 4.0, ITK has a Thresholding
+( ITKThresholding ) module which contains numerous automatic
+thresholding methods.implements two of these. Topological Stable State
+Thresholding works well on images with a large number of objects to be
+counted.
+References:
+1) Urish KL, August J, Huard J. \"Unsupervised segmentation for
+myofiber counting in immunoflourescent images\". Insight Journal. ISC
+/NA-MIC/MICCAI Workshop on Open-Source Software (2005) Dspace handle: https://hdl.handle.net/1926/48 2) Pikaz A, Averbuch, A. \"Digital image thresholding based on
+topological stable-state\". Pattern Recognition, 29(5): 829-843, 1996.
+
+Questions: email Ken Urish at ken.urish(at)gmail.com Please cc the itk
+list serve for archival purposes.
+
+See:
+ itk::simple::ThresholdMaximumConnectedComponents for the procedural interface
+
+ itk::ThresholdMaximumConnectedComponentsImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkThresholdMaximumConnectedComponentsImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ThresholdMaximumConnectedComponentsImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ThresholdMaximumConnectedComponentsImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ThresholdMaximumConnectedComponentsImageFilter::GetInsideValue "
+
+The following Set/Get methods are for the binary threshold function.
+This class automatically calculates the lower threshold boundary. The
+upper threshold boundary, inside value, and outside value can be
+defined by the user, however the standard values are used as default
+if not set by the user. The default value of the: Inside value is the
+maximum pixel type intensity. Outside value is the minimum pixel type
+intensity. Upper threshold boundary is the maximum pixel type
+intensity.
+
+";
+
+%feature("docstring")  itk::simple::ThresholdMaximumConnectedComponentsImageFilter::GetMinimumObjectSizeInPixels "
+
+The pixel type must support comparison operators. Set the minimum
+pixel area used to count objects on the image. Thus, only objects that
+have a pixel area greater than the minimum pixel area will be counted
+as an object in the optimization portion of this filter. Essentially,
+it eliminates noise from being counted as an object. The default value
+is zero.
+
+";
+
+%feature("docstring")  itk::simple::ThresholdMaximumConnectedComponentsImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ThresholdMaximumConnectedComponentsImageFilter::GetOutsideValue "
+
+The following Set/Get methods are for the binary threshold function.
+This class automatically calculates the lower threshold boundary. The
+upper threshold boundary, inside value, and outside value can be
+defined by the user, however the standard values are used as default
+if not set by the user. The default value of the: Inside value is the
+maximum pixel type intensity. Outside value is the minimum pixel type
+intensity. Upper threshold boundary is the maximum pixel type
+intensity.
+
+";
+
+%feature("docstring")  itk::simple::ThresholdMaximumConnectedComponentsImageFilter::GetUpperBoundary "
+
+The following Set/Get methods are for the binary threshold function.
+This class automatically calculates the lower threshold boundary. The
+upper threshold boundary, inside value, and outside value can be
+defined by the user, however the standard values are used as default
+if not set by the user. The default value of the: Inside value is the
+maximum pixel type intensity. Outside value is the minimum pixel type
+intensity. Upper threshold boundary is the maximum pixel type
+intensity.
+
+";
+
+%feature("docstring")  itk::simple::ThresholdMaximumConnectedComponentsImageFilter::SetInsideValue "
+
+The following Set/Get methods are for the binary threshold function.
+This class automatically calculates the lower threshold boundary. The
+upper threshold boundary, inside value, and outside value can be
+defined by the user, however the standard values are used as default
+if not set by the user. The default value of the: Inside value is the
+maximum pixel type intensity. Outside value is the minimum pixel type
+intensity. Upper threshold boundary is the maximum pixel type
+intensity.
+
+";
+
+%feature("docstring")  itk::simple::ThresholdMaximumConnectedComponentsImageFilter::SetMinimumObjectSizeInPixels "
+
+The pixel type must support comparison operators. Set the minimum
+pixel area used to count objects on the image. Thus, only objects that
+have a pixel area greater than the minimum pixel area will be counted
+as an object in the optimization portion of this filter. Essentially,
+it eliminates noise from being counted as an object. The default value
+is zero.
+
+";
+
+%feature("docstring")  itk::simple::ThresholdMaximumConnectedComponentsImageFilter::SetOutsideValue "
+
+The following Set/Get methods are for the binary threshold function.
+This class automatically calculates the lower threshold boundary. The
+upper threshold boundary, inside value, and outside value can be
+defined by the user, however the standard values are used as default
+if not set by the user. The default value of the: Inside value is the
+maximum pixel type intensity. Outside value is the minimum pixel type
+intensity. Upper threshold boundary is the maximum pixel type
+intensity.
+
+";
+
+%feature("docstring")  itk::simple::ThresholdMaximumConnectedComponentsImageFilter::SetUpperBoundary "
+
+The following Set/Get methods are for the binary threshold function.
+This class automatically calculates the lower threshold boundary. The
+upper threshold boundary, inside value, and outside value can be
+defined by the user, however the standard values are used as default
+if not set by the user. The default value of the: Inside value is the
+maximum pixel type intensity. Outside value is the minimum pixel type
+intensity. Upper threshold boundary is the maximum pixel type
+intensity.
+
+";
+
+%feature("docstring")  itk::simple::ThresholdMaximumConnectedComponentsImageFilter::ThresholdMaximumConnectedComponentsImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ThresholdMaximumConnectedComponentsImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ThresholdMaximumConnectedComponentsImageFilter::~ThresholdMaximumConnectedComponentsImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ThresholdSegmentationLevelSetImageFilter "
+
+Segments structures in images based on intensity values.
+
+
+IMPORTANT
+The SegmentationLevelSetImageFilter class and the ThresholdSegmentationLevelSetFunction class contain additional information necessary to the full
+understanding of how to use this filter.
+OVERVIEW
+This class is a level set method segmentation filter. It constructs a
+speed function which is close to zero at the upper and lower bounds of
+an intensity window, effectively locking the propagating front onto
+those edges. Elsewhere, the front will propagate quickly.
+INPUTS
+This filter requires two inputs. The first input is a seed image. This
+seed image must contain an isosurface that you want to use as the seed
+for your segmentation. It can be a binary, graylevel, or floating
+point image. The only requirement is that it contain a closed
+isosurface that you will identify as the seed by setting the
+IsosurfaceValue parameter of the filter. For a binary image you will
+want to set your isosurface value halfway between your on and off
+values (i.e. for 0's and 1's, use an isosurface value of 0.5).
+
+The second input is the feature image. This is the image from which
+the speed function will be calculated. For most applications, this is
+the image that you want to segment. The desired isosurface in your
+seed image should lie within the region of your feature image that you
+are trying to segment. Note that this filter does no preprocessing of
+the feature image before thresholding.
+
+See SegmentationLevelSetImageFilter for more information on Inputs.
+OUTPUTS
+The filter outputs a single, scalar, real-valued image. Positive
+values in the output image are inside the segmentated region and
+negative values in the image are outside of the inside region. The
+zero crossings of the image correspond to the position of the level
+set front.
+
+See SparseFieldLevelSetImageFilter and SegmentationLevelSetImageFilter for more information.
+PARAMETERS
+In addition to parameters described in SegmentationLevelSetImageFilter , this filter adds the UpperThreshold and LowerThreshold. See ThresholdSegmentationLevelSetFunction for a description of how these values affect the segmentation.
+
+See:
+ SegmentationLevelSetImageFilter
+
+ ThresholdSegmentationLevelSetFunction ,
+
+ SparseFieldLevelSetImageFilter
+
+ itk::simple::ThresholdSegmentationLevelSet for the procedural interface
+
+ itk::ThresholdSegmentationLevelSetImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkThresholdSegmentationLevelSetImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ThresholdSegmentationLevelSetImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::ThresholdSegmentationLevelSetImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ThresholdSegmentationLevelSetImageFilter::GetCurvatureScaling "
+";
+
+%feature("docstring")  itk::simple::ThresholdSegmentationLevelSetImageFilter::GetElapsedIterations "
+
+Number of iterations run.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::ThresholdSegmentationLevelSetImageFilter::GetLowerThreshold "
+";
+
+%feature("docstring")  itk::simple::ThresholdSegmentationLevelSetImageFilter::GetMaximumRMSError "
+";
+
+%feature("docstring")  itk::simple::ThresholdSegmentationLevelSetImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ThresholdSegmentationLevelSetImageFilter::GetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::ThresholdSegmentationLevelSetImageFilter::GetPropagationScaling "
+";
+
+%feature("docstring")  itk::simple::ThresholdSegmentationLevelSetImageFilter::GetReverseExpansionDirection "
+";
+
+%feature("docstring")  itk::simple::ThresholdSegmentationLevelSetImageFilter::GetRMSChange "
+
+The Root Mean Square of the levelset upon termination.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::ThresholdSegmentationLevelSetImageFilter::GetUpperThreshold "
+";
+
+%feature("docstring")  itk::simple::ThresholdSegmentationLevelSetImageFilter::ReverseExpansionDirectionOff "
+";
+
+%feature("docstring")  itk::simple::ThresholdSegmentationLevelSetImageFilter::ReverseExpansionDirectionOn "
+
+Set the value of ReverseExpansionDirection to true or false
+respectfully.
+
+";
+
+%feature("docstring")  itk::simple::ThresholdSegmentationLevelSetImageFilter::SetCurvatureScaling "
+";
+
+%feature("docstring")  itk::simple::ThresholdSegmentationLevelSetImageFilter::SetLowerThreshold "
+";
+
+%feature("docstring")  itk::simple::ThresholdSegmentationLevelSetImageFilter::SetMaximumRMSError "
+";
+
+%feature("docstring")  itk::simple::ThresholdSegmentationLevelSetImageFilter::SetNumberOfIterations "
+";
+
+%feature("docstring")  itk::simple::ThresholdSegmentationLevelSetImageFilter::SetPropagationScaling "
+";
+
+%feature("docstring")  itk::simple::ThresholdSegmentationLevelSetImageFilter::SetReverseExpansionDirection "
+";
+
+%feature("docstring")  itk::simple::ThresholdSegmentationLevelSetImageFilter::SetUpperThreshold "
+
+Get/Set the threshold values that will be used to calculate the speed
+function.
+
+";
+
+%feature("docstring")  itk::simple::ThresholdSegmentationLevelSetImageFilter::ThresholdSegmentationLevelSetImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ThresholdSegmentationLevelSetImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ThresholdSegmentationLevelSetImageFilter::~ThresholdSegmentationLevelSetImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::TikhonovDeconvolutionImageFilter "
+
+An inverse deconvolution filter regularized in the Tikhonov sense.
+
+
+The Tikhonov deconvolution filter is the inverse deconvolution filter
+with a regularization term added to the denominator. The filter
+minimizes the equation \\\\[ ||\\\\hat{f} \\\\otimes h - g||_{L_2}^2 + \\\\mu||\\\\hat{f}||^2
+\\\\] where $\\\\hat{f}$ is the estimate of the unblurred image, $h$ is the blurring kernel, $g$ is the blurred image, and $\\\\mu$ is a non-negative real regularization function.
+
+The filter applies a kernel described in the Fourier domain as $H^*(\\\\omega) / (|H(\\\\omega)|^2 + \\\\mu)$ where $H(\\\\omega)$ is the Fourier transform of $h$ . The term $\\\\mu$ is called RegularizationConstant in this filter. If $\\\\mu$ is set to zero, this filter is equivalent to the InverseDeconvolutionImageFilter .
+
+
+Gaetan Lehmann, Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France
+ Cory Quammen, The University of North Carolina at Chapel Hill
+See:
+ itk::simple::TikhonovDeconvolution for the procedural interface
+
+ itk::TikhonovDeconvolutionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkTikhonovDeconvolutionImageFilter.h
+";
+
+%feature("docstring")  itk::simple::TikhonovDeconvolutionImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::TikhonovDeconvolutionImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::TikhonovDeconvolutionImageFilter::GetBoundaryCondition "
+";
+
+%feature("docstring")  itk::simple::TikhonovDeconvolutionImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::TikhonovDeconvolutionImageFilter::GetNormalize "
+";
+
+%feature("docstring")  itk::simple::TikhonovDeconvolutionImageFilter::GetOutputRegionMode "
+";
+
+%feature("docstring")  itk::simple::TikhonovDeconvolutionImageFilter::GetRegularizationConstant "
+
+The regularization factor. Larger values reduce the dominance of noise
+in the solution, but results in higher approximation error in the
+deblurred image. Default value is 0.0, yielding the same results as
+the InverseDeconvolutionImageFilter .
+
+";
+
+%feature("docstring")  itk::simple::TikhonovDeconvolutionImageFilter::NormalizeOff "
+";
+
+%feature("docstring")  itk::simple::TikhonovDeconvolutionImageFilter::NormalizeOn "
+
+Set the value of Normalize to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::TikhonovDeconvolutionImageFilter::SetBoundaryCondition "
+";
+
+%feature("docstring")  itk::simple::TikhonovDeconvolutionImageFilter::SetNormalize "
+
+Normalize the output image by the sum of the kernel components
+
+";
+
+%feature("docstring")  itk::simple::TikhonovDeconvolutionImageFilter::SetOutputRegionMode "
+";
+
+%feature("docstring")  itk::simple::TikhonovDeconvolutionImageFilter::SetRegularizationConstant "
+
+The regularization factor. Larger values reduce the dominance of noise
+in the solution, but results in higher approximation error in the
+deblurred image. Default value is 0.0, yielding the same results as
+the InverseDeconvolutionImageFilter .
+
+";
+
+%feature("docstring")  itk::simple::TikhonovDeconvolutionImageFilter::TikhonovDeconvolutionImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::TikhonovDeconvolutionImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::TikhonovDeconvolutionImageFilter::~TikhonovDeconvolutionImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::TileImageFilter "
+
+Tile multiple input images into a single output image.
+
+
+This filter will tile multiple images using a user-specified layout.
+The tile sizes will be large enough to accommodate the largest image
+for each tile. The layout is specified with the SetLayout method. The
+layout has the same dimension as the output image. If all entries of
+the layout are positive, the tiled output will contain the exact
+number of tiles. If the layout contains a 0 in the last dimension, the
+filter will compute a size that will accommodate all of the images.
+Empty tiles are filled with the value specified with the SetDefault
+value method. The input images must have a dimension less than or
+equal to the output image. The output image have a larger dimension
+than the input images. This filter can be used to create a volume from
+a series of inputs by specifying a layout of 1,1,0.
+
+Wiki Examples:
+
+All Examples
+
+Tile multiple images into another image
+
+Stack multiple 2D images into a 3D image
+
+Tile multiple images side by side
+
+See:
+ itk::simple::Tile for the procedural interface
+
+
+C++ includes: sitkTileImageFilter.h
+";
+
+%feature("docstring")  itk::simple::TileImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::TileImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::TileImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::TileImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::TileImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::TileImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::TileImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::TileImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::TileImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::TileImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::TileImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::TileImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::TileImageFilter::GetDefaultPixelValue "
+";
+
+%feature("docstring")  itk::simple::TileImageFilter::GetLayout "
+";
+
+%feature("docstring")  itk::simple::TileImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::TileImageFilter::SetDefaultPixelValue "
+";
+
+%feature("docstring")  itk::simple::TileImageFilter::SetLayout "
+";
+
+%feature("docstring")  itk::simple::TileImageFilter::TileImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::TileImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::TileImageFilter::~TileImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::Transform "
+
+A simplified wrapper around a variety of ITK transforms.
+
+
+The interface to ITK transform objects to be used with the ImageRegistrationMethod, ResampleImageFilter and other SimpleITK process objects. The transforms are designed to
+have a serialized array of parameters to facilitate optimization for
+registration.
+
+Provides a base class interface to any type of ITK transform. Objects
+of this type may have their interface converted to a derived interface
+while keeping the same reference to the ITK object.
+
+Additionally, this class provides a basic interface to a composite
+transforms.
+
+
+See:
+ itk::CompositeTransform
+
+
+C++ includes: sitkTransform.h
+";
+
+%feature("docstring")  itk::simple::Transform::AddTransform "
+";
+
+%feature("docstring")  itk::simple::Transform::GetDimension "
+
+Return the dimension of the Transform ( 2D or 3D )
+
+";
+
+%feature("docstring")  itk::simple::Transform::GetInverse "
+
+Return a new inverse transform of the same type as this.
+
+
+Creates a new transform object and tries to set the value to the
+inverse. As not all transform types have inverse and some transforms
+are not invertable, an exception will be throw is there is no inverse.
+
+";
+
+%feature("docstring")  itk::simple::Transform::GetName "
+
+return user readable name for the SimpleITK transform
+
+";
+
+%feature("docstring")  itk::simple::Transform::IsLinear "
+";
+
+%feature("docstring")  itk::simple::Transform::MakeUnique "
+
+Performs actually coping if needed to make object unique.
+
+
+The Transform class by default performs lazy coping and assignment. This method
+make sure that coping actually happens to the itk::Transform pointed to is only pointed to by this object.
+
+";
+
+%feature("docstring")  itk::simple::Transform::SetIdentity "
+";
+
+%feature("docstring")  itk::simple::Transform::SetInverse "
+
+Try to change the current transform to it's inverse.
+
+
+If the transform has an inverse, i.e. non-singular linear transforms,
+then a new ITK transform is created of the same type and this object
+is set to it.
+
+However not all transform have a direct inverse, if the inverse does
+not exist or fails false will be returned and this transform will not
+be modified.
+
+";
+
+%feature("docstring")  itk::simple::Transform::ToString "
+";
+
+%feature("docstring")  itk::simple::Transform::Transform "
+
+By default a 3-d identity transform is constructed.
+
+";
+
+%feature("docstring")  itk::simple::Transform::Transform "
+
+Construct a SimpleITK Transform from a pointer to an ITK composite transform.
+
+";
+
+%feature("docstring")  itk::simple::Transform::Transform "
+";
+
+%feature("docstring")  itk::simple::Transform::Transform "
+
+Construct a specific transformation.
+
+
+Deprecated
+This constructor will be removed in future releases.
+
+
+";
+
+%feature("docstring")  itk::simple::Transform::Transform "
+
+Use an image to construct a transform.
+
+
+The input displacement image is transferred to the constructed
+transform object. The input image is modified to be a default
+constructed Image object.
+
+Only the sitkDisplacementField transformation type can currently be
+constructed this way. Image must be of sitkVectorFloat64 pixel type with the number of components
+equal to the image dimension.
+
+Deprecated
+This constructor will be removed in future releases.
+
+
+";
+
+%feature("docstring")  itk::simple::Transform::TransformPoint "
+";
+
+%feature("docstring")  itk::simple::Transform::WriteTransform "
+";
+
+%feature("docstring")  itk::simple::Transform::~Transform "
+";
+
+
+%feature("docstring") itk::simple::TransformToDisplacementFieldFilter "
+
+Generate a displacement field from a coordinate transform.
+
+
+Output information (spacing, size and direction) for the output image
+should be set. This information has the normal defaults of unit
+spacing, zero origin and identity direction. Optionally, the output
+information can be obtained from a reference image. If the reference
+image is provided and UseReferenceImage is On, then the spacing,
+origin and direction of the reference image will be used.
+
+Since this filter produces an image which is a different size than its
+input, it needs to override several of the methods defined in ProcessObject in order to properly manage the pipeline execution model. In
+particular, this filter overrides
+ProcessObject::GenerateOutputInformation() .
+
+This filter is implemented as a multithreaded filter. It provides a
+ThreadedGenerateData() method for its implementation.
+
+
+Marius Staring, Leiden University Medical Center, The Netherlands.
+ This class was taken from the Insight Journal paper: https://hdl.handle.net/1926/1387
+See:
+ itk::simple::TransformToDisplacementFieldFilter for the procedural interface
+
+ itk::TransformToDisplacementFieldFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkTransformToDisplacementFieldFilter.h
+";
+
+%feature("docstring")  itk::simple::TransformToDisplacementFieldFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::TransformToDisplacementFieldFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::TransformToDisplacementFieldFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::TransformToDisplacementFieldFilter::GetOutputDirection "
+
+Set the output direction cosine matrix.
+
+";
+
+%feature("docstring")  itk::simple::TransformToDisplacementFieldFilter::GetOutputOrigin "
+
+Get the output image origin.
+
+";
+
+%feature("docstring")  itk::simple::TransformToDisplacementFieldFilter::GetOutputPixelType "
+
+Get the ouput pixel type.
+
+";
+
+%feature("docstring")  itk::simple::TransformToDisplacementFieldFilter::GetOutputSpacing "
+
+Get the output image spacing.
+
+";
+
+%feature("docstring")  itk::simple::TransformToDisplacementFieldFilter::GetSize "
+
+Set/Get the size of the output image.
+
+";
+
+%feature("docstring")  itk::simple::TransformToDisplacementFieldFilter::SetOutputDirection "
+
+Set the output direction cosine matrix.
+
+";
+
+%feature("docstring")  itk::simple::TransformToDisplacementFieldFilter::SetOutputOrigin "
+
+Set the output image origin.
+
+";
+
+%feature("docstring")  itk::simple::TransformToDisplacementFieldFilter::SetOutputPixelType "
+
+Set the output pixel type, only sitkVectorFloat32 and
+sitkVectorFloat64 are supported.
+
+";
+
+%feature("docstring")  itk::simple::TransformToDisplacementFieldFilter::SetOutputSpacing "
+
+Set the output image spacing.
+
+";
+
+%feature("docstring")  itk::simple::TransformToDisplacementFieldFilter::SetReferenceImage "
+
+This methods sets the size, origin, spacing and direction to that of
+the provided image
+
+";
+
+%feature("docstring")  itk::simple::TransformToDisplacementFieldFilter::SetSize "
+
+Set/Get the size of the output image.
+
+";
+
+%feature("docstring")  itk::simple::TransformToDisplacementFieldFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::TransformToDisplacementFieldFilter::TransformToDisplacementFieldFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::TransformToDisplacementFieldFilter::~TransformToDisplacementFieldFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::TranslationTransform "
+
+Translation of a 2D or 3D coordinate space.
+
+
+
+See:
+ itk::TranslationTransform
+
+
+C++ includes: sitkTranslationTransform.h
+";
+
+%feature("docstring")  itk::simple::TranslationTransform::GetOffset "
+";
+
+%feature("docstring")  itk::simple::TranslationTransform::SetOffset "
+";
+
+%feature("docstring")  itk::simple::TranslationTransform::TranslationTransform "
+";
+
+%feature("docstring")  itk::simple::TranslationTransform::TranslationTransform "
+";
+
+%feature("docstring")  itk::simple::TranslationTransform::TranslationTransform "
+";
+
+
+%feature("docstring") itk::simple::TriangleThresholdImageFilter "
+
+Threshold an image using the Triangle Threshold.
+
+
+This filter creates a binary thresholded image that separates an image
+into foreground and background components. The filter computes the
+threshold using the TriangleThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .
+
+
+Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+ Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/10380/3279 or http://www.insight-journal.org/browse/publication/811
+
+
+See:
+ HistogramThresholdImageFilter
+
+ itk::simple::TriangleThreshold for the procedural interface
+
+ itk::TriangleThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkTriangleThresholdImageFilter.h
+";
+
+%feature("docstring")  itk::simple::TriangleThresholdImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::TriangleThresholdImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::TriangleThresholdImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::TriangleThresholdImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::TriangleThresholdImageFilter::GetInsideValue "
+
+Get the \"inside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::TriangleThresholdImageFilter::GetMaskOutput "
+";
+
+%feature("docstring")  itk::simple::TriangleThresholdImageFilter::GetMaskValue "
+";
+
+%feature("docstring")  itk::simple::TriangleThresholdImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::TriangleThresholdImageFilter::GetNumberOfHistogramBins "
+";
+
+%feature("docstring")  itk::simple::TriangleThresholdImageFilter::GetOutsideValue "
+
+Get the \"outside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::TriangleThresholdImageFilter::GetThreshold "
+
+Get the computed threshold.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::TriangleThresholdImageFilter::MaskOutputOff "
+";
+
+%feature("docstring")  itk::simple::TriangleThresholdImageFilter::MaskOutputOn "
+
+Set the value of MaskOutput to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::TriangleThresholdImageFilter::SetInsideValue "
+
+Set the \"inside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::TriangleThresholdImageFilter::SetMaskOutput "
+
+Do you want the output to be masked by the mask used in histogram
+construction. Only relevant if masking is in use.
+
+";
+
+%feature("docstring")  itk::simple::TriangleThresholdImageFilter::SetMaskValue "
+
+The value in the mask image, if used, indicating voxels that should be
+included. Default is the max of pixel type, as in the
+MaskedImageToHistogramFilter
+
+";
+
+%feature("docstring")  itk::simple::TriangleThresholdImageFilter::SetNumberOfHistogramBins "
+
+Set/Get the number of histogram bins.
+
+";
+
+%feature("docstring")  itk::simple::TriangleThresholdImageFilter::SetOutsideValue "
+
+Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.
+
+";
+
+%feature("docstring")  itk::simple::TriangleThresholdImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::TriangleThresholdImageFilter::TriangleThresholdImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::TriangleThresholdImageFilter::~TriangleThresholdImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::UnaryMinusImageFilter "
+
+Computes the negative of each pixel.
+
+
+
+See:
+ itk::simple::UnaryMinus for the procedural interface
+
+ itk::UnaryFunctorImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkUnaryMinusImageFilter.h
+";
+
+%feature("docstring")  itk::simple::UnaryMinusImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::UnaryMinusImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::UnaryMinusImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::UnaryMinusImageFilter::UnaryMinusImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::UnaryMinusImageFilter::~UnaryMinusImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ValuedRegionalMaximaImageFilter "
+
+Transforms the image so that any pixel that is not a regional maxima
+is set to the minimum value for the pixel type. Pixels that are
+regional maxima retain their value.
+
+
+Regional maxima are flat zones surrounded by pixels of lower value. A
+completely flat image will be marked as a regional maxima by this
+filter.
+
+This code was contributed in the Insight Journal paper: \"Finding
+regional extrema - methods and performance\" by Beare R., Lehmann G. https://hdl.handle.net/1926/153 http://www.insight-journal.org/browse/publication/65
+
+
+Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+
+See:
+ ValuedRegionalMinimaImageFilter
+
+ ValuedRegionalExtremaImageFilter
+
+ HMinimaImageFilter
+Wiki Examples:
+
+All Examples
+
+ValuedRegionalMaximaImageFilter
+See:
+ itk::simple::ValuedRegionalMaxima for the procedural interface
+
+ itk::ValuedRegionalMaximaImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkValuedRegionalMaximaImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ValuedRegionalMaximaImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ValuedRegionalMaximaImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ValuedRegionalMaximaImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::ValuedRegionalMaximaImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::ValuedRegionalMaximaImageFilter::GetFlat "
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::ValuedRegionalMaximaImageFilter::GetFullyConnected "
+";
+
+%feature("docstring")  itk::simple::ValuedRegionalMaximaImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ValuedRegionalMaximaImageFilter::SetFullyConnected "
+";
+
+%feature("docstring")  itk::simple::ValuedRegionalMaximaImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ValuedRegionalMaximaImageFilter::ValuedRegionalMaximaImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ValuedRegionalMaximaImageFilter::~ValuedRegionalMaximaImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ValuedRegionalMinimaImageFilter "
+
+Transforms the image so that any pixel that is not a regional minima
+is set to the maximum value for the pixel type. Pixels that are
+regional minima retain their value.
+
+
+Regional minima are flat zones surrounded by pixels of higher value. A
+completely flat image will be marked as a regional minima by this
+filter.
+
+This code was contributed in the Insight Journal paper: \"Finding
+regional extrema - methods and performance\" by Beare R., Lehmann G. https://hdl.handle.net/1926/153 http://www.insight-journal.org/browse/publication/65
+
+
+Richard Beare. Department of Medicine, Monash University, Melbourne,
+Australia.
+
+See:
+ ValuedRegionalMaximaImageFilter , ValuedRegionalExtremaImageFilter ,
+
+ HMinimaImageFilter
+Wiki Examples:
+
+All Examples
+
+ValuedRegionalMinimaImageFilter
+See:
+ itk::simple::ValuedRegionalMinima for the procedural interface
+
+ itk::ValuedRegionalMinimaImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkValuedRegionalMinimaImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ValuedRegionalMinimaImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ValuedRegionalMinimaImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ValuedRegionalMinimaImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::ValuedRegionalMinimaImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::ValuedRegionalMinimaImageFilter::GetFlat "
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::ValuedRegionalMinimaImageFilter::GetFullyConnected "
+";
+
+%feature("docstring")  itk::simple::ValuedRegionalMinimaImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ValuedRegionalMinimaImageFilter::SetFullyConnected "
+";
+
+%feature("docstring")  itk::simple::ValuedRegionalMinimaImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ValuedRegionalMinimaImageFilter::ValuedRegionalMinimaImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ValuedRegionalMinimaImageFilter::~ValuedRegionalMinimaImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::VectorConfidenceConnectedImageFilter "
+
+Segment pixels with similar statistics using connectivity.
+
+
+This filter extracts a connected set of pixels whose pixel intensities
+are consistent with the pixel statistics of a seed point. The mean and
+variance across a neighborhood (8-connected, 26-connected, etc.) are
+calculated for a seed point. Then pixels connected to this seed point
+whose values are within the confidence interval for the seed point are
+grouped. The width of the confidence interval is controlled by the
+\"Multiplier\" variable (the confidence interval is the mean plus or
+minus the \"Multiplier\" times the standard deviation). If the
+intensity variations across a segment were gaussian, a \"Multiplier\"
+setting of 2.5 would define a confidence interval wide enough to
+capture 99% of samples in the segment.
+
+After this initial segmentation is calculated, the mean and variance
+are re-calculated. All the pixels in the previous segmentation are
+used to calculate the mean the standard deviation (as opposed to using
+the pixels in the neighborhood of the seed point). The segmentation is
+then recalculted using these refined estimates for the mean and
+variance of the pixel values. This process is repeated for the
+specified number of iterations. Setting the \"NumberOfIterations\" to
+zero stops the algorithm after the initial segmentation from the seed
+point.
+
+NOTE: the lower and upper threshold are restricted to lie within the
+valid numeric limits of the input data pixel type. Also, the limits
+may be adjusted to contain the seed point's intensity.
+See:
+ itk::simple::VectorConfidenceConnected for the procedural interface
+
+ itk::VectorConfidenceConnectedImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkVectorConfidenceConnectedImageFilter.h
+";
+
+%feature("docstring")  itk::simple::VectorConfidenceConnectedImageFilter::AddSeed "
+
+AddSeed - Add a seed to the end of the list
+
+";
+
+%feature("docstring")  itk::simple::VectorConfidenceConnectedImageFilter::ClearSeeds "
+
+ClearSeeds - Clear out all seeds in the list
+
+";
+
+%feature("docstring")  itk::simple::VectorConfidenceConnectedImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::VectorConfidenceConnectedImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::VectorConfidenceConnectedImageFilter::GetCovariance "
+
+Get the Covariance matrix computed during the segmentation
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::VectorConfidenceConnectedImageFilter::GetInitialNeighborhoodRadius "
+
+Get/Set the radius of the neighborhood over which the statistics are
+evaluated
+
+";
+
+%feature("docstring")  itk::simple::VectorConfidenceConnectedImageFilter::GetMean "
+
+Get the Mean Vector computed during the segmentation
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::VectorConfidenceConnectedImageFilter::GetMultiplier "
+
+Set/Get the multiplier to define the confidence interval. Multiplier
+can be anything greater than zero. A typical value is 2.5
+
+";
+
+%feature("docstring")  itk::simple::VectorConfidenceConnectedImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::VectorConfidenceConnectedImageFilter::GetNumberOfIterations "
+
+Set/Get the number of iterations
+
+";
+
+%feature("docstring")  itk::simple::VectorConfidenceConnectedImageFilter::GetReplaceValue "
+
+Set/Get value to replace thresholded pixels
+
+";
+
+%feature("docstring")  itk::simple::VectorConfidenceConnectedImageFilter::GetSeedList "
+
+Get SeedList
+
+";
+
+%feature("docstring")  itk::simple::VectorConfidenceConnectedImageFilter::SetInitialNeighborhoodRadius "
+
+Get/Set the radius of the neighborhood over which the statistics are
+evaluated
+
+";
+
+%feature("docstring")  itk::simple::VectorConfidenceConnectedImageFilter::SetMultiplier "
+
+Set/Get the multiplier to define the confidence interval. Multiplier
+can be anything greater than zero. A typical value is 2.5
+
+";
+
+%feature("docstring")  itk::simple::VectorConfidenceConnectedImageFilter::SetNumberOfIterations "
+
+Set/Get the number of iterations
+
+";
+
+%feature("docstring")  itk::simple::VectorConfidenceConnectedImageFilter::SetReplaceValue "
+
+Set/Get value to replace thresholded pixels
+
+";
+
+%feature("docstring")  itk::simple::VectorConfidenceConnectedImageFilter::SetSeed "
+
+SetSeed - Set list to a single seed
+
+";
+
+%feature("docstring")  itk::simple::VectorConfidenceConnectedImageFilter::SetSeedList "
+
+Set SeedList
+
+";
+
+%feature("docstring")  itk::simple::VectorConfidenceConnectedImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::VectorConfidenceConnectedImageFilter::VectorConfidenceConnectedImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::VectorConfidenceConnectedImageFilter::~VectorConfidenceConnectedImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::VectorConnectedComponentImageFilter "
+
+A connected components filter that labels the objects in a vector
+image. Two vectors are pointing similar directions if one minus their
+dot product is less than a threshold. Vectors that are 180 degrees out
+of phase are similar. Assumes that vectors are normalized.
+
+
+
+See:
+ itk::simple::VectorConnectedComponent for the procedural interface
+
+ itk::VectorConnectedComponentImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkVectorConnectedComponentImageFilter.h
+";
+
+%feature("docstring")  itk::simple::VectorConnectedComponentImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::VectorConnectedComponentImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::VectorConnectedComponentImageFilter::FullyConnectedOff "
+";
+
+%feature("docstring")  itk::simple::VectorConnectedComponentImageFilter::FullyConnectedOn "
+
+Set the value of FullyConnected to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::VectorConnectedComponentImageFilter::GetDistanceThreshold "
+";
+
+%feature("docstring")  itk::simple::VectorConnectedComponentImageFilter::GetFullyConnected "
+";
+
+%feature("docstring")  itk::simple::VectorConnectedComponentImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::VectorConnectedComponentImageFilter::SetDistanceThreshold "
+";
+
+%feature("docstring")  itk::simple::VectorConnectedComponentImageFilter::SetFullyConnected "
+";
+
+%feature("docstring")  itk::simple::VectorConnectedComponentImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::VectorConnectedComponentImageFilter::VectorConnectedComponentImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::VectorConnectedComponentImageFilter::~VectorConnectedComponentImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::VectorIndexSelectionCastImageFilter "
+
+Extracts the selected index of the vector that is the input pixel
+type.
+
+
+This filter is templated over the input image type and output image
+type.
+
+The filter expect the input image pixel type to be a vector and the
+output image pixel type to be a scalar. The only requirement on the
+type used for representing the vector is that it must provide an
+operator[].
+
+
+See:
+ ComposeImageFilter
+Wiki Examples:
+
+All Examples
+
+Extract a component/channel of a vector image
+See:
+ itk::simple::VectorIndexSelectionCast for the procedural interface
+
+ itk::VectorIndexSelectionCastImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkVectorIndexSelectionCastImageFilter.h
+";
+
+%feature("docstring")  itk::simple::VectorIndexSelectionCastImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::VectorIndexSelectionCastImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::VectorIndexSelectionCastImageFilter::GetIndex "
+";
+
+%feature("docstring")  itk::simple::VectorIndexSelectionCastImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::VectorIndexSelectionCastImageFilter::GetOutputPixelType "
+
+Get the ouput pixel type.
+
+";
+
+%feature("docstring")  itk::simple::VectorIndexSelectionCastImageFilter::SetIndex "
+
+Get/Set methods for the index
+
+";
+
+%feature("docstring")  itk::simple::VectorIndexSelectionCastImageFilter::SetOutputPixelType "
+
+Set the output pixel type of the scalar component to extract.
+
+";
+
+%feature("docstring")  itk::simple::VectorIndexSelectionCastImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::VectorIndexSelectionCastImageFilter::VectorIndexSelectionCastImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::VectorIndexSelectionCastImageFilter::~VectorIndexSelectionCastImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::VectorMagnitudeImageFilter "
+
+Take an image of vectors as input and produce an image with the
+magnitude of those vectors.
+
+
+The filter expects the input image pixel type to be a vector and the
+output image pixel type to be a scalar.
+
+This filter assumes that the PixelType of the input image is a
+VectorType that provides a GetNorm() method.
+
+Wiki Examples:
+
+All Examples
+
+Compute the magnitude of each pixel in a vector image to produce a
+magnitude image
+See:
+ itk::simple::VectorMagnitude for the procedural interface
+
+ itk::VectorMagnitudeImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkVectorMagnitudeImageFilter.h
+";
+
+%feature("docstring")  itk::simple::VectorMagnitudeImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::VectorMagnitudeImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::VectorMagnitudeImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::VectorMagnitudeImageFilter::VectorMagnitudeImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::VectorMagnitudeImageFilter::~VectorMagnitudeImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::Version "
+
+Version info for SimpleITK.
+
+C++ includes: sitkVersion.h
+";
+
+%feature("docstring")  itk::simple::Version::ToString "
+";
+
+
+%feature("docstring") itk::simple::VersorRigid3DTransform "
+
+A rotation as a versor around a fixed center with translation of a 3D
+coordinate space.
+
+
+
+See:
+ itk::VersorRigid3DTransform
+
+
+C++ includes: sitkVersorRigid3DTransform.h
+";
+
+%feature("docstring")  itk::simple::VersorRigid3DTransform::GetCenter "
+";
+
+%feature("docstring")  itk::simple::VersorRigid3DTransform::GetMatrix "
+";
+
+%feature("docstring")  itk::simple::VersorRigid3DTransform::GetTranslation "
+";
+
+%feature("docstring")  itk::simple::VersorRigid3DTransform::GetVersor "
+";
+
+%feature("docstring")  itk::simple::VersorRigid3DTransform::SetCenter "
+
+fixed parameter
+
+";
+
+%feature("docstring")  itk::simple::VersorRigid3DTransform::SetMatrix "
+";
+
+%feature("docstring")  itk::simple::VersorRigid3DTransform::SetRotation "
+
+parameter
+
+";
+
+%feature("docstring")  itk::simple::VersorRigid3DTransform::SetRotation "
+";
+
+%feature("docstring")  itk::simple::VersorRigid3DTransform::SetTranslation "
+";
+
+%feature("docstring")  itk::simple::VersorRigid3DTransform::Translate "
+
+additional methods
+
+";
+
+%feature("docstring")  itk::simple::VersorRigid3DTransform::VersorRigid3DTransform "
+";
+
+%feature("docstring")  itk::simple::VersorRigid3DTransform::VersorRigid3DTransform "
+";
+
+%feature("docstring")  itk::simple::VersorRigid3DTransform::VersorRigid3DTransform "
+";
+
+%feature("docstring")  itk::simple::VersorRigid3DTransform::VersorRigid3DTransform "
+";
+
+%feature("docstring")  itk::simple::VersorRigid3DTransform::VersorRigid3DTransform "
+";
+
+
+%feature("docstring") itk::simple::VersorTransform "
+
+A 3D rotation transform with rotation as a versor around a fixed
+center.
+
+
+
+See:
+ itk::VersorTransform
+
+
+C++ includes: sitkVersorTransform.h
+";
+
+%feature("docstring")  itk::simple::VersorTransform::GetCenter "
+";
+
+%feature("docstring")  itk::simple::VersorTransform::GetMatrix "
+
+additional methods
+
+";
+
+%feature("docstring")  itk::simple::VersorTransform::GetVersor "
+";
+
+%feature("docstring")  itk::simple::VersorTransform::SetCenter "
+
+fixed parameter
+
+";
+
+%feature("docstring")  itk::simple::VersorTransform::SetMatrix "
+";
+
+%feature("docstring")  itk::simple::VersorTransform::SetRotation "
+
+parameter
+
+";
+
+%feature("docstring")  itk::simple::VersorTransform::SetRotation "
+";
+
+%feature("docstring")  itk::simple::VersorTransform::VersorTransform "
+";
+
+%feature("docstring")  itk::simple::VersorTransform::VersorTransform "
+";
+
+%feature("docstring")  itk::simple::VersorTransform::VersorTransform "
+";
+
+%feature("docstring")  itk::simple::VersorTransform::VersorTransform "
+";
+
+%feature("docstring")  itk::simple::VersorTransform::VersorTransform "
+";
+
+
+%feature("docstring") itk::simple::VotingBinaryHoleFillingImageFilter "
+
+Fills in holes and cavities by applying a voting operation on each
+pixel.
+
+
+
+See:
+ Image
+
+ VotingBinaryImageFilter
+
+ VotingBinaryIterativeHoleFillingImageFilter
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+
+ itk::simple::VotingBinaryHoleFilling for the procedural interface
+
+ itk::VotingBinaryHoleFillingImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkVotingBinaryHoleFillingImageFilter.h
+";
+
+%feature("docstring")  itk::simple::VotingBinaryHoleFillingImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryHoleFillingImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryHoleFillingImageFilter::GetBackgroundValue "
+";
+
+%feature("docstring")  itk::simple::VotingBinaryHoleFillingImageFilter::GetForegroundValue "
+";
+
+%feature("docstring")  itk::simple::VotingBinaryHoleFillingImageFilter::GetMajorityThreshold "
+
+Majority threshold. It is the number of pixels over 50% that will
+decide whether an OFF pixel will become ON or not. For example, if the
+neighborhood of a pixel has 124 pixels (excluding itself), the 50%
+will be 62, and if you set upd a Majority threshold of 5, that means
+that the filter will require 67 or more neighbor pixels to be ON in
+order to switch the current OFF pixel to ON. The default value is 1.
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryHoleFillingImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryHoleFillingImageFilter::GetRadius "
+";
+
+%feature("docstring")  itk::simple::VotingBinaryHoleFillingImageFilter::SetBackgroundValue "
+";
+
+%feature("docstring")  itk::simple::VotingBinaryHoleFillingImageFilter::SetForegroundValue "
+";
+
+%feature("docstring")  itk::simple::VotingBinaryHoleFillingImageFilter::SetMajorityThreshold "
+
+Majority threshold. It is the number of pixels over 50% that will
+decide whether an OFF pixel will become ON or not. For example, if the
+neighborhood of a pixel has 124 pixels (excluding itself), the 50%
+will be 62, and if you set upd a Majority threshold of 5, that means
+that the filter will require 67 or more neighbor pixels to be ON in
+order to switch the current OFF pixel to ON. The default value is 1.
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryHoleFillingImageFilter::SetRadius "
+";
+
+%feature("docstring")  itk::simple::VotingBinaryHoleFillingImageFilter::SetRadius "
+
+Set the values of the Radius vector all to value
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryHoleFillingImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryHoleFillingImageFilter::VotingBinaryHoleFillingImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryHoleFillingImageFilter::~VotingBinaryHoleFillingImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::VotingBinaryImageFilter "
+
+Applies a voting operation in a neighborhood of each pixel.
+
+
+
+Pixels which are not Foreground or Background will remain unchanged.
+
+See:
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+
+ itk::simple::VotingBinary for the procedural interface
+
+ itk::VotingBinaryImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkVotingBinaryImageFilter.h
+";
+
+%feature("docstring")  itk::simple::VotingBinaryImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryImageFilter::GetBackgroundValue "
+
+Get the value associated with the Foreground (or the object) on the
+binary input image and the Background .
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryImageFilter::GetBirthThreshold "
+
+Birth threshold. Pixels that are OFF will turn ON when the number of
+neighbors ON is larger than the value defined in this threshold.
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryImageFilter::GetForegroundValue "
+
+Get the value associated with the Foreground (or the object) on the
+binary input image and the Background .
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryImageFilter::GetRadius "
+
+Get the radius of the neighborhood used to compute the median
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryImageFilter::GetSurvivalThreshold "
+
+Survival threshold. Pixels that are ON will turn OFF when the number
+of neighbors ON is smaller than the value defined in this survival
+threshold.
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryImageFilter::SetBackgroundValue "
+
+Set the value associated with the Foreground (or the object) on the
+binary input image and the Background .
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryImageFilter::SetBirthThreshold "
+
+Birth threshold. Pixels that are OFF will turn ON when the number of
+neighbors ON is larger than the value defined in this threshold.
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryImageFilter::SetForegroundValue "
+
+Set the value associated with the Foreground (or the object) on the
+binary input image and the Background .
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryImageFilter::SetRadius "
+
+Set the radius of the neighborhood used to compute the median.
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryImageFilter::SetRadius "
+
+Set the values of the Radius vector all to value
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryImageFilter::SetSurvivalThreshold "
+
+Survival threshold. Pixels that are ON will turn OFF when the number
+of neighbors ON is smaller than the value defined in this survival
+threshold.
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryImageFilter::VotingBinaryImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryImageFilter::~VotingBinaryImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::VotingBinaryIterativeHoleFillingImageFilter "
+
+Fills in holes and cavities by iteratively applying a voting
+operation.
+
+
+This filter uses internally the VotingBinaryHoleFillingImageFilter , and runs it iteratively until no pixels are being changed or until
+it reaches the maximum number of iterations. The purpose of the filter
+is to fill in holes of medium size (tens of pixels in radius). In
+principle the number of iterations is related to the size of the holes
+to be filled in. The larger the holes, the more iteration must be run
+with this filter in order to fill in the full hole. The size of the
+neighborhood is also related to the curvature of the hole borders and
+therefore the hole size. Note that as a collateral effect this filter
+may also fill in cavities in the external side of structures.
+
+This filter is templated over a single image type because the output
+image type must be the same as the input image type. This is required
+in order to make the iterations possible, since the output image of
+one iteration is taken as the input image for the next iteration.
+
+
+See:
+ Image
+
+ VotingBinaryImageFilter
+
+ VotingBinaryHoleFillingImageFilter
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+
+ itk::simple::VotingBinaryIterativeHoleFilling for the procedural interface
+
+ itk::VotingBinaryIterativeHoleFillingImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkVotingBinaryIterativeHoleFillingImageFilter.h
+";
+
+%feature("docstring")  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::GetBackgroundValue "
+
+Get the value associated with the Foreground (or the object) on the
+binary input image and the Background .
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::GetForegroundValue "
+
+Get the value associated with the Foreground (or the object) on the
+binary input image and the Background .
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::GetMajorityThreshold "
+
+Majority threshold. It is the number of pixels over 50% that will
+decide whether an OFF pixel will become ON or not. For example, if the
+neighborhood of a pixel has 124 pixels (excluding itself), the 50%
+will be 62, and if you set upd a Majority threshold of 5, that means
+that the filter will require 67 or more neighbor pixels to be ON in
+order to switch the current OFF pixel to ON. The default value is 1.
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::GetMaximumNumberOfIterations "
+
+Maximum number of iterations. This filter is executed iteratively as
+long as at least one pixel has changed in a previous iteration, or
+until the maximum number of iterations has been reached.
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::GetRadius "
+
+Get the radius of the neighborhood used to compute the median
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::SetBackgroundValue "
+
+Set the value associated with the Foreground (or the object) on the
+binary input image and the Background .
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::SetForegroundValue "
+
+Set the value associated with the Foreground (or the object) on the
+binary input image and the Background .
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::SetMajorityThreshold "
+
+Majority threshold. It is the number of pixels over 50% that will
+decide whether an OFF pixel will become ON or not. For example, if the
+neighborhood of a pixel has 124 pixels (excluding itself), the 50%
+will be 62, and if you set upd a Majority threshold of 5, that means
+that the filter will require 67 or more neighbor pixels to be ON in
+order to switch the current OFF pixel to ON. The default value is 1.
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::SetMaximumNumberOfIterations "
+
+Maximum number of iterations. This filter is executed iteratively as
+long as at least one pixel has changed in a previous iteration, or
+until the maximum number of iterations has been reached.
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::SetRadius "
+
+Set the radius of the neighborhood used to compute the median.
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::SetRadius "
+
+Set the values of the Radius vector all to value
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::VotingBinaryIterativeHoleFillingImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryIterativeHoleFillingImageFilter::~VotingBinaryIterativeHoleFillingImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::WarpImageFilter "
+
+Warps an image using an input displacement field.
+
+
+WarpImageFilter warps an existing image with respect to a given displacement field.
+
+A displacement field is represented as a image whose pixel type is
+some vector type with at least N elements, where N is the dimension of
+the input image. The vector type must support element access via
+operator [].
+
+The output image is produced by inverse mapping: the output pixels are
+mapped back onto the input image. This scheme avoids the creation of
+any holes and overlaps in the output image.
+
+Each vector in the displacement field represent the distance between a
+geometric point in the input space and a point in the output space
+such that:
+
+\\\\[ p_{in} = p_{out} + d \\\\]
+
+Typically the mapped position does not correspond to an integer pixel
+position in the input image. Interpolation via an image function is
+used to compute values at non-integer positions. The default
+interpolation typed used is the LinearInterpolateImageFunction . The user can specify a particular interpolation function via SetInterpolator() . Note that the input interpolator must derive from base class InterpolateImageFunction .
+
+Position mapped to outside of the input image buffer are assigned a
+edge padding value.
+
+The LargetPossibleRegion for the output is inherited from the input
+displacement field. The output image spacing, origin and orientation
+may be set via SetOutputSpacing, SetOutputOrigin and
+SetOutputDirection. The default are respectively a vector of 1's, a
+vector of 0's and an identity matrix.
+
+This class is templated over the type of the input image, the type of
+the output image and the type of the displacement field.
+
+The input image is set via SetInput. The input displacement field is
+set via SetDisplacementField.
+
+This filter is implemented as a multithreaded filter.
+
+
+WARNING:
+This filter assumes that the input type, output type and displacement
+field type all have the same number of dimensions.
+Wiki Examples:
+
+All Examples
+
+Warp one image to another using manually specified landmarks
+See:
+ itk::simple::Warp for the procedural interface
+
+ itk::WarpImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkWarpImageFilter.h
+";
+
+%feature("docstring")  itk::simple::WarpImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::WarpImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::WarpImageFilter::GetEdgePaddingValue "
+
+Get the edge padding value
+
+";
+
+%feature("docstring")  itk::simple::WarpImageFilter::GetInterpolator "
+
+Get/Set the interpolator function.
+
+";
+
+%feature("docstring")  itk::simple::WarpImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::WarpImageFilter::GetOutputDirection "
+
+Set/Get the direction (orientation) of the output image
+
+";
+
+%feature("docstring")  itk::simple::WarpImageFilter::GetOutputOrigin "
+
+Get the output image origin.
+
+";
+
+%feature("docstring")  itk::simple::WarpImageFilter::GetOutputSize "
+
+Get the size of the output image.
+
+";
+
+%feature("docstring")  itk::simple::WarpImageFilter::GetOutputSpacing "
+
+Get the output image spacing.
+
+";
+
+%feature("docstring")  itk::simple::WarpImageFilter::SetEdgePaddingValue "
+
+Set the edge padding value
+
+";
+
+%feature("docstring")  itk::simple::WarpImageFilter::SetInterpolator "
+
+Get/Set the interpolator function.
+
+";
+
+%feature("docstring")  itk::simple::WarpImageFilter::SetOutputDirection "
+
+Set/Get the direction (orientation) of the output image
+
+";
+
+%feature("docstring")  itk::simple::WarpImageFilter::SetOutputOrigin "
+
+Set the output image origin.
+
+";
+
+%feature("docstring")  itk::simple::WarpImageFilter::SetOutputParameteresFromImage "
+
+This methods sets the output size, origin, spacing and direction to
+that of the provided image
+
+";
+
+%feature("docstring")  itk::simple::WarpImageFilter::SetOutputSize "
+
+Set the size of the output image.
+
+";
+
+%feature("docstring")  itk::simple::WarpImageFilter::SetOutputSpacing "
+
+Set the output image spacing.
+
+";
+
+%feature("docstring")  itk::simple::WarpImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::WarpImageFilter::WarpImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::WarpImageFilter::~WarpImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::WhiteTopHatImageFilter "
+
+White top hat extracts local maxima that are larger than the
+structuring element.
+
+
+Top-hats are described in Chapter 4.5 of Pierre Soille's book
+\"Morphological Image Analysis: Principles and Applications\", Second
+Edition, Springer, 2003.
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ itk::simple::WhiteTopHat for the procedural interface
+
+ itk::WhiteTopHatImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkWhiteTopHatImageFilter.h
+";
+
+%feature("docstring")  itk::simple::WhiteTopHatImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::WhiteTopHatImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::WhiteTopHatImageFilter::GetKernelRadius "
+";
+
+%feature("docstring")  itk::simple::WhiteTopHatImageFilter::GetKernelType "
+";
+
+%feature("docstring")  itk::simple::WhiteTopHatImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::WhiteTopHatImageFilter::GetSafeBorder "
+
+A safe border is added to input image to avoid borders effects and
+remove it once the closing is done
+
+";
+
+%feature("docstring")  itk::simple::WhiteTopHatImageFilter::SafeBorderOff "
+";
+
+%feature("docstring")  itk::simple::WhiteTopHatImageFilter::SafeBorderOn "
+
+Set the value of SafeBorder to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::WhiteTopHatImageFilter::SetKernelRadius "
+
+Kernel radius as a scale for isotropic structures
+
+";
+
+%feature("docstring")  itk::simple::WhiteTopHatImageFilter::SetKernelRadius "
+
+Set/Get the radius of the kernel structuring element as a vector.
+
+If the dimension of the image is greater then the length of r, then
+the radius will be padded. If it is less the r will be truncated.
+
+";
+
+%feature("docstring")  itk::simple::WhiteTopHatImageFilter::SetKernelType "
+
+Set/Get the kernel or structuring elemenent used for the morphology
+
+";
+
+%feature("docstring")  itk::simple::WhiteTopHatImageFilter::SetKernelType "
+";
+
+%feature("docstring")  itk::simple::WhiteTopHatImageFilter::SetSafeBorder "
+
+A safe border is added to input image to avoid borders effects and
+remove it once the closing is done
+
+";
+
+%feature("docstring")  itk::simple::WhiteTopHatImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::WhiteTopHatImageFilter::WhiteTopHatImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::WhiteTopHatImageFilter::~WhiteTopHatImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::WienerDeconvolutionImageFilter "
+
+The Wiener deconvolution image filter is designed to restore an image
+convolved with a blurring kernel while keeping noise enhancement to a
+minimum.
+
+
+The Wiener filter aims to minimize noise enhancement induced by
+frequencies with low signal-to-noise ratio. The Wiener filter kernel
+is defined in the frequency domain as $W(\\\\omega) = H^*(\\\\omega) / (|H(\\\\omega)|^2 + (1 /
+SNR(\\\\omega)))$ where $H(\\\\omega)$ is the Fourier transform of the blurring kernel with which the
+original image was convolved and the signal-to-noise ratio $SNR(\\\\omega)$ . $SNR(\\\\omega)$ is defined by $P_f(\\\\omega) / P_n(\\\\omega)$ where $P_f(\\\\omega)$ is the power spectral density of the uncorrupted signal and $P_n(\\\\omega)$ is the power spectral density of the noise. When applied to the input
+blurred image, this filter produces an estimate $\\\\hat{f}(x)$ of the true underlying signal $f(x)$ that minimizes the expected error between $\\\\hat{f}(x)$ and $f(x)$ .
+
+This filter requires two inputs, the image to be deconvolved and the
+blurring kernel. These two inputs can be set using the methods
+SetInput() and SetKernelImage() , respectively.
+
+The power spectral densities of the signal and noise are typically
+unavailable for a given problem. In particular, $P_f(\\\\omega)$ cannot be computed from $f(x)$ because this unknown signal is precisely the signal that this filter
+aims to recover. Nevertheless, it is common for the noise to have a
+power spectral density that is flat or decreasing significantly more
+slowly than the power spectral density of a typical image as the
+frequency $\\\\omega$ increases. Hence, $P_n(\\\\omega)$ can typically be approximated with a constant, and this filter makes
+this assumption (see the NoiseVariance member variable). $P_f(\\\\omega)$ , on the other hand, will vary with input. This filter computes the
+power spectral density of the input blurred image, subtracts the power
+spectral density of the noise, and uses the result as the estimate of $P_f(\\\\omega)$ .
+
+For further information on the Wiener deconvolution filter, please see
+\"Digital Signal Processing\" by Kenneth R. Castleman, Prentice Hall,
+1995
+
+
+Gaetan Lehmann, Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France
+ Chris Mullins, The University of North Carolina at Chapel Hill
+
+Cory Quammen, The University of North Carolina at Chapel Hill
+See:
+ itk::simple::WienerDeconvolution for the procedural interface
+
+ itk::WienerDeconvolutionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkWienerDeconvolutionImageFilter.h
+";
+
+%feature("docstring")  itk::simple::WienerDeconvolutionImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::WienerDeconvolutionImageFilter::Execute "
+
+Execute the filter on the input images with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::WienerDeconvolutionImageFilter::GetBoundaryCondition "
+";
+
+%feature("docstring")  itk::simple::WienerDeconvolutionImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::WienerDeconvolutionImageFilter::GetNoiseVariance "
+
+Set/get the variance of the zero-mean Gaussian white noise assumed to
+be added to the input.
+
+";
+
+%feature("docstring")  itk::simple::WienerDeconvolutionImageFilter::GetNormalize "
+";
+
+%feature("docstring")  itk::simple::WienerDeconvolutionImageFilter::GetOutputRegionMode "
+";
+
+%feature("docstring")  itk::simple::WienerDeconvolutionImageFilter::NormalizeOff "
+";
+
+%feature("docstring")  itk::simple::WienerDeconvolutionImageFilter::NormalizeOn "
+
+Set the value of Normalize to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::WienerDeconvolutionImageFilter::SetBoundaryCondition "
+";
+
+%feature("docstring")  itk::simple::WienerDeconvolutionImageFilter::SetNoiseVariance "
+
+Set/get the variance of the zero-mean Gaussian white noise assumed to
+be added to the input.
+
+";
+
+%feature("docstring")  itk::simple::WienerDeconvolutionImageFilter::SetNormalize "
+
+Normalize the output image by the sum of the kernel components
+
+";
+
+%feature("docstring")  itk::simple::WienerDeconvolutionImageFilter::SetOutputRegionMode "
+";
+
+%feature("docstring")  itk::simple::WienerDeconvolutionImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::WienerDeconvolutionImageFilter::WienerDeconvolutionImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::WienerDeconvolutionImageFilter::~WienerDeconvolutionImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::WrapPadImageFilter "
+
+Increase the image size by padding with replicants of the input image
+value.
+
+
+WrapPadImageFilter changes the image bounds of an image. Added pixels are filled in with
+a wrapped replica of the input image. For instance, if the output
+image needs a pixel that is two pixels to the left of the
+LargestPossibleRegion of the input image, the value assigned will be
+from the pixel two pixels inside the right boundary of the
+LargestPossibleRegion. The image bounds of the output must be
+specified.
+
+Visual explanation of padding regions. This filter is implemented as a
+multithreaded filter. It provides a ThreadedGenerateData() method for
+its implementation.
+
+
+See:
+ MirrorPadImageFilter , ConstantPadImageFilter
+Wiki Examples:
+
+All Examples
+
+Pad an image by wrapping
+See:
+ itk::simple::WrapPad for the procedural interface
+
+ itk::WrapPadImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkWrapPadImageFilter.h
+";
+
+%feature("docstring")  itk::simple::WrapPadImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::WrapPadImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::WrapPadImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::WrapPadImageFilter::GetPadLowerBound "
+";
+
+%feature("docstring")  itk::simple::WrapPadImageFilter::GetPadUpperBound "
+";
+
+%feature("docstring")  itk::simple::WrapPadImageFilter::SetPadLowerBound "
+";
+
+%feature("docstring")  itk::simple::WrapPadImageFilter::SetPadUpperBound "
+";
+
+%feature("docstring")  itk::simple::WrapPadImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::WrapPadImageFilter::WrapPadImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::WrapPadImageFilter::~WrapPadImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::XorImageFilter "
+
+Computes the XOR bitwise operator pixel-wise between two images.
+
+
+This class is templated over the types of the two input images and the
+type of the output image. Numeric conversions (castings) are done by
+the C++ defaults.
+
+Since the bitwise XOR operation is only defined in C++ for integer
+types, the images passed to this filter must comply with the
+requirement of using integer pixel type.
+
+The total operation over one pixel will be
+
+
+Where \"^\" is the boolean XOR operator in C++.
+
+Wiki Examples:
+
+All Examples
+
+Binary XOR (exclusive OR) two images
+See:
+ itk::simple::Xor for the procedural interface
+
+ itk::XorImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkXorImageFilter.h
+";
+
+%feature("docstring")  itk::simple::XorImageFilter::Execute "
+
+Execute the filter on the input images
+
+";
+
+%feature("docstring")  itk::simple::XorImageFilter::Execute "
+
+Execute the filter with an image and a constant
+
+";
+
+%feature("docstring")  itk::simple::XorImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::XorImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::XorImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::XorImageFilter::XorImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::XorImageFilter::~XorImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::YenThresholdImageFilter "
+
+Threshold an image using the Yen Threshold.
+
+
+This filter creates a binary thresholded image that separates an image
+into foreground and background components. The filter computes the
+threshold using the YenThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter .
+
+
+Richard Beare
+ Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+This implementation was taken from the Insight Journal paper: https://hdl.handle.net/10380/3279 or http://www.insight-journal.org/browse/publication/811
+
+
+See:
+ HistogramThresholdImageFilter
+
+ itk::simple::YenThreshold for the procedural interface
+
+ itk::YenThresholdImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkYenThresholdImageFilter.h
+";
+
+%feature("docstring")  itk::simple::YenThresholdImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::YenThresholdImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::YenThresholdImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::YenThresholdImageFilter::Execute "
+";
+
+%feature("docstring")  itk::simple::YenThresholdImageFilter::GetInsideValue "
+
+Get the \"inside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::YenThresholdImageFilter::GetMaskOutput "
+";
+
+%feature("docstring")  itk::simple::YenThresholdImageFilter::GetMaskValue "
+";
+
+%feature("docstring")  itk::simple::YenThresholdImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::YenThresholdImageFilter::GetNumberOfHistogramBins "
+";
+
+%feature("docstring")  itk::simple::YenThresholdImageFilter::GetOutsideValue "
+
+Get the \"outside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::YenThresholdImageFilter::GetThreshold "
+
+Get the computed threshold.
+
+
+This is a measurement. Its value is updated in the Execute methods, so
+the value will only be valid after an execution.
+
+";
+
+%feature("docstring")  itk::simple::YenThresholdImageFilter::MaskOutputOff "
+";
+
+%feature("docstring")  itk::simple::YenThresholdImageFilter::MaskOutputOn "
+
+Set the value of MaskOutput to true or false respectfully.
+
+";
+
+%feature("docstring")  itk::simple::YenThresholdImageFilter::SetInsideValue "
+
+Set the \"inside\" pixel value.
+
+";
+
+%feature("docstring")  itk::simple::YenThresholdImageFilter::SetMaskOutput "
+
+Do you want the output to be masked by the mask used in histogram
+construction. Only relevant if masking is in use.
+
+";
+
+%feature("docstring")  itk::simple::YenThresholdImageFilter::SetMaskValue "
+
+The value in the mask image, if used, indicating voxels that should be
+included. Default is the max of pixel type, as in the
+MaskedImageToHistogramFilter
+
+";
+
+%feature("docstring")  itk::simple::YenThresholdImageFilter::SetNumberOfHistogramBins "
+
+Set/Get the number of histogram bins.
+
+";
+
+%feature("docstring")  itk::simple::YenThresholdImageFilter::SetOutsideValue "
+
+Set the \"outside\" pixel value. The default value NumericTraits<OutputPixelType>::Zero.
+
+";
+
+%feature("docstring")  itk::simple::YenThresholdImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::YenThresholdImageFilter::YenThresholdImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::YenThresholdImageFilter::~YenThresholdImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter "
+
+This filter implements a zero-crossing based edge detecor.
+
+
+The zero-crossing based edge detector looks for pixels in the
+Laplacian of an image where the value of the Laplacian passes through
+zero points where the Laplacian changes sign. Such points often occur
+at \"edges\" in images i.e. points where the intensity of the image
+changes rapidly, but they also occur at places that are not as easy to
+associate with edges. It is best to think of the zero crossing
+detector as some sort of feature detector rather than as a specific
+edge detector.
+
+
+Zero crossings always lie on closed contours and so the output from
+the zero crossing detector is usually a binary image with single pixel
+thickness lines showing the positions of the zero crossing points.
+
+In this implementation, the input image is first smoothed with a
+Gaussian filter, then the LaplacianImageFilter is applied to smoothed image. Finally the zero-crossing of the
+Laplacian of the smoothed image is detected. The output is a binary
+image.
+Inputs and Outputs
+The input to the filter should be a scalar, itk::Image of arbitrary dimension. The output image is a binary, labeled image.
+See itkZeroCrossingImageFilter for more information on requirements of
+the data type of the output.
+
+To use this filter, first set the parameters (variance and maximum
+error) needed by the embedded DiscreteGaussianImageFilter , i.e. See DiscreteGaussianImageFilter for information about these parameters. Optionally, you may also set
+foreground and background values for the zero-crossing filter. The
+default label values are Zero for the background and One for the
+foreground, as defined in NumericTraits for the data type of the output image.
+
+See:
+ DiscreteGaussianImageFilter
+
+ LaplacianImageFilter
+
+ ZeroCrossingImageFilter
+
+ itk::simple::ZeroCrossingBasedEdgeDetection for the procedural interface
+
+ itk::ZeroCrossingBasedEdgeDetectionImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkZeroCrossingBasedEdgeDetectionImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::GetBackgroundValue "
+
+Get/Set the label values for the ZeroCrossingImageFilter
+
+";
+
+%feature("docstring")  itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::GetForegroundValue "
+
+Get/Set the label values for the ZeroCrossingImageFilter
+
+";
+
+%feature("docstring")  itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::GetMaximumError "
+
+Standard get/set macros for Gaussian filter parameters.
+
+";
+
+%feature("docstring")  itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::GetVariance "
+
+Standard get/set macros for Gaussian filter parameters.
+
+";
+
+%feature("docstring")  itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::SetBackgroundValue "
+
+Get/Set the label values for the ZeroCrossingImageFilter
+
+";
+
+%feature("docstring")  itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::SetForegroundValue "
+
+Get/Set the label values for the ZeroCrossingImageFilter
+
+";
+
+%feature("docstring")  itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::SetMaximumError "
+
+Set the MaximumError parameter needed by the embedded gaussian filter
+This value is used to set the desired maximum error of the gaussian
+approximation. Maximum error is the difference between the area under
+the discrete Gaussian curve and the area under the continuous
+Gaussian. Maximum error affects the Gaussian operator size. The value
+must be between 0.0 and 1.0.
+
+";
+
+%feature("docstring")  itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::SetVariance "
+
+Set the variance parameter needed by the embedded gaussian filter
+
+";
+
+%feature("docstring")  itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::ZeroCrossingBasedEdgeDetectionImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter::~ZeroCrossingBasedEdgeDetectionImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ZeroCrossingImageFilter "
+
+This filter finds the closest pixel to the zero-crossings (sign
+changes) in a signed itk::Image .
+
+
+Pixels closest to zero-crossings are labeled with a foreground value.
+All other pixels are marked with a background value. The algorithm
+works by detecting differences in sign among neighbors using city-
+block style connectivity (4-neighbors in 2d, 6-neighbors in 3d, etc.).
+
+Inputs and Outputs
+The input to this filter is an itk::Image of arbitrary dimension. The algorithm assumes a signed data type
+(zero-crossings are not defined for unsigned data types), and requires
+that operator>, operator<, operator==, and operator!= are defined.
+
+The output of the filter is a binary, labeled image of user-specified
+type. By default, zero-crossing pixels are labeled with a default
+\"foreground\" value of itk::NumericTraits<OutputDataType>::OneValue() , where OutputDataType is the data type of the output image. All
+other pixels are labeled with a default \"background\" value of itk::NumericTraits<OutputDataType>::ZeroValue() .
+Parameters
+There are two parameters for this filter. ForegroundValue is the value
+that marks zero-crossing pixels. The BackgroundValue is the value
+given to all other pixels.
+
+See:
+ Image
+
+ Neighborhood
+
+ NeighborhoodOperator
+
+ NeighborhoodIterator
+Wiki Examples:
+
+All Examples
+
+Find zero crossings in a signed image
+See:
+ itk::simple::ZeroCrossing for the procedural interface
+
+ itk::ZeroCrossingImageFilter for the Doxygen on the original ITK class.
+
+
+
+C++ includes: sitkZeroCrossingImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ZeroCrossingImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ZeroCrossingImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ZeroCrossingImageFilter::GetBackgroundValue "
+
+Set/Get the label value for non-zero-crossing pixels.
+
+";
+
+%feature("docstring")  itk::simple::ZeroCrossingImageFilter::GetForegroundValue "
+
+Set/Get the label value for zero-crossing pixels.
+
+";
+
+%feature("docstring")  itk::simple::ZeroCrossingImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ZeroCrossingImageFilter::SetBackgroundValue "
+
+Set/Get the label value for non-zero-crossing pixels.
+
+";
+
+%feature("docstring")  itk::simple::ZeroCrossingImageFilter::SetForegroundValue "
+
+Set/Get the label value for zero-crossing pixels.
+
+";
+
+%feature("docstring")  itk::simple::ZeroCrossingImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ZeroCrossingImageFilter::ZeroCrossingImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ZeroCrossingImageFilter::~ZeroCrossingImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::ZeroFluxNeumannPadImageFilter "
+
+Increase the image size by padding according to the zero-flux Neumann
+boundary condition.
+
+
+A filter which extends the image size and fill the missing pixels
+according to a Neumann boundary condition where first, upwind
+derivatives on the boundary are zero. This is a useful condition in
+solving some classes of differential equations.
+
+For example, invoking this filter on an image with a corner like: returns the following padded image:
+
+
+Gaetan Lehmann. Biologie du Developpement et de la Reproduction, INRA
+de Jouy-en-Josas, France.
+
+See:
+ WrapPadImageFilter , MirrorPadImageFilter , ConstantPadImageFilter , ZeroFluxNeumannBoundaryCondition
+
+ itk::simple::ZeroFluxNeumannPad for the procedural interface
+
+ itk::ZeroFluxNeumannPadImageFilter for the Doxygen on the original ITK class.
+
+
+C++ includes: sitkZeroFluxNeumannPadImageFilter.h
+";
+
+%feature("docstring")  itk::simple::ZeroFluxNeumannPadImageFilter::Execute "
+
+Execute the filter on the input image
+
+";
+
+%feature("docstring")  itk::simple::ZeroFluxNeumannPadImageFilter::Execute "
+
+Execute the filter on the input image with the given parameters
+
+";
+
+%feature("docstring")  itk::simple::ZeroFluxNeumannPadImageFilter::GetName "
+
+Name of this class
+
+";
+
+%feature("docstring")  itk::simple::ZeroFluxNeumannPadImageFilter::GetPadLowerBound "
+";
+
+%feature("docstring")  itk::simple::ZeroFluxNeumannPadImageFilter::GetPadUpperBound "
+";
+
+%feature("docstring")  itk::simple::ZeroFluxNeumannPadImageFilter::SetPadLowerBound "
+";
+
+%feature("docstring")  itk::simple::ZeroFluxNeumannPadImageFilter::SetPadUpperBound "
+";
+
+%feature("docstring")  itk::simple::ZeroFluxNeumannPadImageFilter::ToString "
+
+Print ourselves out
+
+";
+
+%feature("docstring")  itk::simple::ZeroFluxNeumannPadImageFilter::ZeroFluxNeumannPadImageFilter "
+
+Default Constructor that takes no arguments and initializes default
+parameters
+
+";
+
+%feature("docstring")  itk::simple::ZeroFluxNeumannPadImageFilter::~ZeroFluxNeumannPadImageFilter "
+
+Destructor
+
+";
+
+
+%feature("docstring") itk::simple::DualMemberFunctionFactory "
+
+A class used to instantiate and generate function objects of templated
+member functions with two template arguments.
+
+
+
+
+Parameters:
+
+TMemberFunctionPointer:
+is the type of pointer to member function
+
+ Example member function and pointer:
+
+The provided Addressor will instantiate the templeted member functions
+by taking the address in the RegisterMethods. Later they can be
+retrieve with the GetMemberFunction method, which returns a function
+object with the same arguments as the templated member function
+pointer.
+
+An instance of a MemberFunctionFactory is bound to a specific instance of an object, so that the returned
+function object does not need to have the calling object specified.
+
+
+WARNING:
+Use this class with caution because it can instantiate a combinatorial
+number of methods.
+
+See:
+ MemberFunctionFactory
+
+
+C++ includes: sitkDualMemberFunctionFactory.h
+";
+
+%feature("docstring")  itk::simple::DualMemberFunctionFactory::DualMemberFunctionFactory "
+
+Constructor which permanently binds the constructed object to pObject.
+
+";
+
+%feature("docstring")  itk::simple::DualMemberFunctionFactory::GetMemberFunction "
+
+Returns a function object for the combination of PixelID1 and
+PixelID2, and image dimension.
+
+
+pixelID1 or pixelID2 is the value of Image::GetPixelIDValue(), or PixelIDToPixelIDValue<PixelIDType>::Result
+
+imageDimension is the the value returned by Image::GetDimension()
+
+Example usage:
+
+If the requested member function is not registered then an exception
+is generated. The returned function object is guaranteed to be valid.
+
+";
+
+%feature("docstring")  itk::simple::DualMemberFunctionFactory::HasMemberFunction "
+ throw ()
+Query to determine if an member function has been registered for
+pixelID1, pixelID2 and imageDimension.
+
+";
+
+%feature("docstring")  itk::simple::DualMemberFunctionFactory::Register "
+
+Registers a specific member function.
+
+
+Registers a member function templated over TImageType1 and TImageType2
+
+";
+
+
+%feature("docstring") itk::simple::MemberFunctionFactory "
+
+A class used to instantiate and generate function object to templated
+member functions.
+
+
+
+
+Parameters:
+
+TMemberFunctionPointer:
+is the type of pointer to member function
+
+ Example member function pointer:
+
+The RegisterMemberFunctions instantiate the templeted member functions
+and registers the member function pointer, so that it be used for
+dispatch later. Later they can be retrieve with the GetMemberFunction
+methods, which return a function object with the same arguments as the
+templated member function pointer.
+
+An instance of a MemberFunctionFactory is bound to a specific instance of an object, so that the returned
+function object does not need to have the calling object specified.
+
+C++ includes: sitkMemberFunctionFactory.h
+";
+
+%feature("docstring")  itk::simple::MemberFunctionFactory::GetMemberFunction "
+
+Returns a function object for the PixelIndex, and image dimension.
+
+
+pixelID is the value of Image::GetPixelIDValue(), or PixelIDToPixelIDValue<PixelIDType>::Result
+
+imageDimension is the the value returned by Image::GetDimension()
+
+Example usage:
+
+If the requested member function is not registered then an exception
+is generated. The returned function object is guaranteed to be valid.
+
+";
+
+%feature("docstring")  itk::simple::MemberFunctionFactory::HasMemberFunction "
+ throw ()
+Query to determine if an member function has been registered for
+pixelID and imageDimension.
+
+";
+
+%feature("docstring")  itk::simple::MemberFunctionFactory::MemberFunctionFactory "
+
+Constructor which permanently binds the constructed object to pObject.
+
+";
+
+%feature("docstring")  itk::simple::MemberFunctionFactory::Register "
+
+Registers a specific member function.
+
+
+Registers a member function which will be dispatched to the TImageType
+type
+
+";
+
+
+%feature("docstring") itk::simple::MemberFunctionFactoryBase "
+
+A base class for the MemberFunctionFactory.
+
+
+This class is for specialization needed for different arity for the
+templated member function pointer
+
+C++ includes: sitkMemberFunctionFactoryBase.h
+";
+
+
+%feature("docstring") itk::simple::MemberFunctionFactoryBase< TMemberFunctionPointer, TKey, 0 > "
+C++ includes: sitkMemberFunctionFactoryBase.h
+";
+
+
+%feature("docstring") itk::simple::MemberFunctionFactoryBase< TMemberFunctionPointer, TKey, 1 > "
+C++ includes: sitkMemberFunctionFactoryBase.h
+";
+
+
+%feature("docstring") itk::simple::MemberFunctionFactoryBase< TMemberFunctionPointer, TKey, 2 > "
+C++ includes: sitkMemberFunctionFactoryBase.h
+";
+
+
+%feature("docstring") itk::simple::MemberFunctionFactoryBase< TMemberFunctionPointer, TKey, 3 > "
+C++ includes: sitkMemberFunctionFactoryBase.h
+";
+
+
+%feature("docstring") itk::simple::MemberFunctionFactoryBase< TMemberFunctionPointer, TKey, 4 > "
+C++ includes: sitkMemberFunctionFactoryBase.h
+";
+
+
+%feature("docstring") itk::simple::MemberFunctionFactoryBase< TMemberFunctionPointer, TKey, 5 > "
+C++ includes: sitkMemberFunctionFactoryBase.h
+";
+
+%feature("docstring")  itk::simple::Abs "
+
+Computes the absolute value of each pixel.
+
+
+This function directly calls the execute method of AbsImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::AbsImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::AbsoluteValueDifference "
+
+Implements pixel-wise the computation of absolute value difference.
+
+
+This function directly calls the execute method of AbsoluteValueDifferenceImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::AbsoluteValueDifferenceImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::AbsoluteValueDifference "
+";
+
+%feature("docstring")  itk::simple::AbsoluteValueDifference "
+";
+
+%feature("docstring")  itk::simple::Acos "
+
+Computes the inverse cosine of each pixel.
+
+
+This function directly calls the execute method of AcosImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::AcosImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::AdaptiveHistogramEqualization "
+
+Power Law Adaptive Histogram Equalization.
+
+
+This function directly calls the execute method of AdaptiveHistogramEqualizationImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::AdaptiveHistogramEqualizationImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Add "
+
+Pixel-wise addition of two images.
+
+
+This function directly calls the execute method of AddImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::AddImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Add "
+";
+
+%feature("docstring")  itk::simple::Add "
+";
+
+%feature("docstring")  itk::simple::AdditiveGaussianNoise "
+
+Alter an image with additive Gaussian white noise.
+
+
+This function directly calls the execute method of AdditiveGaussianNoiseImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::AdditiveGaussianNoiseImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::AggregateLabelMap "
+
+Collapses all labels into the first label.
+
+
+This function directly calls the execute method of AggregateLabelMapFilter in order to support a procedural API
+
+
+See:
+ itk::simple::AggregateLabelMapFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::And "
+
+Implements the AND bitwise operator pixel-wise between two images.
+
+
+This function directly calls the execute method of AndImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::AndImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::And "
+";
+
+%feature("docstring")  itk::simple::And "
+";
+
+%feature("docstring")  itk::simple::AntiAliasBinary "
+
+A method for estimation of a surface from a binary volume.
+
+
+This function directly calls the execute method of AntiAliasBinaryImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::AntiAliasBinaryImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::ApproximateSignedDistanceMap "
+
+Create a map of the approximate signed distance from the boundaries of
+a binary image.
+
+
+This function directly calls the execute method of ApproximateSignedDistanceMapImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ApproximateSignedDistanceMapImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Asin "
+
+Computes the sine of each pixel.
+
+
+This function directly calls the execute method of AsinImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::AsinImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Atan "
+
+Computes the one-argument inverse tangent of each pixel.
+
+
+This function directly calls the execute method of AtanImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::AtanImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Atan2 "
+
+Computes two argument inverse tangent.
+
+
+This function directly calls the execute method of Atan2ImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::Atan2ImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Atan2 "
+";
+
+%feature("docstring")  itk::simple::Atan2 "
+";
+
+%feature("docstring")  itk::simple::Bilateral "
+
+Blurs an image while preserving edges.
+
+
+This function directly calls the execute method of BilateralImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BilateralImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::BinaryClosingByReconstruction "
+
+itk::simple::BinaryClosingByReconstructionImageFilter Functional Interface
+
+This function directly calls the execute method of BinaryClosingByReconstructionImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::BinaryClosingByReconstruction "
+
+itk::simple::BinaryClosingByReconstructionImageFilter Functional Interface
+
+This function directly calls the execute method of BinaryClosingByReconstructionImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::BinaryContour "
+
+Labels the pixels on the border of the objects in a binary image.
+
+
+This function directly calls the execute method of BinaryContourImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinaryContourImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::BinaryDilate "
+
+itk::simple::BinaryDilateImageFilter Functional Interface
+
+This function directly calls the execute method of BinaryDilateImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::BinaryDilate "
+
+itk::simple::BinaryDilateImageFilter Functional Interface
+
+This function directly calls the execute method of BinaryDilateImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::BinaryErode "
+
+itk::simple::BinaryErodeImageFilter Functional Interface
+
+This function directly calls the execute method of BinaryErodeImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::BinaryErode "
+
+itk::simple::BinaryErodeImageFilter Functional Interface
+
+This function directly calls the execute method of BinaryErodeImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::BinaryFillhole "
+
+Remove holes not connected to the boundary of the image.
+
+
+This function directly calls the execute method of BinaryFillholeImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinaryFillholeImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::BinaryGrindPeak "
+
+Remove the objects not connected to the boundary of the image.
+
+
+This function directly calls the execute method of BinaryGrindPeakImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinaryGrindPeakImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::BinaryImageToLabelMap "
+
+Label the connected components in a binary image and produce a
+collection of label objects.
+
+
+This function directly calls the execute method of BinaryImageToLabelMapFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinaryImageToLabelMapFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::BinaryMagnitude "
+
+Computes the square root of the sum of squares of corresponding input
+pixels.
+
+
+This function directly calls the execute method of BinaryMagnitudeImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinaryMagnitudeImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::BinaryMedian "
+
+Applies a version of the median filter optimized for binary images.
+
+
+This function directly calls the execute method of BinaryMedianImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinaryMedianImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::BinaryMinMaxCurvatureFlow "
+
+Denoise a binary image using min/max curvature flow.
+
+
+This function directly calls the execute method of BinaryMinMaxCurvatureFlowImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinaryMinMaxCurvatureFlowImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalClosing "
+
+itk::simple::BinaryMorphologicalClosingImageFilter Functional Interface
+
+This function directly calls the execute method of BinaryMorphologicalClosingImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalClosing "
+
+itk::simple::BinaryMorphologicalClosingImageFilter Functional Interface
+
+This function directly calls the execute method of BinaryMorphologicalClosingImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalOpening "
+
+itk::simple::BinaryMorphologicalOpeningImageFilter Functional Interface
+
+This function directly calls the execute method of BinaryMorphologicalOpeningImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::BinaryMorphologicalOpening "
+
+itk::simple::BinaryMorphologicalOpeningImageFilter Functional Interface
+
+This function directly calls the execute method of BinaryMorphologicalOpeningImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::BinaryNot "
+
+Implements the BinaryNot logical operator pixel-wise between two
+images.
+
+
+This function directly calls the execute method of BinaryNotImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinaryNotImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::BinaryOpeningByReconstruction "
+
+itk::simple::BinaryOpeningByReconstructionImageFilter Functional Interface
+
+This function directly calls the execute method of BinaryOpeningByReconstructionImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::BinaryOpeningByReconstruction "
+
+itk::simple::BinaryOpeningByReconstructionImageFilter Functional Interface
+
+This function directly calls the execute method of BinaryOpeningByReconstructionImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::BinaryProjection "
+
+Binary projection.
+
+
+This function directly calls the execute method of BinaryProjectionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinaryProjectionImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByDilation "
+
+binary reconstruction by dilation of an image
+
+
+This function directly calls the execute method of BinaryReconstructionByDilationImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinaryReconstructionByDilationImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::BinaryReconstructionByErosion "
+
+binary reconstruction by erosion of an image
+
+
+This function directly calls the execute method of BinaryReconstructionByErosionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinaryReconstructionByErosionImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::BinaryThinning "
+
+This filter computes one-pixel-wide edges of the input image.
+
+
+This function directly calls the execute method of BinaryThinningImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinaryThinningImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::BinaryThreshold "
+
+Binarize an input image by thresholding.
+
+
+This function directly calls the execute method of BinaryThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinaryThresholdImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::BinaryThresholdProjection "
+
+BinaryThreshold projection.
+
+
+This function directly calls the execute method of BinaryThresholdProjectionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinaryThresholdProjectionImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::BinomialBlur "
+
+Performs a separable blur on each dimension of an image.
+
+
+This function directly calls the execute method of BinomialBlurImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinomialBlurImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::BinShrink "
+
+Reduce the size of an image by an integer factor in each dimension
+while performing averaging of an input neighborhood.
+
+
+This function directly calls the execute method of BinShrinkImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BinShrinkImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::BitwiseNot "
+
+Implements pixel-wise generic operation on one image.
+
+
+This function directly calls the execute method of BitwiseNotImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BitwiseNotImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::BlackTopHat "
+
+itk::simple::BlackTopHatImageFilter Functional Interface
+
+This function directly calls the execute method of BlackTopHatImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::BlackTopHat "
+
+itk::simple::BlackTopHatImageFilter Functional Interface
+
+This function directly calls the execute method of BlackTopHatImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::BoundedReciprocal "
+
+Computes 1/(1+x) for each pixel in the image.
+
+
+This function directly calls the execute method of BoundedReciprocalImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BoundedReciprocalImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::BoxMean "
+
+Implements a fast rectangular mean filter using the accumulator
+approach.
+
+
+This function directly calls the execute method of BoxMeanImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BoxMeanImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::BoxSigma "
+
+Implements a fast rectangular sigma filter using the accumulator
+approach.
+
+
+This function directly calls the execute method of BoxSigmaImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BoxSigmaImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::BSplineTransformInitializer "
+
+BSplineTransformInitializerFilter is a helper class intended to initialize the control point grid such
+that it has a physically consistent definition. It sets the transform
+domain origin, physical dimensions and direction from information
+obtained from the image. It also sets the mesh size if asked to do so
+by calling SetTransformDomainMeshSize()before calling
+InitializeTransform().
+
+
+This function directly calls the execute method of BSplineTransformInitializerFilter in order to support a procedural API
+
+
+See:
+ itk::simple::BSplineTransformInitializerFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::CannyEdgeDetection "
+
+This filter is an implementation of a Canny edge detector for scalar-
+valued images.
+
+
+This function directly calls the execute method of CannyEdgeDetectionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::CannyEdgeDetectionImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Cast "
+";
+
+%feature("docstring")  itk::simple::CenteredTransformInitializer "
+
+CenteredTransformInitializer is a helper class intended to initialize the center of rotation and
+the translation of Transforms having the center of rotation among
+their parameters.
+
+
+This function directly calls the execute method of CenteredTransformInitializerFilter in order to support a procedural API
+
+
+See:
+ itk::simple::CenteredTransformInitializerFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::CenteredVersorTransformInitializer "
+
+CenteredVersorTransformInitializer is a helper class intended to initialize the center of rotation,
+versor, and translation of the VersorRigid3DTransform.
+
+
+This function directly calls the execute method of
+CenteredVectorTransformInitializerFilter in order to support a
+procedural API.
+
+
+See:
+ itk::simple::CenteredVersorTransformInitializerFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::ChangeLabel "
+
+Change Sets of Labels.
+
+
+This function directly calls the execute method of ChangeLabelImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ChangeLabelImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::ChangeLabelLabelMap "
+
+Replace the label Ids of selected LabelObjects with new label Ids.
+
+
+This function directly calls the execute method of ChangeLabelLabelMapFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ChangeLabelLabelMapFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::CheckerBoard "
+
+Combines two images in a checkerboard pattern.
+
+
+This function directly calls the execute method of CheckerBoardImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::CheckerBoardImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Clamp "
+
+Casts input pixels to output pixel type and clamps the output pixel
+values to a specified range.
+
+
+This function directly calls the execute method of ClampImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ClampImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::ClosingByReconstruction "
+
+itk::simple::ClosingByReconstructionImageFilter Functional Interface
+
+This function directly calls the execute method of ClosingByReconstructionImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::ClosingByReconstruction "
+
+itk::simple::ClosingByReconstructionImageFilter Functional Interface
+
+This function directly calls the execute method of ClosingByReconstructionImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::CollidingFronts "
+
+Selects a region of space where two independent fronts run towards
+each other.
+
+
+This function directly calls the execute method of CollidingFrontsImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::CollidingFrontsImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::ComplexToImaginary "
+
+Computes pixel-wise the imaginary part of a complex image.
+
+
+This function directly calls the execute method of ComplexToImaginaryImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ComplexToImaginaryImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::ComplexToModulus "
+
+Computes pixel-wise the Modulus of a complex image.
+
+
+This function directly calls the execute method of ComplexToModulusImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ComplexToModulusImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::ComplexToPhase "
+
+Computes pixel-wise the modulus of a complex image.
+
+
+This function directly calls the execute method of ComplexToPhaseImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ComplexToPhaseImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::ComplexToReal "
+
+Computes pixel-wise the real(x) part of a complex image.
+
+
+This function directly calls the execute method of ComplexToRealImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ComplexToRealImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::ConfidenceConnected "
+
+itk::simple::ConfidenceConnectedImageFilter Functional Interface
+
+This function directly calls the execute method of ConfidenceConnectedImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::ConnectedComponent "
+
+Label the objects in a binary image.
+
+
+This function directly calls the execute method of ConnectedComponentImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ConnectedComponentImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::ConnectedThreshold "
+
+itk::simple::ConnectedThresholdImageFilter Functional Interface
+
+This function directly calls the execute method of ConnectedThresholdImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::ConstantPad "
+
+Increase the image size by padding with a constant value.
+
+
+This function directly calls the execute method of ConstantPadImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ConstantPadImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Convolution "
+
+Convolve a given image with an arbitrary image kernel.
+
+
+This function directly calls the execute method of ConvolutionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ConvolutionImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Cos "
+
+Computes the cosine of each pixel.
+
+
+This function directly calls the execute method of CosImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::CosImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::CreateKernel "
+";
+
+%feature("docstring")  itk::simple::Crop "
+
+Decrease the image size by cropping the image by an itk::Size at both the upper and lower bounds of the largest possible region.
+
+
+This function directly calls the execute method of CropImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::CropImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::CurvatureAnisotropicDiffusion "
+
+itk::simple::CurvatureAnisotropicDiffusionImageFilter Procedural Interface
+
+
+This function directly calls the execute method of CurvatureAnisotropicDiffusionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::CurvatureAnisotropicDiffusionImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::CurvatureFlow "
+
+Denoise an image using curvature driven flow.
+
+
+This function directly calls the execute method of CurvatureFlowImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::CurvatureFlowImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::CyclicShift "
+
+Perform a cyclic spatial shift of image intensities on the image grid.
+
+
+This function directly calls the execute method of CyclicShiftImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::CyclicShiftImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::DanielssonDistanceMap "
+
+This filter computes the distance map of the input image as an
+approximation with pixel accuracy to the Euclidean distance.
+
+
+This function directly calls the execute method of DanielssonDistanceMapImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::DanielssonDistanceMapImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Derivative "
+
+Computes the directional derivative of an image. The directional
+derivative at each pixel location is computed by convolution with a
+derivative operator of user-specified order.
+
+
+This function directly calls the execute method of DerivativeImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::DerivativeImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::DilateObjectMorphology "
+
+itk::simple::DilateObjectMorphologyImageFilter Functional Interface
+
+This function directly calls the execute method of DilateObjectMorphologyImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::DilateObjectMorphology "
+
+itk::simple::DilateObjectMorphologyImageFilter Functional Interface
+
+This function directly calls the execute method of DilateObjectMorphologyImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussian "
+
+Blurs an image by separable convolution with discrete gaussian
+kernels. This filter performs Gaussian blurring by separable
+convolution of an image and a discrete Gaussian operator (kernel).
+
+
+This function directly calls the execute method of DiscreteGaussianImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::DiscreteGaussianImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::DiscreteGaussianDerivative "
+
+Calculates image derivatives using discrete derivative gaussian
+kernels. This filter calculates Gaussian derivative by separable
+convolution of an image and a discrete Gaussian derivative operator
+(kernel).
+
+
+This function directly calls the execute method of DiscreteGaussianDerivativeImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::DiscreteGaussianDerivativeImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::DisplacementFieldJacobianDeterminant "
+
+Computes a scalar image from a vector image (e.g., deformation field)
+input, where each output scalar at each pixel is the Jacobian
+determinant of the vector field at that location. This calculation is
+correct in the case where the vector image is a \"displacement\" from
+the current location. The computation for the jacobian determinant is:
+det[ dT/dx ] = det[ I + du/dx ].
+
+
+This function directly calls the execute method of DisplacementFieldJacobianDeterminantFilter in order to support a procedural API
+
+
+See:
+ itk::simple::DisplacementFieldJacobianDeterminantFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Divide "
+
+Pixel-wise division of two images.
+
+
+This function directly calls the execute method of DivideImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::DivideImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Divide "
+";
+
+%feature("docstring")  itk::simple::Divide "
+";
+
+%feature("docstring")  itk::simple::DivideFloor "
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This function directly calls the execute method of DivideFloorImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::DivideFloorImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::DivideFloor "
+";
+
+%feature("docstring")  itk::simple::DivideFloor "
+";
+
+%feature("docstring")  itk::simple::DivideReal "
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This function directly calls the execute method of DivideRealImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::DivideRealImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::DivideReal "
+";
+
+%feature("docstring")  itk::simple::DivideReal "
+";
+
+%feature("docstring")  itk::simple::DoubleThreshold "
+
+Binarize an input image using double thresholding.
+
+
+This function directly calls the execute method of DoubleThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::DoubleThresholdImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::EdgePotential "
+
+Computes the edge potential of an image from the image gradient.
+
+
+This function directly calls the execute method of EdgePotentialImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::EdgePotentialImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Equal "
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This function directly calls the execute method of EqualImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::EqualImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Equal "
+";
+
+%feature("docstring")  itk::simple::Equal "
+";
+
+%feature("docstring")  itk::simple::ErodeObjectMorphology "
+
+itk::simple::ErodeObjectMorphologyImageFilter Functional Interface
+
+This function directly calls the execute method of ErodeObjectMorphologyImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::ErodeObjectMorphology "
+
+itk::simple::ErodeObjectMorphologyImageFilter Functional Interface
+
+This function directly calls the execute method of ErodeObjectMorphologyImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::Exp "
+
+Computes the exponential function of each pixel.
+
+
+This function directly calls the execute method of ExpImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ExpImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Expand "
+
+Expand the size of an image by an integer factor in each dimension.
+
+
+This function directly calls the execute method of ExpandImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ExpandImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::ExpNegative "
+
+Computes the function exp(-K.x) for each input pixel.
+
+
+This function directly calls the execute method of ExpNegativeImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ExpNegativeImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Extract "
+
+Decrease the image size by cropping the image to the selected region
+bounds.
+
+
+This function directly calls the execute method of ExtractImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ExtractImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::FastApproximateRank "
+
+A separable rank filter.
+
+
+This function directly calls the execute method of FastApproximateRankImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::FastApproximateRankImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::FastMarching "
+
+Solve an Eikonal equation using Fast Marching.
+
+
+This function directly calls the execute method of FastMarchingImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::FastMarchingImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingBase "
+
+itk::simple::FastMarchingBaseImageFilter Functional Interface
+
+This function directly calls the execute method of FastMarchingBaseImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::FastMarchingUpwindGradient "
+
+Generates the upwind gradient field of fast marching arrival times.
+
+
+This function directly calls the execute method of FastMarchingUpwindGradientImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::FastMarchingUpwindGradientImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::FFTConvolution "
+
+Convolve a given image with an arbitrary image kernel using
+multiplication in the Fourier domain.
+
+
+This function directly calls the execute method of FFTConvolutionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::FFTConvolutionImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::FFTNormalizedCorrelation "
+
+Calculate normalized cross correlation using FFTs.
+
+
+This function directly calls the execute method of FFTNormalizedCorrelationImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::FFTNormalizedCorrelationImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::FFTPad "
+
+Pad an image to make it suitable for an FFT transformation.
+
+
+This function directly calls the execute method of FFTPadImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::FFTPadImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::FFTShift "
+
+Shift the zero-frequency components of a Fourier transform to the
+center of the image.
+
+
+This function directly calls the execute method of FFTShiftImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::FFTShiftImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Flip "
+
+Flips an image across user specified axes.
+
+
+This function directly calls the execute method of FlipImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::FlipImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::ForwardFFT "
+
+Base class for forward Fast Fourier Transform .
+
+
+This function directly calls the execute method of ForwardFFTImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ForwardFFTImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::GaborSource "
+
+Generate an n-dimensional image of a Gabor filter.
+
+
+This function directly calls the execute method of GaborImageSource in order to support a procedural API
+
+
+See:
+ itk::simple::GaborImageSource for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::GaussianSource "
+
+Generate an n-dimensional image of a Gaussian.
+
+
+This function directly calls the execute method of GaussianImageSource in order to support a procedural API
+
+
+See:
+ itk::simple::GaussianImageSource for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::GeodesicActiveContourLevelSet "
+
+Segments structures in images based on a user supplied edge potential
+map.
+
+
+This function directly calls the execute method of GeodesicActiveContourLevelSetImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::GeodesicActiveContourLevelSetImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::GetImageFromVectorImage "
+
+A utility method to help convert between itk image types efficiently.
+
+";
+
+%feature("docstring")  itk::simple::GetPixelIDValueAsString "
+";
+
+%feature("docstring")  itk::simple::GetPixelIDValueAsString "
+";
+
+%feature("docstring")  itk::simple::GetPixelIDValueFromString "
+
+Function mapping enumeration names in std::string to values.
+
+
+This function is intended for use by the R bindings. R stores the
+enumeration values using the names : \"sitkUnkown\", \"sitkUInt8\",
+etc from PixelIDValueEnum above. This function is used to provide the
+integer values using calls like:
+
+val = GetPixelIDValueFromString(\"sitkInt32\")
+
+If the pixel type has not been instantiated then the sitkUnknown value
+(-1) will be returned. If the pixel type string is not recognised
+(i.e. is not in the set of tested names) then the return value is -99.
+The idea is to provide a warning (via the R package) if this function
+needs to be updated to match changes to PixelIDValueEnum - i.e. if a
+new pixel type is added.
+
+";
+
+%feature("docstring")  itk::simple::GetVectorImageFromImage "
+";
+
+%feature("docstring")  itk::simple::GetVectorImageFromImage "
+";
+
+%feature("docstring")  itk::simple::Gradient "
+
+Computes the gradient of an image using directional derivatives.
+
+
+This function directly calls the execute method of GradientImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::GradientImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::GradientAnisotropicDiffusion "
+
+itk::simple::GradientAnisotropicDiffusionImageFilter Procedural Interface
+
+
+This function directly calls the execute method of GradientAnisotropicDiffusionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::GradientAnisotropicDiffusionImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::GradientMagnitude "
+
+Computes the gradient magnitude of an image region at each pixel.
+
+
+This function directly calls the execute method of GradientMagnitudeImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::GradientMagnitudeImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::GradientMagnitudeRecursiveGaussian "
+
+Computes the Magnitude of the Gradient of an image by convolution with
+the first derivative of a Gaussian.
+
+
+This function directly calls the execute method of GradientMagnitudeRecursiveGaussianImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::GradientMagnitudeRecursiveGaussianImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::GradientRecursiveGaussian "
+
+Computes the gradient of an image by convolution with the first
+derivative of a Gaussian.
+
+
+This function directly calls the execute method of GradientRecursiveGaussianImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::GradientRecursiveGaussianImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleConnectedClosing "
+
+Enhance pixels associated with a dark object (identified by a seed
+pixel) where the dark object is surrounded by a brigher object.
+
+
+This function directly calls the execute method of GrayscaleConnectedClosingImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::GrayscaleConnectedClosingImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleConnectedOpening "
+
+Enhance pixels associated with a bright object (identified by a seed
+pixel) where the bright object is surrounded by a darker object.
+
+
+This function directly calls the execute method of GrayscaleConnectedOpeningImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::GrayscaleConnectedOpeningImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleDilate "
+
+itk::simple::GrayscaleDilateImageFilter Functional Interface
+
+This function directly calls the execute method of GrayscaleDilateImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleDilate "
+
+itk::simple::GrayscaleDilateImageFilter Functional Interface
+
+This function directly calls the execute method of GrayscaleDilateImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleErode "
+
+itk::simple::GrayscaleErodeImageFilter Functional Interface
+
+This function directly calls the execute method of GrayscaleErodeImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleErode "
+
+itk::simple::GrayscaleErodeImageFilter Functional Interface
+
+This function directly calls the execute method of GrayscaleErodeImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleFillhole "
+
+Remove local minima not connected to the boundary of the image.
+
+
+This function directly calls the execute method of GrayscaleFillholeImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::GrayscaleFillholeImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicDilate "
+
+geodesic gray scale dilation of an image
+
+
+This function directly calls the execute method of GrayscaleGeodesicDilateImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::GrayscaleGeodesicDilateImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGeodesicErode "
+
+geodesic gray scale erosion of an image
+
+
+This function directly calls the execute method of GrayscaleGeodesicErodeImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::GrayscaleGeodesicErodeImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleGrindPeak "
+
+Remove local maxima not connected to the boundary of the image.
+
+
+This function directly calls the execute method of GrayscaleGrindPeakImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::GrayscaleGrindPeakImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalClosing "
+
+itk::simple::GrayscaleMorphologicalClosingImageFilter Functional Interface
+
+This function directly calls the execute method of GrayscaleMorphologicalClosingImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalClosing "
+
+itk::simple::GrayscaleMorphologicalClosingImageFilter Functional Interface
+
+This function directly calls the execute method of GrayscaleMorphologicalClosingImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalOpening "
+
+itk::simple::GrayscaleMorphologicalOpeningImageFilter Functional Interface
+
+This function directly calls the execute method of GrayscaleMorphologicalOpeningImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::GrayscaleMorphologicalOpening "
+
+itk::simple::GrayscaleMorphologicalOpeningImageFilter Functional Interface
+
+This function directly calls the execute method of GrayscaleMorphologicalOpeningImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::Greater "
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This function directly calls the execute method of GreaterImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::GreaterImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Greater "
+";
+
+%feature("docstring")  itk::simple::Greater "
+";
+
+%feature("docstring")  itk::simple::GreaterEqual "
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This function directly calls the execute method of GreaterEqualImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::GreaterEqualImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::GreaterEqual "
+";
+
+%feature("docstring")  itk::simple::GreaterEqual "
+";
+
+%feature("docstring")  itk::simple::GridSource "
+
+Generate an n-dimensional image of a grid.
+
+
+This function directly calls the execute method of GridImageSource in order to support a procedural API
+
+
+See:
+ itk::simple::GridImageSource for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::HalfHermitianToRealInverseFFT "
+
+Base class for specialized complex-to-real inverse Fast Fourier Transform .
+
+
+This function directly calls the execute method of HalfHermitianToRealInverseFFTImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::HalfHermitianToRealInverseFFTImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Hash "
+";
+
+%feature("docstring")  itk::simple::HConcave "
+
+Identify local minima whose depth below the baseline is greater than
+h.
+
+
+This function directly calls the execute method of HConcaveImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::HConcaveImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::HConvex "
+
+Identify local maxima whose height above the baseline is greater than
+h.
+
+
+This function directly calls the execute method of HConvexImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::HConvexImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::HistogramMatching "
+
+Normalize the grayscale values between two images by histogram
+matching.
+
+
+This function directly calls the execute method of HistogramMatchingImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::HistogramMatchingImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::HMaxima "
+
+Suppress local maxima whose height above the baseline is less than h.
+
+
+This function directly calls the execute method of HMaximaImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::HMaximaImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::HMinima "
+
+Suppress local minima whose depth below the baseline is less than h.
+
+
+This function directly calls the execute method of HMinimaImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::HMinimaImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::HuangThreshold "
+
+Threshold an image using the Huang Threshold.
+
+
+This function directly calls the execute method of HuangThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::HuangThresholdImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::HuangThreshold "
+";
+
+%feature("docstring")  itk::simple::ImportAsDouble "
+";
+
+%feature("docstring")  itk::simple::ImportAsFloat "
+";
+
+%feature("docstring")  itk::simple::ImportAsInt16 "
+";
+
+%feature("docstring")  itk::simple::ImportAsInt32 "
+";
+
+%feature("docstring")  itk::simple::ImportAsInt64 "
+";
+
+%feature("docstring")  itk::simple::ImportAsInt8 "
+";
+
+%feature("docstring")  itk::simple::ImportAsUInt16 "
+";
+
+%feature("docstring")  itk::simple::ImportAsUInt32 "
+";
+
+%feature("docstring")  itk::simple::ImportAsUInt64 "
+";
+
+%feature("docstring")  itk::simple::ImportAsUInt8 "
+";
+
+%feature("docstring")  itk::simple::IntensityWindowing "
+
+Applies a linear transformation to the intensity levels of the input Image that are inside a user-defined interval. Values below this interval
+are mapped to a constant. Values over the interval are mapped to
+another constant.
+
+
+This function directly calls the execute method of IntensityWindowingImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::IntensityWindowingImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::IntermodesThreshold "
+
+Threshold an image using the Intermodes Threshold.
+
+
+This function directly calls the execute method of IntermodesThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::IntermodesThresholdImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::IntermodesThreshold "
+";
+
+%feature("docstring")  itk::simple::InverseDeconvolution "
+
+The direct linear inverse deconvolution filter.
+
+
+This function directly calls the execute method of InverseDeconvolutionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::InverseDeconvolutionImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::InverseDisplacementField "
+
+Computes the inverse of a displacement field.
+
+
+This function directly calls the execute method of InverseDisplacementFieldImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::InverseDisplacementFieldImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::InverseFFT "
+
+Base class for inverse Fast Fourier Transform .
+
+
+This function directly calls the execute method of InverseFFTImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::InverseFFTImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::InvertDisplacementField "
+
+Iteratively estimate the inverse field of a displacement field.
+
+
+This function directly calls the execute method of InvertDisplacementFieldImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::InvertDisplacementFieldImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::InvertIntensity "
+
+Invert the intensity of an image.
+
+
+This function directly calls the execute method of InvertIntensityImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::InvertIntensityImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::IsoContourDistance "
+
+Compute an approximate distance from an interpolated isocontour to the
+close grid points.
+
+
+This function directly calls the execute method of IsoContourDistanceImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::IsoContourDistanceImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::IsoDataThreshold "
+
+Threshold an image using the IsoData Threshold.
+
+
+This function directly calls the execute method of IsoDataThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::IsoDataThresholdImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::IsoDataThreshold "
+";
+
+%feature("docstring")  itk::simple::IsolatedConnected "
+
+Label pixels that are connected to one set of seeds but not another.
+
+
+This function directly calls the execute method of IsolatedConnectedImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::IsolatedConnectedImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::IsolatedWatershed "
+
+Isolate watershed basins using two seeds.
+
+
+This function directly calls the execute method of IsolatedWatershedImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::IsolatedWatershedImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::IterativeInverseDisplacementField "
+
+Computes the inverse of a displacement field.
+
+
+This function directly calls the execute method of IterativeInverseDisplacementFieldImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::IterativeInverseDisplacementFieldImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::KittlerIllingworthThreshold "
+
+Threshold an image using the KittlerIllingworth Threshold.
+
+
+This function directly calls the execute method of KittlerIllingworthThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::KittlerIllingworthThresholdImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::KittlerIllingworthThreshold "
+";
+
+%feature("docstring")  itk::simple::LabelContour "
+
+Labels the pixels on the border of the objects in a labeled image.
+
+
+This function directly calls the execute method of LabelContourImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LabelContourImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::LabelImageToLabelMap "
+
+convert a labeled image to a label collection image
+
+
+This function directly calls the execute method of LabelImageToLabelMapFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LabelImageToLabelMapFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::LabelMapContourOverlay "
+
+Apply a colormap to the contours (outlines) of each object in a label
+map and superimpose it on top of the feature image.
+
+
+This function directly calls the execute method of LabelMapContourOverlayImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LabelMapContourOverlayImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::LabelMapMask "
+
+Mask and image with a LabelMap .
+
+
+This function directly calls the execute method of LabelMapMaskImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LabelMapMaskImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::LabelMapOverlay "
+
+Apply a colormap to a label map and superimpose it on an image.
+
+
+This function directly calls the execute method of LabelMapOverlayImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LabelMapOverlayImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::LabelMapToBinary "
+
+Convert a LabelMap to a binary image.
+
+
+This function directly calls the execute method of LabelMapToBinaryImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LabelMapToBinaryImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::LabelMapToLabel "
+
+Converts a LabelMap to a labeled image.
+
+
+This function directly calls the execute method of LabelMapToLabelImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LabelMapToLabelImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::LabelMapToRGB "
+
+Convert a LabelMap to a colored image.
+
+
+This function directly calls the execute method of LabelMapToRGBImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LabelMapToRGBImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::LabelOverlay "
+
+Apply a colormap to a label image and put it on top of the input
+image.
+
+
+This function directly calls the execute method of LabelOverlayImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LabelOverlayImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::LabelToRGB "
+
+Apply a colormap to a label image.
+
+
+This function directly calls the execute method of LabelToRGBImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LabelToRGBImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::LabelUniqueLabelMap "
+
+Make sure that the objects are not overlapping.
+
+
+This function directly calls the execute method of LabelUniqueLabelMapFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LabelUniqueLabelMapFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::LandmarkBasedTransformInitializer "
+
+itk::simple::LandmarkBasedTransformInitializerFilter Procedural Interface
+
+
+This function directly calls the execute method of LandmarkBasedTransformInitializerFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LandmarkBasedTransformInitializerFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::LandweberDeconvolution "
+
+Deconvolve an image using the Landweber deconvolution algorithm.
+
+
+This function directly calls the execute method of LandweberDeconvolutionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LandweberDeconvolutionImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Laplacian "
+
+itk::simple::LaplacianImageFilter Procedural Interface
+
+
+This function directly calls the execute method of LaplacianImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LaplacianImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::LaplacianRecursiveGaussian "
+
+Computes the Laplacian of Gaussian (LoG) of an image.
+
+
+This function directly calls the execute method of LaplacianRecursiveGaussianImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LaplacianRecursiveGaussianImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::LaplacianSegmentationLevelSet "
+
+Segments structures in images based on a second derivative image
+features.
+
+
+This function directly calls the execute method of LaplacianSegmentationLevelSetImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LaplacianSegmentationLevelSetImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::LaplacianSharpening "
+
+This filter sharpens an image using a Laplacian. LaplacianSharpening
+highlights regions of rapid intensity change and therefore highlights
+or enhances the edges. The result is an image that appears more in
+focus.
+
+
+This function directly calls the execute method of LaplacianSharpeningImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LaplacianSharpeningImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Less "
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This function directly calls the execute method of LessImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LessImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Less "
+";
+
+%feature("docstring")  itk::simple::Less "
+";
+
+%feature("docstring")  itk::simple::LessEqual "
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This function directly calls the execute method of LessEqualImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LessEqualImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::LessEqual "
+";
+
+%feature("docstring")  itk::simple::LessEqual "
+";
+
+%feature("docstring")  itk::simple::LiThreshold "
+
+Threshold an image using the Li Threshold.
+
+
+This function directly calls the execute method of LiThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LiThresholdImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::LiThreshold "
+";
+
+%feature("docstring")  itk::simple::Log "
+
+Computes the log() of each pixel.
+
+
+This function directly calls the execute method of LogImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::LogImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Log10 "
+
+Computes the log10 of each pixel.
+
+
+This function directly calls the execute method of Log10ImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::Log10ImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::MagnitudeAndPhaseToComplex "
+
+Implements pixel-wise conversion of magnitude and phase data into
+complex voxels.
+
+
+This function directly calls the execute method of MagnitudeAndPhaseToComplexImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MagnitudeAndPhaseToComplexImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::MagnitudeAndPhaseToComplex "
+";
+
+%feature("docstring")  itk::simple::MagnitudeAndPhaseToComplex "
+";
+
+%feature("docstring")  itk::simple::Mask "
+
+Mask an image with a mask.
+
+
+This function directly calls the execute method of MaskImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MaskImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::MaskedFFTNormalizedCorrelation "
+
+Calculate masked normalized cross correlation using FFTs.
+
+
+This function directly calls the execute method of MaskedFFTNormalizedCorrelationImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MaskedFFTNormalizedCorrelationImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::MaskNegated "
+
+Mask an image with the negative of a mask.
+
+
+This function directly calls the execute method of MaskNegatedImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MaskNegatedImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Maximum "
+
+Implements a pixel-wise operator Max(a,b) between two images.
+
+
+This function directly calls the execute method of MaximumImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MaximumImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Maximum "
+";
+
+%feature("docstring")  itk::simple::Maximum "
+";
+
+%feature("docstring")  itk::simple::MaximumEntropyThreshold "
+
+Threshold an image using the MaximumEntropy Threshold.
+
+
+This function directly calls the execute method of MaximumEntropyThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MaximumEntropyThresholdImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::MaximumEntropyThreshold "
+";
+
+%feature("docstring")  itk::simple::MaximumProjection "
+
+Maximum projection.
+
+
+This function directly calls the execute method of MaximumProjectionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MaximumProjectionImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Mean "
+
+Applies an averaging filter to an image.
+
+
+This function directly calls the execute method of MeanImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MeanImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::MeanProjection "
+
+Mean projection.
+
+
+This function directly calls the execute method of MeanProjectionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MeanProjectionImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Median "
+
+Applies a median filter to an image.
+
+
+This function directly calls the execute method of MedianImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MedianImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::MedianProjection "
+
+Median projection.
+
+
+This function directly calls the execute method of MedianProjectionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MedianProjectionImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Minimum "
+
+Implements a pixel-wise operator Min(a,b) between two images.
+
+
+This function directly calls the execute method of MinimumImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MinimumImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Minimum "
+";
+
+%feature("docstring")  itk::simple::Minimum "
+";
+
+%feature("docstring")  itk::simple::MinimumProjection "
+
+Minimum projection.
+
+
+This function directly calls the execute method of MinimumProjectionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MinimumProjectionImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::MinMaxCurvatureFlow "
+
+Denoise an image using min/max curvature flow.
+
+
+This function directly calls the execute method of MinMaxCurvatureFlowImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MinMaxCurvatureFlowImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::MirrorPad "
+
+Increase the image size by padding with replicants of the input image
+value.
+
+
+This function directly calls the execute method of MirrorPadImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MirrorPadImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Modulus "
+
+Computes the modulus (x % dividend) pixel-wise.
+
+
+This function directly calls the execute method of ModulusImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ModulusImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Modulus "
+";
+
+%feature("docstring")  itk::simple::Modulus "
+";
+
+%feature("docstring")  itk::simple::MomentsThreshold "
+
+Threshold an image using the Moments Threshold.
+
+
+This function directly calls the execute method of MomentsThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MomentsThresholdImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::MomentsThreshold "
+";
+
+%feature("docstring")  itk::simple::MorphologicalGradient "
+
+itk::simple::MorphologicalGradientImageFilter Functional Interface
+
+This function directly calls the execute method of MorphologicalGradientImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalGradient "
+
+itk::simple::MorphologicalGradientImageFilter Functional Interface
+
+This function directly calls the execute method of MorphologicalGradientImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershed "
+
+Watershed segmentation implementation with morphogical operators.
+
+
+This function directly calls the execute method of MorphologicalWatershedImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MorphologicalWatershedImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::MorphologicalWatershedFromMarkers "
+
+Morphological watershed transform from markers.
+
+
+This function directly calls the execute method of MorphologicalWatershedFromMarkersImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MorphologicalWatershedFromMarkersImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Multiply "
+
+Pixel-wise multiplication of two images.
+
+
+This function directly calls the execute method of MultiplyImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::MultiplyImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Multiply "
+";
+
+%feature("docstring")  itk::simple::Multiply "
+";
+
+%feature("docstring")  itk::simple::N4BiasFieldCorrection "
+
+Implementation of the N4 bias field correction algorithm.
+
+
+This function directly calls the execute method of N4BiasFieldCorrectionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::N4BiasFieldCorrectionImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::NeighborhoodConnected "
+
+itk::simple::NeighborhoodConnectedImageFilter Functional Interface
+
+This function directly calls the execute method of NeighborhoodConnectedImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::Noise "
+
+Calculate the local noise in an image.
+
+
+This function directly calls the execute method of NoiseImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::NoiseImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Normalize "
+
+Normalize an image by setting its mean to zero and variance to one.
+
+
+This function directly calls the execute method of NormalizeImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::NormalizeImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::NormalizedCorrelation "
+
+Computes the normalized correlation of an image and a template.
+
+
+This function directly calls the execute method of NormalizedCorrelationImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::NormalizedCorrelationImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::NormalizeToConstant "
+
+Scales image pixel intensities to make the sum of all pixels equal a
+user-defined constant.
+
+
+This function directly calls the execute method of NormalizeToConstantImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::NormalizeToConstantImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Not "
+
+Implements the NOT logical operator pixel-wise on an image.
+
+
+This function directly calls the execute method of NotImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::NotImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::NotEqual "
+
+Implements pixel-wise generic operation of two images, or of an image
+and a constant.
+
+
+This function directly calls the execute method of NotEqualImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::NotEqualImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::NotEqual "
+";
+
+%feature("docstring")  itk::simple::NotEqual "
+";
+
+%feature("docstring")  itk::simple::OpeningByReconstruction "
+
+itk::simple::OpeningByReconstructionImageFilter Functional Interface
+
+This function directly calls the execute method of OpeningByReconstructionImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::OpeningByReconstruction "
+
+itk::simple::OpeningByReconstructionImageFilter Functional Interface
+
+This function directly calls the execute method of OpeningByReconstructionImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::Or "
+
+Implements the OR bitwise operator pixel-wise between two images.
+
+
+This function directly calls the execute method of OrImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::OrImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Or "
+";
+
+%feature("docstring")  itk::simple::Or "
+";
+
+%feature("docstring")  itk::simple::OtsuMultipleThresholds "
+
+Threshold an image using multiple Otsu Thresholds.
+
+
+This function directly calls the execute method of OtsuMultipleThresholdsImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::OtsuMultipleThresholdsImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::OtsuThreshold "
+
+Threshold an image using the Otsu Threshold.
+
+
+This function directly calls the execute method of OtsuThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::OtsuThresholdImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::OtsuThreshold "
+";
+
+%feature("docstring")  itk::simple::Paste "
+
+Paste an image into another image.
+
+
+This function directly calls the execute method of PasteImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::PasteImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoising "
+
+itk::simple::PatchBasedDenoisingImageFilter Procedural Interface
+
+
+This function directly calls the execute method of PatchBasedDenoisingImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::PatchBasedDenoisingImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::PatchBasedDenoising "
+";
+
+%feature("docstring")  itk::simple::PermuteAxes "
+
+Permutes the image axes according to a user specified order.
+
+
+This function directly calls the execute method of PermuteAxesImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::PermuteAxesImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::PhysicalPointSource "
+
+Generate an image of the physical locations of each pixel.
+
+
+This function directly calls the execute method of PhysicalPointImageSource in order to support a procedural API
+
+
+See:
+ itk::simple::PhysicalPointImageSource for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Pow "
+
+Computes the powers of 2 images.
+
+
+This function directly calls the execute method of PowImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::PowImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Pow "
+";
+
+%feature("docstring")  itk::simple::Pow "
+";
+
+%feature("docstring")  itk::simple::ProjectedLandweberDeconvolution "
+
+Deconvolve an image using the projected Landweber deconvolution
+algorithm.
+
+
+This function directly calls the execute method of ProjectedLandweberDeconvolutionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ProjectedLandweberDeconvolutionImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Rank "
+
+Rank filter of a greyscale image.
+
+
+This function directly calls the execute method of RankImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::RankImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::ReadImage "
+
+ReadImage is a procedural interface to the ImageFileReader class which is convenient for most image reading tasks.
+
+
+For more complicated use cases such as requiring loading of all tags,
+including private ones, from a DICOM file the object oriented
+interface should be used. The reader can be explicitly set to load all
+tags (LoadPrivateTagsOn()).
+
+";
+
+%feature("docstring")  itk::simple::ReadImage "
+
+ReadImage is a procedural interface to the ImageSeriesReader class which is convenient for most image reading tasks.
+
+
+Note that when reading a series of images that have meta-data
+associated with them (e.g. a DICOM series) the resulting image will
+have an empty meta-data dictionary. It is possible to programmatically
+add a meta-data dictionary to the compounded image by reading in one
+or more images from the series using the ImageFileReader class,
+analyzing the meta-dictionary associated with each of those images and
+creating one that is relevant for the compounded image.
+
+
+See:
+ itk::simple::ImageFileReader for reading a single file
+
+
+";
+
+%feature("docstring")  itk::simple::ReadTransform "
+";
+
+%feature("docstring")  itk::simple::RealAndImaginaryToComplex "
+
+ComposeImageFilter combine several scalar images into a multicomponent image.
+
+
+This function directly calls the execute method of RealAndImaginaryToComplexImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::RealAndImaginaryToComplexImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::RealToHalfHermitianForwardFFT "
+
+Base class for specialized real-to-complex forward Fast Fourier Transform .
+
+
+This function directly calls the execute method of RealToHalfHermitianForwardFFTImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::RealToHalfHermitianForwardFFTImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::ReconstructionByDilation "
+
+grayscale reconstruction by dilation of an image
+
+
+This function directly calls the execute method of ReconstructionByDilationImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ReconstructionByDilationImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::ReconstructionByErosion "
+
+grayscale reconstruction by erosion of an image
+
+
+This function directly calls the execute method of ReconstructionByErosionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ReconstructionByErosionImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::RecursiveGaussian "
+
+Base class for computing IIR convolution with an approximation of a
+Gaussian kernel.
+
+
+This function directly calls the execute method of RecursiveGaussianImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::RecursiveGaussianImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::RegionalMaxima "
+
+Produce a binary image where foreground is the regional maxima of the
+input image.
+
+
+This function directly calls the execute method of RegionalMaximaImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::RegionalMaximaImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::RegionalMinima "
+
+Produce a binary image where foreground is the regional minima of the
+input image.
+
+
+This function directly calls the execute method of RegionalMinimaImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::RegionalMinimaImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::RegionOfInterest "
+
+Extract a region of interest from the input image.
+
+
+This function directly calls the execute method of RegionOfInterestImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::RegionOfInterestImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::RelabelComponent "
+
+Relabel the components in an image such that consecutive labels are
+used.
+
+
+This function directly calls the execute method of RelabelComponentImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::RelabelComponentImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::RelabelLabelMap "
+
+This filter relabels the LabelObjects; the new labels are arranged
+consecutively with consideration for the background value.
+
+
+This function directly calls the execute method of RelabelLabelMapFilter in order to support a procedural API
+
+
+See:
+ itk::simple::RelabelLabelMapFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::RenyiEntropyThreshold "
+
+Threshold an image using the RenyiEntropy Threshold.
+
+
+This function directly calls the execute method of RenyiEntropyThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::RenyiEntropyThresholdImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::RenyiEntropyThreshold "
+";
+
+%feature("docstring")  itk::simple::RescaleIntensity "
+
+Applies a linear transformation to the intensity levels of the input Image .
+
+
+This function directly calls the execute method of RescaleIntensityImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::RescaleIntensityImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::RichardsonLucyDeconvolution "
+
+Deconvolve an image using the Richardson-Lucy deconvolution algorithm.
+
+
+This function directly calls the execute method of RichardsonLucyDeconvolutionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::RichardsonLucyDeconvolutionImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::SaltAndPepperNoise "
+
+Alter an image with fixed value impulse noise, often called salt and
+pepper noise.
+
+
+This function directly calls the execute method of SaltAndPepperNoiseImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SaltAndPepperNoiseImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::ScalarChanAndVeseDenseLevelSet "
+
+Dense implementation of the Chan and Vese multiphase level set image
+filter.
+
+
+This function directly calls the execute method of ScalarChanAndVeseDenseLevelSetImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ScalarChanAndVeseDenseLevelSetImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::ScalarConnectedComponent "
+
+A connected components filter that labels the objects in an arbitrary
+image. Two pixels are similar if they are within threshold of each
+other. Uses ConnectedComponentFunctorImageFilter .
+
+
+This function directly calls the execute method of ScalarConnectedComponentImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ScalarConnectedComponentImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::ScalarImageKmeans "
+
+Classifies the intensity values of a scalar image using the K-Means
+algorithm.
+
+
+This function directly calls the execute method of ScalarImageKmeansImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ScalarImageKmeansImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::ScalarToRGBColormap "
+
+Implements pixel-wise intensity->rgb mapping operation on one image.
+
+
+This function directly calls the execute method of ScalarToRGBColormapImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ScalarToRGBColormapImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::ShanbhagThreshold "
+
+Threshold an image using the Shanbhag Threshold.
+
+
+This function directly calls the execute method of ShanbhagThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ShanbhagThresholdImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::ShanbhagThreshold "
+";
+
+%feature("docstring")  itk::simple::ShapeDetectionLevelSet "
+
+Segments structures in images based on a user supplied edge potential
+map.
+
+
+This function directly calls the execute method of ShapeDetectionLevelSetImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ShapeDetectionLevelSetImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::ShiftScale "
+
+Shift and scale the pixels in an image.
+
+
+This function directly calls the execute method of ShiftScaleImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ShiftScaleImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::ShotNoise "
+
+Alter an image with shot noise.
+
+
+This function directly calls the execute method of ShotNoiseImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ShotNoiseImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Show "
+
+Display an image using Fiji, ImageJ or another application.
+
+This function requires that Fiji ( https://fiji.sc ) or ImageJ ( http://rsb.info.nih.gov/ij/) be properly installed for Mac and Windows, and in the user's path
+for Linux. ImageJ must have a plugin for reading Nifti formatted files
+( http://www.loci.wisc.edu/bio-formats/imagej).
+
+Nifti is the default file format used to export images. A different
+format can be chosen by setting the SITK_SHOW_EXTENSION environment
+variable. For example, set SITK_SHOW_EXTENSION to \".png\" to use PNG
+format.
+
+The user can specify an application other than ImageJ to view images
+via the SITK_SHOW_COMMAND environment variable.
+
+The user can also select applications specifically for color images or
+3D images using the SITK_SHOW_COLOR_COMMAND and SITK_SHOW_3D_COMMAND
+environment variables.
+
+SITK_SHOW_COMMAND, SITK_SHOW_COLOR_COMMAND and SITK_SHOW_3D_COMMAND
+allow the following tokens in their strings.\\\\li \\\\c \"%a\"  for the ImageJ application \\\\li \\\\c \"%f\"
+for SimpleITK's temporary image file
+
+For example, the default SITK_SHOW_COMMAND string on Linux systems is:
+
+
+After token substitution it may become:
+
+
+For another example, the default SITK_SHOW_COLOR_COMMAND string on Mac
+OS X is:
+
+
+After token substitution the string may become:
+
+
+The string after \"-eval\" is an ImageJ macro the opens the file and runs ImageJ's Make
+Composite command to display the image in color.
+
+If the \"%f\" token is not found in the command string, the temporary file name is
+automatically appended to the command argument list.
+
+When invoked, Show searches for Fiji first, and then ImageJ. Fiji is
+the most update-to-date version of ImageJ and includes a lot of
+plugins which facilitate scientific image analysis. By default, for a
+64-bit build of SimpleITK on Macs, sitkShow searches for ImageJ64.app.
+For a 32-bit Mac build, sitkShow searches for ImageJ.app. If the user
+prefers a different version of ImageJ (or a different image viewer
+altogether), it can be specified using the SITK_SHOW_COMMAND
+environment variable.
+
+The boolean parameter debugOn prints the search path Show uses to find
+ImageJ, the full path to the ImageJ it found, and the full command
+line used to invoke ImageJ.
+
+";
+
+%feature("docstring")  itk::simple::Shrink "
+
+Reduce the size of an image by an integer factor in each dimension.
+
+
+This function directly calls the execute method of ShrinkImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ShrinkImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Sigmoid "
+
+Computes the sigmoid function pixel-wise.
+
+
+This function directly calls the execute method of SigmoidImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SigmoidImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::SignedDanielssonDistanceMap "
+
+itk::simple::SignedDanielssonDistanceMapImageFilter Procedural Interface
+
+
+This function directly calls the execute method of SignedDanielssonDistanceMapImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SignedDanielssonDistanceMapImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::SignedMaurerDistanceMap "
+
+This filter calculates the Euclidean distance transform of a binary
+image in linear time for arbitrary dimensions.
+
+
+This function directly calls the execute method of SignedMaurerDistanceMapImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SignedMaurerDistanceMapImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::SimpleContourExtractor "
+
+Computes an image of contours which will be the contour of the first
+image.
+
+
+This function directly calls the execute method of SimpleContourExtractorImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SimpleContourExtractorImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Sin "
+
+Computes the sine of each pixel.
+
+
+This function directly calls the execute method of SinImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SinImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::sitkITKDirectionToSTL "
+";
+
+%feature("docstring")  itk::simple::sitkITKImageRegionToSTL "
+
+Convert an ITK ImageRegion to and std::vector with the first part being the start index followed
+by the size.
+
+";
+
+%feature("docstring")  itk::simple::sitkITKVectorToSTL "
+
+Convert an ITK fixed width vector to a std::vector.
+
+";
+
+%feature("docstring")  itk::simple::sitkITKVectorToSTL "
+";
+
+%feature("docstring")  itk::simple::sitkSTLToITKDirection "
+";
+
+%feature("docstring")  itk::simple::sitkSTLVectorToITK "
+
+Copy the elements of an std::vector into an ITK fixed width vector.
+
+
+If there are more elements in paramter \"in\" than the templated ITK
+vector type, they are truncated. If less, then an exception is
+generated.
+
+";
+
+%feature("docstring")  itk::simple::sitkSTLVectorToITKPointVector "
+";
+
+%feature("docstring")  itk::simple::Slice "
+
+itk::simple::SliceImageFilter Procedural Interface
+
+
+This function directly calls the execute method of SliceImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SliceImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::SmoothingRecursiveGaussian "
+
+Computes the smoothing of an image by convolution with the Gaussian
+kernels implemented as IIR filters.
+
+
+This function directly calls the execute method of SmoothingRecursiveGaussianImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SmoothingRecursiveGaussianImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::SobelEdgeDetection "
+
+A 2D or 3D edge detection using the Sobel operator.
+
+
+This function directly calls the execute method of SobelEdgeDetectionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SobelEdgeDetectionImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::SpeckleNoise "
+
+Alter an image with speckle (multiplicative) noise.
+
+
+This function directly calls the execute method of SpeckleNoiseImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SpeckleNoiseImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Sqrt "
+
+Computes the square root of each pixel.
+
+
+This function directly calls the execute method of SqrtImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SqrtImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Square "
+
+Computes the square of the intensity values pixel-wise.
+
+
+This function directly calls the execute method of SquareImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SquareImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::SquaredDifference "
+
+Implements pixel-wise the computation of squared difference.
+
+
+This function directly calls the execute method of SquaredDifferenceImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SquaredDifferenceImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::SquaredDifference "
+";
+
+%feature("docstring")  itk::simple::SquaredDifference "
+";
+
+%feature("docstring")  itk::simple::StandardDeviationProjection "
+
+Mean projection.
+
+
+This function directly calls the execute method of StandardDeviationProjectionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::StandardDeviationProjectionImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Subtract "
+
+Pixel-wise subtraction of two images.
+
+
+This function directly calls the execute method of SubtractImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SubtractImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Subtract "
+";
+
+%feature("docstring")  itk::simple::Subtract "
+";
+
+%feature("docstring")  itk::simple::SumProjection "
+
+Sum projection.
+
+
+This function directly calls the execute method of SumProjectionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::SumProjectionImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Tan "
+
+Computes the tangent of each input pixel.
+
+
+This function directly calls the execute method of TanImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::TanImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::TernaryAdd "
+
+Pixel-wise addition of three images.
+
+
+This function directly calls the execute method of TernaryAddImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::TernaryAddImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::TernaryMagnitude "
+
+Compute the pixel-wise magnitude of three images.
+
+
+This function directly calls the execute method of TernaryMagnitudeImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::TernaryMagnitudeImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::TernaryMagnitudeSquared "
+
+Compute the pixel-wise squared magnitude of three images.
+
+
+This function directly calls the execute method of TernaryMagnitudeSquaredImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::TernaryMagnitudeSquaredImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Threshold "
+
+Set image values to a user-specified value if they are below, above,
+or between simple threshold values.
+
+
+This function directly calls the execute method of ThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ThresholdImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::ThresholdMaximumConnectedComponents "
+
+Finds the threshold value of an image based on maximizing the number
+of objects in the image that are larger than a given minimal size.
+
+
+This function directly calls the execute method of ThresholdMaximumConnectedComponentsImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ThresholdMaximumConnectedComponentsImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::ThresholdSegmentationLevelSet "
+
+Segments structures in images based on intensity values.
+
+
+This function directly calls the execute method of ThresholdSegmentationLevelSetImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ThresholdSegmentationLevelSetImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::TikhonovDeconvolution "
+
+An inverse deconvolution filter regularized in the Tikhonov sense.
+
+
+This function directly calls the execute method of TikhonovDeconvolutionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::TikhonovDeconvolutionImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::TransformToDisplacementField "
+
+Generate a displacement field from a coordinate transform.
+
+
+This function directly calls the execute method of TransformToDisplacementFieldFilter in order to support a procedural API
+
+
+See:
+ itk::simple::TransformToDisplacementFieldFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::TriangleThreshold "
+
+Threshold an image using the Triangle Threshold.
+
+
+This function directly calls the execute method of TriangleThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::TriangleThresholdImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::TriangleThreshold "
+";
+
+%feature("docstring")  itk::simple::UnaryMinus "
+
+Computes the negative of each pixel.
+
+
+This function directly calls the execute method of UnaryMinusImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::UnaryMinusImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Unused "
+
+A function which does nothing.
+
+
+This function is to be used to mark parameters as unused to supress
+compiler warning.
+
+";
+
+%feature("docstring")  itk::simple::ValuedRegionalMaxima "
+
+Transforms the image so that any pixel that is not a regional maxima
+is set to the minimum value for the pixel type. Pixels that are
+regional maxima retain their value.
+
+
+This function directly calls the execute method of ValuedRegionalMaximaImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ValuedRegionalMaximaImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::ValuedRegionalMinima "
+
+Transforms the image so that any pixel that is not a regional minima
+is set to the maximum value for the pixel type. Pixels that are
+regional minima retain their value.
+
+
+This function directly calls the execute method of ValuedRegionalMinimaImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ValuedRegionalMinimaImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::VectorConfidenceConnected "
+
+itk::simple::VectorConfidenceConnectedImageFilter Functional Interface
+
+This function directly calls the execute method of VectorConfidenceConnectedImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::VectorConnectedComponent "
+
+A connected components filter that labels the objects in a vector
+image. Two vectors are pointing similar directions if one minus their
+dot product is less than a threshold. Vectors that are 180 degrees out
+of phase are similar. Assumes that vectors are normalized.
+
+
+This function directly calls the execute method of VectorConnectedComponentImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::VectorConnectedComponentImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::VectorIndexSelectionCast "
+
+Extracts the selected index of the vector that is the input pixel
+type.
+
+
+This function directly calls the execute method of VectorIndexSelectionCastImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::VectorIndexSelectionCastImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::VectorMagnitude "
+
+Take an image of vectors as input and produce an image with the
+magnitude of those vectors.
+
+
+This function directly calls the execute method of VectorMagnitudeImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::VectorMagnitudeImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::VotingBinary "
+
+Applies a voting operation in a neighborhood of each pixel.
+
+
+This function directly calls the execute method of VotingBinaryImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::VotingBinaryImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryHoleFilling "
+
+Fills in holes and cavities by applying a voting operation on each
+pixel.
+
+
+This function directly calls the execute method of VotingBinaryHoleFillingImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::VotingBinaryHoleFillingImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::VotingBinaryIterativeHoleFilling "
+
+Fills in holes and cavities by iteratively applying a voting
+operation.
+
+
+This function directly calls the execute method of VotingBinaryIterativeHoleFillingImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::VotingBinaryIterativeHoleFillingImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Warp "
+
+Warps an image using an input displacement field.
+
+
+This function directly calls the execute method of WarpImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::WarpImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::WhiteTopHat "
+
+itk::simple::WhiteTopHatImageFilter Functional Interface
+
+This function directly calls the execute method of WhiteTopHatImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::WhiteTopHat "
+
+itk::simple::WhiteTopHatImageFilter Functional Interface
+
+This function directly calls the execute method of WhiteTopHatImageFilter in order to support a fully functional API
+
+";
+
+%feature("docstring")  itk::simple::WienerDeconvolution "
+
+The Wiener deconvolution image filter is designed to restore an image
+convolved with a blurring kernel while keeping noise enhancement to a
+minimum.
+
+
+This function directly calls the execute method of WienerDeconvolutionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::WienerDeconvolutionImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::WrapPad "
+
+Increase the image size by padding with replicants of the input image
+value.
+
+
+This function directly calls the execute method of WrapPadImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::WrapPadImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::WriteImage "
+";
+
+%feature("docstring")  itk::simple::WriteImage "
+";
+
+%feature("docstring")  itk::simple::WriteTransform "
+";
+
+%feature("docstring")  itk::simple::Xor "
+
+Computes the XOR bitwise operator pixel-wise between two images.
+
+
+This function directly calls the execute method of XorImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::XorImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::Xor "
+";
+
+%feature("docstring")  itk::simple::Xor "
+";
+
+%feature("docstring")  itk::simple::YenThreshold "
+
+Threshold an image using the Yen Threshold.
+
+
+This function directly calls the execute method of YenThresholdImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::YenThresholdImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::YenThreshold "
+";
+
+%feature("docstring")  itk::simple::ZeroCrossing "
+
+This filter finds the closest pixel to the zero-crossings (sign
+changes) in a signed itk::Image .
+
+
+This function directly calls the execute method of ZeroCrossingImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ZeroCrossingImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::ZeroCrossingBasedEdgeDetection "
+
+This filter implements a zero-crossing based edge detecor.
+
+
+This function directly calls the execute method of ZeroCrossingBasedEdgeDetectionImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ZeroCrossingBasedEdgeDetectionImageFilter for the object oriented interface
+
+
+";
+
+%feature("docstring")  itk::simple::ZeroFluxNeumannPad "
+
+Increase the image size by padding according to the zero-flux Neumann
+boundary condition.
+
+
+This function directly calls the execute method of ZeroFluxNeumannPadImageFilter in order to support a procedural API
+
+
+See:
+ itk::simple::ZeroFluxNeumannPadImageFilter for the object oriented interface
+
+
+";
+
+
+%feature("docstring") itk::simple::BasicPixelID "
+
+This type is used as an identity for pixel of itk::Image type
+
+This is an empty type which is used for compile-time meta-programming.
+It does not contain any information, an image type can be converted to
+one of the PixelID types, and an PixelID can be converted to a value.
+However, a run-time value can not be converted to this compile time
+type.
+
+
+See:
+ PixelIDToImageType
+
+ ImageTypeToPixelID
+
+ ImageTypeToPixelIDValue
+
+ PixelIDToPixelIDValue
+
+
+C++ includes: sitkPixelIDTypes.h
+";
+
+
+%feature("docstring") itk::simple::Conditional "
+C++ includes: sitkConditional.h
+";
+
+
+%feature("docstring") itk::simple::ConditionalValue "
+C++ includes: sitkConditional.h
+";
+
+
+%feature("docstring") itk::simple::DisableIf "
+C++ includes: sitkEnableIf.h
+";
+
+
+%feature("docstring") itk::simple::EnableIf "
+C++ includes: sitkEnableIf.h
+";
+
+
+%feature("docstring") itk::simple::ImageTypeToPixelID "
+
+A meta-programming tool to query the PixelID property of an \"itk
+image type\" at compile type
+
+This structure contains one property,
+ImageTypeToPixelID<T>::PixelIDType is the \"itk image type\" of the
+pixel ID.
+
+
+See:
+ BasicPixelID
+
+ VectorPixelID
+
+ LabelPixelID
+
+ ImageTypeToPixelIDValue
+
+
+C++ includes: sitkPixelIDTypes.h
+";
+
+
+%feature("docstring") itk::simple::ImageTypeToPixelIDValue "
+C++ includes: sitkPixelIDValues.h
+";
+
+
+%feature("docstring") itk::simple::ImageTypeToPixelID< itk::Image< TPixelType, VImageDimension > > "
+C++ includes: sitkPixelIDTypes.h
+";
+
+
+%feature("docstring") itk::simple::ImageTypeToPixelID< itk::LabelMap< itk::LabelObject< TLabelType, VImageDimension > > > "
+C++ includes: sitkPixelIDTypes.h
+";
+
+
+%feature("docstring") itk::simple::ImageTypeToPixelID< itk::VectorImage< TPixelType, VImageDimension > > "
+C++ includes: sitkPixelIDTypes.h
+";
+
+
+%feature("docstring") itk::simple::IsBasic "
+C++ includes: sitkPixelIDTokens.h
+";
+
+
+%feature("docstring") itk::simple::IsBasic< BasicPixelID< TPixelType > > "
+C++ includes: sitkPixelIDTokens.h
+";
+
+
+%feature("docstring") itk::simple::IsBasic< itk::Image< TPixelType, VImageDimension > > "
+C++ includes: sitkPixelIDTokens.h
+";
+
+
+%feature("docstring") itk::simple::IsInstantiated "
+C++ includes: sitkPixelIDTokens.h
+";
+
+
+%feature("docstring") itk::simple::IsInstantiated< itk::Image< TPixelType, VImageDimension >, 0 > "
+C++ includes: sitkPixelIDTokens.h
+";
+
+
+%feature("docstring") itk::simple::IsInstantiated< itk::LabelMap< itk::LabelObject< TLabelType, VImageDimension > >, 0 > "
+C++ includes: sitkPixelIDTokens.h
+";
+
+
+%feature("docstring") itk::simple::IsInstantiated< itk::VectorImage< TPixelType, VImageDimension >, 0 > "
+C++ includes: sitkPixelIDTokens.h
+";
+
+
+%feature("docstring") itk::simple::IsLabel "
+C++ includes: sitkPixelIDTokens.h
+";
+
+
+%feature("docstring") itk::simple::IsLabel< LabelPixelID< TPixelType > > "
+C++ includes: sitkPixelIDTokens.h
+";
+
+
+%feature("docstring") itk::simple::IsLabel< itk::LabelMap< itk::LabelObject< TLabelType, VImageDimension > > > "
+C++ includes: sitkPixelIDTokens.h
+";
+
+
+%feature("docstring") itk::simple::IsVector "
+C++ includes: sitkPixelIDTokens.h
+";
+
+
+%feature("docstring") itk::simple::IsVector< VectorPixelID< TPixelType > > "
+C++ includes: sitkPixelIDTokens.h
+";
+
+
+%feature("docstring") itk::simple::IsVector< itk::VectorImage< TPixelType, VImageDimension > > "
+C++ includes: sitkPixelIDTokens.h
+";
+
+
+%feature("docstring") itk::simple::LabelPixelID "
+
+This type is used as an identity for pixel of itk::LabelMap type
+
+This is an empty type which is used for compile-time meta-programming.
+It does not contain any information, an image type can be converted to
+one of the PixelID types, and an PixelID can be converted to a value.
+However, a run-time value can not be converted to this compile time
+type.
+
+
+See:
+ PixelIDToImageType
+
+ ImageTypeToPixelID
+
+ ImageTypeToPixelIDValue
+
+ PixelIDToPixelIDValue
+
+
+C++ includes: sitkPixelIDTypes.h
+";
+
+
+%feature("docstring") itk::simple::PixelIDToImageType "
+
+A meta-programming tool to query the \"itk image type\" if a PixelID
+at compile type
+
+This structure contains one property, PixelIDToImageType<T>::ImageType
+is the \"itk image type\" of the pixel ID.
+
+
+See:
+ BasicPixelID
+
+ VectorPixelID
+
+ LabelPixelID
+
+ ImageTypeToPixelIDValue
+
+
+C++ includes: sitkPixelIDTypes.h
+";
+
+
+%feature("docstring") itk::simple::PixelIDToImageType< BasicPixelID< TPixelType >, VImageDimension > "
+C++ includes: sitkPixelIDTypes.h
+";
+
+
+%feature("docstring") itk::simple::PixelIDToImageType< LabelPixelID< TLabelType >, VImageDimension > "
+C++ includes: sitkPixelIDTypes.h
+";
+
+
+%feature("docstring") itk::simple::PixelIDToImageType< VectorPixelID< TVectorPixelType >, VImageDimension > "
+C++ includes: sitkPixelIDTypes.h
+";
+
+
+%feature("docstring") itk::simple::PixelIDToPixelIDValue "
+C++ includes: sitkPixelIDValues.h
+";
+
+
+%feature("docstring") itk::simple::StaticAssertFailure "
+C++ includes: sitkMacro.h
+";
+
+
+%feature("docstring") itk::simple::StaticAssertFailure< true > "
+C++ includes: sitkMacro.h
+";
+
+
+%feature("docstring") itk::simple::VectorPixelID "
+
+This type is used as an identity for pixel of itk::VectorImage type
+
+This is an empty type which is used for compile-time meta-programming.
+It does not contain any information, an image type can be converted to
+one of the PixelID types, and an PixelID can be converted to a value.
+However, a run-time value can not be converted to this compile time
+type.
+
+
+See:
+ PixelIDToImageType
+
+ ImageTypeToPixelID
+
+ ImageTypeToPixelIDValue
+
+ PixelIDToPixelIDValue
+
+
+C++ includes: sitkPixelIDTypes.h
+";
+
+
+%feature("docstring") itk::simple::DualExecuteInternalAddressor "
+C++ includes: sitkDetail.h
+";
+
+
+%feature("docstring") itk::simple::DualExecuteInternalVectorAddressor "
+
+An addressor of ExecuteInternalCast to be utilized with registering
+member functions with the factory.
+
+C++ includes: sitkDetail.h
+";
+
+
+%feature("docstring") itk::simple::ExecuteInternalLabelImageAddressor "
+
+An addressor of ExecuteInternal to be utilized with registering member
+functions with the factory.
+
+C++ includes: sitkDetail.h
+";
+
+
+%feature("docstring") itk::simple::ExecuteInternalVectorImageAddressor "
+
+An addressor of ExecuteInternalCast to be utilized with registering
+member functions with the factory.
+
+C++ includes: sitkDetail.h
+";
+
+
+%feature("docstring") itk::simple::MemberFunctionAddressor "
+C++ includes: sitkDetail.h
+";
diff --git a/Wrapping/Python/PythonVirtualEnvInstall.cmake.in b/Wrapping/Python/PythonVirtualEnvInstall.cmake.in
new file mode 100644
index 0000000..e6064c8
--- /dev/null
+++ b/Wrapping/Python/PythonVirtualEnvInstall.cmake.in
@@ -0,0 +1,114 @@
+
+if(POLICY CMP0012)
+  cmake_policy(SET CMP0012 NEW)
+endif()
+
+set(VIRTUALENV_ARGS --clear --no-pip)
+if ( "@SimpleITK_FORBID_DOWNLOADS@" )
+  set(VIRTUALENV_ARGS ${VIRTUALENV_ARGS} --never-download)
+endif()
+if ( NOT "@SimpleITK_PYTHON_WHEEL@" )
+  if ("@PYTHON_VIRTUALENV_VERSION_STRING@" VERSION_GREATER "13")
+    set(VIRTUALENV_ARGS ${VIRTUALENV_ARGS} --no-wheel)
+  endif()
+  if ( NOT "@SimpleITK_PYTHON_EGG@" )
+    set(VIRTUALENV_ARGS ${VIRTUALENV_ARGS} --no-setuptools)
+  endif()
+endif()
+
+#
+# Create the Python virtual environment.
+#
+execute_process(
+  COMMAND ${CMAKE_COMMAND}
+    "-E"
+    "remove_directory"
+    "@PythonVirtualenvHome@"
+  )
+execute_process(
+  COMMAND "@PYTHON_EXECUTABLE@"
+    "@PYTHON_VIRTUALENV_SCRIPT@"
+    "--python=@PYTHON_EXECUTABLE@"
+    ${VIRTUALENV_ARGS}
+    "@PythonVirtualenvHome@"
+  WORKING_DIRECTORY "@SimpleITK_SOURCE_DIR@/Wrapping/Python"
+  RESULT_VARIABLE failed
+  ERROR_VARIABLE error
+  )
+
+if ( failed )
+  message( FATAL_ERROR "Creation of Python virtual enviroment failed.\n${error}" )
+endif()
+
+#
+# Install the SimpleITK Package into the virtual environment.
+#
+message(STATUS "Installing Python Package: SimpleITK")
+
+# The working directory for the installation and packaging with
+# setup.py is very important. As if the setup is run from another
+# directory files will not be correctly execute_process.
+execute_process(
+  COMMAND "@VIRTUAL_PYTHON_EXECUTABLE@" "@CMAKE_CURRENT_BINARY_DIR@/Packaging/setup.py" install
+  WORKING_DIRECTORY "@SimpleITK_Python_BINARY_DIR@"
+  RESULT_VARIABLE failed
+  ERROR_VARIABLE error
+  )
+
+if ( failed )
+  message( FATAL_ERROR "Installation of SimpleITK into Python virutal enviroment failed.\n${error}" )
+endif()
+
+
+if(@BUILD_TESTING@)
+  #
+  # Get Python library directory.
+  #
+  execute_process(
+    COMMAND "@VIRTUAL_PYTHON_EXECUTABLE@" -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"
+    OUTPUT_VARIABLE PythonVirtualenvLib
+    ERROR_VARIABLE error
+    RESULT_VARIABLE failed
+    OUTPUT_STRIP_TRAILING_WHITESPACE
+    )
+
+  if ( failed )
+    message( SEND_ERROR "Determining python library path failed.\n${error}" )
+  endif()
+
+
+
+  #
+  # Manual copy the numpy installation into the virtual environment.
+  #
+  execute_process(
+    COMMAND "@PYTHON_EXECUTABLE@" -c "import numpy; import os; print(os.path.dirname(numpy.__file__))"
+    OUTPUT_VARIABLE numpy_dir
+    ERROR_VARIABLE error
+    RESULT_VARIABLE failed
+    OUTPUT_STRIP_TRAILING_WHITESPACE
+    )
+
+  if( failed )
+    message( WARNING "Failed to determine numpy.__file__ path: \"${error}\"" )
+  else()
+
+    message( STATUS "Installing numpy from ${numpy_dir} to ${PythonVirtualenvLib}/numpy")
+
+    if ( UNIX )
+      execute_process( COMMAND ${CMAKE_COMMAND} -E create_symlink "${numpy_dir}" "${PythonVirtualenvLib}/numpy"
+        RESULT_VARIABLE failed
+        ERROR_VARIABLE error )
+      if ( failed )
+        message( SEND_ERROR ${error} )
+      endif()
+    else ()
+      execute_process( COMMAND ${CMAKE_COMMAND} -E copy_directory "${numpy_dir}" "${PythonVirtualenvLib}/numpy"
+        RESULT_VARIABLE failed
+        ERROR_VARIABLE error )
+      if ( failed )
+        message( SEND_ERROR ${error} )
+      endif()
+    endif ()
+  endif()
+endif()
diff --git a/Wrapping/Python/SimpleITK.i b/Wrapping/Python/SimpleITK.i
new file mode 100644
index 0000000..4be0c1f
--- /dev/null
+++ b/Wrapping/Python/SimpleITK.i
@@ -0,0 +1,3 @@
+%include SimpleITK_Common.i
+
+%include "sitkPyCommand.h"
diff --git a/Wrapping/Python/dist/CMakeLists.txt b/Wrapping/Python/dist/CMakeLists.txt
new file mode 100644
index 0000000..3894421
--- /dev/null
+++ b/Wrapping/Python/dist/CMakeLists.txt
@@ -0,0 +1,40 @@
+#
+# Packaging
+#
+if( SimpleITK_PYTHON_EGG OR SimpleITK_PYTHON_WHEEL )
+  if( NOT SimpleITK_PYTHON_USE_VIRTUALENV )
+    message( STATUS "Not using SimpleITK's virtualenv for distribution!\n
+Using unknown versions of pip, setuptools and/or wheel packages/" )
+  endif()
+
+  set(bdist_setup "${SimpleITK_Python_BINARY_DIR}/Packaging/setupegg.py")
+  set(bdist_commands "")
+
+  if( SimpleITK_PYTHON_EGG )
+    set(bdist_commands "bdist_egg")
+  endif()
+
+  if( SimpleITK_PYTHON_WHEEL )
+    set(bdist_commands ${bdist_commands} "bdist_wheel")
+  endif()
+
+  set( SimpleITK_PYTHON_PLAT_NAME "" CACHE STRING
+    "Optional value passed to setup.py with the '--plat-name' argument")
+
+  if( NOT "${SimpleITK_PYTHON_PLAT_NAME}" STREQUAL "" )
+    set(bdist_commands ${bdist_commands} "--plat-name" "${SimpleITK_PYTHON_PLAT_NAME}")
+  endif()
+
+  add_custom_target( dist.Python
+    ${VIRTUAL_PYTHON_EXECUTABLE} ${bdist_setup} ${bdist_commands}
+    WORKING_DIRECTORY ${SimpleITK_Python_BINARY_DIR}
+    DEPENDS ${SWIG_MODULE_SimpleITKPython_TARGET_NAME}
+    COMMENT "Creating Python binary distribution" )
+
+  if( SimpleITK_PYTHON_USE_VIRTUALENV )
+    add_dependencies( dist.Python PythonVirtualEnv)
+  endif()
+  add_dependencies( dist dist.Python )
+elseif()
+  message( STATUS "Not creating dist.Python target since SimpleITK_FORBID_DOWNLOADS is enabled" )
+endif()
diff --git a/Wrapping/Python/dist/install_wheel.py b/Wrapping/Python/dist/install_wheel.py
new file mode 100644
index 0000000..f4614ea
--- /dev/null
+++ b/Wrapping/Python/dist/install_wheel.py
@@ -0,0 +1,5 @@
+import sys
+
+if not(sys.modules.get("wheel")):
+    from setuptools.command import easy_install
+    easy_install.main(["wheel"])
diff --git a/Wrapping/Python/sitkNumpyArrayConversion.cxx b/Wrapping/Python/sitkNumpyArrayConversion.cxx
new file mode 100644
index 0000000..c960984
--- /dev/null
+++ b/Wrapping/Python/sitkNumpyArrayConversion.cxx
@@ -0,0 +1,339 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+#include <string.h>
+
+#include <numeric>
+#include <functional>
+
+#include "sitkImage.h"
+#include "sitkConditional.h"
+#include "sitkExceptionObject.h"
+
+namespace sitk = itk::simple;
+
+// Python is written in C
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/** An internal function that returns a memoryview object to the
+ * SimpleITK Image's buffer (shallow). The correct copy and writing
+ * policies need to be done by the end-user method.
+ */
+static PyObject *
+sitk_GetMemoryViewFromImage( PyObject *SWIGUNUSEDPARM(self), PyObject *args )
+{
+  const void *                sitkBufferPtr;
+  Py_ssize_t                  len;
+  std::vector< unsigned int > size;
+  size_t                      pixelSize     = 1;
+
+  unsigned int                dimension;
+
+  /* Cast over to a sitk Image. */
+  PyObject *                  pyImage;
+  void *                      voidImage;
+  sitk::Image *               sitkImage;
+  int                         res           = 0;
+
+  PyObject *                  memoryView    = NULL;
+  Py_buffer                   pyBuffer;
+  memset(&pyBuffer, 0, sizeof(Py_buffer));
+
+
+  if( !PyArg_ParseTuple( args, "O", &pyImage ) )
+    {
+    SWIG_fail; // SWIG_fail is a macro that says goto: fail (return NULL)
+    }
+  res = SWIG_ConvertPtr( pyImage, &voidImage, SWIGTYPE_p_itk__simple__Image, 0 );
+  if( !SWIG_IsOK( res ) )
+    {
+    SWIG_exception_fail(SWIG_ArgError(res), "in method 'GetByteArrayFromImage', argument needs to be of type 'sitk::Image *'");
+    }
+  sitkImage = reinterpret_cast< sitk::Image * >( voidImage );
+
+  switch( sitkImage->GetPixelIDValue() )
+    {
+  case sitk::sitkUnknown:
+    PyErr_SetString( PyExc_RuntimeError, "Unknown pixel type." );
+    SWIG_fail;
+    break;
+  case sitk::ConditionalValue< sitk::sitkVectorUInt8 != sitk::sitkUnknown, sitk::sitkVectorUInt8, -14 >::Value:
+  case sitk::ConditionalValue< sitk::sitkUInt8 != sitk::sitkUnknown, sitk::sitkUInt8, -2 >::Value:
+    sitkBufferPtr = (const void *)sitkImage->GetBufferAsUInt8();
+    pixelSize  = sizeof( uint8_t );
+    break;
+  case sitk::ConditionalValue< sitk::sitkVectorInt8 != sitk::sitkUnknown, sitk::sitkVectorInt8, -15 >::Value:
+  case sitk::ConditionalValue< sitk::sitkInt8 != sitk::sitkUnknown, sitk::sitkInt8, -3 >::Value:
+    sitkBufferPtr = (const void *)sitkImage->GetBufferAsInt8();
+    pixelSize  = sizeof( int8_t );
+    break;
+  case sitk::ConditionalValue< sitk::sitkVectorUInt16 != sitk::sitkUnknown, sitk::sitkVectorUInt16, -16 >::Value:
+  case sitk::ConditionalValue< sitk::sitkUInt16 != sitk::sitkUnknown, sitk::sitkUInt16, -4 >::Value:
+    sitkBufferPtr = (const void *)sitkImage->GetBufferAsUInt16();
+    pixelSize  = sizeof( uint16_t );
+    break;
+  case sitk::ConditionalValue< sitk::sitkVectorInt16 != sitk::sitkUnknown, sitk::sitkVectorInt16, -17 >::Value:
+  case sitk::ConditionalValue< sitk::sitkInt16 != sitk::sitkUnknown, sitk::sitkInt16, -5 >::Value:
+    sitkBufferPtr = (const void *)sitkImage->GetBufferAsInt16();
+    pixelSize  = sizeof( int16_t );
+    break;
+  case sitk::ConditionalValue< sitk::sitkVectorUInt32 != sitk::sitkUnknown, sitk::sitkVectorUInt32, -18 >::Value:
+  case sitk::ConditionalValue< sitk::sitkUInt32 != sitk::sitkUnknown, sitk::sitkUInt32, -6 >::Value:
+    sitkBufferPtr = (const void *)sitkImage->GetBufferAsUInt32();
+    pixelSize  = sizeof( uint32_t );
+    break;
+  case sitk::ConditionalValue< sitk::sitkVectorInt32 != sitk::sitkUnknown, sitk::sitkVectorInt32, -19 >::Value:
+  case sitk::ConditionalValue< sitk::sitkInt32 != sitk::sitkUnknown, sitk::sitkInt32, -7 >::Value:
+    sitkBufferPtr = (const void *)sitkImage->GetBufferAsInt32();
+    pixelSize  = sizeof( int32_t );
+    break;
+  case sitk::ConditionalValue< sitk::sitkVectorUInt64 != sitk::sitkUnknown, sitk::sitkVectorUInt64, -20 >::Value:
+  case sitk::ConditionalValue< sitk::sitkUInt64 != sitk::sitkUnknown, sitk::sitkUInt64, -8 >::Value:
+    sitkBufferPtr = (const void *)sitkImage->GetBufferAsUInt64();
+    pixelSize  = sizeof( uint64_t );
+    break;
+  case sitk::ConditionalValue< sitk::sitkVectorInt64 != sitk::sitkUnknown, sitk::sitkVectorInt64, -21 >::Value:
+  case sitk::ConditionalValue< sitk::sitkInt64 != sitk::sitkUnknown, sitk::sitkInt64, -9 >::Value:
+     sitkBufferPtr = (const void *)sitkImage->GetBufferAsInt64();
+     pixelSize  = sizeof( int64_t );
+     break;
+  case sitk::ConditionalValue< sitk::sitkVectorFloat32 != sitk::sitkUnknown, sitk::sitkVectorFloat32, -22 >::Value:
+  case sitk::ConditionalValue< sitk::sitkFloat32 != sitk::sitkUnknown, sitk::sitkFloat32, -10 >::Value:
+    sitkBufferPtr = (const void *)sitkImage->GetBufferAsFloat();
+    pixelSize  = sizeof( float );
+    break;
+  case sitk::ConditionalValue< sitk::sitkVectorFloat64 != sitk::sitkUnknown, sitk::sitkVectorFloat64, -23 >::Value:
+  case sitk::ConditionalValue< sitk::sitkFloat64 != sitk::sitkUnknown, sitk::sitkFloat64, -11 >::Value:
+    sitkBufferPtr = (const void *)sitkImage->GetBufferAsDouble(); // \todo rename to Float64 for consistency
+    pixelSize  = sizeof( double );
+    break;
+  case sitk::ConditionalValue< sitk::sitkComplexFloat32 != sitk::sitkUnknown, sitk::sitkComplexFloat32, -12 >::Value:
+  case sitk::ConditionalValue< sitk::sitkComplexFloat64 != sitk::sitkUnknown, sitk::sitkComplexFloat64, -13 >::Value:
+    PyErr_SetString( PyExc_RuntimeError, "Images of Complex Pixel types currently are not supported." );
+    SWIG_fail;
+    break;
+  default:
+    PyErr_SetString( PyExc_RuntimeError, "Unknown pixel type." );
+    SWIG_fail;
+    }
+
+  dimension = sitkImage->GetDimension();
+  size = sitkImage->GetSize();
+
+  // if the image is a vector just treat is as another dimension
+  if ( sitkImage->GetNumberOfComponentsPerPixel() > 1 )
+    {
+    size.push_back( sitkImage->GetNumberOfComponentsPerPixel() );
+    }
+
+  len = std::accumulate( size.begin(), size.end(), size_t(1), std::multiplies<size_t>() );
+  len *= pixelSize;
+
+  if (PyBuffer_FillInfo(&pyBuffer, NULL, (void*)sitkBufferPtr, len, true, PyBUF_CONTIG_RO)!=0)
+    {
+    SWIG_fail;
+    }
+  memoryView = PyMemoryView_FromBuffer(&pyBuffer);
+
+  PyBuffer_Release(&pyBuffer);
+  return memoryView;
+
+fail:
+  Py_XDECREF( memoryView );
+  return NULL;
+}
+
+/** An internal function that performs a deep copy of the image buffer
+ * into a python byte array. The byte array can later be converted
+ * into a numpy array with the frombuffer method.
+ */
+static PyObject*
+sitk_SetImageFromArray( PyObject *SWIGUNUSEDPARM(self), PyObject *args )
+{
+  PyObject * pyImage = NULL;
+
+  const void *buffer;
+  Py_ssize_t buffer_len;
+  Py_buffer  pyBuffer;
+  memset(&pyBuffer, 0, sizeof(Py_buffer));
+
+  const sitk::Image * sitkImage = NULL;
+  void * sitkBufferPtr = NULL;
+  size_t pixelSize = 1;
+
+  unsigned int dimension = 0;
+  std::vector< unsigned int > size;
+  size_t len = 1;
+
+  // We wish to support both the new PEP3118 buffer interface and the
+  // older. So we first try to parse the arguments with the new buffer
+  // protocol, then the old.
+  if (!PyArg_ParseTuple( args, "s*O", &pyBuffer, &pyImage ) )
+    {
+    PyErr_Clear();
+
+#ifdef PY_SSIZE_T_CLEAN
+    typedef Py_ssize_t bufSizeType;
+#else
+    typedef int bufSizeType;
+#endif
+
+    bufSizeType _len;
+    // This function takes 2 arguments from python, the first is an
+    // python object which support the old "ReadBuffer" interface
+    if( !PyArg_ParseTuple( args, "s#O", &buffer, &_len, &pyImage ) )
+      {
+      return NULL;
+      }
+    buffer_len = _len;
+    }
+  else
+    {
+    if ( PyBuffer_IsContiguous( &pyBuffer, 'C' ) != 1 )
+      {
+      PyBuffer_Release( &pyBuffer );
+      PyErr_SetString( PyExc_TypeError, "A C Contiguous buffer object is required." );
+      return NULL;
+      }
+    buffer_len = pyBuffer.len;
+    buffer = pyBuffer.buf;
+    }
+
+  /* Cast over to a sitk Image. */
+  {
+    void * voidImage;
+    int res = 0;
+    res = SWIG_ConvertPtr( pyImage, &voidImage, SWIGTYPE_p_itk__simple__Image, 0 );
+    if( !SWIG_IsOK( res ) )
+      {
+      SWIG_exception_fail(SWIG_ArgError(res), "in method 'SetImageFromArray', argument needs to be of type 'sitk::Image *'");
+      }
+    sitkImage = reinterpret_cast< sitk::Image * >( voidImage );
+  }
+
+  try
+    {
+    switch( sitkImage->GetPixelIDValue() )
+      {
+      case sitk::sitkUnknown:
+        PyErr_SetString( PyExc_RuntimeError, "Unknown pixel type." );
+        goto fail;
+        break;
+      case sitk::ConditionalValue< sitk::sitkVectorUInt8 != sitk::sitkUnknown, sitk::sitkVectorUInt8, -14 >::Value:
+      case sitk::ConditionalValue< sitk::sitkUInt8 != sitk::sitkUnknown, sitk::sitkUInt8, -2 >::Value:
+        sitkBufferPtr = (void *)sitkImage->GetBufferAsUInt8();
+        pixelSize  = sizeof( uint8_t );
+        break;
+      case sitk::ConditionalValue< sitk::sitkVectorInt8 != sitk::sitkUnknown, sitk::sitkVectorInt8, -15 >::Value:
+      case sitk::ConditionalValue< sitk::sitkInt8 != sitk::sitkUnknown, sitk::sitkInt8, -3 >::Value:
+        sitkBufferPtr = (void *)sitkImage->GetBufferAsInt8();
+        pixelSize  = sizeof( int8_t );
+        break;
+      case sitk::ConditionalValue< sitk::sitkVectorUInt16 != sitk::sitkUnknown, sitk::sitkVectorUInt16, -16 >::Value:
+      case sitk::ConditionalValue< sitk::sitkUInt16 != sitk::sitkUnknown, sitk::sitkUInt16, -4 >::Value:
+        sitkBufferPtr = (void *)sitkImage->GetBufferAsUInt16();
+        pixelSize  = sizeof( uint16_t );
+        break;
+      case sitk::ConditionalValue< sitk::sitkVectorInt16 != sitk::sitkUnknown, sitk::sitkVectorInt16, -17 >::Value:
+      case sitk::ConditionalValue< sitk::sitkInt16 != sitk::sitkUnknown, sitk::sitkInt16, -5 >::Value:
+        sitkBufferPtr = (void *)sitkImage->GetBufferAsInt16();
+        pixelSize  = sizeof( int16_t );
+        break;
+      case sitk::ConditionalValue< sitk::sitkVectorUInt32 != sitk::sitkUnknown, sitk::sitkVectorUInt32, -18 >::Value:
+      case sitk::ConditionalValue< sitk::sitkUInt32 != sitk::sitkUnknown, sitk::sitkUInt32, -6 >::Value:
+        sitkBufferPtr = (void *)sitkImage->GetBufferAsUInt32();
+        pixelSize  = sizeof( uint32_t );
+        break;
+      case sitk::ConditionalValue< sitk::sitkVectorInt32 != sitk::sitkUnknown, sitk::sitkVectorInt32, -19 >::Value:
+      case sitk::ConditionalValue< sitk::sitkInt32 != sitk::sitkUnknown, sitk::sitkInt32, -7 >::Value:
+        sitkBufferPtr = (void *)sitkImage->GetBufferAsInt32();
+        pixelSize  = sizeof( int32_t );
+        break;
+      case sitk::ConditionalValue< sitk::sitkVectorUInt64 != sitk::sitkUnknown, sitk::sitkVectorUInt64, -20 >::Value:
+      case sitk::ConditionalValue< sitk::sitkUInt64 != sitk::sitkUnknown, sitk::sitkUInt64, -8 >::Value:
+        sitkBufferPtr = (void *)sitkImage->GetBufferAsUInt64();
+        pixelSize  = sizeof( uint64_t );
+        break;
+      case sitk::ConditionalValue< sitk::sitkVectorInt64 != sitk::sitkUnknown, sitk::sitkVectorInt64, -21 >::Value:
+      case sitk::ConditionalValue< sitk::sitkInt64 != sitk::sitkUnknown, sitk::sitkInt64, -9 >::Value:
+        sitkBufferPtr = (void *)sitkImage->GetBufferAsInt64();
+        pixelSize  = sizeof( int64_t );
+        break;
+      case sitk::ConditionalValue< sitk::sitkVectorFloat32 != sitk::sitkUnknown, sitk::sitkVectorFloat32, -22 >::Value:
+      case sitk::ConditionalValue< sitk::sitkFloat32 != sitk::sitkUnknown, sitk::sitkFloat32, -10 >::Value:
+        sitkBufferPtr = (void *)sitkImage->GetBufferAsFloat();
+        pixelSize  = sizeof( float );
+        break;
+      case sitk::ConditionalValue< sitk::sitkVectorFloat64 != sitk::sitkUnknown, sitk::sitkVectorFloat64, -23 >::Value:
+      case sitk::ConditionalValue< sitk::sitkFloat64 != sitk::sitkUnknown, sitk::sitkFloat64, -11 >::Value:
+        sitkBufferPtr = (void *)sitkImage->GetBufferAsDouble(); // \todo rename to Float64 for consistency
+        pixelSize  = sizeof( double );
+        break;
+      case sitk::ConditionalValue< sitk::sitkComplexFloat32 != sitk::sitkUnknown, sitk::sitkComplexFloat32, -12 >::Value:
+      case sitk::ConditionalValue< sitk::sitkComplexFloat64 != sitk::sitkUnknown, sitk::sitkComplexFloat64, -13 >::Value:
+        PyErr_SetString( PyExc_RuntimeError, "Images of Complex Pixel types currently are not supported." );
+        goto fail;
+        break;
+      default:
+        PyErr_SetString( PyExc_RuntimeError, "Unknown pixel type." );
+        goto fail;
+      }
+    }
+  catch( const std::exception &e )
+    {
+    std::string msg = "Exception thrown in SimpleITK new Image: ";
+    msg += e.what();
+    PyErr_SetString( PyExc_RuntimeError, msg.c_str() );
+    goto fail;
+    }
+
+
+  dimension = sitkImage->GetDimension();
+  size = sitkImage->GetSize();
+
+  // if the image is a vector just treat is as another dimension
+  if ( sitkImage->GetNumberOfComponentsPerPixel() > 1 )
+    {
+    size.push_back( sitkImage->GetNumberOfComponentsPerPixel() );
+    }
+
+  len = std::accumulate( size.begin(), size.end(), size_t(1), std::multiplies<size_t>() );
+  len *= pixelSize;
+
+  if ( buffer_len != len )
+    {
+    PyErr_SetString( PyExc_RuntimeError, "Size mismatch of image and Buffer." );
+    goto fail;
+    }
+
+  memcpy( (void *)sitkBufferPtr, buffer, len );
+
+
+  PyBuffer_Release( &pyBuffer );
+  Py_RETURN_NONE;
+
+fail:
+  PyBuffer_Release( &pyBuffer );
+  return NULL;
+}
+
+#ifdef __cplusplus
+} // end extern "C"
+#endif
diff --git a/Wrapping/Python/sitkPyCommand.cxx b/Wrapping/Python/sitkPyCommand.cxx
new file mode 100644
index 0000000..af3c865
--- /dev/null
+++ b/Wrapping/Python/sitkPyCommand.cxx
@@ -0,0 +1,142 @@
+/*=========================================================================
+ *
+ *  Copyright Insight Software Consortium
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *         http://www.apache.org/licenses/LICENSE-2.0.txt
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ *=========================================================================*/
+
+// The python header defines _POSIX_C_SOURCE without a preceding #undef
+#undef _POSIX_C_SOURCE
+#undef _XOPEN_SOURCE
+#include <sitkPython.h>
+
+#include "sitkPyCommand.h"
+#include "sitkExceptionObject.h"
+
+#include <iostream>
+
+namespace
+{
+// Wrapper to automatics obtain and release GIL
+// RAII idiom
+class PyGILStateEnsure
+{
+public:
+  PyGILStateEnsure()
+    {
+      m_GIL = PyGILState_Ensure();
+    }
+  ~PyGILStateEnsure()
+    {
+      PyGILState_Release(m_GIL);
+    }
+private:
+  PyGILState_STATE m_GIL;
+};
+
+}
+
+namespace itk
+{
+namespace simple
+{
+
+
+PyCommand::PyCommand()
+  : m_Object(NULL)
+{
+}
+
+PyCommand::~PyCommand()
+{
+  if (this->m_Object)
+    {
+    PyGILStateEnsure gil;
+    Py_DECREF(this->m_Object);
+    }
+  this->m_Object = NULL;
+}
+
+void PyCommand::SetCallbackPyCallable(PyObject *o)
+{
+  if (o != this->m_Object)
+    {
+    PyGILStateEnsure gil;
+    if (this->m_Object)
+      {
+      // get rid of our reference
+      Py_DECREF(this->m_Object);
+      }
+
+    // store the new object
+    this->m_Object = o;
+
+    if (this->m_Object)
+      {
+      // take out reference (so that the calling code doesn't
+      // have to keep a binding to the callable around)
+      Py_INCREF(this->m_Object);
+      }
+    }
+}
+
+PyObject * PyCommand::GetCallbackPyCallable()
+{
+  return this->m_Object;
+}
+
+void PyCommand::Execute()
+{
+  // if null do nothing
+  if (!this->m_Object)
+    {
+    return;
+    }
+
+  // make sure that the CommandCallable is in fact callable
+  if (!PyCallable_Check(this->m_Object))
+    {
+    // we throw a standard ITK exception: this makes it possible for
+    // our standard CableSwig exception handling logic to take this
+    // through to the invoking Python process
+    sitkExceptionMacro(<<"Python Callable is not a callable Python object, "
+                       <<"or it has not been set.");
+    }
+  else
+    {
+    PyGILStateEnsure gil;
+
+    PyObject *result;
+
+    result = PyObject_CallObject(this->m_Object, (PyObject *)NULL);
+
+    if (result)
+      {
+      Py_DECREF(result);
+      }
+    else
+      {
+      // there was a Python error.  Clear the error by printing to stdout
+      PyErr_Print();
+      // make sure the invoking Python code knows there was a problem
+      // by raising an exception
+      sitkExceptionMacro(<<"There was an error executing the "
+                         <<"Python Callable.");
+      }
+    }
+}
+
+
+} // namespace simple
+} // namespace itk
diff --git a/Wrapping/Python/sitkPyCommand.h b/Wrapping/Python/sitkPyCommand.h
new file mode 100644
index 0000000..6a2dd52
--- /dev/null
+++ b/Wrapping/Python/sitkPyCommand.h
@@ -0,0 +1,81 @@
+/*=========================================================================
+ *
+ *  Copyright Insight Software Consortium
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *         http://www.apache.org/licenses/LICENSE-2.0.txt
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ *=========================================================================*/
+
+#ifndef sitkPyCommand_h
+#define sitkPyCommand_h
+
+#include "sitkCommand.h"
+
+
+
+#ifndef PyObject_HEAD
+struct _object;
+typedef _object PyObject;
+#endif
+
+namespace itk
+{
+namespace simple
+{
+
+/** \class PyCommand
+ *  \brief Command subclass that calls a Python callable object, e.g.
+ *  a Python function.
+ *
+ * With this class, arbitrary Python callable objects (e.g. functions)
+ * can be associated with an instance to be used in AddObserver calls.
+ *
+ * Based of the WrapITK itkPyCommand class originally contributed by
+ * Charl P. Botha <cpbotha |AT| ieee.org>.
+ */
+class PyCommand
+  : public itk::simple::Command
+{
+public:
+  typedef Command   Super;
+
+  PyCommand();
+  ~PyCommand();
+
+  /**
+   * Assign a Python callable object to be used.  You don't have to keep
+   * a binding to the callable, PyCommand will also take out a reference
+   * to make sure the Callable sticks around.
+   */
+  void SetCallbackPyCallable(PyObject *obj);
+
+  PyObject * GetCallbackPyCallable();
+
+  virtual void Execute(void);
+
+  #ifndef SWIG
+  // export for access in the custom ProcessObject method for callables
+  using Super::SetOwnedByProcessObjects;
+  using Super::GetOwnedByProcessObjects;
+  using Super::OwnedByProcessObjectsOn;
+  using Super::OwnedByProcessObjectsOff;
+  #endif
+
+private:
+  PyObject *m_Object;
+};
+
+} // namespace simple
+} // namespace itk
+
+#endif // _sitkPyCommand_h
diff --git a/Wrapping/Python/sitkPython.h b/Wrapping/Python/sitkPython.h
new file mode 100644
index 0000000..dacdd2f
--- /dev/null
+++ b/Wrapping/Python/sitkPython.h
@@ -0,0 +1,82 @@
+/*=========================================================================
+
+  Source: Visualization Toolkit
+
+  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
+  All rights reserved.
+  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
+
+     This software is distributed WITHOUT ANY WARRANTY; without even
+     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+     PURPOSE.  See the above copyright notice for more information.
+
+=========================================================================*/
+#ifndef __sitkPython_h
+#define __sitkPython_h
+
+/*
+   Use the real python debugging library if it is provided.
+   Otherwise use the "documented" trick involving checking for _DEBUG
+   and undefined that symbol while we include Python headers.
+   Update: this method does not fool Microsoft Visual C++ 8 anymore; two
+   of its header files (crtdefs.h and use_ansi.h) check if _DEBUG was set
+   or not, and set flags accordingly (_CRT_MANIFEST_RETAIL,
+   _CRT_MANIFEST_DEBUG, _CRT_MANIFEST_INCONSISTENT). The next time the
+   check is performed in the same compilation unit, and the flags are found,
+   and error is triggered. Let's prevent that by setting _CRT_NOFORCE_MANIFEST.
+*/
+#if defined(_DEBUG) && defined(SWIG_PYTHON_INTERPRETER_NO_DEBUG)
+# define SITK_PYTHON_UNDEF_DEBUG
+// Include these low level headers before undefing _DEBUG. Otherwise when doing
+// a debug build against a release build of python the compiler will end up
+// including these low level headers without DEBUG enabled, causing it to try
+// and link release versions of this low level C api.
+# include <basetsd.h>
+# include <assert.h>
+# include <ctype.h>
+# include <errno.h>
+# include <io.h>
+# include <math.h>
+# include <stdarg.h>
+# include <stddef.h>
+# include <stdio.h>
+# include <stdlib.h>
+# include <string.h>
+# include <sys/stat.h>
+# include <time.h>
+# include <wchar.h>
+# undef _DEBUG
+# if defined(_MSC_VER) && _MSC_VER >= 1400
+#  define _CRT_NOFORCE_MANIFEST 1
+# endif
+#endif
+
+/* We used to try to #undef feature macros that Python.h defines
+to avoid re-definition warnings.  However, such warnings usually
+indicate a violation of Python's documented inclusion policy:
+
+ "Since Python may define some pre-processor definitions which
+  affect the standard headers on some systems, you must include
+  Python.h before any standard headers are included."
+ (http://docs.python.org/c-api/intro.html#include-files)
+
+To avoid re-definitions warnings, ensure "sitkPython.h" is included
+before _any_ headers that define feature macros, whether or not
+they are system headers.  Do NOT add any #undef lines here.  */
+
+#if defined(_MSC_VER)
+# pragma warning (push, 1)
+#endif
+
+#include <Python.h>
+
+#if defined(_MSC_VER)
+# pragma warning (pop)
+#endif
+
+#ifdef SITK_PYTHON_UNDEF_DEBUG
+# define _DEBUG
+# undef SITK_PYTHON_UNDEF_DEBUG
+#endif
+
+#endif
diff --git a/Wrapping/R/CMakeLists.txt b/Wrapping/R/CMakeLists.txt
new file mode 100644
index 0000000..2182495
--- /dev/null
+++ b/Wrapping/R/CMakeLists.txt
@@ -0,0 +1,134 @@
+cmake_minimum_required ( VERSION 2.8.1 FATAL_ERROR )
+
+project( SimpleITK_R )
+
+include(../../CMake/sitkProjectLanguageCommon.cmake NO_POLICY_SCOPE)
+
+find_package ( R REQUIRED )
+include_directories ( ${SimpleITK_INCLUDE_DIRS} )
+
+set_source_files_properties ( SimpleITK.i PROPERTIES CPLUSPLUS ON )
+
+# Run swig
+set(CMAKE_SWIG_FLAGS ${CMAKE_SWIG_GLOBAL_FLAGS})
+set(CMAKE_SWIG_OUTDIR ${CMAKE_CURRENT_BINARY_DIR})
+set(SWIG_MODULE_SimpleITK_EXTRA_DEPS ${SWIG_EXTRA_DEPS} ${CMAKE_CURRENT_SOURCE_DIR}/R.i )
+SWIG_add_module ( SimpleITK r SimpleITK.i sitkRCommand.cxx sitkRArray.cxx )
+target_link_libraries ( ${SWIG_MODULE_SimpleITK_TARGET_NAME} ${SimpleITK_LIBRARIES} )
+
+sitk_target_link_libraries_with_dynamic_lookup ( ${SWIG_MODULE_SimpleITK_TARGET_NAME} ${R_LIBRARIES} )
+
+target_include_directories( ${SWIG_MODULE_SimpleITK_TARGET_NAME}
+  PRIVATE
+    ${R_INCLUDE_DIR} )
+target_include_directories( ${SWIG_MODULE_SimpleITK_TARGET_NAME}
+  PRIVATE
+    ${CMAKE_CURRENT_SOURCE_DIR} )
+
+set_source_files_properties(${swig_generated_file_fullname} PROPERTIES COMPILE_FLAGS "-w")
+
+# set the output directory for the R library to the binary packaging location
+set_target_properties( ${SWIG_MODULE_SimpleITK_TARGET_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Packaging/SimpleITK/src/)
+
+sitk_strip_target( ${SWIG_MODULE_SimpleITK_TARGET_NAME} )
+set(SWIG_MODULE_SimpleITKR_TARGET_NAME "${SWIG_MODULE_SimpleITK_TARGET_NAME}")
+
+
+if (WIN32)
+  execute_process(COMMAND "cmd" " /C date /T" OUTPUT_VARIABLE DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
+  string(REGEX REPLACE "(..)/(..)/(....).*" "\\3-\\2-\\1" ${DATE} DATE)
+elseif(UNIX)
+  execute_process(COMMAND "date" "+%Y-%m-%d" OUTPUT_VARIABLE DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
+else()
+  message(WARNING "date not implemented")
+  set(DATE 00-00-0000)
+endif()
+
+# copy the R files a binary package
+file( COPY "${CMAKE_CURRENT_SOURCE_DIR}/Packaging"
+  DESTINATION "${CMAKE_CURRENT_BINARY_DIR}"
+  REGEX "(.*\\.in)|(.*\\.md5)" EXCLUDE )
+
+
+set(SimpleITKR_VERSION "${SimpleITK_VERSION_MAJOR}.${SimpleITK_VERSION_MINOR}")
+if(DEFINED SimpleITK_VERSION_PATCH)
+  set(SimpleITKR_VERSION "${SimpleITKR_VERSION}.${SimpleITK_VERSION_PATCH}")
+  if(DEFINED SimpleITK_VERSION_TWEAK)
+    set(SimpleITKR_VERSION "${SimpleITKR_VERSION}.${SimpleITK_VERSION_TWEAK}")
+  endif()
+endif()
+if(DEFINED SimpleITK_VERSION_POST)
+  set(SimpleITKR_VERSION "${SimpleITKR_VERSION}-${SimpleITK_VERSION_POST}")
+elseif(DEFINED SimpleITK_VERSION_DEV)
+  math(EXPR DEV "9000 + ${SimpleITK_VERSION_DEV}")
+  set(SimpleITKR_VERSION "${SimpleITKR_VERSION}-${DEV}")
+endif()
+
+configure_file(
+    "${CMAKE_CURRENT_SOURCE_DIR}/Packaging/SimpleITK/DESCRIPTION.in"
+    "${CMAKE_CURRENT_BINARY_DIR}/Packaging/SimpleITK/DESCRIPTION"
+    @ONLY )
+
+# download sample images and tar of Rd files, if allowed
+if(NOT SimpleITK_FORBID_DOWNLOADS)
+  include(sitkExternalData)
+
+
+  file( GLOB_RECURSE image_links RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/Packaging/SimpleITK/data/*.md5" )
+
+  foreach(link ${image_links})
+    string( REGEX REPLACE "\\.md5$" "" link ${link} )
+    ExternalData_Expand_Arguments(  SimpleITKRpackageData
+      image_location
+      DATA{${link}}
+      )
+    set( COPY_DATA_COMMAND ${COPY_DATA_COMMAND} COMMAND ${CMAKE_COMMAND} -E copy ${image_location} ${CMAKE_CURRENT_BINARY_DIR}/Packaging/SimpleITK/data/ )
+  endforeach()
+
+
+  # The downloaded tar ball of documentation has been generated with
+  # the "Utilities/GenerateDocs/SwigDocUpdate.sh". This documentation
+  # should be generated for each release.
+  file( GLOB_RECURSE doc_links RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/Packaging/SimpleITK/man/*.md5" )
+
+  foreach(link ${doc_links})
+    string( REGEX REPLACE "\\.md5$" "" link ${link} )
+    ExternalData_Expand_Arguments(  SimpleITKRpackageData
+      doc_location
+      DATA{${link}}
+      )
+    set( EXTRACT_RMAN_COMMAND  ${EXTRACT_RMAN_COMMAND} COMMAND ${CMAKE_COMMAND} -E tar xzf ${doc_location}
+      WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/Packaging/SimpleITK/man/" )
+  endforeach()
+
+
+  if(COMMAND ExternalData_Add_Target )
+    ExternalData_Add_Target( SimpleITKRpackageData )
+  endif()
+  add_dependencies( ${SWIG_MODULE_SimpleITK_TARGET_NAME} SimpleITKRpackageData )
+
+  # copy sample images and extract documentation - used in vignette
+  add_custom_command( TARGET ${SWIG_MODULE_SimpleITK_TARGET_NAME}
+    PRE_BUILD
+      ${COPY_DATA_COMMAND}
+      ${EXTRACT_RMAN_COMMAND}
+    )
+
+endif()
+
+if(BUILD_SHARED_LIBS AND DEFINED SimpleITK_LIBRARY_OUTPUT_DIRECTORY)
+  if(TARGET itkTestDriver)
+    set(CMD_PREFIX itkTestDriver --add-before-libpath "${SimpleITK_LIBRARY_OUTPUT_DIRECTORY}")
+  else()
+    message(WARNING "Unable to use \"itkTestDriver\" to set run-time library patch for R packaging.")
+  endif()
+endif()
+
+add_custom_command( TARGET ${SWIG_MODULE_SimpleITK_TARGET_NAME}
+  POST_BUILD
+  COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/R_libs
+  COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/SimpleITK.R ${CMAKE_CURRENT_BINARY_DIR}/Packaging/SimpleITK/R/
+  # install for running tests and create binary package
+  COMMAND ${CMD_PREFIX} ${R_COMMAND} CMD INSTALL --build ${CMAKE_CURRENT_BINARY_DIR}/Packaging/SimpleITK --library=${CMAKE_CURRENT_BINARY_DIR}/R_libs --no-multiarch
+  COMMENT "Installing R package for testing and building binary version for distribution"
+  )
diff --git a/Wrapping/R/Packaging/SimpleITK/DESCRIPTION.in b/Wrapping/R/Packaging/SimpleITK/DESCRIPTION.in
new file mode 100644
index 0000000..0770739
--- /dev/null
+++ b/Wrapping/R/Packaging/SimpleITK/DESCRIPTION.in
@@ -0,0 +1,17 @@
+Package: SimpleITK
+Version: @SimpleITKR_VERSION@
+Date: @DATE@
+Title: Bindings to SimpleITK Image segmentation and registration toolkit.
+Authors at R: c(person("Richard", "Beare", role = c("aut", "cre"),
+                      email = "Richard.Beare at ieee.org"),
+                   person("Bradley", "Lowekamp", role = "cre",
+                     email = "blowekamp at mail.nih.gov"))
+Author: Richard Beare, Bradley Lowekamp, plus loads of others
+Depends: R (>= 2.14), methods
+Description: This package is an interface to SimpleITK, which is a simplified
+     interface to the Insight Toolkit (ITKv at ITK_VERSION_MAJOR@. at ITK_VERSION_MINOR@. at ITK_VERSION_PATCH@) for medical image segmentation
+     and registration.
+License: Apache 2.0
+URL: http://www.simpleitk.org, https://www.itk.org
+BugReports: https://issues.itk.org
+Maintainer: Richard Beare <Richard.Beare at ieee.org>
diff --git a/Wrapping/R/Packaging/SimpleITK/NAMESPACE b/Wrapping/R/Packaging/SimpleITK/NAMESPACE
new file mode 100644
index 0000000..072671f
--- /dev/null
+++ b/Wrapping/R/Packaging/SimpleITK/NAMESPACE
@@ -0,0 +1 @@
+exportPattern( "." )
diff --git a/Wrapping/R/Packaging/SimpleITK/R/zA.R b/Wrapping/R/Packaging/SimpleITK/R/zA.R
new file mode 100644
index 0000000..6a648c5
--- /dev/null
+++ b/Wrapping/R/Packaging/SimpleITK/R/zA.R
@@ -0,0 +1,249 @@
+redefineEnumeration <- function(enumerationName, the.function)
+{
+    current.enum <- get(paste(".__E__", enumerationName, sep = ""))
+    the.names <- names(current.enum)
+    values <- sapply(the.names, the.function)
+
+    if (any(values== -99))
+    {
+        warning("Some enumeration names are not recognised\n")
+    }
+    names(values) <- the.names
+    defineEnumeration(enumerationName, values)
+}
+
+.onLoad <- function(lib,pkg) {
+  library.dynam("SimpleITK",pkg,lib)
+  redefineEnumeration('_itk__simple__PixelIDValueEnum', GetPixelIDValueFromString)
+
+  createPixLookup()
+}
+
+createPixLookup <- function( where = topenv(parent.frame()))
+{
+    m <- get(".__E___itk__simple__PixelIDValueEnum")
+    # get rid of unknown type - can't access anyway. There will be errors if
+    # it happens.
+    # Also need to map Float32 to Float and Float64 to Double
+    m <- m[m>=0]
+    n <- names(m)
+    # Turn the names into function names
+    ff <- gsub("^sitk(.+)", "Image_GetPixelAs\\1", n)
+    ff <- gsub("AsFloat32$", "AsFloat", ff)
+    ff <- gsub("AsFloat64$", "AsDouble", ff)
+    ff <- gsub("Label", "", ff)
+    sitkPixelAccessMap <-  mget(ff, envir=where,
+                                ifnotfound=rep(NA,length(ff)))
+    ff2 <- gsub("GetPixelAs", "SetPixelAs", ff)
+    sitkPixelSetMap <- mget(ff2, envir=where,
+                                ifnotfound=rep(NA,length(ff)))
+
+    names(sitkPixelAccessMap) <- n
+    names(sitkPixelSetMap) <- n
+    assign("sitkPixelAccessMap", sitkPixelAccessMap, envir=where)
+    assign("sitkPixelSetMap", sitkPixelSetMap, envir=where)
+}
+
+ImportPixVec <- function(VP)
+{
+    ## some pixel vectors aren't automatically converted to
+    ## R vectors, so we'll do it the long way to avoid having to
+    ## write new swig fragments dealing with
+
+    ## some pixel vectors work as expected - return them
+    if (is.numeric(VP)) return(VP)
+
+    l <- VP$'__len__'()
+    res <- rep(NA, l)
+    for (idx in 1:l) {
+        res[idx] <- VP$'__getitem__'(idx-1)
+    }
+    return(res)
+}
+
+## SetPixel and GetPixel methods. We've provided dummy "extends" methods for these.
+## We'll overwite the bindings here
+Image_SetPixel = function(self, idx, v)
+{
+  idx = as.integer(idx);
+  ## check that the size of v matches the image pixel type
+  if (Image_GetNumberOfComponentsPerPixel(self) != length(v))
+  {
+      ## It seems that passing incorrect size values doesn't
+      ## cause a c++ error, so check here. Swig must
+      ## cleverly pass just the first element.
+      stop("Error in SetPixel - value does not match image depth")
+  }
+  PixType <- Image_GetPixelID(self)
+  sF <- sitkPixelSetMap[[PixType]]
+  if (!is.null(sF)) {
+      invisible(sF(self, idx, v))
+  } else {
+      stop("Error in SetPixel - no accessor function for this pixel type")
+  }
+}
+
+attr(`Image_SetPixel`, 'returnType') = 'void'
+attr(`Image_SetPixel`, "inputTypes") = c('_p_itk__simple__Image', 'integer', 'numeric')
+class(`Image_SetPixel`) = c("SWIGFunction", class('Image_SetPixel'))
+
+Image_GetPixel = function(self, idx, .copy = FALSE)
+{
+  idx = as.integer(idx);
+  PixType <- Image_GetPixelID(self)
+  aF <- sitkPixelAccessMap[[PixType]]
+  if (!is.null(aF)) {
+      return(aF(self, idx))
+  } else {
+      stop("Error in GetPixel - no accessor function for this pixel type")
+  }
+}
+
+attr(`Image_GetPixel`, 'returnType') = 'numeric'
+attr(`Image_GetPixel`, "inputTypes") = c('_p_itk__simple__Image', 'integer')
+class(`Image_GetPixel`) = c("SWIGFunction", class('Image_GetPixel'))
+
+## experimental bracket operator for images
+setMethod('[',
+          signature=c(x="_p_itk__simple__Image", i="ANY", j="ANY"),
+          function(x,i, j, ..., drop=TRUE) {
+              m <- sys.call()
+              args = as.list(m[-c(1L, 2L)])
+              numIndices = length(args) - !is.null(args$drop)
+              imdim <- Image_GetDimension(x)
+              if (numIndices < imdim)
+              {
+                  stop("Image has more dimensions")
+              }
+              imsize <- rep(1, 5)
+              imsize[1:imdim] <- Image_GetSize(x)
+              if (missing(i)) {
+                  i <- 1:imsize[1]
+              } else {
+                  i <- (1:imsize[1])[i]
+              }
+              if (missing(j)) {
+                  j <- 1:imsize[2]
+              } else {
+                  j <- (1:imsize[2])[j]
+              }
+              if (numIndices >= 3) {
+                  k <- args[[3]]
+                  if (missing(k)) {
+                      k <- 1:imsize[3]
+                  } else {
+                      k <- (1:imsize[3])[eval.parent(k)]
+                  }
+              } else {
+                  k <- 1
+              }
+              if (numIndices >=4) {
+                  l <- args[[4]]
+                  if (missing(l)) {
+                      l <- 1:imsize[4]
+                  } else {
+                      l <- (1:imsize[4])[eval.parent(l)]
+                  }
+              } else {
+                  l <- 1
+              }
+              if (any(is.na(c(i,j,k, l)))) {
+                  stop("Indexes out of range")
+              }
+              i <- i - 1
+              j <- j - 1
+              k <- k - 1
+              lenI <- length(i)
+              lenJ <- length(j)
+              lenK <- length(k)
+              lenL <- length(l)
+
+              ll <- c(lenI, lenJ, lenK, lenL)
+              ## check for 0, c() indexes and flag an error
+              if (any(ll==0) ) {
+                  stop("Illegal 0 or empty index in image slicing\n")
+              }
+             ## check to see whether this is returning a single number or an image
+            if (all(ll == 1)) {
+              ## return a single point
+              pixtype <- x$GetPixelID()
+              aF <- sitkPixelAccessMap[[pixtype]]
+              if (!is.null(aF)) {
+                ## need to check whether we are using R or C indexing.
+                return(ImportPixVec(aF(x, c(i, j,k, l))))
+              }
+            } else {
+              ## create call to SliceImageFilter
+              ## Check index spacing is uniform
+              dx <- diff(i)
+              if (!(all(dx==dx[1]))) {
+                  stop("X spacing is not uniform\n")
+              }
+              dy <- diff(j)
+              if (!all(dy==dy[1])) {
+                  stop("Y spacing is not uniform\n")
+              }
+              dz <- diff(k)
+              if (!all(dz==dz[1])) {
+                  stop("Z spacing is not uniform\n")
+              }
+              dt <- diff(l)
+              if (!all(dt==dt[1])) {
+                  stop("T spacing is not uniform\n")
+              }
+              start <- c(i[1], j[1], k[1], l[1])
+              step <- c(dx[1], dy[1], dz[1], dt[1])
+              ## deal with single row/column
+              step[is.na(step)] <- 1
+              finish <- c(i[lenI], j[lenJ], k[lenK], l[lenK]) + step
+              resIm <- Slice(x, start, finish, step)
+              ## Drop dimensions
+              sz <- Image_GetSize(resIm)
+              if (drop & any(sz==1)) {
+                  sz[sz==1] <- 0
+                  if (sum(sz != 0) > 1) {
+                      resIm <- Extract(resIm, sz)
+                  } else {
+                      warning("Cannot return 1D image - returning image with some dimensions=1")
+                  }
+              }
+              return(resIm);
+            }
+
+          }
+
+          )
+
+setMethod('[[', "_p_itk__simple__Image",
+          function(x, i, j, ...) {
+              return(VectorIndexSelectionCast(x, i-1)) 
+          }
+          )
+
+setMethod('as.array', "_p_itk__simple__Image",
+          function(x, drop=TRUE) {
+            sz <- x$GetSize()
+            components <- x$GetNumberOfComponentsPerPixel()
+            if (components > 1) sz <- c(components, sz)
+            if (.hasSlot(x, "ref")) x = slot(x,"ref")
+            ans = .Call("R_swig_ImAsArray", x, FALSE, PACKAGE = "SimpleITK")
+            dim(ans) <- sz
+            if (components > 1) {
+                ## vector images have planes stored next to each other.
+                ## place in separate planes for sensible display
+                perm <- c(2:length(sz), 1)
+                ans <- aperm(ans, perm)
+            }
+            if (drop)
+              return(drop(ans))
+            return(ans)
+
+            }
+          )
+
+as.image <- function(arr, spacing=rep(1, length(dim(arr))),
+                     origin=rep(0,length(dim(arr))))
+  {
+    size <- dim(arr)
+    return(ArrayAsIm(arr, size, spacing,origin))
+  }
diff --git a/Wrapping/R/Packaging/SimpleITK/R/zOps.R b/Wrapping/R/Packaging/SimpleITK/R/zOps.R
new file mode 100644
index 0000000..16f34ff
--- /dev/null
+++ b/Wrapping/R/Packaging/SimpleITK/R/zOps.R
@@ -0,0 +1,192 @@
+## Arithmetic/Maths/
+setMethod('+', signature(e1="_p_itk__simple__Image", e2="_p_itk__simple__Image"),
+          function(e1, e2) Add(e1, e2)
+          )
+
+setMethod('+', signature(e1="_p_itk__simple__Image", e2="numeric"),
+          function(e1, e2) Add(e1, e2)
+          )
+
+setMethod('+', signature(e1="numeric", e2="_p_itk__simple__Image"),
+          function(e1, e2) Add(e2, e1)
+          )
+
+setMethod('-', signature(e1="_p_itk__simple__Image", e2="_p_itk__simple__Image"),
+          function(e1, e2) Subtract(e1, e2)
+          )
+
+setMethod('-', signature(e1="_p_itk__simple__Image", e2="numeric"),
+          function(e1, e2) Subtract(e1, e2)
+          )
+
+setMethod('-', signature(e1="numeric", e2="_p_itk__simple__Image"),
+          function(e1, e2) Subtract(e1, e2)
+          )
+
+setMethod('*', signature(e1="_p_itk__simple__Image", e2="_p_itk__simple__Image"),
+          function(e1, e2) Multiply(e1, e2)
+          )
+
+setMethod('*', signature(e1="_p_itk__simple__Image", e2="numeric"),
+          function(e1, e2) Multiply(e1, e2)
+          )
+setMethod('*', signature(e1="numeric", e2="_p_itk__simple__Image"),
+          function(e1, e2) Multiply(e1, e2)
+          )
+
+setMethod('/', signature(e1="_p_itk__simple__Image", e2="_p_itk__simple__Image"),
+          function(e1, e2) Divide(e1, e2)
+          )
+
+setMethod('/', signature(e1="_p_itk__simple__Image", e2="numeric"),
+          function(e1, e2) Divide(e1, e2)
+          )
+
+setMethod('/', signature(e1="numeric", e2="_p_itk__simple__Image"),
+          function(e1, e2) Divide(e1, e2)
+          )
+
+setMethod('^', signature(e1="_p_itk__simple__Image", e2="_p_itk__simple__Image"),
+          function(e1, e2) Pow(e1, e2)
+          )
+
+setMethod('^', signature(e1="_p_itk__simple__Image", e2="numeric"),
+          function(e1, e2) Pow(e1, e2)
+          )
+
+setMethod('^', signature(e1="numeric", e2="_p_itk__simple__Image"),
+          function(e1, e2) Pow(e1, e2)
+          )
+
+setMethod('%%', signature(e1="_p_itk__simple__Image", e2="numeric"),
+          function(e1, e2) Modulus(e1, e2)
+          )
+
+setMethod('%/%', signature(e1="_p_itk__simple__Image", e2="numeric"),
+          function(e1, e2) stop("No integer division op for images")
+          )
+
+## Math group - names are consistent, so we can do this programatically
+
+for (nm in c('cos', 'sin', 'tan', 'acos', 'asin', 'atan', 'abs', 'exp', 'sqrt',
+            'log', 'log10'))
+{
+  Inm <- nm
+  substr(Inm , 1, 1) <- toupper(substr(Inm , 1, 1))
+  ftext <- paste("function(x)", Inm, "(x)", sep="")
+  setMethod(nm, signature(x="_p_itk__simple__Image"),
+            eval(parse(text=ftext))
+            )
+
+}
+
+## Logic
+setMethod('&', signature(e1="_p_itk__simple__Image", e2="_p_itk__simple__Image"),
+          function(e1, e2) And(e1, e2)
+          )
+setMethod('|', signature(e1="_p_itk__simple__Image", e2="_p_itk__simple__Image"),
+          function(e1, e2) Or(e1, e2)
+          )
+setMethod("xor", signature(x="_p_itk__simple__Image", y="_p_itk__simple__Image"),
+          function(x, y) Xor(x, y)
+         )
+
+setMethod('!', signature(x="_p_itk__simple__Image"),
+          function(x) Not(x)
+          )
+# compare
+setMethod('==', signature(e1="_p_itk__simple__Image", e2="numeric"),
+          function(e1, e2) {
+            Equal(e1, e2)
+          }
+          )
+setMethod('==', signature( e1="numeric", e2="_p_itk__simple__Image"),
+          function(e1, e2) {
+            Equal(e1, e2)
+          }
+          )
+setMethod('==', signature( e1="_p_itk__simple__Image", e2="_p_itk__simple__Image"),
+          function(e1, e2) {
+            Equal(e1, e2)
+          }
+          )
+setMethod('!=', signature(e1="_p_itk__simple__Image", e2="numeric"),
+          function(e1, e2) {
+            NotEqual(e1, e2)
+          }
+          )
+setMethod('!=', signature( e1="numeric", e2="_p_itk__simple__Image"),
+          function(e1, e2) {
+            NotEqual(e1, e2)
+          }
+          )
+setMethod('!=', signature( e1="_p_itk__simple__Image", e2="_p_itk__simple__Image"),
+          function(e1, e2) {
+            NotEqual(e1, e2)
+          }
+          )
+
+setMethod('<=', signature(e1="_p_itk__simple__Image", e2="numeric"),
+          function(e1, e2) {
+            LessEqual(e1, e2)
+          }
+          )
+setMethod('<=', signature(e1="numeric", e2="_p_itk__simple__Image"),
+          function(e1, e2) {
+            # can we look up pixel traits?
+            LessEqual(e1, e2)
+          }
+          )
+setMethod('<=', signature(e1="_p_itk__simple__Image", e2="_p_itk__simple__Image"),
+          function(e1, e2) {
+            LessEqual(e1,e2)
+          }
+          )
+
+setMethod('>=', signature(e1="_p_itk__simple__Image", e2="numeric"),
+          function(e1, e2) {
+            GreaterEqual(e1, e2)
+          }
+          )
+setMethod('>=', signature(e1="numeric", e2="_p_itk__simple__Image"),
+          function(e1, e2) {
+            GreaterEqual(e1, e2)
+          }
+          )
+setMethod('>=', signature(e1="_p_itk__simple__Image", e2="_p_itk__simple__Image"),
+          function(e1, e2) {
+            GreaterEqual(e1,e2)
+          }
+          )
+
+setMethod('<', signature(e1="_p_itk__simple__Image", e2="numeric"),
+          function(e1, e2) {
+            Less(e1, e2)
+          }
+          )
+setMethod('<', signature(e1="numeric", e2="_p_itk__simple__Image"),
+          function(e1, e2) {
+            Less(e1, e2)
+          }
+          )
+setMethod('<', signature(e1="_p_itk__simple__Image", e2="_p_itk__simple__Image"),
+          function(e1, e2) {
+            Less(e1,e2)
+          }
+          )
+setMethod('>', signature(e1="_p_itk__simple__Image", e2="numeric"),
+          function(e1, e2) {
+            Greater(e1, e2)
+          }
+          )
+setMethod('>', signature(e1="numeric", e2="_p_itk__simple__Image"),
+          function(e1, e2) {
+            Greater(e1, e2)
+          }
+          )
+
+setMethod('>', signature(e1="_p_itk__simple__Image", e2="_p_itk__simple__Image"),
+          function(e1, e2) {
+            Greater(e1,e2)
+          }
+          )
diff --git a/Wrapping/R/Packaging/SimpleITK/data/cthead1-Float.mha.md5 b/Wrapping/R/Packaging/SimpleITK/data/cthead1-Float.mha.md5
new file mode 100644
index 0000000..8153004
--- /dev/null
+++ b/Wrapping/R/Packaging/SimpleITK/data/cthead1-Float.mha.md5
@@ -0,0 +1 @@
+25de5707b18c0c684fd5fa30351bf787
\ No newline at end of file
diff --git a/Wrapping/R/Packaging/SimpleITK/data/cthead1-Float.mha.sha512 b/Wrapping/R/Packaging/SimpleITK/data/cthead1-Float.mha.sha512
new file mode 100644
index 0000000..0636239
--- /dev/null
+++ b/Wrapping/R/Packaging/SimpleITK/data/cthead1-Float.mha.sha512
@@ -0,0 +1 @@
+6a99d4f3edaf5238ab585f9b8445720a8d71157157acb0a461ca568e10ece671fb8f2af3d348d6cbe5b43560536f149cc1a4102ce9a4b8b4936ae23e3d9101b8
diff --git a/Wrapping/R/Packaging/SimpleITK/data/cthead1.png.md5 b/Wrapping/R/Packaging/SimpleITK/data/cthead1.png.md5
new file mode 100644
index 0000000..1602731
--- /dev/null
+++ b/Wrapping/R/Packaging/SimpleITK/data/cthead1.png.md5
@@ -0,0 +1 @@
+b23198c9e44a48edfd5b83f075eb455c
diff --git a/Wrapping/R/Packaging/SimpleITK/data/cthead1.png.sha512 b/Wrapping/R/Packaging/SimpleITK/data/cthead1.png.sha512
new file mode 100644
index 0000000..385939c
--- /dev/null
+++ b/Wrapping/R/Packaging/SimpleITK/data/cthead1.png.sha512
@@ -0,0 +1 @@
+07fde89ac38926e4cd1746282071c8d3fb0b6222aed9d70f5fdcabb10a8caee3ad8c040d103924e55aa484d6f8ab5310cde52a6a0ecf83a9d87f0501f23c0cc1
diff --git a/Wrapping/R/Packaging/SimpleITK/inst/doc/SimpleITK_tutorial.pdf b/Wrapping/R/Packaging/SimpleITK/inst/doc/SimpleITK_tutorial.pdf
new file mode 100644
index 0000000..f4e251b
Binary files /dev/null and b/Wrapping/R/Packaging/SimpleITK/inst/doc/SimpleITK_tutorial.pdf differ
diff --git a/Wrapping/R/Packaging/SimpleITK/man/SimpleITK_Image-class.Rd b/Wrapping/R/Packaging/SimpleITK/man/SimpleITK_Image-class.Rd
new file mode 100644
index 0000000..7c47ded
--- /dev/null
+++ b/Wrapping/R/Packaging/SimpleITK/man/SimpleITK_Image-class.Rd
@@ -0,0 +1,106 @@
+\name{_p_itk__simple__Image}
+\Rdversion{1.1}
+\docType{class}
+\alias{_p_itk__simple__Image-class}
+\alias{_p_itk__simple__Image}
+\alias{SimpleITK_Image-class}
+\alias{Image-class}
+\alias{[,_p_itk__simple__Image-method}
+\alias{[[,_p_itk__simple__Image-method}
+
+\title{Class \code{"_p_itk__simple__Image"}}
+\description{
+The image class object used in SimpleITK. This object is a pointer to a C++ object
+that contains the image voxel data and a range of meta data.
+
+Classes in SimpleITK have methods accessible via '$' operator. These methods are used
+to set and get class meta data.
+}
+\section{Image objecst}{
+  Objects can be created by calls of the form
+
+  \code{Image(xsize, ysize, zsize, 'sitkUInt8')},
+
+  where 'sitkUInt8' defines the pixel type.
+
+Most SimpleITK functions and filter classes also return images.
+
+Images will often be saved in files and loaded using \code{im <- ReadImage(filename)}.
+
+Arrays can be converted to images using \code{as.image}.
+}
+
+\section{Methods}{
+  \describe{
+    \item{[}{ The extract operator is used to perform image slicing in a
+      similar fashion to array slicing, with indexes starting from 1.
+      Standard slicing options are available, such as deleting using
+      negative indexes or using logical indexes.
+
+      There are some image specific conventions/differences, as follows.
+
+      Using zero or empty indexes will raise an error:
+
+      \code{im[c(), 1:3]}
+
+      \code{im[1, 1:3, 0]}
+
+      Slicing operations must produce constant voxel spacing in each
+      dimension. i.e. subsampling must be uniform.
+
+      Dropping a dimension (the default) is not always
+      possible as SimpleITK images must be at least 2
+      dimensional. Operations that request a 1D image will return a
+      higher dimension image with some dimensions of size 1 and issue a
+      warning.
+
+      An R object (number or vector) will be return if the operation
+      would otherwise result in an image with a single voxel.
+
+      \code{im[1,2]}
+
+      Array style assignment to image voxels is not yet supported.
+
+    }
+    \item{[[}{ The list access operator is used to extract an image
+      component, such as the red channel from a colour image:
+
+      \code{ red <- im[[1]] }
+    }
+    \item{Ops}{Arithmetic and logical operators are overloaded for
+    images. Images are checked for consistency of spacing and spatial
+    location.
+
+    \code{ im1 * (im2 > 5) }
+
+    Care may be required concerning pixel types - see the
+    \code{\link{Cast}} function.
+  }
+  \item{Meta data methods are accessible using the '$' operator}{}
+  \item{GetDimension}{Image dimension information
+
+    \code{im$GetDimension()}
+
+  }
+  \item{GetNumberOfComponentsPerPixel}{}
+  \item{SetOrigin/GetOrigin}{Image spatial origin meta data -
+
+    \code{im$GetOrigin()}
+  }
+  \item{SetSpacing/GetSpacing}{Image voxel size meta data}
+  \item{GetSize}{Image size meta data (dimensions in voxels)}
+  \item{GetHeight/GetWidth/GetDepth}{Lengths of various image
+    dimensions}
+  \item{GetDirection/SetDirection}{Spatial transformation matrix}
+  \item{TransformIndexToPhysicalPoint}{Spatial location from index}
+  \item{TransformPhysicalPointToIndex}{Spatial location to index}
+  \item{TransformPhysicalPointToContinuousIndex}{}
+  \item{TransformContinuousIndexToPhysicalPoint}{}
+  \item{CopyInformation}{Copy meta data information from another image}
+  \item{GetPixel/SetPixel}{Pixel access methods - note indexing is
+  C-style, starting from 0}
+}
+}
+\references{
+\url{https://itk.org/SimpleITKDoxygen/html/index.html}
+}
diff --git a/Wrapping/R/Packaging/SimpleITK/man/sitkRdfiles.tar.gz.md5 b/Wrapping/R/Packaging/SimpleITK/man/sitkRdfiles.tar.gz.md5
new file mode 100644
index 0000000..6602287
--- /dev/null
+++ b/Wrapping/R/Packaging/SimpleITK/man/sitkRdfiles.tar.gz.md5
@@ -0,0 +1 @@
+20538107d92959f43c25d0d776974d2f
\ No newline at end of file
diff --git a/Wrapping/R/Packaging/SimpleITK/src/Makefile b/Wrapping/R/Packaging/SimpleITK/src/Makefile
new file mode 100644
index 0000000..3dfab27
--- /dev/null
+++ b/Wrapping/R/Packaging/SimpleITK/src/Makefile
@@ -0,0 +1,6 @@
+all:
+	echo "Dummy makefile for binary package"
+clean:
+
+# don't clean, otherwise R CMD build doesn't work as
+# this isn't really a source package
diff --git a/Wrapping/R/Packaging/SimpleITK/vignettes/InsightArticle.cls b/Wrapping/R/Packaging/SimpleITK/vignettes/InsightArticle.cls
new file mode 100644
index 0000000..4f2caeb
--- /dev/null
+++ b/Wrapping/R/Packaging/SimpleITK/vignettes/InsightArticle.cls
@@ -0,0 +1,153 @@
+%
+% InsightArticle.cls for the Insight Journal
+%
+
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesClass{InsightArticle}
+             [1998/02/25 Document class (Insight Article)]
+
+%
+%  Change this to say a4paper instead of letterpaper if you want A4.  These
+%  are the latex defaults.
+%
+\newcommand{\itk at paper}{letterpaper}
+\newcommand{\itk at ptsize}{11pt}
+
+
+%
+%  Commands for image and figure captions
+%
+\newcommand{\itkcaption}[2][]{\caption[{#1}]{\small \textsf{{#2}} \normalsize}}
+\newcommand{\itkpiccaption}[2][]{\piccaption[{#1}]{\small \textsf{{#2}} \normalsize}}
+
+
+%  These set up the fonts for the documents.
+%
+%  The "times" package makes the default font the PostScript Times
+%  font, which makes for smaller PostScript and a font that more people
+%  like.
+%
+\RequirePackage{times}\typeout{Using Times instead of Computer Modern.}
+
+
+% Change the options here to get a different set of basic options,  This
+% is where to add things like "a4paper" or "10pt".
+%
+\LoadClass[\itk at paper,\itk at ptsize]{article}
+
+
+
+\setcounter{secnumdepth}{1}
+
+
+
+% Optional packages:
+%
+% If processing of these documents fails at your TeX installation,
+% these may be commented out (independently) to make things work.
+% These are both supplied with the current version of the teTeX
+% distribution.
+%
+% The "fancyhdr" package makes nicer page footers reasonable to
+% implement, and is used to put the chapter and section information in
+% the footers.
+%
+\RequirePackage{fancyhdr}\typeout{Using fancier footers than usual.}
+
+
+% Adding the package ifpdf in order to deal with the cases where
+% pdflatex is used instead of latex.
+\RequirePackage{ifpdf}\typeout{Using ifpdf for the template}
+
+
+% Required package:
+%
+% This gives us all the Insight-specific markup that we really want.
+% This should come last.  Do not change this.
+%
+\RequirePackage{InsightJournal}
+
+% support for module synopsis sections:
+\newcommand{\itk at ModSynopsisFilename}{\jobname.syn}
+
+
+% need to do one of these....
+\newcommand{\itk at doHorizontalRule}{\rule{\textwidth}{1pt}}
+
+% Define command to make reference to on-line Doxygen documentation
+\newcommand{\doxygen}[1]{
+\href{https://www.itk.org/Doxygen/html/classitk_1_1#1.html}{\code{itk::#1}}}
+
+% Define command to make reference to on-line Doxygen documentation
+\newcommand{\subdoxygen}[2]{
+\href{https://www.itk.org/Doxygen/html/classitk_1_1#1_1_1#2.html}{\code{itk::#1::#2}}}
+
+% Define command for the standard comment introducing classes with similar functionalities
+\newcommand{\relatedClasses}{
+\textbf{The following classes provide similar functionality:}}
+
+
+% Change the title page to look a bit better, and fit in with the
+% fncychap ``Bjarne'' style a bit better.
+%
+\renewcommand{\maketitle}{
+  \itk at doHorizontalRule
+  \ifpdf
+    \@ifundefined{pdfinfo}{}{{
+      % This \def is required to deal with multi-line authors; it
+      % changes \\ to ', ' (comma-space), making it pass muster for
+      % generating document info in the PDF file.
+      \def\\{, }
+        \pdfinfo{
+          /Author (\@author)
+          /Title (\@title)
+        }
+    }}
+  \else
+     % else nothing
+  \fi
+  \begin{flushright}
+    {\rm\Huge\itk at HeaderFamily \@title} \par
+    {\em\large\itk at HeaderFamily \itk at release} \par
+    \vspace{25pt}
+    {\Large\itk at HeaderFamily \@author} \par
+    \vspace{25pt}
+    \@date \par
+    \itk at authoraddress \par
+  \end{flushright}
+  \@thanks
+  \setcounter{footnote}{0}
+  \let\thanks\relax\let\maketitle\relax
+  \gdef\@thanks{}\gdef\@author{}\gdef\@title{}
+}
+
+
+\let\itk at OldTableofcontents=\tableofcontents
+\renewcommand{\tableofcontents}{
+  \begingroup
+    \parskip = 0mm
+    \itk at OldTableofcontents
+  \endgroup
+  \itk at doHorizontalRule
+  \vspace{12pt}
+  \itk at doing@page at targetstrue
+}
+
+% Fix the theindex environment to add an entry to the Table of
+% Contents; this is much nicer than just having to jump to the end of
+% the book and flip around, especially with multiple indexes.
+%
+\let\itk at OldTheindex=\theindex
+\renewcommand{\theindex}{
+  \clearpage
+  \itk at OldTheindex
+  \addcontentsline{toc}{section}{\indexname}
+}
+
+\@ifundefined{fancyhf}{
+  \pagestyle{plain}}{
+  \pagestyle{normal}}		% start this way; change for
+\pagenumbering{arabic}		% ToC & chapters
+\setcounter{secnumdepth}{2}
+
+\thispagestyle{empty}
diff --git a/Wrapping/R/Packaging/SimpleITK/vignettes/InsightJournal.sty b/Wrapping/R/Packaging/SimpleITK/vignettes/InsightJournal.sty
new file mode 100644
index 0000000..ff6827e
--- /dev/null
+++ b/Wrapping/R/Packaging/SimpleITK/vignettes/InsightJournal.sty
@@ -0,0 +1,1123 @@
+%
+% Insight.sty for the Insight docummentation  [works only with with Latex2e]
+%
+
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesPackage{InsightJournal}
+             [1998/01/11 LaTeX package (Insight markup)]
+
+\RequirePackage{longtable}
+\RequirePackage{graphics}
+%\RequirePackage{picins}
+\RequirePackage{floatflt}
+\RequirePackage{url}
+\RequirePackage{amsmath}
+\RequirePackage{pslatex}
+\RequirePackage{verbatim}
+
+
+% Uncomment these two lines to ignore the paper size and make the page
+% size more like a typical published manual.
+%\renewcommand{\paperheight}{9.25in}
+%\renewcommand{\paperwidth}{7.5in}   % typical squarish manual
+%\renewcommand{\paperwidth}{7in}     % O'Reilly ``Programmming Insight''
+
+% These packages can be used to add marginal annotations which indicate
+% index entries and labels; useful for reviewing this messy documentation!
+%
+%\RequirePackage{showkeys}
+%\RequirePackage{showidx}
+
+% for PDF output, use maximal compression & a lot of other stuff
+% (test for PDF recommended by Tanmoy Bhattacharya <tanmoy at qcd.lanl.gov>)
+%
+\newif\ifitk at doing@page at targets
+\itk at doing@page at targetsfalse
+
+\ifx\pdfoutput\undefined\else\ifcase\pdfoutput
+\else
+  \input{pdfcolor}
+  \let\itk at LinkColor=\NavyBlue
+  \let\itk at NormalColor=\Black
+  \pdfcompresslevel=9
+  \pdfpagewidth=\paperwidth    % page width of PDF output
+  \pdfpageheight=\paperheight  % page height of PDF output
+  %
+  % Pad the number with '0' to 3 digits wide so no page name is a prefix
+  % of any other.
+  %
+  \newcommand{\itk at targetno}[1]{\ifnum#1<100 0\fi\ifnum#1<10 0\fi#1}
+  \newcommand{\itk at pageno}{\itk at targetno\thepage}
+  %
+  % This definition allows the entries in the page-view of the ToC to be
+  % active links.  Some work, some don't.
+  %
+  \let\itk at OldContentsline=\contentsline
+  %
+  % Macro that takes two args: the name to link to and the content of
+  % the link.  This takes care of the PDF magic, getting the colors
+  % the same for each link, and avoids having lots of garbage all over
+  % this style file.
+  \newcommand{\itk at linkToName}[2]{%
+    \pdfannotlink attr{/Border [0 0 0]} goto name{#1}%
+      \itk at LinkColor#2\itk at NormalColor%
+    \pdfendlink%
+  }
+  % Compute the padded page number separately since we end up with a pair of
+  % \relax tokens; this gets the right string computed and works.
+  \renewcommand{\contentsline}[3]{%
+    \def\my at pageno{\itk at targetno{#3}}%
+    \itk at OldContentsline{#1}{\itk at linkToName{page\my at pageno}{#2}}{#3}%
+  }
+  \AtEndDocument{
+    \InputIfFileExists{\jobname.bkm}{\pdfcatalog{/PageMode /UseOutlines}}{}
+  }
+  \newcommand{\itk at target}[1]{%
+    \ifitk at doing@page at targets%
+      {\pdfdest name{#1} xyz}%
+    \fi%
+  }
+  \let\itk at OldLabel=\label
+  \renewcommand{\label}[1]{%
+    \itk at OldLabel{#1}%
+    \itk at target{label-#1}%
+  }
+  % This stuff adds a page# destination to every PDF page, where # is three
+  % digits wide, padded with leading zeros.  This doesn't really help with
+  % the frontmatter, but does fine with the body.
+  %
+  % This is *heavily* based on the hyperref package.
+  %
+  \def\@begindvi{%
+    \unvbox \@begindvibox
+    \@hyperfixhead
+  }
+  \def\@hyperfixhead{%
+   \let\H at old@thehead\@thehead
+       \global\def\@foo{\itk at target{page\itk at pageno}}%
+     \expandafter\ifx\expandafter\@empty\H at old@thehead
+       \def\H at old@thehead{\hfil}\fi
+    \def\@thehead{\@foo\relax\H at old@thehead}%
+  }
+\fi\fi
+
+% Increase printable page size (copied from fullpage.sty)
+\topmargin 0.25in
+\advance \topmargin by -\headheight
+\advance \topmargin by -\headsep
+
+% attempt to work a little better for A4 users
+\textheight \paperheight
+\advance\textheight by -2in
+
+\oddsidemargin 20pt
+\evensidemargin -20pt
+\marginparwidth 0.25in
+
+\textwidth \paperwidth
+\advance\textwidth by -2in
+
+
+% Style parameters and macros used by most documents here
+\raggedbottom
+\sloppy
+\parindent = 0mm
+\parskip = 2mm
+\hbadness = 5000                % don't print trivial gripes
+
+\pagestyle{empty}               % start this way; change for
+\pagenumbering{roman}           % ToC & chapters
+
+% Use this to set the font family for headers and other decor:
+\newcommand{\itk at HeaderFamily}{\sffamily}
+
+% Redefine the 'normal' header/footer style when using "fancyhdr" package:
+\@ifundefined{fancyhf}{}{
+  % Use \pagestyle{normal} as the primary pagestyle for text.
+  \fancypagestyle{normal}{
+    \fancyhf{}
+    \fancyhead[LE,RO]{{\itk at HeaderFamily\thepage}}
+    \fancyhead[LO]{{\itk at HeaderFamily\nouppercase{\rightmark}}}
+    \fancyhead[RE]{{\itk at HeaderFamily\nouppercase{\leftmark}}}
+    \renewcommand{\headrulewidth}{0.4pt}
+    \renewcommand{\footrulewidth}{0pt}
+  }
+  % Update the plain style so we get the page number & footer line,
+  % but not a chapter or section title.  This is to keep the first
+  % page of a chapter and the blank page between chapters `clean.'
+  \fancypagestyle{plain}{
+    \fancyhf{}
+    \renewcommand{\headrulewidth}{0pt}
+    \renewcommand{\footrulewidth}{0pt}
+  }
+  % Redefine \cleardoublepage so that the blank page between chapters
+  % gets the plain style and not the fancy style.  This is described
+  % in the documentation for the fancyhdr package by Piet von Oostrum.
+  \@ifundefined{chapter}{}{
+    \renewcommand{\cleardoublepage}{
+      \clearpage\if at openright \ifodd\c at page\else
+      \hbox{}
+      \thispagestyle{plain}
+      \newpage
+      \if at twocolumn\hbox{}\newpage\fi\fi\fi
+    }
+  }
+}
+
+
+
+% This does a similar thing for the {alltt} environment:
+\RequirePackage{alltt}
+\let\itk at OldAllTT=\alltt
+\let\itk at OldEndAllTT=\endalltt
+
+\renewcommand{\alltt}{%
+  \setlength{\parindent}{1cm}%
+  % Calculate the text width for the minipage:
+  \setlength{\itk at codewidth}{\linewidth}%
+  \addtolength{\itk at codewidth}{-\parindent}%
+  %
+  \par\indent%
+  \begin{minipage}[t]{\itk at codewidth}%
+    \small%
+    \itk at OldAllTT%
+}
+\renewcommand{\endalltt}{%
+    \itk at OldEndAllTT%
+  \end{minipage}%
+}
+
+
+\newcommand{\itk at modulebadkey}{{--just-some-junk--}}
+
+
+%%  Lots of index-entry generation support.
+
+% Command to wrap around stuff that refers to function / module /
+% attribute names  in the index.  Default behavior: like \code{}.  To
+% just keep the index entries in the roman font, uncomment the second
+% definition; it matches O'Reilly style more.
+%
+\newcommand{\itk at idxcode}[1]{\texttt{#1}}
+%\renewcommand{\itk at idxcode}[1]{#1}
+
+% Command to generate two index entries (using subentries)
+\newcommand{\indexii}[2]{\index{#1!#2}\index{#2!#1}}
+
+% And three entries (using only one level of subentries)
+\newcommand{\indexiii}[3]{\index{#1!#2 #3}\index{#2!#3, #1}\index{#3!#1 #2}}
+
+% And four (again, using only one level of subentries)
+\newcommand{\indexiv}[4]{
+\index{#1!#2 #3 #4}
+\index{#2!#3 #4, #1}
+\index{#3!#4, #1 #2}
+\index{#4!#1 #2 #3}
+}
+
+% Command to generate a reference to a function, statement, keyword,
+% operator.
+\newcommand{\kwindex}[1]{\indexii{keyword}{#1@{\itk at idxcode{#1}}}}
+\newcommand{\stindex}[1]{\indexii{statement}{#1@{\itk at idxcode{#1}}}}
+\newcommand{\opindex}[1]{\indexii{operator}{#1@{\itk at idxcode{#1}}}}
+\newcommand{\exindex}[1]{\indexii{exception}{#1@{\itk at idxcode{#1}}}}
+\newcommand{\obindex}[1]{\indexii{object}{#1}}
+\newcommand{\bifuncindex}[1]{%
+  \index{#1@{\itk at idxcode{#1()}} (built-in function)}}
+
+% Add an index entry for a module
+\newcommand{\itk at refmodule}[2]{\index{#1@{\itk at idxcode{#1}} (#2module)}}
+\newcommand{\refmodindex}[1]{\itk at refmodule{#1}{}}
+\newcommand{\refbimodindex}[1]{\itk at refmodule{#1}{built-in }}
+\newcommand{\refexmodindex}[1]{\itk at refmodule{#1}{extension }}
+\newcommand{\refstmodindex}[1]{\itk at refmodule{#1}{standard }}
+
+% Refer to a module's documentation using a hyperlink of the module's
+% name, at least if we're building PDF:
+\@ifundefined{pdfannotlink}{%
+  \newcommand{\refmodule}[2][\itk at modulebadkey]{\module{#2}}
+}{%
+  \newcommand{\refmodule}[2][\itk at modulebadkey]{%
+    \ifx\itk at modulebadkey#1\def\itk at modulekey{#2}\else\def\itk at modulekey{#1}\fi%
+    \itk at linkToName{label-module-\itk at modulekey}{\module{#2}}%
+  }
+}
+
+% support for the module index
+\newif\ifitk at UseModuleIndex
+\itk at UseModuleIndexfalse
+
+\newcommand{\makemodindex}{
+  \newwrite\modindexfile
+  \openout\modindexfile=mod\jobname.idx
+  \itk at UseModuleIndextrue
+}
+
+% Add the defining entry for a module
+\newcommand{\itk at modindex}[2]{%
+  \renewcommand{\itk at thismodule}{#1}
+  \setindexsubitem{(in module #1)}%
+  \index{#1@{\itk at idxcode{#1}} (#2module)|textbf}%
+  \ifitk at UseModuleIndex%
+    \@ifundefined{itk at modplat@\itk at thismodulekey}{
+      \write\modindexfile{\protect\indexentry{#1@{\texttt{#1}}}{\thepage}}%
+    }{\write\modindexfile{\protect\indexentry{#1@{\texttt{#1} %
+        \emph{(\itk at platformof[\itk at thismodulekey]{})}}}{\thepage}}%
+    }
+  \fi%
+}
+
+% *** XXX *** THE NEXT FOUR MACROS ARE NOW OBSOLETE !!! ***
+
+% built-in & Insight modules in the main distribution
+\newcommand{\bimodindex}[1]{\itk at modindex{#1}{built-in }%
+  \typeout{*** MACRO bimodindex IS OBSOLETE -- USE declaremodule INSTEAD!}}
+\newcommand{\stmodindex}[1]{\itk at modindex{#1}{standard }%
+  \typeout{*** MACRO stmodindex IS OBSOLETE -- USE declaremodule INSTEAD!}}
+
+% Insight & extension modules outside the main distribution
+\newcommand{\modindex}[1]{\itk at modindex{#1}{}%
+  \typeout{*** MACRO modindex IS OBSOLETE -- USE declaremodule INSTEAD!}}
+\newcommand{\exmodindex}[1]{\itk at modindex{#1}{extension }%
+  \typeout{*** MACRO exmodindex IS OBSOLETE -- USE declaremodule INSTEAD!}}
+
+% Additional string for an index entry
+\newif\ifitk at usingsubitem\itk at usingsubitemfalse
+\newcommand{\itk at indexsubitem}{}
+\newcommand{\setindexsubitem}[1]{\renewcommand{\itk at indexsubitem}{ #1}%
+                                 \itk at usingsubitemtrue}
+\newcommand{\ttindex}[1]{%
+  \ifitk at usingsubitem
+    \index{#1@{\itk at idxcode{#1}}\itk at indexsubitem}%
+  \else%
+    \index{#1@{\itk at idxcode{#1}}}%
+  \fi%
+}
+\newcommand{\withsubitem}[2]{%
+  \begingroup%
+    \def\ttindex##1{\index{##1@{\itk at idxcode{##1}} #1}}%
+    #2%
+  \endgroup%
+}
+
+
+% Module synopsis processing -----------------------------------------------
+%
+\newcommand{\itk at thisclass}{}
+\newcommand{\itk at thismodule}{}
+\newcommand{\itk at thismodulekey}{}
+\newcommand{\itk at thismoduletype}{}
+
+\newcommand{\itk at standardIndexModule}[1]{\itk at modindex{#1}{standard }}
+\newcommand{\itk at builtinIndexModule}[1]{\itk at modindex{#1}{built-in }}
+\newcommand{\itk at extensionIndexModule}[1]{\itk at modindex{#1}{extension }}
+\newcommand{\itk at IndexModule}[1]{\itk at modindex{#1}{}}
+
+\newif\ifitk at HaveModSynopsis       \itk at HaveModSynopsisfalse
+\newif\ifitk at ModSynopsisFileIsOpen \itk at ModSynopsisFileIsOpenfalse
+\newif\ifitk at HaveModPlatform       \itk at HaveModPlatformfalse
+
+% \declaremodule[key]{type}{name}
+\newcommand{\declaremodule}[3][\itk at modulebadkey]{
+  \itk at openModSynopsisFile
+  \renewcommand{\itk at thismoduletype}{#2}
+  \ifx\itk at modulebadkey#1
+    \renewcommand{\itk at thismodulekey}{#3}
+  \else
+    \renewcommand{\itk at thismodulekey}{#1}
+  \fi
+  \@ifundefined{itk@#2IndexModule}{%
+    \typeout{*** MACRO declaremodule called with unknown module type: `#2'}
+    \itk at IndexModule{#3}%
+  }{%
+    \csname itk@#2IndexModule\endcsname{#3}%
+  }
+  \label{module-\itk at thismodulekey}
+}
+\newif\ifitk at ModPlatformFileIsOpen \itk at ModPlatformFileIsOpenfalse
+\newcommand{\itk at ModPlatformFilename}{\jobname.pla}
+\newcommand{\platform}[1]{
+  \ifitk at ModPlatformFileIsOpen\else
+    \newwrite\itk at ModPlatformFile
+    \openout\itk at ModPlatformFile=\itk at ModPlatformFilename
+    \itk at ModPlatformFileIsOpentrue
+  \fi
+}
+\InputIfFileExists{\jobname.pla}{}{}
+\newcommand{\itk at platformof}[2][\itk at modulebadkey]{%
+  \ifx\itk at modulebadkey#1 \def\itk at key{#2}%
+  \else \def\itk at key{#1}%
+  \fi%
+  \csname itk at modplat@\itk at key\endcsname%
+}
+\newcommand{\ignorePlatformAnnotation}[1]{}
+
+% \moduleauthor{name}{email}
+\newcommand{\moduleauthor}[2]{}
+
+% \sectionauthor{name}{email}
+\newcommand{\sectionauthor}[2]{}
+
+
+\newcommand{\itk at defsynopsis}{Module has no synopsis.}
+\newcommand{\itk at modulesynopsis}{\itk at defsynopsis}
+\newcommand{\modulesynopsis}[1]{
+  \itk at HaveModSynopsistrue
+  \renewcommand{\itk at modulesynopsis}{#1}
+}
+
+% define the file
+\newwrite\itk at ModSynopsisFile
+
+% hacked from \addtocontents from latex.ltx:
+\long\def\itk at writeModSynopsisFile#1{%
+  \protected at write\itk at ModSynopsisFile%
+      {\let\label\@gobble \let\index\@gobble \let\glossary\@gobble}%
+      {\string#1}%
+}
+\newcommand{\itk at closeModSynopsisFile}{
+  \ifitk at ModSynopsisFileIsOpen
+    \closeout\itk at ModSynopsisFile
+    \itk at ModSynopsisFileIsOpenfalse
+  \fi
+}
+\newcommand{\itk at openModSynopsisFile}{
+  \ifitk at ModSynopsisFileIsOpen\else
+    \openout\itk at ModSynopsisFile=\itk at ModSynopsisFilename
+    \itk at ModSynopsisFileIsOpentrue
+  \fi
+}
+
+\newcommand{\itk at ProcessModSynopsis}{
+  \ifitk at HaveModSynopsis
+    \itk at writeModSynopsisFile{\modulesynopsis%
+      {\itk at thismodulekey}{\itk at thismodule}%
+      {\itk at thismoduletype}{\itk at modulesynopsis}}%
+    \itk at HaveModSynopsisfalse
+  \fi
+  \renewcommand{\itk at modulesynopsis}{\itk at defsynopsis}
+}
+\AtEndDocument{\itk at ProcessModSynopsis\itk at closeModSynopsisFile}
+
+
+\long\def\itk at writeModPlatformFile#1{%
+  \protected at write\itk at ModPlatformFile%
+    {\let\label\@gobble \let\index\@gobble \let\glossary\@gobble}%
+    {\string#1}%
+}
+
+
+\newcommand{\localmoduletable}{
+  \IfFileExists{\itk at ModSynopsisFilename}{
+    \begin{synopsistable}
+      \input{\itk at ModSynopsisFilename}
+    \end{synopsistable}
+  }{}
+}
+
+\@ifundefined{pdfoutput}{
+  \newcommand{\itk at ModSynopsisSummary}[4]{\bfcode{#2} & #4\\}
+}{
+  \newcommand{\itk at ModSynopsisSummary}[4]{%
+    \itk at linkToName{label-module-#1}{\bfcode{#2}} & #4\\
+  }
+}
+\newenvironment{synopsistable}{
+  % key, name, type, synopsis
+  \let\modulesynopsis=\itk at ModSynopsisSummary
+  \begin{tabular}{ll}
+}{
+  \end{tabular}
+}
+%
+% --------------------------------------------------------------------------
+
+
+\newcommand{\itk at reset}{
+  \itk at usingsubitemfalse
+  \itk at ProcessModSynopsis
+  \renewcommand{\itk at thisclass}{}
+  \renewcommand{\itk at thismodule}{}
+  \renewcommand{\itk at thismodulekey}{}
+  \renewcommand{\itk at thismoduletype}{}
+}
+
+% Augment the sectioning commands used to get our own font family in place,
+% and reset some internal data items:
+\renewcommand{\section}{\itk at reset%
+                        \@startsection{section}{1}{\z@}%
+                                    {-3.5ex \@plus -1ex \@minus -.2ex}%
+                                    {2.3ex \@plus.2ex}%
+                                    {\reset at font\Large\itk at HeaderFamily}}
+\renewcommand{\subsection}{\@startsection{subsection}{2}{\z@}%
+                                    {-3.25ex\@plus -1ex \@minus -.2ex}%
+                                    {1.5ex \@plus .2ex}%
+                                    {\reset at font\large\itk at HeaderFamily}}
+\renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}%
+                                    {-3.25ex\@plus -1ex \@minus -.2ex}%
+                                    {1.5ex \@plus .2ex}%
+                                    {\reset at font\normalsize\itk at HeaderFamily}}
+\renewcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%
+                                    {3.25ex \@plus1ex \@minus.2ex}%
+                                    {-1em}%
+                                    {\reset at font\normalsize\itk at HeaderFamily}}
+\renewcommand{\subparagraph}{\@startsection{subparagraph}{5}{\parindent}%
+                                    {3.25ex \@plus1ex \@minus .2ex}%
+                                    {-1em}%
+                                    {\reset at font\normalsize\itk at HeaderFamily}}
+
+
+% This gets the underscores closer to the right width; the only change
+% from standard LaTeX is the width specified.
+
+\DeclareTextCommandDefault{\textunderscore}{%
+  \leavevmode \kern.06em\vbox{\hrule\@width.55em}}
+
+% Now for a lot of semantically-loaded environments that do a ton of magical
+% things to get the right formatting and index entries for the stuff in
+% Insight modules and C API.
+
+
+% {fulllineitems} is used in one place in libregex.tex, but is really for
+% internal use in this file.
+%
+\newcommand{\itk at itemnewline}[1]{%
+  \@tempdima\linewidth%
+  \advance\@tempdima \leftmargin\makebox[\@tempdima][l]{#1}%
+}
+
+\newenvironment{fulllineitems}{
+  \begin{list}{}{\labelwidth \leftmargin \labelsep 0pt
+                 \rightmargin 0pt \topsep -\parskip \partopsep \parskip
+                 \itemsep -\parsep
+                 \let\makelabel=\itk at itemnewline}
+}{\end{list}}
+
+% \optional is mostly for use in the arguments parameters to the various
+% {*desc} environments defined below, but may be used elsewhere.  Known to
+% be used in the debugger chapter.
+%
+% Typical usage:
+%
+%     \begin{funcdesc}{myfunc}{reqparm\optional{, optparm}}
+%                                    ^^^       ^^^
+%                          No space here       No space here
+%
+% When a function has multiple optional parameters, \optional should be
+% nested, not chained.  This is right:
+%
+%     \begin{funcdesc}{myfunc}{\optional{parm1\optional{, parm2}}}
+%
+\let\itk at badkey=\@undefined
+
+\newcommand{\optional}[1]{%
+  {\textnormal{\Large[}}{#1}\hspace{0.5mm}{\textnormal{\Large]}}}
+
+% This can be used when a function or method accepts an varying number
+% of arguments, such as by using the *args syntax in the parameter list.
+\newcommand{\itk at moreargs}{...}
+
+% This can be used when you don't want to document the parameters to a
+% function or method, but simply state that it's an alias for
+% something else.
+\newcommand{\itk at unspecified}{...}
+
+% C functions ------------------------------------------------------------
+% \begin{cfuncdesc}[refcount]{type}{name}{arglist}
+% Note that the [refcount] slot should only be filled in by
+% tools/anno-api.py; it pulls the value from the refcounts database.
+\newenvironment{cfuncdesc}[4][\itk at badkey]{
+  \begin{fulllineitems}
+    \item[\code{#2 \bfcode{#3}(\itk at varvars{#4})}\index{#3@{\itk at idxcode{#3()}}}]
+    \ifx#1\@undefined\else%
+      \emph{Return value: \textbf{#1}.}\\
+    \fi
+}{\end{fulllineitems}}
+
+% C variables ------------------------------------------------------------
+% \begin{cvardesc}{type}{name}
+\newenvironment{cvardesc}[2]{
+  \begin{fulllineitems}
+    \item[\code{#1 \bfcode{#2}}\index{#2@{\itk at idxcode{#2}}}]
+}{\end{fulllineitems}}
+
+% C data types -----------------------------------------------------------
+% \begin{ctypedesc}[index name]{typedef name}
+\newenvironment{ctypedesc}[2][\itk at badkey]{
+  \begin{fulllineitems}
+    \item[\bfcode{#2}%
+    \ifx#1\@undefined%
+      \index{#2@{\itk at idxcode{#2}} (C type)}
+    \else%
+      \index{#2@{\itk at idxcode{#1}} (C type)}
+    \fi]
+}{\end{fulllineitems}}
+
+% Funky macros -----------------------------------------------------------
+% \begin{csimplemacro}{name}
+% -- "simple" because it has no args; NOT for constant definitions!
+\newenvironment{csimplemacrodesc}[1]{
+  \begin{fulllineitems}
+    \item[\bfcode{#1}\index{#1@{\itk at idxcode{#1}} (macro)}]
+}{\end{fulllineitems}}
+
+% simple functions (not methods) -----------------------------------------
+% \begin{funcdesc}{name}{args}
+\newcommand{\funcline}[2]{%
+  \funclineni{#1}{#2}%
+  \index{#1@{\itk at idxcode{#1()}} (in module \itk at thismodule)}}
+\newenvironment{funcdesc}[2]{
+  \begin{fulllineitems}
+    \funcline{#1}{#2}
+}{\end{fulllineitems}}
+
+% similar to {funcdesc}, but doesn't add to the index
+\newcommand{\funclineni}[2]{\item[\code{\bfcode{#1}(\itk at varvars{#2})}]}
+\newenvironment{funcdescni}[2]{
+  \begin{fulllineitems}
+    \funclineni{#1}{#2}
+}{\end{fulllineitems}}
+
+% classes ----------------------------------------------------------------
+% \begin{classdesc}{name}{constructor args}
+\newenvironment{classdesc}[2]{
+  % Using \renewcommand doesn't work for this, for unknown reasons:
+  \global\def\itk at thisclass{#1}
+  \begin{fulllineitems}
+    \item[\strong{class }\code{\bfcode{#1}(\itk at varvars{#2})}%
+      \index{#1@{\itk at idxcode{#1}} (class in \itk at thismodule)}]
+}{\end{fulllineitems}}
+
+% \begin{classdesc*}{name}
+\newenvironment{classdesc*}[1]{
+  % Using \renewcommand doesn't work for this, for unknown reasons:
+  \global\def\itk at thisclass{#1}
+  \begin{fulllineitems}
+    \item[\strong{class }\code{\bfcode{#1}}%
+      \index{#1@{\itk at idxcode{#1}} (class in \itk at thismodule)}]
+}{\end{fulllineitems}}
+
+% \begin{excclassdesc}{name}{constructor args}
+% but indexes as an exception
+\newenvironment{excclassdesc}[2]{
+  % Using \renewcommand doesn't work for this, for unknown reasons:
+  \global\def\itk at thisclass{#1}
+  \begin{fulllineitems}
+    \item[\strong{exception }\code{\bfcode{#1}(\itk at varvars{#2})}%
+      \index{#1@{\itk at idxcode{#1}} (exception in \itk at thismodule)}]
+}{\end{fulllineitems}}
+
+% There is no corresponding {excclassdesc*} environment.  To describe
+% a class exception without parameters, use the {excdesc} environment.
+
+
+\let\itk at classbadkey=\@undefined
+
+% object method ----------------------------------------------------------
+% \begin{methoddesc}[classname]{methodname}{args}
+\newcommand{\methodline}[3][\@undefined]{
+  \methodlineni{#2}{#3}
+  \ifx#1\@undefined
+    \index{#2@{\itk at idxcode{#2()}} (\itk at thisclass\ method)}
+  \else
+    \index{#2@{\itk at idxcode{#2()}} (#1 method)}
+  \fi
+}
+\newenvironment{methoddesc}[3][\@undefined]{
+  \begin{fulllineitems}
+    \ifx#1\@undefined
+      \methodline{#2}{#3}
+    \else
+      \def\itk at thisclass{#1}
+      \methodline{#2}{#3}
+    \fi
+}{\end{fulllineitems}}
+
+% similar to {methoddesc}, but doesn't add to the index
+% (never actually uses the optional argument)
+\newcommand{\methodlineni}[3][\itk at classbadkey]{%
+  \item[\code{\bfcode{#2}(\itk at varvars{#3})}]}
+\newenvironment{methoddescni}[3][\itk at classbadkey]{
+  \begin{fulllineitems}
+    \methodlineni{#2}{#3}
+}{\end{fulllineitems}}
+
+% object data attribute --------------------------------------------------
+% \begin{memberdesc}[classname]{membername}
+\newcommand{\memberline}[2][\itk at classbadkey]{%
+  \ifx#1\@undefined
+    \memberlineni{#2}
+    \index{#2@{\itk at idxcode{#2}} (\itk at thisclass\ attribute)}
+  \else
+    \memberlineni{#2}
+    \index{#2@{\itk at idxcode{#2}} (#1 attribute)}
+  \fi
+}
+\newenvironment{memberdesc}[2][\itk at classbadkey]{
+  \begin{fulllineitems}
+    \ifx#1\@undefined
+      \memberline{#2}
+    \else
+      \def\itk at thisclass{#1}
+      \memberline{#2}
+    \fi
+}{\end{fulllineitems}}
+
+% similar to {memberdesc}, but doesn't add to the index
+% (never actually uses the optional argument)
+\newcommand{\memberlineni}[2][\itk at classbadkey]{\item[\bfcode{#2}]}
+\newenvironment{memberdescni}[2][\itk at classbadkey]{
+  \begin{fulllineitems}
+    \memberlineni{#2}
+}{\end{fulllineitems}}
+
+% For exceptions: --------------------------------------------------------
+% \begin{excdesc}{name}
+%  -- for constructor information, use excclassdesc instead
+\newenvironment{excdesc}[1]{
+  \begin{fulllineitems}
+    \item[\strong{exception }\bfcode{#1}%
+          \index{#1@{\itk at idxcode{#1}} (exception in \itk at thismodule)}]
+}{\end{fulllineitems}}
+
+% Module data or constants: ----------------------------------------------
+% \begin{datadesc}{name}
+\newcommand{\dataline}[1]{%
+  \datalineni{#1}\index{#1@{\itk at idxcode{#1}} (data in \itk at thismodule)}}
+\newenvironment{datadesc}[1]{
+  \begin{fulllineitems}
+    \dataline{#1}
+}{\end{fulllineitems}}
+
+% similar to {datadesc}, but doesn't add to the index
+\newcommand{\datalineni}[1]{\item[\bfcode{#1}]\nopagebreak}
+\newenvironment{datadescni}[1]{
+  \begin{fulllineitems}
+    \datalineni{#1}
+}{\end{fulllineitems}}
+
+% bytecode instruction ---------------------------------------------------
+% \begin{opcodedesc}{name}{var}
+% -- {var} may be {}
+\newenvironment{opcodedesc}[2]{
+  \begin{fulllineitems}
+    \item[\bfcode{#1}\quad\var{#2}]
+}{\end{fulllineitems}}
+
+
+\newcommand{\nodename}[1]{\label{#1}}
+
+% For these commands, use \command{} to get the typography right, not
+% {\command}.  This works better with the texinfo translation.
+\newcommand{\ABC}{{\sc abc}}
+\newcommand{\UNIX}{{\sc Unix}}
+\newcommand{\POSIX}{POSIX}
+\newcommand{\ASCII}{{\sc ascii}}
+\newcommand{\Cpp}{C\protect\raisebox{.18ex}{++}}
+\newcommand{\C}{C}
+\newcommand{\EOF}{{\sc eof}}
+\newcommand{\NULL}{\constant{NULL}}
+\newcommand{\infinity}{\ensuremath{\infty}}
+\newcommand{\plusminus}{\ensuremath{\pm}}
+\newcommand{\menuselection}[1]{{\def\sub{ \ensuremath{>} }#1}}
+
+% Also for consistency: spell Insight "Insight", not "insight"!
+
+% code is the most difficult one...
+\newcommand{\code}[1]{\textrm{\@vobeyspaces\@noligs\def\{{\char`\{}\def\}{\char`\}}\def\~{\char`\~}\def\^{\char`\^}\def\e{\char`\\}\def\${\char`\$}\def\#{\char`\#}\def\&{\char`\&}\def\%{\char`\%}%
+\texttt{#1}}}
+
+\newcommand{\bfcode}[1]{\code{\bfseries#1}} % bold-faced code font
+\newcommand{\kbd}[1]{\code{#1}}
+\newcommand{\samp}[1]{`\code{#1}'}
+% This weird definition of \var{} allows it to always appear in roman
+% italics, and won't get funky in code fragments when we play around
+% with fonts.  This also works directly in math mode.
+\newcommand{\var}[1]{%
+  \ifmmode%
+    \hbox{\normalsize\textrm{\textit{#1\/}}}%
+  \else%
+    \normalsize\textrm{\textit{#1\/}}%
+  \fi%
+}
+\renewcommand{\emph}[1]{{\em #1}}
+\newcommand{\dfn}[1]{\emph{#1}}
+\newcommand{\strong}[1]{{\bf #1}}
+% let's experiment with a new font:
+\newcommand{\file}[1]{`{\small\textsf{#1}}'}
+\newcommand{\filenq}[1]{{\small\textsf{#1}}}
+
+% Use this def/redef approach for \url{} since hyperref defined this already,
+% but only if we actually used hyperref:
+\@ifundefined{pdfannotlink}{
+  \newcommand{\itk at url}[1]{\mbox{\small\textsf{#1}}}
+}{
+  \newcommand{\itk at url}[1]{{%
+    \pdfannotlink attr{/Border [0 0 0]} user{/S /URI /URI (#1)}%
+    \itk at LinkColor%                              color of the link text
+    \mbox{\small\textsf{#1}}%
+    \itk at NormalColor%                    Turn it back off; these are declarative
+    \pdfendlink}%                       and don't appear bound to the current
+  }%                                    formatting "box".
+}
+\let\url=\itk at url
+\newcommand{\email}[1]{{\small\textsf{#1}}}
+\newcommand{\newsgroup}[1]{{\small\textsf{#1}}}
+
+\newcommand{\itk at varvars}[1]{{%
+  {\let\unspecified=\itk at unspecified%
+   \let\moreargs=\itk at moreargs%
+   \var{#1}}}}
+
+% I'd really like to get rid of this!
+\newif\iftexi\texifalse
+
+% This is used to get l2h to put the copyright and abstract on
+% a separate HTML page.
+\newif\ifhtml\htmlfalse
+
+
+% These should be used for all references to identifiers which are
+% used to refer to instances of specific language constructs.  See the
+% names for specific semantic assignments.
+%
+% For now, don't do anything really fancy with them; just use them as
+% logical markup.  This might change in the future.
+%
+\newcommand{\module}[1]{\texttt{#1}}
+\newcommand{\keyword}[1]{\texttt{#1}}
+\newcommand{\exception}[1]{\texttt{#1}}
+\newcommand{\class}[1]{\texttt{#1}}
+\newcommand{\function}[1]{\texttt{#1}}
+\newcommand{\member}[1]{\texttt{#1}}
+\newcommand{\method}[1]{\texttt{#1}}
+
+\newcommand{\pytype}[1]{#1}             % built-in Insight type
+
+\newcommand{\cfunction}[1]{\texttt{#1}}
+\newcommand{\ctype}[1]{\texttt{#1}}     % C struct or typedef name
+\newcommand{\cdata}[1]{\texttt{#1}}     % C variable, typically global
+
+\newcommand{\mimetype}[1]{{\small\textsf{#1}}}
+% The \! is a "negative thin space" in math mode.
+\newcommand{\regexp}[1]{%
+  {\tiny$^{^\lceil}\!\!$%
+   {\normalsize\code{#1}}%
+   $\!\rfloor\!$%
+  }}
+\newcommand{\envvar}[1]{%
+  #1%
+  \index{#1@{#1}}%
+  \index{environment variables!{#1}}%
+}
+\newcommand{\makevar}[1]{#1}            % variable in a Makefile
+\newcommand{\character}[1]{\samp{#1}}
+
+% constants defined in Insight modules or C headers, not language constants:
+\newcommand{\constant}[1]{\code{#1}}    % manifest constant, not syntactic
+
+\newcommand{\manpage}[2]{{\emph{#1}(#2)}}
+\newcommand{\pep}[1]{PEP #1\index{Insight Enhancement Proposals!PEP #1}}
+\newcommand{\rfc}[1]{RFC #1\index{RFC!RFC #1}}
+\newcommand{\program}[1]{\strong{#1}}
+\newcommand{\programopt}[1]{\strong{#1}}
+% Note that \longprogramopt provides the '--'!
+\newcommand{\longprogramopt}[1]{\strong{-{}-#1}}
+% \ulink{link text}{URL}
+\newcommand{\ulink}[2]{#1}
+
+% cited titles:  \citetitle{Title of Work}
+%       online:  \citetitle[url-to-resource]{Title of Work}
+\newcommand{\citetitle}[2][URL]{\emph{#2}}
+
+
+\newenvironment{productionlist}[1][\itk at badkey]{
+  \def\optional##1{{\Large[}##1{\Large]}}
+  \def\production##1##2{\code{##1}&::=&\code{##2}\\}
+  \def\orgroup##1{{\def\or{\textbar\ }##1}}
+  \def\token##1{##1}
+  \begin{center}
+    \begin{tabular}{lcl}
+}{%
+    \end{tabular}
+  \end{center}
+}
+
+% Deprecation stuff.
+% Should be extended to allow an index / list of deprecated stuff.  But
+% there's a lot of stuff that needs to be done to make that automatable.
+%
+% First parameter is the release number that deprecates the feature, the
+% second is the action the should be taken by users of the feature.
+%
+% Example:
+%  \deprecated{1.5.1}{Use \method{frobnicate()} instead.}
+%
+\newcommand{\deprecated}[2]{%
+  \strong{Deprecated since release #1.}  #2\par}
+
+% New stuff.
+% This should be used to mark things which have been added to the
+% development tree but that aren't in the release, but are documented.
+% This allows release of documentation that already includes updated
+% descriptions.  Place at end of descriptor environment.
+%
+% Example:
+%  \versionadded{1.5.2}
+%  \versionchanged[short explanation]{2.0}
+%
+\newcommand{\versionadded}[2][\itk at badkey]{%
+  \ifx#1\@undefined%
+    {  New in version #2.  }%
+  \else%
+    {  New in version #2:\ #1.  }%
+  \fi%
+}
+\newcommand{\versionchanged}[2][\itk at badkey]{%
+  \ifx#1\@undefined%
+    {  Changed in version #2.  }%
+  \else%
+    {  Changed in version #2:\ #1.  }%
+  \fi%
+}
+
+
+% Tables.
+%
+\newenvironment{tableii}[4]{%
+  \begin{center}%
+    \def\lineii##1##2{\csname#2\endcsname{##1}&##2\\}%
+    \begin{tabular}{#1}\strong{#3}&\strong{#4} \\* \hline%
+}{%
+    \end{tabular}%
+  \end{center}%
+}
+
+\newenvironment{longtableii}[4]{%
+  \begin{center}%
+    \def\lineii##1##2{\csname#2\endcsname{##1}&##2\\}%
+    \begin{longtable}[c]{#1}\strong{#3}&\strong{#4} \\* \hline\endhead%
+}{%
+    \end{longtable}%
+  \end{center}%
+}
+
+\newenvironment{tableiii}[5]{%
+  \begin{center}%
+    \def\lineiii##1##2##3{\csname#2\endcsname{##1}&##2&##3\\}%
+    \begin{tabular}{#1}\strong{#3}&\strong{#4}&\strong{#5} \\%
+      \hline%
+}{%
+    \end{tabular}%
+  \end{center}%
+}
+
+\newenvironment{longtableiii}[5]{%
+  \begin{center}%
+    \def\lineiii##1##2##3{\csname#2\endcsname{##1}&##2&##3\\}%
+    \begin{longtable}[c]{#1}\strong{#3}&\strong{#4}&\strong{#5} \\%
+      \hline\endhead%
+}{%
+    \end{longtable}%
+  \end{center}%
+}
+
+\newenvironment{tableiv}[6]{%
+  \begin{center}%
+    \def\lineiv##1##2##3##4{\csname#2\endcsname{##1}&##2&##3&##4\\}%
+    \begin{tabular}{#1}\strong{#3}&\strong{#4}&\strong{#5}&\strong{#6} \\%
+      \hline%
+}{%
+    \end{tabular}%
+  \end{center}%
+}
+
+\newenvironment{longtableiv}[6]{%
+  \begin{center}%
+    \def\lineiv##1##2##3##4{\csname#2\endcsname{##1}&##2&##3&##4\\}%
+    \begin{longtable}[c]{#1}\strong{#3}&\strong{#4}&\strong{#5}&\strong{#6}%
+      \\%
+      \hline\endhead%
+}{%
+    \end{longtable}%
+  \end{center}%
+}
+
+\newenvironment{tablev}[7]{%
+  \begin{center}%
+    \def\linev##1##2##3##4##5{\csname#2\endcsname{##1}&##2&##3&##4&##5\\}%
+    \begin{tabular}{#1}\strong{#3}&\strong{#4}&\strong{#5}&\strong{#6}&\strong{#7} \\%
+      \hline%
+}{%
+    \end{tabular}%
+  \end{center}%
+}
+
+\newenvironment{longtablev}[7]{%
+  \begin{center}%
+    \def\linev##1##2##3##4##5{\csname#2\endcsname{##1}&##2&##3&##4&##5\\}%
+    \begin{longtable}[c]{#1}\strong{#3}&\strong{#4}&\strong{#5}&\strong{#6}&\strong{#7}%
+      \\%
+      \hline\endhead%
+}{%
+    \end{longtable}%
+  \end{center}%
+}
+
+% Cross-referencing (AMK, new impl. FLD)
+% Sample usage:
+%  \begin{seealso}
+%    \seemodule{rand}{Uniform random number generator.}; % Module xref
+%    \seetext{\emph{Encyclopedia Britannica}}.           % Ref to a book
+%
+%    % A funky case: module name contains '_'; have to supply an optional key
+%    \seemodule[copyreg]{copy_reg}{Interface constructor registration for
+%                                  \module{pickle}.}
+%  \end{seealso}
+%
+% Note that the last parameter for \seemodule and \seetext should be complete
+% sentences and be terminated with the proper punctuation.
+
+\@ifundefined{pdfannotlink}{%
+  \newcommand{\itk at seemodule}[3][\itk at modulebadkey]{%
+    \par%
+    \ifx\itk at modulebadkey#1\def\itk at modulekey{#2}\else\def\itk at modulekey{#1}\fi%
+    \begin{fulllineitems}
+      \item[Module \module{#2} (section \ref{module-\itk at modulekey}):]
+      #3
+    \end{fulllineitems}
+  }
+}{\newcommand{\itk at seemodule}[3][\itk at modulebadkey]{%
+    \par%
+    \ifx\itk at modulebadkey#1\def\itk at modulekey{#2}\else\def\itk at modulekey{#1}\fi%
+    \begin{fulllineitems}
+      \item[\itk at linkToName{label-module-\itk at modulekey}{Module \module{#2}}
+            (section \ref{module-\itk at modulekey}):]
+      #3
+    \end{fulllineitems}
+  }
+}
+% \seetitle[url]{title}{why it's interesting}
+\newcommand{\itk at seetitle}[3][\itk at modulebadkey]{%
+  \par
+  \begin{fulllineitems}
+    \item[\citetitle{#2}]
+    \ifx\itk at modulebadkey#1\else
+      \item[{\small{(\url{#1})}}]
+    \fi
+    #3
+  \end{fulllineitems}
+}
+% \seepep{number}{title}{why it's interesting}
+\newcommand{\itk at seepep}[3]{%
+  \par%
+  \begin{fulllineitems}
+    \item[\pep{#1}, ``\emph{#2}'']
+    #3
+  \end{fulllineitems}
+}
+% \seerfc{number}{title}{why it's interesting}
+\newcommand{\itk at seerfc}[3]{%
+  \par%
+  \begin{fulllineitems}
+    \item[\rfc{#1}, ``\emph{#2}'']
+    #3
+  \end{fulllineitems}
+}
+% \seeurl{url}{why it's interesting}
+\newcommand{\itk at seeurl}[2]{%
+  \par%
+  \begin{fulllineitems}
+    \item[\url{#1}]
+    #2
+  \end{fulllineitems}
+}
+\newenvironment{seealso}[0]{
+  \par
+  \strong{See Also:}\par
+  \def\seetext##1{\par{##1}}
+  \let\seemodule=\itk at seemodule
+  \let\seepep=\itk at seepep
+  \let\seerfc=\itk at seerfc
+  \let\seetitle=\itk at seetitle
+  \let\seeurl=\itk at seeurl
+}{\par}
+
+
+% Allow the Insight release number to be specified independently of the
+% \date{}.  This allows the date to reflect the document's date and
+% release to specify the Insight release that is documented.
+%
+\newcommand{\itk at release}{}
+\newcommand{\version}{}
+\newcommand{\shortversion}{}
+\newcommand{\releaseinfo}{}
+\newcommand{\releasename}{Release}
+\newcommand{\release}[1]{%
+  \renewcommand{\itk at release}{\releasename\space\version}%
+  \renewcommand{\version}{#1}}
+\newcommand{\setshortversion}[1]{%
+  \renewcommand{\shortversion}{#1}}
+\newcommand{\setreleaseinfo}[1]{%
+  \renewcommand{\releaseinfo}{#1}}
+
+% Allow specification of the author's address separately from the
+% author's name.  This can be used to format them differently, which
+% is a good thing.
+%
+\newcommand{\itk at authoraddress}{}
+\newcommand{\authoraddress}[1]{\renewcommand{\itk at authoraddress}{#1}}
+\let\developersaddress=\authoraddress
+\let\developer=\author
+\let\developers=\author
+
+% This sets up the fancy chapter headings that make the documents look
+% at least a little better than the usual LaTeX output.
+%
+\@ifundefined{ChTitleVar}{}{
+  \ChNameVar{\raggedleft\normalsize\itk at HeaderFamily}
+  \ChNumVar{\raggedleft \bfseries\Large\itk at HeaderFamily}
+  \ChTitleVar{\raggedleft \rm\Huge\itk at HeaderFamily}
+  % This creates chapter heads without the leading \vspace*{}:
+  \def\@makechapterhead#1{%
+    {\parindent \z@ \raggedright \normalfont
+      \ifnum \c at secnumdepth >\m at ne
+        \DOCH
+      \fi
+      \interlinepenalty\@M
+      \DOTI{#1}
+    }
+  }
+}
+
+
+% Definition lists; requested by AMK for HOWTO documents.  Probably useful
+% elsewhere as well, so keep in in the general style support.
+%
+\newenvironment{definitions}{%
+  \begin{description}%
+  \def\term##1{\item[##1]\mbox{}\\*[0mm]}
+}{%
+  \end{description}%
+}
+
+% Tell TeX about pathological hyphenation cases:
+\hyphenation{Base-HTTP-Re-quest-Hand-ler}
+
+
+%
+%  Commands for adding the link reference to the URL in the Insight Journal
+%
+\newcommand{\urlhandle}[1]{
+\url{http://hdl.handle.net/10380/#1}}
+
+\newcommand{\IJhandle}[1]{
+Latest version available at the \href{http://www.insight-journal.org}{Insight Journal} [\urlhandle{#1}]\\
+Distributed under \href{http://creativecommons.org/licenses/by/3.0/us/}{Creative Commons Attribution License}}
+
+\newcommand{\IJhandlefooter}[1]{
+\fancyfoot[CO,CE]{
+  \IJhandle{#1} }}
+
+\newcommand{\IJhandlenote}[1]{
+  \fbox{ \parbox[t][1.5cm][t]{\textwidth}{\center{\IJhandle{#1}}} }}
diff --git a/Wrapping/R/Packaging/SimpleITK/vignettes/SimpleITK_tutorial.Rnw b/Wrapping/R/Packaging/SimpleITK/vignettes/SimpleITK_tutorial.Rnw
new file mode 100644
index 0000000..00b946d
--- /dev/null
+++ b/Wrapping/R/Packaging/SimpleITK/vignettes/SimpleITK_tutorial.Rnw
@@ -0,0 +1,260 @@
+%\documentclass{article}
+\documentclass{InsightArticle}
+
+% to be able to use options in graphics
+\ifx\pdfoutput\undefined
+\usepackage[dvips,
+bookmarks,
+bookmarksopen,
+backref,
+colorlinks,linkcolor={blue},citecolor={blue},urlcolor={blue},
+]{hyperref}
+\usepackage[dvips]{graphicx}
+\else
+\usepackage[bookmarks,
+bookmarksopen,
+backref,
+colorlinks,linkcolor={blue},citecolor={blue},urlcolor={blue},
+]{hyperref}
+\usepackage[pdftex]{graphicx}
+\fi
+\SweaveOpts{keep.source=TRUE}
+% for pseudo code
+\usepackage{listings}
+% subfigures
+\usepackage{subfigure}
+
+\title{SimpleITK in R}
+%\release{0.00}
+
+% At minimum, give your name and an email address.  You can include a
+% snail-mail address if you like.
+\author{Richard Beare}
+%\authoraddress{Richard.Beare at monash.edu\\Department of Medicine\\Monash University\\and\\Developmental Imaging\\Murdoch Childrens Research Institute\\Melbourne\\Australia}
+\begin{document}
+\maketitle
+
+%\ifhtml
+%\chapter*{Front Matter\label{front}}
+%\fi
+\begin{abstract}
+\noindent
+{\em R}, also known as ``Gnu S'' is a widely used, open source,
+language based environment for statistics and computational
+modelling. It will be reasonably familiar to users of other
+interactive, interpreted environments, like Matlab or python. This
+article provides an introduction to the SimpleITK package that has
+been built using the Swig generated wrapping of the SimpleITK
+library. Note that some of the text is written for readers unfamiliar
+with {\em R} and can be skipped by experienced users.
+\end{abstract}
+
+\tableofcontents
+
+\section{Introduction}
+{\em R} is an advanced language environment that supports extension
+via an advanced package mechanism and object-oriented and generic
+programming mechanisms. The traditional application domain of {\em R}
+is in interactive statistical analysis, but the language is general
+purpose and facilities are available to support many forms of
+computational work. There are already a number of packages for medical
+imaging and general purpose imaging, but none with the extent of low
+level operators provided by SimpleITK. {\em R} has quite nice features
+that makes interfacing to objects like images quite convenient. This
+package makes extensive use of {\em external references} and language
+operator overloading facilities.
+
+\section{Very basic {\em R} tutorial}
+{\em R} has extensive online documentation - see the Documentation
+links on the r-project pages. Here are some basic concepts to start
+the project. Skip to the next section if you are already familiar with {\em R}.
+
+\begin{itemize}
+\item Assignment - traditionally the assignment operator is {\tt <-}, but {\tt =} can be used in most places now:
+<<>>=
+a <- 1  # assign a variable
+b = a
+@@
+  \item Creating vectors - everything in {\em R} is at least a vector, and vectors can contain numbers or strings:
+<<>>=
+a <- c(1,2,34, 20, 10)
+a
+b = c('a', 'k', 'hello')
+b
+d <- 1:10
+d
+@@
+    {\em c} is the concatenate operator and can be used with vectors and lists.
+  \item Displaying objects - as seen above, typing a variable name invokes the generic {\em show} method, which typically provides an informative display of an obje. We'll see how this comes in handy later with images.
+  \item Creating arrays
+<<>>=
+b<-array(1:20, dim=c(5,4))
+b
+@@
+  \item Vector and array subsetting - there are a rich set of these operations with capabilities similar to Matlab. Indexing starts from 1.
+<<>>=
+a[1:2]
+a[3:1]
+a[-1]  # delete first element
+b[1,]  # first row of b
+b[1,c(1,4,2)]
+@@
+    \item Lists - can contain different object types
+<<>>=
+L1 = list('a', 1, 'hello')
+L1
+is.list(L1)
+L1[[2]]
+@@
+Notice that we are using the double bracket operator to access list elements.
+
+\item Naming components - so far we have been illustrating standard, index-based, access. It is possible to name array, vector and list components which provides options for clear accessing.
+<<>>=
+L1 <- list(first=1, second='hello', third=b)
+L1$second
+L1[["first"]]
+
+colnames(b) <- c("first", "second", "third", "last")
+b[,"last"]
+@@
+These options provide useful ways of keeping consistency in complex analyses with evolving data structures.
+\item Other data structures. The main structure not discussed here is a special list, called a data frame, that is widely used by the statistical model-fitting procedures. Classes, methods and other language facilities are also available, but used mainly by package developers.
+\end{itemize}
+
+\section{Getting started with SimpleITK}
+Building and installation instructions are later. Lets jump straight into some examples. In order to display images you need to install ImageJ with the nifti plugin, and be in your path. The results in this docment are displayed slightly differently, using internal {\em R} plotting routines, for compatability with the Sweave document processing.
+
+\subsection{Image anatomy and access methods}
+\begin{itemize}
+\item Load the SimpleITK library. This may require that the {\tt R\_LIBS} environment variable is set.
+<<>>=
+library(SimpleITK)
+@@
+<<echo=FALSE>>=
+# override show function
+setMethod('show', '_p_itk__simple__Image',
+          function(object)
+          {
+            require(grid)
+            a <- t(as.array(object))
+            rg <- range(a)
+            A <- (a-rg[1])/(rg[2]-rg[1])
+            dd <- dim(a)
+            sp <- object$GetSpacing()
+
+            grid.raster(A)
+          }
+
+          )
+
+@@
+\item Load an image
+<<>>=
+im <- ReadImage(system.file("data/cthead1.png", package="SimpleITK"))
+@@
+\item Display
+<<fig=TRUE>>=
+im
+@@
+\item Get some information about the image
+<<>>=
+print(im)
+im$GetSpacing()
+im$GetSize()
+@@
+These vector quantities are translated directly to R vectors. The same applies to filters, as we'll see later.
+\item Get one pixel value
+<<>>=
+im[100, 120]
+@@
+\item Extract the first 100 columns
+<<fig=TRUE>>=
+im[1:100,]
+@@
+\item First 100 columns, then same data flipped
+<<fig=TRUE>>=
+im[c(1:100,100:1),]
+@@
+\item Remove the first 100 rows
+<<fig=TRUE>>=
+im[,-(1:100)]
+@@
+\item Subsample by 2
+<<fig=TRUE>>=
+im[seq(1,256, by=2), seq(1,256, by=2)]
+@@
+
+As you can see, we can use array acess techniques to images. The results of each of these operations is an image, not an array. Evidently, we can do some pretty crazy things using this notation, which means that it is very difficult to decide what to do with image metadata, such as spacing and origin. Currently nothing clever is being done with either - spacing is left as per the input, which could easily be wrong. Origin is left as default image constructor.
+\item Lets explore the image class in a little more detail to find out what access methods are available:
+<<>>=
+getMethod('$', class(im))
+@@
+This provides a list of accessor functions that can be used via the \$ notation illustrated above. Most classes create by the swig processing work this way.
+\item Finally, lets allocate an image
+<<>>=
+im2 <- Image(10,10, 20, 'sitkUInt16')
+print(im2)
+@@
+
+The important points to note here is that the enumerated type describing the pixel type is represented as a string.
+\item Translating images to {\em R} arrays:
+<<>>=
+arr <- as.array(im)
+class(im)
+class(arr)
+# now we can do something crazy
+s <- svd(arr)
+@@
+\item And back again
+<<fig=TRUE>>=
+nim <- as.image(s$u)
+nim
+@@
+
+Points to note here - {\em R} only supports integer and double types (logical types are also integers). Therefore conversion of any image will end up as an array of one of these types. Similarly, conversion of arrays to images also ends up as one of these types. By default, any {\em R} matrix will be double precision, but can be coerced to integer using the {\em as.integer} or {\em storage.mode} functions. Image pixel types can be converted using the {\em Cast} filters.
+
+\end{itemize}
+
+\subsection{Image operations with Simple ITK classes}
+Finally, onto the crux of the matter. Let's look at doing some image filtering. There are two basic approaches with SimpleITK - the procedural and the filter approach
+\begin{itemize}
+\item Gaussian blurring:
+<<fig=TRUE>>=
+res <- SmoothingRecursiveGaussian(im, 3)
+res
+@@
+\item or
+<<fig=TRUE>>=
+filt <- SmoothingRecursiveGaussianImageFilter()
+# check the accessors
+getMethod('$', class(filt))
+filt$SetSigma(5)
+filt$NormalizeAcrossScaleOn()
+res2 <- filt$Execute(im)
+res2
+@@
+
+Notice that we can explore the accessor functions in the same way as images. Also note that calling the accessor functions without assigning the result to a variable causes the {\em show} method to display a representation of the object.
+\item Cryptic error messages - unfortunately it isn't easy to figure out what arguments are expected by the procedural interface. For example, if we assumed that the sigma parameter was a vector, we'd get the following unhelpful response:
+<<>>=
+try(res3 <- SmoothingRecursiveGaussian(im, c(3, 3)))
+geterrmessage()
+@@
+Note that the {\em try} and {\em geterrmessage} commands are to allow Sweave to complete. They aren't needed in interactive sessions.
+\end{itemize}
+
+
+
+\subsection{Still to come}
+Image arithmetic.
+
+Testing.
+
+\subsection{Caveats}
+Beware of images from saved workspaces. External references, which is how images are represented, are not preserved when objects are saved to disk. Thus, attempting to use images from a saved workspace will result in ungraceful crashes.
+
+\section{Building and Installing}
+Fetch SimpleITK from the git repository. Visit \url{https://www.itk.org/SimpleITKDoxygen/html/Wrapping.html} for the latest instructions on building and installing.
+\section{Development}
+
+\end{document}
diff --git a/Wrapping/R/Packaging/SimpleITK/vignettes/algorithm.sty b/Wrapping/R/Packaging/SimpleITK/vignettes/algorithm.sty
new file mode 100644
index 0000000..58d5bff
--- /dev/null
+++ b/Wrapping/R/Packaging/SimpleITK/vignettes/algorithm.sty
@@ -0,0 +1,78 @@
+% ALGORITHM STYLE -- Released 8 April 1996
+%    for LaTeX-2e
+% Copyright -- 1994 Peter Williams
+% E-mail Peter.Williams at dsto.defence.gov.au
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{algorithm}
+\typeout{Document Style `algorithm' - floating environment}
+
+\RequirePackage{float}
+\RequirePackage{ifthen}
+\newcommand{\ALG at within}{nothing}
+\newboolean{ALG at within}
+\setboolean{ALG at within}{false}
+\newcommand{\ALG at floatstyle}{ruled}
+\newcommand{\ALG at name}{Algorithm}
+\newcommand{\listalgorithmname}{List of \ALG at name s}
+
+% Declare Options
+% first appearance
+\DeclareOption{plain}{
+  \renewcommand{\ALG at floatstyle}{plain}
+}
+\DeclareOption{ruled}{
+  \renewcommand{\ALG at floatstyle}{ruled}
+}
+\DeclareOption{boxed}{
+  \renewcommand{\ALG at floatstyle}{boxed}
+}
+% then numbering convention
+\DeclareOption{part}{
+  \renewcommand{\ALG at within}{part}
+  \setboolean{ALG at within}{true}
+}
+\DeclareOption{chapter}{
+  \renewcommand{\ALG at within}{chapter}
+  \setboolean{ALG at within}{true}
+}
+\DeclareOption{section}{
+  \renewcommand{\ALG at within}{section}
+  \setboolean{ALG at within}{true}
+}
+\DeclareOption{subsection}{
+  \renewcommand{\ALG at within}{subsection}
+  \setboolean{ALG at within}{true}
+}
+\DeclareOption{subsubsection}{
+  \renewcommand{\ALG at within}{subsubsection}
+  \setboolean{ALG at within}{true}
+}
+\DeclareOption{nothing}{
+  \renewcommand{\ALG at within}{nothing}
+  \setboolean{ALG at within}{true}
+}
+\DeclareOption*{\edef\ALG at name{\CurrentOption}}
+
+% ALGORITHM
+%
+\ProcessOptions
+\floatstyle{\ALG at floatstyle}
+\ifthenelse{\boolean{ALG at within}}{
+  \ifthenelse{\equal{\ALG at within}{part}}
+     {\newfloat{algorithm}{htbp}{loa}[part]}{}
+  \ifthenelse{\equal{\ALG at within}{chapter}}
+     {\newfloat{algorithm}{htbp}{loa}[chapter]}{}
+  \ifthenelse{\equal{\ALG at within}{section}}
+     {\newfloat{algorithm}{htbp}{loa}[section]}{}
+  \ifthenelse{\equal{\ALG at within}{subsection}}
+     {\newfloat{algorithm}{htbp}{loa}[subsection]}{}
+  \ifthenelse{\equal{\ALG at within}{subsubsection}}
+     {\newfloat{algorithm}{htbp}{loa}[subsubsection]}{}
+  \ifthenelse{\equal{\ALG at within}{nothing}}
+     {\newfloat{algorithm}{htbp}{loa}}{}
+}{
+  \newfloat{algorithm}{htbp}{loa}
+}
+\floatname{algorithm}{\ALG at name}
+
+\newcommand{\listofalgorithms}{\listof{algorithm}{\listalgorithmname}}
diff --git a/Wrapping/R/Packaging/SimpleITK/vignettes/algorithmic.sty b/Wrapping/R/Packaging/SimpleITK/vignettes/algorithmic.sty
new file mode 100644
index 0000000..9a68540
--- /dev/null
+++ b/Wrapping/R/Packaging/SimpleITK/vignettes/algorithmic.sty
@@ -0,0 +1,143 @@
+% ALGORITHMIC STYLE -- Released 8 APRIL 1996
+%    for LaTeX version 2e
+% Copyright -- 1994 Peter Williams
+% E-mail PeterWilliams at dsto.defence.gov.au
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{algorithmic}
+\typeout{Document Style `algorithmic' - environment}
+%
+\RequirePackage{ifthen}
+\RequirePackage{calc}
+\newboolean{ALC at noend}
+\setboolean{ALC at noend}{false}
+\newcounter{ALC at line}
+\newcounter{ALC at rem}
+\newlength{\ALC at tlm}
+%
+\DeclareOption{noend}{\setboolean{ALC at noend}{true}}
+%
+\ProcessOptions
+%
+% ALGORITHMIC
+\newcommand{\algorithmicrequire}{\textbf{Require:}}
+\newcommand{\algorithmicensure}{\textbf{Ensure:}}
+\newcommand{\algorithmiccomment}[1]{\{#1\}}
+\newcommand{\algorithmicend}{\textbf{end}}
+\newcommand{\algorithmicif}{\textbf{if}}
+\newcommand{\algorithmicthen}{\textbf{then}}
+\newcommand{\algorithmicelse}{\textbf{else}}
+\newcommand{\algorithmicelsif}{\algorithmicelse\ \algorithmicif}
+\newcommand{\algorithmicendif}{\algorithmicend\ \algorithmicif}
+\newcommand{\algorithmicfor}{\textbf{for}}
+\newcommand{\algorithmicforall}{\textbf{for all}}
+\newcommand{\algorithmicdo}{\textbf{do}}
+\newcommand{\algorithmicendfor}{\algorithmicend\ \algorithmicfor}
+\newcommand{\algorithmicwhile}{\textbf{while}}
+\newcommand{\algorithmicendwhile}{\algorithmicend\ \algorithmicwhile}
+\newcommand{\algorithmicloop}{\textbf{loop}}
+\newcommand{\algorithmicendloop}{\algorithmicend\ \algorithmicloop}
+\newcommand{\algorithmicrepeat}{\textbf{repeat}}
+\newcommand{\algorithmicuntil}{\textbf{until}}
+\def\ALC at item[#1]{%
+\if at noparitem \@donoparitem
+  \else \if at inlabel \indent \par \fi
+         \ifhmode \unskip\unskip \par \fi
+         \if at newlist \if at nobreak \@nbitem \else
+                        \addpenalty\@beginparpenalty
+                        \addvspace\@topsep \addvspace{-\parskip}\fi
+           \else \addpenalty\@itempenalty \addvspace\itemsep
+          \fi
+    \global\@inlabeltrue
+\fi
+\everypar{\global\@minipagefalse\global\@newlistfalse
+          \if at inlabel\global\@inlabelfalse \hskip -\parindent \box\@labels
+             \penalty\z@ \fi
+          \everypar{}}\global\@nobreakfalse
+\if at noitemarg \@noitemargfalse \if at nmbrlist \refstepcounter{\@listctr}\fi \fi
+\sbox\@tempboxa{\makelabel{#1}}%
+\global\setbox\@labels
+ \hbox{\unhbox\@labels \hskip \itemindent
+       \hskip -\labelwidth \hskip -\ALC at tlm
+       \ifdim \wd\@tempboxa >\labelwidth
+                \box\@tempboxa
+          \else \hbox to\labelwidth {\unhbox\@tempboxa}\fi
+       \hskip \ALC at tlm}\ignorespaces}
+%
+\newenvironment{algorithmic}[1][0]{
+\let\@item\ALC at item
+  \newcommand{\ALC at lno}{%
+\ifthenelse{\equal{\arabic{ALC at rem}}{0}}
+{{\footnotesize \arabic{ALC at line}:}}{}%
+}
+\let\@listii\@listi
+\let\@listiii\@listi
+\let\@listiv\@listi
+\let\@listv\@listi
+\let\@listvi\@listi
+\let\@listvii\@listi
+  \newenvironment{ALC at g}{
+    \begin{list}{\ALC at lno}{ \itemsep\z@ \itemindent\z@
+    \listparindent\z@ \rightmargin\z@
+    \topsep\z@ \partopsep\z@ \parskip\z@\parsep\z@
+    \leftmargin 1em
+    \addtolength{\ALC at tlm}{\leftmargin}
+    }
+  }
+  {\end{list}}
+  \newcommand{\ALC at it}{\addtocounter{ALC at line}{1}\addtocounter{ALC at rem}{1}\ifthenelse{\equal{\arabic{ALC at rem}}{#1}}{\setcounter{ALC at rem}{0}}{}\item}
+  \newcommand{\ALC at com}[1]{\ifthenelse{\equal{##1}{default}}%
+{}{\ \algorithmiccomment{##1}}}
+  \newcommand{\REQUIRE}{\item[\algorithmicrequire]}
+  \newcommand{\ENSURE}{\item[\algorithmicensure]}
+  \newcommand{\STATE}{\ALC at it}
+  \newcommand{\COMMENT}[1]{\algorithmiccomment{##1}}
+  \newenvironment{ALC at if}{\begin{ALC at g}}{\end{ALC at g}}
+  \newenvironment{ALC at for}{\begin{ALC at g}}{\end{ALC at g}}
+  \newenvironment{ALC at whl}{\begin{ALC at g}}{\end{ALC at g}}
+  \newenvironment{ALC at loop}{\begin{ALC at g}}{\end{ALC at g}}
+  \newenvironment{ALC at rpt}{\begin{ALC at g}}{\end{ALC at g}}
+  \renewcommand{\\}{\@centercr}
+  \newcommand{\IF}[2][default]{\ALC at it\algorithmicif\ ##2\ \algorithmicthen%
+\ALC at com{##1}\begin{ALC at if}}
+  \newcommand{\ELSE}[1][default]{\end{ALC at if}\ALC at it\algorithmicelse%
+\ALC at com{##1}\begin{ALC at if}}
+  \newcommand{\ELSIF}[2][default]%
+{\end{ALC at if}\ALC at it\algorithmicelsif\ ##2\ \algorithmicthen%
+\ALC at com{##1}\begin{ALC at if}}
+  \newcommand{\FOR}[2][default]{\ALC at it\algorithmicfor\ ##2\ \algorithmicdo%
+\ALC at com{##1}\begin{ALC at for}}
+  \newcommand{\FORALL}[2][default]{\ALC at it\algorithmicforall\ ##2\ %
+\algorithmicdo%
+\ALC at com{##1}\begin{ALC at for}}
+  \newcommand{\WHILE}[2][default]{\ALC at it\algorithmicwhile\ ##2\ %
+\algorithmicdo%
+\ALC at com{##1}\begin{ALC at whl}}
+  \newcommand{\LOOP}[1][default]{\ALC at it\algorithmicloop%
+\ALC at com{##1}\begin{ALC at loop}}
+  \newcommand{\REPEAT}[1][default]{\ALC at it\algorithmicrepeat%
+\ALC at com{##1}\begin{ALC at rpt}}
+  \newcommand{\UNTIL}[1]{\end{ALC at rpt}\ALC at it\algorithmicuntil\ ##1}
+  \ifthenelse{\boolean{ALC at noend}}{
+    \newcommand{\ENDIF}{\end{ALC at if}}
+    \newcommand{\ENDFOR}{\end{ALC at for}}
+    \newcommand{\ENDWHILE}{\end{ALC at whl}}
+    \newcommand{\ENDLOOP}{\end{ALC at loop}}
+  }{
+    \newcommand{\ENDIF}{\end{ALC at if}\ALC at it\algorithmicendif}
+    \newcommand{\ENDFOR}{\end{ALC at for}\ALC at it\algorithmicendfor}
+    \newcommand{\ENDWHILE}{\end{ALC at whl}\ALC at it\algorithmicendwhile}
+    \newcommand{\ENDLOOP}{\end{ALC at loop}\ALC at it\algorithmicendloop}
+  }
+  \renewcommand{\@toodeep}{}
+  \begin{list}{\ALC at lno}{\setcounter{ALC at line}{0}\setcounter{ALC at rem}{0}%
+    \itemsep\z@ \itemindent\z@ \listparindent\z@%
+    \partopsep\z@ \parskip\z@ \parsep\z@%
+    \labelsep 0.5em \topsep 0.2em%
+\ifthenelse{\equal{#1}{0}}
+  {\labelwidth 0.5em }
+  {\labelwidth  1.2em }
+\leftmargin\labelwidth \addtolength{\leftmargin}{\labelsep}
+    \ALC at tlm\labelsep
+  }
+}
+{\end{list}}
diff --git a/Wrapping/R/Packaging/SimpleITK/vignettes/amssymb.sty b/Wrapping/R/Packaging/SimpleITK/vignettes/amssymb.sty
new file mode 100644
index 0000000..2b1ff88
--- /dev/null
+++ b/Wrapping/R/Packaging/SimpleITK/vignettes/amssymb.sty
@@ -0,0 +1,285 @@
+%%
+%% This is file `amssymb.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% amssymb.dtx
+%%
+%%% ====================================================================
+%%% @LaTeX-file{
+%%%   filename        = "amssymb.dtx",
+%%%   version         = "2.2d",
+%%%   date            = "2002/01/22",
+%%%   time            = "10:06:53 EST",
+%%%   checksum        = "51146 363 1168 18275",
+%%%   author          = "American Mathematical Society",
+%%%   copyright       = "Copyright 2001 American Mathematical Society,
+%%%                      all rights reserved.  Copying of this file is
+%%%                      authorized only if either:
+%%%                      (1) you make absolutely no changes to your copy,
+%%%                      including name; OR
+%%%                      (2) if you do make changes, you first rename it
+%%%                      to some other name.",
+%%%   address         = "American Mathematical Society,
+%%%                      Technical Support,
+%%%                      Publications Technical Group,
+%%%                      P. O. Box 6248,
+%%%                      Providence, RI 02940,
+%%%                      USA",
+%%%   telephone       = "401-455-4080 or (in the USA and Canada)
+%%%                      800-321-4AMS (321-4267)",
+%%%   FAX             = "401-331-3842",
+%%%   email           = "tech-support at ams.org (Internet)",
+%%%   codetable       = "ISO/ASCII",
+%%%   keywords        = "latex, amslatex, ams-latex, math symbol,
+%%%                      amsfonts, msam, msbm",
+%%%   supported       = "yes",
+%%%   abstract        = "This file is part of the AMSFonts distribution.
+%%%                      It is a \LaTeX{} package that defines symbol
+%%%                      names for all the math symbols in the fonts
+%%%                      MSAM and MSBM, of the AMSFonts (2.0+) collection.",
+%%%   docstring       = "The checksum field above contains a CRC-16
+%%%                      checksum as the first value, followed by the
+%%%                      equivalent of the standard UNIX wc (word
+%%%                      count) utility output of lines, words, and
+%%%                      characters.  This is produced by Robert
+%%%                      Solovay's checksum utility.",
+%%% }
+%%% ====================================================================
+\NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
+[1994/12/01]% LaTeX date must be December 1994 or later
+\ProvidesPackage{amssymb}[2002/01/22 v2.2d]
+\DeclareOption{psamsfonts}{\PassOptionsToPackage{psamsfonts}{amsfonts}}
+\ProcessOptions\relax
+\RequirePackage{amsfonts}[1995/01/01]
+\let\square\relax \let\rightsquigarrow\square \let\lozenge\square
+\let\vartriangleright\square \let\vartriangleleft\square
+\let\trianglerighteq\square \let\trianglelefteq\square
+\begingroup \catcode`\"=12
+\DeclareMathSymbol{\boxdot}       {\mathbin}{AMSa}{"00}
+\DeclareMathSymbol{\boxplus}      {\mathbin}{AMSa}{"01}
+\DeclareMathSymbol{\boxtimes}     {\mathbin}{AMSa}{"02}
+\DeclareMathSymbol{\square}       {\mathord}{AMSa}{"03}
+\DeclareMathSymbol{\blacksquare}  {\mathord}{AMSa}{"04}
+\DeclareMathSymbol{\centerdot}    {\mathbin}{AMSa}{"05}
+\DeclareMathSymbol{\lozenge}      {\mathord}{AMSa}{"06}
+\DeclareMathSymbol{\blacklozenge} {\mathord}{AMSa}{"07}
+\DeclareMathSymbol{\circlearrowright}   {\mathrel}{AMSa}{"08}
+\DeclareMathSymbol{\circlearrowleft}    {\mathrel}{AMSa}{"09}
+%% In amsfonts.sty:
+%%\DeclareMathSymbol{\rightleftharpoons}{\mathrel}{AMSa}{"0A}
+\DeclareMathSymbol{\leftrightharpoons}  {\mathrel}{AMSa}{"0B}
+\DeclareMathSymbol{\boxminus}     {\mathbin}{AMSa}{"0C}
+\DeclareMathSymbol{\Vdash}        {\mathrel}{AMSa}{"0D}
+\DeclareMathSymbol{\Vvdash}       {\mathrel}{AMSa}{"0E}
+\DeclareMathSymbol{\vDash}        {\mathrel}{AMSa}{"0F}
+\DeclareMathSymbol{\twoheadrightarrow}  {\mathrel}{AMSa}{"10}
+\DeclareMathSymbol{\twoheadleftarrow}   {\mathrel}{AMSa}{"11}
+\DeclareMathSymbol{\leftleftarrows}     {\mathrel}{AMSa}{"12}
+\DeclareMathSymbol{\rightrightarrows}   {\mathrel}{AMSa}{"13}
+\DeclareMathSymbol{\upuparrows}         {\mathrel}{AMSa}{"14}
+\DeclareMathSymbol{\downdownarrows} {\mathrel}{AMSa}{"15}
+\DeclareMathSymbol{\upharpoonright} {\mathrel}{AMSa}{"16}
+ \global\let\restriction\upharpoonright
+\DeclareMathSymbol{\downharpoonright}   {\mathrel}{AMSa}{"17}
+\DeclareMathSymbol{\upharpoonleft}  {\mathrel}{AMSa}{"18}
+\DeclareMathSymbol{\downharpoonleft}{\mathrel}{AMSa}{"19}
+\DeclareMathSymbol{\rightarrowtail} {\mathrel}{AMSa}{"1A}
+\DeclareMathSymbol{\leftarrowtail}  {\mathrel}{AMSa}{"1B}
+\DeclareMathSymbol{\leftrightarrows}{\mathrel}{AMSa}{"1C}
+\DeclareMathSymbol{\rightleftarrows}{\mathrel}{AMSa}{"1D}
+\DeclareMathSymbol{\Lsh}            {\mathrel}{AMSa}{"1E}
+\DeclareMathSymbol{\Rsh}            {\mathrel}{AMSa}{"1F}
+\DeclareMathSymbol{\rightsquigarrow}  {\mathrel}{AMSa}{"20}
+\DeclareMathSymbol{\leftrightsquigarrow}{\mathrel}{AMSa}{"21}
+\DeclareMathSymbol{\looparrowleft}  {\mathrel}{AMSa}{"22}
+\DeclareMathSymbol{\looparrowright} {\mathrel}{AMSa}{"23}
+\DeclareMathSymbol{\circeq}       {\mathrel}{AMSa}{"24}
+\DeclareMathSymbol{\succsim}      {\mathrel}{AMSa}{"25}
+\DeclareMathSymbol{\gtrsim}       {\mathrel}{AMSa}{"26}
+\DeclareMathSymbol{\gtrapprox}    {\mathrel}{AMSa}{"27}
+\DeclareMathSymbol{\multimap}     {\mathrel}{AMSa}{"28}
+\DeclareMathSymbol{\therefore}    {\mathrel}{AMSa}{"29}
+\DeclareMathSymbol{\because}      {\mathrel}{AMSa}{"2A}
+\DeclareMathSymbol{\doteqdot}     {\mathrel}{AMSa}{"2B}
+ \global\let\Doteq\doteqdot
+\DeclareMathSymbol{\triangleq}    {\mathrel}{AMSa}{"2C}
+\DeclareMathSymbol{\precsim}      {\mathrel}{AMSa}{"2D}
+\DeclareMathSymbol{\lesssim}      {\mathrel}{AMSa}{"2E}
+\DeclareMathSymbol{\lessapprox}   {\mathrel}{AMSa}{"2F}
+\DeclareMathSymbol{\eqslantless}  {\mathrel}{AMSa}{"30}
+\DeclareMathSymbol{\eqslantgtr}   {\mathrel}{AMSa}{"31}
+\DeclareMathSymbol{\curlyeqprec}  {\mathrel}{AMSa}{"32}
+\DeclareMathSymbol{\curlyeqsucc}  {\mathrel}{AMSa}{"33}
+\DeclareMathSymbol{\preccurlyeq}  {\mathrel}{AMSa}{"34}
+\DeclareMathSymbol{\leqq}         {\mathrel}{AMSa}{"35}
+\DeclareMathSymbol{\leqslant}     {\mathrel}{AMSa}{"36}
+\DeclareMathSymbol{\lessgtr}      {\mathrel}{AMSa}{"37}
+\DeclareMathSymbol{\backprime}    {\mathord}{AMSa}{"38}
+\DeclareMathSymbol{\risingdotseq} {\mathrel}{AMSa}{"3A}
+\DeclareMathSymbol{\fallingdotseq}{\mathrel}{AMSa}{"3B}
+\DeclareMathSymbol{\succcurlyeq}  {\mathrel}{AMSa}{"3C}
+\DeclareMathSymbol{\geqq}         {\mathrel}{AMSa}{"3D}
+\DeclareMathSymbol{\geqslant}     {\mathrel}{AMSa}{"3E}
+\DeclareMathSymbol{\gtrless}      {\mathrel}{AMSa}{"3F}
+%% in amsfonts.sty
+%% \DeclareMathSymbol{\sqsubset}    {\mathrel}{AMSa}{"40}
+%% \DeclareMathSymbol{\sqsupset}    {\mathrel}{AMSa}{"41}
+\DeclareMathSymbol{\vartriangleright}{\mathrel}{AMSa}{"42}
+\DeclareMathSymbol{\vartriangleleft} {\mathrel}{AMSa}{"43}
+\DeclareMathSymbol{\trianglerighteq} {\mathrel}{AMSa}{"44}
+\DeclareMathSymbol{\trianglelefteq}  {\mathrel}{AMSa}{"45}
+\DeclareMathSymbol{\bigstar}    {\mathord}{AMSa}{"46}
+\DeclareMathSymbol{\between}    {\mathrel}{AMSa}{"47}
+\DeclareMathSymbol{\blacktriangledown}  {\mathord}{AMSa}{"48}
+\DeclareMathSymbol{\blacktriangleright} {\mathrel}{AMSa}{"49}
+\DeclareMathSymbol{\blacktriangleleft}  {\mathrel}{AMSa}{"4A}
+\DeclareMathSymbol{\vartriangle}        {\mathrel}{AMSa}{"4D}
+\DeclareMathSymbol{\blacktriangle}      {\mathord}{AMSa}{"4E}
+\DeclareMathSymbol{\triangledown}       {\mathord}{AMSa}{"4F}
+\DeclareMathSymbol{\eqcirc}       {\mathrel}{AMSa}{"50}
+\DeclareMathSymbol{\lesseqgtr}    {\mathrel}{AMSa}{"51}
+\DeclareMathSymbol{\gtreqless}    {\mathrel}{AMSa}{"52}
+\DeclareMathSymbol{\lesseqqgtr}   {\mathrel}{AMSa}{"53}
+\DeclareMathSymbol{\gtreqqless}   {\mathrel}{AMSa}{"54}
+\DeclareMathSymbol{\Rrightarrow}  {\mathrel}{AMSa}{"56}
+\DeclareMathSymbol{\Lleftarrow}   {\mathrel}{AMSa}{"57}
+\DeclareMathSymbol{\veebar}       {\mathbin}{AMSa}{"59}
+\DeclareMathSymbol{\barwedge}     {\mathbin}{AMSa}{"5A}
+\DeclareMathSymbol{\doublebarwedge} {\mathbin}{AMSa}{"5B}
+%% In amsfonts.sty
+%%\DeclareMathSymbol{\angle}        {\mathord}{AMSa}{"5C}
+\DeclareMathSymbol{\measuredangle}  {\mathord}{AMSa}{"5D}
+\DeclareMathSymbol{\sphericalangle} {\mathord}{AMSa}{"5E}
+\DeclareMathSymbol{\varpropto}    {\mathrel}{AMSa}{"5F}
+\DeclareMathSymbol{\smallsmile}   {\mathrel}{AMSa}{"60}
+\DeclareMathSymbol{\smallfrown}   {\mathrel}{AMSa}{"61}
+\DeclareMathSymbol{\Subset}       {\mathrel}{AMSa}{"62}
+\DeclareMathSymbol{\Supset}       {\mathrel}{AMSa}{"63}
+\DeclareMathSymbol{\Cup}          {\mathbin}{AMSa}{"64}
+ \global\let\doublecup\Cup
+\DeclareMathSymbol{\Cap}          {\mathbin}{AMSa}{"65}
+ \global\let\doublecap\Cap
+\DeclareMathSymbol{\curlywedge}   {\mathbin}{AMSa}{"66}
+\DeclareMathSymbol{\curlyvee}     {\mathbin}{AMSa}{"67}
+\DeclareMathSymbol{\leftthreetimes} {\mathbin}{AMSa}{"68}
+\DeclareMathSymbol{\rightthreetimes}{\mathbin}{AMSa}{"69}
+\DeclareMathSymbol{\subseteqq}    {\mathrel}{AMSa}{"6A}
+\DeclareMathSymbol{\supseteqq}    {\mathrel}{AMSa}{"6B}
+\DeclareMathSymbol{\bumpeq}       {\mathrel}{AMSa}{"6C}
+\DeclareMathSymbol{\Bumpeq}       {\mathrel}{AMSa}{"6D}
+\DeclareMathSymbol{\lll}          {\mathrel}{AMSa}{"6E}
+ \global\let\llless\lll
+\DeclareMathSymbol{\ggg}          {\mathrel}{AMSa}{"6F}
+ \global\let\gggtr\ggg
+\DeclareMathSymbol{\circledS}     {\mathord}{AMSa}{"73}
+\DeclareMathSymbol{\pitchfork}    {\mathrel}{AMSa}{"74}
+\DeclareMathSymbol{\dotplus}      {\mathbin}{AMSa}{"75}
+\DeclareMathSymbol{\backsim}      {\mathrel}{AMSa}{"76}
+\DeclareMathSymbol{\backsimeq}    {\mathrel}{AMSa}{"77}
+\DeclareMathSymbol{\complement}   {\mathord}{AMSa}{"7B}
+\DeclareMathSymbol{\intercal}     {\mathbin}{AMSa}{"7C}
+\DeclareMathSymbol{\circledcirc}  {\mathbin}{AMSa}{"7D}
+\DeclareMathSymbol{\circledast}   {\mathbin}{AMSa}{"7E}
+\DeclareMathSymbol{\circleddash}  {\mathbin}{AMSa}{"7F}
+%%   Begin AMSb declarations
+\DeclareMathSymbol{\lvertneqq}    {\mathrel}{AMSb}{"00}
+\DeclareMathSymbol{\gvertneqq}    {\mathrel}{AMSb}{"01}
+\DeclareMathSymbol{\nleq}         {\mathrel}{AMSb}{"02}
+\DeclareMathSymbol{\ngeq}         {\mathrel}{AMSb}{"03}
+\DeclareMathSymbol{\nless}        {\mathrel}{AMSb}{"04}
+\DeclareMathSymbol{\ngtr}         {\mathrel}{AMSb}{"05}
+\DeclareMathSymbol{\nprec}        {\mathrel}{AMSb}{"06}
+\DeclareMathSymbol{\nsucc}        {\mathrel}{AMSb}{"07}
+\DeclareMathSymbol{\lneqq}        {\mathrel}{AMSb}{"08}
+\DeclareMathSymbol{\gneqq}        {\mathrel}{AMSb}{"09}
+\DeclareMathSymbol{\nleqslant}    {\mathrel}{AMSb}{"0A}
+\DeclareMathSymbol{\ngeqslant}    {\mathrel}{AMSb}{"0B}
+\DeclareMathSymbol{\lneq}         {\mathrel}{AMSb}{"0C}
+\DeclareMathSymbol{\gneq}         {\mathrel}{AMSb}{"0D}
+\DeclareMathSymbol{\npreceq}      {\mathrel}{AMSb}{"0E}
+\DeclareMathSymbol{\nsucceq}      {\mathrel}{AMSb}{"0F}
+\DeclareMathSymbol{\precnsim}     {\mathrel}{AMSb}{"10}
+\DeclareMathSymbol{\succnsim}     {\mathrel}{AMSb}{"11}
+\DeclareMathSymbol{\lnsim}        {\mathrel}{AMSb}{"12}
+\DeclareMathSymbol{\gnsim}        {\mathrel}{AMSb}{"13}
+\DeclareMathSymbol{\nleqq}        {\mathrel}{AMSb}{"14}
+\DeclareMathSymbol{\ngeqq}        {\mathrel}{AMSb}{"15}
+\DeclareMathSymbol{\precneqq}     {\mathrel}{AMSb}{"16}
+\DeclareMathSymbol{\succneqq}     {\mathrel}{AMSb}{"17}
+\DeclareMathSymbol{\precnapprox}  {\mathrel}{AMSb}{"18}
+\DeclareMathSymbol{\succnapprox}  {\mathrel}{AMSb}{"19}
+\DeclareMathSymbol{\lnapprox}     {\mathrel}{AMSb}{"1A}
+\DeclareMathSymbol{\gnapprox}     {\mathrel}{AMSb}{"1B}
+\DeclareMathSymbol{\nsim}         {\mathrel}{AMSb}{"1C}
+\DeclareMathSymbol{\ncong}        {\mathrel}{AMSb}{"1D}
+\DeclareMathSymbol{\diagup}       {\mathord}{AMSb}{"1E}
+\DeclareMathSymbol{\diagdown}     {\mathord}{AMSb}{"1F}
+\DeclareMathSymbol{\varsubsetneq}   {\mathrel}{AMSb}{"20}
+\DeclareMathSymbol{\varsupsetneq}   {\mathrel}{AMSb}{"21}
+\DeclareMathSymbol{\nsubseteqq}     {\mathrel}{AMSb}{"22}
+\DeclareMathSymbol{\nsupseteqq}     {\mathrel}{AMSb}{"23}
+\DeclareMathSymbol{\subsetneqq}     {\mathrel}{AMSb}{"24}
+\DeclareMathSymbol{\supsetneqq}     {\mathrel}{AMSb}{"25}
+\DeclareMathSymbol{\varsubsetneqq}  {\mathrel}{AMSb}{"26}
+\DeclareMathSymbol{\varsupsetneqq}  {\mathrel}{AMSb}{"27}
+\DeclareMathSymbol{\subsetneq}      {\mathrel}{AMSb}{"28}
+\DeclareMathSymbol{\supsetneq}      {\mathrel}{AMSb}{"29}
+\DeclareMathSymbol{\nsubseteq}      {\mathrel}{AMSb}{"2A}
+\DeclareMathSymbol{\nsupseteq}      {\mathrel}{AMSb}{"2B}
+\DeclareMathSymbol{\nparallel}      {\mathrel}{AMSb}{"2C}
+\DeclareMathSymbol{\nmid}           {\mathrel}{AMSb}{"2D}
+\DeclareMathSymbol{\nshortmid}      {\mathrel}{AMSb}{"2E}
+\DeclareMathSymbol{\nshortparallel} {\mathrel}{AMSb}{"2F}
+\DeclareMathSymbol{\nvdash}         {\mathrel}{AMSb}{"30}
+\DeclareMathSymbol{\nVdash}         {\mathrel}{AMSb}{"31}
+\DeclareMathSymbol{\nvDash}         {\mathrel}{AMSb}{"32}
+\DeclareMathSymbol{\nVDash}         {\mathrel}{AMSb}{"33}
+\DeclareMathSymbol{\ntrianglerighteq}{\mathrel}{AMSb}{"34}
+\DeclareMathSymbol{\ntrianglelefteq}{\mathrel}{AMSb}{"35}
+\DeclareMathSymbol{\ntriangleleft}  {\mathrel}{AMSb}{"36}
+\DeclareMathSymbol{\ntriangleright} {\mathrel}{AMSb}{"37}
+\DeclareMathSymbol{\nleftarrow}     {\mathrel}{AMSb}{"38}
+\DeclareMathSymbol{\nrightarrow}    {\mathrel}{AMSb}{"39}
+\DeclareMathSymbol{\nLeftarrow}     {\mathrel}{AMSb}{"3A}
+\DeclareMathSymbol{\nRightarrow}    {\mathrel}{AMSb}{"3B}
+\DeclareMathSymbol{\nLeftrightarrow}{\mathrel}{AMSb}{"3C}
+\DeclareMathSymbol{\nleftrightarrow}{\mathrel}{AMSb}{"3D}
+\DeclareMathSymbol{\divideontimes}  {\mathbin}{AMSb}{"3E}
+\DeclareMathSymbol{\varnothing}     {\mathord}{AMSb}{"3F}
+\DeclareMathSymbol{\nexists}        {\mathord}{AMSb}{"40}
+\DeclareMathSymbol{\Finv}           {\mathord}{AMSb}{"60}
+\DeclareMathSymbol{\Game}           {\mathord}{AMSb}{"61}
+%% In amsfonts.sty:
+%%\DeclareMathSymbol{\mho}          {\mathord}{AMSb}{"66}
+\DeclareMathSymbol{\eth}            {\mathord}{AMSb}{"67}
+\DeclareMathSymbol{\eqsim}          {\mathrel}{AMSb}{"68}
+\DeclareMathSymbol{\beth}           {\mathord}{AMSb}{"69}
+\DeclareMathSymbol{\gimel}          {\mathord}{AMSb}{"6A}
+\DeclareMathSymbol{\daleth}         {\mathord}{AMSb}{"6B}
+\DeclareMathSymbol{\lessdot}        {\mathbin}{AMSb}{"6C}
+\DeclareMathSymbol{\gtrdot}         {\mathbin}{AMSb}{"6D}
+\DeclareMathSymbol{\ltimes}         {\mathbin}{AMSb}{"6E}
+\DeclareMathSymbol{\rtimes}         {\mathbin}{AMSb}{"6F}
+\DeclareMathSymbol{\shortmid}       {\mathrel}{AMSb}{"70}
+\DeclareMathSymbol{\shortparallel}  {\mathrel}{AMSb}{"71}
+\DeclareMathSymbol{\smallsetminus}  {\mathbin}{AMSb}{"72}
+\DeclareMathSymbol{\thicksim}       {\mathrel}{AMSb}{"73}
+\DeclareMathSymbol{\thickapprox}    {\mathrel}{AMSb}{"74}
+\DeclareMathSymbol{\approxeq}       {\mathrel}{AMSb}{"75}
+\DeclareMathSymbol{\succapprox}     {\mathrel}{AMSb}{"76}
+\DeclareMathSymbol{\precapprox}     {\mathrel}{AMSb}{"77}
+\DeclareMathSymbol{\curvearrowleft} {\mathrel}{AMSb}{"78}
+\DeclareMathSymbol{\curvearrowright}{\mathrel}{AMSb}{"79}
+\DeclareMathSymbol{\digamma}        {\mathord}{AMSb}{"7A}
+\DeclareMathSymbol{\varkappa}       {\mathord}{AMSb}{"7B}
+\DeclareMathSymbol{\Bbbk}           {\mathord}{AMSb}{"7C}
+\DeclareMathSymbol{\hslash}         {\mathord}{AMSb}{"7D}
+%% In amsfonts.sty:
+%%\DeclareMathSymbol{\hbar}         {\mathord}{AMSb}{"7E}
+\DeclareMathSymbol{\backepsilon}    {\mathrel}{AMSb}{"7F}
+\endgroup
+\endinput
+%%
+%% End of file `amssymb.sty'.
diff --git a/Wrapping/R/Packaging/SimpleITK/vignettes/fancyhdr.sty b/Wrapping/R/Packaging/SimpleITK/vignettes/fancyhdr.sty
new file mode 100644
index 0000000..28ba858
--- /dev/null
+++ b/Wrapping/R/Packaging/SimpleITK/vignettes/fancyhdr.sty
@@ -0,0 +1,329 @@
+% fancyhdr.sty version 1.99d
+% Fancy headers and footers for LaTeX.
+% Piet van Oostrum, Dept of Computer Science, University of Utrecht
+% Padualaan 14, P.O. Box 80.089, 3508 TB Utrecht, The Netherlands
+% Telephone: +31 30 2532180. Email: piet at cs.ruu.nl
+% ========================================================================
+% LICENCE: This is free software. You are allowed to use and distribute
+% this software in any way you like. You are also allowed to make modified
+% versions of it, but you can distribute a modified version only if you
+% clearly indicate that it is a modified version and the person(s) who
+% modified it. This indication should be in a prominent place, e.g. in the
+% top of the file. If possible a contact address, preferably by email,
+% should be given for these persons. If that is feasible the modifications
+% should be indicated in the source code.
+% ========================================================================
+% MODIFICATION HISTORY:
+% Sep 16, 1994
+% version 1.4: Correction for use with \reversemargin
+% Sep 29, 1994:
+% version 1.5: Added the \iftopfloat, \ifbotfloat and \iffloatpage commands
+% Oct 4, 1994:
+% version 1.6: Reset single spacing in headers/footers for use with
+% setspace.sty or doublespace.sty
+% Oct 4, 1994:
+% version 1.7: changed \let\@mkboth\markboth to
+% \def\@mkboth{\protect\markboth} to make it more robust
+% Dec 5, 1994:
+% version 1.8: corrections for amsbook/amsart: define \@chapapp and (more
+% importantly) use the \chapter/sectionmark definitions from ps at headings if
+% they exist (which should be true for all standard classes).
+% May 31, 1995:
+% version 1.9: The proposed \renewcommand{\headrulewidth}{\iffloatpage...
+% construction in the doc did not work properly with the fancyplain style.
+% June 1, 1995:
+% version 1.91: The definition of \@mkboth wasn't restored on subsequent
+% \pagestyle{fancy}'s.
+% June 1, 1995:
+% version 1.92: The sequence \pagestyle{fancyplain} \pagestyle{plain}
+% \pagestyle{fancy} would erroneously select the plain version.
+% June 1, 1995:
+% version 1.93: \fancypagestyle command added.
+% Dec 11, 1995:
+% version 1.94: suggested by Conrad Hughes <chughes at maths.tcd.ie>
+% CJCH, Dec 11, 1995: added \footruleskip to allow control over footrule
+% position (old hardcoded value of .3\normalbaselineskip is far too high
+% when used with very small footer fonts).
+% Jan 31, 1996:
+% version 1.95: call \@normalsize in the reset code if that is defined,
+% otherwise \normalsize.
+% this is to solve a problem with ucthesis.cls, as this doesn't
+% define \@currsize. Unfortunately for latex209 calling \normalsize doesn't
+% work as this is optimized to do very little, so there \@normalsize should
+% be called. Hopefully this code works for all versions of LaTeX known to
+% mankind.
+% April 25, 1996:
+% version 1.96: initialize \headwidth to a magic (negative) value to catch
+% most common cases that people change it before calling \pagestyle{fancy}.
+% Note it can't be initialized when reading in this file, because
+% \textwidth could be changed afterwards. This is quite probable.
+% We also switch to \MakeUppercase rather than \uppercase and introduce a
+% \nouppercase command for use in headers. and footers.
+% May 3, 1996:
+% version 1.97: Two changes:
+% 1. Undo the change in version 1.8 (using the pagestyle{headings} defaults
+% for the chapter and section marks. The current version of amsbook and
+% amsart classes don't seem to need them anymore. Moreover the standard
+% latex classes don't use \markboth if twoside isn't selected, and this is
+% confusing as \leftmark doesn't work as expected.
+% 2. include a call to \ps at empty in ps@@fancy. This is to solve a problem
+% in the amsbook and amsart classes, that make global changes to \topskip,
+% which are reset in \ps at empty. Hopefully this doesn't break other things.
+% May 7, 1996:
+% version 1.98:
+% Added % after the line  \def\nouppercase
+% May 7, 1996:
+% version 1.99: This is the alpha version of fancyhdr 2.0
+% Introduced the new commands \fancyhead, \fancyfoot, and \fancyhf.
+% Changed \headrulewidth, \footrulewidth, \footruleskip to
+% macros rather than length parameters, In this way they can be
+% conditionalized and they don't consume length registers. There is no need
+% to have them as length registers unless you want to do calculations with
+% them, which is unlikely. Note that this may make some uses of them
+% incompatible (i.e. if you have a file that uses \setlength or \xxxx=)
+% May 10, 1996:
+% version 1.99a:
+% Added a few more % signs
+% May 10, 1996:
+% version 1.99b:
+% Changed the syntax of \f at nfor to be resistent to catcode changes of :=
+% Removed the [1] from the defs of \lhead etc. because the parameter is
+% consumed by the \@[xy]lhead etc. macros.
+% June 24, 1997:
+% version 1.99c:
+% corrected \nouppercase to also include the protected form of \MakeUppercase
+% \global added to manipulation of \headwidth.
+% \iffootnote command added.
+% Some comments added about \@fancyhead and \@fancyfoot.
+% Aug 24, 1998
+% version 1.99d
+% Changed the default \ps at empty to \ps@@empty in order to allow
+% \fancypagestyle{empty} redefinition.
+
+\let\fancy at def\gdef
+
+\def\if at mpty#1#2#3{\def\temp at ty{#1}\ifx\@empty\temp at ty #2\else#3\fi}
+
+% Usage: \@forc \var{charstring}{command to be executed for each char}
+% This is similar to LaTeX's \@tfor, but expands the charstring.
+
+\def\@forc#1#2#3{\expandafter\f at rc\expandafter#1\expandafter{#2}{#3}}
+\def\f at rc#1#2#3{\def\temp at ty{#2}\ifx\@empty\temp at ty\else
+                                    \f@@rc#1#2\f@@rc{#3}\fi}
+\def\f@@rc#1#2#3\f@@rc#4{\def#1{#2}#4\f at rc#1{#3}{#4}}
+
+% Usage: \f at nfor\name:=list\do{body}
+% Like LaTeX's \@for but an empty list is treated as a list with an empty
+% element
+
+\newcommand{\f at nfor}[3]{\edef\@fortmp{#2}%
+    \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}}
+
+% Usage: \def at ult \cs{defaults}{argument}
+% sets \cs to the characters from defaults appearing in argument
+% or defaults if it would be empty. All characters are lowercased.
+
+\newcommand\def at ult[3]{%
+    \edef\temp at a{\lowercase{\edef\noexpand\temp at a{#3}}}\temp at a
+    \def#1{}%
+    \@forc\tmpf at ra{#2}%
+        {\expandafter\if at in\tmpf at ra\temp at a{\edef#1{#1\tmpf at ra}}{}}%
+    \ifx\@empty#1\def#1{#2}\fi}
+%
+% \if at in <char><set><truecase><falsecase>
+%
+\newcommand{\if at in}[4]{%
+    \edef\temp at a{#2}\def\temp at b##1#1##2\temp at b{\def\temp at b{##1}}%
+    \expandafter\temp at b#2#1\temp at b\ifx\temp at a\temp at b #4\else #3\fi}
+
+\newcommand{\fancyhead}{\@ifnextchar[{\f at ncyhf h}{\f at ncyhf h[]}}
+\newcommand{\fancyfoot}{\@ifnextchar[{\f at ncyhf f}{\f at ncyhf f[]}}
+\newcommand{\fancyhf}{\@ifnextchar[{\f at ncyhf {}}{\f at ncyhf {}[]}}
+
+% The header and footer fields are stored in command sequences with
+% names of the form: \f at ncy<x><y><z> with <x> for [eo], <y> form [lcr]
+% and <z> from [hf].
+
+\def\f at ncyhf#1[#2]#3{%
+    \def\temp at c{}%
+    \@forc\tmpf at ra{#2}%
+        {\expandafter\if at in\tmpf at ra{eolcrhf,EOLCRHF}%
+            {}{\edef\temp at c{\temp at c\tmpf at ra}}}%
+    \ifx\@empty\temp at c\else
+        \ifx\PackageError\undefined
+        \errmessage{Illegal char `\temp at c' in fancyhdr argument:
+          [#2]}\else
+        \PackageError{Fancyhdr}{Illegal char `\temp at c' in fancyhdr argument:
+          [#2]}{}\fi
+    \fi
+    \f at nfor\temp at c{#2}%
+        {\def at ult\f@@@eo{eo}\temp at c
+         \def at ult\f@@@lcr{lcr}\temp at c
+         \def at ult\f@@@hf{hf}{#1\temp at c}%
+         \@forc\f@@eo\f@@@eo
+             {\@forc\f@@lcr\f@@@lcr
+                 {\@forc\f@@hf\f@@@hf
+                     {\expandafter\fancy at def\csname
+                      f at ncy\f@@eo\f@@lcr\f@@hf\endcsname
+                      {#3}}}}}}
+
+% Fancyheadings version 1 commands. These are more or less deprecated,
+% but they continue to work.
+
+\newcommand{\lhead}{\@ifnextchar[{\@xlhead}{\@ylhead}}
+\def\@xlhead[#1]#2{\fancy at def\f at ncyelh{#1}\fancy at def\f at ncyolh{#2}}
+\def\@ylhead#1{\fancy at def\f at ncyelh{#1}\fancy at def\f at ncyolh{#1}}
+
+\newcommand{\chead}{\@ifnextchar[{\@xchead}{\@ychead}}
+\def\@xchead[#1]#2{\fancy at def\f at ncyech{#1}\fancy at def\f at ncyoch{#2}}
+\def\@ychead#1{\fancy at def\f at ncyech{#1}\fancy at def\f at ncyoch{#1}}
+
+\newcommand{\rhead}{\@ifnextchar[{\@xrhead}{\@yrhead}}
+\def\@xrhead[#1]#2{\fancy at def\f at ncyerh{#1}\fancy at def\f at ncyorh{#2}}
+\def\@yrhead#1{\fancy at def\f at ncyerh{#1}\fancy at def\f at ncyorh{#1}}
+
+\newcommand{\lfoot}{\@ifnextchar[{\@xlfoot}{\@ylfoot}}
+\def\@xlfoot[#1]#2{\fancy at def\f at ncyelf{#1}\fancy at def\f at ncyolf{#2}}
+\def\@ylfoot#1{\fancy at def\f at ncyelf{#1}\fancy at def\f at ncyolf{#1}}
+
+\newcommand{\cfoot}{\@ifnextchar[{\@xcfoot}{\@ycfoot}}
+\def\@xcfoot[#1]#2{\fancy at def\f at ncyecf{#1}\fancy at def\f at ncyocf{#2}}
+\def\@ycfoot#1{\fancy at def\f at ncyecf{#1}\fancy at def\f at ncyocf{#1}}
+
+\newcommand{\rfoot}{\@ifnextchar[{\@xrfoot}{\@yrfoot}}
+\def\@xrfoot[#1]#2{\fancy at def\f at ncyerf{#1}\fancy at def\f at ncyorf{#2}}
+\def\@yrfoot#1{\fancy at def\f at ncyerf{#1}\fancy at def\f at ncyorf{#1}}
+
+\newdimen\headwidth
+\newcommand{\headrulewidth}{0.4pt}
+\newcommand{\footrulewidth}{\z at skip}
+\newcommand{\footruleskip}{.3\normalbaselineskip}
+
+% Fancyplain stuff shouldn't be used anymore (rather
+% \fancypagestyle{plain} should be used), but it must be present for
+% compatibility reasons.
+
+\newcommand{\plainheadrulewidth}{\z at skip}
+\newcommand{\plainfootrulewidth}{\z at skip}
+\newif\if at fancyplain \@fancyplainfalse
+\def\fancyplain#1#2{\if at fancyplain#1\else#2\fi}
+
+\headwidth=-123456789sp %magic constant
+
+% Command to reset various things in the headers:
+% a.o.  single spacing (taken from setspace.sty)
+% and the catcode of ^^M (so that epsf files in the header work if a
+% verbatim crosses a page boundary)
+% It also defines a \nouppercase command that disables \uppercase and
+% \Makeuppercase. It can only be used in the headers and footers.
+\def\fancy at reset{\restorecr
+ \def\baselinestretch{1}%
+ \def\nouppercase##1{{\let\uppercase\relax\let\MakeUppercase\relax
+     \expandafter\let\csname MakeUppercase \endcsname\relax##1}}%
+ \ifx\undefined\@newbaseline% NFSS not present; 2.09 or 2e
+   \ifx\@normalsize\undefined \normalsize % for ucthesis.cls
+   \else \@normalsize \fi
+ \else% NFSS (2.09) present
+  \@newbaseline%
+ \fi}
+
+% Initialization of the head and foot text.
+
+% The default values still contain \fancyplain for compatibility.
+\fancyhf{} % clear all
+% lefthead empty on ``plain'' pages, \rightmark on even, \leftmark on odd pages
+% evenhead empty on ``plain'' pages, \leftmark on even, \rightmark on odd pages
+\fancyhead[el,or]{\fancyplain{}{\sl\rightmark}}
+\fancyhead[er,ol]{\fancyplain{}{\sl\leftmark}}
+\fancyfoot[c]{\rm\thepage} % page number
+
+% Put together a header or footer given the left, center and
+% right text, fillers at left and right and a rule.
+% The \lap commands put the text into an hbox of zero size,
+% so overlapping text does not generate an errormessage.
+% These macros have 5 parameters:
+% 1. \@lodd or \@rodd % This determines at which side the header will stick
+%    out.
+% 2. \f at ncyolh, \f at ncyelh, \f at ncyolf or \f at ncyelf. This is the left component.
+% 3. \f at ncyoch, \f at ncyech, \f at ncyocf or \f at ncyecf. This is the middle comp.
+% 4. \f at ncyorh, \f at ncyerh, \f at ncyorf or \f at ncyerf. This is the right component.
+% 5. \@lodd or \@rodd % This determines at which side the header will stick
+%    out. This is the reverse of parameter nr. 1. One of them is always
+%    \relax and the other one is \hss (after expansion).
+
+\def\@fancyhead#1#2#3#4#5{#1\hbox to\headwidth{\fancy at reset\vbox{\hbox
+{\rlap{\parbox[b]{\headwidth}{\raggedright#2\strut}}\hfill
+\parbox[b]{\headwidth}{\centering#3\strut}\hfill
+\llap{\parbox[b]{\headwidth}{\raggedleft#4\strut}}}\headrule}}#5}
+
+\def\@fancyfoot#1#2#3#4#5{#1\hbox to\headwidth{\fancy at reset\vbox{\footrule
+\hbox{\rlap{\parbox[t]{\headwidth}{\raggedright#2\strut}}\hfill
+\parbox[t]{\headwidth}{\centering#3\strut}\hfill
+\llap{\parbox[t]{\headwidth}{\raggedleft#4\strut}}}}}#5}
+
+\def\headrule{{\if at fancyplain\let\headrulewidth\plainheadrulewidth\fi
+\hrule\@height\headrulewidth\@width\headwidth \vskip-\headrulewidth}}
+
+\def\footrule{{\if at fancyplain\let\footrulewidth\plainfootrulewidth\fi
+\vskip-\footruleskip\vskip-\footrulewidth
+\hrule\@width\headwidth\@height\footrulewidth\vskip\footruleskip}}
+
+\def\ps at fancy{%
+\@ifundefined{@chapapp}{\let\@chapapp\chaptername}{}%for amsbook
+%
+% Define \MakeUppercase for old LaTeXen.
+% Note: we used \def rather than \let, so that \let\uppercase\relax (from
+% the version 1 documentation) will still work.
+%
+\@ifundefined{MakeUppercase}{\def\MakeUppercase{\uppercase}}{}%
+\@ifundefined{chapter}{\def\sectionmark##1{\markboth
+{\MakeUppercase{\ifnum \c at secnumdepth>\z@
+ \thesection\hskip 1em\relax \fi ##1}}{}}%
+\def\subsectionmark##1{\markright {\ifnum \c at secnumdepth >\@ne
+ \thesubsection\hskip 1em\relax \fi ##1}}}%
+{\def\chaptermark##1{\markboth {\MakeUppercase{\ifnum \c at secnumdepth>\m at ne
+ \@chapapp\ \thechapter. \ \fi ##1}}{}}%
+\def\sectionmark##1{\markright{\MakeUppercase{\ifnum \c at secnumdepth >\z@
+ \thesection. \ \fi ##1}}}}%
+%\csname ps at headings\endcsname % use \ps at headings defaults if they exist
+\ps@@fancy
+\gdef\ps at fancy{\@fancyplainfalse\ps@@fancy}%
+% Initialize \headwidth if the user didn't
+%
+\ifdim\headwidth<0sp
+%
+% This catches the case that \headwidth hasn't been initialized and the
+% case that the user added something to \headwidth in the expectation that
+% it was initialized to \textwidth. We compensate this now. This loses if
+% the user intended to multiply it by a factor. But that case is more
+% likely done by saying something like \headwidth=1.2\textwidth.
+% The doc says you have to change \headwidth after the first call to
+% \pagestyle{fancy}. This code is just to catch the most common cases were
+% that requirement is violated.
+%
+    \global\advance\headwidth123456789sp\global\advance\headwidth\textwidth
+\fi}
+\def\ps at fancyplain{\ps at fancy \let\ps at plain\ps at plain@fancy}
+\def\ps at plain@fancy{\@fancyplaintrue\ps@@fancy}
+\let\ps@@empty\ps at empty
+\def\ps@@fancy{%
+\ps@@empty % This is for amsbook/amsart, which do strange things with \topskip
+\def\@mkboth{\protect\markboth}%
+\def\@oddhead{\@fancyhead\@lodd\f at ncyolh\f at ncyoch\f at ncyorh\@rodd}%
+\def\@oddfoot{\@fancyfoot\@lodd\f at ncyolf\f at ncyocf\f at ncyorf\@rodd}%
+\def\@evenhead{\@fancyhead\@rodd\f at ncyelh\f at ncyech\f at ncyerh\@lodd}%
+\def\@evenfoot{\@fancyfoot\@rodd\f at ncyelf\f at ncyecf\f at ncyerf\@lodd}%
+}
+\def\@lodd{\if at reversemargin\hss\else\relax\fi}
+\def\@rodd{\if at reversemargin\relax\else\hss\fi}
+
+\newif\iffootnote
+\let\latex at makecol\@makecol
+\def\@makecol{\ifvoid\footins\footnotetrue\else\footnotefalse\fi
+\let\topfloat\@toplist\let\botfloat\@botlist\latex at makecol}
+\def\iftopfloat#1#2{\ifx\topfloat\empty #2\else #1\fi}
+\def\ifbotfloat#1#2{\ifx\botfloat\empty #2\else #1\fi}
+\def\iffloatpage#1#2{\if at fcolmade #1\else #2\fi}
+
+\newcommand{\fancypagestyle}[2]{%
+  \@namedef{ps@#1}{\let\fancy at def\def#2\relax\ps at fancy}}
diff --git a/Wrapping/R/Packaging/SimpleITK/vignettes/floatflt.sty b/Wrapping/R/Packaging/SimpleITK/vignettes/floatflt.sty
new file mode 100644
index 0000000..fdaf10d
--- /dev/null
+++ b/Wrapping/R/Packaging/SimpleITK/vignettes/floatflt.sty
@@ -0,0 +1,348 @@
+%%
+%% This is file `floatflt.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% floatflt.dtx  (with options: `paketkod')
+%%
+%% Copyright (c) 1994-1998 by Mats Dahlgren <matsd at sssk.se>.
+%% All rights reserved.  See the file `floatflt.ins' for information
+%% on how you may (re-)distribute the `floatflt' package files.
+%% You are not allowed to make any changes to this file without
+%% explicit permission from the author.
+%%
+\NeedsTeXFormat{LaTeX2e}[1996/12/01]
+\ProvidesPackage{floatflt}[1997/07/16 v. 1.31]
+\newcounter{OptionTest}
+\setcounter{OptionTest}{0}
+\DeclareOption{rflt}{\setcounter{OptionTest}{1}}
+\DeclareOption{lflt}{\setcounter{OptionTest}{2}}
+\DeclareOption{vflt}{\setcounter{OptionTest}{0}}
+\DeclareOption*{\OptionNotUsed}
+\ProcessOptions
+\newbox\figbox
+\newbox\tabbox
+\newbox\pagebox
+\newcount\ffigcount
+\newcount\ftabcount
+\newcount\fftest
+\newcount\hangcount
+\newcount\nosuccesstryfig
+\newcount\nosuccesstrytab
+\newdimen\figgutter   \figgutter=1truepc
+\newdimen\tabgutter   \tabgutter=1truepc
+\newdimen\htdone      \htdone=0pt
+\newdimen\pageht
+\newdimen\startpageht
+\newdimen\tabbredd
+\newdimen\floatfltwidth
+\newdimen\fltitemwidth
+\newif\iftryingfig     \tryingfigfalse
+\newif\iftryingtab     \tryingtabfalse
+\newif\ifdoingfig      \doingfigfalse
+\newif\ifdoingtab      \doingtabfalse
+\newif\iffigprocessing \figprocessingfalse
+\newif\iftabprocessing \tabprocessingfalse
+\newif\ifpageafterfig  \pageafterfigfalse
+\newif\ifpageaftertab  \pageaftertabfalse
+\newif\ifoddpages
+\newif\ifoutput
+\newtoks\outputpretest
+\newenvironment{floatingfigure}[2][v]%
+{\@tfor \@tempa :=#1\do
+         {\if\@tempa r\global\oddpagestrue\fi
+          \if\@tempa l\global\oddpagesfalse\fi
+          \if\@tempa p%
+              \ifodd\c at page\global\oddpagestrue
+                \else\global\oddpagesfalse\fi
+          \fi
+          \if\@tempa v%
+             \ifnum\theOptionTest=0
+                 \ifodd\c at page\global\oddpagestrue
+                   \else\global\oddpagesfalse\fi
+             \else
+                  \ifodd\theOptionTest\global\oddpagestrue
+                    \else\global\oddpagesfalse\fi
+             \fi
+          \fi
+         }
+ \expandafter\ifx\csname oldoutput\endcsname\relax% ref. TeXbook Ex.7.7
+    \PackageError{floatflt}{The `floatflt' package is not initialized}
+     {Try to reinstall the `floatflt' package.\MessageBreak
+      Type `x' to quit or <Return> to try to go on.}\@@end\fi
+ \global\everypar={\tryfig\oldeverypar}% must be set globally!
+ \global\advance\ffigcount by 1
+ \iffigprocessing
+    {\count0=\ffigcount\advance\count0 by -1
+     \PackageWarningNoLine{floatflt}{Floating figures \the\count0\space%
+       \space and \the\ffigcount\space colliding}%
+    }%
+ \fi
+ \iftabprocessing \PackageWarningNoLine{floatflt}{Floating figure %
+   \the\ffigcount\space and floating table \the\ftabcount\space colliding}
+ \fi
+ \def\@captype{figure}
+ \global\setlength{\floatfltwidth}{#2}
+ \global\figprocessingtrue
+ \global\setbox\figbox=\vbox\bgroup% begin of figbox
+                               \hrule height 0pt width #2 depth 0pt%
+                               \hsize=#2%
+}
+{
+\egroup
+\figinsert\par%
+}
+\newenvironment{floatingtable}[2][v]%
+{\@tfor \@tempa :=#1\do
+         {\if\@tempa r\global\oddpagestrue\fi
+          \if\@tempa l\global\oddpagesfalse\fi
+          \if\@tempa p%
+              \ifodd\c at page\global\oddpagestrue
+                \else\global\oddpagesfalse\fi
+          \fi
+          \if\@tempa v%
+             \ifnum \theOptionTest=0
+                 \ifodd\c at page\global\oddpagestrue
+                   \else\global\oddpagesfalse\fi
+             \else
+                  \ifodd\theOptionTest\global\oddpagestrue
+                    \else\global\oddpagesfalse\fi
+             \fi
+          \fi
+         }
+\expandafter\ifx\csname oldoutput\endcsname\relax% ref. TeXbook Ex.7.7
+     \PackageError{floatflt}{The `floatflt' package is not initialized}
+     {Try to reinstall the `floatflt' package.\MessageBreak
+      Type `x' to quit or <Return> to try to go on.}\@@end\fi
+\global\setbox\tabbox=\vbox\bgroup\hrule height 0pt width 0pt depth 0pt%
+   \hsize=0pt\egroup
+ \global\everypar={\trytab\oldeverypar}
+ \global\advance\ftabcount by 1
+ \iftabprocessing
+    {\count0=\ftabcount\advance\count0 by -1
+     \PackageWarningNoLine{floatflt}{Floating tables \the\count0\space%
+            \space and \the\ftabcount \space colliding}%
+    }
+ \fi
+ \iftabprocessing \PackageWarningNoLine{floatflt}{Floating table %
+   \the\ffigcount\space and floating figure \the\ftabcount\space colliding}
+ \fi
+ \settowidth{\tabbredd}{#2}
+ \global\setlength{\floatfltwidth}{\tabbredd}
+ \def\@captype{table}
+ \global\tabprocessingtrue
+ \global\setbox\tabbox=\vbox\bgroup% begin of tabbox
+                              \hrule height 0pt width\tabbredd depth 0pt%
+                               \hsize=\tabbredd
+\noindent\ifnum\ftabcount >1\ifoddpages\else\hspace*{-12pt}\fi\fi%
+#2\vspace{0.2\baselineskip}%
+}
+{
+\egroup% end of \tabbox
+\tabinsert\par%
+}
+\AtBeginDocument{%
+\edef\oldoutput{\the\output}%
+\output={\the\outputpretest%
+           \ifoutput\oldoutput\fi}
+\outputpretest={\outputtrue}
+\edef\oldeverypar{\the\everypar}
+}
+\def\dofigtest{%
+   \ifnum\outputpenalty=-10005
+     \setbox\pagebox=\vbox{\unvbox255}%
+     \global\pageht=\ht\pagebox
+     \global\outputfalse
+     \unvbox\pagebox
+   \else
+     \global\outputtrue
+     \ifdoingfig
+         \global\pageafterfigtrue
+     \fi
+   \fi}%
+\def\dotabtest{%
+   \ifnum\outputpenalty=-10005
+     \setbox\pagebox=\vbox{\unvbox255}%
+     \global\pageht=\ht\pagebox
+     \global\outputfalse
+     \unvbox\pagebox
+   \else
+     \global\outputtrue
+     \ifdoingtab
+         \global\pageaftertabtrue
+     \fi
+   \fi}%
+\def\tryfig{%
+      \iftryingfig
+       {\everypar={\relax}\setbox0=\lastbox%
+       \parindent=\wd0 \parskip=0pt \par%
+       \penalty-10005 \leavevmode}%
+       \dimen0=\vsize%
+       \advance\dimen0 by -\pageht%
+       \advance\dimen0 by -2\baselineskip%
+       \ifdim\dimen0>\ht\figbox%
+         \dimen0=0.3\baselineskip
+         \vrule depth \dimen0 width 0pt
+         \vadjust{\kern -\dimen0%
+         \vtop to \dimen0{%
+             \baselineskip=\dimen0%
+             \vss \vbox to 1ex{%
+             \ifoddpages%
+               \hbox to \hsize{\hss\copy\figbox}%
+             \else% leftsetting
+               \hbox to \hsize{\copy\figbox\hss}%
+             \fi% \ifodd\count0
+             \vss}\null}}%
+       \global\tryingfigfalse%
+       \global\doingfigtrue
+       \global\startpageht=\pageht
+       \global\htdone=0pt
+       \dohangf
+       \ifnum\nosuccesstryfig>0%
+         \typeout{floatflt Message: Flt. fig. \the\ffigcount\space set on page
+             \the\count0, shifted \the\nosuccesstryfig\space par(s) forward.}%
+       \else
+         \typeout{Package floatflt Message: Floating figure \the\ffigcount
+              \space set on page \the\count0}%
+       \fi
+     \else
+       \global\advance\nosuccesstryfig by 1
+     \fi
+     \else%
+     \ifdoingfig
+       {\everypar={\relax}\setbox0=\lastbox
+       \parindent=\wd0 \parskip=0pt \par
+         \penalty-10005 \leavevmode}%
+    \global\htdone=\pageht
+    \global\advance\htdone by -\startpageht
+    \ifpageafterfig
+      \global\doingfigfalse
+    \else
+      \dimen0=\ht\figbox%
+      \advance\dimen0 by 0.5\baselineskip%
+      \ifdim\htdone<\dimen0%
+         \dohangf
+      \else
+         \global\doingfigfalse
+      \fi
+    \fi
+    \ifdoingfig\relax\else\global\figprocessingfalse\fi
+  \else
+    \global\outputpretest={\outputtrue}%
+  \fi
+\fi
+}
+\def\trytab{%
+      \iftryingtab%
+       {\everypar={\relax}\setbox0=\lastbox%
+       \parindent=\wd0 \parskip=0pt \par%
+       \penalty-10005 \leavevmode}%
+       \dimen0=\vsize%
+       \advance\dimen0 by -\pageht%
+       \advance\dimen0 by -2\baselineskip%
+       \ifdim\dimen0>\ht\tabbox%
+         \dimen0=0.3\baselineskip
+         \vrule depth \dimen0 width 0pt
+         \vadjust{\kern -\dimen0%
+         \vtop to \dimen0{%
+             \baselineskip=\dimen0%
+             \vss \vbox to 1ex{%
+              \ifoddpages%
+               \hbox to \hsize{\hss\copy\tabbox}%
+             \else% leftsetting
+               \hbox to \hsize{\copy\tabbox\hss}%
+             \fi% \ifodd\count0
+             \vss}\null}}%
+       \global\tryingtabfalse%
+       \global\doingtabtrue
+       \global\startpageht=\pageht
+       \global\htdone=0pt
+       \dohangt
+       \ifnum\nosuccesstrytab>0%
+         \typeout{floatflt Message: Flt. tab. \the\ftabcount\space set on page
+             \the\count0, shifted \the\nosuccesstrytab\space par(s) forward.}%
+       \else
+         \typeout{Package floatflt Message: Floating table \the\ftabcount\space
+                  set on page \the\count0}%
+       \fi
+     \else
+       \global\advance\nosuccesstrytab by 1
+     \fi
+     \else
+     \ifdoingtab
+       {\everypar={\relax}\setbox0=\lastbox
+       \parindent=\wd0 \parskip=0pt \par
+         \penalty-10005 \leavevmode}%
+    \global\htdone=\pageht
+    \global\advance\htdone by -\startpageht
+    \ifpageaftertab
+      \global\doingtabfalse
+    \else
+      \dimen0=\ht\tabbox%
+      \advance\dimen0 by 0.5\baselineskip%
+      \ifdim\htdone<\dimen0%
+         \dohangt
+      \else
+         \global\doingtabfalse
+      \fi
+    \fi
+    \ifdoingtab\relax\else\global\tabprocessingfalse\fi
+  \else
+    \global\outputpretest={\outputtrue}%
+  \fi
+\fi
+}
+\def\figinsert{%
+   \global\nosuccesstryfig=0%
+   \global\outputpretest={\dofigtest}%
+   \global\tryingfigtrue \global\doingfigfalse%
+   \global\pageafterfigfalse}%
+\def\tabinsert{%
+   \global\nosuccesstrytab=0%
+   \global\outputpretest={\dotabtest}%
+   \global\tryingtabtrue \global\doingtabfalse%
+   \global\pageaftertabfalse}%
+\def\dohangf{%
+   \dimen0=\ht\figbox%
+   \advance\dimen0 by -\htdone%
+   \advance\dimen0 by 1.49\baselineskip%
+   \hangcount=\dimen0%
+   \divide\hangcount by \baselineskip%
+   \dimen0=\wd\figbox%
+   \advance\dimen0 by \figgutter%
+   \ifoddpages%
+     \global\hangafter=-\hangcount% placing right
+     \global\hangindent=-\dimen0%
+   \else% \ifleftsetting
+     \global\hangafter=-\hangcount% placing left
+     \global\hangindent=\dimen0%
+   \fi
+}
+\def\dohangt{%
+   \dimen0=\ht\tabbox%
+   \advance\dimen0 by -\htdone%
+   \advance\dimen0 by 1.49\baselineskip%
+   \hangcount=\dimen0%
+   \divide\hangcount by \baselineskip%
+   \dimen0=\wd\tabbox%
+   \advance\dimen0 by \tabgutter%
+   \ifoddpages%
+     \global\hangafter=-\hangcount% placing right
+     \global\hangindent=-\dimen0%
+   \else% \ifleftsetting
+     \global\hangafter=-\hangcount% placing left
+     \global\hangindent=\dimen0%
+   \fi
+}
+\newcommand{\fltitem}[2][0pt]{\setlength{\fltitemwidth}{\linewidth}%
+  \addtolength{\fltitemwidth}{-\floatfltwidth}%
+  \addtolength{\fltitemwidth}{-0.5em}%
+  \item \parbox[t]{\fltitemwidth}{#2}\\[#1]}
+\newcommand{\fltditem}[3][0pt]{\setlength{\fltitemwidth}{\linewidth}%
+  \addtolength{\fltitemwidth}{-\floatfltwidth}%
+  \addtolength{\fltitemwidth}{-0.5em}%
+  \item[#2] \parbox[t]{\fltitemwidth}{#3}\\[#1]}
+\endinput
+%%
+%% End of file `floatflt.sty'.
diff --git a/Wrapping/R/Packaging/SimpleITK/vignettes/fncychap.sty b/Wrapping/R/Packaging/SimpleITK/vignettes/fncychap.sty
new file mode 100644
index 0000000..6b81f31
--- /dev/null
+++ b/Wrapping/R/Packaging/SimpleITK/vignettes/fncychap.sty
@@ -0,0 +1,431 @@
+%%% Derived from the original fncychap.sty,
+%%% but changed ``TWELV'' to ``TWELVE''.
+
+%%% Copyright   Ulf A. Lindgren
+%%%             Department of Applied Electronics
+%%%             Chalmers University of Technology
+%%%             S-412 96 Gothenburg, Sweden
+%%%             E-mail lindgren at ae.chalmers.se
+%%%
+%%% Note        Permission is granted to modify this file under
+%%%             the condition that it is saved using another
+%%%             file and package name.
+%%%
+%%% Revision    1.1
+%%%
+%%%             Jan. 8th Modified package name base date option
+%%%             Jan. 22th Modified FmN and FmTi for error in book.cls
+%%%                  \MakeUppercase{#}->{\MakeUppercase#}
+%%%             Apr. 6th Modified Lenny option to prevent undesired
+%%%                  skip of line.
+%%%             Nov. 8th Fixed \@chapapp for AMS
+%%%             Feb. 11th Fixed appendix problem related to Bjarne
+%%% Last modified    Feb. 11th 1998
+
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesPackage{fncychap}
+             [1997/04/06 v1.11
+                 LaTeX package (Revised chapters)]
+
+%%%% DEFINITION OF Chapapp variables
+\newcommand{\CNV}{\huge\bfseries}
+\newcommand{\ChNameVar}[1]{\renewcommand{\CNV}{#1}}
+
+
+%%%% DEFINITION OF TheChapter variables
+\newcommand{\CNoV}{\huge\bfseries}
+\newcommand{\ChNumVar}[1]{\renewcommand{\CNoV}{#1}}
+
+\newif\ifUCN
+\UCNfalse
+\newif\ifLCN
+\LCNfalse
+\def\ChNameLowerCase{\LCNtrue\UCNfalse}
+\def\ChNameUpperCase{\UCNtrue\LCNfalse}
+\def\ChNameAsIs{\UCNfalse\LCNfalse}
+
+%%%%% Fix for AMSBook 971008
+
+\@ifundefined{@chapapp}{\let\@chapapp\chaptername}{}
+
+
+%%%%% Fix for Bjarne and appendix 980211
+
+\newif\ifinapp
+\inappfalse
+\renewcommand\appendix{\par
+  \setcounter{chapter}{0}%
+  \setcounter{section}{0}%
+  \inapptrue%
+  \renewcommand\@chapapp{\appendixname}%
+  \renewcommand\thechapter{\@Alph\c at chapter}}
+
+%%%%%
+
+\newcommand{\FmN}[1]{%
+\ifUCN
+   {\MakeUppercase#1}\LCNfalse
+\else
+   \ifLCN
+      {\MakeLowercase#1}\UCNfalse
+   \else #1
+   \fi
+\fi}
+
+
+%%%% DEFINITION OF Title variables
+\newcommand{\CTV}{\Huge\bfseries}
+\newcommand{\ChTitleVar}[1]{\renewcommand{\CTV}{#1}}
+
+%%%% DEFINITION OF the basic rule width
+\newlength{\RW}
+\setlength{\RW}{1pt}
+\newcommand{\ChRuleWidth}[1]{\setlength{\RW}{#1}}
+
+\newif\ifUCT
+\UCTfalse
+\newif\ifLCT
+\LCTfalse
+\def\ChTitleLowerCase{\LCTtrue\UCTfalse}
+\def\ChTitleUpperCase{\UCTtrue\LCTfalse}
+\def\ChTitleAsIs{\UCTfalse\LCTfalse}
+\newcommand{\FmTi}[1]{%
+\ifUCT
+
+   {\MakeUppercase#1}\LCTfalse
+\else
+   \ifLCT
+      {\MakeLowercase#1}\UCTfalse
+   \else #1
+   \fi
+\fi}
+
+
+
+\newlength{\mylen}
+\newlength{\myhi}
+\newlength{\px}
+\newlength{\py}
+\newlength{\pyy}
+\newlength{\pxx}
+
+
+\def\mghrulefill#1{\leavevmode\leaders\hrule\@height #1\hfill\kern\z@}
+
+\newcommand{\DOCH}{%
+  \CNV\FmN{\@chapapp}\space \CNoV\thechapter
+  \par\nobreak
+  \vskip 20\p@
+  }
+\newcommand{\DOTI}[1]{%
+    \CTV\FmTi{#1}\par\nobreak
+    \vskip 40\p@
+    }
+\newcommand{\DOTIS}[1]{%
+    \CTV\FmTi{#1}\par\nobreak
+    \vskip 40\p@
+    }
+
+%%%%%% SONNY DEF
+
+\DeclareOption{Sonny}{%
+  \ChNameVar{\Large\sf}
+  \ChNumVar{\Huge}
+  \ChTitleVar{\Large\sf}
+  \ChRuleWidth{0.5pt}
+  \ChNameUpperCase
+  \renewcommand{\DOCH}{%
+    \raggedleft
+    \CNV\FmN{\@chapapp}\space \CNoV\thechapter
+    \par\nobreak
+    \vskip 40\p@}
+  \renewcommand{\DOTI}[1]{%
+    \CTV\raggedleft\mghrulefill{\RW}\par\nobreak
+    \vskip 5\p@
+    \CTV\FmTi{#1}\par\nobreak
+    \mghrulefill{\RW}\par\nobreak
+    \vskip 40\p@}
+  \renewcommand{\DOTIS}[1]{%
+    \CTV\raggedleft\mghrulefill{\RW}\par\nobreak
+    \vskip 5\p@
+    \CTV\FmTi{#1}\par\nobreak
+    \mghrulefill{\RW}\par\nobreak
+    \vskip 40\p@}
+}
+
+%%%%%% LENNY DEF
+
+\DeclareOption{Lenny}{%
+
+  \ChNameVar{\fontsize{14}{16}\usefont{OT1}{phv}{m}{n}\selectfont}
+  \ChNumVar{\fontsize{60}{62}\usefont{OT1}{ptm}{m}{n}\selectfont}
+  \ChTitleVar{\Huge\bfseries\rm}
+  \ChRuleWidth{1pt}
+  \renewcommand{\DOCH}{%
+    \settowidth{\px}{\CNV\FmN{\@chapapp}}
+    \addtolength{\px}{2pt}
+    \settoheight{\py}{\CNV\FmN{\@chapapp}}
+    \addtolength{\py}{1pt}
+
+    \settowidth{\mylen}{\CNV\FmN{\@chapapp}\space\CNoV\thechapter}
+    \addtolength{\mylen}{1pt}
+    \settowidth{\pxx}{\CNoV\thechapter}
+    \addtolength{\pxx}{-1pt}
+
+    \settoheight{\pyy}{\CNoV\thechapter}
+    \addtolength{\pyy}{-2pt}
+    \setlength{\myhi}{\pyy}
+    \addtolength{\myhi}{-1\py}
+    \par
+    \parbox[b]{\textwidth}{%
+    \rule[\py]{\RW}{\myhi}%
+    \hskip -\RW%
+    \rule[\pyy]{\px}{\RW}%
+    \hskip -\px%
+    \raggedright%
+    \CNV\FmN{\@chapapp}\space\CNoV\thechapter%
+    \hskip1pt%
+    \mghrulefill{\RW}%
+    \rule{\RW}{\pyy}\par\nobreak%
+    \vskip -\baselineskip%
+    \vskip -\pyy%
+    \hskip \mylen%
+    \mghrulefill{\RW}\par\nobreak%
+    \vskip \pyy}%
+    \vskip 20\p@}
+
+
+  \renewcommand{\DOTI}[1]{%
+    \raggedright
+    \CTV\FmTi{#1}\par\nobreak
+    \vskip 40\p@}
+
+  \renewcommand{\DOTIS}[1]{%
+    \raggedright
+    \CTV\FmTi{#1}\par\nobreak
+    \vskip 40\p@}
+ }
+
+
+%%%%%%% GLENN DEF
+
+
+\DeclareOption{Glenn}{%
+  \ChNameVar{\bfseries\Large\sf}
+  \ChNumVar{\Huge}
+  \ChTitleVar{\bfseries\Large\rm}
+  \ChRuleWidth{1pt}
+  \ChNameUpperCase
+  \ChTitleUpperCase
+  \renewcommand{\DOCH}{%
+    \settoheight{\myhi}{\CTV\FmTi{Test}}
+    \setlength{\py}{\baselineskip}
+    \addtolength{\py}{\RW}
+    \addtolength{\py}{\myhi}
+    \setlength{\pyy}{\py}
+    \addtolength{\pyy}{-1\RW}
+
+    \raggedright
+    \CNV\FmN{\@chapapp}\space\CNoV\thechapter
+    \hskip 3pt\mghrulefill{\RW}\rule[-1\pyy]{2\RW}{\py}\par\nobreak}
+
+  \renewcommand{\DOTI}[1]{%
+    \addtolength{\pyy}{-4pt}
+    \settoheight{\myhi}{\CTV\FmTi{#1}}
+    \addtolength{\myhi}{\py}
+    \addtolength{\myhi}{-1\RW}
+    \vskip -1\pyy
+    \rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 2pt
+    \raggedleft\CTV\FmTi{#1}\par\nobreak
+    \vskip 80\p@}
+
+  \renewcommand{\DOTIS}[1]{%
+    \setlength{\py}{10pt}
+    \setlength{\pyy}{\py}
+    \addtolength{\pyy}{\RW}
+    \setlength{\myhi}{\baselineskip}
+    \addtolength{\myhi}{\pyy}
+    \mghrulefill{\RW}\rule[-1\py]{2\RW}{\pyy}\par\nobreak
+%    \addtolength{}{}
+\vskip -1\baselineskip
+    \rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 2pt
+    \raggedleft\CTV\FmTi{#1}\par\nobreak
+    \vskip 60\p@}
+  }
+
+%%%%%%% CONNY DEF
+
+\DeclareOption{Conny}{%
+  \ChNameUpperCase
+  \ChTitleUpperCase
+  \ChNameVar{\centering\Huge\rm\bfseries}
+  \ChNumVar{\Huge}
+  \ChTitleVar{\centering\Huge\rm}
+  \ChRuleWidth{2pt}
+
+  \renewcommand{\DOCH}{%
+    \mghrulefill{3\RW}\par\nobreak
+    \vskip -0.5\baselineskip
+    \mghrulefill{\RW}\par\nobreak
+    \CNV\FmN{\@chapapp}\space \CNoV\thechapter
+    \par\nobreak
+    \vskip -0.5\baselineskip
+   }
+  \renewcommand{\DOTI}[1]{%
+    \mghrulefill{\RW}\par\nobreak
+    \CTV\FmTi{#1}\par\nobreak
+    \vskip 60\p@
+    }
+  \renewcommand{\DOTIS}[1]{%
+    \mghrulefill{\RW}\par\nobreak
+    \CTV\FmTi{#1}\par\nobreak
+    \vskip 60\p@
+    }
+  }
+
+%%%%%%% REJNE DEF
+
+\DeclareOption{Rejne}{%
+
+  \ChNameUpperCase
+  \ChTitleUpperCase
+  \ChNameVar{\centering\Large\rm}
+  \ChNumVar{\Huge}
+  \ChTitleVar{\centering\Huge\rm}
+  \ChRuleWidth{1pt}
+  \renewcommand{\DOCH}{%
+    \settoheight{\py}{\CNoV\thechapter}
+    \addtolength{\py}{-1pt}
+    \CNV\FmN{\@chapapp}\par\nobreak
+    \vskip 20\p@
+    \setlength{\myhi}{2\baselineskip}
+    \setlength{\px}{\myhi}
+    \addtolength{\px}{-1\RW}
+    \rule[-1\px]{\RW}{\myhi}\mghrulefill{\RW}\hskip
+    10pt\raisebox{-0.5\py}{\CNoV\thechapter}\hskip
+10pt\mghrulefill{\RW}\rule[-1\px]{\RW}{\myhi}\par\nobreak
+     \vskip -1\p@
+    }
+  \renewcommand{\DOTI}[1]{%
+    \setlength{\mylen}{\textwidth}
+    \addtolength{\mylen}{-2\RW}
+    {\vrule width\RW}\parbox{\mylen}{\CTV\FmTi{#1}}{\vrule
+width\RW}\par\nobreak
+    \vskip
+-1pt\rule{\RW}{2\baselineskip}\mghrulefill{\RW}\rule{\RW}{2\baselineskip}
+    \vskip 60\p@
+    }
+  \renewcommand{\DOTIS}[1]{%
+    \setlength{\py}{\fboxrule}
+    \setlength{\fboxrule}{\RW}
+    \setlength{\mylen}{\textwidth}
+    \addtolength{\mylen}{-2\RW}
+    \fbox{\parbox{\mylen}{\vskip
+2\baselineskip\CTV\FmTi{#1}\par\nobreak\vskip \baselineskip}}
+    \setlength{\fboxrule}{\py}
+    \vskip 60\p@
+    }
+  }
+
+
+%%%%%%% BJARNE DEF
+
+\DeclareOption{Bjarne}{%
+  \ChNameUpperCase
+  \ChTitleUpperCase
+  \ChNameVar{\raggedleft\normalsize\rm}
+  \ChNumVar{\raggedleft \bfseries\Large}
+  \ChTitleVar{\raggedleft \Large\rm}
+  \ChRuleWidth{1pt}
+
+
+%% Note thechapter -> c at chapter fix appendix bug
+
+  \newcounter{AlphaCnt}
+  \newcounter{AlphaDecCnt}
+  \newcommand{\AlphaNo}{%
+    \ifcase\number\theAlphaCnt
+      \ifnum\c at chapter=0
+        ZERO\else{}\fi
+    \or ONE\or TWO\or THREE\or FOUR\or FIVE
+    \or SIX\or SEVEN\or EIGHT\or NINE\or TEN
+    \or ELEVEN\or TWELVE\or THIRTEEN\or FOURTEEN\or FIFTEEN
+    \or SIXTEEN\or SEVENTEEN\or EIGHTEEN\or NINETEEN\fi
+}
+
+  \newcommand{\AlphaDecNo}{%
+    \setcounter{AlphaDecCnt}{0}
+    \@whilenum\number\theAlphaCnt>0\do
+      {\addtocounter{AlphaCnt}{-10}
+       \addtocounter{AlphaDecCnt}{1}}
+     \ifnum\number\theAlphaCnt=0
+     \else
+       \addtocounter{AlphaDecCnt}{-1}
+       \addtocounter{AlphaCnt}{10}
+     \fi
+
+
+    \ifcase\number\theAlphaDecCnt\or TEN\or TWENTY\or THIRTY\or
+    FORTY\or FIFTY\or SIXTY\or SEVENTY\or EIGHTY\or NINETY\fi
+    }
+  \newcommand{\TheAlphaChapter}{%
+
+    \ifinapp
+      \thechapter
+    \else
+      \setcounter{AlphaCnt}{\c at chapter}
+      \ifnum\c at chapter<20
+        \AlphaNo
+      \else
+        \AlphaDecNo\AlphaNo
+      \fi
+    \fi
+    }
+  \renewcommand{\DOCH}{%
+    \mghrulefill{\RW}\par\nobreak
+    \CNV\FmN{\@chapapp}\par\nobreak
+    \CNoV\TheAlphaChapter\par\nobreak
+    \vskip -1\baselineskip\vskip 5pt\mghrulefill{\RW}\par\nobreak
+    \vskip 20\p@
+    }
+  \renewcommand{\DOTI}[1]{%
+    \CTV\FmTi{#1}\par\nobreak
+    \vskip 40\p@
+    }
+  \renewcommand{\DOTIS}[1]{%
+    \CTV\FmTi{#1}\par\nobreak
+    \vskip 40\p@
+    }
+}
+
+\DeclareOption*{%
+  \PackageWarning{fancychapter}{unknown style option}
+  }
+
+\ProcessOptions* \relax
+
+\def\@makechapterhead#1{%
+  \vspace*{50\p@}%
+  {\parindent \z@ \raggedright \normalfont
+    \ifnum \c at secnumdepth >\m at ne
+      \DOCH
+    \fi
+    \interlinepenalty\@M
+    \DOTI{#1}
+  }}
+\def\@schapter#1{\if at twocolumn
+                   \@topnewpage[\@makeschapterhead{#1}]%
+                 \else
+                   \@makeschapterhead{#1}%
+                   \@afterheading
+                 \fi}
+\def\@makeschapterhead#1{%
+  \vspace*{50\p@}%
+  {\parindent \z@ \raggedright
+    \normalfont
+    \interlinepenalty\@M
+    \DOTIS{#1}
+    \vskip 40\p@
+  }}
+
+\endinput
diff --git a/Wrapping/R/Packaging/SimpleITK/vignettes/jss.cls b/Wrapping/R/Packaging/SimpleITK/vignettes/jss.cls
new file mode 100644
index 0000000..7350460
--- /dev/null
+++ b/Wrapping/R/Packaging/SimpleITK/vignettes/jss.cls
@@ -0,0 +1,467 @@
+%%
+%% This is file `jss.cls',
+\def\fileversion{2.0}
+\def\filename{jss}
+\def\filedate{2009/09/24}
+%%
+%% Package `jss' to use with LaTeX2e for JSS publications (http://www.jstatsoft.org/)
+%% License: GPL-2
+%% Copyright: (C) Achim Zeileis
+%% Please report errors to Achim.Zeileis at R-project.org
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{jss}[\filedate\space\fileversion\space jss class by Achim Zeileis]
+%% options
+\newif\if at article
+\newif\if at codesnippet
+\newif\if at bookreview
+\newif\if at softwarereview
+\newif\if at review
+\newif\if at shortnames
+\newif\if at nojss
+\newif\if at notitle
+\newif\if at noheadings
+
+\@articletrue
+\@codesnippetfalse
+\@bookreviewfalse
+\@softwarereviewfalse
+\@reviewfalse
+\@shortnamesfalse
+\@nojssfalse
+\@notitlefalse
+\@noheadingsfalse
+
+\DeclareOption{article}{\@articletrue%
+  \@codesnippetfalse \@bookreviewfalse \@softwarereviewfalse}
+\DeclareOption{codesnippet}{\@articlefalse%
+  \@codesnippettrue \@bookreviewfalse \@softwarereviewfalse}
+\DeclareOption{bookreview}{\@articlefalse%
+  \@codesnippetfalse \@bookreviewtrue \@softwarereviewfalse}
+\DeclareOption{softwarereview}{\@articlefalse%
+  \@codesnippetfalse \@bookreviewfalse \@softwarereviewtrue}
+\DeclareOption{shortnames}{\@shortnamestrue}
+\DeclareOption{nojss}{\@nojsstrue}
+\DeclareOption{notitle}{\@notitletrue}
+\DeclareOption{noheadings}{\@noheadingstrue}
+
+\ProcessOptions
+\LoadClass[11pt,a4paper,twoside]{article}
+%% required packages
+\RequirePackage{graphicx,a4wide,color,ae,fancyvrb}
+\RequirePackage[T1]{fontenc}
+\IfFileExists{upquote.sty}{\RequirePackage{upquote}}{}
+%% bibliography
+\if at shortnames
+  \usepackage[authoryear,round]{natbib}
+\else
+  \usepackage[authoryear,round,longnamesfirst]{natbib}
+\fi
+\bibpunct{(}{)}{;}{a}{}{,}
+\bibliographystyle{jss}
+%% paragraphs
+\setlength{\parskip}{0.7ex plus0.1ex minus0.1ex}
+\setlength{\parindent}{0em}
+%% for all publications
+\newcommand{\Address}[1]{\def\@Address{#1}}
+\newcommand{\Plaintitle}[1]{\def\@Plaintitle{#1}}
+\newcommand{\Shorttitle}[1]{\def\@Shorttitle{#1}}
+\newcommand{\Plainauthor}[1]{\def\@Plainauthor{#1}}
+\newcommand{\Volume}[1]{\def\@Volume{#1}}
+\newcommand{\Year}[1]{\def\@Year{#1}}
+\newcommand{\Month}[1]{\def\@Month{#1}}
+\newcommand{\Issue}[1]{\def\@Issue{#1}}
+\newcommand{\Submitdate}[1]{\def\@Submitdate{#1}}
+%% for articles and code snippets
+\newcommand{\Acceptdate}[1]{\def\@Acceptdate{#1}}
+\newcommand{\Abstract}[1]{\def\@Abstract{#1}}
+\newcommand{\Keywords}[1]{\def\@Keywords{#1}}
+\newcommand{\Plainkeywords}[1]{\def\@Plainkeywords{#1}}
+%% for book and software reviews
+\newcommand{\Reviewer}[1]{\def\@Reviewer{#1}}
+\newcommand{\Booktitle}[1]{\def\@Booktitle{#1}}
+\newcommand{\Bookauthor}[1]{\def\@Bookauthor{#1}}
+\newcommand{\Publisher}[1]{\def\@Publisher{#1}}
+\newcommand{\Pubaddress}[1]{\def\@Pubaddress{#1}}
+\newcommand{\Pubyear}[1]{\def\@Pubyear{#1}}
+\newcommand{\ISBN}[1]{\def\@ISBN{#1}}
+\newcommand{\Pages}[1]{\def\@Pages{#1}}
+\newcommand{\Price}[1]{\def\@Price{#1}}
+\newcommand{\Plainreviewer}[1]{\def\@Plainreviewer{#1}}
+\newcommand{\Softwaretitle}[1]{\def\@Softwaretitle{#1}}
+\newcommand{\URL}[1]{\def\@URL{#1}}
+%% for internal use
+\newcommand{\Seriesname}[1]{\def\@Seriesname{#1}}
+\newcommand{\Hypersubject}[1]{\def\@Hypersubject{#1}}
+\newcommand{\Hyperauthor}[1]{\def\@Hyperauthor{#1}}
+\newcommand{\Footername}[1]{\def\@Footername{#1}}
+\newcommand{\Firstdate}[1]{\def\@Firstdate{#1}}
+\newcommand{\Seconddate}[1]{\def\@Seconddate{#1}}
+\newcommand{\Reviewauthor}[1]{\def\@Reviewauthor{#1}}
+%% defaults
+\author{Firstname Lastname\\Affiliation}
+\title{Title}
+\Abstract{---!!!---an abstract is required---!!!---}
+\Plainauthor{\@author}
+\Volume{VV}
+\Year{YYYY}
+\Month{MMMMMM}
+\Issue{II}
+\Submitdate{yyyy-mm-dd}
+\Acceptdate{yyyy-mm-dd}
+\Address{
+  Firstname Lastname\\
+  Affiliation\\
+  Address, Country\\
+  E-mail: \email{name at address}\\
+  URL: \url{http://link/to/webpage/}
+}
+
+\Reviewer{Firstname Lastname\\Affiliation}
+\Plainreviewer{Firstname Lastname}
+\Booktitle{Book Title}
+\Bookauthor{Book Author}
+\Publisher{Publisher}
+\Pubaddress{Publisher's Address}
+\Pubyear{YYY}
+\ISBN{x-xxxxx-xxx-x}
+\Pages{xv + 123}
+\Price{USD 69.95 (P)}
+\URL{http://link/to/webpage/}
+\if at article
+  \Seriesname{Issue}
+  \Hypersubject{Journal of Statistical Software}
+  \Plaintitle{\@title}
+  \Shorttitle{\@title}
+  \Plainkeywords{\@Keywords}
+\fi
+
+\if at codesnippet
+  \Seriesname{Code Snippet}
+  \Hypersubject{Journal of Statistical Software -- Code Snippets}
+  \Plaintitle{\@title}
+  \Shorttitle{\@title}
+  \Plainkeywords{\@Keywords}
+\fi
+
+\if at bookreview
+  \Seriesname{Book Review}
+  \Hypersubject{Journal of Statistical Software -- Book Reviews}
+  \Plaintitle{\@Booktitle}
+  \Shorttitle{\@Booktitle}
+  \Reviewauthor{\@Bookauthor\\
+                \@Publisher, \@Pubaddress, \@Pubyear.\\
+                ISBN~\@ISBN. \@Pages~pp. \@Price.\\
+                \url{\@URL}}
+  \Plainkeywords{}
+  \@reviewtrue
+\fi
+
+\if at softwarereview
+  \Seriesname{Software Review}
+  \Hypersubject{Journal of Statistical Software -- Software Reviews}
+  \Plaintitle{\@Softwaretitle}
+  \Shorttitle{\@Softwaretitle}
+  \Booktitle{\@Softwaretitle}
+  \Reviewauthor{\@Publisher, \@Pubaddress. \@Price.\\
+                \url{\@URL}}
+  \Plainkeywords{}
+  \@reviewtrue
+\fi
+
+\if at review
+  \Hyperauthor{\@Plainreviewer}
+  \Keywords{}
+  \Footername{Reviewer}
+  \Firstdate{\textit{Published:} \@Submitdate}
+  \Seconddate{}
+\else
+  \Hyperauthor{\@Plainauthor}
+  \Keywords{---!!!---at least one keyword is required---!!!---}
+  \Footername{Affiliation}
+  \Firstdate{\textit{Submitted:} \@Submitdate}
+  \Seconddate{\textit{Accepted:} \@Acceptdate}
+\fi
+%% Sweave(-like)
+\DefineVerbatimEnvironment{Sinput}{Verbatim}{fontshape=sl}
+\DefineVerbatimEnvironment{Soutput}{Verbatim}{}
+\DefineVerbatimEnvironment{Scode}{Verbatim}{fontshape=sl}
+\newenvironment{Schunk}{}{}
+\DefineVerbatimEnvironment{Code}{Verbatim}{}
+\DefineVerbatimEnvironment{CodeInput}{Verbatim}{fontshape=sl}
+\DefineVerbatimEnvironment{CodeOutput}{Verbatim}{}
+\newenvironment{CodeChunk}{}{}
+\setkeys{Gin}{width=0.8\textwidth}
+%% footer
+\newlength{\footerskip}
+\setlength{\footerskip}{2.5\baselineskip plus 2ex minus 0.5ex}
+
+\newcommand{\makefooter}{%
+  \vspace{\footerskip}
+
+  \if at nojss
+    \begin{samepage}
+    \textbf{\large \@Footername: \nopagebreak}\\[.3\baselineskip] \nopagebreak
+    \@Address \nopagebreak
+    \end{samepage}
+  \else
+    \begin{samepage}
+    \textbf{\large \@Footername: \nopagebreak}\\[.3\baselineskip] \nopagebreak
+    \@Address \nopagebreak
+    \vfill
+    \hrule \nopagebreak
+    \vspace{.1\baselineskip}
+    {\fontfamily{pzc} \fontsize{13}{15} \selectfont Journal of Statistical Software}
+    \hfill
+    \url{http://www.jstatsoft.org/}\\ \nopagebreak
+    published by the American Statistical Association
+    \hfill
+    \url{http://www.amstat.org/}\\[.3\baselineskip] \nopagebreak
+    {Volume~\@Volume, \@Seriesname~\@Issue}
+    \hfill
+    \@Firstdate\\ \nopagebreak
+    {\@Month{} \@Year}
+    \hfill
+    \@Seconddate  \nopagebreak
+    \vspace{.3\baselineskip}
+    \hrule
+    \end{samepage}
+  \fi
+}
+\AtEndDocument{\makefooter}
+%% required packages
+\RequirePackage{hyperref}
+%% new \maketitle
+\def\@myoddhead{
+  {\color{white} JSS}\\[-1.42cm]
+  \hspace{-2em} \includegraphics[height=23mm,keepaspectratio]{jsslogo} \hfill
+  \parbox[b][23mm]{118mm}{\hrule height 3pt
+   \center{
+   {\fontfamily{pzc} \fontsize{28}{32} \selectfont Journal of Statistical Software}
+   \vfill
+   {\it \small \@Month{} \@Year, Volume~\@Volume, \@Seriesname~\@Issue.%
+            \hfill \href{http://www.jstatsoft.org/}{http://www.jstatsoft.org/}}}\\[0.1cm]
+     \hrule height 3pt}}
+\if at review
+  \renewcommand{\maketitle}{
+  \if at nojss
+    %% \@oddhead{\@myoddhead}\\[3\baselineskip]
+  \else
+    \@oddhead{\@myoddhead}\\[3\baselineskip]
+  \fi
+    {\large
+    \noindent
+    Reviewer: \@Reviewer
+    \vspace{\baselineskip}
+    \hrule
+    \vspace{\baselineskip}
+    \textbf{\@Booktitle}
+    \begin{quotation} \noindent
+    \@Reviewauthor
+    \end{quotation}
+    \vspace{0.7\baselineskip}
+    \hrule
+    \vspace{1.3\baselineskip}
+    }
+
+    \thispagestyle{empty}
+    \if at nojss
+      \markboth{\centerline{\@Shorttitle}}{\centerline{\@Hyperauthor}}
+    \else
+      \markboth{\centerline{\@Shorttitle}}{\centerline{\@Hypersubject}}
+    \fi
+    \pagestyle{myheadings}
+  }
+\else
+  \def\maketitle{
+  \if at nojss
+    %% \@oddhead{\@myoddhead} \par
+  \else
+    \@oddhead{\@myoddhead} \par
+  \fi
+   \begingroup
+     \def\thefootnote{\fnsymbol{footnote}}
+     \def\@makefnmark{\hbox to 0pt{$^{\@thefnmark}$\hss}}
+     \long\def\@makefntext##1{\parindent 1em\noindent
+                              \hbox to1.8em{\hss $\m at th ^{\@thefnmark}$}##1}
+     \@maketitle \@thanks
+   \endgroup
+   \setcounter{footnote}{0}
+
+   \if at noheadings
+    %% \markboth{\centerline{\@Shorttitle}}{\centerline{\@Hypersubject}}
+    \else
+     \thispagestyle{empty}
+      \if at nojss
+        \markboth{\centerline{\@Shorttitle}}{\centerline{\@Hyperauthor}}
+      \else
+        \markboth{\centerline{\@Shorttitle}}{\centerline{\@Hypersubject}}
+      \fi
+     \pagestyle{myheadings}
+   \fi
+
+   \let\maketitle\relax \let\@maketitle\relax
+   \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\thanks\relax
+  }
+
+  \def\@maketitle{\vbox{\hsize\textwidth \linewidth\hsize
+  \if at nojss
+    %% \vskip 1in
+  \else
+    \vskip 1in
+  \fi
+   {\centering
+   {\LARGE\bf \@title\par}
+   \vskip 0.2in plus 1fil minus 0.1in
+   {
+       \def\and{\unskip\enspace{\rm and}\enspace}%
+       \def\And{\end{tabular}\hss \egroup \hskip 1in plus 2fil
+          \hbox to 0pt\bgroup\hss \begin{tabular}[t]{c}\large\bf\rule{\z@}{24pt}\ignorespaces}%
+       \def\AND{\end{tabular}\hss\egroup \hfil\hfil\egroup
+          \vskip 0.1in plus 1fil minus 0.05in
+          \hbox to \linewidth\bgroup\rule{\z@}{10pt} \hfil\hfil
+          \hbox to 0pt\bgroup\hss \begin{tabular}[t]{c}\large\bf\rule{\z@}{24pt}\ignorespaces}
+       \hbox to \linewidth\bgroup\rule{\z@}{10pt} \hfil\hfil
+       \hbox to 0pt\bgroup\hss \begin{tabular}[t]{c}\large\bf\rule{\z@}{24pt}\@author
+       \end{tabular}\hss\egroup
+   \hfil\hfil\egroup}
+   \vskip 0.3in minus 0.1in
+   \hrule
+   \begin{abstract}
+   \@Abstract
+   \end{abstract}}
+   \textit{Keywords}:~\@Keywords.
+   \vskip 0.1in minus 0.05in
+   \hrule
+   \vskip 0.2in minus 0.1in
+  }}
+\fi
+%% sections, subsections, and subsubsections
+\newlength{\preXLskip}
+\newlength{\preLskip}
+\newlength{\preMskip}
+\newlength{\preSskip}
+\newlength{\postMskip}
+\newlength{\postSskip}
+\setlength{\preXLskip}{1.8\baselineskip plus 0.5ex minus 0ex}
+\setlength{\preLskip}{1.5\baselineskip plus 0.3ex minus 0ex}
+\setlength{\preMskip}{1\baselineskip plus 0.2ex minus 0ex}
+\setlength{\preSskip}{.8\baselineskip plus 0.2ex minus 0ex}
+\setlength{\postMskip}{.5\baselineskip plus 0ex minus 0.1ex}
+\setlength{\postSskip}{.3\baselineskip plus 0ex minus 0.1ex}
+
+\newcommand{\jsssec}[2][default]{\vskip \preXLskip%
+  \pdfbookmark[1]{#1}{Section.\thesection.#1}%
+  \refstepcounter{section}%
+  \centerline{\textbf{\Large \thesection. #2}} \nopagebreak
+  \vskip \postMskip \nopagebreak}
+\newcommand{\jsssecnn}[1]{\vskip \preXLskip%
+  \centerline{\textbf{\Large #1}} \nopagebreak
+  \vskip \postMskip \nopagebreak}
+
+\newcommand{\jsssubsec}[2][default]{\vskip \preMskip%
+  \pdfbookmark[2]{#1}{Subsection.\thesubsection.#1}%
+  \refstepcounter{subsection}%
+  \textbf{\large \thesubsection. #2} \nopagebreak
+  \vskip \postSskip \nopagebreak}
+\newcommand{\jsssubsecnn}[1]{\vskip \preMskip%
+  \textbf{\large #1} \nopagebreak
+  \vskip \postSskip \nopagebreak}
+
+\newcommand{\jsssubsubsec}[2][default]{\vskip \preSskip%
+  \pdfbookmark[3]{#1}{Subsubsection.\thesubsubsection.#1}%
+  \refstepcounter{subsubsection}%
+  {\large \textit{#2}} \nopagebreak
+  \vskip \postSskip \nopagebreak}
+\newcommand{\jsssubsubsecnn}[1]{\vskip \preSskip%
+  {\textit{\large #1}} \nopagebreak
+  \vskip \postSskip \nopagebreak}
+
+\newcommand{\jsssimplesec}[2][default]{\vskip \preLskip%
+%%  \pdfbookmark[1]{#1}{Section.\thesection.#1}%
+  \refstepcounter{section}%
+  \textbf{\large #1} \nopagebreak
+  \vskip \postSskip \nopagebreak}
+\newcommand{\jsssimplesecnn}[1]{\vskip \preLskip%
+  \textbf{\large #1} \nopagebreak
+  \vskip \postSskip \nopagebreak}
+
+\if at review
+  \renewcommand{\section}{\secdef \jsssimplesec \jsssimplesecnn}
+  \renewcommand{\subsection}{\secdef \jsssimplesec \jsssimplesecnn}
+  \renewcommand{\subsubsection}{\secdef \jsssimplesec \jsssimplesecnn}
+\else
+  \renewcommand{\section}{\secdef \jsssec \jsssecnn}
+  \renewcommand{\subsection}{\secdef \jsssubsec \jsssubsecnn}
+  \renewcommand{\subsubsection}{\secdef \jsssubsubsec \jsssubsubsecnn}
+\fi
+%% colors
+\definecolor{Red}{rgb}{0.5,0,0}
+\definecolor{Blue}{rgb}{0,0,0.5}
+\if at review
+  \hypersetup{%
+    hyperindex = {true},
+    colorlinks = {true},
+    linktocpage = {true},
+    plainpages = {false},
+    linkcolor = {Blue},
+    citecolor = {Blue},
+    urlcolor = {Red},
+    pdfstartview = {Fit},
+    pdfpagemode = {None},
+    pdfview = {XYZ null null null}
+  }
+\else
+  \hypersetup{%
+    hyperindex = {true},
+    colorlinks = {true},
+    linktocpage = {true},
+    plainpages = {false},
+    linkcolor = {Blue},
+    citecolor = {Blue},
+    urlcolor = {Red},
+    pdfstartview = {Fit},
+    pdfpagemode = {UseOutlines},
+    pdfview = {XYZ null null null}
+  }
+\fi
+\if at nojss
+  \AtBeginDocument{
+    \hypersetup{%
+      pdfauthor = {\@Hyperauthor},
+      pdftitle = {\@Plaintitle},
+      pdfkeywords = {\@Plainkeywords}
+    }
+  }
+\else
+  \AtBeginDocument{
+    \hypersetup{%
+      pdfauthor = {\@Hyperauthor},
+      pdftitle = {\@Plaintitle},
+      pdfsubject = {\@Hypersubject},
+      pdfkeywords = {\@Plainkeywords}
+    }
+  }
+\fi
+\if at notitle
+  %% \AtBeginDocument{\maketitle}
+\else
+  \AtBeginDocument{\maketitle}
+\fi
+%% commands
+\makeatletter
+\newcommand\code{\bgroup\@makeother\_\@makeother\~\@makeother\$\@codex}
+\def\@codex#1{{\normalfont\ttfamily\hyphenchar\font=-1 #1}\egroup}
+\makeatother
+%%\let\code=\texttt
+\let\proglang=\textsf
+\newcommand{\pkg}[1]{{\fontseries{b}\selectfont #1}}
+\newcommand{\email}[1]{\href{mailto:#1}{\normalfont\texttt{#1}}}
+\newcommand{\doi}[1]{\href{http://dx.doi.org/#1}{\normalfont\texttt{doi:#1}}}
+\newcommand{\E}{\mathsf{E}}
+\newcommand{\VAR}{\mathsf{VAR}}
+\newcommand{\COV}{\mathsf{COV}}
+\newcommand{\Prob}{\mathsf{P}}
+\endinput
+%%
+%% End of file `jss.cls'.
diff --git a/Wrapping/R/Packaging/SimpleITK/vignettes/times.sty b/Wrapping/R/Packaging/SimpleITK/vignettes/times.sty
new file mode 100644
index 0000000..ec845f1
--- /dev/null
+++ b/Wrapping/R/Packaging/SimpleITK/vignettes/times.sty
@@ -0,0 +1,32 @@
+%%
+%% This is file `times.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% psfonts.dtx  (with options: `times')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from times.sty.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file psfonts.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+\ProvidesPackage{times}
+[2002/09/08 PSNFSS-v9.0a
+ (SPQR)
+]
+\renewcommand{\sfdefault}{phv}
+\renewcommand{\rmdefault}{ptm}
+\renewcommand{\ttdefault}{pcr}
+\endinput
+%%
+%% End of file `times.sty'.
diff --git a/Wrapping/R/Packaging/SimpleITK/vignettes/upquote.sty b/Wrapping/R/Packaging/SimpleITK/vignettes/upquote.sty
new file mode 100644
index 0000000..c1fde33
--- /dev/null
+++ b/Wrapping/R/Packaging/SimpleITK/vignettes/upquote.sty
@@ -0,0 +1,76 @@
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesPackage{upquote}[2003/08/11 v1.1 Covington's upright-quote
+                          modification to verbatim and verb]
+
+%% Copyright 2000 Michael A. Covington.
+%% Copyright 2003 Michael A. Covington, Frank Mittelbach.
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.2
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%% and version 1.2 or later is part of all distributions of LaTeX
+%% version 1999/12/01 or later.
+%%
+
+% Problem: Computer Modern Typewriter is the best font for program listings,
+%           *but* it prints ` ' as bent opening and closing single quotes.
+%           Other fonts, and most programming languages, print ` as a grave
+%           accent and ' upright; ' is used both to open and to close quoted
+%           strings.
+
+%           See also M. Covington, "Computer Languages in Type," Journal of
+%           Scholarly Publishing 26.1:34-41 (1994).
+
+% Solution: This package switches the typewriter font to Computer Modern
+%           Typewriter (regardless of other fonts in use, so long as this
+%           package is called afterward) and modifies the behavior of
+%           verbatim, verbatim*, verb, and verb* to print ` ' the desired way.
+%           It does not affect \tt, \texttt, etc.
+
+% Author:   Michael A. Covington
+%           Artificial Intelligence Center
+%           The University of Georgia
+%           http://www.ai.uga.edu/~mc
+%
+%           and
+%
+%           Covington Innovations (Consulting and Typesetting)
+%           http://www.CovingtonInnovations.com
+
+% The modification is done by adding instructions to \@noligs,
+% which is called by verbatim and verb in order to turn the
+% characters ` < > , ' - into active characters that merely
+% print themselves rather than activating ligatures.
+%
+% What is added is code to redefine ` as grave and ' as upright single quote.
+%
+
+% Bug fix, 2000/12/11: previously, '0 (or ' and any digit) would print as a
+% nonexistent character.  (The reason: \char13 or \char18 was combining with
+% the digit to make \char130, etc.)  Fixed by adding curly brackets.
+
+
+
+%% Rewritten by FMi 2003/06/19
+%
+%
+% Use textcomp official chars so that change works in various
+% encodings
+%
+% Extend \@noligs (this also works with the latest listings package
+% that recognizes that the package was loaded)
+
+\RequirePackage{textcomp}
+
+\begingroup
+\catcode`'=\active
+\catcode``=\active
+\g at addto@macro\@noligs
+   {\let`\textasciigrave
+    \let'\textquotesingle}
+\endgroup
+
+
+\endinput
diff --git a/Wrapping/R/R.i b/Wrapping/R/R.i
new file mode 100644
index 0000000..72f0e0e
--- /dev/null
+++ b/Wrapping/R/R.i
@@ -0,0 +1,273 @@
+ // R specific swig components
+#if SWIGR
+
+// ignore overload methods of int type when there is an enum
+%ignore itk::simple::CastImageFilter::SetOutputPixelType( PixelIDValueType pixelID );
+%ignore itk::simple::GetPixelIDValueAsString( PixelIDValueType type );
+
+#define SITK_RETURN_SELF_TYPE_HEADER void
+
+%include <std_vector.i>
+// we don't want a class assigned to unsigned char
+%typemap(scoerceout) unsigned char,
+   unsigned char *,
+   unsigned char &
+   %{    %}
+
+// The swig bindings catch C++ exceptions and turn them into
+// R warnings, including the relevant message.
+// It is probably going to be hard/dangerous to
+// fiddle with the c++ layer to change these warnings
+// to errors. Other types of exception, such as
+// failures in tests of input arguments, do get
+// translated to R errors. Here we will test
+// for the NA value and raise an error at the R
+// level
+%typemap(scoerceout) SWIGTYPE &, SWIGTYPE &&, SWIGTYPE *, SWIGTYPE *const
+%{
+  if (inherits($result, 'externalptr')) {
+   $result <- new("$R_class", ref=$result);
+} else {
+   stop("Exception in SITK - check warning messages\n")
+}
+%}
+%typemap(scoerceout) SWIGTYPE
+%{
+  if (inherits($result, 'externalptr')) {
+   $result <- new("$&R_class", ref=$result);
+} else {
+   stop("Exception in SITK - check warning messages\n")
+}
+%}
+
+// itk::Simple::Image should always have a finalizer attached in R
+// simpleitk deals with reference counting.
+%typemap (ret) itk::simple::Image, itk::simple::Image &, itk::simple::Image &&, itk::simple::Image *, itk::simple::Image *const
+%{
+  R_RegisterCFinalizerEx(r_ans, delete_Image_void, TRUE);
+%}
+
+
+// same thing for transforms
+%typemap (ret) itk::simple::Transform, itk::simple::Transform &, itk::simple::Transform &&, itk::simple::Transform *, itk::simple::Transform *const
+%{
+  /* return typemap here - Image ref/pointer */
+  R_RegisterCFinalizerEx(r_ans, delete_Transform_void, TRUE);
+%}
+
+
+// SEXP numeric typemap for array/image converion - SEXP are
+// arrays here
+%typemap("rtype") SEXP "numeric";
+
+// Gets rid of the class check for unsigned char function arguments
+%typemap("rtype") unsigned char, unsigned char *, unsigned char & "integer";
+// and for unsigned int vectors, and various pixel types that can be automatically
+// converted to R vectors. Otherwise the conversion happens in the C code and
+// the wrong class gets assigned on output
+%typemap("rtype") std::vector<unsigned int>, std::vector<unsigned int> *, std::vector<unsigned int> & "integer";
+%typemap("rtype") std::vector<int32_t>, std::vector<int32_t> *, std::vector<int32_t> & "integer";
+%typemap("rtype") std::vector<uint32_t>, std::vector<uint32_t> *, std::vector<uint32_t> & "integer";
+%typemap("rtype") std::vector<double>, std::vector<double> *, std::vector<double> & "numeric";
+
+// stop classes being asigned as these are already converted to R vectors.
+%typemap(scoerceout) std::vector<int32_t>, std::vector<int32_t> *, std::vector<int32_t> &,
+std::vector<float>, std::vector<float> *, std::vector<float> &
+%{    %}
+
+%apply std::vector< std::basic_string<char> > { std::vector< std::string> & };
+
+// Experiments on lists/vectors of images
+// it would be nice to generalise this to vectors of SWIG_TYPE
+// Are there use cases beyond vectors of images - e.g. vectors of filters?
+%typemap("rtype") std::vector<itk::simple::Image>, std::vector<itk::simple::Image>& "list";
+%typemap("rtypecheck") std::vector<itk::simple::Image>, std::vector<itk::simple::Image>&
+%{
+  (is.list($arg) & all(sapply($arg, inherits, what='_p_itk__simple__Image')))
+%}
+%typemap("scoercein") std::vector<itk::simple::Image>, std::vector<itk::simple::Image>&
+%{
+  $input=ImListToVec($input);
+  $input=slot($input, "ref")
+%}
+
+%typemap("scoerceout") std::vector<itk::simple::Image>, std::vector<itk::simple::Image>&
+%{
+  $result=ImportSwigVec($result);
+%}
+
+// stop printing "NULL" when calling a method
+// returning void. Also check for NA returned by
+// an exception.
+%typemap(scoerceout) void
+%{
+  if (is.null($result)) {
+    return(invisible($result))
+  } else {
+    # should be a NULL - otherwise an exception
+    stop("Exception in SITK - check warnings")
+  }
+%}
+
+
+%extend itk::simple::Image {
+  // a dummy function that we'll replace
+  // strategy is to make swig generate a binding to something with the correct name,
+  // and place those names in the method list for $ operator
+  // The hand coded R version is provided in zA.R
+  void SetPixel(const std::vector< uint32_t > &idx, double v)
+  {
+    itk::simple::Unused(v);
+    itk::simple::Unused(idx);
+  }
+
+  double GetPixel(const std::vector< uint32_t > &idx)
+  {
+    itk::simple::Unused(idx);
+    double e = 0;
+    return(e);
+  }
+
+}
+
+%ignore delete_Image_void(SEXP p);
+%ignore delete_Transform_void(SEXP p);
+
+%ignore R_swig_delete_Image ( SEXP self);
+%ignore R_swig_delete_Transform (SEXP self);
+%inline
+%{
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+SEXP R_swig_delete_Image ( SEXP self);
+SEXP R_swig_delete_Transform (SEXP self);
+
+  // wrappers for the swig generated destructors that return void
+void delete_Image_void(SEXP p)
+  {
+    R_swig_delete_Image(p);
+  }
+
+void delete_Transform_void(SEXP p)
+  {
+    R_swig_delete_Transform(p);
+  }
+
+#ifdef __cplusplus
+}
+#endif
+
+SEXP ImAsArray(itk::simple::Image src);
+itk::simple::Image ArrayAsIm(SEXP arr,
+                             std::vector<unsigned int> size,
+                             std::vector<double> spacing,
+                             std::vector<double> origin);
+%}
+
+
+// Garbage collection issues are tricky here. The obj parameter
+// is a function closure - see ImageRegistrationMethod1.R for
+// example of how to set it up. The closure part of it includes
+// the environment in which the function was created, which is
+// how it is able to access the registration object.
+// The call to AddCommand is like this:
+// Reg$AddCommand('sitkIterationEvent', commandIteration(Reg))
+// It is difficult to cause crashes, even by calling gc() manually.
+//
+// The R documentation describes the scenario in which C code
+// allocates R objects. The idea is that garbage collection
+// can be invoked while the C code is being run due to
+// calls to R internal functions. The PROTECT mechanism
+// is used to guard the objects allocated in the C code.
+//
+// This doesn't cover the situation we have here, in which
+// R objects are retained inside C objects, or are allocated
+// then retained and are used in multiple C call.
+// This case seems to be mentioned in passing at
+// the end of 5.9.1 of Writing R extensions - R_PreserveObject
+// and R_ReleaseObject. Sparing use is advised, but this
+// seems like the situation for it.
+// In order to keep things simple, we'll preserve the
+// function closure passed in and the call we create.
+// The obj will be passed to RCommand so that we can
+// release it in the destructor.
+
+// Dispatching is based on a type attribute attached to
+// R classes. For standard types this is simple. For c++
+// objects we end up with a class name that is a mangled
+// c++ name. R SEXP objects are a problem. The default
+// mangled name isn't useful and SEXP is used to represent
+// everything in R. Ideally we can supply custom rtype
+// setting, as below, but this gets quite tricky to mangage.
+// The only other place where an SEXP is passed to/from
+// swig bindings is in the array/image conversion code,
+// which doesn't do dispatching. That code is largely
+// confined to this file, so we put it first and set
+// rtype to "numeric" there, then to "function" here.
+// Finer control will require putting swig code in the right
+// scope.
+
+%typemap("rtype") SEXP "function";
+%{
+#include "sitkRCommand.h"
+%}
+
+%extend itk::simple::ProcessObject {
+  int AddCommand( itk::simple::EventEnum e, SEXP obj )
+ {
+   // make sure that the CommandCallable is in fact callable
+   if (!Rf_isFunction(obj))
+     {
+           sitkExceptionMacro(<<"R object is not a function, "
+                              <<"or it has not been set.");
+     }
+   itk::simple::RCommand *cmd = NULL;
+   try
+     {
+       cmd = new itk::simple::RCommand();
+       cmd->SetFunctionClosure(obj);
+       int ret = self->AddCommand(e,*cmd);
+       cmd->OwnedByProcessObjectsOn();
+       return(ret);
+     }
+   catch(...)
+     {
+       delete cmd;
+       throw;
+     }
+ }
+};
+
+//#define %rcode %insert("sinit")
+
+%Rruntime %{
+
+  setMethod('show', '_p_itk__simple__Image', function(object) Show(object))
+  setMethod('print', '_p_itk__simple__Image', function(x, ...)cat(x$ToString()))
+
+  setMethod('print', 'C++Reference', function(x, ...)cat(x$ToString()))
+  setMethod('show', 'C++Reference', function(object)cat(object$ToString()))
+
+ImportSwigVec <- function(ImVec)
+{
+  # an import function for unsupported std::vector types
+  # intended for vectors of sitk images
+  l <- ImVec$'__len__'()
+  return(lapply(1:l, function(idx, V)return(V$'__getitem__'(idx-1))))
+}
+
+ImListToVec <- function(ImList)
+{
+  l <- length(ImList)
+  cppvec <- VectorOfImage()
+  for (idx in 1:l)
+    {
+      cppvec$push_back(ImList[[idx]])
+    }
+   return(cppvec)
+}
+
+%}
+#endif
diff --git a/Wrapping/R/SimpleITK.i b/Wrapping/R/SimpleITK.i
new file mode 100644
index 0000000..b6688db
--- /dev/null
+++ b/Wrapping/R/SimpleITK.i
@@ -0,0 +1,3 @@
+%include SimpleITK_Common.i
+
+%include "sitkRCommand.h"
diff --git a/Wrapping/R/rrun.swg b/Wrapping/R/rrun.swg
new file mode 100644
index 0000000..87b6edd
--- /dev/null
+++ b/Wrapping/R/rrun.swg
@@ -0,0 +1,376 @@
+
+/* Remove global namespace pollution */
+#if !defined(SWIG_NO_R_NO_REMAP)
+# define R_NO_REMAP
+#endif
+#if !defined(SWIG_NO_STRICT_R_HEADERS)
+# define STRICT_R_HEADERS
+#endif
+
+#include <Rdefines.h>
+#include <Rversion.h>
+
+#ifdef __cplusplus
+#include <exception>
+extern "C" {
+#endif
+
+/* for raw pointer */
+#define SWIG_ConvertPtr(obj, pptr, type, flags)         SWIG_R_ConvertPtr(obj, pptr, type, flags)
+#define SWIG_ConvertPtrAndOwn(obj,pptr,type,flags,own)  SWIG_R_ConvertPtr(obj, pptr, type, flags)
+#define SWIG_NewPointerObj(ptr, type, flags)            SWIG_R_NewPointerObj(ptr, type, flags)
+
+#include <stdlib.h>
+#include <assert.h>
+
+#if R_VERSION >= R_Version(2,6,0)
+#define VMAXTYPE void *
+#else
+#define VMAXTYPE char *
+#endif
+
+/*
+  This is mainly a way to avoid having lots of local variables that may
+  conflict with those in the routine.
+
+   Change name to R_SWIG_Callb....
+*/
+typedef struct RCallbackFunctionData {
+
+  SEXP fun;
+  SEXP userData;
+
+
+  SEXP expr;
+  SEXP retValue;
+  int errorOccurred;
+
+  SEXP el;  /* Temporary pointer used in the construction of the expression to call the R function. */
+
+  struct RCallbackFunctionData *previous;   /* Stack */
+
+} RCallbackFunctionData;
+
+static RCallbackFunctionData  *callbackFunctionDataStack;
+
+
+SWIGRUNTIME SEXP
+R_SWIG_debug_getCallbackFunctionData()
+{
+  int n, i;
+  SEXP ans;
+  RCallbackFunctionData  *p = callbackFunctionDataStack;
+
+  n = 0;
+  while(p) {
+    n++;
+    p = p->previous;
+  }
+
+  Rf_protect(ans = Rf_allocVector(VECSXP, n));
+  for(p = callbackFunctionDataStack, i = 0; i < n; p = p->previous, i++)
+      SET_VECTOR_ELT(ans, i, p->fun);
+
+  Rf_unprotect(1);
+
+  return(ans);
+}
+
+
+
+SWIGRUNTIME RCallbackFunctionData *
+R_SWIG_pushCallbackFunctionData(SEXP fun, SEXP userData)
+{
+   RCallbackFunctionData *el;
+   el = (RCallbackFunctionData *) calloc(1, sizeof(RCallbackFunctionData));
+   el->fun = fun;
+   el->userData = userData;
+   el->previous = callbackFunctionDataStack;
+
+   callbackFunctionDataStack = el;
+
+   return(el);
+}
+
+
+SWIGRUNTIME SEXP
+R_SWIG_R_pushCallbackFunctionData(SEXP fun, SEXP userData)
+{
+    R_SWIG_pushCallbackFunctionData(fun, userData);
+    return R_NilValue;
+}
+
+SWIGRUNTIME RCallbackFunctionData *
+R_SWIG_getCallbackFunctionData()
+{
+  if(!callbackFunctionDataStack) {
+    Rf_error("Supposedly impossible error occurred in the SWIG callback mechanism."
+            "  No callback function data set.");
+  }
+
+  return callbackFunctionDataStack;
+}
+
+SWIGRUNTIME void
+R_SWIG_popCallbackFunctionData(int doFree)
+{
+  RCallbackFunctionData  *el = NULL;
+  if(!callbackFunctionDataStack)
+    return ; /* Error !!! */
+
+  el = callbackFunctionDataStack ;
+  callbackFunctionDataStack = callbackFunctionDataStack->previous;
+
+  if(doFree)
+     free(el);
+}
+
+
+/*
+  Interface to S function
+      is(obj, type)
+  which is to be used to determine if an
+  external pointer inherits from the right class.
+
+  Ideally, we would like to be able to do this without an explicit call to the is() function.
+  When the S4 class system uses its own SEXP types, then we will hopefully be able to do this
+  in the C code.
+
+  Should we make the expression static and preserve it to avoid the overhead of
+  allocating each time.
+*/
+SWIGRUNTIME int
+R_SWIG_checkInherits(SEXP obj, SEXP tag, const char *type)
+{
+  SEXP e, val;
+  int check_err = 0;
+
+  Rf_protect(e = Rf_allocVector(LANGSXP, 3));
+  SETCAR(e, Rf_install("extends"));
+
+  SETCAR(CDR(e), Rf_mkString(CHAR(PRINTNAME(tag))));
+  SETCAR(CDR(CDR(e)), Rf_mkString(type));
+
+  val = R_tryEval(e, R_GlobalEnv, &check_err);
+  Rf_unprotect(1);
+  if(check_err)
+    return(0);
+
+
+  return(LOGICAL(val)[0]);
+}
+
+
+SWIGRUNTIME void *
+R_SWIG_resolveExternalRef(SEXP arg, const char * const type, const char * const argName, Rboolean nullOk)
+{
+  void *ptr;
+  SEXP orig = arg;
+
+  if(TYPEOF(arg) != EXTPTRSXP)
+    arg = GET_SLOT(arg, Rf_mkString("ref"));
+
+
+  if(TYPEOF(arg) != EXTPTRSXP) {
+    Rf_error("argument %s must be an external pointer (from an ExternalReference)", argName);
+  }
+
+
+  ptr = R_ExternalPtrAddr(arg);
+
+  if(ptr == NULL && nullOk == (Rboolean) FALSE) {
+    Rf_error("the external pointer (of type %s) for argument %s has value NULL", argName, type);
+  }
+
+  if(type[0] && R_ExternalPtrTag(arg) != Rf_install(type) && strcmp(type, "voidRef")
+      && !R_SWIG_checkInherits(orig,  R_ExternalPtrTag(arg), type)) {
+    Rf_error("the external pointer for argument %s has tag %s, not the expected value %s",
+             argName, CHAR(PRINTNAME(R_ExternalPtrTag(arg))), type);
+  }
+
+
+  return(ptr);
+}
+
+SWIGRUNTIME void
+R_SWIG_ReferenceFinalizer(SEXP el)
+{
+  void *ptr = R_SWIG_resolveExternalRef(el, "", "<finalizer>",  (Rboolean) 1);
+  fprintf(stderr, "In R_SWIG_ReferenceFinalizer for %p\n", ptr);
+  Rf_PrintValue(el);
+
+  if(ptr) {
+     if(TYPEOF(el) != EXTPTRSXP)
+        el = GET_SLOT(el, Rf_mkString("ref"));
+
+     if(TYPEOF(el) == EXTPTRSXP)
+        R_ClearExternalPtr(el);
+
+     free(ptr);
+  }
+
+  return;
+}
+
+typedef enum {R_SWIG_EXTERNAL, R_SWIG_OWNER } R_SWIG_Owner;
+
+SWIGRUNTIME SEXP
+SWIG_MakePtr(void *ptr, const char *typeName, R_SWIG_Owner owner)
+{
+  SEXP external, r_obj;
+
+  Rf_protect(external = R_MakeExternalPtr(ptr, Rf_install(typeName), R_NilValue));
+  Rf_protect(r_obj = NEW_OBJECT(MAKE_CLASS((char *) typeName)));
+
+  if(owner)
+    R_RegisterCFinalizer(external, R_SWIG_ReferenceFinalizer);
+
+  r_obj = SET_SLOT(r_obj, Rf_mkString((char *) "ref"), external);
+  SET_S4_OBJECT(r_obj);
+  Rf_unprotect(2);
+
+  return(r_obj);
+}
+
+
+SWIGRUNTIME SEXP
+R_SWIG_create_SWIG_R_Array(const char *typeName, SEXP ref, int len)
+{
+   SEXP arr;
+
+/*XXX remove the char * cast when we can. MAKE_CLASS should be declared appropriately. */
+   Rf_protect(arr = NEW_OBJECT(MAKE_CLASS((char *) typeName)));
+   Rf_protect(arr = R_do_slot_assign(arr, Rf_mkString("ref"), ref));
+   Rf_protect(arr = R_do_slot_assign(arr, Rf_mkString("dims"), Rf_ScalarInteger(len)));
+
+   Rf_unprotect(3);
+   SET_S4_OBJECT(arr);
+   return arr;
+}
+
+#define ADD_OUTPUT_ARG(result, pos, value, name)  r_ans = AddOutputArgToReturn(pos, value, name, OutputValues);
+
+SWIGRUNTIME SEXP
+AddOutputArgToReturn(int pos, SEXP value, const char *name, SEXP output)
+{
+  SET_VECTOR_ELT(output, pos, value);
+
+  return(output);
+}
+
+/* Create a new pointer object */
+SWIGRUNTIMEINLINE SEXP
+SWIG_R_NewPointerObj(void *ptr, swig_type_info *type, int flags) {
+  SEXP rptr = R_MakeExternalPtr(ptr,
+  R_MakeExternalPtr(type, R_NilValue, R_NilValue), R_NilValue);
+  SET_S4_OBJECT(rptr);
+  return rptr;
+}
+
+
+/* Convert a pointer value */
+SWIGRUNTIMEINLINE int
+SWIG_R_ConvertPtr(SEXP obj, void **ptr, swig_type_info *ty, int flags) {
+  void *vptr;
+  if (!obj) return SWIG_ERROR;
+  if (obj == R_NilValue) {
+    if (ptr) *ptr = NULL;
+    return SWIG_OK;
+  }
+
+  vptr = R_ExternalPtrAddr(obj);
+  if (ty) {
+    swig_type_info *to = (swig_type_info*)
+      R_ExternalPtrAddr(R_ExternalPtrTag(obj));
+    if (to == ty) {
+      if (ptr) *ptr = vptr;
+    } else {
+      swig_cast_info *tc = SWIG_TypeCheck(to->name,ty);
+      int newmemory = 0;
+      if (ptr) *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
+      assert(!newmemory); /* newmemory handling not yet implemented */
+    }
+  } else {
+      if (ptr) *ptr = vptr;
+ }
+  return SWIG_OK;
+}
+
+SWIGRUNTIME swig_module_info *
+SWIG_GetModule(void *SWIGUNUSEDPARM(clientdata)) {
+  static void *type_pointer = (void *)0;
+  return (swig_module_info *) type_pointer;
+}
+
+SWIGRUNTIME void
+SWIG_SetModule(void *v, swig_module_info *swig_module) {
+}
+
+typedef struct {
+  void *pack;
+  swig_type_info *ty;
+  size_t size;
+} RSwigPacked;
+
+/* Create a new packed object */
+
+SWIGRUNTIMEINLINE SEXP RSwigPacked_New(void *ptr, size_t sz,
+		  swig_type_info *ty) {
+  SEXP rptr;
+  RSwigPacked *sobj =
+  (RSwigPacked*) malloc(sizeof(RSwigPacked));
+  if (sobj) {
+    void *pack = malloc(sz);
+    if (pack) {
+      memcpy(pack, ptr, sz);
+      sobj->pack = pack;
+      sobj->ty   = ty;
+      sobj->size = sz;
+    } else {
+      sobj = 0;
+    }
+  }
+  rptr = R_MakeExternalPtr(sobj, R_NilValue, R_NilValue);
+  return rptr;
+}
+
+SWIGRUNTIME swig_type_info *
+RSwigPacked_UnpackData(SEXP obj, void *ptr, size_t size)
+{
+    RSwigPacked *sobj =
+        (RSwigPacked *)R_ExternalPtrAddr(obj);
+    if (sobj->size != size) return 0;
+    memcpy(ptr, sobj->pack, size);
+    return sobj->ty;
+}
+
+SWIGRUNTIMEINLINE SEXP
+SWIG_R_NewPackedObj(void *ptr, size_t sz, swig_type_info *type) {
+  return ptr ? RSwigPacked_New((void *) ptr, sz, type) : R_NilValue;
+}
+
+/* Convert a packed value value */
+
+SWIGRUNTIME int
+SWIG_R_ConvertPacked(SEXP obj, void *ptr, size_t sz, swig_type_info *ty) {
+  swig_type_info *to = RSwigPacked_UnpackData(obj, ptr, sz);
+  if (!to) return SWIG_ERROR;
+  if (ty) {
+    if (to != ty) {
+      /* check type cast? */
+      swig_cast_info *tc = SWIG_TypeCheck(to->name,ty);
+      if (!tc) return SWIG_ERROR;
+    }
+  }
+  return SWIG_OK;
+}
+
+#ifdef __cplusplus
+#define SWIG_exception_noreturn(code, msg) do { throw std::runtime_error(msg); } while(0)
+#else
+#define SWIG_exception_noreturn(code, msg) do { return result; } while(0)
+#endif
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/Wrapping/R/sitkRArray.cxx b/Wrapping/R/sitkRArray.cxx
new file mode 100644
index 0000000..299f9ba
--- /dev/null
+++ b/Wrapping/R/sitkRArray.cxx
@@ -0,0 +1,196 @@
+/*=========================================================================
+ *
+ *  Copyright Insight Software Consortium
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *         http://www.apache.org/licenses/LICENSE-2.0.txt
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ *=========================================================================*/
+
+
+#include <iostream>
+
+#include <Rdefines.h>
+#include <Rversion.h>
+
+#include "sitkImage.h"
+#include "sitkConditional.h"
+#include "sitkImportImageFilter.h"
+
+SEXP ImAsArray(itk::simple::Image src)
+{
+  // tricky to make this efficient with memory and fast.
+  // Ideally we want multithreaded casting directly to the
+  // R array. We could use a Cast filter and then a memory copy,
+  // obviously producing a redundant copy. If we do a direct cast,
+  // then we're probably not multi-threaded.
+  // Lets be slow but memory efficient.
+
+  std::vector<unsigned int> sz = src.GetSize();
+  itk::simple::PixelIDValueType  PID=src.GetPixelIDValue();
+  SEXP res = 0;
+  double *dans=0;
+  int *ians=0;
+  unsigned pixcount=src.GetNumberOfComponentsPerPixel();
+  for (unsigned k = 0; k < sz.size();k++)
+    {
+    pixcount *= sz[k];
+    }
+  switch (PID)
+    {
+    case itk::simple::sitkUnknown:
+    {
+    char error_msg[1024];
+    snprintf( error_msg, 1024, "Exception thrown ImAsArray : unkown pixel type");
+    Rprintf(error_msg);
+    return(res);
+    }
+    break;
+    case itk::simple::ConditionalValue< itk::simple::sitkInt8 != itk::simple::sitkUnknown, itk::simple::sitkInt8, -3 >::Value:
+    case itk::simple::ConditionalValue< itk::simple::sitkVectorInt8 != itk::simple::sitkUnknown, itk::simple::sitkVectorInt8, -15 >::Value:
+    case itk::simple::ConditionalValue< itk::simple::sitkUInt8 != itk::simple::sitkUnknown, itk::simple::sitkUInt8, -2 >::Value:
+    case itk::simple::ConditionalValue< itk::simple::sitkVectorUInt8 != itk::simple::sitkUnknown, itk::simple::sitkVectorUInt8, -14 >::Value:
+    case itk::simple::ConditionalValue< itk::simple::sitkInt16 != itk::simple::sitkUnknown, itk::simple::sitkInt16, -5 >::Value:
+    case itk::simple::ConditionalValue< itk::simple::sitkVectorInt16 != itk::simple::sitkUnknown, itk::simple::sitkVectorInt16, -17 >::Value:
+    case itk::simple::ConditionalValue< itk::simple::sitkUInt16 != itk::simple::sitkUnknown, itk::simple::sitkUInt16, -4 >::Value:
+    case itk::simple::ConditionalValue< itk::simple::sitkVectorUInt16 != itk::simple::sitkUnknown, itk::simple::sitkVectorUInt16, -16 >::Value:
+    case itk::simple::ConditionalValue< itk::simple::sitkInt32 != itk::simple::sitkUnknown, itk::simple::sitkInt32, -7 >::Value:
+    case itk::simple::ConditionalValue< itk::simple::sitkVectorInt32 != itk::simple::sitkUnknown, itk::simple::sitkVectorInt32, -19 >::Value:
+    case itk::simple::ConditionalValue< itk::simple::sitkUInt32 != itk::simple::sitkUnknown, itk::simple::sitkUInt32, -6 >::Value:
+    case itk::simple::ConditionalValue< itk::simple::sitkVectorUInt32 != itk::simple::sitkUnknown, itk::simple::sitkVectorUInt32, -18 >::Value:
+    case itk::simple::ConditionalValue< itk::simple::sitkUInt64 != itk::simple::sitkUnknown, itk::simple::sitkUInt64, -8 >::Value:
+    case itk::simple::ConditionalValue< itk::simple::sitkVectorUInt64 != itk::simple::sitkUnknown, itk::simple::sitkVectorUInt64, -20 >::Value:
+    case itk::simple::ConditionalValue< itk::simple::sitkInt64 != itk::simple::sitkUnknown, itk::simple::sitkInt64, -9 >::Value:
+    case itk::simple::ConditionalValue< itk::simple::sitkVectorInt64 != itk::simple::sitkUnknown, itk::simple::sitkVectorInt64, -21 >::Value:
+    {
+    // allocate an integer array
+    PROTECT(res = Rf_allocVector(INTSXP, pixcount));
+    ians = INTEGER_POINTER(res);
+    }
+    break;
+    default:
+    {
+    // allocate double array
+    PROTECT(res = Rf_allocVector(REALSXP, pixcount));
+    dans = NUMERIC_POINTER(res);
+    }
+    }
+
+  switch (PID)
+    {
+    case itk::simple::ConditionalValue< itk::simple::sitkUInt8 != itk::simple::sitkUnknown, itk::simple::sitkUInt8, -2 >::Value:
+    case itk::simple::ConditionalValue< itk::simple::sitkVectorUInt8 != itk::simple::sitkUnknown, itk::simple::sitkVectorUInt8, -14 >::Value:
+    {
+    uint8_t * buff = src.GetBufferAsUInt8();
+    std::copy(buff,buff + pixcount,ians);
+    }
+    break;
+    case itk::simple::ConditionalValue< itk::simple::sitkInt8 != itk::simple::sitkUnknown, itk::simple::sitkInt8, -3 >::Value:
+    case itk::simple::ConditionalValue< itk::simple::sitkVectorInt8 != itk::simple::sitkUnknown, itk::simple::sitkVectorInt8, -15 >::Value:
+    {
+    int8_t * buff = src.GetBufferAsInt8();
+    std::copy(buff,buff + pixcount,ians);
+    }
+    break;
+    case itk::simple::ConditionalValue< itk::simple::sitkUInt16 != itk::simple::sitkUnknown, itk::simple::sitkUInt16, -4 >::Value:
+    case itk::simple::ConditionalValue< itk::simple::sitkVectorUInt16 != itk::simple::sitkUnknown, itk::simple::sitkVectorUInt16, -16 >::Value:
+    {
+    uint16_t * buff = src.GetBufferAsUInt16();
+    std::copy(buff,buff + pixcount,ians);
+    }
+    break;
+    case itk::simple::ConditionalValue< itk::simple::sitkInt16 != itk::simple::sitkUnknown, itk::simple::sitkInt16, -5 >::Value:
+    case itk::simple::ConditionalValue< itk::simple::sitkVectorInt16 != itk::simple::sitkUnknown, itk::simple::sitkVectorInt16, -17 >::Value:
+    {
+    int16_t * buff = src.GetBufferAsInt16();
+    std::copy(buff,buff + pixcount,ians);
+    }
+    break;
+    case itk::simple::ConditionalValue< itk::simple::sitkUInt32 != itk::simple::sitkUnknown, itk::simple::sitkUInt32, -6 >::Value:
+    case itk::simple::ConditionalValue< itk::simple::sitkVectorUInt32 != itk::simple::sitkUnknown, itk::simple::sitkVectorUInt32, -18 >::Value:
+    {
+    uint32_t * buff = src.GetBufferAsUInt32();
+    std::copy(buff,buff + pixcount,ians);
+    }
+    break;
+    case itk::simple::ConditionalValue< itk::simple::sitkInt32 != itk::simple::sitkUnknown, itk::simple::sitkInt32, -7 >::Value:
+    case itk::simple::ConditionalValue< itk::simple::sitkVectorInt32 != itk::simple::sitkUnknown, itk::simple::sitkVectorInt32, -19 >::Value:
+    {
+    int32_t * buff = src.GetBufferAsInt32();
+    std::copy(buff,buff + pixcount,ians);
+    }
+    break;
+    case itk::simple::ConditionalValue< itk::simple::sitkUInt64 != itk::simple::sitkUnknown, itk::simple::sitkUInt64, -8 >::Value:
+    case itk::simple::ConditionalValue< itk::simple::sitkVectorUInt64 != itk::simple::sitkUnknown, itk::simple::sitkVectorUInt64, -20 >::Value:
+
+    {
+    uint64_t * buff = src.GetBufferAsUInt64();
+    std::copy(buff,buff + pixcount,ians);
+    }
+    break;
+    case itk::simple::ConditionalValue< itk::simple::sitkInt64 != itk::simple::sitkUnknown, itk::simple::sitkInt64, -9 >::Value:
+    case itk::simple::ConditionalValue< itk::simple::sitkVectorInt64 != itk::simple::sitkUnknown, itk::simple::sitkVectorInt64, -21 >::Value:
+    {
+    int64_t * buff = src.GetBufferAsInt64();
+    std::copy(buff,buff + pixcount,ians);
+    }
+    break;
+    case itk::simple::ConditionalValue< itk::simple::sitkFloat32 != itk::simple::sitkUnknown, itk::simple::sitkFloat32, -10 >::Value:
+    case itk::simple::ConditionalValue< itk::simple::sitkVectorFloat32 != itk::simple::sitkUnknown, itk::simple::sitkVectorFloat32, -22 >::Value:
+    {
+    float * buff = src.GetBufferAsFloat();
+    std::copy(buff,buff + pixcount,dans);
+    }
+    break;
+    case itk::simple::ConditionalValue< itk::simple::sitkFloat64 != itk::simple::sitkUnknown, itk::simple::sitkFloat64, -11 >::Value:
+    case itk::simple::ConditionalValue< itk::simple::sitkVectorFloat64 != itk::simple::sitkUnknown, itk::simple::sitkVectorFloat64, -23 >::Value:
+    {
+    double * buff = src.GetBufferAsDouble();
+    std::copy(buff,buff + pixcount,dans);
+    }
+    break;
+    default:
+      char error_msg[1024];
+      snprintf( error_msg, 1024, "Exception thrown ImAsArray : unsupported pixel type: %d", PID );
+      Rprintf(error_msg);
+    }
+  UNPROTECT(1);
+  return(res);
+}
+
+itk::simple::Image ArrayAsIm(SEXP arr,
+                             std::vector<unsigned int> size,
+                             std::vector<double> spacing,
+                             std::vector<double> origin)
+{
+  // can't work out how to get the array size in C
+  itk::simple::ImportImageFilter importer;
+  importer.SetSpacing( spacing );
+  importer.SetOrigin( origin );
+  importer.SetSize( size );
+  if (Rf_isReal(arr))
+    {
+    importer.SetBufferAsDouble(NUMERIC_POINTER(arr));
+    }
+  else if (Rf_isInteger(arr) || Rf_isLogical(arr))
+    {
+    importer.SetBufferAsInt32(INTEGER_POINTER(arr));
+    }
+  else
+    {
+    char error_msg[1024];
+    snprintf( error_msg, 1024, "Exception thrown ArrayAsIm : unsupported array type");
+    Rprintf(error_msg);
+    }
+  itk::simple::Image res = importer.Execute();
+  return(res);
+}
diff --git a/Wrapping/R/sitkRCommand.cxx b/Wrapping/R/sitkRCommand.cxx
new file mode 100644
index 0000000..a23bf13
--- /dev/null
+++ b/Wrapping/R/sitkRCommand.cxx
@@ -0,0 +1,123 @@
+/*=========================================================================
+ *
+ *  Copyright Insight Software Consortium
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *         http://www.apache.org/licenses/LICENSE-2.0.txt
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ *=========================================================================*/
+
+// The python header defines _POSIX_C_SOURCE without a preceding #undef
+#include <iostream>
+#include <Rinternals.h>
+
+#include "sitkRCommand.h"
+#include "sitkExceptionObject.h"
+
+
+
+
+namespace itk
+{
+namespace simple
+{
+
+
+RCommand::RCommand()
+  : m_Object(R_NilValue),
+    m_Environ(R_NilValue),
+    m_FunctionClosure(R_NilValue)
+{
+}
+
+RCommand::~RCommand()
+{
+  R_ReleaseObject(this->m_Object);
+  R_ReleaseObject(this->m_FunctionClosure);
+}
+
+void RCommand::SetCallbackRCallable(SEXP obj)
+{
+  if (obj != this->m_Object)
+    {
+      if (this->m_Object != R_NilValue)
+        {
+          // unprotect
+          R_ReleaseObject(this->m_Object);
+        }
+    this->m_Object = obj;
+    R_PreserveObject(this->m_Object);
+    }
+}
+void RCommand::SetCallbackREnviron(SEXP rho)
+{
+  if (rho != this->m_Environ)
+    {
+      // Don't need to do any releasing of the
+      // environment as it is part of the callable,
+      // and we haven't needed to explicitly protect it
+      this->m_Environ = rho;
+    }
+}
+
+void RCommand::SetFunctionClosure(SEXP FN)
+{
+  if (FN != this->m_FunctionClosure)
+    {
+      if (this->m_FunctionClosure != R_NilValue)
+        {
+          R_ReleaseObject(this->m_FunctionClosure);
+        }
+      this->m_FunctionClosure = FN;
+      R_PreserveObject(this->m_FunctionClosure);
+
+       // set up expression for evaluation
+      SEXP R_fcall;
+      // Rf_lang1 creates an executable pair list with one
+      // element
+      R_fcall = PROTECT(Rf_lang1(this->m_FunctionClosure));
+      this->SetCallbackRCallable(R_fcall);
+      this->SetCallbackREnviron(CLOENV(this->m_FunctionClosure));
+      UNPROTECT(1);
+    }
+}
+
+
+SEXP RCommand::GetCallbackRCallable()
+{
+  return this->m_Object;
+}
+
+void RCommand::Execute()
+{
+  // if null do nothing
+  if ((!this->m_Object) || (!this->m_Environ))
+    {
+    return;
+    }
+
+  else
+    {
+    SEXP result;
+    // retrieve the environment for passing to eval
+    result = eval(this->m_Object, this->m_Environ);
+    if (result == NULL)
+      {
+        sitkExceptionMacro(<<"There was an error executing the "
+                           <<"R Callable.");
+      }
+    }
+}
+
+
+} // namespace simple
+} // namespace itk
diff --git a/Wrapping/R/sitkRCommand.h b/Wrapping/R/sitkRCommand.h
new file mode 100644
index 0000000..5c56a6a
--- /dev/null
+++ b/Wrapping/R/sitkRCommand.h
@@ -0,0 +1,99 @@
+/*=========================================================================
+ *
+ *  Copyright Insight Software Consortium
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *         http://www.apache.org/licenses/LICENSE-2.0.txt
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ *=========================================================================*/
+
+#ifndef sitkRCommand_h
+#define sitkRCommand_h
+
+#include "sitkCommand.h"
+
+
+
+
+namespace itk
+{
+namespace simple
+{
+
+/** \class RCommand
+ *  \brief Command subclass that calls an R callable object, e.g.
+ *  an R  function.
+ *
+ * With this class, arbitrary R functions
+ * can be associated with an instance to be used in AddObserver calls.
+ *
+ * Written by Richard Beare <richard.beare |AT| ieee.org, based on
+ * sitkPyCommand,
+ * which was based on the WrapITK itkPyCommand class originally contributed by
+ * Charl P. Botha <cpbotha |AT| ieee.org>.
+ */
+
+#include "Rinternals.h"
+
+class RCommand
+  : public itk::simple::Command
+{
+public:
+  // Standard "Self" typedef.
+  typedef RCommand Self;
+  typedef Command   Super;
+
+  RCommand();
+  ~RCommand();
+
+  /**
+   * Assign a R callable object to be used.  You don't have to keep
+   * a binding to the callable, RCommand will preserve the objects
+   * across library calls
+   */
+  /* This method is called from AddCommand, defined in R.i */
+  /* It is a simplified interface that doesn't allow separate passing
+   * of the function and environment, which usually just makes things
+   * more confusing
+   */
+  void SetFunctionClosure(SEXP FN);
+
+  SEXP GetCallbackRCallable();
+
+  virtual void Execute(void);
+
+  #ifndef SWIG
+  // export for access in the custom ProcessObject method for callables
+  using Super::SetOwnedByProcessObjects;
+  using Super::GetOwnedByProcessObjects;
+  using Super::OwnedByProcessObjectsOn;
+  using Super::OwnedByProcessObjectsOff;
+  #endif
+
+
+protected:
+
+  void SetCallbackRCallable(SEXP obj);
+  void SetCallbackREnviron(SEXP rho);
+
+private:
+  SEXP m_Object;
+  SEXP m_Environ;
+  // the function closure is stored to
+  // allow safe cleanup
+  SEXP m_FunctionClosure;
+};
+
+} // namespace simple
+} // namespace itk
+
+#endif // _sitkRCommand_h
diff --git a/Wrapping/Ruby/CMakeLists.txt b/Wrapping/Ruby/CMakeLists.txt
new file mode 100644
index 0000000..3c603df
--- /dev/null
+++ b/Wrapping/Ruby/CMakeLists.txt
@@ -0,0 +1,25 @@
+cmake_minimum_required ( VERSION 2.8.1 FATAL_ERROR )
+
+project( SimpleITK_Lua )
+
+include(../../CMake/sitkProjectLanguageCommon.cmake NO_POLICY_SCOPE)
+
+find_package( Ruby REQUIRED )
+include_directories( ${SimpleITK_INCLUDE_DIRS} )
+
+set_source_files_properties( SimpleITK.i PROPERTIES CPLUSPLUS ON )
+
+# Run swig
+set(CMAKE_SWIG_FLAGS -autorename -module simpleitk ${CMAKE_SWIG_GLOBAL_FLAGS})
+set(CMAKE_SWIG_OUTDIR ${CMAKE_CURRENT_BINARY_DIR})
+set(SWIG_MODULE_simpleitk_EXTRA_DEPS ${SWIG_EXTRA_DEPS}
+  ${CMAKE_CURRENT_SOURCE_DIR}/Ruby.i)
+
+SWIG_add_module( simpleitk ruby SimpleITK.i  )
+target_link_libraries( ${SWIG_MODULE_simpleitk_TARGET_NAME} ${SimpleITK_LIBRARIES} )
+sitk_target_link_libraries_with_dynamic_lookup( ${SWIG_MODULE_simpleitk_TARGET_NAME} ${RUBY_LIBRARY} )
+set_source_files_properties( ${swig_generated_file_fullname} PROPERTIES COMPILE_FLAGS "-w")
+target_include_directories( ${SWIG_MODULE_simpleitk_TARGET_NAME}
+  PRIVATE
+    ${RUBY_INCLUDE_DIRS} )
+sitk_strip_target( ${SWIG_MODULE_simpleitk_TARGET_NAME} )
diff --git a/Wrapping/Ruby/Ruby.i b/Wrapping/Ruby/Ruby.i
new file mode 100644
index 0000000..105a5d5
--- /dev/null
+++ b/Wrapping/Ruby/Ruby.i
@@ -0,0 +1,30 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+// Ruby specific swig components
+#if SWIGRUBY
+
+// ignore overload methods of int type when there is an enum
+%ignore itk::simple::CastImageFilter::SetOutputPixelType( PixelIDValueType pixelID );
+%ignore itk::simple::GetPixelIDValueAsString( PixelIDValueType type );
+
+
+// Enable Ruby classes derived from Command Execute method to be
+// called from C++
+%feature("director") itk::simple::Command;
+
+#endif
diff --git a/Wrapping/Ruby/SimpleITK.i b/Wrapping/Ruby/SimpleITK.i
new file mode 100644
index 0000000..74635c2
--- /dev/null
+++ b/Wrapping/Ruby/SimpleITK.i
@@ -0,0 +1 @@
+%include SimpleITK_Common.i
diff --git a/Wrapping/Tcl/CMakeLists.txt b/Wrapping/Tcl/CMakeLists.txt
new file mode 100644
index 0000000..7d2fc45
--- /dev/null
+++ b/Wrapping/Tcl/CMakeLists.txt
@@ -0,0 +1,32 @@
+cmake_minimum_required ( VERSION 2.8.1 FATAL_ERROR )
+
+project( SimpleITK_TCL )
+
+include(../../CMake/sitkProjectLanguageCommon.cmake NO_POLICY_SCOPE)
+
+find_package ( TCL REQUIRED )
+include_directories ( ${SimpleITK_INCLUDE_DIRS} )
+
+set_source_files_properties ( SimpleITK.i PROPERTIES CPLUSPLUS ON )
+
+# Run swig
+set(CMAKE_SWIG_FLAGS "-nosafe" ${CMAKE_SWIG_GLOBAL_FLAGS})
+set(CMAKE_SWIG_OUTDIR ${CMAKE_CURRENT_BINARY_DIR})
+set(SWIG_MODULE_SimpleITKTCL_EXTRA_DEPS ${SWIG_EXTRA_DEPS} ${CMAKE_CURRENT_SOURCE_DIR}/Tcl.i )
+set(SWIG_MODULE_SimpleITKTcl_EXTRA_DEPS  ${SWIG_MODULE_SimpleITKTCL_EXTRA_DEPS})
+#  SWIG_add_module ( SimpleITKTcl tcl SimpleITK.i SimpleITKTCL_wrap.cxx )
+#  target_link_libraries ( ${SWIG_MODULE_SimpleITKTcl_TARGET_NAME} ${SimpleITK_LIBRARIES} )
+#  sitk_target_link_libraries_with_dynamic_lookup( ${SWIG_MODULE_SimpleITKTcl_TARGET_NAME} ${TCL_LIBRARY} )
+#  set_source_files_properties(${swig_generated_file_fullname}  PROPERTIES COMPILE_FLAGS "-w")
+#  add_executable ( SimpleITKTclsh ${swig_generated_file_fullname} )
+#  target_link_libraries ( SimpleITKTclsh ${SimpleITK_LIBRARIES} ${TCL_LIBRARY})
+
+SWIG_module_initialize ( SimpleITKTCL tcl )
+SWIG_add_source_to_module ( SimpleITKTCL swig_generated_source SimpleITK.i ${SWIG_EXTRA_DEPS} )
+set_source_files_properties(${swig_generated_file_fullname} PROPERTIES COMPILE_FLAGS "-w" )
+add_executable ( SimpleITKTclsh ${swig_generated_file_fullname} )
+target_link_libraries ( SimpleITKTclsh ${SimpleITK_LIBRARIES} ${TCL_LIBRARY} )
+target_include_directories( SimpleITKTclsh
+  PRIVATE
+   ${TCL_INCLUDE_PATH} )
+sitk_strip_target( SimpleITKTclsh )
diff --git a/Wrapping/Tcl/SimpleITK.i b/Wrapping/Tcl/SimpleITK.i
new file mode 100644
index 0000000..74635c2
--- /dev/null
+++ b/Wrapping/Tcl/SimpleITK.i
@@ -0,0 +1 @@
+%include SimpleITK_Common.i
diff --git a/Wrapping/Tcl/Tcl.i b/Wrapping/Tcl/Tcl.i
new file mode 100644
index 0000000..053c4d3
--- /dev/null
+++ b/Wrapping/Tcl/Tcl.i
@@ -0,0 +1,27 @@
+/*=========================================================================
+*
+*  Copyright Insight Software Consortium
+*
+*  Licensed under the Apache License, Version 2.0 (the "License");
+*  you may not use this file except in compliance with the License.
+*  You may obtain a copy of the License at
+*
+*         http://www.apache.org/licenses/LICENSE-2.0.txt
+*
+*  Unless required by applicable law or agreed to in writing, software
+*  distributed under the License is distributed on an "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+*  See the License for the specific language governing permissions and
+*  limitations under the License.
+*
+*=========================================================================*/
+
+#if SWIGTCL
+// Code to rebuild tclsh
+%include "tclsh.i"
+
+
+// ignore overload methods of int type when there is an enum
+%ignore itk::simple::CastImageFilter::SetOutputPixelType( PixelIDValueType pixelID );
+%ignore itk::simple::GetPixelIDValueAsString( PixelIDValueType type );
+#endif
diff --git a/circle.yml b/circle.yml
new file mode 100644
index 0000000..31386b5
--- /dev/null
+++ b/circle.yml
@@ -0,0 +1,45 @@
+general:
+  branches:
+    ignore:
+      - gh-pages
+      - dashboard
+
+machine:
+    environment:
+        CTEST_DASHBOARD_ROOT: ${HOME}
+        CTEST_SOURCE_DIRECTORY: ${HOME}/${CIRCLE_PROJECT_REPONAME}
+        CTEST_BINARY_DIRECTORY: ${HOME}/${CIRCLE_PROJECT_REPONAME}-build
+        DASHBOARD_BRANCH_DIRECTORY: ${HOME}/dashboard
+        ExternalData_OBJECT_STORES: ${HOME}/.ExternalData
+        DISTCC_TCP_CORK: "0"
+        DISTCC_DIR: ${HOME}/.distcc
+    post:
+        - sudo apt-get remove cmake && sudo apt-get install libpython-dev distcc lua5.1
+        - sudo sed -i.bak s/STARTDISTCC=\"false\"/STARTDISTCC=\"true\"/g /etc/default/distcc && sudo /etc/init.d/distcc start
+        - mkdir -p "${DISTCC_DIR}" && printf -- "--randomize localhost/2 --localslots=1\n" > "${DISTCC_DIR}/hosts" && for ((i=1;i<CIRCLE_NODE_TOTAL;i++)); do printf "ubuntu at node$i/2\n" >> "${DISTCC_DIR}/hosts"; done
+        - if [ $CIRCLE_NODE_INDEX -eq 0 ]; then mkdir -p .ssh/tmp && printf -- "Host *\nControlMaster auto\nControlPath ~/.ssh/tmp/master-%%r@%%h:%%p\n" >> .ssh/config; for ((i=1;i<CIRCLE_NODE_TOTAL;i++)); do ssh -fMN ubuntu at node$i; done; fi
+        - sudo sed -i "s/false/true/g" /etc/default/sysstat && sudo sed -i "s/[0-9]*-[0-9]*\/[0-9]*/\*\/2/g" /etc/cron.d/sysstat && sudo service sysstat restart
+        - mkdir -p "${ExternalData_OBJECT_STORES}"
+
+dependencies:
+    cache_directories:
+        - "~/.ExternalData"
+    pre:
+        - pip install --upgrade pip
+        - pip install numpy cmake
+        - if [ $CIRCLE_NODE_INDEX -eq 0 ]; then for ((i=1;i<CIRCLE_NODE_TOTAL;i++)); do ssh -fMN ubuntu at node$i; done ; fi
+        - git clone --single-branch https://github.com/SimpleITK/SimpleITK.git -b dashboard ${DASHBOARD_BRANCH_DIRECTORY}
+
+test:
+    override:
+        - ctest -V -S "${DASHBOARD_BRANCH_DIRECTORY}/circleci.cmake":
+            timeout: 1200
+            environment:
+                DASHBOARD_MODEL: $( [[ "$CIRCLE_BRANCH" = "master" || "$CIRCLE_BRANCH" = "next"  || "$CIRCLE_BRANCH" = "release" ]] && echo Continuous || echo Experimental )
+                CTEST_CONFIGURATION_TYPE: "Release"
+                CTEST_BUILD_FLAGS: "-j$(expr $CIRCLE_NODE_TOTAL \\* 2 + 1)"
+                ITK_GLOBAL_DEFAULT_NUMBER_OF_THREAD: 2
+                CTEST_OUTPUT_ON_FAILURE: 1
+                LD_LIBRARY_PATH: ${CTEST_BINARY_DIRECTORY}/ITK-prefix/lib/:${CTEST_BINARY_DIRECTORY}/SimpleITK-build/lib
+        - sar:
+            parallel: true
diff --git a/data/.ExternalData/MD5/0018a552a6a1f951943a6e7bbce24d04 b/data/.ExternalData/MD5/0018a552a6a1f951943a6e7bbce24d04
new file mode 100644
index 0000000..8f332a0
Binary files /dev/null and b/data/.ExternalData/MD5/0018a552a6a1f951943a6e7bbce24d04 differ
diff --git a/data/.ExternalData/MD5/00da43039a19ec8777cd493efccb16d9 b/data/.ExternalData/MD5/00da43039a19ec8777cd493efccb16d9
new file mode 100644
index 0000000..5dce9d1
Binary files /dev/null and b/data/.ExternalData/MD5/00da43039a19ec8777cd493efccb16d9 differ
diff --git a/data/.ExternalData/MD5/013c84e2b924eb8ff658b75ba63b989c b/data/.ExternalData/MD5/013c84e2b924eb8ff658b75ba63b989c
new file mode 100644
index 0000000..75b084e
Binary files /dev/null and b/data/.ExternalData/MD5/013c84e2b924eb8ff658b75ba63b989c differ
diff --git a/data/.ExternalData/MD5/020ea32135e137235cb3031607fca59a b/data/.ExternalData/MD5/020ea32135e137235cb3031607fca59a
new file mode 100644
index 0000000..4b5699a
Binary files /dev/null and b/data/.ExternalData/MD5/020ea32135e137235cb3031607fca59a differ
diff --git a/data/.ExternalData/MD5/023dc8f62b17cf627f55cfbb28fec730 b/data/.ExternalData/MD5/023dc8f62b17cf627f55cfbb28fec730
new file mode 100644
index 0000000..ee23010
Binary files /dev/null and b/data/.ExternalData/MD5/023dc8f62b17cf627f55cfbb28fec730 differ
diff --git a/data/.ExternalData/MD5/02744de5f4990b6b61556b1447739263 b/data/.ExternalData/MD5/02744de5f4990b6b61556b1447739263
new file mode 100644
index 0000000..78f3813
Binary files /dev/null and b/data/.ExternalData/MD5/02744de5f4990b6b61556b1447739263 differ
diff --git a/data/.ExternalData/MD5/034e616e71ade1535cba4a77180ad79d b/data/.ExternalData/MD5/034e616e71ade1535cba4a77180ad79d
new file mode 100644
index 0000000..20cd519
Binary files /dev/null and b/data/.ExternalData/MD5/034e616e71ade1535cba4a77180ad79d differ
diff --git a/data/.ExternalData/MD5/03f553511c60c0f3d8aa7637e446a237 b/data/.ExternalData/MD5/03f553511c60c0f3d8aa7637e446a237
new file mode 100644
index 0000000..118e7b0
Binary files /dev/null and b/data/.ExternalData/MD5/03f553511c60c0f3d8aa7637e446a237 differ
diff --git a/data/.ExternalData/MD5/05336a7e84d56f110741f46b38163a8c b/data/.ExternalData/MD5/05336a7e84d56f110741f46b38163a8c
new file mode 100644
index 0000000..51c88ba
Binary files /dev/null and b/data/.ExternalData/MD5/05336a7e84d56f110741f46b38163a8c differ
diff --git a/data/.ExternalData/MD5/059a97d1e6f0a9b05162b9b44a2fd786 b/data/.ExternalData/MD5/059a97d1e6f0a9b05162b9b44a2fd786
new file mode 100644
index 0000000..5dc6d95
Binary files /dev/null and b/data/.ExternalData/MD5/059a97d1e6f0a9b05162b9b44a2fd786 differ
diff --git a/data/.ExternalData/MD5/068f40a06b09350a7d019198165bf44c b/data/.ExternalData/MD5/068f40a06b09350a7d019198165bf44c
new file mode 100644
index 0000000..97de3e7
Binary files /dev/null and b/data/.ExternalData/MD5/068f40a06b09350a7d019198165bf44c differ
diff --git a/data/.ExternalData/MD5/07106ed67d0da496856c7a2a8daf7125 b/data/.ExternalData/MD5/07106ed67d0da496856c7a2a8daf7125
new file mode 100644
index 0000000..cd25392
Binary files /dev/null and b/data/.ExternalData/MD5/07106ed67d0da496856c7a2a8daf7125 differ
diff --git a/data/.ExternalData/MD5/073df8eb397d1746d2343c78dd4bd964 b/data/.ExternalData/MD5/073df8eb397d1746d2343c78dd4bd964
new file mode 100644
index 0000000..044a729
Binary files /dev/null and b/data/.ExternalData/MD5/073df8eb397d1746d2343c78dd4bd964 differ
diff --git a/data/.ExternalData/MD5/08059625205b2c39e14d636aa9d29520 b/data/.ExternalData/MD5/08059625205b2c39e14d636aa9d29520
new file mode 100644
index 0000000..55beb73
Binary files /dev/null and b/data/.ExternalData/MD5/08059625205b2c39e14d636aa9d29520 differ
diff --git a/data/.ExternalData/MD5/083918d2115d313927180b088e8147d4 b/data/.ExternalData/MD5/083918d2115d313927180b088e8147d4
new file mode 100644
index 0000000..705c547
Binary files /dev/null and b/data/.ExternalData/MD5/083918d2115d313927180b088e8147d4 differ
diff --git a/data/.ExternalData/MD5/0866419dc414715fddc551d6a30fd423 b/data/.ExternalData/MD5/0866419dc414715fddc551d6a30fd423
new file mode 100644
index 0000000..d6084fd
Binary files /dev/null and b/data/.ExternalData/MD5/0866419dc414715fddc551d6a30fd423 differ
diff --git a/data/.ExternalData/MD5/08a33cd9429e453c57eeb8ff242cc489 b/data/.ExternalData/MD5/08a33cd9429e453c57eeb8ff242cc489
new file mode 100644
index 0000000..c87d64a
--- /dev/null
+++ b/data/.ExternalData/MD5/08a33cd9429e453c57eeb8ff242cc489
@@ -0,0 +1,5 @@
+#Insight Transform File V1.0
+#Transform 0
+Transform: TranslationTransform_double_3_3
+Parameters: 0 0 0
+FixedParameters: 
diff --git a/data/.ExternalData/MD5/095fd41dca46f9651e623c62aec8989e b/data/.ExternalData/MD5/095fd41dca46f9651e623c62aec8989e
new file mode 100644
index 0000000..8269efe
--- /dev/null
+++ b/data/.ExternalData/MD5/095fd41dca46f9651e623c62aec8989e
@@ -0,0 +1,5 @@
+#Insight Transform File V1.0
+#Transform 0
+Transform: QuaternionRigidTransform_double_3_3
+Parameters: 0 0 0 1 0 0 0
+FixedParameters: 0 0 0
diff --git a/data/.ExternalData/MD5/0ab6f55004ed273f0666b5d03cb4c95b b/data/.ExternalData/MD5/0ab6f55004ed273f0666b5d03cb4c95b
new file mode 100644
index 0000000..cfb2aa8
--- /dev/null
+++ b/data/.ExternalData/MD5/0ab6f55004ed273f0666b5d03cb4c95b
@@ -0,0 +1,5 @@
+#Insight Transform File V1.0
+#Transform 0
+Transform: DisplacementFieldTransform_double_2_2
+Parameters: -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17 -13 -17  [...]
+FixedParameters: 256 256 0 0 0.35277798771858215 0.35277798771858215 1 0 0 1
diff --git a/data/.ExternalData/MD5/0afc39fa47bc5582f6de48d3273c39e2 b/data/.ExternalData/MD5/0afc39fa47bc5582f6de48d3273c39e2
new file mode 100644
index 0000000..e3439df
Binary files /dev/null and b/data/.ExternalData/MD5/0afc39fa47bc5582f6de48d3273c39e2 differ
diff --git a/data/.ExternalData/MD5/0e8d3a203f0c1fc585b15717d5771cad b/data/.ExternalData/MD5/0e8d3a203f0c1fc585b15717d5771cad
new file mode 100644
index 0000000..231ea25
Binary files /dev/null and b/data/.ExternalData/MD5/0e8d3a203f0c1fc585b15717d5771cad differ
diff --git a/data/.ExternalData/MD5/1034591338d279a4904bb87a670943a2 b/data/.ExternalData/MD5/1034591338d279a4904bb87a670943a2
new file mode 100644
index 0000000..0a2e63f
Binary files /dev/null and b/data/.ExternalData/MD5/1034591338d279a4904bb87a670943a2 differ
diff --git a/data/.ExternalData/MD5/103bda839c77c0fafac2cc0ef3fc3a6e b/data/.ExternalData/MD5/103bda839c77c0fafac2cc0ef3fc3a6e
new file mode 100644
index 0000000..748e730
Binary files /dev/null and b/data/.ExternalData/MD5/103bda839c77c0fafac2cc0ef3fc3a6e differ
diff --git a/data/.ExternalData/MD5/11bda04eb63e37b655cd8a21bb2d01ac b/data/.ExternalData/MD5/11bda04eb63e37b655cd8a21bb2d01ac
new file mode 100644
index 0000000..21b9b26
Binary files /dev/null and b/data/.ExternalData/MD5/11bda04eb63e37b655cd8a21bb2d01ac differ
diff --git a/data/.ExternalData/MD5/1251f0509f87a61589353b2dc7cb4670 b/data/.ExternalData/MD5/1251f0509f87a61589353b2dc7cb4670
new file mode 100644
index 0000000..05c698c
Binary files /dev/null and b/data/.ExternalData/MD5/1251f0509f87a61589353b2dc7cb4670 differ
diff --git a/data/.ExternalData/MD5/146051c2bf30cf847f88fce59fba4ff7 b/data/.ExternalData/MD5/146051c2bf30cf847f88fce59fba4ff7
new file mode 100644
index 0000000..8daed62
Binary files /dev/null and b/data/.ExternalData/MD5/146051c2bf30cf847f88fce59fba4ff7 differ
diff --git a/data/.ExternalData/MD5/146277cf45f28feffc9e2a18b97ccbf3 b/data/.ExternalData/MD5/146277cf45f28feffc9e2a18b97ccbf3
new file mode 100644
index 0000000..b373095
Binary files /dev/null and b/data/.ExternalData/MD5/146277cf45f28feffc9e2a18b97ccbf3 differ
diff --git a/data/.ExternalData/MD5/1473956c389899d311c837105532618e b/data/.ExternalData/MD5/1473956c389899d311c837105532618e
new file mode 100644
index 0000000..dfbb24b
Binary files /dev/null and b/data/.ExternalData/MD5/1473956c389899d311c837105532618e differ
diff --git a/data/.ExternalData/MD5/1517e9756dfcb07633b00b575edc3766 b/data/.ExternalData/MD5/1517e9756dfcb07633b00b575edc3766
new file mode 100644
index 0000000..fb9da5a
Binary files /dev/null and b/data/.ExternalData/MD5/1517e9756dfcb07633b00b575edc3766 differ
diff --git a/data/.ExternalData/MD5/15d4c05e69d3fb2e5bc879fd7190a440 b/data/.ExternalData/MD5/15d4c05e69d3fb2e5bc879fd7190a440
new file mode 100644
index 0000000..2ba6b8a
--- /dev/null
+++ b/data/.ExternalData/MD5/15d4c05e69d3fb2e5bc879fd7190a440
@@ -0,0 +1,5 @@
+#Insight Transform File V1.0
+#Transform 0
+Transform: IdentityTransform_double_3_3
+Parameters: 
+FixedParameters: 
diff --git a/data/.ExternalData/MD5/1682d737596d036a1d8d62755bdc0554 b/data/.ExternalData/MD5/1682d737596d036a1d8d62755bdc0554
new file mode 100644
index 0000000..53b5123
Binary files /dev/null and b/data/.ExternalData/MD5/1682d737596d036a1d8d62755bdc0554 differ
diff --git a/data/.ExternalData/MD5/19e2eefeaf79b3a1eeafed0f8e53abd1 b/data/.ExternalData/MD5/19e2eefeaf79b3a1eeafed0f8e53abd1
new file mode 100644
index 0000000..1ddc7ab
Binary files /dev/null and b/data/.ExternalData/MD5/19e2eefeaf79b3a1eeafed0f8e53abd1 differ
diff --git a/data/.ExternalData/MD5/1b5092c4cb11f846977f1fc175accd3c b/data/.ExternalData/MD5/1b5092c4cb11f846977f1fc175accd3c
new file mode 100644
index 0000000..54ccd4e
Binary files /dev/null and b/data/.ExternalData/MD5/1b5092c4cb11f846977f1fc175accd3c differ
diff --git a/data/.ExternalData/MD5/1cbe1c6627fe6d1429e783a88756ebe4 b/data/.ExternalData/MD5/1cbe1c6627fe6d1429e783a88756ebe4
new file mode 100644
index 0000000..64a41ed
Binary files /dev/null and b/data/.ExternalData/MD5/1cbe1c6627fe6d1429e783a88756ebe4 differ
diff --git a/data/.ExternalData/MD5/1dd7f6cc56938b1b1f3b06a2a5e45dbb b/data/.ExternalData/MD5/1dd7f6cc56938b1b1f3b06a2a5e45dbb
new file mode 100644
index 0000000..85a994e
Binary files /dev/null and b/data/.ExternalData/MD5/1dd7f6cc56938b1b1f3b06a2a5e45dbb differ
diff --git a/data/.ExternalData/MD5/1eff97fdb9d327928b7176d17f63782d b/data/.ExternalData/MD5/1eff97fdb9d327928b7176d17f63782d
new file mode 100644
index 0000000..4fab5f7
Binary files /dev/null and b/data/.ExternalData/MD5/1eff97fdb9d327928b7176d17f63782d differ
diff --git a/data/.ExternalData/MD5/1fc06256e3ad4d5f0f45a7e152f7021a b/data/.ExternalData/MD5/1fc06256e3ad4d5f0f45a7e152f7021a
new file mode 100644
index 0000000..b5d5b80
Binary files /dev/null and b/data/.ExternalData/MD5/1fc06256e3ad4d5f0f45a7e152f7021a differ
diff --git a/data/.ExternalData/MD5/20538107d92959f43c25d0d776974d2f b/data/.ExternalData/MD5/20538107d92959f43c25d0d776974d2f
new file mode 100644
index 0000000..fb74a3a
Binary files /dev/null and b/data/.ExternalData/MD5/20538107d92959f43c25d0d776974d2f differ
diff --git a/data/.ExternalData/MD5/231f8de5271265dbcc49bac754ae1ad8 b/data/.ExternalData/MD5/231f8de5271265dbcc49bac754ae1ad8
new file mode 100644
index 0000000..a254324
Binary files /dev/null and b/data/.ExternalData/MD5/231f8de5271265dbcc49bac754ae1ad8 differ
diff --git a/data/.ExternalData/MD5/238556b8f784284b64aec7259b1568a5 b/data/.ExternalData/MD5/238556b8f784284b64aec7259b1568a5
new file mode 100644
index 0000000..ae140bb
Binary files /dev/null and b/data/.ExternalData/MD5/238556b8f784284b64aec7259b1568a5 differ
diff --git a/data/.ExternalData/MD5/2386d6ea4c8958e0b4f6b82d28a4fc00 b/data/.ExternalData/MD5/2386d6ea4c8958e0b4f6b82d28a4fc00
new file mode 100644
index 0000000..caadc66
Binary files /dev/null and b/data/.ExternalData/MD5/2386d6ea4c8958e0b4f6b82d28a4fc00 differ
diff --git a/data/.ExternalData/MD5/239d33db0b6f03fdceb9b4807460a81d b/data/.ExternalData/MD5/239d33db0b6f03fdceb9b4807460a81d
new file mode 100644
index 0000000..fb210df
Binary files /dev/null and b/data/.ExternalData/MD5/239d33db0b6f03fdceb9b4807460a81d differ
diff --git a/data/.ExternalData/MD5/25de5707b18c0c684fd5fa30351bf787 b/data/.ExternalData/MD5/25de5707b18c0c684fd5fa30351bf787
new file mode 100644
index 0000000..23691ba
Binary files /dev/null and b/data/.ExternalData/MD5/25de5707b18c0c684fd5fa30351bf787 differ
diff --git a/data/.ExternalData/MD5/282c1cc32168ee4c55e88c9006743277 b/data/.ExternalData/MD5/282c1cc32168ee4c55e88c9006743277
new file mode 100644
index 0000000..143dc28
Binary files /dev/null and b/data/.ExternalData/MD5/282c1cc32168ee4c55e88c9006743277 differ
diff --git a/data/.ExternalData/MD5/283531b2b58b124c0eefb8bac36347e1 b/data/.ExternalData/MD5/283531b2b58b124c0eefb8bac36347e1
new file mode 100644
index 0000000..8cbb3ef
Binary files /dev/null and b/data/.ExternalData/MD5/283531b2b58b124c0eefb8bac36347e1 differ
diff --git a/data/.ExternalData/MD5/287c913079332c7d924143fd0601038e b/data/.ExternalData/MD5/287c913079332c7d924143fd0601038e
new file mode 100644
index 0000000..b777802
Binary files /dev/null and b/data/.ExternalData/MD5/287c913079332c7d924143fd0601038e differ
diff --git a/data/.ExternalData/MD5/2a0f8ee9d1d0f30855771c49d868d8d4 b/data/.ExternalData/MD5/2a0f8ee9d1d0f30855771c49d868d8d4
new file mode 100644
index 0000000..65e352d
Binary files /dev/null and b/data/.ExternalData/MD5/2a0f8ee9d1d0f30855771c49d868d8d4 differ
diff --git a/data/.ExternalData/MD5/2b8f66caa1b6dd0b945e579357c0517f b/data/.ExternalData/MD5/2b8f66caa1b6dd0b945e579357c0517f
new file mode 100644
index 0000000..0ac21ca
Binary files /dev/null and b/data/.ExternalData/MD5/2b8f66caa1b6dd0b945e579357c0517f differ
diff --git a/data/.ExternalData/MD5/2bae98b0565eaaa7f6ccc49d3490ddda b/data/.ExternalData/MD5/2bae98b0565eaaa7f6ccc49d3490ddda
new file mode 100644
index 0000000..70ba37c
Binary files /dev/null and b/data/.ExternalData/MD5/2bae98b0565eaaa7f6ccc49d3490ddda differ
diff --git a/data/.ExternalData/MD5/2bbf15c53a6e9d1e5d9b6912ebac7f2f b/data/.ExternalData/MD5/2bbf15c53a6e9d1e5d9b6912ebac7f2f
new file mode 100644
index 0000000..c8ce9fd
Binary files /dev/null and b/data/.ExternalData/MD5/2bbf15c53a6e9d1e5d9b6912ebac7f2f differ
diff --git a/data/.ExternalData/MD5/2c7d2a654961d2b9d1d997d1f20e2ed2 b/data/.ExternalData/MD5/2c7d2a654961d2b9d1d997d1f20e2ed2
new file mode 100644
index 0000000..eb9ff84
Binary files /dev/null and b/data/.ExternalData/MD5/2c7d2a654961d2b9d1d997d1f20e2ed2 differ
diff --git a/data/.ExternalData/MD5/2d1218cbfb433ab0412b90ac26702136 b/data/.ExternalData/MD5/2d1218cbfb433ab0412b90ac26702136
new file mode 100644
index 0000000..18c4573
Binary files /dev/null and b/data/.ExternalData/MD5/2d1218cbfb433ab0412b90ac26702136 differ
diff --git a/data/.ExternalData/MD5/2de60c03217b0e6684b8a69bdfe48ec3 b/data/.ExternalData/MD5/2de60c03217b0e6684b8a69bdfe48ec3
new file mode 100644
index 0000000..e30466b
Binary files /dev/null and b/data/.ExternalData/MD5/2de60c03217b0e6684b8a69bdfe48ec3 differ
diff --git a/data/.ExternalData/MD5/2e0a58005a74a02147c5e0517615ce58 b/data/.ExternalData/MD5/2e0a58005a74a02147c5e0517615ce58
new file mode 100644
index 0000000..ba8660a
--- /dev/null
+++ b/data/.ExternalData/MD5/2e0a58005a74a02147c5e0517615ce58
@@ -0,0 +1,53 @@
+NRRD0004
+# Complete NRRD file format specification at:
+# http://teem.sourceforge.net/nrrd/format.html
+type: unsigned char
+dimension: 2
+space dimension: 2
+sizes: 128 128
+space directions: (1,0) (0,1)
+kinds: domain domain
+encoding: raw
+space origin: (0,0)
+
+����������������������������������������������������������������~}|{{zyxwwvuttsrrqqpppooonnnnnnnnnnnnnooooopppqqrrrsssttuuuvvw{����������������������������������������������������������������~}|{zyyxwvuttsrrqppooonnnmmmmmmmmmmmmmmnnnooopppqqqrrsstttuuvv{����������������������������������������������������������������~}|{zyxwvuutsrqqpponnnmmlllllllklllllllmmmmnnoooppqqqrrssttuuuz����������������������������������������������������������������~}|{zyxwvutsrqqpoonmmlllkkkkjjjjjjjkkkkklll [...]




!#&(+-0258:=@BEGd����������������������������������������������������½����������ysmgb\VQKFA<83/+'# 










 "$'),/1479<?ADFc����������������������������������������������������þ����������ysmga[VPKE@;72.*&"



+
+
+
+
+





!#&(+.0368;>@CFc����������������������������������������������������þ����������ysmga[UPJE@;61-)%!



+				
+



 "%'*-/258:=@BEc����������������������������������������������������Ŀ����������ysmf`ZUOID?:50,($ 



+		
+



!$&),.1479<?BDb����������������������������������������������������������������yslf`ZTNIC>94/+'#

+	
+


 #%(+.0369<>ADb����������������������������������������������������������������yrlf`ZTNHC>83/*&"


	
+


"%'*-0358;>@Cb����������������������������������������������������������������yrlf`YSNHB=83.)%!


+	
+


!$'),/258:=@Ca����������������������������������������������������������������yrlf_YSMHB=72-)$ 


	
+


 #&),.147:=?Ba�����������������������������������������������������¼���������yrle_YSMGB<72-($ 


+	


 #%(+.1479<?Ba�����������������������������������������������������½���������yrle_YSMGA<61,(#
	
+

"%(+-0369<?Aa�����������������������������������������������������ý���������xrle_YRLGA;61,'#
	 	


"$'*-0369<>Aa�����������������������������������������������������ý���������xrke_XRLFA;61,'#


	   	


!$'*-0368;>Aa�����������������������������������������������������ý���������xrke_XRLFA;61,'"


     	



!$'*-0258;>Aa�����������������������������������������������������þ���������xrke_XRLF@;60+'"

+     	
+

!$'*-/258;>Aa�����������������������������������������������������þ���������xrke_XRLF@;60+'"

+     
+

!$'*,/258;>Aa�����������������������������������������������������þ���������xrke_XRLF@;60+'"

+     	
+

!$'*-/258;>Aa�����������������������������������������������������ý���������xrke_XRLFA;61,'"


     	



!$'*-0258;>Aa�����������������������������������������������������ý���������xrke_XRLFA;61,'#


	   	


!$'*-0368;>Aa�����������������������������������������������������ý���������xrle_YRLGA;61,'#
	 	


"$'*-0369<>Aa�����������������������������������������������������½���������yrle_YSMGA<61,(#
	
+

"%(+-0369<?Aa�����������������������������������������������������¼���������yrle_YSMGB<72-($ 


+	


 #%(+.1479<?Ba����������������������������������������������������������������yrlf_YSMHB=72-)$ 


	
+


 #&),.147:=?Ba����������������������������������������������������������������yrlf`YSNHB=83.)%!


+	
+


!$'),/258:=@Ca����������������������������������������������������������������yrlf`ZTNHC>83/*&"


	
+


"%'*-0358;>@Cb����������������������������������������������������������������yslf`ZTNIC>94/+'#

+	
+


 #%(+.0369<>ADb����������������������������������������������������Ŀ����������ysmf`ZUOID?:50,($ 



+		
+



!$&),.1479<?BDb����������������������������������������������������þ����������ysmga[UPJE@;61-)%!



+				
+



 "%'*-/258:=@BEc����������������������������������������������������þ����������ysmga[VPKE@;72.*&"



+
+
+
+
+





!#&(+.0368;>@CFc����������������������������������������������������½����������ysmgb\VQKFA<83/+'# 










 "$'),/1479<?ADFc����������������������������������������������������������������ysmhb\WQLGB=940,(%!






!#&(+-0258:=@BEGd����������������������������������������������������������������ysnhb]WRMHC>:51-)&# 


 "%'),.1469;>@CEHd���������������������������������������������������ÿ�����������ytnhc]XSNID?;62.+'$!



"$&(+-0257:<?ADFIe���������������������������������������������������¾�����������ytnic^YTNJE@<840,)&# 

!#%(*,/1469;>@CEGJe����������������������������������������������������������������ytoid_YTOKFA=951. [...]
\ No newline at end of file
diff --git a/data/.ExternalData/MD5/2f2b1eb279357c2bdd75f70a865bdb40 b/data/.ExternalData/MD5/2f2b1eb279357c2bdd75f70a865bdb40
new file mode 100644
index 0000000..3a6eef8
Binary files /dev/null and b/data/.ExternalData/MD5/2f2b1eb279357c2bdd75f70a865bdb40 differ
diff --git a/data/.ExternalData/MD5/2f356fdb6b9229d3c14599e19b5d5bae b/data/.ExternalData/MD5/2f356fdb6b9229d3c14599e19b5d5bae
new file mode 100644
index 0000000..87390e8
Binary files /dev/null and b/data/.ExternalData/MD5/2f356fdb6b9229d3c14599e19b5d5bae differ
diff --git a/data/.ExternalData/MD5/2f9abc34f4ae45e2347f940df04b9ed6 b/data/.ExternalData/MD5/2f9abc34f4ae45e2347f940df04b9ed6
new file mode 100644
index 0000000..460c19c
Binary files /dev/null and b/data/.ExternalData/MD5/2f9abc34f4ae45e2347f940df04b9ed6 differ
diff --git a/data/.ExternalData/MD5/3050849aa59e82b6f1905fd7ebabf73a b/data/.ExternalData/MD5/3050849aa59e82b6f1905fd7ebabf73a
new file mode 100644
index 0000000..c06f704
Binary files /dev/null and b/data/.ExternalData/MD5/3050849aa59e82b6f1905fd7ebabf73a differ
diff --git a/data/.ExternalData/MD5/30e08f2e5cf9126e2a09707c25507a74 b/data/.ExternalData/MD5/30e08f2e5cf9126e2a09707c25507a74
new file mode 100644
index 0000000..eae62aa
Binary files /dev/null and b/data/.ExternalData/MD5/30e08f2e5cf9126e2a09707c25507a74 differ
diff --git a/data/.ExternalData/MD5/31995770b31eaeb212ebf59695e5f250 b/data/.ExternalData/MD5/31995770b31eaeb212ebf59695e5f250
new file mode 100644
index 0000000..835fdfb
Binary files /dev/null and b/data/.ExternalData/MD5/31995770b31eaeb212ebf59695e5f250 differ
diff --git a/data/.ExternalData/MD5/324b302006c8897110167b794a1ff65e b/data/.ExternalData/MD5/324b302006c8897110167b794a1ff65e
new file mode 100644
index 0000000..0c52715
Binary files /dev/null and b/data/.ExternalData/MD5/324b302006c8897110167b794a1ff65e differ
diff --git a/data/.ExternalData/MD5/34592e2640fe5f18ec00c2e1792e2ed4 b/data/.ExternalData/MD5/34592e2640fe5f18ec00c2e1792e2ed4
new file mode 100644
index 0000000..7543803
Binary files /dev/null and b/data/.ExternalData/MD5/34592e2640fe5f18ec00c2e1792e2ed4 differ
diff --git a/data/.ExternalData/MD5/35ab8690ee1e1ca4bfce40c7950770af b/data/.ExternalData/MD5/35ab8690ee1e1ca4bfce40c7950770af
new file mode 100644
index 0000000..fae3d11
Binary files /dev/null and b/data/.ExternalData/MD5/35ab8690ee1e1ca4bfce40c7950770af differ
diff --git a/data/.ExternalData/MD5/35acd568f8ca9324e0e7346a77f255fc b/data/.ExternalData/MD5/35acd568f8ca9324e0e7346a77f255fc
new file mode 100644
index 0000000..33167c9
Binary files /dev/null and b/data/.ExternalData/MD5/35acd568f8ca9324e0e7346a77f255fc differ
diff --git a/data/.ExternalData/MD5/35c331f3f43dfe1dd5f3825b0d2707ef b/data/.ExternalData/MD5/35c331f3f43dfe1dd5f3825b0d2707ef
new file mode 100644
index 0000000..c2945eb
Binary files /dev/null and b/data/.ExternalData/MD5/35c331f3f43dfe1dd5f3825b0d2707ef differ
diff --git a/data/.ExternalData/MD5/368b198113c8125237b7a1a3ffbf6c2f b/data/.ExternalData/MD5/368b198113c8125237b7a1a3ffbf6c2f
new file mode 100644
index 0000000..970c1bb
Binary files /dev/null and b/data/.ExternalData/MD5/368b198113c8125237b7a1a3ffbf6c2f differ
diff --git a/data/.ExternalData/MD5/36ba9922bf82a81692198a126ead8cc4 b/data/.ExternalData/MD5/36ba9922bf82a81692198a126ead8cc4
new file mode 100644
index 0000000..c088fa1
Binary files /dev/null and b/data/.ExternalData/MD5/36ba9922bf82a81692198a126ead8cc4 differ
diff --git a/data/.ExternalData/MD5/378c52e56aa415145da3dd085c97d881 b/data/.ExternalData/MD5/378c52e56aa415145da3dd085c97d881
new file mode 100644
index 0000000..6dc5314
Binary files /dev/null and b/data/.ExternalData/MD5/378c52e56aa415145da3dd085c97d881 differ
diff --git a/data/.ExternalData/MD5/39b1d744b15679e43c40fb21c3057ff0 b/data/.ExternalData/MD5/39b1d744b15679e43c40fb21c3057ff0
new file mode 100644
index 0000000..436bb7f
Binary files /dev/null and b/data/.ExternalData/MD5/39b1d744b15679e43c40fb21c3057ff0 differ
diff --git a/data/.ExternalData/MD5/3a1d580c01b3ac705fefc280f3947d3a b/data/.ExternalData/MD5/3a1d580c01b3ac705fefc280f3947d3a
new file mode 100644
index 0000000..ce47adf
Binary files /dev/null and b/data/.ExternalData/MD5/3a1d580c01b3ac705fefc280f3947d3a differ
diff --git a/data/.ExternalData/MD5/3b6925c5797024cf3e433642f96caf05 b/data/.ExternalData/MD5/3b6925c5797024cf3e433642f96caf05
new file mode 100644
index 0000000..ef4a083
Binary files /dev/null and b/data/.ExternalData/MD5/3b6925c5797024cf3e433642f96caf05 differ
diff --git a/data/.ExternalData/MD5/3b6e25b80225dafaacfdbf233f36b9b7 b/data/.ExternalData/MD5/3b6e25b80225dafaacfdbf233f36b9b7
new file mode 100644
index 0000000..0a2b3cf
Binary files /dev/null and b/data/.ExternalData/MD5/3b6e25b80225dafaacfdbf233f36b9b7 differ
diff --git a/data/.ExternalData/MD5/3b9bdb244fbf030c83a034f71ac46f8a b/data/.ExternalData/MD5/3b9bdb244fbf030c83a034f71ac46f8a
new file mode 100644
index 0000000..455fe11
Binary files /dev/null and b/data/.ExternalData/MD5/3b9bdb244fbf030c83a034f71ac46f8a differ
diff --git a/data/.ExternalData/MD5/3bd4fa6ee34378b2318dd9bf55a2b8df b/data/.ExternalData/MD5/3bd4fa6ee34378b2318dd9bf55a2b8df
new file mode 100644
index 0000000..4c9b5c9
Binary files /dev/null and b/data/.ExternalData/MD5/3bd4fa6ee34378b2318dd9bf55a2b8df differ
diff --git a/data/.ExternalData/MD5/3c2ba33cff5fd6e7ba9d9a396d55ecb1 b/data/.ExternalData/MD5/3c2ba33cff5fd6e7ba9d9a396d55ecb1
new file mode 100644
index 0000000..b0bbb9b
Binary files /dev/null and b/data/.ExternalData/MD5/3c2ba33cff5fd6e7ba9d9a396d55ecb1 differ
diff --git a/data/.ExternalData/MD5/3cade3f7b90d71d1020ee024a01ce15f b/data/.ExternalData/MD5/3cade3f7b90d71d1020ee024a01ce15f
new file mode 100644
index 0000000..37468dd
Binary files /dev/null and b/data/.ExternalData/MD5/3cade3f7b90d71d1020ee024a01ce15f differ
diff --git a/data/.ExternalData/MD5/3dc1d9ebe8e603598bf2f55b996e7f3e b/data/.ExternalData/MD5/3dc1d9ebe8e603598bf2f55b996e7f3e
new file mode 100644
index 0000000..2f92586
--- /dev/null
+++ b/data/.ExternalData/MD5/3dc1d9ebe8e603598bf2f55b996e7f3e
@@ -0,0 +1,14 @@
+NRRD0004
+# Complete NRRD file format specification at:
+# http://teem.sourceforge.net/nrrd/format.html
+type: double
+dimension: 2
+space dimension: 2
+sizes: 200 150
+space directions: (1,0) (0,1)
+kinds: domain domain
+endian: little
+encoding: raw
+space origin: (0,0)
+
+JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT�I�P?JT� [...]
\ No newline at end of file
diff --git a/data/.ExternalData/MD5/3e15c3bc5d5ccdb290dce33e03a42644 b/data/.ExternalData/MD5/3e15c3bc5d5ccdb290dce33e03a42644
new file mode 100644
index 0000000..69027b6
Binary files /dev/null and b/data/.ExternalData/MD5/3e15c3bc5d5ccdb290dce33e03a42644 differ
diff --git a/data/.ExternalData/MD5/3ef93ff5e8a4eb690d487aeb8fca7e5d b/data/.ExternalData/MD5/3ef93ff5e8a4eb690d487aeb8fca7e5d
new file mode 100644
index 0000000..30c106d
Binary files /dev/null and b/data/.ExternalData/MD5/3ef93ff5e8a4eb690d487aeb8fca7e5d differ
diff --git a/data/.ExternalData/MD5/404c49e9e4caec16efea719d8d061b02 b/data/.ExternalData/MD5/404c49e9e4caec16efea719d8d061b02
new file mode 100644
index 0000000..b71ebe9
Binary files /dev/null and b/data/.ExternalData/MD5/404c49e9e4caec16efea719d8d061b02 differ
diff --git a/data/.ExternalData/MD5/40a0feefdbb30c6f852f5c6f0d1814b9 b/data/.ExternalData/MD5/40a0feefdbb30c6f852f5c6f0d1814b9
new file mode 100644
index 0000000..6f6277a
Binary files /dev/null and b/data/.ExternalData/MD5/40a0feefdbb30c6f852f5c6f0d1814b9 differ
diff --git a/data/.ExternalData/MD5/434dabc647640c80c239440b49e8ee13 b/data/.ExternalData/MD5/434dabc647640c80c239440b49e8ee13
new file mode 100644
index 0000000..4c257da
--- /dev/null
+++ b/data/.ExternalData/MD5/434dabc647640c80c239440b49e8ee13
@@ -0,0 +1,7 @@
+#Insight Transform File V1.0
+#Transform 0
+Transform: CompositeTransform_double_3_3
+#Transform 1
+Transform: IdentityTransform_double_3_3
+Parameters: 
+FixedParameters: 
diff --git a/data/.ExternalData/MD5/44b4327d5dfb341dfda56391d1a9d261 b/data/.ExternalData/MD5/44b4327d5dfb341dfda56391d1a9d261
new file mode 100644
index 0000000..dc6eaf9
Binary files /dev/null and b/data/.ExternalData/MD5/44b4327d5dfb341dfda56391d1a9d261 differ
diff --git a/data/.ExternalData/MD5/46b46ab71376789e5e998d0591f08818 b/data/.ExternalData/MD5/46b46ab71376789e5e998d0591f08818
new file mode 100644
index 0000000..eef0744
Binary files /dev/null and b/data/.ExternalData/MD5/46b46ab71376789e5e998d0591f08818 differ
diff --git a/data/.ExternalData/MD5/46c83ad189ea2e0800e7df0f1d4c0025 b/data/.ExternalData/MD5/46c83ad189ea2e0800e7df0f1d4c0025
new file mode 100644
index 0000000..6ac00b2
Binary files /dev/null and b/data/.ExternalData/MD5/46c83ad189ea2e0800e7df0f1d4c0025 differ
diff --git a/data/.ExternalData/MD5/49129770e7152ea5d203a519ac17be43 b/data/.ExternalData/MD5/49129770e7152ea5d203a519ac17be43
new file mode 100644
index 0000000..f70ce7c
Binary files /dev/null and b/data/.ExternalData/MD5/49129770e7152ea5d203a519ac17be43 differ
diff --git a/data/.ExternalData/MD5/4a91cbab8f591cb6a7799136de3f39b6 b/data/.ExternalData/MD5/4a91cbab8f591cb6a7799136de3f39b6
new file mode 100644
index 0000000..ab4298d
Binary files /dev/null and b/data/.ExternalData/MD5/4a91cbab8f591cb6a7799136de3f39b6 differ
diff --git a/data/.ExternalData/MD5/4b3eeb33cfe1f4e2a8e3df5cbe185c7e b/data/.ExternalData/MD5/4b3eeb33cfe1f4e2a8e3df5cbe185c7e
new file mode 100644
index 0000000..b57d4b3
Binary files /dev/null and b/data/.ExternalData/MD5/4b3eeb33cfe1f4e2a8e3df5cbe185c7e differ
diff --git a/data/.ExternalData/MD5/4cec8cbcd795d40d7be1c3d920e1e024 b/data/.ExternalData/MD5/4cec8cbcd795d40d7be1c3d920e1e024
new file mode 100644
index 0000000..ec0838d
Binary files /dev/null and b/data/.ExternalData/MD5/4cec8cbcd795d40d7be1c3d920e1e024 differ
diff --git a/data/.ExternalData/MD5/4ced84b250c6799a472f569779022044 b/data/.ExternalData/MD5/4ced84b250c6799a472f569779022044
new file mode 100644
index 0000000..b6f7ccd
Binary files /dev/null and b/data/.ExternalData/MD5/4ced84b250c6799a472f569779022044 differ
diff --git a/data/.ExternalData/MD5/4fab0a2cf4b9c8805dee5076be1829f8 b/data/.ExternalData/MD5/4fab0a2cf4b9c8805dee5076be1829f8
new file mode 100644
index 0000000..803a5e2
Binary files /dev/null and b/data/.ExternalData/MD5/4fab0a2cf4b9c8805dee5076be1829f8 differ
diff --git a/data/.ExternalData/MD5/504b5fe9ee6273fa5e40d7f31ae50ff7 b/data/.ExternalData/MD5/504b5fe9ee6273fa5e40d7f31ae50ff7
new file mode 100644
index 0000000..053be5d
Binary files /dev/null and b/data/.ExternalData/MD5/504b5fe9ee6273fa5e40d7f31ae50ff7 differ
diff --git a/data/.ExternalData/MD5/50e6c855fcee80a195980421bdd71140 b/data/.ExternalData/MD5/50e6c855fcee80a195980421bdd71140
new file mode 100644
index 0000000..64c6d1c
Binary files /dev/null and b/data/.ExternalData/MD5/50e6c855fcee80a195980421bdd71140 differ
diff --git a/data/.ExternalData/MD5/50feae81e860de04a3d7fa29b74442cb b/data/.ExternalData/MD5/50feae81e860de04a3d7fa29b74442cb
new file mode 100644
index 0000000..48e5dc5
Binary files /dev/null and b/data/.ExternalData/MD5/50feae81e860de04a3d7fa29b74442cb differ
diff --git a/data/.ExternalData/MD5/53b68a3bc02def098ac1cd38b28b494a b/data/.ExternalData/MD5/53b68a3bc02def098ac1cd38b28b494a
new file mode 100644
index 0000000..b78b7d6
Binary files /dev/null and b/data/.ExternalData/MD5/53b68a3bc02def098ac1cd38b28b494a differ
diff --git a/data/.ExternalData/MD5/55d916b5b65201c6e9c5d362899bc808 b/data/.ExternalData/MD5/55d916b5b65201c6e9c5d362899bc808
new file mode 100644
index 0000000..7cd7b06
Binary files /dev/null and b/data/.ExternalData/MD5/55d916b5b65201c6e9c5d362899bc808 differ
diff --git a/data/.ExternalData/MD5/55dacdce3013e4e086cb5a3e3bdfd2f9 b/data/.ExternalData/MD5/55dacdce3013e4e086cb5a3e3bdfd2f9
new file mode 100644
index 0000000..f8e31fd
Binary files /dev/null and b/data/.ExternalData/MD5/55dacdce3013e4e086cb5a3e3bdfd2f9 differ
diff --git a/data/.ExternalData/MD5/573fda07c579e017396b4e6ff0e53f42 b/data/.ExternalData/MD5/573fda07c579e017396b4e6ff0e53f42
new file mode 100644
index 0000000..059c78a
Binary files /dev/null and b/data/.ExternalData/MD5/573fda07c579e017396b4e6ff0e53f42 differ
diff --git a/data/.ExternalData/MD5/58a3778027be2dc4471258a6da94b7b2 b/data/.ExternalData/MD5/58a3778027be2dc4471258a6da94b7b2
new file mode 100644
index 0000000..913ff67
Binary files /dev/null and b/data/.ExternalData/MD5/58a3778027be2dc4471258a6da94b7b2 differ
diff --git a/data/.ExternalData/MD5/58e10b6898a5d5271a890eecf25093c2 b/data/.ExternalData/MD5/58e10b6898a5d5271a890eecf25093c2
new file mode 100644
index 0000000..daccd3d
Binary files /dev/null and b/data/.ExternalData/MD5/58e10b6898a5d5271a890eecf25093c2 differ
diff --git a/data/.ExternalData/MD5/591eeda7a3b79c067532360bf069ee3e b/data/.ExternalData/MD5/591eeda7a3b79c067532360bf069ee3e
new file mode 100644
index 0000000..97af881
Binary files /dev/null and b/data/.ExternalData/MD5/591eeda7a3b79c067532360bf069ee3e differ
diff --git a/data/.ExternalData/MD5/5a9cdc76f66bb911460cb99f14955a6f b/data/.ExternalData/MD5/5a9cdc76f66bb911460cb99f14955a6f
new file mode 100644
index 0000000..fca0850
Binary files /dev/null and b/data/.ExternalData/MD5/5a9cdc76f66bb911460cb99f14955a6f differ
diff --git a/data/.ExternalData/MD5/5cefe54ac1a93a84be84480875e7c6de b/data/.ExternalData/MD5/5cefe54ac1a93a84be84480875e7c6de
new file mode 100644
index 0000000..392d659
Binary files /dev/null and b/data/.ExternalData/MD5/5cefe54ac1a93a84be84480875e7c6de differ
diff --git a/data/.ExternalData/MD5/5df678da0f93c87e7d1db59f2a3ad3cb b/data/.ExternalData/MD5/5df678da0f93c87e7d1db59f2a3ad3cb
new file mode 100644
index 0000000..c307bd2
Binary files /dev/null and b/data/.ExternalData/MD5/5df678da0f93c87e7d1db59f2a3ad3cb differ
diff --git a/data/.ExternalData/MD5/607fda60a271c0963ecba199a546d439 b/data/.ExternalData/MD5/607fda60a271c0963ecba199a546d439
new file mode 100644
index 0000000..3e5307c
Binary files /dev/null and b/data/.ExternalData/MD5/607fda60a271c0963ecba199a546d439 differ
diff --git a/data/.ExternalData/MD5/610392a128986d934dfc0a1b0dc27e91 b/data/.ExternalData/MD5/610392a128986d934dfc0a1b0dc27e91
new file mode 100644
index 0000000..5ec35c5
Binary files /dev/null and b/data/.ExternalData/MD5/610392a128986d934dfc0a1b0dc27e91 differ
diff --git a/data/.ExternalData/MD5/62f8f57ba22917a9ad2aa4d120d12fa9 b/data/.ExternalData/MD5/62f8f57ba22917a9ad2aa4d120d12fa9
new file mode 100644
index 0000000..86f866d
Binary files /dev/null and b/data/.ExternalData/MD5/62f8f57ba22917a9ad2aa4d120d12fa9 differ
diff --git a/data/.ExternalData/MD5/646be5659d98e7cef40b63b3dff86726 b/data/.ExternalData/MD5/646be5659d98e7cef40b63b3dff86726
new file mode 100644
index 0000000..eae68d4
Binary files /dev/null and b/data/.ExternalData/MD5/646be5659d98e7cef40b63b3dff86726 differ
diff --git a/data/.ExternalData/MD5/64bdbe959708265931c62b9b90df3e61 b/data/.ExternalData/MD5/64bdbe959708265931c62b9b90df3e61
new file mode 100644
index 0000000..caf5bbb
Binary files /dev/null and b/data/.ExternalData/MD5/64bdbe959708265931c62b9b90df3e61 differ
diff --git a/data/.ExternalData/MD5/6579847e807d468278a56c289eb28288 b/data/.ExternalData/MD5/6579847e807d468278a56c289eb28288
new file mode 100644
index 0000000..9e94be1
Binary files /dev/null and b/data/.ExternalData/MD5/6579847e807d468278a56c289eb28288 differ
diff --git a/data/.ExternalData/MD5/6672c754701745de1f6aced9cb16e31b b/data/.ExternalData/MD5/6672c754701745de1f6aced9cb16e31b
new file mode 100644
index 0000000..5ebd754
Binary files /dev/null and b/data/.ExternalData/MD5/6672c754701745de1f6aced9cb16e31b differ
diff --git a/data/.ExternalData/MD5/66ee861a199ef23e7a6392ca162b3da1 b/data/.ExternalData/MD5/66ee861a199ef23e7a6392ca162b3da1
new file mode 100644
index 0000000..c8c65fc
Binary files /dev/null and b/data/.ExternalData/MD5/66ee861a199ef23e7a6392ca162b3da1 differ
diff --git a/data/.ExternalData/MD5/67a71e63921eb2f08f816a51983e3ef2 b/data/.ExternalData/MD5/67a71e63921eb2f08f816a51983e3ef2
new file mode 100644
index 0000000..8922e2f
Binary files /dev/null and b/data/.ExternalData/MD5/67a71e63921eb2f08f816a51983e3ef2 differ
diff --git a/data/.ExternalData/MD5/67ff0f7e48928916bdec4f7afd5e4574 b/data/.ExternalData/MD5/67ff0f7e48928916bdec4f7afd5e4574
new file mode 100644
index 0000000..15bb016
Binary files /dev/null and b/data/.ExternalData/MD5/67ff0f7e48928916bdec4f7afd5e4574 differ
diff --git a/data/.ExternalData/MD5/68d9fb40ae60af52190f347dbecbbab7 b/data/.ExternalData/MD5/68d9fb40ae60af52190f347dbecbbab7
new file mode 100644
index 0000000..fb69c3d
Binary files /dev/null and b/data/.ExternalData/MD5/68d9fb40ae60af52190f347dbecbbab7 differ
diff --git a/data/.ExternalData/MD5/6ab6025929136899d3e3f91fe62fae15 b/data/.ExternalData/MD5/6ab6025929136899d3e3f91fe62fae15
new file mode 100644
index 0000000..83b03c0
Binary files /dev/null and b/data/.ExternalData/MD5/6ab6025929136899d3e3f91fe62fae15 differ
diff --git a/data/.ExternalData/MD5/6aff753cb0e5e8c56ad170fa4bcdc1e8 b/data/.ExternalData/MD5/6aff753cb0e5e8c56ad170fa4bcdc1e8
new file mode 100644
index 0000000..fdd2cf1
Binary files /dev/null and b/data/.ExternalData/MD5/6aff753cb0e5e8c56ad170fa4bcdc1e8 differ
diff --git a/data/.ExternalData/MD5/6ce23a65b0e176d3d1bf2ea68c2f7033 b/data/.ExternalData/MD5/6ce23a65b0e176d3d1bf2ea68c2f7033
new file mode 100644
index 0000000..f52a89c
--- /dev/null
+++ b/data/.ExternalData/MD5/6ce23a65b0e176d3d1bf2ea68c2f7033
@@ -0,0 +1,5 @@
+#Insight Transform File V1.0
+#Transform 0
+Transform: ScaleLogarithmicTransform_double_3_3
+Parameters: 0 0 0
+FixedParameters: 0 0 0
diff --git a/data/.ExternalData/MD5/6d5d80a2ea307fa15d41aaabad466751 b/data/.ExternalData/MD5/6d5d80a2ea307fa15d41aaabad466751
new file mode 100644
index 0000000..e3a5d42
Binary files /dev/null and b/data/.ExternalData/MD5/6d5d80a2ea307fa15d41aaabad466751 differ
diff --git a/data/.ExternalData/MD5/6d7b447232907ddf7b898b94b688416a b/data/.ExternalData/MD5/6d7b447232907ddf7b898b94b688416a
new file mode 100644
index 0000000..97b596c
Binary files /dev/null and b/data/.ExternalData/MD5/6d7b447232907ddf7b898b94b688416a differ
diff --git a/data/.ExternalData/MD5/6e882edcffbc57024eedd35334c0142f b/data/.ExternalData/MD5/6e882edcffbc57024eedd35334c0142f
new file mode 100644
index 0000000..7a9614e
Binary files /dev/null and b/data/.ExternalData/MD5/6e882edcffbc57024eedd35334c0142f differ
diff --git a/data/.ExternalData/MD5/6f397b22835e552c14d762e5ff73c288 b/data/.ExternalData/MD5/6f397b22835e552c14d762e5ff73c288
new file mode 100644
index 0000000..2b116af
Binary files /dev/null and b/data/.ExternalData/MD5/6f397b22835e552c14d762e5ff73c288 differ
diff --git a/data/.ExternalData/MD5/736f80072fcc908bacd2b9f640f6d5a0 b/data/.ExternalData/MD5/736f80072fcc908bacd2b9f640f6d5a0
new file mode 100644
index 0000000..9b94eaa
Binary files /dev/null and b/data/.ExternalData/MD5/736f80072fcc908bacd2b9f640f6d5a0 differ
diff --git a/data/.ExternalData/MD5/73f7d156b10ce68e871f05fab2dc6de2 b/data/.ExternalData/MD5/73f7d156b10ce68e871f05fab2dc6de2
new file mode 100644
index 0000000..d58167a
Binary files /dev/null and b/data/.ExternalData/MD5/73f7d156b10ce68e871f05fab2dc6de2 differ
diff --git a/data/.ExternalData/MD5/744f66e30e2f58b4909a583a9594becf b/data/.ExternalData/MD5/744f66e30e2f58b4909a583a9594becf
new file mode 100644
index 0000000..ff35570
--- /dev/null
+++ b/data/.ExternalData/MD5/744f66e30e2f58b4909a583a9594becf
@@ -0,0 +1,15 @@
+ObjectType = Image
+NDims = 2
+BinaryData = True
+BinaryDataByteOrderMSB = False
+CompressedData = False
+TransformMatrix = 1 0 0 1
+Offset = 0 0
+CenterOfRotation = 0 0
+ElementSpacing = 1 1
+DimSize = 181 217
+AnatomicalOrientation = ??
+ElementNumberOfChannels = 2
+ElementType = MET_DOUBLE
+ElementDataFile = LOCAL
+@����@@��{X�A@@����@@��{X�A@@����@@��{X�A@@����@@��{X�A@@����@@��{X�A@@����@@��{X�A@@����@@��{X�A@@����@@��{X�A@@����@@��{X�A@@����@@��{X�A@@����@@��{X�A@@����@@��{X�A@@����@@��{X�A@@����@@��{X�A@@����@@��{X�A@@����@@��{X�A@@����@@��{X�A@@����@@��{X�A@@����@@��{X�A@@����@@��{X�A@@����@@��{X�A@@����@@��{X�A@@����@@��{X�A@@����@@��{X�A@@����@@��{X�A@@����@@��{X�A@@����@@��{X�A@@����@@��{X�A@@����@@��{X�A@@����@@��{X�A@@����@@��{ [...]
\ No newline at end of file
diff --git a/data/.ExternalData/MD5/74e30f08e9cd6d28a9dcf26533b57aef b/data/.ExternalData/MD5/74e30f08e9cd6d28a9dcf26533b57aef
new file mode 100644
index 0000000..29d6dc8
Binary files /dev/null and b/data/.ExternalData/MD5/74e30f08e9cd6d28a9dcf26533b57aef differ
diff --git a/data/.ExternalData/MD5/757eefaf9501ba4b43c64459d705891f b/data/.ExternalData/MD5/757eefaf9501ba4b43c64459d705891f
new file mode 100644
index 0000000..c14ff14
Binary files /dev/null and b/data/.ExternalData/MD5/757eefaf9501ba4b43c64459d705891f differ
diff --git a/data/.ExternalData/MD5/75c41e20d6af0ec74e407348fabf8724 b/data/.ExternalData/MD5/75c41e20d6af0ec74e407348fabf8724
new file mode 100644
index 0000000..0de1b6d
Binary files /dev/null and b/data/.ExternalData/MD5/75c41e20d6af0ec74e407348fabf8724 differ
diff --git a/data/.ExternalData/MD5/76eef439e0eb023945d94c1bb656948e b/data/.ExternalData/MD5/76eef439e0eb023945d94c1bb656948e
new file mode 100644
index 0000000..131678f
Binary files /dev/null and b/data/.ExternalData/MD5/76eef439e0eb023945d94c1bb656948e differ
diff --git a/data/.ExternalData/MD5/779451803d29db0bf6e342010bf1b0b5 b/data/.ExternalData/MD5/779451803d29db0bf6e342010bf1b0b5
new file mode 100644
index 0000000..a06f9dc
Binary files /dev/null and b/data/.ExternalData/MD5/779451803d29db0bf6e342010bf1b0b5 differ
diff --git a/data/.ExternalData/MD5/788099cb89927e7a5039313cc8476388 b/data/.ExternalData/MD5/788099cb89927e7a5039313cc8476388
new file mode 100644
index 0000000..0d877d9
Binary files /dev/null and b/data/.ExternalData/MD5/788099cb89927e7a5039313cc8476388 differ
diff --git a/data/.ExternalData/MD5/79670de66f750e0b67432f80faf020ff b/data/.ExternalData/MD5/79670de66f750e0b67432f80faf020ff
new file mode 100644
index 0000000..b2391d9
Binary files /dev/null and b/data/.ExternalData/MD5/79670de66f750e0b67432f80faf020ff differ
diff --git a/data/.ExternalData/MD5/79987be0aa720216d2adb8c896c59a05 b/data/.ExternalData/MD5/79987be0aa720216d2adb8c896c59a05
new file mode 100644
index 0000000..26f44b7
Binary files /dev/null and b/data/.ExternalData/MD5/79987be0aa720216d2adb8c896c59a05 differ
diff --git a/data/.ExternalData/MD5/7a86f3b164dae7684d2e5c40399028fe b/data/.ExternalData/MD5/7a86f3b164dae7684d2e5c40399028fe
new file mode 100644
index 0000000..d8b2a29
Binary files /dev/null and b/data/.ExternalData/MD5/7a86f3b164dae7684d2e5c40399028fe differ
diff --git a/data/.ExternalData/MD5/7a985895c1f926118dee50aef12856ef b/data/.ExternalData/MD5/7a985895c1f926118dee50aef12856ef
new file mode 100644
index 0000000..8e06700
Binary files /dev/null and b/data/.ExternalData/MD5/7a985895c1f926118dee50aef12856ef differ
diff --git a/data/.ExternalData/MD5/7ad00981b969c430ad7247c95eaefb95 b/data/.ExternalData/MD5/7ad00981b969c430ad7247c95eaefb95
new file mode 100644
index 0000000..c48b2b2
Binary files /dev/null and b/data/.ExternalData/MD5/7ad00981b969c430ad7247c95eaefb95 differ
diff --git a/data/.ExternalData/MD5/7b2072f5318f1e8022e6253ffc65404e b/data/.ExternalData/MD5/7b2072f5318f1e8022e6253ffc65404e
new file mode 100644
index 0000000..eed5ba6
Binary files /dev/null and b/data/.ExternalData/MD5/7b2072f5318f1e8022e6253ffc65404e differ
diff --git a/data/.ExternalData/MD5/7c29e6e4ecf6135edd6a2170f6e98a5f b/data/.ExternalData/MD5/7c29e6e4ecf6135edd6a2170f6e98a5f
new file mode 100644
index 0000000..db83831
Binary files /dev/null and b/data/.ExternalData/MD5/7c29e6e4ecf6135edd6a2170f6e98a5f differ
diff --git a/data/.ExternalData/MD5/7d88b6fe5235d1d27ade4bde1f67710d b/data/.ExternalData/MD5/7d88b6fe5235d1d27ade4bde1f67710d
new file mode 100644
index 0000000..e86cd73
--- /dev/null
+++ b/data/.ExternalData/MD5/7d88b6fe5235d1d27ade4bde1f67710d
@@ -0,0 +1,748 @@
+NRRD0004
+# Complete NRRD file format specification at:
+# http://teem.sourceforge.net/nrrd/format.html
+type: double
+dimension: 2
+space dimension: 2
+sizes: 256 256
+space directions: (0.35277798771858215,0) (0,0.35277798771858215)
+kinds: domain domain
+endian: little
+encoding: raw
+space origin: (0,0)
+
+����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
�F@��U�,G@ݔ��:G at T��x�MG at r�-���G@Ѣps!H@\Ix{AH@��o_�H at 9n'Kp|I@���E��J@�����rK@ŅW�n�K@���NL@��Z��YM@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]

K@j��T�I@�N�
N�H at wm�A%SI@:b���G@�/�8�F at T��A=�E@��'�(rE@�_uE@&�$��D@���5
D@��0_�	D@�p����C@��c
+�C@�K���C@�t�D at J���XD at v�qcU�D@�~a��
E@ ���[E@�I�2��E@��&�1uF@��{M}�F@Ņ�#�RG@ڧ�=�G@���b�H@�#�C�J@�l`}K@�K�|M@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+��K@�g��ZL@��������q�M�aL@�әҳ$K@���������������������,+����K@�������_��=�oL@�ۄ�K at yP�%�L@��
�K at mdo���I@�a�:_I at y�F�I at jW%c;H at XB��]+G@�N��'F@^��.��E@�4�	��D at k�;��D@�aZ�HC@�AxB at F
�R��A@�8>��A@�&U�z�A at 9z�u��A at p�!��A@
NJ�
B at 5�tK�SB@чEQ�B@������B at 85���C@Ϫ;�\C@���ҧC at oJG ��C at K�Ac�JD@�^��¢D@��w�D@�Fǹ[E@�>K��E@��*�BRF@�
p��F@�����G@��:UI@��5��J@�v�I;M@������������������������������������������������������������������������������������������������������� [...]
+��&5K at ion�fJ@�w�)sJ@
+�@
��I at yNN_E`J@�
K{��J@,���_�I@�^��VJ at I�dtF�I at SdF
�H@ѳn�N�H at X�6Q�G@
��%gH@��� �H@�d��8XI@�6q�/�H@��Y�%H@�S�:�|I@��>�)�I at V��rQI at 2+t�
�H@�a_퐙I at O`n�:�H@٠�ؘG@�P��[�H@�n��)�G at hd/�/�F@��Ώ�F@Ѝd"kF@�w%��mE@
��XD@%��ŶiC at z��y�B@����A@��^/A@����@@R
+��ϭ@@O�����@@C��ņ�@@�p{�D�@@	DH
1A at u�Y�
+gA@����A at J����A at .Jyj
B@q��]B at Op�7_�B@
����B@}�R��*C at W��TsC@[[����C at 4�X"&	D at g1vmVD@~�&�|�D@/�, �D@*r̮LQE at 5�~��E@%.\��
F@@
ڻ��F@ג�:P7G@�v��H@�$�*�iI at s���/
L@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
��N.F at uN� ��F@�����G@/�u���E@��7�E@�œ�,�E@�+�ڊ�E@����E at 7�
/כD@�+L��D@����axE@���
��E@���-�E@���i%E@$=��F@���ek0F@��Os>�E at 5+4�h�E@٘�I}�F@���3�F@�Wa�^bD at M]�r��D@�
�C_�D@��X�`D at o��>6�C@Ϧ��\C at 0u?�!$B@?2�A at CP�X��@@�v�uZ@@׵��?@�$�,�?@�J�9��?@WY�@@�-w�
?@@�f���r@@�'�
�@@S閗N�@@e�8� A@���fw_A at G��;�A at 3��G��A at m
��%B@��/*iB@���tg�B@�v>��B@�ќ<C@��{o��C@���>(�C at XC�5cD@
<��k_D@%�A��D at O�4�`�D@�[��IE at V��F�E@�L��8�E@���UF@������F@�1��GG at r���e�G@����I at F��u�J at J��/M@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+�B@��;m�A at PZ��@B@=�8
��A@��-�dA@"\��&A@�);R��A at 1X�W"
B@
+�!�{B@��A�P�B@��ى�%B@��P'QjC@���߽B at Fb��ұB@;+�nÞB@�;w�vC@���`XC@�W!i�bA at Qџ
�IA@���9�{A@�<���2A at B#F��@@
+���Ȣ?@!44�>@-��I>@�K��v�=@���
�>@��ٞW>@?y5���>@�6�JP?@o�x�
|?@�چ
��?@��c�$1@@��53�l@@��4(X�@@ۂ,�&�@@rt�hg(A at q5t^jA@�(R^h�A@ߢGd$�A@�d�5B@��/�V|B@��S�:�B at B���
C@��\FUC at K$�Y�C@
+����C at .	e�W6D@���D@�:�O�D@
����
E at ld���lE@�U^�4�E@�!���F@!
acF@�0Ň�F at V�L��G@�[CǙtG at I�5���G at M��%�H@q���HJ@�D���L@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
:�=@�ߵ�h>@wO��=@��9?@xbnk�>@��5�"�>@vVh�<>?@'���R�?@S��ۗ>@gUT
��<@X�-`&<@��K�<@�%k<@|t1,�3<@
�|�'<@NȨ)=<@��4�v<@���a�<@���}3=@D��D�=@��\y>@����ވ>@���¼�>@_ W)�q?@Pf�
�?@S.b
�1@@
��\5p@@�b�8�@@?0�r+�@@�+w�H6A@��w�zA@�&��W�A at Iڐs(B at 1U�C KB@���[�B at h��B@�}�o<&C@��,ؔqC@�!�4�C@^ֻ/�
+D@�J�FXD@
X�6�D@��&���D@'u�s�FE@`�wL��E@�
vUL�E@�
+���1F@��o�tyF@��BS�F@��G�u�F at Ma���;G@��ڽ*�G@��
m�G@�
��H at 7���SJ@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+��~B@���Wi@@-h��]}=@���A~;@�O��=@C	��wr9 at -?��XB6@��,R�4 at G��~��3@%
���]3 at 8��$�
3@��N,\
+3@ʗ�i ,3@��G�
U3@�.B���3@�.V7M�3@����t4 at GWj�T4@�u���4@ʾ"/�4 at R�n
�&5 at N�8e�p5 at l�p�b�5@�!�6 at F_���e6@�K�Al�6@�&�Ĭ 7@��q7 at cr�t�7 at hJh�8 at h{I�Wb8@�8�L�8 at TZV{949@��8�@�9 at q�O�v&:@^R
^��:@	��#-;@�����;@
`I��2<@��p�<@�H�X =@G�{A�=@+��>@�PX�e�>@��sz�?@A�~�	�?@�a��	@@���N@@�S]��@@�
+°�@@nk� �#A@��E.�kA@�(x�ʴA at aa��m�A@(���IB@���&U�B@����[�B@�4���'C at v���qC@���8�C@�@�D@@
N�TD@�
+hL�D at Z��%=�D at D��9a=E at 6�v��E at Gր�^�E@�7<�F@�M��o2F@	�`F@�x�g�F@[n4ƀ�F at mC6���F@)M`?�9G@Ə�f1�G@%�頝�G@��l��H@���ˇJ@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+�!��3@5�Έ�2@����1@����1 at B�
k7�1@�]m0_�1 at m���9�1 at c-]
�1 at y�2RW.2@�H>�rr2@���]y�2@��E��3 at Q�ܛ+L3@Ğ*Mя3 at C �z��3@ �$��4 at 9X~��W4@�
���4@�����4@�
UwV95@���͉5@��+���5@�Lj@6@��ݧ��6 at W7�3
�6@��3��_7 at 7����7@��dӯ58@���Up�8 at dj%$19@�/�#�9@�`b�9:@�(��:@�&͢�>;@��'Q��;@�죗�-<@
om/<�<@�&��==@��{�(�=@
]RD>@�?�%�>@�-m��,?@u��#��?@Z���� @@���
i@@��%��@@R��y��@@D;�$FA@��x�A at S��d��A@�u�DB'B@���o�qB@?HQ�B�B at 2{s	�C@�
��TQC@��}���C@
+�%X��C@�
+�qc1D@�_9f{D@?�(�D@��ψE at n��>6HE@��vL�E@39'�E at IIi��E@�Y�vOF at jx���@F at o{�\ZuF@��!���F@��
�F@��O
�/G@�u��yG@��Б�G@��\JH at O�L1�5I at G��
 �K@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+ZՑL@�1�u
{J@��=fH at 6���QD at k��Z A@� ��n
B at GU�K�>@P�����8 at K�mB��4 at m�>��
2@�4*-k1@�����0@�J���q0@���th0@����x0@=�<J�0 at j�Œi�0@�p����0@�H8Z�>1 at A��ṅ1@�\n.
�1 at Z;~o�2@!`) �f2@�/��2@��d �2@�K���/3@�o�r3 at I�G~n�3@���~4@�Z@��O4@!�=�	�4@�\g�b�4@�
�lsN5@?o
-m�5@���6@����-o6@�G�bh�6 at 6
�]E7@\��7@�\��58@��E!b�8@�W_+�F9@�Ԕ{��9@����G:@ᙤ�a�:@o���<?;@�n��
�;@}y|��*<@��
���<@s�i��-=@]��9H�=@ò�͒B>@��Z"��>@��'gX?@�҈G��?@����=@@}T��|�@@��͓��@@i&LA@����
+kA@�>"�A at K
 t�B@;�f��NB@͛���B@
��Ry�B@���1C@�4"`|C at d�P���C at Y;5�D@
��XD at Q�W
+Q�D at j�
��D@
g��
E@�hF�;E at zu��tfE@�A��ՐE@�y�x%�E@~��	��E at n_	�*F@>��G`fF at w�8g�F@�6ҰW�F@�,y�+G at _�0�nG@�Ls�#�G@�D��%H at J�$Eu�H@
���=J@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
+4@�=�l_4@�Z�3�4@�ċL�
5@�Sݥ�~5@�v����5@��-P6@� &x��6@�*���>7@T^ڷ�7@!����O8 at 8\���8@�
<�T9 at o9�&��9 at c�?qN:@�Zf�:@]5��89;@��Cv�;@�=�6=<@V���<@ �Y�<T=@Սh�H�=@0X��p>@zZ
��>@#�or�?@*�Zlc@@�n���]@@��HX�@@�I����@@��� EDA@\�����A@$�1�A@���o$,B@�z�|zB at _H�Vk�B@�(
�NC@�UFV^C@�:���C@[�����C@ڠ�ɯ;D@[���\}D@��D@����D@ V_�#
E at i{�Kb3E@�I��{[E at WOs��E@�!jt(�E at o�
+���E@�W��9 F@����bF@ yYt��F@� r
+�F@\\�˳+G@\��̐mG@ݬ��G@�G��H at t�ٸ?�H@։�8�I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+B�G@�fǣ��D@���C@�̽�7�A at C	��-�;@dj��C�4@;��ǘ�1@
{>X/�/@�x�*�P.@��ݞ�-@�֪Ծ�- at J{��-@�dL,��-@�+��f�- at Mrg
�-@~J�E�/. at L�r؂. at n�b5�. at Wӗ��^/@
+�W7��/@W�'�C0@��F�R�0@�ӳ�0@߽���%1@�}���g1@�䡤�1 at 1B�r
�1@�n�Zw+2@�N
Ey2@�
+���2@̚t@�!3@�x,�v3@�\<���3@`S �J-4@�a�3c�4 at P.薆�4@�"��_5 at X��x��5@�"�E[F6@'•�6@�GԬ�P7@��9��7@ {?ėY8@
+wXN��8@����$Z9@�"����9 at 1�EUuM:@����:@-w?v�N;@�
e�6�;@I��`�k<@�ϏI��<@`���e�=@m?f��>@ ����>@q�1�D?@�X���?@�""��9@@��s�@@������@@�)���"A@!&ۂfpA at b����A at H$���
B@�<9N
\B@
"�T�B at 5�&@��B at T(���BC@�*ޝ��C@�d����C@Ƙ�<'#D@��^hD@�HT)j�D@���_�D@�����D@җ��

E@�-2¸FE@�����oE@��k
_�E at p	�;�E@ �3��E at E���'F@���hF@��A�F@ i����F@�l�T^4G@[���|G@෢���G at 9S��(#H@�
;�ɝH@��<uZI@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+t�ZD@��Ϩ�
B@�?:�5j>@zB��9@���÷
+5 at ya�,_�/@/�&�O�-@���?2�,@|h��$L,@�?�
&,@��/�3,@�t��(, at F9ħD,@��:�],@ǰ���, at 9�kb�,@]���$-@�ן��-@�]�u.@ufjB�.@
�
?I/@64���/@���i>0@�A��M�0@�T����0 at 9��+1 at c����G1@�Ȉ2��1@}��}�1@�pţ�32@��A�2@�����2 at X�lb&;3 at b䋨��3@�t+�4@���1'l4 at u�팵�4 at S�y�N5@���Ջ�5@��!R6 at Zg
���6 at w2�R3\7 at L�!>`�7@�x_�g8@�0����8@\�9B�_9@��C��9 at q�đRb:@h[[��:@����d;@ >�m�<@Y���g�<@r\*Ь6=@����t�=@4j�Cc>@Rٍ�>�>@֩�I��?@u���x@@�`E\�d@@�@���@@�B�QA@Ǭ�~WQA@�}�ĥ�A@ۍ�z�A at b�%�>B@���q�B at 251��B@��M$�)C@@_9pw [...]
D at n��`2XD@!_GQ�D@�b�6�D@�0�>��D@��G�
+E@e5�3E@��5��]E@��\TU�E@��󦈱E@��N��E at A��i�F at v��8F@
lg�DuF@��V���F at 8�!�:G@��ZPMG at W�&�3�G@ ���G at 77C� >H@%��hQ�H at i���9I@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
g��;@��[��A8@��qX0�0@�o+n-@α
޴�+ at tU#��D+@��~VE�*@�M���*@��G�*@�<���*@e¤�Ի*@
ee�=�*@
�lK��*@�;y�<
+ at RUb/y+@�,���+ at s��ԙ[,@^t�a�,@����s- at K8��!.@��Z�.@�;�?/@U�����/@ȯL�B(0@ �6�~k0@���Ϭ0@��JQ��0 at c�HfL1 at O7�M��1@���8��1@}���P2 at B��?X�2@��kR3@,�~T�y3@�Ux��3@[��X]X4@��sNP�4 at 4���U5@��{�?�5@����#a6@?����6@[@P?s7@�!���7@
P7�qt8@�w�՝�8 at o5�
�w9@�C��q:@���
��:@;�H}�';@f@��
�;@����)Q<@0e�yV�<@f�Xì}=@�&ߪR>@$����>@1��I?@6D!� �?@H�I��C@@=
	`��@@�lf��@@��� >1A@��@�@�A@�� ��A@"�F% B at pɬb�pB at J ��B@��X.�C at .hh
�^C@
�< ��C at -%�Q��C@"����BD at j��<�{D at tڼ�x�D@@}����D@�"���D@�X ��!E@G&��KE at U6�vE@
<�I}�E@ �+8�E@�
����E@�
2g� F at L�b�NF@�Öd�F at v�}>��F@�)a>L!G@M]�`oG@�$����G@
Ң�/H@>Qn�eH at n
�E^�H@�;��2I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
���
a at _6�ֵ;G@ݱ_�?@񕣌�x<@��Ռ4@��X�7`/@7�
���+ at b;
V_�*@,U[��
*@��SQ=�)@p��N��)@� @O>�)@�k�i5h)@�coA)@��~�E)@�'�e�b)@<�7�C�)@�ֱ�D�)@�Ӹ�Z0*@��v�*@�5��&+ at I�I��+@˒<1@,@�n~U�, at 7�
��q-@�Ar#+�-@����V�.@�p�%E/@��o�/@&kq8�0 at NU��a0 at kmKӹ0@��jJ1@~pТ�e1 at i��h�1 at H�
�.$2 at By0�2@@�bb��2 at 3M�$e3@��Q��3@��lsP_4@�
���4@�+y+�f5@
*q�g�5 at y�Z�z6 at 7'�cv7@���Y�7 at z�=�N
+8@
�/޸�8@�)mj9@Ke���9 at g�>�#<:@U%��:@֘�
h;@'h���;@�j�5�<@�q���.=@=�e���=@��0�e>@]#�?@g� �'�?@��f4#@@�:��t@@mMz�^�@@��

_A@U��cA@^����A at y�zh+B@��V�$TB@�
�7��B at r�@��B@��e>FC@ݧ
+��C@��|z��C at J#6
�,D at oEƋfgD at cq��x�D@hKDZ�D@�f�.�D@	S�L�E@�M��-;E@���3 fE at h�f
�E@����E at H��
�E@?g\�1F@
��
�=F@�TRoF at oH� ��F@�t�� G@��pEPG at 6g�7R�G@,�ʸ�G at +�`,|GH@(
L<�H at 5����H at A$��o]I@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
9�oA�-@�
bV�*@�?H10�)@:��rI	)@�仼�(@�����i(@u�N��+(@rf�
(@�&�Ɖ�'@f	i.��'@N"Z���'@)��I(@��r4(@����[�(@\��<f�(@[�DJd)@�܍d��)@���ߏi*@N���?+ at h�񷩖+@���$,@�v��,@���B- at K�4���-@���f.@��:Y�.@�:�f��/@zF}��&0 at RU���|0@�)Ƣ�0@�
�o�41 at B�-�*�1@�6�%�2@��#}v2@����2@�ũ�vg3 at u�kD)�3@���f�m4@�2����4@���*?�5@�{�z6@��j�Z�6@��Xc7@��.u�7@��ae*8 at QR�M��8 at g��
�N9@�
�5��9@�"W�
~:@�Ɲ�;@W+�;��;@[)�p�I<@M�y?��<@8'u��=@l.�
5#>@=�]n�>@�;4�Ia?@��V!�@@x�b�T@@]�2���@@�T�|��@@�9�GA@�z3�A�A@��.� [...]
�*@��j�n+@����,@����)�,@�o��x2-@��SM��-@�*Ǟ�n.@�;kO'/@�k!��/@%	�
�H0@�����0 at h@5�K1 at z�Iن1@��u��1 at K�m��r2 at y�ha!�2@�Yeh�v3 at T���U�3 at B�����4@J�?5 at V��&�5@��`�/6@�)
m�6 at WNVE, at 7@�r׃$�7@��V?d8@=�-��8@�[��9@�Ʉ��.:@,�M�:@�

ʌf;@أ�=�<@���Q
�<@�qӏsD=@sPa
-�=@EN.���>@�l��/"?@�
���?@ɨ���4@@!�'�Ά@@��h<B�@@���X*A@
�>|A@
|���A at ew�� B at P���OrB at v�Qu6�B@؜f��C@�y� )hC@�Jy�5�C@��]7D@��:�mDD@Ճ~�rD@-RĜD@���>��D@��%��D at 6��
E@���bIE@�m���tE@/����E@	�o�E@� tK�E@N/�9%F@؜�<TYF@�_I���F@`���F@�ͺw4/G at 72Y
�G@
�J2"�G@�Ev�a%H@,��z8xH@]*��&�H@��<�$I@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+��$@��ɼ��$@~����
%@+�'
;R%@?�n��%@�����%@�
�~pF&@.��i�&@���"�,'@J�9��'@�r4]�O(@���>u�(@{��pƇ)@�:��+*@B,U��*@Zg��_j+@��`@,@��ێ>�, at 6c��N-@"LG��.@��ѽ.@G�$؃/@�wHI�,0@~3���0 at bbNG�
+1@�}�rH�1@�͡���1@
	%Ֆ�2@'�V��3@���3 at r��:4@{ԣI�4 at o��c�<5@�^�z��5 at i�<�~Y6@����<�6@@��	�}7 at 7�g4�8@��wEi�8@bgI9@�y�<�9@#FЈm�:@�<��b ;@M���y�;@�ZpN
+_<@|tM ��<@t,��F�=@�1垕B>@T�'���>@p>p�`�?@ʝ؎�@@�˩�g@@$?
+�@@d���
A@��!+`A at 1�@�b�A@T�t�B@�o)�GYB@�(yA�B at 8���2�B@�پ.PC@pI>7�C@Oレ�C@(�
 2D@����bD@��G���D@���`�D@�>�	�D at _G��E@�ɵ̓<E@����hE@�zr���E at Qjի��E@�j
1��E@
k�T� F@��t��ZF@Y�T�F at H�8���F@����0G at nR�H9�G@�.��G at y:�>�*H at 9�#6�|H at Q]ztU�H@���a$I@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+�a$@�.R���#@��p-��#@����ҡ#@���Cd�#@�6�U�#@薐�Ӿ#@9�\A3�#@�aI��/$@}���҈$@��&��$@X�M%@=d<� �%@ںIlb&@!�
!��&@� �ڢ�'@*���J>(@��:.�(@
 O���)@�05j�3*@�"d��*@��i��+ at 4N 1,@>~:_�, at 7A��˪-@ ؃�*z.@�M1X/@�b�w�
0@�����0 at b��7�
1@������1@ʻ��n2 at +-��k�2@�#0 �#3@�Ab��3@��\�H4@�2n�a�4@��B9r5@��M8�6@���.!�6 at z|��].7@�
�
+�7@�b���c8 at T�� 9@��ۜ9@
���::@�k�Fb�:@�̌{;@΅g��<@ۚ�'�<@"���_=@%�
+�>@��,5-�>@��k�K?@j]p`��?@�^V0I@@���Y��@@�e|�
�@@�I��>DA@���9�A@
����A at k�Q.�@B at h�3���B@�Q�a�B at 2
�|7C@�`(��C@�m���C@��Pu� D@��	�UD@������D at Oj��۬D@�|����D@^͆��E at i�Ѣ1E@�tg�X]E@Z�뺉E at iG.
z�E@
����E@���=�$F at s0�gF@<�iʬF at 3�w�F@�_�5AG@�`"�’G at Z��G@���7H@�@s�n�H at P6����H at A6;g.I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
�$@/+A� 9%@�B��J�%@E�)mg&@��
�� '@�/���'@-��MuW(@c�� )@ÿ����)@�4�o^*@�� j�+@�]}8��+@�ߌ���, at q�
+J�t-@~|�KuX. at G���D/@;��0@��\��0@�}5#�1@;G��Q�1@�
s�
12 at +
I�"�2 at 8N:r�T3 at f9�(��3@�t�
+�4@���ҕ
5 at c��>�5@
g[eA6@������6@���pBx7@����U8@���ݵ8 at p
Q��S9 at Iك���9@�X*�:@��͉:;@�"�d�;@��U}<@�ÔW� =@
hMl��=@��k0Ej>@����?@>x��ų?@�Vȯ-@@�VtEӀ@@	X����@@;�1�*A@�
 @�A@
J�F�A@����(B at ANs|B@[yێ�B@��p!C@��r�rC@
�c)1�C@�>O�{D@�T��HD@��ſuD at ff	6
�D@;s����D@�pA� �D@*H똻'E@�-_TE@`�-j�E@��ضi�E@"
�$��E@�����6F@����*�F at w�w���F at RD�K�G@�8|97]G at oL���G@�_ma�G@`s��PH@��5ۢH@\�W��H@�>C��DI@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
��%@@�El��$@��
�#@�d*4l�"@�3�Ҩ&"@��^ى�!@��hk@!@�h�� @�~O^� @�[��� @ QN`t� @G)�N�B!@�����!@ē4+�"@�����"@�W_�� #@�@݋��#@qk�
$@/��% �$@���%@S�[��%@�V�G�#&@F���&@)S�*�_'@�,�n^ (@b�H���(@
+��R)@}��=q*@�W�2z�*@|�‚��+ at BZWCt,@ɓ��6a-@���'�U. at o��<iO/@ǚ���+0@뀁H2�0@]�3�v;1@/%_h�1@;?r^2@^U���2@�}Su�3@
���34 at R}0��4@���v^5 at r苫��5@��A|�6 at M����17@��q���7@�$9�s8 at k��T9@�����9@���
V:@,�
���:@2OnM�;@�,3@<@�%�M�<@��Z��=@=eQ�g0>@lt���>@/�
��?@pT��@@�-kh@@4SM
��@@�;�,�A@)��wfA@$��3t�A@`
+zB@�g�)�fB at z����B@���vwC@���_C@�����C at x��~@�C@�Y;G?D@���lD@���Թ�D@Ğ�<��D at 9�꡶�D at v�>g� E@��=�ME at o�W_�zE@�Z�a&�E@۸�
� F@@�u)OF@
�oћF@U$Ҥ�F@���7�1G@`���{G@�+�3��G@�7�V:H@
��,ymH@�E
�t�H@���pI@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
+4TH@�I����E at TʴM�QC at x�rx�A@��k��<@�T�C�"8@�@w��,4@�U��o5.@��
l4�(@�^�1
#'@-="�&@֨�ա&@pk;��;%@�h�!�#@�bg�^"@#��˜�!@�)`͵� @��t�W @4����@B
�q�@@n���(@ޠ>���@?ʜ�+ @b:~� @3��
!@Jߡq|!@��X���!@��
+e~"@7�Q�#@x]�.��#@i�
�$@��xݕ$@�RI��
%@����{�%@�q;�9&@��v�&@
�J6 h'@.p�6�(@�U)�ţ(@��q�F)@u���)@ϰ/��*@�����+@³�g)v, at ro=��u-@�z�0r.@��
`/@ �7��M0@��"���0 at q��Lk1@`�}�2 at Ok=}��2@]h��6H3@�u��@�3 at 4f��
�4@̫��5@'���%�5@�]ՊJN6 at k��H��6@�OW���7@ΜU_@/8 at cT�R��8@��(�at9@�,J0:@E
���:@�$�a;@�z�f�<@n:��_�<@���R=@�\S�=@K�(��>@)P���P?@SI>K��?@�j��P@@���Jq�@@�"� �@@����
+QA@���h3�A at a0 P_�A at E;�@NRB@�Xĭ��B@�ş��B@}
��NC@���3�C@���?�C@# 7�6D@�
ݻ�gD@� ��n�D@�l�@�D@�
�D@Ӭ�k%E@�\�HYHE@'ŏ�{E@{J/��E@"o�lF at M'bF@����F at vb8l)�F@��EihKG@�HC��G@wl9��G@�\"Cb2H@�S�]'�H@�-�+��H@���w9I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
+YK%@זB�Ej%@��x=}$@c�’/�"@G��d�C!@PTsxH @�P���6@V��l1
@�t2�>
@[����2
@��6F1�
@�
ܲSM
@��X�
@��Ţ @�>��~ @^�� @a ]xt!@�/#�"@k���"@FI��7#@�eEo�#@$�D	`$@0�
�$@��GҪ5%@����%@��A�g&@;���E'@��s��'@H���MM(@r�R,�(@%�P�>�)@X��A*@uz��6�*@DY���+@���>�,@~���6�- at Q�
��. at d�-��/@�nj�̀0@�]+��1@#e����1@�G�
5Y2@)�G�2@�k�Y�3@����v64@�@˹i�4@���B%l5 at +�V��
6@��*]�6@���LQ7@�p�5��7 at 7��
~�8 at r26�@9 at jY���9@�rLш:@&7�J2;@�k�n�;@1*
�(<@
}��'=@�K����=@�
�\�}>@�?*�(?@�ڍ<��?@j(��>@@g�`wg�@@�G����@@"�#|*@A at A
R�͕A@׹y��A@�
���AB@BԽ��B at L��D�B at T���@C@��F ��C@�ֆ2��C@�y*Y�-D@���wRaD@��*���D@�:����D at 9�,*��D@��E=�E@�H��
CE@�����}E at C%#a�E@
����
F@�%��~pF@,��"&�F at N�~5�G at g&�%^G@��E��G at 9, at -B�G@��X�RHH@��2<H�H@!����H@�p��)SI@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
%�!@�
�1�"@�)vXf#@�!GbR�#@��h
.$@):��g�$@����h%@F7��
+&@�pfmׯ&@�LbDMV'@�0�,��'@=A�Wf�(@��1��T)@�{�=*@�
/�*@�8�`^+@���n�,@!
u�	�,@�V�- at h�_}�
/@���.)0@Ĉْ�0@C3�h1@�s�[�2@��]��2 at c K�RZ3 at l�
�s�3@��%�f�4 at DIL�.5 at g�Tl��5 at f�o�s6 at s��ø7 at T����7@�ϴ�i8@��X�9@����9@�Y��\:@�T���;@
+~���;@�>>�[<@
+1;�=@�j�L��=@Z�]�t_>@���zO
?@䦞z4�?@Ns|#3@@4뗉@@u`�Be�@@�7�|�3A@�����A at p�&���A@�&G��3B@
-���B@��,p+�B@�3+3C at U����C at p'��l�C@�Ӿ�)D at e��#�^D@>���D@ķ�:j�D@�a�F�D at A��ME@"��T�@E@fᅄE@
*1���E@�Rh� )F@–�V|F@{8|�F@���bd
G at 0���nG@�e[{�G@�-
��
H@�
aIfZH@�l^�άH@ӷ��*I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
nr.@~�H��'@���B��$@��%)]#@TI)��"@6�
�!@��_��!@Tq�n7"@Sv��c@!@"N����
@��Dd3�@�_��4@L\
���@{���
+@��Q|j@i
t��@T���@G�C��
@ɴ�u��
@K�vC��
@�|�|V�@�?>0'< @���	ؾ @�Q�LM!@@#� p�!@�k�}�"@�b-�!#@�k�n��#@���bj$@0m4��%@WOx�%@|����c&@kt%1'@�͂��'@8ĉ	k(@��ӓ�)@ l��
�)@
�N}*@�
/�	/+@}��o�+ at b�w}c�, at T"Y�p- at 4�kQ��.@�<3k�/@��G��|0 at -�M�E&1@v�l��1@���&ez2@�O0�� 3@DŽ�n��3@�/��`4@�Ʀ>| 5@������5@�~)�)E6@�B�R�6 at h��y��7@�;kI�?8@
=@E��8@�"��'�9@
7B�;:@��"�:@���ݑ;@�8H�=<@�C���<@.:�[�=@#�冄G>@@_����>@F\~�١?@�Uf�#(@@�=b��}@@�����@@h�˓t(A@�h
+�}A@���q��A@���J�&B@([�8�{B@�14,�B@�A�]$C@:���yC@%��,��C at n��e}D@�?>�XD@�_���D@�B�i�D at o
xE#�D@	�l�	
E at 9���?E@�4����E@���Ѯ�E@{�I�1F@�ݙX�F at 1X��x�F at _�5�j(G@�M�K�yG@%�c��G@����H@ɦ��iH@����H@�=$%I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
+�@q�$
@�qج@8갱�`@����x5@�*�p(
@�v���7
@i�N��=
@
�Dp�X@���*B @�yD�A� @�v�!@e<�gC$"@}ߍ���"@㊃��s#@7�!�
$@��/Rp�$@#��̶w%@C��%&@��lH�&@�`�:W�'@&#c�;(@#c=G�(@
#c��)@����;Z*@���;�+@��ʌz�+@����x,@���&.- at 4����.@=b��>/@R"�`jE0@� #<��0@���n�1@��]��H2@�����2 at oFQ��3@)��I2<4@L�Ⱦ�4@�	��d�5@�С�'6@�\���6@���Ry7 at B\·� 8@
9�
�8 at y骐
{9@��t2�':@U�R
�:@��[��{;@D�d�B(<@M�����<@��y��=@�3S�1>@VQ��4�>@��%�Ќ?@t�91
@@��r@@�	GN��@@�L���
A@�Y"�FsA at H�0�A@�h�N7B@�<�toB@Ĝ�
�B@��[��C at f� [...]
+����RD at 4���D@�͛���D@���u��D@����=E@�'�DE@ߵR
�E at U�2��E@�ͦ�L8F@� �8T�F@���,6�F at V�B��.G at U#nJ€G@��k��G@�
��2#H@"�.�4uH@i�c)�H@���hI@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+�^!@��q_n @���g�@�"����
@`�=pp�
@k.͖sJ
@��F���@6Y+��@B�ۇ�@�„�	�@E�8��@@l!��p�@C��hOG@'B�P�	@��S�B�@�u��:�@���S
@�56
@[��#�t
@0o�r
�@ZU
�^� @��;�,!@��y���!@Z�X�U�"@�)<�3#@�x��#@����$@Zr�D%@0��J�%@ ���&@�n]`�c'@�`w((@�ck,��(@F�1�9�)@]��]6�*@{-烌+@���$?,@
�Ί6�, at t�'�|-@E�М..@=��'/@��@�30@
ʗ�5�0@��F�1@��1�32@���*U�2@�N�n�3@��xy+4@�9`���4@��lLs5@�m?�-6@�� yF�6@�;�i_j7 at n��Zx8@M���8@	M�˅k9 at 4���:@�IZ���:@%�d�m;@�(�m�<@`q˥�<@���r=@���C!>@���k�>@�3C�{?@�䆶\@@;:
�i@@h�!�;�@@�ڶ†A@���tkA@�8��
�A@����B@̦��fB@˳W��B@/�J��
C@]��w�dC at YWۺ-�C@�wJ�D@�5��OUD at D�G㋂D@��~xK�D@\ar�
�D@�YE@����YE@;�;/U�E at B?m�E at c�
y�LF at 2�|�x�F@�#���F@�>��AG@�P�
�G@#����G at w���R3H@�@^y6�H@,�

�H@�jBr\)I@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
͎q��@	���@@H
l�4�@գ��U@ې�n�@,�	�@N���O�@h�k�X@~�
�@��
���@�:���@F*h�X�@��u.�&@'��q
@5ENb��
@k��/�
@,����< @���,�� @�MĤ1�!@�`��P"@(�XC#@�M��j�#@��r�g$@�ܞJR%@G�=�%@3XLa��&@[��<�'@�$UU0)@�|���N*@��J��+@���n-@�<�Y. at z�$�.@��6�J. at J�D�E. at 7��v�.@��E1�q/@*ay|?0@۫W�#�0@�<�Қ1@��di�J2@�^���2 at I���3@����NF4@����4@����~�5@���*
*6@���UV�6@��+�y7@��NJ 8 at 0GF0
�8@�5�ap9@?�VD�:@`7 z�:@��\�r;@l"�^
<@��	;+�<@?�ܩCw=@�'�c$>@]����>@�nS�]}?@"��@@�NR�i@@}s��{�@@�|M��A@�T��kA@<��A at 7�3NB@�tc�ZeB@(�#g�B@�h;>
C@ ��@�aC at t�uM
�C@��BD@�����ND@���|D@��T�>�D@�>qe�D at y[��-E@��@J{E at N�םW�E at m~F@��{_�kF@#���F@/Ǝ��	G@�DEZG at il����G@�%*�"�G@��4z�GH at D{�b�H@��H at P���<I@��������������������������������������������������������������������������������������������������������������������������� [...]
gt�@cH�.O0@,��&@�(ܟ�y@f�
��@�0\�@h�G7�@�7��o�@�d��@v���"p@�"˭��@�p:^�F
@�p: &�
@S8
Q�
 @?�T)�� @:�Tz^w!@A�T��+"@8���
+�"@3���#@:��EIK$@�U� %@=?����%@�Z
��
'@�N at 0
*@R���.@@�
�B0@���Lj�1@��O=3 at d(n�>�4@���63 at cJ�_P1@@գ��/@�Mꖶ�/@�ڜ&��/@c�
+�e0@��D�'1 at q1�9��1@�Es_2@����3 at eN#���3@�f�P�m4@�3��5@��ٲ~�5@&Į; O6@��q�f�6 at X�̅�7@�8j?8@�.�/��8 at 5y��d�9@�E3��/:@/���:@8�A�̀;@`�3�)<@�yB�<@���z�=@�@��,>@?��{��>@~�j�M�?@�d�
�@@Eo��m@@�U��_�@@F#(Z�A@�ֈ��iA@� ���A@�Ww��B@�Fz)�fB@
��q�B@$��kC@k��	jC@�Xb��C@�b��3D@�Ph5QD@J�>O~D at X�1�Y�D@�K��O�D@�HHE@��H�ٚE@ǩ�!�E at wWQe;F at Y��#p�F@^3 H��F at O����%G at _K��tG at e�H�g�G at L�K*%H@:�(RH`H@�H5���H at YӊB)�H at IA��hQI@���������������������������������������������������������� [...]
�U�]H@����F@@Ł�kC at H{p��$?@�����a:@�B�f5@:h��	�. at .�4�T&@ܩ�'�d#@J�~�!@��R8�� @�BCm}r@�lVQ�>
@�m�b;@r��U�4@�[��U@�B�f:@�,�!d@ˑʴYU@_�Yn�&@�F%VU�@,U��@G
Ѵ@O%/H�@"<N�܇@��,�H�@�df�	�@��k@��6P�%@��&D��@�a��%�
@�l�� @�Ja?T @�l#p"!@p�^"w�!@�)�0�"@������#@��]d5$@�b�l�$@��t�x%@�&�25&@�CL�ʴ'@ʑѼ��,@�}���3@�L��jd5 at g
+�H7 at a�,j�7 at i_�ԕ�:@=�đx�7@�X��|5@�4��2 at .-oR�0@C
�v0@}Ȩq·0@�@r�-1@TZ �1@�ki���2@�"	�k53 at +��$��3@~G���4@�z�x:5@�����5@cf�F|6@�!5��
7@&�Cp��7 at M�
��a8 at 3�\ވ9 at Z�Z���9@�U��P:@�Za��:@�勨�;@��CF<@�4���<@�:ITޚ=@%/�/#F>@I����>@��Ѷך?@��6�!@@�X�f�t@@
#��_�@@���kA@��z%�jA@�C���A@}�ĶMB@����
+mB@d2cp�B@���F1C@�Ի�RoC@�@fKi�C@ޞwyXD at +c��=PD at mF���~D@�v��ɱD@Ĭwd��D@�9j,�QE at d�
*�E@��e�[�E@3{RF at m
��F@�VG��F@���j�BG@���'�G@=24#�G@}��#P.H@��0~H at 6��s��H@����
I@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+$�@|�
���@gp|IS@�A�ZA�@��3p@��/��*@,�MT@���'�@@��1�f@]��l.c@���b��@NA[Ku@��hVQ�@|;��@�Ǹ��(
@;ɩ`�@-O)�g @�����9!@���^"@^��ٽ�"@J�d���#@?ԋ�ȏ$@��Jf�K%@�*8�5�%@��v&@�_�	'@Š5Q{r(@�=K>2l, at V΅)a26@���5�9 at Ae��<@��,�F>@�V��{v?@�
�Li<@�6���X9@�� 6,6@\�4���2@����1@
Ej81 at a4�Y�1@����
2@���0�2@��t�1^3@���}4@��%��4@l[l5 at V).Q	
6 at s�Ⱞ6 at E�Y��T7@�
���7@ә���8@
���69@���/�9@]���z:@3�Y";@a�Ǿ;@'?�w0d<@�&/cI
=@f�-��=@��xS�Z>@�	��:?@�>J���?@V(׌�&@@`���x@@��� �@@��/�+A@4L{�nA at H��q;�A@�)���
B@����bxB@~t/Xc�B@��tV�'C@�8�i�zC@�L�	�C@~Cd�M!D@/���VD at 9-�΃D@��ޫ�D@�.����D@	�q��JE at b�E@��̧�E@s|ЭFF at F���(�F@Y"���F@ݎ;nBG@�W�
��G@2J
A�G@�S>H at XյYՒH@��j��H@��'�v<I@�������������������������������������������������������������������������������������������������������������������������������� [...]
R,P��@�(��`@����� @w�D�`@e���$@���r67@W�/��P@A�tΑn@
�ENń
@��僷�
@W9�6�Q @�Ȏ>�[!@Lr���q"@�܍�5�#@�pr1��$@�����%@YF���\&@�qt��'@c_y$U�'@ �.te&(@�Ҟ��3)@�P\�F�+ at 1e���
2 at FL��>6 at G�|ʹ�;@#��ʝ-@@�(H4�A@,�X�`A at g���>@W=���.<@�x�6��8 at Z]���$4 at rqbJ>2@"tˠ�2 at a���`2@��!Ky�2 at A��dޞ3@���BK4@�����4@�����5@
_X9�F6 at 8�1T��6 at XFi��7@'����78@V�'��8 at O{�$ww9@'ˍnv:@;�Ō=�:@�x���M;@v	�
!�;@��4e�<@�j�)=@�K.��=@�Z#�p>@i"t�
?@�/��Ĵ?@���NZ+@@����{@@砇�@@���"A@�O5fyA@�� �A�A@�EM�,B@�fJ�B@�|��B@��5�2C@��z�{�C@�)ߋ�C@��S"D@yNRD@��uD@,����D at ANZ�q�D@�>�Y�9E@���
��E at e`D6��E@�G8F@��zSk�F@�l�Y��F@���ߢ7G@���o
+�G@$�� ��G@�.�2H@�z��x�H@��/\��H@
�ė.1I@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
@l���#p
@k<�|�
@{��
@���e�@Tqrl@A
*Y�5@%��@�A��-�@���&��@�\t���@=E���
@��
�@���q~� @����!@���[\�"@��:�#@h�U���$@�o�
�
&@�1�TG'@��P�q(@�0���')@�����)@5+@�t�
E. at g���3 at W�Q��8 at v��+�D<@oV��|�?@mc�ϬA@�m�&�A@��9q
@@�����;@͈e�΁7@`U�'P�3 at 5����2@@1J��2@��}�0M3@��	i��3@�ݓ9�4 at y5�ʝ?5@�I
�$�5@�[w��6@��z��"7 at x��Ħ�7@,�Ϭ7q8@=N:�
9@#y��m�9@���^#Y:@�B'R{�:@�T�u�;@+$:�'<@K�W��<@�U�^=@S�t�d�=@���
�>@����:?@�`{��?@ƤĢ<@@Gtv��@@��;
+�@@̴Ǡ�5A@�O	��A@^�l�A@�ωOAB@��mUO�B at 2��]��B@ ��6�CC at i�w	�C@��h=�C@ͧ	@�(D@����UD at u���D@��N�7�D@
�\I�D@�?�Y�.E@��=�2�E@�$2���E@|#�+F@�lT�q�F@�ŏ��F@���L
-G@�cŀ�G@�Φ�J�G@���%H at o���xH@�Q����H@/Hh�I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+YF at RQt�3aC@��ģ@@��,��<@P�A��6@������1 at 4��=�)@�É�r
%@�f�u��"@�:sv�;!@}�8�� @��z���
@�0~�K@��v�@^ϗC��@1��0�@�f2���@/�|�@�DWl�c@����
�
@�S��m
@'
�G
+@�"�Κ	@���iV
+@�W�*k
@0Ԝ�%�
@��ҹ�@��@��@���Y@�Ŵ�OC@�,���?@0:1%E@��\�[@%��I�h
@v�x�i�@a]�� @��+ K�!@�}�U##@� F}I$@]�t�o%@b��,�&@�uR��'@70��*�(@�d��`})@BoI6j�)@�(xE+@"7+�*�/@��PM|#4@�- �Ke7@>Sti�:@d�޽�;?@U��o�.A@=?`�1�A at n˹�\>@@�U/�@<@}�P��6@���Q�3@\�^��f3@$�!��3@]��A4@[����4@�x�@�5 at Q�1��86 at f�>��6@���vo7 at y����8 at R�ٔ��8@�*�ImY9@
_��:@T���:@[D;@
��z�;@�u\�qu<@�!
�
=@�!�.}�=@�3���A>@�U#��>@�&Qa�w?@���؍
+@@�[���Y@@��'�
�@@B�����@@�ȼ
�PA@��]�̧A at i��+4�A@

|�!WB@�Hs��B@�VBPC@
H���WC@滧;��C at C7�|��C@��B+�/D at 9��&=\D@���'�D@��zh�D@�#3��D@�#�z�'E@[����uE at L��n2�E at a��g>
F at 1�*�'tF@

y��F at .XJ!G@��ԛ�tG@�i��G@�.ev
H@3���pH at tsiԽ�H@�-b.I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+@>
A���@����f�@\b�b��@�Bl���@`�_���@m�L�4A
+ at X�gmn�
@1�����@[��p�@{�}ց�@Q�����@���@�
�7X�@9ſii�@��'�
@��F�& @�=��D!@UԸ�j"@([+��#@�����$@�K��%@@�9v�'@"���(@�e��1�(@��(@�E�$�i)@v�ص�.+@���~�
+1@

+�o�3 at F����(8@���U�
;@�h��$�<@�pJ��{@@�R,��A@�iq���>@g/����9@�h�!�6@��/ȊZ4@
��9�D4@(� ɶ�4 at Jвj�65 at d�*
y�5@��hI�6@}�'7@Nuב�7@����W8@�*�C�8@,W�s��9@O�غB:@1�pӓ�:@B.A��;@��ƈw0<@�.�{�<@ҡK(�^=@�.�<��=@�<��:�>@�Y���%?@2�f�?@���,�-@@"V
 �|@@}j)�|�@@컾
A at Z@HqA at S99��A@�|s��
B at o���/sB@)F
�Z�B@
8l�gC at 5�:�kC@�
#2�C at Y
+ÂED at 9�cC�9D@���NfD at DA�6�D@�bѵ��D@�=\T��D@����K1E at Wp�+yE@��"��E@�=4�
F@�=,�VrF@���F@^o�^u!G@����wG@���a��G@��X�1"H at 2I
?�vH at OA���H@�ȡi�
I@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+T�E@���e^{C@��z�3�@@q���=�>@�*V�49@�h�4 at BQ �V�- at .��S�'@f�	�v$@�'8��"@Կ�/ �!@ƒ��? @���'��
@̗6T�u@JV6��@y1�I��@2�8@�$tf�@!�V�f@�����
@gca!	�	@LXg)3�@�QpUP@HJ����@]b�
:�@���X��@�OfOI=@�,mJ%�@U����	@���ϙ
@����I@�Fʗ�@�,“�@l�
F!@_��4I@��do@��Zh�
@�Q�:��
@.;[
�� @�h�-�!@z�ti�"@}"j	{$@M��I%@K��XFT&@�4=��B'@i����'@p��
+(@7�/<�{(@�d
%+7)@��kp��*@��P�. at s�u�<�2@ޙʐj�5 at v��<z8 at o���߲<@Ax��|@@a�O��@@8M��Z=@h�N�f9@�j,΢	6@����
5 at G��Y�&5@,=ag!�5@{��_t46 [...]
�D@��_&��D@��@7�
E@����?E at p��>0�E@�pO|��E@
+P�� F@
�=�tF at n|w���F@]
e#G@��n��sG@:V�V�G at c�=��
H at J�O�qH at H�j��H@��C�I@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+p�-@𱣶�k(@,ja6�%@v��e�#@��o"@Eexn0'!@�5�*�@GY��M-
@��St��@�`N�@�L
+a��@�w�F�7@�̶+�@&���.�
@���iC	@Y��QQD@�}I�ɉ@�A�v$�@�#�З%@����@t
$��D@	��~�@��4x@�	���Y@.��7�	@1_lG�5
@���@<H�
�@��	?��@k%
��@W�+$@��5M@�����
@U�
���@
��E!@I��?L"@�\���z#@!
���$@�ƣR�%@���G&@.�j�u�&@H�z18]'@;O
��'@��Hx(I(@G�
+�
)@����w*@Ë��bR-@ @����0@���ج�3@�|�r%�7@�"�Sk�=@Xey@<�@@sxQ
-g@@���M^<@��
��8 at T��G'6@�"��#�5@��� �6@��7]
+�6@�"
+�$7 at 2���[�7@,�-+�k8@^,_���8@/��Dɋ9@>k�$$:@�.'���:@�c%H�o;@0'��E<@�H�є�<@v
]��^=@��./�=@I�>@E"UE%?@7F� ��?@�2�>�)@@�@��u@@ՌH���@@���?�A at qs��0hA@�O0�)�A at at1��B@�}�eB@��+ӹB@�{�)
C@�s
+�VC@\3}9<�C@�<./��C@��uzK%D at UK'sSD@��ޗ�D@�
�ϻD at _�!"��D at kU�ox-E@�@
D�ZE at +�i�E@ʛ���E@���K�#F@�_UvF@]N��9�F at gPz
G at 7q�F�pG@��%���G at z//@�H at lp¼�kH@��s5l�H@�
�
�
I@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
$n#@���0)
"@���FG� @͐x�g@�^�Hh
@�s
+3��@L��0A@-
�8�@ެ�(e=@^����@
�M��
+@�
�@E��6	@˷?��=@݊r��@uH !��?�����?�;٥7�?x"��X@��+��7@�
+21=;@�`<K[@� �^�U
+@,�D9�O@��N6@B�?X@<D�"��@T�
�@I�6���@炄O�O
@c��u�
@qPNy @zE�)��!@�\K(]�"@�}�*�#@t`�6�$@�l$%@������%@����}&@Ԃ]]=)'@)}��j�'@9�dN�k(@�[�R-)@��t�VC*@
�T,@���
20@��uZ�,4@�P�zz�8 at s9�Ig+>@m�91�@@z��o�?@ߝ�<@i�
��7 at b�s�C�6@�!ʏ]}6@�OBW#�6@�~�tms7@�x��x8@���8@ �A�4Z9 at +�kX]�9@��4�#w:@�
�vD;@D�%X�;@Nʹү_<@,����=@�m\8��=@�:��~?>@�d���>@"�=�<o?@�|�
�@@��ʹ&N@@i����@@�َ8�@@�Nr�<A at x�h���A@���)�A@�B�w.5B@�T�z�B@
"Ev1�B@ͷZk-C@�%���xC at a�X(�C at i�>�]
D@��:=D@���kD@���7�D@�)e�0�D at x9~j4 E at R�)[�UE at h$l	��E@Ƃk7��E@|ea�c�E@��(F@ �ҡ�tF@�W���F@�xV*IG at 3�
o
jG@��n��G at p��"�H@
!�
}^H@�U�C�H@*����H@��\�GI@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
@
�«'�@�}�b@��Z�@ъ�=�� @��t ��?
+K8j�?�Cc����?���4�Z�?��
�D�?��,A�@�-���8@R�
1�v@JT�y��@=5p�Q�
@�X*��@qm���
+@sbK�#H@��ԖÃ@�|�
��@S?�@�<���u
@�a�
��@@We��
!@�ۈ�G"@�<�,�!#@��)ʈ�#@u��RG$@gv��$@(���j�%@���)��&@�5��g'@J����!(@��+�(@�H�pC�)@X���*@j
+�:��,@�����1 at H^"A��5@��Y��:@�e+TcQ>@/⟷Q	@@��~��=@��XJ
8:@�^9c7@�!*iN�6 at 4�̂�C7 at 0�t9�7@�vf=�i8 at bwS �9@�Y.g-�9@�H�U<:@���:@�J�
Z;@��&��;@��|ܠ<@�e��J=@�:튏�=@��Kb��>@��
?@=ϑ��?@
	Ś�%@@
�z��q@@���Ľ@@�VF<A@��u�BbA at u����A@�>@jB@���H[B@�R�ۗ�B at l�`��B@�8��MC@�?��Q�C at oV��'�C@�Ǝ�&D@�2T��TD@"�Kި�D at w.Ԡ1�D@�G�)E@%�.�BE at q�47�~E@�j���E@�ԴUU�E@�
@�DF@�J"_;F@��R�yF@��I��F at h�බ
G at +�L�m[G@�:ƻ�G@Ϝy��G@�Ye�>H@�+�b@�H@,�|N��H@�m�|)I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+�_E	@�S[WU
@��qm�@�.d@'���d@�w�BH�@�_��
+@a����c
@�Ik!��
@�-��� @l�RW�!@m=�9{�"@,$!1#@�����#@D��A��$@R�
�:%@
��>�&@�g7��'@n˙��(@�K�B�(@uKL�)@�h�K�O*@!��+ at L;�_i/@};�a��3@ ���F6@�9�`�8@r��p;@�$�15�<@�*�I�<@
�
��r8@�Ѐ��7 at 6��R��7@@5�K�98@�GIL��8 at z���k9@��w�&
:@��,N�:@�W�IY!;@n
�?��;@h���,D<@k�/��<@����<�=@����1>@O�����>@p�
,�c?@�k6p�?@�%���H@@�ʇy�@@'g���@@.M�p2A at c���A at 1d7�>�A@�(b��.B at u��ǂB@�
r+Y�B@�-��)$C at t��U�oC@ɪR���C@[�BށD@@��$�<D at M�j�]kD@����.�D@��5�N�D at nBp�&E@��פcE@�E���E at Z��i�E@��
+
+F@�X-��3F@'�GE�`F at m�y�w�F@��
cl�F@�b�4�G@��
�vJG@ر���G@�r-q��G@�H���H at P2�JIQH@�2��q�H at 4�����H@ˤd: I@)��G�RI@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
<]��2 at Q��+�/@�qja:, at V:�U�*@
���(@bE{�5'@�L�}�%@�,B��$@��>��/#@q#����!@Ot	�FT @��^�H�
@C��3c
@��E��X@����@�K��� @��3�[@}�N��m
@��0@�"Y80�@:6�u�?d��I��?�3{��?**?���?ׇ�:�	�?��w���?�� ��?Ț�݃`�?�l��N�?f�=�m3@�
���@��Di@1N�H�%
@�V@'�v@b�[��@�\o�Q@d���
�@�*`"�@&�>�n@��(5j�
@Ր��"& @�]q��L!@�k�EL1"@�B�x�"@�t�
�#@�v��_$@��t�%@��tT7�%@0�Fe�&@A�T��'@I���(@��a[��)@竡���*@ݫa@��+@���%H-@���
R0 at QBd�۴2@
	{�v5@�hCw7@{��*9 at z�wr�T;@�IKI�S9@מ�=�H8@�KWP"a8@��Vk�8@�y�6�L9@�Jƴ�9@���v:@I��u9;@`�X��;@Yaa��
<@V��U��<@�T�t5=@�nJD��=@�G<_~>@xa�o�?@5G3��?@ӯo�#@@�r{�m@@5���8�@@
�>�A@Ly�WA@��^�r�A at qU��?B@��VB@��4;T�B@��ٵ��B at sxrQLC@��%Q�C at .'�/��C at 7Ƣ�0$D@��)�TD@ FhρD@��h�N�D@��4�E@�4_�TFE@�
�B��E@^�0!��E@�>��\�E at T�v�/F@! �?�^F@�����F@�x��j�F@��:0�F at t���G@�7��NG@��.Z�G@\7-��G@�I��G�G@�vm�H@��t�[UH at f-��ڌH@)����H at 9�˙*�H@��'�QI@������������������������������������������������������������������������������������������������������������������������������������� [...]
r�5@�"�
��2@��ߤ�0@�L�L-@�68Q+@���B��)@^���a}(@��;
0-'@��&���%@{Lbl�m$@E���+#@��~��!@�vE�B @��Anc
@�ȅ>Ó@��W��@3
[z�/@5
�
+8�@j<�5��@�`|u
+ at K��.@�H��b @j�j^��?�v
����?\�Ы'�?�|
+��?��U��?
w3OP��?YZ�Vq�?��?�{�?������?���� @N���@7@>�c@O�A5m	@�Q�
+Ur
@a��8�@
���c@���|�@�x�4@�>�IT�@��U 
@��ۨ7�@{��?�� @KvNdG�!@�_���"@�_�=m#@V��~�J$@��f��#%@�P���%@X�v��&@0�`Ӧ'@���V��(@�Z�n��)@+~��{�*@����w�+@��o���,@]��N3O. at P�&�j30@��gnN�1@{,5�xp3 at K��r�5 at o�
=+c7 at NT	q_-8@ͣF�}8@�r|9-�8@
1�p9@�����9@�
��]:@ƭ����:@�I��q;@���$>�;@��P�
u<@������<@2�Yr��=@B��
D2>@�_!W��>@]G���m?@���+<@@�τ�3L@@�t9��@@��e��@@���~�+A@�'
Ks|A@��>H$�A@�㞮�)B@���GB@����M�B@�8��'C@����uC@~e�
5�C at 5\m�aD@
͞TED@��j"oD at Z8����D@��0�D@�I�M�E@���WE@ڶ�[o�E@��T�9�E at H�U��E at h���"F@���SxTF@ �����F at e8�)�F@~��\��F@�*��#G@@T\�VVG@�+c[ �G@�v���G@��~4q�G at +`���H@
�W��5H@:���fH at Y�h�^�H at 4Ҧ
+K�H at 1�$#� I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
+*@.+�Ȯ(@�1��R'@��-��%@��^�%�$@'�
7�#@F��\��!@퉉�= @�Y���
@>g��'�@��w!�@�K�8�Y@��޿�@�=ė�@��9
��
+@Ttũ@*Fv-��?�{�`͕�?��ma���?ʉ۲C��?�4�^���?        ������?Bi�I#��?�~g�>�?A����?�.����?s�6D��@r�6�$�@t�6̡`@��uc�

@�
͎OT@��f�l�@�p'C7&@Z�n)!�@
l:0@��	BX�
@�ٽ��
@����� @���!@&Ƚ�Q�"@�x撤w#@����J$@���ɖ-%@�
���%@�S���&@�N�&�'@�/e�(@�r
�h�)@h�=��*@&ŝ"�+ at -��,@��_7��-@�.�9e/@"C�6��0 at O�D_!2 at t�%��
+4@���ME�5@#l�Mq
+7@����7@����9�8@���j9@�]�߂ :@`�HП�:@(P�_V;@S�Y��;@����f<@�|'^�<@V��~\f=@������=@ܓ��/�>@7�!Ċ.?@\Y&�T�?@gw��b-@@Ԣ��w@@��P�@@Q�M�	A@
��[�SA@�`I��A@'�l���A@�
.�NB at U(#�G�B@'[�@�B@$h`�NC@Ы(�M�C@����C@��բ�,D at xm�+�`D@���j��D@�9Et�D at Y��aL�D@:�&�(E@�\�a�YE@�I�!h�E at b7��6�E@�q>���E@~(셥F at iv�ڵKF@����W}F at hӢ�F@ɫ�3��F at X��)G@��w�FG@�
2 �uG@
r��G@� �KI�G@� �q�G at 4 
�*H@ L��WH@�����H at B��=�H@�
Q�=�H@��mI@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
+��!@����Da @�8R�
�
@2���@�N#q\g@�l��0�@_����C@�ϋ�%�@e��<l�
@���z@��'�s@�_!QI�?��VZ���?�kղ�?O��=��?X�v�_g�?�6NU��?��h���?3	��\�?�O?�-��?��
�Ŕ @SO�D[@��{�@+���
�@
)I�i�
@�V׊\@���8N@�}!��@�6t�@:nH�Ǜ@V6S��
@*U��
@���� @�!�i�!@���Յ�"@/��r�#@A
�^�h$@��V{H%@>u<��&@();p��&@���A�'@��#�)�(@����)@5��v�+ at q���8�+@���>w�,@�kq$�-@�&��I�.@�>�d�Q0 at j�ңn
2@�NXk�3 at h=��|5@��B�w�6@����Q8@�װ�/9 at Ou��V�9 at 4�S5�:@akK�z;@��;3s�;@�zT�jG<@`3�
+q�<@
D���W=@eЪ�=@� #ڰZ>@
+V\��>@��3qԎ?@)�|y@@o
�A�[@@���3��@@0m\�@@�X{x�3A@�n^�8|A@��e�n�A at P~G�_B@��VppB@�3h�Z�B@`2�?� C@��ka(tC@�
�5�C@�jE=�
D@�Y�ND@���4�yD@�n���D at 5S��	�D@�
�]E@���~0E@�X��aE@�e,�6�E at vT� ��E at V���F@�{LA�:F@���XKpF@(�ޕ�F@�`{���F@�ۆ� G at JϨS�-G at G��ĕZG at Tbyo��G at -և���G@
���[�G@�Rn�[H@1]%n4H@�eF3�`H at xd�T@�H at aR4ƹH@����H@��t|I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
���%<@[u�P�J8@�i���4@�����2@�1 �N1@�n%��o0@�J��-r/@�J��.@��J��,@;N��+ at 4 K�
4*@S�q�K�(@_3�d-�'@��^�&@��21��$@�f�X]#@q�]
+R"@�<� �� @��P�I�
@T&:	�@��
�D@H����@
6��,@��i���@-���+�
@)��+�@��V��@X&Z� �?�}v���?�
�#%��?D���b�?+Q�
+���?��V	�>�?U�$�5��?���9�<�?��(ݖ�?^���;@��

D�@9��1;�@
+��E�	@oe:�Q
@F�6��@(�{@BD��#y@�
+�
�@�]!&V@���]�@"���?
@o	���^ @��i6+�!@
Op���"@����#@G���"�$@�ī��j%@Q�a��+&@�b��&@Z�g���'@�
+%2�(@M~�)@Qjş�"+@�K��,@*��~�,@�|�J�- at u.@��.@��r~
q0@����^2@ֿ�8G4 at 7XH��5@����X7 at o�r�e9@ʞ9�;@Ɖ��T;@Ɩ��I_;@h
��;@4��8*<@z�����<@r��H�==@Z�����=@�#@>@Z��i�>@|{I�R?@�(
�t�?@�bU6C@@����S�@@�12%��@@���NA at +G�i`A@�;�W�A@r���A@�rW
CB@�-
xg�B@]�����B@�Z�3QFC@
F꧙C@�>�U�C at 1BD2D@
��kD at L���D@	�Ls��D@����K�D@���BE@�>�AE@
R�W�{E@��ƸE@�>̦ �E@�k�"L2F@�x���lF at l�N~��F@~�
��F at T��9
+
G at Jsg9�8G@㫔j[bG@�(]
ˊG@��AذG@�B*���G@�?����G@$O_i� H@ReuIH@��H�rH at M�r�ޜH@�~WF��H@�_��F�H at ._��n I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
i�/@�
��L. at 1B�+X�, at 2\և�+@ϠYx!W*@t��$4)@wir �'@:�{H&@O�^2C�$@���5?�#@����C"@o�&�� @�OP�[@
��:�
@��ϮE@�/	�@f���>@���5�@
�QJn
@�����z
@����&�@����c�@��#�%�?�k�����?����?�%�h})�?1������?�k
O�4�?-�^�:�?�R���?A<O�Jv@ū�y{@���O�@+���Fl
+@
�\]_ 
@ԫ����@�Th���@�F8@�o�p�@��?�l
@s5&�r@?:
@��O�F @�^�!@�<���"@$�G�$@�:�6��$@�{��%@�Ix��Y&@I�%�	'@0���m�'@S�"ݧ�(@I�NP �)@ܮ�i�"+@b{D@,@מ���'-@��	j��-@Ԍ����.@�D�X>0@�
,�1@˸�13@Ǹ�L�4@:�h���7@/�YJxB;@�T�C�(>@_�,��=@+�x٬�<@�wé�r<@k���<@�ꥸ�
=@F+n��=@���2>@N~呌�>@����.?@7�'��?@�E
��&@@�⠷�q@@�л�ػ@@��Z1�A@��7� HA@!P
�]�A@[�
+F��A@IR�

B@�c�'slB@
�GgU�B@�V� �C@�mZr�kC@�,~�C@����
D@��<
+=PD@|Z at dsD at L �ܙ�D at jtN~��D at hM����D@�����&E@�N�̲_E at 5�
+��E@��'�c�E at M5�%F@�1�gF@*��b�F@����F@�
�c$G@�Qv��LG@�T��{G@�,U;��G at l@$���G@�4�#��G@*IC&pH@�EI'5H at R�l�KVH at m��przH@<>PUA�H at I����H at K
D���H@+��vI@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
��{G@�tseE@���J5xB at d�+s�?@킁�K9@	�
�,5 at x�O{3@؝*�4�2@D����1@��m�v'1@����m0 at Fj;�n�/@a���-M. at D�^���, at e��F��+@�I��c*@2/�Zr)@��;i+�'@��O
nm&@ڨI�E%@�����#@`_
+vW�"@�{�oIJ!@`+
 @?r��&�
@e
�� Y@��W�%�@�M�Mu@�C��i�@��Rs�@0�
+�@[��,τ
+@��__�@B�):�@��+ at W�?���ޝ��?�%��w��?���l���?0�Q	�%�?�Q9��?�A7�@]O�)@c�Ʃ/�@��@�
	@�3y۞
@�^8n�8@(
���t@��
@\\(�8@���\Ԏ@gI�8z@F���k@�R�ϙ�
@%�3L(C @����%�!@�>��#�"@��'q&$@bk55
D%@hj�]j
&@���&@�[�'�Q'@[�9�0�'@�&�~�(@H���
*@,\�?oC+ at Dy��{,@����+�- at t0T��E.@��y*�/@�z:FB0@	@��%1@�����2@��
+��H5@ؗTN�&9@�abw P>@�wAH�<A@,��*�@@Y�g�??@��z6�=@^�um�N=@]�Y�d�=@5�g�
>@����
�>@��f
�?@���
+c�?@���V@@�Eu%Y@@��tSj�@@����@@\F���5A@���zA@Ͷ9UW�A@�4L�YB at v.��&LB@���Y�B@� �d�B at W�^wD<C at NP�	�C@!^ �
�C at v���,D@���PiD@�l��X�D at e�J�D@Ĉ���D@ -��LE at w��H
FE at P��	�E@\{�T��E at Ee��F@麟�-VF at .ЦY6�F@�
���F@��d�G at D�1(UG@�bY+��G@�W�M�G@)�z��G@�U�x�H@:3�a=H@��@�y`H@���ɀH at A��<�H@�o1��H at P�I�	�H@��qF�	I at O
�Pj>I@������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
C@��#ޭ@@s�_j ;@
�	Ӳ�5@
��
4@�}��^(3 at as�s2@������1@�9���"1@,��lKx0 at 6lz�Ԣ/@Wj�
yW.@�F
-@�TcE�+@�N4�z*@q��ֲ2)@�(݄d�'@�,��&@���lk%@pf�^+$@6�ro�"@��
�+�!@
��
+Ō @�/łz�
@ t!�+v
@����@����@#xJ9�p@T�Kf1@b�(7Y@7����
@y
y�^~
+@O��@�+�Z�@@C�4�@�%����?L|�����?
9Cw�� @���=P@�]�)9@6C�&0@�J��Ja@�K��
+@��˲�
@BKs�p�@�#�*�@$�ə�o@�(�7e@^�l8=�@`�l�Z @d�
�s{@6�u�d�
@Zt"�D @�m��
+�!@�|�
�"@Q���y6$@�cV��r%@q&�@�s&@~���
'@Ee啴�'@��u�R(@!_I��
)@����U<*@fw��Ɓ+@�%��,@�h��b�- at HJ6�}�.@�ϝJ�l/@A]�
-0@��Sa 1@
+��־3@�޳�|�6@�0��mi;@�3��nl@@��

�B at W�/�m�B@���2`cA at Q4�x��?@\���-�>@뎄F�D>@Q��/|�>@��H� ?@�A9�Q�?@�ә~@@n%�.E@@Wz�@@��6v��@@�G�� A at C�D��iA@Ϋ}���A at Z�
��A@�2tvU5B@MM�{B@�?6���B@q��JC@l*fC at f�{�C@/�#��D@�n(KD at g�
+᷀D at RG���D at -^@�]�D@�B�p��D@#HH�K-E@�ʋ�tmE@��C=��E@"��{��E@"Dt!�?F@'{uN�F at DK�Q
�F@�6�qG at o��O	PG@�	+
i�G@�����G at e.,�g H@�G"��2H@,��>�_H@�F,
�H@˥M���H at _y�b��H@���`��H@ʋ֖I@��
Dz8I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
��MiD@$���A at m�Ok�0=@��h I7@

�4@�V
�Y�3 at _
9&�$3@�1�W�2@���g}�1@��
+
p.1@~�RVY�0@�zlj[�/@g���,�.@��Z'�O- at n.	�2
, at X�1e�*@�%�q�)@�J�i
+P(@ ���'@c
�T�%@5ט��$@����q#@gB���A"@
++��
!@��}A��@��٭��
@,Oѣda@�Y�7F#@ �ӽ,�@�
+���@|6�e�@*�)�@ �M�Å@�6�c
@jl��Ȃ@���*�@~W0h�@�Cp���@3�(�
Y@���;&�@G"�X�@)�it@�M��i
+@
Ǎ��
@��U��@yy�w��@g�ɘ�@e�\?�@8<�@p˦���@Y;���5@��\���@e�Y5
@���	@P @�����!@��f�4�"@%2��4$@�
�D��%@h
+�w��&@�	Uϕ'@�ފ{�.(@�~#:ѿ(@I�|#)@*-�[��*@�R3u�+@�ۜ'J -@�%Hו4. at Gfi��)/@�H��/�/@�f>db0@�R�!1@��{�2@���{@6@�]�4ZE;@ف��+�?@0|�5B@���QrD at p��=��C@!
Ru�B@&�/�@@�~;�g?@1�S �3?@������?@���k��?@=
YF;@@��L�z@@L����@@��� A@��gPTA@ ,����A@[
<��A@�eR��&B@��g��iB@��i��B@%�����B@�(�v�AC at N�11��C@�ʄ�5�C@\lE*D@:ݰ2�jD@��*a˗D@���
�D at l df��D@��F%
E at xx��*UE@�
ęE@��?٥�E at W��p.%F@���w�kF@#bڙ��F@�zO�F@�
+�>G at Y��]�G@��⨆�G@
+��*�H at e�zu�=H@�˫ҳtH at s�8{
�H@�XP���H at o�	(x�H@�_�V&I at u��|CI@��������������������������������������������������������������������������������������������������������������������������������������������^��ڴFI@��ص�:I@� ��G0I@
x��1)I@=���U'I@�0�S'(I@��r_�(I@��}X#5I at 2�P/�AI at U83̝LI@�A&��UI at s�J
+TI@�!�<FNI@�D�\FI@ûLm�CI@�֚3"MI@�>M��UI@��b�]I@��������������������������������UI@�D��eI@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
Qr�(@2�c>
�'@��Z�zm&@���Ƞ9%@YgOt
$@rW$b��"@9|��!@�9��
� @��� @)b�
+:�
@J��_Û@)U�0z�@�l����@�pI���@
+� �@�OZ�ip@��5w��@fTO�,#
@[����
+@
+�!BM�@��F�2@���6�@Ap-�s@�n,�	@B�lJ
+
@��x�
@�G'�t�@�ィ'_@��s5~x@թi©�@���_�@���jh'@�b���@k��:Y@����@?���T
@�
mm @�
�8Ь!@�`)'r#@����R$@�̰��%@5iŠ�&@c�O�:(@�5+��(@\��!D)@j�̋6�)@��GH��*@���(, at q$�f- at e��Ny�. at Wfg��/@#`��"60@�Z`��0 at y��_91@&��`2@�h�B�4@�l	��+9@;D5�I�=@��vd�IA@�<�[�C@#��<{E@�ʡ�D@��+.�*B at .c�Gj�@@y�0E�
@@v��
@@�����=@@D_YTz@@�j�y2�@@�2ܝ`�@@VFC<�;A at 4�Et�A@*�pi(�A@�9�M#B@���k]B@��B@!e�ɖ�B at N�k��'C at QQLprC@�(�ǣ�C@����
D@&��QD@�K�Z�D at 7��Zb�D at k}��t�D@�T6#�E@�c���?E@��g�V�E at 1D
���E@��I
VF@�m�TF@��T��F at j�s��F at p�
�$'G@
*��]mG at G�|ײG@�T	�G at BVK+a7H@`�r
+WvH at h8�Ob�H at O*V���H@�/_�I@��c�LI@������������������������������������������������������������������������������������������������������������������������������# SZI@ץC-a
I@�D��I@�>�`� I at a�
+�H at 8
�ܗ�H@� �]Q�H@�96��H@�,Z�H at 5�erP�H at vW�#��H@� ��-�H@�*"��H@�]]L �H@/����H@��U$�H@�!�H@�D"��H@ջ\��H@��i`��H at -�4�.�H at e
�rS�H@��t�
I at S�,bI@Ön�rI@�6�� I@�/�|��H at W��e�H@?��s�I@�ϵ�<�I@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
�c�@�X��>@G���@%B=�
1@��ɫJ�@Y�a�ݤ@uք
�
@0.l}

@�
|��
+@�:2�
+@�JA�r�
@lӶ�[�
@F5s��@�/��@���'=x@��O��w@��~�@�C����@�*"��@@6\���@$�͂�@�� �&
@��Qz�
@�-ܬ� @�x�l�!@Y��8%##@~PE�{$@™t<��%@p��='@�
+�mL(@R�2�`7)@lVq��)@r7B�{*@�����o+@��n�`�,@A>�i�-@���!�.@���x0@;�j&u0@
e"Mi�0 at uY.Xr1 at m��|��2@�½{�4@�;M� u8@�0�6c�<@9^#L�A@�kH_�cC at D��@��E@�Z��PF at k$&� D@����B@�[�%A�@@��[ (e@@T
+HA�@@�Brь�@@��8�\�@@W6Jm.A@��pA@�|hZ�A@}�n�B@���)LB at -����B@[7.�T�B at OC��C@�ߡV \C@,50���C@�IkW�C@
+�bl88D@�Y�-�yD@�h�Y�D@=7T\
�D@����D at k���0E@?�
qE@�d,g�E@*]a�1�E@�(r3[=F@�V��
�F@,�����F at J�v�JG@�
�U
+VG@�Ԣl�G at P��,Z�G@���>G(H@% �#8kH@yL�H at Y�=W	�H@�Λ&�#I@�������������������������������������������������������������������������������������������������������������������������������������Fy
4I at v�m@�H@��R��H@�y4JQ�H at W1d�X�H at 8��i��H@'�u�H@@�x�(�H@ۻ8���H at Q�nl�H@��窃H@�*�,�H@���5�H@���
{�H@[���W�H@{�
Q��H@y���H@�sF!��H@�0��H@�����H@�7���H at R�h-ۛH at z�d�ҢH@�pF��H@/�ƅ�H@������H@"dQ_�H@ GY�H at 4P~X�H@�'k�F�H@��S>�H@�Bq�jI@���������������������������������� [...]
+�*@������(@�
�D�'@&8�ލ&@�A��u%@v�;O�Y$@���<#@�Z��$"@'����!@7�jJ @&�rO�
@�
�0%
@����R@=�K��@ٍ�7@�J

��@�Ƃ���@��yjI`@HA��Y@����r@��yƞ@U�_��@�<g��[@��P��@ǚeđ'@�
:
,@ͦS��@�JT�@>NwU�@�I��0�@���@+��� �@
����@^6Cz�8@5"Z�
@u���
@6�ٖ� @��ƌ��!@� ce=#@9�3�$@p0����%@�+��''@&,��s(@�Ԩ#�)@\6�lz`*@MO��+@������+@�c���,@���R�+. at r���fK/@ٱ�}�)0@��N_�0@!�7_I&1@�)��r�1@�.
��2@�wA3�4@�
�F8 at T:����;@����Uz@@�
]�1dC at e��F@��>>�H@�E9�'F at 5޷�C@���3��A [...]
��/A@�_8>skA at 5�Jҷ�A@	m�z��A@�{|7�8B@���9�B@��)��B@���qC@�;�ϴLC@�����C@��c@�C@�
��u!D@��+ĻfD@(S��G�D at sSX���D@о%ϓ�D@�/y=%E@ 
1��cE@ -i#�E@녤���E at J@��)F@ۻ��LmF@�Z+��F at X�I���F@;�"��?G@�|
+�G@�;�j[�G at TR�j�H@@��:�UH@�Q␚H@)���
�H@^Iя I@�������������������������������������������������������������������������������������������������������������������������������������
���I at O�l���H@�}"��H@��⮚H@�K%:�zH at prieH at 405aUH@��3�GH at fLZ>H@�ܤ<�6H@{�U-U2H@~+�T�2H@
��.�-H@]��F1H at w5T�;6H at s���X:H@,6�"@H at N��fDH@
ڎGH at h&�+DH@�,���>H at fI5�DH@}�O8�CH@�	d�"IH@�I�+RH at g�8C[H@�W���SH@�z-{�KH@?!߫�FH at shJ�H>H@�����CH@�z��EH@?LdXyH at I���3I@����������������������� [...]
+.@�W�GT�,@N�q��+@�^�FR�*@��>�)@�H�~f(@`�#��P'@�a��;&@��ݩ�&%@�7佊$@b�n��"@�����!@���� @L����@^� �S
@D˒2�T
@4�m��@|W���S@b��ķ@�Rc���@A9�m��@��S-�@t�v��@�2�$�:@�$��_@(��N�@� im�+@�e΢��@�!���h@��Z��E@�VF�@~eW�k�@_�r3��@٢M��@忇���@�6/���@�y�|�@Z����I
@��F��@މ���!@rspXC"@�3�2��#@zj�d�$@D+���&@u��<\'@��zP��(@&vd�R�)@������*@��S4�+@;�
�_,@���l�k-@�c��T. at SHߴ��/@��\�C0 at _,�n۽0@B� �N1 at gc��>2@�A��e43 at hJd���4 at k�lk�m7@���Z�V;@a�l��P@@�����B@�����SE@�� [...]
D@~Ŗ_�RD@���ϖD@�ki�m�D@��6t��D@<��P
+
E@**��7XE at Q'�8�E@>
��O�E at 2h��
F@���
+�^F@���̖�F at X7���F@�L���'G at C�8�mG@��
mK�G@���G@:�
+
�AH@#Mi'��H@�a���H@��p�I@�������������������������������������������������������������������������������������������������������������������������������������������� �  I@���E��H@���ׯ�H at U����zH@���r�RH@��tj.H@ĒZ[H@��-��G@��S
�G at l��"�G@
m�~��G@ߙ��G@����G@��ю�G at s�=W��G@|�2��G at C0̧��G at Z�A*��G@��z�u�G@�l�#w�G@<Eh
#�G at q�G��G@|��	�G@��G�G@�y��~�G at WEa��G@��n��G@�zb���G@�b���G@�J��G@
��G@$�
�G at v���z�G at a�0��/H@��P��;I@�������������������������� [...]
>�'��4@��
�4@:��Ipv3@�ko�7�2 at n��<2@��p�2�1 at nӏZ'1@���.�n0@����/@ݑ�Nǩ.@�zיk�-@��?��~,@�yAMFa+@���9F*@�yml�0)@ai�<J!(@yU7��'@^���+�%@�����$@۲�`�#@^���"@�j27X�!@E���{� @eF�C
 @�M;�l
@�����
@nq#NC�@nWs�N@
�M�
?@��
F5V@w�}��@�@���@#�����@��96
@PV��*@^;�EV@��>#.A@����@�`���@A
�h@�'�8@��G�{@+�i�@���i�@�}���@
�U�
@����
@db�
` @+��� �!@�}_��"@�4� 
�#@��ý/+%@
e�q&@[w�0I�'@U���(@Lr-X�8*@�z�S[+@�-�C:,@���W��, at B�N���-@�#,/x�.@@'��o�/@�FY��H0 at P@��s�0 at R>�RL1@����$2 at c����P3@�"^�{�4@ 0��.7@0��NE;@����G@@z����B@����tE@����H@@�iߓ�I@�=�(�G@��߸l�E@��Y
+�<C@[��P��A@�5/�@�A@'q at AA at Fo�kZ�A@��dJ"B at C2�;1aB@����B@�᚞�B@�*�0C@��m9�qC at 6Yg
�C@�n�RF�C@
Y��ED at Rō��D at V�fQ��D@��Ǫ��D@38��E@��Zw�HE@&LZ,��E@�gC���E@��d&>F at v��
fPF@\?�ڔ�F at Nj?9+�F at u�m
*G at Y�L�ZG@)έ �G at F����G@�p��)H at rT1�boH@?
e�Q�H@~�
+M��H@�XkŎNI@���������������������������������������������������������������������������������������������������������������������������������������������b!��
I at -J�I��H at OJ����H@;�{+reH@"n��7H@�x#T�
H@�����G@ ����G at E���٦G@	�N��G@�
+��I�G at G��O�G@ټ5 �G@����G@�Fa ƑG at X�����G@�({
��G@��(5
�G@���Ց�G@4��G@� �9��G@�]���G at 3���'�G@�n=�ИG@��w�G at i�ǩ�G@��'<��G@�
�`�G at A�E}�G@��A~�G at 8�HUǍG@
��ʆG@:�q|G@��7��G@�qe =�G@��k?�gI@�������������������������������������������

��@L at t�g5nL@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
+]\���4@�%n�K4@�l���3 at FR�&�3 at l]ʇ�x2 at E+�
+��1 at V�2�K1@��F���0@ y=�'50@{G��_/@_z��WO.@����b<-@�9sŧ&,@�t+ at 12���*@RFy��(@��H�'@��I��&@�ئ0�%@�9$���$@:��m��#@�s���"@r+f�h�!@uw���!@��qM @��v�#@�;���
@����
@N��|1�@XJ9���@�4c�V+@K��ɇz@�[�]�@ɠ�0�@Yj|aJ�@�fm��@
���[@e4m�Og@ƅ��:@`����@�
�� /@�}�imc@w�jNN@��l��g@��F�*�
@{A�2
:
@������@1^W�D !@�
���"@m8K�,9#@��Jm�d$@�eQ�%@��7s,�&@k:���
(@[�u��Z)@�.
+Y�*@�F��+ at H��\�, at t�{�J�-@�5��hu.@��R<-/@��ɺ�/@H�s�T0@��U��0@�M.)\=1@�g��'	2@��0�^,3@�-�A�4@��Jf7@�J�<@΍	�O�@@z$�f��B@�5����E@�&��
�H@~&f
t�K@����B�I@܈��G@�P!E@���J��B@����	B@��{���A@�D�� &B@�
+�)
_B@�̿M�B@�����B@�&��#C@�0hC at K��
+�C@�E[J�C@�(>
8D@�CM���D at B
��S�D@鈬�oE@@��*E@��Y</GE at u�P	�wE at kF����E@�0<�E�E at M��g�?F at OE����F@�
���F at r� �G at s���nIG@��f
+��G@Jp�y�G@s�
H@<�̾rYH at y
O�c�H@��NE+�H@���)I@����������������������������������������������������������������������������������������������������������������������������������������������������򞲲FI@���*��H@]<�v��H@�:��nH@��a�#.H@�|^�
�G@���)D�G at r��W�G@ U��,uG@�9cAwVG at p=�?EG@��C��>G at B�lĖ>G@�p�?G@��"fWAG@�[/(q=G at v�O��=G@�7v�8G@��H!5G at nx�2G@��U]-G at J�&2G at jW��:G at q~V
+AG@��{�EG@���aLG@��
�9KG@~��K�AG at -͇�d7G@��
�e0G@�6I�.1G@��Z�L+G@�RP72G@���
G@�={P1G@;�i�(�G@�㮆)I@>
��mL@����������sm2N at E��4A�J@����VI at rқ@�H at I��-��H at b���I@�3J�dI@��
��J@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+�/�2@��'-2@|O1�1@E��1 at f�H�ȓ0@�#00@�+�)�/@Y��M�-@
u��^�,@�;��i�+ at g B�
�*@�e،��)@���
p�(@��8)��'@��~�&@&]�A�%@)p���$@؆b�#@�Ø
�"@!ʜ�)"@���-g!@e$�)�� @	�-. @�q�پ�
@La
+^�

@$!��H
@&�~�֯
@T��;�
@���GH@5ah@����@cʼn-��@�#��t�@��I�{@���&��@��n��U@��~
@'�8
s @qC��y@���T
@�6*��
@������@��h3� @�����!@��_�"@Uu���#@Z)N�$@����
&@�]؉S'@y^?裗(@Q����)@H�mҨ
++ at t)��L,@�O��u-@)=<L. at iU��h�.@�2��/@ndp]0@�5Q�hr0 at lnbs��0@��RTI1 at 5�J!��1@��ɚ8�2@
�X
��4 at B�'H�_7 at Lԁ�`
<@�d~��@@acn4�C@;�L�i1F@?�,
�H at 6��qsVK@�5���K@�5s�o�H@X6�[fF@]`\xa�D at b�t��B@�
:�YB@ꀋz�mB@����B@�)~�K�B@�>�q�C at q<V�ZC@� �ҟC@��Q�Z�C@��~�'D@!�m�pD@/�x#��D at ab�Ul�D@
��s:E@�|�[E@�|D��sE@�rdk�E at K-N�J�E@�,_�i-F@�J�^�oF@������F@
L�Q��F@���7G@��W�_{G@��}���G at Fw���H@��@1GH@
�d�
�H@�
�`[�H at 11X�I@�����������������������������������������������������������������������������������������������������������������������������������������������������������������#*�N!I@�R���H@���R�H@�n}��FH@�m�
;�G@����ɼG@����6�G@
�l�SG@&Iy5�)G@� �	G@%��;2�F@�㊲��F@�0�%�F@��7�/�F@Ѕgd
�F at R��X�F@�1�z�F at +
+���F@
?��j�F@��j�
�F@��
_��F at S�zK��F@�a�?��F@(���F@���l��F@�Y�F@�dn���F@@@L
�F@��
S*�F@�\Ĵ�F@Qz
;�F@��� ��F at P� ��F@�v�ɯF@�S���F@=d��LG@?�?�H at q�X���I@��^��H@*�K-ǬG@���vG at s�+!'�G@������G@
��H@^Ɵ�YH@߲�a��H@)
6�~�I@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+$@z[ZB>#@�W�/�"@�C=��!@Pq\u2!@�{Y�H� @3
Y�vA @�i��v�@�^	؜-@>&_��
@���6��
@���j�,
@ew��b
@�x�� @_M���@�9I���@}��ts�@5��7�@~1Y�9
@W6�"@Q1#���!@��s|�� @�ٷ�#� @�r� @8����o!@���[�"@Ԛ��
�"@�\y�c�#@�em_�%%@j��'.f&@Ѹr�'@
���g�(@T��E2*@X�k��s+@:��YM�,@�|gҗ�-@"2&�~.@�7}
�/@C�Lû/@��Lx�30@�H�ӕ0@ t斨�0@�|e��i1@��p���1@)���2@����&4@ƋPL�6@����K;@���@@d{djtD@�n�=�F@��<��I@���������������6g���J@�h�3DH@蒛�&dF at 1�
r,�C@�x��0�B at 54���B@�0
�B at j���C@�
�RC@���%;�C@�;� [...]
�&��F@�N u��F@=�ʁ#�F at g��@�F at qE�SƟF@�E���F@�u�B��F@�3AÝ�F@��j��F@ۓlIH�F@��Q�F@}žŠF@���D�F@o����F@��A��F@��mQ�F@34i�F@���
+	�F@PI�(�F at pxi+F at Q�2�s�F@�]p]�wF at 2����nF at D�6p�_F@��'�LF@~)N �>F@��;?
UF@�_���F at +h�G at 5����F@�.�ͲF@%�B�2�F@%�C��
G@�~y��PG@�`��F�G@�\��H@�\��ʕH@�\uP}�I@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
�
@����'h
@���\
@P/_� @A|4�,�"@s�}�#@��!|�j"@�x�e�"@��d��3"@s<�e6f"@I͑��"@��Lk#@�O��D$@X��H%@ۗ<'n&@���«'@��> ��(@q�
�ND*@>2گڇ+@?&�uM�,@��dU�k- at D
�3�.@�o]+�.@P�[n/@�̀��#0@� �j�0@���o:,1 at p����1@#-/�
2 at C���2@@��Z�<4@�a��~7@
�`�*`<@~$і��@@�$�V�C@�
4k�F@�̣��I@����������������������4�4lmJ@(�'h�
H@��q��E@$�%S:�C at +�27C@���4C@��g^]C@��Ll�C@Ӈ]%��C at v'mz�D@}J�*TD@��f�Q�D@"�'
�D@
�[�*E at Ml�عpE at 6���7�E@��%9�E at J�;<S�E@
+��a�F at ZU�SKF@Ro��F@��E�l�F at 1!WG at a��,�XG@�O)��G@�����G at rr}ɀ"H@;ĹpfH at VB�̘�H@�v�v��H at Q�#��CI@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������xI�u
I@����H@�PA at h�H@�i���4H@�22�G@ 1H�{�G@�F<�DG@�@u���F@�o���F@�؁��F at K��zpF@�R�GM[F@��s��PF at Dy4��LF@�)f]KF at +��yAGF@����)BF@��s�<F at r��307F at 9(߱�7F@��}>F at iwֶ�BF at d�E
vGF@���nOF@�v#��OF@���r [...]
+�|��E@�)F}��E@�3�i�E at V��N�E@�S�
2�E@�X�q?
F at 0�3�M8F@�"#�vF@�
rz��F@�Z��
G at h�G@��W
�H at u��A`�H@�0ـ?�J@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
Ē
�:@p�z��!9@�Hb�W8@�BБ�7@r��V$7 at h3w��6@�Q���5 at k;b��r5@��+<�4 at P��F
`4 at Q4�3��3@_U+�S3@��P�0�2@�|�n�K2@
+����1 at e
�\{A1@�ݺq��0@��g�?0@`�t�/@�xar�. at K�x �- at C]�,G�,@�LbH]�+ at h��#�*@
�h�)@�����(@
B=� �'@�>F]� '@
+���r2&@0ׁ t%@?s ���$@z���k1$@sC&ȓ�#@9���'#@CdV���"@��s�~�"@
+I�(A,"@�XU�(�!@��Z�!@9E�{G!@*�[��� @:�)E�� @Y��N$ @:t�
�@�X��,@U�����@�-O�!@�F�L#@y�_��$@Py�M$@5oC�7�#@������#@��g5Y�#@9����$@�p\�h$@�--�$@Ӹo���%@�
fi<�&@*���	�'@&^D�
)@�;���>*@����Z+@7��L,@�1�U-@�1ͦ��-@{���|. at b��c�e/@�k�C0@�<����0@~ĝ���1@��4
�2 at y�n�z�2@C��.3@����5 at Gh
+��V:@��4�)y?@b{��?B at f���*
E@�L��@H@��q�ўJ@����������������������������a�uU��I@~�~���G at 6
lE@��f���C@\���[�C@�]Rt(�C@�
..2�C@צZ�I
D at 8�)��KD@�  �b�D@���:�D@�)^cE at a�e5dE@�G��ȪE@��nH�E at G��y
�E@�Hz�w�E at Pu��9F at Zh)n}F at N�n�F@�#�G@�~�r�FG@�C�ZɋG at 9�Bz.�G@��S9�H at wy6UH@ɇ�چ�H@*8p1�H@�Sʞ!I@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ﴹ9I@��*'I�H@��
T�H at G#+��CH at kF@�=�G@
4^
��G@��
��RG@���z��F@|����F@��
wwF@�uw��GF@�{�#F@�@�v 
F@�P?I3 F@�
>���E@�&m
��E@�����E@�3���E@�!s���E at 3�ڳ��E@�8�Oy�E@��Y2�E@*���E@�L�o$�E@�B�y�E@˯Z���E@)����E@��
'��E at Oe#��E@���{�E at c�ps�E@�{!��E@�n�°�E@��}�T�E@�����tE at pm�a�dE@���N�zE@���E@�#6�g�E@#�_�9F@�
w\5�F@�a
1^G at w_�s��G at UH?
��H@!
�
8wJ@�������������������������������������������������������������������������������������������������������������������������������������������� [...]
���5@/�	LN5 at 0M�B��4@��m��A4 at D8���3@��5��83 at b�j�ϴ2@ʱ��12@��ƈ�1@��A�.1@ѹ&��0@{7k�70@׮1�n/@���l. at y�桨s- at 1�w|�~,@�`C�΋+ at Q��KǢ*@\�C��)@>:^���(@F��l(@)���L'@���Q�&@��\�p�%@C�e�|a%@d�?q��$@�V|��g$@$Aɯ�$@�?d^9�#@
,U�#@T|�1�)#@���
�"@��(ɍ"@��^O�G"@)s�%�!@���%b�!@xY��_R!@F�@�!@LrV�@!@�"�H�"@/�<���#@�Fuet%@	�U�\&@9����&@�#��E�%@��A\&@�0d��(@'��,
+'@��<R�&@r�7��&@��Zk�'@��/�e�(@8iL���)@����*@5�,�+@:i{ў�,@#
���F- at x�����-@
��#�. at G�䤲�/@�ٻ�u�0@w��i1 at e�”�(2@Ա�+p�2@�mKQuA3 at g9�*��3@�y#�m�6@���Z=@[
+
�?'A@�3�eKD@�J_irG at R^���I@����������������������������������������������oXI at f���mG@�FB�K�D@"���
D@�'kM?�C at 0���$D@څ�D�OD@*b1�A�D@#g��m�D@�ؚq�
E@��H��RE@�+U��E at a�)E��E@�
+c>	F@�h�MbF at M0��.F@� �B.lF@��Ŗ��F@�� E�F at 3��z4G at q}{uHxG at U'w���G at o3�T�H@����DH@~ƱǬ�H@�[1�H@��~��I@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������!'h�MI@�c9��H at p�ٳ>�H@/b�n�SH@�|6.CH@��_\
�G@ӜsQ+\G@$�45
G@��N�F at 3cG9lF at R�]�,F@]�i@^�E@]�*�E at zB�߾E@\�Z-��E@���d�E@��B�G�E@�KO˜E at e�
�$�E@�G�濕E@,���)�E@�N��p�E@��� �E at W���/�E at C
Y�E@�ބ\�E at Z>�E�E at U�� @�E@}B޺v|E@�ƴ�mE at 8��+�dE@�cV��VE@>�+��DE@�M5E@�`�}#E@�@��9E at g^
�o'E at zW��4\E@��'�گE at B� �{
F@,��J��F at Y�L��G@�2`/R�H@�����J@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
;6@�����5@�x�05@~��d�4@��'�'4 at F�U�3@CR��3@δ�"S�2@
+���
2@���)�1 at P�9C*1 at iE'�0@�M�D10 at 3_n-�i/@7l��|m.@����}-@���*/�,@���ȥ+@��)��*@hN�
��)@ G�1r,)@����m(@K��ˏ�'@�q>��!'@�K
w5�&@
[
��&@�A�dD�%@�kO�Cj%@dh��33%@6GtdP�$@#5 x$@�o�B�
$@
+��$L�#@E�a�S�#@p��O#@_T�q�"@�Zd���"@��\`�"@���8��"@# �5�6#@���gKX$@ܬ��&@���;U�'@��M���(@"��P7)@���	�`*@�y��"�1@�ܘ��@@/4��e+@�NR{)@w��\F)@�����)@[��O1�*@І���+@?`��,@ ����d- at u�xn�- at r��b{.@
�B�>/@5<�׊90@�%�$!1 at j�W���1@�E�:�2@�
B��3@�+��O;4@�`�05 at EV=� �7 at 6�$P>@I;3���B@����'�E at 4v |h>H at D�q�&�K@������������������������������������������T�̸u�K at V�
I �H at P�ǿ�&F@ԋ��ɅD@��gTSCD@��^�u`D at c�Y�D at j����D at K�SÝ
E@!���JE@�c$n��E at e�'��E at r���HF@
+i�O:F at g�}m?F@�?�i�aF@�g����F@���km�F@ƅ��%G at d�8{�gG@��f�G@�����G@���4H@�`&�wH@�k��I�H@*&����H@���OI@�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ϭ�I at s�B��H@�2<�z]H@�	4˼H@��f�G@��)�cG at Z2���G@�Q��c�F at PN\�kF@��q�F at U���E@هZq;�E@p�h
�E@@�a
�rE@�ԍ�`E at u��}!TE@�"e5NE@��i��FE@�c8:EE at jx(
GE@�&�RLE [...]
+��5E@[�C +'E@�>��E@{
+�h�
E@��o�?E@�
�m
�D@&㧱��D@�]
�D@���K�D@$���D@%]��E@�2�X��E@�
���MF@���x�eG@�.o��H at 5��`s�J@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
 6@�1���5@��FA�5@���
�4 at e6
nA4@�э���3@�W���
3 at KcՋÑ2@�'���2@"��sj�1@��0
+�%1@#����0@��10 at ZkKc�k/@[����.@$HG\��-@��
�,@�s��
+�+ at 5W��
++@�f�CJ*@��􋘔)@�S�D��(@Tk
�X(@ ^����'@H�.��O'@C|�	��&@RF���&@�O[+�&@݈l�<6&@���l�%@�/?@j%@j"^�M%@=
���$@��T�$�$@���i$@��%{<8$@8S8Al$@(ML$@���|��$@vK
+g%@DƴT
+�&@5�~A)@�F�iS, at p�a��,@���z�- at h]��
R9@��꣆N@���A9@�͠�f/@��=W, at UI��+@�~�Xb,@���2�G- at o�&N�m.@����[-/@(ӳW�6/@�LL�g/@
��0@|�0���0@���c1 at Nݼ�|2@�9�/o�3@�Z��m4 at 4�I>??5@�����Q6 at VVN��8 at Q��s�3?@_M߃�PD@#��`H@�̮��fJ@����������������������������������������������������d��J at N��H�FH@`����
F at y���/�D@��jmkzD at y8���D@#��8�D@�1�ħE at w���GE@�)��9�E at r(:���E at jRZ�
F@%{0mNF@��؁skF@�2A�oF@�"�4�F at .�{��F@�7u$�G@;!<ZG@^��}s�G at eAHU�G at l���#H@��
��gH at Y���:�H@���F�H@�����/I@����������������������������������������������������������������������������������������������������������������������� [...]
v�hG at -9��xG at M o((�F@� YG�pF@�k=�
F@$)z���E@���9ԘE@��Z��mE@���IE@�ع"m)E at N1��
E@��>JE@��1��D@$凰C�D at 2��3��D@ �A���D at A�jEO�D at P!|��D@
c���E@��fk��D@�0|���D@*�<y�D@����5�D@��T��D at O�7�D@���D�D@'^�ӜD@�CC�ԈD at W��c�uD at B�,?gD@>�b຅D at d��#,�D@/†�זE@"J�*u�F at .�Cx�I@�N��[L@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+7�$��:@jW
+I4:@M�'���9@*m��9@�h��C�8 at 0��Ē8@
;��K�7@�
�
l
7@�`�"��6 at q>'�6@�³�f�5@/y;B��4@�%��#{4@��٬�3 at u��ݴ�3@N��	3@��]��2@�Aa2@]ꌄ��1@��gٳ(1@����0@��
9/70@ ��
�/@�f��8�. at J6�Z4�-@���
�, at yȅ �(,@�X�G�n+ at A8�؇�*@����] *@J6�h��)@nhRc?
)@��x��(@o�ȶ5(@et�_(@܄=~��'@���}�'@��l�\ '@ɺ����&@)�U"�\&@�
��&@ɛ��a�%@��_p�%@��"��%@�$~��%@�q�ܗ%@ q�^��%@LНϨ�&@�����'@Af.��*@dž�B`#/@p�įЗ0 at h���<�0 at l�3�g3@����������������Rl]�9@�s��A1 at SI�1d/@�L���n/@� ��T"0 at o�B6�0@�e��
+!1@�q_�r�0 at J<�Q0@����~0 at X���^�0 at L ��O�1@�a����2@��
4@[�{�7D5@��`s86 at I�D��}7@�S�L�9@�()G��>@��F���B@��rlxE@�pկ��H@�p��M@���������������������7�>>K@�(&�*RJ@���$�I@��%��H at 0���$G@>KL{C�E@�|�� E@�tFH�D@̒��U�D@�9C��D@�ZV�#=E@�.�u
~E@�
,
+�E@��C � F@�
Q)�GF at XV��ՈF at S�3��F@�/�~�F@��&?��F@���C G@��;2GOG@��
G�G@�NE�-�G@��@)H@��vʻXH@���e!�H at mC��H at r���!I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������w^�I at V^��k�H at N_���gH@
�,Y�H@��_ �G@�)�9�jG@�1G@�
=�9�F@�\
�$rF@�Q*QF@cR�u�E@�;%}щE@�}��,SE@^j��(E@�v�iE@C6��D@}6�ޜ�D@\�Ql��D@�k��e�D@*�ZˣD@�*��D at D+2��D@�HW�
�D at z�t&�D@�fSÒ�D@�
x
:�D@���ޑD@"��SDŽD at Z�6�rD@�_�BdD@��FGDXD@�.(��ID@�!��Q6D at 2��#D at 9�S(D@�_C�3D at Hl�N�D@\��	�E@�%̤�G@��;�zJ@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+3@�hS��2@��
2@*j͐Q�1@��511 at Fa��8�0@"��0I0@ �/@�C���. at 3����.@�ժ��N-@䷝�L�,@{��~��+@!����O+@�E��/�*@<ݲ�H*@5-�)}�)@�a���z)@�=Q�H)@�Pgf.)@��sHi�(@�
Aw(@Lj���(@�s��7�'@P+���a'@P�!�
:'@_�]'@Ι!��'@��"Q��&@�qv3
+'@y$ bJ'@s�"R=�'@�s8V�(@�-�V|~+ at f���;�0@�1J�|�2@�4�2
h2@��K4@îS���:@��������^�\gL at Q,T�{8@�@���
3@,`4�X�2 at gÃ@��2@��s��<3@�Ğ�
=3@�}_�)2@�߾r81@�q{�
1@*�.��t1@����%2@Ӛn� 3@��
�XK4@&�Ѷs�5@
*��޲6@�'���-8 at 80#
+�J:@����]>@;۴��B@ʦW�E@�p>�]�H@	��^�K@�������6�{��VK at P|�U��I@�6R9�H@�(fլG@!ǡt�BG@
�)�<G@^��g��F@��nXF@��Xߘ{E@���9sE@�o% x
E@�=q�:3E@��j
pE@/����E@?��Sv�E@%
+]��9F@�o3 �F@��k��F@��B0�F@��\���F at +�
_G@�:_\�OG@�ܛ
K�G@������G@���	H@�A��{KH@����H at fl��K�H at c[_��I@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
��I@�
�3�H@���jkH@�1b�H at i�;Ȯ�G@�Rv��pG@��
�G@ײ�*��F@��U#EuF@^�R]}"F@�!���E@(
�H�E@6��BE@,��*�E@��_�
�D at v�_��D@=n���D at C��j�|D@�$veD@@��WD at K��>VD@
U�nPVD@�Jchn\ [...]
+���4 at U*΋Nt4@�[����3 at 5
��o�3@���3@<
+���2 at K5�((2 at z��y�1 at M#�ŒA1@�42%�0@�����c0@�>3�/@�͟)r2/@-�,BGv. at h�}8v�-@����-@��]�,@��p�F�+@�
M~+@����+ at 3E��$�*@���*@&�'�}*@�P��N
*@�2��b�)@�VT��u)@-��I�)@9
�(@s��^�(@�=@O�f(@�
�D�U(@
+a�%6M(@eȧX(x(@�
�W)�(@ J�Ok/)@�S�%*@O2Y%,@�|n��0@�)F��3@�q��*�3@��4@:{�b�j7@�������3a���R`@Ʉuz.QD@��
+��8@,`��]6@;��vXc6 at v>�P��6@�8�"0C6@{wqUŔ4 at 3�VKS%3@�x���S2@���`R2 at 9��F@�2@
n��f3@�	_:4@�
��t5 at b�3�V6@�X�o�77@ʒf�\�8@{WmO3�;@����+@@�a�oB@


�E at q���gH@
�w	aI at 2�+18�G at .����F@��[x�E@�ጊ�vE at 4D����E@�͂��YF@����AG@ׯ���IG@���6�	G@�_34"F@
���J�E@i�X�{E@@��n��E@�i�_�E at 8��.F@) �b�rF at N�Y<��F@�e��G@�
�si.G@��Lw�>G@�2�TdG@�U
ҕG at d|o�R�G@��;vH at 6��NbDH at y�C2$�H@�
+�9
�H@� rSI@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������k&�JuI@���H@�D�kH at zP�B�H@$�D�G at .̛�tG@�ۨ��!G@ΉZg�F@&-��}F@
�
�5,F at I�(Ҵ�E at X���T�E@����@E@�D-N7 E@*F"�}�D@�� ȡD@�K�2zD@��ĈVD at yL��H6D@^
�T`D@�j^�
D at .݃��D@Ά�l�	D@#�p]AD at W^�TD@��ƽ�C@�×�6�C@�Q��+�C@�
���C at q:����C at .�1�ǰC@Ж��{�C@)x:�2�C@:%��C~C@��y>>oC at O�D��{C@�LvcK�C@�d���D@�K�
��F at Gz�,�
I@����DK@����%�K@�✵J@���"�J@[uo��J@%¹��2I@�}j
+�XH@��ZD�G@�L����G at +���.G@�N�u�F@��L��G@��I�@\G at s
Ñ��G@ԁ�y`�H@�Q3
+@�J@�����L@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������K�ٮJ@��&K�F@��ȼ/C@�x/���>@��vb��<@F��[�;@�� [...]
���)@��#:b�)@5m�bp�)@��8�-*@R�j�ǖ*@� ��5+@���#��,@� z�
�/@�f�
'
2@͗���2@/Ɗ
+C�3@Ŵ(|�5 at h!_g�iC@���������������3��IB at r)a�;@?�
R"z:@��p��:@T��s�!:@&W����8 at 4}��8@�Q�E6 at u� 4@=�f�3@@<prX)4@�a,�u�4@	�i35@�Gn@�5@�Y��NJ6 at H�[5#�7@�B����9 at U0�|d=@�'f�A@�=AB�C@�U��pE@���<~@E at f�l�/�C@�֐�tC@�t.��C@��t�
WD@Ĝw��E@ɜW���E@-��ZG@�d��G�H@G���[I at a3�tMnH@ܔEQ/F@�P�Q�E@�f_��E at 6��/z.F@��@O9oF@�`�@��F@�hf�z�F@�s��:G@/�X�mG@�,J��G@�2wp�G at y*'ِ�G@����H@�I�
+�FH@��Z ��H@����>�H@�1c��H@@�)5QI@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������;����%I@ҏ�*�H@

_��H@9��-H@�=cz�G@�a���G at s^a��5G@��B2@�F at t��p�F at 6���K at F@ļa��E@%a���E@�B~:$SE at q�0EiE@��&�D@�7+�Q�D@�_(A�^D@��lk6D@�L`�D@ʵ��\�C at e
�(
�C at Tk�Զ�C at h;c�
�C@�Z=D�C@*E�9��C@��F
L�C@��TģC@�+��C at c�����C at z��ӘtC@
/���aC@��{
MC@����=<C@��0,C@����C at w�ݮ�C@��Z��:C@���ìC@�E+���D@�@?��F@`n���HH@��<`��H@�:��5H@��Yx�G at Xu���CG at i6����F@���#��E@�$��\hE at CB���LE at kv���RE@�N_�rE@�c�էE@��e��E@��ƹwCF@���乫F at 5�
+�JG@��=�aH@�g�	'J@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������s�;K@�樘�$G at A@��C@��7k)�>@�w)�
+=@D!RL<@Tr.)��;@�"/;@k
����:@,�]A':@�ӎ�]�9@�
+��,9@�ŗ���8@�
���78@�LY��7@�(�A7@�-���6@����Q6@r�0I�5 at N�?P�m5@����c�4 at fX�4@Qӣ�4@(}���3 at 4(���33 at _N�	��2@�	�d/V2@�x���1@��|b~1@]D�
1@<��` �0@$���e`0@Y�
+0@;`XAw/@?,ʧV�. at l4�Bi.@�bK�;�-@�Nz�#�- at R�~K
S-@�AVo�&-@>yh��- at +
x��,@ �5�u,@,Y�V�
,@��ۨ�+ at k�gV�+@�<?�RA+ at B���+@��P<�*@N���
�*@j8h�k++@�X?�9�+@q�J�+@��K��w, at 4���-@����G/@����
�0@��ǽ"�1@��G�1.3@����4@��J��o8 at h��JP@�������}��^*gL@���?�UA@!H��8�?@ߜ�7�>@��2��=@�y�<=@eҔ�<@&��&�M;@b��M{�8 at x�j��6@���<�5 at 5����q5@���*�5 at S;
��76@ە)T�6@�
��(�7@��ki&=9@����1;@`Z|z>@�r�Y��@@�k��A@��w/A@%w���A@�O�hEB@�V�\�B at X��:��C at c��#��D@�J��zF@���8'�H@�S��	K@�������%�%�qI@��P� )G@�_^
SF@Æ8�HF@�k��vF@��&咲F@/��	,�F@��<�w4G@��?C�vG@�����G@r�!j�G at T@.L,�G@�
[��$H@�E�"FVH@��.*��H@"1�c�H@�N�`
�H@���!97I@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������	���6I at -��,�H@��
?�H@���/�<H@�۰&��G@=��
<�G@�V�JHG@�gP���F@�C&��F@�_N]TTF@ʃ�)F@�F��E@�qVͬdE at 1Yp�E@�w��\�D@��9m�D at v�TA�ID@�
L��D@)-Ēc�C@��D��C@��7�ҪC@��u5�C at f�wD�sC@�V�eC at J����aC at I�eYC@���SC at i�[��HC@�	���7C@���[&C@�� 
C@��6��B@���=
�B at H��
�B at 9
c���B@'�0t�B@�����B@��D��B@,��TC at _�DD%D at s�*9ME at J�(,��E@
>�E@�J��E at R����D@	X|nHfD at R�
ҋAD@{a��ID@~�^�$oD@������D@�([�^�D@ԉ�O�,E@��g�,{E@#�WgD�E@�3�
�F at H�Ip�F@�G1�K	G@�d��C�G@��Fu�JJ@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+5@����4@�ʀ�E*4@v]\��3@��C��L3@�V����2@�{(r2 at 5Ϛ�@
2 at X�wI�1@���2P1@���w��0@����0@�<9B�S0@��"E�0@���֝/@Aam%/@�Q���.@�W�N�.@z���u. at -W�)�U.@�ҁ��.@�[�&�-@Y�k-@�f5�
!- at g�� ��, at tr
-�, at j���e,@�7��hA,@��{�P@,@>��z
w,@���p�,@!���V?-@��u�-@�P-�}.@���%0�/@��Y_�0 at UF?[�/2 at F�iș3@��5M�4 at o��4�/7@��Ƃ|E@��������
��
a at 0.`Hr;G@��-�W�B@
�	�ksA@���5A@�uOP��@@��d
au@@���CFG@@}�dNP�>@N]\Iw�:@���jUa8 at Tq��Z7@��L�;7 at Y��^��7 at qv�~�8@|���9@�9^�&:@8 �AE�;@+ ���=@z>=%9>@<�fW]?@���T?@@������@@9p��
�A@�nM�B at 2ɮ��mD at G"��IDF@٠`�}H at V8���5K@���������������θU� K@����[[H@��ڏ�F@ʆ�۳�F@��n���F@�>�`D�F@`�p��6G@�NZ?1vG at +0X
�G at 5
�8o�G@�ؓ�H@�����AH at T?�*�nH at qdBH at 3����H@��B��I@�N��OI@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4R��HI@�%�S��H@'h{��H@#�A4%QH@�<�� [...]
�]�m�E@�v�eTuE@�!<��"E@�����D@
�h9�D@��.
@D at H%��D@
�� �C@�!�Q�C@��,�C@}�׈�dC@��?sBC at e�$�x%C at 4��o�C@���90
+C@�S� uC@�
�I�B@�.��B@�Э+�B@��yz��B@&�
֫B@�wV���B@�V�
^�B at WrI�wB@�
���hB@��$V_B@�;�Z�hB@>?;f��B at iv(6y�B@]^<C@�A7\�C@�"y�C at -��[b�C@��S��qC@�TtC at R�-��C at 7|ȓ4�C@�2�a�D at P�$�QD@
�\1�D at T&�l8�D@�ʙ�&PE@�/�q�E@ӏO~�E at .
��PF@�&�U�F@
H���=G@���H at J��X�I@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������w�GJK@� [...]
I��/@v͌�|�/@+B=3�M/@2��e/@'�@�.@�9��Oq.@�o��H.@��d!�.@��~��-@�#�j,�-@
[D	�-@��x�`�-@��~.@&I��1�. at _QX /@j���/@��
U�F0@��g1@�堾�2@],t��4 at Oa nb�5@>;u�\k7@��& $@@���������������ܬoίS@ή�a��G@��<t�C@�����C@ �� �VC@$
+��&C@���R�XB@�<�f�@@��X42?@,�����<@��y�;@���:@�*�j<@��Ȇ�h>@�.j��?@�9M�N=@��R�ca=@�!����=@"��C
S>@�����>@��4��
@@�J�iA@�yyŪB@�eZ�J�D@�W����F at IbuFc-I@ܠ u#K@����������������������������Ld��)�I@��h���G@���G@��
.�G@�"��UAG at Z�W��|G@��P��G@�N4��G at A
�Ƴ*H@ sC��ZH@��+h�H at o;�Q�H at s�Bu��H at 8���cI@�������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+B@�lv=�B at +��\u6B@,���^B@:orj�B at u.���B@�a�)X�B@!H"��B@��H݊�B at PdfN1C at r�K��yC@[�#-�C@��8^	-D at j�W*�D@��B��D@�F4
�cE@Z(�8�E at T�M��F at s�mF at E��
L�F@���+j
G@!S4H�G@
�.��oH@
ː"�I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+�V�6@��J�6 at N%�Ӝ6 at o%'�ݥ5@}�1Jm95@�NQ��4@�_�m`_4@�����3@��'�:�3@
Uc�.3@�
sk��2@

}�
v2 at NL��p
2@�V'��1@ϓ�ip�1@�e�F�>1@�(��;�0 at S
"�W�0@@��Z�0@�M~�w�0@���0 at z���o0@�]��J0@*h�Q&0@���&q�/@pm���/@��
_�/@�1�ls/@
@���;/@��ڌ�/@\
�vU�.@|�e*�/@��+NW/@��n�/@Qt�ju0@��
5|l0@�� �z�0@�͍1�w1 at C9"y��2@����k4@�FQ���5@�a�ں7@}h��;@5�nt�'P@����������������Œ��S at RVo�?H@	�DXnF@ 	dR�
F at o�S��RE@4�zaaD@�!I��B@��k!�A@C
+#�q@@��Z�P@@z����G@@b 
��0@@r�R�B@�b��oB@�����@@��
%v{@@`�-
+�>@O�oip�>@�5��}?@��
�9}@@�;�"G�B at Kc�*��F at n�
��G at n�P,3�H@��4�,L@������������������������������������D�.��K@��7'
RH@�sܜ>fG@$(Z�OXG@��!e�G@��)3�G@���O}�G@�^__3H@��.KiH@�if%O�H at G�����H@��Թ��H@���O)I@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\2��2I@��
��
I@tsUv�H@�F���H at 12ֆ0�H@���H@�
m���H at y��5�ZH@�o[�H at E[/�#�G@��rM�uG@
�A��"G@��'���F at P���F@��<O�,F@�t��E at 7��;�E@�!��84E at g�/@��D@��f�ĐD@*xE�@D@��x6�C@(S1�C at B����C@&�3Q^C at z�)��1C@��m�C@���c<�B at D(����B at Xڠ�؏B@�u��rB@��}9�]B@��<�QB at P ?gS<B@ ���(B at 1 -�
B@~,Ag��A at U���A@���k'�A@�l֥��A at Nh��_�A at l�ґT�A at -�7^d�A@�K
+'�A@�-,C�A@��~Y}
+B at v�
�'B@[p^��IB@�
�ObpB@
/��B@��~p1�B at t��`�PC@^�ױ��C@����QD at Z۰���D at eP�\�E at U�)��F@冧�oF@�z���F at b�\��F@��j�G@)�q��KG@�?�'ڤG at x\�GwH@�] ��H at DZR5�{I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
&���A@�D���?@kn{��>@�<]>@H�ź|=@�
��
�<@��j�X<@
+�₟�;@�
�żM;@d�O���:@lS��f:@l(�t�9@>�k�9@A�D+9@�C,��8 at XSVWV8 at W�F�7@�~\w7@�~A9B	7@��3W_�6@>����.6 at 8q���5@�����V5@�9����4@�+�E0�4@Ҫ�8� 4@�d���3@�a��a3@����3 at E�,���2@!ﰩ_2@J{
�2@�x%�1 at Q����1@�ou#�l1 at m�%��R1@/�O�%C1@��2�Z-1@
,���1 at 95m��0@ZT	�0 at 5�޺-�0@���z�0@�z�v8w0 at f�3�Yd0@爿�O0 at 0�A0@�վ�20@'�b�60@S�\�Q0 at T�
ô~0@���N
�0@����u1 at 4x
��g1@���r��1 at .ٺ�i�2@�'5u��3@
K%���4@��י�N6@Խߓ��9@vm��C@���������������������TV�\�O@>���
I@���ѴH@�i�^�NG@[�@F@|V�c�D@��8
��C at i�ԗ�B@�Jj�rB@��~8e<B@{?���B at P"L
+��C@?�۫D at T�8��D@�O��iB@#��*$�@@7q��?@��
�O
@@',(��@@���2�1C@�NX���F@�����F@�ˏ�|gG@���M�I@�ނ(=J@&�� �I@���
�J@�ӧ6�<K@�o�7��K@~U��3pL at nZ�u�H at U�����G@����G@��r�G@�����G@\��)
7H@ߟRopH@��
���H@��O[�H@Ⱥ�MI@��g�PI@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������]�)��2I@ [...]
+�H@��4/��H@ҘM
lH@��*MVH@	��?H@ �#�'H@�U
+�	H@�|���G@��Xa�G@����.G@��{��F@�����F at n���7F at M�
��E at k.�&��E at L�f
G at E@X�I�Q�D at -
^�H�D@�q)�LD@�y9�z�C@�f��~�C at 1�..�C@���TC@�
e��'C at q1z���B@������B@��_�B at uEz�'mB at p�?��FB@�!��#B@��G%HB@���z��A@�ڂ۪�A@Ź����A@��c��A@�%ܮ3�A@�=>&͂A@�ym�9qA@<~���eA@}ι�=eA@��i mA@�
� A@
�~���A@�Xf��A@���A@'=����A@��<9$B@ 
��*eB at J��2��B@�:ȮTC@�
��D@��0�c*E at g
�P��F at u_����G@�*ۧ�
+I at 3
�jg�H@�݃�Q�G@��.��G@����"�G@
ۥ���G at C`�L[�G@��A��1H@�8�{�H at _�3I@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������z��5K@��:��
G@��m��$B@;aZh� [...]
+�{>9@!����8@y���g8 at m��v�7 at +�˖��7@���9"7@�lb�6@�CH6 at aD��2�5 at x�,��z5@�#N|5@��Hފ�4@�H
P4@����3@�Q�=�3@���.�A3 at .]8qy�2@�G��2@��m2@|�	=!72@ջ �2 at s�jI��1@��@��1@���1@���d�1@�P󲶒1@:���l1@=�HDPH1 at l
�U,*1@��W�1@a�׎
+1@����0@Ԧ�x�0@��m�j�0@�
I��0@KN�k�0@ oh��$1@&'���Y1@�����1 at H�4���1@
��hn2@)�}�Y3@َ��3@:�
4�4@��cƷ5@#Z'hh8 at +�+�@@��T�YP@������������������������������V�v�K@ƮPSOI@ΨƒUHH@!�,���F at v����E@����չD@��<�D@
����`D at x�<��D@��h�AzF at y�k�F@ϲ����E@��v��C@ .�g
B@!VC!k@@v�Gj@@>�����@@ӖDQ5A@���B@ޫ��k�C at j$R���D@s �
�E at v�� ��F@)�:Il_G@���`�G@��g
F=H@�&0m�H at 6Qzp9I at 3����H@�D۞!H at l���
+�G at 0i6�H at y��';H@�ͪ!tH@_��H@�M��H@'�X�I@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������~�
14I@���:#I@�\?�H@
��.�H@�ZHO�H@���rH at xC��OSH@ �A��4H@!
+���H at 1ݼ�=H at n�=���G at 3L�i�G at Y�~�E�G at zJ�0��G at M��Yo�G@��![�<G@��"�F@	�!L��F@�a;FF@D��E at nЌ�H�E@��
+�SE@�ɮƑE@$Yv��D@���Y�gD@��9K�
D@��%�w�C@�n��ϟC@����tC at i~�OC@��~C at l�9�~�B@�{���B@�� �PUB at H��o*B@����B B@��oT�A@��cS�A@
3�d�A@��?yA@�:��aA@�1�DA@���

3A@�8&��"A@� �xA@�kR
+�A@�
+��k
A@~�W-A@�5ChHA@��
�;iA@��6�߉A@��
��A@''p�A@W��)B@�o��B at B���'�C@�F��PE@�����[G@��rO
K at r_�n��K@�������8
:�K@��ûL@�м!ڡI@�B�݃H@����6H@�v���FH@����|H at 1_�փ�H@�K��I@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������-1-��J@,1�QժF at .1 [...]
+�[��4@%.^e|4@�:� 4@�����3 at TX܆�3 at t�0g	G3@�Q]g�3@�sX-�2@�아��2@[��P�2 at w̔f]�2@�.�c�2@�
vYvd2@�"cU�92@���
+2@ z'���1@?�kTm�1@
U���1@��>���1@�-�q�1@��q��1@ɪ��6�1@��Iƴ�1@\��۱1@�^��~�1@�.݃��1@�hH�62@�
w��2 at +*!f�2 at H�"t3@��ߟ�3@,�__�4 at _cjebZ5@��*"7 at 9pw�T�;@� y[V�A@�E�n�N@�����������������������������������Ϭ�9J@����X�H@�TPbn5G@:n��F at az��!�E@���[E@�6�g)E@?�uP�D@�M�fωD@�\Ky�C@�Ӟ5�B at d���A@|:�~Ϳ@@�:�Lb�@@�sPPM�@@�sH��,A at fvf4��A@�5��vHB@�|��
+C at _�h�F�C@�๫�D@
��d�E@����߁E@�_�
F@)�iN��F at w!m���G@���d^�G at L�
5��G@	�TzK H at UmTd�BH@^b �MzH@��H@���?D�H@�ؗ�%%I@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������=����;I@>܏��I@��&m��H@���"l�H@@qm�H@��blH@)�I�FH at X��k%H@
��MH@�Ƶ1��G@77�G@4�;�G at A
 ��G@�Z1���G at Fj��yG@�g?2�kG at A� [...]
�X9��A@KH�A@�

/ �A@
%<gA@�喿�?A at -�>�
A at 4/O
��@@�^�9�@@�=F�k�@@
N����@@����@@��:��@@מM�
+�@@ń+3��@@�ً�iA at L"a�;A@Zs�?`A at a
�͎A@���N^�A@��ą|�B@�CS0(�D@�:����G at 3��X
�I@�������������������������������������������B�M�$K@��ܬk�I at J���j I at p�N�0�H@�Nڟ�!I@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
�K5k9@�lc[�9 at z.z�ٙ8@�h�b�.8 at vc
�7@�
+Z7@����6@��*)��6@�̢i�-6@�%���5 at q}I�e5@~�K�5@�S	�k�4 at o9ŷ�e4@j�4 at s����3@<�?���3@��
�i�3@�3�t3@צkߐb3@��A�T3@�:	��:3@߾'kQ3 at R����2 at s@SN?�2@*�Y:�2 at 8�v��w2@�7�؄j2@��w�Z2@���~O2@���3�M2 at pU�*�@2@ 
�D2@�R�jd2 at K�3
�2@�Cճ�2@ë���2@
��"3 at EU�G�3@�`���3@�
)u�j4@��]̓�4@�=�&Pe5@�?+�s6@���b�,9@��;
�
@@Sr����F@������������������������������b�esJ@v�T�H@��
�v"G@
�;:��F@�/�E at Wl�$wE@�G���D@�G>�D@�3��C@��Z�?@C@��
\o�B@�P�A"B@�eWp��A@�e��
�@@>^z��@@��t���@@@�V6A@\]K�A@^�Q:&B@
e�1��B@ߴŸC@ܴE}I9D@"�M�D@ц�W�E@�j
E(�E@Fc�5F at r!��%�F@ ���PG@�#N�K�G@��>���G at pP�j�/H at 2R<�
�H@��j�Z�H at Q��\�I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������nW!]�PI@�P!<�I@�e�Ǹ�H@�XtžH@�M��H at 3"֗�lH at 6��1�DH@��'�
H@>fl���G@�#�G��G at d,�F�G@��B���G@{ [...]
kqL{F at M�֥
-F at G'Á��E@��pa�E@�IzLE@��s�E at l�CܾD@�#3&wyD@�2��H9D@��
�e D at I�)`��C@]<�w|�C@X,#EyC@���oC@�h�d��B at 3��}XB@�n���'B@�����A at h��CǿA@��
�-�A@�-L�OA@�-�w�"A at NBh�}�@@*߭]z�@@{��a��@@�~�@@�Ӗu@@=xz��m@@�zCk�s@@)_���@@�A�v�@@�R�3�@@h���K�@@Ko+O�A@�?MQ?A@ ͅ��A@Ƙ��
�B@�zO�qE at Z��%�UH at X��J@����������������������������������������������������������������j�E	J@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
X�0�K@
�]�F@��ORw B@����mv@@���\�?@`&D��?@fe�T>@8M��c�=@*ƫ�
�<@:��F�p<@1ha��<@&0�P�;@�i0��;@�R��S;@�H��;@��<0�:@IA
+�W�:@����B:@��B
��9@�MJ�79@����9 at 5w��!�8@
��V"D8 at E�F�4�7 at q��Lz7 at La��7@?z���6@�kk��P6@��Q
��5@�}���5@��єO5@�d]�
+5@\�����4@����{�4@�m�^k4@�N�(cB4@��+B�*4 at T(&14@Ά
:
4@N�]��3@	�`���3@ ����3@����x3@�Wk0�M3@�
3Y='3@�$|�t3@�ۙ�3@�CҜ�2@�`E�2 at iU��"�2 at A84���2 at Y,$�|3 at J���83@�0
fQ3@�!�_�}3@��pn��3@�0���4@讏��4 at -�ԥ��4 at b
RodH5@�6���5 at KBN,b6 at t �|r�7 at P��}�=@��6��C@�A�(�2`@�����������������]UN at u&��i�G@�5�6�E@�!D��E@�k/	(F@�e)OS�E at ne���:E@��C4�D@cw��.D@	����C@��~��C@�{R\�BC@��N�B@޶���B@
��v�A@�Ġ�"/A@����u4A at t\}C%fA@�J����A@�L
t��B@�=NFsD@���C�E@'��x�kE@�,���E@�����E@���#�0F@�!d��F@�s�=G@��G�G at Tc����G at 3��)�H@뜃xGH@�W�ܑH@��vN��H at p#�/�1I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������S��,I@+]�$�H@‘��A�H@�<5J�H@��)vH@�{E�
LH@���:#H@@�7�T�G@
��q��G at D]O�G@�
� z�G@%�$��fG@�=��^EG at +�T�*G@��0��G at Fȓ�C�F@��L�%�F at M���D�F@�S�̖�F@�F5jP�F at K�
J�F@=9Ak!�F@X3���F@���p�F@%���pTF@�>}[�
+F@�\ꓑ�E@�K�yE@�1�
2E at z�A�D@
�ݵ��D@�h`�o_D@�$��i"D@��@���C@�����C@��1��C@�"�7DC at yut��B at FZ6H��B@����iB@�&-'�SB@�Ǵ�VB@��Kp�A at 6���UA at QV�8"A at c�����@@�ӽ#T�@@�ڋ�{@@���N@@ll��e-@@�
+OI�@@��m�0!@@ل�G�3@@o/�$�L@@�s�.�q@@��͘@@w���3�@@豖O�@@ꁚ��OA@��g���B@���֛$E@�b�=��G@�����I@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
B@]ޒ�<�@@����?@
x#�v?@����Yb>@���e��=@��0=@�i\*L�<@��#Z<@n
���<@���;@sw�{Ւ;@�O/0�Q;@�����;@��h�:@��-���:@���o�J:@��
$�9@��"��9@�8���+9@�N2���8@>���u`8 at wF���7@���
6�7@�"��;>7@��y
�6@�ZTj͊6@�ܞ��76@
z�S��5 at w���v�5@�j>
+�w5@���vNF5@[��&�
5 at 1�@
-�4 at r]���4@�}y��4@
�J��4@���k��4@}/��4@�
7�1d4@�&i�444@�\�V4@�
���3@>SZW�3 at 0��R�3@@Q�3@�"�g��3@ ����3@~�|�?�3 at nط&�3 at q�c
��3@���=4@����&4 at T�aP�c4@���K�4@)�q	5@�
F�w5@������5@�Fg�6@�-�_N�6@���g��7@��x���:@�����,A@���zlM@�����������������tQK@
�����D@:dw�b�D@$��cE@<��]��E at a���d�F@���>�ZF@�<e��4E@������D@ ��܇D@��L0V�D@�N��E@��;.qD@��� ��D@ �}@�,C@
C��&�A@� �E�A@Ͷ�P�A at +��>B@E^U[KD at 4CYK5�E@�$��h/G@�H洹G@����G@��ݻ��G@ 
<�H@��5Q4)H at 8��? [...]
+�G@��hY�G@��x`G@�
���<G@�ƻ�
G at m�
���F@�;O5r�F@�6�2�F at r��)�F at pz��ϒF@ g�¶�F at sd�`�rF@@�<�kF@{>�gF at M9I�vcF@���`lF@��DM�{F@��u�
wF@
��?
4F at Lh�!��E at q]�-բE@��t-�WE@��Q0�
E at lR�J��D@�=n�|D at f4�W4?D at o
&��D@�L��C�C@%�x�<�C@�����C at Ou�D�5C@�M
3�B@��5���B@��֧��B@���.]tB@
-��nB@$gM�A@]?�|�A@�lj@�QA@�V�Ԟ�@@�-��iw@@ifn�.@@�fsU��?@K��}�?@�Dg���?@@BA��?@�G���?@�	MTK @@<�m�G@@ʍD�p@@�s��g�@@���7��@@\��!�&B@��P"׮D at .��|(�F at +�gj��H@)�'��K@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
�`-=@-�& �<@�#�n�<@�z+�S<@o+{J�<@}h����;@����;@�Y�L�P;@�$ł;@��(H8�:@�jrg(�:@�f�d�T:@�S�:@�ןWK�9 at wIiSL9 at L/Ր��8 at 3AB�K�8 at f�G��)8 at pDT�7@;�Y�x7@�����&7@� U�6@����c�6 at +��nu[6@�3R��#6@�R�
+��5@�r�"B�5 at 6��X"�5@�����5@|�!��5@���}|5@��?
�a5@8�@	D5@�3&:
5@|�Xױ�4 at .h�p`�4@<���'�4 at M����4@��O~�r4@[�:'}a4@��y�Y4@��LZJ4 at E9��nQ4@`D���s4@��(�ۚ4@���=��4@��rϱ�4@��b��
5@��4d>O5@�A~\��5@�@���6@	x<fC[6@��̗��6 at c�����6 at L
�B�7@����E9@�7A��>@�C1$�D@����������e�U@( �ku�D@|V[`
VC@ʈ ���C@�A�7��D@��=� F@'�IF��G@��n�EH@��n�JzF@^Fy���E at K`�+F@{�Y�(G@��z�Q�G@` �.�F at H���2&F@���<�D at q��d�C@��c}FB@�R��
+B@�^^�x�B at -4���RD@�Ð8d;G@�Ւ��H@�[�"
J@Ϡ�B�J@����xzJ@^T�K@����J@�
�yc�I@j����H@ش�q{H at G ���uH at I�
ךH at x�m�H@�D���I@�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������E�EI at y��ëI@]w�Z�H@�i{���H@��u+<sH@�y�@H@���
H@}�a���G@@5=[�G@�Wz
+
�G@>��t�eG at Zi�
�;G@��J�G at a갴��F@�S����F@���� �F@��w���F@�6=QrF@����ZF@��Hp[AF@�
?�3-F@���WF@��	��F@�u׀ F@�
�/F@����F at 8��U�'F at +@^�_ at F@�b�IF@��U
F@�wW<�E@�I���tE at J�m�
)E@VT
,�D@�/
{��D@�2
�fD@����$?D@��(V#D@:;� �
+D@�_�og�C@��kX)�C@�7lnC at C@2�ëC@�DC���B at Y�n#n�B@�Q��B@�(�f�B@��ĜϛC@|_=�B@�S@��
B@
]ϳ5�@@[O-��E@@�1
�N�?@2zPu0O?@v�T�!
?@M�5�
$?@�:,P?@�)g/�?@��1
W�?@�����"@@����SN@@�~��O�@@���VTbA@��f�C at a
u`�F@���s��H@�� �4�K@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+˯V5 at h,+�F5@
��j�,5@N��5@�
�S�
5@���
��4@�=
�5@���K&5@�B"0L5@��x�i5@�Ț8�5 at O4g^��5@*I21"�5@\SZ��A6@��ds–6 at l�wk�6@{ �
E-7 at hD�*h7@�L��@�7 at HP�6
9 at +̒F=@,��Ĩ%A@�oHC*E@�T�qdQ@���2��B@[
��W�B@���U�C@�
�:�hE at V�B�2gG@��-�"I@�II5۳I@�r��eH@�!���H@�!�jKH@|�M�v!I@�m;l�I@�Ԥ�Y�H@��.rrH@//��"G at z3���nE@��pBFC@�'6
ƣB@������B@��v��C@�t�+�
F at 1�ۯsH@/��JK@���������������������������������������J@�)�3�I@ۡ �o�H@���-+�H@�
�fbI@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������&x#�!I at be�x2�H@SY"��H@�{��H at NJ|kaH@ʵ���/H@�� [...]
PG�F@:����F@�H�
�|F@�QDzLYF at K� ��:F@M�ԋ F@�/h`F@��\��E@"���[�E@
)�j��E@*ݸ���E@\@&b��E at 0�����E@��m��E@�^�\��E@}��*��E at R~в�F@��/F@;2��
�E at 2=�¿{E@�z��1E@�ȣ4��D at h�2
+�D at 6/�1<sD@ž:.FD@�@M
D at gw�w+�C@�٢���C at g�
κ�C@��Ȇ�RC at a��lc"C@��Cy@C@��Q��
C@�5M�
C@y	��6D@V����E at h�i�b=E@r�ǬD@�67��B@�l���@@}`�`�?@>u���?@[�>��>@�ָ�>@o��jE�>@���>@�U�tG?@$��Ճ�?@F.|Ԙ�?@�f9�7@@r���@@�Tk�bLB@��HS�E@�����H@��WB�1L@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
l:@(�S�6:@b܇��9@�ƥ�K�9@��83�^9 at k����9@�~�c��8@�ISM^8@	J���8@�����7@��wa�7@�?�Qpl7@�.�]�G7 at S
��%$7@���c<7@�,2S��6@y�_��6@�u�R�6@�^Ow��6@'�>s�6@�	����6@��^Y6@ܬ��<36@�əp�6@\����6 at g�v0��5@�$�5@���74�5@��H&5�5@��
�5@櫼��5@?�z� 6 at rį�� 6 at bZ�'�A6@�I[sfl6@|Z
+�6@
vUn��6 at Q-�r;17@�]|7 at B1����7@�����7@��`��I8 at J��?�9@���N
w:@>��l?@���$C@�Iu��!C@¸��bA@��W���A at Y:%�˭C@	�L(�MG@�_Q�"9I@��������������\^�UӉJ@@/��bJ@�`��oJ@����������������ԫ3K@(�
U>J@�M���H@<
+P�
G at x)a��D@��dHjC@��K�wgC@lU�U�C@]EV��FE at 4�:D�G@��!�u
J@�������������������������������������������������ȉTx
I at 0	�I@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������͜a^�FI@ [...]
+F at S�3���E@������E@���YߵE@���UO�E@�,T�ʈE@��_TpyE@/�
֣pE@$QF�kE at rr�:VjE@[�
]NsE@ F�� �E@�+���E@�-K��E@�s��E at +
1�E at K����gE@�Z9�%
E@��D�D@	.�鵐D@�-�@�VD at s�Q�D@�ΰ�&�C@�.�LU�C@�S2�~C@
%M1�KC at AŠ��C@��(�_�B@�Z��c�B@�kX�B at H�S#�C@;8צUD@Ä�3�jF at 6SMv<bF@�Ϻ�yD@�,�AD�B@o(�rA@�
͟
@@&���ȹ>@�,�ag>@ZV�4�B>@sL/>@��
\�Y>@�����>@$r��?@G���_?@
ǘ�l�?@
�å�=@@�jv_AMA@�Ь@\D@��
2FH@��]'�EK@��������������������������������������������������������������������������������������� [...]
�|�"G>@�$��=@@�(�=@�c��X=@��!.!
=@u�8��<@��ڇ�<@�t�
y<@N��A�/<@NҎ90�;@�T��V�;@����_;@rNT·$;@����n�:@*�O�I�:@�jc�ۂ:@��v
�Q:@޹��K
:@N=x#��9 at W��H�9@�A�lK9@&�]��9@
���8 at -�5�5u8@�A\:?8@�b�O�
8@�e���7@����7@�yR�G�7 at _	���7 at UC/�G�7 at .r0+�7@�!��n7@ޘaEP[7@�)�"�37@
����7@��6 at d:Q
��6 at -�)�
+�6 at Mf����6 at 4�fR��6@!}^�w{6 at Mi�@qn6 at CZ�x6@�l�Sœ6@
+�L��6 at -��N?�6@�W
���6@�X�}�!7 at pbHZ
S7@��6�e�7@�[�W�7@� YF38@)��O1_8@*-�Z�8 at M�����8 at K��	zF9@�1��:@+��

<@�.�D<@@4���%A@�x�
�@@ɦ
+�_(A@,�7y�D at K���m�G at O���!UJ@�����������������������������������������������������������������
�fJ@Z�BD�H@�u
��pF@�
����D at 7#AƳ<D@��p
nD@�\�9�$E at uw��>�F@�x�e��H@�x~f�K@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� 7� I@:\�|��H@:�l��H at F����H@�2NgEhH at z*
�)8H@�'wZH@,��|��G@����G@ ��:vG@����DG at +|�I�G@�p:���F@
+�nߩ�F at E�$���F@�
�w^F at e1��1F@�����F at u�а�E@��恈�E at ZE��_�E@���}�E@�V�ltfE@�`�B�NE at xim��8E@���i'E@�p<�X
E@�R��vE@��|a?E@�T��"E@"ab�7E at cD�`lXE@����E@�
�w
�E@�cz��E@��c�kE@�_�p%E@��F�D@���7(�D@�׈:9eD@�x�k)D@�
�M��C at l
;���C at qlReM_C@or*&C@��˝Y�B@���ݽ�B@���E��B@ΓnoO�B at V,����B@
y��f
C@��A!�C@�
�7��D at N����C@��
$B B at G1�}%�@@����x?@�{ 
+o>@Z:Zd�>@n	׀��=@�
���=@x����=@���|�
>@��G�f>@]�d���>@c�-?@f�L��?@ �%�r@@�O*
1B@TCD�G@%`c���J@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+Q6-<@_��K��;@7���<�;@Q��
�l;@
����5;@���c;@l@��;�:@�鶖d�:@$<<3i:@�@!}5:@�E`��9@�����9 at y3�\4�9@|�
�BL9@�<l��9@a�h�8 at O����8@�lo�B�8@����Fd8 at R`
(I8@Ƣ��,H8 at Xr#�D68 at y��b!8@
#/-8@%Uv�7 at T�`p�7@�F��7@����[�7@�~גz7@��(�m7 at Kk�"�U7@�޷�?7@��
.�17@6�Z�&7 at q�	_k17@�<x�PJ7@ւ^��n7@�~d�B�7@�Ycu��7 at X�3�0�7@��.��8@���U<8@�gV��y8@��Pѽ8@��t9@�x$L�29 at F���6b9@^�+$��9 at bKz�&8:@�oCNz;@��f֊�=@���TR/?@Q��O?@�8Hs&O@@
�i��C@����H@
$%m�DL@�����������������������������������������������������������������������q�4.J@�<dz�MH at HԂ��
G@��="��E at Zc(Q�*E at e��q��E at Z�=#�<F at z"&�[�G@�>�Ie�I@������ [...]
+�F@���*n�F@�r
jpF@�y�[�AF@{��y�F at X�䞗�E@��r��E@7M�E at w��0pE@:J���NE@�&��1E@���E@MJ�` E@���D at f
9���D@,ʪ�0�D@ז����D@����H�D at g��K�D at W�T�D@��G�.E at wZ��KE@{�H(�}E@����
�E@�Xm��sE@�y���7E at CG	���D@� �ٰ�D@%��ˊD@�����QD@t�TD@���E$�C@���49XC@�EJ��
+C@�$�3y�B@��~���B at dp2��nB at v����uB@�N"�`B@����=B@#�˙LB@�+x dB@�{&��A@�i93�@@[1܁�?@U��=;�>@!�+>@[T����=@�Z?@!�=@�� G�o=@�x:�U=@���!�x=@�VSUT�=@ˠp��'>@V�n4��>@��oxN
+?@1h��?@F2F���@@��k�VD@�
�O��G@�`��rJ@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
?n�	:@�#D;��9@[�:UӨ9@�k|9@�op�7V9@�mW19@���x9 at v����8@��@��8 at .�7�L�8@�'[)k�8@�(}0�8 at PΌ�&�8 at o�7�M�8 at _�t��v8 at Y�`�S8@�w���<8@
�D8$8@�r��J8@ߔ�a��7 at 6Bi(]�7@B8���7@�
+Ey�7 at E�T.�7@��c���7 at B�k�
8@
� gE8@ٲ;d�i8@�6)��8 at LIz,�8@�zm/W�8@
���!9@�u���a9@>��A�9 at NʜZ��9 at Q��$�:@M
+��A:@
+�gyZ�:@Bt`�c$;@�>�C�<@|M�%��<@��}4�=@�^Ӟ �>@G�TLimA@����`rF@ ��uV�I@�������������������������������������������������������������������������������x�	J@��ѝk�H@�?v���G@ػ�<�G@Ȃ�?1-F@����F@����GG@��P,�H@��`בK@��������������������������������������������������Zx]�)I@�y��.I@�������������������������������������������������������������������������������������������������������������������������������������2]I"zPI@��:��I at _
�.��H@'cP���H@̛O�q�H at n�Z�h [...]
ш|D at 78���D at z�9q��D at 3�҅��D@��y
+ E@ۢ˜�XE@�4x�$�E at o�X,}E at a��sIE at j�Q�0E at I�=�j�D@���D@'�mVD@ۮ�FD@��Z:�C at dۭ�LC at f?�U��B@܏R�ΕB@�	`ߞYB at wpM��2B@,��E�/B@�7)�A@(E���A at s��
-A@
�T
�@@�
&��I@@u��K�?@X€�L?@�}���r>@g k�p�=@��ኵu=@B�\a�B=@� ��f=@pNR-��<@-����<@'� �@3=@��`э=@�3w�>@ض�Wn>@�3��� ?@�nع�$@@��ۚH
B@l��D@��x�+�G@����BK@�������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
���|@@�a
1'@@�����?@
+�B�o?@^���q�>@�3�=bd>@*�B��)>@
�7�G�=@��ݲ=@
岎�s=@���$1=@����N�<@x5��O�<@p�<��q<@�A\�K6<@V��*��;@=�H5��;@{�2r�;@�U�c;@j��/;@�%~j��:@m̆� �:@��7Ω�:@dy�!V:@� /)&:@�]��9@���
+�9@��ɕW�9@���%�9@^���u9@����K\9@
��cP9@���^�[9 at m]X R9@&¤-F9 at C�ݤ%<9@��t=(9@�m�s9 at P��x�8@���k��8@�I}ھ8@����8 at gt
b��8@�_�VA�8 at b��^<�8@d�`Z}8@�U�_��8@�#�ʢ8 at u&����8@̌��?�8@�0I�9@��{,�?9@
-��wg9@
+�Ӂ��9 at z�
j^�9 at g�
�� :@?�x�TD:@��6��:@���h�:@َ�K��:@
<��;@��g�s;@�s F]�;@�IЃX<@��vX;�<@�1��-�=@���B2�?@u�����C at v��׬ H at w��U M@�����������������������������������������������������������������������������>�H���J at j��
�I@��h�H@~�Ν}G@����	!G@����G@�)8q�IH@�[la�I@����������������������������������������������
&I at V~"��H@��i�H@�`R
+I@�������������������������������������������������������������������������������������������������������������������������:�-I@�\Qt��H@��{L�H at E�5�H@�n��tH@
��}IH at Q�( H@�k<��G@�
&���G@���/�G@�+�(�jG at J�u�Y<G@���i
G@ѷ��=�F at z�㫧�F@
��d\{F@��/��GF@�3 �F@��4=F�E@:���9�E at 76��k�E at Yv�ѪXE at 1��1�,E@��l�E at 0

��D@�ɟ��D@�:'c��D@���\
zD@$�cr�aD@���#MD at XvS�6D@:�11�(D at y`���'D@��͍�4D@����RD@�<��f�D@�U��ԿD@����E@���!FE@ų�~E@[�}�c�E@
_8\�YE@>K��T3E@�  f�E at 8�A��D@����|�D@\�{�+>D at pKv~��C@�2
Z
]C@
�tK[�B@�#D�YnB at GE�1#B@�3ޭ��A@�[!�J�A@���}4�A at G�
��,A@%�睤@@R�U��3@@JdN[K�?@�P�811?@@xH��>@G@:�8">@�ʋ�؂=@��J�*=@���?j�<@,�[?g�<@��F
��<@��¢O�<@�Dݗ��<@���r[�<@�
⛤d=@�<2a�=@�HI>@��?@k�1�=�@@�\ڴ�yC at C��Ib [...]
+�s�;@��ZG�g;@ü�ۥ8;@Ӹ/^;@�y���:@
V��%{:@��81K:@6�
�":@z!^�� :@D�Ҳ��9@�����9 at w�Ҝ�9@��Q���9@�*�9@ߤ����9@�B�h��9@�xLr�9@
+pz�0�9 at Uȱ �n9@>G�4
V9@��xp&F9@�t�Q19@�c�$9@�E�n�9@��똛9@����9@�+�7�9@�	MWj$9@��;Q?9@��P��e9 at +_{N�9 at GP�Hƽ9@�}tN*�9@�+:@���4�A:@-��,�o:@�R��o�:@��F���:@�yJ@�
;@�X؅�P;@����(�;@S����;@�a���;@~
L�4<@-U�Y�<@j�"p��<@=�\��i=@J�|k�>@�qu5l>I@
~�P�>a@���������������������������������������������������������������������������������������������������G�/mJ@�A('�%J@�BX͌�G@�J���G@��z�9
H@;��·�H@����eJ@������������������������������0���I at m�go$�H@�l[��H@��`�H at cť
��H@#f{܇I@���������������������������������������������������������������������������������������������������������R��
JI@������H@��?�H@�ϸ���H@�VcWH@�bۤ�*H at F�7o\ H at Aל�q�G@%
�5��G at G ��#�G@@,ǫUG@��,�N&G at FC�
��F at 0��>��F@
LN�n�F@���PjF@��u�>8F@`�oXF at L�*ݏ�E at D-�o�E@��6��qE@;N	CE@'�� E at n�|P�D at YU.x�D@|
L{w�D at 8i0CjD@�C�JD@��Q�\-D at p�L\D at d�i��C@߇���C@��ܱ�C@}`�X��C@�}�Fv�C@ 0��
D at T
��$[D@���D@�l��=E@
(��<ME@��r	�E@�}��PfE@�{��f7E@:�0VE at 1Z��6�D at A�b���D at Db���D@����D@���KYD@���+�C at c:ԜL�B@���EraB at z"�5� B@@f;_�A at w@ 6zA at Tkя@A@:���!�@@NhK
�e@@��V���?@!$� Q]?@7m)�<�>@(!�W>@^���=@#Q���@=@j՞�$�<@�S�/��<@
6@��q<@�᪑�H<@��B��(<@S*��
<@V��I[<@���x�<@�A؊):=@��S+�=@�
��B>@hB�
�?@
5���A at t�(�9E@>1!�
6I@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������RHC [...]
s>�9@�b��w9@;>��p9@
v�Afu9@��xOd{9 at .1�
B�9@���lϵ9@�m�ܖ�9 at AL7 :@蝳c at V:@�2�΋:@"��e_�:@@��3L�:@}f�

;@�$Ck�G;@7��o=;@�P��[�;@_�Σ�;@��齖 <@T�ںXM<@��-��<@1�� ��<@94����<@�� �� =@�;Ԣ=@�!y�=?@���IV�C@���d�N@����������������������������������������������������������������������������������������������������������������@/��)I at w2zs9
+H at C�~6�G@����?�G@\Ɯ(2�H at SxӇ�J@���������������������p��1f#I@�sN>m�H@�
�_��H@���5ϔH@���H at Q�0��H at Tof_�#I@�������������������������������������������������������������������������������������������"goI at Q'=�H@��=�>�H@3m_oH@=,��=H@��,@H@�o�A��G@ɂ���G@
L���G@עgG@�r
�=G@����mG at 4EY���F@�+#SR�F@��62�F@�����TF@�9D
+&F at W�Ў�E at x����E at _4}�E at w���^E at 7t
o�,E@�8wVP�D@��
��D@�a�B��D@(���qD at BB�<DED@��1E�
D@$+z�l�C@�N���C at x]:��C@ 5�r!�C@�E9��C@'�1��C@�����C@��x�ָC@�*#b��C@���&JD@
���
�D@�/P��#E@����nE@
�o��E@�Q�w{LE@
s	a�E@�����D@��~��D@�C�T�D@�����eD at 4�T�hLD at C���%D@{�U�C at Y%�O'C at w�N�B at Y^ ��A@/�/�d�A at 3�o
"RA@�U�nA	A at b���@@ ?��h@@���t@@�ǀ��?@#�����>@d>Fm�T>@`�Q��=@Ɇg��
=@�c��]�<@yKN�EZ<@����	!<@��Y��;@Օh�B�;@�m�R�;@�
�\a�;@
��^0<@
�]䆡<@t*sGO
=@�x
�ϝ=@�'s���>@����@@}���
+D at s��A�G@���&V�I@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������,\�mz�J@
!��#G@�g$ [...]
߿�$�:@�M��:@��p�:@r��s:@EՊ�K:@�TX&:@4�+5:@�Y�`��9 at 2�,۫�9@��L�)�9 at 40�l�9@�����9 at 5� =��9@`�B~;
:@� �
[<:@���tZ{:@�ݻ9��:@�z��";@�
 /A;@y�y;@6��;@C�Y��;@VW&<@���s�[<@�6��<@=|��]�<@�1W��<@݆���+=@|��יP=@��~��g=@$�t%��=@6����=@�
+�t�j?@���BuD at vx�|gK@������������������������������������������������������������������������������������������������������������������s�C�I@�䳅��G@���x�YG@���XD at G@wBw4 �G at Q�m���H@&JD?��I@�d� 4�J@`W��tI at N��rU�H@]��2�hH@��EWH@�Ũ��hH at v�
*��H@�{�	��H@�� �2�H@����LI@�����������������������������������������������������������������������������Y��jI@\�K���H at St�i3�H at 9
���eH@���,H@�dv��G@��o ��G@
ټ� �G@`�2��mG@(�yAzEG@����,G@ו��_�F@c�YO�F@�s�o�F@�ة��pF@����� [...]
��E@
��[:�E@�>�Y�E@��LE@�F
�E@���g�D at 6?�#@�D at i�n
+��D@;�

nZD@s�y*D@�fC �D@�wK���C@)�k�ֶC at Ty��h�C at 1z
+Y�{C@[06�ZfC@

�TC at M䁏�OC@�f��ZC@�И �C@�;��3�C@�=���PD at 1�]��D@ܭiY?PE@��
�E@ӫ6x�E@�O3�;?E@ޮJT��D at B2�{��D@�R\�f�D at A��NkND at S��D@�CV]��C at 9��?I�C@�13IQC@^��/��B at 5D���B@K�
B@ӌ���A@����.xA at UOZ�.A@���Ԧ�@@t����@@���t|p@@>C��*@@��VIJ�?@!����>@��@q��=@S��;3�<@�τSn<@��߾i<@;S�uM�;@y#���;@)���y;@���Z;@���XUR;@����;@���k�<@���Ր<@ 6�V�
+=@�S��=@
uF0?@=U����A at P���2�D at c��]�pG at b�:v(pJ@�f�9�J at c%��OpI@�_��jJ@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
�����A@�����A@�v�m�@@�<3R�@@
��1o:@@�����?@E2>U�?@�&u��V?@vI��4?@mC\4AC?@��13LQ?@�U'C�2?@~�f�>@��'��>@A�s��>@�3�'T>@(偲&>@)t\���=@��	[��=@2Q����=@�f���t=@G��
A=@q
�==@��)�<@d���`<@
X /Q
+<@�hT�%�;@�
��t^;@�7�
;@����5;@�X��;@@Y��;@�
8�;@��Zm9,;@V�mh�A;@[�{��M;@�ư=9R;@�X4��2;@ӫ�ޏ;@�;R��:@C=��H�:@�'F<�j:@uh��T:@���=:@ڤ���.:@�VW�,:@�3˂0:@։��FD:@C�;��`:@F��{Ћ:@�Rn
��:@�޼
*
;@��,�8V;@�͓
+��;@�(���;@���T<@bZ�|F`<@:x���<@�+�be=@��B�$C=@f�e� p=@P��
��=@�4����=@Y��<��=@���>@�Dch�=@�)�R>@֏�lR?@��q�rA at z
��E at F�h���I@���������������������������������������������������������������������������������������������������������/u���I@"up�+�G@ż�>�
G@�
+�F@����"G at P0�J̠G@�R �daH at 8��ֻ�H at T
��H@G�ҜWH@Ǝ� H at BєT5%H@���[l?H@��q�3bH at g/��<�H@>��m?�H@���>[
I@�������������������������������������������������������������������������I@��@��H@;]���H@�l3�_H@��N%H@�@�G@�mo �G@�e�0��G at A�QG@~db&G at K,5���F@%+�O��F@�;�`�F@'����F@חC�\F@
�j��,F@'׏c0�E@��W�3�E@��z:�E at yk��pE@��5?E@
�k�k
E@�M���D@�f����D@��ծ�tD at h4|�FD@R�o�D at F�\���C@ }�&C�C@���)
�C at A���C@��Y�\C@^jr�;C@�q�(d%C at h0~=C at T��"�C@뢴o$C at -Ȟ�FC@��j;r�C@��2�$D@`�n-	�D@*Y��UE@�<��}�E@��0R��E@
�?�bE at S$���
+E@:� 8p�D at 6�`��lD at C��$D at 2ƺI��C at 6��綕C@����GC@���<EC at u�.�ؿB at -��sN{B@�a[-�0B at n��:s�A@����A@���SinA@?�ݏ�6A@�
M*UA@�B̔y�@@8m���~@@�v��8�?@P����>@������=@��ʚ��<@ �kQ�Q<@� ����;@�+E�=�;@x���P;@m��A$;@T�c� ;@����:@[u�i;@@1c* �;@�S���<@��5?�<@l
��=@So�@��=@.�z��@@x5rX*�B@�+O]F@���
+e&I@�͑��H at q%�mu0H at BL{{+�H@�w����I@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������I at ynf�E�F at g3��=C@��S^ھA@�79�CA@\� [...]
+)�:@3
��:@�)%��:@un���:@�����:@
�W�*;@fE��Op;@7,�Ȼ;@Ee�A
 <@��

6<@�oa��j<@^�D��<@�A2K =@�#��a=@�\��=@'����>@7�,?>@�ޛ�v>@�t�
�>@�WH���>@���A�>@��^i�>@6�u��O?@s��E@@�W���A at XM��tE at 3jJ�R@��������������������������������������������������������������������������������������������������$@#}�3I@;?�_��G@�<0��F@>FҒ��F@��\���F@�j��
G@�?
uwG@��0��G@�0kO��G@�B0L!�G at Q����G@%��k��G@���8H@�z;�BH@<���qH@���T�H at a-{i�H@�}�)�LI@��������������������������������������������Ց^LI@�'ֺw:I@�@m��I at 4(�"��H@���ա�H@�U
��dH@��.f6&H at P�"��G@����G at y�
��sG@�/1Y�<G at 0v�h
+G at qgW�F@�8
γF@=�Y-�F@�V�z�iF@����AF at v)W6F at O
�f��E@$I�d�E@��
h�E@�1��\E@��V�-E@<�*�=�D@��*?��D@��vA�D at 5P��cD@��?Y�1D@���[�D at N��W�C at H^�+��C@җ�e�C@= 1��tC@�D��RC@ՙDK)C at oVԳC@�hR
��B@�v�Z�B at fa
���B at k�f��B@��_�B@��J�.C at M՛���C at utq)�ED@�#�/�E@�'ד�E@
+�c�E@�����CE@����
E@ٺ*���D at xtp�D@'����4D@�����C@
�(���C@��g�PC at F�7Z�C@`��]��B at q��	�B@� ��sB@�1"�.B@�̓���A@~P��μA@�퀞A at Sd��Q�A@ыЩ�\A@@jF��@@Z^ټÐ@@c��:d?@��2�=@,��v��<@z�H"9<@T6��;@~���<;@(�)�k;@��n$�:@�Rj�:@�����:@�ۄ�%�:@�n�5��:@��8�;@
���<@�,��w<@P%&��=@:ۻ�FQ>@
���A at NW��2�E at p%�a�G@��<q�G@/��U@�F at Y? �T�G at _���˷H@�q�W��I@������������������������������������������������������������������������������������������������������������������������������ [...]
��(�5@@t��@@=���0 @@8b���?@!<qm�?@t]�=�e?@��1�:?@?���6?@
�p��>@�‘�i�>@
�q>@&q⟭'>@�
+�V�=@|(\Pe~=@
����%=@5ջ�h�<@:�����<@M����?<@�5Ëc<@�`��;@
�#�;@'N-�q
<@��6�)O<@�5��r<@�<�1�<@�
+4��k<@v(q�<@kI4s��;@Ql��};@Dxڔ�X;@q�Ó)P;@5!���E;@
@Q�;;@?@���1;@�^��-;@�C�1;@�;�eC;@[�m�Z;@� h�;@��i6s�;@ ����;@�F�pL<@�'\�
+�<@�
`��<@'aD�Z�<@Fe�?=@
+nv�AJ=@�]��#�=@�ʽo�=@��@��Z>@��
�~�>@xo�
?@B
�D5T?@��'�9[?@�j^�?@d�+�$$?@�y�/��?@�����
@@���%�@@�	UT��A@�����D@������U@�������������������������������������������������������������������������������������E
+�<K at s8����H@���{9fG at MM�r<�F@�u8ҍF@�`����F@�7.ܨ�F at R�D^��F at T1�w[:G at V��M�gG@kr�e�G at z��P>�G@ށ���G@�l3�&�G@��
'�)H@�.��YH at I�
A��H@	�3��H@��
�4I@������������������������������������gr[I at T���H@��@,�H@
�)�L�H at Y�J尗H@�RY bfH@���K�-H@���O��G@�9��ԱG@���$�rG at tk�;Q5G@�����F@��˳}�F@�g���F@%#��ukF at C�եFF@{���!F@�~DU�E@��0���E@�jj
r�E@~wE@�{�!GE@���wE@ۃ����D@�E���D@�
+#�[�D@;�;AUD at c����"D@�3
۰�C at W��;A�C at 7��/�C@��]@wC@�
+�]�^C@��IX�>C@�NA8
+C@�aO�B@/�
���B@�"�њ�B@'�����B@���C�B at t.����B at Z����B@�ߪ��B@ړ�EoC@!�pɀID@����1E@�I��[fE@�B&�-�D@�
.{�D@�4@�D@�KFٞ�D@�byLE at C�vݑD@�:���(D@�iD::�C@
aP�zC@@����GC@��=t,C@��Q	�:C at W~-4C@�j-� �B@��B@x{�GB@- u�3B at q]��A@���5A@�ᄴ�@@bs��YL@@��1q�?@�"̸��=@��u�`t<@�F"2��;@|k�NJ;@|H�x�:@�_�$��:@G�W#�:@�=uhR:@��
�2:@W�&:@)?n/y:@&$5��:@�\2~;@�af���;@�a)��{<@��4v�;=@�ѷ��?@��!~�B at K�pz�zD@��	aE@*� ���E@
��,xF@��vI�G@Ū%���H@�Gٜ"?J@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+oA@�g�N-A@��R�p�@@��{�@@��'>��@@沛�|@@�W�r@@�$�
�@@ۓ]\��@@Nh(,Å@@�x0��k@@�B�^`O@@y��Q43@@�#p@@���@@y����?@����?@ަt��?@�2jh�N?@jv�)�?@��l��>@#���&g>@J��n>@|n(�i�=@��=�cl=@]=��!=@��n��<@�ks�
�<@��Tgn<@�`��Z<@J�PH;�<@�x6
U�<@��A�<@p� N�
=@�K�p��<@ �a)]<@��]�%<@8t;�z�;@)xf���;@���E�;@���E�;@�2�ٜ�;@k��7�;@�߶�[�;@�����;@���y�;@�r'�u<@�W�ɪ%<@2:{
W<@VW��,�<@kJgg:�<@NR8�b,=@��W�d=@�f*�=@����=@�S��#�=@\Z�C��=@.9�4>@FE۪Ȉ>@f�s1
+�>@W��[?@���7�?@�
 @@W
��?@$6�`�?@7��K��?@l2�6P!@@儓4^b@@�����@@��įA@��#�I@�&��:�O@�G?B��K@���$FJ@��^!J at 2��q,�J@��������������������������������������������������u?�J@mW�”H@ٰ N8G@�O
+4��F@�[j��^F@Ơi�-pF@���g�F at N�z��F@�^�M
�F@��2�BG@
+���GG at .�D�vG@��Ჶ�G@��8��G@~�CH@�
�LfHH at 8!�֨�H@�'����H@�~u�I@�����������������������:�MI@
+��PI@˳���H@{s�F�H@���}��H@:���N}H@Ӯr�PWH@�SҢ�*H@���t?�G@"	���G at o
�<_|G at _�eD�;G at 6���F@�eZ{��F@^��Yl�F@�OqY�NF at E�{�"F@�����E@�\t�I�E@����E@{�|��E@"cRI�`E at 6;�2E at 5H�W�E@�
CT�D@�Ի��D@\!�R�tD@�6<�DD at LnD@+X��C at t�,ׯC@���o��C at X�Be�]C at Ir���?C at l�!*%C@��P\C@����B at i)�/��B at H�C�@�B@ޔ�D��B@#��/&�B@����~B@�:~j�sB@1�zB@܅�f�B at v�Y�OC@�e���C@�$��LVD@
+Y|f�tD@���
D at sZ3Y��C@��#lz�C@o�xg	D@����hD@�;�˭D@�+}�ED@:6�I��C@�W���C@�%��Z�C@,��/pC@�o��C@<:�ͧ5D at e!���~D@��.D@ �����C@�ڋ�C@�m���A@<��g�@@�>�e� @@U�2V�3?@
8� *7>@0��Q =@�lX7I<@פ���v;@�]���;@�bP|�:@
�:f�n:@#���?1:@ƞ��R�9@�q�
�9@=}8Hv�9@�/�Y�9 at 25D�s:@��>e�:@�:��W|;@��5�-�;@�h��݀<@�|�\�=@���s@@�`�B at 8ې7=�C@�q��PD@
[tv�SE@�Hs��F@�
�]�!H@�

�ϡI@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������k�U�J@�!5N��G@�����D@��.x
nB@��z��A@�
��\�A@�\�mpA@���7A@�?s�	A at R8�V�@@�����@@E:3�D�@@{>Ⓟ�@@E�G�f�@@Tee���@@n�,g��@@YV��͞@@��c�Q�@@R
���k@@"-	T@@hA��v@@@[����*@@�j+�@@�ץF��?@��6'��?@���0vK?@<̞���>@	���|�>@�LC�P>@�����>@�����=@V ���s=@�8M�1=@�
#�L�<@_x
�@�<@V���F�<@-�[��5=@:���w�=@O�Tg�q=@B;�Q=@
n
l��<@�L��<@c.9W�x<@}U?z
�<@�
�Y�<@�Y��
+�<@귉���<@d�*}�z<@�
z�w<@$�h��<@
�g
.�<@`��(�<@w�/b��<@�Q��]�<@񳒔o6=@bC��=@��s�t�=@�� ��>@j��6Y->@�
+�fC>@�y.�Z>@!/�g�{>@B\v6X�>@�#zp�>@���M�9?@~�I+�?@nb*��@@qϙ_�D@@ṽ�A*@@%�Ʌy@@�T��'@@l�Y��I@@E��S�y@@�<��(�@@.�
�
A@���
>LB@�&�GK�F@�GߝYhG@���?Z/F@����aF@/��2xH at T�1�R�I at e�{E��J@�������������������������������C?�I@��~��H at p3b�h�G@�qžW�F@��f�hXF at y7��j+F at y��BF@~���jF@�F�i
�F@�,O�!�F@(��x�F@��e��&G@��-��]G@�t��
�G@"w��K�G@��-eH@�h�nr?H at P����oH@����ЮH@�rѮv�H@ y�dHI@�������~��&�7I@؋��C�H@���8��H@�r�[��H at Fx��QjH@���PPH@�5�h�5H@����H at q�o���G@�4^���G@����G@
�
+d�HG@
F�N�G@�UǼ�F at b�{
�F at 6���AF@�ؤ��F@���o��E at .��eV�E@ĮY�'�E@�?+�SjE@�L,YuBE@��geE at x}��
�D@��g�ͿD@�jK��D@	lz��aD@���[D2D@���CGD at YL�
R�C at l�R_�C@����}C at ze���WC@�Տ1Q7C@�G
��C@$D at jx�B@}�sI�B@#��a�B@�*�1٥B@�Fe6�B at G�ړivB at M��4bB@� o
#RB@�:>�~FB at F\,A�MB at G����B@�*IlC at D��@�BC@�sW��C at y`�x2�C@����=�C@xa��qC@�	Kf�eC@�F�w��C@�#
$p�C at r�Ͱ�D at K�����C at ZN�,�C@���$n^C@
��RLC@;
��pC@��.��C at 4m;�Q�C@�TI��[D@�d(pE at _�q։E at B}O	+D@(ׅ�[B at _����@@V��g�?@B1x��Q>@�)��k=@�����<@>�,eW<@-�6��~;@��4<�:@�c~:@��L��,:@i��D[�9@�6
�9@�n��9@�X�cg9@�X�hh�9@$i�r��9 at vN�
?r:@&:�s��:@MX+��u;@9���h�;@�g�@�<@c�����>@�u���A@̒�7ӘB@����tHC at .����yD@А{��NF@��bH@��g�VJ@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+m�?@���!?@w�k�F?@>20 ��?@֟)~�?@��O�
@@�h�
D@@m
+��@@�d��y@@��t5Z`@@]���*f@@���|@@�'-���@@���t��@@�� 
�
+A@�Zə sA@��:q
`B@�&�>=C@���x�_C@����C at Dn]3^UE@���4
+G at h���9KH at d��O�I@<<��1J@��Uf�J at T�
I@�����9H@��p$�G@�����F at o춍�eF@[�pF at n���E@���`F@@Np�BF@j�~�uF@���4�F at 2��:��F at d�7MG@����KG at 1%t�f�G@�F�@l�G@x�sH@!ƊF�2H@���"�]H@�����H@��5,��H@�8jI@]@�IMI@�p�G�H at _/s�f�H at k�K�ًH@�q�F�YH at _^j��-H@#�\�
+H@�3���G at d�����G@�@��G@
J/C{G@�(�ŢIG@[�T(G at 3�
�M�F@��0�F@��6NNF@́¸

F@���>�E@�#�5;�E@"��(wE@]�26�ME at F���%E@�l
���D@�(� ��D@��dP�D@�>Nt,|D@�& �OD@�8b�#D at k��L5�C at l�����C@�R��C@����k}C@��!]wZC@��;�V8C@�r�]�C@>�݆�B at IO�+�B at 6�FɸB at gx����B@�*��B@���,fB@
Z��NB at J}��8B@�)l��%B@�:��VB@��t� B@{�:��_B@��P�B@����t�B@:����C@�e�u\(C at ON,�/C at d��t�C at U"�+�C at F�;EE;C at c�bsC@�w$��C@�e��OpC at y��@0:C at T�R>xC at NB\�uC@	~hX�AC@���0,�C@�X�&	�C@2?�E�C@�l�Ϭ�C@����D@��O�E@�p��D@��= [...]
+@@D
���B>@0m?��x=@v�� ��<@T�#�a<@�*T���;@xx*��
;@XY�*aU:@}��W��9@|�έ�9@<wӉ�[9@݁�*�(9@�XO��
9@ӨV��
9@�cVM�o9@���T9�9@��&�
v:@}�i� �:@��n;@7p�@��;@.�[ز$=@����`@@��r'fA at W�w+�QB@��{��C at Of'gE@U-�Q�G@U͙��I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
+��F@�#�E+�F@�ɶi7�F@$	���7G@(��ĜtG@�I[yC�G@�.��G@�;�#<#H@�`zlOH at U��yxH at 9w��H@]��'��H@��p	I@����
�H@���
�H@�N�d.oH at 7 � ;H@��tH at V��e��G at U���+�G@��%��G@]���xdG@��%�:G at DCOG at L�
�&�F@�G����F@*PJ��gF@�8��!(F@
�H�E@�?z�7�E at Ro��p�E@�xj�
XE at +�=�(E@���E��D@�P��5�D@��vb�D at ey�XwD@
+���KD@^�K�W"D at MS����C@��e���C@��sE�C@�ػڅC at +�!��`C@����<C@ P�!�C@ �gPe�B@^L(m��B@רy
w�B@.���B@�tU��wB@ ��Q[B at D���?B at Dy�s3&B@�>#�B@��x��A@�P���A at zn�
�A@7sq�0B@�h���EB@/�,�8B@��]�|xB@�w
�ۀB@�JJ�S�B@�
5a{B@�_���B at 9�r{��B@�7��!C@�z�:>C@�i
5�0C@��2�u�B@ێ�>2�B@(!	���B at 8m�9PC at Y��
MMC@פ'�:C@
+�H�v
C at 4w�8VC at rk�
�
C@:��[JC@�p�D�B@�wvc��A at d���g@@2F�d��>@��+>@,�ȝ�=@Z��<@S�^1(<@V�0�;@�?�=:@9F6e\�9@�X��j9@��R_9@�k�\��8@{�3O��8@��_���8@/s��~�8@��ev9@�Gp���9 at 2,y&wy:@��fm�:@RvP�m;@=���r@<@���p>@�7֒o@@z�n�kA@����?�B at j��؁D@�B�J�\G@�B���J@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
�.�A@�z�B8�A@��
�~�A@*�����A@��f��A@��3{3�A@��ב�A@��G�r�A@�4�
��A@��q�tA@�
+�jQ\A@��fYGA at n�#�4A@c���
A@�HSMm�@@��0��@@fq��@@и��ق@@�B�v�Y@@Fv�/�0@@�J��
@@�>���?@͌sK�~?@+nk�3?@�,�p�>@��ǐ��>@���B>@:boo.>@:	��r>@�UXN��>@��׿uX>@.�y�{�=@Ț����=@��4Ͱ�=@	y&
+�>>@(b�
pq>@�5)�j�>@m�s�>@���|>@j���l>@AHuj>@e�q�
+x>@�-���>@
ߘ�T�>@Y�g�>@���S�>@�͉?@m�uZ�S?@#u��Y�?@3�[���?@�%ij@@��@@?�q��'@@4�5W8@@��[�I@@�q��c@@Mӡ놂@@��m6�@@�
{��@@AԡYA@���g
A@�f�(�A@�C���@@e��:��@@-�

	A@붥c� A@�S���?A at K%��hA@�㥨əA@��EQ��A at e��?
B at -��b&�B@>)
8�C@
+Zk=��C at uօx��D at _����[E@����E@�1O�F@8
+�'�E@��*�n�E@�=���}E@�|TgeE at 9���[E@�=���eE at e^�A�E at Pd.ߵE@��[��E at x"��]/F at p�GQmF@���P��F at d ���F@�(�d}"G@@ý2
^G at +o
+8��G@��I�G at 8<���
+H@�B�]�;H@�m
yfH@lڕ�H@<�8T�H@���
�H at W<O�c�H at T:�uC�H at 0�@��oH@)��J�7H@��h���G@��+�|�G at A����G at r���jG at N�~��=G@%�>�tG at V��M�F at VL��޴F@<��!J�F at N�[�OUF@��g+P$F@������E at Ox����E@�&��E at 9�&�]E@����'E@ߝ|O��D at ec
+�U�D@�}H��D at F='+IfD@��3�8D@�#��
D@�3�{�C at Q����C@۰�$��C@`&akC@��A�~EC@�g!� C@<���m�B at r���B@�����B@�) �B@��J}tB@
+D#$UB@��E7B@^D.�B@�RSxF�A@&�(�$�A@�7���A at 0g�UP�A@�{Ҹ�A at .|0z<�A at Nz�~��A@�P"MQ�A at Z�É��A@��Յ��A@�
�
+�A@/�Me�
B at 21�Z{)B@˅�b�fB at Q8/֞�B@���>e�B@�G8��B at 1,��B@���k��B@�p
e��B at h\�L��B@��� ��B at z^"�B@�Є�B�B@�_J�B at E"'C�UB@�i��A at D���@wA@���@@����n@@��?@h�����?@%�b�fr?@N�?<~O>@5���_�<@b=6C4h;@���c�:@3�N�
:@��iy�^9@�1�a��8@ޜ�S�~8 at x[J@�W8 at +��cbG8@�e�cS�8@F�p��8 at xIq�az9@�2��9@&���x:@উj��:@PG���;@��2
<=@�O���u?@4� ���@@4J��A at 0/�G��C at B��==qF@���h�I@��������������������������������������������������������������������������������������������������������������������� [...]
�i)B@����r0B@���
�@B@&���DB@(.e&!B at j�(��A@�S���A@��1���A@�CH�A@���A at -����A@��F^lA@
�� JA@�����
A at 8��'��@@�2&�@@���
��@@n-@|�|@@�>2V^X@@��0�U2@@�2v	@@�� o,�?@���Cj?@y��B?@~���>@�9�l��>@9����>@�ų��?@G~�Os�>@�����P>@!���7>@�1�y>@��R�>@�yW�
?@�ys�<0?@���E3?@a�R	#?@J�z�?@D����?@PN���?@��b�/?@�/.��=?@�x�_�X?@�睵��?@�4�ܶ?@��kh�?@S�ơD
@@b�@q>@@..*?�Y@@F�Utn@@��|@@�K����@@rcٝ@@v����@@O
�g��@@�� %��@@1\��A@�2#�]IA@��حlA@����ZA@�~��LJA at -A��5CA@�g�
HA at J �
�WA@�MC�nA@���M��A at 6k��e�A@�
��V�A@٢F��B at 0y���RB@^�1��B@���X�C@$/��xC@!�1F�C@<�
+��]D@�h�ѱ�D@��
|��D@� yN�D at O l(��D at F�.a�D at a
�^ E@��ּF"E@���cGQE@/�CI�E@�]���E at Y1iM�F@�	�4�SF@�T���F@
ϓ{�F at K���6G@j���IG at J�[�ĂG at bX"
�G at +w��G@��|0�$H at x�atXH@:!��H@�I����H@��P���H at 0iD�'�H@	�,��H at y��
jH@Ή�K�8H at H
 C�H@@l��G at 8� N�G at v��"6lG@# �8?G@�R�GG at Iљ0�F@�\�F at C���يF@��-
+^F@�%���1F@��R�F at yq"@o�E at -���6�E@�ԧ_�pE@<>
+�$9E@/��RE@�^���D@��]���D@�U�caD@�@�a-D@�x�k��C@�j
�n�C@�`���C@V��zC@�����RC@�/{م+C@$
��vC@�/X�B@ׂ��B@���Z�B@�
$h�uB at 4J�
�SB@�N�m3B@�4/B@�Gs#�A@���P��A@�eJl�A at 6�H�A@��	�/�A@
�
^o�A@�z�q��A at sM��yA@
3�yrA@�;����A@
���׏A at 5�
���A@�a�V��A at d����A@���
B@�
+a��QB@�ٰl�B@���ʠ�B at 9� K��B@�*�>�gB@!�!�CB@�ik5B@��D�|kB@�n��9�B at j�s ۔B@�C���B@��=�QB at W�N���A at v��G��A@���.A@� 9��@@������@@
	�{�VA@*m
�V�A at dې�C@@q�	��
+>@�2ܑ�]<@�W�}tt;@bD_��:@m%'c��9@��{���8@���h-8 at s3DJh�7@`�	��7@��ï	8@ɞ<�gz8@��֭_�8@�ɑ�>�9@���-�:@�_�j�x:@>;F�;@CZ�R-<@0��j{>@���a�@@�(jpAA@
κ-E2C@&�&��E@�" �nH@�"��t>K@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
�ͫ>@ƞ�
�>@?B%k��>@f�|�W?@8T
gA�?@̡)���?@�c�?@m��U`�?@.���o�?@y���ݷ?@�{�T��?@;� 2�?@��<�(�?@��:��?@�4�/J@@���%�+@@E{ڬ�I@@�]��k@@[o�{��@@�x���@@�*�1�@@-D����@@/1*���@@
��D2�@@��C�A at j�g�%A@,bW�CA@!\�>�fA@]���
�A@��7�ѸA@�/�To�A@�Ŗm��A@@����A at 5�=|�A@���I�A@��6ߦA@!1�:�A@�y
��A@�y����A@�d4�2$B@�b�y�SB at W�S���B@�p�)��B at +	���
C@�
�cZC@�.%�C at M�	c�C at N�Z��!D at U����ND@�����vD@&� ~�D@{���l�D@��V�D@��S�.E@�̉�}pE at c�h(�E@�Z����E@`��<�=F at c�6�|F@�4�My�F@߄�V�F@{~�'e0G@��;۱jG@�Q$���G@~Hpд�G@ �1KH@��y*�MH@�K��
H@;?Ћ�H at WZ�F�H at _�$��H at M�`ꮅH@���r�SH@
�E�'H@ź���G@�I�s�G@�턷�G@;{�֩fG at kΐ��:G@��r�G@�+S���F at z�<�V�F at Ŕt	�F at p
+�}�bF at T)QY5F@��tӣF at hK[C�E@
:���E@�
�ncE@
��)E@�!n��D@]쵊�D@"��Gl�D@>
�2�LD@
s�
+/D@��^���C@��}`�C@ёz�C@��84eC@֠r#y;C at v�BQ�C@�7����B at j��D��B@�F�j'�B@�3��p{B@,w��WB@ɭ�Q�4B@���}�B at AT�R�A at NU���A at dJI��A@�<�
+e�A@��9�}A@���,fA@�=-�QA@P#�
BA at i�(&�7A@�2A
2A@*X�%
<A@��1j�NA@��woA@�
[�A@��w���A at Hj�#$�A at 3�vU
B@�!�
�KB at T���}|B@
v��SB@�(�
+?"B at W����A@��n�A@�

Tw
B at +r}<�#B@'�>B@���B@�i��A@~��
ÖA at f�0h;FA@�ڋ�eA at -�J�yA@yQ	^1B@�$̣%C@��nl��C@�T8�|B@�+�ړ
A@����X0>@�J���z<@@}�a�;@�b��#~:@�Y��į8 at t�c���7@�L�ƥ7 at h��Ò7 at xe�<G�7@����X�7@
���r�8@��0�d9@�2ЄQ�9@�?����9@���R9|:@�냷Ah;@���&�.=@#Ӭ|?	?@x�x%�@@nXL�ȎB@`�-��E@���Q H@����J@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+
�C@����aC@�r�E�8C@��
�
C@�� �B@�o�[��B@���3�B@D( .�B@@׌u�B at a}�T1�B@@�\�B at 5B�֫B@[��t��B@��M-mB at I(c��RB@���<B@^G��f#B at NM��B@�,�H�A@��x
+�A@��J0ȉA@��9�.dA@�*d�:A@��ttA at X��`��@@G_��@@f�F��@@~�B
�X@@�L(��@@�=��}�?@@��v�r?@��'tie?@yoVDS�?@��&)�?@��~qMA?@�r)m
+	?@܁
>?@k�,rx?@�
r�?@,�u�@@�y���7@@���WA@@�"�B�8@@��ҥ0@@�)i_/@@�">'7@@�?%��?@@R3�F@@L��7Q@@�����d@@8�
�|@@Y�+�Ù@@��
��@@z�}e�@@���@�@@�����A at aO�ey%A@̗Z�6A@[҉FA at 7�P�
\A at HK)(wA@��43}�A@��QC��A@}�P�n�A@~h
Y B@]S�#�B@��:���A@���
�A@
h�
L�A at M딗��A@�X��/�A@{�<���A@�wΰ0
B@�5I$B@��C
,DB at 9�AkB@��^���B at 5&��B@����#�B@��U��/C at s�+a�jC@�����C@�J�E.�C@{� ��D@��qa�AD@(�i
�qD@|%ӣD at 9�`A�D at rZuU-E@ ºM�_E@�zMh��E at S/L�d�E@"�G8+F at 8�m�.hF at O-�
��F@%�9�F@'%8�$G@��h4PaG@P
-�G@�0���G@����5H@����BMH at N��$#�H@�
+�e�H@�+�h�H@�+�o�H at 9���pH@|Fm�7;H@�.1'C
H at F����G@�J��дG@��O�@�G@���yWG@����*G@����7 G@�s1�F at RQ&2�F@��~Z��F at S���WF at c���>+F@�p���E@w
���E@����E@
l���PE@��@E@��
�D@րI��D@�و��kD@�P�7D at W�)��D@��F��C@�@�խC@(�[̀C@�B�.�SC at 1�k�'C at j�4�^�B@��ː�B@#Dqk�B@
�S݅B@>��
�_B at p{�i�:B@/n��B@��]��A@|VB��A@
���J�A@*7�ΑA@�N���sA@{E.z`WA@��1B=A at O�kځ'A@�:�l@A@��1}A@�1� A at mZ/�yA@���yA at 3J�O�=A at 1��?kA@ٕ��O�A@���A@��ؗ��A@�h���.B at Bw�p�dB@�5�-3B@/3���A at k�b}�A@ヷ�^oA@ԋ��ߥA@=��F�A@�s�u�cA@���x�6A at ZS�ٌA at syu
��@@) �W�J@@���O�y@@�<�<�A@�}��֐B@��R�D@֍W%PE@�m����C@�S�4B at q/���$@@�f���-=@B��J�;@ҋ�ޭ�:@��R&�8@��m�7 at Qzf}M7@�Vd87 at 4�rμ?7@��f��7 at b�8:t
8 at k�uܐ8@��C�9@�:�ҡ�9@��Q���9@q�=.�:@Z!H��C<@, �q
,>@Z»$�(@@�L�t*B@^����E at CwŒ�G@��6Օ
J@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������lSM�I@�1◎|F@��l�e|D at N����C@:�Rk�C at 7��]�C@���7`C@��� �<C@淦*�0C@�4�0C@�S�N<C@Ѓ|��QC@ [...]
�?@�KB�S�?@���	k?@�6�覚?@x^��M�?@�:�n�1@@��z�
a@@�#��P�@@�
�u�@@7�	xw�@@m���@@"�g�k�@@�yt�p�@@�aQ��@@3�\X�@@�ֲ�@@2��&�@@�
7�@@��'
��@@}r�X!
A@�o/k[.A at 4�F�6LA at R�0��fA@EDM�yA@l
+6k�A at Fٷ��A@[�nz�A@������A@�J+�A@��JgB@���״)B@�m� :PB@
+Ρ�[WB at 4c�B�BB@;�Wz�4B at 4>��%B@��"�'B@=[1�,B at S`��{:B@'sa�IB at EEzB�ZB@�"���rB@�#r4ϑB@��/��B at fC����B at LY�L�C@�R�m?C at h��"�nC@�>?_s�C@�>ðm�C@���C@
*=�0D@#�!BeD at Y�mnm�D at c��� �D@���Q

E@��=�c_E at p��FРE@�ԡ���E@�z*�F@���[F@�����F@?�
�F at i�]�:$G@��0;9fG@��* �G@��	��G at HO�VS$H@�\(p,cH at G��o�H@�H
^��H@�c���H@���k�H at C�r�cH@��ɟ)H@�e-���G@���F@�G@�6���G at WFk!dkG at vΰ@G@���t�G@*DqNT�F at S�vM�F@�m�F@�;���jF@�q
(L?F@�W_F at Do�;�E@�3
E��E at Wg��^zE@����.>E at j*���E@@�r�a�D@�;��D@L at -�]D at AL Y|0D at rL��TD@�b�N��C@�brz��C@�b2��{C@7 KC at qQ�C at h5,��B@�Z
+��B@�Jj��B@�OB�EmB@�g�
9FB@��U��B@⎓�V�A@�����A at i;B
j�A@���%n�A@��J�oA at 3� �PA@�
�R2A@����A at Qp��4�@@�
��@@�
|���@@=�a��@@������@@�
�@@cz�0ZA@��
Y?A@�]@ˮqA@�
��8�A at d�6��A@]�D��)B@[��
�yB@��
1"B@�f�yQ�A@�d��3A@	�9���@@~K�!�+A@�A���A@#�8e�@@m_��A@@�Sh�a�?@@�M��>@���
�'?@��
��?@a��qj�@@VG��K|A@�A���B at h
+���D@�rI�
E@<�~��C@��y0PA@�A
�j�<@M�C�=�:@
RQ3�9 at N��6�N8@����3F7@ִa�6@�+"�m�6 at c����6@�:��!7 at WY�
��7@�G�Y�8@�~��8@��,��9@�d���9@�1�ZG,:@�����;@f$��@�=@������?@������A@�+0
��D@�N���EG@!�%��iI@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+G@�� �D@j��m3D@�K�#��C@,��(d�C@��X��C@ܽ|� �C@���-�C@\˳���C@��9eG�C@�Q.L@�C at p�_�ܜC@>�0�|C at G
3�N\C@����<C@��$�
C@�՗Y��B@�6[�V�B@�!p�;�B@�LPF�B@.,�;mB@����BB@����B@��S���A@�
]�A@<h���A@=a��gA@:j��X(A@
+
����@@p>|�@@3fDXS@@�
�3+@@��I0�@@���~@@2���.@@49�C�@@��(��?@��x�{�?@YWdP@@�$��B@@��L8�v@@S�@�٦@@K��bs�@@x�o�T�@@�)'>"�@@~V�*"�@@+�_��@@7�wU�@@n����@@�HsC(�@@�ɓgc�@@���
A@9PYa!A@��-a<A@܌m.]A@���!�~A at 0�'e��A at ar�ף�A at -'�j��A@}i�A at sV����A@Ȣ	m�B@���7B@�F��5B@���mUB@"<���uB@
8���B@�ͶX��B at u൸�B@#4	�B@�q�
yB@5u��wB at g�9jwB@�	a���B@��bh��B at p>�JݞB at v�3v�B@��1�B@�im�t�B@�
�`q	C@í58>4C@���k^C at 5Dur	�C@�p�
F�C@����"�C@��Ly}D@�7���GD@
����}D at R3���D@�
�f��D@&9��0E@֦��qoE at M����E@�V��E at K�%�3#F@��cF@�Ɉ�ۧF@]�3���F@ Q��9G@�ႁG at hr)���G@/.�
+
H@
+D.k�IH at P��o�H@��,=��H@�E��+
I at y��.	I@�̹H@�����nH at 1�� �-H@�F���G at M8��D�G@*9�<��G at B�;��YG@���,G@?����F@|�x��F at jTQ���F@��=�S|F@��HQF at B:<��%F@���
;�E at nG����E at I�E�d�E@��7�`E at a��1*E at p�G3��D@�u�hD�D at a^*\d�D@�Y� 8kD@���~�?D at l_xD@x���C@*�2ӵC@��a�P{C@}���v at C@rHMP	C@��-X��B at x�oa�B@����IB at n���VB at .�f�c.B@<�\��B@��(��A at WA�|��A@��A��A@���qA@��f��NA@��'L�/A@�>�hA@�*9���@@Y����@@t1BO�@@B��Į@@A�׌��@@��U/��@@R9k	�@@a­_f�@@g"�`A@/
NGMA@�`�TG�A@�]���A at a�.|
QB at 9�)OoB@�S:� [...]

�6@��ҋ6@ܵM��6 at A�TA
7@}涯+�7 at Xz`�
8@G��ۗ8@�*�9�9@�H��9@�r0L�:@���oY�<@AH����>@�.B�t?A@]���$D@� �d�F@v
GM�H@v˶�]K@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
D@�Y}�C at 7�P���C at j��o>�C at Nj����C@����D@���k�C@�����C@�[@��C@̜2ɻ�C@���t�uC@��
+�JRC at e~��D,C@��{��C@�G j�B@[�a8�B@����B at Hܪ�bB@©[�B:B@PKkO	B@����A at ju&i{�A@�V�hBA@��2���@@�G�E�@@
r��t@@
�
+XT@@B"���@@@���@@@ M��yV@@�9zӿ@@@�����-@@P{U��3@@�Qj
W@@Q�
�@@�8�0�@@����@@z-
�?A at G�=�4A@�`g.t4A@�V���,A@���Ia-A at m7�@C5A@��*��<A@
2��dBA@�I^XMA@�2��*_A@��o�tA@�p���A@}�NƊ�A at y�UO?�A@蟷���A@�V���
+B@�ҙ
�"B at o��� 3B at 4��W�DB at lX�yXB@����ilB@�^�c
B@[毊�B@�g���B@�
d��B@�5�W�B at N�u��B@�Ӫ��B at xc9B�B@�ݒ{��B at p����B@ե�:��B@,��B at Rյ���B@�c���B@�|�e�C@�K��}C@���c�1C at En�ߝXC@��a��C@���&�C@�fOJ1�C at o���&
D@�
w<k:D@@،��lD@�R�ġD@�z
�5�D@�F���E at +
�� JE at w
{�ރE@�y5�E@��NV��E@�2T�/1F at _�~i}vF at GKW�F@��q(Q
G@��
�WG@
Y��G@�,���G at EoV2H at T�g��vH@&g�;��H@#o�!��H@��
��OI@'0d۔2I@�|c��H@����H�H@@*<h9PH@
�2
H at 5g%��G@'��|֕G@���I�ZG@�VB՜&G@�
�
+�F@ ���U�F at R�[�-�F@���nF@
�
��@F at z���ZF@~��3�E@��M=
�E@�3测E@���^E@���=f1E at y���E@��T�D@ �|O�D@
�A���D@䉄M�cD@ԥ0y_1D@�l�|�C at Zl�i�C at u�!$3iC@��Vu9,C@����B at n�|�N�B at h
A��B@�[컴kB at oT5�
BB@�O��B@�
��A@� `@��A@�����A at z��7�xA at a'�'�RA@��^�2.A@܎��
+A@�D�8�@@܋�֔�@@OG�^�@@ɓ��@@���d��@@E�`x@@$�d�@@�פ�@@+C�
\�@@{'
+��@@�`'n#A at N���A@%l��]B@�؜�e�B@�G@ZB@�Pom��@@R��2�%@@|�n
+6?@SO
�>@�
+J=F�?@��	��@@~�nM?@�7���=@��b<�<@'�����;@�-|��@=@s#zXƇ@@m]�� �A@벧ئtB at m�E��B@��Z�XC@$Ӽ�
C@����~B@�SXbA�@@����=@�t_��<:@����
+8 at n�BÍ7@��fJ��6@�$��.H6@�W��(6@�u�X�16 at L�9$I6@,H\�d�6 at Pz�ϼ'7@�{՘�7@��V:w"8 at W���q�8@ɣv�X79 at 1�ʬ�K:@�#���<@m3oМ>@�r�~�@@.9�zC at _��k��E@!> ��
H@$>��w�J@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������E9�S�K@�
+�#�BH@�ڇ:�E@p���D@���s��D at r�
F�D@��ΦeD@(%K��ED@����S8D@��S�9D at B�J��GD@^a���aD@��M�MD@
^�(-D@4�xD@�
e���C@���
N�C@��Hh�C at AZU�P}C@����FVC@�t���+C@	��Z{�B@�4e�\�B@$
�ϦB@����lvB@,�/�:B at Ne7���A at U?��A@�-��ZA@(�+d	A@Ȓ���@@�.N
�@@]�l'�~@@l?�	n@@�Fr�m@@��F&�@@
���p@@4[E�Hm@@X�@@vY/��@@��9��@@Eۋ A at IT��2A@�jQ�K_A at 1]��A at SL��.�A@
+�PـA@�VR���A@�R��A@Ǝ+#]�A at 2v
�e�A@*]zj�A@��;X)�A@��|�N�A at me�+��A@��9*��A@\�	��B@$����?B at 7p>�]B at f�]A�uB at b"E�͇B@��(l�B@)�W)�B@�w�u�B@*3�a�B@��-@��B@��ڼ�C@��рK2C@�Wx�CJC@�YI8C@����u,C@\|�c	
C@�K�*�C@�J�%+C at b����#C@q���2C at xMx�?C@�m8�kKC@�� �NC@�{�TC at wPx�eC at D�-��C@!
��7�C@�e�۟�C@ q�!	D at 9#+�9D@�p���hD@���+*�D@�D���D@����P�D@��j(�2E@�e2�2gE@�u����E at F��2u�E@��\
F@��"QF@��[�F at a4�s��F@Ċq'�3G@�v
�%�G at 5j{�W�G@�" ��H@��
X�]H@]f�K��H at zpə��H@�.y-�,I@���������������'qf 
I at F�j;z�H@
i���H at Q�j�!BH@?6���H@���Tf�G at b�N!wG@��]ۀCG@��c�m
+G at f��k3�F at cz꬗�F@���m wF@$����JF@@E%�
F@��!�E@����}�E@
<ʵ�E at V�pj�rE at X�	_�JE@.�=�$E at z~9�mE@�2�S��D@�ݧ%�D@��
��D@����4D@�s��\�C@�޵��C@�Rwe|QC@���eC at oz�e�B@�	<��B@
�W5��B at n�AdDZB@vp�/B@��}�B@�SR���A at B����A at 6M����A@�c���`A@
5L��8A@���A@�.H���@@�8Ԇ��@@�Kg�R�@@=�z���@@
O�X�k@@u��cV@@J�W�8K@@�
�(S@@�ljX�_@@iXk�n@@
+«׷�@@���4t	A at F�FҥA@�3<『B at pd�*�7B at j��{�"A at 7>�t!@@. ����>@�}J�=@HO+Xo�=@hd*��J>@k��Ў>@���1�=@�4`Ѣ�<@v'j�o_;@�D&x$�:@XP��WV<@�eh���?@(z
JA@��'�FB@cի��B@��ݲŶB at L���fB at 9b#� �A@:���Y?A@��q�V@@{�G���;@�0���8@:{ҵ�7 at Y��O6 at vq���5@pR�l�5 at L����5@x����5@��̈́�46 at B̋�į6@��/;r/7@ .ѿN�7@��U��58@���v�8@��

+q�9@�Ƌ7c;@龕V��=@v���@@c�G���B at c���D@ѝ3	G@՝����I@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������J�H�>I at j���/F@
�ײ/E@�
���D@}���D at D�l��D@~0�G��D@Ț��D@���
+�D@	Q���D at 9����D@�3�w��D@�l��Y�D at o��P�eD at 2?li�DD@��/!D@�
�DZ�C@��A��C at Y}�`��C at j����xC@\��bEC@\oв�C at W�S���B@��}��B at KN��[B@���
UB at 9t�Z��A at q�!@pA@�
��!A at 6��|O�@@�X�@@��Âj�@@�291�@@
��F��@@����@@M9�
�@@�*꬜�@@���F�@@��f�b�@@Ir�hA@�~ɩ5HA@���U�wA at Tm���A@��f<�A at hY���A@
+����A@|�1zM�A at D|����A@�֒���A@��$|�A at 4?���A@�Ә��B@�!���B@>��A0B@`^���MB@�it��nB@'(ﻏB@����B@�-
+)��B@�:����B@��	�B@�~
� C@�l��C at N�n�*C at Rp�BEC@��I
cC@�%��C@�˪�\�C at S�h�`�C@	ñ<�~C@=��pC at fl�mC@�ݥ8�kC@���"uC@�m�o�C@���eŐC@|�
+Jq�C@�<�
��C at e���n�C@(�ҨC@T�j��C@�L�O`�C@�7�T=�C@��?
g1D@�~7��cD@�(8��D@�Pt��D at 7K}j�D@�
d��&E at D���WE@]�W�ЉE@ʀ$�c�E@�f`Vo�E@����8F@��q}F at s��<|�F@`
_�G@����XG at 3���G@;�����G at L6��>H@��e;ˉH@��cH��H@�#MI@����������������������k�UDNI@\��H@�|��H@��
�4wH@&;���6H@�Vp'�G@
�1���G@\�G>�vG@���,:G@���� G@€���F@lj����F@��
+veF@�`�6F@>�.�i
+F@�����E@�H���E at Qt�0��E@�@���uE@ڍϔbVE@	�*PC6E@/>eׂ
E@G����D@���yD@Ӻە""D@��D�C@
&Iz��C@���<C at O4��� C@K/M�B@���ԡB@�
WBvB@>����JB@�\���B at _���e�A@��ZƎ�A@��[���A at 2�R��tA at 7�� %KA@]m̬!A@�4�G��@@���_D�@@�u���@@lX
hυ@@�B+p
c@@�F��C@@:�
*@@ �
@@F~�tm
@@6�D/i@@�2��'@@�ibz�m@@#g�
z
A@����.B@�R���A@�<�7�A@��1�&@@Wo���>@J�Ykl=@��}q�<@>O[ἇ<@b��
�7=@�d3�(=@�#�+~<@j�BR�y;@�q
��J:@�D�F�9 at 7��R?�:@���f�<@(ў�)�>@@=莶@@3��3^KA at p�hFJ�A@�.fw��A@���y�A@%s^k@@���6@@�G}�P>@@
�о/;@1�����7@�*,�66@�� �5�5@p�J
s5@����
~5@Ո�E�5@�}�n�5 at wt�i�96 at x�"v{�6@�a�D7@�#
���7@켴0#X8 at r �W�(9@��z�!�:@���D1�<@>
�[
Q@@�$��oB at p��\�D at .Ř8NTG@Ʉ%>��I@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������+�o0�I@�+�W��F at N�jӢ�E at Vi*�BE@�}@
0E at j
���E at 1'�w��D@�G [...]
+Q٬5B at Qܹ[�=B@;rؗEB at 4��FVB@���˹jB@�
+˕ �B at 67�<�B@�?���B@xWF��B@��ڎ�B at C}>եC@\����.C@��<�qBC@?� �
UC at O�j��gC@{O��D}C at V�)S��C@t�fl�C@ұ
/o�C@�
+��C@
��b��C at E���C@&��~�C@�5�Ž�C@�p�K�C at K����C@ v���C at u*^o�C@�)�a��C@�`ؗb�C at w./��C@�V�j�C@�����C at p.
+�?	D@
+U|P+D@�����XD at Q�cϘ�D@���2��D@`a���D@�T�g\E@�s;I�KE@�v�*�E@;X��\�E@	v�Bu�E@)�6��+F@�7,�lF@���t��F@��K)�F at 2g���>G@�!]ƆG@賏 ��G@��
��H@���fH at w�W��H@���	��H at 0M��NI@����������������������������JA��y/I@�!s���H@�U���H at j�i�]oH@*S�.�.H@���x��G@[��WQ�G@��6wG@���o=G@}��
G@�
��4�F@�B�8��F at V�J)TgF at j[BȌ:F@)��F@�R;�T�E@�����E@����E@´���E@��N!�XE@#�_�E@�K3�x�D@�$��hD at Y���D@�����C@��
�tpC at i��
+,C at -
���B@�����B@��/��B@
L��iB@*�8�=B@72�B@[�w�A at i����A@�RgˎA@���ZdcA@����d8A@�"�M�
A@�;u�@@s����@@#�m��@@����h@@(�O��A@@�pD$c
@@a/6�?@aH
���?@@W��?@C�'X�j?@���6m�?@��G@@�)����@@7LK
2
A@�/��@@c��Z�?@��
��u>@+�ᎀc=@10.��G<@�Ae�7�;@�����;@
+g?��;@\xe�;@�Vz��:@�G/��
:@܃�8779 at 2}�4�8@����V�8@���7�9@�Xȟ�;@��q�/�<@��
�2y>@�i�`@@G)���UA@����?�@@����Q?@��
���=@ 6\j�;=@��D�X<@mʞAf�8@ n�%[@6@���m"S5@	pR��5@(���P#5@��U�35@��CsX5@����=�5 at p��ŌL6@��w��6@�W��c7@��!��7@Ґߨ�8 at X��Z:@�x�f!<@�S�Šx?@��5��A@5:x
+D at 1(B�$�F at U���H@�
9K@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������nbJ@�~ͬ�+G@:����E@�99�S�E at Z�{C��E@�
�9�nE@jR|�VE at R��K�FE@����YHE@�
��7 [...]
+%xWE at -���5E at Q]u-�E@@vN�D@��=�V�D@��X[�D at M<MS�iD@��(9Z5D@j�d��C@��	�C@�P >WpC at 7g.��)C at J:��B@��?��B@
�ez�>B@���<��A@>b��-�A at q�4�WA@��Ʋ�+A@"ؔ„A@���� A@��&ǭ�@@���E�@@����
A at i�7�u.A@ؾ��OA at _��mA@��� ��A@����A@"���A@p�B@�U�+/4B@�[�
�_B@	�8Em|B@[ޝJ6~B@��S1�B@�Nl�]�B@�T�ǝ�B@��V�ԑB@~<�00�B at W1�++�B@��
ռB@�
T�*�B@��j���B@��X�
C@K�n�-C at i���LC@�&1ʥhC@���ǀC at z:��>�C@
�Z$D�C@`�
q�C@��#R�C@?OJB@�C@�v�N�D@ĉ��D@ѝ;�R9D@�%Dj�/D@#�in#D at q!O�"D at A
�teD@�}^)D@5���D@!�Y%D@��V}1D@����AD at e��ULD at b@'uNND at 5B��PD at a&�J�ID@��<�CD@ ��3ZD@ҵ�7�D at Id�
_�D@�/����D at -�Ut�E@�n6A at E@,
�uE@\Y�ݯE@�_%w�E at M��Ze$F@��؋CaF@�i=�N�F at 9����F@ �?�'G at L�U��nG@�/��ʵG at ZMڗ��G@T��-FH@ E�s�H@�'
�H@�Ч�"I@�������������������������������������������NE~�%I@�v;��H at H˕���H@�u�"jH@�a�,H@
�����G@
�Qt�G@*��a~G@��OGG@#�*+�G@���mt�F@�ڽ3��F@��ST/~F@���U�WF@��ˢ
4F@�%�� [...]
E at r\@bo�D at +�&$cD@�b�5
D@��[�G�C@��n�gC at e �܀"C@�˧ȟ�B@�k6M	�B@�|B�B at 4�-f~^B@�[Y��2B at w�'lB@
�ZA�A at y_v
�A@�f����A@ ]�]�UA@��Ƞ)A@��f��@@�
Y<2�@@���Ҧ@@�{���{@@���4Q@@���$'@@09z��?@�Aco|�?@��/a�^?@![��?@�`͍��>@��v��>@�J�.�>@�~'�[?@�U|iA?@�/�OoH>@
�C�=@��K�R�<@�:vB<@Q:6�s;@;�Y�5;@G����:@PA�1e�:@�)֕r7:@ꇤ

+�9@�&d,x9 at U�)��v8 at P�ř�8@���S�7@��~��7@���C�7@
�v(l�8 at o
_�m;@ ��*%>@�MPP�.@@S�^��@@:q����>@ĕ >1�<@•��[;@���	>:@gG���8 at F�Q'�a6@��Y�k5@�o��}�4@���m��4@���p�4 at -�i���4@� e#�X5 at iב˖�5 at v�#\�p6 at M�Xt�6@�8��	�7@��X��:8@�$@1Rd9@~��1�];@FD�’�>@��3��A@��A�C@���J'F@�,S�H@
�3��J@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+��KF@���G�E@ �\��E@�3����E@�.���E@��E�֣E at k��}3�E at y���)�E@{bҟ��E@����e�E at j�a��E at j�~9,hE@�r�Am at E@$�t�\E at w
��@�D@��%�D at 2C
�@nD@���8z)D@$�C@���i�C@�ԑvEC@D�
��B@�y:�.�B@��D�qXB at 0B^�	B@�	\��A@�����yA@��3SA@�L\O�<A@
�v�,A at t�f��"A at +R�+�#A@��O
EA at NZ�qA@�P�Ա�A@=`��ýA@���:p�A@}��
B@���:'B at VՍQFRB@�Ox�}B@S�)��B at B�#E�B@���B at .&�z��B at h��t��B at g�.Z`�B at o27e�B@��h���B at 1_�\�B@���rC@ͫ'�
&C at ku�H3AC@��͑^C@�AsD}C at L=}Z�C@ዝ���C@�C�?�C@�ޛ���C@��-��C@��e�
D@un�� D@��P8D@Ћ�P�RD at K�V�oD@�ڌn�D@���V�D@�ZrvD@
���NiD@&gQӟbD@ޖhq�`D@Ń��BjD@�N]"uD@���ŀD@���̒D@%y���D@�>�>.�D at 7w|���D@�Fw
a�D@]1�&S�D@���)�D@��v�D@�} R�D@�����	E@�����8E at tYe��jE@$�E+:�E@�A�� �E@�աi8
F@�˷�ZF@���H�F@�
̛��F@�-�j�G@
���[G@��Q�G@'�ټ��G@ш���*H@���oqH@ݮ<�F�H@ͣ���H@��֐XSI@��������������������������������������������������U��� I@�����H@�V(琥H at D�D"jH@���*u0H@�~����G@ͥ���G@�����G@	�`�]WG@��6�%G@�&l���F at L�e#2�F at O���̝F@�v��qF@���59F@�#��M�E@����e�E at l�ĠvfE [...]
�(�Z�D@���κgD@���/D@�
+FѼC@�?mOWkC@����)C@��,��B@1����B@�}]o~B@
G�ŪSB@(��
�(B at b�A at W	9<
+�A at X����A@�*�xA@���>XKA@��<�
A@����@@Z�����@@@�|��@@]�� �l@@��0��@@@�����@@)"�Ya�?@ni��|?@H�	hk&?@���x�>@�	��h�>@��dZ;>@�刎�=@Y6�$�=@�ط�_X=@�T(33�<@g�G�g<@��^���;@�H�K�r;@���
+�
;@�qfHO�:@�q��T:@��݂�9@��:��9@*�I=q-9@��c��8@�v׾�)8@�vo��7@�ͱ�57 at 3+����6@�ҕ���6@�8�)�6@���`��7@� ��<�:@s�tB�%=@9���?@۞�Fj@@猭���<@�X�u�:@�X����8 at .��@[f7 at C����5@�
���4@pRQ.d4@����0o4 at t 5c14@���o=�4@*�dP�4@���ڹ{5@�
]�	6 at J̌7�6@�m>
f!7@����7 at .
^=�8@	Ǯm�:@	G2�o>@�o2Ķ�A@�T�Z�C@(�w�OF@�����H@���f��J@������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
F@#ptF@
v�6F@�����F@އ�e,
F@ 6�[;F@ 
]�?�E@�z���E@��6�E@�,��_E@%X�~(E at wQ��X�D@�
&Ol�D@| �7OD at BL���C at s퇈�C@�z��aC at 2�ɾC@�:����B@�Q��/xB@�0+B@�q��{�A@�q��t�A@�6*�{A at t{;H�gA@��YA at o¦o�OA@���j�WA@��B�4A at 4
�A��A@�����A at Ro���
+B@��~�+B@ސٕ�OB@�����tB@��1�R�B@��8�#�B@͸��H�B@�~��C@��/�$C@�����)C at C��',C@�\C)/C@Y�@T8C at F(s	�?C at TEn�>LC@,ԅ�_C@	���BwC@��8-��C@?x�=��C@���)8�C@/�r6q�C at 3����D@~v&]#D@�
jv:D@���:MD@)%�,�_D@s pXsD@��F6��D at o��ʣD@�1�]�D@�ȯ�D@�xT���D@
��Yw�D@ύ<~Z�D at s��PA�D@�`�J�D@?��5`�D at S�5"�D at s�%���D@j%v3�D@�^t�W�D at DS����D@����_�D@'0,`��D@�NF��D@���~��D@�y\��D@�'��d
E@��c5E@��6�dE@
=��A�E at eb_�g�E@;3ʩF at 9�9�QF@"E
)s�F@'5��W�F at v=��
G at A<�i�NG@��� ��G at 3�'��G@�N��MH@�0�/`YH at hk�RN�H@���՗�H@�-|��)I@����������������������������������������������������������������)ew
I@�'�:+�H@}���ƦH at P�ÌWnH@��U6�2H at EC�?�G at a�ߋ�G@�.@|�zG at vz��`=G at G�%h�F at 3^
���F@���U��F@�U)��CF at .H�	
+F@
����E at A�.HU�E@����LE@���	E@���4�D@���y|rD at 8��@ D at i�ϛ9�C@�R��)zC@Ѓ�%C)C@�;q�$�B@��*��B@�m/�oB@��%�DB at x|�]B@�5�e��A@����A@�ߩ2��A@|�e\qA@�`�DA@=�BN�A@�c(@e�@@�c�k=�@@7c���@@ch��b@@c(��5@@Ho�p@@�ޜ���?@��
�A\?@�ޜ6�?@��
���>@�����L>@#�s��=@�"Mˡ�=@�O1_�<=@�O��K�<@秘��<@�
�)<@ɧ�uJ�;@�xB\�s;@�/�;;@S���:@��f:@ʢ��a
:@.�
i�9@�S�WJ9@��8�,�8 at lBH��.8@������7@� �>��6 at D:��\n6@�[��5 at xu��k�5@����5@�9��7@�W��
7:@������<@�C���@@Ƶ��O�>@s�9�W:@-�U!�7@��c�g6@�?�5@�Z
��D4 at A�
��	4@����14@>�O&4@{Q�H�=4@�B��4 at f�#��5@*P���5@���u16@!RN��6@�r˅%X7@��f8 at G[F�P�:@
�+�Җ>@���%�A@��Ӡe
+D@�3�y��F@��)L��H@��Y
qK@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������"
�t�I at d{y*)G@�r���F at 2;$�F at r�x�k|F at _D5pmF at rW�@P^F@�c���^F@�� [...]
F at Q�$��E@�r��W�E at U��~]E at B]i>E at p�h��D at L�
}nD at -���
D at J�b�|�C at 8
\'C@��tA3C@|#�A��B@�kx��B at t!�3oOB at N��+\B@��6���A@�BY�A@?��2��A@����5�A at v0��^�A@����A@�etJ�A@�
�I;�A@���
&B@ӵ���SB@<L��vB@�%\�a�B@�ǻ�B at q����B@�
��C@(�N�C=C at j�[XjbC@�`
�rvC@�\�o}C at E��3�C at 1-D�c�C@��$�0�C@�ð˒C@��C@,�
,o�C@���(��C@��5�X�C@��Ue�C@�΅X�
D@�"�:D@��:LXD@̀�sD@��$G�D at 9�Mu�D@��m�E�D@�9��D at oPF�
�D@[��qE�D@,��0�E@#1A�$*E@
a�'�'E@����EE at +��};E at 1U�sE@��l]�E at 4��
E at -YE@x���#E at _�7��2E@�H�?�?E@�$ɈCLE@����EE@	��,D-E at -���a
E@^��DE@�^�,/
E@̏��<E@��b�eE at pQ�l�E@+
+�@�E@$_%9B
F@�[O��GF@�v�p�F@�_�;�F@"�~$&G at Nҵ�DG@�vb���G@�D
�V�G@�AQd�H@��iIH at 0�s���H at -�c���H@� �XII@�����������������������������������������������������������������ĿMI at TG�K��H@�;z��H@��r�tH@�.��
5H@�u���G@�T��&�G@�h�'�zG at G��=G@�ť��F at d�����F@���2߄F@�2#��EF@�Nd�RF@;����E@�\ �X�E@
���QE@��kh�E@&r�=��D@��3_�D at 9z�ZdD@$��#D@o���C@~��7�C@ℬ��CC at O�94�B@��p��B at T��YcB@�Վ$2B at E��|nB at 9��^��A at .x�
�A@��G��A at e�
+	lA@}��C|@A@����A@�$���@@�ڠ2��@@"��ZǠ@@m�:��v@@ �]N@@��Zj%@@\K#���?@?��'�?@�ܲ�G?@c�i��>@ԩj{B�>@|w��/>@�BIQP�=@�

�#t=@�ʚ$�=@���sG�<@�{��
+Z<@{ke�<@J
��;@�l�S8V;@���͍ ;@�Ԧ[U�:@�;�n?:@[�� �9@����:9 at P%|��8 at R�g;8@���b�e7@�;���6@'sc at y.6@�4�o�5@>��J'45 at Rf!
5@
yt7G�5@
+�m7@���J!�9 at e����=@qgMRib@@��8���=@<���Ͻ8@�
196 at L�C-ݝ4 at D	C�3 at I���3�3 at 4+^�H�3@����3@=tA���3@��K�<4@��:��4@?o��:5@�ͱ���5@��h��P6@��5��6@�Y��7@*�^8�T:@$�r�q�>@��lGB at +�
���D@�]F��NG@\>M���I@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+�D at I����>D@�����C@
��Ŗ�C@����TC at P-ӟ2	C@���*�B@]�¦;uB@�$���*B at FY7��A@��}�]�A at N��2�A@�}T���A@�Ɣ|�A@
[Y��A@
����A@^ʚ�5B@��8iB@�G�ҙB at 1i.��B@�lZ�"�B@��[�@
C@��rk
5C@
ԝ(�]C@�D�J��C@�-�
�C@�V���C@,�t���C@�^�d�C@(��
�C@}�<��C@�����C@�����C@�Ó^b D@�	�s�D@'�k#4D@o.x�OD@�E���kD@�~C\J�D at c��ϱ�D@>�R��D at i�o��D@��U��D at 3vj�[E@��
+�E@
���.E@�먛~GE at D���`E@}�D9zE@�]zE@��mE at m50`E@��`�BYE at d 1�WE@�aZ _E@
�s�jE@�
{suE at 5-_f��E at zqx4ԍE at M3X(ٙE@�d��K�E@�0?B�fE@��ǍJE at vn]�CE@�ew��TE at P@	>rqE@�
�ΚE@WL��E@�/
1�	F@۬�J�EF@^އ"
�F@-�=�F at 7�����F@`�&�;G at 9�q:e|G@���sl�G at zڞ��G@�E�[#;H@�����~H@|-�[��H@
(���I@������������������������������������������������������������������������5]OI@�龣�H@�F�ҀH at X���g>H@��lx�G@�a��G@�=
�}G@�
y)�>G at Z#����F@���C�F@(6��ЄF at z�ȌGF at B�Y		F@�x
�L�E@��
Z͎E@��E�PE@��)�E at X�z�D@��+���D at n���aD@�ע�(D at W�P�C@�<9��C@��g�~C@���!@C@�5A
+��B@��y/�B at xy{�cB at 8�yl"B@E �
�A@��e���A@����ǢA@��E�A@
n#v�]A@�X�.A@��cS A at A��+3�@@6O��ͳ@@��Ye�@@�F�z�t@@����W@@*	i�
:@@ ��
�@@q�K�7�?@�
~�/�?@�i��>p?@�,�M�?@�~�3�>@��
Z>@j��rp�=@X!
+��=@ܯG�g3=@�
-�z�<@ >�
�<@�b߾%<@�S�
�;@`b>VL;@%��n�:@���h.-:@}���u�9@��`"�8 at Q���V8@���O�7@Q^�"
7@�W
�Ń6@��Q���5@�A=�\P5@��6���4@���K}s4@����|4@�۰1�t5@���f��6@����
:@�kml�]?@��gsn\@@�r>�;@����8a7@�����4@?O|�:�3 at Q�
R�T3@��\a3 at +%�
�s3@؞�O܌3@�
"Y��3@ �
+��@4@�r�B�4 at E��
c\5@���#�5@���Z�6 at Ec�%C�7@�AG6%�9@�\�\7t>@��Ӹ`3B@�VIrD@2�c�F@2?�;I@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
��/�
D@��I"��C at E�)}�uC at N��|:,C@�轹�B@��սۛB@�
��SB@�q3�B at X�%j�A at 1�k��A at 2̞�A@�`�zA�A at d��k�B@�Hu�BB@[D�> xB@*{���B at v��=��B@
�/U
C@�͎D4C@����KYC@әk�:�C at A�˨C@ދR:-�C@���F��C@��,]D@�j���#D@��n8%D at r�D�%D@�=3�/D at L]�k,7D@��q�
+AD@%�ȽQD@��n+GiD@�kaZ�D@�0�D at R��y��D at 4��T��D at R�"�K�D@�R>yE@���S�-E@s;�]DE@�A}b�WE at f菓�jE@�5-��E@�����E at f7k��E@�uo!K�E@βj���E@�/�(ֿE@��r
�E at .ܔ��E@
+�\RD�E@[
����E at b-c	�E@Ā3�~�E@�&�X�E at U*���E at PY(���E@�g����E at Y��
�E@��X�C�E@ޏ�M�E@�����E@[�ӪE@��#�E@�p�F@<�f!]JF@a�37�F@����F at _P=�R�F at 4֜H9G at C��vG at 0����G@�M�U��G@��;ܪ1H@
�I�rH@��/��H at D
+fC�H@�6��II@���������������������������������������������������������������<��>%I@�x�v�H@>�
+l�H@���cQMH@�H�a�	H at Tad<��G@��'<~�G at v���9GG@�K6L�G@����7�F@�`R���F@���m�EF at -~���F at _)��k�E@�D�\��E@��P��OE at c�{��E@,J_6��D@�$�X�D@�
�'[D at 4��+!D at c�
��C at r���ĬC at I+�NuC@��r0�>C at o���{C@�tC&��B@ ��2ЎB@���
pRB at S���B@��tO�A@�T����A@^����A at i�{�YA@��<=w0A@[�
@ZA@�L��B�@@)�N���@@J��i��@@.�� �^@@NÝ�8@@ྩ��@@�=���?@<K4��?@l�3pg?@�/<�
+?@4�b���>@�T����>@�p�7_y>@�ye {J>@�n��A>@hb�=��=@�>�
>�=@I	N�l==@rK%�y�<@��2;O<@G��b"�;@�U%�n&;@��|��:@e��]��9@m�J9@�;M<��8 at L�b�
8@�XÌ�i7@Φi0��6@*ß [...]
+?@# f��9 at X�[
,5@�
#�mn3 at +�����2@�UY�73@��a��3@짦�S53@��[^]3@�[�8�3 at Ids at a4@AI����4@��@�5@�~��$06@4��%7 at g�
.
�9 at d�"Jv>@�[q��A@
F�	{OD@�?�|��F@�?�C��I@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+��C at w�l��D at 9�Q�CD@ԋ���cD@��&��uD at ME�xD@����RyD@�F�2.�D at I��N�D@�'�Ny�D@���z0�D@�u�Y"�D at X�^���D@�0ɦ�D@�)Z�
+E@�򥲊'E at XN4}EE@�e at f�bE@��`�
~E at 4Q/���E@���E@
-6�&�E@��ّ��E at w[D�f�E at G��qkF@�U:�x
F@��#�8F at D�,�HF at y�O��F at Do���E@�_8ٴ�E@�B�F@c�mF@��#(�F@�y_�
"F@�]R��"F@��K�F@='�j?�E@��y��E@���_ĵE at 6�
+�B�E at U^%8��E@:�"SZ�E at X;q�F@��R�!SF@�×KϋF@
h]
��F@�ܧ
�F at h

a9G at l�螜tG@(����G@�P�E��G@�� �+H@�7ŏiH@��ξ�H@�����H@�l�SN*I@���������������������������������������������������������������O&ER-I@��7߁�H@�M{���H@�2��>^H at f�3�SH@�6��i�G@ˆ_?g�G@Ϯ

�QG@vf�G@��3 8�F at A��s�F@ߙr�IF at 4��[O	F at N�_��E@
��t�E@�#�E LE@
�ұxE@��K���D@��
f�D@�/�XGXD@'�2�D@}Ж�5�C@�$cWئC@ǘ�_�kC@~���3C@ڮ� ��B@~	s�/�B at Xr
3�B@��N_�NB@�zL]sB@�A�#�A@�\�ѬA@��׆yA at 3�ʆGA@`n�"VA@�@gl�@@��
�@@�i��;�@@��i�Yk@@T�G?@@r�u��@@�b$�0�?@�U�]�?@0ڙ�hI?@�ԠB-?@*h���>@]ڗѤ�>@~ü
G>@X�+�">@�
A�S�=@�Ճ�(�=@dJn=@��]Q9=@�M0f=@�$G�)�<@n6�H#a<@#�@7��;@��#�Gp;@�]�ԗ�:@
Iu��L:@&�h�'�9@�yS��9 at o�IZp8@�9'���7@�7Y��)7 at F��i��6@��aqh�5@ �t��O5@�
+i�Ͳ4@��4@�����3@���]M.3@��l.�
3 at p��ӗt3@ ����
5 at u�i�9 at Uz��$@@���hb�@@-�Y��<@���vo5@ [�333@���=��2 at q���˭2@�V<���2 at j��
��2@�ƌS-�2@,5'��g3 at ZA���3@��
5�4@ox�75@�>�#3�5@
+:�a��6@`Qr �"9@�i䭓=@��?A at 1�@.D@��K�EG@��
)�I@�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������^U)��I@��y�4/H at Y
:+�G at O�I��G at R��e�G@��j3o�G@�
V�)�G@���t5�G@< 
+�x�G at u ��G@ҌS�BG@�Pז=�F@(P����F at NoEޒIF at C�7��E at Xg�C�E@ԯHF�DE@�Y�;�D@�W$v��D@�H|&�RD@��{y	
+D@��;��C@�0� �|C@Wj�+6C@�gf V�B@^�;Ճ�B@���mB@
T�RB at y
7{GB@
v�:FB@����dB@�_t
H�B at f��(��B@+����B@�2‚�1C@��4�eC@\��r�C at CK�r��C@
C��
�C@�����D at i��}>D@� l�`fD@��*�?�D@!k�_��D at 6�>���D at Xjo���D@��AS��D@'t�G��D@;�B=a�D at f���Q�D@��&��D@�K���
+E@�ƶ&E at 2gJCIAE@%v
ak[E@� �mxE@�����E@`:b���E at 1�����E@�
�If�E at 3#�N��E@�e�f�F@�euj<$F@�_W%<F at 9
*ٽUF@��D�mF@ܧ�>
rF@���J�cF@@�p��QF@���MF@�����NF@���`�ZF at k�&
aF at qǨ�VfF at 5n���mF@[�A��TF at L*�'F@�
�VF@��:��E@�x�8f�E at kݶ���E@�{���F at 6���5F@� L��cF@���ԕF@�Ba���F@*�^�KG at Q�\.�=G@�M[�xG@!֡�`�G at R#u	�G@�N&.J)H@�*�lpeH@�W
+�H@��F���H at n2Y��
I@����������������������������������������������������������������RڃPI@@���8�H at I)a@�H@�zT#�oH@����*H@��㷹�G@~(􎩢G@�Y�&^G@��@�`G@�L��I�F at Z���F at S&�
RF@��ԫF@��ra�E@׋ʹW�E@��
܌OE@�S�XE at x��
��D@�a���D at G���:VD at F3�cD@)��d��C@X�c�C@}�
{fC at 5}�T�+C@��<�B@�
tfT�B@����}B at d��JDB@�	ӳ�
B@/
Qh
�A at P�v^
+�A@��ۗ�hA at M�7g35A@�o��hA at N�W���@@~}����@@�:�`Vx@@i�}�M@@�7e��$@@%�B��?@�0-���?@G�)]�C?@�y
<��>@��	�>@��#f�j>@�.x^�'>@m@�e�=@���m
�=@�P��Ae=@�*/�c-=@%�_�O�<@"�3�"�<@�pe;˚<@�;�~$i<@y���
*<@�X4R�;@p
��I�;@��F at G;@㷅��:@�(#��:@8h���s9@�齒C�8@���J7>8 at En�C0�7 at O��)�6@]b֡2V6@��B�̲5 at 6���5 at i3��Vt4@�1��3@}o���93 at 8n=���2@�����2@���D�2@��Є�3@�f�c�7@ i,��=@B�1�a�A@���3�=@�$O���5@�MH���2@��N��D2 at R�2%�T2@��K3k2 at UyC�2@
>� ��2@�4V:@3 at T���ǧ3 at c�³�I4@�$�)�4@�9��5@D��Cx6@��Č
�8@����S�<@�� [...]
��e�cF@}}��գH@�X'�J@�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������-���J@�p��H@�����;H@�8��5H@ζ
	�=H@���
�6H@�$�Ar2H@�
�h!H at OId)�G at A&a���G@��j��kG@�z$�G@�B�o��F@���jF at PB9uF@��a>��E@���ehE@�C��~E@�`�Y�D at 8%
�zD@�L:��3D at Yg�2��C@�����C@��aC@(��C at qP�u��B@��V��B@ڑ��}~B at ysp��tB@���G�sB@%���
�B@��1^�B@��82C@ˀ��:;C@����>rC@� ���C@�4��?�C@���7]
D@"[�MA8D@%9
T�aD@����D@�D�űD@����.�D@�A
��D@����E at eJ]��E@%)2 E@�
&z'E@�W�X0E@)�k�-:E@@i�!�FE@=�{b[E@��;/@vE@�]+��E@%y��{�E@�<�R\�E@���+8�E@�?�+HF@�q�w F@��+�9F at z
+�
OF@��>�%bF@���uF@�M�`�F at s-_U�F@���v��F@���?�F@�P��ִF@��1�
�F@
4OB��F@����F at c��
�F@^A�s�F@Ё�ѶF@$5���F at w��{F@�9D�LF at l���,F@��$F@"� �F@�wm�l1F@
��
QTF at -m+�|~F@�ߤM�F@�p�u/�F@���2G at D����KG@@i�ؑ�G@��
+��G at s��.��G@�մc�,H@�uVC�fH at DD�4�H@�-�2�H@Xq��I@����������������������������������������������������������������������|�د
I@����H@���(�H@(b5wc>H@[i�d�G at o��R�G@
��9�nG at yU<cQ)G@<'� ��F@>��� �F@�QO\F@P8isF at a`����E at E����E at S��!�TE at _�Y�oE at m��c��D at 4]J���D@�
+!�VUD@(bR�D@�͘O��C@���C at Wҁ

cC at 4�e�'C@;!0��B at +���B at B
+���vB at jI��;B at M�%"B@�,��A@�[��N�A at N�4��WA at 5���#A@�����@@‘����@@�A� 4�@@�3X�^@@E_
a*1@@����@@�<�k�?@ �#�Z?@����?@�_�OQ�>@�q=��_>@��;�>@Դ���=@�c��=@���B6K=@X�s�W=@�А��<@h��I�<@"��Z�\<@Doo�&*<@Ò>��;@ �����;@h��#ӑ;@�"��
S;@8�+�.;@�
����:@ ��#/:@
 �<�9@���6�'9 at O�)稘8@�aC�8@��_X�h7@
�+�6@���)6 at xn )��5@
+)�p�4@J
z�@4@�2�AН3@�s�:�2@�d�Es2@� �3j2@
x�V
�1 at D�l1U�2 at S���76@	m���;@#�[xi�@@��7n=@��R���6@���E�2@��8�1 at h��8R�1@?�w[�2@x��C22 at d�'
�U2@��d��2@�s���U3@��{�8�3@�s�>�4@ς�y.5 at p5�+#6 at B��	r8@{ga͡W<@���]�@@8ͤ
g	C@��� pgE@�ک_$�G@���1�&J@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������㴳s�9I@1����H@'��NH�H at m�	���H@�B��H@��c_�H@�Ѓ��h [...]
+�F@�-����F@�a�t-�F@�j�b0wF@�\=\�ZF@�q�~IF@!�
��FF@
;��_F@�Ggx9�F@�d1$�F@��s&z�F@џ�*�%G at .�
+?ZG@
5�%$�G at w�"��G@�J��C�G@<uч5H at 5�XA�lH at f�?� �H@~ODǵ�H@�gI@�������������������������������������������������������������������������8*I@��7Q'�H@
��j��H@�_5�UH@^�q�H@��5��G@�iI���G at f~H	%;G@~����F@?�ƪ��F@
+'l�^hF@
U�m�$F@۹j-�E@��
x�E@�ƛ�:]E@�]��
E at +I���D@���99�D@
�δ[D@�I;ID@��8���C@�����C@�wxybC@
|z�%C@�E
+b#�B@��l+��B at D���qB at xO76B at e�%"J�A@�g����A at Dgiv��A@�WC�HPA@���MA at 3gW-��@@=~d��@@^�93 }@@�6эI@@h9�A@@�vK�K�?@�
�9~?@�A
#?@T�@���>@����n>@Fa�>@�W�X��=@�b;�&=@kIjF�8=@X5�'�<@�0N
��<@�>�>l<@��'*<@�C8��;@&|7�;@���ӆ;@i3��T;@|�-
';@�d1��:@��ˬL�:@�p
={:@��J
�&:@�:7�9@����I9@��W@��8@�5��7E8 at N57xr�7@G�A#(7@
sN��6 at 1�˜�5@ݬG��Y5 at A��/!�4 at .��4@�BԷ
u3@
��
�2 at TH�"�72@�Y���1@Pٳz�1@��z�d�1@��=�
�4@�����8@ԭ/q�E=@`	�8�:@�
4#��5@�v-%�<2 at Q��2��1@�W����1@��<Ѽ1 at Aq��B�1@�
S72@��y;j2@�(��3 at 8
�Ğ3@���e�74@�q�U�4@���n�5@�\�M�7@����<@�[Hy`�@@
��ԏC@�썻��E@�����0H@�MC�J@������������������������������������������������������������������������������������������������������������������������������� [...]
+H@&` IZ�G at a��PPeG@ڲ�c�G@��x1��F@�Z`��bF@�F�|
F@�
܌׹E@�Ӌq�hE@�w�
E@=3���D@~�ء(�D at Dj
+��DD@�0�pD@/k��s�C@,R1��vC@mi�p0C at P���q�B@#���,�B@��,��B@�
7x�B@�2
+�B@�7�Qu,C@�����kC@B�ȫC@���C;�C@ٴV$D@�
+�[D@��UNُD@�Mu��D@��?�D@��fr
E at HP�FE@�Sr�mE at bȮ�,�E@��-ϫ�E at Z6{�O�E@?l�k��E@]�g���E@�
�~��E@��埰�E at Q��&�E@�D����E@�Ճ��F@��/��3F@ތ�LF@�φ�gF@��5^��F@����Q�F@������F@Ʋø��F at b�
�t�F@Ǟ���G@����G at b%o�i/G at w���.GG at 7s�U`G@�%njhG@�!gl
XG@Œ��CG@=��BG@��BG�EG at uQpQG at AP"!LG@~�cP0G@ �]��F@�%c;�F@?�}j�F@Ä����F@�Nl?�yF at K�K��sF at p4�U/�F@�BHp�F at u6j�T�F@����/G@��?��hG@(�H���G@�R���G at 2�n�
H@�ޒZ�AH@��݅�wH@�F E�H at jl�}�H@
��(I@�������������������������������������������������� [...]
�;�=@���/�=@ӹP�4=@.6���<@�|iƠ<@8�ˊZ<@���I�<@��.��;@����;@�0!U�Q;@�
}
;@xKE"�:@6ш��:@�H��Ȃ:@U&^
"S:@�6�� :@5_��b�9 at Vi��8�9@���D9@ u����8@@�<�`8@���&l�7@,��`7 at Zk�#�6@�(S[J6@������5@�>9#5@
+����4@Pq#��3@�� ��O3 at U'<B�2@��sJ
2@�: �1 at g�:>01@���71@�.o?�2@ ��.�6 at O��15�;@��
$�9@�CBå�4@�}c0��1@�)�Ƈ41@
�Rb_J1@˙'�af1@��=�6�1@���ϯ1@�
Ňc2@�`m)��2 at 4BI��O3@����3@��9�א4 at 2:H�'w5 at 2��wxo7@���;@[g0@@�_���B at qͣǸhE@��1��G@��נ
+]J@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������7��+;I@��'�bFI@���JI@��s)�I@�Xg�x�H@ ��уH@�*�V1H@� [...]
+�E@&��GE@��� ��D at K=<�D@�t*N�pD at Q����.D@@�L �C@?���g�C@
+� "�aC@�9��#C@%>��C@�l�-�B@��v���B@�w]�"C@,�Ak�ZC@��sV̜C@]�R��C at i�4�
+!D at f���]D at 5���D at V�wC��D@�Q�~�E@�H��4E at h
+�İcE@�7ԏE@�n�˸E at q�Qk��E@��ΔF@/�`^F@@��
b
F@�|�L!F@
+0H�)F@	���x2F@��<F@�H�xOF at LpTuRjF@J���:�F@��+(��F@{
�F@�Ϲh�F@�n$Dx�F@��}kdG@����^,G@�%ƽQDG@�~l!
XG at o/j�&lG at Q��F`�G@���G at d!�3��G at +w(�J�G at h}l��G at -�1FY�G@�
+d˓G at 7Yp1�G@|�z�G@�&�i	�G at g��^�YG@���C�
G@:
+�q��F@
�����F@����ݻF@��ާ��F@��Y�u�F@]㓅�F@)���F@�;��M$G@*�z�fG@$��NA�G@�̒��G@���}�H@
�FRH@ؽ,���H@��=�M�H@��w.�H at a� ']&I@�����������������������������������������������������������������������������ۆ|�/I@�g�M��H@���y�H@�"5��:H at w
H��G@������G@#��AdG@� ?�j
G@�E��F@�ݽn�F@��>jJHF@
����F@�ˡRZ�E@���ƤyE@]@,i5E@�=����D@�����D@{�~
kD@&�>��*D@	�
6�C@��H��C@��* �kC@�/g �+C@,�k��B@��-1�B@�
]�|qB at 7
5�3B@�-��A@�֒a2�A@ �%�|A at S���AA at e-���A at _����@@�'�8�@@�º��`@@O
U�B+@@8�|2�?@,��w �?@��?�
?@5��pg�>@�ݡ�5`>@j�>s?>@8�1�K�=@� # �R=@�c�P�<@7~�tH�<@�{̤S<@ʭ�e	<@��`6�;@,�_�z;@) 5P15;@����:@q?
%�:@��M�{:@ثv
+E:@�>�8:@�Z�J�9@�ik
�9@�Y�;�~9@<PX=�N9@���!\9@)N���8@ئ��q_8@�%�"Y�7@���e�v7@�S.��6@�P�v6@�Q���5@�


�f5@�/���4@!��oF4 at rn����3@�SU<3 at Hs� �}2@��_��1@�y��1F1 at Y�?���0@,�� �0@)
�(1 at t�}��3@�g�ִ7@����5@�~.�K�2@�����	1@�A���0@���0@�G:�1@��׵31@[��?^1@�͵
+7�1@�
�i2@��߂�
3@Ӓ�o�3@���P4 at G+ߓ
45@�b�{7@"�zE��;@�'�ӑ�?@��|0�_B@�UQ
�D at 7��S}1G@���f��I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
V+F@��	<�E@Ӑw\�sE@^��e�,E@�j5c�D at L��.՟D at 4��__D@��dvD at j�R�y�C at v��<�C@�����RC at B��5r0C@���aU)C@���;�*C@��FPC@�9��C@Չ{���C@�:Z��D@ߕ3��UD@$��Ԕ�D@�cv���D at 1z�̄
E@��X�BE@
:���vE@�@j�|�E@ڐ?b��E at to{`� F@��N_(F@@���LF@°
jhF@���
�qF@�o�e�tF@����{F@\9�΄F@
+ ��m�F@��ኡF@�z
�F@�2h]�F@��DFN�F@��i#�G@���Й%G@�T�g�BG at s�%:r_G@�u�|G@��uˬ�G@��'�=�G@��I^�G at C~us��G@ˡY���G@����H at E�`�
H@�����G@�
�O�G at I�oQ�G@ь

�G at P��`I�G@�K%�7�G@�||G@��q�@G@:u�o�G at _����F at Spcݓ�F@��*�l�F@�;�	�F@��
��F@㐎�xG@��18JG@�s�v�G at a��N��G@�2�{:H@��#�XH@�����H@�	��H@�{���H@�1xd\3I@�����������������������������������������������������������������������������1����<I@��%���H at ES���H@^;4TH@Ѥ\�
+H@��Ï��G at wVQ:�zG@�)��z3G@�<��S�F@|KJ�d�F@Ʉ*Z]F@�#3��F at T�t��E@�
m�E@q8�GE@��D
iE@
Ax�Z�D@����rzD@%�6D@
+/1`��C@��M�k�C@�
8]+sC at G�Z��2C@J���B@��+�B@�:B�7uB at Fnw�}6B at F�]�a�A at KV.��A@�H��~A@�p
�~@A@�m�]A@b����@@�;�_i�@@��
M\X@@�F~ @@���5��?@�E�J�f?@<
���>@�[o�ڗ>@�ӏS�4>@��~�V�=@�����s=@�\F��
=@w�<{��<@>E^n<@c���?<@�
��*�;@��6Dt;@m=7�(;@,��|��:@���h�:@bbY,S:@�3b:@�l����9@�k��'�9@���o9@,�H��<9@:[�=

+9 at T���8@|��%�8@��`�8 at Tk �=8@�N
(��7@�u'9qz7@�/��$7 at mn	V�6@��� �
6@�����5@
��A�	5@	˃�4 at c|x�
+�3@�?c3@�I
+�z�2@~�� �=2@є��1 at Lhq�O
+1@)r���0@����m40@�~�|W=0 at v󔍎�0@�4�m��1@����:�1@�)V��0@�I���w0@�Ap�0@��&��0@��p���0@Ec��0@��zz�1@��"�1 at 8S��%2@�Դ���2@�*G�h3 at P�|p�
4@�t�ߤ�4@��M��6 at 5��:�:@��ڰ$r?@����B@`�� �xD@�%1y-�F@"�'��+I@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+G@�O�D
.G@���oG@@�Y�k�G@�����H@����.LH at T
�AҏH@&�U
�H@�z���
+I at 2�kWI@������������������������������������������������������������������������������������HUa�|I@)�a���H at 1�0��nH@}���	%H@���R��G@�JAx��G@���IG@
+�Z�sG@ͥ���F@��
+� rF@��	�+F@�e����E@�5M��E@�P�T\E@�-z��E@&hT�D@�J��ӌD@�(+�HD@�c2��D@�yz�E�C@=���/~C at A�,6<C at HN�P�B@���
q�B@�R��Q{B@��l;B@�}���A@��xF
+�A@�DM�A@ �jJ�BA at u�y�A@�����@@~
�O|�@@�V�R@@�j
W�@@޽�/��?@�$�v9U?@� ~d
�>@^
$y|>@$���>@���<��=@"�֩I=@���.��<@�6�G�<@��˰8<@*�n?:�;@RɄ�}�;@b*��I1;@��d
+��:@��+�$�:@��iF:@=��Io�9@⎴�׶9 at L@�xw9@��O��;9 at 0l�KY9@ۢ�\�8 at r�.�͘8@�"��d8@^�X��58@Ĩ�
8@�
.���7@
Nㆱ7@嗣c�c7@#���7@؃Ak�6@�O�ު
6@,��С5@�P[�#5 at P��5A�4 at t�Խ'&4@�:;�3@�&�MQ3@(_���2@�FBd��1@�d��Y1 at ml5O��0@���v�30@�
���/@I��w^[/@ ׌�A�/@kŤ��0@�g�
0@]*5:0@�
���
+0@�Ewt3%0@���sD0@��Z�lg0@�
�'�0@�;�={�0@~0��;1@
�{S��1@�Y!J�2 at 3ȽI�!3@�w�_�3@������4@̖��X�6@�����:@�^
��)?@��6�b�A@$|\��C@�\Y�F@��a�FH@
��t�jJ@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������W�9� I@�o�h�H@��rp�[H at f����
+H@� ��
�G@�5H��dG@�C��G@
=�$�F at O�d5mF@��2F@�r���E at P�&�ĊE@��[��CE@���Lt E@\��оD@����{D at i�q��7D@�,��C at B�k��C@
+��
+�C@��� �C@�ƥ��C@��V&��C@['�
��C@>ii��%D@��E
bnD@���f�D at b�P`Q�D@��v��:E@ƈ.�mzE@�h�[�E at Q�Ss�E@�G��()F@��R�\F@��=��F at v_�ĺF@�#�0�F@(��FGG@��q
xG@�D�X�G@��y�|"G@�Ȣ�W+G@��i۠5G@�2C�&FG@��Ĝ^G@?^ (yG at M���G at qu

T�G@ٻ.e�G@�V���G at l%�=r�G at n
+#�
H@��s
7H@4<7�MH@�˓{TbH@|_��vH@���d�H at s�
+;�H@�I��H@;A��H@!P��̈́H@�\5��H@#4��nH@|�
x4H@?��	��G at 9��-+�G at os��r�G@�]��lG@���I\G@�H�I�PG at y�Yҫ?G@�;f�c*G at vd��5G@`��oWUG at w���G at 11ߡl�G@`F-r=0H@�
��yH at BR1
+�H at l
+D�I@�������������������������������������������������������������������������������������������x
�c�&I@N��V�H@�aZ�
�H@�q�B�BH@���j�G@�
+����G@��c��cG@�
��G@��r�F@���`݉F@���@F at d�8V��E at i����E@
��[�oE@ �tr
*E@ٸ�D@/i� �D@�f}�ZD@���xD at aDY-X�C@��h�C@»�!HC at y�&�YC@���X	�B@�	΀߃B at R s��BB@�4 GB@��We1�A@�j)g�A at f1�F�FA@��s*�A@|%��@@���;��@@#0��9Q@@�F��@@{����?@N
��F?@[8w��>@o
���h>@'Ch'^�=@^�J֏=@�>�h&=@G*�
��<@	����_<@?�<(a<@ܔ�_֨;@��ҖP;@Q
+
��:@���С:@9V� M:@���g1�9@D���9@�	�akc9@����v
9@�
�lQ�8 at Q��z�8@�N~M(d8 at Gbfc,8@�
s.U�7 at X3��7@�nu�7@�4�'i7@��n��E7@�A�@�7@��E:S�6@�8)���6@
�r6 at y�~1�5@�
W'�25@Y����4@�
A?4 at -a��d�3@�h&�vC3@�k��;�2@�</�62@����
�1@�M��\1@�"�v��0@�Z P��/@w�/@]��Q�.@�Ó��.@	����.@{n�4��.@0_� +/@3	��a/@��/@�s
q�/@J��(0 at c��>�;0@�E'�}u0 at G����0@�ht�E�1@��.1Q at 2@��銯�2@��?|�3@�}
+�u4@~<�0�Q6@�^��9@�/��a`>@�HZ�jcA@!�s��mC@LX:�E at J���_+H at G��/�J@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
3I@�X�Dp�H@���m�H@����2H@#�€i�G@�+�%�G@��O�{?G@!E���F at E4%�ʛF at Wf��IF at d�t���E@�W��~�E at a[H��tE at es8�
0E@�����D at wDl6��D@ב��giD at L[�(D@��W�C@�
c��C@:� �'�C@�-7�C@�Ңj��C at Ek��
+D at q����MD at b��d5�D@��  S�D@��'٧&E@��*qjE at X(�D�E@�ih��E@�J<�*F at mNxz
+eF@�Ϲ-�F@`�.`�F@�mR!� G@,m�^ -G@��?�RG@\���hG at KW�mG@�}��uG@�:O
�~G@&���G at D��A�G@���`��G@�	��G@
+C}��G@�m
��G@�c)jH@ߙ�2H@�|�(OH@)�
�AlH@�f��ƇH@��
	�H at 5&PI�H at S�lS��H at L��@g�H@�Iu�"�H@��y�H at 8�<#�H@�@�U�H@�ս��H at Ke��H@����<H at 3���wH@������G@��j1��G@�ȣz�G at 7k_R�G@����G at zƓU"lG@�;���WG at hHaKbG at w�!<~G@�:G$"�G at -�R��H at yo{�VH@� ~���H@�n�}��H@*[]�FI@������������������������������������������������������������������������������������T�5ϸRI@?^0:%�H@��e�H@W��VcH@`�ؤH@	7C�i�G at r��>a�G@��EJ6G@)rN�[�F@��Z�F@�C_�^[F@��P�
F@�Q|>$�E@ֆ�#x�E@����=E at M�:�S�D@���t
+�D at p���kD at 9'側%D@�M��C@���;�C at 5�c%9XC@���3�C at v,9~s�B@χ)��B@��<ͮMB at v�n

B@ m
,��A@�
��
�A@�r�(�LA@��܆
A at TT�ZI�@@3kwɜ�@@YO��S@@��8Z�@@���Ǵ?@}�i9@?@��sj�>@�:���Z>@
}ͺy�=@T��q�{=@]ţ
�
=@"<�u��<@�V��^:<@��B��;@�i���u;@r�Ĭ;@�{g��:@����h:@>��:@	Oe0�9@�/�Wg9 at 4���9 at 5�e`�8@�T��@�8@���i�>8@�o L� 8@�=⯔�7 at _
�!�7@�4�^T7@Մ\<z7@��^��6@"'
X	�6@�.w��6@�
+�{6 at 3#v�kF6@	O�j��5 at vQ��œ5@�4x�05@���'�4 at n[�!sD4@�pܩ��3 at F�C�X3@�rd��2@��
�\2 at 3 \��1 at x��'Z1@��S^�0@
��=�C0@��;�`/@��3k.@�B<C��-@�t|0
.@^N���.@�DUI.@�~0�f}. at qء���.@)GD%��.@&|;�;7/@�V$�F�/@�+}�@�/@���.00@
�`D�0@�5y_1@�R_��2 at -�)\�2@�$��cH3@
+��oU;4 at 0g��6@�
@vO9@��X��^=@
���@@���'IC at g�
Hr�E@�b��G at E>�l#J@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
H@�����G at 4����nG@�	
Y�
G@�5W
W�F@��E3~zF@�Y��/F@��}}a�E@�ʴ�E at .��saE@��`�
E@��?�a�D at r�%V�D at 3
,\D@�V�PJD@�Z�p��C@�`�O�C@�!�0g�C@(B�{�C@щs�=/D at v��ArD@:uy���D@��Ԫ		E@�"'�PE@�	��E@�n����E@,jN	F at o1���^F@k�ۜF@�����F@�r
�G at u�"�CG@�h%@sG@
{}V��G@����G@0�l��G@:a��G@���%�G@�$X
+��G@�����G@�[���H@��
H@��X*6H at q���MH@�	F��fH@孄���H@�<�H@�}�ջH@�2_��H@�|U�
�H@@c�׍I@�0�G
I@��4">.I@���bCI@����MI@{����(I at l:�
��H at 7����H@�ҩ�„H@g�HOH@�����#H@=�P��H@̀О��G@����I�G at I��
+/�G@����e�G@��~&M�G@
<�Z��G@�
+5�G at -���@�G@�����G at 6|�f�3H@��Y@H@�1���H at d��F+I@��������������������������������������������������������������������������������������������Xdq
I@��8%
�H@�邇H@�b�,;H@/�+�
�G at C����G@[v%VG@���AI
G at 1�֝��F@�p�:qxF@�����.F@�]��Z�E@���ȝE@v�c:TE@Ӕ��
E at W�;���D at 6�͢��D@;)��;D@�ٕ���C@�B��r�C@���&�iC at kW&�W&C@�7�9�B at Y�9;B@��A[B at 1W/�:B@�#�;��A at f�:ɖA@�f6��TA@�Җ3�A at b�l�@@�
�/�@@�Q�HU@@#����@@y�ƶ?@ѽ�a??@�
�'��>@�R��S>@�"�?��=@.#&t�k=@�`�<@W��<@=�E�� <@0}2�;@Z� [...]
�b2 at u�Y�3@�0�g
4@�5i���5@���&
%9@мs2��<@B��gT�@@��
�U'C at U���|wE at 4�A�{�G at 1����I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
�H@�-�^�H@�҇?g#H@�[��.H@ $�QR>H@��G�TH@�����nH at .v0�(�H@ٹ�뙟H@�*9kI�H at E��i�H at f�y�H@�Ź
)
I@�*
c,I@�|Mo�DI@�����������������������������������߸�#O9I@�����H at n|
2�H@�
+,q��H@��τ�sH@�
LTH at c\a��:H@���]$H@� �cH@����G@�1E�-�G@��7���G@@0 ��G at G ;T��G@ ��
#�G at Y`z��H@ ��e�cH@ [�#�H at J�����H at g��|2OI@������������������������������������������������������������������������������������(�χMI@8:L��H@/t�E��H@#	��`H@��a9H at Fd&Z��G@7-�{G at Rt���.G@���3��F@>���F@�q �MF@;��F at 7�\f�E@$�d��nE at 75�4�$E@���ҩ�D@�	g{��D@��=��OD@����	D@]`d���C@ՀM��}C@!��߳8C@(B�]�B@�?��B@K��\kB@
�t�(B at zac�D�A@苨|�A@���`A@�^�
A@^4�?��@@|r�O�@@����[@@^��)@@o]�*� [...]
<@;©ܠ;@�_4;@�w����:@��&
,d:@M�
�� :@��R��9 at D���F9@/��v�8 at H��J�8@�Ie�@8 at F�����7@(��^�7 at j�.��O7@��67@�%��J�6 at K9��<�6@]����L6 at x"Z�f6@��&5��5 at bŷΨ5@ҙYH|5@�)̮W5@��M"�45@���cl5 at y��ć�4@���+��4@��17�74@�Ғ0��3 at .��\�S3 at 6�����2@�$�x�o2 at M�A˭�1 at sM��01@���+<1@��寍0 at wB�_0@׵H�p//@�����5.@�4��"5-@sԕ�,@ˬ�ْ�,@����/�, at N�n�I�, at 4���o -@�
��^- at Qe��g�-@�9~Su�-@M'c�9. at 9U��ߖ. at Ss��H/@m�ڰJ70 at n�L8��0@��{^-�1@���l)2@�k<���2@[a�Ȥ�3@��
+��5@�#C�8 at a�$�{�<@פ2L�@@d4
8\�B@�����D at 6R8��qG@�_]��I@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+liH@����k
H at E�̌�G@
��{��G at N�3Ka/G@��cp��F@�?�—F@���?�TF@�F�6F@<���E@�$,߆E@lB�HE@$@!k
E@�����D at i8��ϊD@�-�N�QD@Ņ���8D@όPܳ9D@�S]
(MD@��u�ksD@���_�D@�FV�g�D@��ϱUEE@��f��E@�-�1 �E at L��i'F@��|�JpF@ق�oq�F at io]��F at 3b��AG at j�է!�G@��n��G@	R����G@]�E�T)H@k�b.QH at ALj��fH@^�2O�lH@���LvH@�a�;�H at E��`�H at z�߰��H@����0�H@�{�ϕ�H@���6��H@��L<]	I@�YS5�(I@�k>�DI@������������������������������������������������������������������?DI@�و���H@�y/E!�H@����H@�^a���H@��O�!yH@
9�<cH@�K �
KH@ [...]
+~�ڑ;@�V�";@�r at H��:@fdS��H:@������9@!���qy9@�d�9 at e�
U�8@���Y`8@�&/-�8@[Vc���7@
�?Z7@��!��	7 at 1%�$ǹ6@��9m6@�L��X(6@�gC��5 at 7�ZP~�5@:��Qq5@\�`%�;5@
X�\�5@�z�]�4 at x���;�4@��
]J�4@��@uml4 at Y&G�5F4@7���4@,�
���3@���TN3@�m�h��2@��hѢf2@�^f�I�1 at 44���1 at -��d-
1 at _����0@�{~g0@
�Ζ:P/@��x7 k. at Oy�c�z- at g4�@
�,@s�Dh�+@�.'V��+@ %��/
+,@�!��;,@�>�m`s,@��4d��,@�!d���,@�_>]�B- at P��-@�:0Da�- at c��(�.@��׏�/@���%�0@=��`,M1@���u��1@�?�fk�2@��s\��3@;�)�"�5@�?�ay�8@�?
��<@e�|:U�@@��󔦧B@?�j���D@�� _r(G@�Er{�I@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
VwD at z���_�D@ݝ��<�D@�v��
	E@���[rXE@�PCK�E@��xL�E at a�H LBF at y��]��F@
"�O�F@�`T�J$G@����lG@�c�o�G@�m���G@cA�&1H at P�}Q�hH@�O�"�H at M�*\��H@!<�φ�H@
L�.�H@���n�H@:�r��H@�׿��H@
�YI@|�}@.I@?�
�EI@�������������������������������������������������������������������������������������������ǜ��b'I at V47�I@�'d��H@�r�J��H@;�宿�H@��nJ��H@��W�H@�
6��VH at Z-P.H@�,�H@�0�ZX
H@���#�
H at T��rLH@��[
ЌH@�SW���H@!m�H�I@���������������������������������������������������������� [...]
+B at 8I���A@�-�L�A@
)u0<A at t�'��@@P�β@@&;5��q@@�_���/@@l�T���?@��{!'X?@V�/���>@uEA��[>@}>�s�=@ޮi�Ce=@��?��<@ڀ"- v<@
a�
 <@u�?.�;@e�G��;@��Zt�:@U3��3:@T�l/6�9@\%9W�[9@�����8@
@��\�8@�s�=8/8@�t�c��7 at 4O1u7 at x(U)7@�s�%_�6 at E<p3t6@���$6@�YD8�5@�:��Y�5@�&�J�J5 at 9Z��
5 at bC�Ž�4@ �Y��4@�͖�f4@
��g�44@�q $V
4@�Y���3@"���3 at _���?�3@}���z3@"��63 at -���:�2@�_Ϡ`2@�fzK��1@��P�{1@�y!h;1@��'�0@�?!^"
0@	3H�$L/@t�
M�`.@�ͳ�-@�)���,@�
ih
�+ at X�l�
+ at Ip�+0+@#^H�Y+@�
+�;�+ at y�F���+ at x@�f�	, at 6�6�P,@&0�ϖ�,@ªg�,@���n�a-@���y�8. at To���/@��*q�s0 at fʹt�
1@���{�1@R�!�n2@���#Zv3 at l
+�i�z5@�gmY��8@d�<@[�v�[�@@	�w���B@�оk��D@;����F@��7
Y!I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
ɴE@���2cyE@�#qg�=E at Z�� 
E@
��4�D@��2�ٝD at J-�^�D@�-��J�D@!C�A\�D@�Hτ��D@���Qd
E@[F� �hE at U^�@�E@���A<F@�VF at l�����F at AݼZ��F@��l
�BG@�&e���G@��l ��G@�Y�S� H at Z{e�GdH@�d����H@�����H@]#-�H@Ⱦ
'YI at n���
I@���<�%I@ħ��.4I@��N��JI@�������������������������������������������������������������������������������������������������������������������������������j��
5I at Y�T�zI@��b�c�H@��B���H@��7~�H at XKK1A}H@���WH@'�X��CH@����9H at x�
�UH@�;�_�H@�����H@�b���I@��������������������������������������������������������������������������������������������������ڵ��/I@�� �e�H@;� m�H@蟩I"=H@"-�[�G@?H��+�G@,/��TG at 1y`�G at 5C����F@�׏k
nF at 7���r!F@��ѦK�E at W-_̋�E@
)+}'>E@=q�j��D@"jHn�D@�M�B
+[D@�QdD@>�(f��C@��(~�C@���~<C@�����B@$^
ڭB at jRz�gB at Z��
u"B@��Tb�A@� ��A at m�
�OOA@'ō��
+A@
��]�@@Y(�U�~@@���u-=@@����?@s;�o?@Z�*2F�>@�a9�k>@�R���=@��ƚ�m=@#�31��<@��޾�w<@���Ok�;@�'����;@|H�i�;@���#�:@�6�>$:@���m.�9@����E9 at nܢ��8@��i��l8@�qI�8@�+M�7@�~�P�E7@�O^i�6 at CyF}�6@�k���06@��Y��5@�����5@{\
ּ=5@̷lv��4@��סȮ4@�X�o4 at 1�vfp34@��mQ+�3 at q�C��3@���j��3 at O��fe3@�3�wC3@>o��5$3 at M��&3@�G,�0�2 at 6��j��2 at I]d�V2 at _��ω�1@�
��gu1@�
"�1@�6���0@Ɇ�00@�DtI/@�G�$T_.@�*��7t-@
��iϏ, at t�8��+@���u�*@�by}�\*@�ks�|*@T՗)�*@� ���*@�>�b
+@/a���`+@~6����+@��:^��+@��W#�X,@��] [...]
yE@

@E at 7��HE@���r�D at tm���D@*��0��D@���4Q�D@�
�~E at L�
2E@�=�ɦzE at 6�k6
�E@
���lF@:�J\jF@ݛ���F@�u!
+G@@�v5[G@!�?�G@
�-�G@�옚�DH@���όH@������H@	yx�I@��a�9RI@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������X�"�CI@���I@����]�H at .��!�H at B l
E�H at u>��pH at zN�mH@6f0v�H@��4��H@�ץ~7I@�����������������������������������������������������������������������������������������������������������q�I@�����H at I��
hH@����H@ [...]
+��F at d��MGF@�2���E@�]Oy�E@�&��ddE@c.mE@�Tى0�D@������D@�S?j�5D@�*z֗�C@��I��C@���ϲXC@k��DC at U��j�B@��`��B@ ����9B at Fǡ���A@�i즬A@e50�eA at a�}��
A at PĆ�@@���f�@@�NFL@@�c7��@@��%�r�?@��\�?@|�D�>@F[>�)�=@�E�q�z=@���H��<@�+rĴ}<@��ph�<@�뽲C�;@���;@׻��p�:@��N� :@ՉȎƪ9@�uق�69@�zsh�8 at .���W8@�����7@�%�~7@aCi7 at P@:��6@�
*6*Y6@�����5 at Pvfu٢5@ zM�
J5@�K�.�4 at fgBr��4@�]
+��[4 at Q��:4 at w�5��3@�fft��3 at Je�nY3@⒄��#3@[v��P�2@
1 �8�2@���{y�2@���^y|2@)C�pv_2@���"C2@����*!2@̮V�1@&��rj1@
K0P��0@묤��0 at 3
+�y�0@��uɳF/@3Fn��[.@&�_�or-@����, at Z�.���+ at T��P�*@{�ma�)@c��/�)@��g�)@D���)@��~N2*@K�*Зr*@�
�H]�*@K�3�	+@*4a,MY+@�X�Z��+@
��RI,@�e36[-@�fi��. at H"
��0@������0@�	�	�e1@�DHH�2@� g�v$3@�
 �5@�n�hO8@(�C��<@�A�]W@@4��LB at 5�z�eWD at 1ު�!�F at 4ފ�I@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
 H@�
�MѲG@�K��jG@��Ұ�*G@�AU��F@\�6S�F@��b�dF@%����&F@�hM�}�E@/A�E@�\2-"~E at E�bkFE@�s-:mE@``���D@[����D@�l<*z
E at V���'E@>w�i`OE@�:	�E@Np�E@��%��.F at Q��qF@�b�F@�B7XG@�їpG@]s�=�G at U�>
+�H@(���`H at zxn��H@��@ݎ�H at 4��U�LI@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������)�
�.I@���75�H@�ݶ��H at lD��I�H@��rm��H at lr`Rx�H@�cO���H@����I@���������������������������������������������������������������������������������������������������������2B)r>I@�����H at P-�r�H@�����EH@/��;�G at X�ԦG at v>�0YG at X4�� [...]
J�w�E@�h
�~@E@�����D@2Cż�D@b��\D@��[��D@��L���C at S���%{C at lOJ�
1C@�"
X��B@Ã`AϠB@˷�JWB@%|X�B at H-��A@ʙ	@`A at c��N�7A@*YeG�@@
���K�@@V�b@@u=N�@@��[*��?@����8#?@�	��;�>@1��~�>@� \��=@��8k[
=@��1�<@���
<@+�

�;@��_��;@׺�:@�^BΦ
:@�e���9@�{���-9 at F:EJո8 at q���G8@�e
n�7@ֵ�
Yg7 at At_���6@���*ߑ6@�'
N-6@�
+2>�5@��Sm5@;��
5@��9���4@

���c4@���4@
�[f��3@��m�x3@^ش*�33@�
$6��2 at w�t��2@��H[�2@?�EȥJ2@�1Pk�2 at q�%���1@������1@
ϗ�1@G�w��1@	[��1 at +���S1 at E"Yz%�0@�⼴��0@
]�s
0 at 3�&y8/@0; ?�Y.@	D�v-@#"��~�,@�gL���+@�����*@�V��)@�y���(@s�c��(@���$?)@W�XmoK)@�� y��)@�
+�W��)@��_i*@�	*Jb*@m����*@z:��%+ at KJ����+@�O~�w�, at L�c86o.@ЗP��/@�,�f��0@��ښ�=1 at WƬ�{�1 at v��>83@��Ys}$5@~:2��>8 at .��h4=@ ����@@Sy��^C at S-��3"E@�Dc3�^G@�D�=�I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+bF@/k�>�(F@������E@��b�E@/.Ȩ�E@�F�y�JE@�8jE� E at t�P��&E at F0㢳6E@�̞�ME at h�S�pE@
+�~Q��E@��]���E@���CIF@�6I�3�F at h3W#��F@�z(1?7G@��!a�G at u��9�G@�����(H at E����yH@)�`r��H@�f�AOI@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ǒ�
I@{{���H@��!p�H@����H at y�m��H at H�![�
I@��������������������������������������������������������������������������������������������������������� [...]
+"�D@�6W�I9D@�-�$\�C@��b�V�C@/�6M�TC@|%���C@
�}l�B@�
���vB@��C
�,B@�V��A@\�0�C�A@�,.ۆRA@{�	A@�|� �@@��s	�z@@����3@@�&:c�?@W'L?@�	�M��>@o�n8>@��o�ͯ=@<�k|�'=@�c�<B�<@%";�
<@���q�;@
� ;@��2�:@N����%:@
+6��
�9@��ݳ/9@�Rx���8 at 0d.T�?8@����I�7@���P�W7@�:��B�6 at x\��'w6@�A��,
6@��B}A�5 at +�W>5@ɥ”k�4 at 36��M�4@�>I�'4@��ˁ��3@����tz3@�
�cn*3@��>K��2 at Z��U�2@�F��U2@��X��2@U���1@>̄�ب1@
k�9�t1@�__2M1@|���.1@��t11@#��p�0@���
�0 at 6��LC�0@��|y0@�m��$
0@��M8<,/@}��GF.@�g�Dzk-@�\�
#�,@@;���+@�`����*@�
��(�)@7��%J�(@Xm1�"%(@l��<(@�2��g(@cT��7�(@�=���(@�(")@*��.m)@�2����)@�N�cv*@ KF�Ɣ*@s(�܋i+@�0ʈ�,@�gu#�".@��
	�/@i��ci0 at I:��z
1@�n���1@����3@
�QX�45@)��t�i8@�w�W��<@�@nNa�@@܀^}L�B@��Mq�lE at d�T�G@]
�J@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
��MB@�A�B at E
 !�A@ր�y�oA@��
+�%A at 6',��@@#�'T�@@ =��M@@Z�ޯ�@@;[�J�y?@X4�&�>@��׭x\>@��O��=@`1^i�J=@�ͥ�<@���:<@D\Y��;@h���/;@[�s��:@��b�I1:@��Exn�9@�o? �49@��e�X�8@
A���?8@��F��7@�
�Q7@��K��6@�!�
h6@)��bS�5@��Oy
�5@���LG5 at tw��|�4 at Tp9�P4 at 2�'ӑ�3@�*c'�3@Q�	�=3@�2CB��2@��L�2@�0�
+'F2@�pm>�1@Py�1 at p�2{1@�	�SA1 at Z��Ž1 at K3�P�0 at 7
����0 at i7��׆0@
����j0@��=-T0@���mB0@�]��e80 at G|�Z�/@C����$/@[�X�U:.@���TfP-@jb�s,@��
�7�+ at +��+��*@�Ӣ_[�)@k[�
+�(@v鋀?	(@��~�f'@�W�it�'@Ƙi�Z�'@��B���'@N�XI2(@+Gi�
z(@�Aj���(@,� ��
)@]��})@]
+6�*@���Cs+ at 3
zX�g,@?6�\�- at f;�6-/@�<�$�:0@�??-��0@��9�1@(ƩIO
3 at B�Ԥ�J5@�,���8@�|'�]<@�N^):@@�N���yB@�Nn��D@�[�%�WG@\��]�I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
H at a~W�]H at s�g[I�H@Ǎk�%�H@��cJ�QI@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������0^O��9I@�����H@/=!�ՓH@D�}CH@}�G=��G@����"�G@�QRG@��ښ� [...]
C@'Y�_۾B@��Sy�qB@�^���&B at +��F��A@*�D�X�A@�
��EA@�Q�s��@@
+��w��@@��V�Pi@@�?��!@@(p��?@�h���
?@>~Υ�>@B���=@�}|ɫq=@{��~��<@�.58^<@� 8
W�;@�T��pK;@O�����:@r����B:@���9@��;�@9@,h�I�8@�h:R\C8@
+�ʡ^�7@r[�QO7@�L��f�6 at -��r�`6@��\\��5@��cF�v5@ݵ��o5@��s�{�4@�W�Kf+4 at g�,�K�3@]!+�fe3@�[�`�3 at F��

�2@�����U2@��}�9 2@�ɍ�,�1@	��V�a1@��ֽ1@�P��y�0@
-o� �0@
�%�f0 at JI{Ļ.0@ �߉0 at t!
=��/@�
�.��/@�[��^/@���'�7/@`
+{�I=/@�T<[��.@[�Jf$4. at x�'��O-@�M
C�b,@��/
�+@�`=��*@p��؈�)@�����(@jlj��
(@Qߵ��?'@��֥°&@��oE�&@��&3
+'@'� 
F'@B�R{�'@�̏�b�'@s���<%(@�ι��}(@
+�%u�(@bE'%U�)@����*@K�>%, at Q���-@
+ʟ��. at V!�%�0@" �d�0@��PՎ1@�
]3@�ȱB�V5 at OvtQ�8@��M��<@l��Neb@@u�廼B@�փ7[E@�
jj�G@�
��%J@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+JH@�4�Y�H at 9�&���G at v�LT�G at L��6�VG@��}�G@}�t�
�F at i	
��F@�3��jF@%hԺ</F@���%��E@�
���E at h�-*�E at g%�n�E@���g��E at K�	r�E@��
��F@��?��`F@��,��F@���F@���
DG at z�
:��G@ \"[�G@��(Y:*H at K�&~yH@�9��]�H@$ą��I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+��G@�z|`�8G@����w�F@���)9�F@"J��GF@����E@�0\Xz�E at 2��4ZE@
#�N
E@
����D@�� ~nD at m!(]!D@$�����C@��WR�C@��:�v9C@��D�B@�?�x�B@%��CMB at C^� B@�<��
�A at c��-�iA@� R�C
A@����@@#�<ۇ@@���`>@@p���?@�A��:Y?@e/�
+G�>@�Q[E33>@4�ޒ.�=@B��}�=@͢��_�<@��
��;@��ɝs;@���gq�:@O�`�M^:@"bS�0�9@����T9@�=��8@�wb�Q8@$K���7@�0�U7@��=�6@ ,l��^6@��(:�5@�[
L�m5@
W�=�4@��܂4 at YA�4@��2�3@�(�,�<3@҄�G�2@%�ly2@�
c��
2@�a����1@�R�o�l1@��
�1@Ǽn';�0@%���0 at 2�� �:0@�d�/@��&i�/@���/@�N�x1�.@��3
t.@\���:.@��5* .@������- at L��m��- at R��j(�-@��F�@-@Ƥh�sd,@����{+ at l*Bn�*@���

�)@L���(@{��Rv	(@B�p�='@�ҿMmr&@���T#�%@A]�ɕ%&@֠�
4]&@څE�&@?a����&@'n�50'@
�k��'@N�Sf�'@[�
YSO(@����$)@g?�h*@�G�[�+@���;-@e��4�.@�V杦�/@ 7����0@� ��>s1@�^�*�3@
K�D��5@�*�.B�9 at f���=@H�,�@@�@�H/C@�y�*A�E@
�
�`H@	��K��J@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+U�F@։���F@�;�P
G@r�ѼgG@�6l�ƲG@��ݩ��G at 9 �EJH@) 
5l�H@
a�y��H at .a�'3<I@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������׫K�RI@�׳�P�H at h=����H@v��]H@�k{W�
H@��.
��G@�	���lG at -�Ȇ
G at ld�Rv�F@��}R~F@� [...]
+v��,@Wc�,@���8G�,@I�):�,@�S��ߺ,@!��?, at Vr�o+@r:c��*@w����)@�Є#>�(@��(D�'@�7�4
+'@��9C�F&@J4bcJ�%@����G%@�qP�u%@0�ۯ%@���5
�%@JFU:&@�']�[�&@�!q��&@g�,�C'@7s|ď�'@K���%�(@;�J<'*@�)��u+ at w�5=2�,@���?l*. at 8���n/@��z��h0@��4��\1@&��;3@�}��_6@
��/�:@����'�>@�i\�BA@����=}C at C(|]&�E@����}�H@���;2K@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+�JC@�{���B@�Ap�z�B@�UXfa\B@��ڹ�
B@�%p��A@�X
��lA@���.�
A@�T��@@���@@��F�k9@@h�ꡗ�?@��4�0D?@���d��>@x7ڡ
>@�!�	��=@��8q�<@i���a<@�~w�x�;@��E'�A;@��^���:@]��(:@S��x�9@��Q��9@ �
Uۅ8@��'#�7@�� �w7@'���P�6 at c�Dq6@ �����5 at m�v5 at G. ?�4@�W~�~4@��]{4@��h�ĉ3@^�b��3@%8I��2@�8��72@^?n���1@�ָ�e1@�'r��1@��=�0@����I0@�R����/@p:�?/@�����.@��X�	.@/ȕ���-@zn��- at Z�
u
�,@�1%
5/, at RO����+@�?p?-�+ at H�:�m+@�#��I+@�y�S�c+@]�8�A�+@��B>+@550�z*@�^�C�)@�V6S�(@́uv�'@X@\���&@��WO
+&@+����?%@w^�-�$@��ֲ�$@U @�/�$@p7kL%@G�&�H%@Y�:=7�%@�����%@k�R�E&@,Kd�ت&@W/���='@3o��K(@CQ���)@a at TZ)+@�В~3�, at lf�Jz�-@
+�˘�
/@�M
� D0@�Ө+F1@��1B\3 at Lع���6@�H|�:@uv���5?@��9 �A@�R��ɧC@"��I�E@]T���@H at VT��U�J@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
W)<,�D at z���OlD@���S
D@�c�GJ�C@���C�{C@�[r&�+C at i�����B@)A
���B@�P��:B@�;z?*�A at T�f�"�A@$eΚ&JA at j�����@@���@@_����^@@n���
@@��V��?@ꉵ���>@GWɈ^>@)3�.;�=@Qp��6=@G݄���<@*�
�
<@-cjz;@��
�q�:@����Z:@�0E���9@\�
-)>9@�H{�ϯ8@ک�$8@\�K4�7@�4�
o7 at L��wÈ6@�a�6@�a���5@�ǻ��5@�D���4@���,	4@���%��3 at V�1�3@� -�2 at O _�O$2@���	ҵ1 at R-���G1@�`���0 at fVq{0@�Ȁv^0@
��
v/@|Zn��. at ELN?. at -ܷ��x-@����v�,@�Ո�H,@���~R�+@�1l�P+@}�r
��*@��i#֑*@H�_�P*@0m��>$*@�!�{)�)@j�HW*@ͼB
+D*@�g�Lj5*@y�TÇ�)@쨖g�(@�E�@�'@���tr�&@�=m:�%@IQ�b�
%@�����=$@Q�ο#@���aE�#@'�w��$@�ט�Z$@��Q��$@�8ך�$@jp�"�I%@�b�u�%@��cO&@�J�Dp�&@ad�
�'@j�]Gg)@�#�k�*@$�>�>,@�йڼ�-@��#WY�.@�`�ej0@�S7M�41@�S��~43@�S76��6 at b��#>;@��W���>@�
+�E�]A at N��<ρC at rm"$��E@
 ���G@}�vW�!J@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
�DH at H[�#�H at NՁ"P�G@����G@���XJG at .�J��
G@������F@�滲��F@��~�bF@#^�ExjF@�-3I_vF at x�8�
�F@��`���F@�V�0��F@�g��GG@���5J�G@	$���G at K�+pH%H@�o^rnH@(?���H@���#I@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+H@�j+��G@����iG@œқYG@�M7!T�F@[i[zF@��&bb*F@���IJ�E at R����E@��q��>E@շޘs�D at M�k]�D@�^(ݓOD@�!DƬ�C at _[9��C at I��q(_C at L<[��
C@�r�hνB@��š�lB at FbcRB at R"�E��A at f;(H�zA at m�de�)A at v;g�
�@@Hs��?�@@Wt?��;@@��57�?@���oA?@]}_�q�>@���>@�"�#�y=@�^�y*�<@�Ã��M<@�����;@8�5>$;@~^k��:@�]�~d:@��Vs9@Ұ�bs�8@�� �^Q8@����7@(网@:7@�.�4��6@
+=q4$6 at 4�N���5@��Q+�5@�	�m�4@<ö�4 at O��St�3@�(�3@<�ݿ	�2@;��
2 at -
�@@�1@`Nz51@ԭ��b�0@e�cJZ0@�(�Z��/@���q
/@�N:��Y.@/#xf��- at c+0Q��,@>jb��P,@��igQ�+@#��Ĝ+@|MY��*@
�6�K*@�닺��)@�G"
H)@����F)@�����(@"Tw���(@�xpְ�(@A��q�(@ϜQ��
)@�O��(@�6k6��'@,V�a�&@�6^F�%@��á	%@\<� �
$@��T8N#@a��
+#@-vǃ+#@t���.m#@�|���#@�����#@Q�Q��O$@����x�$@�
+�^%@�pnBk�%@ҹ��X&@Q
46G�'@Ϲ��)@�WGt}*@�4�+@���+-@����\x.@��af� 0@�t��+1@��J�\3 at k���c�6 at o�?N�:@p�)��>@<���kpA@=�T��{C@�d��!�E@
@BKs�G@�����I@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+#�
�1D@�- ��C@\�t�
�C@�G at C@�t�_^�B at d2���B at N
m�NB@
��s�A@�^0ڦ�A@��ʝ[A at R��K	A@��£��@@�u�Pi@@�^W�@@5i�S�?@�W`L��>@R��3^>@}�4��=@�v��,=@:
�V�<@��).�;@�
ù�f;@����G�:@�� �
@:@���&�9@�ʞ
9@2V� �8@��ՙ^�7 at SI���g7@�+o�6@���aO6@����5 at FL�Z55@�Dۉ�4@�>b�2'4@�^�6�3 at OM0.x!3@��O��2 at d
�g]#2 at Z�U�1@�	�g�01 at c��0@^֭��F0@���/@���J��.@�Kh<
+.@���k�@-@G��t�,@��'x�+@!���&+@^Y�\K}*@	� 7�)@���M�W)@�UA�K�(@�
Nvjd(@z�
,r(@ç��'@���̨�'@�fc5`'@�9'gY�'@�m
g�'@�^��V�'@���	�'@Ga-a��&@����%@7�%@�^�W�&$@�ğЀ:#@n�>��p"@N��kN"@���1|{"@5OY���"@�6,��#@�|�W#@q��!��#@��.��$@��1	x$@O9�`��$@�0���%@�W��E'@�
��?�(@ D�2)*@���v�+ at mP4�7�,@]���7.@���"c�/@����PF1@���}L�3@A2.�7@�����;@s�&��@@6If'B@�Иs
D at LD�{�
F@�5N�bH@�5���
J@������������������������������������������������������������������������������������������� [...]
)��F at j�<->�F@��P��F@�"��/	G@��ĦLG@��b�G@���5��G@"�;�#+H at Y5�0tH@�q΅��H@
�&��I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+
+�>@�~��=@l���<@M�[��I<@H^e���;@����~;@�K�5g�:@�]����9@%� J�\9@g�� �8@ �=��58@,T-�7@���>7@*��D�6@�
�a�5@'N
�b5@����4 at GZ�J�I4@(9�
+�3@$���B:3@�4�~�2 at +LP12 at JkMF��1@�I�`41@��P
�0 at u��P�B0@߹��r�/@�m蕴. at mL� ��-@�*��0 -@��t�z.,@��0i�g+@�f��
+�*@����)@��gW|R)@�2��(@�
F
#(@���
+M�'@�
k+�%'@[}�X�&@s��؍q&@ٗ�/:&@"����&@~E�ލ6&@
+��l�i&@��DY�&@�c�&@M4>c�%@��
��%@x<	�#*$@�eG,KH#@��7�]"@�k�!d�!@^�D̙!@����!@�CV"@^t ��_"@I#VJ�"@t\��|#@4;k	w#@u���n�#@f��GR~$@�đg�%@4��z�&@��"��h(@����)@�D�:3+@��1�~,@���{�- at e� ��/@��E�ts1 at M�vMd4@����ۙ8@�K�V��<@C\^#�d@@İo*�TB@�2
�5ED@����LF@�=��SH@ >\�!_J@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+�}T�0G at MO��qG at l!��C�G@h�_TH at 4K� �QH@����V�H at W�?��H@�P`!�8I@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ��?=I at 7�G��� [...]
9�i�CD@�w�/�C@��r&�C@~6�}SC@����YC@����h�B@~��aB@�;J��B at nB��U�A@��?6pA@�p���A@�zw��@@=�^J.|@@|tI�+@@ҡ^��?@S�a�C?@�^�^s>@���^'�=@�\S�==@��?�
�<@�:��r<@�}
+�=k;@��ʌ�:@t�2��8:@�
�֠9@��>p
+9@Ң��cu8@���
+��7 at HH�3`N7 at h�@J�6@��77'6@p÷��5@��
+n�5@�D�O�w4@�V}��3@��@��^3@�m<���2@���,�L2@��@�1@�KȎA1 at M
+gT��0@���E0@�ܼ��/@��.��.@�K~��-@
�܂��,@
6�k�+@���R"+ at Dx�ëT*@g$pB��)@
#�,m�(@����)(@�	�Ä'@�kͷ��&@�BsU�e&@o�u�`�%@�hɘ�{%@��{��*%@Kß S�$@�x��$@���f��$@�ag_*"%@��kk%@ ����|%@�M�cc�$@l��2$@`$�`">#@3</�
+e"@�,��S~!@N�v�� @b��,� @$��!@.+��k!@��m�U�!@=����"@��eF�u"@��+f��"@�ԓ̯T#@0,��$@�c�
?%@�j
+D��&@�_T��
(@�b�i��)@
+�0�G�*@'h�y,@�RF�O�-@�RF�-�/@�
�n۠1 at +���4 at e��C�8@`5uF=@���B�V@@����O#B@���D@����{F@��"��H@v��1>J@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
N
E@�W�3&�D at 1��`�xD@�_s%D at g!�a��C@
c����C@��
+�x4C@œ)���B@
��v�B@�nۖZCB@;}�/��A@�m��A at 6�Oe]SA@��K[�A@��+��@@�����_@@�u
�@@،�ئ{?@lW���>@�וaK5>@�
E�
�=@���m�<@8s�m
^<@���Y��;@�7<'';@��S'��:@d
���9@;����U9@*:Ox��8@�l��$8@��\~�7@�%�w�6@����f6 at W����5 at O
b4>5@������4@����#
4@�.���3@⻜/M�2@�0��Gr2@� / �1@���Ti]1@�A�M��0@{���T0@<
x[��/@�I�x�.@�Am�t�-@��,@��)�)�+ at v���
+�*@��M�s*@4a�zjG)@E�N?(}(@�V�D�'@DT~�#'@�(0gX&@��
7�%@��L
�-%@��iT̬$@�3��<$@Q�
��#@9�SEL�#@�;hoUy#@��I�
+�#@'����#@ws:��*$@b�1�\Z$@����#@�~ u
#@]�#M"@85X�3w!@|�?�� @�~��+
 @�o7
�1 @�*(<�n @j���� @��]{R!@���(�u!@�A�%U�!@g:%cN"@�����"@E�1�
�#@6�]$:�$@��
:V&@�
F��'@k���!)@L�A�l*@��[�+@�ʞ��m-@�Fg�V�/@1t��1 at b�O�4H5 at I
f�9@'
4UI�<@�+�{M�@@�׼�B@��c]	mD@�"��[F at .jgQJH at K��>J@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
��G@�2.�C�G@���H@���<,DH at F���8�H@��
z�H@�ܸy�&I@�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Hf;I at i[y
�H@���ݒH at U�m [...]
+j��gC@����C at lC���B@����[tB@ h�
�#B@�oP�/�A@���7ńA at 4-��4A@�P���@@�4�
Ԗ@@��,�E@@}yǴy�?@�be~C?@Aˆs�>@i �N��=@	��5Z=@(zd|�<@��&7<@��.�>;@ ����:@(u\��G:@�{x˫9@�|
�79@�'��u8 at c
+ �.�7@
+���A7@�T/6@

+��6@g�
�~5 at LX���4@
�ډV4 at ms#a�3@�
Ә13@�ꡱ��2@��
+��2@:4GK�1@�Ҡ3��0@�rk�jp0@ ��8��/@�B��.@����- at MG�i��,@���N[�+@Y���*@B��Tx�)@��K��)@h=0�:(@�٫h'@
�C��&@K����%@O~�˿/%@U[��W�$@@�_?�#@��
+Z�t#@U��*��"@���]�"@-u��\"@ӉW8�+"@8!dXX"@�N�ۛ�"@
s��.�"@�
+��*#@�
+uz�"@⍀��"@(��IV!@������ @�	+�b@��=��
@�O���@9����@B�k�� @���v @w�]� @���K!@FO"���!@��QF"@RT��6#@[�(dm|$@5$v���%@ƬM�^'@1��^�(@��T�*@�-�Cy+@ۻ~]�R-@�,�m|�/@l���u�1@�@����5 at j�h��f9 at F��Q�<@���Y�|@@T�
�`B@(�a��CD@��'��F@� � �G@�+���I@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
wG@]�,Y�G@b�b�H@
c��b.H@��ձ1)H at B�*�CH@]���lH@�%J�I�H@ؖh��H@�{�qQ+I@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������>
�� [...]
5`):@�`	�h9@��k��8 at a�%�;18@&ld�}�7@[}�X��6@'U�@�a6@�����5@�I�l15@
��ӛ4@�ʴ��4 at N�ws1n3@�M|c�2@�u�J2 at BDH��1@����&1@�D��{�0@�T@{t
0@<>]��/@#���- at A榩^�,@��uʾ�+@���;��*@�Y��p�)@֝�u�)@��%(@��m|4'@B�?djY&@G|F"D�%@����r�$@����~
+$@2Y� �^#@
+�����"@��fXk<"@*p�
+��!@�
+��`^!@ľ#
3!@�z�7� @��q"�!@�JD
 V!@�����!@M{9yC�!@��=|O�!@�cf��!@�%�*�V @��t�@���S�
@V�m�67
@KARL�
@U��49
@�w�&�
@y���@k�d�}G @/��y� @��F�7!@q�-�!�!@�~�Q�"@m�
�b($@fc
As�%@
�ǎk'@6�f2Tm(@��	�)@ ��:+@?+�3$/- at z�����/@�L��P�1 at N�_;A5 at N�����8@����$<@�2�k~�?@V�wՙA at R㦜yC at o$|�?nE at o$
�yG@���A��I@�������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
�G@�<u�G@
	���G@�R��
PH@~�
`�H@�A�{ОH@
��
ȎH@�. �ӤH at q!���H@��I@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
@@ِU�>y?@H�6�>@ow�R�.>@(���O�=@t�
�.�<@N��}F<@�iU�;@�=��.;@Qt�ge:@�l��I�9@}���(9@�����8@�]�+x�7 at Zk�6
R7@*�z�շ6@
ϖ�
6 at 1hN�Ӏ5 at u|zw�4 at C���P4 at 1!�q�3@����� 3@�k	�̉2 at I�`Y>�1@��J�]1 at L��~�0@� �|;0 at W����Z/@SY��3?.@
+�*-@�Pt��
, at 8 �Cx+ at 9

6Y*@�2V)@N��(@�n(
� '@hҼ�v5&@u�L�T%@k2�
Dz$@��Һ��#@eN`��"@5���}3"@�mI��!@q�
t� !@%U���� @�a�� @h�C�X�@8
;Y�)@�/Ʌ@!��� @K5t��q @���� @;���v @�
��@�1�1�
@ʔ!
@ELm��@j�mU��@2b���K
@A�1H5�
@Eֵ�2�
@O:?"܅
@n|�
l@S(�1 @{��3�� @\�9�tf!@�B��"@&ݝ_�#@���^%@�G=
+��&@�fL��'(@�hw")@�J���+@�)NS[@- at r
���30@�$�lhh2@��:���5@ұ�Q��9@^��l&*=@�1��n@@����DEB@�!��/D@���0
F@�f��%H@
BXJJ@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
��G at q=�;�G@�
+���;H@^���f�H@���l3�H@[fa�	�H@�w��u�H@�����	I@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������t�I@�E2@�� [...]
��8/'@�2�S0&@�oݜ;%@�*�c�Q$@`Zno#@`L�2�"@�
���!@.�8?
!@��B�a @pu��b�@^�d�
@+\� �
@o
D��
@��M�
@��W�
@��(�ې
@����`
@�T�b_�
@�q��̒
@C�p�2�
@{����z
@��f��(@�l�F@��_�d@q:����@:.4��@Qk)7~
@x�;�
a
@e-�a�U
@��J
qY@J�%��6 @
+�ܦ!@rs�GJ"@�[P'W�#@�9xf&%@Sq��Ə&@�����'@�P�qP)@�Ċ���*@�>�w\- at l���0 at 8��Y�>3@˻
�6@
S}Q��:@��t&>@m4�e�@@�t/��B@��9�$�D at y���B�F@��+��H@�2��J@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
�D@G
dD@�RDשD@!g�'��C@��?d
fC@;���C@@	G��B at w�I��fB@��u�B@���@ �A@~ޘw oA at VIMq|
A@��A`��@@
�ƕ
+{@@�)�s*@@� I�<�?@��>UW
?@�'
m�h>@"�*-�=@�^��6 =@v ���}<@Q�	��;@����<;@�*M�՚:@
̅x��9@�׻�9X9@��w�:�8 at g��?�8@橃0v7@�����6@����]96@�mt_�5@����4@�?
�^4 at A�
+��3@�ն�&3@����2@�c^
��1 at -G��W1@���L��0@]�?y'0 at r
�6#/@�z ���-@ �m*��,@^��N�+@�[rm�*@�V4}��)@Dd�'�p(@�^x�ka'@�e�WT&@�-8F]M%@#��ۮM$@!y$��X#@���am"@"�"3"�!@W��ˏ� @��Y�@"�ԕIw
@wU��~0
@ħ�
@
:z�!@�7B�rh@#�C؏�@DŤ�j@�V�.{@�ux���@��q|6X
@m���,
@�
-^9p@�a��P@�E���0@dI��7�@Id�@@� �oĭ@�f�
�v@�ZU4NV@�(��#H
@*9z�I
@&s�JX
@���YN�@{��E�� @�Dk!."@!�9���#@��
�e%@� �52q&@� �
�'@J䆖41)@P����*@���̠-@�s�21@#�H�4@]l?V�n7@�1Q�G;@�~Y��>@;��s�UA@핣�xOC@'���\E@���
dG@[���= [...]
+ |��C@�
�~UC@���
+� C@�B@����tUB at 1��B@��.��A@�	'[A@|�:
	A@��Ә�@@�o�P�f@@�_er�@@�𵤫�?@w�b��>@E�p_';>@*��c�=@t#1�!�<@*�rc�L<@�<t�&�;@0i�]
+;@
u_~di:@F�(�j�9@�v�$9@:�h�{�8@�7
��7@��a=7@�;Ae�6@�O�Z��5@
+O�z�^5@�j���4@�Ai�H4@�x���3 at +Ri&�2@��&BE2@ԻA�
�1 at zP$��1@�G�5>u0 at _��}
+�/@F���Dž.@|����V-@�%��p,, at w�|�"+@�7d��)@��
F��(@��pV�'@y��O�&@�25��%@���Q�v$@���n#@�%�+�o"@m}��x!@cv>d}� @o}
M]@�	~�h�
@}��1<
@�͋��@
��U��@G�Š@�A
+RR�@�"j
H@�
ŀ/�@&�dU	�@��4b4Y@��b��@7�e���@��2(@�?�Y�#@�mo9@ͯZ��
@O0�֭@��撯m@�g;J@����:@���;@�ol�J
@SI���h
@`1��
@���<�s @��h��!@��~F�U#@]�2C��$@	PeyD&@��*�'@��s�)@05_k+@,I��<.@�x��1@
+�� 5�4 at c�0��7@�>&=FF;@4i�%b,?@Xb�ƜA at 5��1�C at D�YWa�E@��"���G@��R^�:J@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
�T2�E@]�J��E@|��AE at P��0�D@�*m���D@�E�nbDD at Zt�4�C at z5��ٚC@	��DC at u����B@ �;Jw�B@
�+�CEB@���<��A@�7���A at h6��%IA@<�i?��@@k�SČ�@@�����S@@��m1-@@-ˑ��]?@Ɵ~;f�>@��>@���]�n=@B���l�<@u�0xL#<@n��w~;@UY
}��:@�7�8:@�Bk�K�9@��h;��8@ �a�L8@չ��ܪ7 at suy��7@ƏA�d6@��cya�5@�;{��"5@���
�4 at 2PK��3@�<��<B3@����p�2@�\���2@0c�Tg1@
�|��0@��K?:.0@&���_$/@�'5�?�- at R��(�,@��
߾�+@��s�_*@�r+��5)@%*�o(@&�
+�Q�&@Xq���%@�#j�$@��h�#@&��ٚ"@|����!@�gD�K� @��`U4@�X8�Z
@�On��@��!�=@�x�ی@�8aW?@�&�%@�*t�H@9�0�@ˤG�xI@y��=4�@Ѐy���@�6du�d@'�ވ?7@' ���@�X@|��@���W@ʯZ���@�
c@�"&�9@K0��T*@�U"-@
1��=@
�'hy[@\����
@���e
@�-HȀC @��Y���!@M�BTn<#@z- Q�$@�n�
&@�z�XX'@[�v���(@Ql�i�a+@*Cy��f/@s���2@`
��5@�����8@
��
�/<@��@@��V~}B@�6Bs�D@➼8%F@~���\H@��$,��J@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+�H at w;���H at f�4�7�H@�#hy��H at .)R1"�H@������H@�U���&I@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+ԃ
8�D at F9O=�6D@pY��C@��E�C@����5C@�i�7]�B@��0��B@��ȢP6B@�S� ;�A@�xR�*�A at y�*�:A at e܄ҿ�@@���!��@@��ds|C@@>H�M�?@(�o�g:?@�\Iġ�>@���
�=@��+��I=@�
�<@�I��;@%,�bV;@�
d��:@����
:@���E'g9 at S��w�8@�Jh��
8@ �0�|7@>؟$^�6@��O�56 at .�r�5@��^��4@]E~�
M4@�
�=
�3@ B��6
+3@m���h2@�j%�
+�1 at UF҂*1@�s�vN�0@PI��/@�d�K�.@���1c-@
c�y-, at +�N��*@�3� �)@�,�& �(@�ݭ��h'@
jw
$A&@�S
��
%@�Ơ��#@/Z���"@d�C���!@��#3� @K
i@�!z��d
@<{�)o@�!aj��@54���@Yu	Y�J@L��A�@��9!Ӯ@� 
�ý@&y�m�@�eo�p�@=
/Xy@��q�b@��H�#�@V�
+���@��۴�7@�W���@ߕ�H�@����T@խZC'@X�巍@%��B�
@0�*�1@JC��AQ@l���
~@��� �@���� �
@p˺&�+ @�Y�wO�!@�\��v'#@�W~�$@Չ�5�%@s�n�/'@5jߐ�(@~����+ at 5Cӛ[0@��D�3@�F���6@7�Y=4:@���=@
+|���@@Fwܻ��B@:��#>yD@�\��0}F@%��v�H@�
���K@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
���H@���4I@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������n�,

I at M�4eq�H@�F�sH@ [...]
W7 at SvxN_6 at 8��)
6@���<g5@������4@�����
4@�%_=:z3@�?�e�2@��,f42 at MF|#p�1@
����0 at 2�@�P0@��
��`/@�q	9�!. at r����,@���ٯ+@jI�y*@ 
+��A)@f���(@�s֭�&@'jG�%@��u<v$@��5^�M#@�6y�
*"@���7/
+!@�B3G�@c	ް�
@C�
��@)���@�LM�Х@���?��@�
�
�
@�}G�ۖ@��Z@@�W׃�2@�)@�O�@
���R2@T	��J
@.�"���@eS�?
q@w����E@���s�@yXn�@/��A@Y6���@&��n�@"�J�	@co�#@��L�H@ ְFdw@�.���@B{�
q%@m�.5�Z
@��J�  @ɐ�a�!@4�B?�#@�E(�&p$@0H�ؿ%@>�3�o'@����)@��~w,@~��*F!1 at f|���v4 at -YU,8@�z��;@EH��z?@�
��A at z'	�VC@��d<E@����=G@�}T�bI@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
�E@�2V�pE@'�c�%E at d�y���D at 1���frD@���`
D@���)�C at +v���pC@�#k8qC@������B@����pB@���4qB@�NBP��A at c�	�grA at -G
}
A at h�%��@@��E�Vw@@�#��$@@�\ � �?@��N��?@RCq�\>@j|�P�=@����=@mw�hm<@
۞/�;@@۹r;@P���r:@|8���9@�E��k(9@WtŅ8@�
Ɩ��7@[�>,W57@�[$�=�6@�
a�,�5 at _���d at 5@��
+ė4@�T	p��3 at c�4�L3@�ŕ�E�2@�
np�2@����`1 at O�ż�0@
C.V
0@��+�_�.@�:�t��- at eB�bt,@�V�b;+@
y��y*@�wVn�(@��Ҋ'@O��P&@lg]��%@ L��|�#@Y ��
�"@�� qV�!@Q�tj�W @�Az�ke
@r�Ɂb*
@�/�� �@�ݝ��@��no�@��J``�@:
�
�@���$�_@l��<��
@�h�avb
@�"����	@<�(M
@8э_�A
@
���m-@��/N��@[���N�@_
+�{�@�;R�#@*��Z�@�
+Ej?�@�0��@��k�;@�
�s@@V��h�u@�ȀG��@�8�@'��[�@����b
@��q�{! @���L"�!@S���K#@�P{��b$@W�=@v�%@�>ct�)'@3	�n)@JKv���-@��l��2@���M�!6@��JJ:@�
�P�=@�n�k��@@*���g5B@#��D@9�.(F@F��NHH@�S��W�J@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
�D�I at X"���.I@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������"7�J1I at j�Y��� [...]
+���	G@��Lg�F@�u@�_F at S�,F�
F@؈��׷E@
�#�cE@,�*�CE@�`���D@D��eD@���)D@�D�D��C@�]�߲cC@(�x at bC@�sW;��B@�rv�'eB@
>F5�B at E8�G�A@���)gA@ :�
A@~bS��@@�E�Uk@@�|g޵@@mF��O�?@b�7�+�>@
�C�v<>@A�k��=@�z.��<@5�
�kO<@~���!�;@��6ҧ;@�^�C[:@`�ُ=�9@��GO�9@
�.�c8 at S��t�7@�1��7@��_��j6 at FOj��5@���b75@��͜cw4 at y?yΖ�3@����)3@Ш��2 at Te�۰�1 at P$J�71@���
T�0@�
���/@O�Q�~�. at 0i���Q-@��n�, at H�]�*@���
�)@��y3O(@Q�+�'@�����%@x�U���$@;b��>d#@��X�)"@~��� @�m�	
+z@�iKv�

@�s,��@�]��~@��z��=@z�m��
@L[V�L�@|���@�צX�
@�Dڧ�-	@�<��v@0X�s�@�G�MZ@T8����@Q�cT�h
+ at 5����
+ at 2e��3*
@c
+���
@����
@��_�@*�����@	;
@��ƢI7@�ǝ�s@{��i�@�J�@�6�|@�U�ȭ@�H��w
@wQ��1 @j�R�!@q��
@�"@�R�BM$@VT��]�%@�lԾ:'@��p��$*@�~�R��/@9�'�U�3@���Z�U7@@����c;@
����>@���AA at Oq�QE�B@���D@���#�F@��R��H@��@�J@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+@@Y�9&m?@
��5T�>@h'kU
">@���6�}=@(�.�h�<@
"��"2<@ۮ�;@y�I�2�:@y�;:@X���9@�>�5�8@�
p̉F8 at 6i�|�7@��ΰ��6 at Ic��8O6@�B�X�5@�L�Ԧ 5@{�V!5Z4@�f��˲3@�Bѷo
+3@:�(��_2@��r�f�1@�[��W1@�1>�l0@� h��/@`y}�H.@?�k�,@%����+ at w�>;k*@[]Q+�')@�i4~��'@++�1O�&@��q�g%@
��
%$@���'2�"@�EՒO�!@��
�k @��=h
@Gʎ��@(���l�@��!�.@�Z�r�@�ftT��@Dlt�=L@�B���]
@� .X�}@�q����@�.-
+%�@�'�q
��?�5���@Rv�|]@wm�q�@n�禇}@XU�q�p@�Wn-#*	@Njr
`?
@���{X�
@X{�e.�@D�w13@p�N*y@�ݳl��@m��Tw@��^�pw@个�WF@�h�"��@r�q�
@�e!�` @G�9) �!@��>z&#@�o؋�m$@mb�?��%@�G����'@<um�8=+ at U��0@�6��4@ب�g��8@��*�E�<@N��6"@@+��C��A@�~.�f�C@��϶�E@�=uB�hG@ }�iDI@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
+���OD@�e1u��C@�
���C at p�V�"PC@	��re�B@�{����B@�sq at 4PB@e��a�A@��ǝ�A@��bM�SA at sǃ��@@��Кk�@@�0�E�S@@:�A~ @@2h�RvX?@a��ٰ>@���
�
>@J#�c�f=@����O�<@�RW�<@U[k p;@|#��I�:@�(v�� :@Y
LY�}9@�~G[�8@�\��/8@��B��7 at n�4��6@�j�"96@ ��ħ�5@�DA"�4@�k�-�@4@����P�3@
+����2@����>C2@�^\ K�1@��6��0@�v�3S0@���E[/@@ε`c.@�z2�c�,@(�{%�q+@�v��$*@�����(@�g�'@�4C�gO&@�x�G"	%@�5�C��#@Ihݮj~"@��%,�>!@��+��@Fk���w
@5�[�� @��@hV�@�ps�@��"�܋@�y�2c+@���@��
@
�Zd
	@�P4�}�@������ @&�ʴ"�?�pZ�
��?�+B`��?|9`op@�?V.7���@��o���@?��kܲ@Y>)z�@[QI�W	@`B����
@��j"o@��&�@��:�3�@_
��`2@������@����*@�>�u-_@`4iz�)@y��{�

@�>�
�~ @i�(�l�!@ŏ}��5#@�~��$@�J�
�
&@���h��(@���D- at b|x���1@����zj5@��ao�g9 at z]
�q=@� F�B|@@�v�NwB at T�}N[gD@���Y�=F@��1&H@�x�RJJ@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
���B at s���B at v���JB at t3�os�A@}\�٠A@��+FLA@]岲�@@��2�{�@@x���|N@@(=/��?@��gɭK?@�v0��>@V��=@�ц�fX=@�`�P��<@���
+<@��I1�b;@�H4�˺:@`�M�X:@�0�z"s9@*"<P�8 at RM�CU"8@�x7@}�r�(�6 at Ce���)6 at X�c��5@�D���4@�~}}-4@�z\(��3@>� ���2@�1��/2 at 3&`/'�1 at w|Ȅ-�0@
U%P>0 at 9�T�/,/@k�"�-@:��~�,@�
]E+@��y���)@��}C�(@Ą���a'@�B)�&@Q����$@�9��x#@��U�0"@�jH�(� @A�XS$G@�n�D-�
@RǕ��7@J�.�<�@�?�:�
@���w�@�a\�2@�n�+
@��X�*;@O�E<Gz@D]z2!��?->4˰Q�?�亄j�?���.|;�?wY����?�[�WD��?u�Ds�& @@$�9�@����3@����U�@�3��i�
+ at b���=
@Rd����@��"/I`@�O}{��@�O�yD@���
�@@(�y�%�@85��K�@�g���
@jv�� @[�p�"@�(�W#@���J��$@�f�)�~&@�t���)@9:��/@�]�m�l3 at m��Y��6 at ux�I�:@TY	e�/>@�#e��@@��A�B@�7J��D@޽�1��F@�ؠ�d�H@���� %K@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
�E�E@�
ė\�E@�
��BE@�
�;�D@�
܍\�D at yZ{PED at XZ�g��C@��+Z�C@�gD�FC@�yW�g�B@/�g-��B at A���uGB@�O�+�A at 5�vA�A at xk�6HA@��T��@@r�!���@@/�kL@@��L�/�?@�
 ,�F?@�:��	�>@�@Q2+�=@����LR=@��f�r�<@�V���<@�`�>�^;@Y���:@cN��,:@���Ѐi9@��sMb�8 at N�i78@�
�G�l7 at E(�e�6@켟��
6@�c1s5@`n���4@���� 4@Ҡ2
ix3@ؠB��2 at 2�8}$2 at sK���y1@��+���0@�����*0 at 4j�}
+/@b�]"�-@����s,@��Qk(+@�
���)@
F��(@�Y�C'@ӧ��/�%@���m�$@����U#@�>YL�
"@�<|�i� @��
O�
@

�P
@f��ٜ�@����'@�M�.�@�8,T��@d��K�@���B}	@��:F@�z�A�D�?K=�
�!�?�������?        R�zQs�?Z�
�;W�?[�
N6��?}G��d��?��W��+@��W�,�@A��C��@@�����	@~��2~
@~�,�P@H^:�@uȑ�x�@�M�l@?p
^p�@�6K��@�m}g�R
@
�Dy(@��3� @s?zTL"@g=���#@�R��o%@����P'@�����
,@���W��1 at qN��*[5 at 4&[c�8@��tԞu<@Յd�b�?@��͑�A@
+�P>��C@�OH��gE@կ�tcG@㎨̵tI@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+5�DC at A
+��B@�V���B@}$ӬFB@
���a�A at F��鶜A@�V�kGA at Wlr �@@6t�u�@@�MLiI@@pB�|��?@l�aE?@h��E/�>@K7*N�=@��C95O=@�w�
T�<@���Z�<@�
j�Z;@N�����:@n~�:@�%���`9@�����8@�eM�8@�����i7@�����6@�5#
6 at T�E
+t5@�WB���4 at 4.�m�#4@@V
	}3@��Y8�2@��0f~/2 at _�����1@ҥlC;�0@�
 
�90@��K�'/@y�X��-@�7$(z�, at +]By2D+@\ ���)@0�ZC�(@u��
+�e'@�!
T
&@.J
[,�$@�)S���#@-*��="@��;�� @�Mx�N@0|��
@J]��2@���WS�@��o�@������@��K# @2�b�/
@�F��l+@�R�8n@Y|/�ѩ�?��G-���?   h�0�?a*��n��?<!?I�r�?�t4�Y��?f�>Z~��?�t�G@U��R��@|�p>f�@��=v�J
+ at 9�ʐ�
@P
�0��@��C��O@���@�
+�Z2@�buی�@c;��)}@
�VF�4
@L&��B�@�4�mFL!@X����"@S�'���#@l7qH��%@��A'u�(@���b��.@���n~�2@�>"X��6@@,2��:@v��)+>@��Z��@@���fA�B@��
+�ؓD@��
w`F@�Ť�m+H@��D��6J@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
(*@�ԡ��(@"d�vp�'@��x|DS&@��
%@`�fx"�#@�[��"@C4�7!@仲B��@��P��`
@�6
���@��v`S@��8�@7<T�e@�!	���@���N5I
@O��7�@oͥ�Q@s,<'
 @��6uT9�?����A�?��gJ��?
�H}���?�g��
�?��&�U� @
��ofn@�[����@Cܙ@L>y0�E
@;���
@nj�`T@��ID]�@�@����gX@z�$��@�R�lڔ@=��A G
@�(�r @�
@��!@����f�"@�Y.fuh$@׳��p&@����
*@|�I� +0@�v��3 at I��U7a7 at J�)��>;@<���>@�#�fBA@
=��EC@{?�P�JE at dE�<�?G at V�\�YI@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
�u,�>@�J��	>@=�//�c=@���q��<@��/�

<@���
+v;@�e��<�:@��D�m.:@F"��C�9@�����8@� ��88@>j�,��7@�
f
+�6@��*RTH6@�>k�2�5@��hG��4 at w�
+��Q4@�`ϫ3@�ˎ-b3@�⧚�_2@��<n�1 at v�t
D1@�ѷ�k0@�
"G�/@��͸hA.@�S���, at F����+@����`*@����s
)@�|bLt�'@`YA��&@���U%@��!t$@
Z˪
�"@*/�վ�!@�
.��M @
B�Ͳ-
@f���~�@�)vEG@Y��(�@�k�r�@��.@�mvK�@߹��`�
@��<�;:@Q��<@=b�M3��?>��ĕ�?t�V��L�?!��b�?&���?� @;
�ʹ�@�EWa-@4�EI{@W*���	@Ug���
@,��G=@
Mf�@B���@yK^x1@D%�/˟@���M:@��8&�
@I�ӛk@V�(� � @;����*"@�:�!�x#@��ڀH%@"H�[?�'@*_�	y�,@Ц^�1@V����5@���m�I9 at s�8���<@�2_p�5@@�K�^�B@<����C@�����E@_E���G at o:���I@������ [...]
v�G@�*w4�PG at .���'G at W=��m�F at E���}qF at oZ�q�(F at CV�>�E@�CӭݙE at E/��>RE at J�g�B
+E@��,���D@��`�zD@�
+�1D at B��$'�C at p߳��C@ⷄ��NC at c?�W C@����I�B@)̱D+ZB at -/c��B at -��n�A@��x�]A@��N�{A@�ֽ� �@@�*!FQ`@@���6|
@@��Y�r?@_��>@��i�&>@��5.��=@����
�<@��l\5<@4�`�
�;@���J�:@��;�bE:@���M�9@�L��<�8@���IT8@��6l�7@��	7@�eP�4d6@ݑ�R�5 at _�o�#5@ F�,qi4@���6��3 at N�c�b
3@�r�F9s2@�7p��1@�Y��*1 at 623��0@���F��/@@SbQe�.@�N�m=-@ÕЂ�+@/ �z�*@
+�f�o)@�Z\A,(@�f�~��&@���r��%@�Q��t$@~� ��7#@�����!@ݤk
� @-�T�@��Diĸ
@�
R�^@E��o'
+@	����@��m��{@�Wyi�D@�<Z�+@��7vP�	@��*D�@ȊE���@4>:�n@�?*�'�u��?� hn^0@d|����@)�KZ�@�Tx̬�@���
+1	@P�Ib�
@�����
@3���Tn@TZ�6@�ȋ�:G@Q*���@C}
�K@��0��@r
%-
@�
b��M @a'��Ā!@������"@����N$@�����(&@@P at u��)@�(K
+�/@�*H <�2 at l��=}6@����t:@�Q�U��=@����@@i@��B at o�o��D at i��uƝF at SV��
+nH at GVU�oyJ@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+�b�
�D@T
��D@���MD@)*��sD@�\�v|�C@�g� wC at q�A w/C@�A�p��B@�K���B@�Z�QB@���B at V��
O�A@����dA@��
�ZA at Z��ˬ�@@�H���i@@���%@@뛬��?@C�����>@�po�V;>@l&��=@���H��<@���AJ<@��-��;@����
�:@��O
+�Z:@��4��9 at yc��
9 at E����k8@בC
X�7@l&�f"7@�����~6@(��?I�5@�����.5@?�Æ4@Ǖy�>�3 at 3�"[Z=3@�HpB�2@��
BQ�1@�r�6P1 at q�<[�0@�κ�{	0@�Jn�T�.@,-���-@	��`9M, at q��`�+ at 2�ƫ��)@}p����(@
o��X'@�
f��
&@Ԯ�C��$@%��5�#@�M��>v"@@�ŵ4C!@�O1 @~2�8�
@��k���@��c�E@�p`!��@[e� �@�7��c@r�� �"@-Or!�
@K�j�C_@8F���@
���@T�L�e�@	�#01�@0;�̓F@-�p@�eJ���@�N8�
@B���K
@
Aڣ��@v���w�@�&�I��@�yq���@`��Z@�i�2�@��X8�
@�Z�g��@�I3�� @�?c�5"@��K
[#@����5
%@�v�=��'@��ay,@���ѱ1 at RƓ�}5@�,��8@�]�h�;@=4Z�?@J7���ZA@��Xs�FC@��t��QE@߾
$�BG at N��{�*I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
A@,n
��@@k�Ձ�r@@ʡ�6� @@����m�?@l�
��>@VbƘsP>@����=@z�~�=@a��xb<@ʚ�� �;@����;@�����r:@����9 at +je�*9@OV���8@\�N��7@�{ؑ>7@�U5�M�6@^V����5@����M5 at 7Y� V�4 at P���4@͸2��a3@%�4��2@��1k�2 at +��
�y1 at Xx���0@E�d60@��W+/@��S�- at cNSH�,@�X��1v+ at T�g�=*@�q��)@��N�m�'@4�uid�&@�4���[%@80B)$@�ϼ���"@�!Q���!@�"�|D� @�l�a�
@9p�W��
@~��I@�i�t�@�}��@��a\-@�ߪ(��@
+`�1��
@�5@�@���دQ@�]�+
+�@#q�$�e@Z�AEo@��Ew��@��%�a	@�
�t.
@��F��
@_c'���@Ui*�yE@
�\d@��\�h,@ӳ`NnR@9@,�@��A�5
@5�l?�
@� �k�r @*O��!@`J3�O�"@�J��m#$@����h&@� �X��*@U�C|�0 at .��� �3@���
7@��|
�:@��
��>@V(O�G�@@iVY�NB at uW�O
:D@��넞
F@�o�3KH@�o�CJ@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
?@=��k>@l�pA�=@����"=@5"IL`~<@'�*d��;@F�#.4;@����U�:@�{��I�9@��,P�H9@�$
+J٤8 at r���R8@٤A�
`7 at uDv��6 at FL�X�6@�K��q5@�^q�|�4@��
/>,4@ҽ#
ш3@�r<��2@�^��E2@�Yh��1@��h1@��T�i0 at C�w���/@2f���\.@�K at r�"-@��g��+ at 5
+]Ѳ�*@���`
v)@�є?(@��HG?
'@dW/J��%@�S�鍨$@��z�Jy#@�w�J"@0(n��
!@�4�B%�@f⋅n
@{n
	�@���@+m��-@>�����@rE�Rx
@�%c/�
+@7�ؒ�
+@>D!1��@�]�o��@3�y�)@�]�5	@��$��P
+ at .�5H�
@l�R��t
@A�_/�@�Mg�(0@�|6A�@ �ԍ�@����<�@���
+@
+�iP�e@���R�
@rpiX�	 @�4��� !@�AgK<="@��S�8u#@rP.|�%@t��Jr*(@�|$�,�- at Z���1@�>.|a�4 at YM��X8@{�[m
8<@�LGZ�?@6c�O��A@����X<C@Ģ���E@ۃ�-��F@�ɿ��H@����&K@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+�H�E at A����5E@ϼ_�;�D at X'ܛ��D@��o�1VD@�&[�
D@E�q�C@����+{C at 2�X�G3C at Y�k¤�B at .��)��B@�|�[G[B@���oB@}�Om��A@w�>��A at S��hAA at gH� �@@,�Ndn�@@�X��w@@u\��6@@����W�?@�/�
j?@��ʋ�>@�]+b>@бL5�=@4�r��>=@�&<�<@Pv9e��;@׽aTVV;@	�d�7�:@���U:@�ErVn9@��n��8@���n�+8@��}��7@�
� ]�6@��i��?6@�����5@!����4@
x��X4@����3@�
3@���u2@�@�*��1@����|:1@Uy/5�0 at v��dq0@~�F���.@�n��ӗ- at 2��Z�a,@;A���*+@�����)@��QL�(@w�]K*�'@M՟

+Q&@���j
+%@0�;��#@��
+:џ"@�(k�_!@\	��*
 @�D��I�
@rw�*@��`z��@�S�m)@��B��@AI{_�|@
 ;�ܓ@c���5
@$$�E~�
@�]��m
+@�n�u��
+ at u$ \��
@��g��
@��1D@
%�M=@��iRAP@'d�m#�@.�=,m�@lu��@��t���@#�&�K�@ҍ��Y,
@׭Hz�r@����*� @�� ���!@�Ln�"@_
���`$@@�ސ9&@dpMڒ*@`G�7&^0@�:[3 at v��=��6@������9@��9�A=@
�M��|@@Vf��HB@����Q�C@$/_V�E@=��|e�G at 68r�`�I@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
E at x1��D@��-��vD@�����+D@���3l�C@�MW�C@�x3�rNC at w
+[�&C@ρG�ӽB@���ruB@	��",B@�'
-L�A@��_���A@�6[�TA@�T1�vA at 19گ��@@�
F#�@@ 7pB@@nL��� @@��?@�㭨/?@+��B�>@ؾ���
>@���{|�=@��u�W=@�"�q6�<@
d�<@
*J��};@��4�:@~>�%�7:@weL���9@��Q���8@��Ī�U8 at So��Ʋ7@��ھ7@���?�j6 at p\]���5@�����'5 at 97����4@��u���3@ő
hH3@މ����2 at Ad!�2@!o�T�p1@��0���0@����C70@�����6/@�����-@�er�d�,@�b+�+@[�ڑ�P*@�'()@�e�s�'@<��h��&@
!��OK%@D�e�$@}1{|ݽ"@�rt�s!@��›�+ @}

wW�
@Q�
�C@��:r$�@_�y�g+@���s��@�PWD@hԛ��@
+���
+�@��ʺ�,@v��8E
@QA�^�
@����(�@��ؒ��@4�RNL�@HE��Ω@����*
@['��_�@-V��p@����
O@��~v@��8��
@�T���
@TE�&� @�}��"�!@y�2
��"@����q�#@����%@Y���(@�H}X�-@ޥ�M�U2 at e#ƍB�5@�z�c��8 at 7dm.��;@�$&�>@F�[O�hA@�j�T`C at r�/��E@\�d7�F@����H@�4�#K@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+�@@D���@@�W
�Q@@����
@@���w�?@t_.?@��+���>@
�7��>@��<ș=@7���!=@7D��<�<@u�
`<<@
ݱt��;@
ݖ�)V;@D-�Yq�:@gw�1�R:@FW��9@��eu�9@��9ܗ8@�ڞ��7 at v
���;7@����g�6@@��Ϝ�5@�V�ߩT5@#��9�4@
p��4@�x]��v3@�����2@�'�82 at p>��)�1@"	���0 at q�
jQ0@�ӌ1Y/@�Ϸ�.@��܂_�,@�'ȒD+@�^�S7*@D۫��(@L-��H�'@47G|g&@{e��+%%@�
+�.�#@�4`R�"@�a�H]!@�Z��� @����F�
@N����
@�r)o��@�=��H@�ѩ��_@����J@`���@
+�-��@�jCc+q@�|M��
@�&��B@��
��@�Jd?@�ߓ�?@:b֌@]��@-f�f�@�1��a@
~��
B@(y��`
@_�Z��
@m
mna\ @x��
�m!@
Wc�(x"@v����#@�:�m�%@��is�}'@�z���, at QLB��0@/-*4�V4@��p��7@����~�:@2JJ���=@Z��ar@@^��A]B@�R IGwD@�3��<F@�Z�B��G at seY�I@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
y3�C@^>�zEC at U����B@��&���B@�f�eB@���R�B at J%����A at 1�� ąA@
�ʣ
+>A at P��]��@@�n
�@@"rfze@@�
-��@@=��.k�?@��os�+?@�q��L�>@���Fg!>@b�@�=@r�pz$=@�UU٢�<@^�$�O2<@�aU���;@����:U;@�_�1��:@�Z�$�v:@յG��:@	B<�V�9 at r��O
9@`z�}8 at r��O�7 at F.?,BG7@��g��6@����
�5@��C?�Y5@�|��4@	��ܢ4@
!}B�r3 at a<���2@�#�r�,2@ �L1�1@������0@3�b�B0@���6�?/@!��V�-@E}�@�, at nx�me+@�c5�*@f{���(@��uh��'@�?�� C&@���
+�$@��#@=���	x"@�,� 5!@�M&��@�2C(�b
@�cq7�@���&A�@a�_ԝ�@撆}�5@��
m�@6S�
�@J
Q�_@3]S�S�@�
e�v@p�1���@�&H�1@�+79V
@����5@_�E��@����
@Ⅼq��@J:�q@�k��Y
@��j�Zf
@�sS]9 @F�5L�D!@�4�B"@

�`�G#@妘�y�$@�&�@�{&@���-�5*@���6zi0@�U
d�T3@���|�o6 at M�㓄�9@
����<@.N�Q�?@!�G��wA at ps=�4JC at 1�OO
FE@�vI1G at U$wW#�H at Q$E��J@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
i�E at B�0��E at l��<E@)36d��D at i#��D@�
+�dQD@�j��D@�u1���C at W
��jC@=���C at q�Ե�B@
��,(�B at E��
�;B@*p4��A@�A�+��A at D���YA@�gR�A@
)3�
�@@@�*:~}@@+=a�5@@0����?@�b��R?@D�,���>@s� �:>@1���=@�F`�0=@1ݻ'�<@��S2�2<@ !0�G�;@�$g-�F;@3�{.O�:@�4��j:@ܵnW��9@\�Y�
+�9 at lw��5*9@f�	^�8@/~�܄:8@Ŝ}��7@�+ɬc7@���:"{6@�<�8�5 at oIox95@����4@/�4�>�3@�N�I4S3@�&1H[�2@��ּ�2@?��Rl1@,����0 at X+cĀ$0@��7X/@��$���-@(A�~,@��'55+@��8��)@@'⫰(@e��BGj'@����
#&@�T���$@��єE�#@A���Y"@�u
G�!@h�B��@��A9
'
@�����@HW���@��%��d@�)��7@�$<95@{��\�^@ap�]�@
I��/@�
��@�n�
�9@q��@�EK�
@��A_^@�
���@ףa��M@��Q��@�FY�
@"D����
@���H @]�T��5!@���Z�%"@�V�~
#@Z[
+s =$@�ې���%@�0d�o(@$Mޅ�T-@���.��1@�߈>�/5@��l G8@��
�
;@�V�8S�>@�ԞD�A@��9/�B at V=e�XD at s
r��
F at Fj����G@���Bc�I@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
�H@�1)�4H@&�p���G@'2��a�G at 7~c�EGG@�ʎ���F@Ѭ�g�F@�o`
.YF at c�S
+F@����E@{#�57lE@X�
E@��Z���D@c�p�~D@�Je��/D@�n�:��C@
��j��C at y���DC@��
FY�B@�)����B@n�_B@E���B at R�`\�A@�Җ�i|A@ �v�o0A@�����@@T8���@@����P@@
+�S�@@�$L�}?@[X��s�>@7�X�}`>@�J�}�=@�
�zO=@b�

��<@��
��C<@>��8��;@8�
��A;@x�U�:�:@�|�\�X:@�]� �9 at R�f�<|9@#.��9@���y!�8@��sJ8@�SP��7@�O^�Kd7@���T��6@�}	jK6@���
.�5@D3�5 at .M�
�t4@�郎��3 at 8��
+�/3 at ifюэ2@� c��1@?C�hK1 at 7Q�
�0 at Y�1�
0@��f���.@b	e
+�-@�}05K, at Lu�+@�#a~�)@{v/i�(@�X;1�G'@����� &@8�uR�$@sAVx��#@iC���E"@�l�{�� @6���|@P�l�

@�K��@p/"�H�@
����Z@�?V�N@�(�g@��ԚI�@4�E
@�?��	�@F?	��l@�
i�	@|��}@�c9�":@gR�ۛ�@���!9@��z
�@�6Z��C
@��I��
@�G,�g @�CdY at T!@���$�7"@&Z��
#@`�nk}
$@(�=Εh%@F�/��h'@���&��*@���0@���g �3@��]�+7@�&�+o:@>\b��=@��V*@@@4����A@�,��C@�r�$�JE@ꊈ�G at 2��K�H@���_�J@����������������������������������������������������������������������������������������������� [...]
+��F@�X:�F@�m�=F at h.�h��E@�:0>��E at U��#ME@���k
�D at 0�D��D at 2IlO^D at Q�3*D@��
�C@��N��pC@��|W"C@���6�B@��n�B@,昪�9B@����A@�l�}(�A@芳�DTA at a'sQ�A@;	@w�@@�>.'p@@^�'�&@@��
�?@�|L#?@�;�
ݏ>@�k�2��=@(,΁�r=@��s���<@�f�M^<@K{G3�;@�u��R;@68�=R�:@�]-?�T:@�,e���9@�r��oj9@����T�8@ɽ7>B�8@�?
�-8@�� ���7@��"��j7@�mx%� 7@�����6@&SBN6@�A���y5@Ѩ�P��4@�:D
+M4 at Go��O�3@�A���
3 at E�;X|l2@�/����1@�Tsg,1@[�`�0 at Q8�`��/@�Ŕ{(�.@�F��N-@�<i*
,@
�'��*@�y0��)@$�Sn�D(@��y�}'@����5�%@��-[?�$@,g���D#@$��$"@3
�G� @c=HD@�ς+�;
@���M�@
q!!q�@�V]QHg@����u@;R��X�@��
-��@�ca�j@����D@��,�G@'��y�
@��WDI@?/�m@&���Ӿ@:
_@
@
���
@���\~�@
�+�� @��]{�!@����^"@�	�8#@��.9%$@b�;F%@�#�&�&@�����)@
��
�.@�J�*�2 at Sr�"1�5 at 3ȧd�9@�v�GA�<@�Y���?@����%oA@��܈ C@�&�
�D@�ʴ��{F at z *~i,H@�l��J@����������������������������������������� [...]
�3�@@u>s�;G@@�,�ޯ�?@��tǺd?@d
+�{|�>@��m�6>@[�S$��=@����=@�tc��<@p�Y��;@[m5m�o;@hC�L(�:@.o�Lsa:@j �[�9@��Bg9@���8@מ�"y8 at g���+
8@��w9�7@�Ffy�E7 at -��w�6 at F�w�e�6@�_)26 at i�b�5@��d��+5@�%5[��4@��|Æ4@�1>\��3@��m�2@�h��K2@�#_:�1@�ݤ �
1 at h �i3m0@� ���/@?+]5�V. at m%q-@�Ǟ�&�+@���Fƍ*@���ZK)@�j��(@98����&@R��%@�����Q$@h��u#@�s�N�!@�
K�
� @0�ct[@�f�
@#B�ן
@o��˂@�'KN�@*�-�@�M�`��@E�_gdK@�)�i��@�ҁ���@�^��q@
!í�V@����@�H�;�@�ذ9�
@�
=�\�
@[ ��# @8f�� @J�����!@s
l�u�"@�=��Ri#@�m8�}B$@
����N%@��O��&@C59��F)@��\,�-@@
d7�1 at x���+�4@�7
+4��7@�.]-��:@�Ov>@��SO�@@Y��
vB@�<K�p3D@[
��K�E@�$I���G@ԟ5�/�I@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+h ���B@�8ޥVGB@��ö��A@{y
�3�A at n
y�XA@�7��
+A@��=�}�@@��mw�m@@A�
+u
 @@0ӂ'�?@SRo
?@�勴�z>@_��ݴ�=@C� �9M=@O��T��<@�S���*<@
\�ř;@
8�i�
;@O�]��:@YiGy*�9 at V�qfws9@�e���8@�tj,Vu8@v0�7@�x�[�7@�.���7@�丼6 at 9�b6@��Q6 at f	�q��5@�:�i�;5 at +�
GJ�4@־)8�T4 at 3��Z�3 at F��'�J3@��v�2@Y��@"2@�����1@�.���0 at c�%�G0@���dYR/@x�\w�.@�iN]b�,@�.���+@�
YL*@��u��	)@
	��'@��J
S�&@���
4G%@
 �-�	$@0�P=H�"@���Z�!@�mk�� @���
��@j"ө�
@"6T���
@=k��L�
@Q�Q�:�@
��_�@���t>@n;5��@�)��'�@���@6
~l��@n�]�d�@�ٗF��
@��%�P
+
@�����X@��a#,u @��ye�Z!@k�uh""@�X>'�"@Ѩf�<�#@*���fx$@IT�@i%@
��&@
ƶ�X))@4����, at C-�\
�0 at o��V�3 at pS��7@�|�=
�9@��K�<@�6�b�,@@�H
%f�A@�@pC?FC@�,_y��D at pޑ)��F at gޅ��H@`X�K@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
�E@��ANE@)��S�D@ˑD�.�D@�[Sş[D@�\�	D@�|�Ģ�C@���
�hC at f�E�C@�;n���B@�iř�xB@�̮		)B@�G����A@��`ψA@�]6�9A at 0�Rrz�@@�/�m��@@��ը4L@@��L
X�?@U���]]?@�|U���>@�V<v)>@
�gL�=@�H��<�<@Un3�Td<@�y��9�;@�M-<;@�	��:@�[�2�
:@j��X��9@�}D@	9@�2����8 at hR'5�8@]�J;|�7@
�m�
7@ԙ�(�6 at p�E�36@փ��y�5@�=
f�z5@��b�
5@
��޽4@�;2�W4@�`�p�3 at F��=w3@5�bD�2@琝�2p2@�/�\��1 at -��{Q1@Qʙ�0@;�L\ 0@��p�y/@��:Tb�-@���L�, at n~5��K+@�#�
*@��L�j�(@,)��Y�'@�c��GL&@�~J�
%@�ڡ�#@8%����"@t����!@�V���
!@k�3�k @^p��^�@
��m�
@�Z'{V�
@�*���
@fS85�A
@8�:c�@t�e�\�@N�� ��@e�f�a
@0h

@n��r
@!���7@S� �u; @r	 �H� @�n��@�!@�
Nj�~"@e@��L#@�\�
+$@�#�u�$@Hp��%@�=�%,�&@�h�]�(@�NABЁ, at 1�G<�0 at N����;3@�b�<R6 at c�)36i9@��@̲�<@c�O�"�?@e4�KvA at SK���B@<�;sD@�o�;�4F@�ן�9H@�A����I@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+�H@��m��G@
2	2�G@��p��bG at Lc�SG@�n����F@�E���}F@�э��-F at k��d
�E@�n�O�E@�2�
�9E@��bm�D at J�FSt�D at EȂ�DD@� m��C at 7U��G�C at M�8xPC@�ɻH+�B at K���g�B@�H�$]B at z{�
B@���ZW�A@� k�SlA at y���A@����@@�[l81|@@h�i{d-@@ ����?@^<��
?@��g
~>@����?�=@���ŏF=@\xZ�<@�݋�<@y�S%{{;@˲����:@i?
W�R:@
+l	�:�9@}��*/9 at Ui�y�8@Đ3�L8 at m��]�7@
D*`y7@��7��6@�

g�6 at D�{ǫ5@��W�D5@�-�6O�4@����4 at c�@�64 at q�i�d�3 at Mg_��x3@�3 at n
 ՛2@�^
2@�aOrɛ1@�7���1@��퀄0@�S����/@���̰.@'P��B{-@�U&��A,@�����+ at Dj`f�)@�S�
+��(@�
+&b�D'@��1=�	&@�rsB�$@F����#@<�NZv�"@��S��"@f��u!x!@|l�
�� @1�*��a @|�R�
�@u�x��
@�jUXJ
@m25�
@������
@b]ٌ��
@;���
A
@YN�
@qpX�@���O @k�P��� @ҽ	5`�!@��Gr�="@#��I�"@�=:&
�#@yǷ3Yr$@�4⬦%@�
+/c��%@�|
o��&@���v�(@7`��g�+@�Ed�~�0@��
FT3@"8ąv6@}���(9@�s�`�;@y��s?@����l7A@��6���B@���GD@�����E@ŻI�i�G@> .9KyI@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+�ٲ�F@��I8;�E@�hwv�yE@�ٺ6(E@!R&���D@�����D@
����1D@����
�C at lmJ��C@�检�=C@���6��B@��=f�B at 1��IGB@~�e���A@��ତA@�Lt3�SA at Q�wfA@���t+�@@�dpi�`@@l���@@z�	m��?@�io��>@YN�o�A>@�% ��=@�
+�f0=@
B7Trk<@��­��;@iaJ�$2;@_c	=�:@0h��w:@<F�Kk9 at q�{h�8 at J��D8@�q�R�7@�.�u*)7@#�@{�6@
rfK�
6@�
�V��5 at i[6�Z(5@�
7n��4 at o
���V4@{i���3@����3 at I��b
P3@%eK���2@�<��2 at Z�A{
*2 at w��t�1@]��V�<1 at U�cĵ�0@�`�G:0@�Rq��b/@z���YA. at 8�Y�w- at U� ��+@%
�)ײ*@
+�p��y)@ry�.A(@w�L�J'@2i.	=�%@�|�'ݽ$@�ˡ;�#@/CN��!#@ �0̂"@�c���!@@-��l!@�p�<� @�c��+� @�5�X�. @�pB��@;{���@M�B>� @,Ph". @�]X�mo @����� @�ܣ&!@�+e9�!@[je2�."@�
����"@n��l|#@�
K,$@PQ;�G�$@���[�%@t�H;&@��{\�'@P�빜(@�&I�+@�}���0@}����2@��c�_�5 at 9&�q�H9@�ɶVt
<@k�)`�>@�0����@@ړ�OB@$�_���C@�Y�
$nE at y�<��
G at n�8�H at nR�K@��������������������������������������������������������������������������������������������������������������������������������������� [...]
F@(�%$�E@&��gE@�w
�E@��
+��D@��˜�rD@> ��
!D@���8��C@�t[��|C@���39+C at UN����B@ʠ����B@����'5B at R�{]��A at L5&�W�A@�l�>A at o<o��@@s����@@:y���I@@
��\B�?@�"6��P?@Bـ���>@ )��N>@A\�Ol=@V�p
��<@w���+<@&�I�+�;@�䒘�:@SQ�z!T:@2Gn���9@��39@>���8@>�d~E�7@~�S��X7@�,����6@�Oڶ56@:
+��ǫ5 at A�v�)5@�PyG\�4 at v8��14 at H
C��3@
��k3@ٞ �#3@{�]vZ�2@��ŝ�v2@�@I@�2@��0�α1@%:=�G1 at u��\;�0@�|@�
_0@kws�/@]�Ų�. at C
+�K�-@�{ ���,@,H��u+@�_G!M*@;��2o$)@�B�,��'@�����&@h׼p�%@F�|6�$@8�˂,$@�㦯�#@ #M���"@L��Rw"@���2��!@�$�Ց!@+�Z�d;!@��
N�!@�
+�O!@��vH'!@���P!@�m��Uy!@v�׿!@At-i�"@�đ��z"@
�	�&�"@D0œq�#@tJ
+�%$@�!�
��$@;l��_%@��
&@�����&@�,T6<r'@�[��7�(@�C�]�[+@��
�0@�/�ὠ2@�'��!6@��+��8@�^�ե<<@��i��>@����l�@@�|�>FB at zh�_��C@��>s76E@�l��F@��JfhH@���G�HJ@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
�
֝<@oa4��;@�(���V;@nr.S�:@���A�:@�^߽x9@�O

D�8@�a3%K=8@��a�7@�̫1.7@��a�Oo6@�x���5@�f�g�D5@}l��'�4@��g�/24@���
��3@	���;3@�в=�2@#4���2@���~O62 at 4x���1@��Kjq�1@=;[.41@\�<���0@�9�b�b0@�v���/@�j�.@���n
.@�����-@���lR	, at d�����*@ms���)@�p�J�(@E�Ч�'@�5���&@~'l�+�%@�0��6%@��2ט$@M��[O$@����v�#@�d(%	#@�T�S��"@pt��F"@
�6��""@$6��R"@�PV)�;"@L@�h"@C�GH�"@�7�B�"@
����#@
����d#@/�@s\�#@:��8U$@0�O���$@��z}Om%@Y6č8�%@�k�&@\���K,'@
�2��'@�i�7&�(@�ʠi�*@��N�/@��{C�2@���[(5@,m�\y�8 at 0�E���;@2o�o�>@��� ��@@�6��6B@>:T)��C@屻Z�KE at -����F@,�M_�
H at 2�Z�ũI@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
?�%H at K Yv&H@��Q��G@�����G at .�q2$�G@&W��3zG at S���pTG@�9Oq�-G at B�
+��G@�H���F at y�M�
�F@ͱ�3T�F@A3�GUF@
_�ӑ$F at 0�QN��E@�bUR�E at so���|E at sfre:E@]R�q��D@�����D@�����QD@�Q��� D@{�Jb<�C@����\C@�y��j
+C at Y��d�B at rr B�eB@���DB at S�`�A@= voA at s�9%(
A@�|���@@�w!e�z@@
�K�'@@��R��?@��
+��?@�G��E^>@<
�ȸ=@�5%yV=@Y��$1s<@�j!�U�;@��$�';@���ޓ�:@
����9 at b��1�A9 at q��x��8@�P���8 at wTaX�a7@�߫��6@͉�n�$6@�/�d�5@m7��4@�zk�X4@���4��3@�x��{:3@���W��2@����JN2@�j�TM�1@��䮥1@/��{�[1 at m�~�l
+1@��b�^�0@��݁�T0 at O�U��/@7��6��.@�],	�.@��ia*-@����I,@���V+@�T?�a*@�@�@f)@{�ؙ@n(@�f�Ǟ'@KZ� ��&@�;��@&@����
�%@�H�3%@
��D�$@>�yC�$@f;��#@��n�
S#@EeW�*#@'V@��4#@��1)�F#@�Bʬu#@����#@�]�F��#@�:��$$@ٍz��j$@3��
�$@�=��-%@拿b��%@@�9&@��x�&@��� ?'@�UO���'@���k�a(@/sz "0)@�W@�x�*@Կ�0
g. at u��/��2 at u�:~<�5 at q4���7@�u
';@6��rc)>@'�bJ�@@)�
�B@���.�C at j����
E@J����F@�5Y�	(H@����I@������������������������������������������������������������������������������������ [...]
�����H@�Q>��H@/�ps��H at _�ݠ�H@�҅��H@�s�
�H@��슌H@����|vH@��=��\H at u���xBH@�� s�(H@���ЂH@�U�!�G at v�����G@�
خY�G@)��
e�G@��~I*zG at R:6_�UG at Fk�x0G at m��A;
G@#L~���F at p���ϼF@��k�p�F@�M��iF@+�î>F at S �*�F@����F�E@�ș7;�E@-��E@��SFKE at k\3�E@�s���D at x$����D@�r�)�CD@ح@u�C@��噦C@��W>�TC at 5�~�C@���`�B@�\�*�\B@
3Q�	B at 8���D�A@Ϛ��
+cA@���
A at 2@,�$�@@����l@@�����@@K%$�?@4[����>@���:�@>@?	C8�=@�e�Z<�<@�}PO�O<@
+��!�;@\���;@T6��}`:@Go�ɐ�9 at m�}_
9@�VK��u8@��EG(�7 at 5�c�07@&Gŀc�6 at 4�����5 at k���J5@`/i�4@�p+�4 at 1���yo3 at E%FJ
�2@��S�ZM2@�s[��1@p��1@��&�H21@�X.��0 at 5�e#3�0@�

L50@�o�^�/@q�z���. at G�<֓.@���FA-@�8u��j,@���-L�+@����*@��
+��*@��
+�ZP)@ތ
+7��(@��1�'@��` I'@��A���&@-,[&@]�SO�%@�ƖK!%@���e��$@��N�c$@��:$@�
W�F$@Ŭ�{?d$@�����$@l$h$@�G�>+�$@dE�1�N%@�&��{�%@�[� P�%@�O��<&@-r띒y&@j�H�'@���eY�'@���
�'@�����y(@!�AZ��(@V����)@�9Rrm�*@�Br�0�-@�G��ʪ1@�&���5@��@/�8@�V���!;@9�"��=@.B�G�b@@T?���B at E~_�rC at dM�I��D@���`9rF@?���H@ި��X�I@������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
�+���H@��� 
�H@�g�,�H at L�}6ԊH@����cH@�mvU;AH at C��(L(H@
��{�
H@�Qxr'H@
Y��k;H@��d��KH@�>�63_H@��?OlH at d�}bH@��P?PH at o��
+<H at 6��~&H at _�p�
H@��
�G@�bU~e�G@���
`�G@�с�=�G@͈.��G at 8��r�mG@��nǡOG@;���`.G@�l���
+G at _C.f��F@��,C�F@�
ʛF at 5���YtF at 9u�r�KF@��—�"F@��E�E@�8�$��E@�%�\]�E at sب��pE at x�DAE@�
���E@��9�D at hi�e�D@�R{k�fD@�4�] &D at l��$o�C at U����C at K���IC@���O<�B@,�0��B at lPkCWB at 4�ؙ�B@"�JlQ�A at +�Z��\A@%�຅	A at P~�@@y�(��d@@�."a
@@y�|%?@RlVN��>@Ċ�݁0>@)�&$�=@��k�<@9ꛞ�:<@�|5Q��;@.𬙋�:@���G:@�����9@�j,��8@ӄW?W8 at b)D���7@�#rT7@̀7��h6@�4C�|�5@�u�8 5 at j\�|4 at b'�	�3@/(��+43@� ��2@���?2@w�1@�%ϳ_1@�;���1@�;F�0 at .hc�?N0@� _�)�/@A1���1/@�a�E|.@�a����-@ �'��-@�HU��[,@IU~%�+@���h�*@���fC*@�Eκؖ)@�O�T��(@��"Q(@��	mf�'@�]�0+'@k��W)�&@Ұ���,&@Ũ|���%@ץ��o%@�s�'L%@~c��QX%@���,v%@�/�H.�%@��zV!�%@��N�]	&@9��zM&@��'@�&@��n�
�&@���2*'@ ����k'@a:E��'@�#��J(@{�,w��(@�>� �?)@�ǥG8�)@����=*@s^�0NK+@�5>7XW-@ [...]
H@���H at UY* H@��*��G@��~���G@�%��G at iVc'|�G at u�-oI�G at B<�
m�G at j
��pqG@�Tf�)YG@�M�D>G at 9ͳ�7!G@�D���G@6=p��F@α���F at h^_�ޚF at j5U�uvF@��n�QF@�Ռ�_+F@�{��F@}4����E at aA���E@�(�yDŽE@]�B dXE@�K�,E at 12�O3�D@�1
���D@�s"
Y�D@`paށgD@��Y��1D at t����C@�
w��C@����xC@� �3C at 2TjR��B at 2"��!�B@�AeLB@�7
�D�A@;.襨A@]���UA at 5�/O�A@	I�n�@@���\@@H/��U
+@@�����o?@]I����>@<` �!>@�5e��|=@
�����<@
����-<@'d"�-�;@�
���:@��jY7:@
�\mܐ9@(��.d�8@�
��D8@�	�ϝ7@�t���6@�����S6 at l�2c�5 at A���	5 at 5��]�d4 at JVO��3@�{�
+
3 at bl>��2@���3Z
2@��c?�1@#
��hi1@�K�/�1@��V�
�0@)D\�\0@�lN�0@���dU/@
�
�. at h��U��-@�b
�@-@\���-�, at +v���+ at S���;+ at A�-�E�*@�)�D�)@�s���X)@��8��(@�?�[i6(@����'@ӧ%��7'@R�}u��&@J��~�t&@��9~�L&@V�R7V&@F��(i�&@����&@��N��&@�6�""'@�R���Y'@��S�'@7�W
��'@
�|��N(@�t�X9�(@
(��(@�.��0)@R��陠)@n��
~*@�w�Iz*@ɫ�7�*@���c�+ at qSO�|-@�ʇVݓ0@%��eLD3 at d���f7@"8X�\T:@��uQw=@�+�gO@@
��@�A@��%u>&C@�k�1��D@� [...]
+�jE at PĪ��>E at W���}E@�&P��D at b,�HC�D@^o՗�D@=��Z\D@�H�6)D at o���C@
zA�C@�X����C@�es�=KC@�s\�C at U�LU@�B@��欅B@LV�;B@�/�y��A at 1�.���A@�4zH�MA at H?�e��@@ޒ,و�@@�oQ�U@@�j�@@@��xa?@���!�>@��'[>@nד��l=@��^/��<@�
+"e <@�X���v;@��&?q�:@;r[�+:@! �,�9@т�4�8@>G�=58@
�����7@]��&�6 at d9d�D6@�hP��5@��[GT�4@씾�V4@�t�E��3@��
�
3@��e��2@�䱩<2 at P�����1@�(���1 at tHE�D1@@̘���0@*��v�0@2>n+=0@
f=~��/@�� ��/@���`�p.@V/���-@ �-@�f!Zk, at 4���
�+@՜ V�+@�G�C^*@�{p
�)@�Z_�@)@��Oꌼ(@%��
�B(@{1/���'@B΄Tx'@�L{ ~B'@���E'@��
��r'@\2�ִ'@3P�d~�'@
>�} (@U�۪�t(@�{���(@ Ҙ^b�(@�ɀ��a)@vN��ǵ)@�����*@��\%D*@��:U�*@�S7)q�*@�Y��fT+@�TԴ+@��E��W,@�1+��-@9N~�L0@�e�M�3@�NI
��5@�2�JH�9@@$>h=@�%�!@@ˌ�
ّA@ېn�
`C@^�e�
�D@��#SF@�\D��G@���SI@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
+�q}G at NyXcG@*��>OG@��T,cOG at N"�?\G@�;�z#mG at 6�f��tG@�ٖ)toG at 4�ED`G at h#��`OG@�Qw��8G@�Jr��G at P��y�G@�Z\�E�F@��lj��F@��f���F at +�i2�F@�~�O��F at C}=�fF@���SHF@��0('F@�?�lAF@
f
��E@�7�(�E@�Rr��E@|���qE@'�eiKE@����"E@��l�=�D@��
{��D@��q��D@�[�uuD@�Ɣ�
GD@�֪.
+D@��ӌ�C@�@���C@���z�C@&�+ϻJC@^l�
bC@,����B@��ᛞB@�Q�(4_B@�@�vA
B@��i:w�A at A7W+�A at q����AA@����@@J�\J�@@BQ���P@@@�,n�?@����Y?@�>�q(�>@��8�
+>@��H%�`=@
WZb
�<@�{��<@t"{x�o;@������:@5�5�%:@Im�˞~9@��څ�8@��~0-8@��:��7@�
L�i�6@��t�<6@�dC��5@�>l͓�4@�y�p�U4 at 2�
���3@)z| '3@}�Z~ľ2@�y12<n2 at z8xԾ"2@�gg؄�1@�@�S��1@��&�@W1@��Z^ 1@�k
�3�0@�Se0�:0@%]��Y�/@��¸�/@O*~�5T. at 9�X�*�- at Qy7��,@��)��, at Bśټi+@����0�*@���q�I*@L����)@�Zݙ6K)@���uo�(@�9&��}(@���
~<(@f���J,(@�dޒW(@����(@���b��(@�q�.V')@Q�M5�g)@�
����)@�_4x�*@҄:�2\*@����*@w,��
+ at v}�'eo+@���ڶ+@�0.)^�+@�
%>)E,@�`�X̕,@!���- at T}�.@	��t�70@����[�2 at d{:��6@����9 at M'�Y��<@Asi���?@فK���A [...]
��o��G@�c�Ԍ�G@\����yG@Ž��XG at Se
}:G at c�~�
 G@�N�ȲG at y��e�G@�Q]�
G@���މ#G@��϶
G at 8�ɗ�G@�צ��F@&�?!`�F@��R�)�F@:l�6�F@	
+G8y�F@�z_Wt�F@��
�jF@<���RF@����6F@�B�a~F@��a��E@#K�V��E@o��`�E@����!�E@�O�=oE@���&�KE@
+�DI'E@!
X�E@��Aq#�D@���m�D@��e�D@�FI�\D at L�$�/D@�p��+D@���B{�C@�W�\s�C@���V6vC at 3����BC at .��
C@�ޕ���B@�nF��B@����ogB at u֏c,B@�[��+�A@���㗯A@ݵ���lA@�[�_'A@��i֎�@@Ԋ�Uo�@@h��K@@#�����?@ᰲ
+W?@�;{A�>@��>�
>@�pt��h=@Ǫ

H�<@�*.�
 <@)�	��z;@=4��
�:@z���S,:@^E�!�9 at x��\P�8@����78@* ��b�7 at v:'*�6@�q�*H6@�cJ��5@`;����4 at _��
~[4@	�5@�3@���LK3@�}X��2@o
a`�2@�)��t2 at U�	R�;2 at v�E�l�1@�HOO�1@�o��R1 at _�s�a�0@��
؄0@YL�
#0 at r�[t�t/@vz��×.@��� x�-@�b�)
-@����t, at C�NkF�+@�v
�P+@����*@��
&eS*@E�}�q�)@ϣ�;�)@�2��:)@��
)@W�o/,8)@Zn
<Z~)@�dw�T�)@
����#*@;����j*@bdνb�*@I�?�f%+ at 7WwPZu+@w��
��+@���|+, at guy���, at R�p�,@�;��-@
+U��4- at bj�V�-@[=/��-@g�-�}.@���d"0@{�
��K2@#2qiá5@���29@�Q+�݌<@
�U�Q�?@D��t_A@~���E�B at S�}�u�D@>H��y�F at -��
+H@�
��mI@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
a�=��F@�r����F@�
(9��F at By�l�F at E�*
?�F@/�o�F@&
B~�F at j��+hF@&���1MF@����3F@�_H F@��T�F@���8(�E@�����E at Z\9��E@#��E at V�
y�mE at W޺��IE at q�Z
%E@yFE@ቢ��D@��{��D@�DrߑD@�G��hD@�+�@@D@�A��D@�/Sd-�C@���B�C@�@3R�C at gq%.�dC at aT9��4C@�ER0C@��9��B at Q
,I\�B@ͱ��cB at W��ȟ+B@�==���A@��2B"�A@���ܨ}A at m�a>A@��tb�@@

L��@@j�U�u@@쒍S20@@����?@$	�c�<?@y0ק�>@M|��
+>@�
�l=@׏J���<@̖�ة!<@�us��z;@�q��,�:@d�!�/:@i�᯦�9@����?�8@�A~�>8 at z�X�8�7 at t�����6@��M��G6@����8�5 at Cvʢ�5@*F3�<i4@�5k��3 at 1cD��3@;C�KA3@@���
3 at OV����2@���
3�2@Ѝ#�J2@���1@|��Tφ1@���}1@�t�G�0@��F `40@����H�/@����b�.@�q��
. at d��w}-@�2���,@���N,Y,@�$�[��+@\��_�[+@
�J���*@x�@��*@�u��Y7*@Yl�%�*@vp.��*@��u�\*@�D�^[�*@=��aJ+@����\+@���e��+@�!av,@�~*UP�, at a� �<�, at Z13�N3-@*뗏��-@Ծ�NL�-@��X�/.@��H�|b.@]�)�nz. at M!�`��.@�,=-D/@(���+0@�u��1 at g��j�4@�Z�f8@�y�M��;@
�:�.?@�+ �OA@� [...]
��/sD@[:q:F@���L��G@�U�װ�I@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+�b�3F at r&�F at .'u�E at 9�Q���E at Q����E at l"r4�E at Fa{��E at C��pE@;n��bE at 8�CE@,�i��"E@
�J���D@�c��D at N�W)y�D@)Z�ÓD@��*�nD at i*��GD@	ݼ�D at Z�2+x�C@��&�w�C@�R�r��C@��g�2xC at _aq��LC at fn$� C@Ʀ�|��B@�2��B@<a��Q�B at 2��Z[B@���c�%B at 8��X�A at a(,)'�A@��,xA@*��WFA@�w��U
+A@�	�T�@@W��=�@@��	�JI@@K�dx@@מc�
�?@�O'�v�>@���n>@�s�e��=@^�eN=@p{O��<@�ʙ
�
<@y��:~;@���d��:@�$�x<:@����9@#
F��8@(��h�I8 at R�.0��7@�J�Kf�6@�!���[6@�~��5@�ZA+�5@�����}4 at s�P�P4@]��{F�3 at _,�O
�3@����&w3 at f'a��D3@���|��2@��@�q2@����1 at ec�c��1@�
ɔ1@�M�Q��0@�+,��A0 at g��|�/@(�ְ�#/@&{�Kr�.@����`�-@��6�a-@��([��, at zb�*�b,@�2��X�+@�S� �+@�7�9+@�u���+@�$(�+@�nK��G+@�aL�J�+@��Y���+@"��TC,@�`��*�,@�(��> -@��*�e-@:�.�q�-@� {?.@�4�_�.@ӊ{&I�.@؉T_�B/@F:[��/@�tR�?�/@�p��#�/@wٟ0@ [...]

�K��D@���q�D at O����D@]��f�kD at LNG
+EJD@
��P%D@ɤ�q��C@�����C at j�p��C@���ɼ�C at o��p^C@�!��N2C@�:~vC@��
���B at s�3	�B@��ѐ^|B@�sGyLB@����B@{����A@(y��^�A at Hy$��|A@�h-mLDA at XS�x]
A@�Wδ�@@\7,:J�@@1F�a at Y@@�d���@@O�i��?@6-�
o-?@����d�>@Yh��
>@��Iݒ=@
!��w=@��Gժy<@������;@�Nb�TU;@KCk��:@ah/)� :@tgbg��9@?e}:�8@�p�|�C8@���DO�7@r���6@�0h��T6 at 8�1���5@�$F7
5 at E٣�9�4@���[4 at XH;G� 4@�淘�3@Ί�z��3 at S��j�e3 at j��2@�!K��f2@�`��f�1@�VK��~1@�V˒�1 at 8
�A+�0 at 0z�'�f0@Vx�80@�n��/@����.@!�r��j.@��ǯ��- at G�ZP�j-@�wabg�,@
r�<��, at I����K,@�A�4",@�7�
j,@�,
��@,@�ʫ��,@�oV�t�,@�N*�--@�ƒ��- at V)�a��-@ٮP�d_. at .�� [...]
KI@����H at m�����H at 0��PדH@$�O*�fH@{%
��:H@ 4�jH@�
g9�G@&��=�G at zy���G@5 dG@���
+:G@ +MRG at vj���F@\�DnM�F at d9P�M�F@���)oF at Gu,mRIF@
���5%F@���ɅF@�q����E@ϵ�:j�E@�
X�
�E@��fݰE@䰞	��E at WK�|E@��K/aE@��W�#IE@��;�40E@��(E@��
+�D@�$w��D@ؔ����D@
��cūD@�UqwT�D@�`0�.iD at o����DD@�H?~!D at i�t���C@�
NN�C@�@m�C@�ƲT\�C@�&�3�gC at uyU at C@~�X�JC at D�6�h�B@ÁX:7�B@�;�B@���HhB@��
��9B@�i�]]
+B at zq�<�A@��*\�A at wp7�csA@�Io��>A@��lj�A@�
U���@@I��t��@@�5�d`@@aLV�5%@@=
~״�?@L1�=}Q?@��p��>@��p�$M>@p��	
�=@���K�?=@m"�j�<@��)[�+<@���m9�;@����Q;@�y�b�:@I��.�9@��q>�^9@/�3�|�8@��08@�hc�ɒ7@ ��-�6 at yD �xP6@�i�
Ƴ5@�iB�;5 at x�1��4@�B}w�4@!���ol4@]�� ,4@��_ӿ3@���T�I3@��G4
�2 at 1|v�]2 at 8Tk'a�1 at fc��1@҅Rr;1@
����0 at S��y
+�0@���U�H0@翂d��/@��k��s/@�\����.@�ad�-u.@�x7�.@
h��:�- at tv5�<o- at T
��S- at l�|�C-@َ�L�J-@
+�	��-@���<��-@�'3.@�W*�=�.@�,
��.@�r��W/@��U�y�/@Z|Ѻ*0@gh!X]0@��#�i�0@=�+$P�0@�+V���0@���b �0@�8g�
+1@'_�1@�BND1@��i���1@�H�3 at LΩ,�5 at L�pt{h9@
^�k<@}�a"�?@Ւ�Ɲ�A at Jت>�sC@�>�{�/E@�Ru_�F@��9f�H at Y���?7J@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
D��-F@��/F@�d����E at aJ�*p�E at b� (��E@�r�Z�E@�f�hE at i3e�KE@\(�o/E at 5�:1VE@~�+P��D at 0�ǘ�D@��  "�D at W%s��D at f�/��D@��,щ|D@�X��f`D@$���PAD@,�)�cD@���aA�C@�sÈ��C@�<WmL�C@���o�C at 0 ��
lC at J��#EC@3���
C@���A�B@��zٶ�B@@
'�ΤB@����{B at J�{s�PB at KX��$B@�����A@;�C��A at z��g�A at T���eA@���2A@��+T�@@��c`��@@�����@@9\F^@@��4�G'@@�5~���?@>��7f?@����>@.D薃n>@	mxd�=@ cY��m=@�\d��<@G��1�b<@�#���;@6�2N;@T���K�:@L=�V
9:@bq�⨩9@
�
��9@<�K%�8@��
�7@���|e7@�ֽ(�6@�-7h>6@)�͚g�5@�&�vi5@^QE� [...]
1 at C*/Cy81@*.�aY1 at ba�|��1@(bXi��1@֥�}�1@l7��1@(���&2 at u�G�
+73@��	(��5 at 2�A���8@
��ȃ<@g3�>p?@6�2�.<A@�u�|��B at a@-�>�D@�\��"�F@|��!
H@�1Һ�I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
+E@[5����D@�o���D@@"���D@
�=q�D@�%FyD@ナ�]aD@�����HD@�a�@/D@��r��D at Vf5d�C@;t+.�C@Ǩ�MQ�C@��"hA�C at N�l2�hC@ҧ�h)FC at d� �!C@@���B@������B@���7�B@�)!�A�B@���]B@��]�4B@Su!]
+B@����A@��
��A@>7�ЃA@��r�SA@�yhh�"A@��;4��@@qe�a�@@u�f�v�@@Tx5�V@@��b�!@@L�<��?@J�wZ at i?@e��lv�>@y�io�>@�u��X>@�휉=@�'�<k
=@vmT3��<@���<@�a��;@Y�$z��:@�ȝ��n:@��

�9 at +
���Z9@�׸<��8 at -+��B8 at A�в7@?]�CM+7 at S��1��6@
���06@�%�5@�.�
|5 at z0�z�#5 at 2B���4 at e+��oe4 at 3�ٌ��3 at t�^�\�3 at x1F��<3 at L23
�2@�L� �2@����82@�:�kd�1@{}�&Ԛ1@����O1 at c;�1@>@*
*�0@��7�0 at j-q�L0@���0~!0 at pEk&�0@ݱ�m��/@�% .��/@����(�/@���v��/@-��ճ�/@�A�wa�/@w��80@	Zh�Q0@��7�-�0@��S$G�0@�Մ���0@��m�z1@�uq��K1@�" [...]
[`I@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+_fG@����9G@
��K�
G@�	���F at a����F@<�l޺�F@�N�^F@���	�1F@�����F at A�npT�E@��[�E@������E@�ըWP[E@^�@91E@�2���E@�d�W��D@;~�
�D@
+�KX��D@����ZoD@KI��ND at o�P��0D@$}���D@��u7��C@n�+�C at 7G�� �C@�6 ���C@��:�)�C@]�ҷefC@0=CC@��� !C@������B@�V�G�B@h�_�B@���B at _ו��gB at j��w?B at 7� S�B at 7k��(�A at n=�A at F�%< �A@'v��mA@��b�?A at go+c�A@	.侀�@@�6�r�@@��ھ}@@ѓ�xL@@�wvP@@߱BV,�?@p]�;Q_?@\�m�>@�J�o��>@�|��1>@Z�}�G�=@�\���!=@t���
�<@_T>� &<@�D����;@���vP";@�7_�՛:@+�6�:@��nc�9 at kn��9 at m(X�`}8 at F��V;�7@ݻ
�
o7@%�)��6@�z;�È6@�z��s.6 at +���m�5 at 3��
y5@;��<�
5@,��~�4@�@��`h4 at h�1 
4@���#�3@�A��^3@*����	3@]1z�2 at sH*�i2@,�h
+
2@�ol9��1@���cy�1 at T�ȃ�J1@��
��
1@����0@
Q��0@��_�U�0@����A�0@�X�FƐ0@�ky_�0 at F�6?B�0@��"q�0@�^b�K�0 at n��m�0@�vw.��0@%8Ƣ�	1@�%�4:1@�X��d1@���:�1@3K�z�1@ 4e���1 at 9A��+2@�����\2@����2@�'�'�2@����r�2@��K+�2 at J���
3@4
Ǝ�3@��굈5@��r��7@�?�L��;@HT� !�>@�Q
�dA at vM�L�B@)TȭHD at b�m8
F at 4�T�ȼG at K�e�@I@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
C�[�F at F싂��F@�ԣ@~F@�U>��QF@ *
��%F@�S�$��E@�rzu�E@��� e�E at H0�I�uE@r��IE@�ws�
E@�t$cx�D at A�9�D@��7ڝD@���VtD at 83_�JD@>w��"D@�Ա�C@�o3~�C at u�i���C@(PB��C@���\�~C@���l�aC@`߮
�BC@��z�
C@��GW[�B@������B@���۳B at 3dn�g�B@$z�g�kB@��ZFB at Q,P��B@!Y���A@�~�|��A@�ᢤԨA@�
��
~A at d����SA at p
.��(A@���D��@@�/}f[�@@G㏟@@��Ħn@@>ʿ8X=@@8G��

@@�ৌ�?@�ʆsL?@�B��>@��2�}>@e
�q
>@K���أ=@A��u0=@prې��<@��Xf><@T6�
�;@�j�uwD;@x� ҟ�:@ˈ	�v@:@Z{Q���9@��}�99@{h���8 at l�}�58 at z����7@�	��N7@��o�6@ŕ�)#�6@�2	��>6 at G�7<�5@�!vr��5@��k��45@�Tj��4@~�&��4@�b��/4@�?/���3@>X|r�3 at P3wl83 at f�Jy��2@�����2@M�;�W2@{((�_2 at E1���1@{���1@
�l1@��:4R1 at h�J1@��W�@1@,.!�?1@�*�Z;1@\F��w91 at R�9�81@�k/u�K1@�=��
X1@ �]�pm1 at yTt�1@�Mç��1 at p�?��1@�4��d2@�B히J2@
+6�܄}2@
+D�6[�2 at c�B%��2@�4 �t�2 at S��'3 at -�};G3@�
l��m3@�B5ܤ3@!>>c#4@����45@�~ʙ�;7@}���d:@4��߅�=@3��D��@@M�B@�z���C@��G8T�E at 7�!`�8G at X�h�
�H at t���J@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+D at f�
N_�C at 2kM��C@�@4BЍC@W�p�fC@%	#�AC@�1�>
C@�P��B@	�tN��B at X��C�B@ɹ_�K�B@�
Bp/lB@��C��GB at r-'�U"B@]�\���A at o�j
�A@�$.�"�A@�kW3��A@
�M��aA at y|��'8A at m˰��A@&!X@��@@aP�6�@@����k�@@�b�
p]@@�Pa�-@@H3����?@h D���?@ua�u 4?@��P�>@b
|��g>@�k���>@I�����=@Eo���.=@z�I-��<@YxiYL<@xa�4�;@�bj�\;@�y��<�:@N	�5
e:@f���K�9@@��&}f9@�j�jx�8@&���r|8 at Nǐg�8@�`jZn�7@�`�
`7 at Za�v7@���&�6@��\��V6@���p�5@�?��5@/� qBS5@�ػ�U�4@��G��4 at 2��sX4@ܥD��4@�E�i&�3 at G���m3@�
+ᐼ#3 at t#+�
�2@��x��2@����[2@��&w�%2@
��5�2@��b���1 at y��Ǿ�1 at B!��I�1 at P��%|�1@[b����1@��
��1@�Pb�9�1@�H3���1@2�'2@�@@�2@�&N6)2@�4�E2@��o?s2@�hS�ʣ2 at P!Ո��2@?�����2@��ñ�"3@<�E�ON3 at e�.�u3@��P�3 at t��Z�3@�3-�3 at a�o�P+4@�
�D��4@��V^�5@�Qz�D7 at F���x�9 at v��(=@ΔH/�!@@Ex��B@������C@�['3==E at u�5��
G@��c]�tH at T��#AJ@������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
+�_�F at b�HB��F@���1oF@�� �AF@�0�3F@��I?�E@��DP�E@�}l�E@'I���`E@��
+�3E@�����E at Y��'�D@��z�D@����րD@�~FTD@ȘO�'D@��L��C@��8R�C@��k�C@�:}wC at X�_�SKC@۰Z� C at y`� '�B@���$��B@�(ǜ�B@��6*�yB@��Y��RB@
�o��+B@�5�U_B@�����A@4
�A@ǮϪ2�A@�@�iA@ܜ$�AA at b!�DA@
	J��@@D�⢻�@@�_�a�@@����t@@�QJ?�H@@X�i6I@@5o0�W�?@
礂�y?@|�RG�?@aN3��>@��*�R>@O��L�=@
mRF�=@Ql?�>
=@
���<@�Z1 �J<@�iFɇ�;@tީzm;@g��:@dW�
;�:@��r
:@�g�|n�9@�^��*:9@�/.�j�8@�/�	�8 at V:=7g)8@����7@�^�ZJy7@J�̎"7@�b���6@�q^v6@�4Ui!6@��Dϒ�5@�s��y5@,  `'5 at U�\��4@��B��4@��k4�:4@!�����3@�@2�3@e���b3@�>e�z"3@
�����2@�Y<�2@���X��2@1g��2@�����2 at s!6V��2@
�+{�2@�*G�X�2 at ETe�4�2 at c�A|�2@���ج2@����/�2@
C���2@�/1<��2@�X�F|�2 at x�;��2 at Q�|' '3 at cN[�>Q3@
�0Dqr3@��T�—3 at w"�o��3@���	c�3 at TҚB�4@ ��[�:4@�c^[?j4 at Kʧ�a�4@���߅95@���"�F6 at r�)u�7 at a�͌��9@�c�F^U<@��p���?@�n[�EwA@`�
,:C@|�7�9�D at pL۱|F at Q>���jH@#����I@���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+�G@�&*̩G@�� �iG@�6!*G at x
?�F@�G���F at M3�nsF@�� �=F@���F@��F��E at 8y�pm�E@ڄi�E at w]�g[E at .Ԑ.E@�Vvh� E@�/L"��D@���Ƨ�D@شI�yD@">/�GLD@
lY,D at k��?�C@]���Y�C@�
��z�C@��v�kC@��
S>C@���
�C@
+�H.��B@�Vf�B@�i(�V�B@*

�^B at p���u2B@�œXB@
�
y�A@�+!�A@��i+K�A@��=�VZA@�����0A@��;��A@i+u��@@���EP�@@�X��B�@@�b�m_@@�v���4@@���F�@@[?����?@�e�Y?@��O�}�>@��ہA�>@�< >>@qЕ���=@t'�Pz=@���=@����<@
�؅�N<@Ė�VU�;@[�RQ�;@ӆ
�;@��A�3�:@�G۶Z:@�G�2g :@%H��9@,����K9 at 7�.OF�8@ ��g�8@��}�&D8@쁾[��7@
+n䋗7@��JtB7@�����6@
+�сD�6@�~߈G6@]���5@�g�+>�5@�8|k3V5 at WZ�*�5@�T��4 at T��N�s4@�&ή-4@��3@
�Tkϯ3@?큱3@���![3@^���%F3 at w��"33@�5o�13@�:N��;3@<r���A3@�[H
^T3@  ym$A3@��`�6H3@7U�Y3@�T L`c3@
l�Lkd3 at Jog�I|3 at x��<ڑ3@]�T���3@�x��`�3@����3 at m�p�3�3 at J�+�4@�᯲<4@zL�{d4@
���U�4@�~�
��4@-�
��4@ �ʃ=5@��i��5@��]M��6@�. �p8@�)W#��9@�E��4<@=/>:L?@�Q�ssA at W"^T�B at .��E�D@�
mJWLF@.���G at E�@�S�I@����������������������������������������������������������������������������������������������������� [...]
+I at -i-9
�H@�ώ�yH@��c:�1H@�
ͫ#�G at QR��G at B,�x�bG@?C��a!G@<VkX�F@�*�l[�F@%���6LF@]����F@�

0
�E at .
�[�E at 2
����E@%�g
WE@)�'A�)E@���l��D at b��f�D at j����D@��s��tD@ͤ3�GD@���A�D@Ԥ�mq�C@�s�I�C@��3�!�C@��n�eC@��ٙ�8C@����|
C@ȼn'�B@��eҰB@��%C��B@���n�VB at r6���(B at w6q(��A@Mc�%�A@��.�t�A at 8�)sA@<��T�EA@ǔ��A@�T���@@����@@���X�@@�Ɣ/0d@@��T[7@@����	@@0��eq�?@7�)�!_?@l���?@Q�uf'�>@*�Y� O>@i�%Lv�=@��˙=@��� ?=@�>G��<@�����<@�>�10<@��M��;@�>��{;@���B!;@T.>KF�:@�x�=
n:@>ij-v:@�=F�9@ [...]
+�8@�K�� �9@�K����;@s�s[`?@mȏP(BA@�C^D�C at 5ʟÂ�D@���&F@��b'�G@�V:DjI@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+�]B@$�3
	.B at p����A at qH���A@�y�qãA@��Ю�vA@Ϩ�ͷIA at O�F�
A@�D at .�@@��?�)�@@?��'�@@�T�o)h@@��s.;@@��a�	@@����n�?@X�An
g?@��])
?@Q)�<�>@�~�bY>@@�M��=@�/A�
+�=@gKto�L=@^�
+B�<@�����<@��_�'A<@�$�s�;@EF���;@���7;@w���[�:@�iUQ�:@RT	��1:@
�M���9 at K+�@��9@����19@��
��8 at 0U����8 at OA��58@���6f�7 at j�5�7@|$k�B7@�a��"�6 at Gn^�ݥ6@
��A>Z6@�;�46@�]�
��5 at U8vGŌ5 at _��F\S5 at l��,5 at q��3��4@
�i��4 at q�s���4 at 0�Jz�4@ҎX;�4@��7u�4@����Ȑ4 at R�ѽ�4@�7z՜4@��O�}�4@g�
�4@{;�Ŕ�4 at v[�y�4@]�]U�4@{
x�F�4 at y
�kV�4@�oE
+v�4@�
�;�4@��*M�4@#�	��5 at O��1�
5@��b�8=5@�d  �[5@Ļ�}5@��x��5@�deT�6@�]�::�6@�Y��ƴ7@<��n�9@�lw�_�:@
W�q+@;@H�*ރq<@�ǵ~�>@0K�H��@@�ȸ?�B@�U��TD@�n�'�E@�1-

�G@�x0e|dI@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+C�A@�gv#|A at O|�<9OA@ھ�
"A@�����@@���=��@@N-��@@�����m@@
�/��@@@d@�
7@@m����?@'�:�u?@2 ��
?@�R�5��>@��]"�j>@\��H�>@S�L��=@l~ߚ5`=@��E�=@�+u�-�<@~� 
=X<@��Q� <@;�_���;@=@li|S;@�x}�:@����Z�:@d��g�R:@G��z�9@'0��G�9 at r6�M�V9@�Eb�9@���8�8@���u�c8@�ʵV�8 at e
�
��7@!�v�7@��gT87@�8z��6@��p>�6@��])�i6@���T�/6@�iE]�5@�*n
�5@�j�uک5 at X{Y�5@�vߜl5@=�E.UY5@����#O5 at ng�TC5@��f�J5@(jQp�J5@ؿ�y*W5@��z��\5 at a#�fn5@
�$sq5@
w�kZ5@�X׏c5@�(	C�u5 at -����w5@~
�ǫu5 at .�s>��5@��S�ښ5@�sX�5 at q�,f\�5@(�v�5 at Z����5 at l��X�	6@���G>6@���ǧ6@�E�o7@�HaJ��8@��M��:@�bZ<@
�p���<@��$a��=@Q�0'!w?@d[Ⱦ��@@:��bB at aO�u�C@�,�w�_E@��p�$G@�Z �H@"�G,�4K@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+P!=@,�刚�<@����>t<@*�b
<@���;@?6��2t;@���� ;@�(c`�:@kE5לy:@S��':@ӑ }�9@Q�~N�9@��QW>9@�,�ߚ�8 at m! ���8@�t�SLr8 at T1��.8@�
g-�7@����
�7@�]��#e7@��sd�$7@�~�C�6@".kc�6@L*��6@"�s��r6@�6J��K6@|��..6 at Q����6@�w�
6@�o�r6 at -Pœe6@�Ǝ��
6@鹂PE6@:����6@�(MZp6@�w�;+6@��u�:!6@�O6�@
6@
�9~x6@#��Տ#6 at 7ϑ��#6 at 1��>B 6 at Uܮ[06 at i0�T�<6@
�E96@�!�P�L6@�[P�|b6@Ր��e�6@�-�6@�CRco7@7��Ng8@区��Q:@���mFs<@x�l���=@y)U7	(>@�M(~�>@2T��?@%����-A at X3�	�fB@�.$��C@�.�t�E@�LVf,�F@�o��CH@�My��J@������������������������������������������������������������������������������������������������������������������� [...]
+ž?@�J��UG?@�o5-�>@?��)�>@*� �ZB>@8�I�i�=@5
́�=@z�r�v?=@=.1�U�<@����f�<@���eA<@C
]&�;@��#ӛ;@-�`�J;@���(�:@	<�í:@�(pTd:@�:��� :@���7��9@�ǁ�
�9 at 7ZY�~h9 at Y.��.9 at n+	���8@�I�e6�8@�� L�z8@�C7{:8@��$��7@"V���7@"^�ӆ7@;t��[7@�_�
+;7@|��Y�7@���w�6@&#�K��6@�Sm�)�6@S��l�6@��[�6@[r
���6@�$ @��6 at R�����6@
�d�w�6@�(�
[�6@�H6uB�6@�]�@m�6@\�`�ֵ6@��)��6@�u��B�6@�m�1A�6@K�o�6 at o�_Tw�6@EYR�6@RgTV�6@�x����6@=h;�q,7 at v�����7@
���q8 at T�"
��9 at +Qy�R�;@EF�{>�=@!t�sU�?@�y̞
�?@h��x#@@���^]z@@�m�&CA@)F�
,�B@zmx��C@(O��'E@?c��F�F@�'}�-�G@�5�m?gI@������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+�zH@|&n��7H@�U�&
�G@�Z���G@��-2�wG@�#��}6G@�f�6P�F@
���F@]��tF@
���x7F@���̼�E@�5��E@�����{E@na�};E at l��Hr�D at q��Q��D@�Kh��yD@��&� ;D@�r
+�e�C@�
��C at y����C at 0�
�,SC@��k�n#C at m����B@�1#u
�B@�\����B@`*˧qB@�(�~�DB at uC��LB@ �u���A@]\-k��A@=-)�h�A@��\�fA@���:A@�cj�vA at R�|}�@@��zv��@@�9lM��@@�P�_@@���
r3@@Gb
 @@���A�?@��_�=b?@F�4�
?@{
�-�>@��v��`>@'#���
>@=�~X.�=@g�T4�c=@��{��=@�(�<@
����l<@)�;6K
<@[��C�;@wn���;@��LC;@%%
��;@��Z��:@P ֥ݙ:@Y�h�_h:@�x���2:@
 �X��9@���Y�9@
�/��9@�q��R9@�ol�9@9�J�8@=�t���8@�]H�^8@�̉
�-8@{��q	8@�I%�7 at ac~A��7@�� <Ա7@�-�֟7 at v��T��7 at I��0��7@�
���7@'�MfS�7@���R܄7 at 3U)�9y7 at a�K���7@��-�&w7@�d��Ą7 at q�2��q7@#a"��]7 at P�
Ead7@
�נRp7@ó@�l7@��Ba7@��} s7@��WC�7@����a�7@�vT�8�7@�'�K�8 at 4<2M8�9 at n��G��;@ȇ���=@�Wۑ�_?@8Q�+1�@@���L� A@����6A at WO�>�EA@�G;�t�A@�}��	�B at ogY�$D@
0���>E@�9�ДF@~��m�G@/��U�I@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+l{D at I��&�9D at h��̅�C at n�IB�C at p��
�C@����FC@<
�H
C@��&`�B@"�LD�B@�
��zB@�o��NB@��[��"B@@���A at 0�i���A at -RyYޝA@�Wt��qA@�H�b$FA@�j�vA@���H��@@~d�V�@@OFҗ@@F�7�l@@$�S��A@@����@@&o��?@��A�?@��v�.?@��D���>@�-����>@�S���7>@a࣯��=@I�|��=@��� O=@V�8.=@�	�c�<@r�i��u<@�
!U&3<@�M��;@B	=�;@�j�;@
�pŸ_;@�4��54;@��Nw=;@r�Ɩ��:@_c�؛:@5n �)d:@�o�$*:@��3x�9@,(WѠ�9 at W�_o�{9@�U�B�B9@$��+9@!�+��8 at Va���8 at _}���8 at j6#ˍ�8 at o�n{o8@���y�_8@����U8@��C8@����@8@���X�<8@��98@�-s�_*8 at CT�v.8@��
R| 8@����*8 at a�ș�8@�%�I��7@�C��L8@�:k�8 [...]
8@��JV�28@ܳ��n8@X�8@���`��9 at I&#�9;@*{{j3=@1Dx�|?@l���f�@@�L��@A@�e����A at p�g�Y	B@�UULr3B@£Ͻ��B@&rR�t�C@
s���E@����7�E@���{�F@ӛ��H at nJ�<xdI@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+��4�oG at e7,y�0G@֤ߚ�F@��$+�F@�^�n�xF@k���8F at 8>T�r�E@� ��ߺE@��Ldb{E at LK��;E@���D@�[b�*�D@�S=ǚ}D at 7��sK=D@܂���C at I7�⌿C@��:�C@+:�|EC@���Y	
C@�h�V��B@;�H~L�B@�;�xDgB@(���?5B@�}��B@����W�A@���0�A@
em�~A@�(%�kTA@<���)A at 4/�[�@@b�5q��@@��8�@@A�
�?�@@�]	aY@@�}���0@@G[s��@@m�����?@	����v?@)W/��,?@
+���>@
+�l̙>@R9y;�S>@���
�
>@J��r��=@��dL}=@���T�8=@�*�
��<@Z���w�<@���dF�<@n7� U<@l� �
+(<@|��s��;@uh�V�;@��S�;@|8B��z;@���C;@�<0�G
+;@��
��:@u[dw�:@�-v��g:@���P�/:@�� O�9@i:
K�9 at -��U
�9@���Fx9@��x|�_9@$���G9@�6�)*-9 at p�;��
9@<r}V
9@
_�%��8@
�K��8@��Ŋ��8@
I0
2�8 at b�7<�8@�O����8@�~
*�8@��7���8 at M�+Ag�8@�%�Y�8@)
�/.�8@��⩿8@����8 at jOo�B�8@����i9@�yLR�:@	�*9VY;@[�
+=@�%�Z?@tώu֍@@M�	
e�A@��Te�YB@��B'�YB@�O�b�B@���0�B@�u'޻�C@�}�g�hD at t7�ԑ�E at D>H�/�F at T�MӍ�G@﫻V�H@�c�a��I@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
�W
@@F�D	�?@
��
��?@]%�g?@돜5%?@O�MIx�>@�:�(�>@#�C|�Y>@z�7No>@�͞�!�=@CE+�=@
���Z=@�6�u�)=@?��<#�<@	�H�<@�f-44�<@q��n�<@��=�X<@��_0%<@�4�b��;@�Yppj�;@
'|�;@[v�O;@P�P� ;@�O��X�:@�>�m�:@z�ac��:@BlY�Z:@g�`b
+8:@흸�
:@VOA�V:@|�i
+�9@:�r���9@�Kb���9@ퟰ�s�9 at O
���9@�,��6�9@�1���9@�~\��9@@��{9@���:~i9@��\�Hk9 at 8"	��T9@����~I9@һ�8d9@���KG�9@�.b�:@��*+��:@:��x{�;@�
�tL�=@��T�>@ i�N�@@�

+�A@��(-ֈB@�
�ZC@�� ?vC@
�`�NC at M� YgC at E�ayb�C at 43w#�/E@�l CF@��U�@G@�gH�qH@R�?W�I@򫛕�rK@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
�1H@�$�'�G@�e��G at u�&}UEG@�KҖm�F at 2UX�ƶF@
���sF at NX�(�0F at b�Ϻ�E@��ƈ��E@�9m\|E@*����@E at PH�}E@�%����D at Y&'o
+�D at V��F�OD@�}Z�D@��b�c�C@�i���C@s��n`C at r$	^&C at Mq�
�B@鞊۹B@!����B@�r��RB@����#B@�V&��A at jUa��A@>��e��A at 3�׿ uA@*��I�KA@͡�0�$A@�,Ȥi�@@���:�@@
��/�@@�>�(��@@
��#�e@@�Wp9�A@@e�'|�@@=J�m� @@ml��=�?@�Ng�K|?@����8?@�Y
+��>@7b%��>@�5�"�r>@4P�(:>@(�X1~>@b툳�=@s��A�=@00<=@H��r�Z=@֛��!9=@.!��<=@m�<CE�<@�����<@>`yX�j<@U�U.t:<@�\�&�<@볼��;@�LjyP�;@�:��g;@k��rl@;@�j���;@��S�:@aD���:@�{I��:@���F��:@M�1%8�:@ׁf��w:@�
���f:@����R:@����?:@�W�I3:@I`J4�!:@�JlJ�:@�i���
+:@'1�|�:@8"�e�:@��m':@L�&.��:@D���.Z;@y��<@ak"�;�>@�`%m@@��y�g�@@�#�A@-��~nB@�"��\'C@֦Hi��C@�����
D@*Qb6+fD at n���gZD at v^@�8�D@��m$�E@�UXj
G@"�g�j2H at 2eT��I at 8� �-fJ@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
��H at gN�N^tH at O?K��
+H@��u脭G@�D���[G@��X6G at n{�F@�
�n�}F at 0��?8F@}�6RZ�E@����E@�t?d}E at l��F at E@��{��E@^����D@'�-ѱ�D at s���VD at UuΦ
D at U ���C@�
��C at f
��rC@
+��<C@�)k��C at BܰU�B@�-I�B@�K�gVuB@����nGB@�%��B at K�a��A at C�X���A@����A@4V��uA at a&��rOA@[��*A@��W��A at _(s:��@@
]��P�@@�I���@@}�i�q@@b��ӸS@@�͚�2@@Wi�cZ@@�V~g��?@�C@&�?@ðq��O?@�̀��?@W�o�>@�=��U�>@.;۞9�>@P�C�X>@�4���3>@��fΔ>@�Tv��=@�����=@��B�=@'.���O=@F&ҿ=@��tv�<@]�L��<@�K���<@Yg1�P<@��D <@~.�g�;@�XØ-�;@�kA6ɦ;@��i��;@�g���_;@��|�*D;@��ʹM2;@�}S��!;@����	;@R�th�:@67|x��:@'|
��:@\�!Z��:@g�g�d�:@M�D��:@������:@ܜ�@3;@�0}��;@�t}�V=@W at Cl/�>@��$
+�Q@@j�@^�@A@
���B@*~���B@�p���aC@�|���C@�ھ��@D at n�����D@���0E@����E�E@}�f���E@��f3\F@��b��G at 08���H@˩K�2J@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+wN�8�A@��ڶA@�Ѵ )XA at 2;�q�1A@=��R
A@;�d��@@���?�@@�a�m�@@��I�0�@@[�s:�e@@* �A@@����@@�
���?@Q_t�?@��PS�?@a�&lg?@q���4?@q1�N?@~���8�>@���~�>@�j�N��>@g9�
m>@)8��2>@����=@�}є��=@�m�mS�=@�>h�	f=@ e��j1=@kqϧ�<@ddBuE�<@��}d�<@����z<@��:�Q<@N��`�(<@�����<@�s<���;@$H���;@��b�;@�i�;
+�;@��i)�;@偱0}�;@K��"2�;@u;�Y�;@��-�t�;@ ��	��;@5��ј<@�DN��=@����>@���uʄ@@
+���uA@�%+��JB at O#�;,�B at p�pC@�?QE�
+D@���oD at .X�\4�D@�N4�0%E@���
�E@!w��
+>F@
+VI��F at xM���}G@�e*�TH@&�b�cmI at 48<���J@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+�&�G at u^�#bG at ubM�G@>��C�F@�O�F�oF@�[ ; F@����V�E@�O�
��E@]NI8QE@��E@�2[-��D at DT���D at 8l��3dD at 0���#0D at YYrMiC at 2``h��C@�H$]6�C@�o��kC@����;C@�rM�HC@`�7��B@R�4��B@!�6�B@ްGi3iB at N�
DB@� �
*
B@@Qs��A@��=��A@���f�A@�pE��A@��[�bA@!9�V�@A at O-�lA at t�5˧A@�#?ߩ�@@\�k�׹@@ye&��@@$�
+��q@@p��οS@@ɩKg�:@@�J���#@@�d��|	@@ 0�
��?@��"�p�?@����?@���oj?@�⣖E@?@E�L��?@�H����>@4�� ��>@d�S�j>@
+|��9>@���>@'���]�=@��u�ǡ=@���Wt=@MقۥE=@�@y�=@��<+�<@v
+f��<@�
b�<@R7�w.�<@���
�<@H�h��i<@��s�Z<@�V�I�U<@����Z<@3zF�q<@���UN�<@P�ɠ�V=@�g�>@G\���@@F��}��@@�bF'�\A@a]��B@�v���B at N��Ƿ�C at hM���C at 8Gf�]CD at +LE�&�D at yP�
?E@�|Ul�E at c�Mv:FF@�� G at A�����G@�aR���H@�xTg�]I@@sO��J@��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
�<BD at X��@�D@�N�B�C@��	C@\
���C at C\�%�UC@���r�,C@�+�C at Y�|FE�B at U����B at k�X���B@�P�f�jB@?��!�EB@���g B@�ڋ
��A@�/���A at n�Yk
�A at k��v��A@��rA@���uOSA@
�s>A/A@<C�CcA@�B	��@@���|��@@�Ծ�U�@@D[Ϩ_�@@��t��u@@I�ܺ
[@@YDobaB@@ú���+@@lC��@@��@�y@@������?@gN�
�?@?���At?@�!���=?@��}�?@�[��Z�>@
XKp�>@-��Z]m>@|d��A>@:˯�E>@Ӄ�
w�=@��4���=@r���=@��iF�n=@�E�ZT=@?�1wiL=@�
;�6S=@
�v+�M=@��>�^h=@�t,�=@�r�o��=@���j��>@��[�m?@Ő$%�x@@��V��2A@�NT�d�A@���s�B@�Hc��C@<;X�)@C@��u�C at o3�dCD@��ԝ�D@�8tG�E at cܜʪ�E at c3��(VF@�<$�=G@"�F�J�G at 1ȷ��=I@=�Fod�I@�a�sK@�������������������������������������������������������� [...]
+G@K�&�F@
;��TF@
Ũ��
+F at j�!M��E@���	@eE at AW���
E at r
��D@�0�wR�D at j���XeD at 7�tNK1D@%ǁ3D@��]��C@?H^�äC@��ǜ�yC at Q(F-PC@���F�&C@, �;�B@ j,��B@��D�h�B@
��ۏB at s%
�jB@�2�0EB at F:|UX!B@Ɖ,c��A@�O����A@�:ޭ�A@	�RI��A at +��9szA@[����TA@�[��
2A@̚6�.A at h��WA�@@!q��Y�@@�%���@@��E[�@@?>m� �@@y"¡ҁ@@J�Ք�o@@��
�]@@�br0I@@� !��1@@���?@@H]P���?@�Z�(�?@ �g��?@�۶]c?@�ސ�-?@, �P�?@G6Z�Z�>@p�>p��>@ H
�a�>@1q�e�o>@/v
�[>@RʈF
W>@Z	TQ�n>@L����>@_
�K��>@��2�?@����&@@*����@@_˚G:A@�x��A at T98�6>B at Z�� n�B@��I2��C@���|�XD@�(c�#YD@���XRRD at n%�B�D@�TOE@���Q�E@�:	\�*F at ay�\�F@
u,N�G@��l7
+�H at h�3�C�I@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+�q([C@Y�2�1C@�R��
C@���� �B at _���o�B@�����B@����tB at vlIo�SB@=z�3B@�M��B@��xz$�A at w\��7�A@#	U���A@
U�{4�A at q�Q>
pA@�ձ*�WA@�=
;�@A@;�Z)-A at 0
�t�A@T�9A@�<Tφ�@@S ��8�@@}���@@2#�v�@@s�됟�@@ES�+��@@F����@@
JV���@@���z�u@@5i��/[@@��'��>@@�tq)@@Z�@@���Ȉ@@�F�
��?@4q��h�?@O{

�@@�s�#$@@�f���6@@󚅑�Z@@�>I��@@	C���'A at A�'ԠA@�z*a=B@�w��B@܆G�z�B@��MF=pC at .�*M�
D@��D@���E@*�*bB�E@�EGC��E@?aq�.'F@���|#�F@��.1
6G@�2��&�G@�W�H at 2� �I@��Lv�zK@������������������������������������� [...]
+üC at X<���C at K^��DdC@�H#N�7C@�{f'
C@ͤ_#�B@[0%�&�B at i�Ӆ�B at tgZML�B@���gdB at W�r5CB@����#B@*":�
+B@��l2��A at i�`Z�A@�c��A@����"�A@���=v�A@����̱A@�&�L�A@&1\�A@j��ݼA at C#-�=�A@�����A at HS��q�A@pų��A@�
̼p�A at 8�)��A@�l�.�A@��r}�A@��Bl	�A@�e�V	vA at L�{�tJA@&�{p�CA@�v���.A@ ��7NA at +vI
r�A@�3�ߚ�A@�Nb��A@�^w��A@
+k�B@�:hF�
C@��,�C@�͙4VhD@Ӧ�-�D at A�<"��D@Ǔ�^՗E@[�U"�eF at 2���
OG@�CS+גG@
�?�0�G at 8�4Η7H@�\d���H@̿�9�I@
@
�/VJ@�1)�3K@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+J��E@�3��E@;
��0EE@�8�y�D@�~�L�D at 6MVpxD at 3g�9D@�����C@�r����C at gnP���C at 1�UfF�C@��
8&jC@�
+�I;FC@ߢe�(C at u���
C at 2�	��B@�p֢G�B@�ɲ���B at U���C@�㼑!C@�aM�C@��7�[�B@�|*p��B@
r~��B at CB	L�C at P2��'/C@$���&C@���
7C at kh��PC at n�ED+�C@�!�&�C@��}��C at yT���C@��� �C@䉷C��C@�CZ���C@!|z��kC at i�r3C at f����B at TY��
C@(#��gC@�3�!1`C@�^c3�yC@�=` ��C@��ɠE{D@
>
TE at s���1�E@/
�� \F at bj�ͤF@���G at F
���G@��F��H@�
t��yI@�C�<�I at B���әI at 9�d�SwJ@�\$1�K@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
ߔr�D at O�����D@
�D�=�D@N'�D at 2��c{D at x�d5�sD@*��V�D@
W.��D at Y/z�ÃD@~��1��D@
+I8��D@��	���D@�D�0�D@>'�I�D at q���ݬD@���eW�D@֊
��5E@�
�&'JE@�{n�+E@� X�	�E@�0���4F at h�4��E@�D�2�E@�
+AϹE at d�r�E@��_�WF@�C��D�E@
� ��
+F@����E@�b��ziE@�f��fE at yR
��rE@�3B�kE@��F`��E@��3�F@とu�eF@�Fm�G@�x�U�G@�‘��NH@���|��H@�m�?I@?
�ڃ.J at k��SK@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� [...]
+y�kH@�y>��H@����I@�O��X{H@
ϩ�׊H@��7��H at m��9�H@��eZ�jI@k��tI@'�D�`I@���?J@�#C���J@�`p9fJ@�扚�J at V
+���J@��8J5J at w���J@��wH�9J@��dvdJ@���_�I at C>t��I@��
u��I@�-4⏢I@:W3��I at x���5J@ˣԺljJ at 2kXy��J@ۏ�kZ�J@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
\ No newline at end of file
diff --git a/data/.ExternalData/MD5/7dd22432002df480c761923405e82097 b/data/.ExternalData/MD5/7dd22432002df480c761923405e82097
new file mode 100644
index 0000000..80fc256
Binary files /dev/null and b/data/.ExternalData/MD5/7dd22432002df480c761923405e82097 differ
diff --git a/data/.ExternalData/MD5/81865a31269864cb5aad15b42de57549 b/data/.ExternalData/MD5/81865a31269864cb5aad15b42de57549
new file mode 100644
index 0000000..42ca324
Binary files /dev/null and b/data/.ExternalData/MD5/81865a31269864cb5aad15b42de57549 differ
diff --git a/data/.ExternalData/MD5/838e98cdf86af069ff66c078ac3e0dd9 b/data/.ExternalData/MD5/838e98cdf86af069ff66c078ac3e0dd9
new file mode 100644
index 0000000..353e024
Binary files /dev/null and b/data/.ExternalData/MD5/838e98cdf86af069ff66c078ac3e0dd9 differ
diff --git a/data/.ExternalData/MD5/8484d918ce9f99837e96d7efeba7e848 b/data/.ExternalData/MD5/8484d918ce9f99837e96d7efeba7e848
new file mode 100644
index 0000000..1d67325
Binary files /dev/null and b/data/.ExternalData/MD5/8484d918ce9f99837e96d7efeba7e848 differ
diff --git a/data/.ExternalData/MD5/8521ac77f502bfe853eafc59570140b3 b/data/.ExternalData/MD5/8521ac77f502bfe853eafc59570140b3
new file mode 100644
index 0000000..1c54364
Binary files /dev/null and b/data/.ExternalData/MD5/8521ac77f502bfe853eafc59570140b3 differ
diff --git a/data/.ExternalData/MD5/85f1400b374d38312d03dc8acb874b7c b/data/.ExternalData/MD5/85f1400b374d38312d03dc8acb874b7c
new file mode 100644
index 0000000..ac3af31
Binary files /dev/null and b/data/.ExternalData/MD5/85f1400b374d38312d03dc8acb874b7c differ
diff --git a/data/.ExternalData/MD5/862d9806e7d6fced2ac0c06d52925b72 b/data/.ExternalData/MD5/862d9806e7d6fced2ac0c06d52925b72
new file mode 100644
index 0000000..1348325
Binary files /dev/null and b/data/.ExternalData/MD5/862d9806e7d6fced2ac0c06d52925b72 differ
diff --git a/data/.ExternalData/MD5/887994459da44cf9fb4f3f0db2987d29 b/data/.ExternalData/MD5/887994459da44cf9fb4f3f0db2987d29
new file mode 100644
index 0000000..20435d1
Binary files /dev/null and b/data/.ExternalData/MD5/887994459da44cf9fb4f3f0db2987d29 differ
diff --git a/data/.ExternalData/MD5/8997bfcb80a429e089709b291e5b4ba2 b/data/.ExternalData/MD5/8997bfcb80a429e089709b291e5b4ba2
new file mode 100644
index 0000000..d2212e1
--- /dev/null
+++ b/data/.ExternalData/MD5/8997bfcb80a429e089709b291e5b4ba2
@@ -0,0 +1,13 @@
+NRRD0004
+# Complete NRRD file format specification at:
+# http://teem.sourceforge.net/nrrd/format.html
+type: unsigned char
+dimension: 3
+space dimension: 2
+sizes: 3 297 371
+space directions: none (1,0) (0,1)
+kinds: vector domain domain
+encoding: raw
+space origin: (0,0)
+
+6U
8U5S0M,J0P5Q2P3P1N1N
4P1N,K,K.N1O0O.O0P.N.P0P1Q0Q.Q0T/R2T2S3T2S3U6V5U6W7X4U6W5U1T3U7V5U5V6V!<]%Ea8W2U2T4U4T3S2T0R1S6W6X6V3P4T4T5T5T0P/N/O.O/P0P/N/P5S4S5T5S1P0Q2P2Q1P3R3P0O/N1O1N0N3P
7R
;X%Kc#FY>S
7M0G.G.F-F/F+D,E.F,E(B&A)D*D)C+G.I,G-H-H-G/H
:T5N.I0J+G,G,F,H+G.I/H.H.K/K4O6N/I.H3M4M2L2J3L3J0G.H6M
8O
3L4L0H.H4M2M/L
6Q
6Q
:R7Q/J+H.I.I,G+F+F,H [...]

4$T;-cD6mL;dA/R-#T,'d at 8�kZ��h��l��c��d��n��f��fΫ�д���p��b��_��h�}N�mE�qJ�xM�|O�}M�xG�sE�oC�j@�nE�nC�oC�pF�uK�sG�sG�yM�S��mŲ̿����̿��ć�Ȍ�ː�ˑ�͑�nj�É�Š���Ǽ�����v��v��~���õ�Ƶ¬s��^��R�~P�~O�e:�K0�cE�uP�yN�wM�yS�{V�xR�sP�uQ�cF�nQ�uP��X��^��Z��X��Z��d��oð{Ƕ�ɼ�ǹ�´��������p��\�|U�rJ�sM�tM�pJ�qN��[��m��w˺��ÆɯgͲn�В�۞�ڞ�ؚ�؛�ڟ�ԗ�̏�Ɖ�†������ʹ�ƶ���}��u��g��V�sE�tH�pF�qI�j=�pB�yH�|I��K��O��T��R��N��L��L�|F�yF�L��P�zJ�yI�yJ�uH�vM�{U�qJ�tL��k��r��m�x`�UB�gS�}h�u[�oW��e��d��k��g��l�pVb at 1^=0gF4b at 2W9- [...]
\ No newline at end of file
diff --git a/data/.ExternalData/MD5/8d6e12a750d16132a397bdcd1d0dee01 b/data/.ExternalData/MD5/8d6e12a750d16132a397bdcd1d0dee01
new file mode 100644
index 0000000..7a16547
Binary files /dev/null and b/data/.ExternalData/MD5/8d6e12a750d16132a397bdcd1d0dee01 differ
diff --git a/data/.ExternalData/MD5/93de39d24dd71864c1afee13f9418d40 b/data/.ExternalData/MD5/93de39d24dd71864c1afee13f9418d40
new file mode 100644
index 0000000..7384025
Binary files /dev/null and b/data/.ExternalData/MD5/93de39d24dd71864c1afee13f9418d40 differ
diff --git a/data/.ExternalData/MD5/9413fa5d446c05593a53f810e3ddc241 b/data/.ExternalData/MD5/9413fa5d446c05593a53f810e3ddc241
new file mode 100644
index 0000000..98ce7ad
Binary files /dev/null and b/data/.ExternalData/MD5/9413fa5d446c05593a53f810e3ddc241 differ
diff --git a/data/.ExternalData/MD5/94241ced01d7cff864c6371b9f68bf72 b/data/.ExternalData/MD5/94241ced01d7cff864c6371b9f68bf72
new file mode 100644
index 0000000..831809a
Binary files /dev/null and b/data/.ExternalData/MD5/94241ced01d7cff864c6371b9f68bf72 differ
diff --git a/data/.ExternalData/MD5/95c844603b837c1f84805e4b5acf5241 b/data/.ExternalData/MD5/95c844603b837c1f84805e4b5acf5241
new file mode 100644
index 0000000..da725c0
Binary files /dev/null and b/data/.ExternalData/MD5/95c844603b837c1f84805e4b5acf5241 differ
diff --git a/data/.ExternalData/MD5/96718455b11636c22aeb2c208dd2006d b/data/.ExternalData/MD5/96718455b11636c22aeb2c208dd2006d
new file mode 100644
index 0000000..01421df
Binary files /dev/null and b/data/.ExternalData/MD5/96718455b11636c22aeb2c208dd2006d differ
diff --git a/data/.ExternalData/MD5/970cd3c90e677e4422923cef5cdf61b3 b/data/.ExternalData/MD5/970cd3c90e677e4422923cef5cdf61b3
new file mode 100644
index 0000000..2fd0f20
Binary files /dev/null and b/data/.ExternalData/MD5/970cd3c90e677e4422923cef5cdf61b3 differ
diff --git a/data/.ExternalData/MD5/977d220e392168a93607c4d0e88347a5 b/data/.ExternalData/MD5/977d220e392168a93607c4d0e88347a5
new file mode 100644
index 0000000..926159e
Binary files /dev/null and b/data/.ExternalData/MD5/977d220e392168a93607c4d0e88347a5 differ
diff --git a/data/.ExternalData/MD5/97e5a051efb6d8691f867958da58baa4 b/data/.ExternalData/MD5/97e5a051efb6d8691f867958da58baa4
new file mode 100644
index 0000000..4f6e78b
Binary files /dev/null and b/data/.ExternalData/MD5/97e5a051efb6d8691f867958da58baa4 differ
diff --git a/data/.ExternalData/MD5/9967b9c9bae3af9c3aac9676663ee05d b/data/.ExternalData/MD5/9967b9c9bae3af9c3aac9676663ee05d
new file mode 100644
index 0000000..e010675
Binary files /dev/null and b/data/.ExternalData/MD5/9967b9c9bae3af9c3aac9676663ee05d differ
diff --git a/data/.ExternalData/MD5/9a10eeacd4f926ea94bbe00c45448136 b/data/.ExternalData/MD5/9a10eeacd4f926ea94bbe00c45448136
new file mode 100644
index 0000000..713cf7e
Binary files /dev/null and b/data/.ExternalData/MD5/9a10eeacd4f926ea94bbe00c45448136 differ
diff --git a/data/.ExternalData/MD5/9b4b931636f25786ee9e13436f26a5b7 b/data/.ExternalData/MD5/9b4b931636f25786ee9e13436f26a5b7
new file mode 100644
index 0000000..84e1cc7
Binary files /dev/null and b/data/.ExternalData/MD5/9b4b931636f25786ee9e13436f26a5b7 differ
diff --git a/data/.ExternalData/MD5/9d7295e53861e4fa19b5abf9cda5df5e b/data/.ExternalData/MD5/9d7295e53861e4fa19b5abf9cda5df5e
new file mode 100644
index 0000000..d5ef49f
Binary files /dev/null and b/data/.ExternalData/MD5/9d7295e53861e4fa19b5abf9cda5df5e differ
diff --git a/data/.ExternalData/MD5/9dd64abe00b86a82b88bf46a9d3f3e9c b/data/.ExternalData/MD5/9dd64abe00b86a82b88bf46a9d3f3e9c
new file mode 100644
index 0000000..05ca4df
Binary files /dev/null and b/data/.ExternalData/MD5/9dd64abe00b86a82b88bf46a9d3f3e9c differ
diff --git a/data/.ExternalData/MD5/a0afe9d9aaf61b334a8635bd08ec65ba b/data/.ExternalData/MD5/a0afe9d9aaf61b334a8635bd08ec65ba
new file mode 100644
index 0000000..7e76aad
Binary files /dev/null and b/data/.ExternalData/MD5/a0afe9d9aaf61b334a8635bd08ec65ba differ
diff --git a/data/.ExternalData/MD5/a0cf117c18fcfed8431636dfb3a8c7aa b/data/.ExternalData/MD5/a0cf117c18fcfed8431636dfb3a8c7aa
new file mode 100644
index 0000000..241ed47
Binary files /dev/null and b/data/.ExternalData/MD5/a0cf117c18fcfed8431636dfb3a8c7aa differ
diff --git a/data/.ExternalData/MD5/a4a7aac9f929f9e19f8b78c7f0cc82d7 b/data/.ExternalData/MD5/a4a7aac9f929f9e19f8b78c7f0cc82d7
new file mode 100644
index 0000000..a30a5f5
Binary files /dev/null and b/data/.ExternalData/MD5/a4a7aac9f929f9e19f8b78c7f0cc82d7 differ
diff --git a/data/.ExternalData/MD5/a53598c8213ff83630739e1ab1621b2f b/data/.ExternalData/MD5/a53598c8213ff83630739e1ab1621b2f
new file mode 100644
index 0000000..5bb38a8
--- /dev/null
+++ b/data/.ExternalData/MD5/a53598c8213ff83630739e1ab1621b2f
@@ -0,0 +1,5 @@
+#Insight Transform File V1.0
+#Transform 0
+Transform: TranslationTransform_double_2_2
+Parameters: -13 -17
+FixedParameters: 
diff --git a/data/.ExternalData/MD5/a53e9c3e966e96cdb71ca93ffac8f621 b/data/.ExternalData/MD5/a53e9c3e966e96cdb71ca93ffac8f621
new file mode 100644
index 0000000..99e8f76
Binary files /dev/null and b/data/.ExternalData/MD5/a53e9c3e966e96cdb71ca93ffac8f621 differ
diff --git a/data/.ExternalData/MD5/a55260196088347b84534faeed9d8233 b/data/.ExternalData/MD5/a55260196088347b84534faeed9d8233
new file mode 100644
index 0000000..12e0fa4
--- /dev/null
+++ b/data/.ExternalData/MD5/a55260196088347b84534faeed9d8233
@@ -0,0 +1,5 @@
+#Insight Transform File V1.0
+#Transform 0
+Transform: AffineTransform_double_3_3
+Parameters: 1 0 0 0 1 0 0 0 1 0 0 0
+FixedParameters: 0 0 0
diff --git a/data/.ExternalData/MD5/a5f3879544aa56e12bfa2d3f7fdf155b b/data/.ExternalData/MD5/a5f3879544aa56e12bfa2d3f7fdf155b
new file mode 100644
index 0000000..0d5a348
Binary files /dev/null and b/data/.ExternalData/MD5/a5f3879544aa56e12bfa2d3f7fdf155b differ
diff --git a/data/.ExternalData/MD5/a64bdaa642e3d5bd40ef15a27c73d4f4 b/data/.ExternalData/MD5/a64bdaa642e3d5bd40ef15a27c73d4f4
new file mode 100644
index 0000000..f6026a9
Binary files /dev/null and b/data/.ExternalData/MD5/a64bdaa642e3d5bd40ef15a27c73d4f4 differ
diff --git a/data/.ExternalData/MD5/a6659d27180f14085a5f4db3563c0557 b/data/.ExternalData/MD5/a6659d27180f14085a5f4db3563c0557
new file mode 100644
index 0000000..6d133b8
Binary files /dev/null and b/data/.ExternalData/MD5/a6659d27180f14085a5f4db3563c0557 differ
diff --git a/data/.ExternalData/MD5/a69e5de3e1082e4ab8a02adf3b4e41f9 b/data/.ExternalData/MD5/a69e5de3e1082e4ab8a02adf3b4e41f9
new file mode 100644
index 0000000..ca65a7f
Binary files /dev/null and b/data/.ExternalData/MD5/a69e5de3e1082e4ab8a02adf3b4e41f9 differ
diff --git a/data/.ExternalData/MD5/a7dc892acf626377065878b38b99ca54 b/data/.ExternalData/MD5/a7dc892acf626377065878b38b99ca54
new file mode 100644
index 0000000..f8f73e2
Binary files /dev/null and b/data/.ExternalData/MD5/a7dc892acf626377065878b38b99ca54 differ
diff --git a/data/.ExternalData/MD5/a838f534dd1645e01e85cd813994c456 b/data/.ExternalData/MD5/a838f534dd1645e01e85cd813994c456
new file mode 100644
index 0000000..2dd5791
Binary files /dev/null and b/data/.ExternalData/MD5/a838f534dd1645e01e85cd813994c456 differ
diff --git a/data/.ExternalData/MD5/a96ab975b6dcca318a554ae586e77bcc b/data/.ExternalData/MD5/a96ab975b6dcca318a554ae586e77bcc
new file mode 100644
index 0000000..b040350
Binary files /dev/null and b/data/.ExternalData/MD5/a96ab975b6dcca318a554ae586e77bcc differ
diff --git a/data/.ExternalData/MD5/ac3b7df50e79bdbb67ff8b89263f03f3 b/data/.ExternalData/MD5/ac3b7df50e79bdbb67ff8b89263f03f3
new file mode 100644
index 0000000..f32a453
Binary files /dev/null and b/data/.ExternalData/MD5/ac3b7df50e79bdbb67ff8b89263f03f3 differ
diff --git a/data/.ExternalData/MD5/ac608d7f74d0574a7a43f53104cef7c5 b/data/.ExternalData/MD5/ac608d7f74d0574a7a43f53104cef7c5
new file mode 100644
index 0000000..90437bf
Binary files /dev/null and b/data/.ExternalData/MD5/ac608d7f74d0574a7a43f53104cef7c5 differ
diff --git a/data/.ExternalData/MD5/acad12ef7a397be141336e872a74aa72 b/data/.ExternalData/MD5/acad12ef7a397be141336e872a74aa72
new file mode 100644
index 0000000..7443165
Binary files /dev/null and b/data/.ExternalData/MD5/acad12ef7a397be141336e872a74aa72 differ
diff --git a/data/.ExternalData/MD5/ade10e95c97fdc72399e210bc77e1a27 b/data/.ExternalData/MD5/ade10e95c97fdc72399e210bc77e1a27
new file mode 100644
index 0000000..f992bfe
Binary files /dev/null and b/data/.ExternalData/MD5/ade10e95c97fdc72399e210bc77e1a27 differ
diff --git a/data/.ExternalData/MD5/aef2e096cc43fb1e19147936b01722fa b/data/.ExternalData/MD5/aef2e096cc43fb1e19147936b01722fa
new file mode 100644
index 0000000..d58f7e2
Binary files /dev/null and b/data/.ExternalData/MD5/aef2e096cc43fb1e19147936b01722fa differ
diff --git a/data/.ExternalData/MD5/aefe3f464f648d6c51d8b46fe8e67cad b/data/.ExternalData/MD5/aefe3f464f648d6c51d8b46fe8e67cad
new file mode 100644
index 0000000..817842e
Binary files /dev/null and b/data/.ExternalData/MD5/aefe3f464f648d6c51d8b46fe8e67cad differ
diff --git a/data/.ExternalData/MD5/b040816b6e4da7984bf0187944789163 b/data/.ExternalData/MD5/b040816b6e4da7984bf0187944789163
new file mode 100644
index 0000000..bca5aa4
Binary files /dev/null and b/data/.ExternalData/MD5/b040816b6e4da7984bf0187944789163 differ
diff --git a/data/.ExternalData/MD5/b1d283e9edf5ff174f6e61a5cec6a1d8 b/data/.ExternalData/MD5/b1d283e9edf5ff174f6e61a5cec6a1d8
new file mode 100644
index 0000000..03c3809
Binary files /dev/null and b/data/.ExternalData/MD5/b1d283e9edf5ff174f6e61a5cec6a1d8 differ
diff --git a/data/.ExternalData/MD5/b23198c9e44a48edfd5b83f075eb455c b/data/.ExternalData/MD5/b23198c9e44a48edfd5b83f075eb455c
new file mode 100644
index 0000000..d112796
Binary files /dev/null and b/data/.ExternalData/MD5/b23198c9e44a48edfd5b83f075eb455c differ
diff --git a/data/.ExternalData/MD5/b5019ba71afd28fb7424ed39e850ef23 b/data/.ExternalData/MD5/b5019ba71afd28fb7424ed39e850ef23
new file mode 100644
index 0000000..54154ec
Binary files /dev/null and b/data/.ExternalData/MD5/b5019ba71afd28fb7424ed39e850ef23 differ
diff --git a/data/.ExternalData/MD5/b513a975094f16472f5c9b6713a72c60 b/data/.ExternalData/MD5/b513a975094f16472f5c9b6713a72c60
new file mode 100644
index 0000000..1e7861d
Binary files /dev/null and b/data/.ExternalData/MD5/b513a975094f16472f5c9b6713a72c60 differ
diff --git a/data/.ExternalData/MD5/b5c69b60a6feccda5b65773ae3ddee58 b/data/.ExternalData/MD5/b5c69b60a6feccda5b65773ae3ddee58
new file mode 100644
index 0000000..fec5a9b
Binary files /dev/null and b/data/.ExternalData/MD5/b5c69b60a6feccda5b65773ae3ddee58 differ
diff --git a/data/.ExternalData/MD5/b6ad0c0c35458afeb93dd0b1d46679dc b/data/.ExternalData/MD5/b6ad0c0c35458afeb93dd0b1d46679dc
new file mode 100644
index 0000000..df41094
--- /dev/null
+++ b/data/.ExternalData/MD5/b6ad0c0c35458afeb93dd0b1d46679dc
@@ -0,0 +1,5 @@
+#Insight Transform File V1.0
+#Transform 0
+Transform: ScaleTransform_double_3_3
+Parameters: 1 1 1
+FixedParameters: 0 0 0
diff --git a/data/.ExternalData/MD5/b7634fc4ab8598e937f2245d15f4155c b/data/.ExternalData/MD5/b7634fc4ab8598e937f2245d15f4155c
new file mode 100644
index 0000000..3799918
Binary files /dev/null and b/data/.ExternalData/MD5/b7634fc4ab8598e937f2245d15f4155c differ
diff --git a/data/.ExternalData/MD5/b76b61c345883fc9870a1ec9839bdf08 b/data/.ExternalData/MD5/b76b61c345883fc9870a1ec9839bdf08
new file mode 100644
index 0000000..b9e89ef
Binary files /dev/null and b/data/.ExternalData/MD5/b76b61c345883fc9870a1ec9839bdf08 differ
diff --git a/data/.ExternalData/MD5/b7bd29a3ad27c03d22bb1877e51b5922 b/data/.ExternalData/MD5/b7bd29a3ad27c03d22bb1877e51b5922
new file mode 100644
index 0000000..654cc22
Binary files /dev/null and b/data/.ExternalData/MD5/b7bd29a3ad27c03d22bb1877e51b5922 differ
diff --git a/data/.ExternalData/MD5/b8467e10c1f01ca47ab25324f95a1a00 b/data/.ExternalData/MD5/b8467e10c1f01ca47ab25324f95a1a00
new file mode 100644
index 0000000..3d05749
Binary files /dev/null and b/data/.ExternalData/MD5/b8467e10c1f01ca47ab25324f95a1a00 differ
diff --git a/data/.ExternalData/MD5/baff8620519e23330f77c65b0fe5bc01 b/data/.ExternalData/MD5/baff8620519e23330f77c65b0fe5bc01
new file mode 100644
index 0000000..39b6e74
Binary files /dev/null and b/data/.ExternalData/MD5/baff8620519e23330f77c65b0fe5bc01 differ
diff --git a/data/.ExternalData/MD5/bbe245e3cbf925edcf5d023203bd6b82 b/data/.ExternalData/MD5/bbe245e3cbf925edcf5d023203bd6b82
new file mode 100644
index 0000000..87a4c81
Binary files /dev/null and b/data/.ExternalData/MD5/bbe245e3cbf925edcf5d023203bd6b82 differ
diff --git a/data/.ExternalData/MD5/bcae996a3cce0bf203c7a737297991df b/data/.ExternalData/MD5/bcae996a3cce0bf203c7a737297991df
new file mode 100644
index 0000000..d459882
Binary files /dev/null and b/data/.ExternalData/MD5/bcae996a3cce0bf203c7a737297991df differ
diff --git a/data/.ExternalData/MD5/bdd72f979216f08500f7356cc3c6b4a2 b/data/.ExternalData/MD5/bdd72f979216f08500f7356cc3c6b4a2
new file mode 100644
index 0000000..9dae97f
Binary files /dev/null and b/data/.ExternalData/MD5/bdd72f979216f08500f7356cc3c6b4a2 differ
diff --git a/data/.ExternalData/MD5/bfa527fe87f6938731546a2323955ba2 b/data/.ExternalData/MD5/bfa527fe87f6938731546a2323955ba2
new file mode 100644
index 0000000..7503725
Binary files /dev/null and b/data/.ExternalData/MD5/bfa527fe87f6938731546a2323955ba2 differ
diff --git a/data/.ExternalData/MD5/c049894935864bd2fef8e5d254d3b242 b/data/.ExternalData/MD5/c049894935864bd2fef8e5d254d3b242
new file mode 100644
index 0000000..23c8bcd
Binary files /dev/null and b/data/.ExternalData/MD5/c049894935864bd2fef8e5d254d3b242 differ
diff --git a/data/.ExternalData/MD5/c152ebd08f40d65ddb9214fe2acc721e b/data/.ExternalData/MD5/c152ebd08f40d65ddb9214fe2acc721e
new file mode 100644
index 0000000..04a4e4a
Binary files /dev/null and b/data/.ExternalData/MD5/c152ebd08f40d65ddb9214fe2acc721e differ
diff --git a/data/.ExternalData/MD5/c17e5e3e68062a94a9785e2fe603bd39 b/data/.ExternalData/MD5/c17e5e3e68062a94a9785e2fe603bd39
new file mode 100644
index 0000000..45e4345
Binary files /dev/null and b/data/.ExternalData/MD5/c17e5e3e68062a94a9785e2fe603bd39 differ
diff --git a/data/.ExternalData/MD5/c1fedbb3a9c8093fcb0d0c4e74da3239 b/data/.ExternalData/MD5/c1fedbb3a9c8093fcb0d0c4e74da3239
new file mode 100644
index 0000000..64cd292
Binary files /dev/null and b/data/.ExternalData/MD5/c1fedbb3a9c8093fcb0d0c4e74da3239 differ
diff --git a/data/.ExternalData/MD5/c24561fcdefaa7af0e650f55994fb96d b/data/.ExternalData/MD5/c24561fcdefaa7af0e650f55994fb96d
new file mode 100644
index 0000000..bb25a73
Binary files /dev/null and b/data/.ExternalData/MD5/c24561fcdefaa7af0e650f55994fb96d differ
diff --git a/data/.ExternalData/MD5/c2e73eb99072452592ad9ab566d6c5d5 b/data/.ExternalData/MD5/c2e73eb99072452592ad9ab566d6c5d5
new file mode 100644
index 0000000..bb8e7f5
Binary files /dev/null and b/data/.ExternalData/MD5/c2e73eb99072452592ad9ab566d6c5d5 differ
diff --git a/data/.ExternalData/MD5/c480d7f2e7659c12e42895af1593084d b/data/.ExternalData/MD5/c480d7f2e7659c12e42895af1593084d
new file mode 100644
index 0000000..b688121
Binary files /dev/null and b/data/.ExternalData/MD5/c480d7f2e7659c12e42895af1593084d differ
diff --git a/data/.ExternalData/MD5/c4abe94c3c280f5074fcfd9bcc402330 b/data/.ExternalData/MD5/c4abe94c3c280f5074fcfd9bcc402330
new file mode 100644
index 0000000..0f65080
Binary files /dev/null and b/data/.ExternalData/MD5/c4abe94c3c280f5074fcfd9bcc402330 differ
diff --git a/data/.ExternalData/MD5/c4d636321830bfbf1a623d315a45cb2d b/data/.ExternalData/MD5/c4d636321830bfbf1a623d315a45cb2d
new file mode 100644
index 0000000..22b3dae
Binary files /dev/null and b/data/.ExternalData/MD5/c4d636321830bfbf1a623d315a45cb2d differ
diff --git a/data/.ExternalData/MD5/c5a88626e8461cf03934ea67f2532b87 b/data/.ExternalData/MD5/c5a88626e8461cf03934ea67f2532b87
new file mode 100644
index 0000000..4366100
Binary files /dev/null and b/data/.ExternalData/MD5/c5a88626e8461cf03934ea67f2532b87 differ
diff --git a/data/.ExternalData/MD5/c6032ffd5d006e092204d195d5bd7f66 b/data/.ExternalData/MD5/c6032ffd5d006e092204d195d5bd7f66
new file mode 100644
index 0000000..a6cf909
Binary files /dev/null and b/data/.ExternalData/MD5/c6032ffd5d006e092204d195d5bd7f66 differ
diff --git a/data/.ExternalData/MD5/c62ce79035715645be603a8bd7e19eb5 b/data/.ExternalData/MD5/c62ce79035715645be603a8bd7e19eb5
new file mode 100644
index 0000000..d689561
Binary files /dev/null and b/data/.ExternalData/MD5/c62ce79035715645be603a8bd7e19eb5 differ
diff --git a/data/.ExternalData/MD5/c72fda16dbac9167962b871a539def78 b/data/.ExternalData/MD5/c72fda16dbac9167962b871a539def78
new file mode 100644
index 0000000..4c52802
Binary files /dev/null and b/data/.ExternalData/MD5/c72fda16dbac9167962b871a539def78 differ
diff --git a/data/.ExternalData/MD5/c7c25f7ac51ca4634858303986832dea b/data/.ExternalData/MD5/c7c25f7ac51ca4634858303986832dea
new file mode 100644
index 0000000..b7e17a5
Binary files /dev/null and b/data/.ExternalData/MD5/c7c25f7ac51ca4634858303986832dea differ
diff --git a/data/.ExternalData/MD5/c9516efe9e3167ae67ee3d015c9a3d0e b/data/.ExternalData/MD5/c9516efe9e3167ae67ee3d015c9a3d0e
new file mode 100644
index 0000000..102063f
Binary files /dev/null and b/data/.ExternalData/MD5/c9516efe9e3167ae67ee3d015c9a3d0e differ
diff --git a/data/.ExternalData/MD5/caee43bdb17214e9ad9e3b64c16dfb70 b/data/.ExternalData/MD5/caee43bdb17214e9ad9e3b64c16dfb70
new file mode 100644
index 0000000..78fc6ad
Binary files /dev/null and b/data/.ExternalData/MD5/caee43bdb17214e9ad9e3b64c16dfb70 differ
diff --git a/data/.ExternalData/MD5/cb1101685e7d817ee6be4eeb948a76dd b/data/.ExternalData/MD5/cb1101685e7d817ee6be4eeb948a76dd
new file mode 100644
index 0000000..45baab9
Binary files /dev/null and b/data/.ExternalData/MD5/cb1101685e7d817ee6be4eeb948a76dd differ
diff --git a/data/.ExternalData/MD5/ccc05a53f8c4a7f74b75a07b2cfba7b1 b/data/.ExternalData/MD5/ccc05a53f8c4a7f74b75a07b2cfba7b1
new file mode 100644
index 0000000..286af6c
Binary files /dev/null and b/data/.ExternalData/MD5/ccc05a53f8c4a7f74b75a07b2cfba7b1 differ
diff --git a/data/.ExternalData/MD5/cf18602654ef1943c877bd9ccf3de40b b/data/.ExternalData/MD5/cf18602654ef1943c877bd9ccf3de40b
new file mode 100644
index 0000000..ae54ca1
Binary files /dev/null and b/data/.ExternalData/MD5/cf18602654ef1943c877bd9ccf3de40b differ
diff --git a/data/.ExternalData/MD5/cfdad459f24d9d60ec490206fc8478f6 b/data/.ExternalData/MD5/cfdad459f24d9d60ec490206fc8478f6
new file mode 100644
index 0000000..5bb2b61
Binary files /dev/null and b/data/.ExternalData/MD5/cfdad459f24d9d60ec490206fc8478f6 differ
diff --git a/data/.ExternalData/MD5/d34537916d8ca912bf7632d2353b595f b/data/.ExternalData/MD5/d34537916d8ca912bf7632d2353b595f
new file mode 100644
index 0000000..3c76846
Binary files /dev/null and b/data/.ExternalData/MD5/d34537916d8ca912bf7632d2353b595f differ
diff --git a/data/.ExternalData/MD5/d3568c0d5c44afedb78305f620c0a79b b/data/.ExternalData/MD5/d3568c0d5c44afedb78305f620c0a79b
new file mode 100644
index 0000000..3d7ec53
Binary files /dev/null and b/data/.ExternalData/MD5/d3568c0d5c44afedb78305f620c0a79b differ
diff --git a/data/.ExternalData/MD5/d3713fc4b100da700ff3c0d90b9af229 b/data/.ExternalData/MD5/d3713fc4b100da700ff3c0d90b9af229
new file mode 100644
index 0000000..89f32ea
Binary files /dev/null and b/data/.ExternalData/MD5/d3713fc4b100da700ff3c0d90b9af229 differ
diff --git a/data/.ExternalData/MD5/d3e41fb89c9fd36d0c55e51450794d25 b/data/.ExternalData/MD5/d3e41fb89c9fd36d0c55e51450794d25
new file mode 100644
index 0000000..af996a0
Binary files /dev/null and b/data/.ExternalData/MD5/d3e41fb89c9fd36d0c55e51450794d25 differ
diff --git a/data/.ExternalData/MD5/d4ca7f23ff5fc72c52ef3ad37d10f2cb b/data/.ExternalData/MD5/d4ca7f23ff5fc72c52ef3ad37d10f2cb
new file mode 100644
index 0000000..8e1da26
Binary files /dev/null and b/data/.ExternalData/MD5/d4ca7f23ff5fc72c52ef3ad37d10f2cb differ
diff --git a/data/.ExternalData/MD5/d924c8865957a8b9be899ed66dd438de b/data/.ExternalData/MD5/d924c8865957a8b9be899ed66dd438de
new file mode 100644
index 0000000..16185ea
Binary files /dev/null and b/data/.ExternalData/MD5/d924c8865957a8b9be899ed66dd438de differ
diff --git a/data/.ExternalData/MD5/dc36e35d7b966829f3a6ec4d870a3a9a b/data/.ExternalData/MD5/dc36e35d7b966829f3a6ec4d870a3a9a
new file mode 100644
index 0000000..726a200
Binary files /dev/null and b/data/.ExternalData/MD5/dc36e35d7b966829f3a6ec4d870a3a9a differ
diff --git a/data/.ExternalData/MD5/dc79562f168bdda5fd3743c6adf997e9 b/data/.ExternalData/MD5/dc79562f168bdda5fd3743c6adf997e9
new file mode 100644
index 0000000..d0627ae
Binary files /dev/null and b/data/.ExternalData/MD5/dc79562f168bdda5fd3743c6adf997e9 differ
diff --git a/data/.ExternalData/MD5/df1d5f49dfcf581cbcd866709840c1e8 b/data/.ExternalData/MD5/df1d5f49dfcf581cbcd866709840c1e8
new file mode 100644
index 0000000..ebca774
Binary files /dev/null and b/data/.ExternalData/MD5/df1d5f49dfcf581cbcd866709840c1e8 differ
diff --git a/data/.ExternalData/MD5/df7e6ed58e1c53243307c34a909cb1f5 b/data/.ExternalData/MD5/df7e6ed58e1c53243307c34a909cb1f5
new file mode 100644
index 0000000..e1366a5
Binary files /dev/null and b/data/.ExternalData/MD5/df7e6ed58e1c53243307c34a909cb1f5 differ
diff --git a/data/.ExternalData/MD5/e06d0a2bdb16ac6ed5ceb5618e88d5e6 b/data/.ExternalData/MD5/e06d0a2bdb16ac6ed5ceb5618e88d5e6
new file mode 100644
index 0000000..746de08
Binary files /dev/null and b/data/.ExternalData/MD5/e06d0a2bdb16ac6ed5ceb5618e88d5e6 differ
diff --git a/data/.ExternalData/MD5/e1dfe637c7781e1022488e884c516148 b/data/.ExternalData/MD5/e1dfe637c7781e1022488e884c516148
new file mode 100644
index 0000000..ec01fd6
Binary files /dev/null and b/data/.ExternalData/MD5/e1dfe637c7781e1022488e884c516148 differ
diff --git a/data/.ExternalData/MD5/e25c66ea26dce2141c7857ee05392857 b/data/.ExternalData/MD5/e25c66ea26dce2141c7857ee05392857
new file mode 100644
index 0000000..ed76c33
Binary files /dev/null and b/data/.ExternalData/MD5/e25c66ea26dce2141c7857ee05392857 differ
diff --git a/data/.ExternalData/MD5/e26a86d2559079cdc629ba67864598f2 b/data/.ExternalData/MD5/e26a86d2559079cdc629ba67864598f2
new file mode 100644
index 0000000..07dbc27
Binary files /dev/null and b/data/.ExternalData/MD5/e26a86d2559079cdc629ba67864598f2 differ
diff --git a/data/.ExternalData/MD5/e4d82f1b622fb34fbfe17cffbb3b3af2 b/data/.ExternalData/MD5/e4d82f1b622fb34fbfe17cffbb3b3af2
new file mode 100644
index 0000000..e392c2b
Binary files /dev/null and b/data/.ExternalData/MD5/e4d82f1b622fb34fbfe17cffbb3b3af2 differ
diff --git a/data/.ExternalData/MD5/ecc217e9396303e2bf0fcba322d6ef28 b/data/.ExternalData/MD5/ecc217e9396303e2bf0fcba322d6ef28
new file mode 100644
index 0000000..8444337
Binary files /dev/null and b/data/.ExternalData/MD5/ecc217e9396303e2bf0fcba322d6ef28 differ
diff --git a/data/.ExternalData/MD5/eefa617b3220c1cea47bdc4672541b2d b/data/.ExternalData/MD5/eefa617b3220c1cea47bdc4672541b2d
new file mode 100644
index 0000000..2de8752
Binary files /dev/null and b/data/.ExternalData/MD5/eefa617b3220c1cea47bdc4672541b2d differ
diff --git a/data/.ExternalData/MD5/ef7843afe869fa10a70e6a431976d9aa b/data/.ExternalData/MD5/ef7843afe869fa10a70e6a431976d9aa
new file mode 100644
index 0000000..e53aa67
Binary files /dev/null and b/data/.ExternalData/MD5/ef7843afe869fa10a70e6a431976d9aa differ
diff --git a/data/.ExternalData/MD5/efae3d661dd824cf11d6233e0c00889f b/data/.ExternalData/MD5/efae3d661dd824cf11d6233e0c00889f
new file mode 100644
index 0000000..95b9cc9
--- /dev/null
+++ b/data/.ExternalData/MD5/efae3d661dd824cf11d6233e0c00889f
@@ -0,0 +1,5 @@
+#Insight Transform File V1.0
+#Transform 0
+Transform: VersorTransform_double_3_3
+Parameters: 0 0 0
+FixedParameters: 0 0 0
diff --git a/data/.ExternalData/MD5/efd7cf9f6ce3b3e7e235413092371873 b/data/.ExternalData/MD5/efd7cf9f6ce3b3e7e235413092371873
new file mode 100644
index 0000000..ab0b6cc
Binary files /dev/null and b/data/.ExternalData/MD5/efd7cf9f6ce3b3e7e235413092371873 differ
diff --git a/data/.ExternalData/MD5/efdb1c71a617fbfea06d2f748417b9de b/data/.ExternalData/MD5/efdb1c71a617fbfea06d2f748417b9de
new file mode 100644
index 0000000..16fc464
Binary files /dev/null and b/data/.ExternalData/MD5/efdb1c71a617fbfea06d2f748417b9de differ
diff --git a/data/.ExternalData/MD5/f0998498df32e1321a045082a0e5000c b/data/.ExternalData/MD5/f0998498df32e1321a045082a0e5000c
new file mode 100644
index 0000000..21438ff
Binary files /dev/null and b/data/.ExternalData/MD5/f0998498df32e1321a045082a0e5000c differ
diff --git a/data/.ExternalData/MD5/f1c92a79d9ef24a6fdaa8f43bd4bb3c5 b/data/.ExternalData/MD5/f1c92a79d9ef24a6fdaa8f43bd4bb3c5
new file mode 100644
index 0000000..17f3803
Binary files /dev/null and b/data/.ExternalData/MD5/f1c92a79d9ef24a6fdaa8f43bd4bb3c5 differ
diff --git a/data/.ExternalData/MD5/f218d9b9ffff761bb35fffe099237ca7 b/data/.ExternalData/MD5/f218d9b9ffff761bb35fffe099237ca7
new file mode 100644
index 0000000..610fc84
Binary files /dev/null and b/data/.ExternalData/MD5/f218d9b9ffff761bb35fffe099237ca7 differ
diff --git a/data/.ExternalData/MD5/f535d9da1587b8e3546118f54513b10b b/data/.ExternalData/MD5/f535d9da1587b8e3546118f54513b10b
new file mode 100644
index 0000000..eb74b27
Binary files /dev/null and b/data/.ExternalData/MD5/f535d9da1587b8e3546118f54513b10b differ
diff --git a/data/.ExternalData/MD5/f6725d2a11a1d934b1a22f7cfec8a215 b/data/.ExternalData/MD5/f6725d2a11a1d934b1a22f7cfec8a215
new file mode 100644
index 0000000..4dfa148
Binary files /dev/null and b/data/.ExternalData/MD5/f6725d2a11a1d934b1a22f7cfec8a215 differ
diff --git a/data/.ExternalData/MD5/f7305c52c69b75f737eb6364497024ff b/data/.ExternalData/MD5/f7305c52c69b75f737eb6364497024ff
new file mode 100644
index 0000000..0f73a7b
Binary files /dev/null and b/data/.ExternalData/MD5/f7305c52c69b75f737eb6364497024ff differ
diff --git a/data/.ExternalData/MD5/fa5962abbcfb984aaf42774a81457fed b/data/.ExternalData/MD5/fa5962abbcfb984aaf42774a81457fed
new file mode 100644
index 0000000..ae27d6c
Binary files /dev/null and b/data/.ExternalData/MD5/fa5962abbcfb984aaf42774a81457fed differ
diff --git a/data/.ExternalData/MD5/fb9b000917392dc835a7c45f686f7a23 b/data/.ExternalData/MD5/fb9b000917392dc835a7c45f686f7a23
new file mode 100644
index 0000000..871df1d
Binary files /dev/null and b/data/.ExternalData/MD5/fb9b000917392dc835a7c45f686f7a23 differ
diff --git a/data/.ExternalData/MD5/fc0ec7b3808f1c906b9c3450852fb68e b/data/.ExternalData/MD5/fc0ec7b3808f1c906b9c3450852fb68e
new file mode 100644
index 0000000..aceb47d
Binary files /dev/null and b/data/.ExternalData/MD5/fc0ec7b3808f1c906b9c3450852fb68e differ
diff --git a/data/.ExternalData/MD5/fd0136d5fd3f708d8d9712fe796385be b/data/.ExternalData/MD5/fd0136d5fd3f708d8d9712fe796385be
new file mode 100644
index 0000000..d52f968
Binary files /dev/null and b/data/.ExternalData/MD5/fd0136d5fd3f708d8d9712fe796385be differ
diff --git a/data/.ExternalData/MD5/fd4e809e6b2529292e15e3e02773be37 b/data/.ExternalData/MD5/fd4e809e6b2529292e15e3e02773be37
new file mode 100644
index 0000000..362c3d8
Binary files /dev/null and b/data/.ExternalData/MD5/fd4e809e6b2529292e15e3e02773be37 differ
diff --git a/data/.ExternalData/MD5/fda191030c45a5f88166c98ba6fc0d90 b/data/.ExternalData/MD5/fda191030c45a5f88166c98ba6fc0d90
new file mode 100644
index 0000000..61258f4
Binary files /dev/null and b/data/.ExternalData/MD5/fda191030c45a5f88166c98ba6fc0d90 differ
diff --git a/data/.ExternalData/MD5/fe1150a03de8937341b470a52ab6fd28 b/data/.ExternalData/MD5/fe1150a03de8937341b470a52ab6fd28
new file mode 100644
index 0000000..307e2f1
Binary files /dev/null and b/data/.ExternalData/MD5/fe1150a03de8937341b470a52ab6fd28 differ
diff --git a/data/.ExternalData/MD5/fe2ea78da192cf9dc2eb1826063e761b b/data/.ExternalData/MD5/fe2ea78da192cf9dc2eb1826063e761b
new file mode 100644
index 0000000..2e3d86a
Binary files /dev/null and b/data/.ExternalData/MD5/fe2ea78da192cf9dc2eb1826063e761b differ
diff --git a/data/.ExternalData/MD5/fe9a10248552ef1f122ef76ee2fc081e b/data/.ExternalData/MD5/fe9a10248552ef1f122ef76ee2fc081e
new file mode 100644
index 0000000..f58e3e2
Binary files /dev/null and b/data/.ExternalData/MD5/fe9a10248552ef1f122ef76ee2fc081e differ
diff --git a/data/.ExternalData/MD5/ff9e33e423f9ff38944cc05982b9eea9 b/data/.ExternalData/MD5/ff9e33e423f9ff38944cc05982b9eea9
new file mode 100644
index 0000000..a63aef5
Binary files /dev/null and b/data/.ExternalData/MD5/ff9e33e423f9ff38944cc05982b9eea9 differ
diff --git a/data/.ExternalData/MD5/fff3603333662de0b5344531810017d8 b/data/.ExternalData/MD5/fff3603333662de0b5344531810017d8
new file mode 100644
index 0000000..0a830dc
Binary files /dev/null and b/data/.ExternalData/MD5/fff3603333662de0b5344531810017d8 differ
diff --git a/data/.ExternalData/README.rst b/data/.ExternalData/README.rst
new file mode 100644
index 0000000..b3b0f59
--- /dev/null
+++ b/data/.ExternalData/README.rst
@@ -0,0 +1,6 @@
+.ExternalData
+=============
+
+The ITK ``.ExternalData`` directory is an object store for the
+CMake ExternalData module that ITK uses to manage test input
+and baseline data.

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/simpleitk.git



More information about the debian-med-commit mailing list